loading...

lunes, 20 de junio de 2011

TI lanza 'Da Vinci' plataforma para la energía sostenible

Texas Instruments ha integrado un núcleo DSP C28x con unidad de coma flotante junto a un ARM Cortex-M3 en un microcontrolador de recursos para el área temática del motor y control de la energía sostenible.

Mientras que el DSP C28x tiene el caballo de fuerza para implementar lazos de control en tiempo real, el procesador Cortex-M3 se encarga de las tareas de comunicación.

El resultado es la serie Concierto F28M35x microcontrolador, siguiendo la estela de la plataforma DaVinci multimedia. En primer lugar es de TI DSP / microcontrolador plataforma para el motor y el control de la energía solar.

La ventaja de dos núcleos en un chip, es menos interrupciones para el controlador en tiempo real. También se amplía la gama de interfaces de comunicación compatibles con el dispositivo que van desde un par de interfaces CAN a través de USB a toda regla internet basadas en protocolos de comunicaciones.

El acoplamiento entre los dos núcleos se realiza a través de una memoria RAM, compartida ofrece mensajería 2kbyte en ambas direcciones. La latencia resultante se expresa en términos de nanosegundos.

Simple, pero eficaz, es el lema, y ​​los dos núcleos se registró a partir de la primera fuente, ya sea en una proporción de 1:1 o 2:1, con la C28x corriendo a 150MHz y 75MHz el Cortex-M3. "Esto es tan simple como parece", dijo Michael Seidl, director de desarrollo empresarial para Europa de C2000 de TI empresariales MCU.

Mientras que la unidad DSP C28x de Viterbi, tiene la potencia para el control de motor de velocidad variable, la corteza se corre el RTOS, lleva a cabo la secuenciación y el seguimiento de rutinas y se ejecuta la interfaz de comunicaciones. El subsistema de comunicaciones está basado en Cortex-M3 y hay periféricos, tales como Ethernet, USB On-The-Go, de doble CAN, y múltiples puertos de comunicación serie. La interfaz de control incluye hasta 18 salidas PWM y 20 ADC de 12 bits dividido entre los dos núcleos.

Según Seidl, el ecosistema diseño compatible con múltiples seguridad y características de seguridad y es compatible con el código a través de la plataforma C2000 para la reutilización de código en las aplicaciones de destino, tales como control inteligente de motores, las energías renovables, red inteligente, el poder digital y vehículos eléctricos. También cuenta con:

Seguridad y características de seguridad, incluido un máximo de 1 Mbyte de memoria flash y RAM 132kbyte con corrección de errores, la paridad en la CAN y la interrupción de los registros, la redundancia de funciones, y la protección de bloqueo.

Libre de llave en mano de aplicaciones y bibliotecas de conectividad de software, incluyendo Ethernet y USB.

Digital de potencia, control motor y las bibliotecas de las energías renovables estará disponible en la Q3.

image

La Concierto F28M35x Kit incluye un experimentador controlCARD F28M35x y estación de acoplamiento para la evaluación y el desarrollo.

https://estore.ti.com/TMDXDOCKH52C1-H52C1-Concerto-Experimenter-Kit-P2498C43.aspx?DCMP=concerto&HQS=Other+PR+concerto-es-lp

¿Que me ofrece el IPv6?. 6 Razones a considerar

Con IPv6, todo, desde electrodomésticos hasta automóviles se pueden interconectar. Sin embargo, un mayor número de direcciones de TI, no son la única ventaja de IPv6, sobre IPv4. En honor del Día Mundial del IPv6, aquí hay seis buenas razones para asegurarse de que su hardware, software y servicios de soporte para IPv6.

  1. Rutas más eficientes
    IPv6 reduce el tamaño de las tablas de encaminamiento y enrutamiento se hace más eficiente y jerarquizado. IPv6 permite a los ISP,  agregar los prefijos de las redes de sus clientes en un único prefijo, y anunciar este prefijo a uno de Internet IPv6. Además, en las redes IPv6, la fragmentación es manejada por el dispositivo de origen, en lugar del router, usando un protocolo para el descubrimiento de la unidad de la ruta de transmisión máxima (MTU).
  2. Paquetes de procesamiento más eficientes
    Simplificado la  cabecera del paquete de IPv6, se hace  el procesamiento de paquetes más eficiente. En comparación con el IPv4, IPv6 no contiene ninguna suma de comprobación de nivel IP, por lo que la suma de comprobación no es necesaria volver a calcular en cada salto router. Deshacerse de la suma de control IP, de nivel ha sido posible porque la mayoría de la capa de enlace tecnologías, ya contienen capacidades de comprobación y de control de errores. Además, la mayoría de las capas de transporte, que manejan de extremo a extremo, tienen una suma de control que permite la detección de errores.
  3. Los Datos dirige los flujos
    IPv6, admite la multidifusión en lugar de emisión. Multicast permite gran ancho de banda en los flujos de paquetes (como flujos multimedia), para ser enviados a múltiples destinos simultáneamente, ahorrando ancho de banda de red. Anfitriones desinteresados, ya no tiene que procesar los paquetes de difusión. Además, el encabezado IPv6, tiene un nuevo campo, denominado etiqueta de flujo, que puede identificar los paquetes que pertenecen al mismo flujo.
  4. Simplicidad en la configuración de la red
    La Dirección de configuración automática (la asignación de direcciones), está integrada en IPv6. Un router enviará el prefijo de la conexión local en los anuncios de su router. Un host puede generar su propia dirección IP, mediante la adición de su capa de enlace (MAC), convertido en identificador de extensión universal (EUI) de 64 bits de formato, a los 64 bits del prefijo de enlace local.
  5. Soporte para nuevos servicios
    Mediante la eliminación de Network Address Translation (NAT), verdadero final a extremo en la capa IP es restaurado, permitiendo a los servicios nuevos y valiosos. Los Peer-to-peer son más fáciles de crear y mantener, y servicios tales como VoIP y Calidad de Servicio (QoS) se vuelven más sólidas.
  6. Seguridad
    IPSec, que proporciona la integridad de la confidencialidad, la autenticación y los datos, se cuece en el IPv6. Debido a su potencial para llevar a malware, paquetes IPv4 ICMP, son bloqueadas por los firewalls corporativos, pero ICMPv6, la aplicación del Protocolo de mensajes de Internet para IPv6, puede ser permitido porque IPSec, se pueden aplicar a los paquetes ICMPv6.

domingo, 19 de junio de 2011

C / C + + compiladores de Portland Group han sido actualizados para que los servidores de destino Cuda desarrolladores estándar basado en microprocesadores de Intel Corp. y Advanced Micro Devices Inc.

C / C + + compiladores de Portland Group han sido actualizados para que los servidores de destino Cuda, desarrolladores estándar basado en microprocesadores de Intel Corp. y Advanced Micro Devices Inc.
El Grupo de Portland (Portland, Oregon), es una subsidiaria de entera propiedad de la compañía de chips de Europa NV STMicroelectronics. CUDA, es una arquitectura de cómputo paralelo de NVIDIA Corp. que aprovecha las unidades de Nvidia procesamiento gráfico (GPU), para hacer la computación con fines generales. El CUDA C / C + + para los compiladores de x86 han sido desarrollados por Portland en colaboración con Nvidia.
Con el CUDA C / C + + compiladores, pueden utilizar el modelo de programación paralelo CUDA, para optimizar el rendimiento de su código, mientras que apunta los servidores y los clusters, con o sin GPUs de Nvidia.


Cuando se ejecuta en sistemas basados ​​en x86, Portland CUDA C / C + +, realizar la ejecución en paralelo mediante el uso de los múltiples núcleos del procesador, y mediante el uso de Streaming SIMD (Single Data Instrucción Múltiple) Extensions (SSE), incluyendo las nuevas instrucciones AVX disponibles en la última generación de x86 compatible con CPUs de Intel y AMD.
Portland dijo que extender el Cuda 86 C / C + +, compiladores en tres fases. La fase 1, ya disponible, demuestra las capacidades de la tecnología y permite a los desarrolladores comenzar a trabajar con los compiladores.Fase 2, prevista para el cuarto trimestre de 2011, se incluyen la optimización del rendimiento previsto para extraer el máximo rendimiento de los programas de Cuda ejecutan en la plataforma x86 de destino.Fase 3, prevista para mediados de 2012, incluirá soporte para la tecnología binaria Portland Unificado - la capacidad de ejecutar un ejecutable en dos CPUs y GPUs.
"Es otro elemento importante en nuestra estrategia continua de proporcionar los programadores de HPC, con una amplia gama de opciones para la optimización de aplicaciones de cálculo intensivo y aprovechar las últimas innovaciones tecnológicas de AMD, Intel y Nvidia," dijo Douglas Miles, director de El Grupo de Portland, en un comunicado.
"CUDA, es el mundo pre-eminente modelo de programación paralela, apoyar una serie de estándares abiertos, las arquitecturas y lenguajes de programación", dijo Sanford Russell, director de marketing de Nvidia Cuda, en la misma sentencia. "Ahora, por primera vez, los desarrolladores pueden ejecutar sus aplicaciones CUDA en cualquier clusters x86".

Diseño de sistemas embebidos. Consideraciones previas. Las tres (03) restricciones que se deben cumplir.

Los Sistemas de computación empotrados debe cumplir con los costos ajustados, el consumo de energía, y las limitaciones de rendimiento. Si uno de los requisitos de diseño dominado, la vida sería mucho más fácil para los diseñadores de sistemas embebidos, que podrían utilizar arquitecturas  estándares con los modelos de programación fácil.

Pero debido a que las tres restricciones se deben cumplir al mismo tiempo, los diseñadores de sistemas embebidos, tienen que moldear arquitecturas de hardware y software para adaptarlo a las necesidades de las aplicaciones. El Hardware especializado ayuda a cumplir con los requisitos de rendimiento, para un menor consumo energético y menor costo de lo que sería posible, en un sistema de propósito general.

Como hemos visto, los sistemas informáticos incorporados a menudo son multiprocesadores heterogéneos con múltiples CPUs, y los elementos de cableado de procesamiento (PE). En co-diseño, el cableado PEs, son generalmente conocidas como aceleradores. En contraste, un co-procesador es controlado por la unidad de ejecución de una CPU.

Hardware / software de co-diseño, es un conjunto de técnicas que los diseñadores utilizan para ayudarles, a crear eficientes sistemas de aplicaciones específicas.

Si usted no sabe nada acerca de las características de la aplicación, entonces es difícil saber cómo ajustar el diseño del sistema. Pero si usted sabe de la aplicación, como el diseñador, no sólo se puede agregar características a la de hardware y software, que hacen correr más rápido usando menos energía.

Pero también puede eliminar los elementos de hardware y software, que no ayudan con la aplicación en cuestión. La Eliminación de componentes en exceso suele ser tan importantes, como la adición de nuevas características.

Como su nombre indica, hardware / software de co-diseño, de los medios en forma conjunta el diseño de arquitecturas de hardware y software para cumplir con el rendimiento, costos y objetivos de la energía. El Co-diseño, es una metodología radicalmente diferente a las abstracciones de capas utilizadas en la computación de propósito general.

Debido a que el co-diseño, intenta optimizar distintas partes del sistema, al mismo tiempo, se hace un uso extensivo de herramientas de análisis de diseño y optimización.

Cada vez más, hardware / software de co-diseño, está siendo utilizados para el diseño de sistemas empotrados en si. Por ejemplo, los servidores, se pueden mejorar con implementaciones especializadas de algunas de las funciones de su pila de software. El Co-diseño se puede aplicar a alojamiento web con la misma facilidad, ya que puede ser aplicada a multimedia.

En esta serie, en primer lugar se llevará una breve mirada a algunas plataformas de hardware, que pueden ser utilizados como objetivos de hardware / software de co-diseño, seguido de un examen de análisis de rendimiento, difícil de hardware / software de co-síntesis y, por último, cosimulación del  hardware / software.

Plataformas de diseño


El Hardware / software de co-diseño, puede ser utilizado para diseñar sistemas desde cero o crear sistemas, para ser implementados en una plataforma existente. La arquitectura de CPU + acelerador, es un común al co-diseño de la plataforma. Una variedad de diferentes CPUs, se pueden utilizar para albergar el acelerador.

El acelerador puede implementar muchas funciones diferentes, y además, utilizando cualquier de las tecnologías de la lógica de varios. Estas decisiones influyen en el tiempo de diseño, el consumo de energía, y otras características importantes del sistema.

La plataforma de co-diseño, puede ser implementado en cualquiera de las diversas tecnologías de diseño muy diferente.

1) Un sistema basado en PC, con el acelerador situado en un tablero conectado en el bus del PC. El Plug-in, puede utilizar un chip o un Field Programmable Gate Array (FPGA), para implementar el acelerador. Este tipo de sistema es relativamente voluminoso, y es la más utilizada para el desarrollo de aplicaciones o muy bajo volumen.

2) Una placa de circuito impreso personalizado, utilizando una FPGA o un circuito integrado de encargo para el acelerador. El consejo personalizado requiere más trabajo de diseño de un sistema basado en PC, pero los resultados en un menor costo, bajo consumo de energía del sistema.

3) Una plataforma FPGA que incluye una CPU y una tela de FPGA en un solo chip. Estos chips son más caros que los chips, sino proporcionar una implementación de un solo chip con uno o más CPUs, y una gran cantidad de lógica personalizada.

4) Un circuito integrado de encargo, por lo que el acelerador implementa una función en un área menor y con menor consumo de energía. Muchos sistemas integrados en chips (SoC), hacer uso de aceleradores para determinadas funciones.

La combinación de una CPU más aceleradores de uno o más es la forma más simple de plataformas heterogéneas, hardware / software de partición de los objetivos de dichas plataformas. La CPU se conoce como el anfitrión. Las conversaciones de la CPU, en el acelerador a través de los datos y registros de control en ella. Estos registros permiten a la CPU, para controlar el funcionamiento del acelerador y darle órdenes.

La CPU y el acelerador, también puede comunicarse a través de memoria compartida. Si el acelerador necesita para operar en un gran volumen de datos, por lo general es más eficiente dejar los datos en la memoria,  que el acelerador de lectura y escritura de memoria directamente, en lugar de tener los datos de transporte de la CPU, de la memoria a los registros de aceleración y la espalda.La CPU, y el acelerador de sincronizar sus acciones.

Las Plataformas más generales también son posibles. Podemos utilizar varias CPU, en contraste con el procesador conectado a los aceleradores. Podemos generalizar el sistema de interconexión de un autobús a las estructuras más generales.

Además, podemos crear un sistema de memoria más complejo que ofrece diferentes tipos de acceso a diferentes partes del sistema. El Co-diseño de estos tipos de sistemas es más difícil, sobre todo cuando no hacemos suposiciones sobre la estructura de la plataforma.

Los Tres ejemplos siguientes, se describen varios de los diseños diferentes de las  co-plataformas que utilizan FPGAs, de diferentes maneras.

Ejemplo 7-1.

El Xiilnx Virtex-4 FX Plataforma FPGA Familia


El Xilinx Virtex-4 de la familia [Xi105], es una plataforma FPGA que viene en diferentes configuraciones. La familia de alta gama FX incluye uno o dos procesadores PowerPC, múltiples MACS Ethernet, memoria RAM de bloque, y grandes conjuntos de lógica reconfigurable.

El PowerPC, es de alto rendimiento con 32-bit RISC Machine, dispone de una gama de cinco etapas, 32 registros de propósito general, y la instrucción por separado y los cachés de datos. La tela de FPGA, se basa en bloques de lógica configurables (CLB) que utilizan las tablas de búsqueda y una variedad de otra lógica.

El más grande Virtex-4 proporciona hasta 200.000 células de la lógica. El CLB, se pueden utilizar para implementar sumadores de alta velocidad. Un conjunto separado de los bloques incluye 18 x 18 multiplicadores, sumadores uno, y un acumulador de 48 bits, para las operaciones de DSP. El chip incluye una serie de bloques de memoria RAM que se puede configurar para una variedad de configuraciones de profundidad y anchura.

El PowerPC, y el tejido FPGA puede ser perfectamente integrado. La tela de FPGA, se pueden utilizar para construir basado en bus. Una unidad de procesador auxiliar permite costumbre instrucciones PowerPC a implementar en el tejido FPGA.

Además, los núcleos del procesador también puede ser aplicado en el tejido FPGA, para construir multiprocesadores heterogéneos. Xilinx proporciona el núcleo del procesador MicroBlaze y otros núcleos se puede utilizar también.

El MicroBlaze es un procesador soft core diseñados para Xilinx FPGA de Xilinx .Como un procesador soft-core, MicroBlaze se lleva a cabo en su totalidad en la memoria de uso general y el tejido de la lógica FPGA de Xilinx.

Ejemplo 7-2.

El integrador de ARM módulo lógico

image
El integrador de ARM, es una serie de placas de evaluación para el procesador ARM. El módulo lógico Integrador [ARM00], es una tarjeta aceleradora de FPGA, que se conecta a la placa base Integrador de ARM.

El módulo lógico proporciona una FPGA Xilinx, para la lógica reconfigurable. Las interfaces FPGA con el bus ARM AMBA. La placa del módulo de la lógica no contiene la SRAM, la propia FPGA puede usar el bus AMBA para conectarse a la SRAM y los dispositivos de E / S que figuran en otros foros.

 

Ejemplo 7-3.

La Annapolis Micro Systems Wildstar II Pro

image
El Wildstar II Pro (http://Www.annapmicro.com), es una tarjeta de bus PCI que proporciona la lógica FPGA, en el bus de un PC o un dispositivo PCI. La tarjeta recibe uno o dos FPGAs Virtex II, Pro que pueden conectarse directamente al bus PCI.

También tiene capacidad para 96 ​​MB de SRAM y 256 MB de SDRAM. La tarjeta está organizado como se muestra en la figura. Un entorno de desarrollo simplifica el diseño del sistema de la junta.

Análisis de rendimiento


Durante la co-síntesis, tenemos que evaluar como el hardware están diseñando. El Alto nivel de síntesis ha sido desarrollado para aumentar el nivel de abstracción, para los diseñadores de hardware, pero también es útil como una herramienta de estimación de co-síntesis.

En esta sección se examinan algunos algoritmos de síntesis de alto nivel, para proporcionar una mejor comprensión de los costos de hardware y algoritmos rápidos de la zona y la estimación del rendimiento.También tenemos en cuenta las técnicas desarrolladas específicamente para estimar los costos, de los aceleradores en multiprocesadores heterogéneos.

Alto nivel de la síntesis.

El Alto nivel de síntesis, se inicia a partir de una descripción del comportamiento de hardware, y crea un diseño de trasferencia entre registros. El Alto nivel de la síntesis de los horarios y asignar las operaciones en el comportamiento, así como los mapas de las operaciones en las bibliotecas de componentes.

Figura 1.7 Un ejemplo de especificación de la conducta y la aplicación de trasferencia entre registros.

Figura 7-1 arriba muestra un ejemplo sencillo de una especificación de alto nivel y una posible implementación de trasferencia entre registros. Los bordes de la dependencia de los datos transportan valores de las variables de una operación o de las entradas principales a otro.

La transferencia de registros, la ejecución de los pasos que deben tomarse a su vez, la especificación de alto nivel, si se administra en forma de texto o un gráfico de flujo de datos, en una aplicación de registro de la transferencia:

Las operaciones se han programado para ocurrir en un ciclo de reloj en particular. Las Variables han sido asignadas a los registros. Las operaciones se han asignado a las unidades de función. Algunas conexiones se han multiplexado para salvar a los cables.

En este caso, se ha supuesto que se puede ejecutar una sola operación por ciclo de reloj. Un ciclo de reloj a menudo se llama una medida de control o de paso de tiempo en la síntesis de alto nivel.

Utilizamos un modelo más grueso de tiempo de alto nivel de síntesis, que se utiliza en la síntesis de la lógica. Debido a que estamos más lejos de la ejecución, las demoras no se puede predecir con la mayor precisión, modelos de tiempos tan detallados no son de mucha utilidad, en el alto nivel de síntesis. La Abstracción de tiempo para el período de reloj o una fracción, de lo que hace la combinatoria de programación tratable.

La asignación de variables a los registros deben hacerse con cuidado. Dos variables pueden compartir un registro si sus valores no son necesarios en el momento, para el mismo ejemplo, si un valor de entrada se utiliza únicamente al principio de una secuencia de cálculos y se define otra variable sólo al final de la secuencia.

Pero si las dos variables se necesitan al mismo tiempo, que deben asignarse a registros distintos. Compartir o registros o unidades funcionales requiere la adición de multiplexores en el diseño.

Por ejemplo, si dos adiciones en el gráfico de flujo de datos se asignan a la unidad de víbora, en la  misma ejecución, se utiliza para alimentar a los multiplexores con operandos propios de la víbora.

Los multiplexores son controlados por un control FSM, que suministra las señales de seleccionar a los muxes. (En la mayoría de los casos, no necesitamos de-multiplexores en las salidas de las unidades compartidas, ya que el hardware, es generalmente diseñado para ignorar los valores, que no se utilizan en cualquier ciclo de reloj.) Debemos añadir multiplexores de tres tipos de costos, de la aplicación:

1. Delay, que puede prolongarse el ciclo de reloj del sistema.
2. Logic, que consume la zona en el chip.
3 .Cableado, lo que se requiere para alcanzar el multiplexor, también se requiere un área.

El Compartir hardware no es siempre una victoria. Por ejemplo, en algunas tecnologías, las víboras son lo suficientemente pequeñas que se gana tanto en el área y la demora por no compartir una víbora. Parte de la información necesaria para tomar buenas decisiones de aplicación debe provenir de una biblioteca de la tecnología, lo que da a la zona y los costos de demora de algunos componentes.

Otros datos, como las estimaciones de costos de cableado, se puede hacer mediante algoritmos. La capacidad de un programa para medir con precisión los costos de implementación de un gran número de implementaciones candidato, es uno de los puntos fuertes de los algoritmos de síntesis de alto nivel.

Durante la búsqueda de un buen horario, el que-pronto-como-posible (ASAP) ,y como a fines de los posible (ALAP), cuáles son los límites de la longitud útil programa.

Una heurística muy simple que puede manejar las limitaciones es el primero que llega-firstserved (FCFS), de programación. FCFS camina a través de la gráfica de flujo de datos desde sus fuentes hasta sus sumideros.

Tan pronto como encuentra un nuevo nodo, se trata de programar la operación en el horario actual del reloj, y si todos los recursos están ocupados, se inicia otro paso de control de horarios y la operación allí.

Los Horarios FCFS, generalmente manejan los nodos de la fuente al sumidero, pero los nodos que aparecen en la misma profundidad en el gráfico, se pueden programar en un orden arbitrario. La calidad de la programación, según lo medido por su longitud, puede variar enormemente dependiendo exactamente de qué orden de los nodos a una determinada profundidad se consideran.

FCFS, ya que elige a los nodos de profundidad igual forma arbitraria, puede retrasar una operación crítica. Una mejora evidente es un algoritmo de planificación de la ruta crítica, que las operaciones de los horarios en la ruta crítica en primer lugar.

La programación de la lista, es una heurística eficaz que trata de mejorar en la programación de la ruta crítica, mediante una consideración más equilibrada de fuera de la crítica de la ruta los nodos.

En lugar de tratar a todos los nodos que están fuera de la ruta crítica como igualmente importantes, la programación de la lista estima que tan cerca de un nodo es ser crítico, mediante la medición de D, el número de los descendientes del nodo, en el gráfico de flujo de datos. Un nodo con los descendientes de unos pocos es menos probable que se convierta importante, que otro nodo a la misma profundidad que tiene más descendientes.

La programación de la lista también atraviesa el gráfico de flujo de datos desde las fuentes a los sumideros, pero cuando se tiene varios nodos a la misma profundidad que compiten por la atención, que siempre elige el nodo con la mayoría de los descendientes.

En nuestro modelo de tiempo simple, donde todos los nodos de la misma cantidad de tiempo, un nodo crítico siempre tendrá más descendientes que cualquier nodo crítico. La heurística toma su nombre de la lista de nodos en la actualidad a la espera de ser programadas.

La fuerza dirigida por la programación de [Pau89], es un algoritmo de programación bien conocido que trata de minimizar el costo del hardware, para cumplir con una meta de desempeño particular por equilibrar el uso de unidades funcionales a través de los ciclos. El algoritmo selecciona una operación de programación con las fuerzas (ver la Figura 7-2 a continuación ).

Se asigna entonces una medida de control para la operación. Una vez que la operación ha sido programada, no se mueve, por lo que bucle exterior del algoritmo, se ejecuta una vez para cada operación en el gráfico de flujo de datos.

Figura 7.2.

Cómo las fuerzas de la programación de guía del operador


Para calcular las fuerzas ejercidas sobre los operadores, primero tenemos que encontrar la distribución de las diversas operaciones en el gráfico de flujo de datos, como se representa en un gráfico de distribución.

La ASAP y horarios ALAP, nos dice que la serie de medidas de control en el que puede ser cada operación programada. Suponemos que cada operación tiene una probabilidad uniforme de ser asignada a cualquier medida de control posible.

Un gráfico muestra la distribución del valor esperado, del número de operadores de un determinado tipo de ser asignado a cada paso de control, como se muestra en la Figura 7-3 a continuación.

El gráfico de distribución nos da una visión probabilística del número de unidades de la función de un determinado tipo (víbora en este caso), que serán necesarios en cada etapa de control. En este ejemplo, hay tres incorporaciones, pero no todo puede ocurrir en el mismo ciclo.

Figura 7.3.Ejemplo gráfico de distribución de la fuerza dirigida por la programación


Si calculamos la ASAP y horarios de ALAP, nos encontramos con que + 1 debe ocurrir en el paso de control en primer lugar, + 3 en el pasado, y + 2 Además puede ocurrir en cualquiera de las medidas de control de las dos primeras.

La distribución gráfica de la Dirección General + (t) muestra el número esperado de las adiciones en función de la etapa de control, el valor esperado en cada etapa de control se calcula suponiendo que cada operación es igualmente probable en cada paso de control legal.

Construimos una distribución para cada tipo de unidad de la función que le asignen. El número total de unidades funcionales requeridas para la ruta de datos es la cantidad máxima necesaria para cualquier medida de control. Así que, por lo que minimiza los requisitos de hardware requiere la elección de un programa que equilibra la necesidad de una unidad determinada función a lo largo toda la programación.

Los gráficos de distribución se actualizan cada vez que se programa, cuando una operación de una operación se le asigna a un paso de control, la probabilidad de que la medida de control se convierte en 1 y 0 en cualquier etapa de control.

A medida que la forma de la gráfica de distribución de una función cambia la unidad, la fuerza dirigida por la programación trata de seleccionar las medidas de control para el resto de las operaciones, lo que mantiene la distribución equilibrada del operador.

La fuerza dirigida por la programación calcula fuerzas, como las ejercidas por resortes para ayudar a equilibrar la utilización de los operadores. Las fuerzas de la primavera son una función lineal de desplazamiento, dada por la Ley de Hooke:

F (x) = kx, (EQ 01/07) 

donde x es el desplazamiento y la k es la constante del resorte, lo que representa la rigidez del resorte.

Cuando las fuerzas de la informática, en el operador que estamos tratando de programar, lo primero al elegir un horario candidato para el operador, a continuación, calcular las fuerzas de evaluar los efectos de que la elección de la programación de la asignación.

Hay dos tipos de fuerzas aplicadas por los operadores y: las fuerzas de uno mismo y predecesor / sucesor de fuerzas. Las fuerzas de auto están diseñados para igualar la utilización de las unidades de función a través de todas las medidas de control.

Ya que estamos seleccionando un calendario para una operación a la vez, tenemos que tener en cuenta la forma en que la fijación de la operación en el tiempo afectará a otras operaciones, ya sea tirando de las operaciones forward antes o haciendo retroceder los siguientes.

Cuando se elige un candidato a la vez que el operador está previsto, se aplican restricciones a los rangos factibles, de sus inmediatos predecesores y sucesores. (De hecho, los efectos de una opción de programación pueden recorrer toda la gráfica de flujo de datos entera, pero esta aproximación ignora los efectos a distancia.)

El predecesor / sucesor de fuerzas, P o (t) y X(T), son las impuestas a las operaciones predecesor / sucesor. La elección de la programación se evalúa sobre la base de las fuerzas totales en el sistema que ejerce esta opción de programación: las fuerzas de auto, las fuerzas antecesor y el sucesor de las fuerzas de todos se suman.

Es decir, los operadores predecesor y sucesor no directamente ejercen fuerzas sobre el operador de estar programado, pero las fuerzas ejercidas sobre ellos por que la elección de la programación de ayudar a determinar la calidad de la asignación.

En cada paso, se elige la operación con la menor fuerza total de horario y lugar que en la etapa de control en el que se siente la menor fuerza total.

El Camino de la planificación basada en [Cam91], es otro algoritmo de programación conocido por alto nivel de síntesis. A diferencia de los métodos anteriores, la programación basada en rutas está diseñada para minimizar el número de estados de control necesarios en el controlador de la aplicación, las limitaciones en los recursos dada la ruta de datos.

Los horarios de cada algoritmo de ruta de forma independiente, utilizando un algoritmo que garantiza el número mínimo de estados de control en cada ruta. El algoritmo combina de manera óptima los horarios de ruta en un horario del sistema.

El horario para cada ruta se encuentra con camarilla que comprenda al menos, este paso se le conoce por el nombre como rápido-como-posible (AFAP) de programación.

Estimación del acelerador


Estimar los costos de hardware del acelerador de forma heterogénea multiprocesador, requiere una precisión de equilibrio y la eficiencia. Las estimaciones deben ser lo suficientemente buenas para evitar desorientar el proceso de síntesis global.

Sin embargo, las estimaciones se debe generar la suficiente rapidez que los compañeros de síntesis se puede explorar un gran número de diseños candidato. Métodos de estimación para la co-síntesis general, evitar estimaciones muy detallada de las características físicas, como podrían ser generados por la colocación y el enrutamiento. En su lugar, confían en la programación y asignación de medir el tiempo de ejecución y el tamaño del hardware.

Hermann et al.[Her94] utiliza métodos numéricos para estimar los costos del acelerador en COSYMA. Señalaron que como capas adicionales de un nido de bucle, se pelan para su aplicación en el acelerador, el costo de la modificación del acelerador no es igual a la suma del costo de las piezas nuevas y adicionales.

Por ejemplo, si una función se describe en tres bloques, a continuación, ocho términos que sean necesarias para describir el costo del acelerador que implemente los tres bloques.Utilizaron técnicas numéricas para estimar los costos del acelerador como elementos nuevos fueron agregados al acelerador.

Henkel y Ernst [Hen95; Hen01] desarrollaron un algoritmo para calcular de forma rápida y con precisión el funcionamiento del acelerador, y el costo dado un CDFG. Que utilizan la programación basada en rutas para calcular la longitud de la programación y los recursos necesarios para ser asignados.

Para reducir el tiempo de ejecución de las AFAP, y la superposición de medidas de planificación basada en rutas, que se descomponen los CDFG, y el horario de cada subgrafo de forma independiente, esta técnica es conocida como la ruta basada en la estimación. Ellos utilizar tres reglas para guiar la selección de los puntos de corte.

En primer lugar

Corte en los nodos con un número de iteraciones menor, ya que cualquier penalidad incurrida por el corte de la gráfica se multiplicará por el número de tritones.

En segundo lugar

Corte en los nodos donde se encuentran senderos al unirse, por lo general generados por el final de un ámbito en el lenguaje.

En tercer lugar

Tratar de cortar el gráfico en trozos más o menos del mismo tamaño. El número total de los trozos es posible que puede ser controlado por el diseñador.

Su algoritmo de estimación, incluida la creación de perfiles, lo que genera, y la conversión del CDFG, cortar el CDFG, y la superposición de los horarios se muestra en la Figura 7-4 a continuación.

Vahid y Gajski [Vah95] desarrollaron un algoritmo para la estimación rápida incremental de la ruta de datos y los costos de control. Que modelo de costos de hardware como una suma

C H = k FU S FU + k SU S SU + k M S M + k SR S SR + k C S C = k W S W (EQ 02/07)

donde S x es el tamaño de un determinado tipo de elemento de hardware y k x es la proporción de tamaño-costo de ese tipo. En esta fórmula, FU es función de las unidades. SU son las unidades de almacenamiento. M es multiplexores. SR se registra el estado. C es la lógica de control. W es el cableado.

Figura 4.7 Un algoritmo para la ruta basada en la estimación.
Se calcula a partir de estos parámetros más directos, tales como el número de estados en el controlador, las fuentes de los operandos de las operaciones, y así sucesivamente. Vahid y Gajski preprocesar el diseño para calcular una variedad de información para cada procedimiento en el programa.

1) Un conjunto de entradas de ruta de datos y un conjunto de salidas de ruta de datos.
2) El conjunto de funciones y unidades de almacenamiento.Cada unidad se describe por su tamaño y el número de líneas de control que acepta.
3) Un conjunto de objetos funcionales se describe por el número de estados posibles de control para el objeto y los destinos a los que el objeto puede escribir. Cada destino es descrito a sí mismo con un identificador, el número de estados en los que el destino está activo para este objeto, y las fuentes que el objeto se puede asignar a este destino.

Figura 7-5 Información preprocesado utilizado para la estimación de costos.
Una forma de tabla de esta información se muestra en la Figura 7-5 arriba. Esta información puede ser usada para calcular algunos valores intermedios como se muestra en la Figura 7-6 a continuación. Estos valores, a su vez puede ser utilizado para determinar los parámetros en ( EQ ​​07/02) .

Vahid y Gajski utilizar un algoritmo de actualización dado un cambio en la configuración de hardware. Dado un objeto de diseño, lo primero hay agregar el objeto al diseño, si todavía no existe. A continuación, actualizar las fuentes de multiplexor y tamaños y actualización de estados de la línea de control activo para este destino.

Figura 7-6 Representación tabular de los recursos de hardware.( Para ver la imagen grande, haga click aquí )

Por último, actualizar el número de estados del controlador. Su algoritmo de actualización se ejecuta en tiempo constante si el número de destinos por objeto es aproximadamente constante.

Siguiente en la parte 2: Hardware / software de síntesis de co-algoritmos

Esta serie de dos artículos se basa en el material impreso con el permiso de Morgan Kaufmann, una división de Elsevier, Copyright 2007 de "computación de alto rendimiento integrado "por Wayne Wolf. Para obtener más información acerca de este título y otros libros similares, por favor visite www.elsevierdirect.com .

Wayne Lobo es actualmente el Georgia Research Scholar Alianza Eminentes la celebración de la Resa "Ray" S. Farmer, Jr., Presidente Distinguido de sistemas informáticos integrados en la Escuela de Tecnología de Georgia de Ingeniería Eléctrica y Computación (ECE).Anteriormente, un profesor de ingeniería eléctrica en la Universidad de Princeton, trabajó en AT & T Bell Laboratories.Se ha desempeñado como editor en jefe de las transacciones de ACM en Embedded Computing y de automatización de diseño para sistemas embebidos .

Vía:

http://www.eetimes.com/design/embedded/4217070/Down---dirty-with-HW-SW-co-design--Part-1---Reviewing-the-fundamentals-?pageNumber=4

martes, 14 de junio de 2011

Usando PIC18F4550, y el uso del ADC en MCC18, Sensores de adquirir datos

¿Ques es un ADC?

Una -a-digital convertidor de analógico (abreviado ADC , A / D o la A a la D ) es un dispositivo que convierte una cantidad continua de un tiempo discreto digital de representación. Un ADC también puede proporcionar una medida aislada. La operación inversa se ​​realiza por una -a-analógico convertidor de señal digital ( DAC ).

Típicamente, un ADC es un dispositivo electrónico que convierte una entrada analógica de tensión o de corriente a un número digital proporcional a la magnitud de la tensión o corriente. Sin embargo, algunos no electrónicos o sólo parcialmente los dispositivos electrónicos, tales como codificadores rotativos , también se puede considerar ADC.

La salida digital puede utilizar diferentes esquemas de codificación. Normalmente la salida digital será un complemento a dos el número binario que es proporcional a la entrada, pero hay otras posibilidades. Un codificador, por ejemplo, podría salir un código Gray .

 

El ADC es de vital importancia, ya que la mayoría de los sensores para adquirir datos de manera analógica. Así, por el microcontrolador para procesar, estos datos deben ser convertidos a formato digital. En PIC18F4550, el período de ADC desde el puerto de A a B puerto dando al desarrollador de 13 canales de ADC. Figura 1 y 2 muestra los registros relacionados. En este sentido, se centraría en el registro ADCON1.

Using PIC18F4550 ADC in MCC18

Figura 1: Los registros relacionados con el puerto A

Using PIC18F4550 ADC in MCC18

Figura 2: Registros relacionados con el puerto B

Vamos a comenzar con el registro ADCON0. Este registro se utiliza para seleccionar el canal para el ADC del canal 0 a 12 canales mediante el control de CHS3: CHS0. ADON se utilizará para encendido / apagado del módulo ADC, mientras que para determinar si la conversión ADC ha completado, GO / DONE "se puede comprobar. Cuando GO / DONE '= 1, la conversión ADC se ha completado. A la inversa, cuando GO / DONE '= 0, esto significa que la conversión A / C se completa y ociosa.

PIC18F4550 ADC in MCC18

Figura 3: registros de control ADCON0

Otro registro importante que debe tenerse cuidado cuando se utiliza ADC es ADCON1. Este registro permite establecer si el canal de entrada será digital o analógica utilizando PCFG3: PCFG0, que es el bit 0 en el bit bit 3 de ADCON1. VCFG1 y VCFG2 le permite tener una referencia de tensión externa.

PIC18F4550 ADC ic

Figura 4: registros de control ADCON1

Al establecer ADCON0 y ADCON1, ADCON2 tiene que ajustarse también. Este registro se utiliza para controlar el formato y el A / D tiempo de la adquisición. Además, también se utiliza para seleccionar el A / D del reloj de conversión. Al referirse a la Figura 6 y 7, el momento de adquisición mínimo se calcula y la fuente de AD reloj se elige en función de la frecuencia de reloj del PIC. Después de hacerlo, entonces, la configuración adecuada se pueden establecer.

PIC18F4550 ADC

Figura 5: control de registros ADCON2

PIC18F4550 icFigura 6: Las ecuaciones para calcular el tiempo de adquisición mínimo

PIC18F4550 ic programming

Figura 7: AD configuración de fuente de reloj

La figura 8 muestra la A / D diagrama de bloques. A partir de aquí, debemos notar que ADC de este dispositivo tiene algunas limitaciones. Es decir, sólo un canal puede estar activo a la vez mediante el control de CHS3: CHS0. Por lo tanto, la adquisición simultánea de datos de más de un canal es imposible, pero en paralelo IC ADC se puede agregar a realizar esta tarea.

PIC18F4550 ic programming

Figura 8: Diagrama / D

Pasos para configurar ADC

1. Configurar ADC:
a. Configuración de pines analógicos, referencias de voltaje, así como E / S digital a través de un ADCON
b. La serie A / D a través de canal de entrada ADCON0 (12 canales, pero sólo uno puede ser seleccionada a la vez)
c. Seleccione una hora D tiempo de la adquisición y el reloj de conversión a través de dos ADCON
d. Encienda el ADC a través ADCON0
2. Si la interrupción se adquiere, se puede establecer por:
a. ADIF = 0
b. ADIE = 1
c. GIE = ​​1
3. Espere a que el tiempo de adquisición si se adquiere
4. Inicio de conversión mediante el establecimiento de poco GO / DONE "en el ADCON0
5. Espere a que el ADC para completar por:
a. Comprobación de la GO / DONE "granito de arena para ser limpiado
b. Espere a que la interrupción del ADC
6. Lea el A / D Resultados de Registro (ADRESH: ADRESL) ADIF = 0 si la interrupción se utiliza
7. Ir al paso 1 para volver a configurar otro número de identificación para la adquisición de datos o continuar yendo al paso 3-5.
8. La conversión A / D por poco se define como TAD. Antes de la siguiente adquisición se puede hacer, un mínimo de 3 TAD se requiere.

Ejemplo de codificación

sample coding pic chip

sample coding pic chip

El código de ejemplo anterior adquiere datos de An0 o canal 0 y mostrarlos a la PC usando serie. Esto es para verificar que los datos de muestreo es el correcto.
Conclusión
Configuración del ADC correctamente es importante asegurarse de que adquirimos los datos correctos.

http://www.bestelectronicarticles.com/other-electronic-topics/pic-microcontrollers/using-pic18f4550-adc-in-mcc18.html

jueves, 9 de junio de 2011

Simulador de PIC Oshonsoft PIC18 IDE

Aquí, Oshonsoft PIC18 IDE se utiliza. Este software posee una gran cantidad de periféricos que los desarrolladores pueden utilizar para simular su sistema en Herramientas.

Oshonsoft to simulate PIC18 circuits

Figura 1: PIC18 Oshonsoft interfaz IDE

La configuración de
1. Establezca la frecuencia de reloj por: doble clic sobre el 20MHz. A continuación, la Figura 2 se muestran. Aquí, su frecuencia de entrada deseada y haga clic en Aceptar.

Oshonsoft to simulate PIC18 circuits

Figura 2: Ajuste de frecuencia de reloj de PIC18F

2. A continuación, establezca la serie PIC18F a simular un clic en la serie después de microcontrolador PIC18F.

Oshonsoft to simulate PIC18 circuits

Figura 3: Selección de modelo PIC18F

3. Antes de cargar el programa para la simulación, ajuste la velocidad de la simulación: Velocidad -> Ultimate (para el más rápido de simulación).
4. Para cargar el programa, Archivo - Programa de carga>


Oshonsoft to simulate PIC18 load program

Figura 4: Simulación con diferente velocidad

5. En las herramientas, puede llevar a cabo los periféricos que necesita que se encuentran en su sistema para simular virtualmente.

Oshonsoft to simulate PIC18 load program

Figura 5: Herramientas e instrumentos periféricos que se proporcionan

6. Opciones le permiten ajustar los periféricos, diseño de IDE, y el microcontrolador para cumplir con la especificación de las piezas de hardware que se utilizará.

Oshonsoft to simulate PIC18 load program

Figura 6: Cambiar la configuración de los periféricos, IDE y otros regímenes

Ejemplo
Uso de PIC18F Oshonsoft IDE Simulator, un programa a la luz de un LED en PORTD, 0 cuando una lógica 1 se detecta en el PORTE, 1.

Oshonsoft to simulate PIC18 load program

Figura 7: Ejemplo para detectar una lógica 1



Si le gusto el articulo visite a uno de nuestros patrocinadores para mantenimiento del Blog
dando click en las Letras subrayadas con doble raya y de color azul, dentro del texto del artículo