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.

Slides:



Advertisements
Presentaciones similares
DISEÑO DE TRANSFERENCIA ENTRE REGISTROS
Advertisements

UNIVERSIDAD DEL VALLE DE MEXICO CAMPUS CHAPULTEPEC
Fermín Sánchez Carracedo Universitat Politècnica de Catalunya
Computación PROGRAMACIÓN.
Introducción a los Sistemas Operativos Memoria Virtual
Modelo de procesos de dos estados
ARQUITECTURA INTEL FORMATOS DE INSTRUCCIÓN
ARQUITECTURA INTEL Modos de direccionamiento
Tema II Unidad de memoria. 2 Unidad de memoria 2.1 Definiciones y conceptos básicos Localización Capacidad Unidad de transferencia
Programación en Lenguaje Ensamblador.
Arquitectura de Conjunto de Instrucciones (ISA)
Gestión de Entrada / Salida
PROG. EN ENSAMBLADOR Ing. Pablo Cesar Tapia Catacora.
Composición Interna de un Procesador
Arquitectura del Computador
ISA (Instruction Set Architecture)
Introducción a los SSOO Sebastián Sánchez Prieto.
HILOS Y COMUNICACIÓN ENTRE PROCESOS

Tema 10: Gestión de Memoria
MIPS Intermedio.
Introducción al lenguaje ensamblador
Introducción a la Ingeniería en Sistemas
© Prof. José Mª Foces Morán PCSpim: SPIM sobre Windows Ventana principal de PCSpim Consola: permite interactuar con el programa que está siendo.
Organización del Computador I Verano MIPS (1 de 2) Basado en el capítulo 3 del libro de Patterson y Hennessy Verano 2004 Profesora Borensztejn.
Secciones y Segmentos STARTUP
ARQUITECTURA DE COMPUTADORES Semestre A-2009 Clase 13.
Tema 10.3: Asignación de Espacio No Contiguo. Tema 10.3: 2 Silberschatz, Galvin and Gagne ©2005 Fundamentos de los Computadores (ITT, Sist. Electr.),
Asignación de Espacio No Contiguo
Conceptos Arquitectónicos del computador
ICC243 Sistemas Operativos P03: Introducción: Conceptos Prof. Jonathan Makuc.
Lenguaje de Programación cap. 1 Estructura del Computador.
MÁQUINAS MULTINIVEL NIVEL 5 Lenguajes de alto nivel
Introducción a los Sistemas Operativos
Capítulo 7 Gestión de memoria.
Tema 1: DATOS Y REGISTROS
Unidad I: Registros e Interrupciones Facilitador: Ing. Eduardo Brando.
Microcomputadores Prof: Tatiana Marín R.. Lenguaje máquina = lenguaje binario InstrucciónLenguaje máquina (binario)OP ( hex)Nemónico Restar F0SUB.
Tema 2: Lenguaje máquina
1 Descripción y control de procesos Capítulo 3. 2 Requerimientos de un SO relacionados con procesos Ejecutar concurrentemente múltiples procesos para.
introducción al Lenguaje Ensamblador
“Organización y Arquitectura de Computadores” William Stallings
Familia x86.
Breve introducción a la arquitectura de 32 bits intel.
Breve introducción a la arquitectura de 32 bits intel.
Objetivo Mostrar los fundamentos de la programación a través de ejemplos y prácticas utilizadas cotidianamente en el desarrollo de aplicaciones.
Capítulo 4 CPU y la memoria.
SEMANA 01_2.
Ing. Lionel Hendryk. Sistemas Embebidos Un sistema embebido es un sistema de computación diseñado para realizar una o algunas pocas funciones dedicadas.
ARQUICTECTURA DE SERVIDORES
introducción al Lenguaje Ensamblador
Maquinas Digitales UNIDADES DE CONTROL.
Son los atributos de un sistema que son visibles para un programador, es decir aquellos atributos que impactan directamente en la ejecución lógica de un.
Unidad Central de Proceso
CONJUNTO DE INSTRUCCIONES Maquinas Digitales
Aprende el arte de la ingeniería inversa
 Panorama General Fundamentos de Programación M.I. Jaime Alfonso Reyes Cortés.
ò Unidad Aritmético-Lógica ò Unidad de Control ò Buses internos ò Registros ò Puntero de Instrucciones (IP o PC) ò Acumulador ò De uso Generales ò.
Curso: Fundamentos de Computación
MIPS Intermedio.
Arquitectura de Computadores
El microprocesador y su arquitectura
Introducción MSc. Rina Arauz.
Lenguaje ensamblador Conceptos introductorios. Formatos de Instrucción. Modos de Direccionamiento. Conjunto de instrucciones básico. Introducción al Lenguaje.
Arquitectura de Computadores Clases Interrupciones de software y hardware IIC 2342 Semestre Rubén Mitnik Pontificia Universidad Católica.
Gestión de Memoria – Parte 2
Arquitectura de PCs Arquitectura básica del PC. Introducción El PC es el resultado de una especificación técnica de IBM El hardware se organiza de forma.
Lenguaje ensamblador Resumen en diapositivas
Omar Herrera Caamal Rigoberto Lizárraga Luis Cetina Luna.
Estructura del sistema operativo
Transcripción de la presentación:

Introducción Sebastián Sánchez Prieto

Introducción 2  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

Introducción 3  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

Introducción 4  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

Introducción 5  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

Introducción 6  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

Introducción 7  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.

Introducción 8  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

Introducción 9  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

Introducción 10  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

Introducción 11  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)

Introducción 12  S2P, OGP & IGT Nivel ISA del Pentium Evolución en el número de transistores por chip: ,2 M 3,1 M 5,5 M 7,5 M 9,5 M 42 M Pentium Pentium III 8086 Pentium Pro Pentium II Pentium IV 2000

Introducción 13  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.

Introducción 14  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

Introducción 15  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

Introducción 16  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

Introducción 17  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

Introducción 18  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

Introducción 19  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 XXXX YYYY XXXX YYYY XXXX XXXX

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

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

Introducción 22  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)

Introducción 23  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

Introducción 24  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

Introducción 25  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

Introducción 26  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.

Introducción 27  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

Introducción 28  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

Introducción 29  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