onsdag 19. april 2017

RC2014 Prosessor

Dette er et innlegg relatert til byggingen av RC2014, se introduksjon, og vil mer eller mindre være mine egne notater relatert til denne spesifikke modulen.

Prosessor

Den enkleste av RC2014-modulene ettersom de fleste av støtte-funksjonene utføres av andre moduler, RC2014 Klokke håndterer klokke-signalet samt reset-funksjonalitet. Opprinnelig dokumentasjon for modulene er tilgjengelig på http://rc2014.co.uk/modules/cpu/.

Prosessoren som benyttes her er en noe nyligere produsert utgave av Zilog Z80-prosessoren, Z840010PEC (10 Mhz Z84). Den originale prosessoren ble først lansert i 1976 med en hastighet på 2,5 Mhz, men utover en firedobling av hastigheten og overgang til CMOS-teknologi (lavere energiforbruk) så er denne prosessoren tilnærmet identisk når det kommer til funksjonalitet.

Selve kretsen er relativt enkel i og med at det meste bare kobler de tilsvarende pin-ene på prosessoren til pin-ene mot hovedkortet. Opprinnelige instruksjoner markerer montering av pin-headere øverst til venstre som valgfritt, men foretrekker å ha muligheten til å gjøre endringer senere. I vanlig bruk må man sette jumpere (eller lodde en kobling mellom) for WAIT, BUSRQ og NMI. Alle koblinger i denne regionen vil, dersom koblet sammen, dra signalet høyt gjennom resistoren til 5V.


Adressering

I utgangspunktet - og slik man forsåvidt forventer det så er prosessoren hjernen i systemet. Derimot, når det kommer til adressering, uansett om det gjelder tilgang til en tilkoblet enhet (IO) eller minne (RAM / ROM), så er dette mer eller mindre implisitt - prosessoren angir en adresse, det er logikken rundt som avgjør hvem som svarer.

Logikken må ta høyde for at kun en enkelt enhet skriver til bussen til ethvert tidspunkt, dersom to enheter "skriver" til en eller flere linjer vil i beste fall deler av signalet gå til jord og i verste fall føre til at det samlede spenningsnivået på linjen overgår det en eller flere komponenter er i stand til å tåle (det vil si varmgang, gnistring og potensielt sett flammer dersom man ikke oppdager dette fort nok).

For å unngå slike kollisjoner refererte man til en oversikt over minnet for hvilke områder man dedikerte til hva. Zilog Z80-prosessoren til forskjell fra annen maskinvare jeg har arbeidet med, et logisk skille mellom minne (se RC2014 Memory Map) og IO (se RC2014 Device Map). Prosessoren indikerer hva vi er ute etter ved bruk av pin-ene MEMRQ og IORQ.

Ingen kommentarer:

Legg inn en kommentar