Ce este un tabel de adevăr complet de 2 biți?


Cel mai bun răspuns

A Truth Tables este un tabel care vă oferă ieșirea unei funcții booleene pentru orice combinație posibilă de intrări. O sumă completă este o funcție booleană (sau o bucată de hardware care o implementează) care, dată două numere întregi de 2 biți, vă oferă suma acelor numere întregi, inclusiv reportarea. (O jumătate de sumator adaugă doar numerele, dar ignoră reportarea). Dacă aveți două numere întregi de 2 biți ca intrare, există 16 intrări posibile, deci tabelul dvs. va avea 16 rânduri. Iată cum poate arăta dacă intrările dvs. sunt a și b cu biți, ieșirea este xabx 00 00 000 00 01 001 00 10 010 00 1 1 011 01 00 001 01 01 010 01 10 011 01 11 100 11 00 011 10 01 011 10 10 100 10 11 101 11 00 011 11 01 100 11 10 101 11 11 110

Răspuns

Răspunsul glib este „orice vrea designerul”.

Când am început să mă uit la proiectarea computerelor la sfârșitul anilor 1970, aveam cunoștințe în matematică și, într-o măsură mai mică, în programarea computerelor. O parte din lucrările timpurii făcute au implicat proiectarea și implementarea seturilor de instrucțiuni și În special, a operațiilor aritmetice. Toate acestea au necesitat să construiesc o înțelegere a aritmeticii computerului și, din cauza fundalului, am făcut-o dintr-un punct de vedere ușor abstract, matematic. Acest lucru a fost în contrast cu ceea ce a fost prezentat într-o mulțime de manuale electronice și de proiectare a computerelor care stabilesc funcții (de exemplu, addere) și implementarea lor, dar nu au dat întotdeauna motivație.

Motivația pentru implementarea unui sumator este de a lua două seturi de biți („cuvinte”), reprezentând numere, și de a produce o ieșire care reprezintă suma acestor biți. Există trei dintre întrebările cheie de pus aici. În primul rând, care sunt numerele pe care încercăm să le reprezentăm. În al doilea rând, cum sunt reprezentate aceste numere ca biți. Și în al treilea rând, ceea ce se presupune că se va întâmpla dacă suma celor două numere nu poate fi reprezentată ca un set de biți.

O situație obișnuită (N-bit, endian mic, întreg nesemnat) este că Cuvântul N-bit este utilizat pentru a reprezenta numerele întregi [0,2^N-1], , iar cuvântul B[N-1]...B[0] reprezintă valoarea ΣB[i]2^i: i in [0,N-1]. A treia întrebare este o problemă – suma celor două intrări poate fi în intervalul [0,2*(2^N-1)] și deci există rezultate care nu pot fi reprezentate.

A simpla implementare manuală a unui „sumator N-bit” îl construiește din N „addere complete pe 1 bit”. În plus față de cele 2 seturi de N biți de operand, există un bit de transfer (forțat la zero) și un bit de transport. Dacă rezultatul matematic al adunării poate fi reprezentat, atunci N-biții de rezultat din sumator vor fi reprezentarea corectă a rezultatului, iar efectuarea va fi 0. Dacă, pe de altă parte, rezultatul matematic al adunarea nu poate fi reprezentată, atunci N-biții de rezultat din sumator vor fi reprezentarea corectă a rezultatului modulo 2 ^ N, iar realizarea va fi 1. Pentru a rezuma, acest sumator produce întotdeauna rezultatul corect modulul 2 ^ N și a efectua indică faptul că rezultatul corect nu este reprezentabil. Unele sisteme de calculatoare vor dori să trateze acest lucru ca pe o eroare, poate înregistrând-o într-un steag, sau provocând o excepție.

O altă situație obișnuită (N-bit, puțin endian, număr întreg cu două semnături) este că Cuvântul N-bit este utilizat pentru a reprezenta numerele întregi [-2^(N-1),2^(N-1)-1], , iar cuvântul B[N-1]...B[0] reprezintă valoarea -B[N-1]*2^N + ΣB[i]2^i: i in [0,N-1]*. Din nou, există rezultate care nu pot fi reprezentate. Sumatorul descris anterior a produs rezultatul corect pentru toate rezultatele reprezentabile (motiv pentru care se folosește două aritmetice complementare). Cu toate acestea, efectuarea nu indică dacă rezultatul este reprezentabil. (Luați în considerare -1 + 1 = 0 care produce o realizare și 0 + 0 = 0 care nu). Pentru complementul celor doi, condiția care reprezintă un rezultat neprezentabil (denumit în mod obișnuit „depășire”) este că bitul de semn (cel mai semnificativ bit) al rezultatului este „neașteptat” – adică suma a două numere negative pare a fi pozitivă sau suma a două numere pozitive pare a fi negativă (exercițiu pentru cititor pentru a arăta că suma a două număr de semne diferite poate fi întotdeauna reprezentată).

Unele alte reprezentări ar putea folosi aceleași adunători ca numere întregi semnate și nesemnate. Pentru reprezentările fracționate în care valoarea unui cuvânt este valoarea cuvântului, tratată ca un număr întreg, împărțită la o putere de două, sumatorul produce rezultatul corect atunci când valoarea este reprezentabilă. Cu toate acestea, în sistemele care utilizează aceste reprezentări, uneori comportamentul dorit este că rezultatele se „satură” – adică rezultatul este în afara intervalului, suma este cea mai pozitivă sau cea mai negativă valoare, după caz. Alte sisteme 2 una dintre valori, (de obicei 10 … 0) pentru utilizare ca valoare de eroare care se va propaga apoi prin operații ulterioare. În acest caz va fi nevoie de un adder special.

* Această formulare explicită forma complementului celor doi – valoarea semnată a cuvântului este valoarea nesemnată a cuvântului minus 2 ^ N ori bitul superior (bitul semn). În mod echivalent, valoarea poate fi scrisă -B[N-1]*2^(N-1) + ΣB[i]2^i: i in [0,N-2] care corespunde bitului superior reprezentând 0 sau -1, mai degrabă decât 0 sau +1.

Lasă un răspuns

Adresa ta de email nu va fi publicată. Câmpurile obligatorii sunt marcate cu *