SlideShare uma empresa Scribd logo
1 de 63
ARQUITECTURA DEL
  COMPUTADOR
  Juan Rafael Álvarez Correa
  jalvarez at debian dot org


                               1
CAPITULOS

■   0 – Arquitectura del computador
■   1 – Introducción a los sistemas operativos
■   2 – Procesos e hilos
■   3 – Comunicación, concurrencia y bloqueos
■   4 – Gestión de memoria
■   5 – Entrada y salida
■   6 – Gestión de archivos y directorios
■   7 – Seguridad y protección
■   8 – Sistemas distribuidos
                                                 2
CONTENIDO
■   Arquitecturas de computador
       Von Neumann - Arquitectura Harvard
■   Bus
■   CPU
       ALU, CU, FPU, Registros, ISA, Ciclo Fetch-Execute
■   Memoria
       Interfaz de acceso, Jerarquia, Cache
■   Entrada y salida (Dispositivos)
       Interfaz de acceso, Estrategias de I/O
■   Protección por hardware
       Modo dual, I/O, Memoria, CPU                   3
ANTES

■   Los dispositivos “electronicos” eran
    diseñados para un proposito especifico
       Para resolver el problema de la suma, se
        diseñaban dispositivos para sumar
       Este dispositivo no podia ser utilizado para otros
        fines: resta, multiplicación, división
       La corrección de errores en estos dispositivos se
        realizaba mediante el rediseño de los mismos




                                                         4
ARQUITECTURA VON NEUMANN

■   Especifica el diseño de un dispositivo de
    proposito general (problemas diferentes)
■   Introduce el concepto de programa
    almacenado
■   Componentes
       Memoria (utilizada para datos y codigo)
       CPU = ALU + CU
         ➔   Instruction Set Architecture
       Dispositivos: Entrada, salida, almacenamiento y
        comunicación
       Bus: Datos, control y direcciones             5
ARQUITECTURA VON NEUMANN

■   Ventajas y desventajas
       Permite codigo automodificable
       Arquitectura electronica “facil” de diseñar
       Instrucciones y datos recuperados de forma
        secuencial (Von Neumann Bottleneck)




                                             Tomado de Universidad
                                             de Canterbury
                                                                     6
ARQUITECTURA HARVARD

■   Componentes
       Memoria de datos
       Buses de datos, control y direcciones para la
        memoria de datos
       Memoria de instrucciones
       Buses de datos (instrucciones), control y
        direcciones para la memoria de instrucciones
       CPU = ALU + CU




                                                        7
ARQUITECTURA HARVARD

■   Ventajas y desventajas
       Facilita la realización del pipelining
         ➔   Completación de la instruccion actual (operadores)
         ➔   Recuperación de la siguiente instrucción




                                                 Tomado de Universidad
                                                 de Canterbury           8
APLICACION DE ARQUITECTURAS

■   Arquitectura Von Neumann
       Computadores actuales en el acceso de la CPU
        a la memoria principal (RAM)
■   Arquitectura Harvard
       Computadores actuales en el acceso de la CPU
        a la memoria cache (dentro del procesador)
         ➔   Existen caches separados de instrucciones y datos
       Microcontroladores
         ➔   PIC de Microchip



                                                                 9
CPU: UNIDADES

■   CU: Unidad de Control
       Unidad de obtención
       Unidad de decodificación
       Unidad funcional
         ➔   Selecciona y dirige el componente adecuado de la
             ALU para el procesamiento
■   ALU: Unidad Aritmetico Logica
       Realiza operaciones aritmeticas (+, -, *, /)
       Realiza operaciones logicas (&&, ||, !)
■   FPU: Unidad de punto flotante
                                                                10
CPU: REGISTROS
■   Architectural registers (Arquitectonicos)
       Registros de proposito general
         ➔   Registros de datos -enteros- (EAX, EBX, ECX, EDX)
         ➔   Registros de dirección (ESI, EDI, ESP, EBP)
         ➔   Registros de punto flotante (ST0 - ST7)
         ➔   Registros constantes (MIPS $0 – Motorola 88100 r0)
         ➔   Registros vectoriales (MMX0 - MMX7, SSE?, SSE2?)
       Registros de proposito especifico
         ➔   Registros de segmento (CS, DS, SS, ES, FS, GS)
         ➔   Registro de estado (EFLAGS)
         ➔   Registro de puntero a instrucción (EIP -PC-)
                                                                  11
CPU: REGISTROS
■   Non-Architectural Registers a.k.a
■   Machine/Model Specific Registers (MSR)
       MAR: Memory Address Register
       MDA: Memory Data Register
       IR: Instruction Register (!= EIP)
       IA32_BIOS_UPDT_TRIG (Actualizar microcodigo)
       MSR_BPU_COUNTER0 (Registro de conteo)
         ➔   INSTRUCTIONS_EXECUTED (Evento de conteo)
■   Acceso y modificación de los MSR
       Ver RDMSR y WRMSR
                                                        12
BUS

■   Jerarquia de bus (Cercania a la CPU)
       Back Side Bus:    CPU <-> Cache L2
       Front Side Bus:   CPU <-> Northbridge
       Local bus:        Southbridge <-> Controlador
       External bus:     Controlador <-> Dispositivo
■   Diseño
       Seriales:         Un unico hilo
       Paralelos:        Multiples hilos electricos
■   Información que transporta
       Control – Datos - Direcciones
                                                         13
BUS




  14
BUS

■   Front Side Bus
       EV6 (Athlon y Alpha), GTL+/AGTL+ (Intel)
■   Internal bus – Paralelos
       ISA, EISA, VESA, MCA, PCI, AGP
■   Internal bus – Seriales
       PCI Express (PCIe), I2C, HyperTransport
■   External bus – Paralelos
       ATA (aka IDE, EIDE, ATAPI), SCSI, PCMCIA
■   External bus – Seriales
       SATA, USB, IEEE 1394 (FireWire)
                                                     15
INSTRUCTION SET ARCHITECTURE
■   Aspectos de la arquitectura visibles al
    programador
       Instrucciones
       Registros
       Modos de direccionamiento
       Arquitectura de memoria
       Manejo de interrupciones y excepciones
■   Tiene un conjunto de codigos de operación
    que representan las instrucciones que
    puede procesar la CPU
       Cada opcode tiene asociado un mnemonico
                                                  16
INSTRUCTION SET ARCHITECTURE
■   Segun la complejidad de las instrucciones:
       CISC: Complex Instruction Set Computer
         ➔   Sin compiladores, las instrucciones hacen demasiado
         ➔   Instrucciones complejas implican programas pequeños
         ➔   Ejecución en mas de un ciclo de reloj
         ➔   Menos operaciones de fetch a memoria
         ➔   Alta sobrecarga en el proceso de decodificación
         ➔   Diseño altamente complejo




                                                               17
INSTRUCTION SET ARCHITECTURE
■   Segun la complejidad de las instrucciones:
       RISC: Reduced Instruction Set Computer
         ➔   Instrucciones pequeñas implican programas grandes
         ➔   Ejecución en un ciclo de reloj
         ➔   Compiladores no usan frecuentemente instrucciones
             complejas
         ➔   Instrucciones complejas tienden a ser mas lentas que
             instrucciones pequeñas que hacen lo mismo (INDEX)
         ➔   Para el diseñador de un procesador es dificil optimizar
             todas las instrucciones de una ISA
         ➔   98% de las constantes de un programa caben en 13b.
         ➔   Menos modos de direccionamiento, solo load-store.
                                                                  18
INSTRUCTION SET ARCHITECTURE
■   Segun la tecnica de implementación
       “Cablear” la ISA en un circuito integrado
         ➔   Mayor rapidez al estar implementado en hardware
         ➔   El diseño y las modificaciones son complejas
       Microprogramar la ISA (CISC~=RISC) [SIMH]
         ➔   Cada macroinstrucción (mnemonico y opcode -CISC-)
             se encuentra implementada con microinstrucciones
             almacenadas en el Control Store.
         ➔   Las microinstrucciones -RISC- son cableadas en el CI
         ➔   Los procesadores son faciles de diseñar
         ➔   Se logra mayor flexibilidad
         ➔   Ejemplo de microasemblers: Meta29, Micro2, MIC1
                                                                    19
INSTRUCTION SET ARCHITECTURE
■   Problemas que pudieron ser solucionados
    rapidamente con ISAs microprogramadas
        f00f bug en Intel Pentium (0xf00fc7c8)
               cmpxchg8b {64bits} -> cmpxchg8b %eax
        cmpxchg8b %eax
            ➔


           ➔   Compara el ECX+EBX con el operador si iguales
               cargar en el operador, si diferentes cargar en registros
        FDIV bug en Intel Pentium
           ➔   La división de punto flotante no funcionaba
               adecuadamente con ciertos operadores




                                                                    20
INSTRUCTION SET ARCHITECTURE
■   Implementaciones concretas de ISA
       x86                    Varios            CISC
       IA-64                  Intel             CISC
       68k                    Motorola          CISC
       Alpha                  DEC               RISC
       SPARC                  Sun               RISC
       PowerPC                Apple-IBM-Motorola RISC
       MIPS                   MIPS              RISC
       ARM                    ARM Ltd           RISC
       TIMI over SLIC         IBM
       Java Virtual Machine   Sun                       21
INSTRUCTION SET ARCHITECTURE

// a = b + c
■    load            r3, b
■    load            r4, c
■    add             r3, r4
■    store r3, a
// d = a - 100
■    load            r4, =100
■    subs            r3, r4
■    store r3, d
Tomado de Sistemas Operativos de Gary Nutt   22
HISTORIA DE UN PROGRAMA

■   Compilador
       Entrada: Lenguaje de alto nivel (codigo fuente)
       Salida:    Lenguaje ensamblador (mnemonicos)
■   Ensamblador
       Entrada: Lenguaje ensamblador (mnemonicos)
       Salida:    Codigo binario (codigos de operación)
■   Microprograma
       Entrada: Codigo binario (codigos de operación)
       Salida:    Control fisico de las señales (HW)

                                                        23
SINTAXIS DE ASM PARA X86
■   Intel
       Prefijos                 mov eax,1
       Dirección de operandos   mov dest,fuente
       Operandos de memoria     mov eax,[ebx+3]
       Sufijos                  mov al,bl
■   AT&T
       Prefijos                 movl %eax,$1
       Dirección de operandos   movl fuente,dest
       Operandos de memoria     movl 3(%ebx),%eax
       Sufijos                  movb %bl,%al
                                                    24
CPU: CICLO LECTURA-EJECUCIÓN

PC = <dirección inicio maquina>;
indicadorParada = limpiar;
while (indicadorParada no activado)
{
      IR = memoria [PC];
      PC = PC + 1;
      ejecutar (IR);
}
Tomado de Sistemas Operativos de Gary Nutt



                                             25
MEMORIA
■   Interfaz de memoria
       MAR: Memory Address Register
       MDR: Memory Data Register
       CMD: Command Register
■   Alineación
       Restricción de la dirección de memoria que
        puede tener un objeto en la misma
         ➔   Un objeto debe estar alojado en una dirección
             multiplo de su tamaño
         ➔   byte (8), word (16), doubleword (32), quadword (64)
         ➔   Restricciones del bus de direcciones
              -   Cada byte de una palabra se almacena en un banco de
                  memoria diferente (bus tiene realmente 2 bits menos)
                                                                         26
MEMORIA

■   Jerarquia de memoria
       Registros                  1 ciclo de reloj
       Cache (L1, L2)             1,10 ciclos de reloj
       Memoria principal (RAM)    100 ciclos de reloj
       Almacenamiento en disco 10000 ciclos de reloj
■   Arriba en la jerarquia de memoria
       + velocidad (+ frecuencia de uso), - capacidad
■   Abajo en la jerarquia de memoria
       - velocidad (- frecuencia de uso), + capacidad

                                                          27
PROXIMIDAD REFERENCIAL

■   Todos los datos de un programa no tienen
    la misma probabilidad de ser accedidos
■   Tipos
       Proximidad temporal (Cache)
         ➔   Si un dato es accedido, existe una alta probabilidad
             de que este sea accedido de nuevo en el futuro
         ➔   Replacement Policy = Least Recent Used (LRU)
              -   El mas viejo
       Proximidad espacial (Cache line)
         ➔   Si un dato es accedido, existe una alta probabilidad
             de que los datos cercanos sean accedidos en el
             futuro                                                 28
PROXIMIDAD REFERENCIAL

■   Proximidad temporal
       Los ciclos hacen que las instrucciones vuelvan a
        ser utilizadas
       El uso de variables de forma repetitiva
       La invocación de subrutinas de forma reiterada
■   Proximidad espacial
       Los programas son secuenciales a excepción de
        los saltos.
       Las estructuras de datos son generalmente
        consecutivas en memoria.
                                                         29
CACHE: ACTORES

■   Backing storage
       Puede ser la memoria prinicipal u otro cache
■   Cache
       Memoria de alta velocidad que busca disminuir
        el efecto del memory bound
         ➔   Cache hit:    Hit rate/ratio
         ➔   Cache miss:   Miss rate/ratio
■   Cliente del cache
       Puede ser la CPU u otro cache


                                                        30
CACHE: COMPONENTES

■   Index
■   Tag
■   Cache line (Proximidad espacial)
       Xeon 512bits = Bus de datos 64bits x 8 lecturas




                                         Tomado de Wikipedia
                                                               31
CPU: CICLO LECTURA DE CACHE
recibir dirección de memoria de la CPU
if (dirección esta en el cache) {
    referenciar el byte en el cache line
}
else {
    traer de memoria el bloque que lo contiene
    ubicar un cache line para el bloque
    referenciar el byte en el cache line
}
entregar el byte a la CPU                        32
CACHE: POLITICA DE UBICACIÓN

■   Direct mapped
       Cada bloque de memoria solo puede estar en
        una posición especifica del cache
         ➔   (Dirección del bloque) % (# de cache lines del cache)
■   Fully associative
       Cada bloque de memoria puede estar en
        cualquier posición del cache
■   Set associative
       Cada bloque de memoria solo puede estar en un
        conjunto especifico de posiciones del cache
         ➔   (Dirección del bloque) % (# de conjuntos en el cache)
                                                                 33
CACHE: POLITICA DE UBICACIÓN

■   En un cache set associative, una vez ha
    sido seleccionado la posición se puede
    ubicar en cualquier posición del conjunto
■   Un cache direct mapped es un cache set
    associative con conjuntos de tamaño 1
       Cache direct cache = 1-way set associative
■   Un cache fully associative es un cache set
    associative con 1 solo conjunto
       Fully associative = m-way set associative


                                                     34
CACHE: POLITICA DE UBICACIÓN




                      Tomado de Wikipedia




                                        35
CACHE: POLITICA DE REMPLAZO

■   Criterio que indica cual cache line de un
    cache set associative con n>1 debe
    remplazarse
■   Aleatoria
       Ignora la proximidad referecial (temporal)
■   LRU: Least Recent Used (Proximidad tempo)
■   LFU: Least Frecuently Used
       Consideran la proximidad referencial (temporal)
■   ARC: Adaptive Replacement Cache
       Inventado por IBM en el 2003 combina LRU y LFU
                                                      36
CACHE: POLITICA DE ESCRITURA

■   En un write hit
       Write through: Cache y memoria-backing storage
         ➔   Los datos son consistentes entre ambos
         ➔   Perdida de velocidad durante la escritura
         ➔   Facil implementación
       Write back:         Cache y a memoria solo remplazo
         ➔   Multiples escrituras son una sola escritura a memoria
         ➔   Es necesario marcar los cache lines con el flag dirty
         ➔   Mayor velocidad
         ➔   Dificil de implementar
         ➔   Inconsistencia entre la memoria y el cache
                                                                     37
CACHE: POLITICA DE ESCRITURA

■   En un write miss
       Write allocate
         ➔   El bloque es ubicado en un cache line para luego ser
             modificado
         ➔   Utilizado con la politica de write back, esperando que
             las modificaciones siguientes queden en el cache
       No write allocate
         ➔   La modificación ocurre en memoria sin ingresar el
             nuevo valor en el cache
         ➔   Utilizado con la politica de write through, ya que de
             igual forma igual forma la modificación ocurrira en
             memoria
                                                                     38
CACHE: COHERENCIA
■   Si un cache write-back tiene un cache-line
    sucio y un DMA desea acceder esos datos,
    el cache proporciona esa información en
    vez de la memoria. Si no esta sucio es
    marcado como invalido.
■   Mecanismos
       Snooping:   Leer el bus de direcciones
       Snarfing:   Leer el bus de direcciones y datos
■   Protocolos de coherencia de cache
       MSI, MOSI, MESI, MOESI
       Modified, Owned, Exclusive, Shared, Invalid
                                                         39
CACHE: COHERENCIA
■   Modified
       Cache line incosistente y unica copia
■   Owned
       Cache line consistente, multiples copias y con
        derecho a actualizar las demas copias
■   Exclusive
       Cache line consistente y unica copia
■   Shared
       Cache line consistente y multiples copias
■   Invalid
       Cache line invalida (stale)                      40
CACHE: MULTINIVEL
■   Caches inclusivos (Intel)
       Cache L[X+1] contiene L[X]
         ➔   L1=32KB, L2=512KB, L3=4MB == 4MB
         ➔   Solo el cache mas lento hace snoop. Luego se
             sincronizan los demas caches. (Coherencia simple)
         ➔   Los accesos de coherencia acceden al cache de
             mayor nivel que esta menos ocupado por la CPU que
             el de menor nivel.
■   Caches exclusivos (AMD)
       Cache L[X+1] no contiene L[X]
         ➔   L1=32KB, L2=512KB, L3=4MB == 4.53MB
         ➔   Todos los niveles deben hacer snoop
                                                                 41
DISPOSITIVOS

■   Recolectar o presentar datos




                                        42
DISPOSITIVOS: DIRECCIONAMIENTO
■   MMIO: Memory Mapped I/O
       En el espacio de direcciones de memoria esta
        direccionada la memoria de los dispositivos
       Se usan las mismas instrucciones de acceso a
        memoria para acceder a la memoria de los disp.
         ➔   Se simplifica el diseño de la ISA
■   PMIO: Port Mapped I/O
       Existe un espacio de direcciones separado para
        la memoria y para los dispositivos (I/O port)
       Se requieren instrucciones diferentes de la ISA
        para acceder este espacio de direcciones
         ➔   Toda la memoria esta disponible              43
DISPOSITIVOS: DIRECCIONAMIENTO
■   MMIO: Memory Mapped I/O
       Instrucciones en x86
         ➔   movb /   movw     /   movd / cpuid
         ➔   Serialización de instrucciones (no especulación)
■   PMIO: Port Mapped I/O
       Instrucciones de I/O en x86 ISA
         ➔   insb /   insw /   insd
         ➔   outb /   outw /   outd
       Espacio de direcciones de I/O en x86 ISA
         ➔   16 bits direccionables por bytes
         ➔   65536 bytes
                                                                44
DISPOSITIVOS: INTERFAZ




                     45
DISPOSITIVOS: INTERFAZ

■   Registro de estado [ocupado][hecho][error]
       Ocioso                   [     0      ][   0    ]
         ➔   Se pueden colocar ordenes en el registro de ordenes
         ➔   Se han leido datos de los registros de datos
       Finalizado               [     0      ][   1    ]
         ➔   Se ha completado una operación de I/O
       Trabajando               [     1      ][   0    ]
         ➔   Se ha dado una orden
         ➔   Se ha iniciado la operación y aun no ha terminado
       No definido              [     1      ][   1    ]
                                                                 46
DISPOSITIVOS: POLLING-(SONDEO)

        ¿Como saber que la operación termino?
■   Polling
       La CPU lee permanentemente el registro de
        estado de la memoria del dispositivo, para
        determinar que el trabajo ha finalizado (espera-
        activa o busy-wait)
         ➔   ocupado = 0 y hecho = 1
■   Desventajas
       Sin DMA la CPU estaba ocupada transfiriendo
        datos
       Con polling la CPU esta ocupada verificando si
        una operación termino
                                                         47
INTERRUPCIONES Y EXCEPCIONES

■   Eventos que indican que una condición
    existe en el sistema y requiere atención del
    procesador
■   Ventajas
       Elimina las esperas activas
       Permite utilizar la CPU para otras labores
■   El ciclo de lectura ejecución debe ser
    modificado para verificar la existencia de
    interrupciones


                                                     48
INTERRUPCIONES (RECIBIDAS)
■   Generadas por hardware externo a la CPU.
    Se “reciben” y son asincronicas.
■   Tipos de interrupciones
       Maskable Hardware Interrupt (IF en EFLAGS)
         ➔   Pin INTR (En x86)
         ➔   Operaciones de I/O finalizadas
       Non-Maskable Interrupt
         ➔   Pin NMI (En x86)
         ➔   Errores irrecuperables (paridad en la RAM)
■   Origen
       Hardware externo a la CPU
                                                          49
EXCEPCIONES (DETECTADAS)
■   Tipos de excepciones
       Faults: Posiblemente recuperable (Page fault)
         ➔   Se ejecuta de nuevo la instrucción generadora
       Traps: Depuración (EFLAGS – Trap Flag – Bit 8)
         ➔   Se continua ejecutando la siguiente instrucción
       Aborts: Double fault excepcion (8)
         ➔   No se puede continuar con la ejecución
■   Origen de la excepción
       Detectadas por el procesador
       Programadas (INT, INTO)
       Verificaciones de maquina                              50
CICLO CON INTERRUPCION (HW)

... (igual que en el ciclo básico de la CPU)
while (indicadorParada no activado) {
    IR = memoria [PC];
    PC = PC + 1;
    ejecutar (IR);
    if (solicitudInterrupción activado) {
      memoria [x] = PC;
      PC = memoria [y];
    }
}
Tomado de Sistemas Operativos de Gary Nutt
                                               51
INTERRUPT SERVICE ROUTINE (SW)
■   Interrupt Service Routine o Interrupt Handler
       FLIH: First Level Interrupt Handler
         ➔   Almacenar el estado del procesador (en control stack)
         ➔   Deshabilitar interrupciones iguales (evitar race
             condition) o de menor prioridad (no expropiación)
         ➔   Almacenar la información solo disponible durante la
             interrupción
         ➔   Planificar el manejo de la interrupción SLIH
         ➔   Restaurar el estado del procesador (en control stack)
         ➔   Retornar el control (x86 = IRET)
       SLIH: Second Level Interrupt Handler
         ➔   Manejar la interrupción de forma planificada
                                                                   52
VECTOR DE INTERRUPCIONES

■   Vector en la memoria que contiene las
    direcciones de memoria donde se alojan los
    FLIH de cada interrupción o excepción
■   El numero de la interrupción es el indice o
    desplazamiento en el vector
■   Ubicación del vector de interrupciones
       En x86 es indicado por el registro IDTR
       Durante la inicialización de un x86 es = a la
        dirección de memoria fisica 0x00000000
       En Linux el vector de interrupciones se mueve a
        otra posición de memoria (remplaza el del BIOS)
                                                        53
DISPOSITIVOS: PIC
■   Programmable Interrupt Controller
       Dispositivo normalmente alojado en el
        southbridge (x86 = Intel 8259A x 2)
       Canaliza las interrupciones a una unica linea de
        interrupción al procesador (x86 = INTR)
       Encola interrupciones de menor prioridad o
        iguales a la atendida actualmente por el FLIH
       Se gestiona como un dispositivo, pues tiene I/O
        (0x20-0x21) ports para recuperar la interrupcion
         ➔   Indicar cual fue la interrupción que ocurrio
         ➔   Indicar que ya fue manejada la interrupción
         ➔   Deshabilitar especificamente alguna interrupción
                                                                54
DISPOSITIVOS: CICLO I/O


■   Ciclo de I/O a memoria (I/O-to-memory)


        load   R2, =LONGITUD
ciclo: load    R1, [memoria_cont, R2]
        store R1, [memoria_ppal, R2]
        dec    R2
        jnz    ciclo

                                             55
DISPOSITIVOS: DMA

■   Direct Memory Access
       Evita que la CPU pierda tiempo realizando
        escrituras entre los dispositivos y la memoria
       Normalmente incluido en el Southbridge
       Es un dispositivo (Intel 8237 / 82374)
         ➔   Controlador DMA 1 (4) canales: I/O ports 0x00–0x1f
         ➔   Controlador DMA 2 (4) canales: I/O ports 0xc0–0xdf
       Interfaz para cada canal (programado x driver)
         ➔   Registro de orden (dirección de la transferencia)
         ➔   Registro de dirección de memoria principal (src o dst)
         ➔   Registro contador (cantidad de bytes a transferir)
                                                                  56
ESQUEMATICO DE DMA




                 57
FUNCIONAMIENTO DE DMA
■   Controlador solicita DMA: DRQ#=1
■   8237 solicita el bus a la CPU: HQR=1
■   La CPU libera el bus: HLDA=1
■   El 8237 señala lo siguiente:
       Bus direcciones = Direccion memoria principal
       MEMW=1, MEMR=0, IOR=1, IOW=0
       DMA confirma al controlador: ACK#=1
■   Controlador pone datos en el bus de datos
       El I/O port origen esta cableado en el controlador
■   Si la transferencia termina: DRQ#=0
                                                        58
INSTRUCCIONES DE I/O

■   Categorias
       Instrucciones de control
         ➔   Indican a un dispositivos las funciones que debe
             realizar
       Instrucciones de estado
         ➔   Verifica las condiciones de estado de un controlador
             de dispositivo
       Instrucciones de transferencia
         ➔   Leen o escriben los datos entre la memoria del
             dispositivo y la memoria principal o los registros



                                                                    59
ESTRATEGIAS DE ENTRADA/SALIDA
■   ¿La CPU es responsable de ...?
       Estado: Determinar si la operación de E/S
        finalizo
       Transferencia: Transferir datos de la memoria
        del dispositivo a la memoria principal
■   Tipos
       I/O Directa con sondeo
       I/O Por DMA con sondeo
         ➔   No aplica. Si tiene DMA debe tener interrupciones.
       I/O Directa con interrupciones
       I/O Por DMA con interrupciones
                                                                  60
PROTECCIÓN POR HARDWARE

■   Otorgar mayores o menores privilegios de
    acceso a recursos criticos a partir de la
    confiabilidad del software
       Sistema operativo
         ➔   Solo el sistema operativo esta habilitado para
             realizar las operaciones criticas
       Aplicaciones
         ➔   Las aplicaciones no deben modificar el sistema
             operativo
         ➔   Las aplicaciones deben permitir que otras
             aplicaciones se ejecuten

                                                              61
ANILLOS DE PROTECCIÓN

■   aka Niveles de privilegio
■   Nivel 0 (Software + critico + confiable)
       Kernel mode (Kernel)
       Mas privilegios de acceso
         ➔   Acceder a memoria de todos los anillos de protección
         ➔   Ejecutar todas las instrucciones de la ISA
■   Nivel 3 (Software – critico – confiable)
       User mode (Aplicaciones)
       Menos privilegios de acceso

                                                                62
PROTECCIÓN

■   Protección de I/O
       Las instrucciones de entrada y salida son
        instrucciones privilegiadas
■   Protección de memoria
       Las aplicaciones no deben modificar ni código ni
        estructuras de datos del sistema operativo
         ➔   Vector de interrupciones
         ➔   Interrupt Service Routines
■   Protección de CPU
       Interrupciones (0) generadas periodicamente de
        forma programada. PIT = Dispositivo 8253/4
                                                       63

Mais conteúdo relacionado

Mais procurados

Trabajo final investigacion de las 4 unidades
Trabajo final  investigacion de las 4 unidadesTrabajo final  investigacion de las 4 unidades
Trabajo final investigacion de las 4 unidadesAlejandra Luna
 
Arquitectura de pc
Arquitectura de pcArquitectura de pc
Arquitectura de pcSENA
 
Procesadores CISC y RISC
Procesadores CISC y RISCProcesadores CISC y RISC
Procesadores CISC y RISCMarcelo Herrera
 
Arquitecturas RICS-CISC
Arquitecturas RICS-CISC Arquitecturas RICS-CISC
Arquitecturas RICS-CISC Edwin Belduma
 
Conceptos de arquitectura de computadoras
Conceptos de arquitectura de computadorasConceptos de arquitectura de computadoras
Conceptos de arquitectura de computadorasADRIAN CASTAÑEDA
 
Actividad de hardware y software
Actividad de hardware y softwareActividad de hardware y software
Actividad de hardware y softwarecarlos benitez
 
Arquitectura del microcontrolador
Arquitectura del microcontroladorArquitectura del microcontrolador
Arquitectura del microcontroladorJose Chacho
 
Características técnicas
Características técnicasCaracterísticas técnicas
Características técnicasLolis Chavez
 
02.Arquitectura de los microcontroladores pic
02.Arquitectura de los microcontroladores pic02.Arquitectura de los microcontroladores pic
02.Arquitectura de los microcontroladores picJonathan Ruiz de Garibay
 
Arquitecturas cisc-y-risc
Arquitecturas cisc-y-riscArquitecturas cisc-y-risc
Arquitecturas cisc-y-riscDaniel Martinez
 
Ts11 tiltepec isaac _alvarez_cruz
Ts11 tiltepec isaac _alvarez_cruzTs11 tiltepec isaac _alvarez_cruz
Ts11 tiltepec isaac _alvarez_cruzIsaak Alvarez Krux
 
Instituto tecologico de tuxtla gutierez
Instituto tecologico de tuxtla  gutierezInstituto tecologico de tuxtla  gutierez
Instituto tecologico de tuxtla gutierezIsaak Alvarez Krux
 

Mais procurados (18)

TALLER HARDWARE
TALLER HARDWARETALLER HARDWARE
TALLER HARDWARE
 
Trabajo final investigacion de las 4 unidades
Trabajo final  investigacion de las 4 unidadesTrabajo final  investigacion de las 4 unidades
Trabajo final investigacion de las 4 unidades
 
Arquitectura de pc
Arquitectura de pcArquitectura de pc
Arquitectura de pc
 
Procesadores CISC y RISC
Procesadores CISC y RISCProcesadores CISC y RISC
Procesadores CISC y RISC
 
Arquitecturas RICS-CISC
Arquitecturas RICS-CISC Arquitecturas RICS-CISC
Arquitecturas RICS-CISC
 
Conceptos de arquitectura de computadoras
Conceptos de arquitectura de computadorasConceptos de arquitectura de computadoras
Conceptos de arquitectura de computadoras
 
Actividad de hardware y software
Actividad de hardware y softwareActividad de hardware y software
Actividad de hardware y software
 
Cisc
CiscCisc
Cisc
 
5. microprocesador
5. microprocesador5. microprocesador
5. microprocesador
 
Arquitectura del microcontrolador
Arquitectura del microcontroladorArquitectura del microcontrolador
Arquitectura del microcontrolador
 
Risc Cisc
Risc  CiscRisc  Cisc
Risc Cisc
 
Características técnicas
Características técnicasCaracterísticas técnicas
Características técnicas
 
02.Arquitectura de los microcontroladores pic
02.Arquitectura de los microcontroladores pic02.Arquitectura de los microcontroladores pic
02.Arquitectura de los microcontroladores pic
 
Arquitecturas cisc-y-risc
Arquitecturas cisc-y-riscArquitecturas cisc-y-risc
Arquitecturas cisc-y-risc
 
Modelos risc y cisc
Modelos risc y ciscModelos risc y cisc
Modelos risc y cisc
 
Ts11 tiltepec isaac _alvarez_cruz
Ts11 tiltepec isaac _alvarez_cruzTs11 tiltepec isaac _alvarez_cruz
Ts11 tiltepec isaac _alvarez_cruz
 
Instituto tecologico de tuxtla gutierez
Instituto tecologico de tuxtla  gutierezInstituto tecologico de tuxtla  gutierez
Instituto tecologico de tuxtla gutierez
 
TIC Conceptos Basicos
TIC Conceptos BasicosTIC Conceptos Basicos
TIC Conceptos Basicos
 

Destaque

Basico de Arquitectura del Computador
Basico de Arquitectura del ComputadorBasico de Arquitectura del Computador
Basico de Arquitectura del ComputadorStephenson Prieto
 
Comunicación y Sincronizacion de Procesos
Comunicación y Sincronizacion de ProcesosComunicación y Sincronizacion de Procesos
Comunicación y Sincronizacion de ProcesosLorena Ramos
 
Fundamentos de la arquitectura de software
Fundamentos de la arquitectura de softwareFundamentos de la arquitectura de software
Fundamentos de la arquitectura de softwareRoger Villegas
 
DISEÑO DE LA ARQUITECTURA DEL SOFTWARE
DISEÑO DE LA ARQUITECTURA DEL SOFTWAREDISEÑO DE LA ARQUITECTURA DEL SOFTWARE
DISEÑO DE LA ARQUITECTURA DEL SOFTWAREjose_rob
 
Migración Sistemas operativos
Migración Sistemas operativosMigración Sistemas operativos
Migración Sistemas operativosWalther Acosta
 
TEDx Manchester: AI & The Future of Work
TEDx Manchester: AI & The Future of WorkTEDx Manchester: AI & The Future of Work
TEDx Manchester: AI & The Future of WorkVolker Hirsch
 

Destaque (8)

Basico de Arquitectura del Computador
Basico de Arquitectura del ComputadorBasico de Arquitectura del Computador
Basico de Arquitectura del Computador
 
Arquitecturas de Software
Arquitecturas de SoftwareArquitecturas de Software
Arquitecturas de Software
 
Comunicación y Sincronizacion de Procesos
Comunicación y Sincronizacion de ProcesosComunicación y Sincronizacion de Procesos
Comunicación y Sincronizacion de Procesos
 
Fundamentos de la arquitectura de software
Fundamentos de la arquitectura de softwareFundamentos de la arquitectura de software
Fundamentos de la arquitectura de software
 
Surf and trend watching
Surf and trend watchingSurf and trend watching
Surf and trend watching
 
DISEÑO DE LA ARQUITECTURA DEL SOFTWARE
DISEÑO DE LA ARQUITECTURA DEL SOFTWAREDISEÑO DE LA ARQUITECTURA DEL SOFTWARE
DISEÑO DE LA ARQUITECTURA DEL SOFTWARE
 
Migración Sistemas operativos
Migración Sistemas operativosMigración Sistemas operativos
Migración Sistemas operativos
 
TEDx Manchester: AI & The Future of Work
TEDx Manchester: AI & The Future of WorkTEDx Manchester: AI & The Future of Work
TEDx Manchester: AI & The Future of Work
 

Semelhante a Curso Sistemas Operativos - Unidad Arquitectura del Computador

Semelhante a Curso Sistemas Operativos - Unidad Arquitectura del Computador (20)

Modelos de arquitecturas de computadoras
Modelos de arquitecturas de computadorasModelos de arquitecturas de computadoras
Modelos de arquitecturas de computadoras
 
Arquitectura risc
Arquitectura riscArquitectura risc
Arquitectura risc
 
IsrraelD25189870
IsrraelD25189870IsrraelD25189870
IsrraelD25189870
 
Arquitectura Microcontrolador PIC16F887
Arquitectura Microcontrolador PIC16F887Arquitectura Microcontrolador PIC16F887
Arquitectura Microcontrolador PIC16F887
 
Microprocesador
MicroprocesadorMicroprocesador
Microprocesador
 
Microprocesador
MicroprocesadorMicroprocesador
Microprocesador
 
sistemas micro-programables
sistemas micro-programables sistemas micro-programables
sistemas micro-programables
 
Arquitectura riscc
Arquitectura risccArquitectura riscc
Arquitectura riscc
 
Arquitectura de Computadorasv
Arquitectura de ComputadorasvArquitectura de Computadorasv
Arquitectura de Computadorasv
 
Arquitectura del cpu
Arquitectura del cpuArquitectura del cpu
Arquitectura del cpu
 
arquitecturas Modernas
arquitecturas Modernasarquitecturas Modernas
arquitecturas Modernas
 
Apun
ApunApun
Apun
 
Discos duros y procesadores
Discos duros y procesadoresDiscos duros y procesadores
Discos duros y procesadores
 
Sm parte 1
Sm parte 1Sm parte 1
Sm parte 1
 
Estebana23444602
Estebana23444602Estebana23444602
Estebana23444602
 
Modelosdearquitecturasdecomputadoras 120905220343-phpapp01
Modelosdearquitecturasdecomputadoras 120905220343-phpapp01Modelosdearquitecturasdecomputadoras 120905220343-phpapp01
Modelosdearquitecturasdecomputadoras 120905220343-phpapp01
 
Arquitectura de Microprocesadores Modernos.
Arquitectura de Microprocesadores Modernos.Arquitectura de Microprocesadores Modernos.
Arquitectura de Microprocesadores Modernos.
 
Arquitectura del procesador
Arquitectura del procesadorArquitectura del procesador
Arquitectura del procesador
 
Arquitectura risc
Arquitectura riscArquitectura risc
Arquitectura risc
 
Microprocesadores
MicroprocesadoresMicroprocesadores
Microprocesadores
 

Último

Recursos Tecnológicos, página AIP-CRT 2 0 2 4.pdf
Recursos Tecnológicos, página  AIP-CRT 2 0 2 4.pdfRecursos Tecnológicos, página  AIP-CRT 2 0 2 4.pdf
Recursos Tecnológicos, página AIP-CRT 2 0 2 4.pdfNELLYKATTY
 
1ro Programación Anual D.P.C.C ACTUALIZADO
1ro Programación Anual D.P.C.C ACTUALIZADO1ro Programación Anual D.P.C.C ACTUALIZADO
1ro Programación Anual D.P.C.C ACTUALIZADODJElvitt
 
CIENCIAS SOCIALES SEGUNDO TRIMESTRE CUARTO
CIENCIAS SOCIALES SEGUNDO TRIMESTRE CUARTOCIENCIAS SOCIALES SEGUNDO TRIMESTRE CUARTO
CIENCIAS SOCIALES SEGUNDO TRIMESTRE CUARTOCEIP TIERRA DE PINARES
 
Anna Llenas Serra. El monstruo de colores. Doctor de emociones.pdf
Anna Llenas Serra. El monstruo de colores. Doctor de emociones.pdfAnna Llenas Serra. El monstruo de colores. Doctor de emociones.pdf
Anna Llenas Serra. El monstruo de colores. Doctor de emociones.pdfSaraGabrielaPrezPonc
 
Anuncio de Remitido Colegio SEK a la comunidad pública
Anuncio de Remitido Colegio SEK a la comunidad públicaAnuncio de Remitido Colegio SEK a la comunidad pública
Anuncio de Remitido Colegio SEK a la comunidad públicaIvannaMaciasAlvarez
 
explicacionsobrelasemanasanta-190411100653.ppt
explicacionsobrelasemanasanta-190411100653.pptexplicacionsobrelasemanasanta-190411100653.ppt
explicacionsobrelasemanasanta-190411100653.pptjosemanuelcremades
 
SECUENCIA DIDÁCTICA Matemática 1er grado
SECUENCIA  DIDÁCTICA Matemática 1er gradoSECUENCIA  DIDÁCTICA Matemática 1er grado
SECUENCIA DIDÁCTICA Matemática 1er gradoAnaMara883998
 
TECNOLOGÍA EDUCATIVA, USO DE LAS TIC.pptx
TECNOLOGÍA EDUCATIVA, USO DE LAS TIC.pptxTECNOLOGÍA EDUCATIVA, USO DE LAS TIC.pptx
TECNOLOGÍA EDUCATIVA, USO DE LAS TIC.pptxFranciscoCruz296518
 
La Gatera de la Villa nº 51. Revista cultural sobre Madrid..
La Gatera de la Villa nº 51. Revista cultural sobre Madrid..La Gatera de la Villa nº 51. Revista cultural sobre Madrid..
La Gatera de la Villa nº 51. Revista cultural sobre Madrid..La Gatera de la Villa
 
GUÍA SIANET - Agenda - Tareas - Archivos - Participaciones - Notas.pdf
GUÍA SIANET - Agenda - Tareas - Archivos - Participaciones - Notas.pdfGUÍA SIANET - Agenda - Tareas - Archivos - Participaciones - Notas.pdf
GUÍA SIANET - Agenda - Tareas - Archivos - Participaciones - Notas.pdfNELLYKATTY
 
La Congregación de Jesús y María, conocida también como los Eudistas, fue fun...
La Congregación de Jesús y María, conocida también como los Eudistas, fue fun...La Congregación de Jesús y María, conocida también como los Eudistas, fue fun...
La Congregación de Jesús y María, conocida también como los Eudistas, fue fun...Unidad de Espiritualidad Eudista
 
CARPETA PEDAGÓGICA 2024.docx para educacion
CARPETA PEDAGÓGICA 2024.docx para educacionCARPETA PEDAGÓGICA 2024.docx para educacion
CARPETA PEDAGÓGICA 2024.docx para educacionCarolVigo1
 
Kirpi-el-erizo libro descargar pdf 1 link
Kirpi-el-erizo libro descargar pdf 1 linkKirpi-el-erizo libro descargar pdf 1 link
Kirpi-el-erizo libro descargar pdf 1 linkMaximilianoMaldonado17
 
Revista digital primer ciclo 2024 colección ediba
Revista digital primer ciclo 2024 colección edibaRevista digital primer ciclo 2024 colección ediba
Revista digital primer ciclo 2024 colección edibaTatiTerlecky1
 
Presentación contribuciones socioeconómicas del SUPV 2023
Presentación contribuciones socioeconómicas del SUPV 2023Presentación contribuciones socioeconómicas del SUPV 2023
Presentación contribuciones socioeconómicas del SUPV 2023Ivie
 

Último (20)

Recursos Tecnológicos, página AIP-CRT 2 0 2 4.pdf
Recursos Tecnológicos, página  AIP-CRT 2 0 2 4.pdfRecursos Tecnológicos, página  AIP-CRT 2 0 2 4.pdf
Recursos Tecnológicos, página AIP-CRT 2 0 2 4.pdf
 
1ro Programación Anual D.P.C.C ACTUALIZADO
1ro Programación Anual D.P.C.C ACTUALIZADO1ro Programación Anual D.P.C.C ACTUALIZADO
1ro Programación Anual D.P.C.C ACTUALIZADO
 
Conducta ética en investigación científica.pdf
Conducta ética en investigación científica.pdfConducta ética en investigación científica.pdf
Conducta ética en investigación científica.pdf
 
CIENCIAS SOCIALES SEGUNDO TRIMESTRE CUARTO
CIENCIAS SOCIALES SEGUNDO TRIMESTRE CUARTOCIENCIAS SOCIALES SEGUNDO TRIMESTRE CUARTO
CIENCIAS SOCIALES SEGUNDO TRIMESTRE CUARTO
 
Anna Llenas Serra. El monstruo de colores. Doctor de emociones.pdf
Anna Llenas Serra. El monstruo de colores. Doctor de emociones.pdfAnna Llenas Serra. El monstruo de colores. Doctor de emociones.pdf
Anna Llenas Serra. El monstruo de colores. Doctor de emociones.pdf
 
Anuncio de Remitido Colegio SEK a la comunidad pública
Anuncio de Remitido Colegio SEK a la comunidad públicaAnuncio de Remitido Colegio SEK a la comunidad pública
Anuncio de Remitido Colegio SEK a la comunidad pública
 
VISITA DE ESTUDO À CRUZ VERMELHA _
VISITA DE ESTUDO À CRUZ VERMELHA                   _VISITA DE ESTUDO À CRUZ VERMELHA                   _
VISITA DE ESTUDO À CRUZ VERMELHA _
 
explicacionsobrelasemanasanta-190411100653.ppt
explicacionsobrelasemanasanta-190411100653.pptexplicacionsobrelasemanasanta-190411100653.ppt
explicacionsobrelasemanasanta-190411100653.ppt
 
Tema 5.- BASES DE DATOS Y GESTIÓN DE LA INF. PARA EL MARKETING.pdf
Tema 5.- BASES DE DATOS Y GESTIÓN DE LA INF. PARA EL MARKETING.pdfTema 5.- BASES DE DATOS Y GESTIÓN DE LA INF. PARA EL MARKETING.pdf
Tema 5.- BASES DE DATOS Y GESTIÓN DE LA INF. PARA EL MARKETING.pdf
 
Sesión de clase ES: Adoración sin fin...
Sesión de clase ES: Adoración sin fin...Sesión de clase ES: Adoración sin fin...
Sesión de clase ES: Adoración sin fin...
 
SECUENCIA DIDÁCTICA Matemática 1er grado
SECUENCIA  DIDÁCTICA Matemática 1er gradoSECUENCIA  DIDÁCTICA Matemática 1er grado
SECUENCIA DIDÁCTICA Matemática 1er grado
 
TECNOLOGÍA EDUCATIVA, USO DE LAS TIC.pptx
TECNOLOGÍA EDUCATIVA, USO DE LAS TIC.pptxTECNOLOGÍA EDUCATIVA, USO DE LAS TIC.pptx
TECNOLOGÍA EDUCATIVA, USO DE LAS TIC.pptx
 
La Gatera de la Villa nº 51. Revista cultural sobre Madrid..
La Gatera de la Villa nº 51. Revista cultural sobre Madrid..La Gatera de la Villa nº 51. Revista cultural sobre Madrid..
La Gatera de la Villa nº 51. Revista cultural sobre Madrid..
 
Power Point E. Sab: Adoración sin fin...
Power Point E. Sab: Adoración sin fin...Power Point E. Sab: Adoración sin fin...
Power Point E. Sab: Adoración sin fin...
 
GUÍA SIANET - Agenda - Tareas - Archivos - Participaciones - Notas.pdf
GUÍA SIANET - Agenda - Tareas - Archivos - Participaciones - Notas.pdfGUÍA SIANET - Agenda - Tareas - Archivos - Participaciones - Notas.pdf
GUÍA SIANET - Agenda - Tareas - Archivos - Participaciones - Notas.pdf
 
La Congregación de Jesús y María, conocida también como los Eudistas, fue fun...
La Congregación de Jesús y María, conocida también como los Eudistas, fue fun...La Congregación de Jesús y María, conocida también como los Eudistas, fue fun...
La Congregación de Jesús y María, conocida también como los Eudistas, fue fun...
 
CARPETA PEDAGÓGICA 2024.docx para educacion
CARPETA PEDAGÓGICA 2024.docx para educacionCARPETA PEDAGÓGICA 2024.docx para educacion
CARPETA PEDAGÓGICA 2024.docx para educacion
 
Kirpi-el-erizo libro descargar pdf 1 link
Kirpi-el-erizo libro descargar pdf 1 linkKirpi-el-erizo libro descargar pdf 1 link
Kirpi-el-erizo libro descargar pdf 1 link
 
Revista digital primer ciclo 2024 colección ediba
Revista digital primer ciclo 2024 colección edibaRevista digital primer ciclo 2024 colección ediba
Revista digital primer ciclo 2024 colección ediba
 
Presentación contribuciones socioeconómicas del SUPV 2023
Presentación contribuciones socioeconómicas del SUPV 2023Presentación contribuciones socioeconómicas del SUPV 2023
Presentación contribuciones socioeconómicas del SUPV 2023
 

Curso Sistemas Operativos - Unidad Arquitectura del Computador

  • 1. ARQUITECTURA DEL COMPUTADOR Juan Rafael Álvarez Correa jalvarez at debian dot org 1
  • 2. CAPITULOS ■ 0 – Arquitectura del computador ■ 1 – Introducción a los sistemas operativos ■ 2 – Procesos e hilos ■ 3 – Comunicación, concurrencia y bloqueos ■ 4 – Gestión de memoria ■ 5 – Entrada y salida ■ 6 – Gestión de archivos y directorios ■ 7 – Seguridad y protección ■ 8 – Sistemas distribuidos 2
  • 3. CONTENIDO ■ Arquitecturas de computador  Von Neumann - Arquitectura Harvard ■ Bus ■ CPU  ALU, CU, FPU, Registros, ISA, Ciclo Fetch-Execute ■ Memoria  Interfaz de acceso, Jerarquia, Cache ■ Entrada y salida (Dispositivos)  Interfaz de acceso, Estrategias de I/O ■ Protección por hardware  Modo dual, I/O, Memoria, CPU 3
  • 4. ANTES ■ Los dispositivos “electronicos” eran diseñados para un proposito especifico  Para resolver el problema de la suma, se diseñaban dispositivos para sumar  Este dispositivo no podia ser utilizado para otros fines: resta, multiplicación, división  La corrección de errores en estos dispositivos se realizaba mediante el rediseño de los mismos 4
  • 5. ARQUITECTURA VON NEUMANN ■ Especifica el diseño de un dispositivo de proposito general (problemas diferentes) ■ Introduce el concepto de programa almacenado ■ Componentes  Memoria (utilizada para datos y codigo)  CPU = ALU + CU ➔ Instruction Set Architecture  Dispositivos: Entrada, salida, almacenamiento y comunicación  Bus: Datos, control y direcciones 5
  • 6. ARQUITECTURA VON NEUMANN ■ Ventajas y desventajas  Permite codigo automodificable  Arquitectura electronica “facil” de diseñar  Instrucciones y datos recuperados de forma secuencial (Von Neumann Bottleneck) Tomado de Universidad de Canterbury 6
  • 7. ARQUITECTURA HARVARD ■ Componentes  Memoria de datos  Buses de datos, control y direcciones para la memoria de datos  Memoria de instrucciones  Buses de datos (instrucciones), control y direcciones para la memoria de instrucciones  CPU = ALU + CU 7
  • 8. ARQUITECTURA HARVARD ■ Ventajas y desventajas  Facilita la realización del pipelining ➔ Completación de la instruccion actual (operadores) ➔ Recuperación de la siguiente instrucción Tomado de Universidad de Canterbury 8
  • 9. APLICACION DE ARQUITECTURAS ■ Arquitectura Von Neumann  Computadores actuales en el acceso de la CPU a la memoria principal (RAM) ■ Arquitectura Harvard  Computadores actuales en el acceso de la CPU a la memoria cache (dentro del procesador) ➔ Existen caches separados de instrucciones y datos  Microcontroladores ➔ PIC de Microchip 9
  • 10. CPU: UNIDADES ■ CU: Unidad de Control  Unidad de obtención  Unidad de decodificación  Unidad funcional ➔ Selecciona y dirige el componente adecuado de la ALU para el procesamiento ■ ALU: Unidad Aritmetico Logica  Realiza operaciones aritmeticas (+, -, *, /)  Realiza operaciones logicas (&&, ||, !) ■ FPU: Unidad de punto flotante 10
  • 11. CPU: REGISTROS ■ Architectural registers (Arquitectonicos)  Registros de proposito general ➔ Registros de datos -enteros- (EAX, EBX, ECX, EDX) ➔ Registros de dirección (ESI, EDI, ESP, EBP) ➔ Registros de punto flotante (ST0 - ST7) ➔ Registros constantes (MIPS $0 – Motorola 88100 r0) ➔ Registros vectoriales (MMX0 - MMX7, SSE?, SSE2?)  Registros de proposito especifico ➔ Registros de segmento (CS, DS, SS, ES, FS, GS) ➔ Registro de estado (EFLAGS) ➔ Registro de puntero a instrucción (EIP -PC-) 11
  • 12. CPU: REGISTROS ■ Non-Architectural Registers a.k.a ■ Machine/Model Specific Registers (MSR)  MAR: Memory Address Register  MDA: Memory Data Register  IR: Instruction Register (!= EIP)  IA32_BIOS_UPDT_TRIG (Actualizar microcodigo)  MSR_BPU_COUNTER0 (Registro de conteo) ➔ INSTRUCTIONS_EXECUTED (Evento de conteo) ■ Acceso y modificación de los MSR  Ver RDMSR y WRMSR 12
  • 13. BUS ■ Jerarquia de bus (Cercania a la CPU)  Back Side Bus: CPU <-> Cache L2  Front Side Bus: CPU <-> Northbridge  Local bus: Southbridge <-> Controlador  External bus: Controlador <-> Dispositivo ■ Diseño  Seriales: Un unico hilo  Paralelos: Multiples hilos electricos ■ Información que transporta  Control – Datos - Direcciones 13
  • 15. BUS ■ Front Side Bus  EV6 (Athlon y Alpha), GTL+/AGTL+ (Intel) ■ Internal bus – Paralelos  ISA, EISA, VESA, MCA, PCI, AGP ■ Internal bus – Seriales  PCI Express (PCIe), I2C, HyperTransport ■ External bus – Paralelos  ATA (aka IDE, EIDE, ATAPI), SCSI, PCMCIA ■ External bus – Seriales  SATA, USB, IEEE 1394 (FireWire) 15
  • 16. INSTRUCTION SET ARCHITECTURE ■ Aspectos de la arquitectura visibles al programador  Instrucciones  Registros  Modos de direccionamiento  Arquitectura de memoria  Manejo de interrupciones y excepciones ■ Tiene un conjunto de codigos de operación que representan las instrucciones que puede procesar la CPU  Cada opcode tiene asociado un mnemonico 16
  • 17. INSTRUCTION SET ARCHITECTURE ■ Segun la complejidad de las instrucciones:  CISC: Complex Instruction Set Computer ➔ Sin compiladores, las instrucciones hacen demasiado ➔ Instrucciones complejas implican programas pequeños ➔ Ejecución en mas de un ciclo de reloj ➔ Menos operaciones de fetch a memoria ➔ Alta sobrecarga en el proceso de decodificación ➔ Diseño altamente complejo 17
  • 18. INSTRUCTION SET ARCHITECTURE ■ Segun la complejidad de las instrucciones:  RISC: Reduced Instruction Set Computer ➔ Instrucciones pequeñas implican programas grandes ➔ Ejecución en un ciclo de reloj ➔ Compiladores no usan frecuentemente instrucciones complejas ➔ Instrucciones complejas tienden a ser mas lentas que instrucciones pequeñas que hacen lo mismo (INDEX) ➔ Para el diseñador de un procesador es dificil optimizar todas las instrucciones de una ISA ➔ 98% de las constantes de un programa caben en 13b. ➔ Menos modos de direccionamiento, solo load-store. 18
  • 19. INSTRUCTION SET ARCHITECTURE ■ Segun la tecnica de implementación  “Cablear” la ISA en un circuito integrado ➔ Mayor rapidez al estar implementado en hardware ➔ El diseño y las modificaciones son complejas  Microprogramar la ISA (CISC~=RISC) [SIMH] ➔ Cada macroinstrucción (mnemonico y opcode -CISC-) se encuentra implementada con microinstrucciones almacenadas en el Control Store. ➔ Las microinstrucciones -RISC- son cableadas en el CI ➔ Los procesadores son faciles de diseñar ➔ Se logra mayor flexibilidad ➔ Ejemplo de microasemblers: Meta29, Micro2, MIC1 19
  • 20. INSTRUCTION SET ARCHITECTURE ■ Problemas que pudieron ser solucionados rapidamente con ISAs microprogramadas  f00f bug en Intel Pentium (0xf00fc7c8) cmpxchg8b {64bits} -> cmpxchg8b %eax cmpxchg8b %eax ➔ ➔ Compara el ECX+EBX con el operador si iguales cargar en el operador, si diferentes cargar en registros  FDIV bug en Intel Pentium ➔ La división de punto flotante no funcionaba adecuadamente con ciertos operadores 20
  • 21. INSTRUCTION SET ARCHITECTURE ■ Implementaciones concretas de ISA  x86 Varios CISC  IA-64 Intel CISC  68k Motorola CISC  Alpha DEC RISC  SPARC Sun RISC  PowerPC Apple-IBM-Motorola RISC  MIPS MIPS RISC  ARM ARM Ltd RISC  TIMI over SLIC IBM  Java Virtual Machine Sun 21
  • 22. INSTRUCTION SET ARCHITECTURE // a = b + c ■ load r3, b ■ load r4, c ■ add r3, r4 ■ store r3, a // d = a - 100 ■ load r4, =100 ■ subs r3, r4 ■ store r3, d Tomado de Sistemas Operativos de Gary Nutt 22
  • 23. HISTORIA DE UN PROGRAMA ■ Compilador  Entrada: Lenguaje de alto nivel (codigo fuente)  Salida: Lenguaje ensamblador (mnemonicos) ■ Ensamblador  Entrada: Lenguaje ensamblador (mnemonicos)  Salida: Codigo binario (codigos de operación) ■ Microprograma  Entrada: Codigo binario (codigos de operación)  Salida: Control fisico de las señales (HW) 23
  • 24. SINTAXIS DE ASM PARA X86 ■ Intel  Prefijos mov eax,1  Dirección de operandos mov dest,fuente  Operandos de memoria mov eax,[ebx+3]  Sufijos mov al,bl ■ AT&T  Prefijos movl %eax,$1  Dirección de operandos movl fuente,dest  Operandos de memoria movl 3(%ebx),%eax  Sufijos movb %bl,%al 24
  • 25. CPU: CICLO LECTURA-EJECUCIÓN PC = <dirección inicio maquina>; indicadorParada = limpiar; while (indicadorParada no activado) { IR = memoria [PC]; PC = PC + 1; ejecutar (IR); } Tomado de Sistemas Operativos de Gary Nutt 25
  • 26. MEMORIA ■ Interfaz de memoria  MAR: Memory Address Register  MDR: Memory Data Register  CMD: Command Register ■ Alineación  Restricción de la dirección de memoria que puede tener un objeto en la misma ➔ Un objeto debe estar alojado en una dirección multiplo de su tamaño ➔ byte (8), word (16), doubleword (32), quadword (64) ➔ Restricciones del bus de direcciones - Cada byte de una palabra se almacena en un banco de memoria diferente (bus tiene realmente 2 bits menos) 26
  • 27. MEMORIA ■ Jerarquia de memoria  Registros 1 ciclo de reloj  Cache (L1, L2) 1,10 ciclos de reloj  Memoria principal (RAM) 100 ciclos de reloj  Almacenamiento en disco 10000 ciclos de reloj ■ Arriba en la jerarquia de memoria  + velocidad (+ frecuencia de uso), - capacidad ■ Abajo en la jerarquia de memoria  - velocidad (- frecuencia de uso), + capacidad 27
  • 28. PROXIMIDAD REFERENCIAL ■ Todos los datos de un programa no tienen la misma probabilidad de ser accedidos ■ Tipos  Proximidad temporal (Cache) ➔ Si un dato es accedido, existe una alta probabilidad de que este sea accedido de nuevo en el futuro ➔ Replacement Policy = Least Recent Used (LRU) - El mas viejo  Proximidad espacial (Cache line) ➔ Si un dato es accedido, existe una alta probabilidad de que los datos cercanos sean accedidos en el futuro 28
  • 29. PROXIMIDAD REFERENCIAL ■ Proximidad temporal  Los ciclos hacen que las instrucciones vuelvan a ser utilizadas  El uso de variables de forma repetitiva  La invocación de subrutinas de forma reiterada ■ Proximidad espacial  Los programas son secuenciales a excepción de los saltos.  Las estructuras de datos son generalmente consecutivas en memoria. 29
  • 30. CACHE: ACTORES ■ Backing storage  Puede ser la memoria prinicipal u otro cache ■ Cache  Memoria de alta velocidad que busca disminuir el efecto del memory bound ➔ Cache hit: Hit rate/ratio ➔ Cache miss: Miss rate/ratio ■ Cliente del cache  Puede ser la CPU u otro cache 30
  • 31. CACHE: COMPONENTES ■ Index ■ Tag ■ Cache line (Proximidad espacial)  Xeon 512bits = Bus de datos 64bits x 8 lecturas Tomado de Wikipedia 31
  • 32. CPU: CICLO LECTURA DE CACHE recibir dirección de memoria de la CPU if (dirección esta en el cache) { referenciar el byte en el cache line } else { traer de memoria el bloque que lo contiene ubicar un cache line para el bloque referenciar el byte en el cache line } entregar el byte a la CPU 32
  • 33. CACHE: POLITICA DE UBICACIÓN ■ Direct mapped  Cada bloque de memoria solo puede estar en una posición especifica del cache ➔ (Dirección del bloque) % (# de cache lines del cache) ■ Fully associative  Cada bloque de memoria puede estar en cualquier posición del cache ■ Set associative  Cada bloque de memoria solo puede estar en un conjunto especifico de posiciones del cache ➔ (Dirección del bloque) % (# de conjuntos en el cache) 33
  • 34. CACHE: POLITICA DE UBICACIÓN ■ En un cache set associative, una vez ha sido seleccionado la posición se puede ubicar en cualquier posición del conjunto ■ Un cache direct mapped es un cache set associative con conjuntos de tamaño 1  Cache direct cache = 1-way set associative ■ Un cache fully associative es un cache set associative con 1 solo conjunto  Fully associative = m-way set associative 34
  • 35. CACHE: POLITICA DE UBICACIÓN Tomado de Wikipedia 35
  • 36. CACHE: POLITICA DE REMPLAZO ■ Criterio que indica cual cache line de un cache set associative con n>1 debe remplazarse ■ Aleatoria  Ignora la proximidad referecial (temporal) ■ LRU: Least Recent Used (Proximidad tempo) ■ LFU: Least Frecuently Used  Consideran la proximidad referencial (temporal) ■ ARC: Adaptive Replacement Cache  Inventado por IBM en el 2003 combina LRU y LFU 36
  • 37. CACHE: POLITICA DE ESCRITURA ■ En un write hit  Write through: Cache y memoria-backing storage ➔ Los datos son consistentes entre ambos ➔ Perdida de velocidad durante la escritura ➔ Facil implementación  Write back: Cache y a memoria solo remplazo ➔ Multiples escrituras son una sola escritura a memoria ➔ Es necesario marcar los cache lines con el flag dirty ➔ Mayor velocidad ➔ Dificil de implementar ➔ Inconsistencia entre la memoria y el cache 37
  • 38. CACHE: POLITICA DE ESCRITURA ■ En un write miss  Write allocate ➔ El bloque es ubicado en un cache line para luego ser modificado ➔ Utilizado con la politica de write back, esperando que las modificaciones siguientes queden en el cache  No write allocate ➔ La modificación ocurre en memoria sin ingresar el nuevo valor en el cache ➔ Utilizado con la politica de write through, ya que de igual forma igual forma la modificación ocurrira en memoria 38
  • 39. CACHE: COHERENCIA ■ Si un cache write-back tiene un cache-line sucio y un DMA desea acceder esos datos, el cache proporciona esa información en vez de la memoria. Si no esta sucio es marcado como invalido. ■ Mecanismos  Snooping: Leer el bus de direcciones  Snarfing: Leer el bus de direcciones y datos ■ Protocolos de coherencia de cache  MSI, MOSI, MESI, MOESI  Modified, Owned, Exclusive, Shared, Invalid 39
  • 40. CACHE: COHERENCIA ■ Modified  Cache line incosistente y unica copia ■ Owned  Cache line consistente, multiples copias y con derecho a actualizar las demas copias ■ Exclusive  Cache line consistente y unica copia ■ Shared  Cache line consistente y multiples copias ■ Invalid  Cache line invalida (stale) 40
  • 41. CACHE: MULTINIVEL ■ Caches inclusivos (Intel)  Cache L[X+1] contiene L[X] ➔ L1=32KB, L2=512KB, L3=4MB == 4MB ➔ Solo el cache mas lento hace snoop. Luego se sincronizan los demas caches. (Coherencia simple) ➔ Los accesos de coherencia acceden al cache de mayor nivel que esta menos ocupado por la CPU que el de menor nivel. ■ Caches exclusivos (AMD)  Cache L[X+1] no contiene L[X] ➔ L1=32KB, L2=512KB, L3=4MB == 4.53MB ➔ Todos los niveles deben hacer snoop 41
  • 42. DISPOSITIVOS ■ Recolectar o presentar datos 42
  • 43. DISPOSITIVOS: DIRECCIONAMIENTO ■ MMIO: Memory Mapped I/O  En el espacio de direcciones de memoria esta direccionada la memoria de los dispositivos  Se usan las mismas instrucciones de acceso a memoria para acceder a la memoria de los disp. ➔ Se simplifica el diseño de la ISA ■ PMIO: Port Mapped I/O  Existe un espacio de direcciones separado para la memoria y para los dispositivos (I/O port)  Se requieren instrucciones diferentes de la ISA para acceder este espacio de direcciones ➔ Toda la memoria esta disponible 43
  • 44. DISPOSITIVOS: DIRECCIONAMIENTO ■ MMIO: Memory Mapped I/O  Instrucciones en x86 ➔ movb / movw / movd / cpuid ➔ Serialización de instrucciones (no especulación) ■ PMIO: Port Mapped I/O  Instrucciones de I/O en x86 ISA ➔ insb / insw / insd ➔ outb / outw / outd  Espacio de direcciones de I/O en x86 ISA ➔ 16 bits direccionables por bytes ➔ 65536 bytes 44
  • 46. DISPOSITIVOS: INTERFAZ ■ Registro de estado [ocupado][hecho][error]  Ocioso [ 0 ][ 0 ] ➔ Se pueden colocar ordenes en el registro de ordenes ➔ Se han leido datos de los registros de datos  Finalizado [ 0 ][ 1 ] ➔ Se ha completado una operación de I/O  Trabajando [ 1 ][ 0 ] ➔ Se ha dado una orden ➔ Se ha iniciado la operación y aun no ha terminado  No definido [ 1 ][ 1 ] 46
  • 47. DISPOSITIVOS: POLLING-(SONDEO) ¿Como saber que la operación termino? ■ Polling  La CPU lee permanentemente el registro de estado de la memoria del dispositivo, para determinar que el trabajo ha finalizado (espera- activa o busy-wait) ➔ ocupado = 0 y hecho = 1 ■ Desventajas  Sin DMA la CPU estaba ocupada transfiriendo datos  Con polling la CPU esta ocupada verificando si una operación termino 47
  • 48. INTERRUPCIONES Y EXCEPCIONES ■ Eventos que indican que una condición existe en el sistema y requiere atención del procesador ■ Ventajas  Elimina las esperas activas  Permite utilizar la CPU para otras labores ■ El ciclo de lectura ejecución debe ser modificado para verificar la existencia de interrupciones 48
  • 49. INTERRUPCIONES (RECIBIDAS) ■ Generadas por hardware externo a la CPU. Se “reciben” y son asincronicas. ■ Tipos de interrupciones  Maskable Hardware Interrupt (IF en EFLAGS) ➔ Pin INTR (En x86) ➔ Operaciones de I/O finalizadas  Non-Maskable Interrupt ➔ Pin NMI (En x86) ➔ Errores irrecuperables (paridad en la RAM) ■ Origen  Hardware externo a la CPU 49
  • 50. EXCEPCIONES (DETECTADAS) ■ Tipos de excepciones  Faults: Posiblemente recuperable (Page fault) ➔ Se ejecuta de nuevo la instrucción generadora  Traps: Depuración (EFLAGS – Trap Flag – Bit 8) ➔ Se continua ejecutando la siguiente instrucción  Aborts: Double fault excepcion (8) ➔ No se puede continuar con la ejecución ■ Origen de la excepción  Detectadas por el procesador  Programadas (INT, INTO)  Verificaciones de maquina 50
  • 51. CICLO CON INTERRUPCION (HW) ... (igual que en el ciclo básico de la CPU) while (indicadorParada no activado) { IR = memoria [PC]; PC = PC + 1; ejecutar (IR); if (solicitudInterrupción activado) { memoria [x] = PC; PC = memoria [y]; } } Tomado de Sistemas Operativos de Gary Nutt 51
  • 52. INTERRUPT SERVICE ROUTINE (SW) ■ Interrupt Service Routine o Interrupt Handler  FLIH: First Level Interrupt Handler ➔ Almacenar el estado del procesador (en control stack) ➔ Deshabilitar interrupciones iguales (evitar race condition) o de menor prioridad (no expropiación) ➔ Almacenar la información solo disponible durante la interrupción ➔ Planificar el manejo de la interrupción SLIH ➔ Restaurar el estado del procesador (en control stack) ➔ Retornar el control (x86 = IRET)  SLIH: Second Level Interrupt Handler ➔ Manejar la interrupción de forma planificada 52
  • 53. VECTOR DE INTERRUPCIONES ■ Vector en la memoria que contiene las direcciones de memoria donde se alojan los FLIH de cada interrupción o excepción ■ El numero de la interrupción es el indice o desplazamiento en el vector ■ Ubicación del vector de interrupciones  En x86 es indicado por el registro IDTR  Durante la inicialización de un x86 es = a la dirección de memoria fisica 0x00000000  En Linux el vector de interrupciones se mueve a otra posición de memoria (remplaza el del BIOS) 53
  • 54. DISPOSITIVOS: PIC ■ Programmable Interrupt Controller  Dispositivo normalmente alojado en el southbridge (x86 = Intel 8259A x 2)  Canaliza las interrupciones a una unica linea de interrupción al procesador (x86 = INTR)  Encola interrupciones de menor prioridad o iguales a la atendida actualmente por el FLIH  Se gestiona como un dispositivo, pues tiene I/O (0x20-0x21) ports para recuperar la interrupcion ➔ Indicar cual fue la interrupción que ocurrio ➔ Indicar que ya fue manejada la interrupción ➔ Deshabilitar especificamente alguna interrupción 54
  • 55. DISPOSITIVOS: CICLO I/O ■ Ciclo de I/O a memoria (I/O-to-memory) load R2, =LONGITUD ciclo: load R1, [memoria_cont, R2] store R1, [memoria_ppal, R2] dec R2 jnz ciclo 55
  • 56. DISPOSITIVOS: DMA ■ Direct Memory Access  Evita que la CPU pierda tiempo realizando escrituras entre los dispositivos y la memoria  Normalmente incluido en el Southbridge  Es un dispositivo (Intel 8237 / 82374) ➔ Controlador DMA 1 (4) canales: I/O ports 0x00–0x1f ➔ Controlador DMA 2 (4) canales: I/O ports 0xc0–0xdf  Interfaz para cada canal (programado x driver) ➔ Registro de orden (dirección de la transferencia) ➔ Registro de dirección de memoria principal (src o dst) ➔ Registro contador (cantidad de bytes a transferir) 56
  • 58. FUNCIONAMIENTO DE DMA ■ Controlador solicita DMA: DRQ#=1 ■ 8237 solicita el bus a la CPU: HQR=1 ■ La CPU libera el bus: HLDA=1 ■ El 8237 señala lo siguiente:  Bus direcciones = Direccion memoria principal  MEMW=1, MEMR=0, IOR=1, IOW=0  DMA confirma al controlador: ACK#=1 ■ Controlador pone datos en el bus de datos  El I/O port origen esta cableado en el controlador ■ Si la transferencia termina: DRQ#=0 58
  • 59. INSTRUCCIONES DE I/O ■ Categorias  Instrucciones de control ➔ Indican a un dispositivos las funciones que debe realizar  Instrucciones de estado ➔ Verifica las condiciones de estado de un controlador de dispositivo  Instrucciones de transferencia ➔ Leen o escriben los datos entre la memoria del dispositivo y la memoria principal o los registros 59
  • 60. ESTRATEGIAS DE ENTRADA/SALIDA ■ ¿La CPU es responsable de ...?  Estado: Determinar si la operación de E/S finalizo  Transferencia: Transferir datos de la memoria del dispositivo a la memoria principal ■ Tipos  I/O Directa con sondeo  I/O Por DMA con sondeo ➔ No aplica. Si tiene DMA debe tener interrupciones.  I/O Directa con interrupciones  I/O Por DMA con interrupciones 60
  • 61. PROTECCIÓN POR HARDWARE ■ Otorgar mayores o menores privilegios de acceso a recursos criticos a partir de la confiabilidad del software  Sistema operativo ➔ Solo el sistema operativo esta habilitado para realizar las operaciones criticas  Aplicaciones ➔ Las aplicaciones no deben modificar el sistema operativo ➔ Las aplicaciones deben permitir que otras aplicaciones se ejecuten 61
  • 62. ANILLOS DE PROTECCIÓN ■ aka Niveles de privilegio ■ Nivel 0 (Software + critico + confiable)  Kernel mode (Kernel)  Mas privilegios de acceso ➔ Acceder a memoria de todos los anillos de protección ➔ Ejecutar todas las instrucciones de la ISA ■ Nivel 3 (Software – critico – confiable)  User mode (Aplicaciones)  Menos privilegios de acceso 62
  • 63. PROTECCIÓN ■ Protección de I/O  Las instrucciones de entrada y salida son instrucciones privilegiadas ■ Protección de memoria  Las aplicaciones no deben modificar ni código ni estructuras de datos del sistema operativo ➔ Vector de interrupciones ➔ Interrupt Service Routines ■ Protección de CPU  Interrupciones (0) generadas periodicamente de forma programada. PIT = Dispositivo 8253/4 63