Uz zase vlastni CPU :).

Danhard danhard@volny.cz
Pátek Říjen 8 19:32:41 CEST 2004


> Pracuje to tak, ze vezme adresu prvniho operandu z datove sbernice a rovnou
> s ni na adresovku, tedy co je z toho adresa a nejvyssi bity si naberu jako
> typ instrukce. Data operandu bere ihned za tim, protoze nemusi cvicit
> signalem /RD, ale dalsi takt ta data proste nabere. Doplnenim neceho co by
> slo nazvat PC o "01" na konec a vyslanim na adresovku a naslednym nabranim
> dat naberu druhy operand a take typ instrukce uz mam kompletni, treba 8bit
> na typ instrukce. Mam 4 takty a 4x jsem cetl, s RD jsem zatim nehnul, stale
> bylo /RD aktivni. Na datovce mam stale druhy operand, takze nemusim ho nikam
> davat a rovnou provedu matematiku, pak nahodim /RD do neaktivna, dam
> vysledek na datovku a pak shodim /WR a nemusim se starat o adresu, protoze
> ta tam stale je od nabrani hodnoty toho druheho operandu a je to zaroven
> adresa, kam se uklada. /WR jde do neaktivna, datovka do vysoke impedance.
> Ted nahodim /RD a na adresovku podle priznaku Z ci C dam PC & "10" nebo PC &
> "11". Naberu data, soupnu je do PC a na adresovku a mohu jet dalsi
> instrukci, pricemz /RD uz je aktivni v nultem cyklu instrukce, tedy mohu
> rovnou cist.

Poznamka k realizaci - tady Jirko uvadis jako vyhodu ze nemusis zbesile cvicit
s RD a WR signaly,
takovy pristup, jak tu mas umoznuji ale jenom staticke asynchronni RAM

> Pro vice podprogramu v sobe pak tak, ze se do RAM udela instrukce MOV, ktera
> ma jako zdrojovy operand adresu, kde je jakysi ukazatel na zasobnik a jako
> druhy operand pro zapis odskokovou adresu v dalsi instrukci v RAM a to
> scitani. Tedy prvni instrukce udela to, ze dopravi navratovou adresu ze
> zasobniku do adresy skoku instrukce pro scitani a ta pricte te prvni
> instrukci adresu operandu a skoci :). Mame ze 2 instrukci RETURN jak vysity
:).

Instrukce ktere modifikuji instrukcni kod, tady adresu skoku, musi byt nutne
provozovany z RAM pameti.
Takova subrutina s doprednou modifikaci nemuze byt volana z interruptu,
protoze kdyz vyvolas interrupt mezi pripravou a skokem, tak ji pouzitim
prepises.

Danhard




Další informace o konferenci Hw-list