FMUSER ¡Transmite video y audio sin cables más fácilmente!

[email protected] WhatsApp + 8618078869184
Idioma

    Conocimientos introductorios de DSP

     

    Procesamiento de señales digitales
    Como caso de estudio, consideremos la función más común en el dominio digital: el filtrado. En pocas palabras, filtrar es procesar la señal para mejorar sus características. Por ejemplo, el filtrado puede eliminar el ruido o la interferencia electrostática de la señal, mejorando así su relación señal / ruido. ¿Por qué utilizar un microprocesador en lugar de un dispositivo analógico para filtrar la señal? Echemos un vistazo a sus ventajas: el rendimiento de los filtros analógicos (o más generalmente, los circuitos analógicos) depende de factores ambientales como la temperatura. El filtro digital básicamente no se ve afectado por el medio ambiente.
    El filtrado digital es fácil de replicar dentro de una tolerancia muy pequeña, porque su rendimiento no depende de la combinación de dispositivos cuyo rendimiento se haya desviado del valor normal. Una vez que se fabrica un filtro analógico, sus características (como el rango de frecuencia de banda de paso) no son fáciles de cambiar. Usando un microprocesador para implementar un filtro digital, puede cambiar las características del filtro reprogramándolo.


    Comparación de procesadores DSP y procesadores de propósito general
    Considere un ejemplo de procesamiento de señal digital, como un filtro de respuesta de impulso finito (FIR). En lenguaje matemático, el filtro FIR es una serie de productos punto. Tome una entrada y un vector ordinal, multiplique entre el coeficiente y la ventana deslizante de la muestra de entrada, y luego sume todos los productos para formar una muestra de salida. Operaciones similares se repiten en gran número en el proceso de procesamiento de señales digitales, por lo que los dispositivos diseñados para esto deben brindar un soporte especial, lo que ha contribuido a la derivación de dispositivos DSP y procesadores de propósito general (GPP):

    1 Soporte para operaciones de multiplicación intensivas
    GPP no está diseñado para realizar tareas intensivas de multiplicación. Incluso algunos GPP modernos requieren múltiples ciclos de instrucción para hacer una multiplicación. El procesador DSP utiliza hardware especializado para implementar la multiplicación de ciclo único. El procesador DSP también agrega un registro acumulador para manejar la suma de múltiples productos. El registro del acumulador suele ser más ancho que otros registros, y se agregan bits adicionales llamados bits de resultado para evitar el desbordamiento. Al mismo tiempo, para reflejar completamente los beneficios del hardware especializado de acumulación múltiple, casi todos los conjuntos de instrucciones DSP incluyen instrucciones MAC explícitas.

    2 estructura de memoria
    Tradicionalmente, GPP utiliza una estructura de memoria de von Neumann. En esta estructura, solo un espacio de memoria está conectado al núcleo del procesador a través de un conjunto de buses (un bus de direcciones y un bus de datos). Normalmente, se producirán 4 accesos a la memoria para una multiplicación, lo que consume al menos cuatro ciclos de instrucción. La mayoría de los DSP utilizan la estructura de Harvard, que divide el espacio de memoria en dos para almacenar programas y datos, respectivamente. Tienen dos conjuntos de buses conectados al núcleo del procesador, lo que permite el acceso simultáneo a ellos. Esta disposición duplica el ancho de banda de la memoria del procesador y, lo que es más importante, proporciona datos e instrucciones al núcleo del procesador al mismo tiempo. Bajo este diseño, DSP puede realizar MAC de ciclo único
    instrucción. Hay otro problema, es decir, el GPP típico de alto rendimiento en realidad contiene dos cachés en chip, uno para datos y otro para instrucciones, que están conectados directamente al núcleo del procesador para acelerar la velocidad de acceso en tiempo de ejecución. Físicamente hablando, la estructura de este bus y memoria dual en chip es casi la misma que la de Harvard. Sin embargo, lógicamente hablando, todavía existen importantes diferencias entre los dos.
    GPP usa la lógica de control para determinar qué datos y palabras de instrucción se almacenan en el caché en el chip, lo que el programador no especifica (o puede que ni siquiera sepa). En contraste, DSP usa múltiples memorias en chip y múltiples conjuntos de buses para asegurar múltiples accesos a la memoria en cada ciclo de instrucción. Al usar DSP, el programador debe controlar claramente qué datos e instrucciones se almacenan
    En memoria en chip. Cuando un programador escribe un programa, debe asegurarse de que el procesador pueda utilizar eficazmente su bus dual. Además, los procesadores DSP apenas tienen cachés de datos. Esto se debe a que los datos típicos de un DSP son un flujo de datos. En otras palabras, después de que el procesador DSP calcula cada muestra de datos, se descarta y casi nunca se reutiliza.

    3 Bucle aéreo cero
    Si comprende una característica común de los algoritmos DSP, es decir, la mayor parte del tiempo de procesamiento se dedica a ejecutar bucles más pequeños, es fácil comprender por qué la mayoría de los DSP tienen hardware especializado para bucles sin sobrecarga. El llamado bucle de sobrecarga cero significa que cuando el procesador ejecuta el bucle, no necesita perder tiempo verificando el valor del contador del bucle, la condición se transfiere a la parte superior del bucle y la
    Disminuya el contador de bucle en 1. Por el contrario, el ciclo GPP se implementa mediante software. Algunos GPP de alto rendimiento utilizan hardware de predicción de transición, que casi logra el mismo efecto que el bucle sin gastos generales admitido por hardware.

    4 Cálculo de punto fijo
    La mayoría de los DSP utilizan cálculos de punto fijo en lugar de punto flotante. Aunque la aplicación de DSP debe prestar mucha atención a la precisión de los números, debería ser mucho más fácil hacerlo con punto flotante, pero para DSP, el bajo costo también es muy importante. Las máquinas de punto fijo son más baratas (y más rápidas) que las máquinas de punto flotante correspondientes. Para no utilizar una máquina de punto flotante y garantizar la precisión de los números, el procesador DSP admite el cálculo de saturación, el redondeo y el desplazamiento tanto en el conjunto de instrucciones como en el hardware.

    5 Modo de direccionamiento especial
    Los procesadores DSP a menudo admiten modos de direccionamiento especializados, que son muy útiles para operaciones y algoritmos de procesamiento de señales comunes. Por ejemplo, direccionamiento de módulo (cíclico) (útil para implementar líneas de retardo de filtro digital), direccionamiento con inversión de bits (útil para FFT). Estos modos de direccionamiento muy especializados no se utilizan a menudo en GPP y solo se pueden implementar mediante software.

    6 Previsión del tiempo de ejecución
    La mayoría de las aplicaciones DSP (como teléfonos móviles y módems) son estrictamente aplicaciones en tiempo real y todo el procesamiento debe completarse dentro de un tiempo específico. Esto requiere que el programador determine exactamente cuánto tiempo de procesamiento se requiere para cada muestra o, al menos, cuánto tiempo se requiere en el peor de los casos. Si planea utilizar un GPP de bajo costo para completar la tarea de procesamiento de señales en tiempo real, la predicción del tiempo de ejecución probablemente no será un problema. Debería ser que el GPP de bajo costo tenga una estructura relativamente sencilla y sea más fácil de predecir el tiempo de ejecución. Sin embargo, los GPP de bajo costo no pueden proporcionar la potencia de procesamiento requerida por la mayoría de las aplicaciones DSP en tiempo real. En este momento, la ventaja de DSP sobre GPP de alto rendimiento es que incluso si se usa un DSP en caché, el programador (no el procesador) decide qué instrucciones se colocarán, por lo que es fácil determinar si la instrucción es del caché o Leer de la memoria. DSP generalmente no utiliza funciones dinámicas, como la predicción de ramas y la ejecución de inferencias. Por lo tanto, es completamente sencillo predecir el tiempo de ejecución requerido a partir de un fragmento de código determinado. Esto permite al programador determinar los límites de rendimiento del chip.

    7 Conjunto de instrucciones DSP de punto fijo
    El conjunto de instrucciones DSP de punto fijo está diseñado de acuerdo con dos objetivos:
    Permita que el procesador complete múltiples operaciones en cada ciclo de instrucción, mejorando así la eficiencia computacional de cada ciclo de instrucción. Minimice el espacio de memoria para almacenar programas DSP (debido a que la memoria tiene un gran impacto en el costo de todo el sistema, este problema es particularmente importante en aplicaciones DSP sensibles al costo). Para lograr estos objetivos, el conjunto de instrucciones del procesador DSP generalmente permite al programador especificar varias operaciones paralelas dentro de una instrucción. Por ejemplo, se incluye una operación MAC en una instrucción, es decir, uno o dos movimientos de datos al mismo tiempo. En un ejemplo típico, una instrucción contiene todas las operaciones necesarias en la sección para calcular el filtro FIR. Este tipo de pago eficiente
    El precio es que su conjunto de instrucciones no es intuitivo ni fácil de usar (en comparación con el conjunto de instrucciones de GPP).
    A los programas GPP generalmente no les importa si el conjunto de instrucciones del procesador es fácil de usar, porque generalmente usan lenguajes de alto nivel como C o C ++. Para los programadores de DSP, desafortunadamente, las principales aplicaciones de DSP están escritas en lenguaje ensamblador (al menos parcialmente optimizadas en lenguaje ensamblador). Hay dos razones para esto: Primero, la mayoría de los lenguajes de alto nivel ampliamente utilizados, como
    Como C, no es adecuado para describir algoritmos DSP típicos. En segundo lugar, la complejidad de la estructura del DSP, como múltiples espacios de memoria, múltiples buses, conjuntos de instrucciones irregulares y hardware altamente especializado, dificulta la escritura de compiladores eficientes para ella. Incluso si el código fuente de C se compila en un código ensamblador DSP con un compilador, la tarea de optimización sigue siendo muy pesada. Las aplicaciones DSP típicas tienen muchos requisitos computacionales y límites estrictos de gastos generales, lo que hace que la optimización del programa sea indispensable (al menos para la parte más crítica del programa). Por lo tanto, un factor clave al considerar la elección de DSP es si hay suficientes programadores que puedan adaptarse mejor al conjunto de instrucciones del procesador DSP.

    8 Requisitos para las herramientas de desarrollo
    Debido a que las aplicaciones DSP requieren un código altamente optimizado, la mayoría de los proveedores de DSP proporcionan algunas herramientas de desarrollo para ayudar a los programadores a completar su trabajo de optimización. Por ejemplo, la mayoría de los fabricantes proporcionan herramientas de simulación de procesador para simular con precisión la actividad del procesador en cada ciclo de instrucción. Ya sea para garantizar el funcionamiento en tiempo real o para optimizar el código, estas son herramientas muy útiles. Los proveedores de GPP generalmente no proporcionan tales herramientas, principalmente porque los programadores de GPP generalmente no necesitan información detallada a este nivel. La falta de herramientas de simulación precisas para el ciclo de instrucción de GPP es un gran problema al que se enfrentan los desarrolladores de aplicaciones DSP: es casi imposible predecir el número de ciclos requeridos por GPP de alto rendimiento para una tarea determinada, por lo que es imposible explicar cómo para mejorar el rendimiento del código.

     

     

     

     

    Una lista de todas pregunta

    Apodo

    Correo electrónico

    Preguntas

    Nuestro otro producto:

    Paquete de equipo de estación de radio FM profesional

     



     

    Solución de IPTV para hoteles

     


      Ingrese el correo electrónico para recibir una sorpresa

      fmuser.org

      es.fmuser.org
      it.fmuser.org
      fr.fmuser.org
      de.fmuser.org
      af.fmuser.org -> Afrikáans
      sq.fmuser.org -> albanés
      ar.fmuser.org -> árabe
      hy.fmuser.org -> Armenio
      az.fmuser.org -> azerbaiyano
      eu.fmuser.org -> Vasco
      be.fmuser.org -> bielorruso
      bg.fmuser.org -> Bulgaria
      ca.fmuser.org -> catalán
      zh-CN.fmuser.org -> chino (simplificado)
      zh-TW.fmuser.org -> Chino (tradicional)
      hr.fmuser.org -> croata
      cs.fmuser.org -> checo
      da.fmuser.org -> danés
      nl.fmuser.org -> Holandés
      et.fmuser.org -> estonio
      tl.fmuser.org -> filipino
      fi.fmuser.org -> finlandés
      fr.fmuser.org -> Francés
      gl.fmuser.org -> gallego
      ka.fmuser.org -> georgiano
      de.fmuser.org -> alemán
      el.fmuser.org -> Griego
      ht.fmuser.org -> criollo haitiano
      iw.fmuser.org -> hebreo
      hi.fmuser.org -> Hindi
      hu.fmuser.org -> Hungarian
      is.fmuser.org -> islandés
      id.fmuser.org -> indonesio
      ga.fmuser.org -> irlandés
      it.fmuser.org -> Italiano
      ja.fmuser.org -> japonés
      ko.fmuser.org -> coreano
      lv.fmuser.org -> letón
      lt.fmuser.org -> Lituania
      mk.fmuser.org -> macedonio
      ms.fmuser.org -> malayo
      mt.fmuser.org -> maltés
      no.fmuser.org -> Noruega
      fa.fmuser.org -> persa
      pl.fmuser.org -> polaco
      pt.fmuser.org -> portugués
      ro.fmuser.org -> Rumano
      ru.fmuser.org -> ruso
      sr.fmuser.org -> serbio
      sk.fmuser.org -> eslovaco
      sl.fmuser.org -> Eslovenia
      es.fmuser.org -> español
      sw.fmuser.org -> Swahili
      sv.fmuser.org -> sueco
      th.fmuser.org -> Tailandés
      tr.fmuser.org -> turco
      uk.fmuser.org -> ucraniano
      ur.fmuser.org -> Urdu
      vi.fmuser.org -> Vietnamita
      cy.fmuser.org -> galés
      yi.fmuser.org -> Yiddish

       
  •  

    FMUSER ¡Transmite video y audio sin cables más fácilmente!

  • Contacto

    Dirección:
    Habitación No.305 Edificio HuiLan No.273 Huanpu Road Guangzhou China 510620

    E-mail:
    [email protected]

    Teléfono / WhatApps:
    +8618078869184

  • Categorías

  • NEWSLETTER

    PRIMER O NOMBRE COMPLETO

    E-mail

  • solución paypal  Western UnionBanco de China
    E-mail:[email protected]   WhatsApp: +8618078869184 Skype: sky198710021 Chatear conmigo
    Los derechos de autor 2006 2020-accionada por el www.fmuser.org

    Contáctenos