6set de instrucciones del cpu 2012-1

21
Universidad Nacional de Ingeniería Facultad de Ingeniería Industrial y de Sistemas Curso : Arquitectura del computador – ST 314 V Profesor : Lic. José Alberto Zamora Ramírez Set de Instrucciones del CPU 1. ¿ Que es una instrucción ? Una instrucción se puede ver como una cadena de bits que se agrupan en campos con tamaños diferentes. Ejemplo: add al,30h Las instrucciones que es capaz de realizar el CPU (Unidad Central de Proceso) se denominan instrucciones de máquina y el lenguaje que se utiliza para su codificación es el lenguaje máquina. Cada procesador es capaz de ejecutar una cierta cantidad de instrucciones distintas, las que son conocidas como conjunto de instrucciones (Set Instruction) que es particular para cada tipo de procesador. Debemos recordar que la Unidad de Control, componente del CPU, es la encargada de buscar y hacer ejecutar las instrucciones. Es entonces una especie de director de operaciones, que manda a todas las restantes partes de la máquina, lo que deben hacer y en que instante de tiempo hacerlo. 1

Upload: pedro-pairazaman-silva

Post on 09-Feb-2016

220 views

Category:

Documents


0 download

DESCRIPTION

6Set de Instrucciones Del CPU 2012-1

TRANSCRIPT

Page 1: 6Set de Instrucciones Del CPU 2012-1

Universidad Nacional de IngenieríaFacultad de Ingeniería Industrial y de Sistemas

Curso : Arquitectura del computador – ST 314 VProfesor : Lic. José Alberto Zamora Ramírez

Set de Instrucciones del CPU

1. ¿ Que es una instrucción ?Una instrucción se puede ver como una cadena de bits que se agrupan

en campos con tamaños diferentes. Ejemplo:

add al,30hLas instrucciones que es capaz de realizar el CPU (Unidad Central de

Proceso) se denominan instrucciones de máquina y el lenguaje que se utiliza para su codificación es el lenguaje máquina. Cada procesador es capaz de ejecutar una cierta cantidad de instrucciones distintas, las que son conocidas como conjunto de instrucciones (Set Instruction) que es particular para cada tipo de procesador.

Debemos recordar que la Unidad de Control, componente del CPU, es la encargada de buscar y hacer ejecutar las instrucciones. Es entonces una especie de director de operaciones, que manda a todas las restantes partes de la máquina, lo que deben hacer y en que instante de tiempo hacerlo.

1

Page 2: 6Set de Instrucciones Del CPU 2012-1

2. ¿ Cuales son los elementos de una instrucción de máquina?La forma de la instrucción es conocida como formato de la misma, que

puede ser tal como el indicado en la figura, en la cual se destacan tres campos: el del código operativo, el de la referencia al primer operando y el correspondiente a la referencia al segundo operando.

Figura - Un formato de instrucción simple de dos direcciones.

Dada la dificultad, tanto para el escritor como para el lector, para interpretar las expresiones en código binario de las instrucciones de máquina, se ha convertido en práctica corriente la de utilizar representaciones simbólicas, en las cuales los códigos operativos son reemplazados por abreviaturas nemotécnicas, tales como:

ADD sumaSUB sustracciónMUL multiplicaciónDIV divisiónMOV almacenamiento de datos en memoria

Cada instrucción debe contener toda la información requerida para que la CPU realice la ejecución. Los elementos que por lo general están presentes son:

a) Código de Operación : Especifica la operación a ser llevada a cabo. Esta es indicada por un código binario, también conocido como “Código Operativo” o CODOP

b) Referencia al operando fuente: Esta operación puede comprender una o más fuentes de operandos, o sea datos que son las entradas de la operación.

c) Referencia al operando resultado: La operación puede generar un resultado.

d) Referencia a la próxima instrucción: Lo que indica a la CPU donde buscar la próxima instrucción, luego de haber concluido la ejecución de la actual.

La nueva instrucción a buscar se encuentra alojada en memoria, o en un sistema de memoria virtual, en la principal o en la secundaria (disco). Donde no hay una referencia específica a la próxima instrucción, ella se encuentra en la casilla siguiente, en cambio cuando se precisa una referencia específica, se debe además suministrar la dirección en la memoria principal o en la virtual.

2

6 código

operativo referencia operando 1

referencia operando 2

n bits

Page 3: 6Set de Instrucciones Del CPU 2012-1

Los operandos fuente y resultado, pueden encontrarse en alguna de las siguientes tres áreas:

- Memoria principal o virtual: Como referencia a la próxima instrucción debe entregarse la dirección en la cual se encuentra, tanto sea en la memoria principal como en la virtual.

- Registro de la UCP: Con raras excepciones, la UCP contiene uno o más registros que pueden ser referenciados por las instrucciones de máquina. Cuando existe uno solo, la referencia puede ser implícita. Si existen varios, a cada uno se le asigna un número, y la instrucción con tendrá el número del referenciado.

- Dispositivo de E/S: La instrucción debe especificar cual módulo y cual dispositivo se utilizarán para la operación. Si se utiliza un sistema de E/S por memoria mapeada, es necesaria la dirección de memoria principal o virtual a la cual se conecta el dispositivo a emplear.

Resumiendo : Las instrucciones tienen un Código de operación, que indica qué operación se debe realizar por el procesador, y además los operandos, relativos a los datos, que son necesarios para realizar su misión. Por tanto, cada instrucción contiene el citado código de operación y un campo de dirección que especifica donde localizar los operandos que son necesarios para dicha operación

3. El Repertorio de instrucciones• El funcionamiento de la CPU está determinado por las instrucciones que ejecuta• El medio por el que el programador controla la CPU• CPU: Nivel de microprocesador (organización e instrucciones del hardware)

3

Page 4: 6Set de Instrucciones Del CPU 2012-1

• Nivel máquina: microprogramas (no hardware)• El diseño del repertorio de instrucciones

– Complejo (afecta a muchos aspectos del computador)– Define las funciones que realiza la CPU (influye en la implementación)– Es un tema de controversia– Aspectos de diseño a los que afecta:

• Repertorio de operaciones• Tipos de datos con los que se realizan operaciones• Formato de las instrucciones• Registros• Direccionamiento

• Procesadores de propósito específico (ej: impresoras)• Procesadores de propósito general:

– CISC– RISC

Detalle:• CISC (Complex Instruction Set Computer) Computadores de juego de instrucciones complejo

– Número grande de instrucciones– Instrucciones complejas

• Ventajas aparentes:– Simplificar compiladores: Al implementa instrucciones máquina parecidas al lenguaje de alto nivel, se reduce el número de instrucciones máquina a ejecutar.– Programas más pequeños (menos instrucciones) y rápidos

• Realidad4

Page 5: 6Set de Instrucciones Del CPU 2012-1

– Instrucciones difíciles de aprovechar– Programas más pequeños en nº de instrucciones no implica más pequeños en bits– CPU complejas con un repertorio de instrucciones grande son lentas (aunque tengan pocas instrucciones no se ejecutan rápidamente)– Instrucciones desiguales dificultan procesamiento paralelo.

• RISC (Reduced Instruction Set Computer) computadores de juego de instrucciones reducido

– Repertorio de instrucciones pequeño (instrucciones importantes y utilizadas)

• Ventajas:– Se descomponen sólo las instrucciones menos frecuentes– Las instrucciones se ejecutan rápidamente (son simples)– Fáciles de procesar (permiten procesamiento paralelo)– Se consiguen computadores

• Eficientes• Escalables• Necesitan menos lógica para ejecutar instrucciones: baratos

• Inconvenientes:– Requieren compiladores más complejos

• CISC vs RISC: • RISC: más potentes, y rápidos... ¡¡pero el mercado se inclinó por CISC!!

– CISC tiene un coste “razonable” para el usuario final (RISC se incorporó a equipos “de gama alta”)– Para el usuario medio las prestaciones CISC son suficientes– El software de CISC y RISC es incompatible

• Los procesadores CISCx86 van sobre DOS y Windows• La familia CISCx86 tiene compatibilidad hacia atrás (se pueden renovar equipos manteniendo datos y aplicaciones)

• Actualmente, no hay CISC o RISC puros:– Pentium Pro traducía las instrucciones largas CISC en microoperaciones sencillas de longitud fija ejecutadas en un núcleo estilo RISC– UltraSparc II acelera la decodificación MPEG con instrucciones específicas para gráficos (equivalentes a 48 instrucciones simples)

5

Page 6: 6Set de Instrucciones Del CPU 2012-1

4. El Diseño de InstruccionesTomaremos en cuenta los sgtes. puntos:

4.1 Formato de las instrucciones: descripción en bits de las distintas partes de la instrucción

– Código de operación– Algún o ningún operando– Modos de direccionamiento– Longitud– Posibilidad de longitud variable...

4.1.1 Longitud de la instrucción• Afecta (y se ve afectada) por características de la memoria (tamaño y organización), buses , CPU (complejidad y velocidad)• Compromiso: nºde instrucciones máquina/ necesidad de ahorrar espacio• Instrucciones largas:

– Más codigo y operandos -> programas más cortos– Más modos de direccionamiento -> gestión de tablas y bifurcaciones multi-rama– Memoria virtual grande-> necesidad de direccionar rangos grandes

• Instrucciones cortas– Una instrucción de 32 bits ocupa el doble que una de 16 ¿es el doble de útil?

• Relación entre la longitud y la organización del computador• Tamaño del bus (nº entero de instrucciones en un ciclo de captación)

– Tamaño de instrucción = tamaño de transferencia de memoria– Múltiplo

• Tamaño de datos– Longitud de instrucción = múltiplo de carácter– Longitud de instrucción = múltiplo de la longitud de números en coma fija (unidad “natural” de organización)

• Velocidad de transferencia de memoria.– Se captan más instrucciones cortas: variar la longitud permite adecuar el nº de instrucciones/ciclo a la velocidad de ejecución

4.1.2 Número de direcciones• Forma tradicional de describir la arquitectura de un procesador: nº de direcciones por instrucción• Instrucciones aritméticas y lógicas:

– 1 ó 2 operandos– Almacenamiento– Siguiente instrucción (PC)

6

Page 7: 6Set de Instrucciones Del CPU 2012-1

• Nº direcciones:– 3 direcciones: formatos muy largos

– 2: operando + almacenamiento

– 1: operando implícito (acumulador)

7

Page 8: 6Set de Instrucciones Del CPU 2012-1

– 0: cabeceras de pilas (lifo)

Representación Interpretaciónop A, B, C A B op C

op A, B A A op Bop A AC AC op Aop T T op (T - 1)

Ejemplo: Y = (A-B) / (C+D*E)

3 direcciones 2 direcciones 1 direcciónD*E MUL T,D,E T=D*E MOV T,D T=D LOAD D AC=D

MUL T,E T=T*E MUL E AC=AC*EC+D*E ADD T,T,C T=T+C ADD T,C T=T+C ADD C AC=AC+C

STOR Y Y=ACA - B SUB Y,A,B Y=A-B MOV Y,A Y=A LOAD A AC=A

SUB Y,B Y=Y-B SUB B AC=AC-BY=(A-B)/ (C+D*E)

DIV Y,Y,T Y=Y/T DIV Y,T Y=Y/T DIV Y AC=AC/Y

STOR Y Y=AC

• Decisión básica de diseño:– Menos direcciones/instrucción

• Instrucciones más primarias• CPU menos compleja• Instrucciones más cortas• Mayor número de instrucciones por programa• Programas más largos y complejos• Mayor tiempo de ejecución

– 1 dirección.1 registro de uso general– Muchas direcciones .muchos registros de uso general (acceso más rápido que el acceso a memoria)– Actualmente: combinación de instrucciones de 2 y 3 direcciones.

4.1.3 Nº de bits de direccionamiento8

Page 9: 6Set de Instrucciones Del CPU 2012-1

• Compromiso: nº codops/ capacidad de direccionamiento• Aspectos relacionados:

– Nº de modos de direccionamiento: implícito, con 1 o más bits de modo– Nº de operandos: típicamente 2 operandos (cada dirección puede necesitar su propio indicador de modo)– Nº de registros:• 1 (acumulador) tiene dirección implícita (requiere muchas instrucciones).• Varios registros (necesitan bits para especificar el registro). Típico 8-32 registros– Conjuntos de registros: tendencia 2 o más conjuntos especializados (el conjunto se selecciona implícitamente con el codop y se ahorran bits de selección)– Rango de direcciones: relacionado con el nº de bits de direccionamiento (no se emplea direccionamiento directo)– Granularidad de las direcciones: sistemas con palabras de 16/32 bits

4.1.4 Instrucciones de longitud variable• Ventajas:

– Amplio repertorio de codops de longitud variable– Direccionamiento más flexible:

• Combinar referencias a registros y a memoria• Varios modos de direccionamiento• Inconveniente:

– Complejidad de la CPU (microprogramación y la disminución del precio del Hw hacen que no sea importante)

• Longitud relacionada con la longitud de la palabra (se capta siempre un nº de bytes igual a la instrucción más larga)

4.2 Modos de direccionamientoUn modo de direccionamiento es un procedimiento que permite

determinar un operando, o la ubicación de un operando o una instrucción. El término induce a pensar que estos procedimientos se limitan a establecer la dirección en memoria donde se encuentra el dato deseado. Esto, si bien no es del todo cierto, sucede con la suficiente generalidad como para justificar la denominación genérica de modos de direccionamiento.Antes de profundizar en el estudio de los modos de direccionamiento, se pueden realizar las siguientes consideraciones de carácter general: Los programas utilizan normalmente varios modos de direccionamiento. Un modo de direccionamiento puede utilizar diferentes registros como

soporte de información, así como campos distintos del formato de la instrucción. En general, la instrucción deberá contener en su formato tantos campos de modo de direccionamiento como operandos utilice.

Algunas arquitecturas no permiten la utilización de determinados modos de direccionamiento.

Modos más comunes:– Inmediato – Directo

9

Page 10: 6Set de Instrucciones Del CPU 2012-1

– Indirecto – Con registro e indirecto con registro – Con desplazamiento – De pila

4.2.1 Direccionamiento InmediatoEjemplos : mov ah, 02h

mov bl, 44mov cl, 11100101bmov ebx, 32140000h

• Características:– Complemento a dos (bit izda: signo replicado)– Se utiliza para constantes o para valores iniciales

• Ventaja: No referencias a memoria (ahorro de un ciclo)• Inconveniente: Número máximo permitido: longitud del campo de direcciones

4.2.2 Direccionamiento directo• Utilizado desde primeros computadores• Ventaja: Sencillo

– Una referencia a memoria– No cálculos especiales

• Inconveniente: Espacio de direcciones limitado

Ejemplo:mov al, [8765h]mov [1234h], ax

4.2.3 Direccionamiento indirecto• Solución al direccionamiento directo• Ventaja: Palabra de N bits: espacio de direcciones 2N

• Inconveniente: Dos referencias a memoria

Ejemplo : Direccionamiento indirecto con registros• Ventaja: Espacio de direcciones grande• Inconveniente: Referencia extra a memoria

mov cx, [bx]mov al, [edx]

4.2.4 Direccionamiento con registros• Características:

– 8 ó 16 registros generales– Tiene sentido utilizarlo si el operando se mantiene en uso varias operaciones.– Responsabilidad del programador decidir qué valores se mantienen en memoria o en registro

• Ventajas:– Campo de direcciones pequeño

10

Page 11: 6Set de Instrucciones Del CPU 2012-1

– No hay referencias a memoria• Inconveniente: Espacio muy limitado

Ejemplo:mov al,blmov ax,cxmov ecx,ebx

4.2.6 Direccionamiento con desplazamiento• Ventaja: flexible• Inconveniente: complejo• Características:

– Combina las posibilidades de directo e indirecto con registro– Requiere dos campos de direcciones (al menos uno explícito)

• Tipos– Desplazamiento relativo– Direccionamiento con registro base– Indexado

A. Direccionamiento relativo:• Registro = contador de programa (implícito)• Para la siguiente instrucción:PC + A (desplazamiento relativo a la dirección de la instrucción actual)• Si las referencias en memoria están próximas a la instrucción en ejecución se ahorran bits de dirección

B. Con registro base:– Registro = dirección de memoria (explícita o implícita)– Campo de dirección = desplazamiento– Aprovecha localidad: modo de implementar segmentación

C. Indexado:– Campo de dirección = dirección en memoria principal (más bits que en el desplazamiento con registro base)– Registro = desplazamiento positivo– Mecanismo eficiente para operaciones iterativas (R = índice, que se inicializa y se incrementa con cada iteración)

11

Page 12: 6Set de Instrucciones Del CPU 2012-1

12

Page 13: 6Set de Instrucciones Del CPU 2012-1

4.2.7 Direccionamiento de pila• Características:

– Pila = matriz lineal de posiciones reservadas– Cola LIFO:

13

Page 14: 6Set de Instrucciones Del CPU 2012-1

• Crece en la cabecera• Puntero asociado: Dirección de cabecera o tope de pila

– Direcciones de acceso indirecto con registro implícito• Ventaja: no hay referencias a memoria• Inconveniente: aplicabilidad limitada• Utilización: microprocesadores

4.3 Tipos de operaciones con Instrucciones

Operación Acción de la CPUTransferencia de datos de memoria

• Si se implica la memoria:– Determina la dirección– Realiza la transformación de direcciones de memoria virtual a real– Comprueba la caché

• Inicia la lectura/escritura en/de memoria

Aritméticas o lógicas • Puede implicar transferencias de datos antes y/o después• Realiza la operación en la ALU• Actualiza códigos e indicadores de condición

De conversión • Similar a operación aritmética o lógica• Puede necesitar lógica especial para realizar la conversión

De E/S • Cursa orden en módulo de E/S• Si E/S asignada en memoria, determina la dirección de memoria

De control de flujo • Actualiza el contador del programa• Si son llamadas y retornos a subrutinas gestiona transferencia y enlace de parámetros

Control de sistema • Instrucciones privilegiadas que pueden ejecutarse sólo en estado privilegiado (reservadas para S.O.)• Ejemplos:

– leer o alterar un registro de control– leer o modificar claves de protección de memoria– acceso a bloques de control de procesos en un sistema con multiprogramación

4.4 Tipos de operandos• Las instrucciones máquina operan con datos:

– Direcciones– Números

14

Page 15: 6Set de Instrucciones Del CPU 2012-1

– Caracteres– Datos lógicos

5.4.1 Tipos de operandos: números• Se incluyen en todos los lenguajes máquina• Necesarios en el procesamiento de información: contadores, longitudes de campo...• Los números almacenados son limitados

– En magnitud– En precisión: redondeo, desbordamiento, desbordamiento a cero

• Tipos de datos habituales– Enteros: coma fija– Fraccionales: coma flotante– Decimales

Tipos de operandos: números decimales• Operaciones binarias pero usuarios decimales• Conversión decimal-binario (E), binario-decimal (S)• Si hay pocos cálculos: se opera en decimal• Representación más común: decimal empaquetado

– Cada dígito decimal = código 4 bits– Signo: código 4 bits– Encadenamiento de códigos (ej: 246 =0000001001000110)– Ineficiente (se usan 10 posibilidades de 16)– Poco compacto pero evita conversiones

5.4.2 Tipos de operandos: caracteres• Caracteres: secuencias de bits• 1er ejemplo: Morse• Actualmente: Alfabeto de Referencia Internacional (IRA) = ASCII en EEUU (American Standard Code for Information Interchange):

–1 carácter: 7 bits128 caracteres: impresos + control–Dígitos de 0 a 9 = 011XXXX. Facilita conversión decimal empaquetado–8 bits (versión más completa) 128 impresos + 32 control +128 especiales

Caracteres ASCIIEstándar ISO 8859:– 80´s: Elaborados por ECMA (European Computer Manufacturer´s Association) aprobados por ISO (International Standards Organization)– 10 conjuntos de caracteres gráficos de 1 byte:• Latino1 (europeo occidental):

– francés, español, catalán, euskera, portugués, italiano, albanés, rhaetorománico,holandés, alemán, danés, sueco, noruego, finés, islandés, irlandés,escocés e inglés. Incidentalmente afrikaneer y swahili.– Adoptado como la primera página del ISO 10646 (Unicode)– Se emplea en HTML– Globalizado a través del RFC 2070

• Latino2 (europeo oriental): Checo, húngaro, polaco, rumano, croata,eslovaco, esloveno y serbio• Latino3 (europeo meridional): esperanto y maltés• Latino4 (europeo septentrional): estonio, lituano, letón, groenlandés y lapón

– Más conjuntos de caracteres:15

Page 16: 6Set de Instrucciones Del CPU 2012-1

• Cirílico: búlgaro, bielorruso, ruso, macedonio y ucraniano• Árabe: es complejo, cada letra árabe puede darse hasta en 4 formasdiferentes según sea inicial, ocupe una posición media, final o estéseparada. Para decidir cual es la forma apropiada se necesita unanalizador de contexto. Además cambia el sentido de escritura.

• Griego• Hebreo: hebreo y yiddish. Sentido de dcha a izda• Latino5 (turco)• Latino6 (nórdico): inuit (esquimales de Groenlandia) y no Skolt Sami(dialecto de los lapones)• Futuro: 5 plantillas más• UNICODE:

– Estándar normalizado que cubre el 99 % de los lenguajes hablados– Caracteres de 2 bytes

Caracteres EBCDIC• Código Ampliado de Intercambio Decimal Codificado en Binario (Extended Binary Coded Decimal Interchange Code)• Utilización en: IBM S/370 (60´s: tarjetas perforadas)• Características:

– 8 bits– Compatible con el código decimal empaquetado– Mismos caracteres que ASCII; diferentes códigos– Secuencias de códigos no contiguas para las letras

• Futuro: desaparece

16

Page 17: 6Set de Instrucciones Del CPU 2012-1

17