Bjarni Juliusson skrev den 2015-02-28 00:28:
On 02/27/2015 10:35 PM, Anders Magnusson wrote:
Just I/D går ju i alla fall att göra på just 650x lyckligtvis. :)
Hm, går det? Det har jag missat! Hur?
Processorn har ju en outputpinne som säger om den nuvarande cykeln är en instruktionsfetch! Hm, det har jag aldrig hört nån använda sig av :-) Isåfall så refererar man bara till en separat mapptabell för minnet när den bitten är satt. Men jag antar att man behöver lite mer logik också? Till exempel om man gör jmp $1234 så lär den bara ha pinnen satt när jmp hämtas? Eller är den satt under fetchandet av alla tre bytarna? Det skulle förenkla, då skulle man ju kunna göra en enkel MMU också :-)
I Nova840 så är MMUn ett instickskort man stoppar in. CPUn har ingen kunskap om det kortet överhuvudtaget och man kan rycka ut det utan att behöva ändra nåt annat så blir det en Nova utan MMU. Det dels ligger och drar i lite OC-ledningar för att man skall adressera rätt bit av minnet, dels lyssnar det om man försöker komma åt nåt man inte får. Om man försöker det (till exempel skriva till en page som är skrivskyddad) så släpper det enable för minneskorten, ställer om state till supervisor och nästa fetch så kommer den att adressera vektoradressen (040-043 beroende på trap) oberoende av vad CPUn egentligen lägger ut på adressbussen :-) Ganska smart. Det här tänkte jag använda mej av i rördatorn också. Man kan ju typ lägga till funktionalitet efter hand utan att behöva bygga om en massa saker.
Det är så man gör instruktionsstegning också.
Allt går :-) Till och med 6J6 från 1939 var rekommenderat att användas i radioapparater upp till 250MHz...
Shit alltså... det är väldigt lockande!
Precis. Kom igen nu! :-) -- Ragge