ARQUITECTURADECOMPUTADORAS.................

anderredes0906 2 views 64 slides Oct 10, 2025
Slide 1
Slide 1 of 64
Slide 1
1
Slide 2
2
Slide 3
3
Slide 4
4
Slide 5
5
Slide 6
6
Slide 7
7
Slide 8
8
Slide 9
9
Slide 10
10
Slide 11
11
Slide 12
12
Slide 13
13
Slide 14
14
Slide 15
15
Slide 16
16
Slide 17
17
Slide 18
18
Slide 19
19
Slide 20
20
Slide 21
21
Slide 22
22
Slide 23
23
Slide 24
24
Slide 25
25
Slide 26
26
Slide 27
27
Slide 28
28
Slide 29
29
Slide 30
30
Slide 31
31
Slide 32
32
Slide 33
33
Slide 34
34
Slide 35
35
Slide 36
36
Slide 37
37
Slide 38
38
Slide 39
39
Slide 40
40
Slide 41
41
Slide 42
42
Slide 43
43
Slide 44
44
Slide 45
45
Slide 46
46
Slide 47
47
Slide 48
48
Slide 49
49
Slide 50
50
Slide 51
51
Slide 52
52
Slide 53
53
Slide 54
54
Slide 55
55
Slide 56
56
Slide 57
57
Slide 58
58
Slide 59
59
Slide 60
60
Slide 61
61
Slide 62
62
Slide 63
63
Slide 64
64

About This Presentation

ARQUITECTURA2


Slide Content

UNIVERSIDAD AUTÓNOMA DEL BENI “JOSÉ BALLIVIÁN ” FACULTAD DE INGENIERÍA Y TECNOLOGÍA INGENIERÍA DE SISTEMAS Estudiantes: Diego armando hinojosa A nderson diego zambrana herrera OPTIMIZACIÓN DEL RENDIMIENTO DEL SISTEMA ARQUITECTURAS INTEL IA-32, IA-64 ARM y ATMEL Docente: Ing. José Machicado Terán Asignatura: Arquitectura de Computadoras

Taxonomía de flynn

Descripción de la taxonomía de shore

Comparación de arquitecturas: Von Neumann vs Harvard

Tabla comparativa de Set de instrucciones

Accesos a la memoria en procesadores Intel 80x86 Ventajas de la Segmentación de memoria : Ventajas de Paginamiento (paging): permite protección, aislamiento y reubicación * Implementación de memoria virtual y mejor de segmentos. aprovechamiento de memoria.

Tecnologías para decodificación de instrucciones. LÓGICA CABLEADA (HARDWIRED LOGIC): LA LÓGICA CABLEADA IMPLICA DISEÑAR UN CIRCUITO LÓGICO PARA CADA INSTRUCCIÓN UTILIZANDO COMPUERTAS LÓGICAS Y MULTIPLEXORES. VENTAJAS: PERMITE MAYOR VELOCIDAD DE EJECUCIÓN AL REDUCIR CICLOS DE RELOJ NECESARIOS PARA LA DECODIFICACIÓN. DESVENTAJAS: INCREMENTAN LA COMPLEJIDAD Y EL TAMAÑO DEL CIRCUITO, DIFICULTANDO LA MODIFICACIÓN DEL CONJUNTO DE INSTRUCCIONES.

TECNOLOGÍA DE MICROCÓDIGO(MICROCODE EMILATION) Almacena secuencias de microinstrucciones en una memoria interna que detallan los controles para cada ciclo de reloj. VENTAJAS: Proporciona flexibilidad en el diseño y permite modificar el conjunto de instrucciones mediante programación de microcódigo. DESVENTAJA : es que disminuye la velocidad de ejecución, ya que se requieren más ciclos de reloj para decodificar cada instrucción.

Procesamiento de instrucciones en paralelo

Funcionamiento de un PIPELINE típico: Un pipeline típico es una forma de implementar el paralelismo a nivel de instrucción dentro de un solo procesador. Consiste en dividir el ciclo de ejecución de una instrucción en varias etapas o fases, que se realizan por diferentes unidades funcionales del procesador. Etapa 1: Búsqueda (Fetch). Se lee la instrucción desde la memoria y se almacena en un registro interno. Etapa 2: Decodificación (Decode). Se interpreta el código de la instrucción y se determinan los operandos y las operaciones que se deben realizar. Etapa 3: Ejecución (Execute). Se realiza la operación aritmética o lógica indicada por la instrucción, usando los operandos obtenidos en la etapa anterior. Etapa 4: Memoria (Memory). Se accede a la memoria para leer o escribir datos, si la instrucción lo requiere.8 Etapa 5: Escritura (Writeback). Se almacena el resultado de la ejecución en el destino especificado por la instrucción.

Problemas asociados con el uso de PIPELINE: PROFUNDIDAD DEL PIPELINE: Números de etapas que dividen el procesamiento de una instrucción, con mayor riesgos de conflicto y latencia. DEPENDENCIA DE DATOS : Ocurren cuando una instrucción necesita resultados de otra en ejecución, provocando retrasos. RAMIFICADO: Requieren predicción del flujo de instrucciones, generando errores que vacían el pipeline. STALLS IN A PIPELINE : situaciones que impiden el funcionamiento óptimo del pipeline. reduciendo la eficiencia.

Diferencia entre ejecución escalar y operación superescalar EJECUCIÓN ESCALAR : Ejecuta una instrucción a la vez, fácil de implementar pero con limitaciones en velocidad. EJECUCIÓN SUPERESCALAR : La ejecución superescalar permite que el procesador ejecute múltiples instrucciones simultáneamente, superponiendo las etapas de diferentes instrucciones en el pipeline.

Características y problemas de la operación Superescalar: La operación superescalar de un procesador es una técnica que permite ejecutar varias instrucciones en paralelo, aprovechando la capacidad de los procesadores modernos de tener múltiples unidades funcionales. Las características y problemas asociados con la operación superescalar son los siguientes: La operación superescalar requiere una estructura en pipeline, que consiste en dividir el ciclo de ejecución de una instrucción en varias etapas o fases, que se realizan por diferentes unidades funcionales del procesador. La operación superescalar depende del número y del tipo de las unidades funcionales disponibles en el procesador. La operación superescalar está limitada por la existencia de dependencias entre instrucciones, que son situaciones que impiden que el pipeline funcione de forma óptima, provocando retrasos o interrupciones en la ejecución de las instrucciones.

Diferencias entre paralelismo en instrucciones y paralelismo de máquina en operaciones superescalares: El paralelismo en las instrucciones se refiere a la capacidad de un procesador para ejecutar múltiples instrucciones de un programa en paralelo, es decir, al mismo tiempo, dividiendo las instrucciones en caminos de ejecución independientes. El paralelismo de la máquina se refiere a la capacidad de una CPU superescalar para ejecutar múltiples instrucciones de manera simultánea utilizando múltiples unidades de ejecución o unidades funcionales. TÉCNICAS DE HARDWARE EN UN PROCESADOR SUPERESCALAR: DUPLICACIÓN DE CURSO: Implica tener múltiples unidades funcionales o pipelines, permitiendo la ejecución paralela de múltiples instrucciones. EMISIÓN DESORDENADA: Las instrucciones se ejecutan en el orden que están listas, sin seguir un orden fijo. RENOMBRAMIENTO DE REGISTROS: El renombramiento de registros es una técnica que permite evitar los conflictos de datos al asignar registros físicos a registros arquitecturales (visibles para el programador).

Superescalar out-of-order Execution en procesadores modernos: es una técnica de diseño de procesadores que permite la ejecución en paralelo de múltiples instrucciones dentro de un mismo ciclo de reloj, sin importar su orden original en el programa. Antidependencia en ejecución superescalar y su resolución: Ocurre cuando una instrucción necesita escribir en un registro que otra instrucción debe leer. Solución en procesadores modernos: Renombramiento de registros : Los procesadores asignan registros físicos distintos a cada instrucción, evitando que se interfieran entre sí aunque usen el mismo nombre lógico.

Políticas de Emisión de Instrucciones de los procesadores superescalares: • Emisión en orden y finalización en orden: En esta política, las instrucciones se emiten y se ejecutan en el mismo orden en que se encuentran en el flujo de instrucciones del programa. • Emisión en orden y finalización desordenada: Ambas emisión y finalización se realizan sin respetar el orden del flujo de instrucciones. • Emisión desordenada y finalización desordenada: tanto la emisión como la finalización de las instrucciones ocurren en función de la disponibilidad de recursos y la resolución de dependencias, sin respetar el orden en el flujo de instrucciones del programa.

Diferencias entre arquitectura de computadora de 32 bits y 64 bits: IMPACTO EN RENDIMIENTO: La arquitectura de 64 permite acceder a más memoria y mejora el rendimientos en tareas intensivas en datos. COMPARACIÓN: El software de 32 no es compatible con procesadores de 64 bits, mientras que el software de 64 bits es compatible con ambos.

Clasificación General de los Modos de Direccionamiento (acceso a datos), para procesadores de la Familia Intel 80x86 Modo de Direccionamiento Implícito: El operando está implícito en la instrucción (no se especifica en el código). La CPU asume automáticamente el registro o ubicación a usar. Características clave: ✔ Eficiencia: Instrucciones de 1 byte (sin operandos explícitos). ✔ Uso típico: Operaciones con registros fijos (AL, AX, DX:AX). Manipulación de flags (STD, CLI, etc.). ✔ Ventaja: Reduce tamaño del código. ✔ Limitación: Poca flexibilidad (operandos predefinidos). ¿Dónde se usa? Instrucciones matemáticas (DAA, AAD). Control de CPU (HLT, NOP). Ejemplos: CLC ; Limpia el flag Carry (CF=0). MUL BL ; Multiplica AL por BL (resultado en AX). AAM ; Ajuste ASCII después de multiplicar (usa AX).

Modo de Direccionamiento Inmediato (Intel 80x86) El operando es un valor constante incluido directamente en la instrucción. No se accede a memoria ni a registros para obtener el dato. Características clave: ✔ Velocidad: Rápido (el dato está embebido en la instrucción). ✔ Sintaxis: El operando es un número, carácter o expresión constante. ✔ Limitaciones: Solo válido para operandos fuente (no para destino). Tamaño del dato restringido al ancho del registro (ej: 8, 16, 32 bits). Uso común: Inicialización de registros (MOV, XOR). Operaciones aritméticas/lógicas con constantes (ADD, AND). Diferencia clave vs. Implícito: Inmediato: El dato está explícito en la instrucción (ej: MOV AX, 42). Implícito: El dato/registro no se menciona (ej: STC usa el flag Carry ). Ejemplos: MOV AL, 5 ; Carga el valor 5 en el registro AL. ADD CX, 10 ; Suma 10 al registro CX. CMP DL, 'A' ; Compara DL con el valor ASCII de 'A' (65).

Modo de Direccionamiento por Registro (Intel 80x86) El operando se encuentra en un registro de la CPU (no en memoria). La instrucción especifica directamente el registro a usar. Características clave: ✔ Máxima velocidad: Los registros son la ubicación más rápida en la CPU. ✔ Operandos fuente o destino: Puede usarse en ambos lados de la instrucción. ✔ Ventajas: No requiere acceso a memoria (reduce latencia). Instrucciones compactas (generalmente 1-2 bytes). Registros comúnmente usados: 8 bits: AL, BL, CL, DL 16 bits: AX, BX, CX, DX, SI, DI 32 bits: EAX, EBX, ECX, EDX ¿Cuándo usarlo? Operaciones frecuentes (cálculos, desplazamientos). Optimización de código (evita accesos a memoria). Ejemplos: MOV AX, BX ; Copia el valor de BX a AX. ADD DL, CL ; Suma CL a DL (resultado en DL). XOR SI, DI ; Operación XOR entre SI y DI.

Modo de Direccionamiento Directo (Intel 80x86) La instrucción contiene la dirección absoluta en memoria donde está el operando. El CPU accede directamente a esa ubicación de memoria para leer o escribir el dato. Características clave: ✔ Acceso explícito a memoria: Usa direcciones absolutas (hexadecimal). ✔ Flexibilidad: Permite trabajar con datos en cualquier ubicación de RAM. ✔ Limitaciones: Más lento que registro/inmediato (acceso a memoria). Poco portable (las direcciones pueden cambiar entre sistemas). Sintaxis típica: En ASM se usan corchetes [ ] para indicar acceso a memoria. Puede especificarse el tamaño del dato: byte , word , dword . Uso común: Acceso a variables globales en programas. Comunicación con hardware (puertos mapeados en memoria). Ejemplos: MOV AX, [1234h] ; Copia el contenido de la dirección 1234h a AX. MOV [5678h], BL ; Guarda el valor de BL en la dirección 5678h. CMP byte [3000h], 0 ; Compara el byte en 3000h con cero.

Modo de Direccionamiento Indirecto Mediante Registro (Intel 80x86) Un registro contiene la dirección de memoria donde está el operando (en lugar de ser la dirección fija). Flexible: Permite acceder a datos mediante punteros. Características clave: ✔ Punteros en registros: Usa registros como BX , SI , DI , BP para almacenar direcciones. ✔ Eficiencia: Más rápido que el direccionamiento directo en código reutilizable. ✔ Ventajas: Permite iterar sobre arreglos o buffers (ej: INC SI para avanzar). Ideal para estructuras de datos dinámicas. Registros usados para direccionamiento indirecto: 16 bits: BX , SI , DI , BP (en modo real). 32 bits: EAX , EBX , ECX , etc. (en modo protegido). Sintaxis clave: Los corchetes [ ] indican que el registro es un puntero . Puede combinarse con desplazamientos ( offset ): Ejemplos: MOV AX, [BX] ; Copia el dato de la dirección almacenada en BX a AX. MOV [SI], DL ; Guarda DL en la dirección apuntada por SI. ADD word [DI], 10 ; Suma 10 al valor en la dirección almacenada en DI.

Modo de Direccionamiento Relativo a Base (Intel 80x86) Combina una dirección base (almacenada en un registro) con un desplazamiento (offset) constante. Fórmula: Dirección efectiva = Registro base + desplazamiento Características clave: ✔ Registros base típicos: BX / BP (en 16 bits). EBX / EBP (en 32 bits). BP se usa comúnmente para acceder a variables locales en la pila. ✔ Desplazamiento: Valor constante (positivo o negativo). Puede ser un número pequeño (ej: +2 ) o una dirección estática (ej: +0x4000 ). ✔ Ventajas: Ideal para acceder a estructuras o arreglos . Permite direccionamiento flexible en la pila (ej: [BP - 8] para variables locales). Ejemplos: MOV AX, [BX + 10h] ; Accede a la dirección (BX + 16 en decimal). MOV [BP - 4], CX ; Guarda CX en la dirección (BP - 4). CMP byte [SI + 200h], 0 ; Compara el byte en (SI + 512) con cero.

Modo de Direccionamiento Directo Indexado (Intel 80x86) Combina una dirección base fija (constante) con un registro índice para calcular la dirección efectiva. Fórmula: Dirección efectiva = Dirección base + Índice (registro) Usado para acceder a arreglos o estructuras de datos donde la base es conocida en tiempo de compilación. Características clave: ✔ Componentes: Base fija: Dirección constante (ej: ARRAY , 0x5000 ). Índice: Registro ( SI , DI , BX en 16 bits; ESI , EDI en 32 bits). ✔ Ventajas: Eficiente para recorrer arreglos estáticos. Más rápido que el direccionamiento indirecto puro (la base es constante). ✔ Limitaciones: La dirección base no puede cambiarse dinámicamente (es fija en el código). Registros usados como índice: 16 bits: SI , DI , BX . 32 bits: ESI , EDI , EBX . Ejemplos (16 bits): MOV AX, [ARRAY + SI] ; Copia el elemento ARRAY[SI] a AX. MOV [BUFFER + DI], BL ; Guarda BL en BUFFER[DI]. (Donde ARRAY y BUFFER son etiquetas de direcciones fijas)

Modo de Direccionamiento Indexado Relativo a Base (Intel 80x86) Combina tres componentes para calcular la dirección efectiva: Registro base (dirección de inicio). Registro índice (desplazamiento variable). Desplazamiento constante ( offset ). Fórmula: Dirección efectiva = Base (registro) + Índice (registro) + Desplazamiento Características clave: ✔ Registros típicos (16 bits): Base: BX (datos) o BP (pila). Índice: SI o DI . ✔ Flexibilidad máxima: Ideal para arreglos bidimensionales o estructuras complejas . Ejemplo: BX = base del arreglo, SI = fila, 10h = columna. Ventajas: Permite acceder a datos con múltiples niveles de desplazamiento . Más eficiente que calcular direcciones manualmente (ej: con ADD ). Ejemplos: MOV AX, [BX + SI + 10h] ; Accede a BX + SI + 16 (hex). MOV [BP + DI - 4], DX ; Guarda DX en BP + DI - 4.

Modo de Direccionamiento de Cadenas (Intel 80x86) Modo especializado para operaciones con cadenas de datos (bytes, words, dwords). Usa registros implícitos (SI, DI) y se auto-incrementa/decrementa según el flag de dirección (DF). Instrucciones clave: MOVSB, MOVSW, MOVSD (copia). CMPSB, CMPSW (comparación). LODSB, LODSW (carga). STOSB, STOSW (almacenamiento). Características clave: ✔ Registros implícitos: SI (Source Index): Apunta al dato fuente (ej: DS:SI). DI (Destination Index): Apunta al destino (ej: ES:DI). ✔ Control de dirección: CLD (Clear Direction Flag): Incrementa SI/DI (+1, +2, +4). STD (Set Direction Flag): Decrementa SI/DI (-1, -2, -4). ✔ Eficiencia: Prefijos REP: Repite la operación CX/ECX veces (ej: REP MOVSB). Ejemplos: CLD ; Limpia DF (dirección = avance). MOV SI, offset FUENTE ; SI apunta a la fuente. MOV DI, offset DESTINO ; DI apunta al destino. MOVSB ; Copia 1 byte de [SI] a [DI], incrementa SI y DI.

Funcionamiento de un Procesador Modo Real (real-address mode) El modo real es el estado fundamental de operación en los procesadores Intel x86, heredado desde el 8086. En este modo: Direccionamiento de memoria : Usa un esquema segmentado: dirección física = (segmento << 4) + offset Ejemplo: CS=0x1234, IP=0x5678 → dirección 0x12340 + 0x5678 = 0x179B8 Espacio limitado a 1MB (20 bits de dirección) Registros y operaciones : Todos los registros son de 16 bits (AX, BX, CX, DX, etc.) No existe protección de memoria ni entre procesos Acceso directo a todo el hardware y BIOS Uso actual : Fase inicial del arranque (primeras instrucciones ejecutadas) Bootloaders tradicionales (como el MBR) Entornos legacy y sistemas embebidos simples Este modo representa la operación del procesador, sin las protecciones y características avanzadas de modos posteriores, manteniéndose principalmente por compatibilidad con el vasto legado de software x86.

Funcionamiento del procesador: Modo Protegido (protected mode) El Modo Protegido es el estado avanzado de operación introducido con el Intel 80386, diseñado específicamente para satisfacer las demandas de los sistemas operativos modernos. A diferencia del Modo Real, actúa como un "sistema de seguridad inteligente" que supervisa y controla cada aspecto de la ejecución. Verificación en Tiempo Real Al intentar acceder a memoria (ej: MOV [EAX], EBX ): • Consulta la GDT (tabla global de descriptores) usando el selector de segmento. • Compara privilegios (¿tiene permiso este código?). • Revisa límites (¿está dentro de su espacio asignado?). Si algo falla: Genera una excepción (#GP Fault). Ejecución con Privilegios Las instrucciones sensibles (como HLT o LGDT ) solo se permiten en nivel 0 (kernel). Si código de usuario (nivel 3) intenta usarlas: • El procesador las bloquea inmediatamente. Cambios de Contexto Seguros En interrupciones o llamadas al sistema: • Cambia automáticamente al stack del kernel. • Actualiza registros críticos (CS, EIP). • Usa descriptores especiales ( gates ) para saltos entre niveles. Esta supervisión constante evita que: Un programa corrompa memoria de otro. Aplicaciones accedan al hardware directamente. El sistema colapse por errores de programación.

Funcionamiento del procesador: Modo Gestión del Sistema (system management mode) El System Management Mode (SMM) es un modo de operación privilegiado y transparente que ejecuta código de firmware crítico de forma aislada del sistema principal, activado únicamente por interrupciones especiales (SMIs). 1. Activación Ocurre al recibir un SMI (System Management Interrupt), generado por: • Eventos de hardware (ej: temperatura crítica, batería baja). • Software (instrucciones OUT a puertos específicos). 2. Ejecución Salvaguarda automática del estado del CPU en el SMRAM (memoria reservada). Salto a handler en SMRAM (dirección predefinida). Código de firmware ejecuta con máximos privilegios (incluso sobre el kernel). 3. Terminación La instrucción RSM (Resume) restaura el contexto original. El sistema retoma exactamente donde fue interrumpido. El SMM es fundamental para manejo seguro de hardware crítico, operando por debajo incluso del sistema operativo.

Funcionamiento del procesador: Además del uso de Tablas de Descriptores. El procesador en Modo Protegido implementa varios mecanismos clave para garantizar seguridad y multitarea: Mecanismo de Paginación : Traduce direcciones lineales a físicas usando tablas de páginas Implementa memoria virtual mediante: Tablas de páginas multinivel (PML4, PDP, PD, PT en x86-64) Bits de control (Presente, R/W, U/S, caché) Soporte para páginas de 4KB, 2MB y 1GB Protección por Niveles de Privilegio : Implementa 4 anillos de protección (0-3) Verifica CPL (Current Privilege Level) vs DPL (Descriptor Privilege Level) Restringe instrucciones sensibles (LGDT, HLT) al anillo 0 Gestión de Tareas : Cambio de contexto mediante TSS (Task State Segment) Hardware task switching (opcional en arquitecturas modernas) Soporte para multitarea cooperativa o preventiva Manejo de Excepciones : Tabla de descriptores de interrupción (IDT) Manejo jerárquico de fallos (#PF, #GP, etc.) Transición automática a modo kernel para manejo Estos mecanismos trabajan conjuntamente con las tablas de descriptores para proporcionar un entorno de ejecución seguro y aislado.

Diferencia de las especificaciones de acceso a memoria Little-Endian y Big-Endian. Big-Endian (Orden Grande) El byte más significativo (MSB) se guarda primero , en la dirección de memoria más baja. Es más intuitivo para los humanos al leer la memoria en orden. Ejemplo (dato 0x12345678 ): Memoria: 12 34 56 78 (Dir. baja → alta) Little-Endian (Orden Pequeño) El byte menos significativo (LSB) se guarda primero . Utilizado por arquitecturas como Intel x86/x64. Ejemplo (dato 0x12345678 ): Memoria: 78 56 34 12 (Dir. baja → alta) ¿Por qué importa? Afecta la portabilidad entre sistemas con diferentes arquitecturas. Es clave al interpretar datos binarios , como archivos o mensajes de red. Algunas arquitecturas pueden operar en ambos modos (ej: ARM).

ARQUITECTURAS INTEL IA-32, IA-64 ARM y ATMEL Elementos de la Arquitectura Interna de PROCESADOR 80386 La arquitectura del microprocesador Intel 80386 se organiza en varios bloques funcionales interconectados para ejecutar instrucciones de manera eficiente. A continuación, se describen los principales componentes que conforman su estructura interna a) Bus Interface Unit (BIU) Encargada de la interfaz con la memoria y periféricos externos . Se ocupa de: Manejar las líneas de dirección y datos. Gestionar las solicitudes externas (como interrupciones). Coordinar el fetch de instrucciones y datos a través del bus del sistema. b) Code Prefetch Unit Ubicada cerca del BIU, esta unidad anticipa la necesidad de instrucciones y las almacena en una cola de prefetch de 16 bytes , lo que acelera la ejecución al reducir la espera por instrucciones desde memoria.

Elementos de la Arquitectura Interna de PROCESADOR 80386 c) Instruction Decode Unit Incluye el Instruction Decoder y la Instruction Queue . Su función es: Traducir las instrucciones en micro-operaciones (μ-ops). Preparar la información para ser enviada a la unidad de ejecución. e) Control Unit Subcomponente dentro del EU, con: Una ROM de control . La lógica de secuenciación. Coordina el flujo interno de datos e instrucciones, activando las señales necesarias en cada etapa del ciclo de instrucción. f) Data Unit Es la parte del EU que gestiona los datos directamente . Incluye: Registros. ALU. Módulos de multiplicación, división, desplazamiento y acumulación de resultados.

Elementos de la Arquitectura Interna de PROCESADOR 80386 g) Protection Test Unit Unidad que verifica restricciones de acceso a memoria definidas por el sistema operativo. Previene accesos no autorizados o fuera de segmento, garantizando la protección de memoria . h) Segmentation Unit Convierte direcciones lógicas a direcciones lineales usando: Descriptores de segmento. Límites y atributos (PLAs). Esencial para el modelo de memoria segmentado de Intel. i) Paging Unit Convierte direcciones lineales en direcciones físicas , permitiendo: Memoria virtual. Paginación por bloques (páginas) de 4KB. Incluye una caché de páginas y lógica de traducción de direcciones.

Características y funcionamiento de la Gestión de Memoria (MMU) del procesador Intel 80386 La MMU (Memory Management Unit) es uno de los avances más importantes introducidos por el procesador 80386 , ya que permite implementar un modelo de memoria virtual protegida , base de los sistemas operativos modernos. Características: Traducción de Direcciones Convierte direcciones lógicas generadas por el programa en direcciones físicas utilizadas por el hardware de memoria. Soporte para segmentación y paginación El 80386 puede trabajar con: Segmentación : Permite dividir la memoria en bloques lógicos (segmentos) con límites y atributos. Paginación : Divide la memoria lineal en páginas de 4 KB que se mapean a marcos de memoria física. Protección de memoria Verifica atributos de acceso (lectura, escritura, ejecución) definidos por el sistema operativo, evitando errores como accesos ilegales o corrupción de memoria. Soporte multitarea y virtualización Permite que múltiples procesos coexistan de manera segura, cada uno con su propio espacio de direcciones virtuales. Funcionamiento general Dirección lógica → Pasa por la unidad de segmentación , que la convierte en dirección lineal . Dirección lineal → Se pasa a la unidad de paginación , que la transforma en dirección física . Esta dirección física es usada para acceder a memoria real a través del Bus Interface Unit (BIU) . Este proceso garantiza: Accesos eficientes y protegidos. Aislamiento entre procesos. Soporte para memoria virtual mucho mayor al espacio físico disponible.

Estructura microprocesador Intel 80486 DX Estructura interna: Unidad de Ejecución (CPU): Incluye la ALU (Unidad Aritmético-Lógica), registro general y un barrel shifter que permite desplazamientos rápidos de bits. Unidad de Punto Flotante (FPU): Integrada por primera vez en el chip, permite operaciones matemáticas más complejas sin hardware externo. Unidad de Instrucción: Tiene un sistema de pipeline de 5 etapas , permitiendo ejecutar múltiples instrucciones en paralelo, mejorando el rendimiento. Unidad de Gestión de Memoria (MMU): Implementa paginación y segmentación con protección de memoria. Unidad de Caché: Incorpora 8 KB de caché L1 , que acelera el acceso a instrucciones y datos frecuentemente usados. Unidad de Interfaz de Bus (BIU): Se encarga de comunicar el procesador con memoria y periféricos. Incluye cola de prefetch (32 bytes) y controladores de dirección/datos. Diagrama del 80486 DX

Aporte del 80486 DX frente a generaciones anteriores: Integración de la FPU en el mismo chip Antes era un coprocesador externo (ej. 80387). Pipeline de 5 etapas Permite procesamiento de instrucciones más rápido y eficiente. Memoria caché interna (8KB) Reducción de latencia en el acceso a memoria. Mayor integración Menor consumo y mejor desempeño general. El 80486 DX representó una evolución importante al mejorar drásticamente el rendimiento mediante la paralelización interna (pipeline) y la integración de más funciones en un solo chip.

Coprocesadores Matemáticos o Unidades de Punto Flotante (FPU) ¿Qué es un coprocesador matemático (FPU)? Es un componente especializado del procesador dedicado a realizar operaciones matemáticas complejas , especialmente en coma flotante (decimales), que son lentas si se ejecutan solo en la CPU. En los primeros procesadores (como el Intel 8086/8088), las FPU eran coprocesadores externos , como el Intel 8087 . A partir del 80486DX , la FPU ya venía integrada en el chip principal . Características del coprocesador x87 (FPU): Realiza operaciones aritméticas: suma, resta, multiplicación, división, raíces cuadradas. Opera con diferentes tipos de datos: simple, doble y extendido (hasta 80 bits). Utiliza un sistema de pila de 8 registros (ST0–ST7) . Muy usado en cálculos científicos, simulaciones y gráficos en 3D en su época.

Tipos y tareas de coprocesadores Modernos Tareas que realizan: Renderizado gráfico (GPU). Entrenamiento y ejecución de modelos de IA (TPU/NPU). Procesamiento de imágenes y video en tiempo real. Aceleración de simulaciones científicas. Seguridad: cifrado, hashing, autenticación.

Estructura del Microprocesador Intel Pentium Unidad de Interfaz de Bus: Conecta el microprocesador con la memoria y periféricos externos. Soporta un bus de direcciones de 32 bits y un bus de datos de 64 bits , lo que mejora el rendimiento frente a generaciones anteriores. Caché dividida (Split Cache): 8 KB de caché de datos y 8 KB de caché de instrucciones , lo que permite acceso más rápido y evita conflictos. Pipelines duales (U y V): Introducción de arquitectura superescalar , permitiendo ejecutar dos instrucciones en paralelo en los pipelines U y V. Unidad de punto flotante mejorada: Pipeline dedicado para operaciones complejas (multiplicación, suma, división) en coma flotante. TLB (Translation Lookaside Buffer): Optimiza la traducción de direcciones virtuales a físicas. BTB (Branch Target Buffer): Mejora la predicción de saltos condicionales, reduciendo los errores en el flujo de instrucciones. ROM de microcódigo: Almacena instrucciones complejas que no pueden ejecutarse directamente en hardware.

Aportes del Microprocesador Intel Pentium Las aportaciones clave del Intel Pentium son: Arquitectura superescalar: Primer procesador Intel capaz de ejecutar dos instrucciones por ciclo gracias a sus dos pipelines (U y V). Caché dividida (split): Mejora el rendimiento separando instrucciones y datos. Bus de datos de 64 bits: Aumenta el ancho de banda y velocidad de acceso a memoria. Mejoras en la unidad de punto flotante: Más rápida y eficiente que la del 80486. Mayor paralelismo interno: Aumento significativo del rendimiento general del procesador. El Pentium marcó el inicio de la ejecución paralela real en procesadores Intel , dando un salto importante en eficiencia y velocidad respecto al 80486.

Microarquitectura de un Microprocesador La microarquitectura es el diseño interno y la organización lógica de los componentes de un microprocesador (como registros, ALU, FPU, cachés, pipelines, unidades de ejecución, etc.). Es cómo se implementa físicamente una arquitectura de conjunto de instrucciones (ISA), como x86, ARM o RISC-V. Dos procesadores pueden tener la misma arquitectura (por ejemplo, x86) pero diferente microarquitectura , lo que implica variaciones en rendimiento, eficiencia energética y tamaño. Componentes de una microarquitectura: Longitud y diseño del pipeline Tamaño y organización de memoria caché Mecanismos de predicción de saltos Unidades de ejecución (entero, punto flotante, SIMD) Número de núcleos, multithreading , etc. Soporte para tecnologías como virtualización o seguridad por hardware La microarquitectura define cómo está construido internamente un procesador y determina su velocidad, eficiencia y capacidad de procesamiento. Es el “diseño físico detallado” que hace única a cada generación de procesadores.

Tabla comparativa de las características de la Arquitectura IA-32 (Intel Architecture-32) y la Arquitectura Intel® IA-64 (Instruction Arquitecture-64).

Características del Set de Instrucciones de Propósito General (Intel 80x86) ¿Qué es el set de instrucciones de propósito general? Es el conjunto de instrucciones básicas que todos los procesadores x86 (IA-32 e incluso x86-64) deben comprender y ejecutar. Permite realizar tareas fundamentales como cálculos aritméticos, lógicos, movimiento de datos, control de flujo y operaciones sobre memoria. Características clave: Arquitectura CISC (instrucciones complejas). Incluye instrucciones como: MOV , ADD , SUB , MUL , DIV , AND , OR , JMP , CALL , etc. Compatible con registros como EAX , EBX , ECX , EDX , ESI , EDI , ESP , EBP . En x86-64, estos se amplían a 64 bits ( RAX , RBX , etc.). Compatible con múltiples modos de direccionamiento: directo, indirecto, inmediato, indexado.

Características de la Tecnología y Set de Instrucciones Intel® MMX™ ¿Qué es MMX? Intel MMX™ (MultiMedia eXtension) fue introducido en 1996 para acelerar aplicaciones multimedia , como audio, video y gráficos. Características técnicas: Introduce 57 nuevas instrucciones SIMD (Single Instruction, Multiple Data). Trabaja con datos enteros (no flotantes) , procesando múltiples datos en paralelo (por ejemplo, 8 bytes en un solo registro de 64 bits). Utiliza los mismos registros que la FPU ( MM0–MM7 ), lo que impide usar ambos al mismo tiempo. Mejora el rendimiento en compresión de video, animaciones, juegos, y procesamiento de imágenes. Limitación: No soporta operaciones en punto flotante, lo cual llevó a la evolución hacia SSE.

Características de las Extensiones SSE (Streaming SIMD Extensions) SSE es una familia de extensiones SIMD para datos de punto flotante y enteros . Mejoran el rendimiento en cálculos científicos, multimedia y videojuegos.

Instrucciones Intel® AVX extensions (Advanced Vector Extensions) e Intel® AVX2 extensions. AVX (Advanced Vector Extension) es un conjunto de instrucciones desarrollado por Intel y AMD como extensión del conjunto IA-32 (x86). Surgió en 2011 con los procesadores Sandy Bridge y FX-Jaguar, sustituyendo a SSE4 y mejorando el rendimiento en cálculos vectoriales, especialmente de coma flotante, gracias a registros de 128 a 256 bits (XMM y YMM) y a un nuevo esquema de codificación más eficiente (VEX).

Evoluciones de AVX: AVX2 : Añade soporte para instrucciones enteras de 256 bits, operaciones FMA (útiles en imágenes y computación avanzada) y operaciones de recopilación, mejorando el rendimiento en software multimedia, códecs y cifrado. AVX-512 : Permite operaciones vectoriales de 512 bits para cargas de trabajo muy exigentes, trabajando en paralelo con muchos datos enteros y de coma flotante sin hardware adicional.

Las extensiones SMX (Safer Mode Extensions) implementado en las arquitecturas IA-64 (Intel 64) e IA-32. Proporcionan un entorno de ejecución medido (MLE) para garantizar la integridad del software . Permiten lanzar de forma segura sistemas ejecutivos como monitores de máquina virtual medidos (MVMM) . Usan registros seguros del TPM (PCRs) para almacenar mediciones de confianza. Funcionan mediante la instrucción GETSEC con funciones como SENTER (inicio seguro), SEXIT (salida segura), entre otras. Requieren soporte en hardware: Intel TXT , habilitación por CR4.SMXE , y compatibilidad vía CPUID . Durante el arranque seguro, se mide y autentica un módulo especial ( SINIT ) y se protegen recursos críticos. Al finalizar, SEXIT garantiza el borrado seguro de información sensible.

Las extensiones de manejo de máquinas virtuales Virtual-Machine Extensions (VMX), presente en los modernos procesadores de la Familia Intel 80x86. Presentes en procesadores Intel IA-32 e Intel® 64, permiten la virtualización de hardware . Definen dos modos de operación: VMX root : ejecuta el monitor de máquina virtual (VMM). VMX non-root : ejecuta el software huésped. Usan transiciones VM entry y VM exit para alternar entre VMM y huésped. Controladas por la estructura VMCS (Virtual Machine Control Structure). Instrucciones clave: VMXON, VMXOFF, VMLAUNCH, VMRESUME . Requieren habilitación del bit CR4.VMXE y verificación con CPUID (bit 5 de ECX) . Imponen restricciones para asegurar una operación virtual segura.

Extensiones de Sincronización Transaccional (TSX-NI) Permiten al procesador gestionar sincronización entre hilos sin adquirir locks explícitos (lock elision). Si la transacción tiene éxito, las operaciones de memoria son atómicas ; si falla, se revierte (abort transaccional). Dos interfaces principales : HLE : usa XACQUIRE/XRELEASE, compatible con hardware antiguo. RTM : usa XBEGIN/XEND/XABORT y requiere código alternativo en caso de fallo. Detecta conflictos de acceso a nivel de caché entre hilos. Instrucciones adicionales: XTEST : verifica si se está en modo transaccional. XSUSLDTRK / XRESLDTRK : suspenden/reanudan el seguimiento de direcciones.

Tecnología Hyperthreading (HT) Permite que un núcleo físico se comporte como dos núcleos lógicos , ejecutando múltiples hilos en paralelo. Introducida por Intel en 2002 con el Pentium 4 (núcleo Northwood-B). Retirada temporalmente y reintroducida en procesadores Intel Atom y Core-i . Ventajas : Más económica que añadir núcleos físicos. Mejora el aprovechamiento de recursos y la fluidez del sistema. Ejecuta procesos secundarios en paralelo , reduciendo tiempos muertos. Exclusiva de procesadores Intel .

MICRO ARQUITECTURA INTEL CORE (Intel® Core™ Microarchitecture) Sustituye a NetBurst, priorizando eficiencia energética y mejor uso del reloj. Ofrece más rendimiento por vatio gracias a mejoras en decodificación, cachés y buses. Compatible con múltiples núcleos , Intel 64 , SSSE3 y virtualización (VT-x) . Sin Hyper-Threading en sus primeras versiones (herencia de la arquitectura P6). Caché L1 : 64 KB por núcleo (32 KB datos + 32 KB instrucciones). Sin caché L3 en versiones de consumo; se reintrodujo en Nehalem junto con HT.

MICRO ARQUITECTURA INTEL CORE (Intel® Core™ Microarchitecture)

Evolución de Procesadores Intel 8086/88 (1978-1979): Primeros x86, base de las PCs. El 8086 con bus de 16 bits y el 8088 con bus de 8 bits (IBM PC). 80286 (1982): Soporte para 16 MB de memoria. Introdujo gestión de memoria y protección. 80386 (1985): Primer procesador de 32 bits. Multitarea y memoria virtual. 80486 (1989): Cache L1 y unidad de coma flotante integradas. Mayor rendimiento. Pentium / Pro / II / III / Xeon: Mejoras de velocidad, SSE, caché L2 y ejecución fuera de orden. Pentium 4 (2000-2006): Arquitectura NetBurst, Hyper-Threading, hasta 3.8 GHz. Core Solo (2006-2007): Enfocado en eficiencia para laptops. Dual Core: Dos núcleos físicos, ideal para multitarea. Xeon Series: 64 bits, virtualización, clave en servidores y cloud computing. Core 2 Duo/Quad (2007): Multinúcleo dominante, alto rendimiento y eficiencia energética.

Evolución de Procesadores Intel Intel 8086/88 Intel 80286 Intel 80386 Intel 80486-DX Intel Pentium, Pentium II, Pentium III, Pentium Pro y Xeon he Intel® Pentium® 4 Processor Family (2000-2006) Intel Core™ Solo Processors (2006-2007)

Microprocesador Multinúcleo (Multi-core) Un solo chip con dos o más núcleos de CPU que ejecutan instrucciones de forma independiente, mejorando el rendimiento y la multitarea. Componentes clave: Núcleos (Cores): Procesan tareas en paralelo; cada uno con su propia caché L1. Memoria Caché: L1: Rápida y por núcleo. L2: Dedicada o compartida. L3: Compartida entre todos los núcleos. Interconexión: Permite comunicación entre núcleos (ring, mesh, etc.). Controlador de Memoria: Gestiona acceso a la RAM. Interfaces I/O: Conexión con otros dispositivos del sistema. Gestión de Energía: Optimiza consumo y temperatura.

IGP (Integrated Graphics Processor) dentro del microprocesador, y a que se llama APU (Accelerated Processing Unit) IGP (Procesador Gráfico Integrado): Procesa gráficos (2D, 3D, video) sin necesidad de tarjeta dedicada. Comparte RAM del sistema y prioriza eficiencia y bajo costo. Ideal para equipos con necesidades gráficas moderadas. APU (Unidad de Procesamiento Acelerado): Integra CPU + IGP en un solo chip (desarrollado por AMD). Mejora rendimiento y eficiencia energética. Facilita sistemas heterogéneos con procesamiento colaborativo.

Familias de Procesadores Intel® Core™ (i3, i5, i7, i9) Core i3 : Enfocados en tareas básicas. Inicialmente con 2 núcleos/4 hilos. Desde la 10ª gen: 4 núcleos/8 hilos. Con arquitectura híbrida desde la 12ª gen. Core i5 : Gama media. Comenzaron con 4 núcleos. Desde la 10ª gen: hasta 6 núcleos/12 hilos. En la 12ª gen: arquitectura híbrida con hasta 10 núcleos y 16 hilos. Core i7 : Para usuarios avanzados. Inicialmente 4 núcleos/8 hilos. Desde la 10ª gen: 8 núcleos/16 hilos. En generaciones recientes: hasta 16 núcleos y 24 hilos. Core i9 : Alto rendimiento para profesionales. Desde 8 núcleos/16 hilos hasta 24 núcleos/32 hilos en la 14ª gen. Ideal para edición 4K, simulaciones y juegos exigentes.

Familias de Procesadores Intel® Core™ (i3, i5, i7, i9)

Evolución de los Microprocesadores AMD K5/K6 (1996-1998) : Primeros x86 propios. K6 compitió con Pentium II. Athlon (1999-2005) : Líder con el primer procesador de 1 GHz y el Athlon 64 (x86 de 64 bits). Phenom (2007) : Núcleos cuádruples nativos con arquitectura K10. FX Series (2011) : Arquitectura Bulldozer, criticada por su consumo y bajo rendimiento por núcleo. Ryzen (2017-presente) : Revolución con arquitectura Zen. Ryzen 7000 (Zen 4) soporta DDR5 y PCIe 5.0, con alto rendimiento y eficiencia.

Raspberry Pi y las características más importantes de los MICROCONTROLADORES Raspberry Pi: Ordenador de placa única, económico, usado en educación, IoT, robótica y servidores personales. RP2040 (usado en Raspberry Pi Pico): Procesador: Doble núcleo ARM Cortex-M0+ a 133 MHz. Memoria: 264 KB de SRAM. Interfaz: 30 GPIOs, USB 1.1, UART, SPI, I2C, PWM, ADC. Programación: Soporta C/C++ y MicroPython. Se utiliza para proyectos embebidos que requieren flexibilidad y bajo consumo.

¿Qué es un ordenador cuántico? y ¿cuáles son las bases de su funcionamiento? Un ordenador cuántico es un dispositivo que usa los principios de la mecánica cuántica para realizar cálculos mucho más rápido que los ordenadores clásicos para ciertos problemas. Bases de su funcionamiento: Qubits: Unidades de información que pueden estar en estados 0, 1 o ambos (superposición). Entrecruzamiento (entanglement): Permite correlacionar múltiples qubits. Interferencia cuántica: Ayuda a amplificar resultados correctos y cancelar los erróneos. Aplicaciones: Criptografía, simulación de moléculas, inteligencia artificial, optimización logística.
Tags