TTL COMPUTER BY ALESSIO LOMBARDO
[HOME] [WORKLOG] [HARDWARE] [CONTACT-ME] [ ]
Sezione "ALU"
Architettura
La sezione ALU, come la sezione Registers, è utilizzata sia dalla versione Lite, sia dalla versione Full. Essa è formata da due parti: L'ALU vera e propria (Scheda ALU Core) e il registro "C" (Scheda ALU Register).
L'ALU è l'unità di calcolo. Qui avvengono le operazioni logico-aritmetiche fra un registro A e un registro B. L'ALU è costituita da 4 Integrati DM74181N della National Semiconductor. Ogni Integrato esegue calcoli a 4-bit e quindi sono necessari 4 Integrati in parallelo per effettuare calcoli a 16-bit. Questi Integrati possiedono anche due "Flags": Il Carry Out (utilizzato come Overflow nell'ultimo Integrato) e il segnale di uguaglianza (si attiva se A=B). Il segnale di Overflow è necessario solo quando si effettuano operazioni aritmetiche e non logiche. Perciò con l'utilizzo di un integrato SN74LS02N il segnale di Overflow viene disabilitato se si sta effettuando una operazione logica (piedino M Attivo). Inoltre con l'utilizzo di un integrato SN74ALS21N è possibile collegare fra loro i 4 segnali "A=B" e permettere l'attivazione di un unico segnale quando i due dati da 16-bit sono uguali. Durante i test preliminari, mi sono accorto che i 74181 scaldavano. Quindi, anche come abbellimento, ho deciso di inserire una ventola sopra i 4 Integrati.
Il Registro C è strutturalmente analogo ai registri A e B già dettagliatamente analizzati nella pagina "Registers". Questo registro è una "barriera" fra l'ALU e il Data Bus cioè evita che dei dati in entrata finiscano nelle uscite dell'ALU. Inoltre, il risultato di un'operazione non può essere direttamente scritto su un registro A o B poiché essi sono già impegnati ad effettuare l'operazione stessa. Quindi è necessario un registro che conservi il risultato e poi, se necessario, lo trasferisca sul registro desiderato.
L'ALU e il registro C vengono gestiti da un unico Control Bus di 9-bit. Sotto è riportata la tabella delle operazioni che può effettuare l'ALU e il Registro C.
Codice | Operazione | |||||
ALU | VENTOLA ALU | REGISTRO C | ||||
FUNZIONE | CODICE MNEMONICO | |||||
000000 | X | XX | A plus 1 | INC | Sconosciuta | Sconosciuta |
000001 | X | XX | A | NULA | Sconosciuta | Sconosciuta |
000011 | X | XX | A+B | OR | Sconosciuta | Sconosciuta |
000110 | X | XX | 0 | CLR | Sconosciuta | Sconosciuta |
001100 | X | XX | A minus B | SUB | Sconosciuta | Sconosciuta |
001101 | X | XX | A minus B minus 1 | CMP | Sconosciuta | Sconosciuta |
010010 | X | XX | A plus B plus 1 | ADC | Sconosciuta | Sconosciuta |
010011 | X | XX | A plus B | ADD | Sconosciuta | Sconosciuta |
010110 | X | XX | AB | AND | Sconosciuta | Sconosciuta |
011001 | X | XX | A plus A | SHFT | Sconosciuta | Sconosciuta |
011110 | X | XX | A | NULA | Sconosciuta | Sconosciuta |
011111 | X | XX | A minus 1 | DEC | Sconosciuta | Sconosciuta |
10000X | X | XX | A | NOTA | Sconosciuta | Sconosciuta |
10001X | X | XX | A+B | NOR | Sconosciuta | Sconosciuta |
10011X | X | XX | 0 | CLR | Sconosciuta | Sconosciuta |
10100X | X | XX | AB | NAND | Sconosciuta | Sconosciuta |
10101X | X | XX | B | NOTB | Sconosciuta | Sconosciuta |
10110X | X | XX | A(+)B | XOR | Sconosciuta | Sconosciuta |
11001X | X | XX | A(+)B | XNOR | Sconosciuta | Sconosciuta |
11010X | X | XX | B | NULB | Sconosciuta | Sconosciuta |
11011X | X | XX | AB | AND | Sconosciuta | Sconosciuta |
11100X | X | XX | 1 | PSET | Sconosciuta | Sconosciuta |
11110X | X | XX | A+B | OR | Sconosciuta | Sconosciuta |
11111X | X | XX | A | NULA | Sconosciuta | Sconosciuta |
XXXXXX | 0 | XX | Sconosciuta | Sconosciuta | Spenta | Sconosciuta |
XXXXXX | 1 | XX | Sconosciuta | Sconosciuta | Accesa | Sconosciuta |
XXXXXX | X | 00 | Sconosciuta | Sconosciuta | Sconosciuta | Read |
XXXXXX | X | 01 | Sconosciuta | Sconosciuta | Sconosciuta | Sleep |
XXXXXX | X | 10 | Sconosciuta | Sconosciuta | Sconosciuta | Trasparent |
XXXXXX | X | 11 | Sconosciuta | Sconosciuta | Sconosciuta | Write |
"plus" = Addizione Aritmetica / "+" = OR logico / "(+)" = XOR logico / "minus" = Sottrazione Aritmetica / Codice in rosso = Complemento a 1
Schede
La sezione "ALU" è composta da 3 schede innestate fra loro con dei connettori. Le 3 schede sono:
ALU - Core: Contiene i 4 Integrati 74181, la gestione dei segnali "Overflow" e "A=B" e un Visualizzatore a LED
ALU - Internal Bus: Distribuisce i dati in entrata dalla sezione "Registers" alla scheda "ALU Core"
ALU - Register: Contiene il registro "C" e il Data Bus
Schemi Elettrici
In progettazione...
Galleria Fotografica
Questa è la galleria fotografica della sezione "ALU". Clicca sulle foto per ingrandirle.
Dall'alto verso il basso: Scheda "ALU - Core", Scheda "ALU - Internal Bus", Scheda "ALU - Register"