Přejít na obsah
ARCHIVEKArchiv e-mailových konferencí o 8bitových počítačích Archiv Pandory 1999 až 2013

Zpět na zprávu

Celé vlákno · 5 zpráv

Re: MZIX-proveditelnost-rychlost MZ-800 - SRAM

Feri SHARP MZ-800





Nerad bych ted kecal, ale myslim ze Fuzzyho vypocet byl spravny - pokud se
nemylim (je to mozne, rutiny monitoru pro praci s RD nemam moc
prostudovane), tak se nejprve program prenese z ramdisku do pameti od
adresy
0x1200 a teprve potom se LDIRem prenasi na spravne misto v pameti. Krom
toho
asi Feri pocital i cas, ktery trva inicializace samotneho monitoru ....
Pokud se jeste bavime o rychlosti, jednoznacne nejlepsi je v tomto
zalohovany RD kompatibilni s originalem ktery disponuje automatickou
inkrementaci adresoveho citace po kazdem cteni/zapisu bytu. Nezalohovany RD
typu Pezik ma nevyhodu v tom, ze se navic musi pred kazdym ctenim/zapisem
do
nej nastavit nova adresa a take zbytecne zabira moc portu (512K verze
obsadi
8 portu).

Zdenek

==================================================
ano, ALE!

napocítat to cez Tstates je korektnejsie, uznavam. lenze ten bitrate od
Fuzzyho je sice presny (co do Tstates), ale zaroven nepresny (co do
filozofie). boot zo SRAM (po nabehnutie obrazovky Flappyho) je asi 5s. z
toho inicializacia HW a monitora je asi 3s. zvyšných 2s zaberie load 44k zo
SRAM, spocitanie checksum a relokacia cez LDIR. teraz sa treba zamysliet -
bude swap pamate pocitat s checksum? ja myslim ze by mal. cena za rychlost
je umerna miere pruseru pri chybe: ak zlyha chcecksum, treba proces zhodit,
ak nebudeme kontorlovat spravnost zapisu tak akakolvek chyba je fatalna pre
cely system...

tiez treba pouvazovat, ako riesit multitasking - ak sa maju (docasne)
neaktivne procesy odswapovat, tak to bude dost sekat (tzn cas swapovania
bude ovela dlhsi ako cas behu).

p.s.: nepochopil som zmienku o zapise 16 byte naraz. bud 16 bit - a to nie
je v ziadnom pripade dvojnasobna bitrate, nakolko jedna blokova instrukcia
prenesie vzdy maximalne 256 bytes, takze 128x16 bit. ak to ale fakt ma byt
16bytes, tak netusim ako :-(

Feri.

Re: Re: MZIX-proveditelnost-rychlost MZ-800 - SRAM

Fuzzy SHARP MZ-800

Ok, Feri, takze muj vypocet jeste jednou - i s opravenym timingem toho 'inc
 hl':

loop:
---
in a, (0eah)    ; nacteni dalsiho byte z RD: 11T
ld (hl),a         ; ulozeni do RAM: 7 T
inc hl            ; dalsi adresa v RAM: 6T
---
in a, (0eah)    ; nacteni dalsiho byte z RD: 11T
ld (hl),a         ; ulozeni do RAM: 7 T
inc hl            ; dalsi adresa v RAM: 6T
---
in a, (0eah)    ; nacteni dalsiho byte z RD: 11T
ld (hl),a         ; ulozeni do RAM: 7 T
inc hl            ; dalsi adresa v RAM: 6T
---
(a takhle celkem 16x)
..
..

---
dec bc          ; dekrementuj pocet 16B bloku k preneseni  6T
ld a,b               4T
or c               ; konec prenosu?   4T       
jr nz, loop      12 T
===========================
coz dela 	410 T na 16 bytes.

Pri 3.5MHz je to 133 kB/s
Jak psal Feri, mozna by se to dalo jeste zoptimalizovat ctenim pres INIR, ale
to jsem uz nepocital.

Jinak jestli nekdo chcete udelat/nekde vyhrabat prototyp optimalizovane rutiny
pro cteni z RD (i ruznych typu), tak samozrejme muzete, bude se to urcite
hodit.

Ten checksum na RD: neni to paranoidni? Pri cteni z RAM se taky nedela,
a po chipove strance jde to to same... Nebo je zde realne nebezpeci spatneho
precteni?

Jak jsem rekl - jestli nekdo udela pridavnou strankovatelnou RAM (vyuzitelnou
univerzalne),
tak budu stastny jak blecha. Me bohuzel priroda obdarila obemi levymi hornimi
koncetinami,
takze k podobnym cinnostem jsem nepouzitelny. Navic me znalosti HW jsou
omezene.

Fuzzy

Re: Re: MZIX-proveditelnost-rychlost MZ-800 - SRAM

Zdenek Adler SHARP MZ-800

Zobrazit citovaný text (3 řádky)
> in a, (0eah)    ; nacteni dalsiho byte z RD: 11T
> ld (hl),a         ; ulozeni do RAM: 7 T
> inc hl            ; dalsi adresa v RAM: 6T
Tohle vsechno jde nahradit jednou instrukci INI (16 TStates), jedna se nejen
o usporu mista v pameti, ale i o zrychleni (16T vuci 24T). Jinak ten
checksum dat na ramdisku je vazne hloupost....
Jinak co se tyce swapovani, mame pochopitelne moznost k nemu vyuzit i HDD
(rychlost bude podobna, maximalne o par desitek cyklu bude navic), akorat v
pripade vyuzivani systemu s CompactFlash kartou bych mel vazne obavy, jestli
by takova CF prezila alespon hodinu neustaleho swapovani :-)

Zdenek


---
Odchozí zpráva neobsahuje viry.
Zkontrolováno antivirovým systémem AVG (http://www.grisoft.cz).
Verze: 6.0.520 / Virová báze: 318 - datum vydání: 18.9.2003

Re: MZIX-proveditelnost-rychlost MZ-800 - SRAM

PeC@ SHARP MZ-800

Zobrazit citovaný text (2 řádky)
> pripade vyuzivani systemu s CompactFlash kartou bych mel vazne obavy, jestli
> by takova CF prezila alespon hodinu neustaleho swapovani :-)
AFAIK CF karty maji logiku, ktera vytezuje pametovy prostor rovnomerne. 
takze pokud bys na dejme tomu 128kB kartu svapoval
po par bytech, tak tech 1000 cyklu krat kapacita/mnozstvi.

nicmene to stejne na swapovani asi neni nejvhodnejsi medium :o)

peca

Re: Re: Re: MZIX-proveditelnost-rychlost MZ-800 - SRAM

Fuzzy SHARP MZ-800

k ke rychlosti RD:
Diky za pripominku, Zdenku.
Tak jeste ta optimalizace:

loop:
ini		; 16T
ini		; 16T
..
..
(celkem 16x)
..
..
ini		; 16T   16*16T = 256T
dec de		; 6T
ld a,d		; 4T
or e		; 4T
jr nz,loop	; 12 T
=======================
celkem		282T na 16B
coz dela 	193 kB/s, t.j. 32 kB za 0.17s

Jeste abych trochu snizil ty obavy z neustaleho swapovani:
Cas CPU budou dostavat nikoliv vsechny procesy co bezi,
ale jen ty, co jsou ve stavu READY. Dost bezicich procesu bude
ve stavu SLEEP - napr. cekat na vstup z klavesnice, a ty klidne
muzou byt neustale odswapovany (dokud se ta klavesa neuhodi,
pak se musi naswapovat...).

Fuzzy