ZX Hard #01
06 мая 1999
  Железо  

Fast Memory Access (FMA) - acceleration scheme with memory.

<b>Fast Memory Access (FMA)</b> - acceleration scheme with memory.
       Fast Memory Access (FMA).


(C) VTS'99


    Fast, but not Direct Memory Access - because
working memory exercises continue
good old Z80.

    This method is proposed to use
in peripheral (as well as any other)
devices on the Z80 to increase their productivity when working 
with arrays of memory (graphics, for example). 


    Thus, we can throw the memory-memory with
rate of 5.10 cycles / byte. Khe-heh, already
see the smirk kodyaschey brethren). Yeah, STE
Again favorite stack. True, the normal DMA
shakes bytes for 8 cycles (at least
8237, the Zilog information do not have)
but he booolshoy and gluttonous;).
True, he still manages to pump out and uploads the data from 
the outside, and a little poshustree. In the case may be 
somewhere in memory Z80 "Progryzt" hole and insert there the 
registers of this very "outside", and do not take offense for a 
speed close to the IN / OUT (although the turbo will be better, 
because IN / OUT operate normally - I mean KAY). 


    And now more specific.


    I think it's common knowledge that one
Frame Spectrum screen thrown like this:


        LD HL, XXXX; 10 cycles

        PUSH HL; 11 clock cycles

        LD HL, YYYY --------
        PUSH HL 21t./2bayta

        LD HL, ZZZZ (10.5t./bayt)

        PUSH HL --------
        .... 21 * 3072 = 64512t.

        only 3072 times

XXXX, YYYY, ZZZZ - is the screen.


    As can be seen on-screen information through the
every two bytes thinned the other two
Bytes:

.. E5 21 XX XX E5 21 YY YY E5 21 ZZ ZZ ...


  LD HL, XXXX PUSH HL


    To prepare such a mess in the usual
memory, you need to work longer than one
frame, therefore, requires thorough
dekryunching and Prorva memory.

    But there is a better way! ((C) advertising) and
it requires zhelezyachnogo intervention. Is he in the 
entanglement bits addresses, for example, A14 and A1, can also 
on condition A15 = 1. Then we get the following:



               0000 0000
 16k 16k segment 0 segment 0

               4000 4000
 16k 16k segment 1 segment 1

               8000 8000
 16k segment 2 FMA

               C000 32k
 16k segment 3 AREA

               FFFF FFFF



    Ie 2'oy and 3'y segments overlapped
each other every two bytes. AND
if now in 2'oy segment written in a row a bunch of (16Kb) E5 21 
(and at # BFFD Record C9 - RET) and make the call on # 8001,

then the stack unload 16,382 bytes :-).
It remains only the top page of memory
click ...


    Well, in the end to count how much
We still passes 8,237:


  K (8237) = (10.5-8) * 100/10.5 = 23.8%


    Not so much ...


ps: Here we describe only the principle, because
apply it to some central Z80
problematic (and it is not in iron ...). Ie it to the periphery!



    isdos 23-04-99 22:47 msk







Other articles:

Entry - the first room zhelezyachnoy newspaper.

Meshaw mail - a letter from: Mongol / Delta Corporation, SANDER / MskZXNet, Mr.Brain, Chirtsov Igor.

Conversation - Nemo & VTS.

COM-port & timer - Serial port for Spectruma!!!

"Iron" ... logic! - educational program of the logical circuits.

Fast Memory Access (FMA) - acceleration scheme with memory.

C-bus - bus is founded on the Centronics interface.

OSP v.0.1 - a new sound card for the Spectrum to replace General Sound.


Темы: Игры, Программное обеспечение, Пресса, Аппаратное обеспечение, Сеть, Демосцена, Люди, Программирование

Similar articles:
Honor and Eternal - A list of honored Neispolzovateley / Users AC Edit.
Interview - Memories Alone Coder-a.
Stuck? - Description of the game "They Call Me Trooper".
Likbez - a full disassembler ROM (part 26).

В этот день...   21 November