La descarga está en progreso. Por favor, espere

La descarga está en progreso. Por favor, espere

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.

Presentaciones similares


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

1 Arquitectura de PCs Arquitectura básica del PC

2 Introducción El PC es el resultado de una especificación técnica de IBM El hardware se organiza de forma piramidal Cada escalón se comunica con el siguiente por interfaz física y lógica

3 Arquitectura Piramidal Intel 80x86 CPU Memoria Programa y datos Controlador PCI Controlador de disco Controladores de bus: comunican CPU con buses de expansión Bus PCI Dispositivos PCI Discos Bus IDE Buses de expansión Dispositivos periféricos Bus del sistema Bus de direcciones Bus de datos 2 patas de interrupciones Patas de control

4 La CPU: Generalidades La CPU es el dispositivo físico que ejecuta instrucciones: Cada instrucción se codifica con un número Conjunto de instrucciones que ejecuta la CPU forma el “lenguaje de máquina” Cada CPU tiene su lenguaje de máquina propio Ejecución de instrucciones sincronizada por reloj Distintas instrucciones requieren distinto número de períodos

5 La CPU: Generalidades Primer PC incluye CPU Intel 8088: 14 registros de 16 bits (unidades de almacenamiento especiales cuyo acceso es mucho más rápido que a memoria principal) Accede a 1MB de memoria Opera en “modo real”

6 La CPU: Generalidades Especificaciones PC siguientes usan modelos sucesivos CPU Intel 80x86 (8086, 80286,..., Pentium, etc.) Toda CPU Intel 80x86 mantiene la capacidad de funcionar en el modo real como un 8088 (en particular, todas inician en modo real) En este curso se dan los elementos necesarios para programar la CPU Intel 80x86 en modo real sobre un PC

7 La CPU: los registros La CPU 8088 incluye 14 registros de 16 bits: 4 registros de propósito general: AX, BX, CX y DX Se componen de 2 registros de 1B (por ej., AX en AH y AL) Intervienen en movimientos e instrucciones aritméticas 4 registros punteros a memoria: SI, DI, BP y SP SI, DI: punteros en instrucciones de movimientos SP: puntero a la pila de hardware 4 registros de segmento: CS, DS, SS y ES Motivación se explica más adelante 1 registro FLAGS con información de estado Se compone de bits de control y bits de estado 1 registro de instrucción IP: CS e IP determinan instrucción siguiente en hilo de ejecución Se modifica tras la ejecución de cada instrucción

8 Interfaz física de la CPU Interfaz física del 8088: bus del sistema. 62 cables paralelos digitales que incluyen: Bus de direcciones con dos espacios de direcciones (memoria y E/S) Bus de datos Dos líneas de interrupciones externas Patas de control

9 Interfaz física de la CPU Bus de direcciones, bus de datos y patas de control RD y WR permiten la transferencia de datos con memoria principal y controladores de bus Bus de direcciones de 20 bits tiene 2 espacios: Memoria: direcciones de 20 bits (1MB) Puertos de E/S: direcciones de 16 bits Físicamente el bus de direcciones se compone de: Patas A19.. A0: determinan la dirección del dato Pata M/IO#: determina el espacio del dato (memoria o E/S) Bus de datos de 16 bits

10 Interfaz física de la CPU La memoria principal se considera un arreglo de bytes que se pueden leer o escribir Cada dirección del espacio de memoria refiere a un BYTE de la memoria principal 00000H FFFFFH 00001H 00002H FFFFEH CPU A19.. A0 RD WR D15.. D0

11 Es posible una transferencia de 2 direcciones de memoria: 2B = palabra (WORD) La 8088 organiza memoria en modo “Little endian”: La palabra en dirección 09000H = 7705H Interfaz física de la CPU 00000H 09000H 09001H FFFFFH 77 05

12 Interfaz física de la CPU Cada dirección del espacio de E/S refiere a un registro de un controlador de bus Transferencias con espacio de E/S son de 1 o 2 bytes, según registro accedido CPU A15.. A0 RD WR D15.. D0 Controlador de dispositivo 1 Controlador de dispositivo N

13 Interfaz física de la CPU Interrupciones externas permiten a los controladores de dispositivo captar la atención de la CPU Patas de interrupciones externas: NMI: interrupción no se desactiva por software INTR: interrupción se desactiva por software, por bit IF de FLAGS Se conecta a Controlador de Interrupciones Programable (PIC) Los controladores de bus que generan interrupción se conectan a patas IRQ (Interrupt Request) del PIC Existen 16 patas IRQ (0 a 15)

14 Interfaz física de la CPU Secuencia de interrupción hardware: D15.. D0 INTR INTA Controlador de interrupciones programable IRQ15 IRQ14 IRQ0 IRQ1 Controlador de disco IRQ14 CPU Ejecuta rutina de atención a la interrupción IRQ14

15 El modo real OPERACION DE PROGRAMA EJECUTANDO EN MODO REAL

16 Introducción Un programa ejecutado por la CPU 8088 refiere a cada dato de la memoria principal por su dirección lineal Selector (16 bits): un registro de segmento CS, DS, ES, SS Selector : Offset Dirección real (física) Dirección real = selector * 2 4 + offset Dirección lineal Offset (16 bits) Registros de segmento con los 4 bits menos significativos 0. Excursionan en toda la memoria en incrementos de 16

17 Segmentos Código Datos Pila Registros de segmento definen áreas de memoria con tipos específicos de información. Organización del programa: código, datos y pila Contiene datos del programa; por ejemplo, caracteres “Hola” de un programa que imprime “Hola” en pantalla Contiene la pila del programa. Permite: Salvar datos temporalmente Llamados a subrutinas Interrupciones Contiene instrucciones del programa Comienzo: registro CS CS:IP puntero a instrucciones Definidos por DS y ES Comienzo: registro SS SS:SP puntero a la pila

18 Segmentos Operación de la segmentación: Un programa ejecutando sobre un microprocesador ejecuta en el contexto de un SO El SO es un programa que se carga al inicio del sistema en la parte más baja del área de memoria principal disponible El SO carga al programa en la memoria por encima del SO Por tanto, un programa debe funcionar en cualquier dirección de la memoria. Para esto, los accesos a memoria deben ser relativos Solución implementada en el 8088: instrucciones acceden a memoria por offset relativos a los inicios de los segmentos; los selectores son implícitos Los registros de segmento se inicializan cuando el programa se carga en memoria, para apuntar a las áreas correspondientes

19 Segmentos Ejemplo 1 (código): 00000H 10000H 40000H FFFFFH Siempre salta a la misma posición relativa al inicio del programa (MOV AL,[500H]), como se espera 10200H 40200H CS 2 Si programa se carga en dirección 40000H, se inicia CS = 4000H JMP 200H MOV AL,[500H] Si programa se carga en dirección 10000H, se inicia CS = 1000H CS 1 JMP 200H MOV AL,[500H] JMP 200H MOV AL,[500H] Programa 0000H 0200H 1000H Instrucción JMP 200H salta a dirección CS:200H

20 Segmentos Ejemplo 2 (datos): JMP 200H MOV AL,[500H] 0000H 0200H 1000H 1500H H O L A 1501H 1502H 1503H CS 2 En ambos casos, el programa carga el mismo dato en AL (= ‘H’), como se espera CS 1 00000H 40000H FFFFFH 40200H Instrucción MOV AL,[500H] carga en AL el byte en dirección DS:500H Programa 41000H 41500H MOV AL,[500H] H H 10000H 10200H 11000H 11500H Si el programa se carga de modo que segmento de datos inicia en 11000H, DS = 1100H DS 1 Si el programa se carga de modo que segmento de datos inicia en 41000H, DS = 4100H DS 2

21 Espacios I y D Cómo se determina la organización en segmentos de un programa? Se determina en tiempo de programación: Programa con “espacio común de instrucciones y datos”: DS = CS; accede un espacio plano de direcciones de 64kB Programa con “espacios de instrucciones y datos separados”: DS distinto de CS; dispone hasta 64kB de memoria para instrucciones y 64kB para datos

22 Espacios I y D Ejemplo 1: Espacios instrucciones y datos separados DS = 1200H CS = 1000H 00000H 10000H CODIGO 12000H DATOS PILA 20000H FFFFFH CS DS Primer dato en offset 0: MOV AX,[0]

23 Espacios I y D Ejemplo 2: Espacio de instrucciones y datos único DS = 1000H CS = 1000H 00000H 10000H CODIGO 12000H DATOS PILA 20000H FFFFFH CSDS Primer dato en offset 2000H: MOV AX,[2000H]

24 Segmentos de datos y pila En la práctica se hace SS = DS, de forma los datos y la pila forman parte del mismo segmento de 64kB Normalmente el registro puntero de pila SP se inicia a 65534 Como la pila crece hacia abajo y los datos hacia arriba, se aprovecha el segmento común de forma óptima

25 La memoria del PC 00000H 640KB Memoria convencional 128KB Memoria de video 128KB ROM de dispositivo 64KB ROM opcional 64KB ROM de inicio (BIOS) A0000H BFFFFH C0000H DFFFFH 0E000H EFFFFH F0000H FFFFFH 9FFFFH Distribución del espacio de memoria del PC en modo real 640kB inferiores para RAM convencional 360kB superiores para ROM y RAM especiales (en particular, la ROM de inicio abarca las direcciones F0000H – FFFFFH)

26 Ejemplo INTERACCION ENTRE LOS ESCALONES DE LA ARQUITECTURA DE PC: BUS ATA-2

27 Introducción ATA-2 (EIDE) ATA-2 especifica una interfaz física y lógica para el acceso a discos duros ATA-2 y ATAPI (para CDROM) forman EIDE; interfaz física común, interfaz lógica distinta Un PC puede tener hasta dos canales ATA-2: canal primario y secundario Cada canal soporta dos dispositivos Cada canal tiene un controlador de bus asociado

28 Interfaz física ATA-2 a CPU Interfaz física de CPU a controlador del canal primario ATA-2: Direcciones E/S 01F0H...01F7H, 03F6H y 03F7H Interrupción IRQ14 Interfaz física de CPU a controlador del canal secundario ATA-2: Direcciones E/S 0170H...0177H, 0376H y 0377H Interrupción IRQ15

29 Interfaz lógica ATA-2 a CPU Interfaz lógica de la CPU al controlador de disco define: tipos de acceso al disco comandos para cada acceso Los datos del disco se organizan en bloques de 512 bytes denominados “sectores” Cada sector se refiere por su coordenada “CHS” Una coordenada CHS tiene tres componentes: Cilindro C (0..65535) Cabezal H (0..15) Sector S (1..255)

30 CHS considera al disco físico una pila de discos de 2 caras con 2 cabezales c/u. Interfaz lógica ATA-2 a CPU

31 Ej.: lectura de sector 001 del dispositivo 0 del canal primario Interfaz lógica ATA-2 a CPU CPU Controlador de canal primario 01F0H 01F1H 01F2H 01F3H 01F4H 01F5H 01F6H 01F7H 00H 01H 00H A0H 20H Disco duro Bus ATA-2 00H INTRIRQ14 Nr. sectores Sector Cilindro L Cilindro H Nr.Disco-Cabezal Comando lectura Buffer 000 001 1FF D0 D1 D1FF D0 D1D2 D3


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

Presentaciones similares


Anuncios Google