Diferencia entre revisiones de «Unidad Básica de Aritmética»
Línea 47: | Línea 47: | ||
La naturaleza de registros de '''solo escritura''' ('''MN''' y '''OP''') y de '''solo lectura''' ('''XY''') permite que, con una sola instrucción ([[Código máquina#B_.281011.29|'''B''': ''1011'']]) se pueda escribir '''o''' leer los registros de la '''ABU''' al/del valor del registro '''K''' de la [[CPU]]. | La naturaleza de registros de '''solo escritura''' ('''MN''' y '''OP''') y de '''solo lectura''' ('''XY''') permite que, con una sola instrucción ([[Código máquina#B_.281011.29|'''B''': ''1011'']]) se pueda escribir '''o''' leer los registros de la '''ABU''' al/del valor del registro '''K''' de la [[CPU]]. | ||
− | Para determinar cuál de estos registros se apuntará, se envían los valores de los ''registros azules'', '''UVW''', de la [[CPU]]. También se pasará el valor del registro '''Z''' de la [[CPU]] para indiciar (si ''K == 1'') que se debe ejecutar la | + | Para determinar cuál de estos registros se apuntará, se envían los valores de los ''registros azules'', '''UVW''', de la [[CPU]]. También se pasará el valor del registro '''Z''' de la [[CPU]] para indiciar (si ''K == 1'') que se debe ejecutar la [[ABU#Operaciones_de_la_ABU|función de operación]] en la '''ABU''' antes de realizar el acceso. Por último, también se pasa el valor de '''K''' para indicar el valor que se escribirá si se trata de una '''escritura''' en los registros de la '''ABU'''. |
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. | 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. |
Revisión del 23:19 5 mar 2013
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, OP=10 (10) (la not), 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 = OP(0,0) || 1 = OP(0,1) || 1 = OP(1,0) || 1 = OP(1,1) Y = M nor N; >> 1 = OP(0,0) || 0 = OP(0,1) || 0 = OP(1,0) || 0 = OP(1,1)
Operación O=0 y P=1 (01)
X = M nxor N; >> 1 = OP(0,0) || 0 = OP(0,1) || 0 = OP(1,0) || 1 = OP(1,1) Y = M nand N; >> 1 = OP(0,0) || 1 = OP(0,1) || 1 = OP(1,0) || 0 = OP(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 = OP(0) || 0 = OP(1) Y = not N; >> 1 = OP(0) || 0 = OP(1)
Operación O=1 y P=1 (11)
X = M xor N; >> 0 = OP(0,0) || 1 = OP(0,1) || 1 = OP(1,0) || 0 = OP(1,1) Y = M and N; >> 0 = OP(0,0) || 0 = OP(0,1) || 0 = OP(1,0) || 1 = OP(1,1)
Acceso a los registros
La naturaleza de registros de solo escritura (MN y OP) y de solo lectura (XY) permite que, con una sola instrucción (B: 1011) se pueda escribir o leer los registros de la ABU al/del valor del registro K de la CPU.
Para determinar cuál de estos registros se apuntará, se envían los valores de los registros azules, UVW, de la CPU. También se pasará el valor del registro Z de la CPU para indiciar (si K == 1) que se debe ejecutar la función de operación en la ABU antes de realizar el acceso. Por último, también se pasa el valor de K para indicar el valor que se escribirá si se trata de una escritura en los registros de la ABU.
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.
Z | U | V | W | Registro |
---|---|---|---|---|
x | 0 | 0 | 0 | Siempre es 0 (solo lectura) |
x | 0 | 0 | 1 | O (solo escritura) |
x | 0 | 1 | 0 | P (solo escritura) |
x | 0 | 1 | 1 | X (solo lectura) |
x | 1 | 0 | 0 | Y (solo lectura) |
x | 1 | 0 | 1 | N (solo escritura) |
x | 1 | 1 | 0 | M (solo escritura) |
x | 1 | 1 | 1 | Siempre es 1 (solo lectura) |