Paměť ZX Spectrum Contended - ZX Spectrum Contended Memory

Některé z adresovatelného paměťového prostoru 64 kB ZX Spectrum se označují jako soupeřená paměť. Se zbytkem paměti je mikroprocesor Z80 exkluzivním masterem sběrnice, takže čte a zapisuje při své plné rychlosti sběrnice, ale sporný paměťový prostor je sdílen mezi ULA a Z80, přičemž ULA má vyšší prioritu. Napadená paměť zabírá adresy 0x4000..0x7FFF mapy paměti Z80 . Toto je prvních 16 KB paměti RAM ve stroji o velikosti 48 kB a celá RAM ve stroji o velikosti 16 kB.

Ke konfliktu dochází v důsledku toho, že ULA načte displej a přiřadí data v této paměti RAM k vytvoření zobrazení televizního videa . Během horizontálního zpětného letu, vertikálního zpětného letu nebo během ohraničení obrazovky proto nedochází ke sporům.

Přístupy k I / O také tvrdí, zda ULA musí číst spornou paměť, zatímco Z80 přistupuje k ULA I / O portu. ULA I / O porty jsou ty, které mají sudou adresu (bit adresy 0 je 0).

Z80 musí počkat, kdykoli ULA potřebuje přístup ke sporné paměti, než bude pokračovat ve čtení a zápisu své vlastní napadené paměti. Efekt pro uživatele je, že programy, které využívají napadenou paměť nebo napadené I / O, běží pomaleji než ty, které se jí vyhýbají.

Snow Bug

ULA musí počkat na dokončení čtení nebo zápisu Z80, než může zastavit hodiny Z80 a získat přístup k paměti; se zastaví Z80 má hodiny pouze během prvního taktu jednoho cyklu stroje .

Časná spektra předpokládají, že v jednom strojovém cyklu dojde k nejvýše jednomu napadenému přístupu k paměti: toto neplatí v cyklech načítání instrukcí, pokud programátor nakonfiguroval vektorovou tabulku přerušení tak, aby spadala do napadené oblasti. V takovém případě ULA odmítne načíst svou adresu videa a zobrazený bajt videa bude bez ohledu na to, co procesor načítal. Důsledkem toho je náhodný šum na displeji nebo „sníh“.

Jelikož tento efekt nenastal za normálního provozu - vyžadoval úmyslný zásah programátora - byl velmi zřídka viděn, protože se používal pouze v některých hrách [ které? ] jako speciální grafický efekt .

Novější verze Spectrum, včetně všech 128kb verzí, chybu opraví .

Obvod

ULA nepoužívá mechanismus požadavku / udělení sběrnice Z80 k tomu, aby se stal masterem sběrnice během svých napadených přístupů do paměti. Místo toho prodlužuje vysoké období hodinového vstupu Z80, aby zastavil veškerou aktivitu mikroprocesoru. I když je to méně elegantní než provádění požadavku na sběrnici, získává to sporný přístup k paměti pro méně hodin Z80. Tím se odstraní potřeba ULA číst zobrazovaná data předem, což je výhoda přeplněných obvodů v plné ULA.

ULA se připojuje přímo k integrovaným obvodům paměťového systému, zatímco Z80 se k nim připojuje prostřednictvím izolačních sériových proudových limitů. To umožňuje ULA a paměti vzájemně se řídit, zatímco Z80 také řídí paměť. Použití odporů namísto integrovaných obvodů ovladače sběrnice sběrnice snižuje náklady na obvod, ale vyžaduje vyšší průměrný I / O pinový proud z integrovaných obvodů Z80, ULA a paměti.

Reference

externí odkazy