On Tue, 7 Sep 1999 allisonp(a)world.std.com wrote:
I don't think that works as the prefetch is
coherent. To my experience
the que was nearly transparent to programs and I never allowed for it
presence not incurred any difficulty for that offense. It's fuzzy but
branches and several other events dump the queue.
A variant of that code DOES work.
Early versions of Xeno-Copy would run on 8088, but would NOT run on 8086.
Inserting a few irrelevant or NOP instructions into the middle of the
self-modifying code lenghtened the distance to work with the 8086 larger
prefetch buffer. But a full fix can be done by putting in a JMP $+2 in
between. Jumping to the next instruction wouldn't seem to do anything,
but ANY jump flushes the prefetch buffer.
Rather than a raw speed test, how about COMPARING the speed for moving a
block of data that is word aligned v one that is not? On the 8088 (8
bit), there is no difference. But on the 8086 (16 bit), there is a quite
measurable performance inmprovement for word aligned data.