Introducción Sebastián Sánchez Prieto. Introducción 2 1999-2003 S2P, OGP & IGT Sistemas,...
-
Upload
catalina-maidana-farias -
Category
Documents
-
view
222 -
download
0
Transcript of Introducción Sebastián Sánchez Prieto. Introducción 2 1999-2003 S2P, OGP & IGT Sistemas,...
Introducción
Sebastián Sánchez Prieto
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
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
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
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
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
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.
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
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
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
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)
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
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.
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
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
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
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
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
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
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
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
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)
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
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
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
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.
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
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
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