PROCESADOR (E/S)



En las entradas y salidas que se ejecutan desde el procesador entran tres conceptos que se deben conocer.

  1. El DMA
  2. Los Canales
  3. Y las instrucciones


DMA

Con un incremento moderado de la l�gica asociada con el perif�rico se puede lograr transferir un bloque de informaci�n a o desde la memoria principal sin la intervenci�n directa de la UCP. Esto requiere que los perif�ricos o los controladores de E/S sean capaces de generar direcciones de memoria y transferir datos a o desde el bus del sistema. La UCP es todav�a la responsable de iniciar la transferencia de cada bloque. A partir de este punto el controlador de E/S realiza toda la operaci�n sin que la UCP tenga que ejecutar ning�n otro programa. La UCP y el controlador de E/S interaccionan s�lo cuando la UCP debe dar el control del bus del sistema al controlador de E/S, como respuesta a una petici�n de este �ltimo. Este tipo de capacidad es lo que se conoce como Acceso Directo a Memoria (DMA).

La mayor�a de los computadores de hoy d�a tienen la posibilidad de interrupci�n y de DMA. Un controlador de DMA posee un control parcial de la operaci�n de E/S. La UCP puede liberarse totalmente si se introduce en el computador un Procesador de E/S (PE/S) o canal. An�logamente al DMA, el PE/S tiene acceso a la memoria principal y puede interrumpir a la UCP, sin embargo puede emplear un repertorio de instrucciones diferentes del de la UCP (ya que est� orientado a operaciones de E/S).

Regresar Arriba



CANALES

El canal de E/S es una extensi�n del concepto de DMA. Un canal de E/S tiene la capacidad de ejecutar instrucciones de E/S, lo que da un control total sobre las operaciones de E/S.

Las instrucciones de E/S se almacenan en la memoria principal y ser�n ejecutadas por un procesador de prop�sito espec�fico en el mismo canal de E/S.

Hay dos tipos comunes de canales de E/S, como se ilustra en la figura:

canales

Regresar Arriba



INSTRUCCIONES

Las instrucciones que se ejecutan en los procesadores, varia mucho de uno a otro, incluso en los modelos variantes de cada uno de ellos, algunas instrucciones cambian, para mejorar (a veces para empeorar) el rendimiento, o se a�aden nuevas instrucciones.

Las instrucciones tambi�n se pueden clasificar por el tipo de operaci�n que realiza, como por ejemplo. El control de cadenas de caracteres, el control de la memoria cache, Instrucciones aritm�ticas, instrucciones de transferencia de datos, instrucciones de comparaci�n.

En forma general las instrucciones del procesador, le permiten realizar tareas, esto ejecut�ndose a un tiempo una o varias de estas instrucciones, en algunos procesadores las instrucciones se dividan de acuerdo al �rea del procesador en la cual tuvieran acci�n.

A continuaci�n se presentan instrucciones de varios procesadores, algunos son ya viejas y no se usan en la actualidad, como se vera en algunos, que pertenecen a una misma familia, las instrucciones var�an o se han a�adido otras.


Instrucciones del 4004

Hay instrucciones de uno o dos bytes. Los primeros tardan 8 per�odos de reloj (un ciclo de instrucci�n). Los segundos tardan 16 per�odos de reloj (dos ciclos de instrucci�n).

Algunas Instrucciones del procesador 4004
Mnem�nico Descripci�n OPR OPA
WRM Escribir el acumulador en RAM 1110 0000
WMP Escribir el acumulador en port de salida de RAM 1110 0001
WRR Escribir el acumulador en port de salida de ROM 1110 0010
WPM Escribir el acumulador en el medio byte especificado de RAM (se usa en los microprocesadores 4008 y 4009 solamente) 1110 0011
WR0 Escribir el acumulador en el car�cter de estado de RAM 0, 1, 2, 3 1110 0100
WR1 1110 0101
WR2 1110 0110
WR3 1110 0111
SBM Restar el contenido de la posici�n previamente especificada de RAM del acumulador con pr�stamo 1110 1000
RDM Cargar en el acumulador el contenido de la posici�n de RAM 1110 1001
RDR Cargar en el acumulador el contenido del port de entrada de ROM1110 1010
ADM Sumar el contenido de la posici�n previamente especificada de RAM al acumulador con acarreo 1110 1011
RD0 Almacenar en el acumulador el car�cter de estado de RAM 0, 1, 2, 3 1110 1100
RD1 1110 1101
RD2 1110 1110
RD3 1110 1111

La siguiente tabla muestra el grupo de instrucciones del acumulador.

Mnem�nico Descripci�n OPR OPA
CLB Limpiar el acumulador y el acarreo 1111 0000
CLC Limpiar el indicador de acarreo 1111 0001
IAC Incrementar el acumulador 1111 0010
CLC Complementar el acarreo 1111 0011
CMA Complementar el acumulador 1111 0100
RAL Rotar acumulador y acarreo hacia la izquierda 1111 0101
RAR Rotar acumulador y acarreo hacia la derecha 1111 0110
TCC Sumar acarreo al acumulador y limpiar el acarreo 1111 0111
DAC Decrementar el acumulador 1111 1000
TCS Restar acarreo del acumulador y limpiar el acarreo 1111 1001
STC Poner el acarreo a uno 1111 1010
DAA Ajuste decimal del acumulador 1111 1011
KBP Convierte un c�digo 1 de 4 a binario en el acumulador 1111 1100
DCL Designar l�nea de comando 1111 1101


INSTRUCCIONES DEL 80186 DE INTEL

PUSHA: Almacena los registros de uso general en la pila, en el siguiente orden: AX, CX, DX, BX, SP, BP, SI, DI.

POPA: Extrae los registros de uso general de la pila, retir�ndolos en el sentido inverso a PUSHA (pero descarta la imagen de SP).

PUSH inmed: Ingresa un valor inmediato a la pila.

INSB: Operaci�n: ES:[DI] <- Port DX (Un byte), DI<-DI+1 (si DF=0) o DI<-DI-1 (si DF=1).

INSW: Operaci�n: ES:[DI] <- Port DX (Dos bytes), DI<-DI+2 (si DF=0) o DI<-DI-2 (si DF=1).

OUTSB: Operaci�n: Port DX <- DS:[SI] (Un byte), SI<-SI+1 (si DF=0) o SI<-SI-1 (si DF=1).

OUTSW: Operaci�n: Port DX <- DS:[SI] (Dos bytes), SI<-SI+2 (si DF=0) o SI<:-SI-2 (si DF=1).

Shift dest,inmed. Se puede especificar directamente (sin cargar primero el valor en el registro CL) la cantidad de bits del desplazamiento. Shift es una de las siguientes instrucciones: ROL, ROR, RCL, RCR, SHL, SAL, SHR, SAR.

BOUND reg16,mem32. Verifica que el valor contenido en el registro se encuentre entre los dos valores indicados en la memoria (un valor est� dado por los dos primeros bytes, y el otro por los dos �ltimos). Si est� fuera de rango se ejecuta una interrupci�n interna de tipo 5. De esta manera se puede observar que BOUND es una instrucci�n de interrupci�n condicional, como INTO.

ENTER local_variables_size, nesting_level y LEAVE son instrucciones que sirven para facilitar a los compiladores de alto nivel la codificaci�n de subrutinas o procedimientos. Para ello utilizan la pila para almacenar los par�metros y las variables locales. Estos valores se acceden mediante direccionamiento indirecto usando el registro BP. Al principio de la subrutina se deber� indicar, mediante la instrucci�n ENTER, el tama�o total (en bytes) de las variables locales de la subrutina (local_variables_size) y cu�ntos punteros a variables locales (estos se acceder�n usando [BP-xxxx] donde xxxx es la posici�n relativa de la variable local) y par�metros (los valores que se almacenaban en el registro BP) de subrutinas de nivel superior se necesitan ver (nesting_level) (en general, este valor debe ser cero) (en [BP] est� almacenado el puntero a las variables locales y par�metros de la subrutina que llam� a la actual, en [BP+2] se obtienen los de la subrutina que llam� a la anterior (esto s�lo si nesting_level > 0), y as� sucesivamente. Al final de la subrutina, antes de la instrucci�n RET deber� haber una instrucci�n LEAVE. Cuando se usan estas instrucciones, el programa no debe manejar el registro BP


NUEVAS INSTRUCCIONES DEL PENTIUM

CMPXCHG8B reg, mem64 (Compare and Exchange 8 Bytes): Compara el valor de 64 bits ubicado en EDX:EAX con un valor de 64 bits situado en memoria. Si son iguales, el valor en memoria se reemplaza por el contenido de ECX:EBX y el indicador ZF se pone a uno. En caso contrario, el valor en memoria se carga en EDX:EAX y el indicador ZF se pone a cero.

CPUID (CPU Identification): Le informa al software acerca del modelo de microprocesador en que est� ejecutando. Un valor cargado en EAX antes de ejecutar esta instrucci�n indica qu� informaci�n deber� retornar CPUID. Si EAX = 0, se cargar� en dicho registro el m�ximo valor de EAX que se podr� utilizar en CPUID (para el Pentium este valor es 1). Adem�s, en la salida aparece la cadena de identificaci�n del fabricante contenido en EBX, ECX y EDX. EBX contiene los primeros cuatro caracteres, EDX los siguientes cuatro, y ECX los �ltimos cuatro. Para los procesadores Intel la cadena es "GenuineIntel". Luego de la ejecuci�n de CPUID con EAX = 1, EAX[3:0] contiene la identificaci�n de la revisi�n del microprocesador, EAX[7:4] contiene el modelo (el primer modelo est� indicado como 0001b) y EAX[11:8] contiene la familia (5 para el Pentium). EAX[31:12], EBX y ECX est�n reservados. El procesador pone el registro de caracter�sticas en EDX a 1BFh, indicando las caracter�sticas que soporta el Pentium. Un bit puesto a uno indica que esa caracter�stica est� soportada. La instrucci�n no afecta los indicadores.

RDMSR (Read from Model-Specific Register): El valor en ECX especifica uno de los registros de 64 bits espec�ficos del modelo del procesador. El contenido de ese registro se carga en EDX:EAX. EDX se carga con los 32 bits m�s significativos, mientras que EAX se carga con los 32 bits menos significativos.

RDTSC (Read from Time Stamp Counter): Copia el contenido del contador de tiempo (TSC) en EDX:EAX (el Pentium mantiene un contador de 64 bits que se incrementa por cada ciclo de reloj). Cuando el nivel de privilegio actual es cero el estado del bit TSD en el registro de control CR4 no afecta la operaci�n de esta instrucci�n. En los anillos 1, 2 � 3, el TSC se puede leer s�lo si el bit TSD de CR4 vale cero.

RSM (Resume from System Management Mode): El estado del procesador se restaura utilizando la copia que se cre� al entrar al modo de manejo del sistema (SMM). Sin embargo, los contenidos de los registros espec�ficos del modelo no se afectan. El procesador sale del SMM y retorna el control a la aplicaci�n o sistema operativo interrumpido. Si el procesador detecta alguna informaci�n inv�lida, entra en el estado de apagado (shutdown).

WRMSR (Write to Model-Specific Register): El valor en ECX especifica uno de los registros de 64 bits espec�ficos del modelo del procesador. El contenido de EDX:EAX se carga en ese registro. EDX debe contener los 32 bits m�s significativos, mientras que EAX debe contener los 32 bits menos significativos.


INSTRUCCIONES DE TRANSFERENCIA DE DATOS

MOV- Mover CMOVE/CMOVZ- Movimiento condicional si es igual/Movimiento condicional si es cero

CMOVNE/CMOVNZ- Movimiento condicional si no es igual/Movimiento condicional si no es cero

CMOVA/CMOVNBE- Movimiento condicional si est� arriba/Movimiento condicional si no est� debajo o es igual

CMOVAE/CMOVNB- Movimiento condicional si est� arriba o es igual/Movimiento condicional si no est� debajo

CMOVB/CMOVNAE- Movimiento condicional si est� debajo/Movimiento condicional si no est� arriba o es igual

CMOVBE/CMOVNA- Movimiento condicional si est� abajo o es igual/Movimiento condicional si no est� arriba

CMOVG/CMOVNLE- Movimiento condicional si es mayor/Movimiento condicional si no es menor o igual

CMOVGE/CMOVNL- Movimiento condicional si es mayor o igual/Movimiento condicional si no es menor

CMOVC- Movimiento condicional si hay acarreo

CMOVNC- Movimiento condicional si no hay acarreo

CMOVO- Movimiento condicional si hay desbordamiento

CMOVNO- Movimiento condicional si no hay desbordamiento

CMOVS- Movimiento condicional si hay signo (negativo)

CMOVNS- Movimiento condicional si no hay signo (no negativo)

CMOVP/CMOVPE- Movimiento condicional si hay paridad/Movimiento condicional si la paridad es par

XCHG- Intercambio

BSWAP- Cambio de byte

XADD- Intercambiar y a�adir

CMPXCHG- Comparar e intercambiar

CMPXCHG8B- Comparar e intercambiar 8 bytes

PUSH- Almacenar en la pila

POP- Recuperar de la pila

PUSHA/PUSHAD- Almacenar registros de prop�sito general en la pila

POPA/POPAD- Recuperar registros de prop�sito general de la pila

CBW/CWDE- Convertir byte en palabra/Convertir palabra en palabra doble en el registro EAX


INSTRUCCIONES ARITM�TICAS BINARIAS

ADD- Sumar enteros

ADC- Sumar con acarreo

SUB- Restar

SBB- Restar con pr�stamo

IMU-L Multiplicaci�n con signo

MUL- Multiplicaci�n sin signo

IDIV- Divisic�n con signo

DIV- Divisi�n sin signo

INC- Incremento

DEC -Decremento

NEG- Negar

CMP- Comparar



ARITM�TICA DECIMAL

DAA- Ajuste decimal despu�s de a�adir

DAS- Ajuste decimal despu�s de sustraer

AAA- Ajuste ASCII despu�s de a�adir

AAS- Ajuste ASCII despu�s de sustraer

AAM- Ajuste ASCII despu�s de a�adir

AAD- Ajuste ASCII antes de dividr



INSTRUCCIONES L�GICAS

AND- Y

OR- O

XOR- O exclusivo

NOT- No



Estas son solo una peque�a parte de los cientos de instrucciones que tiene el procesador ( en este caso el Pentium), los procesadores predecesores, como el Pentium II, Pentium III y las variantes de ellos (XEON, CELERON) pueden contener otras instrucciones o variantes de estas.

Arriba



regresar


inicio
Si llegaste a esta pagina desde un buscador
haz click aqui para ir a la pagina principal
Hosted by www.Geocities.ws

1