1 / 29

Introducción

Introducción. Sebastián Sánchez Prieto. 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

Download Presentation

Introducción

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Introducción Sebastián Sánchez Prieto

  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

  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

  4. Lenguajes, niveles y máquinas virtuales Nivel 3 Máquina virtual M3 con un lenguaje L3 Los programas del nivel 2 son interpretados por programas que se ejecutan en M1 o M0 o son traducidos a lenguajes L1 o L0 Nivel 2 Máquina virtual M2 con un lenguaje L2 Nivel 1 Máquina virtual M1 con un lenguaje L1 Nivel 0 Computador real M0 con un lenguaje L0

  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: Lenguaje de alto nivel Lenguaje ensamblador Sistema Operativo Arquitectura Microarquitectura Lógica digital • En este curso estudiaremos los niveles de arquitectura y de sistema operativo

  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

  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.

  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

  9. 8 bytes 8 bytes 0 1 2 3 4 5 6 7 0 1 2 3 4 5 6 7 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) 0 0 8 8 16 16 24 24

  10. 8 bytes 0 1 2 3 4 5 6 7 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 0 8 8 7 6 5 4 3 2 1 0 16 16 24 24

  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)

  12. Nivel ISA del Pentium • Evolución en el número de transistores por chip: Pentium IV 42 M 9,5 M Pentium III 7,5 M Pentium II 5,5 M Pentium Pro Pentium 3,1 M 80486 1,2 M 80386 275.000 80286 134.000 8086 8088 29.000 1978 1979 1982 1985 1989 1993 1995 1997 1999 2000

  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.

  14. Registros 32 bits 16 bits AH A X AL EAX BH B X BL EBX CH C X CL ECX D X DH DL EDX ESI EDI EBP ESP CS SS DS ES FS GS EIP EFLAGS

  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

  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

  17. Nivel ISA del UltraSPARC II • Se trabaja con una ventana de registros para agilizar la llamada a procedimientos sin emplear la memoria R0 Vale siempre 0 R1-R7 Mantienen las variables globales R8-R13 Mantienen los parámetros de llamada a los procedimientos R14 Puntero de pila R15 Registro de Scratch R16-R23 Mantienen las variables locales del procedimiento actual R24-R29 Mantienen los parámetros de entrada R30 Puntero del marco de pila actual R31 Dirección de retorno del procedimiento actual

  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 Sin operandos CODOP Dirección 1 operando CODOP Dirección 1 Dirección 2 2 operandos CODOP Dirección 1 Dirección 2 Dirección 3 3 operandos

  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 0000 XXXX YYYY ZZZZ CODOP Dirección 1 Dirección 2 Dirección 3 1110 XXXX YYYY ZZZZ 1111 0000 XXXX YYYY CODOP Dirección 1 Dirección 2 1111 1110 XXXX YYYY 1111 1111 0000 XXXX CODOP Dirección 1 1111 1111 1110 XXXX 1111 1111 1111 0000 CODOP 1111 1111 1111 1111

  20. Formato de instrucciones del Pentium II • Formato: muy irregular, “escandaloso” • Razón: compatibilidad binaria con los procesadores anteriores Bytes 0-5 1-2 0-1 0-1 0-4 0-4 PREFIJO CODOP MODO SIB Desplazamiento Inmediato Bits 6 1 1 Bits 2 3 3 Instrucción ESCALA ÍNDICE BASE Byte/word ¿Qué operando es fuente? Bits 2 3 3 MOD REC R/M

  21. Formato en el UltraSPARC • Todas las instrucciones son de 32 bits y alineadas en memoria • Formato de instrucciones: 2 5 5 6 1 8 5 1a 3 Reg. DEST CODOP SRC1 0 FP-OP SRC2 1b Inmed. DEST CODOP SRC1 1 CONST. INMEDIATA 2 5 3 22 2 SETHI DEST OP CONST. INMEDIATA 2 1 4 3 22 3 BRANCH A COND OP DESPL. RELATIVO AL PC 2 30 4 CALL DESPL. RELATIVO AL PC

  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)

  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

  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

  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

  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.

  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

  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

  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

More Related