39
1 Arquitectura de Computadoras - 2012 Repertorio de Instrucciones: Características y Funciones Computer Organization and Architecture 6 th EditionWilliam Stallings 2 Introduccion. Repertorio de instrucciones en lenguaje maquina: Un punto de encuentro para el diseñador del computador y el programador. Punto de vista del diseñador: El conjunto de instrucciones máquina informa de las especificaciones funcionales de la CPU: implementar la CPU es una tarea que implica implementar el set de inst. Punto de Vista del programador: Quien se maneja en lenguaje ensamblador se hace consciente de la estructura de registros y memoria, de los tipos de datos y del funcionamiento de la ALU. La descripción del repertorio de inst. maquina es un paso mas hacia la explicación de la CPU del computador.

Arquitectura de Computadoras - 2012exa.unne.edu.ar/informatica/arquitectura/archivos/Unidad5_parte1... · 1 Arquitectura de Computadoras - 2012 Repertorio de Instrucciones: Características

  • Upload
    doque

  • View
    229

  • Download
    2

Embed Size (px)

Citation preview

Page 1: Arquitectura de Computadoras - 2012exa.unne.edu.ar/informatica/arquitectura/archivos/Unidad5_parte1... · 1 Arquitectura de Computadoras - 2012 Repertorio de Instrucciones: Características

1

Arquitectura de

Computadoras - 2012

Repertorio de Instrucciones:

Características y Funciones

Computer Organization

and Architecture

6th EditionWilliam Stallings

2

Introduccion.

• Repertorio de instrucciones en lenguaje maquina: Un punto de encuentro para el diseñador del computador y el programador.

• Punto de vista del diseñador: El conjunto de instrucciones máquina informa de las especificaciones funcionales de la CPU: implementar la CPU es una tarea que implica implementar el set de inst.

• Punto de Vista del programador: Quien se maneja en lenguaje ensamblador se hace consciente de la estructura de registros y memoria, de los tipos de datos y del funcionamiento de la ALU.

• La descripción del repertorio de inst. maquina es un paso mas hacia la explicación de la CPU del computador.

Page 2: Arquitectura de Computadoras - 2012exa.unne.edu.ar/informatica/arquitectura/archivos/Unidad5_parte1... · 1 Arquitectura de Computadoras - 2012 Repertorio de Instrucciones: Características

3

Introduccion.

• Objetivos:

• Que hace una instrucción ?

• Examinar y reconocer los distintos tipos de operandos.

• Reconocer los distintos tipos de operaciones que pueden especificarse mediante instrucciones maquina.

4

Que es el repertorio de intrucciones?

• Es la colección de instrucciones distintas que son ejecutadas por la CPU.

• El funcionamiento de la CPU esta determinado por las instrucciones que ejecuta.

• Cada instrucción debe contener la información que necesita la CPU para su ejecución.

• Código de máquina

• Lenguaje binario

• Usualmente representada por código assembler

Page 3: Arquitectura de Computadoras - 2012exa.unne.edu.ar/informatica/arquitectura/archivos/Unidad5_parte1... · 1 Arquitectura de Computadoras - 2012 Repertorio de Instrucciones: Características

5

Diagrama de estados de un ciclo de

instrucción ( 1 )

1

2

3

4

5

6

8

7

Ocasionan operaciones internas a la CPU

Ocasionan un intercambio entre

CPU y memoria

6

Diagrama de estados de un ciclo de

instrucción ( 2 )

1. Cálculo dirección instrucción (IAC): determina la dirección de la siguiente instrucción a ejecutarse. Normalmente implica añadir un nro. fijo a la dirección de la instrucción previa.

2. Captación de la instrucción: La CPU la lee desde su posición en memoria.

3. Decodificación de la operación: analiza la instrucción para determinar el tipo de operación a realizar y los operandos que se usarán.

Page 4: Arquitectura de Computadoras - 2012exa.unne.edu.ar/informatica/arquitectura/archivos/Unidad5_parte1... · 1 Arquitectura de Computadoras - 2012 Repertorio de Instrucciones: Características

7

Diagrama de estados de un ciclo de

instrucción ( 3 )

4- Cálculo dirección operando: si la instrucción implica la referencia a un operando en la memoria ó E/S, entonces se determina la dirección.

5. Captación del operando: capta a el operando en la memoria ó se lee desde E/S.

6. Operación sobre los datos: realiza la operación indicada en la instrucción.

7. Cálculo dirección resultado.( Idem 4) 8. Almacenamiento resultado:escribe el

resultado en memoria o lo saca a través de un dispositivo de E/S.

8

Diagrama de estados de un ciclo de

instrucción ( 4)

• Los estados en la parte superior implicanun intercambio entre la CPU y la memoriaó E/S.

• Los estados en la parte inferior implicansólo operaciones internas en la CPU

Page 5: Arquitectura de Computadoras - 2012exa.unne.edu.ar/informatica/arquitectura/archivos/Unidad5_parte1... · 1 Arquitectura de Computadoras - 2012 Repertorio de Instrucciones: Características

9

Elementos de una Instrucción

• Código de operación (Op code)—Especifica la operación a realizar ( suma, E/S, etc.)

• Referencia a operandos fuente—La operación puede implicar uno o más operandos

fuente, que son entradas para la instrucción.

• Referencia al operando destino o resultado:—La operación puede producir un resultado

• Referencia a la siguiente instrucción—Dice a la CPU de donde captar la siguiente

instrucción tras completarse la ejecución de la instrucción actual

—Donde puede estar la siguiente instrucción?

10

Los operandos fuente y resultado pueden

estar en:

• Memoria principal (memoria virtual o cache):— Debe indicarse dicha dirección.

• Registro de la CPU— 1 sólo registro: referencia a él puede ser implícita

— Más de 1 registro: cada uno tiene asignado un nro único y

— La instrucción debe contener el nro de registro deseado.

• Dispositivo de I/O— La instrucción debe especificar el módulo y dispositivo de E/S

para la operación.

— En caso de E/S asignadas en memoria, se dara otra dirección de memoria principal o virtual.

Page 6: Arquitectura de Computadoras - 2012exa.unne.edu.ar/informatica/arquitectura/archivos/Unidad5_parte1... · 1 Arquitectura de Computadoras - 2012 Repertorio de Instrucciones: Características

11

Representación de las instrucciones

• Cada instrucción se representa como una cadena de bits.

• Está dividida en campos.

• Cada repertorio emplea en gral mas de un formato de instruccion.

• Durante su ejecución la instrucción se escribe en IR.( CPU)

• La CPU debe extraer los datos de los distintos campos para realizar la operación requerida.

• Para facilitar la comprensión humana de programadores y otros se utiliza una representación simbólica de los CODOPS — ej.: ADD, SUB,

• Conjunto de instrucciones del IAS.

• Los operandos pueden también representarse simbólicamente — ADD R,Y

— “SUMAR el valor contenido en la posición de datos Y al contenido del registro R”

12

(a ) Palabra número

(b ) Palabra instrucción

1

Bit de

signo

Dirección Codop DirecciónCodop

0 8 19 20 28 39

0 39

Formatos de la memoria IAS

Page 7: Arquitectura de Computadoras - 2012exa.unne.edu.ar/informatica/arquitectura/archivos/Unidad5_parte1... · 1 Arquitectura de Computadoras - 2012 Repertorio de Instrucciones: Características

13

Representación de las instrucciones (2)

• Los codops se representan con nemotécnicos, que indican la operación:—ADD Sumar

—SUB Restar

—MPY Multiplicar

—DIV Dividir

—LOAD Cargar datos en memoria

—STOR Almacenar datos en memoria (memorizar)

• Es posible escribir un programa en leng. de maquina en forma simbólica. Cada cod. simbólico tiene una representación binaria fija.

• El programador define: X= 513; Y = 514

• A partir de allí se construyen programas sencillos.

14

Un formato de instrucciones sencillo

Page 8: Arquitectura de Computadoras - 2012exa.unne.edu.ar/informatica/arquitectura/archivos/Unidad5_parte1... · 1 Arquitectura de Computadoras - 2012 Repertorio de Instrucciones: Características

15

Tipos de instrucciones• Instrucción en BASIC o Fortran. Por ej.:

— X = X + Y

• X=513 ; Y = 514 ( Corresponden a posiciones )

• Como realizarlo con instrucciones de maquina?

• Puede necesitar de tres instrucciones máquina

• 1) Cargar un registro con el contenido de la posición de memoria 513

• 2)Sumar al registro el contenido de la posición de memoria 514.

• 3) Memorizar el contenido del registro en la posición de memoria 513.

• Un lenguaje de alto nivel expresa las instrucciones de forma algebraica concisa utilizando variables.

• Un lenguaje maquina expresa las operaciones de manera elemental, implicando operaciones de transferencia de datos a, o desde registros.

16

Tipos de instrucciones

• Cuales tipos incluir en un computador?

• Debiera existir un conj. que permitiese al usuario formular cualquier tarea de procesamiento de datos.

• O bien: Cualquier programe escrito en Alto nivel debe poder traducirse a lenguaje maquina para ser ejecutado.

• De acuerdo a lo anterior se clasifican en:

A) De Procesamiento de Datos: Instrucciones aritméticas y lógicas ( en registros de la CPU)

B) De almacenamiento de datos: Instrucciones de memoria

C) De transferencia de datos: Instrucciones de I/O

D) De control: Instrucciones de comprobación y de bifurcación

( para testear el valor de una palabra o el estado de un calculo/ para bifurcar a diferentes conj. de instrucciones)

Page 9: Arquitectura de Computadoras - 2012exa.unne.edu.ar/informatica/arquitectura/archivos/Unidad5_parte1... · 1 Arquitectura de Computadoras - 2012 Repertorio de Instrucciones: Características

17

Número de direcciones de una inst. (a)

• Permite describir la arquitectura de un procesador en termino del nro. de direcciones contenidas en cada instrucción.

• Esta dimensión pierde significación a medida que crece la complejidad del diseño de la CPU.

• Cual es el numero máximo de direcciones que serian necesarias en una instrucción? ? Cuatro ? Porque ?

• 3 direcciones— Operando 1, Operando 2, Resultado

— a = b + c;

— No son comunes

— Necesitan formatos relativamente largos para albergar las tres referencias

— Es implícita la dirección de la instrucción siguiente ( se obtiene a partir del Contador del Programa )

18

Número de direcciones (b)

• 2 direcciones —Una de las direcciones debe hacer el servicio doble

de uno de los operandos y del resultado.

—a = a + b SUB Y, B

—Reduce la longitud de la instrucción

—Requiere algún trabajo extra – Almacenamiento temporario para algunos resultados

• 1 dirección—Una segunda dirección debe estar implícita

—Usualmente era el registro acumulador (AC)

—Esquema común en las primeras máquinas

Page 10: Arquitectura de Computadoras - 2012exa.unne.edu.ar/informatica/arquitectura/archivos/Unidad5_parte1... · 1 Arquitectura de Computadoras - 2012 Repertorio de Instrucciones: Características

19

Número de direcciones (c)

• 0 (cero) direcciones

• Todas las direcciones son implícitas—Usan una pila

—Pila: Conjunto de posiciones del tipo last-in-first-out ( el ultimo en entrar es primero en salir).

—e.j. push a

— push b

— add

— pop c

—La pila esta en una posición conocida

—A menudo los dos elementos de su cabecera estàn en registros del procesador.

20

Programas para calcular Y

Page 11: Arquitectura de Computadoras - 2012exa.unne.edu.ar/informatica/arquitectura/archivos/Unidad5_parte1... · 1 Arquitectura de Computadoras - 2012 Repertorio de Instrucciones: Características

21

Cúantas direcciones por instrucción ? (1)

• Es una decisión básica de diseño.

• Menos direcciones — Procesador menos complejo

— Instrucciones más cortas

— Instrucciones menos complejas

— Más instrucciones por programa -> mayor tiempo de ejecución y programas mas largos y complejos.

— Rápidas instrucciones de captación/ejecución de instrucciones

• Más direcciones ( instrucciones de múltiples direcciones)— Instrucciones más complejas (poderosas?)

— Más registros de uso general – Las operaciones Inter-registros son mas rápidas

— Menos instrucciones por programa

• Por razones de flexibilidad y facilidad para utilizar varios registros, las maquinas contemporáneas emplean una combinación de dos y de tres direcciones.

22

Cúantas direcciones por instrucción ? (2)

• Otros aspectos a considerar al momento del diseño—Si una dirección hace referencia a una posición de memoria o a un registro.

– Hay menos registros, entonces se necesitan menos bits para referenciarlos

—Una máquina puede permitir diversos modos de direccionamiento

– dicha especificación consume uno o más bits.

— La mayoría de los diseños de procesadores hacen uso de varios formatos de instrucciones

Page 12: Arquitectura de Computadoras - 2012exa.unne.edu.ar/informatica/arquitectura/archivos/Unidad5_parte1... · 1 Arquitectura de Computadoras - 2012 Repertorio de Instrucciones: Características

23

Decisiones para el diseño del repertorio de

instrucciones del lenguaje de maquina (1)

• Define muchas de las funciones realizadas por la CPU ( procesador)

• El repertorio es el medio que dispone el programador para controlar la CPU. Por lo tanto deben considerarse sus necesidades a la hora de diseñarlo.

• Los aspectos de diseño mas relevantes a considerar:

• Repertorio de operaciones:— Cuántas operaciones considerar?

— Qué operaciones considerar?

— Cúan complejas deben ser?

• Tipos de datos: con los que se efectúan operaciones

• Formatos de instrucciones— Longitud ( en bits)

— Numero de direcciones

— Tamaño de los distintos campos

24

Decisiones para el diseño (2)• Registros

— Número de registros de la CPU disponibles

— Cuáles operaciones pueden realizarse sobre cuáles registros?

• Direccionamiento— Diversas maneras mediante las cuales se especifica la dirección

de un operando.

• Los aspectos están fuertemente relacionados y deben considerarse conjuntamente en el diseño de un set de instrucciones

• RISC vs CISC.— RISC (POWER PC) : Reduced Instruction Set Computer o

Computador de Conjunto Reducido de Instrucciones.

— La arquitectura RISC cuestiona muchas de las decisiones sobre repertorios de instrucciones tradicionalmente adoptadas

Page 13: Arquitectura de Computadoras - 2012exa.unne.edu.ar/informatica/arquitectura/archivos/Unidad5_parte1... · 1 Arquitectura de Computadoras - 2012 Repertorio de Instrucciones: Características

25

Tipos de operandos (1)

• Las instrucciones maquina operan con datos. Las categorías mas importantes son:

• Direcciones: En ocasiones debe realizarse algún calculo sobre la referencia de un operando, se consideran como números enteros sin signo

• Números

—Enteros/punto flotante

—Limitados ( magnitud de los nros representables en una maquina y además en coma flotante su precisión).

—En decimal

• Caracteres

—ASCII etc.

—EBCDIC.

• Datos lógicos

—Bits o flags

26

Tipos de operandos (2)

• Numeros:

• Almacenados en un computador estan limitados— 1) Para la magnitud de los nros representables en una maquina.

— 2) Para nros en coma flotante, su precisión esta limitada

• Programador consciente del redondeo, del desbordamiento.

• Se usan datos numéricos:— Enteros o en coma fija

— En coma flotante

— En decimal

• Para aplicaciones con muchas E/S vs pocos cálculos y simples— Es preferible memorizar y operar con los números directamente en

su forma decimal: decimal empaquetado.

Page 14: Arquitectura de Computadoras - 2012exa.unne.edu.ar/informatica/arquitectura/archivos/Unidad5_parte1... · 1 Arquitectura de Computadoras - 2012 Repertorio de Instrucciones: Características

27

Tipos de operandos (3)

• Caracteres

• Diversos códigos que permiten representar caracteres mediante secuencias de bits

• ASCII: Código estándar americano para Intercambio de información.

• Cada carácter representado por un patron de 7 bist

• Otro: EBCDIC. ( Se emplea en los grandes computadores de IBM)

28

Tipos de operandos ( 4 )

• Datos lógicos: Bits o flags—En gral cada palabra se trata como unidad de datos

individual (u otras unidades direccionables: byte, media palabra, etc) .

—Otras se considera: una unidad de n bits como n elementos o datos de 1 bit, donde c/elemento vale 0 o 1.

—Ventajas de los datos logicos:

—1) Para almacenar una matriz de datos binarios o booleanos, c/elemento (0 o 1)=> la memoria se utiliza más eficientemente

—2) Permite la manipulación de bits individuales de un dato.

– EJ. Al convertir de ASCII a decimal empaquetado, se necesitan extraer los 4 bits de la derecha de cada byte.

– Para desplazar bits de mantisas, en operaciones de coma flotante.

Page 15: Arquitectura de Computadoras - 2012exa.unne.edu.ar/informatica/arquitectura/archivos/Unidad5_parte1... · 1 Arquitectura de Computadoras - 2012 Repertorio de Instrucciones: Características

29

Tipos de datos en el Pentium

• Tipos generales de datos:

• 8 bits (Byte)

• 16 bits (palabra)

• 32 bits (palabra doble)

• 64 bits (palabra cuádruple)

• Direccionamiento se hace mediante 8 bits (byte)

• Reconoce una variedad impresionante de tipos de datos específicos que son reconocidos y procesados mediante instrucciones concretas.

30

Tipos de datos del Pentium

• General – 1 byte, de palabra (16 bits), palabra doble ( 32 bits), y cuádruple (64) con contenido binario arbitrario

• Entero - Valor binario con signo contenido en 1 Byte (C 2)

• Ordinal - Un entero sin signo contenido en un byte , 1 palabra o una doble palabra.

• BCD desempaquetado - Un dígito en cada byte

• BCD empaquetado - 2 dígitos BCD por byte valor en el rango 0 a 99.

• Puntero de proximidad – 32 bits que representa el desplazamiento dentro de un segmento

• Campo de bits. Una secuencia contigua de bits, cada posición es independiente

• Cadena de bytes. Secuencia contigua de bytes, de palabras, o palabras dobles, que contiene de 0 a 2 32 -1 bytes.

Page 16: Arquitectura de Computadoras - 2012exa.unne.edu.ar/informatica/arquitectura/archivos/Unidad5_parte1... · 1 Arquitectura de Computadoras - 2012 Repertorio de Instrucciones: Características

31

Tipos de datos del Pentium

• Coma flotante. Existen una variedad de ellos, todos utilizados por la unidad de coma flotante.

• Las instrucciones de coma flotante pueden operar con enteros y con enteros decimales empaquetados, así como numeros en coma flotante.

• Los enteros con signo están en representación C2 y pueden ser de 16,32 o 64 bits.

• Los enteros decimales empaquetados se almacenan en representación signo-magnitud con 18 dígitos en el rango de 0 a 9.

• Las representaciones en coma flotante se ajustan al formato IEEE 754.

• Ver tabla 9.2.- Pag. 322 Stallings y Figura 9.4 ( Pág.. 323). Varia según la edición del libro

32

Pentium Floating Point Data Types

Page 17: Arquitectura de Computadoras - 2012exa.unne.edu.ar/informatica/arquitectura/archivos/Unidad5_parte1... · 1 Arquitectura de Computadoras - 2012 Repertorio de Instrucciones: Características

33

Tipos de operaciones

• El nro de Codops diferentes varia ampliamente de una maquina a otra.

• En todas las maquinas se encuentran tipos generales de operaciones:

• 1) Transferencia de datos

• 2) Aritméticas

• 3) Lógicas

• 4) De conversión

• 5) De E/S

• 6) De control del sistema

• 7) De control de flujo.

34

Tipos de operaciones: Transferencia de datos

• Es el tipo mas básico de instrucción

• Debe especificar — 1)Posiciones del operando fuente/origen

— Posiciones del operando destino– Podrían ser de memoria, un registro o la cabecera de una pila.

— 2)Longitud de los datos a transferir

— 3)El modo de direccionamiento para cada operando.

• Puede haber diferentes instrucciones para diferentes modelos: e.j. IBM S/370— Load ( L ) Trans. Memoria a registro: 32 bits

— Load Halfword (LH) Transf. Memoria a registro. 16 bits

— Load ( LR ) Tranfs. De reg. A registro. 32 bits

— Load (Long) (LDR) Trans. Larga entre dos registros de coma flot.

— Load (Short) ( LE) Transf. Corta de memoria a reg. De coma flotante

— Store (ST ) Transf. De registro a memoria. 32 bits

Page 18: Arquitectura de Computadoras - 2012exa.unne.edu.ar/informatica/arquitectura/archivos/Unidad5_parte1... · 1 Arquitectura de Computadoras - 2012 Repertorio de Instrucciones: Características

35

Tipos de operaciones: Transferencia de datos

• Por el contrario el VAX: Presenta una instrucción (MOV) con variantes según la cantidad de datos a transmitir

• Es mas sencilla que la utilizada por el Pentium, pero es menos compacta. e.g. VAX

• Estas operaciones son las mas sencillas que debe realizar el procesaror (CPU)

• Si el origen y el destino son registros, la CPU hace la operación (interna).

• Si uno o ambos operandos están en memoria -> La CPU debe realizar alguna o todas las siguientes tareas:

1. Calcular la dirección de memoria basándose en el modo de direccionamiento utilizado.

2. Si la dirección hace referencia a memoria virtual: traducir de dirección virtual a real.

3. Determinar si el elemento direccionado esta en cache.

4. Si no, cursar la orden al modulo de memoria.

36

Tipos de operaciones: Aritméticas

• Suma, Resta , Multiplicación, División

• Se tienen siempre para enteros con signo (coma fija)

• A menudo se proporcionan para números en Punto flotante y para decimales empaquetados

• Puede incluir varias instrucciones de un solo operando—Increment (a++): incrementa en 1 el operando

—Decrement (a--): decrementa en 1 el operando

—Negate (-a): cambia el signo del operando

—Absolute: obtiene el valor absoluto del operando

Page 19: Arquitectura de Computadoras - 2012exa.unne.edu.ar/informatica/arquitectura/archivos/Unidad5_parte1... · 1 Arquitectura de Computadoras - 2012 Repertorio de Instrucciones: Características

37

Tipos de operaciones: Aritméticas

• Su ejecución puede implicar:

• Operaciones de transferencia de datos para ubicar los operandos como entradas a la ALU

• Y para almacenar la salida de la ALU.

• Además la ALU debe realizar la operación deseada.

38

Tipos de operaciones: Lógicas

A) Disponen operaciones para manipular bitsindividuales dentro de una palabra o de otra unidad direccionable.

• AND, OR, XOR, NOT

• Pueden aplicarse desde bit a bit hasta n bits

• Si dos registros contienen los siguiente:

• (R1)= 10100101 ; Contenido de la posición R1

• (R2)= 00001111 ; Contenido de la posición R2

• (R1) AND (R2)=00000101

• Esta operación puede utilizarse como mascara, para poner a 0 ciertos bits y seleccionar otros.

Page 20: Arquitectura de Computadoras - 2012exa.unne.edu.ar/informatica/arquitectura/archivos/Unidad5_parte1... · 1 Arquitectura de Computadoras - 2012 Repertorio de Instrucciones: Características

39

Tipos de operaciones: Lógicas

• En otro ejemplo: si dos registros contienen:

• (R1)=10100101

• (R2)=11111111

• Entonces: (R1) XOR (R2) = 01011010 (obtiene complemento a uno).

b) Funciones de desplazamiento y rotación.• Desplazamiento lógico: se desplazan a la derecha o a la izquierda los

bits de la palabra.

• En un extremo, el bit saliente se pierde al desplazarse. En el otro se introduce un 0. Estos son útiles para aislar campos dentro de una palabra.

• Los ceros que se van introduciendo en la palabra desplazan la información no deseada, que se va perdiendo por el otro extremo.

40

Tipos de operaciones: Lógicas

b) Funciones de desplazamiento y rotación.• Desplazamiento aritmético: trata el dato como entero con

signo, y no desplaza el bit de signo.

• En un desplazamiento aritmético a derecha, el bit de signo normalmente se replica en la posición de bit de su derecha.

• Estos desplazamientos sirven para acelerar ciertas operaciones aritméticas.

• Con números en notación de C 2, un desplazamiento a izquierda o derecha equivale a multiplicar o dividir por 2 respectivamente, asumiendo que no hay desbordamiento ni desbordamiento a 0.

Page 21: Arquitectura de Computadoras - 2012exa.unne.edu.ar/informatica/arquitectura/archivos/Unidad5_parte1... · 1 Arquitectura de Computadoras - 2012 Repertorio de Instrucciones: Características

41

Tipos de operaciones: Lógicas

• Rotación o desplazamiento cíclico.

• Preserva todos los bits con que se esta operando.

• Ej.: Ir volcando sucesivamente cada bit en la posición mas a la izquierda, donde puede ser identificado comprobando el bit de signo del dato.

• Las operaciones lógicas implican actividad de la ALU

42

Operaciones de desplazamiento y de

rotación

Page 22: Arquitectura de Computadoras - 2012exa.unne.edu.ar/informatica/arquitectura/archivos/Unidad5_parte1... · 1 Arquitectura de Computadoras - 2012 Repertorio de Instrucciones: Características

43

Tipos de operación: Conversión

• Cambian el formato u operan sobre el formato de los datos. Ej. Conversión de decimal a binario.

• Convierte un código de 8 bits a otro —TR R1, R2, L

—Translate (s/370),

—R2: Contiene la dirección de comienzo de una tabla de códigos de 8 bits.

—Se traducen los L bytes que comienzan en la dirección especificada por R1.

—Se sustituye cada byte por el contenido del elemento de la tabla indexadada por dicho byte.

—Por ej.: Para convertir de EBCDIC a ASCII

44

Tipos de operaciones: Entrada/Salida

• Las instrucciones admiten aproximaciones muy diversas.

• Incluyen E/S programadas aisladas.

• Incluyen E/S programadas asignadas en memoria.

• Instrucciones de movimiento de datos (mapeo de memoria )

• Puede ser hecha mediante un controlador separado (DMA).

• Muchas implementaciones ofrecen solo unas pocas inst. de E/S con acciones especificas indicadas mediante parámetros, códigos o palabras de ordenes.

Page 23: Arquitectura de Computadoras - 2012exa.unne.edu.ar/informatica/arquitectura/archivos/Unidad5_parte1... · 1 Arquitectura de Computadoras - 2012 Repertorio de Instrucciones: Características

45

Tipos de operaciones: Control del sistema

• Son instrucciones privilegiadas.

• CPU necesita estar en un estado específico

• Están reservadas para ser usadas por el sistema operativo

• Ej: Leer o alterar un registro de control

• Ej.: para leer o modificar una clave de protección de memoria

46

Tipos de operaciones: Control de flujo o

transferencia de control

• Existe una serie de inst. cuya misión es cambiar la secuencialidad de la ejecución.

• La operación que realiza la CPU es actualizar el PC para que contenga la dirección de alguna inst. que esta en memoria

• Varias razones para utilizar estas instrucciones:—Si se va a procesar una tabla o una lista de elementos-

>lo normal es utilizar un bucle de programa.

—Los programas incluyen tomas de decisión

—Existen programas muy largos, se parte la tarea en trozos mas pequeños.

Page 24: Arquitectura de Computadoras - 2012exa.unne.edu.ar/informatica/arquitectura/archivos/Unidad5_parte1... · 1 Arquitectura de Computadoras - 2012 Repertorio de Instrucciones: Características

47

Tipos de operaciones: Control de flujo o

transferencia de controla) Bifurcación (“Salto”).

• Las maquinas poseen un codigo de condición de uno o varios bits, que se actualiza luego de una operacion.

• Ejemplo: Se ejecuta el salto (se actualiza el PC con la dirección especificada en el operando) si se cumple la condición.

• Sino se cumple se ejecuta la instrucción siguiente de la secuencia ( se incrementa el PC de forma habitual). — BRZ X (saltar a X si el resultado es cero)

— BRP X ( saltar a la posición X, si el resultado es positivo)

— BRN X (saltar a X si el resultado es negativo)

— BR0 X (saltar a la posición X, si el resultado es desbordamiento)

— Resultado: referencia a la ultima operación ejecutada que afecte al código de condición.

— Otro ejemplo con inst. de 3 direcciones:

— BRE R1, R2, X Saltar a X si el contenido de R1 = R2

48

Instrucciones de bifurcación

Page 25: Arquitectura de Computadoras - 2012exa.unne.edu.ar/informatica/arquitectura/archivos/Unidad5_parte1... · 1 Arquitectura de Computadoras - 2012 Repertorio de Instrucciones: Características

49

Control de flujo o transferencia de

control

b) Salto implícito (“SKIP”). Incluye una dirección de manera implícita. Implica que se va a saltar una instrucción

• La dirección implícita es igual a la dirección de la siguiente instrucción mas la longitud de una instrucción.

• Ej. Instrucción “incrementar y saltar si es cero” (ISZ)

— ISZ Register1

— 301 ( R1 se fija a un valor negativo)

— .

— .

— 309 ISZ R1

— 310 BR 301

— 311

50

Tipos de operaciones: Control de flujo o

transferencia de control

c) Llamada a procedimiento

• Procedimiento : programa autoconsistente que se incorpora en uno mas grande.

• Razones de su uso:—Economía y modularidad

—Economiza esfuerzo de programación y hace mas eficiente el uso del espacio de memoria.

• Dos instrucciones básicas: “Call”, “Return”.

—c.f. llamada de interrupción

Page 26: Arquitectura de Computadoras - 2012exa.unne.edu.ar/informatica/arquitectura/archivos/Unidad5_parte1... · 1 Arquitectura de Computadoras - 2012 Repertorio de Instrucciones: Características

51

Procedimientos anidados

52

Tipos de operaciones: Control de flujo o

transferencia de control

• Llamada a procedimiento puede hacerse desde distintos puntos ->

• La CPU debe guardar la dirección de retorno en algún sitio.

• Existen 3 lugares habituales:—Un registro

—Al principio de procedimiento

—En la cabecera de una pila: es la opción mas potente y mas general

Page 27: Arquitectura de Computadoras - 2012exa.unne.edu.ar/informatica/arquitectura/archivos/Unidad5_parte1... · 1 Arquitectura de Computadoras - 2012 Repertorio de Instrucciones: Características

53

Tipos de operaciones: Control de flujo o

transferencia de control

• Primera ( Registro): CALL X ( llamada al procedimiento de la posición x). Si se utiliza un registro se produce:

• RN <- PC + ∆ RN: registro utilizado a este fin• PC <- X PC: contador de programa• ∆: long. de la instrucción• El procedimiento llamado puede consultar RN para el retorno

posterior. • Segunda posibilidad: Almacenar la dirección de retorno al

comienzo del procedimiento: CALL X • X<- PC + ∆• PC<- x+1 • Aquí la dirección de retorno queda almacenada en un lugar

seguro.• Limitación: Impiden el uso de procedimientos reentrantes • (Reentrante: Es posible tener abiertas varias llamadas al mismo tiempo). Los procedimientos recursivos son un ej. del uso de esta característica).

54

Uso de una pila para implementar el

anidamiento de subrutinas

– La CPU cuando ejecuta una llamada, coloca la dirección de retorno en la pila.

– Cuando ejecuta un retorno utiliza la dirección guardada.

Page 28: Arquitectura de Computadoras - 2012exa.unne.edu.ar/informatica/arquitectura/archivos/Unidad5_parte1... · 1 Arquitectura de Computadoras - 2012 Repertorio de Instrucciones: Características

55

Tipos de operaciones: Instrucciones de

llamado a procedimientos

• Además de la dirección de retorno a veces es necesario pasar parámetros:

• Alternativa 1: Además de aportar la dirección de retorno, a veces, es necesario pasar o transferir ciertos parámetros , se puede hacer mediante registros.

• Alternativa 2: : Almacenar los parámetros en memoria justo después de la instrucción CALL.

• El retorno debe hacerse a la posic. siguiente a los parámetros.

• Tienen limitaciones, dificultan procedimientos reentrantes.

56

Tipos de operaciones: Instrucciones de

llamado a procedimientos

• Alternativa 3: Mas flexible pasar parámetros a través de pilas.

• Cuando la CPU ejecuta una llamada, introduce la dirección de retorno mas los parámetros.

• El procedimiento accede a los parámetros en la pila.

• Para el retorno: los parámetros de retorno pueden introducirse en la pila.

• Marco de pila: Parámetros + dirección de retorno.

• Ver figura 9.9 ( Pag. 336 Stallings)( varía según edición del libro a consultar).,

Page 29: Arquitectura de Computadoras - 2012exa.unne.edu.ar/informatica/arquitectura/archivos/Unidad5_parte1... · 1 Arquitectura de Computadoras - 2012 Repertorio de Instrucciones: Características

57

Apendice: Pilas

• Conjunto ordenado de elementos, en el que sólo uno de ellos es accesible en un instante dado.

• Punto de acceso: cabecera de la pila

• Nro de elementos variable: longitud

• Sólo se pueden añadir o eliminar elementos en la cabecera

• LIFO ( last-in-first-out)

• Gestionan las llamadas y retornos de procedimientos

• Son una alternativa para direccionar memoria

58

Pilas: Operaciones básicas

Push: Apila; POP: Desapila; Multiplicar: requiere dos elementos de

la cabecera como operandos.

Page 30: Arquitectura de Computadoras - 2012exa.unne.edu.ar/informatica/arquitectura/archivos/Unidad5_parte1... · 1 Arquitectura de Computadoras - 2012 Repertorio de Instrucciones: Características

59

Implementación de la pila mediante

instrucciones (1)

• Depende de sus usos potenciales.

• Es una estructura útil para la CPU: Gestión de llamadas y retornos a/de procedimientos.

• Pueden ser útiles también para el programador:

• Ej. Evaluación de expresiones. ( Se definen inst.)—PUSH, POP

—Operaciones que utilicen 1 o 2 elementos de la cabecera como operandos.

—Todas las instrucciones referencian a la cabecera, -> la dirección de/l operando/s esta implícita. ( 0 direcciones).-

60

Implementación de las pila mediante

instrucciones. (2)

• Si solo será utilizada por la CPU: En memoria principal ( o virtual ) se reserva un bloque de posiciones contiguas para almacenar los elementos de la pila.

• La > parte del tiempo el bloque esta parcialmente lleno.• El resto esta disponible para que crezca la pila.• Se necesitan 3 direcciones, normalmente memorizadas en

registros de la CPU:— Puntero de pila: Contiene la dirección del tope o cabecera— Base de la pila: Contiene la dirección base. Si se intenta POP

cuando esta vacía que sucede ?? — Limite de la pila. Contiene la dirección del otro extremo del

bloque reservado. Si se intenta PUSH cuando esta utilizado totalmente: que sucede ??

• Para acelerar las operaciones con la pila, también los dos elementos de la cabecera se almacenan en registros. El puntero de pila contiene la dirección del tercer elemento de la pila. Ver figura 9.14 b (Stallings Pág.354)

Page 31: Arquitectura de Computadoras - 2012exa.unne.edu.ar/informatica/arquitectura/archivos/Unidad5_parte1... · 1 Arquitectura de Computadoras - 2012 Repertorio de Instrucciones: Características

61

Pilas: Organizaciones usuales

62

Pilas: Evaluación de expresiones.

• Formulas matemáticas: en notación infija (infix)

• El operador binario aparece entre los operandos (a + b)

• Se emplean () para determinar el orden.

• a+(bxc) distinto de (a+b) x c

• Las operaciones tienen prioridades implicitas: Ej. la multiplicación antes que la suma.

• a + b x c es equivalente a + ( b x c).

• Una alternativa: notación postfija o polaca inversa.

• El operador se especifica después de los operandos:

• a+ b seria a b +

• a+(bxc) seria a b c x +

• (a+b) x c seria a b + c x

• No se requieren paréntesis.

Page 32: Arquitectura de Computadoras - 2012exa.unne.edu.ar/informatica/arquitectura/archivos/Unidad5_parte1... · 1 Arquitectura de Computadoras - 2012 Repertorio de Instrucciones: Características

63

Pilas: Evaluacion de expresiones.

Ventaja: Una expresión con este formato es fácil de evaluar usando una pila.

Se recorre la expresión de izquierda a derecha.

Se aplican las siguientes reglas:

1.- Si el elemento es una variable o constante, se introduce en la pila.

2.- Si es un operador, se extraen de la cabecera de la pila los dos operandos, se realiza la operación y se apila el resultado.

El resultado se obtiene en la cabecera de la pila.

Muchos compiladores, partiendo de expresiones en alto nivel las convierten a notación postfija y generan las instrucciones maquina a partir de esta notación.

64

Pilas: Evaluacion de expresiones.

Secuencia de instrucciones de maquina: para evaluar

f = ( a – b )/(c+d x e ).

La notación postfija ha servido de guía para generar las instrucciones de maquina.

La secuencia de eventos, producidos por el programa en la pila se ilustra en la sig. Figura:

Page 33: Arquitectura de Computadoras - 2012exa.unne.edu.ar/informatica/arquitectura/archivos/Unidad5_parte1... · 1 Arquitectura de Computadoras - 2012 Repertorio de Instrucciones: Características

65

Utilización de la pila para calcular f

66

Apendice: Clasificación de procesadores

• Aspecto relacionado con la forma en que se referencian y se representan los bytes dentro de una palabra y los bits dentro de un byte.

• ORDEN DE LOS BYTES.• Endian: Surge cuando es necesario tratar una entidad

multi-byte como un único dato con una sola dirección.• El tipo de endian determina el orden de

direccionamiento y de bytes.• Big-endian: Un dato numérico multi-byte que se

almacena con el byte más significativo en la dirección numérica más baja.

• Little-endian: Si se memoriza con el byte más significativo en la dirección más alta.

• Bi-endian: puede manejar ambos estilos de memorización

Page 34: Arquitectura de Computadoras - 2012exa.unne.edu.ar/informatica/arquitectura/archivos/Unidad5_parte1... · 1 Arquitectura de Computadoras - 2012 Repertorio de Instrucciones: Características

67

El orden de los Bytes (1) (Ejemplo)

• Valor hexadecimal de 32 bits:

• 12345678, se almacena en una palabra de 32 bits de una memoria direccionable por bytes, en el byte 184.

• El valor consta de 4 bytes, con el contenido 78 para el byte menos significativo, y el mas significativo con el valor 12.

• se exponen dos maneras de memorizar este valor.

68

El orden de los Bytes (1) (Ejemplo)

• Address Value (1) Value(2)

• 184 12 78

• 185 34 56

• 186 56 34

• 187 78 12

• + significativo - significativo

• big-endian little-endian

• i.e. leer de abajo hacia arriba o de arriba hacia abajo?

• .

Page 35: Arquitectura de Computadoras - 2012exa.unne.edu.ar/informatica/arquitectura/archivos/Unidad5_parte1... · 1 Arquitectura de Computadoras - 2012 Repertorio de Instrucciones: Características

69

Byte Order Names (2)

• El problema se llama Endian. En relación con los bytes este concepto tiene que ver con la ordenación de los bytes en un escalar multi_byte.

• Se almacena el byte mas significativo en la dirección de byte con valor numérico mas bajo.

• Este se llama big-endian: equivalente al orden de escritura de izq. a derecha. Equivalente a la escritura de las lenguas en las culturas occidentales.

• La otra almacena: el byte menos significativo en la dirección con valor mas bajo.

• Se conoce con el nombre de little-endian: equivalente al orden de derecha a izq. seguido por las operaciones aritméticas.

70

Byte Order Names (3)

• Para determinadas tareas es necesario conocer la estructura de los datos.

• Por. Ejemplo: la conversión de un bloque de memoria con un tipo de endian a otro, requiere conocer la estructura de los datos.

• Procesadores “Little endian”: Intel 80x86, Pentium II, Vax y Alpha.

• Procesadores “Big endian”: IBM System 370/390; SUN SPARC y mayoría de los RISC.

Page 36: Arquitectura de Computadoras - 2012exa.unne.edu.ar/informatica/arquitectura/archivos/Unidad5_parte1... · 1 Arquitectura de Computadoras - 2012 Repertorio de Instrucciones: Características

71

Byte Order Names (4)• La figura siguiente muestra como el tipo de “endian”

determina el orden de direccionamiento y de los bytes.

• La estructura C, contiene varios tipos de datos

• Los cuadros son el resultado de la compilación

• Memoria: serie de filas de 64 bits

• “Big endian”: la memoria se representa de izq. A derecha y de arriba hacia abajo.

• “Little endian”: Memoria de derecha a izq. Y de arriba abajo.

• (Estos esquemas podrían variar de fila a fila, depende de la manera de hacer el trazado).

• Los manuales de programación muestran confusa colección de formatos.

72

Example of C Data Structure (5)

Page 37: Arquitectura de Computadoras - 2012exa.unne.edu.ar/informatica/arquitectura/archivos/Unidad5_parte1... · 1 Arquitectura de Computadoras - 2012 Repertorio de Instrucciones: Características

73

Alternative View of Memory Map

Ejemplo: Se considera la memoria como una matriz vertical de bytes.

No existe consenso acerca de que tipo es mejor.

Se prefiere el “big-endian” por lo siguiente:

•Ordenación de cadenas de caracteres: es mas rápido en comparar cadenas de caracteres alineadas como enteros; la ALU de enteros puede comparar varios en paralelo

•Volcados decimal/ASCII: Todos los valores pueden imprimirse de izquierda a derecha sin causar confusión.

•Orden coherente: Los procesadores “Big-endian”almacenan en el mismo orden los enteros y las cadenas de caracteres ( el byte mas signif. primero).

74

Alternative View of Memory Map

Page 38: Arquitectura de Computadoras - 2012exa.unne.edu.ar/informatica/arquitectura/archivos/Unidad5_parte1... · 1 Arquitectura de Computadoras - 2012 Repertorio de Instrucciones: Características

75

Alternative View of Memory Map

Se prefiere el “little-endian” por lo siguiente:

•Un procesador “big-endian” tiene que efectuar sumas cuando convierte una dirección entera de 32 bits a una de 16 bits, con el objeto de utilizar los bytes menos significativos.

•Mayor facilidad para realizar operaciones aritméticas de alta precisión al estilo “little endian”; no hay que buscar primero el byte menos significativo y luego retroceder.

•Diferencias son poco significativas y la elección del estilo “endian” se debe mas a la necesidad de compatibilizar con maquinas anteriores que por otras causas.

•El POWER PC es un procesador “bi-endian”.

•Este permite a los desarrolladores de software elegir uno u otro modo.

76

Orden de los bitsAl considerarlos dentro de un byte:

1. Se cuenta el primer bit como bit numero 0 o como nro 1?

2. El numero de bit mas bajo lo asignamos al bit menos significativo del byte ( little-endian) o al mas significativo ( big-endian)?

No hay respuestas iguales para todas las maquinas

El programador necesita ser consciente para manipular los bits de manera individual.

Otro aspecto: transmisión de datos a través de una línea serie.

Cuando se transmite un byte individual ¿ envía el sistema primero el bit mas significativo, o el menos significativo?

El diseñador debe asegurarse de que los bits recibidos son correctamente tratados.

Page 39: Arquitectura de Computadoras - 2012exa.unne.edu.ar/informatica/arquitectura/archivos/Unidad5_parte1... · 1 Arquitectura de Computadoras - 2012 Repertorio de Instrucciones: Características

77

Standard…What Standard?

• Pentium (80x86), VAX are little-endian

• IBM 370, Moterola 680x0 (Mac), and most RISC are big-endian

• Internet is big-endian—Makes writing Internet programs on PC more

awkward!

—WinSock provides htoi and itoh (Host to Internet & Internet to Host) functions to convert