Innholdsfortegnelse:

8-biters datamaskin på et brødbrett Oversikt: 3 trinn
8-biters datamaskin på et brødbrett Oversikt: 3 trinn

Video: 8-biters datamaskin på et brødbrett Oversikt: 3 trinn

Video: 8-biters datamaskin på et brødbrett Oversikt: 3 trinn
Video: Вся правда о Куликовской Битве 2024, Juli
Anonim
8-biters datamaskin på et brødbrett Oversikt
8-biters datamaskin på et brødbrett Oversikt

Målet mitt for dette prosjektet var å bygge en bedre forståelse av datamaskinarkitektur, maskinvaredesign og språk på samlingsnivå. Da jeg var junior på universitetet og studerte datateknikk, hadde jeg nylig fullført kurs i elektronikk, laboratorier som introduserte meg for samlingsspråk og maskinvarearkitektur. Da jeg mottok en introduksjon til disse temaene, ønsket jeg å øke min forståelse av de finere detaljene i alle tre kursene, og hvilken bedre måte å lære enn å jobbe med et prosjekt?

Min opprinnelige intensjon var å sette sammen denne 8-bits datamaskinen fullt ut ved hjelp av forelesningsvideoene på Ben Eaters youtube-kanal, som gjør en fantastisk jobb med å bryte ned designprosessen til en solid blanding av materiale jeg har dekket og aspekter jeg ennå ikke skulle lære. Siden jeg allerede hadde en grunnleggende forståelse av kombinatorisk design og grunnleggende elektronikklogikk, ønsket jeg å utfordre meg selv ved å prøve å designe og bygge deler av datamaskinen etter designoversiktene, men uten å se byggeinstruksjonene. Gjennom hele prosjektet var målet mitt å lære og forbedre min forståelse mer enn å bare bygge noe nytt, så langs hvert trinn i prosjektet leste jeg litt fra elektroniske artikler og fora om komponentarkitekturen og grunnleggende konvensjoner som ble brukt for hvert av dem.

Trinn 1: Forskning underveis

Forskning underveis
Forskning underveis
Forskning underveis
Forskning underveis

Dette prosjektet fikk meg virkelig til å lese mye mer enn jeg forventet. En av mine viktigste tilnærminger til hver komponent var å lese en oversikt fra et online forum eller en artikkel, se forelesningene fra Eaters videoer og prøve å designe min egen del før jeg bygger, tester og mesteparten av tiden trenger å skrote den for en mer guidet tilnærming fra Eaters kanal. Et eksempel på dette var da jeg bygde ALU -komponenten på PC -en. Da jeg så på designvideoene, leste jeg artikler om brikkekomponenter som hadde høyere funksjonalitet og utløser innganger som ville gjøre det mulig å bytte instruksjonstyper og invertere innganger til 2 -komplement internt. Imidlertid, før jeg kjøpte disse gjør-det-lettere-sjetongene, vurderte jeg designtilnærmingen som Ben Eater snakket om i videoene sine, med blanding av tilleggsutstyr og XOR-logikkporter for å øke funksjonaliteten i ALU-modulen uten å trenge høyere kostnadsjetonger. Dette fikk meg til å sette pris på bruken av diskret logikk og dens anvendelighet på datamaskindesign, og lære om forskjellige tilnærminger til å bygge komponenter. Ved å kombinere chips på lavere nivå på brødbrettet, lærte jeg også om noen viktige arkitektoniske trekk som ble brukt inne i ALU, noe som økte min forståelse for denne utførelseskomponenten på PCen.

En annen sentral komponent som jeg lærte om var bruken av mottakere, også kjent som buffere. Før jeg gikk dypere inn i prosjektet, tenkte jeg at jeg ganske enkelt ville aktivere og deaktivere forskjellige komponenter ved hjelp av kontrollsignaler, men fant raskt gjennom artikler at buffere måtte brukes for å fungere denne Von-Neuman-stilarkitekturen riktig. Fordi datamaskinen bruker en delt buss for data for å reise mellom de forskjellige modulene på PC -en, ble synkronisering av sykluser diktert av klokken. Imidlertid tillot jeg lagring og last å skje uten å forstyrre dataene som er tilgjengelige på bussen, og jeg fant at transceivere var avgjørende for å fungere som porter, noe som krever et aktiveringssignal for å la data flyte inn på bussen i tide. leseevnen var ikke like vanskelig å forstå, ettersom ledningene alltid ville holde verdiene på bussen, men å bruke riktig verdi betydde at registerene kunne beholde den nye verdien.

En siste takeaway fra forskning gjennom dette prosjektet var å forstå spesifikasjonsforskjellene mellom sjetonger som var like. Ofte fant jeg sjetonger med samme ID -verdier, men forskjellige deskriptorbokstaver som LS og HC. Det jeg lærte var at det ikke bare var å produsere etiketter, men også timing og strømspesifikasjoner om sjetongene. Heldigvis siden datamaskinen min brukte ganske lave nivåer og komponenter med høy toleranse, trengte jeg ikke å bekymre meg for å matche mange spesifikasjoner, men på høyere nivå lærte jeg at ting som klokkehastighet og kraftuttak er avgjørende for suksess eller fiasko av elektronisk design

Trinn 2: Problemer oppstått

Ganske raskt inn i prosjektet var jeg i stand til å designe enkle komponenter som tidsuret for synkronisering av prosesser og grunnleggende minnearkitektur, men å måtte bestille deler sammen med et tungt kurssemester gjorde det vanskelig å allokere tid til prosjektet, og satte meg tilbake på plan for ferdigstillelse. Etter mitt første store tilbakeslag fra å måtte vente en uke på at deler skulle komme, endte jeg med å forsinke ytterligere forsinkelser ved å bestille alle delene jeg trodde jeg ville trenge for å fullføre dette prosjektet, noe som viste seg nyttig ettersom jeg ikke lenger hadde forsinkelser før jeg publiserte dette. Etter å ha lært noen grunnleggende tilnærminger for feilsøking også, begynte jeg å overse noen montering som betydde at jeg måtte gå tilbake og se på videoer for å fange feilene mine, noe som vanligvis førte til at jeg tok fra hverandre det meste av et brett. Dette hadde ingen snarvei. Jeg lærte verdien av å sjekke fremdriften din i å bygge en hvilken som helst elektronisk enhet. Ved å feilsøke hvert bord underveis, kunne jeg gå videre til å kombinere dem med mer tillit, så ble feilsøking av kombinerte brett mye enklere.

Trinn 3: Utførelser og refleksjon

Alt i alt har jeg for tiden fullført klokke, opcode og programteller, ALU -enhet, rs rt og rd -registre og RAM. I tillegg til at jeg trengte å fullføre bussen og eksterne enheter for å fullføre dette prosjektet, har jeg lært mye om datamaskinarkitektur, som jeg håper å videreføre til mine valgfag på senioråret ved å ta dataarkitekturkurset.

M5 ga alle nødvendige verktøy for å jobbe med prosjektet mitt, og komponenter var veldig godt lagt langs delveggene, så jeg visste tidlig at delene som trengte bestilling og hva som kunne dispenseres. Hvis en annen student skulle ta dette prosjektet, vil jeg definitivt merke at dette prosjektet tar mye tid hvis du prøver å forstå alt som skjer på datamaskinen. DET ER IKKE VANSKELIG, men det krever omsorg hvis du vil at det skal fungere vellykket. Jeg anbefaler på det sterkeste å gå gjennom videospillelisten på Ben Eaters youtube -kanal for å få en oversikt over alle delene du trenger å bruke, slik at du ikke kommer etter i tide hvis du ikke planlegger å designe din egen tilnærming. Siden jeg kjøpte de fleste delene, har jeg tenkt å ta dette med meg for å fullføre på min egen tid, men det ville være kult å avgi dette for å la en annen student fullføre det, noe som ville bety lyseksponering for designet av de gjenværende delene, men et stort fokus på samlingsspråk, som jeg heldigvis fikk jobbe med i løpet av andre klasser

Anbefalt: