LA RUTA DE DATOS EN LOS DSPs DE COMA FIJA • USUALMENTE INCORPORA: - UN MULTIPLICADOR - UNA ALU - UNO O VARIOS DESPLAZADORES - REGISTROS PARA LOS OPERANDOS - OTRAS UNIDADES ESPECIALIZADAS: Æ LIMITADOR Æ LÓGICA DE REDONDEO Æ ETC... • LA RUTA DE DATOS NO SE EMPLEA PARA EL CÁLCULO DE DIRECCIONES. PARA ESTO SE EMPLEA UNA UNIDAD ESPECÍFICA USUALMENTE DENOMINADA AGU O ARAU. • EN LA RUTA DE DATOS, ASÍ COMO EN LA ESTRUCTURA DE LA MEMORIA, SE PONEN DE RELIEVE LAS GRANDES DIFERENCIAS CONCEPTUALES Y ESTRUCTURALES ENTRE LOS DSPs Y LOS PROCESADORES DE TIPO GENÉRICO. LA SECCIÓN MULTIPLICADORA EN LOS DSPs DE COMA FIJA (I) • DADO QUE LA MULTIPLICACIÓN ES EL TIPO DE OPERACIÓN MÁS FRECUENTE EN EL PROCESAMIENTO DIGITAL DE SEÑALES, SE PROCURA REALIZARLA DE LA MANERA MÁS EFICIENTE POSIBLE • NORMALMENTE, EL RESULTADO DEL PRODUCTO SE OBTIENE EN UN SOLO CICLO DE RELOJ • NO OBSTANTE, EXISTEN DISEÑOS SEGMENTADOS DE LA UNIDAD MULTIPLICADORA LO QUE HACE QUE UNA MULTIPLICACIÓN AISLADA PUEDA REQUERIR MÁS DE UN CICLO DE RELOJ (LATENCIA DE LA MULTIPLICACIÓN) • EN LOS MULTIPLICADORES SEGMENTADOS SOLO SE TARDA UN CICLO DE RELOJ EN PROCESOS DE MULTIPLICACION ITERATIVA. • PARA IMPLEMENTAR LA FUNCIONALIDAD MAC EXISTEN DOS ALTERNATIVAS: Æ MULTIPLICADOR INTEGRADO CON UN SUMADOR, DANDO LUGAR A UNA UNIDAD MULTIPLICADORA-ACUMULADORA Æ MULTIPLICADOR SEPARADO, CON UN REGISTRO ESPECÍFICAMENTE DEDICADO A CONTENER EL RESULTADO DEL PRODUCTO: EN ESTE CASO LA MULTIPLICACIÓN PUEDE VERSE AFECTADA POR LA LATENCIA DE LA ARQUITECTURA LA SECCIÓN MULTIPLICADORA EN LOS DSPs DE COMA FIJA (II) • EN CUANTO AL TAMAÑO DEL PRODUCTO, SE PUEDEN ENCONTRAR DOS SOLUCIONES: Æ OPERANDOS DE n BITS, Y RESULTADO DE 2n BITS ⇒ NO SE INTRODUCE ERROR EN LA OPERACIÓN Æ OPERANDOS DE n BITS Y RESULTADO DE m BITS, SIENDO m < n ⇒ PUEDE INTRODUCIRSE ERROR, PERO RESULTA MÁS ECONÓMICO DE IMPLEMENTAR • ¿CÓMO SE PASA EL RESULTADO DE LA MULTIPLICACIÓN A OTRAS ETAPAS DE CÓMPUTO? Æ SI SE TRATA DE PROCESOS TIPO MAC ITERATIVOS, SE TRABAJA CON LA LONGITUD TOTAL DE PRODUCTO, Y AL FINAL SE REDUCE NORMALMENTE SU TAMAÑO A LA LONGITUD DE PALABRA NATIVA Æ DADO QUE USUALMENTE EL RESULTADO (2n BITS) VA A SER GUARDADO CON IGUAL TAMAÑO QUE EL DE LOS OPERANDOS (n BITS = ANCHURA DE PALABRA DEL DATO NATIVO) SE RECURRE A: • SI SE TRABAJA CON ARITMÉTICA ENTERA: SE DEBE TENER LA SEGURIDAD DE QUE EL RESULTADO PRODUCTO FINAL PUEDE EXPRESARSE CON LOS n BITS ⇒ ES PRECISO LIMITAR EL RANGO DINÁMICO DE LAS SEÑALES DE ENTRADA. OTRA POSIBILIDAD ES ESCALAR EL RESULTADO TOMANDO UNA PORCIÓN MÁS SIGNIFICATIVA • SI SE TRABAJA CON ARITMÉTICA FRACCIONARIA: BASTA TOMAR LOS n BITS SUPERIORES (TRAS UN POSIBLE REDONDEO) Æ POR TANTO, LA ARQUITECTURA SUELE PERMITIR SELECCIONAR PORCIONES DEL REGISTRO ACUMULADOR O PRODUCTO PARA FACILITAR ESTE PROCESO. LOS REGISTROS ACUMULADORES EN LOS DSPs • SU MISIÓN ES CONTENER EL RESULTADO DE LAS OPERACIONES TIPO MAC Y DE OTRAS OPERACIONES. • EN LOS DSPs SUELEN ENCONTRARSE 2 E INCLUSO MÁS ACUMULADORES • UN SOLO ACUMULADOR PUEDE RESULTAR EN UN CUELLO DE BOTELLA DE LA ARQUITECTURA: DADO QUE ACTÚA TANTO COMO ORIGEN COMO DESTINO DE LAS OPERACIONES, PUEDEN REQUERIRSE FRECUENTES CARGAS Y ALMACENAMIENTOS DE SUS VALORES • SU TAMAÑO SUELE SER 2n+g SIENDO n LOS BITS NATIVOS Y g UNOS BITS DE GUARDA. CON LOS g BITS DE GUARDA SE CONSIGUE REALIZAR HASTA 2g ACUMULACIONES SIN QUE SE DÉ LUGAR A REBOSAMIENTO • LOS DSPs QUE INCORPORAN ESTOS g BITS DE GUARDA SUELEN HACER g=4 O g=8 • LOS DSPs QUE NO LOS INCORPORAN PUEDEN PRECISAR QUE: Æ LA SEÑAL DE ENTRADA SEA ESCALA ANTES DE SER SUMADA AL ACUMULADOR ⇒ DESPLAZAMIENTO A LA DERECHA CIERTO NÚMERO DE BITS. Æ ESTO SE PUEDE HACER POR PROGRAMA (CONSUMO DE TIEMPO), PERO ES MEJOR POR HARDWARE ⇒ EMPLEO DE DESPLAZADORES (ESCALADORES) LOS DESPLAZADORES Ó ESCALADORES EN LOS DSPs DE COMA FIJA (I) • EN EL CÓMPUTO NUMÉRICO PUEDE APARECER EL PROBLEMA DE QUE EL RESULTADO PUEDA EXCEDER LA CAPACIDAD NUMÉRICA DADA • PARA ABORDAR ESTE PROBLEMA SE PUEDE OPTAR POR DISMINUIR EL RANGO DINÁMICO DE LAS SEÑALES DE ENTRADA • PARA ELLO SE SOMETE A LOS DATOS A UN ESCALADO: SE LES DIVIDE POR UN FACTOR 2m ⇒ SE DESPLAZA EL DATO ARITMÉTICAMENTE A LA DERECHA m BITS • EL INCONVENIENTE ES QUE ESTO IMPLICA UNA PÉRDIDA DE PRECISIÓN: DISMUNUYE MAGNITUD REPRESENTADA PRECISIÓN = MAGNITUD DEL ERROR DE CUANTIFICACIÓN PERMANECE IGUAL • OTRO INCONVENIENTE ES LA DISMINUCIÓN DEL RANGO DINÁMICO • AL DISEÑAR UN PROGRAMA DE APLICACIÓN ES MUY IMPORTANTE DETERMINAR SI ES PRECISO REALIZAR ESTE ESCALADO Y EN QUÉ MAGNITUD Æ HERRAMIENTAS DE SIMULACIÓN LOS DESPLAZADORES O ESCALADORES EN LOS DSPs DE COMA FIJA (II) • EL USO DE BITS DE GUARDA EN LOS ACUMULADORES NO IMPLICA LA ELIMINACIÓN DE LA NECESIDAD DE ESCALAR: SI SE TIENEN 4 BITS DE GUARDA, AL LLEVAR EL RESULTADO A OTRA ETAPA DE CÓMPUTO ES PRECISO ESCALAR CON UN FACTOR DE 2-4 • FUNCIONALIDAD DE LOS DESPLAZADORES: Æ DESPLAZAMIENTO UNA VEZ A LA DERECHA (x2-1) O A LA IZQUIERDA (x2+1): ESTRUCTURALMENTE SIMPLE PERO POCO EFICIENTE SI EL FACTOR DE ESCALADO HA DE SER MAYOR Æ DESPLAZAMIENTO MÚLTIPLE A DERECHA (x2-m) O IZQUIERDA (x2+m), SIENDO m EL FACTOR DE DESPLAZAMIENTO (ESTRUCTURA : DESPLAZADORES DE TAMBOR) Æ ACTÚAN, DE MANERA TRANSPARENTE, EN LOS PROCESOS DE TRANSFERENCIA DE DATOS • LOS DESPLAZADORES PUEDEN UBICARSE DE MODO QUE REALICEN UN PRE-ESCALADO O UN POST-ESCALADO • LOS DESPLAZAMIENTOS UNITARIOS A DERECHA E IZQUIERDA PERMITEN ADEMÁS AJUSTAR EL RESULTADO AL FORMATO DEL TIPO DE ARITMÉTICA EMPLEADA(1), CASO DE NO SER LA EMPLEADA POR LA LÓGICA MULTIPLICADORA(2): ENTERA(2) Æ DESPLAZAMIENTO A LA IZQUIERDA ⇒ FRACCIONARIA(1) FRACCIONARIA(2) Æ DESPLAZAMIENTO A LA DERECHA ⇒ ENTERA(1) • LOS DSPs PUEDEN DISPONER DE MÚLTIPLES DESPLAZADORES UBICADOS EN LOS LUGARES OPORTUNOS PARA FACILITAR SEGÚN QUÉ PROCESOS ALGORÍTMICOS. LA GUARDA DE UN RESULTADO • DADO QUE LOS OPERANDOS SON DE n BITS Y EL RESULTADO SE SUELE OBTENER EN AL MENOS 2n BITS SURGE EL DILEMA DE CÓMO GUARDARLO EN MEMORIA. PUEDEN SEGUIRSE LOS SIGUIENTES CAMINOS: 1 GUARDAR LA DOBLE PALABRA COMPLETA, PARA MANTENER LA PRECISIÓN. ESTO PUEDE REQUERIR VARIOS CICLOS DE RELOJ EN LUGAR DE UNO SÓLO. ADEMÁS HABRÁ SECCIONES DE LA ALU QUE, AL PODER TRABAJAR SÓLO CON n BITS, HARÁN NECESARIO RECURRIR A ALGORITMOS DE PRECISIÓN EXTENDIDA. 2 GUARDAR EL DATO SOMETIDO A UN ESCALADO. CUANDO SE OPERA CON ARITMÉTICA ENTERA SE GUARDA SÓLO LA PARTE ALTA CON O SIN REDONDEO 3 GUARDAR EL DATO SIN ESCALADO. EN LA ARITMÉTICA ENTERA LOS n BITS MENOS SIGNIFICATIVOS BASTARÁN SI SE TIENE LA CERTEZA DE QUE LOS OPERANDOS VAN A ESTAR LIMITADOS A VALORES QUE SE SABE NO VAN A GENERAR RESULTADOS QUE EXCEDAN DE LA PALABRA NATIVA (LA PARTE ALTA SERÁN UNA MERA EXTENSIÓN DEL BIT DE SIGNO) 4 GUARDAR EL DATO SIN ESCALADO. EN LA ARITMÉTICA FRACCIONARIA BASTARÁ GUARDAR LA PALABRA DE MAYOR PESO CON O SIN REDONDEO EL REBOSAMIENTO Y LA SATURACIÓN DE UN RESULTADO • AL OPERAR ARITMÉTICAMENTE, SE PUEDE PRODUCIR UN REBOSAMIENTO DE LA CAPACIDAD DE REPRENTACIÓN NUMÉRICA: 11011101 +0 1 0 0 1 0 1 1 100101000 • SI NO SE TRABAJA CON PRECISIÓN EXTENDIDA, EL RESULTADO SERÁ ERRÓNEO • PUEDE PLANTEARSE LA CONVENIENCIA DE QUE EN ESTOS CASOS EL RESULTADO SE ADAPTE A LA MÁXIMA MAGNITUD (`POSITVA O NEGATIVA) REPRESENTABLE. EN EL EJEMPLO SERÍA ASUMIENDO VALORES SIN SIGNO: 11111111 • CON ESTE CRITERIO EL RESULTADO (RESULTADO SATURADO) SIGUE SIENDO ERRÓNEO PERO RESULTA MÁS CERCANO AL VALOR CORRECTO • EN CIERTOS ALGORITMOS O PROCESAMIENTOS TRABAJAR CON ESTE CRITERIO PUEDE RESULTAR DE UTILIDAD • SE PUEDE DISEÑAR UNA LÓGICA (LÓGICA DE SATURACIÓN) QUE AL DETECTAR UN REBOSAMIENTO ADAPTE EL RESULTADO, SI ASÍ SE DESEA, A SU VALOR SATURADO • SI SE TRABAJA CON ACUMULADORES CON BITS DE GUARDA, PUEDE SUCEDER QUE NO HAYA REBOSAMIENTO, PERO AL TRANSFERIRSE EL RESULTADO SE CONSIDERE QUE SÍ LO HAY: ES EL CASO EN QUE LOS BITS DE GUARDA SON SIGNIFICATIVOS. EN ESTE CASO SE REALIZA LA SATURACIÓN OPORTUNA (EL ACUMULADOR PERMANECE INVARIANTE, PERO EL DATO SE SATURA) EL REDONDEO DE UN RESULTADO • AL TRANSFERIR EL RESULTADO DEPOSITADO EN UN ACUMULADOR (AL MENOS DE DOBLE TAMAÑO DE LA PALABRA NATIVA), SI SE OPTA POR TOMAR SÓLO LA PARTE MÁS SIGNIFICATIVA (SEA REPRESENTACIÓN EN COMA FIJA FRACCIONARIA O ENTERA) CABE PLANTEARSE CÓMO SOLUCIONAR EN LO POSIBLE LA PÉRDIDA DE PRECISIÓN RESULTANTE • EXISTEN DOS POSIBILIDADES: 1 TRUNCACIÓN, SIN MÁS, DEL RESULTADO 2 TRUNCACIÓN, CON REDONDO DE LA PORCIÓN TOMADA • LA TRUNCACIÓN INTRODUCE UN ERROR ADICIONAL EN LA SEÑAL TRATADA. SE TRATA DE UN DESPLAZAMIENTO DE LA SEÑAL DADO QUE EL VALOR TRUNCADO SIEMPRE ES INFERIOR O IGUAL AL ORIGINAL NO TRUNCADO. • EL REDONDEO PERMITE MINIMIZAR ESTE ERROR • TÉCNICAS DE REDONDEO EN COMA FIJA: Æ REDONDEO AL VALOR MÁS PRÓXIMO Æ REDONDEO CONVERGENTE • EL REDONDEO PUEDE HACERSE POR PROGRAMA PERO RESULTA MUCHO MÁS ADECUADO HACERLO POR HARDWARE Æ DISPOSICIÓN EN LA ESTRUCTURA DE LOS DSPs DE UNA LÓGICA DE REDONDEO TÉCNICAS DE REDONDEO: REDONDEO AL VALOR MÁS PRÓXIMO • CONSISTE EN SUMAR AL BIT MENOS SIGNIFICATIVO DEL VALOR TRUNCADO EL BIT MÁS SIGNIFICATIVO DE LA PARTE ELIMINADA (O LO QUE ES LO MISMO, SUMAR AL VALOR ORIGINAL LA MITAD DEL PESO DEL BIT DEL PUNTO DE TRUNCAMIENTO): EJEMPLO: 1 0 0 1 0 1 0 1 1 0 1 0 1 1 0 12 Æ 1 0 0 1 0 1 1 02 1 0 0 1 0 1 0 1 0 0 1 0 0 1 0 12 Æ 1 0 0 1 0 1 0 12 punto de truncamiento 1 0 0 1 0 1 0 1 1 0 1 0 1 1 0 12 +0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 02 1 0 0 1 0 1 0 1 0 0 1 0 1 1 0 12 +0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 02 1 0 0 1 0 1 1 0 0 0 1 0 1 1 0 12 1 0 0 1 0 1 0 1 1 0 1 0 1 1 0 12 punto de truncamiento punto de truncanmiento • EL VALOR REDONDEADO UNAS VECES ES MENOR PERO OTRAS MAYOR QUE EL ORIGINAL: EN BUENA MEDIDA LOS ERRORES, SEGÚN EL CASO, SE COMPENSAN AUNQUE NO EXISTE LA GARANTÍA DE QUE LO SEAN TOTALEMENTE • EL INCONVENIENTE DE ESTE MÉTODO ES QUE SE INTRODUCE UN EFECTO DE ASIMETRÍA EN REDONDEOS REPETIDOS: EL VALOR MEDIO SIEMPRE SE REDONDEA POR EXCESO ⇒ SE INTRODUCE UN SESGO POSITIVO. TÉCNICAS DE REDONDEO: REDONDEO CONVERGENTE • AUNQUE EL EFECTO DE ASIMETRÍA QUE RESULTA DE UN REDONDEO AL VALOR MÁS PRÓXIMO ES DESPRECIABLE, EN ALGUNAS APLICACIONES (IIR Y FILTROS ADAPTATIVOS POR EJEMPLO) SÍ QUE PUEDE LLEGAR A SER PROBLEMÁTICO • LA TÉCNICA DE REDONDEO CONVERGENTE INCIDE EN SOLUCIONAR EN LO POSIBLE ESTE PROBLEMA • LA TÉCNICA ES IDÉNTICA A LA DE REDONDEO AL VALOR MÁS PRÓXIMO, EXCEPTO EN EL CASO EN QUE LA PARTE ELIMINADA POSEE SU BIT MÁS SIGNIFICATIVO A 1 Y EL RESTO A 0 (CASO DE VALOR INTERMEDIO) • EN ESTE CASO SE OPERA CON EL SIGUIENTE CRITERIO: Æ SI EL BIT MENOS SIGNIFICATIVO DE LA PARTE CONSERVADA ES UN 0, ENTONCES SE REDONDEO POR DEFECTO (TRUNCAMIENTO) Æ PERO SI ESE BIT ES UN 1 ENTONCES SE REDONDEA POR EXCESO (SE LE SUMA AL VALOR LA MITAD DEL PESO DE ESE BIT) • EJEMPLOS: 1 0 0 1 0 1 0 0 1 0 0 0 0 0 0 02 +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 02 (*) 1 0 0 1 0 1 0 0 1 0 0 0 0 0 0 02 punto de truncamiento 1 0 0 1 0 1 0 1 1 0 0 0 0 0 0 02 +0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 02 1 0 0 1 0 1 1 0 0 0 0 0 0 0 0 02 punto de truncamiento (*) el resultado con un redondeo al valor más próximo sería 10010101 Obsérvese que el redondeo convergente, para el caso intermedio, redondea al valor par más cercano