Diferencia entre revisiones de «Unidad Básica de Aritmética»
Línea 7: | Línea 7: | ||
=== Registros MN === | === Registros MN === | ||
− | Los registros MN son dos registros de la ABU que funcionan como valores de entrada de la función que se va a ejecutar. | + | Los registros MN son dos registros de la ABU que funcionan como valores de entrada de la función que se va a ejecutar. Se consideran de '''solo escritura'''. |
=== Registros OP === | === Registros OP === | ||
− | Los registros OP son dos registros de la ABU que funcionan como indicadores de la operación a ejecutar. | + | Los registros OP son dos registros de la ABU que funcionan como indicadores de la operación a ejecutar. Se consideran de '''solo escritura'''. |
=== Registros XY === | === Registros XY === | ||
− | Los registros XY son dos registros de la ABU que funcionan como valores de salida de la función ejecutada. | + | Los registros XY son dos registros de la ABU que funcionan como valores de salida de la función ejecutada. Se consideran de '''solo lectura'''. |
== Operaciones de la ABU == | == Operaciones de la ABU == | ||
Línea 42: | Línea 42: | ||
'''X = M xor N;''' >> 0 = 0,0 || 1 = 0,1 || 1 = 1,0 || 0 = 1,1 | '''X = M xor N;''' >> 0 = 0,0 || 1 = 0,1 || 1 = 1,0 || 0 = 1,1 | ||
'''Y = M and N;''' >> 0 = 0,0 || 0 = 0,1 || 0 = 1,0 || 1 = 1,1 | '''Y = M and N;''' >> 0 = 0,0 || 0 = 0,1 || 0 = 1,0 || 1 = 1,1 | ||
+ | |||
+ | == Acceso a los registros == | ||
+ | |||
+ | La asignación de registros de '''solo escritura''' (MN y OP) y de '''solo lectura''' (XY) permite que, con una sola instrucción (la '''A''': ''1010'') se pueda escribir '''o''' leer los registros de la '''ABU''' a el valor del registro '''K''' de la [[CPU]]. | ||
+ | |||
+ | Para el acceso a estos registros se envían los valores de los registros azules '''UVW''' de la [[CPU]] así como el valor de K. Los valores de los registros '''UVW''' indicarán cual de los seis registros (y dos valores constantes) se usarán, y el valor del registro de la [[CPU]] '''K''' sólo se usará para los registros de '''solo escritura'''; los otros registros, los de '''solo lectura''', copiarán su valor al restro '''K''' de la [[CPU]] para finalizar la ejecución de esta instrucción. | ||
+ | |||
+ | La siguiente tabla especifica los registros de la '''ABU''' para los valores de los registros '''UVW''' de la [[CPU]] pasados. | ||
+ | |||
+ | {| border="1" cellpadding="2" | ||
+ | |- | ||
+ | ! U || V || W || Registro | ||
+ | |- | ||
+ | ! 0 || 0 || 0 ||| Siempre es '''0''' (solo lectura) | ||
+ | |- | ||
+ | ! 0 || 0 || 1 ||| O | ||
+ | |- | ||
+ | ! 0 || 1 || 0 ||| P | ||
+ | |- | ||
+ | ! 0 || 1 || 1 ||| X | ||
+ | |- | ||
+ | ! 1 || 0 || 0 ||| Y | ||
+ | |- | ||
+ | ! 1 || 0 || 1 ||| N | ||
+ | |- | ||
+ | ! 1 || 1 || 0 ||| M | ||
+ | |- | ||
+ | ! 1 || 1 || 1 ||| Siempre es '''1''' (solo lectura) | ||
+ | |} | ||
+ | |||
+ | |||
+ | K = abu_dameytoma(K, U, V, W); |
Revisión del 23:47 6 may 2009
La ABU o Unidad Básica de Aritmética es una de las Unidades Básicas de la Arquitectura eWa. Es la encargada de realizar las operaciones booleanas más básicas unarias y binarias: or, nor; nxor, nand; not; y xor, and.
Sumario
Registros de la ABU
La ABU tiene seis registros, dos a dos, nombrados MN, OP, y XY.
Registros MN
Los registros MN son dos registros de la ABU que funcionan como valores de entrada de la función que se va a ejecutar. Se consideran de solo escritura.
Registros OP
Los registros OP son dos registros de la ABU que funcionan como indicadores de la operación a ejecutar. Se consideran de solo escritura.
Registros XY
Los registros XY son dos registros de la ABU que funcionan como valores de salida de la función ejecutada. Se consideran de solo lectura.
Operaciones de la ABU
La ABU permite la ejecución de cuatro instrucciones dobles, aunque solo son siete, ya que una de ellas (la not 10) es doble. La operación se indica con los valores OP, se toman como valores de entrada los de MN y se escribe la salida en los XY.
Operación O=0 y P=0 (00)
X = M or N; >> 0 = 0,0 || 1 = 0,1 || 1 = 1,0 || 1 = 1,1 Y = M nor N; >> 1 = 0,0 || 0 = 0,1 || 0 = 1,0 || 0 = 1,1
Operación O=0 y P=1 (01)
X = M nxor N; >> 1 = 0,0 || 0 = 0,1 || 0 = 1,0 || 1 = 1,1 Y = M nand N; >> 1 = 0,0 || 1 = 0,1 || 1 = 1,0 || 0 = 1,1
Operación O=1 y P=0 (10)
Esta operación es la única unaria que tiene la ABU. Es la not.
X = not M; >> 1 = 0 || 0 = 1 Y = not N; >> 1 = 0 || 0 = 1
Operación O=1 y P=1 (11)
X = M xor N; >> 0 = 0,0 || 1 = 0,1 || 1 = 1,0 || 0 = 1,1 Y = M and N; >> 0 = 0,0 || 0 = 0,1 || 0 = 1,0 || 1 = 1,1
Acceso a los registros
La asignación de registros de solo escritura (MN y OP) y de solo lectura (XY) permite que, con una sola instrucción (la A: 1010) se pueda escribir o leer los registros de la ABU a el valor del registro K de la CPU.
Para el acceso a estos registros se envían los valores de los registros azules UVW de la CPU así como el valor de K. Los valores de los registros UVW indicarán cual de los seis registros (y dos valores constantes) se usarán, y el valor del registro de la CPU K sólo se usará para los registros de solo escritura; los otros registros, los de solo lectura, copiarán su valor al restro K de la CPU para finalizar la ejecución de esta instrucción.
La siguiente tabla especifica los registros de la ABU para los valores de los registros UVW de la CPU pasados.
U | V | W | Registro |
---|---|---|---|
0 | 0 | 0 | Siempre es 0 (solo lectura) |
0 | 0 | 1 | O |
0 | 1 | 0 | P |
0 | 1 | 1 | X |
1 | 0 | 0 | Y |
1 | 0 | 1 | N |
1 | 1 | 0 | M |
1 | 1 | 1 | Siempre es 1 (solo lectura) |
K = abu_dameytoma(K, U, V, W);