La descarga está en progreso. Por favor, espere

La descarga está en progreso. Por favor, espere

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.

Presentaciones similares


Presentación del tema: "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."— Transcripción de la presentación:

1 Introducción Sebastián Sánchez Prieto

2 Introducción 2  1999-2003 S2P, OGP & IGT 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

3 Introducción 3  1999-2003 S2P, OGP & IGT 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

4 Introducción 4  1999-2003 S2P, OGP & IGT 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 2 son interpretados por programas que se ejecutan en M1 o M0 o son traducidos a lenguajes L1 o L0

5 Introducción 5  1999-2003 S2P, OGP & IGT 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

6 Introducción 6  1999-2003 S2P, OGP & IGT 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

7 Introducción 7  1999-2003 S2P, OGP & IGT 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.

8 Introducción 8  1999-2003 S2P, OGP & IGT 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

9 Introducción 9  1999-2003 S2P, OGP & IGT 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 01654327 102 34765 0 8 16 24 0 8 16 24

10 Introducción 10  1999-2003 S2P, OGP & IGT 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 01654327 76123450 0 8 16 24 0 8 16 24

11 Introducción 11  1999-2003 S2P, OGP & IGT 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)

12 Introducción 12  1999-2003 S2P, OGP & IGT 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 197819791982198519891993199519971999 Pentium IV 2000

13 Introducción 13  1999-2003 S2P, OGP & IGT 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.

14 Introducción 14  1999-2003 S2P, OGP & IGT Registros EAX EBX ECX EDX AHAL BHBL CHCL DHDL ESI EDI EBP ESP X X X X A B C D CS SS DS ES FS GS EIP EFLAGS 32 bits 16 bits

15 Introducción 15  1999-2003 S2P, OGP & IGT 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

16 Introducción 16  1999-2003 S2P, OGP & IGT Nivel ISA del UltraSPARC II Espacio de direccionamiento virtual de 2 64 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

17 Introducción 17  1999-2003 S2P, OGP & IGT 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

18 Introducción 18  1999-2003 S2P, OGP & IGT 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 Dirección CODOPDirección 1Dirección 2 CODOPDirección 1Dirección 2Dirección 3 Sin operandos 1 operando 2 operandos 3 operandos

19 Introducción 19  1999-2003 S2P, OGP & IGT 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 CODOPDirección 1Dirección 2Dirección 3 CODOPDirección 1Dirección 2 CODOPDirección 1 CODOP 0000 XXXX YYYY ZZZZ 1110 XXXX YYYY ZZZZ 1111 0000 XXXX YYYY 1111 1110 XXXX YYYY 1111 1111 0000 XXXX 1111 1111 1110 XXXX 1111 1111 1111 0000 1111 1111

20 Introducción 20  1999-2003 S2P, OGP & IGT Formato de instrucciones del Pentium II Formato: muy irregular, “escandaloso” Razón: compatibilidad binaria con los procesadores anteriores PREFIJOCODOPMODOSIBDesplazamientoInmediato ESCALA ÍNDICEBASE 0-51-2Bytes 0-1 0-4 233Bits Instrucción 611Bits MODRECR/M 233Bits ¿Qué operando es fuente? Byte/word

21 Introducción 21  1999-2003 S2P, OGP & IGT Formato en el UltraSPARC Todas las instrucciones son de 32 bits y alineadas en memoria Formato de instrucciones: DESTCODOP0 2 5 1a 618 5 SRC1 5 FP-OPSRC2 DESTCODOP1 1b SRC1CONST. INMEDIATA DESTOP 2 5 2 3 22 CONST. INMEDIATA SETHI 3 Reg. Inmed. CONDOP 2 4 3 3 22 DESPL. RELATIVO AL PC BRANCH A 1 2 4 30 CALL DESPL. RELATIVO AL PC

22 Introducción 22  1999-2003 S2P, OGP & IGT 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)

23 Introducción 23  1999-2003 S2P, OGP & IGT 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

24 Introducción 24  1999-2003 S2P, OGP & IGT 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

25 Introducción 25  1999-2003 S2P, OGP & IGT 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

26 Introducción 26  1999-2003 S2P, OGP & IGT 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.

27 Introducción 27  1999-2003 S2P, OGP & IGT 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

28 Introducción 28  1999-2003 S2P, OGP & IGT 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

29 Introducción 29  1999-2003 S2P, OGP & IGT 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


Descargar ppt "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."

Presentaciones similares


Anuncios Google