Red de conocimiento informático - Material del sitio web - Implementación del manejo y control de interrupciones para sistemas de microprocesadores multinúcleo

Implementación del manejo y control de interrupciones para sistemas de microprocesadores multinúcleo

Los fabricantes de equipos originales que producen productos para aplicaciones integradas están sintiendo una mayor presión del mercado en comparación con hace apenas unos años. Cada vez más factores, como nuevas funciones y características de los productos, nuevos estándares industriales, oferta y demanda del mercado, la búsqueda continua de los usuarios de un consumo de energía bajo o incluso nulo y los costos de los productos, tendrán un impacto en los diseños integrados típicos, lo que conduce a El desarrollo de productos integrados se ha visto impulsado por cambios en las aplicaciones actualmente en el mercado, que van desde pura electrónica de consumo (como teléfonos móviles, reproductores MP3, cámaras digitales) hasta equipos de infraestructura (estaciones base, sistemas telefónicos, conmutadores WAN, etc.). Estos cambios también están impulsando a los diseñadores hacia ASIC/SOC y modelos de hardware no tradicionales: diseños multinúcleo.

Características, ventajas y desventajas de los sistemas multinúcleo

ASIC/SOC tiene un mayor nivel de integración en aplicaciones específicas de bajo consumo, pero la mayoría de los diseños conscientes de los costos incluyen más funciones y programables. elemento, que es inseparable de los constantes cambios en los estándares y protocolos de la industria, ya sea telefonía GSM, MP3, DivX/MPEG4, módems DSL/cable, requiere soluciones más eficientes y rentables. Los protocolos de módems de cable, LAN inalámbricas o cualquier otro estándar de producto cambian muy rápidamente, pero los clientes no quieren actualizar el hardware con frecuencia y, desde la perspectiva de los costos de producción (herramientas, configuración de la línea de ensamblaje, etc.), reutilizar una única plataforma de producto. Es importante destacar que esto significa que el sistema requiere más software y, por lo tanto, requiere más colaboración de software y hardware.

El proceso de interacción de software y hardware inevitablemente extenderá el tiempo de integración del sistema y producirá una gran cantidad de software que solo se puede usar para hardware específico. Por lo tanto, se agrega una gran cantidad de microprocesadores programables al sistema. , aunque siempre que el procesador La velocidad sea lo suficientemente rápida, el problema de la degradación del rendimiento causado por la interacción del software y el hardware se puede resolver, ya sea desde la perspectiva del costo o de la función del procesador, aumentando el. frecuencia del procesador a cambio de rendimiento es un enfoque "antieconómico".

Otra forma de mejorar el rendimiento de la CPU es aumentar la velocidad del reloj del procesador.

Un ejemplo típico es una aplicación que utiliza un DSP para procesar datos continuos. Los desarrolladores pueden utilizar fácilmente chips DSP de gama baja para manejar protocolos de transmisión de medios estándar. Este enfoque da como resultado una penalización de energía mínima y un menor costo del sistema en comparación con los sistemas que consisten en procesadores de alta gama. El conjunto de instrucciones específico del DSP y las estructuras de bus y memoria especializadas le permiten realizar algoritmos de procesamiento de números más complejos, pero estas funciones a menudo no son compatibles con lenguajes de alto nivel, por lo que muchas aplicaciones basadas en DSP deben codificarse en lenguaje ensamblador.

Debido a las diferentes instrucciones de ensamblaje y modelos de programación de los diferentes DSP, la migración de código entre DSP es muy difícil, lo que se ha convertido en un cuello de botella en el desarrollo de aplicaciones. Para resolver este cuello de botella, una solución es dividir el código de la aplicación en dos partes según la funcionalidad: código que debe ser ejecutado por el DSP y código que puede ser ejecutado por otros procesadores, mientras que el DSP solo necesita manejar el primero, lo que conduce al diseño de procesador multinúcleo (multinúcleo).

Un sistema multinúcleo típico divide el código de la aplicación en dos partes principales: código de control e interfaz de usuario y código de procesamiento continuo. Las partes de control y de interfaz de usuario se ejecutan en el microprocesador ARM, mientras que el código de procesamiento continuo se ejecuta en el DSP o en un segundo núcleo ARM (ver arriba). Este patrón tiene mucho sentido por varias razones.

1. Los desarrolladores pueden programar microprocesadores utilizando lenguajes de alto nivel como C/C++ o Java. Muchas aplicaciones basadas en DSP deben codificarse en lenguaje ensamblador, mientras que muchos otros procesadores, como ARM, no tienen estas limitaciones.

2. Ejecutar RTOS o un sistema operativo en un microprocesador puede aprovechar al máximo las ventajas del microprocesador (tiempo de respuesta a interrupciones razonable, grandes recursos de almacenamiento, memoria virtual o memoria protegida, operaciones simples de cambio de contexto, etc.) .

3. DSP tiene un buen soporte para el código de procesamiento continuo. Si el código de control de la interfaz de usuario y el código de trabajo continuo se ejecutan mediante el mismo procesador, las interrupciones frecuentes (cambio continuo) provocarán problemas. Problemas graves: el gran consumo de energía del sistema y el DSP a menudo tienen muchas funciones especiales para acelerar el movimiento de datos y las operaciones de procesamiento (DMA, memoria de doble puerto, MAC para procesamiento de filtrado, MAC para procesamiento FFT).

3.

DSP suele tener muchas funciones especiales (DMA, memoria de doble puerto, MAC para procesamiento de filtrado, MAC para procesamiento FFT, bits para FFT y operaciones de codificación, tablas de búsqueda indexadas). , estructuras de bus separadas para acceso a dispositivos internos/externos, etc.).

4. Dos núcleos diferentes pueden funcionar independientemente uno del otro. Esto significa que el microprocesador puede entrar en modo de suspensión cuando no necesita realizar ninguna operación (los métodos para reactivar el microprocesador incluyen: temporizador, pulsación de tecla para actualizar la pantalla LCD, comprobación de la batería, etc.).

5. Dos procesadores pueden utilizar diferentes modelos de bus.

6. Los dos chips del procesador pueden compartir memoria externa, interrupciones, ranuras, puertos serie, FIFO u otros métodos de conexión para la comunicación, y todos los mecanismos de comunicación no solo admiten el acoplamiento flexible, sino que también admiten la sincronización estrechamente acoplada.

Sin embargo, la principal desventaja de las soluciones multinúcleo es la mayor complejidad del diseño y depuración de aplicaciones de software interactivas.

Diseñar un sistema multinúcleo

Al comienzo del diseño del sistema, el diseñador debe tener un plan general sobre cómo satisfacer todas las necesidades del sistema. Si es posible, el diseñador. debe reservar algunos recursos del sistema para futuras ampliaciones de funciones.

1. Diseño general del hardware

El diseño general del hardware se refiere a la selección del equipo básico y la configuración del sistema, incluido el tipo de procesador principal, la configuración de comunicación principal y cómo. para usarlo y la interfaz de usuario Seleccione Esperar.

2. Diseño general del software

En la mayoría de las aplicaciones integradas, el diseño del software depende en gran medida de la configuración del hardware y algunos módulos de software no están estrechamente relacionados con el software del sistema. modularizarlo Además, hay muchos módulos que están conectados directamente al hardware subyacente, lo que dificulta la modularización.

Dado que los procesadores son lo suficientemente rápidos y la memoria es relativamente barata, la práctica común actual es separar tantos módulos de software relacionados con el hardware como sea posible y procesarlos como HAL (Capa de Adquisición de Hardware). Usar un HAL es seguro y factible, y es importante utilizar RTOS u otro software estándar en su diseño.

3. Herramientas y recursos de desarrollo

El contenido específico de esta área incluye acceso JTAG, activación cruzada, analizador lógico o seguimiento en tiempo real y pines de salida que responden claramente a lo interno. estado del chip, etc., utilice depuradores y emuladores que admitan la depuración de múltiples núcleos, como RealView Debugger y RealView ICE. El proceso de depuración del sistema utiliza RealView Debugger, y los desarrolladores pueden depurar dos procesadores al mismo tiempo. Además, RealView Debugger presenta capacidades de sincronización que permiten iniciar o detener ambos núcleos del procesador simultáneamente.

Modelado de procesador

La elección del procesador se ve afectada por muchos factores. Para sistemas multinúcleo, especialmente sistemas ARM+DSP (aunque DSP puede reemplazarse por un microprocesador o microcontrolador que admita o no funciones DSP), la selección de procesadores debe considerar los siguientes puntos:

1. El tiempo de respuesta necesario para manejar eventos externos;

2.

2. La cantidad de código de aplicación dedicado a algoritmos en tiempo real. Por ejemplo, en la comparación de los módulos de función de procesamiento de audio de los reproductores MP3 y los teléfonos inalámbricos, el consumo de energía del primero es mucho menor que el del segundo. La razón es que el reproductor MP3 solo necesita decodificar el flujo de audio y generarlo. la señal correcta correspondiente y enviarla a la unidad analógica. La unidad de salida es suficiente, y el teléfono inalámbrico tiene que lidiar con una tasa de bits mucho más baja que un reproductor MP3 en comparación con la tasa de bits externa, lo que obliga al procesador a hacer más trabajo para lograr la después de la compresión/descompresión, decodificación/descodificación y aplique filtrado/síntesis de sonido para finalmente lograr la calidad de sonido deseada.

Además, es probable que el procesamiento de audio en teléfonos inalámbricos requiera conversión de protocolo; por supuesto, el soporte de hardware puede reemplazar parte del trabajo del procesador y los reproductores de MP3 que no son sistemas en tiempo real pueden usar una captación previa simple. caché para acortar el tiempo de respuesta, mientras que los teléfonos inalámbricos deben procesar la señal en un período de tiempo relativamente corto (o cuando la degradación en la calidad del sonido es menos notable).

3. En comparación con el procesamiento de software, el uso de hardware puede lograr mejores resultados en la cantidad de módulos de aplicación cuando los estándares cambian rápidamente, modificar el software es un enfoque más seguro para evitar cambios. pero cuando los estándares son relativamente estables, utilizar el hardware más apropiado puede minimizar los costos y permitir que el sistema alcance el mayor rendimiento con el mismo consumo de energía o precio.

4. Para aplicaciones que requieren una gran cantidad de algoritmos, el diseño único de DSP puede lograr las siguientes tres funciones especiales, a saber, la capacidad de procesar eficientemente algoritmos iterativos (especialmente operaciones de acumulación múltiple (MAC)). ; transmisión rápida La capacidad de recibir datos (recibir entradas periféricas y devolverlas a la salida periférica al final del ciclo de procesamiento) y la capacidad de interactuar estrechamente con los periféricos.

5. Sensibilidad del mercado al precio y al consumo eléctrico.

Para poder cubrir estas necesidades, los procesadores ARM son cada vez más potentes y utilizados. Por ejemplo, los núcleos ARM de nueva generación admiten instrucciones de extensión DSP (como ARM9E). Algunos chips ARM se pueden usar como microcontroladores con una variedad de características de microcontrolador, como periféricos en chip estrechamente acoplados, acceso y control de bits mejorados, gran memoria en chip, memoria flash en chip, varios periféricos en chip, control de estado de espera. e interrupciones vectoriales, etc. Los procesadores ARM también están empezando a admitir frecuencias de reloj verdaderamente variables.

Las placas de desarrollo para plataformas de verificación de prototipos ayudan a los desarrolladores a verificar sistemas multinúcleo antes de completar un diseño de chip específico. Por lo general, la mayoría de estas placas de desarrollo utilizan una estructura de bus específica para la conexión y utilizan FPGA para simular algunos periféricos, memoria y algunos modelos de bus.

Integrator, el prototipo de plataforma de verificación proporcionada por ACM, admite sistemas multinúcleo.

Al comienzo del diseño del sistema, el diseñador debe desarrollar un plan maestro para satisfacer todas las necesidades del sistema.

Además, cuando la plataforma de hardware no está lista, muchos diseños solo pueden desarrollar modelos de hardware y software y algoritmos de aplicación mediante simulación. Para sistemas multinúcleo, no hay muchas formas de simularlos, y la herramienta SOC Designer de ARM puede vincular la simulación de ARMulator a una simulación DSP específica. Productos similares a SOC Designer, como SOC Designer, también admiten la escritura en modelo de hardware en lenguaje C. co-simulación.

Al mismo tiempo, algunas simulaciones pueden incluso agregar directamente elementos de comportamiento puro, y muchas simulaciones son muy rápidas, casi tan rápidas como los chips reales (porque la frecuencia del host de la PC es muy alta), a través de la simulación, desarrolladores Se puede obtener una gran cantidad de información sobre el estado interno del hardware del sistema, lo que permite mejores diseños.