Introducción Sebastián Sánchez Prieto. Introducción 2 1999-2003 S2P, OGP & IGT Sistemas,...

29
Introducción Sebastián Sánchez Prieto

Transcript of Introducción Sebastián Sánchez Prieto. Introducción 2 1999-2003 S2P, OGP & IGT Sistemas,...

Page 1: Introducción Sebastián Sánchez Prieto. Introducción 2  1999-2003 S2P, OGP & IGT Sistemas, complejidad y modelos Un ordenador es un sistema complejo que.

Introducción

Sebastián Sánchez Prieto

Page 2: Introducción Sebastián Sánchez Prieto. Introducción 2  1999-2003 S2P, OGP & IGT Sistemas, complejidad y modelos Un ordenador es un sistema complejo que.

1999-2003 S2P, OGP & IGT Introducción 2

Sistemas, complejidad y modelos

Un ordenador es un sistema complejo que puede describirse mediante diferentes modelos en distintos niveles de una jerarquía de abstracciones

Sistema: conjunto de cosas que ordenadamente relacionadas entre sí contribuyen a un determinado objetivo

Sistema complejo: es el compuesto por un gran número de partes que actúan entre sí de manera no sencilla

Modelo: es un sistema material o conceptual que se utiliza en lugar de otro

Cada nivel aporta sus propias abstracciones basándose en el/los niveles inferiores

Cada nivel puede desarrollarse de un modo independiente

Page 3: Introducción Sebastián Sánchez Prieto. Introducción 2  1999-2003 S2P, OGP & IGT Sistemas, complejidad y modelos Un ordenador es un sistema complejo que.

1999-2003 S2P, OGP & IGT Introducción 3

Lenguajes, niveles y máquinas virtuales

Un computador digital es una máquina que puede resolver problemas ejecutando las instrucciones que le son indicadas mediante un programa

Las instrucciones que puede ejecutar un computador constituyen un lenguaje denominado lenguaje máquina

El lenguaje empleado por las personas difiere considerablemente del empleado por las máquinas

Solución para el entendimiento entre personas y máquinas:

Emplear una jerarquía de niveles en los que cada uno de ellos emplee un lenguaje de mayor nivel de abstracción

Page 4: Introducción Sebastián Sánchez Prieto. Introducción 2  1999-2003 S2P, OGP & IGT Sistemas, complejidad y modelos Un ordenador es un sistema complejo que.

1999-2003 S2P, OGP & IGT Introducción 4

Lenguajes, niveles y máquinas virtuales

Computador real M0

con un lenguaje L0

Nivel 0

Máquina virtual M1

con un lenguaje L1

Nivel 1

Máquina virtual M2

con un lenguaje L2

Nivel 2

Máquina virtual M3

con un lenguaje L3

Nivel 3

Los programas del nivel 2son interpretados por programasque se ejecutan en M1 o M0o son traducidos a lenguajesL1 o L0

Page 5: Introducción Sebastián Sánchez Prieto. Introducción 2  1999-2003 S2P, OGP & IGT Sistemas, complejidad y modelos Un ordenador es un sistema complejo que.

1999-2003 S2P, OGP & IGT Introducción 5

Visión jerárquica de un computador

Las primeras clasificaciones sólo diferenciaban entre el hardware y el software

Actualmente una de las estructuras más utilizadas es la siguiente:

Sistema Operativo

Lenguaje ensamblador

Lenguaje de alto nivel

En este curso estudiaremos los niveles de arquitectura y de sistema operativo

Arquitectura

Microarquitectura

Lógica digital

Page 6: Introducción Sebastián Sánchez Prieto. Introducción 2  1999-2003 S2P, OGP & IGT Sistemas, complejidad y modelos Un ordenador es un sistema complejo que.

1999-2003 S2P, OGP & IGT Introducción 6

Modelos de cada nivel

Cada nivel puede ser descrito desde el punto de vista funcional, estructural y de realización práctica

Modelo funcional o de caja negra: describe la función del sistema, sus acciones sobre el entorno y sus reacciones a éste

Modelo estructural: describe la organización del sistema como conjunto de partes relacionadas

La realización práctica de cada modelo puede llevarse a cabo de modos muy diferentes

A un mismo modelo funcional pueden corresponder distintos modelos estructurales

Los modelos se emplean con el fin de aplicarlos en la práctica y resolver un determinado problema

Page 7: Introducción Sebastián Sánchez Prieto. Introducción 2  1999-2003 S2P, OGP & IGT Sistemas, complejidad y modelos Un ordenador es un sistema complejo que.

1999-2003 S2P, OGP & IGT Introducción 7

Nivel de arquitectura

También es conocido como nivel de arquitectura de repertorio de instrucciones o ISA (Instruction Set Architecture)

Es el nivel de interfaz entre el hardware y el software Los programas escritos en lenguaje de alto nivel se traducen a

programas de nivel ISA utilizando compiladores o intérpretes Cuando se diseña una nueva arquitectura es necesario conocer

aspectos hardware y software (compiladores y sistemas operativos) Problema: compatibilidad hacia atrás con otras arquitecturas

existentes Este nivel queda definido por la percepción que tiene del computador

el programador en lenguaje máquina Esta percepción incluye la memoria, los registros, los tipos de datos

o las instrucciones Esta percepción no incluye si el procesador es microprogramado o

cableado, si es o no segmentado, si es o no superescalar, etc.

Page 8: Introducción Sebastián Sánchez Prieto. Introducción 2  1999-2003 S2P, OGP & IGT Sistemas, complejidad y modelos Un ordenador es un sistema complejo que.

1999-2003 S2P, OGP & IGT Introducción 8

Modelos de memoria

La memoria es dividida en celdas de tamaño fijo, normalmente 8 bits (tamaño del carácter representado en ASCII)

Una celda es el mínimo bloque de información que puede ser transferido entre el procesador y la memoria y viceversa

Han existido arquitecturas con otros tamaños de celda (i.e. 27 bits)

Los bytes normalmente se agrupan de 4 en 4 o de 8 en 8 para formar palabras, dobles palabras...

Problemas: Alineamiento Ordenación

Page 9: Introducción Sebastián Sánchez Prieto. Introducción 2  1999-2003 S2P, OGP & IGT Sistemas, complejidad y modelos Un ordenador es un sistema complejo que.

1999-2003 S2P, OGP & IGT Introducción 9

Alineamiento

La alineación se necesita para operar de un modo más eficiente en los accesos a memoria

Si la dirección es múltiplo del tamaño de celda del bus de datos, toda la información del bus puede ser leída o escrita en memoria en una sola operación

Existen procesadores (i.e. Pentium II) que sólo pueden generar direcciones múltiplos de 8

En PII para cada dirección física de 36 bits sólo existen 33 bits de dirección (el resto = 0)

8 bytes

0 1 65432 7

8 bytes

10 2

3 4 765

0

8

16

24

0

8

16

24

Page 10: Introducción Sebastián Sánchez Prieto. Introducción 2  1999-2003 S2P, OGP & IGT Sistemas, complejidad y modelos Un ordenador es un sistema complejo que.

1999-2003 S2P, OGP & IGT Introducción 10

Ordenación

La ordenación indica cómo son colocados en la memoria los bytes que forman una agrupación mayor (palabra, doble palabra, etc.)

Caben dos alternativas: little end (típico de Intel*) y big end (típico de Motorola)

Es el fabricante el que determina normalmente la ordenación

En algunos procesadores, el modo de ordenación puede ser establecido a voluntad

8 bytes

0 1 65432 7

8 bytes

7 6 12345 0

0

8

16

24

0

8

16

24

Page 11: Introducción Sebastián Sánchez Prieto. Introducción 2  1999-2003 S2P, OGP & IGT Sistemas, complejidad y modelos Un ordenador es un sistema complejo que.

1999-2003 S2P, OGP & IGT Introducción 11

Registros

Los registros son las celdas básicas de memoria integradas en el procesador

No todos los registros definidos en el nivel de microarquitectura son visibles en el nivel de arquitectura

Tipos: registros de propósito general:

simétricos o intercambiables (R10000) asimétricos (PII)

registros de propósito especial (SP, PC) Otra clasificación

registros modo núcleo registros de usuario registros híbridos: Program Status Word (PSW)

Page 12: Introducción Sebastián Sánchez Prieto. Introducción 2  1999-2003 S2P, OGP & IGT Sistemas, complejidad y modelos Un ordenador es un sistema complejo que.

1999-2003 S2P, OGP & IGT Introducción 12

Nivel ISA del Pentium

Evolución en el número de transistores por chip:

29.000

134.000

275.000

1,2 M

3,1 M

5,5 M

7,5 M

9,5 M

42 M

8088

80286

80386

80486

Pentium

Pentium III

8086

Pentium Pro

Pentium II

1978 1979 1982 1985 1989 1993 1995 1997 1999

Pentium IV

2000

Page 13: Introducción Sebastián Sánchez Prieto. Introducción 2  1999-2003 S2P, OGP & IGT Sistemas, complejidad y modelos Un ordenador es un sistema complejo que.

1999-2003 S2P, OGP & IGT Introducción 13

Modos de operación del Pentium II

Modo real: en este modo se comporta como un 8088 rápido

Modo virtual 8086: permite ejecutar viejos programas en un entorno protegido. En este modo se comporta como varios 8086

Modo protegido: funciona como un Pentium Emplea un sistema de anillos de protección de memoria de

4 niveles Espacio de direccionamiento de 4 Gb Instrucciones MMX Dos niveles de caché Organización interna superescalar Etc.

Page 14: Introducción Sebastián Sánchez Prieto. Introducción 2  1999-2003 S2P, OGP & IGT Sistemas, complejidad y modelos Un ordenador es un sistema complejo que.

1999-2003 S2P, OGP & IGT Introducción 14

Registros

EAXEBXECXEDX

AH ALBH BLCH CLDH DL

ESIEDIEBPESP

XXXX

ABCD

CSSSDSESFSGS

EIP

EFLAGS

32 bits

16 bits

Page 15: Introducción Sebastián Sánchez Prieto. Introducción 2  1999-2003 S2P, OGP & IGT Sistemas, complejidad y modelos Un ordenador es un sistema complejo que.

1999-2003 S2P, OGP & IGT Introducción 15

Nivel ISA del UltraSPARC II

La arquitectura SPARC (Scalable Processor ARChitecture) de Sun surge en 1987 basada en un nuevo diseño de la Universidad de Berkeley (RISC II)

Sun propuso la arquitectura, pero el desarrollo de chips podría llevarlo a cabo cualquier compañía

El primer SPARC era una máquina de 32 bits corriendo a 36 MHz (55 instrucciones)

En 1995 se introduce la arquitectura UltraSPARC I de 64 bits que es compatible a nivel binario con las generaciones anteriores

Se añaden 23 instrucciones nuevas, las instrucciones VIS que son las equivalentes a las instrucciones MMX del Pentium

Page 16: Introducción Sebastián Sánchez Prieto. Introducción 2  1999-2003 S2P, OGP & IGT Sistemas, complejidad y modelos Un ordenador es un sistema complejo que.

1999-2003 S2P, OGP & IGT Introducción 16

Nivel ISA del UltraSPARC II

Espacio de direccionamiento virtual de 264 bytes (sólo se emplean 44 bits físicos para direccionar)

Ordenación por defecto: big endian aunque puede cambiarse modificando un bit del PSW

Es una arquitectura load/store, todas las operaciones que impliquen acceder a memoria se hace sólo con instrucciones de carga o de almacenamiento

Registros: 32 registros de propósito general de 64 bits 32 registros de coma flotante de 64 bits

El uso de los registros generales se basa en convenios y también en el trato distinguido que de ellos puede hacer el HW

Page 17: Introducción Sebastián Sánchez Prieto. Introducción 2  1999-2003 S2P, OGP & IGT Sistemas, complejidad y modelos Un ordenador es un sistema complejo que.

1999-2003 S2P, OGP & IGT Introducción 17

Nivel ISA del UltraSPARC II

Se trabaja con una ventana de registros para agilizar la llamada a procedimientos sin emplear la memoria

R0

R1-R7

R8-R13

R14

R15

R16-R23

R24-R29

R30

R31

Vale siempre 0

Mantienen las variables globales

Mantienen los parámetros de llamada a los procedimientos

Puntero de pila

Registro de Scratch

Mantienen las variables locales del procedimiento actual

Mantienen los parámetros de entrada

Puntero del marco de pila actual

Dirección de retorno del procedimiento actual

Page 18: Introducción Sebastián Sánchez Prieto. Introducción 2  1999-2003 S2P, OGP & IGT Sistemas, complejidad y modelos Un ordenador es un sistema complejo que.

1999-2003 S2P, OGP & IGT Introducción 18

Formato de instrucciones

Una instrucción consta habitualmente de un código de operación e información adicional para localizar los operandos si es que existen

Posibles formatos de instrucción:

CODOP

CODOP Dirección

CODOP Dirección 1 Dirección 2

CODOP Dirección 1 Dirección 2 Dirección 3

Sin operandos

1 operando

2 operandos

3 operandos

Page 19: Introducción Sebastián Sánchez Prieto. Introducción 2  1999-2003 S2P, OGP & IGT Sistemas, complejidad y modelos Un ordenador es un sistema complejo que.

1999-2003 S2P, OGP & IGT Introducción 19

Criterios para elegir formatos

Tamaño: fijo o variable Longitud de la instrucción: corta o larga Nº de bits para el código de operación Nº de bits para las direcciones Nº de direcciones expresadas en la instrucción Para mayor flexibilidad se puede emplear expansión de

códigos de operación

CODOP Dirección 1 Dirección 2 Dirección 3

CODOP Dirección 1 Dirección 2

CODOP Dirección 1

CODOP

0000 XXXX YYYY ZZZZ1110 XXXX YYYY ZZZZ

1111 0000 XXXX YYYY1111 1110 XXXX YYYY

1111 1111 0000 XXXX1111 1111 1110 XXXX

1111 1111 1111 00001111 1111 1111 1111

Page 20: Introducción Sebastián Sánchez Prieto. Introducción 2  1999-2003 S2P, OGP & IGT Sistemas, complejidad y modelos Un ordenador es un sistema complejo que.

1999-2003 S2P, OGP & IGT Introducción 20

Formato de instrucciones del Pentium II

Formato: muy irregular, “escandaloso” Razón: compatibilidad binaria con los procesadores

anteriores

PREFIJO CODOP MODO SIB Desplazamiento Inmediato

ESCALA ÍNDICE BASE

0-5 1-2Bytes 0-1 0-1 0-4 0-4

2 3 3Bits

Instrucción

6 1 1Bits

MOD REC R/M

2 3 3Bits¿Qué operando es fuente?

Byte/word

Page 21: Introducción Sebastián Sánchez Prieto. Introducción 2  1999-2003 S2P, OGP & IGT Sistemas, complejidad y modelos Un ordenador es un sistema complejo que.

1999-2003 S2P, OGP & IGT Introducción 21

Formato en el UltraSPARC

Todas las instrucciones son de 32 bits y alineadas en memoria

Formato de instrucciones:

DEST CODOP 0

2 5

1a

6 1 8 5

SRC1

5

FP-OP SRC2

DEST CODOP 11b SRC1 CONST. INMEDIATA

DEST OP

2 5

2

3 22

CONST. INMEDIATA SETHI

3 Reg.

Inmed.

COND OP

2 4

3

3 22

DESPL. RELATIVO AL PC BRANCHA

1

2

430

CALLDESPL. RELATIVO AL PC

Page 22: Introducción Sebastián Sánchez Prieto. Introducción 2  1999-2003 S2P, OGP & IGT Sistemas, complejidad y modelos Un ordenador es un sistema complejo que.

1999-2003 S2P, OGP & IGT Introducción 22

Direccionamiento

Consideremos una instrucción del tipo ADD ADD: Destino Origen1 + Origen2

¿Cómo referenciar los operandos? La instrucción puede incluir las tres posiciones de memoria

(origen1, origen2 y destino) Problema: instrucción muy larga Solución: empleo de registros:

Tres: Rx = Ry + Rz Típico de arquitecturas RISC

Dos: Rx = Rx + Ry I.e. Pentium

Uno: Acc = Acc + Rx Arquitecturas tipo acumulador

Cero Arquitecturas tipo pila como la Java Virtual Machine (JVM)

Page 23: Introducción Sebastián Sánchez Prieto. Introducción 2  1999-2003 S2P, OGP & IGT Sistemas, complejidad y modelos Un ordenador es un sistema complejo que.

1999-2003 S2P, OGP & IGT Introducción 23

Modos de direccionamiento Inmediato: la instrucción contiene el operando

mov ax, 4C00h Directo: la instrucción contiene la dirección donde se encuentra el

operando mov ax, [3FB0]

Por registro: el registro especificado en la instrucción contiene el operando

mov ax, bx Indirecto por registro: la instrucción referencia a un registro que actúa

como puntero al operando mov ax, [bx]

Indexado: la instrucción especifica un registro que se emplea como índice y un offset

mov ax, matriz[si] Base indexado: la instrucción especifica dos registros más un offset

mov ax, matriz[si][di] Por pila: los operandos fuente y destino se localizan en la pila

Page 24: Introducción Sebastián Sánchez Prieto. Introducción 2  1999-2003 S2P, OGP & IGT Sistemas, complejidad y modelos Un ordenador es un sistema complejo que.

1999-2003 S2P, OGP & IGT Introducción 24

Tipos de instrucciones De transferencia de datos

Mem – Mem, Mem – Reg, Reg – Mem, Reg - Reg Operaciones de dos elementos

ADD, SUB, AND, OR, XOR, etc. Operaciones de un elemento

Rotaciones, desplazamientos, negaciones, etc. Comparaciones y saltos condicionales

Saltos si igual, mayor, menor, etc. Llamadas y retornos a procedimientos

CALL y RET Llamada al sistema

SVC, SYSCALL, INT X, etc. Control de bucles

LOOP, DJNZ, etc. Entrada y salida

IN y OUT

Page 25: Introducción Sebastián Sánchez Prieto. Introducción 2  1999-2003 S2P, OGP & IGT Sistemas, complejidad y modelos Un ordenador es un sistema complejo que.

1999-2003 S2P, OGP & IGT Introducción 25

Eventos síncronos y asíncronos

Un evento síncrono es aquel que se produce ligado al flujo de ejecución del programa

Un evento asíncrono es aquel que se produce de un modo independiente al flujo de ejecución del programa

Los eventos síncronos son reproducibles, cosa que no ocurre con los asíncronos

Un evento síncrono se desencadena siempre en el mismo punto de un programa si las condiciones son las mismas

Como ejemplos de los primeros podemos poner los traps y las llamadas al sistema

Como ejemplo de los segundos tenemos las interrupciones

Page 26: Introducción Sebastián Sánchez Prieto. Introducción 2  1999-2003 S2P, OGP & IGT Sistemas, complejidad y modelos Un ordenador es un sistema complejo que.

1999-2003 S2P, OGP & IGT Introducción 26

Traps

Un trap es un evento síncrono que provoca la activación automática de un procedimiento iniciado como consecuencia de una condición especial

El procedimiento ejecutado cuando se produce el trap se denomina manejador de trap

Ejemplos: Overflow División por cero Violación de acceso a memoria Fallo de página Instrucción ilegal, etc.

Page 27: Introducción Sebastián Sánchez Prieto. Introducción 2  1999-2003 S2P, OGP & IGT Sistemas, complejidad y modelos Un ordenador es un sistema complejo que.

1999-2003 S2P, OGP & IGT Introducción 27

Interrupciones

Una interrupción es un evento asíncrono que provoca el cambio del flujo de control de un programa

Al producirse la interrupción se invoca de modo automático a un procedimiento conocido normalmente como manejador de interrupción

Cada interrupción lleva asociada una prioridad Vinculadas a las interrupciones existen una serie de

acciones hardware y software que describimos a continuación

Page 28: Introducción Sebastián Sánchez Prieto. Introducción 2  1999-2003 S2P, OGP & IGT Sistemas, complejidad y modelos Un ordenador es un sistema complejo que.

1999-2003 S2P, OGP & IGT Introducción 28

Acciones hardware

El controlador (HW) activa la línea de interrupción El procesador, en cuanto esté listo para manejar la

interrupción, activa una línea del bus (INTA) Se recoge del bus el vector de interrupción colocado

por el controlador o por el PIC Se guarda el PC y el PSW en la pila El nuevo PC se carga a partir del vector de interrupción

indicado. Normalmente empleando una tabla almacenada en memoria

Page 29: Introducción Sebastián Sánchez Prieto. Introducción 2  1999-2003 S2P, OGP & IGT Sistemas, complejidad y modelos Un ordenador es un sistema complejo que.

1999-2003 S2P, OGP & IGT Introducción 29

Acciones software

Se guardan los registros en la pila Se determina qué dispositivo de la familia generó la

interrupción (generalmente los dispositivos de la misma familia comparten el vector de interrupciones)

Se procesa la entrada-salida Se comunica el fin de tratamiento de interrupción en caso

de ser necesario Se restauran los registros Se ejecuta la instrucción de retorno de interrupción