Monografias.com > Computación > Hardware
Descargar Imprimir Comentar Ver trabajos relacionados

Evolución en arquitecturas de microcontroladores




Enviado por Pablo Turmero



    Monografias.com
    1 Evolución en la arquitectura de microprocesadores
    Consecuencias del avance tecnológico: tamaño,
    consumo, velocidad, costo Aplicaciones Comunicaciones,
    automatización y control Requerimientos: Software RTOS y
    stacks. Capacidad de cómputo! Hardware Analógicos
    Memoria RF

    Monografias.com
    2 Consecuencias del avance tecnológico Las
    geometrías se reducen permanentemente en forma importante,
    se observa una escala decreciente 350nm, 250nm, 180nm, 90nm,
    65nm, 35nm, 18nm…. Las ventajas son mucha mayor cantidad
    de transistores por chip, mayor velocidad Pero el costo del
    desarrollo de nuevas plantas capaces de fabricar componentes con
    esta tecnología también es enorme, por lo que
    inicialmente se justifican para dispositivos de alta complejidad
    (algunos millones de transistores por chip) Las plantas de
    fabricación existentes, cuyo costo ha sido parcialmente
    amortizado, a veces no pueden ser adaptadas a los nuevos
    procesos, y muchos de sus recursos pueden son utilizados para la
    fabricación de otro tipo de productos. Este proceso de
    reutilización de tecnologías previas es
    constante

    Monografias.com
    3 Nuevos usos de geometrías mayores Las plantas aptas para
    procesos litográficos de geometrías mayores se
    benefician del mejor control de procesos obtenido por el
    aprendizaje El control de tamaños, espesor de
    deposiciones, etc., es más controlable Estas ventajas se
    acomodan especialmente a las aplicaciones lineales, y aquellas de
    tecnología mixta (analógica + digital) Dentro del
    área analógica deben considerarse: Etapas lineales
    de baja frecuencia (amplificadores) Etapas lineales de alta
    frecuencia (RF): LNA y PA Y en el área mixta: Conversores
    ADC, DAC Moduladores y demoduladores, para aplicaciones cableadas
    (USB, Ethernet, CAN) o inalámbricas (ISM)

    Monografias.com
    4 Áreas de avance: autonomía de dispositivos
    móviles La autonomía de un dispositivo móvil
    es fundamental, y en general se busca también reducir peso
    y tamaño Ese objetivo se busca por distintos caminos:
    Mejores baterías, mas pequeñas. Otras fuentes de
    energía Comunicaciones y GUI de baja potencia Procesadores
    acordes a las necesidades de performance Tecnologías
    alternativas a CMOS para ciertos dispositivos Periféricos
    inteligentes Administración de energía

    Monografias.com
    5 Áreas de avance: energía disponible en el
    ambiente Energy Harvesting: aprovecha energía disponible
    en el ambiente: Vibraciones: ideal en aplicaciones automotrices,
    Termoelectricidad: para aplicaciones medicas Energía solar
    Campos electro-magnéticos Los dispositivos deben tolerar
    amplios rangos de voltajes, y consumir cantidades mínimas
    de energía Existen fuentes de alimentación con
    voltajes de entrada tan bajos como 0,5V que lo elevan a 2,5V o
    3,3V con alto rendimiento (mejor a 90%) Y tags RFID que capturan
    energía, como para alimentar a un procesador

    Monografias.com
    6 Mientras las E2ROM/FLASH capturan electrones en un conductor
    aislado (floating gate), por efecto túnel, acá se
    usa la formación de dipolos eléctricos biestables
    en una estructura cristalina El vector desplazamiento en el
    dieléctrico de un capacitor tiene comportamiento biestable
    El proceso de lectura detecta esa polarización forzando un
    cambio, y reescribe el dato leído (algo similar a la
    lectura en una RAM dinámica) Sin limitaciones de velocidad
    de pasaje de cargas que limiten el tiempo de escritura ni trampas
    de electrones que limiten la cantidad de ciclos de escritura
    Memorias no volátiles de consumo nulo: FRAM O Zr o Ti
    Pb

    Monografias.com
    7 FRAM: performance Sin limitación práctica de
    ciclos de escritura, las hojas de datos hablan de más de
    1014 ciclos ! La rapidez del ciclo de escritura garantiza que
    ésta se complete en caso de falla de energía El
    tiempo de escritura es dado por la lógica de
    selección y no por la celda de memoria; los tiempos son
    similares a los de una SRAM, menos de 50ns por byte o word No
    requiere alto voltaje como las E2ROM/FLASH (bastan 1.5V para
    escribir, vs 10V a 14V de una Flash/EEPROM) Amplio rango
    térmico: retención de más de 100 Hrs
    @150°C, 1000 Hrs @125°C, 10 años @85°C, ideal
    para aplicaciones automotrices Muy resistente a Radiación,
    los cambios inducidos por partículas alpha a nivel
    terrestre son indetectables Lo novedoso es que desaparece la
    diferencia conceptual entre RAM y ROM, todo es sólo
    “memoria”, una tarea puede dormirse al cortarse la
    alimentación y continuar cuando la energía
    retorna

    Monografias.com
    8 Periféricos inteligentes En vez de periféricos
    simples que requieren la atención completa de la CPU el
    nuevo enfoque es el desarrollo de periféricos inteligentes
    Cada subsistema tiene control individual de energía Y sale
    y vuelve a entrar en modos de bajo consumo ni bien realiza la
    tarea para la que fue programado Pasa a ser un coprocesador
    disparado por un evento, que a su vez genera otro evento para
    avisar cuando termina de hacer lo que debe Permite que mientras
    tanto la CPU este en bajo consumo, o atendiendo alguna otra
    tarea. Solo se saca de StandBy a lo imprescindible, y
    además se simplifica la tarea de la CPU

    Monografias.com
    9 Conversores A/D inteligentes En los procesadores modernos es
    usual contar con modelos que incluyen ADCs de 10-bit y 12-bit,
    con tasas de muestreo de algunos cientos de kilomuestras/segundo
    Para optimizar el consumo y aumentar performance es posible que
    un periférico (ej: timer) inicie la conversión Y
    que otro periférico (ej: DMA) guarde el resultado donde
    convenga Que las mediciones sigan una secuencia de uno o
    más canales El procesador sólo usa los resultados
    (Gp:) DirectTransferController (Gp:) DataTransferController Solo
    se saca de StandBy a lo imprescindible, y además se
    simplifica la tarea de la CPU Solo se saca de StandBy a lo
    imprescindible, y además se simplifica la tarea de la
    CPU

    Monografias.com
    10 Cambio del dominio analógico al digital: ADC de alta
    precisión Ciertas aplicaciones masivas (por ejemplo
    medición de energía) requieren elevada
    precisión, a tasas de conversión de pocos ksps El
    uso de conversión Sigma/Delta se acomoda al mundo digital
    El filtrado de la señal de un comparador es realizado
    digitalmente mediante filtrado y undersampling La ganancia
    digital permite obtener conversores de 16 o más bits de
    resolución La ganancia de precisión se obtiene por
    técnicas de DSP, mas económico y con menor consumo
    Dominio digital

    Monografias.com
    11 Interfase GUI: controladores LCD El uso de interfase
    gráficas hace más amigable y comercialmente
    más interesante a un producto El uso de displays LCD surge
    como la opción lógica debido al bajo consumo, desde
    displays monocromos de pocos segmentos (<200) hasta displays
    más complejos (color, QVGA a VGA) Combinado con un sensor
    “touch screen” permite una elevada interactividad Un
    LCD requiere de un ciclo de actualización permanente, y
    por eso suele ser un periférico inteligente en algunos
    procesadores, con memoria de imagen propia, o compartida con el
    procesador

    Monografias.com
    12 Canales de comunicación de datos Cuando el procesador
    debe compartir datos con otros dispositivos existen alternativas
    cableadas o inalámbricas Las interfases cableadas
    más simples son UART, SPI o I2C. Y pueden ser potenciadas
    con recursos para soporte de enlaces infrarrojos (IrDA), procesos
    de autosincronización de relojes (auto-baud rate detect en
    LIN) A nivel intermedio algunos uC poseen interfases CAN o USB Y
    para alta tasas de transferencias ciertos procesadores tienen
    interfases Ethernet que incluyen el MAC y el PHY, que al igual
    que en los periféricos previos suelen operar combinados
    con timers y controladores DMA A medida que aumenta la tasa de
    datos, las secciones de hardware necesitan complementarse con
    servicios de software (stacks)

    Monografias.com
    13 Canales de comunicación de datos: RF Para el caso de
    interfases de RF hoy se disponen de transceivers integrados que
    operan en las bandas ISM, en la zona de 400MHz, 900MHz o 2,4GHz,
    con muy bajo consumo de potencia. Esto es posible gracias a la
    posibilidad de integración de: Etapas lineales de
    amplificación de bajo ruido (LNA) para las etapas de
    entrada (RX) Etapas lineales de potencia tan elevada como 20 dBm
    dentro de un chip (TX). Con etapas digitales para
    conformación de señales y modulación,
    conversión a digital y FI y demodulación en el
    dominio digital, periféricos para armado de paquetes,
    agregado y validación de códigos de
    detección de errores, los métodos de
    sincronización, etc. Estas soluciones definen un amplio
    abanico de protocolos, desde aquellos propios hasta los
    estándar (como ZigBee).

    Monografias.com
    14 Stacks de comunicaciones A partir de la aparición de
    normas como LIN, CAN, USB, Ethernet o de RF, no basta con
    disponer de un periférico que atienda la interfase
    física (PHY): En este caso el intercambio de datos es
    complejo, se compone de una “transacción”, que
    requiere fases de sincronización, arbitraje (si hay varios
    másters), identificación (del iniciador y
    destinatario), numeración (para rearmado de grandes
    bloques de datos fuera de secuencia), transmisión de datos
    (payload), incorporación de códigos de
    detección o corrección de errores, y cierre de
    transacción. Y requiere servicios auxiliares, de control
    de tráfico, descubrimiento y numeración de nuevos
    agentes, o administración de canales virtuales (manejando
    métodos de recuperación ante errores) El
    periférico cubre una parte de esas acciones, y el resto
    suele ser resuelto por software, a través de un
    “stack”. Y para atender ese software, y las otras
    necesidades de la aplicación, suele ser necesario
    algún tipo de administrador (Sistema Operativo)
    multi-tareas de tiempo real, o RTOS.

    Monografias.com
    15 Requerimientos de procesamiento Las necesidades de
    procesamiento han llevado a la conveniencia de procesadores de
    gran ancho de palabra Al disponer de 16 a 32 bits en la
    instrucción se minimizan los ciclos de acceso Las
    instrucciones pueden incluir mas información sobre
    operandos, incluyendo las referencias a dos o mas operandos y el
    resultado Y el ISA es diseñado pensando en aplicaciones en
    lenguajes de alto nivel, que se ejecutan administradas por
    sistemas operativos La tendencia obvia es el uso de arquitecturas
    RISC Y pasa a ser de importancia cuanto del tiempo de CPU se
    ocupa procesando datos y cuanto es el overhead de las estructuras
    de control

    Monografias.com
    16 Overhead en una ramificación condicional IF con ELSE En
    casi todos los lenguajes de mayor nivel existen instrucciones de
    ramificación condicional más poderosas, de la
    forma: SI (cierta condición es verdadera) ENTONCES ejecuta
    cierta acción SINÓ SI (otra condición es
    verdadera) ENTONCES ejecuta otra acción SINO SI …
    SINÓ ejecuta otra acción En inglés if
    (condición1) then (acción1); elsif
    (condición2) then (acción2); else (acción3);
    Operación que define algo Ramificación
    incondicional Acción 2 Ramificación condicional
    Acción 1 FALSE (ELSE) TRUE (IF) Instrucciones 1
    Instrucciones 2 Condición? Notar que son combinaciones de
    ramificaciones condicionales e incondicionales!! Tarea del
    compilador!! Two-Way branch dependencia temporal
    Ramificación condicional Condición?

    Monografias.com
    17 Overhead en SWITCH, SELECT o CASE Es usual que un programa
    deba saltar a distintos puntos según distintos valores de
    una misma variable SWITCH (variable) CASE (constante1) :
    acción 1 CASE (constante2) : acción 2 CASE …
    DEFAULT: acción N Las sentencias de selección
    múltiple son comunes en todos los lenguajes de alto nivel,
    sólo se llaman distinto Constante1 Constante2 Constante3
    Restantes Acción 1 Acción 2 Acción 3 Por
    defecto Instrucciones1 Instrucciones2 Instrucciones3
    Instrucciones4 Valor? Multi-Way branch Ramif.incond.
    Ramif.incond. Ramif.incond. Cómo mejorar el Multi-Way
    Branch? Cómo mejorar el Multi-Way Branch?

    Monografias.com
    18 Overhead en el caso de repeticiones o iteraciones En
    muchísimos casos es necesario realizar una acción
    una dada cantidad de veces Para ello: Se inicializa una variable
    a ser usada como contador Se ejecuta una vez la acción Se
    decrementa el contador y .. Si el contador no llegó a
    cero, se salta a ejecutar otra vez la acción Si en cambio
    el contador llegó a cero se continúa la
    ejecución secuencial En muchos lenguajes de
    programación de alto nivel se usa para esto una
    instrucción for Ya algunos viejos microprocesadores (8051)
    incluían DJNZ (Decrement and Jump if Not Zero) para
    reducir el overhead Inicialización Instrucción 1
    Instrucción de cierre Instrucción n Terminé?
    no si Ramificación condicional!! overhead tiempo
    útil

    Monografias.com
    19 Ventajas y desventajas de la arquitectura Von Neumann Datos
    Programa 1 2 n Interfaz de Entrada y Salida Memoria CPU
    Periféricos Mundo Exterior Unidad de Control Unidad
    Aritmética y Lógica A D Datos e instrucciones
    comparten el mismo espacio de memoria Usan un mismo
    direccionamiento (bus de direcciones) y transporte de contenidos
    (bus de datos) Hardware menor, pero mas ciclos para realizar una
    tarea En que casos conviene? En que casos conviene?

    Monografias.com
    20 Un microcontrolador tipo Harvard (relajado) Memoria de
    Programa 1 2 n Interfaz de Entrada y Salida Memoria De datos CPU
    Periféricos Unidad de Control Unidad Aritmética y
    Lógica A D Mundo Exterior Es usual usar memoria no
    volátil para el espacio de programa y volátil (RAM)
    para el de datos En este caso ciertos datos pueden ser
    leídos de memoria de programa con instrucciones especiales
    Permite tener datos no volátiles (constantes) Mas hardware
    pero menos ciclos de reloj En que casos conviene?

    Monografias.com
    21 Alternativas de arquitecturas:Bridges Datos Programa Interfaz
    de Entrada y Salida Memoria CPU Periféricos Unidad de
    Control Unidad Aritmética y Lógica A D A D Bridge
    Puede ser Harvard, Von Neuman, u otras Bridge Memoria externa Un
    bridge es un intermediario entre dos buses Estos pueden ser
    similares o responder a distintos mecanismos de control Y a ambos
    lados del bridge suceden transacciones al mismo tiempo Pueden
    tener distintos tamaños de datos y modos de almacenamiento
    temporario Son comunes los bridges a periféricos y a
    memorias masivas En que casos conviene?

    Monografias.com
    22 Mejoras de la arquitectura básica Consumo de potencia:
    en aplicaciones alimentadas por baterías (celular, IPhone,
    Notebook) es importante que el consumo de energía sea
    mínimo para que las baterías permitan la
    máxima autonomía Uso de menores voltajes: P = (K x
    V)(estática) + (f x C x V2 / 2) (dinámica) Control
    de energía individual de recursos no usados (V) Sistemas
    de control de reloj (f) Modos de bajo consumo de la CPU (sleep,
    Halt, etc.) (f) Performance: en aplicaciones de cómputo y
    alta performance (comunicaciones, procesamiento de datos o
    imágenes) se desea la máxima cantidad de
    instrucciones por segundo Procesadores múltiples
    Múltiples buses y bridges Memorias cache Pipelining +
    predicción de ramificaciones Optimización de
    cambios de contexto Y en los proyectos modernos se quieren ambas
    mejoras: Performance y bajo consumo de energía

    Monografias.com
    23 Procesadores múltiples Decoder Los procesadores se
    diseñan para optimizar su desempeño ante distintos
    tipos de problemas. Puede convenir que varios procesadores
    convivan en un mismo sistema. Y usen recursos propios o comunes
    Por ejemplo, en un celular: Un procesador general para la
    interfase a usuario Un procesador de señales para las
    tareas de comunicaciones Un procesador gráfico para la
    captura y compactación de imágenes y video Un
    procesador de audio para reproducir música Distintos
    procesadores (Gp:) Arbiter Recursos compartidos

    Monografias.com
    24 BUS Procesadores múltiples:Buses y Switches Un bus
    (direcciones más contenido) sólo puede transportar
    en un dado instante un dato desde un origen a uno o más
    destinos (realizar una transacción) Si varios procesadores
    desean realizar transacciones deben esperar su turno para evitar
    colisiones (contention) Un switch permite que varias
    transacciones con orígenes y destinos diferentes puedan
    ser realizadas simultáneamente Aumenta la tasa de
    intercambio de datos, a costa de mayor complejidad del circuito
    Sigue siendo necesario arbitrar los accesos a recursos comunes
    Master1 Master2 Slave1 Slave2 SWITCH Master1 Master2 Slave1
    Slave2 Master2 debe esperar

    Monografias.com
    25 Memorias “cache” En un sistema de procesamiento
    suele darse en el uso de la memoria los fenómenos de:
    localidad temporal: si se referencia a un elemento en un
    instante, es muy probable que se volverá a referenciarlo
    en corto tiempo localidad espacial: si se referencia a un dado
    elemento, es muy probable que los ubicados próximos a
    él serán referenciados pronto Esto lleva a la
    conveniencia de organizar una jerarquía de memoria: Una
    memoria pequeña y rápida (“cache”)
    organizada de a bloques (nivel superior) Una memoria masiva de
    acceso más lento (nivel inferior de la jerarquía)
    El uso de cache de datos implica problemas de coherencia y es
    útil para aplicaciones muy complejas, en cambio el uso de
    cache de instrucciones, que son RO, es una solución mucho
    mas simple y ofrece ventajas de performance

    Monografias.com
    26 Evolución de la CPU:para qué más
    registros? Al haber varios registros se puede almacenar varios
    resultados intermedios sin necesitad de salvarlos en memoria
    (bottleneck del AC único) Si los registros contienen tanto
    datos como direcciones se generan nuevos posibles modos de
    direccionamiento Al estar dentro de la CPU se pueden realizar
    instrucciones mucho más veloces, con origen y destino en
    registros, de acceso simultáneo (dual port) Es posible
    reservar registros para ciertas tareas (Ej: interrupciones) y de
    ese modo acelerar y simplificar los cambios de contexto R0/PC
    Program Counter R1/SP Stack Pointer R2/SR Status Register R3/CG
    Constant Generator R4 General Purpose R5 General Purpose R6
    General Purpose R7 General Purpose R8 General Purpose R9 General
    Purpose R10 General Purpose R11 General Purpose R12 General
    Purpose R13 General Purpose R14 General Purpose R15 General
    Purpose SRC ALU de 16 bits MDB: Memory Data Bus MAB: Memory
    Address Bus 16 16 DST 16 a 20 bits Y si uso un bus local?

    Monografias.com
    27 Un procesador elemental:beneficios de 16 bits vs 8 bits En una
    instrucción de 16 bits caben campos para identificar un
    conjunto restringido de operaciones (5 a 6 bits), indicar
    cuáles son los registros fuente y destino (4 bits cada
    uno), y algún bit extra para funciones especiales
    (identificar modo de direccionamiento y si es una
    instrucción a byte o word, por ejemplo) Ello posibilita
    una instrucción por ciclo de reloj, si la operación
    es entre registros Cuando se usan operandos inmediatos, que no
    caben en los 16 bits, se usan soluciones originales, en este caso
    un registro R3 donde según los bits extra mencionados se
    lee una constante usual: 0, +1, -1, 2, 4, 8. R0/PC Program
    Counter R1/SP Stack Pointer R2/SR Status Register R3/CG Constant
    Generator R4 General Purpose R5 General Purpose R6 General
    Purpose R7 General Purpose R8 General Purpose R9 General Purpose
    R10 General Purpose R11 General Purpose R12 General Purpose R13
    General Purpose R14 General Purpose R15 General Purpose SRC ALU
    de 16 bits MDB: Memory Data Bus MAB: Memory Address Bus 16 16 DST
    16 a 20 bits

    Monografias.com
    28 Buscando un procesador más poderoso: qué cosa
    mejorar? Para obtener CPUs cada vez más poderosas se
    exploran muchos caminos Modos de direccionamiento que minimicen
    tiempos muertos Conjunto óptimo de instrucciones para cada
    relación silicio/performance Pipelining y Branch
    Prediction: uso simultáneo de varios bloques de la CPU
    Cache de instrucciones: mejorar tiempos de lectura de
    instrucciones Ancho de palabra (y lectura de varias instrucciones
    a la vez): usar palabras de más bits para mayor velocidad
    sin gastar más memoria de programa Cambios de contexto:
    mejorar tiempos de atención y retorno de subrutinas e
    interrupciones, minimizar tiempos de salvado y
    recuperación de registros Modos Operacionales: agregar
    modos de operación (usuario, excepción, supervisor)
    que faciliten la incorporación de sistemas operativos
    Bancos de registros: poseer múltiples registros que sirvan
    para datos y direcciones y que sean propios a cada modo de
    operación

    Monografias.com
    29 Procesadores avanzados: otros modos de direccionamiento
    Además de los modos Absoluto, Indexado, Registro,
    Inmediato y Relativo al Stack, existen variaciones que aumentan
    la capacidad de procesamiento, aunque a costa de una unidad de
    direcciones más compleja: Base + Desplazamiento con
    automodificación, en memoria lineal: Dados tres registros
    Ra (base), Rb (desplazamiento) y Rc (cambio), la dirección
    del operando surge de la suma de los contenidos de Ra+Rb, y luego
    el valor de Rb se actualiza como Rb=Rb+Rc. Este modo acelera el
    acceso a tablas multidimensionales de datos. Base +
    Desplazamiento con automodificación, en memoria circular:
    en este caso las direcciones se actualizan de modo de reciclar
    sobre una región de memoria, tal como es necesario en
    buffers de comunicaciones Direccionamiento bit-reversal: usado en
    ciertos algoritmos, como FFT En los DSP hay varios buses de datos
    y varias unidades de direcciones.

    Monografias.com
    30 Cuántas y cuáles instrucciones conforman el ISA
    de un procesador es un tema de permanente discusión. En
    procesadores para algoritmos específicos (DSP), es sensato
    contar con instrucciones especializadas en tareas complejas
    (FIRS, CONV). En procesadores de propósito general no es
    tan claro, y existe gran variedad de alternativas, desde
    procesadores con sólo algo más de veinte
    instrucciones nativas (RISC: Reduced Instruction Set Computer), a
    procesadores con cientos de instrucciones especializadas (CISC:
    Complex Instruction Set Computer). La tendencia actual es el uso
    de arquitecturas RISC, más primitivas pero más
    veloces, donde la acciones especializadas son resueltas por el
    compilador concatenando instrucciones simples. Por eso un RISC
    debe ser pensado para ser eficiente al ser compilado! Buscando un
    procesador más poderoso: RISC versus CISC

    Monografias.com
    31 Los primeros planteos de una arquitectura RISC A partir de
    trabajos de Patterson y Ditzel (1980) en la Univ. de Berkeley se
    desarrolló un proyecto de postgrado sobre el diseño
    de un procesador con Conjunto de Instrucciones reducido. La
    primer propuesta (Berkeley RISC 1) fue una arquitectura mucho
    más simple que los procesadores CISC de esa época,
    pero que permitía similar performance. Sus
    características más notables eran: tamaño de
    palabra fija de 32 bits un banco de registros de 32 registros de
    32 bits, todos ellos pudiendo ser usados indistintamente en todas
    las instrucciones el procesamiento es sólo realizado en
    registros, y el acceso a memoria es sólo para salvar o
    cargar registros uso de pipeline decodificación por
    lógica (no basada en microprogramación)

    Monografias.com
    32 Hacia un procesador más poderoso: uso de pipeline El
    pipeline descompone una instrucción en acciones
    elementales de duración temporal parecida, y asigna
    recursos físicos distintos para cada una, a los que luego
    usa en simultáneo. Por ejemplo: Generación de
    dirección de programa Lectura de la instrucción
    Decodificación de la instrucción Lectura del
    operando Procesamiento del operando Escritura del operando El
    resultado obtenido es una mucho mayor tasa de instrucciones,
    aunque: qué pasa en el caso de ramificaciones? qué
    pasa si una instrucción usa un dato que modificó la
    previa? (Gp:) 1 (Gp:) 2 (Gp:) 3 (Gp:) 4 (Gp:) 5 (Gp:) 6 (Gp:) 1
    (Gp:) 2 (Gp:) 3 (Gp:) 4 (Gp:) 5 (Gp:) 6 (Gp:) 1 (Gp:) 2 (Gp:) 3
    (Gp:) 4 (Gp:) 5 (Gp:) 6 (Gp:) 1 (Gp:) 2 (Gp:) 3 (Gp:) 4 (Gp:) 5
    (Gp:) 6 (Gp:) 1 (Gp:) 2 (Gp:) 3 (Gp:) 4 (Gp:) 5 (Gp:) 6 (Gp:) 1
    (Gp:) 2 (Gp:) 3 (Gp:) 4 (Gp:) 5 (Gp:) 6 (Gp:) 1 (Gp:) 2 (Gp:) 3
    (Gp:) 4 (Gp:) 5 (Gp:) 6 (Gp:) Instrucción N
    Instrucción N+1 Instrucción N+2 Instrucción
    N+3 Instrucción N+4 Instrucción N+5
    Instrucción N+6 Cuantos niveles conviene tener??

    Monografias.com
    33 El FLUSH del pipeline en las ramificaciones El pipeline
    contiene varias instrucciones sucesivas; y si una de esas
    instrucciones (por ejemplo la N+1) es de ramificación y al
    fin del paso 5 se detecta que la ramificación será
    tomada hacia una dirección X, lo leído de las
    instrucciones siguientes (N+2 en adelante) debe ser descartado
    (pipeline FLUSH) y el pipeline vuelto a cargar, desperdiciando
    ciclos Cómo es posible mejorar este problema? Mediante
    BRANCH PREDICTION ! 1 2 3 4 5 6 1 2 3 4 5 6 1 2 3 4 – – 1 2 3 – –
    – 1 2 – – – – 1 – – – – – 1 2 3 4 5 6 Instrucción N
    Instrucción N+1 descartada descartada descartada
    descartada Instrucción X tiempo perdido
    Especulación si una ramificación será tomada
    o no, para llenar el pipeline con la secuencia de instrucciones
    considerada más probable y minimizar los casos de flush Y
    los efectos de borde del ciclo 4?

    Monografias.com
    34 Uso de pipeline:conflictos de acceso Cuando una
    instrucción actúa sobre un dato que será
    leído por la siguiente pueden ocurrir conflictos de
    pipeline que son solucionados insertando ciclos muertos (stall,
    sin borrar el pipeline). Ejemplo: la instrucción N+1
    escribe en el paso 6 un dato que es leído por la
    instrucción N+2 en el paso 4: El compilador busca estas
    dependencias y si es posible cambia el orden de instrucciones
    (Ej: la N+2 con la N+3) para no tener que insertar ciclos muertos
    1 2 3 4 5 6 1 2 3 4 5 6 1 2 3 4 5 6 1 2 1 Instrucción N
    Instrucción N+1 Instrucción N+2 Instrucción
    N+3 Instrucción N+4 Instrucción N+5
    Instrucción N+6 Cómo es posible mejorar este
    problema? 3 4 5 6 2 3 4 5 6 1 2 3 4 5 6 1 2 3 4 5 6 tiempo
    perdido

    Monografias.com
    35 Prefetch y Cache de instrucciones El software, secuencial,
    tiene localidad temporal y espacial inherente, y para acelerar la
    lectura de instrucciones se pueden usar varias soluciones: Una
    memoria FIFO que vaya leyendo instrucciones y
    suministrándola a la CPU a medida que ésta las
    necesita (caso del BIU del 8086) Una cache de instrucciones (solo
    lectura, sin problemas de coherencia), muy próxima a la
    CPU, de donde puedan leerse las ultimas instrucciones (y en
    general próximas, que por localidad espacial es probable
    que estén en la línea). Es muy útil en el
    caso de loops (tipo FOR o WHILE). Además, agregando
    inteligencia de decodificación, el update de la cache
    puede realizarse en avance por más de una vía,
    evitando tiempos muertos de update causados por el pipeline flush
    en una ramificación El tradicional modelo del PC se
    convierte en una unidad de suministro de instrucciones a la
    Unidad de Control

    Monografias.com
    36 Cambios de contexto en subrutinas El prototipo de una
    función es: < tipo de valor de retorno >
    nombrefuncion (parámetros); Para implementar esta
    operación un compilador debe ejecutar varios pasos: Antes
    del CALL: reservar lugar en el área de stack para los
    parámetros, resultados, y variables locales copiar
    allí el valor o direcciones de los parámetros, y la
    dirección del resultado ejecutar el CALL Durante el CALL:
    realizar las operaciones en forma indexada con el SP, sobre el
    área reservada Al final del CALL: almacenar el resultado
    en la dirección correspondiente liberar el área de
    stack ejecutar el RETURN El uso de direccionamiento indirecto es
    un camino para no desperdiciar tanto tiempo moviendo datos El uso
    de registros para las variables elimina escrituras

    Monografias.com
    37 Modos operacionales En los procesadores modernos es habitual
    atender varias tareas y usuarios, y para administrar el uso de
    recursos y evitar interferencias indeseadas entre tareas o
    usuarios surgen alternativas de hardware y de software En el caso
    del software, el uso de un kernel o RTOS permite que la
    aplicación se abstraiga del manejo directo del hardware a
    través del uso de una capa HAL (Hardware Abstraction
    Layer) y Device Drivers En el hardware, además de disponer
    de uno o más bancos de registros para atender las
    interrupciones, los procesadores poseen otros bancos de registros
    asociados a distintos modos USUARIO, SYSTEM, SUPERVISOR, ABORT, u
    otros, donde cada modo tiene distintas restricciones. De igual
    modo, el manejo de memoria es restringido por hardware (MMU) a
    zonas específicas para cada tarea, de modo que una tarea
    no afecte a otra.

    Monografias.com
    38 El caso de los controladores basados en procesadores ARM El
    caso de los procesadores ARM es sumamente importante Marca una
    primer tendencia a una estandarización de arquitecturas,
    independiente del fabricante del chip Es visible que al ser una
    arquitectura adoptada por múltiples fabricantes, llevara a
    la estandarización de muchos otros recursos: Compiladores
    Sistemas operativos de tiempo real Biblioteca de servicios:
    Stacks de comunicaciones File systems En tanto sea una iniciativa
    privada (y no de tipo código abierto) significa un riesgo
    de situación hegemónica

    Monografias.com
    39 Un procesador real para SoC:el caso ARM ARM corresponde a una
    arquitectura RISC de 32-bit, siendo la más usada en la
    actualidad, y su simplicidad la hace conveniente para
    aplicaciones de “sistemas en un chip” (System On
    Chip, o SoC) de bajo consumo de potencia. Por eso es predominante
    en sistemas móviles como PDAs, teléfonos celulares,
    reproductores de video o música, o periféricos
    inteligentes. Los ARM poseen distintas variaciones de una
    arquitectura básica similar, incluyendo los ARM7, ARM9,
    ARM11, y desde hace poco los Cortex. La arquitectura ARM no es
    propia de un fabricante de chips, sino de una empresa que
    diseña IP, puede ser usada con licencia, y por eso existen
    procesadores ARM/Cortex fabricados bajo licencia de ARM por
    empresas como Atmel, Freescale, NEC, NVIDIA, NXP, Samsung, Sharp,
    ST Microelectronics, Texas Instruments, y otros.

    Monografias.com
    ESTA PRESENTACIÓN CONTIENE MAS DIAPOSITIVAS DISPONIBLES EN
    LA VERSIÓN DE DESCARGA

    Nota al lector: es posible que esta página no contenga todos los componentes del trabajo original (pies de página, avanzadas formulas matemáticas, esquemas o tablas complejas, etc.). Recuerde que para ver el trabajo en su versión original completa, puede descargarlo desde el menú superior.

    Todos los documentos disponibles en este sitio expresan los puntos de vista de sus respectivos autores y no de Monografias.com. El objetivo de Monografias.com es poner el conocimiento a disposición de toda su comunidad. Queda bajo la responsabilidad de cada lector el eventual uso que se le de a esta información. Asimismo, es obligatoria la cita del autor del contenido y de Monografias.com como fuentes de información.

    Categorias
    Newsletter