CPU 860409 (c) 1986 by ORD-GROUP 10 De ORDINATOR bestaat uit een aantal verschillende kaarten. Wij zullen deze kaarten hier een voor een bespreken. CPU De ORDINATOR CPU-kaart is de belangrijkste kaart van het systeem. Op deze kaart zit de Z80A-CPU, 4k EPROM, 1k RAM, het geheugen- organisatie-systeem (Memory-Management-Unit of MMU), en de inter- rupt-hardware. De CPU-kaart maakt gebruik van 1 I/O-poort voor de MMU en 2 geheugen segmenten (1 voor de RAM en 1 voor de EPROM). De EPROM bevat de basis van DIAMOND (zie DIAMOND documentatie), uit- breidingen zitten in de EPROM's op de CPU-extensie-kaart. MMU De Z80CPU heeft van huis uit 16 adres lijnen en dus een adres- seerbereik van 64k. Door middel van een zelf ontworpen MMU wordt dit adresseerbereik 'opgevoerd' naar 512k. De MMU bestaat uit een zeer snelle RAM. Deze RAM heeft 4 adreslijnen en 8 datalijnen. De vier adreslijnen zijn verbonden met de bovenste 4 adreslijnen van de Z80. Zeven van de acht datalijnen vormen de bovenste 7 adreslijnen van de bus. De onderste 12 adreslijnen van de bus zijn verbonden met de onderste 12 adreslijnen van de Z80. Op de bus zijn dus 19 adreslijnen aaanwezig hetgeen een adresseerbereik geeft van 512 Kb. Dit fysieke adresseerbereik is opgedeeld in 128 pages van 4 Kb elk. Het virtuele adresseerbereik van de Z80 is opgedeeld in 16 pageframes van 4 Kb elk. Een virtueel adres van de Z80 wordt opgedeeld in een 4 bits pageframenummer en een 12 bits pageoffset. Het pageframenummer wordt door de MMU vertaald naar een pagenummer. Het fysieke adres wordt samengesteld uit dit pagenummer en de pageoffset. Door de inhoud van de MMU-RAM aan te passen is het dus mogelijk om een willekeurige page in een willekeurig pageframe te plaatsen. Het achtste bit dat uit de MMU-RAM komt wordt gebruikt om een page write-protect te maken. Als dit bit 1 is dan wordt de Z80 write pulse (WR) onderschept. Dit maakt het mogelijk om een programma te beveiligen tegen veranderingen. Om RESET's, NMI's en breakpoints mogelijk te maken moesten sommige adressen altijd naar de ORDINATOR-monitor (DIAMOND) verwijzen. Dit is gedaan door de bytes 0000 t/m 00FF apart te decoderen en altijd te laten verwijzen naar de ROM op de CPU- kaart. Deze methode leverde later echter problemen op. Voor het uit- voeren van CP/M bijvoorbeeld moeten de adressen 0000-00FF RAM bevatten. Hiervoor is toen de zgn. CP/M-patch aangebracht. Door een speciale I/O operatie wordt de aparte decodering van de ROM uitgeschakeld. CPU 860409 (c) 1986 by ORD-GROUP 11 In een volgend ontwerp van de CPU-kaart, dat nog niet uitgewerkt is, is dit RESET- en NMI-probleem anders aangepakt. Hier worden de signalen zelf gebruikt om een tweede MMU aan te schakelen (de zgn. system-linklayout) die dan wordt gebruikt in plaats van de eerste, totdat er een bepaalde Z80-instructie uitgevoerd wordt. Dit systeem heeft als voordeel dat een functie die nu door de software uitgevoerd moet worden, namelijk het verwisselen van de user- en system-layout, dan door de hardware gedaan wordt.