Procesor cu mâinile lor

Procesor cu mâinile lor

După cum îmi amintesc, a dorit întotdeauna să facă un procesor. În cele din urmă, ieri am făcut-o. Nu este mare: 8-biți, mașini RISC, frecvența de operare curent - 4 KHz, dar funcționează. Până în prezent, circuitele logice de program de modelare, dar știm cu toții: „astăzi - pe modelul de mâine - în practică!“.







Sub tăiat câteva animații, o scurtă introducere în logica binară pentru cei mici, o scurtă poveste despre principalele cip procesor de logică și, de fapt, circuitul.

Sistemul binar (pentru cei care nu știu) - acest un astfel de sistem de numerotare este în care nici un număr mai mare decât unu. Această definiție a multora confuz, până când își amintesc că cifre zecimale nu mai mult de nouă.

Sistemul binar este folosit în calculatoare din cauza aceasta codifica cu ușurință de stres: există tensiune - înseamnă o unitate; nici un stres - înseamnă zero. În plus, „zero“ și „o“ poate fi ușor de înțeles ca „fals“ și „adevărat“. Mai mult, cele mai multe dispozitive într-un sistem binar, de obicei se referă la numerele ca o serie de „adevăr“ și „falsitatea“, adică operează cu numere ca valorile logice. Pentru cei mici, și cei care nu știu, vă voi spune și vă arată cum să opereze cele mai simple elemente ale logicii binare.

Articol „tampon“


Imaginați-vă că vă aflați în camera ta, și prietenul tău - în bucătărie. Strigi la el, „Prietene, spune-mi în hol se aprinde?“. Un prieten răspunde: „Da, foc!“ Sau „Nu, nu arde.“ Prietenul tău - un tampon între sursa de semnal (un bec în hol) și receptor (te). Mai mult decât atât, prietenul tău - nu doar nici un tampon obișnuit, și tamponul este controlat. El ar fi fost un tampon obișnuit, în cazul în care în mod constant strigând: „bec nu se aprinde“ „lumina lămpii“ sau

Elementul „nu este» - NU


Acum, imaginați-vă că prietenul tău - Jokerul care spune mereu adevărul. Și dacă lumina din hol este aprins, se va spune, „Nu, în hol foarte, foarte întunecat“, iar dacă nu aprins - „DA, în lumina a fost pe hol.“ Dacă aveți un prieten în această privință, așa că întruchiparea elementului, „Nu.“

Element „sau» - SAU


Pentru a explica esența elementului „sau“ un bec și un alt, din păcate, nu este de ajuns. Avem nevoie de două becuri. Deci, aveți două becuri în hol - o lampa de podea, de exemplu, și un candelabru. Strigi: „Prietene, spune cel puțin un bec strălucește în hol?“ Și răspunde prietenul tău, „Da“ sau „Nu“. Evident, pentru a răspunde „Nu“ toate luminile trebuie să fie oprit.

Elementul „Și» - ȘI


Același apartament, tu, prietenul meu în bucătărie, o lampa de podea și candelabru în hol. În întrebarea dvs., „În coridor, două becuri ard?“ Ai un „Da“ sau „Nu“. Felicitări, acum prietenul tau - este un element de „I“.

Element „pentru a exclude sau» - XOR


Pentru a repeta experimentul pentru elementul „Sau“, dar reformuleze întrebarea pe celălalt: „Prietene, spune-mi pe coridor, doar o singură lampă de strălucire?“. prieten onest pentru a răspunde la această întrebare „Da“ numai în cazul în care coridorul este într-adevăr doar arde un bec.

Chetvertsummator


Element Chetvertsummatorom numit „exclusiv sau“. De ce? Să recunoaștem.
Întocmește un tabel pentru adăugarea a două numere în sistem binar:
0 + 0 = 0
0 + 1 = 1
1 + 0 = 1
1 + 1 = 10

Acum vom scrie elementul tabel de adevăr „exclusiv sau“. Pentru acest lucru, să bec timp de 1, stins - pentru 0, iar alte răspunsuri „Da“ / „Nu“ ca 1 și 0, respectiv.
0 XOR 0 = 0
0 XOR 1 = 1
1 XOR 0 = 1
1 XOR 1 = 0

Foarte similare, nu-i așa? Tabelul de adăugare și tabelul de adevăr „pentru a exclude sau“ coincid în totalitate, cu excepția unui singur caz. Și acest caz se numește „overflow“.

half-adder

Pe preaplin, rezultatul de adăugare nu este plasat în același număr de cifre, cât de multe au fost plasate termeni. Condiții - două numere cu o singură cifră (o cifră semnificativă, știi?), Iar suma - este de două cifre (două cifre semnificative). Cele două cifre ale unei lămpi ( „lumină“ / „Off“) nu se va transfera. Avem nevoie de două becuri. Aveti nevoie de - o fac!

În plus față de XOR, la vipera, avem nevoie de un element de „Si» (SI).






0 XOR 0 = 0 0 0 = 0 AND
0 XOR = 1 1 1 = 0 și 0
1 XOR 0 = 1 1 = 0 și 0
1 XOR 1 = 0 1 1 = 1 AND

Nostru vundervaflya jumătate de vipera funcționează. Acesta poate fi considerat cel mai simplu procesor de specialitate, care adaugă două numere. Half-sumator se numește o jumătate de vipera, deoarece nu ține seama de transfer (rezultatul celeilalte vipera), care este, nu se poate pune număr binar de trei cifre singur. În acest sens, mai multe cu un singur bit jumătate de vipera se poate face un multi-bit.

Nu voi intra în detaliile lucrării și sumatoarele complete multi-bit, doar speranța că veți obține ideea de bază.

multiplexor

demultiplexor


Pentru a înțelege funcționarea contorului din nou, veți avea nevoie de prietenul tău. Sună-l afară din bucătărie (sper că nu este mult acolo plictisit, și, cel mai important, nu a mâncat toată mâncarea), și cereți-le să facă acest lucru: Să-l amintesc numărul 0. De fiecare dată când îl atingi, el trebuie să adauge unul la acel număr, care amintește, pentru a spune rezultatul și-l amintesc. În cazul în care rezultatul este (să zicem) 3, el trebuie să strige „Abracadabra!“ Și răspunde la următoarea atingere, că el își amintește acum numărul 0. Un pic dificil? A se vedea:

Atingi celălalt. Un prieten spune, „One.“
Atingi celălalt. Un prieten spune, „Doi.“
Atingi celălalt. Un prieten spune, „Trei.“ Fiecare strigând „Habrahabr! “. atac critice! Sunteți paralizat temporar și nu se poate mișca.
Atingi celălalt. Un prieten spune, „Zero“.

Ei bine, și așa mai departe. Foarte simplu, nu?
Desigur, îți dai seama că prietenul tău acum - acest contor. Atingerea celălalt poate fi considerat un „semnal de sincronizare“ sau, pur și simplu, prin continuarea semnal. Crick „Abracadabra“ indică faptul că valoarea stocată în contra - maxim, și că următorul contorul de semnal de sincronizare este setat la zero. Există două diferențe între contor binar de la un prieten. În primul rând, adevărat contor binar emite o valoare stocată în formă binară. În al doilea rând, el mereu face exact ceea ce-i spui, și niciodată nu coboară la glume proaste, care pot deregla întregul sistem de procesor.


Să continue să ia în râs nefericit prietenul tau (probabil imaginar). Să presupunem acum că își amintește numărul zero. Când atingi mâna stângă, el trebuie să își amintească numărul zero, iar în cazul în care dreptul - numărul unu. Când a fost întrebat, „Câți vă amintiți?“ Unul trebuie să răspundă întotdeauna numărul de care este stocat - zero sau unu.
Cea mai simplă celulă de memorie este RS-bistabilului ( „flop“ înseamnă „comutator“). RS-flip-flop poate stoca un singur bit de date ( „zero“ / „unu“) și are două intrări. Log Set / instalare (la fel cum mâna stângă este prietenul tau), scrie în „unu“ declanșa o intrare Reset / Reset (respectiv, dreapta) - „zero“.


Un pic dificil de a găsi registru. Prietenul tău se transformă într-un registru, atunci când l întrebi ceva să-și amintească, și apoi spune, „Hei, adu-mi aminte că ți-am spus să-și amintească?“, și fiecare răspunde în mod corect.

Un registru poate stoca de obicei, un pic mai mult de un bit. El are cu siguranta o rezolutie de date de intrare, ieșire și înregistrarea datelor de intrare. Odată cu lansarea de date, puteți citi întotdeauna ceea ce este scris în acest registru. Introducerea de date, puteți trimite datele pe care doriți să scrie în acest registru. Puteți trimite date, atâta timp până te plictisesti. În cazul în care nimic nu va fi scris până la intrarea de scriere să nu permit un fișier, care este „unitate logică“.

registru de deplasare


V-ați stat vreodată în linie? Cu siguranță că erau. Deci, vă puteți imagina ce urmează a fi date în registrul de deplasare. Oamenii vin și să stea în coada de așteptare. Primul om în linie vine în biroul de o lovitură mare. Oricine a fost al doilea în linie, este primul, și cel care a fost al treilea - acum al doilea, și așa mai departe. Place - este un registru de deplasare viclean, de la care „date“ (bine, adică, oamenii) pot obține departe de afaceri, vecini de pre-a avertizat în coadă. În acest registru de deplasare, desigur, „date“ din coada nu poate rula.

Deci, registrul de deplasare are o intrare de date (prin intermediul datelor se încadrează în „turn“) și de ieșire de date (de la care se poate citi prima intrare în „coadă“). are o intrare „registru de deplasare“ Chiar și în registrul de deplasare. Odată ce intrarea vine de la „unitate de logică“, o linie de ansamblu schimburi.

Există o diferență importantă între spargere și registrul de deplasare. Dacă registrul de deplasare poate găzdui patru intrări (de exemplu, patru octeți), prima intrare în coada de așteptare ajunge la ieșirea din registru după numai patru semnale de intrare „registru de deplasare“.

memorie cu acces aleator

BitBitJump

Descriere detaliată BitBitJump și asamblare pentru această limbă sunt disponibile pe site-ul web al dezvoltatorului. Pentru o descriere a algoritmului procesorului este de ajuns să știe următoarele:

Din păcate, algoritmul fără sfârșit și, prin urmare, nu va ajunge la profit.

De fapt, schema

Circuitul a fost construit în mod spontan, astfel încât rularea show-ul din frica, teroare și mizerie. Cu toate acestea, funcționează, și funcționează bine. Pentru a activa procesorul, este necesar:

1. Introduceți programul în memoria RAM
2. Apăsați comutatorul
3. Setați contorul la 4 (acest lucru poate fi făcut, și hardware-ul, dar schema ar fi chiar mai greoaie)
4. Activați generatorul de ceas

După cum puteți vedea, un registru utilizat, un registru de deplasare, un singur cip RAM, două contoare binare, un Demultiplexorul (comparatoare prezentate), două multiplexoare și biți logica curate.

Puteți descărca schema în format Circ programul Logisim. și să se joace.

Ce urmează?

În primul rând, este posibil să se mărească capacitatea procesorului - înlocuirea componentelor de 8 biți la 16 biți.
În al doilea rând, este posibil să se facă RAM a procesorului, și se adaugă un circuit simplu care ar suspenda procesor, RAM, și de a schimba din nou include un procesor. Un astfel de sistem ar servi ca un simplu controler de intrare-ieșire. Apoi, puteți face pe baza acestui procesor de calculator, controler, sau chiar unele piese inutile amuzant.
În al treilea rând, este posibil să se realizeze toate aceste scheme în glanda. Ce am de gând să fac. De îndată ce voi - și voi fi sigur să-i spun.

Vă mulțumesc tuturor pentru atenție!

Burch / logisim /
4. casa URISC (ORISC) procesor pentru Logisim - narod.ru/disk/31367690001/oo.circ.html