sábado, 8 de octubre de 2016

TRANSFERENCIA DE REGISTROS Y MICRO-OPERACIONES


  1. MICRO-OPERACIONES BÁSICAS DE UN MICROPROCESADOR

CARGA EN PARALELO: Quizás la micro-operación mas sencilla y primordial es la de carga en paralelo ya que es la manera en que se transfieren datos de un registro a otro. Esta operación se representa por medio de las flechas como ya hemos visto anteriormente. Para explicar mejor lo que sucede cuando se realiza una operación de carga en paralelo supongamos que tenemos dos registros independiente como el A y el B. Cada uno tiene información como se muestra a continuación:


Dos registros con contenido diferente

Cada uno de los registros tiene información binaria diferente dentro de sí. Cuado nosotros realizamos una carga en paralelo B ← A la información que tenga el registro A se transfiere al registro B pero de una manera ordenada bit a bit. Esto es, el bit mas a la derecha del registro A pasará al bit mas a la derecha del registro B, el bit mas a la izquierda del registro A pasará al bit mas a la izquierda del registro B y así con todos y cada uno de los bits. A esto se le llama una carga en paralelo.



Transferencia en paralelo de información 

ARITMÉTICAS



Las micro-operaciones básicas son sumar, restar y complementar. Todas las demás operaciones aritméticas puede obtenerse de una variación o secuencia de estas micro-operaciones. La operación de multiplicación, en la mayoría de las computadoras, se ejecuta con una secuencia de micro-operaciones de suma y desplazamiento. La división se ejecuta con una secuencia de micro-operaciones de resta y desplazamiento. En la siguiente tabla se muestran las operaciones aritméticas consideradas básicas con su respectiva simbología.




Micro-operaciones aritmeticas



Nota: El apostrofe delante de un registro indica que es el complemento de dicho registro o bien que esta negado su contenido.



LÓGICAS 

Las micro-operaciones lógicas especifican operaciones binarias para una cadena de bits almacenados en los registros. Estas operaciones consideran cada bit en los registros separadamente y lo tratan como una variable binaria. Esto quiere decir que las operaciones lógicas se realizan a nivel de bit. Por ejemplo, su mi registro A contiene 1011 y mi registro B 0010 y realiza la operación A and B, el resultado se logra de realizar las operaciones 1 and 0 (bits menos significativos) 1 and 1, 0 and 0 y 1 and 0 cuyo resultado es 0010. Las micro-operaciones lógicas básicas son:
A’, negación o complemento del registro A
A٧ B, OR lógica ente A y B.
A٨B, AND lógica entre A y B
AӨB, XOR lógica entre A y B

2. MICROINSTRUCCION: Se define como el conjunto de micro órdenes que se ejecutan simultáneamente y están contenidas en una palabra de la memoria de control
Un micro-programa es una secuencia de datos binarios o micro-instrucciones que representan señales eléctricas internas de la unidad de control de un microprocesador.

Unas pocas de estas micro-instrucciones implementan una instrucción completa del microprocesador. Por ejemplo, la instrucción "sumar dos registros" típica de cualquier microprocesador, se implementa mediante la activación y desactivación de un conjunto reducido de señales eléctricas en el banco de registros y la unidad aritmético-lógica. En concreto, el micro-programa de esta instrucción significaría:

1. Activar las señales de selección de registro como primer operando de la ALU.
2. Activar las señales de selección de registro como segundo operando de la ALU. 
3. Activar las señales de selección de operador para que corresponda a la suma en la ALU. 4. Esperar unos ciclos de reloj hasta que la operación esté completada. 
5.Activar la señal de escritura en el registro acumulador.

3. Cuál es la función de los registros del procesador ante el desarrollo de micro-operaciones?

Un sistema de cómputo exige de la CPU la realización de varias funciones, captar instrucciones, interpretar instrucciones, captar datos, procesar datos y escribir datos, para que microprocesador  pueda realizar las tareas en un sistema de cómputo, es necesario que la CPU almacene alguna información de forma temporal. Esta información debe contener en un almacenamiento temporal la instrucción a ejecutar, los datos sobre los que debe operar, la dirección de la instrucción o dato a cargar en la ALU, las direcciones de salto o llamado, de forma que pueda saber dónde ir a buscar la siguiente instrucción. os anteriores hacen necesario que la CPU requiera de una memoria interna, es as+ como en la CPU, existe un conjunto de registros funcionando como un nivel de memoria que está por encima de la memoria principal y la cache, estos registros se conocen como la matriz de registros y pueden ser de dos tipos:

a). Registros visibles para el usuario: Permiten al programador de lenguaje máquina o ensamblador, minimizar las referencias a memoria principal optimizando el uso de estos registros, estos registros se pueden referenciar mediante lenguaje máquina, están disponibles para todos los programas (de sistemas y aplicación).

b). Registros de control y de estado: Utilizados por la Unidad de Control para controlar las operaciones del procesador, y por los programas o rutinas con privilegios del Sistema Operativo para controlar la ejecución del programa.

4. Diferencias entre un lenguaje ensamblador y un lenguaje de programación
El lenguaje de máquina o código máquina es el sistema de códigos directamente interpretable por un circuito micro-programable, como el microprocesador de una computadora o el micro-controlador de un autómata. Este lenguaje está compuesto por un conjunto de instrucciones que determinan acciones al ser tomadas por la máquina. 

El ensamblador es un lenguaje de programación de bajo nivel para los computadores, microprocesadores, micro-controladores y otros circuitos integrados programables. Implementa una representación simbólica de los códigos de máquina binarios 1 y 0 y otras constantes necesarias para programar una arquitectura dada de CPU y constituye la representación más directa del código máquina específico para cada arquitectura legible por un programador. 

Un lenguaje de programación de alto nivel se caracteriza por expresar los algoritmos de una manera adecuada a la capacidad cognitiva humana, en lugar de a la capacidad ejecutora de las máquinas.


No hay comentarios:

Publicar un comentario