FACULTAD DE INGENIERÍA DIVISION DE INGENIERÍA ELÉCTRICA “IMPLEMENTACIÓN DE IVR MEDIANTE VOZ SOBRE IP. DESCRIPCIÓN Y ANÁLISIS” INGENIERÍA EN TELECOMUNICACIONES T E S I S Q u e p a r a o b te n e r e l t i t u l o d e INGENIERO EN TELECOMUNINACIONES PRESENTAN: GARDUÑO GONZÁLEZ FERNANDO OMAR GÓMEZ OLGUÍN ULISES VILLEGAS ESCOBAR MAYRA DIRECTOR DE TESIS: ING. SÁNCHEZ ZEPEDA JESÚS CIUDAD UNIVERSITARIA 2006 UNIVERSIDAD NACIONAL AUTÓNOMA DE MÉXICO UNAM – Dirección General de Bibliotecas Tesis Digitales Restricciones de uso DERECHOS RESERVADOS © PROHIBIDA SU REPRODUCCIÓN TOTAL O PARCIAL Todo el material contenido en esta tesis esta protegido por la Ley Federal del Derecho de Autor (LFDA) de los Estados Unidos Mexicanos (México). El uso de imágenes, fragmentos de videos, y demás material que sea objeto de protección de los derechos de autor, será exclusivamente para fines educativos e informativos y deberá citar la fuente donde la obtuvo mencionando el autor o autores. Cualquier uso distinto como el lucro, reproducción, edición o modificación, será perseguido y sancionado por el respectivo titular de los Derechos de Autor. 13 Facultad de Ingeniería UNAM ÍNDICE DE CAPÍTULOS INTRODUCCIÓN CAPÍTULO 1. ANTECEDENTES Telefonía Integración de telefonía IP con PSTN CAPÍTULO 2. VOZ SOBRE IP 2.1 VOIP 2.1.1 Funcionamiento de la voz sobre IP 2.1.1.1 Una red de VoIP procesa una llamada telefónica 2.1.2 Voz digitalizada 2.1.2.1 Transmisión de la Voz Digitalizada 2.1.3 Ventajas de Voz sobre IP 2.1.3.1 Limitaciones 2.1.3.2 Reducción de costos en VoIP 2.2 PROTOCOLOS EN VOIP 2.2.1 IP, Protocolo Internet 2.2.1.1 Direcciones de red y de broadcast 2.2.1.2 Fragmentación de un paquete IP 2.2.2 UDP, Protocolo de Datagrama del Usuario 2.2.3 RTP, Protocolo de Transporte en Tiempo Real 2.2.4 RSVP, Protocolo de Reservación de Recurso 2.2.4.1 Flujos de datos de RSVP 2.2.5 TCP Protocolo de control de la transmisión 2.2.5.1 Protocolo TCP/IP 2.2.6 SIP, Protocolo para los Servicios Multimedia 2.3 H.323 2.3.1 Historia, Importancia y Ventajas. 2.3.2 Descripción General 2.3.2.1 Arquitectura 2.3.2.1.1. Terminales. 2.3.2.1.2. Gateways. 2.3.2.1.3. Gatekeeper. 2.3.2.1.4 Unidad de Control Multipunto (MCU) CAPÍTULO 3. TÉCNICAS DE COMPRESIÓN DE VOZ (CODECS) 3.1 REFERENCIA DE DISEÑO 3.1.1 Arquitectura de Software 3.1.1.1. Interfaz de usuario 3.1.1.2. Procesamiento de voz 3.1.1.3. Gate de señalización telefónica 3.1.1.4. Administración de red 3.1.1.5. Servicios del sistema 3.2. Consideraciones de Implementación 3.3 CODIFICADORES PARA VOZ 3.3.1 Coder-Decoder (Codec) 3.3.2 Ley  y Ley A 3.4 ATRIBUTOS BÁSICOS DE LOS CODIFICADORES DE VOZ 3.4.1 Tasa de bits (bit rate) 14 Facultad de Ingeniería UNAM 3.4.2 Complejidad (complexity) 3.4.3 Retardo (delay) 3.4.4 Calidad (quality) 3.4.5 Retardo end-to-end 3.4.6 Calidad de servicio QoS 3.4.6.1 Obtener “QoS” 3.5 REQUISITOS DE LA TELEFONÍA EN LA RED IP 3.5.1 Ancho de Banda 3.5.2 Información Voz sobre IP y especificaciones para el Módulo CISCO. 3.6. DSP´S Y MICROPROCESADORES 3.6.1. Ventajas y desventajas del procesamiento digital vs. Procesamiento analógico. 3.6.2 Alternativas de Diseño en Procesamiento Digital CAPITULO 4 EVOLUCIÓN DE LA ARQUITECTURA DE DSP’S Y MICROPROCESADORES 4.1 DSP’S 4.1.1 Procesadores Digitales de Señales (DSPs) 4.1.2 Arquitectura de Memoria 4.1.3 Arquitectura de la Unidad Central de Proceso 4.1.4 Juego de Instrucciones y Formato Aritmético 4.1.5 Periféricos Integrados e Interfaces de E/S 4.1.6 Criterios de Selección 4.1.6.1 Velocidad 4.1.6.2 Segmentación (pipelining) 4.1.6.3 Consumo 4.1.6.4 Costo 4.1.6.5 Soporte técnico y facilidad de desarrollo 4.1.7 Arquitecturas de Altas Prestaciones 4.1.8 Aplicaciones 4.2 LEY DE MOORE 4.2.1 Historia de la Ley de Moore 4.2.1.1 Nacimiento de la Ley de Moore 4.2.2 Impacto exponencial 4.2.3 Extendiendo la Ley de Moore con Nanotecnología de Silicio 4.2.3.1 Procesar y manufacturar tecnología 4.2.3.2 Estructura del transistor y materiales 4.2.3.3 Encapsulado 4.2.4 Más Allá de los Transistores 4.2.4.1 Expandiendo la industria de la innovación 4.2.5. Ley de Moore y Generaciones del Procesador IA-32 4.2.5.1 Breve historia de la arquitectura IA-32 4.2.5.1.1 Procesadores de 16 bits y segmentación (1978) 4.2.5.1.2 El Procesador Intel 286 (1982) 4.2.5.1.3 El Procesador Intel386 (1985) 4.2.5.1.4 El Procesador Intel486 (1989) 4.2.5.1.5 El Procesador Intel Pentium (1993) 4.2.5.1.6 La Familia de Procesadores P6 (1995-1999) 4.2.5.1.7 El Procesador Intel Pentium 4 (2000) y el Procesador Intel Pentium 4 con soporte de la tecnología Hyper-Threading (2004) 4.2.5.1.8 El Procesador Intel Xeon (2001-2004) 4.2.5.1.9 El Procesador Intel Pentium M (2003-2004) 4.3 PROCESADORES VS. DSP’S 4.3.1 Introducción 4.3.1.1 Conceptos 4.3.2 Extensiones Multimedia al Lenguaje Máquina 15 Facultad de Ingeniería UNAM 4.3.2.1 Vectores multimedia 4.3.2.2 Operaciones aritmético lógicas 4.3.2.3 Reestructuración de tipos 4.3.2.4 Otras operaciones dentro de las extensiones 4.3.2.5 Aritmética con saturación 4.3.2.6 Acceso a memoria 4.3.3 Arquitectura IA-32 de Intel 4.3.3.1. La Familia de la Microarquitectura P6 4.3.3.2. La Microarquitectura Intel NetBurst 4.3.3.2.1. La Pipeline Front End 4.3.3.2.2. Out-Of-Order Execution Core 4.3.3.2.3. Retirement Unit 4.3.3.3. La Familia de Procesadores Intel Pentium M 4.3.3.4 Intel Integrated Performance Primitives (IPP) 4.3.3.5. Instrucciones SIMD 4.3.3.5.1. Tecnología Hyper-Threading 4.3.3.5.2. Notas en la Aplicación 4.3.3.6 Extensiones multimedia 4.3.3.6.1 Programación con la Tecnología Intel MMX 4.3.3.6.1.1. Introducción a la Tecnología MMX 4.3.3.6.1.2. Ambiente de Programación de la Tecnología MMX 4.3.3.6.1.2.1. Registros MMX 4.3.3.6.1.2.2. Tipos de Datos MMX 4.3.3.6.1.2.3. Formatos de los Datos de Memoria 4.3.3.6.1.3. Saturación y Modos Wraparound 4.3.3.6.1.4. Instrucciones MMX 4.3.3.6.2 Programación con Extensiones Streaming SIMD (SSE) 4.3.3.6.2.1. Introducción a las extensiones SSE 4.3.3.6.2.2. Ambiente de programación SSE 4.3.3.6.2.2.1. Registros XMM 4.3.3.6.2.3. Tipos de datos SSE 4.3.3.6.2.4. Juego de instrucciones SSE 4.3.3.6.3 Programación con Extensiones Streaming SIMD 2 (SSE2) 4.3.3.6.3.1. Introducción a las extensiones SSE2 4.3.3.6.3.2. Ambiente de programación SSE2 4.3.3.6.3.2.1. Compatibilidad de las Extensiones SSE2 con SSE y MMX 4.3.3.6.3.3. Tipos de datos SSE2 4.3.3.6.3.4. Instrucciones SSE2 4.3.3.6.4 Programación con Extensiones Streaming SIMD 3 (SSE3) 4.3.3.6.4.1. Introducción a las instrucciones SSE3 4.3.3.6.4.2. Ambiente de programación SSE3 y tipos de datos 4.3.3.6.4.2.1. Procesamiento Horizontal y Asimétrico 4.3.3.6.4.3. Instrucciones SSE3 4.3.4 Software 4.3.4.1 Compiladores 4.3.4.2 Lenguajes de programación 4.3.4.3 Sistemas operativos 4.3.4.4 Host Media Processing CAPÍTULO 5. ALTERNATIVA EN EL PROCESAMIENTO DE VOZ 5.1 HOST MEDIA PROCESSING 5.1.1 Visión General 5.1.1.1 Descripción del Producto 5.1.1.2 Aplicaciones Host Media Processing 16 Facultad de Ingeniería UNAM 5.1.1.3.2 Interfaces de Redes de Telecomunicaciones 5.1.1.3.3 Interfases de Almacenamiento de Voz y Datos 5.1.1.3.4 Interfaces de Programación del Software HMP 5.1.2.1 La Ley de Moore Hace Posible HMP 5.1.2.2 Aplicaciones HMP-CT ADE 5.2 CT-ADE 5.2.1 CT-ADE ahora soporta HMP 5.2.2. Cómo configurar los Coders VoIP en CT ADE. 5.2.3 Integración de la Telefonía a la Computación 5.2.3.1 ADL Studio 5.2.3.2 Barra de Herramientas 5.2.4 Crear una Aplicación en CT ADE 5.2.5 Ejecutar una Aplicación del Mapa de Flujo 5.2.6 Bloques de la aplicación del IVR 5.2.6.1 Bloque 5.2.6.2 Nombre de un Bloque 5.2.6.3 Links CAPÍTULO 6. DESCRIPCIÓN DE LA APLICACIÓN DE IVR 6.1 DESCRIPCIÓN DE BLOQUES 6.1.1. Llamada en espera. 6.1.2. Condición lógica 6.1.3 Play 6.1.4 Buzón correo 6.1.5 Otros 6.1.6 Switch 6.1.7 Case 6.1.8 Menu 6.1.9 Error 6.1.10 Crear nuevo buzón 6.1.11 Borrar buzón 6.1.12 Cambiar Contraseña 6.1.13 Estado del buzón 6.1.14 Revisar Nuevos Mensajes 6.1.15 Revisar Mensajes Guardados 6.1.16 Dejar Mensaje 6.1.17 Registrar Saludo 6.1.18 Desconectar llamada 6.1.19 Dejar Pendiente 6.2 DIAGRAMA DE FLUJO DEL IVR 6.3 EJECUCIÓN DEL IVR CONCLUSIONES GLOSARIO 17 Facultad de Ingeniería UNAM ÍNDICE DE FIGURAS Figura 1 Trayectorias de un paquete. Figura 2 Intenet, red mundial Figura 3 Red de Internet Figura 4 Red Telefónica Figura 5 Integración de Telefonía IP con PSTN Figura 6 Voz sobre IP Figura 7 Red común de VoIP Figura 8 Conmutación de circuitos y de paquetes Figura 9 Protocolos de Internet Figura 10 Trama IP Figura 11 Clasificación del direccionamiento Figura 12 Fragmentación de un paquete. Figura 13 Formato del mensaje UDP Figura 14 Pila de protocolos en VoIP Figura 15 Ambiente RSVP Figura 16 Arquitectura de la recomendación H.323 Figura 17 Equipo terminal H.323 Figura 18 Configuración de gateway H.323 Figura 19 Digitalización de la voz Figura 20 Uso de codecs Figura 21 Compresión de voz en VoIP Figura 22 Retardo end-to-end Figura 23 Diagrama a bloques de un sistema de procesamiento digital Figura 24 Operación MAC Las operaciones realizadas en procesamiento digital de señales frecuentemente utilizan la operación MAC Figura 25 a) Arquitectura Von Neumann, b) Arquitectura Harvard, c) Arquitectura Harvard modificada, d) Arquitectura Harvard mejorada. Figura 26 Unidad MAC Figura 27 Saturación aritmética. Ejemplo de representación en C2 con 16 bits. a) señal a representar. b) efectos del desbordamiento, c) Ante situaciones de desbordamiento con corrección mediante saturación aritmética muestra a la salida el máximo valor representable, reproduciendo el comportamiento de los sistemas analógicos Figura 28 Representaciones numéricas comunes en los DSP comerciales Figura 29 (Izquierda) Formato de punto flotante IEEE-754; 1 bit de signo, 8 de exponente y 23 de mantisa. (Derecha) Formato en punto fijo; 1 bit de signo y 31 bits significativos Figura 30 Ejecución de instrucciones sin pipeline. I1 y I2 representan la instrucción 1 y la 2, respectivamente Figura 31 Procesador que utiliza la técnica de pipelining Figura 32 Efecto en el pipeline ante la llegada de una instrucción de salto Figura 33 Núcleo de los TMS320C62xx de Texas Instruments Figura 34 Poder de procesamiento, medido en millones de instrucciones por segundo, que ha crecido debido al incremento del número de transistores en un chip. Figura 35 La ley de Moore significa costos a la baja. Encapsular más transistores en menor espacio ha conducido a reducciones dramáticas en su costo y en el costo de los productos que los integran. Figura 36 Cómputo, complejidad, convergencia. Ampliándose más allá de la sola variable del número de dispositivo, la ley de Moore comprende también la complejidad de aumento on-chip de dispositivos y la convergencia de nuevas funciones y tecnologías en el silicio. Figura 37 Vector de 64 bits, 8x8, 4x16 ó 2x32. Las extensiones soportan naturales y enteros en complemento a dos, pero no todas permiten combinar libremente precisión y signo. Por ejemplo, apenas ninguna soporta enteros de 8 bits y varias no soportan naturales de 16 bits. Figura 38 Multiplicación de componentes Figura 39 Reestructuración de vectores; conversión, mezcla y permutación con y sin repetición Figura 40 El Procesador con Microarquitectura P6 con Advanced Transfer Cache Perfeccionado Figura 41 La Microarquitectura Intel NetBurst 18 Facultad de Ingeniería UNAM Figura 42 Extensiones SIMD, Esquemas del Registro, y Tipos de Datos Figura 43 Comparación de un Procesador IA-32 que soporta Tecnología Hyper-Threading y un Sistema de Procesador Dual Tradicional Figura 44 Ambiente de Ejecución de la Tecnología MMX Figura 45 Nombres de registros de propósito general Figura 46 Set de Registros MMX Figura 47 Tipos de Datos Introducidos con la Tecnología MMX Figura 48 Modelo de Ejecución SIMD Figura 49 Ambiente de Ejecución SSE Figura 50 Registros XMM Figura 51 Tipos de Datos de Paquete de datos de punto flotante de precisión simple de 128 bits Figura 52 Ambiente de Ejecución SSE2 Figura 53 Tipos de Datos Introducidos con las Extensiones SSE2 Figura 54 Procesamiento asimétrico en ADDSUBPD Figura 55 Movimiento horizontal de datos en ADDSUBPD Figura 56 Resultados de Laboratorio y Proyección de Ejecución Figura 57 Arquitectura de Desarrollo del Servidor de Multimedia Figura 58 Diagrama a Bloques de Referencia de la Arquitectura de Software HMP Figura 59 Bloques de Aplicación de una aplicación CT-ADE&HMP Figura 60 Aplicación de oficina de varias ramas Figura 61 Aplicación Trunking Figura 62 Aplicación interworking Figura 63 Bloques de aplicación CT ADE Figura 64 Ambiente de desarrollo Figura 65 Project Window Figura 66 Output Window Figura 67 Barra de herramientas Figura 68 Ventana de Bienvenida Figura 69 Cuadro de diálogo para una nueva aplicación(1) Figura 70 Explorador de proyecto Figura 71 Cuadro de diálogo para una nueva aplicación(2) Figura 72 Celdas de inicio Figura 73 Inserción de nuevas celdas Figura 74 Ejecutar una aplicación Figura 75 Compilación Figura 76 Simulated Phone Figura 77 Parar una aplicación Figura 78 Links Figura 79 Link oculto Figura 80 Posición de los links Figura 81 Ramificaciones Figura 82 Llamada en espera Figura 83 Condición lógica Figura 84 Play Figura 85 Ramificaciones Figura 86 Otros Figura 87 Switch Figura 88 Case Figura 89 Menú Figura 90 Error Figura 91 Crear buzón Figura 92 Desconectar llamada Figura 93 Diagrama de la aplicación Figura 94 Bienvenida al buzón de voz Figura 95 Crear buzón 19 Facultad de Ingeniería UNAM Figura 96 AdminCase Figura 97 Despedida Figura 98 Menú buzón Figura 99 Personalizar Buzón Figura 100 Colgado 20 Facultad de Ingeniería UNAM ÍNDICE DE TABLAS Tabla 1 H.323 y recomendaciones relacionadas. Tabla 2 Otros protocolos para VoIP. Tabla 3 Retraso Introducido por los codecs Tabla 4 Comparación de los codecs de voz basados en los atributos básicos Tabla 5 Métodos de Compresión y sus calificaciones MOS respectivas: Procesamiento MIPS fue dado por los DSP´s 54X de Texas Instruments Tabla 6 Ancho de banda en codecs Tabla 7 Tamaño de paquetes con diferentes Esquemas de Compresión y diferentes topologías Tabla 8 Funcionalidad cubierta en cada procesador Tabla 9 Características importantes de los más Reciente Procesadores IA-32 Tabla 10 Rango de Datos Límites para Saturación Tabla 11 Codecs soportados por las tarjetas Intel Dialogic Tabla 12 Definición de direcciones 13 Facultad de Ingeniería UNAM INTRODUCCIÓN Con el creciente desarrollo de las Telecomunicaciones en materia de Telefonía es necesario implementar nuevos sistemas de comunicación que permitan facilitar el uso de la tecnología con aplicaciones de uso común y extenso a un nivel profesional, empresarial y comercial. Por esta razón el objetivo de este trabajo es presentar la implementación de un sistema de Respuesta Interactiva de Voz (IVR, Interactive Voice Response) que es un conjunto de hardware y software que se encarga de la gestión de llamadas entrantes a una organización que facilita la entrega de mensajes hablados a los usuarios, de tal forma que se puede acceder a información residente en una base de datos. Normalmente se utilizan personas físicas para atender llamadas, lo que conlleva que únicamente puedan ser atendidas en horario laboral y un número limitado de llamadas simultaneas, lo que puede resultar muy caro para la empresa prestadora del servicio, ya que debe invertir mucho dinero en personal para poder atender el mayor número de llamadas posibles, en todas las empresas de cualquier rublo lo que busca es reducir costos y aumentar su productividad así como su calidad de servicio, lo que se busca con el presente trabajo es brindar una opción para lograrlo. Esta implementación tiene como base el uso de la tecnología de la Voz sobre IP (VoIP), la cual tiene un gran crecimiento tecnológico que permite cada vez más acercarse a todo tipo de mercado, empresas y usuarios, lo que hace que esta implementación sea viable para su desarrollo a un nivel económico no muy elevado. VoIP es una tecnología que día con día llega a más usuarios, tiene más aplicaciones y refleja un menor costo comparado con lo se cuenta en la tecnología tradicional de conmutadores telefónicos. Para el desarrollo e implementación de un IVR con Voz sobre IP, es necesario contar con las herramientas teóricas y tecnológicas lo que requiere de un análisis completo de que elementos de hardware y software con los que se puede llevar a cabo una aplicación de este tipo. Presentando una alternativa de plataforma para el procesamiento de voz con HMP Host Media Procesing, que es un paquete basado en estándares para la implementación de servidores que funcionen en microprocesadores, con esto se elimina la necesidad de tener placas de telefonía especializadas con procesadores de señal digital, DSP´s, por lo cual también se hace un análisis comparativo de éstos con el uso e implantación de los microprocesadores. El software cumple con los principales estándares de telefonía Internet, incluyendo SIP, H.323. Ahora bien como se ha mencionado, los beneficios que tiene la utilización de HMP van desde reducción de costos, durabilidad de existencia en el mercado y futuras soluciones, y soporta herramientas de desarrollo de rápida aplicación CT ADE, que es un sistema de construcción de bloques específicamente diseñado para entregar funciones especializadas y programadas que ayudan para acortar el tiempo de inversión haciendo que la construcción de aplicaciones robustas y portátiles sean rápidas y fáciles de crear. 14 Facultad de Ingeniería UNAM CAPÍTULO 1. ANTECEDENTES La gran rapidez con la que Internet se ha expandido y popularizado en los últimos años ha supuesto una revolución muy importante en el mundo de las comunicaciones, llegando a causar cambios en muchos aspectos de la sociedad. Lo que se conoce hoy como Internet es en realidad un conjunto de redes independientes (de área local y área extensa) que se encuentran conectadas entre sí, permitiendo el intercambio de datos y constituyendo por lo tanto una red mundial que resulta el medio idóneo para el intercambio de información, distribución de datos de todo tipo e interacción personal con otras personas. Internet tiene su origen en la red informática ARPAnet que comenzó a desarrollarse en los Estados Unidos como un proyecto del DARPA (Defense Advanced Research Projects Agency) sobre la década de los 60, aunque hasta el inicio de la década de los 70 no comenzaron a crearse las primeras aplicaciones. En primer lugar, el proyecto contemplaba la eliminación de cualquier "autoridad central", ya que sería el primer blanco en caso de un ataque; en este sentido, se pensó en una red descentralizada y diseñada para operar en situaciones difíciles. Cada máquina conectada debería tener el mismo status y la misma capacidad para mandar y recibir información. El envío de los datos debería descansar en un mecanismo que pudiera manejar la destrucción parcial de la Red. Se decidió entonces que los mensajes deberían de dividirse en pequeñas porciones de información o paquetes, los cuales contendrían la dirección de destino pero sin especificar una ruta específica para su arribo; por el contrario, cada paquete buscaría la manera de llegar al destinatario por las rutas disponibles y el destinatario reensamblaría los paquetes individuales para reconstruir el mensaje original. La ruta que siguieran los paquetes no era importante; lo importante era que llegaran a su destino. Figura 1 Trayectorias de un paquete. A finales de 1969 cuatro hosts fueron conectados en esta red inicial, la cual fue creciendo rápidamente durante los años siguientes, pero fue a partir de 1972 cuando se comenzó a investigar la forma de que los paquetes de información puedan moverse a través de 15 Facultad de Ingeniería UNAM varias redes de diferentes tipos y no necesariamente compatibles. De esta manera se consiguen enlazar redes independientes consiguiendo que puedan comunicarse de forma transparente los ordenadores de todas ellas. Este proyecto recibió el nombre de "Internetting", y para referirse al sistema de redes funcionando conjuntamente y formando una red mayor se utilizó el nombre de "Internet". La red continuó extendiéndose por todo el país con gran rapidez, conectando a universidades e instituciones de investigación y educación, organizaciones gubernamentales o no gubernamentales, redes privadas y comerciales. Los nuevos medios desarrollados para hacer el acceso a Internet mucho más sencillo y agradable para cualquier usuario han influido notablemente en esta expansión, convirtiendo a Internet en la gran red mundial. Figura 2 Intenet, red mundial Internet no es solo un tipo de red física, sino un conjunto de tecnologías que permiten interconectar redes muy distintas entre sí. Internet no es dependiente de la máquina ni del sistema operativo utilizado. De esta manera, podemos transmitir información entre un servidor Unix y un ordenador que utilice Windows 98 o entre plataformas completamente distintas como Macintosh, Alpha o Intel. Es más: entre una máquina y otra generalmente existirán redes distintas: redes Ethernet, redes Token Ring e incluso enlaces vía satélite. Como vemos, está claro que no podemos utilizar ningún protocolo que dependa de una arquitectura en particular. Lo que estamos buscando es un método de interconexión general que sea válido para cualquier plataforma, sistema operativo y tipo de red. La familia de protocolos que se eligieron para permitir que Internet sea una Red de redes es TCP/IP. Nótese aquí que hablamos de familia de protocolos ya que son muchos los protocolos que la integran. De esta manera, Internet sirve de enlace entre redes más pequeñas y permite ampliar su cobertura al hacerlas parte de una "red global". Esta red global tiene la característica de que utiliza un lenguaje común que garantiza la intercomunicación de los diferentes participantes; este lenguaje común o protocolo (un protocolo es el lenguaje que utilizan las computadoras al compartir recursos) se conoce como TCP/IP. TCP convierte los mensajes en paquetes en la maquina emisora, y los reensambla en la máquina destino para obtener el mensaje original, mientras que IP es el encargado de encontrar la ruta al destino. 16 Facultad de Ingeniería UNAM Figura 3 Red de Internet Telefonía. La telefonía es una tecnología con la cual la población esta muy familiarizada, ya que ha convivido con ella desde hace muchos años. Aunque la estructura básica de las terminales telefónicas no ha sufrido cambios muy importantes, la manera en que se procesan las llamadas si ha tenido avances muy importantes. Estos avances han tenido como objetivo brindar un mejor servicio a los usuarios a la vez que se logran reducir costos en infraestructura y mantenimiento en la red telefónica. Hoy en día, el sistema de telefonía común es todavía analógico. La telefonía analógica utiliza la modulación de señales eléctricas a lo largo de un alambre para transportar voz. A pesar de que es una tecnología muy vieja, la transmisión analógica tiene muchas ventajas: es simple y el retraso en la transmisión de voz que existe es muy bajo, esto es porque la señal se propaga casi a la velocidad de la luz. Además la telefonía analógica existen pocos usuarios hablando al mismo tiempo y se encuentra en localidades cercanas pero existe un inconveniente, la tecnología analógica más básica requiere un par de alambres por conversación activa, lo que la vuelve impractica y de alto costo. La primera implementación a la tecnología analógica fue multiplexar varias conversaciones en el mismo alambre, usando una frecuencia de transporte diferente para cada señal, pero a pesar de esto, la telefonía analógica presenta varias desventajas: la transmisión se ve afectada por ruido que se suma y no hay manera de distinguir cual es la señal y cual es el ruido y la señal no puede ser limpiada; los conmutadores analógicos requieren de soporte electromecánicos y mantenimiento, que es costoso. Por esta razón, ahora muchos países usan redes telefónicas digitales. En la mayoría de los casos la línea del abonado permanece analógica, pero la señal analógica es convertida a un flujo de datos digitales en la primera central local (LE). Normalmente, esta señal tiene una tasa de bits de 64 kbps (una muestra de 8 bits cada 125 μs). Con esta tecnología digital, el ruido que se suma el backbone no tiene influencia en la calidad de la comunicación porque las señales digitales se pueden regenerar. Además, el multiplexaje por división de tiempo digital, hace posible la conmutación digital. El conmutador solo necesita copiar el contenido de una ranura de tiempo de la línea de transmisión entrante en otra ranura de tiempo de la línea saliente. De esta manera, la función de conmutador se puede ejecutar por computadoras. Sin embargo se introduce un pequeño retardo en cada conmutación, porque para cada conversación una ranura de tiempo está disponible cada T μs, y en algunos casos puede ser necesario esperar T μs 17 Facultad de Ingeniería UNAM para copiar el contenido de una ranura de tiempo a otra. Como T es igual a 125 μs en la mayoría de las redes digitales, esto es despreciable y el principal retardo se simplifica al tiempo de propagación. Inicialmente el teléfono se utilizaba para transmitir conversaciones entre dos usuarios pero con el paso del tiempo ha ido ampliando su acción mediante la conexión a diversos dispositivos terminales, como las computadoras y otros procesos de señales, permite él envió y recepción de mensajes complejos a través de líneas telefónicas. La telefonía hoy en día tiende a la movilidad y convergencia de servicios como voz, datos y video. En México ya se empiezan a escuchar las primeras propuestas de telefonía IP y éstas se harán cada vez más presentes en el mercado mexicano de las telecomunicaciones. Figura 4 Red Telefónica Pero, no debe confundirse VoIP con la telefonía por Internet. Esta última se reduce meramente a transportar voz sobre la red, de computadora a computadora, sin ningún control ni compromiso de calidad por parte del proveedor, y se encuentra sujeta a fallas y ruido, entre otras irregularidades. Los servicios de Voz sobre IP tienen control de calidad, permiten hacer llamadas de teléfono a teléfono, y agregan funcionalidades como desvío o transferencia de llamadas, llamada en espera o marcado rápido. Además, la Voz sobre IP se ofrece mediante el esquema de un número ilimitado de llamadas por una tarifa mensual fija, lo cual hace 18 Facultad de Ingeniería UNAM predecible el gasto de telefonía y permite planear mejor el presupuesto. Hoy la competitividad en telefonía implica, además de servicios integrados, mayor calidad y variedad de los servicios a menor costo. Integración de telefonía IP con PSTN Uno de los desarrollos más sorprendente de los últimos años es la posibilidad de conectar todas las redes de cobertura limitada en la red global que, al menos en teoría, permite enlazar y comunicar usuarios ubicados en cualquier parte del mundo. Esto a dado origen a términos como globalización de la comunicación. Actualmente existen redes que permiten comunicar telefonía instantánea, envió de información financiera, envío de señales de televisión entre países, o que permiten localizar personas por medio de radio en varios lugares del mundo. PSTN Telefonía conmutación- circuitos Telefonía IP PBX Gateway Gateway IP Network Servidor PBX Telefonía conmutación-circuitos Figura 5 Integración de Telefonía IP con PSTN La cuestión más importante en la integración de Telefonía IP con PSTN consiste en hacer que ambas redes parezcan una sola al usuario final y que sea fácil de manejar para los operadores. Hoy en día la telefonía IP se encuentra en una red separada, a la cual, normalmente, el usuario final tiene acceso con una marcación de dos etapas, primero marcado al gateway y después de recibir de él un tono de invitación a marcar, digita el número del teléfono destino deseado. En una solución de telefonía sobre IP también es posible tener una combinación de telefonía basada en aplicaciones de PC y teléfonos conectados a la PSTN. Los precios de las llamadas de larga distancia en circuitos conmutados no pueden competir con el costo de llamadas hechas a través de Internet, las comunicaciones de voz pueden ser manejadas por canales de datos y el potencial de ahorro es enorme. La telefonía IP puede configurarse para enrutar llamadas automáticamente por red de datos. Actualmente el teléfono se ha convertido en la herramienta más utilizada para la gestión de empresas y organismos públicos. Es más cómodo, más rápido y evita desplazamientos y gastos para el usuario o clientes. A su vez el prestador de servicios ahorra capital en infraestructuras en diferentes ubicaciones y en el personal de las mismas, lo que hace del sistema de servicio telefónico, ya sea de información, de venta, de consulta sea una gran ventaja para ambos. Lo de hoy es buscar soluciones para disminuir costos y mejorar los servicios brindados esto se puede solucionar gracias a las nuevas tecnologías de Integración Telefonía-Ordenadores, la utilización óptima del mismo consistiría en 19 Facultad de Ingeniería UNAM combinar la atención telefónica automática y la personal, dependiendo del tipo de cliente que la precise y el servicio que requiera en sí. Muchos organismos públicos y empresas tienen unas características comunes en este sentido, la información a proporcionar es muy repetitiva esto permite que sea muy sencillo automatizarlo, además algunas de ellas reciben un elevado número de llamadas, La mejor solución en todos estos casos es el servicio de Respuesta Interactiva de Voz (IVR). Un sistema IVR es un sistema interactivo para facilitar información telefónicamente o bien para gestiones personales sobre distintas áreas o servicios. El sistema es muy sencillo para el usuario ya que puede interactuar mediante el teclado telefónico o bien por voz, el usuario únicamente debe seguir las instrucciones para acceder al servicio o información deseada mediante un árbol previamente creado. La información puede ser de diferentes tipos, ya sea general, mediante una grabación pregrabada o bien puede ser particular, sobre un usuario en concreto el cual introducirá sus datos previamente para hacer esta información más personalizada, en los casos de gestión de datos el sistema IVR tiene la capacidad de traducir en voz los archivos o textos almacenados en una base de datos mediante el sistema Text to Speech con el fin de ofrecer al usuario la información personalizada que ha solicitado. Un IVR permite que se consulte y actualice información, sin la intervención de un agente, liberando recursos humanos. El IVR tiene menús de opciones o información previamente grabada y captura las respuestas, tales como identificación y contraseña, para luego suministrar información que se encuentra en bases de datos u otros sistemas de almacenamiento. EL IVR también puede transferir la llamada a un Agente del centro de contactos o enviar un e-mail o fax con información de la consulta realizada. Debido a su flexibilidad, puede soportar el desarrollo y la implementación de complejas aplicaciones, para lo cual se desarrollan flujos de control a través de una herramienta de diseño como lo es CTADE. Toda la definición de la lógica del flujo del IVR se realiza desde la herramienta de diseño y sin necesidad de escribir código de programación. La flexibilidad de la solución de IVR permite que se diseñen menús de navegación dinámicos acuerdo al perfil deseado y basados en reglas del negocio. Adicionalmente, también se puede realizar cambios en el comportamiento del IVR en tiempo real, sin necesidad de interrumpir el funcionamiento del sistema. 20 Facultad de Ingeniería UNAM CAPÍTULO 2. VOZ SOBRE IP 2.1 VoIP La telefonía es la más penetrante de todas las tecnologías. No existe otra tecnología en la que la gente se sienta segura y familiarizada como lo es con el uso del teléfono. Muchas corporaciones están buscando métodos no tradicionales para reducir los costos en voz mientras están dando a sus usuarios el mismo nivel de comodidad, confiabilidad y familiaridad. La reducción de costos se ha enfocado en la convergencia de redes de voz y datos. Mientras más redes de voz y datos converjan, un diseño y una planeación más cuidadosas deben ocurrir para asegurar que la calidad y la confiabilidad de la red de voz no se vean afectadas. La telefonía tradicional consiste en llamadas de solo voz, mientras que la Telefonía IP trae consigo toda la tecnología multimedia. Esta abarca audio, datos, imágenes y video. Donde el audio puede abarcar a la música, la voz, y cualquier tipo de sonidos. Los sistemas basados en audio incluyen al teléfono, respuesta de voz interactiva (IVR), y audio conferencia. En cuanto a los datos, éstos comprenden símbolos que representan varios lenguajes humanos. Las imágenes comprenden fotografías, dibujos o escritura y los sistemas basados en imágenes incluyen facsímiles, equipo médico, y cámaras digitales. El video es una secuencia de imágenes que ocurren a una cierta tasa; estos sistemas incluyen a la televisión, video conferencia, películas, etc. Un teléfono IP es un dispositivo que transporta voz sobre una red usando paquetes de datos en vez de un circuito conmutado sobre una red de voz. La telefonía IP se refiere a transferir la voz sobre protocolo Internet (IP) de protocolo TCP/IP. Existen otros paquetes estándares para Frame Relay y ATM, pero muchas personas usan el término Voz sobre IP (VoIP) o "Telefonía IP " como significado de voz sobre algún paquete de Red. Los teléfonos IP originalmente han existido en forma de un Software cliente corriendo sobre una PC multimedia para la comunicación de bajo costo PC a PC sobre Internet. Los problemas con la calidad del servicio (QoS) asociados con Internet y la plataforma PC, resultaron ser pobre en la calidad de la voz, excesivo retraso, y la congestión en la red provoca perdida de paquetes. La QoS proporcionada por Internet continúa mejorando así como la tecnología está avanzando con enlaces más rápidos, y switches que evitan la congestión, conexiones de acceso más rápido de los usuarios tales como xDSL, cortes de baja latencia y nuevos protocolos como RSVP, y MPLS técnicas que dan prioridad a datos sensibles tales como voz y video. Muchos de los esfuerzos sobre VoIP están actualmente centrados en dos aplicaciones claves. La primera es respecto a redes de aplicaciones de negocios privadas. Los negocios que tienen oficinas localizadas remotamente y que están conectadas por una vía intranet corporativa para el servicio de datos donde se puede tomar la ventaja de la Intranet existente para agregar servicio de fax y voz usando tecnología VoIP. Los negocios están dirigiendo sus demandas para soluciones VoIP, primeramente porque reducen sus costos de operativos debido a que pueden manejar en una red ambos servicios: voz y datos, evitando los cargos y pagos adicionales, que son particularmente excesivos para corporaciones con sitios multi-internacionales. La segunda aplicación clave es VoIP sobre redes públicas. Esta aplicación involucra el uso de dispositivos de voz (gateway) diseñados para llevar en ISP, ahora conocidos Internet Telephony Service Providers (ITSP), o las emergentes nuevas generaciones de 21 Facultad de Ingeniería UNAM carriers tales como Qwest y Level 3, las cuales están desarrollando significativamente Redes IP para llevar tráfico multimedia. Los ISPs están interesados en VoIP como una manera de ofrecer un valor agregado al servicio para incrementar su flujo de ganancias. La Voz sobre IP, VoIP (Voice over Internet Protocol) es una tecnología que permite la transmisión de la voz a través de redes IP en forma de paquetes de datos. Esto significa transmitir voz en forma digital y dejar de usar la red telefónica pública (PSTN), figura 6. VoIP puede utilizar el hardware para alcanzar este propósito y se puede también utilizar en un ambiente de la PC. Figura 1 Voz sobre IP VoIP, ahora es generalmente mas usado, esto se debe a la broadcast de VoIP, y el esfuerzo de los abastecedores importantes de equipo, incluyendo Cisco, VocalTec, 3Com, y Netspeak que promueven el uso de ITU-T H.323, el estándar para enviar voz (audio) y video usando IP. Además del IP, VoIP utiliza el Protocolo Tiempo-Real (RTP) para ayudar a asegurarse de que los paquetes sean entregados de una manera oportuna. VoIP tiene como principal objetivo asegurar la interoperabilidad entre equipos de diferentes fabricantes, fijando aspectos tales como la supresión de silencios, codificación de la voz y direccionamiento, y estableciendo nuevos elementos para permitir la conectividad con la infraestructura telefónica tradicional. Estos elementos se refieren básicamente a los servicios de directorio y a la transmisión de señalización por tonos multifrecuencia (DTMF). La telefonía sobre Internet o Voz sobre IP (VoIP) es más económica que la convencional porque el sistema de ruteo y conmutación es más eficiente que el de las grandes centrales telefónicas, que necesitan un circuito por cada conversación, mientras que en IP la información se envía en paquetes y se pueden enviar varias conversaciones multiplexadas sobre un único circuito físico. Usando redes públicas, actualmente es difícil garantizar la calidad del servicio (QoS). Un mejor servicio es posible con las redes privadas manejadas por una empresa o por un proveedor del servicio de telefonía por Internet (ITSP). Se pueden encontrar tres tipos de redes IP: • Internet. Conjunto de redes independientes (de área local y área extensa) que se encuentran conectadas entre sí, permitiendo el intercambio de datos, distribución de datos de todo tipo. • Red IP pública. Los operadores ofrecen a las empresas la conectividad necesaria para interconectar sus redes de área local en lo que al tráfico IP se refiere. Se puede considerar como algo similar a Internet, pero con una mayor calidad de 22 Facultad de Ingeniería UNAM servicio y con importantes mejoras en seguridad. Hay operadores que incluso ofrecen garantías de bajo retardo y/o ancho de banda, lo que las hace muy interesante para el tráfico de voz. • Intranet. La red IP implementada por la propia empresa. Suele constar de varias redes “LAN” (“Ethernet” conmutada, “ATM”, etc..) que se interconectan mediante redes “WAN” tipo “Frame-Relay/ATM”, líneas punto a punto, “RDSI” para el acceso remoto, etc. En este caso la empresa tiene bajo su control prácticamente todos los parámetros de la red, por lo que resulta ideal para su uso en el transporte de la voz. 2.1.1 Funcionamiento de la voz sobre IP. Para establecer una comunicación de voz utilizando la red de Internet, lo primero que se necesita es establecer la conexión entre las dos terminales de los usuarios, equipados con el mismo software o compatible, que desean comunicarse, es decir establecer una sesión IP; a partir de ahí, se digitaliza la voz, se comprime para que ocupe menos ancho de banda, y se transmite a través de la red como si fuese un flujo de datos. La comunicación puede ser multimedia y transferirse ficheros o ver un vídeo mientras se conversa. El atractivo que representa esta solución reside en que en este caso las tarifas que aplican son las propias de Internet, es decir siempre tarifa local en ambos extremos y en muchos casos tarifa fijas, en lugar de las telefónicas, que dependen de la distancia y del tiempo de conexión. Existen algunas modalidades que se dan en el caso de establecer la comunicación entre un teléfono y un PC o bien entre dos teléfonos, utilizando la red Internet. En el primer caso es necesario disponer de un gateway con conexión por un lado a Internet y por otro a la RTC (Red Telefonica Conmutada), que digitalice la voz si es que ya no lo está, la comprima y empaquete y realice la traslación entre direcciones IP y números de la RTC, realizando el proceso simultáneamente en ambos sentidos. En el caso de llamadas entre teléfonos a través de Internet, el proceso es parecido, utilizando dos gateways, uno en cada extremo. Los estándares para la comunicación telefónica sobre Internet, utilizando terminales aisladas o conectados a un PBX (Private Branch Exchange), estos están ya definidos por el ITU-T en el documento H-323 y por varios fabricantes, entre ellos Intel y Microsoft. En la actualidad, se están proponiendo otras especificaciones en los consorcios industriales tales como SIP, SGCP e IPDC, las cuales ofrecen ampliaciones en lo que respecta al control de llamadas y señalización dentro de arquitecturas de voz sobre IP. Llevar la voz sobre Internet se consigue utilizando técnicas de compresión muy potentes que permiten pasarla sobre un ancho de banda muy pequeño y un software de codificación-decodificación, junto con el protocolo IP propio de Internet. En la PC del usuario se necesita una tarjeta de sonido dúplex, micrófono y altavoces, junto con uno de los paquetes comerciales basados en el estándar mencionado. En la figura 7 se muestra una red de VoIP. 23 Facultad de Ingeniería UNAM Figura 2 Red común de VoIP 2.1.1.1 Una red de VoIP procesa una llamada telefónica. En el caso general de una llamada de dos vías entre dos personas, el proceso es el siguiente: 1. El usuario descuelga el teléfono. Esto genera una señal de condición de petición de marcación, lo que genera el inicio de la señalización. 2. El segmento de sesión de aplicación comienza cuando genera un tono de invitación a marcar y espera a que el usuario marque un número telefónico 3. El usuario marca un número telefónico. Cada número decimal es acumulado y almacenado por la aplicación de sesión. 4. Después de que se han marcado la cantidad suficiente de números, estos son comparados con un patrón de destino configurado, definido por los registros de los números telefónicos de todos los usuarios de la red. El número es mapeado a un “host” de IP a través del plan de numeración. El servidor de IP tiene una conexión directa con cada uno de los destinos de los posibles números telefónicos existentes o a un conmutador responsable de realizar esta tarea de búsqueda. 5. Una vez establecida la llamada, la aplicación de sesión ejecuta el protocolo H.323 para establecer un canal de transmisión y uno de recepción para cada una de las 24 Facultad de Ingeniería UNAM direcciones sobre la red de voz sobre IP. Si la llamada es mantenida por el “PBX” (Private Branch Exchange) o conmutador, este reemite la llamada al teléfono de destino, si el Protocolo de Reservación de Recursos (“RSVP”) ha sido configurado, las reservaciones del RSVP son colocadas para alcanzar una calidad de servicio deseada sobre la red. 6. Los esquemas de compresión-descompresión son habilitados por ambos extremos de la conexión y la conversación procede de manera natural usando el Protocolo de Transporte de Tiempo Real (“Real – Time Transport Protocol”) o el Protocolo de Datagramas de Usuario (“ User Datagram Protocol”) o el Protocolo de Internet (IP) o “RTP/UDP/IP” como el protocolo de uso en la pila o “stack”. 7. Cualquiera de las indicaciones del progreso de la llamada (o cualquier otra señalización que este en banda) son cortadas o eliminadas tan pronto como se establece la comunicación punto a punto, La señalización puede ser detectada en ciertas ocasiones por los auriculares o el interfono, un ejemplo de esta señalización son los tonos de doble tono en multifrecuencia (“DTMF”) . 8. Cuando cualquiera de ambas partes termina la conversación, el “RSVP” regresa a un estado de apagado o de espera. Cada término de llamada coloca a los protocolos en un estado de espera para una próxima petición de conversación telefónica. 2.1.2 Voz digitalizada Las señales de voz analógica y digital entran al VDID (dispositivo de integración de voz) donde son procesadas por un DSP y convertidas en paquetes de datos. La voz analógica es primero digitalizada a 64 kbps empleando el formato PCM, comprimida en un formato reducido (comúnmente 8 kbps CELP), y dispuesta en el tipo de paquete apropiado, Frame Relay o IP. El VDID en el lado opuesto realiza el proceso inverso, tomando los paquetes comprimidos, descomprimiéndolos a los 64 kbps y poniendo la información en el formato apropiado (analógico o digital), para que sea operado en el equipo de conmutación telefónico normal. Toda actividad en el DSP ocurre en tiempo real. 2.1.2.1 Transmisión de la Voz Digitalizada La tecnología de transmisión de voz sobre redes IP se basa en la transformación de la voz telefónica (analógica) en datos (digital), de forma que aprovecha la capacidad de transmisión de datos de las redes informáticas para enviar las llamadas de teléfono. De la misma forma que en internet o en una intranet se pueden realizar transmisiones de correo electrónico o envío de archivos, también se puede enviar las conversaciones telefónicas digitalizadas en forma de datos. En la figura 8 se muestra la diferencia entre conmutación de circuitos y conmutación de paquetes 25 Facultad de Ingeniería UNAM Figura 3 Conmutación de circuitos y de paquetes 2.1.3 Ventajas de Voz sobre IP El argumento inicial en favor de este nuevo modelo de redes se basa en la gran presencia actual de las infraestructuras IP en los entornos corporativos de datos, así como en la suposición de que parte de la capacidad de estas redes está siendo desaprovechada. Dando por sentado éste último extremo, parece que nada hay mejor que emplear el ancho de banda inutilizado para soportar el tráfico de voz. De esta manera no sólo aumentaría la eficiencia global de la red, sino también las sinergias entre su diseño, despliegue y gestión. Este acercamiento viene avalado por las conclusiones de diferentes investigaciones de mercado que coinciden en destacar el enorme potencial de crecimiento de VoIP. A nivel internacional, la tasa de crecimiento entre 1997 y el año 2002 será del 100,9 por ciento, acumulando un volumen de ingresos de 20.490 millones de dólares en el año 2002. Independientemente de estas previsiones tan optimistas debemos estudiar y analizar esta tecnología para conocer sus ventajas e inconvenientes: 1. La convergencia plantea un serio reto: las redes de voz y datos son esencialmente diferentes. Las redes de voz, que emplean conmutación de circuitos, se caracterizan por: • Para iniciar la conexión es preciso realizar el establecimiento de llamada. • Se reservan recursos de la red durante todo el tiempo que dura la conexión. • Se utiliza un ancho de banda fijo (típicamente 64 Kbps por canal de voz ) que puede ser consumido o no en función del tráfico. • Los precios generalmente se basan en el tiempo de uso. • Los proveedores están sujetos a las normas del sector y regulados y controlados por las autoridades pertinentes. • El servicio debe ser universal para todo el ámbito estatal. 26 Facultad de Ingeniería UNAM Por el contrario, las redes de datos, basadas en la conmutación de paquetes, se identifican por las siguientes características: • Para asegurar la entrega de los datos se requiere el direccionamiento por paquetes, sin que sea necesario el establecimiento de llamada. • El consumo de los recursos de red se realiza en función de las necesidades, sin que, por lo general, sean reservados siguiendo un criterio de extremo a extremo. • Los precios se forman exclusivamente en función de la tensión competitiva de la oferta y la demanda. • Los servicios se prestan de acuerdo a los criterios impuestos por la demanda, variando ampliamente en cuanto a cobertura geográfica, velocidad de la tecnología aplicada y condiciones de prestación. Implementar una red convergente supone estudiar las diferencias existentes entre las características de las redes de voz y de datos, comprendiendo los problemas técnicos que implican dichas diferencias sin perder de vista en ningún momento la perspectiva del usuario final. 2. Las diferencias entre la operación de las redes de voz y datos requieren distintos enfoques de gestión. Tradicionalmente, la industria de la telefonía trabaja con unas altas exigencias de fiabilidad, conocidas como los "cinco nueves": 99,999 por ciento. Esto se traduce en unos objetivos de diseño de centrales públicas de conmutación que garantizan niveles de caída del servicio de sólo dos horas cada cuarenta años de operación. Cuarenta años suponen aproximadamente 350.400 horas; y dos horas sin servicio representaría sólo un 0,0000057 de todo ese tiempo. O lo que es lo mismo, una disponibilidad del 99,9994 por ciento. Sin embargo, se ha demostrado que la voz a través de productos VoIP tiene una alta calidad. 3. Factores de Calidad de Servicio (QoS). La entrega de señales de voz, vídeo y fax desde un punto a otro no se puede considerar realizada con un éxito total a menos que la calidad de las señales transmitidas satisfaga al receptor. Entre los factores que afectan a la calidad se encuentran los siguientes: • Requerimientos de ancho de banda: la velocidad de transmisión de la infraestructura de red y su topología física. • Funciones de control: incluye la reserva de recursos, provisión y monitoreo requeridos para establecer y mantener la conexión multimedia. • Latencia o retardo: de la fuente al destino de la señal a través de la red. • Jitter: variación en los tiempos de llegada entre los paquetes. Para minimizar este factor los paquetes entrantes han de ser introducidos en un buffer y, desde allí, enviados a intervalos estándar. 27 Facultad de Ingeniería UNAM • Pérdida de paquetes: cuando un paquete de vídeo o de voz se pierde en la red es preciso disponer de algún tipo de compensación de la señal en el extremo receptor. 4. Implementación de nuevos estándares. Los estándares vienen a ser el anteproyecto necesario para diseñar, implementar y gestionar las comunicaciones de voz y datos. En su desarrollo trabajan diferentes entidades reconocidas como organizaciones de estándares internacionales, entre los que se encuentran ANSI (American National Standards Institute), IEEE (Institute of Electrical and Electronics Engineers), ISO (International Organization for Standardization), UIT (Unión Internacional de Telecomunicaciones) e IETF (Internet Engineering Task Force). Gracias a un estricto cumplimiento de los estándares internacionales (ITU H.323, H.245, H.225) VoIP puede integrarse fácilmente en redes en las que existan Gateways H.323 de otros fabricantes de manera que se puedan intercambiar llamadas entre ellos. 5. Interoperatividad multifabricante. Volvamos al pasado. ¿Recuerda cuando era común que una tarjeta Ethernet de un fabricante no comunicara con otra similar de un fabricante distinto? Hoy este problema ya no existe, pero conviene no olvidarlo porque las redes convergentes suponen un nuevo concepto que sólo acaba de arrancar. Afortunadamente, la industria, dirigida por el International Multimedia Teleconferencing Consortium (IMTC) , está avanzando mucho en esta área crítica. 6. Otros factores significativos. Además de las cuestiones de gestión y diseño referidas más arriba, existen otros factores, algunos fuera del control de los usuarios, que afectarán a la migración a las redes convergentes. Por ejemplo, la Comisión Europea ha determinado que, de momento, dadas las características y el estado de desarrollo de VoIP, hay que considerarlo como un servicio desregulado y no sometido a limitaciones normativas. No obstante, la Comisión se ha encargado de dejar bien claro que seguirá de cerca los pasos de la telefonía IP por si su posterior evolución exigiera introducir cambios en su regulación. 2.1.3.1 Limitaciones • La visión arquitectónica de redes de telefonía IP totalmente integradas dentro de las compañías de negocios no está aún madura. Dos arquitecturas emergentes han surgido: -Arquitectura ITU con protocolos H.323 -Arquitectura IETF (SAP para anuncio, SIP para señalización, RTSP para medios bajo demanda, SDP para descripción de medios, etc.) • Problemas en la interoperabilidad de señalización: la señalización en la SCN es SS7, y en la red IP por ejemplo, la recomendación H.323 de la ITU o el SIP de IETF (Protocolo de Iniciación de Sesión) es empleado. • La calidad de servicio (QoS) especifica una gran escala de servicios telefónicos. La red pública de Internet tiene una calidad de servicio impredecible lo que resulta en un impacto negativo en la calidad percibida. Retardos comunes de transmisión multisalto pueden ser tan grande como de 500 ms o más. • Los dispositivos terminales PC tienen una limitación de retraso debido a la continua ineficiencia de lso sistemas operativos. 28 Facultad de Ingeniería UNAM 2.1.3.2 Reducción de costos en VoIP Una llamada telefónica normal requiere una enorme red de centrales telefónicas conectadas entre si mediante fibra óptica y satélites de telecomunicación, además de los cables que unen los teléfonos con las centrales. Las enormes inversiones necesarias para crear y mantener esa infraestructura la tenemos que pagar cuando realizamos llamadas, especialmente llamadas de larga distancia. Además, cuando se establece una llamada tenemos un circuito dedicado, con un exceso de capacidad que realmente no estamos utilizando. Por contra, en una llamada telefónica IP estamos comprimiendo la señal de voz y utilizamos una red de paquetes sólo cuando es necesario. Los paquetes de datos de diferentes llamadas, e incluso de diferentes tipos de datos, pueden viajar por la misma línea al mismo tiempo. Además, el acceso a Internet cada vez es más barato, muchos ISPs lo ofrecen gratis, sólo tienes que pagar la llamada, siempre con las tarifas locales más baratas. Con el mecanismo de VoIP se puede hablar todo el tiempo que se desee con cualquier persona (es necesario que la otra persona también esté conectada a Internet al mismo tiempo), además, usted puede hablar con muchas personas el mismo tiempo y se puede intercambiar datos, enviar imágenes, gráficos y videos. VoIP es un esfuerzo organizado de estandardizar la telefonía del IP. La telefonía del IP es una parte importante de la convergencia de computadoras, de teléfonos, y de la televisión en un solo ambiente integrado de la información. En resumen las ventajas de VoIP son: • Integración sobre su Intranet de la voz como un servicio más de su red, tal como otros servicios informáticos. • Las redes IP son la red estándar universal para la Internet, Intranets y extranets. • Estándares efectivos (H.323). • Interoperabilidad de diversos proveedores. • Uso de las redes de datos existentes. • Independencia de tecnologías de transporte (capa 2), asegurando la inversión. • Menores costos que tecnologías alternativas (voz sobre TDM, ATM, Frame Relay). • No paga Larga Distancia en sus llamadas sobre IP. 2.2 Protocolos en VoIP. Los protocolos están presentes en todas las etapas necesarias para establecer una comunicación entre equipos de cómputo, desde aquellas de más bajo nivel (e.g. la transmisión de flujos de bits a un medio físico) hasta aquellas de más alto nivel (e.g. el compartir o transferir información desde una computadora a otra en la red). 29 Facultad de Ingeniería UNAM Tomando al modelo OSI (Open Systems Interconection) como referencia podemos afirmar que para cada capa o nivel que él define existen uno o más protocolos interactuando. Los protocolos son entre pares (peer-to-peer), es decir, un protocolo de algún nivel dialoga con el protocolo del mismo nivel en la computadora remota. Protocolos de Internet Nivel de aplicación BitTorrent, FTP, HTTP, HTTPS, IMAP, ICQ, IRC, NFS, NNTP, POP3, RTP, SIP, SMB/CIFS, SMTP, SNMP, SSH, SSL, Telnet, UUCP, ... Nivel de transporte DCCP, SCTP, SPX, TCP, UDP, ... Nivel de red ARP, RARP, IP (IPv4, IPv6), X.25, ICMP, IGMP, NetBEUI, IPX, Appletalk... Nivel de enlace Ethernet, Fast Ethernet, Gigabit Ethernet, Token Ring, FDDI, ATM, HDLC, PPP, Wi-Fi... Nivel físico Cable coaxial, Cable de fibra óptica, Cable de par trenzado, Microondas, Radio,RS-232... Figura 4 Protocolos de Internet 2.2.1 IP, Protocolo Internet El protocolo IP es el principal del modelo OSI, así como parte integral del TCP/IP. Las tareas principales del IP son el direccionamiento de las tramas de información y la administración del proceso de fragmentación de dichas tramas. La trama es la unidad de transferencia que el IP utiliza, algunas veces identificada en forma más específica como trama Internet o trama IP. Figura 10. Un datagrama o trama IP consta de una parte de encabezado y una parte de texto. La encabezado tiene una parte fija de 20 octetos y una parte opcional de longitud variable. 30 Facultad de Ingeniería UNAM Figura 5 Trama IP El protocolo IP es el elemento que permite integrar distintas redes entre si. El protocolo IP enlaza las diferentes piezas (distintas redes: FDDI, RDSI, X.25, lineas dedicadas, token ring, ethernet, lineas telefónicas, de la Internet. En la terminología de comunicaciones el protocolo IP define una red de conmutación de paquetes. La información se fragmenta en pequeños trozos o paquetes (alrededor de 1500 caracteres) que se envían independientemente por la red. Cada paquete es enviado con la dirección del ordenador donde ha de ser entregado y, de forma similar a como funciona un sistema postal, cada paquete viaja independientemente de los demás por la red hasta alcanzar su destino El protocolo IP trabaja de la siguiente manera; la capa de transporte toma los mensajes y los divide en datagramas, de hasta 64K octetos cada uno. Cada datagrama se transmite a través de la red Internet, posiblemente fragmentándose en unidades más pequeñas, durante su recorrido normal. Al final, cuando todas las piezas llegan a la máquina destinataria, la capa de transporte los reensambla para así reconstruir el mensaje original. Las características de este protocolo son:  No orientado a conexión.  Transmisión en unidades denominadas tramas.  Sin corrección de errores, ni control de congestión.  No garantiza la entrega en secuencia. La entrega de la trama en IP no está garantizada porque ésta se puede retrasar, enrutar de manera incorrecta o mutilar al dividir y reensamblar los fragmentos del mensaje. Por otra parte, el IP no contiene suma de verificación para el contenido de datos de la trama, solamente para la información del encabezado. En cuanto al enrutamiento (ruteo) este puede ser:  Paso a paso a todos los nodos.  Mediante tablas de rutas estáticas o dinámicas.  Direccionamiento IP.  El TCP/IP utiliza una dirección de 32 bits para identificar una máquina y la red a la cual está conectada. Únicamente el NIC (Centro de Información de Red) asigna las direcciones IP (o Internet), aunque si una red no está conectada a Internet, dicha red puede determinar su propio sistema de numeración.  Hay cuatro formatos para la dirección IP, cada uno de los cuales se utiliza dependiendo del tamaño de la red. Los cuatro formatos, Clase A, B, C y Clase D (aunque últimamente se ha añadido la Clase E para un futuro). Figura 11. 31 Facultad de Ingeniería UNAM Conceptualmente, cada dirección está compuesta por un par (RED (netid), y Dirección Local (hostid)) en donde se identifica la red y el host dentro de la red Figura 6 Clasificación del direccionamiento 2.2.1.1 Direcciones de red y de broadcast Cada máquina de la red Internet tiene una dirección IP única. Una dirección IP es un número de 32 bits que normalmente se escribe como cuatro enteros entre 0 y 255 separados por puntos (192.112.36.5), la dirección IP permite el ruteo de la información a través de la Internet. La dirección de Internet (IP Address) se utiliza para identificar tanto al ordenador en concreto como la red a la que pertenece, de manera que sea posible distinguir a los ordenadores que se encuentran conectados a una misma red. Con este propósito, y teniendo en cuenta que en Internet se encuentran conectadas redes de tamaños muy diversos, se establecieron tres clases diferentes de direcciones, las cuales se representan mediante tres rangos de valores principales: 32 Facultad de Ingeniería UNAM Tabla de direcciones IP de Internet. Clase Primer byte Identificación de red Identificación de hosts Número de redes Número de hosts A 1 .. 126 1 byte 3 byte 126 16.387.064 B 128 .. 191 2 byte 2 byte 16.256 64.516 C 192 .. 223 3 byte 1 byte 2.064.512 254 La mayor ventaja de la codificación de información de red en las direcciones de red en IP tiene una ventaja importante: hacer posible que exista un enrutamiento eficiente. Otra ventaja es que las direcciones de red IP se pueden referir tanto a redes como a anfitriones (hosts). Por regla, nunca se asigna un campo hostID igual a 0 a un anfitrión individual. En vez de eso, una dirección IP con campo hostID a 0 se utiliza para referirse a la red en sí misma. Otra ventaja significativa del esquema de direccionamiento IP es que éste incluye una dirección de broadcast (BROADCAST) que se refiere a todos los anfitriones de la red. De acuerdo con el estándar, cualquier campo hostID consistente solamente en 1s, esta reservado para la broadcast (BROADCAST). Esto permite que un sistema remoto envíe un sólo paquete que será difundido en la red especificada. Las Características principales del direccionamiento IP son: • Longitu11d de 32 bits. • Identifica a las redes y a los nodos conectados a ellas. • Especifica la conexión entre redes. • Se representan mediante cuatro octetos, escritos en formato decimal, separados por puntos. La versión lo más extensamente posible usada del IP es hoy la versión 4 (IPv4) del Internet Protocol. Sin embargo, la versión 6 (IPv6) del IP también está comenzando a ser apoyada. IPv6 preve direcciones mucho más largas y por lo tanto para la posibilidad de muchos más usuarios del Internet. IPv6 incluye las capacidades de IPv4 y cualquier servidor que pueda apoyar los paquetes IPv6 puede también apoyar los paquetes IPv4. 33 Facultad de Ingeniería UNAM 2.2.1.2 Fragmentación de un paquete IP Ya hemos visto que las tramas físicas tienen un campo de datos y que es aquí donde se transportan los datagramas IP. Sin embargo, este campo de datos no puede tener una longitud indefinida debido a que está limitado por el diseño de la red. El MTU de una red es la mayor cantidad de datos que puede transportar su trama física. El MTU de las redes Ethernet es 1500 bytes y el de las redes Token-Ring, 8192 bytes. Esto significa que una red Ethernet nunca podrá transportar un datagrama de más de 1500 bytes sin fragmentarlo. Un router fragmenta un datagrama en varios si el siguiente tramo de la red por el que tiene que viajar el datagrama tiene un MTU inferior a la longitud del datagrama. Veamos con el siguiente ejemplo cómo se produce la fragmentación de un datagrama. Figura 7 Fragmentación de un paquete. Supongamos que el host A envía un datagrama de 1400 bytes de datos (1420 bytes en total) al host B. El datagrama no tiene ningún problema en atravesar la red 1 ya que 1420 < 1500. Sin embargo, no es capaz de atravesar la red 2 (1420 >= 620). El router R1 fragmenta el datagrama en el menor número de fragmentos posibles que sean capaces de atravesar la red 2. Cada uno de estos fragmentos es un nuevo datagrama con la misma Identificación pero distinta información en el campo de Desplazamiento de fragmentación y el bit de Más fragmentos (MF), figura 12. Veamos el resultado de la fragmentación: Fragmento 1: Long. total = 620 bytes; Desp = 0; MF=1 (contiene los primeros 600 bytes de los datos del datagrama original) Fragmento 2: Long. total = 620 bytes; Desp = 600; MF=1 (contiene los siguientes 600 bytes de los datos del datagrama original) Fragmento 3: Long. total = 220 bytes; Desp = 1200; MF=0 (contiene los últimos 200 bytes de los datos del datagrama original) El router R2 recibirá los 3 datagramas IP (fragmentos) y los enviará a la red 3 sin reensamblarlos. Cuando el host B reciba los fragmentos, recompondrá el datagrama original. Los encaminadores intermedios no reensamblan los fragmentos debido a que esto supondría una carga de trabajo adicional, a parte de memorias temporales. Nótese que el ordenador destino puede recibir los fragmentos cambiados de orden pero esto no supondrá ningún problema para el reensamblado del datagrama original puesto que cada fragmento guarda suficiente información. 34 Facultad de Ingeniería UNAM Si el datagrama del ejemplo hubiera tenido su bit No fragmentar (NF) a 1, no hubiera conseguido atravesar el router R1 y, por tanto, no tendría forma de llegar hasta el host B. El router R1 descartaría el datagrama. 2.2.2 UDP, Protocolo de Datagrama del Usuario Establecer una conexión TCP requiere gran cantidad de información en las encabezados de los paquetes y en consecuencia retrasos en la transmisión; si se quiere enviar un paquete y no se requiere una particular precaución en el reparto del mismo entonces se pude usar otro protocolo que sea mas simple que el TCP, este es el caso del "protocolo de datagramas del usuario (UDP) que se utiliza en vez del TCP en algunas aplicaciones. UDP es más simple que el TCP porque no se preocupa de mensajes que se pierdan, mantener el orden en los paquetes que se envían, etc. UDP se usa para programas que sólo envían mensajes cortos, y pueden reenviar el mensaje si una respuesta no se produce en período corto de tiempo. El UDP también se utiliza en el entorno de la red local donde la tasa de errores de transmisión es muy pequeña, y no es necesario el sofisticado control de errores del protocolo TCP. El UDP proporciona el mecanismo primario que utilizan los programas de aplicación para enviar tramas a otros programas de aplicación. El UDP proporciona puertos de protocolo utilizados para distinguir entre muchos programas que se ejecutan en la misma máquina. Esto es, además de los datos, cada mensaje UDP contiene tanto en número de puerto de destino como el número de puerto origen, haciendo posible que el software UDP en el destino entregue el mensaje al receptor correcto y que éste envíe una respuesta, UDP es: • No orientado a conexión. No se establece una conexión previa con el otro extremo para transmitir un mensaje UDP. Los mensajes se envían sin más y éstos pueden duplicarse o llegar desordenados al destino. • No fiable. Los mensajes UDP se pueden perder o llegar dañados. El UDP utiliza el Protocolo Internet subyacente para transportar un mensaje de una máquina a otra y proporciona la misma semántica de entrega de tramas, sin conexión y no confiable. No emplea acuses de recibo para asegurarse de que llegan mensajes, no ordena los mensajes entrantes, ni proporciona retroalimentación para controlar la velocidad del flujo de información entre las máquinas. Por tanto, los mensajes UDP se pueden perder, duplicar o llegar sin orden. Además, los paquetes pueden llegar más rápido de lo que el receptor los puede procesar. Un ejemplo típico de una situación en la que se utiliza el UDP es cuando se pretende conectar con un ordenador de la red, utilizando para ello el nombre del sistema. Este nombre tendrá que ser convertido a la dirección IP que le corresponde y, por tanto, tendrá que ser enviado a algún servidor que posea la base de datos necesaria para efectuar la conversión. En este caso es mucho más conveniente el uso de UDP. UDP utiliza el protocolo IP para transportar sus mensajes. Como vemos, no añade ninguna mejora en la calidad de la transferencia; aunque sí incorpora los puertos origen y destino en su formato de mensaje figura 13. Las aplicaciones (y no el protocolo UDP) deberán programarse teniendo en cuenta que la información puede no llegar de forma correcta. 35 Facultad de Ingeniería UNAM Encabezado UDP Área de datos UDP Encabezado del datagrama Área de datos del datagrama IP Encabezado de la trama Área de datos de la trama Final de la trama Figura 8 Formato del mensaje UDP 2.2.3 RTP, Protocolo de Transporte en Tiempo Real Existen dos protocolos en la capa de transporte en el conjunto de protocolos de Internet, TCP y UDP. TCP proporciona un flujo confiable entre dos terminales. UDP proporciona un servicio de datagrama no confiable sin establecer una conexión previa. Para usar UDP como un protocolo de transporte para tráfico en tiempo real, alguna funcionalidad se ha agregado. La funcionalidad necesitada por muchas aplicaciones en tiempo real es combinada con RTP, el protocolo de transporte en tiempo real RTP, fue estandarizado en 1889. Las aplicaciones, típicamente, corren RTP sobre UDP como parte del protocolo de la capa de transporte. Sin embargo, RTP puede ser usado con otra red subyacente o con otros protocolos de transporte, en la figura 14 se muestra la pila de protocolos. Figura 9 Pila de protocolos en VoIP El protocolo de transporte en tiempo real (RTP), proporciona de principio a fin la entrega de servicios para datos con características en tiempo real, tales como video y audio interactivo. Esos servicios incluyen identificación de tipo de payload, secuencia de numeración, marcado y monitoreo. La información más importante es la encabezado RTP, es la información de tiempo. El transmisor le agrega una marca a cada paquete RTP con 36 Facultad de Ingeniería UNAM el tiempo en que la primera muestra del paquete fue codificada. El receptor entonces usa esas marcas para reconstruir la información original antes de reproducirla. En la práctica, RTP es usualmente implementado dentro de la aplicación. RTP está diseñado para ser independiente de los protocolos de transporte inferiores y puede ser usado sobre unicast y multicast. Es necesario manejar una secuencia de numeración para ordenar y detectar los paquetes perdidos. Un identificador de tipo payload le dice a la aplicación receptora cómo interpretar el payload. Identifica el formato del payload y especifica cuales esquemas de codificación o comprensión son usados. Se puede notar que RTP por si solo no proporciona un mecanismo que asegure una entrega a tiempo de datos, o proporcione garantía en la calidad del servicio. No garantiza una entrega o prevención fuera de orden, debido a que asume que la red subyacente es confiable y entrega los paquetes en secuencia. Los números secuenciales incluidos en el RTP permiten al receptor reconstruir la secuencia de paquetes enviados, pero los números secuenciales también pueden ser usados para determinar la ubicación propia de un paquete. Mientras que RTP esta diseñado principalmente para satisfacer las necesidades de conferencias multimedia de varios participantes, no esta limitada a esa aplicación particular. Almacenamiento de datos continuos, simulación distribuida interactiva y aplicaciones de medición y control pueden encontrar RTP aplicable. El protocolo de transporte RTP es ampliado por RTCP, el protocolo de control en tiempo real. Su principal función es proporcionar una retroalimentación en la calidad de distribución de datos. Las aplicaciones pueden usar esta retroalimentación para adaptar las diferentes condiciones de red. La retroalimentación acerca de la calidad de transmisión es también muy útil para localizar problemas y fallas de diagnóstico. Otra función de RTP es seguir a los participantes cuando sus identificadores internos cambien y distribuir información de todos los involucrados en una sesión, por ejemplo sus nombres y sus direcciones de correo electrónico. Los paquetes de control son transmitidos periódicamente a todos los participantes en la sesión. Todos los paquetes de control contienen estadísticas de recepción en forma de reportes. Los reportes son emitidos por cada receptor para cada fuente. Reportan el número y fracción de paquetes perdidos y el jitter, así como a qué paquetes se refiere cada estadística. 2.2.4 RSVP, Protocolo de Reservación de Recurso El Protocolo de Reservación de Recurso (RSVP) es un protocolo de control de red que permite a usuarios del Internet permite obtener diferentes calidades de servicio (QoS) para el flujo de datos. Tal capacidad reconoce que diversos usuarios tienen diversos requisitos de funcionamiento de la red. Algunos usuarios, incluyendo a los usuarios interactivos y los más tradicionales, requieren de una entrega confiable de datos pero no imponen ninguno requisito riguroso para la puntualidad de la entrega. Un nueva aplicacion, incluyendo la videoconferencia, telefonía de IP, y otras formas de comunicaciones de los multimedia requieren que la entrega de los datos sea oportuna pero no necesariamente confiable. Así, RSVP fue pensado para proveer de redes de IP la capacidad para apoyar los requisitos de funcionamiento divergentes de los tipos del uso que diferenciaban. 37 Facultad de Ingeniería UNAM Es importante observar que RSVP no es un protocolo de ruteo. RSVP trabaja conjuntamente con protocolos de ruteo e instala el equivalente de las listas dinámicas del acceso a lo largo de las rutas que los protocolos de ruteo calculan. Así, poner RSVP en ejecución en una red existente no requiere la migración a un nuevo protocolo de ruteo. En la figura 15 se muestra un ambiente de RSVP. En RSVP, la información del host se entrega a los receptores sobre flujos de datos Figura 10 Ambiente RSVP 2.2.4.1 Flujos de datos de RSVP En RSVP, el flujo de datos es una secuencia de datagramas que tienen la misma fuente, destino (sin importar si ese destino es una o más máquinas físicas), y calidad del servicio. Los requisitos de QoS se comunican a través de una red vía una especificación del flujo, que es una estructura de datos usada por los host de la red interna para solicitar servicios especiales de la red interna. Una especificación del flujo describe el nivel del servicio requerido para ése flujo de datos. Esta descripción toma la forma de uno de tres tipos del tráfico. Estos tipos del tráfico son identificados por su clase correspondiente de RSVP del servicio: 1. Best-Effort 2. Rate-sensitive 3. Delay-sensitive En el resumen, RSVP tiene los atributos siguientes: • RSVP hace reservaciones del recurso para el unicast y muchas aplicaciones del multicast, adaptando dinámicamente los cambios del número de miembros del grupo, así como a las rutas cambiantes. 38 Facultad de Ingeniería UNAM • RSVP es simples, es decir, constituye las reservaciones de manera unidireccional del flujo de datos. • RSVP es un receptor orientado, es decir, el recibe el flujo de datos los inicializa y mantiene la reservación de los recurso para ser usado. • RSVP proporciona el apoyo para el cambio dinámico de los miembros y la adaptación automática para las rutas. • RSVP no es un protocolo de asignación de ruta pero depende en el presente de los protocolos de asignación de ruta futuras. • RSVP proporciona varios tipos o estilos de reservaciones para acceder a una variedad de aplicaciones. • RSVP proporciona el funcionamiento transparente a través de routers que realizan un soporte. • RSVP soporta tanto IPv4 como IPv6. 2.2.5 TCP Protocolo de control de la transmisión En su tránsito por distintas redes y equipos router puede ocurrir que haya paquetes IP que se pierdan, lleguen duplicados o con errores en la información que contienen. El protocolo TCP se encarga de subsanar estas posibles deficiencias para conseguir un servicio de transporte de información fiable. TCP fragmenta la información a transmitir, de la misma forma que lo hace el protocolo IP. TCP numera cada uno de estos de manera que el receptor de la información pueda ordenarlos al recibirlos. Para pasar esta información a través de la red, TCP utiliza un sobre identificado con el número de secuencia de cada paquete. Los paquetes TCP se envían a su destino, independientemente unos de otros, utilizando el protocolo IP. En la parte receptora, el TCP recoge el paquete, extrae los datos, y los pone en el orden correcto. Si algunos sobres desaparecen, el receptor le pide al transmisor que retransmita los paquetes de nuevo. Cuando toda la información recogida esta en su orden, se pasan los datos a la capa de aplicaciones. Esto es una visión ideal del TCP. En la práctica los paquetes no solamente se pueden perder, sino que pueden sufrir cambios en su tránsito por la red. TCP resuelve este problema colocando en el paquete que se envía lo que se denomina el "checksum". Cuando el paquete llega a su destino, el receptor TCP calcula que checksum debe ser y lo compara con el que se ha enviado. Si no son los mismos el TCP receptor entiende que ha habido un error en la transmisión y le pide al transmisor que reenvíe. De esta forma el TCP ofrece un servicio fiable de transmisión de información. Todas las aplicaciones de la Internet utilizan los servicios de transporte TCP para el intercambio de información, de forma que pueden ignorar los problemas de envío de información a través de la red, o al menos muchos de ellos. 2.2.5.1 Protocolo TCP/IP 39 Facultad de Ingeniería UNAM TCP/IP es el protocolo común utilizado por todos los ordenadores conectados a Internet, de manera que éstos puedan comunicarse entre sí. Hay que tener en cuenta que en Internet se encuentran conectados ordenadores de clases muy diferentes y con hardware y software incompatibles en muchos casos, además de todos los medios y formas posibles de conexión. Aquí se encuentra una de las grandes ventajas del TCP/IP, pues este protocolo se encargará de que la comunicación entre todos sea posible. TCP/IP es compatible con cualquier sistema operativo y con cualquier tipo de hardware. TCP/IP no es un único protocolo, sino que es en realidad lo que se conoce con este nombre es un conjunto de protocolos que cubren los distintos niveles del modelo OSI. Los dos protocolos más importantes son el TCP (Transmission Control Protocol) y el IP (Internet Protocol), que son los que dan nombre al conjunto. En Internet se diferencian cuatro niveles o capas en las que se agrupan los protocolos, y que se relacionan con los niveles OSI de la siguiente manera: • Aplicación: Se corresponde con los niveles OSI de aplicación, presentación y sesión. Aquí se incluyen protocolos destinados a proporcionar servicios, tales como correo electrónico (SMTP), transferencia de ficheros (FTP), conexión remota (TELNET) y otros más recientes como el protocolo HTTP (Hypertext Transfer Protocol). • Transporte: Coincide con el nivel de transporte del modelo OSI. Los protocolos de este nivel, tales como TCP y UDP, se encargan de manejar los datos y proporcionar la fiabilidad necesaria en el transporte de los mismos. • Internet: Es el nivel de red del modelo OSI. Incluye al protocolo IP, que se encarga de enviar los paquetes de información a sus destinos correspondientes. Es utilizado con esta finalidad por los protocolos del nivel de transporte. • Enlace: Los niveles OSI correspondientes son el de enlace y el nivel físico. Los protocolos que pertenecen a este nivel son los encargados de la transmisión a través del medio físico al que se encuentra conectado cada host, como puede ser una línea punto a punto o una red Ethernet. El TCP/IP necesita funcionar sobre algún tipo de red o de medio físico que proporcione sus propios protocolos para el nivel de enlace de Internet. Por este motivo hay que tener en cuenta que los protocolos utilizados en este nivel pueden ser muy diversos y no forman parte del conjunto TCP/IP. Sin embargo, esto no debe ser problemático puesto que una de las funciones y ventajas principales del TCP/IP es proporcionar una abstracción del medio de forma que sea posible el intercambio de información entre medios diferentes y tecnologías que inicialmente son incompatibles. Para transmitir información a través de TCP/IP, ésta debe ser dividida en unidades de menor tamaño. Esto proporciona grandes ventajas en el manejo de los datos que se transfieren y, por otro lado, esto es algo común en cualquier protocolo de comunicaciones. En TCP/IP cada una de estas unidades de información recibe el nombre de "datagrama" (datagram), y son conjuntos de datos que se envían como mensajes independientes. 2.2.6 SIP, Protocolo para los Servicios Multimedia 40 Facultad de Ingeniería UNAM El principal requisito de las aplicaciones basadas en los servicios multimedia y de realidad virtual es el ancho de banda necesario y la baja latencia. Para poder alcanzar el equilibrio necesario se debe de hacer mayor esfuerzo en el control del ancho de banda. Las aplicaciones multimedia utilizan principalmente un esquema de funcionamiento como el que se describe a continuación: Se basa en el uso de un protocolo para el establecimiento de la conexión o llamada entre puntos terminales, otro para la conexión punto a punto entre los interlocutores y de un protocolo de control de flujos en la conexión P2P. Como mecanismo de control de llamada se proponen la utilización de la norma ITU H.323 (utilizada en la señalización de telefonía) ó SIP (Session Initiation Protocol). Como medio de transporte se propone el encapsulado definido por las normas H.261 ó MPEG Real Time Protocol (RTP) y se transporta en forma de datagramas (UDP) sobre protocolo IP. Como mecanismo de señalización de los flujos multimedia se propone MGCP/Megaco (Media Gateway Control) transportado en datagramas UDP. El Protocolo de Inicio de Sesión (SIP) es un protocolo genérico de establecimiento de sesiones multimedia. Se trata de un estándar del IETF y su RFC es la 3261. Otros protocolos relacionados con SIP definidos por el IETF son: RTSP (Real Time Streaming Protocol) para el control de flujos y sesión, SDP (Session Description Protocol) para describir los flujos, RTP/RTCP (Real Time Protocol / Real Time Control Protocol) para el transporte de datos en tiempo real y RSVP (Resource Reservation Setup Protocol) junto a DiffServ (Differentiated Services) para la calidad del servicio y la reserva de recursos. SIP no impone que los flujos de información que se transporten una vez establecida la sesión sean voz o vídeo. Está diseñado en forma de caja abierta para que sea ínter operable con versiones anteriores de VoIP. Los direccionamientos SIP son similares a la dirección de correo electrónico: sip:user@host (protocolo sip: nombre de usuario @ en una máquina). Soporta direcciones IP y nombres con dominios (DNS). Los componentes de SIP son: los agentes de usuario (UA) que pueden funcionar tanto como cliente como servidor y los servidores que pueden realizar tres tipos de operaciones: Proxy (con estado o sin estado), Registro y Redirección. Lo tres últimos pueden estar empotrados en un único servidor físico. En un sistema real aparecen de forma frecuente los denominados Marshal Server quienes hacen las labores de autenticación y de Gatekeepers. En el despliegue de SIP se pueden encontrar agentes de usuario de tipo hardware (p.e. terminales telefónicos) o software. De la misma forma se pueden encontrar integrados los proxy’s, redirectores y registros en un único sistema que se gestiona de forma remota a través de un interfaz web. Este sistema es capaz de proporcionar el servicio de almacenamiento de información basándose en el protocolo RTSP (Real-Time streaming protocol), para su posterior recuperación ó el servicio de mensajería instantánea (ICQ). El protocolo SIP está diseñado específicamente para IP e Internet y es similar a HTTP en cuanto a la sintaxis de los mensajes que se intercambian. INVITE, ACK, BYE, CANCEL, REGISTER, OPTIONS, INFO ó 1xx, 2xx, 3xx … 6xx son los tipos de mensajes de peticiones y respuestas respectivamente que se intercambian en el protocolo. Se puede destacar que en el cuerpo del mensaje de invitación se oferten múltiples formas de conectarse (OPTIONS), de modo que se puede “negociar” las capacidades con el cliente destinatario. El establecimiento de la llamada típicamente sigue los siguientes pasos: un agente de usuario se registra ante un proxy, e inicia la localización de un usuario. El proxy haciendo 41 Facultad de Ingeniería UNAM uso de la información disponible (por ejemplo DNS y otras) localiza el proxy del usuario final. Al realizar la consulta por el usuario al proxy final es posible que sea necesario realizar una búsqueda en un servidor de localización o una redirección hasta llegar al agente de usuario destinatario. Una vez que se confirma el establecimiento de la llamada por el mismo camino de los servidores proxy, los flujos de información se realizan P2P. Con SIP se pueden soportar servicios más complejos como son: llamada en espera (Call Hold), Consulta en espera (Consultation Hold), transferir cunado no conteta (Unattended Transfer), transferencia de llamada incondicional (Call forward Unconditional), transferencia en ocupado (Call forward on Busy), Transferencia cuando no contesta (Call forward on No Answer), Tripartita (3-Way Conference), Sigueme (Find-Me), información de llamada entrante (Incoming Call Screening), Numero secundario entrada/salida (Secundary Number –In/Out), llamada en espera (Call Waiting), etc... SIP proporciona soporte para la movilidad, proporciona extensiones de presencia (SIMPLE) de modo que se puede conocer el estado (presente/ausente) del usuario. Es el agente de presencia quien anuncia la presencia de forma similar a como funciona ICQ en la mensajería instantánea. Se trata de una entidad lógica pura que conoce el estado del usuario, que recibe las peticiones de suscripción y genera las peticiones de notificación. Suele estar empotrado junto al servidor proxy o de registro o el agente de usuario. Han añadido un mecanismo de comunicación entre proxy’s que consiste en el uso de un método denominado MESSAGE, de forma que se crea un canal extra de comunicaciones por el que se pueden enviar comandos, aunque este canal es más pesado. Se propone la creación de un servidor de multiconferencia, basándose en un servidor de aplicaciones y en un servidor de presencia. Existen algunas versiones de este tipo de servidores en los que un usuario invita progresivamente a los demás. Esta filosofía adolece de una fuerte debilidad al tener punto único de fallos. SIP es escalable y fiable de forma que establece poca sobrecarga en el proceso de establecimiento de la llamada. Se pretende conseguir la integración de la VoIP con Web, EMail, Mensajería instantánea, chat, juegos interactivos, etc.., aunque cada integrador hace lo posible por ser lo más incompatible que puede con la competencia (Killer Cocktail). El protocolo SIP, parece ser un certero candidato para promover la transición entre la VoIP actual y la futura donde se integren: Telefonía e Internet, adoptando lo mejor de ambos mundos. Se abren nuevos horizontes en el diseño de nuevos servicios que aún no han sido concebidos, que requieren un prototipo rápido, se necesitarán nuevos conjuntos de herramientas para la creación de servicios conjuntamente con los lenguajes. 42 Facultad de Ingeniería UNAM 2.3 H.323 2.3.1 Historia, Importancia y Ventajas. Los servicios de voz sobre IP necesitan tener la capacidad de conectarse a las redes de voz conmutadas de circuitos. Para lograr esto la Unión Internacional de Telecomunicaciones (ITU) ha definido, con el trabajo de su Grupo de Estudio 16, un conjunto de estándares para redes multimedia (basados en paquetes). El estándar H.323 fue creado para describir terminales, equipos y servicios para comunicaciones multimedia sobre redes que no garantizan una calidad de servicio (QoS). H.323 asocia una familia de estándares basados en software que definen varias opciones para establecimiento, control de llamadas y codificación de voz y datos. En la tabla 1 se listan las recomendaciones relacionadas con H.323. Recomendaciones Descripción H.323 Documentos llamados "Sistemas de telefonía visual y equipo para redes de área local que proporcionan una calidad de servicio no garantizada". Estándar para sistemas de comunicación multimedia basada en paquetes. H.225 Protocolos de control de llamada, paquetización y sincronización del flujo multimedia. Incluye mensajes Q.931 y RAS. H.245 Protocolo de control para comunicaciones multimedia. Mensajes para la apertura y cierre de canales de flujo de voz, datos y video y otros coman dos, peticiones e indicaciones. H.261 Codec para video, servicios audiovisuales múltiples de 64 Kbps. H.263 Especificaciones de codec para video sobre RTPC. G.711 Codec de audio para un ancho de banda de 3.1 kbps sobre canales de 48, 56 y 64 kbps (telefonía normal). G.722 Codec de audio para un ancho de banda de 7 kbps sobre canales de 48, 56 y 64 kbps. G.728 Codec de audio para un ancho de banda de 3.1kbps sobre canales de 16 kbps. G.723, G.723.1 Codec de audio para un ancho de banda de 3.1 kbps sobre canales de 5.3 y 6.3 kbps (G.723.1 ha sido seleccionado por el foro de la UIT para usarse en voz sobre IP). G.729, G.729 A Codec de audio para un ancho de banda de 3.1 kbps sobre canales de 8 kbps (adoptado por el foro de Frame Relay para voz sobre Frame Relay) T.120 Control de datos y conferencia Tabla 1 H.323 y recomendaciones relacionadas. Inicialmente H.323 no atrajo mucho interés del mercado hasta que Vocaltec y Cisco fundaron el foro de Voz sobre IP, para establecer los estándares para productos VoIP, el enfoque que se dio en el foro de VoIP, fue para establecer las especificaciones de terminales, usando protocolos de señalización basados en UDP. 43 Facultad de Ingeniería UNAM El trabajo en la versión No. 1 de H.323 comenzó en Mayo de 1995 y esta versión fue aprobada en Junio de 1996. la versión 2, titulada “Sistemas de Comunicación Multimedia Basados en Paquetes” fue aprobada en Febrero de 1998 con tres nuevos anexos: Mensajes H.245 usados por las terminales H.323, procedimientos para codecs de video, H.323 en ATM. La versión No. 3 de H.323 fue aprobada en Febrero del 2000, pero actualmente la mayoría de las grandes firmas trabajan con la versión No.2. A pesar de que H.323 es el estándar reconocido para terminales VoIP, existen otros estándares adicionales para aplicaciones residenciales, tales como teléfonos IP. En la tabla 2 se muestra una lista de otros protocolos para VoIP. Protocolo Descripción SIP (Session Initial Protocolo) Protocolo para crear, modificar o terminar sesiones con uno o más participantes. MGCP (Media Gateway Control Protocol) Protocolo para controlar Gateways de voz sobre IP desde elementos de control externos. SGCP (Simple Gateway Control Protocol) Protocolo simple basado en UDP para manejo de terminales y conexiones entre terminales. SAP ( Session Announcement Protocol) Protocolo usado por manejadores de sesiones multicast para distribuir la descripción de una sesión multicast a un grupo grande de receptores. RTSP (Real-Time Streaming Protocol) Protocolo usado de interfaz a un servidor que proporciona datos en tiempo real. SDP (Session Description Protocol Describe la sesión para SAP, SIR y RTSP Tabla 2 Otros protocolos para VoIP. La recomendación H.323 es muy flexible y entendible, además incluye configuraciones para teléfonos convencionales, voz y video y videoconferencia multimedia, entre otras. Entre las ventajas comerciales que puede presentar esta recomendación se encuentran: • Establecimiento de estándares multimedia para infraestructura ya existente (redes basadas en IP). Al estar diseñado para compensar el efecto de una alta y variable latencia en una red de área local, H.323 permite el uso de aplicaciones multimedia, sin cambiar su infraestructura de red. • Por proporcionar interoperabilidad de dispositivo a dispositivo, de aplicación a aplicación y vendedor a vendedor, H.323 permite que los productos de diferentes clientes interactúen con otros productos H.323. • H.323 proporciona estándares para una interoperabilidad entre redes de área local y redes de otro tipo. • La carga de la red puede ser manejada, pues con H.323, el controlador de red, puede restringir la cantidad del ancho de banda de red disponible para una conferencia. • H.323 tiene el apoyo de muchas compañías de telecomunicaciones y organizaciones, incluyendo Intel, Microsoft y Netscape. • H.323 está diseñado para correr en arquitecturas de red comunes. 44 Facultad de Ingeniería UNAM • H.323 soporta el transporte multicast en conferencias comunes. • Una conferencia H.323 puede incluir terminales con capacidades diferentes. Durante el desarrollo de las especificaciones H.324 y H.323 para comunicaciones multimedia de la ITU, la colaboración entre la industria de la computación y las telecomunicaciones aumento dramáticamente. La adopción global de la recomendación H.323 de la ITU asegura a servicios más rápidos que de lo contrario no serían posibles. H.323 es un estándar que permite que interoperen productos de voz sobre IP y además tiene la flexibilidad de soportar diferentes tipos de software, hardward y capacidades de redes. 2.3.2 Descripción General 2.3.2.1 Arquitectura La recomendación H.323 envuelve los requerimientos técnicos para servicios de comunicación para audio y video en redes de área local, las cuales no proporcionan una calidad de servicio. H.323 define cuatro componentes para sistemas de comunicación basadas en redes, figura 16: Terminales, Gateway, Gatekeepers y Unidad de Control Multipunto (MCU). Estos componentes se comunican a través de la transmisión de flujo de información. A continuación se describen las principales características de estos. Figura 11 Arquitectura de la recomendación H.323 2.3.2.1.1. Terminales. Son usadas para comunicaciones multimedia bidireccionales en tiempo real, una terminal H.323 puede ser una computadora personal o un dispositivo por si solo, corriendo en él un stack H.323 y las aplicaciones multimedia. Una terminal soporta comunicaciones de audio y puede soportar opcionalmente, comunicaciones de video y datos, porque el servicio básico que una terminal H.323 proporciona es una comunicación de audio. Una terminal H.323 juega un papel determinante en servicio de telefonía IP. La meta principal de H.323 es trabajar en conjunto o interoperar con otras terminales multimedia. Un ejemplo de una terminal H.323 se muestra en la figura 17. El diagrama muestra las interfaces del equipo de usuario, codec de video, equipo telemático, la capa H.225.0, 45 Facultad de Ingeniería UNAM funciones de control de sistema y la interfaz para la red basada en paquetes. Todas las terminales H.323 deben tener una Unidad de Control de Sistemas, una capa de H.225.0, una interfaz de red y una Unidad de Codec de Audio. La Unidad de Codecs de video y las Aplicaciones de Datos de Usuarios son opcionales. Video I/O equipment Audio I/O equipment User Data Aplication T.120, etc. System Control User Interface Video Codec H.261, H.263 Audio Codec G.711, G.722, G.723, G.728, G.729 Receiver Path Delay H.225.0 Layer Local Area Network Interface System Control H.245 Control Call Control H.225.0 RAS Control H.225.0 Scope of Rec. H.323 Figura 12 Equipo terminal H.323 46 Facultad de Ingeniería UNAM 2.3.2.1.2. Gateways. El gateway debe proporcionar la traducción apropiada entre los formatos de transmisión (por ejemplo H.225.0-H.221) y entre los procedimientos de comunicación (por ejemplo H.245-H.242). El gateway también debe llevar a cabo el establecimiento y liberación de llamadas en ambos lados de la red. La traducción entre los formatos de video, audio y datos también la debe realizar el gateway. En general el propósito del gateway (cuando no opera como MCU), es reflejar las características de una terminal de red a una terminal de red de circuitos conmutada (SCN) y viceversa, en manera transparente. Una terminal H.323 se puede comunicar con otra terminal H.323 directamente en la misma red y sin necesitar un gateway. El gateway se puede omitir si la comunicación con terminales SCN (terminal que no está en la red) no se necesita. También puede ser posible, para una terminal en un segmento de la red llamar a través de un gateway y regresar a la red a través de otro gateway para pasar a un lado de un router, o evitar una conexión con ancho de banda pequeño. En la LAN el gateway tiene las características de una terminal H.323 o de una Unidad de Control Multipunto (MCU) y del lado de una SCN, puede verse como una terminal de SCN a una MCU de SCN. El gateway proporciona la conversión necesaria entre los diferentes tipos de terminales. Se debe notar que el gateway, inicialmente, puede operar como una terminal, pero después usando señalización H.245 comienza a operar como un MCU para la misma llamada, que inicialmente era punto a punto. Los gatekeepers reconocen cuando una terminal funciona como gateway, ya que esto se indica en el momento que el gateway o terminal se registra con el gatekeeper. En figura 18 se muestran ejemplos de un gateway H.323, funcionando como terminales o MCU en el lado H.323 y como terminales o MCU del lado SCN y la función de conversión. H.323 Terminal Function SCN Terminal Function H.323 MCU Function SCN Terminal Function H.323 Terminal Function SCN MCU Function H.323 MCU Function SCN MCU Function Conversión Function Gateway A Gateway B Conversión Function Gateway C Conversión Function Gateway D Conversión Function SCN SCN SCN SCN 47 Facultad de Ingeniería UNAM Figura 13 Configuración de gateway H.323 Como mínimo, el gateway debe proporcionar una función de conversión para el formato de transmisión señales y procedimientos para el establecimiento de una llamada y señales y procedimientos para el control de la comunicación. Cuando sea requerido, el gateway debe proporcionar la conversión de H.242 a H.245. el gateway realiza la conversión apropiada entre la señalización de llamada H.225 y el sistema de señalización SCN (Q.931, Q2931, etc.). Toda la señalización de llamada recibida por el gateway de una terminal SCN y no aplicable al gateway, deberá pasar a través de la terminal de red y viceversa. Esta le permite a las terminales h.323 desarrollar servicios suplementarios definidos en esas recomendaciones (H.450). 2.3.2.1.3. Gatekeeper. El gatekeeper, que es opcional es un sistema H.323, proporciona servicios de control de llama a las terminales H.323. el gatekeeper esta lógicamente separado de las terminales, sin embargo, su implementación física puede coexistir con un terminal, MCU, gateway u otro dispositivos de red. Cuando se presenta en un sistema, el gatekeeper, debe proporcionar los siguientes servicios: • Traducción de direcciones: El gatekeeper debe trasladar la dirección, “alias” a la dirección de transporte. Esto se debe hacer usando una tabla de traducción la cual se actualiza periódicamente. • Control de admisión: El gatekeeper debe autorizar el acceso a la red usando mensajes H.225 ARQ/ACF/ARJ. Esto se puede basar en autorización de llamada, ancho de banda, o algún otro criterio. Puede también ser una función la cual acepte todas las peticiones. • Control de ancho de banda: El gatekeeper debe soportar mensajes BRQ/BRJ/BCF, esto puede ser basado en el manejo de ancho de banda. Puede ser también una función nula que acepte todas las peticiones de cambio de ancho de banda. • Manejo de zona: El gatekeeper debe proveer las funciones mencionadas anteriormente para terminales, MCUs y gateways que se han registrado anteriormente con él. El gatekeeper puede realizar otras funciones opcionales tales como: • Señalización de control de llamada: El gatekeeper puede escoger completar la señalización de llamada con las terminales y puede procesar la señalización de llamada por sí solo. Alternativamente, el gatekeeper puede manejar a las 48 Facultad de Ingeniería UNAM terminales para que es conecten al canal de señalización de llamada directamente una a la otra. De esta manera, el gatekeeper puede evitar el manejo de señales de control de llamada H.225. el gatekeeper puede tener que actuar como la red como se define en la recomendación Q.931, para soportar los servicios suplementarios. • Autorización de llamada: A través del uso de señalización H.225.0, el gatekeeper puede rechazar llamadas de una terminal debido a una falla de autorización. Las razones para rechazar puedes incluir, peor no están limitadas a, restringir el acceso de o para terminales particulares o gateway y acceso restringido durante ciertos periodos de tiempo. • Manejo de ancho de banda: Control del número de terminales H.323 permitidas simultáneamente con acceso a la red. A través del uso de señalización H.225.0, el gatekeeper puede rechazar llamadas de una terminal, debido a limitaciones en el ancho de banda. Esto puede acurrior si el gatekeper determina que no existe el suficiente ancho de banda disponible en la red para soportar la llamada. • Manejo de llamada: El gatekeeper puede mantener una lista de llamadas H.323. esta información puede ser necesaria para indicar que una terminal esta ocupada y proporcionar información para la función de manejo de ancho de banda. Las entradas H.323 que contienen un gatekeeper debeb de tener un mecanismo para desactivar el gatekeeper interno, así que cuando existan múltiples entidades H.323 que contienen un gatekeeper en una red, las entidades H.323 pueden ser configuradas dentro de la misma zona. 2.3.2.1.4 Unidad de Control Multipunto (MCU) El MCU es un terminal que proporciona soporte para conferencias multipunto. El MCU debe consistir de un controlador multipunto (MC) y ninguno o varios procesadores multipunto (MP). Un MCU típico que soporta conferencias multipunto centralizadas consiste en un MC y un MP de video, audio y datos. Un MCU típico que soporta conferencias multipunto descentralizadas, consiste en un MC y un MP de datos. Confía en el procesamiento descentralizado de audio y video. La parte de red LAN de un gateway puede ser un MCU. Un gatekeeper puede incluir también un MCU. En cualquier caso, desempeñan funciones independientes. 49 Facultad de Ingeniería UNAM CAPÍTULO 3. TÉCNICAS DE COMPRESIÓN DE VOZ (CODECS) 3.1 Referencia de Diseño Un teléfono IP consiste de cuatro componentes: Interfaz de Usuario, Interfaz de Voz, Interfaz de Red y Procesador central y lógica asociada. La interfaz de usuario provee las funciones tradicionales de un teléfono. Lo mínimo consiste de un teclado para el discado de números (0-9, *, #) y un indicador de señal audible para el anuncio de llamadas llegadas para el usuario. Un teléfono más sofisticado provee teclas adicionales, que proporcionan funciones tales como: mute, re-discado, tono de espera, transferencia, conferencia, etc. Una pantalla también es proporcionada para desplegar usuario, numero discado, información de la llamada recibida, etc. En ciertos modelos el teléfono puede estar equipado con una interfase serial para permitir comunicación con dispositivos tales como un PDA para permitir sincronización de información, facilidades de discado automático, etc. La interfaz de voz provee la conversión de voz analógica a muestras digitales. Las señales de conversación son tomadas a una razón 8 KHz para crear un flujo de datos digitalizado de 64kbps para ser procesado vía Pulse Code Modulation (PCM). La interfaz de red permite la transmisión y recepción de paquetes voz desde y hacia el teléfono. Las LAN corporativas frecuentemente usan una Ethernet 10BaseT o 100BaseT corriendo bajo protocolo TCP/IP. El teléfono IP puede ofrecer un segundo conector Ethernet RJ-45 para permitir a un PC poder conectarse. El procesador central ejecuta el procesamiento de voz, el proceso de llamado, el proceso de protocolo y funciones de Software de administración de red. Este consiste generalmente de un Procesador de Señal Digital (DSP) para la voz y funciones relativas a una unidad Micro Controladora (MCU) para el resto de las funciones. Para asegurar la actualización del software el teléfono usa memoria Flash. 3.1.1 Arquitectura de Software El teléfono IP está basado en el estándar ITU H.323 para VoIP. El software consiste de los siguientes grandes subsistemas: Interfaz de usuario, Procesamiento de Voz, Gate de Señalización Telefónica, Protocolos de interfaz de Red, Agente administrador de Red, y servicios del sistema. Estos subsistemas están descritos abajo. 3.1.1.1. Interfaz de usuario El subsistema interfaz de usuario provee los componentes de software que maneje la interfaz de usuario de un teléfono IP y consiste de los siguientes submódulos. Controlador de Display. Controla el HW que genera los caracteres a desplegar. El dispositivo despliega una simple línea de despliegue con la identificación del llamado o múltiples líneas de despliegue con caracteres gráficos Controlador de Teclado. Ejecuta un examen de las teclas presionadas por el usuario. Controlador Audible. Ejecuta el control del HW que genera el sonido para el usuario. 50 Facultad de Ingeniería UNAM Procedimientos de Usuario. Control la información desplegada por el controlador de display y las teclas presionadas por el usuario, y luego convierte estos en una primitiva para el procesamiento de llamadas. 3.1.1.2. Procesamiento de voz El software de procesamiento esta compuesto por los siguientes módulos de software Interfaz de unidad PCM. Recibe muestras de PCM desde la interfaz análoga y luego envía al apropiado módulo de software DSP para el procesamiento. También de muestras PCM procesadas a la interfaz análoga Generador de Tono. Genera el tono para el llamado en proceso. Unidad canceladora de Línea de Eco. Eco en un teléfono de red es causada por reflexión de señales generadas por un circuito híbrido que convierte un circuito de 4 alambre (pares separadas para transmitir y recibir) y un circuito de dos alambres (un simple par para trasmitir y recibir). Esta reflexión del parlante de voz es escuchada en el parlante de oído. El eco igual esta presente en un convencional circuito conmutado telefónico. Sin embargo esto es aceptable porque el viaje de ida y vuelta de los retardos a través de la red son menores que 50 ms. El eco resulta un problema en voz sobre paquetes de red porque el viaje de ida y vuelta de retrasos son casi siempre mayores que 50 ms. Luego la técnica de cancelación del eco son requeridas. La ITU estándar G.168 define requerimientos de rendimiento que son actualmente requeridos por el cancelador de eco. El eco es cancelado hacia el paquete de red desde el teléfono de red. El cancelador de eco compara el dato de voz recibida desde el paquete de red con la voz que comienza a ser trasmitida al paquete de red. El eco desde el teléfono de red híbrido es removido por un filtro digital sobre la trayectoria de transmisión dentro del paquete de red. Detector de actividad de voz (VAD). Detecta actividad de voz y actividades y acciones de no transmisión de paquetes para así optimizar el ancho de banda. Usando una actividad no es detectada, la salida del codec puede no ser transportada cruzando la red. Este software también mide las características de ruido de la interfaz y reporta esta información. Unidad codificadora de voz. Ejecuta el empaquetamiento de 64 kbps de flujo de datos recibidos desde el usuario. Existen varios algoritmos de compresión que tienen diferentes características de rendimiento: G.711 PCM que opera a 64 kbps (sin compresión) G.726 ADPCM que opera a 16, 24, 32 y 40 kbps G.723.1 que opera a 5.3 o 6.3 kbps G.729 que opera a 8 kbps. Típicamente los algoritmos de compresión de voz que ejecutan mayor compresión de voz requieren mucho más poder de procesamiento. Esto debe ser notorio en la alta fidelidad de audio, la calidad de los algoritmos de compresión pueden ser usados en teléfonos IP ya que estos no están sujetos a una restricción de 4 KHz de ancho de banda como en PSTN. Esto permite proveer un mejor sonido que un PCM y permitir que la música sea reproducida con alta fidelidad. Packet Protocol Encapsulation Unit. Ejecuta la encapsulación de los paquetes de voz destinados a la interfaz de Red. Para VoIP esta encapsulación es por el 51 Facultad de Ingeniería UNAM protocolo transporte en tiempo real (RTP) que corre directamente sobre el tope de UDP. Cifrado de Voz. Proporciona un cifrado optima de datos de los paquetes de voz antes de ser transmitidos a la red (esto asegura la privacidad) Unidad de Control. Coordina el intercambio de información de monitoreo y control entre el módulo de procesamiento de voz y el módulo de administración de red y señalización de telefonía. Esta información intercambiada datos de configuración, información de señales y reporte de estatus. 3.1.1.3. Gate de señalización telefónica El subsistema de gate de señalización telefónica (TSG) ejecuta las funciones para establecer, mantener, y terminar una llamada. El TSG consiste de los siguientes módulos de software: Procesamiento de llamadas. Ejecuta el estado de procesamiento de la máquina para establecer, mantener y terminar. Direcciona traslación y parsing. Ejecuta la colección de dígitos y examina cuando un número discado ha sido completado y realiza la disponibilidad del número para direccionar la traslación. Señalización de la Red. Ejecuta las funciones de señalización para establecer, mantener y terminar los llamados sobre la red IP. Existen dos estándares H.323 y SGCP/MGCP. Protocolos H.323. El H.323 es un estándar ITU que describe como la comunicación multimedia ocurre entre usuarios terminales, equipamientos de red y variados servicios sobre redes IP de área local y ancha. Los siguientes estándares son usados sobre VoIP en un teléfono IP: H.225-Call Signalling Protocols. Realiza la señalización para establecer y terminar las conexiones de llamadas basadas en Q.931. H.245-Control Protocol. Proporciona capacidades de negociación entre dos puntos finales tales como que algoritmos de compresión son usados, solicitudes de conferencias, etc. RAS-Registration, Admission, and Status (RAS) Protocol. Usados para llevar el registro, admisión, cambios de ancho de banda y mensajes de estado entre dispositivos de teléfono IP y servidores llamados Gatekeeper que proporcionan las traslaciones de direcciones y control de acceso a los dispositivos. RTCP-Real-time Transport Control Protocol (RTCP). Proporciona información estadística para monitorear la calidad del servicio de llamadas de voz Protocolos SGCP/MGCP. Protocolo de control de simple gate (Simple Gateway Control Protocol SGCP) es un estándar que describe protocolo maestro/esclavo para establecer llamadas de voz sobre IP. El lado del esclavo o cliente reside en un gate (teléfono IP) y en el lado maestro reside una entidad referida como Agente llamador. SGCP ha sido adoptado por la industria de CABLE Modem como parte del estándar DOCSIS. SCMP esta evolucionando a un protocolo de control de puerta multimedia (Multimedia Gateway Control Protocol MGCP). 52 Facultad de Ingeniería UNAM 3.1.1.4. Administración de red El subsistema de administración de red soporta administración remota del teléfono. El agente administrador de red consiste de los siguientes cuatro módulos. Agente administrador de red. Ejecuta las funciones de administración de red de un teléfono IP, incluye monitoreo de estado y reporte de alarmas, obtención de estadística en respuesta a consultas SNMP, etc. Servidor de Web Embedded (opcional). Proporciona soporte a la administración vía Web. Presenta al usuario páginas Web para la configuración de teléfono IP, obtener información estadística. Puede proveer Applets Java para cargar al PC del usuario. SNMP. Ejecuta funciones para Simple Network Management Protocol (SNMP) para el procesamiento de Administración de Información Base (MIB). Obtener y Setear la generación de Alarmas. TFTP. Trivial File Transport Protocol (TFTP) es usado para bajar software actualizados y dejarlos en la memoria rápida. El protocolo de Interfaz de Red soporta cuatro comunicaciones sobre una LAN y consiste de los siguientes módulos de software. TCP. Transport Control Protocol (TCP) provee transporte confiable de datos, incluyendo retransmisión y control de flujo. Esto es usado para consultas en el Web y llamadas a funciones de señalización. UDP. The User Datagram Protocol (UDP) provee un eficiente pero no confiable transporte de datos. Esto es usado para transportar datos de voz en tiempo real ya que la retransmisión podría mucho más retraso a la conversación de voz y es inaceptable. El UDP es usado por SNMP y TFTP para administración de tráfico de red. IP. El protocolo Internet (IP) provee un estándar de encapsulación de datos para la transmisión sobre la red. Este contiene una dirección origen destino usada para el enrutamiento. MAC/ARP. Ejecuta el control de acceso al Medio (MAC), funciones de administración y maneja el protocolo de resolución de direcciones (ARP) para el dispositivo. Driver Ethernet. Configura y controla el hardware controlador Ethernet, incluye operaciones de inicialización de DMA. 3.1.1.5. Servicios del sistema Consiste de los siguientes módulos de software: Partida/Inicialización. Provee el arranque e inicialización de componentes de SW y HW del teléfono IP. POST. Proporciona funciones de Power-On Self-Test (POST) del teléfono IP. RTOS. El sistema operativo de Tiempo Real (RTOS) provee funciones tales como tareas de administración, administración de memoria y tareas de sincronización. BSP. Board Support Package (BSP) software. Provee controladores de interfaz de HW, vector de interrupciones, etc. que permiten al sistema operativo de tiempo real operar sobre la plataforma de hardware. Controlador Guardián de Tiempo. Provee control de un timer guardián (WDT), como un mecanismo de control para prevenir al teléfono IP de fallas de SW o HW 53 Facultad de Ingeniería UNAM Administrador de Memoria Rápida. Provee funciones para leer datos desde y hacia memoria rápida. Administrador de interfaz DSP. Proporciona los controladores para intercambiar información entre MCU y DSP, incluyendo bajar SW, funciones de administración de Red y paquetes de Voz. 3.2. Consideraciones de Implementación Como vimos anteriormente el teléfono IP requiere de software para el procesamiento de voz, software de protocolos de red y de administración de red. Lo anterior requiere de un importante poder de procesamiento y memoria que se agrega al costo del teléfono. Para poder reducir el costo, muchos de los bloques funcionales descritos anteriormente son típicamente integrados dentro de un simple Chip, es decir: DSP, MCU, controlador Ethernet, PCM y lógica asociada. 3.3 Codificadores para Voz La voz es fundamental para la Telefonía IP. En esta sección se describirán los codecs para voz y la transmisión de voz sobre redes digitales. Si se transmite voz humana digitalmente, se debe primero digitalizarla usando un convertidor Análogo–Digital (A/D) (Figura 19). La voz está limitada a frecuencias menores a 4 KHz en redes de teléfonos análogos. Por lo tanto muestreando a la tasa de Nyquist de 8 KHz se puede completamente caracterizar la voz de la telefonía analógica, produciendo 8000 muestras digitales por segundo. Las redes telefónicas utilizan modulación PCM para convertir una señal digital en muestras digitales al cuantificar la amplitud de la señal analógica a un nivel digital. Se debe cuantizar la muestra digital para el caso de que se pueda convertir nuevamente en una señal analógica. Si las muestras son representadas en uno de 16 niveles de bits y son enviadas a una red digital, entonces pueden ser reproducidas fielmente por el convertidor Digital – Análogo, (D/A) de regreso a la señal analógica original y poder ser escuchado a través de la bocina. El error de cuantización producido por el convertidor al reproducir una señal analógica a partir de una muestra digital de 16 bits es insignificante para el oído humano. Micrófono Muestras digitales Voz Analógica Voz Analógica Red digital D/A A/D Bocina Figura 1 Digitalización de la voz 54 Facultad de Ingeniería UNAM 3.3.1 Coder-Decoder (Codec) En una definición de pocas palabras tenemos que un codec es un algoritmo de compresión que transforma la voz análoga en una trama de bits digital y viceversa. Por lo que también se usa para indicar el tipo de compresión. La modulación de código de pulsos PCM (pulse code modulation) y la modulación de código de pulso diferenciado ADPCM (adaptive differential pulse code modulation) son ejemplos de técnicas de compresión (CODECS) que retoman características redundantes de la misma forma de onda. Estas técnicas utilizan técnicas de procesamiento de señales que comprimen la señal de voz enviando información paramétrica simplificada a cerca de la excitación de la señal original y del formar de la zona vocal, requiriendo un menor ancho de banda para transmitir esa información. Estas técnicas pueden ser agrupadas generalmente como CODECS “fuentes”. La tasa de bits en una red digital para cada trama de voz es de 128 Kbps (8000 muestras / s x 16 bits / muestra). Si la voz es transmitida a cientos y miles de kilómetros de un punto a otro, se economiza al reducir la tasa de bits y seguir proporcionando la calidad que es aceptable para los usuarios. Esto se logra al utilizar los codificadores, como se muestra en la figura 20, también conocidos como codecs, que consisten en un codificador y en un decodificador. El codificador comprime las muestras digitales del convertidor A/D al remover información predecible y redundante. El decodificador toma la salida de codificador y recrea las muestras digitales originales. Muestras Digitales Red Digital Voz Analógica. D/A Decoder Encoder A/D Micrófono Voz Analógica Voz Comprimida Voz descomprimida Bocina Figura 2 Uso de codecs Existen dos tipos de codecs: de audio y de voz. Los codecs de audio abarcan un rango de sonidos y ruidos por lo que tienen un radio más bajo de compresión que los codecs de voz. Los codecs de voz explotan las características de la voz humana para alcanzar niveles de compresión más altos. En la cuestión de reducir la tasa se encontrará la posibilidad de no enviar silencios en la red. Estudios han mostrado, que de cualquier manera, los usuarios prefieren el ruido de fondo de la bocina que el silencio muerto. Muchos codificadores que son desarrollados para aplicaciones multimedia distinguen entre silencio (cuando la persona no está hablando) y voz, y entre voz comprimida a una cierta tasa y silencio a una tasa mucho más baja. La compresión del silencio consiste en una Detección de Actividad de Voz (VAD) y en algoritmos de generación de ruido (Comfort Noise Generador, CNG). Se debe implementar el VAD en el codificador para determinar si las muestras digitales son de voz 55 Facultad de Ingeniería UNAM o son de silencio. Y se debe implementar el CNG en el decodificador, lo cual reconstruye el ruido de fondo para el receptor. La ITU-T ha estandarizado un número de codecs, incluyendo los siguientes: G.771. El codec G.711 está especificado en [72G711] y es extensamente usado en redes digitales de telecomunicaciones. En Norteamérica y en Japón, el G.711 es conocido como ley-μ, y en Europa es conocido como ley-A. G.711 ley -μ y ley- A comprimen a muestras lineales de PCM de 14 bits y a muestras PCM de 13 bits respectivamente, dentro de muestras logarítmicas de 8 bits, produciendo una tasa de 64 Kbps. En resumen utiliza entre 48 y 64 Kbps. Proporciona calidad de sonido telefónico y es el único protocolo de audio imprescindible para que el equipo sea compatible con H.320. G711 ya se encuentra en el formato para la entrega digital de voz en la red pública telefónica o en los PBXs. G.722 También utiliza entre 48 y 64 Kbps. Proporciona sonido estéreo y es habitualmente soportado por los sistemas de clase 2. G.723.1 El codec G.723.1 está especificado en [96G723] y utiliza la Cuantización Multipulso de Máxima Probabilidad, cuya traducción es Multi-Pulse Maximum Likelihood Quantization (MP-MLQ) algoritmo que comprime a bloques de 30 ms de 240 muestras de 16 bits en frames de 24 bytes, produciendo una tasa de 6.3 Kbps. Otro algoritmo: Algebraic Code-Excited Linear Prediction (ACELP), comprime bloques de 30 ms para frames de 20 bytes produciendo una tasa de 5.3 Kbps. El G.723.1 produce uno de los tres tamaños de frame: 24 bytes, 20 bytes o cuatro bytes. El frame de 4 bytes especifica parámetros de ruido cómodo. No existe ninguna restricción acerca como son intermezclados los frames de 4, 20 y 24 bytes. Los dos bits menos significativos del primer byte en el frame determinan el tamaño y el tipo de codificador como sigue: Bits 00 implican un frame de 24 bytes. Bits 01 implican un frame de 20 bytes. Bits 10 implican un frame de 4 bytes. Bits 11 está reservado para un uso futuro. Se puede intercalar entre las dos tasas a cualquiera de las tramas con límite de 30 ms. G.723.1 también especifica los algoritmos de VAD y CNG en [G723A96]. En conclusión sobre este codec, G.723 describe una técnica de compresión que puede ser usada para comprimir voz u otros componentes de una señal de audio de servicio multimedia a una tasa baja de bits, como parte de la familia de estándares H.324; este código tiene dos tasas asociadas a 5.3 y 6.3 kbps; la tasa más alta está basada en la tecnología MP-MQL y tiene una mayor calidad; la tasa más baja está basada en CELP, que tiene una buena calidad y provee a los diseñadores del sistema una flexibilidad adicional. G.726. El codec G.726 esté especificado en [90G726]. Este codec utiliza la modulación Adaptive Differential Pulse Code Modulation (ADPCM) algoritmo que comprime muestras de 8 bits de 64 Kbps de G.711 para muestras de 2, 3, 4, o 5 bits a tasas de 16, 24, 32, o 40 Kbps, respectivamente. Se puede convertir muestras del G.726 a muestras de G.711. Por lo que puede ser intercambiada entre redes de paquetes de voz y telefonía pública y/o redes de PBX., a condición de que éstas últimas tenga capacidad para ADPCM. G.728. El codec G.728 está especificado en [92G728]. Este codificador utiliza la Predicción Lineal, Low Delay Code-Excited Linear Prediction (LD-CELP), algoritmo que comprime a bloques de 0.625 ms de 5 muestras de 16 bits en 56 Facultad de Ingeniería UNAM muestras de 16 bits a una tasa de 16 Kbps. El G.728 solamente requiere 16 Kbps. Esto es muy útil para videoconferencias a velocidades inferiores a 256 Kbps. Además, permite un mayor ancho de banda para video G.729. El codec G.729 está especificado en [96G729]. Este codificador utiliza la Estructura Conjugada ACELP: Conjugate Structure – Algebraic Code-Excited Linear Prediction (CS-ACELP), este algoritmo comprime bloques de 10 ms de 80 muestras de 16 bits en uno de dos frames de 10 bytes (8 Kbps) o de 2 bytes. El frame de 2 bytes especifica los parámetros para ruido. El G.729 también especifica los algoritmos VAD Y CNG en [G729B97]. Las dos variaciones de este estándar (G.729 y G.729 Annex A) difieren largamente en complejidad computacional pero las dos proveen una calidad de voz como la de 32 kbps en ADPCM. El estándar más básico de compresión de audio se conoce con la designación de G.711. Este algoritmo comprime una comunicación de audio a 64kbps lo cual ofrece una muy buena calidad de audio, sin embargo requiere de canales de comunicación relativamente grandes si se van a soportar múltiples llamadas. Otros algoritmos comúnmente soportados por los equipos de VoIP son G.723 y G.729. Estos algoritmos pueden llegar a comprimir la voz hasta los 5.3 kbps lo cual permitiría soportar una gran cantidad de llamadas sobre un enlace ADSL de 128 kbps (como ADSL es asimétrico, se debe considerar el valor de ancho de banda mínimo que normalmente es 128 kbps) o bien unas pocas llamadas más tráfico de datos sobre el mismo enlace. 3.3.2 Ley μ y Ley A Ley μ y Ley A son sistemas de compresión de audio (CODEC) definidos por el formato G.711 de CCITT, lo que comprime 16 bits lineares de datos de PCM en 8 bits de datos logarítmicos. En el proceso de codificación, al que en general se llama compresión/expansión logarítmica, se divide la información de PCM en segmentos de manera que cada segmento progresivamente mayor tiene el doble de tamaño que el anterior. Esto asegura que las señales de amplitud más bajas (en las que se encuentra la mayoría de los datos de los diálogos) tengan la mejor resolución de bits y al mismo tiempo se permite un rango dinámico suficiente para codificar las señales de amplitud más altas. Si bien este método no ofrece una compresión muy alta (aproximadamente 2:1), no requiere mucha potencia de procesamiento para decodificar. Ley μ es el sistema de codificación que se usa en América del Norte y Japón para la transferencia de datos de voz, en muchos sistemas de respuesta de voz interactiva y dispositivos de conmutación privados y en radio por Internet (vía MIME). El sistema Ley A se utiliza en Europa y en el resto del mundo. Cod. lineal A-Law 0000000wxyza 000wxyz 0000001wxyza 001wxyz 000001wxyzab 010wxyz 00001wxyzabc 011wxyz 0001wxyzabcd 100wxyz 001wxyzabcde 101wxyz 01wxyzabcdef 110wxyz 57 Facultad de Ingeniería UNAM 1wxyzabcdefg 111wxyz Cod. Lineal μ-Law 00000001wxyza 000wxyz 0000001wxyzab 001wxyz 000001wxyzabc 010wxyz 00001wxyzabcd 011wxyz 0001wxyzabcde 100wxyz 001wxyzabcdef 101wxyz 01wxyzabcdefg 110wxyz 1wxyzabcdefgh 111wxyz 58 Facultad de Ingeniería UNAM 3.4 Atributos Básicos de los Codificadores de Voz La reducción en la tasa de bits por los codecs conlleva un retardo y una reducción en la calidad de la voz. Existen cuatro atributos básicos que determinan las características de los codecs: tasa de bits, complejidad, retardo, y calidad. La tabla muestra como cada uno de estos codificadores se comparan con base a estos atributos: 3.4.1 Tasa de bits (bit rate) Una tasa menor de bits es importante desde dos puntos de vista. Primero, es económico “apretar” más cadenas de voz en el mismo ancho de banda. Segundo, en aplicaciones multimedia, el ahorro en la tasa de bits de la voz puedes ser asignado a otras señales como video o datos. No es una coincidencia que la tasa del G.723.1 es la más baja entre los codificadores aquí mencionados. El G.723.1 fue en un principio desarrollado para video-teléfonos donde el ancho de banda del canal es compartido entre la voz y el video. 3.4.2 Complejidad (complexity) El número de Millones de Instrucciones por Segundo (MIPS) que es necesario para ejecutar los algoritmos de codificación y de decodificación mide la complejidad del codec. Para aplicaciones portables, el uso de memoria ROM y memoria RAM es también importante, pero para aplicaciones de PC, la memoria es de poca importancia. Una mayor complejidad se traduce como un mayor CPU (Central Processing Unit), y el uso de memoria resulta en un mayor costo y uso de potencia. La medida de la complejidad de un codec depende de un número de factores, siendo los más importantes el procesador que está siendo utilizado, los requerimientos de memoria y la implementación del algoritmo. El codec más complejo es el G.728, cerca de 15 veces más complejo que el codec G.726, y cerca de 2 veces que el G.723.1. Por otra parte, el más simple es el G.711 y toma una cantidad insignificante de potencia de procesamiento. 3.4.3 Retardo (delay) El retardo que es producido por el codificador depende de tres factores: tamaño del frame, look-ahead y tiempo de procesamiento. Los codificadores trabajan en grupos de muestras llamados frames. El G.723.1 tiene un tamaño de frame de 30 ms, lo cual es equivalente a 240 muestras, y el G.729 tiene un tamaño de frame de 10 ms, lo que es equivalente a 80 muestras. Además, al esperar por un frame completo, algunos codecs también colectan algunas muestras de encabezado del frame para análisis en la compresión del frame. Este tiempo adicional es el tiempo look-ahead. El tiempo look- ahead para G.723 es de 7.5 ms, y para el G.729 es de 5 ms. El retardo debido al tamaño del frame y el look-ahead son llamados el retardo algorítmico. El retardo algorítmico para el G.723.1 es de 37.5 ms y para el G.729 es de 15 ms. Otros codecs en la tabla no tiene el look ahead. G.711 y G.726 son con base en tamaños de frame de una muestra. 59 Facultad de Ingeniería UNAM El retardo algorítmico es constante para el codec dado, pero el tiempo de procesamiento depende de la potencia de procesamiento del hardware que se esté utilizando. El tiempo de procesamiento también depende de la complejidad del codec. El retardo es equivalente al tiempo empleado en codificar y decodificar un frame. Por lo que el retardo es igual al retardo algorítmico más el tiempo de procesamiento. La tabla 3 muestra el retraso que introducen los diferentes CODECS: Método de Compresión Tasa (kbps) Retraso de Compresión (ms) G.711 PCM 64 0.75 G.726 ADPCM 32 1 G.728 LD-CELP 16 3-5 G.729 CS-ACELP 8 10 G.729a CS-ACELP 8 10 G.723.1 MPMLQ 6.3 30 G.723.1 ACELP 5.3 30 Tabla 1 Retraso Introducido por los codecs El retardo del codec incluye 5 ms por el retardo de detección de actividad de voz (VAD) y por el tiempo de procesamiento para la cancelación de eco. Debe tomarse en cuenta que una buena estimación de estos componentes del retardo “end-to-end” no es difícil de realizar si se conoce la trayectoria de la señal/datos, el CODEC y el tamaño de la carga útil. El protocolo H.323 comprende aplicaciones de audio, video, datos y control del sistema. Recomienda los CODECS para audio G.711, G.722, G.723, G.723.1, G.728 y G.729. Comúnmente un foro de voz sobre IP recomienda G.723.1 para sus aplicaciones. En el diseño de voz sobre IP, la latencia y el retardo deben ser firmemente controlados. Para alcanzar una calidad de voz aceptable, su retardo end-to-end debe permanecer por de bajo de los 200 ms. Este retardo en el retardo de paquetización y no en un retardo promedio. 3.4.4 Calidad (quality) Mientras los CODECS recaigan más sobre técnicas subjetivas de compresión, los estándares de calidad son medidos por la distorsión armónica total y la relación señal – ruido tiene menos correlación con la calidad del CODEC percibida. Desde que la calidad en voz y sonido en general es subjetiva para el oyente, es importante tener un amplio rango de oyentes y material de muestra. La calidad del codec es comúnmente medida mediante las calificaciones de Mean Opinión Store (MOS). Este grado es subjetivo, donde 1 es malo y 5 es excelente. Los expertos asignan una calificación MOS al comparar la calidad de voz de un codec en específico con otro codec conocido. Posteriormente se obtiene un promedio para obtener una calificación significativa, MOS (mean opinion score). La calificación Mos del G.711 es de 4, la cual es la calidad de voz en las líneas de la telefonía estándar (también conocida como toll quality). Ambos codecs el G.729 y la versión de tasa más alta del G.723.1 tiene una toll quality cercana. 60 Facultad de Ingeniería UNAM Codec Tasa en Kbps Complejidad comparada con G.726 Retardo algorítmico Calidad MOS G.711 64 Muy baja 0.125 4.0 G.723.1 5.3 8 37.5 3.9 G.723.1 6.3 8 37.5 3.6 G.726 32 1 0.125 3.85 G.728 16 15 0.625 3.61 G.729 8 10 15 3.9 G.729ª 8 6 15 3.7 Tabla 2 Comparación de los codecs de voz basados en los atributos básicos Las pruebas MOS también son usadas para comparar que tan bien trabaja un CODEC en particular bajo circunstancias variables, incluyendo diferentes niveles de ruido de fondo, múltiples codes y decodes, etc. Estos datos pueden ser usados entonces para comparar con otros CODECS. La calificación MOS para varios CODECS (de ITU-T), están ilustrados en la siguiente tabla. Método de compresión Tasa (kbps) Procesamiento (MIPS) Tamaño del frame MOS Score G.711 PCM 64 0.34 0.125 4.1 G.726 ADPCM 32 14 0.125 3.85 G.728 LD-CELP 16 33 0.625 3.61 G.729 CS-ACELP 8 20 10 3.92 G.729x2 Encodings 8 20 10 3.27 6.729x3 Encodings 8 20 10 2.68 G.729aCS-ACELP 8 10.5 10 3.7 G.723.1 MPMLQ 6.3 16 30 3.9 G.723.1 ACELP 5.3 16 30 3.65 Tabla 3 Métodos de Compresión y sus calificaciones MOS respectivas: Procesamiento MIPS fue dado por los DSP´s 54X de Texas Instruments Aparte de los atributos básicos que se han descrito, hay también un número de atributos que pueden ser de igual importancia, dependiendo del medio y de la aplicación. Con los costos de mantenimiento y creación de infraestructura necesaria para el sustento de la calidad de una red de nuestros días, puede ser que parezca más fácil y barato convertir todas las llamadas para los codecs de tasa de bits baja y ahorrar en los costos de infraestructura. Sin embargo, existen algunas desventajas en la compresión de voz; como se muestra en la tabla anterior una de las principales desventajas es la distorsión de la señal debido a 61 Facultad de Ingeniería UNAM las múltiples codificaciones y decodificaciones (también conocidas como las Codificaciones Tandem). Cuando una señal de voz G.729 es comprimida, muchas veces la señal se degrada de una calificación MOS de 3.92 (muy buena) a 2.68 (normalmente inaceptable) después de tres codificaciones tandem. Para comprender como es alcanzada una alta calificación MOS con un CODEC de tasa de bits baja como el G.726, es importante conocer completamente como trabaja este CODEC. Estudios sobre nuestra voz han demostrado que un porcentaje al hablar, es silencio, con secciones altamente correlacionadas y repetitivas. Entendiendo este estudio hace posible el tomar ventaja de los patrones de voz haciendo uso de modelos matemáticos para predecir el siguiente sonido que nuestra voz realizará, basándose en muestras previas. Usando el mismo modelo predictor en ambos lados de la codificación (codificación y decodificación), solo la información que necesita ser transmitida es la diferencia entre que es lo esperado y lo que de hecho ocurre en la señal de voz. G.726 (ADPCM) usando 32 kbps es a menudo aceptada con una muy buena calidad como a 64 kbps (PCM). Con este tipo de codecs, cualquier señal que esté entre la banda de voz de 4 KHz, puede ser convertida a señales digitales y posteriormente transportada. Desafortunadamente, usando tasa bajas (24, 16 kbps) para ADPCM causa defectos significantes para la calificación MOS. Para poder utilizar CODECS de tasa baja como el G.729 y G.723 (conocidos como codecs de tasas bajas) y mantener una calidad PCM o “forma de onda” de voz aceptable, la codificación tiene que ser abandonada. Con los avances en procesamiento (digital signal processor, DSP) y costos (million instructions per second, MIP) conocidos también como los avances en la tecnología de voz, sea convertido en una realidad usar escalas largas de compresión de voz. Uno de los más interesantes hechos de codificación predictiva lineal (LPC) y otro codec híbrido es que la voz no es transmitida a través de la red. Las LPC´s sintetizan la zona vocal (cuerdas bucales, pulmones) y un filtro sintetiza otros componentes (boca, lengua, labios, etc.). Los sonidos o excitaciones son enviados hacia el filtro, y se obtiene voz sintetizada. Este escenario representa la necesidad de una mejora, en comparación de los bits con PCM. Por ejemplo, LPC´s son sintetizados o muestreados cada 20 milisegundos, comparado con PCM, que muestrearía 160 veces en los mismo 20 milisegundos; así, en el mismo periodo un LPC transmitiría 40 bits por segundo mientras que la codificación estándar PCM enviaría 1280 bits por segundo. Mientras que comprimir paquetes de voz a 8 kbps parece ideal, con ancho de banda ganado y compensaciones en la calidad, los usuarios han puesto un cuidad especial en el diseño de redes de voz con compresión de tasa baja. Uno de los criterios más importantes es minimizar el retardo punto a punto (end-to-end). Este retardo total ha sido encontrado aceptable mientras se encuentre en el rango de 150 a 200 ms. Este retardo total incluye el retardo introducido por el CODEC, por la red, la velocidad de la luz y otros factores. Mientras que las especificaciones de un usuario sean las de mayor o menor retardo, es importante entender que retardo es más o menos manejable en la red y que CODEC asegura un retardo relativamente constante. Considerando la figura 21, donde una conexión ha sido establecida entre un teléfono y un sistema de Respuesta de Voz Interactiva, Interactive Voice Response (IVR). En este escenario, puede ser deseable pasar tonos de Dual Tone Multi- Frequency (DTMF), es decir, tonos duales de multifrecuencia, a través del codec y a lo largo con voz y datos. DTMF es un estándar internacional de telefonía para codificar dígitos (0123456789*#). 62 Facultad de Ingeniería UNAM Cuando se presiona un dígito en el teléfono, el generador DTMF codifica el dígito como la suma de sinusoidales correspondientes a las frecuencias de la fila y de la columna de ese dígito. El convertidor A/D convierte este tono a muestras digitales y viaja hacia el codificador. El codificador debe codificar el DTMF para que el decodificador pueda entonces reproducirlo perfectamente. Entre los codecs descritos, solo el G.723.1 no puede reproducir perfectamente DTMF. Voz Analog. Voz comprimida Voz Analog. Muestras Digitales Muestras digitales descomp. Voz Analog. Red Digital Teléfono A/D D/A Encoder Decoder Teléfono D/A IVR A/D Decoder Figura 3 Compresión de voz en VoIP 3.4.5 Retardo end-to-end El retardo end to end es el tiempo que le toma a la voz viajar del micrófono a la bocina. Para modelar este retardo, se debe seguir el patrón que la primera muestra toma. Cuando una persona habla al micrófono, el convertidor A/D digitaliza la voz y la almacena en la memoria. Las muestras son retenidas hasta que haya las suficientes para alcanzar un tamaño de frame y un tiempo de look –ahead para procesarlas como un frame. El frame es entonces codificado y transmitido a través de la red hacia el decodificador. El decodificador convierte el frame de nuevo a muestras y dirige la primera muestra al convertidor D/A. El convertidor D/A convierte esta muestra digital a una señal analógica y reproduce el sonido en la bocina. Todos los siguientes frames y muestras son canalizados una tras otra, apareciendo como una frecuencia constante de 8000 muestras/s en el convertidor D/A. El retardo que la primera muestra experimenta existe en los siguientes componentes: micrófono, convertidor A/D, codificador, transmisión, decodificador, convertidor D/A, y bocina. El retardo en el punto final depende del hardware y de en el sistema operativo (OS) usado. Generalmente, el retardo en el micrófono, en los convertidores A/D y D/A, y en la bocina son mínimos, por lo cual se pueden ignorar. El retardo en el codificador se debe al retardo algorítmico más el tiempo de procesamiento. El retardo en el decodificador es producido enteramente por el tiempo de procesamiento. El retardo combinado en el codificador y en el codificador es conocido como el retardo del codec. 63 Facultad de Ingeniería UNAM El tiempo de transmisión es el tiempo que le tomo al frame viajar de la salida del codificador hacia la entrada del decodificador. Este retardo depende de la red que se está empleando. Por lo que se puede entonces caracterizar el retardo punto a punto (end to end) (De-e) como el retarde del codec (Decoder) más el tiempo de transmisión (Dt) como se muestra en la figura 22. Se debe tomar en cuenta este retardo (end to end) para una conversación full-duplex como un mínimo. Un retardo end to end que sea mayor que 300 ms puede hacer que la conversación sea deficiente, torpe e interrumpida, por lo que un retardo menor de 300 ms es lo más deseable. El retardo del codec depende del codec que se esté utilizando. Para el G.723.1 el tiempo típico de procesamiento en el codificador y en el decodificador es de 4 ms y 1 ms, respectivamente. Con el retardo algorítmico de 37.5 ms, el retardo total del G.723.1es de aproximadamente 42.5 ms. El tiempo de transmisión depende de la red en que se está trabajando. Los dos componentes esenciales de este tiempo de transmisión son el retardo de la red (Dnet) y la variación en el retardo, lo que se conoce como jitter (Jnet). Muestras Digitales Descomp. Internet De-jitter Buffer Voz Analog. Micrófono Voz Analog Voz Comprimida Voz descomprimida Bocina Tiempo de Transmisión Retardo end to end Encoder D/A Decoder A/D Figura 4 Retardo end-to-end Por lo tanto el retardo total es: Dtotal = Dnet +Jnet Esta ecuación se puede modelar como lo muestra la figura anterior, donde el dejitter buffer absorbe el jitter en la red, entonces cuando el primer frame ha sido reproducido en la bocina, hay una garantía de que otro frame está listo para ser reproducido. El tamaño del dejitter buffer en ms depende del máximo valor de jitter de la red y del tamaño del frame. Solo se necesita dejitter buffer cuando el jitter en la red es mayor que el tamaño del frame. En Internet, el retardo end to end y el jitter dependen de si la red está ligeramente congestionada, congestionada o severamente congestionada. Debido a que Internet fue desarrollado para aplicaciones en tiempo no real, la red no ofrece Calidad de Servicio, Quality of Service (QoS) para garantizar un límite máximo de retardo en la red y de jitter. 64 Facultad de Ingeniería UNAM Un retardo típico en la red es alrededor de 80 ms para 6000 millas, donde el jitter en la red fluctúa considerablemente. Los primeros elementos que son cruciales en la decisión del diseño es que CODEC se requiere utilizar. Quien necesita desarrollar una red de voz sobre IP deberá tomar ventaja tanto de la supresión de silencio (VAD) como de la compresión (G.729). De cualquier forma, existen corporaciones que ofrecen un servicio superior y el CODEC G.711 (64 kbps) es más atractivo. Algunas de las variables para elegir un CODEC pueden incluir las calificaciones MOS, las codificaciones tandem, ancho de banda, costo, y usuarios de voz sobre IP. Estas variables necesitan ser consideradas antes de elegir un CODEC específico. 3.4.6 Calidad de servicio QoS Se entiende por calidad de servicio la posibilidad de asegurar una tasa de datos en la red (ancho de banda), un retardo y una variación de retardo (jitter) acotados a valores contratados con el cliente. Para disponer de una calidad de servicio aceptable en redes soportadas en protocolo IP se han diseñado herramientas como son los protocolos de tiempo-real RTP y de reservación RSVP. Por otro lado, un problema evidente es que cuando se soporta un servicio de voz sobre IP (VoIP) por ejemplo, los paquetes son cortos y el encabezado es largo comparativamente. En este caso se requiere un encabezado reducido y un proceso de fragmentación e intercalado LFI. Mediante QoS (Quality os Service) se tiende a preservar los datos con estas características. Los servicios tradicionales de la red Internet (SMTP o FTP) disponen de una calidad denominada "best effort"; es decir que la red ofrece el mejor esfuerzo posible para satisfacer los retardos mínimos; lo cual no es mucho pero es suficiente para servicios que no requieren tiempo-real como el web. Para servicios del tipo "real-time" (voz y vídeo) se requiere una latencia mínima. Se denomina latencia a la suma de los retardos en la red. Los retardos están constituidos por el retardo de propagación y el de transmisión (dependiente del tamaño del paquete), el retardo por el procesamiento "store-and-forward" (debido a que los switch o router emiten el paquete luego de haber sido recibido completamente en una memoria buffer) y el retardo de procesamiento (necesario para reconocimiento de encabezado, errores, direcciones, etc.). Un tiempo de latencia variable se define como jitter (fluctuación de retardo) sobre los datos de recepción. La solución al jitter es guardar los datos en memorias buffer, lo cual introduce un retardo aun mayor. Se han implementado diversas formas de buffer garantizados mediante software: Cola prioritaria: donde el administrador de la red define varios niveles (hasta 4) de prioridad de tráfico. Cola definida: donde el administrador reserva un ancho de banda para cada tipo de protocolo específico. Cola ponderada: mediante un algoritmo se identifica cada tipo de tráfico priorizando el de bajo ancho de banda. Esto permite estabilizar la red en los momentos de congestión. Una vez digitalizada la voz y empaquetada, se envía al canal de transmisión y aquí no existen soluciones que nos garanticen o permitan establecer anchos de banda, dimensión de paquetes y retrasos aceptables en su transmisión. Las posibles soluciones pasan por diferenciar los paquetes de voz de los paquetes de datos, priorizar la transmisión de los 65 Facultad de Ingeniería UNAM paquetes de voz y hacer que los retrasos añadidos a la transmisión de los paquetes no superen en ningún caso los 150 milisegundos (por recomendación de la “ITU”). Las líneas de trabajo actuales y las soluciones hasta el momento desarrolladas, se basan en obtener los siguientes parámetros: Ancho de Banda: Es el intervalo de frecuencias que ocupa en el espectro radioeléctrico una señal eléctrica para poder transmitir la información que le ha sido insertada o que lleva consigo, sin llegar a tener alguna pérdida. En el caso de señales digitales, es los intervalos de frecuencias que se necesitan para poder muestrear una señal y obtener la cantidad suficiente de información para poder recuperarla en su totalidad o con una calidad determinada. Retardo: Una vez establecidos los retardos de procesado, retardos de tránsito y el retardo de procesado la conversación se considera aceptable por debajo de los 150 ms. Eco: El eco es debido a una reflexión, habitualmente se debe a un desajuste de impedancias. 3.4.6.1 Obtener “QoS” Se define como la obtención de los siguientes parámetros: 1. Supresión de silencios y “VAD” (“voice activity detection”): establecer diferencia entre habla y silencio, no transmitir paquetes de silencio y generación de silencios al otro extremo. 2. Compresión de encabezados: asunción de los estándares “RTP/RTCP”. 3. RTP: Comprime encabezados de 40 “bytes” a 2-4 la mayor parte del tiempo sin resolver reserva de recursos o calidad de servicio garantizada. 4. RTCP (“Real-Time Control Protocol”): proporciona realimentación sobre la calidad. 5. Reservación de Ancho de Banda: implantación del estándar “RSVP” (Protocolo de Reservación de Recursos) de la “IETF” (“Internet Engineering Task Force”) (Schmidt A. et al, 1998). “RSVP” incorpora reserva de ancho de banda y retardo además de establecer una lista de acceso dinámica de extremo a extremo. Sus principales deficiencias se establecen en su defectuoso crecimiento (solución válida en redes pequeñas) y en su deficiente autorización y autentificación. Además hay que tener en cuenta que las actuales infraestructuras no la tienen en cuenta. 6. Priorizar: existen diferentes tendencias tales como: Las líneas de trabajo actuales de cara a conseguir Calidad de Servicio en una Transmisión IP, están basadas en: “CQ” (“Custom Queuing”): asignación de un porcentaje del ancho de banda disponible. “PQ” (“Priority Queuing”): establecer prioridad en las colas. “WFQ” (“Weight Fair Queuing”): asignar prioridad al tráfico de menos carga. “DiffServ”: definido en borrador por la “IETF”, evita tablas en “routers” intermedios y establece decisiones de rutas por paquete. 7. Control de Congestión: uso del protocolo “RED” (“Random Early Discard”): técnica que fuerza descartes aleatorios. 8. Uso de “IpV6”: mayor espacio de direccionamiento y posibilidad de “Ipv6” & “Tunnelling”. 3.5 Requisitos de la Telefonía en la Red IP 66 Facultad de Ingeniería UNAM 3.5.1 Ancho de Banda Hay que tener presente el ancho de banda de una comunicación de voz IP y el número de comunicaciones simultáneas que se requieran. Habitualmente en el entorno LAN, donde se utiliza tecnología Switch a 10 o 100 Mbps, se elige la compresión G711 con un ancho de banda de 84,7 Kb/s ya que se obtiene mayor calidad y se dispone suficiente ancho de banda. En cambio en el entorno WAN, donde el ancho de banda es más escaso y costoso, se elige la compresión G723 con un ancho de banda de 27,2 Kb/s. Afortunadamente el ancho de banda de las comunicaciones de voz no aumentará en el futuro y en cambio el ancho de banda en la WAN tiende a aumentar a la vez que los precios se reducen. Esto permitirá que cada vez sea más barato aumentar el número de comunicaciones de voz en la WAN. Codec de audio BW comprimido BW paquetizado BW en Ethernet G.723 6.3 Kbps 17 Kbps 27.2 Kbps G.729 8 Kbps 24 Kbps 28.8 Kbps G.711 64 Kbps 74.6 Kbps 84.7 Kbps FAX 4.8 Kbps 12.8 Kbps 20.4 Kbps Tabla 4 Ancho de banda en codecs Nota: el ancho de banda puede reducirse entre 30- 40% cuando se utiliza la detección de silencios (VAD). Y en las líneas WAN, los Routers pueden utilizar la compresión de encabezados IP (cRTP) para reducir las encabezados de 40 a 2-4 bytes, pudiendo reducir hasta 16,41 Kb/s en el caso de G723. Porcentaje de Pérdida de Paquetes: Los equipos de la red Routers y Firewall debido a la prioridad de flujo y a los picos de tráfico pueden perder paquetes de datos y producir retardos en la transmisión. Estos paquetes perdidos son retransmitidos y de este modo no se pierde información, no obstante mientras en las aplicaciones de datos no suelen tener impacto, sí lo tiene en la Voz sobre IP. 3.5.2 Información Voz sobre IP y especificaciones para el Módulo CISCO. Para determinar el ancho de banda utilizada para varias topologías usando diferentes métodos de compresión se tiene la siguiente tabla: G.729 Tamaño del frame G.711 Tamaño del frame G.729w/CRTP Tamaño del frame G.711w/CRTP Tamaño del frame Frame Relay 66 bytes 206 bytes 28 bytes 168 bytes Con fax 66 bytes 66 bytes 28 bytes 28 bytes PPP 66 bytes 206 bytes 28 bytes 168 bytes Con fax 66 bytes 66 bytes 28 bytes 28 bytes HDLC 66 bytes 206 bytes 28 bytes 168 bytes Con fax 66 bytes 66 bytes 28 bytes 28 bytes Tabla 5 Tamaño de paquetes con diferentes Esquemas de Compresión y diferentes topologías 67 Facultad de Ingeniería UNAM Para determinar el verdadero valor del ancho de banda consumido por cada tipo de encapsulado acompañado por cada tipo de codec, se utiliza la siguiente fórmula: “Se debe multiplicar el número de bytes por 8 para obtener la cantidad en bits. Posteriormente se multiplica por 50 para obtener los bits por segundo.” Ejemplo: G.729 con compresión de encabezado RTP sobre Frame Relay. La tarjeta da un frame de 28 bytes, entonces 28 x 8 = 224 La implementación de voz sobre IP envía un frame cada 20 milisegundos; esto equivale a 50 paquetes por segundo: 224 x 50 = 11,200 bps = 11.2 Kbps. Esta tasa es solo par el tráfico de voz en sí mismo, no contempla a los protocolos relacionados con la Interfase Local de información, (LMI). Este es el ancho de banda consumido si solo el usuario esta hablando y la detección de actividad de voz (VAD) está activada. Si el usuario está hablando al mismo tiempo o la detección no está siendo utilizada, entonces la trama de 11.2 Kbps necesita ser duplicada. Si el ruido de fondo es significante, el VAD no será capaz de distinguir el ruido de fondo de la señal de voz, y los paquetes serán transmitidos, consumiendo ancho de banda aunque no haya señal de voz. 68 Facultad de Ingeniería UNAM 3.6. DSP´s Y Microprocesadores 3.6.1. Ventajas y desventajas del procesamiento digital vs. Procesamiento analógico. Las técnicas de procesamiento digital de señales plantean grandes ventajas respecto a las analógicas. Entre ellas cabe destacar: Programabilidad. Permite utilizar un mismo sistema para implementar varios algoritmos. Estabilidad, repetitividad y comportamiento previsible. El comportamiento de un sistema analógico se ve afectado por las variaciones con la temperatura de los valores efectivos de los componentes con que se construyen (resistencias, capacitores, amplificadores operacionales). A esto hay que añadir las derivas por envejecimiento de los componentes, y las tolerancias de éstos. Si se requiere de una gran precisión de operación en estos sistemas es necesario realizar un proceso de calibración. Puesto que la salida de un sistema de procesamiento digital de señales no depende de factores ambientales o variaciones en el valor nominal de los componentes, es posible obtener sistemas con una respuesta exacta, conocida y sin variación de un equipo a otro. Funciones especiales. Existen algunas técnicas de procesamiento de señales que no se pueden implementar con sistemas analógicos. Un ejemplo de estos son los filtros de fase lineal. Sin embargo un filtro FIR digital con simetría conjugada par de sus coeficientes respecto al punto medio es un sistema de fase lineal. Mayor inmunidad al ruido en la transmisión y almacenamiento de la información. Esto es evidente, basta comparar las prestaciones de un disco de vinilo con un CD. En cuanto a los inconvenientes se pueden citar los siguientes: para aplicaciones sencillas, la complejidad de un sistema analógico es menor, lo que tiene una traducción directa en el costo de éste. En aplicaciones en tiempo real para procesamiento digital de señales, entre muestra y muestra hay que realizar todos los cálculos que impone el algoritmo. Para señales de gran ancho de banda, la frecuencia de muestreo puede ser tan elevada que la potencia de cálculo requerida haga imposible su tratamiento mediante técnicas digitales. Un sistema de procesamiento digital de señales puede definirse como cualquier sistema electrónico que realice procesamiento digital de señales, entendiéndose por él la aplicación de operaciones matemáticas a señales representadas de forma digital (ver figura 23). Las señales son representadas de forma digital mediante secuencias de muestras. A menudo, estas muestras se obtienen de señales físicas (por ejemplo, señales de audio) utilizando transductores (un micrófono en este caso) y convertidores analógico- digitales. Después del procesamiento matemático, las señales digitales pueden volver a convertirse en señales físicas mediante convertidores digital-analógicos. Si bien, en principio, el corazón de un sistema de procesamiento digital puede ser un microcontrolador, un procesador de propósito general o un procesador digital de señales (DSP), en sistemas en los cuales la carga computacional es extremadamente intensa la solución óptima ha sido hasta la fecha escoger un DSP. 69 Facultad de Ingeniería UNAM Transductor Convertidor D/A Elemento procesador Convertidor A/D Transductor Figura 5 Diagrama a bloques de un sistema de procesamiento digital El procesamiento de voz permite conversaciones full-duplex en tiempo real con calidad de sonido óptima, mediante algoritmos de cancelación de eco y controles de ganancia. Para ello se ha utilizado una arquitectura basada en procesadores digitales de señal (DSPs) de altas prestaciones. Técnicas avanzadas de compresión/descompresión, implementadas según los estándares G711, G.723.1 y G.729A/B, que minimizan el ancho de banda requerido para la transmisión de los paquetes de voz sobre la red. Para reducir la latencia de la transmisión se emplean buffers dinámicos. Se utiliza la implementación en un elemento procesador de un algoritmo para separar señales de audio (voz, música, ruido) provenientes de fuentes independientes a partir de mezclas de estas fuentes recibidas en sensores (micrófonos), sin que se tenga conocimiento previo sobre las señales o el ambiente en que se mezclan. Esta técnica es útil en el área de telefonía, por ejemplo, para suprimir el nivel de ruido de fondo en una señal de voz deseada. En el campo del tratamiento de voz y audio se utilizan los DSP’s para la codificación, síntesis y reconocimiento de voz. En el sector de las telecomunicaciones para la codificación ADPCM, cancelación de eco o telefonía móvil. Algunos de los avances de los DSPs en instrumentación médica son las imágenes ultrasónicas, radiografías digitales y varias formas de tomografía (CAT, tomografía asistida por ordenador; PET, tomografía por emisión de positrones; MRI, imágenes por resonancia magnética). Sin embargo, la rápida evolución que han tenido los microprocesadores a lo largo de su existencia, ha permitido que cada vez con una mayor facilidad y costo se logran tener aplicaciones que van des de operaciones sencillas hasta acciones de alta complejidad como lo es el procesamiento de señales, en un caso en específico, el procesamiento de voz; por lo que no se puede descartar sin un análisis comparativo el uso de microprocesadores para este fin. 70 Facultad de Ingeniería UNAM y m k ,n a k b n 3.6.2 Alternativas de Diseño en Procesamiento Digital Las características del elemento de procesamiento digital vendrán impuestas por los requerimientos de las aplicaciones en que se ha de utilizar. Considerando la naturaleza de las operaciones que es preciso realizar en aplicaciones de procesamiento digital de señales, la operación básica es el producto acumulativo de dos secuencias. A esta operación se les suele denominar operación MAC (multiply and acumulate). Esto queda puesto de manifiesto en aplicaciones como: filtrado, análisis espectral, correlaciones, etc. Los factores del producto pueden ser, dependiendo del caso, muestras de una señal, coeficientes de un filtro o constantes precalculadas (tablas de senos y cosenos). Las expresiones de salida del sistema para los casos citados, pueden considerarse como una particularización del producto de una matriz fila por una matriz columna. Cada elemento de la matriz producto se obtiene multiplicando las componentes de una fila por una columna (figura 24). Producto Acumulativo (operación MAC) Filtrado: y n k 0 N b k x n k k 1 M a k y n k Análisis Espectral: X n 1 N k 0 N 1 x k e j 2 Ï€ kn N 71 Facultad de Ingeniería UNAM Cálculo matricial: AB a 11 .. . a 1m . .. .. . . .. a n1 .. . a nm b 11 . .. b 1r . .. . .. . .. b m1 . .. b mr c 11 . . . a 1 r .. . . . . .. . a n1 . . . a nr c ik j 1 m a ij b jk Figura 6 Operación MAC Las operaciones realizadas en procesamiento digital de señales frecuentemente utilizan la operación MAC Además estas aplicaciones son tareas en tiempo real, por lo que el elemento procesador deberá tener una arquitectura que permita realizar operaciones MAC a gran velocidad. En resumen, si consideramos las condicionantes que impone este tipo de aplicaciones, las características genéricas que debería reunir el elemento procesador son: Deben ser dispositivos de gran velocidad para poder procesar muestras de entrada en tiempo real. Los algoritmos de procesamiento digital de señales tiene una elevada carga computacional en los que predomina la operación MAC, por lo que este elemento procesador debe poseer una gran potencia de cálculo. Dado el gran volumen de datos a procesar deben permitir un cómodo manejo de éstos. Han de ser programables para hacer posible la implementación de distintos tipos de algoritmos de procesamiento digital de señales. Los sistemas de procesamiento digital de señales se suelen caracterizar por la utilización de un algoritmo que especifica las operaciones a realizar con los datos. La implementación de este algoritmo se puede realizar en hardware a la medida o mediante un sistema programado. La implementación de algoritmos en hardware se realiza mediante circuitos integrados diseñados a la medida, integrando en el dispositivo sólo aquellas funciones necesarias para la aplicación concreta que van a ser destinados, lo que se traduce en un menor costo para grandes volúmenes de producción y mejores prestaciones. El hardware a la medida puede tomar múltiples formas. Una de ellas son los dispositivos estándar para aplicaciones específicas o ASSPs. Como su nombre lo indica se trata de circuitos integrados que implementan en hardware un algoritmo concreto. Esto les permite procesar señales de alta frecuencia, pero al mismo tiempo dificulta el diseño del dispositivo por lo que los algoritmos implementados suelen ser sencillos, con una estructura regular, y un número de bits de datos con que se operan reducidos. Un ejemplo de ASSPs son los filtros digitales programables, los cuales integran un conjunto de multiplicadores hardware que operan en paralelo para implementar un filtro FIR (Respuesta Infinita al Impulso). Debido a la implementación hardware el número de coeficientes del filtro suele ser reducido. Los coeficientes se programan mediante unos registros internos a los cuales se accede mediante una interfaz con microprocesador. Dispone de respectivos puertos para recibir muestras de entrada y entregar muestras de salida. 72 Facultad de Ingeniería UNAM En cambio, en un sistema programado el algoritmo se implementa como un programa que se ejecuta secuencialmente. Esto se traduce en: Una gran flexibilidad al poder utilizar un mismo sistema para implementar varios algoritmos. Los algoritmos pueden alcanzar un alto grado de complejidad. Sin embargo, el hecho de que la ejecución del programa se realice en forma secuencial empeora el rendimiento. Dentro de la implementación del algoritmo en software nos podemos encontrar dos alternativas. La primera de ellas consiste en la utilización de microprocesadores de propósito general (PPG) de altas prestaciones, por ejemplo Pentium de Intel. La otra alternativa son los procesadores digitales de señales (DSP). 72 Facultad de Ingeniería UNAM CAPITULO 4 EVOLUCIÓN DE LA ARQUITECTURA DE DSP’S Y MICROPROCESADORES 4.1 DSP’s 4.1.1 Procesadores Digitales de Señales (DSPs) Estrictamente hablando, el término DSP se aplica a cualquier chip que trabaje con señales representadas de forma digital. En la práctica, el término se refiere a microprocesadores específicamente diseñados para realizar procesamiento digital de señales. Los DSP utilizan arquitecturas especiales para acelerar los cálculos matemáticos intensos implicados en la mayoría de sistemas de procesamiento de señal en tiempo real. Por ejemplo, las arquitecturas de los DSP incluyen circuitería para ejecutar de forma rápida operaciones MAC. A menudo poseen arquitecturas de memoria que permiten un acceso múltiple para permitir de forma simultánea cargar varios operandos, por ejemplo, una muestra de la señal de entrada y el coeficiente de un filtro simultáneamente en paralelo con la carga de la instrucción. También incluyen una variedad de modos especiales de direccionamiento y características de control de flujo del programa diseñadas para acelerar la ejecución de operaciones repetitivas. Además, la mayoría de los DSP incluyen en el propio chip periféricos especiales e interfaces de entrada/salida que permiten que el procesador se comunique eficientemente con el resto de componentes del sistema, tales como convertidores analógico-digital o la memoria. La diferencia esencial entre un DSP y un PPG es que el DSP tiene características diseñadas para soportar tareas de altas prestaciones, repetitivas y numéricamente intensas. Por contra, los Procesadores de Propósito General no están especializados para ninguna aplicación en especial; ni están orientados a aplicaciones de control, como es el caso de los microcontroladores. Los sistemas basados en estos procesadores eran de gran complejidad al requerir toda una serie de periféricos y elementos externos para su implementación (como tarjetas DSPs). Además, las altas prestaciones que ostentan no siempre se traducen en una elevada potencia de cálculo, o al menos en una ejecución rápida de instrucciones tipo MAC, debido a las restricciones en la ejecución de operaciones de punto flotante. Sin embargo, a medida que las aplicaciones de procesamiento digital de señales se empiezan a imponer dentro de lo que podríamos considerar informática de consumo, estos procesadores han comenzado a adaptarse a la nueva situación. Un ejemplo de esto en la extensión MMX de Intel. La elección de un DSP que posea ciertas características estará muy condicionada a la aplicación que se quiera destinar. En este apartado se presenta un conjunto de aspectos característicos de los DSP que deberán tenerse en cuenta a la hora de elegirse para una aplicación en particular sin que se pretenda con ello hacer una lista exhaustiva. 4.1.2 Arquitectura de Memoria La organización del subsistema de memoria de un DSP puede tener un gran impacto en sus prestaciones. Como se ha mencionado anteriormente, la instrucción MAC, así como otras, son fundamentales en muchos de los algoritmos de procesamiento de señales. Una 73 Facultad de Ingeniería UNAM ejecución rápida de la instrucción MAC requiere que la lectura en memoria del código de instrucción y de sus dos operandos se haga en un ciclo de instrucción. Existe una variedad de formas de hacerlo, utilizando memorias multipuerto para permitir múltiples accesos a memoria en un ciclo de instrucción, mediante memorias de datos e instrucciones separadas, y memorias caches de instrucciones para permitir el acceso a la memoria para la obtención de datos mientras que las instrucciones se obtienen del cache en lugar de la memoria (ésta última es usada en los PPG). Debido a la limitación del número de registros disponibles en el CPU, normalmente estos datos residen en memoria. Para poder realizar las operaciones MAC en un solo ciclo de instrucción es preciso que los operandos utilizados estén disponibles en el momento de ejecutar dicha instrucción. Normalmente la acumulación de productos se realiza sobre un registro del CPU, con lo que el almacenamiento del resultado final en memoria no se considera parte del núcleo del algoritmo. Es decir la ejecución de una instrucción MAC implica la realización de tres accesos a memoria. Primero busca el código de la instrucción a ejecutar y después lee los dos operandos del producto. Teniendo en cuenta estos condicionantes, los DSPs estructuran su memoria de forma que se pueda obtener la instrucción a ejecutar y sus operandos desde memoria al ritmo que los demanda el CPU: de hecho una de las características distintivas de los DSPs es la forma en que organizan la memoria, siendo ésta un factor crítico en las prestaciones del procesador. Dicha arquitectura está orientada a hacer posible la realización simultánea en un solo ciclo de instrucción de los tres accesos anteriormente mencionados. La arquitectura de memoria utilizada por la mayoría de los procesadores convencionales responde al modelo clásico de la arquitectura Von Neumann (figura 25a). Según este modelo se dispone de un único espacio de memoria en el que se almacena tanto código a ejecutar como datos del programa. Los accesos a este espacio de memoria se realizan a través de un único grupo de buses (bus de direcciones y bus de datos). Si bien se trata de una estructura muy simple, el procesador sólo puede realizar un acceso (de lectura o escritura) a memoria durante cada ciclo de instrucción. En esta situación aunque el CPU del procesador fuese capaz de ejecutar una instrucción MAC en un solo ciclo de instrucción como es el caso de los DSPs, se requerirían tres accesos secuenciales a memoria para completar su ejecución. Puesto que la duración de cada acceso es de un ciclo de instrucción, su ejecución se prolongaría durante tres ciclos. Esta es una de las razones por la que los procesadores convencionales, aun teniendo una elevada potencia de cálculo no han sido los más indicados para la ejecución de algoritmos de procesamiento digital de señales. La arquitectura Harvard trata de aumentar el ancho de banda de los accesos aumentando el paralelismo de la memoria (figura 25b). Para ello se dispone de dos espacios de memoria independientes, uno para almacenar el código a ejecutar y el otro para los datos. Cada uno de estos espacios dispone de su propio grupo de buses, con lo cual es posible acceder simultáneamente a ambos espacios. La arquitectura Harvard original restringe el uso que se destina cada uno de los espacios de memoria (almacenamiento de código o de datos). Esta solución no es del todo adecuada, ya que en instrucciones de tipo MAC es preciso acceder a dos operandos en memoria, manteniéndose por tanto el cuello de botella en los accesos a memoria de datos. Esta restricción inicial se ha flexibilizado dando lugar a la arquitectura Harvard modificada (figura 25c), en la cual se permite el almacenamiento de código y datos en el espacio de memoria de programa. Puesto que los DSPs suelen disponer de módulos de repetición de instrucciones, una vez obtenido el código de la instrucción MAC, el espacio de memoria de programa queda disponible para obtener uno de los operandos. Por tanto, a excepción 74 Facultad de Ingeniería UNAM de la primera vez que se ejecuta dicha instrucción, el resto completan su ejecución en un solo ciclo de instrucción. Otras aproximaciones eliminan la latencia introducida durante la ejecución de la primera instrucción MAC desarrollando el concepto de la arquitectura Harvard mejorada (figura 25d). Para ello dividen a su vez la memoria de datos en dos registros de memoria, cada uno de los cuales dispone de su propio juego de buses de datos y direcciones. Así se dispone de un registro de memoria de programa y dos registros de memoria para datos denominados X y Y respectivamente. Estas tres memorias permiten realizar al procesador tres accesos independientes por cada ciclo de instrucción: una búsqueda de instrucción, un acceso al registro de datos X y un acceso al registro de datos Y. En el caso de los DSPs más recientes las restricciones referentes al uso que se destina cada uno de los espacios de memoria desaparecen. En su lugar se dispone de un único espacio compuesto por varios registros de memoria independientes, cada uno con su propio grupo de buses. Es responsabilidad del programador distribuir cada una de las secciones del programa sobre los distintos registros para aprovecha al máximo el paralelismo del procesador. Figura 1 a) Arquitectura Von Neumann, b) Arquitectura Harvard, c) Arquitectura Harvard modificada, d) Arquitectura Harvard mejorada. Puesto que el desdoblamiento en múltiples buses de memoria fuera del chip es costoso, los DSPs generalmente proporcionan un único conjunto de buses externo. Los procesadores con múltiples registros de memoria normalmente proporcionan una 75 Facultad de Ingeniería UNAM pequeña cantidad de memoria interna para cada uno de los registros. Aunque los registros de memoria pueden ampliarse externamente, no se pueden realizar accesos externos múltiples en paralelo, debido a la ausencia de un segundo grupo de buses para la memoria externa. Por tanto si se precisasen múltiples accesos a memoria externa durante la ejecución de una instrucción, la ejecución de ésta se prolongaría a lo largo de varios ciclos de instrucción de forma que los accesos a memoria se realizarían de forma secuencial. Atendiendo a las características de la aplicación, la mayoría de los DSP de punto fijo poseen memorias internas, en el propio chip, de tamaño pequeño medio, entre 256 y 32k palabras, y un bus externo de direcciones pequeño. Así por ejemplo, la mayoría de los DSP de punto fijo de Analog Devices, Lucent Technologies, Motorola y Texas Instruments tienen buses de direcciones de 16 bits o menos, lo que limita la cantidad de memoria externa de acceso directo. Por el contrario, la mayoría de los DSP de punto flotante proporcionan poca o ninguna memoria interna, pero se caracterizan por tener buses de direcciones externos de gran tamaño, para soportar una gran cantidad de memoria externa. Por ejemplo, el ADSP- 21020 de Analog Devices no tiene memoria interna pero posee un bus externo de direcciones de 24 bits. De forma similar, el TMS320C30 de Texas Instruments posee 6k palabras de memoria interna y dos buses externos de direcciones, uno de 24 bits y el otro de 13 bits. Además, estos DSP poseen memorias cache para permitir un uso más eficiente de memorias externas lentas. 4.1.3 Arquitectura de la Unidad Central de Proceso Para incrementar la velocidad de trabajo y optimizar la implementación de los algoritmos de procesamiento digital de señales, el CPU de los DSPs dispone de unidades computacionales específicas que pueden trabajar en paralelo. Entre ellas cabe destacar las unidades MAC, que posibilitan la ejecución de este tipo de operaciones en un solo ciclo de instrucción. El elemento básico de esta unidad MAC es el multiplicador hardware (multiplicador cableado) que es capaz de realizar el producto de dos números en un solo ciclo de máquina. La acumulación de los productos se realiza en la ALU, también en un solo ciclo de máquina. Para realizar la operación MAC ambos elementos operan en paralelo, siguiendo un proceso segmentado en el que mientras el multiplicador realiza el producto de dos operandos la ALU acumula el resultado del producto anterior. Esta unidad MAC puede operar con números enteros o de punto flotante. Al repetir las operaciones de acumulación de los productos se puede dar una situación de desbordamiento obteniéndose resultados erróneos. El desbordamiento se debe a la imposibilidad de representar el resultado de salida con el número de bits disponibles. Para evitar esta situación se sobredimensiona el número de bits de la ALU añadiendo a los necesarios para realizar la suma de los términos producto un cierto número de bits extras denominados bits de guarda. En la figura 26 se muestra, como ejemplo, en un DSP que opera con datos de 24 bits el producto de dos que números proporciona un resultado de 48 bits que será acumulado con los productos anteriores. Para evitar situaciones de desbordamiento, se sobredimensiona la ALU añadiendo 8 bits de guarda, con lo que su tamaño final será de 56 bits. Este sobredimensionamiento de la ALU se aplica también al registro o registros donde se almacena el valor acumulado. Otra estrategia para evitar las situaciones de desbordamiento consiste en realizar el escalado en los operandos de entrada o los resultados intermedios antes de sumarlos al 76 Facultad de Ingeniería UNAM valor acumulado. Este escalado se realiza mediante un desplazamiento aritmético a derechas de un determinado número de bits del producto obtenido. Algunos DSPs que no disponen de bits de guarda suplen esta deficiencia mediante la capacidad de desplazar el contenido del registro donde se almacena el producto, antes de sumarlo, sin necesidad de ciclos de instrucción adicionales. Si bien este desplazamiento supone una pérdida de precisión de cálculos, su incidencia es despreciable a menos que se realice un fuerte escalado o bien el número de productos a acumular sea muy elevado. Una característica distintiva de los DSPs es que estos desplazadores están implementados mediante lógica combinacional (a esa estructura se le denomina barrel shifter) frente a la estructura clásica de un registro de desplazamiento secuencial de otros tipos de procesadores. Esto permite realizar desplazamientos en un solo ciclo de instrucción independientemente del número de bits a desplazar. Este escalonado puede provocar que los valores pequeños no se puedan representar con suficiente fidelidad. Otra alternativa consistiría en utilizar técnicas de saturación aritmética. Una situación de desbordamientos se manifiesta cuando al sumar dos números positivos se obtiene un resultado negativo y viceversa. Los DSPs que utilizan técnicas de saturación aritmética (figura 27) incorporan circuitería que al detectar una situación de desbordamiento durante la suma de dos números positivos sustituye la salida errónea por el valor máximo positivo a representar. De igual manera si la situación de desbordamiento se da durante la suma de dos valores negativos proporciona como salida el máximo valor negativo a representar. Registros 24 24 Multiplicador desplazador 48 ALU 56 56 Figura 2 Unidad MAC El resultado sigue siendo incorrecto pero el error cometido en la operación es menor que en caso de desbordamiento. De esta forma se consigue un comportamiento similar al de un circuito analógico en saturación. La saturación aritmética se puede realizar mediante una instrucción especial o automáticamente. En este último caso, esta facilidad se activa mediante uno de los bits del registro de estado. Algunos fabricantes denominan limitador al módulo que implementa la saturación aritmética. 77 Facultad de Ingeniería UNAM Figura 3 Saturación aritmética. Ejemplo de representación en C2 con 16 bits. a) señal a representar. b) efectos del desbordamiento, c) Ante situaciones de desbordamiento con corrección mediante saturación aritmética muestra a la salida el máximo valor representable, reproduciendo el comportamiento de los sistemas analógicos Otra característica que permite aumentar la velocidad de procesamiento aritmético en los DSP es la disponibilidad de una o más unidades generadoras de direcciones de datos, que realizan los cálculos de la nueva dirección necesaria para el acceso a los operandos. Estas unidades constan de una unidad aritmética específica que opera en paralelo con el resto de las unidades funcionales y un conjunto de registros que proporcionarán la dirección base y el desplazamiento necesarios para el cálculo de la nueva dirección. Muchas de las aplicaciones de procesamiento digital de señales necesitan administrar un buffer con estructura FIFO (first input first output) donde se van almacenando las muestras que llegan del exterior de cálculos anteriores. En la administración del movimiento de los datos dentro y fuera del buffer el programador mantiene un apuntador de lectura y otro de escritura, los cuales se suelen almacenar en registros de direcciones. El apuntador de lectura apunta a la posición de memoria donde se va a almacenar el siguiente dato de entrada. Cada vez que se realiza una operación de lectura o de escritura, el apuntador correspondiente avanza una posición, debiendo comprobar el programador si dicho apuntador ha llegado a la última posición de memoria del buffer, inicializándose en tal caso para que apunte al comienzo del buffer y su inicialización en caso afirmativo consume tiempo. Para solventar este problema las unidades DAG de muchos DSPs realizan de forma automática la comprobación del apuntador del buffer y su ajuste relativo a la dirección de comienzo, si es preciso, después de cada cálculo de dirección. Esta característica se denomina aritmética modular. El término aritmética modular hace referencia a que el resultado de salida se limita a un determinado rango, de manera que si una operación de suma o resta superara tal rango, se obtendrá el valor inicial de dicho rango. Por último, hay que señalar que las DAGs de muchos DSPs permiten implementar modos de direccionamiento especialmente pensados para la realización de la transformada discreta de Fourier de una forma rápida. 4.1.4 Juego de Instrucciones y Formato Aritmético Las operaciones a realizar en procesamiento digital de señales son poco variadas limitándose en la mayoría de los casos a multiplicaciones y sumas. Los DSPs disponen de un juego de instrucciones optimizado para este tipo de aplicaciones, con un número de instrucciones reducido, implementándose frecuentemente como microprocesadores con arquitectura RISC. Los beneficios de estas instrucciones especiales son dobles: por una 78 Facultad de Ingeniería UNAM parte permiten un código más compacto que requiere menos espacio en memoria; por otra, incrementa la velocidad de ejecución de algoritmos de procesamiento digital de señales. Los algoritmos de DSP más frecuentes (convolución, correlación, multiplicación de matrices, etc.) se realizan mediante la ejecución repetitiva de una misma instrucción o conjunto de instrucciones denominadas ciclos internos o núcleos de algoritmo. Para solventar los problemas generados por estos ciclos (la comprobación de la condición para el salto utiliza registros innecesariamente y retrasa la ejecución) los DSPs utilizan ciclos hardware (zero overhead looping). Los ciclos hardware son estructuras de control especiales que repiten una sola instrucción o conjunto de instrucciones un determinado número de veces. La diferencia fundamental con los ciclos software es que en un ciclo hardware no se pierde tiempo en incrementar o decrementar un registro, comprobar si se ha llegado al final del ciclo o saltar al origen de éste. Otra de las características fundamentales de los DSPs es el tipo de formato aritmético utilizado por el procesador. La figura 28 muestra la estrecha relación entre formato numérico y número de bits del DSP. Cada tipo de procesador es ideal para un rango específico de aplicaciones. Los procesadores de 16 bits de punto fijo son adecuados para sistemas de voz, como telefonía, ya que trabajan con el rango relativamente estrecho de las frecuencias del sonido. Las aplicaciones estéreo de alta fidelidad tienen un rango de frecuencias más alto, de forma general, los requerimientos mínimos para este tipo de aplicaciones serían un ADC de 16 bits y un procesador de 24 bits de punto fijo, de esta forma se proporciona un rango suficientemente amplio para obtener la señal de alta fidelidad y para poder manipular los valores que se obtienen al procesar la señal. El procesamiento de imágenes, gráficos en 3D y simulaciones científicas tienen un rango dinámico mucho más amplio, por lo que precisa de procesadores DSP de 32 bits con aritmética de punto flotante. La figura 29, izquierda y derecha, muestra los formatos de punto flotante y punto fijo, respectivamente. DSP Punto fijo Punto flotante 16 bit 20 bit 24 bit 32 bit IEEE-754 Otros Figura 4 Representaciones numéricas comunes en los DSP comerciales 31 30 ⋅⋅⋅⋅⋅⋅⋅⋅23 22 ⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅0 31 30 ⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅0 s e m s f 79 Facultad de Ingeniería UNAM Figura 5 (Izquierda) Formato de punto flotante IEEE-754; 1 bit de signo, 8 de exponente y 23 de mantisa. (Derecha) Formato en punto fijo; 1 bit de signo y 31 bits significativos En el formato IEEE-754 de punto flotante la "s” indica que el bit más significativo es el signo, donde un 1 indica que se trata de un número negativo. La “e” indica exponente, formado por 8 bits y la “m”, de 23 bits, la mantisa del número. Al carecer de exponente el formato en punto fijo, éste puede representar números con más bits significativos que el formato en punto flotante del mismo tamaño en bits. En este ejemplo, 31 bits son significativos, "f ", comparados con los 23 del formato IEEE-754. Para un mismo tamaño en número de bits, el formato en punto fijo proporciona una mejor resolución que el formato en punto flotante. Sin embargo, es este último quien posee un margen dinámico superior. Así, por ejemplo, si se considera una representación en punto fijo de 32 bits, el mínimo valor que puede ser representado es 2-31 siendo el mayor 1-2-31. La relación entre ambos, la cual resulta en el margen dinámico, es de 2.15x109, aproximadamente 187 dB. En cambio, con una representación en punto flotante, con 24 bits de mantisa y 8 de exponente, pueden representarse números desde 5.88x10-39 hasta 3.40x1038, resultando en un margen dinámico de 5.79x1076 o de 1535 dB. La aritmética de punto flotante es más flexible que la de punto fijo. Con punto flotante, los diseñadores de sistemas tienen acceso a un margen dinámico más amplio. En consecuencia, los DSP de punto flotante son generalmente más fáciles de programar que los de punto fijo, pero son usualmente más caros. El mayor costo es resultado del requisito de una mayor complejidad circuital que se traduce en un mayor tamaño de chip. Sin embargo, el mayor margen dinámico facilita su programación pues el programador no debe preocuparse por el margen dinámico ni por la precisión. Por el contrario, en los DSP de punto fijo el programador a menudo debe escalar las señales en sus programas para asegurar una adecuada precisión numérica con el limitado margen dinámico del DSP de punto fijo. Por lo general, las aplicaciones con un gran volumen de unidades y/o bajo consumo utilizan los DSP de punto fijo al ser la prioridad en este tipo de aplicaciones el bajo costo. Los programadores determinan el margen dinámico y la precisión necesarias de la aplicación, ya sea analíticamente o a través de simulaciones, y entonces aplican operaciones de escalado dentro del código de la aplicación en los puntos en donde sea necesario. En aplicaciones donde el costo no sea un requisito crítico o que demanden un margen dinámico y precisión elevadas, o donde la facilidad de desarrollo sea vital, los DSP de punto flotante poseen ventaja. Mediante rutinas de software es posible emular el comportamiento de un dispositivo de punto flotante con uno de punto fijo. Sin embargo, tales rutinas resultan generalmente caras en términos de ciclos del procesador. En consecuencia, raramente se suele emular la aritmética de punto flotante. Los DSP de punto flotante utilizan un bus de datos de 32 bits. En los DSP de punto fijo, el tamaño más común es de 16 bits. Sin embargo, las familias DSP5600x y DSP563xx de Motorola utilizan un formato de 24 bits, mientras que la familia ZR3800x de Zoran utiliza 20 bits. El tamaño del bus de datos tiene un gran impacto en el costo, ya que influye notablemente en el tamaño del chip y el número de patillas del encapsulado, así como en el tamaño de la memoria externa conectada al DSP. Por lo tanto, se intenta utilizar el integrado con el menor tamaño de palabra que la aplicación pueda tolerar. 80 Facultad de Ingeniería UNAM De la misma forma que ocurre con la elección entre punto fijo y punto flotante, existe un compromiso entre tamaño de palabra y complejidad. Una aplicación que requiera 24 bits puede ser desarrollada por un DSP de 16 bits a costa de un aumento de complejidad en el software. Por ejemplo, con un DSP de 16 bits se pueden realizar operaciones con aritmética de doble precisión y 32 bits combinando las instrucciones adecuadas. Naturalmente, la doble precisión será mucho más lenta que la precisión simple. Si el grueso de la aplicación puede desarrollarse en precisión simple, puede tener sentido emplear la doble precisión únicamente en aquellas partes del programa que lo necesiten. Pero si la mayoría de la aplicación requiere más precisión, entonces un DSP con un tamaño de palabra mayor sería la opción adecuada. La mayoría de los DSP utilizan un ancho de la palabra de instrucción igual a la de los datos, pero no todos lo hacen. Así por ejemplo, la familia ADSP-21xx de Analog Devices utiliza 16 bits para los datos y 24 bits para las instrucciones mientras que la familia ZR3800x de Zoran utiliza un formato de instrucción de 32 bits. 4.1.5 Periféricos Integrados e Interfaces de E/S La mayor parte de los DSPs integran en el propio encapsulado periféricos de gran vesatilidad que le permiten comunicarse con el mundo exterior sin intervención del procesador. Este es un aspecto de gran importancia y que los distingue de los procesadores de propósito general. De entre estos los más frecuentes suelen ser: Temporizadores. Normalmente todos los procesadores incluyen estos dispositivos, que suelen utilizar para la generación de interrupciones periódicas que sincronizan el proceso de muestreo. Puertos serie. Las características y complejidad de estas interfaces varían de un procesador a otro, pero es habitual su presencia en todos ellos. Suelen utilizarse para comunicarse con circuitos que incluyen convertidores A/D y D/A denominados codecs. Esto permite alejar la parte analógica del procesador eliminando el acoplamiento de ruido en la primera. De hecho la mayoría de los fabricantes de DSPs diseñan dispositivos de este tipo con una interfaz que permite la conexión directa con el puerto serie. No es raro encontrar también DSPs que permiten la transmisión del código de arranque en sistemas sin memoria ROM. Controlador DMA. Este tipo de periférico permite efectuar transferencias de forma rápida sin intervención del procesador. Esto es especialmente útil en aplicaciones en las que el volumen de datos a manejar es considerable como por ejemplo procesamiento digital de imágenes. En tal caso el DMA se utiliza para llevar bloques de datos desde una memoria externa de gran capacidad a memoria interna con objeto de que puedan procesar a mayor velocidad. Interfaz con un host. En algunos casos los DSPs actúan como coprocesadores matemáticos, formando parte de un sistema global controlado por un procesador de propósito general. Para comunicarse con este procesador host algunos DSPs incorporan un puerto paralelo bidireccional de 8 o16 bits, que podría estar diseñado específicamente para comunicarse con un bus estándar, como por ejemplo ISA o PCI. Las comunicaciones a través de este puerto suelen realizarse mediante DMA de manera que sea posible transferir datos entre la memoria y el puerto sin intervención 81 Facultad de Ingeniería UNAM del procesador. El control del puerto se realiza mediante instrucciones específicas. En ocasiones esta interfaz permite incluso el control del funcionamiento del DSP (forzar la ejecución de rutinas de procesamiento de interrupción, acceder a los registros internos del DSP o a su memoria, o incluso realizar la carga del código a ejecutar por el procesador –bootstraping). Puertos de comunicación. Se trata de puertos paralelo diseñados para la comunicación entre DSPs del mismo tipo que se conectan en red para implementar un sistema multiprocesador. Puesto que la anchura de estos puertos (8 bits) es menor que el tamaño de la palabra de datos de los DSPs que los incluyen (32 bits), los puertos disponen de FIFOS para la fragmentación y reensamblado de los datos que se transmiten a través de ellos. La comunicación a través de estos puertos suele estar asistida por DMA. Los DSPs diseñados para aplicaciones muy concretas disponen además de periféricos específicos para tales aplicaciones como convertidores A/D, etc. Estos últimos se suelen incluir conjuntamente con convertidores D/A, en DSPs destinados a aplicaciones de procesamiento de voz (teléfonos móviles, contestadoras automáticas). En general suele tratarse de DSPs de gama baja ya que el área de chip utilizada para estos periféricos limita el tamaño de los registros de memoria interna y la sofisticación del CPU 4.1.6 Criterios de Selección 4.1.6.1 Velocidad La medida clave para saber si un DSP es o no apropiado para una aplicación es su velocidad de ejecución. Existen varias formas para medir la velocidad de un procesador, aunque quizás el parámetro más usual es el tiempo de ciclo de instrucción: tiempo necesario para ejecutar la instrucción más rápida del procesador. Su inverso dividido por un millón da lugar a la velocidad del procesador en millones de instrucciones por segundo o MIPS. En la actualidad todos los DSP ejecutan una instrucción por ciclo de instrucción. Un problema que se presenta cuando se compararan los tiempos de ejecución de instrucciones de varios procesadores es que la cantidad de trabajo realizado por una instrucción varía significativamente de un procesador a otro, como son barrel shifters o el movimiento de datos en paralelo que no están relacionados con la instrucción que la ALU está ejecutando. El parámetro MIPS, al igual que MFLOPS, MOPS, MBPS y otros, se miden de forma muy precisa aunque su valor no necesariamente dice mucho de lo que un determinado DSP es capaz de hacer. Dichos valores sirven para ubicar cada DSP en una categoría amplia en cuanto a prestaciones pero uno se debería preguntar si se trata de valores de pico o sostenidos. Además, también nos deberíamos preguntar cómo se ven afectadas las prestaciones del DSP cuando muchos de los datos se encuentran fuera del chip, en la memoria externa. Una solución a estos problemas consiste en decidir una operación básica y utilizarla como referencia al comparar distintos DSP. La operación que suele tomarse como referencia es la MAC. Desafortunadamente, los tiempos de ejecución MAC proporcionan, a veces, poca información para poder diferenciar entre distintos DSP, ya que en la mayoría de ellos esta instrucción se ejecuta en un solo ciclo de instrucción, y como se ha mencionado 82 Facultad de Ingeniería UNAM anteriormente, algunos DSP pueden hacer mucho más que otros en una simple instrucción MAC. Además, los tiempos de ejecución de MAC no suele reflejar las prestaciones de otro tipo importante de operaciones como los ciclos que están presentes en todas las aplicaciones. Un enfoque mucho más general consiste en definir un conjunto algoritmos o funciones, como un filtro FIR o IIR, e implementarlo en distintos DSP y de esta forma ver cuál de ellos proporciona unas mejores prestaciones. Sin embargo, la implementación de estos algoritmos para distintos DSP puede resultar una tarea ardua. En este sentido, una buena referencia pueden ser los tests que efectúa la Berkeley Design Technology, Inc., pionera en utilizar distintas porciones de algoritmos y funciones para medir las prestaciones de los diferentes DSP. 4.1.6.2 Segmentación (pipelining) Pipelining es una técnica para incrementar las prestaciones de un procesador, que consiste en dividir una secuencia de operaciones en otras más sencillas y ejecutar en lo posible cada una de ellas en paralelo. En consecuencia se reduce el tiempo total requerido para completar un conjunto de operaciones. Casi todos los DSP del mercado incorporan el uso del pipelining en mayor o menor medida. Para ilustrar de qué forma la técnica de la segmentación mejora las prestaciones de un procesador, considérese un hipotético procesador que utiliza unidades de ejecución separadas para la ejecución de una única instrucción: Obtener la instrucción de la memoria. Decodificar la instrucción. Leer o escribir un operando de la memoria. Ejecutar la parte de la instrucción relacionada con la ALU o MAC. La figura 30 muestra la temporización de varias instrucciones ejecutadas de forma secuencial. Si se supone que cada etapa o unidad de ejecución tarda 20 ns en ejecutar su parte de la instrucción, entonces el procesador ejecuta una instrucción cada 80 ns. Sin embargo, también se observa que el hardware asociado a cada etapa de ejecución está inactivo el 75% del tiempo. Esto ocurre porque el procesador no empieza a ejecutar una nueva instrucción hasta que finaliza la ejecución de la instrucción en curso. Un procesador que implementara la técnica de pipelining obtendría una nueva instrucción inmediatamente después de haber obtenido la anterior. De forma similar, cada instrucción sería decodificada después de haber terminado la decodificación de la instrucción anterior. Ciclo de reloj 1 2 3 4 5 6 7 8 Obtención Instrucción I1 I2 Decodificación I1 I2 Lecturas/Escritura operando I1 I2 Ejecución I1 I2 83 Facultad de Ingeniería UNAM Figura 6 Ejecución de instrucciones sin pipeline. I1 y I2 representan la instrucción 1 y la 2, respectivamente Con esta filosofía, las instrucciones se ejecutan de forma solapada, tal y como se ilustra en la figura 31. Las unidades de ejecución trabajan en paralelo, mientras una obtiene el código de una instrucción otra está decodificando la anterior y así sucesivamente. En consecuencia, una vez que el pipeline está lleno, cada 20 ns se ejecuta una instrucción, lo cual representa un factor de mejora de prestaciones de cuatro respecto a un procesador que no incorpore dicha técnica. Aunque la mayoría de los DSP utilizan la técnica de segmentación, su profundidad o número de etapas varía de un procesador a otro. En general, cuanto mayor sea el número de etapas menor tiempo tardará el procesador en ejecutar una instrucción. En el ejemplo anterior se ha supuesto un procesador con una eficiencia en el uso de la “pipeline” del 100%. En realidad, esto no siempre ocurre así. La eficiencia se ve disminuida por varias causas, entre las cuales se encuentra el hecho de que un procesador necesite dos ciclos para escribir en memoria, se obtenga el código de una instrucción de salto de programa o bien la petición de una interrupción. La figura 32 muestra qué es lo que pasa cuando una instrucción de salto llega al pipeline. En el momento en que el procesador detecta la llegada de una instrucción de salto en la decodificación del segundo ciclo de reloj, el pipeline se vacía y detiene la obtención de nuevas instrucciones. Esto provoca que la instrucción de salto se ejecute en cuatro ciclos. Posteriormente, el procesador comienza la obtención de las instrucciones (N1-N4) a partir de la dirección de salto y del quinto ciclo de reloj. A causa de este tipo de situaciones, casi todos los DSP incorporan algún tipo de mejora en el uso de la segmentación con el propósito de reducir su posible ineficiencia temporal. Ciclo de reloj (instrucción) 1 2 3 4 5 6 7 8 Obtención Instrucción I1 I2 I3 I4 I5 I6 I7 I8 Decodificación I1 I2 I3 I4 I5 I6 I7 Lecturas/Escritura operando I1 I2 I3 I4 I5 I6 Ejecución I1 I2 I3 I4 I5 Figura 7 Procesador que utiliza la técnica de pipelining Ciclo de reloj (instrucciones) 1 2 3 4 5 6 7 8 Obtención Instrucción Salto I2 - - N1 N2 N3 N4 Decodificación Salto - - - N1 N2 N3 Lecturas/Escritura operando Salto - - - N1 N2 84 Facultad de Ingeniería UNAM Ejecución Salto NOP NOP NI Figura 8 Efecto en el pipeline ante la llegada de una instrucción de salto 4.1.6.3 Consumo El uso cada vez más extendido de los DSP en aplicaciones portátiles como la telefonía celular hace que el consumo sea un factor a tener muy en cuenta en el momento de decidirse por un DSP u otro. Conscientes de esta necesidad, los fabricantes de DSP ya fabrican DSP para voltajes bajos de trabajo (3.3 V -3 V) que incorporan prestaciones para la administración de energía, como pueden ser los modos sleep o idle que inhiben el reloj del DSP a todas o sólo algunas partes del mismo, divisores programables del reloj para permitir la realización de determinadas tareas a velocidad inferior o en control directo de periféricos, lo que permite la desactivación de algunos de ellos si no se prevé su aplicación. 4.1.6.4 Costo Generalmente el costo del DSP es el principal parámetro en todos aquellos productos que se van a fabricar en grandes volúmenes. En tales aplicaciones, el diseñador intenta utilizar el DSP con costo inferior y que satisfaga las necesidades de la aplicación aun cuando ese dispositivo pueda ser considerado poco flexible y más difícil de programar que otros DSP más caros. De entre las familias de DSP, el más barato será aquel que tenga menos características funcionales, menos memoria interna y probablemente menos prestaciones que otro más caro. Sin embargo, una diferencia clave en el precio está en el encapsulado. Los encapsulados PQFP y TQFP son usualmente bastante más baratos que los PGA. 4.1.6.5 Soporte técnico y facilidad de desarrollo En el momento de declinarse por un DSP u otro será necesario conocer completamente los requisitos de procesamiento del sistema. Muchos DSP pueden ser eliminados previamente con sólo tener en cuenta consideraciones de falta de potencia de cálculo, resolución insuficiente, costo, etc. Esto probablemente deje todavía a un número de posibles candidatos para los cuales será preciso realizar otro tipo de análisis. En los apartados anteriores se han visto aquellas características más técnicas de los DSP y que están estrechamente relacionadas con los algoritmos de la aplicación a implementar. Sin embargo, no se han considerado para nada aspectos relacionados con el desarrollo de la aplicación. El DSP que finalmente se elija deberá disponer de un amplio conjunto de herramientas de desarrollo. Algunos requerimientos básicos son: Documentación de diseño detallada. Herramientas de desarrollo de código en ensamblador y/o en lenguaje de alto nivel. Herramientas para el test de la funcionalidad del diseño. Notas de aplicación u otro tipo de ayuda al diseño El objetivo será seleccionar el DSP que permita terminar el proyecto en el tiempo previsto y que la solución alcanzada sea la que presente la mejor relación costo-eficiencia. En 85 Facultad de Ingeniería UNAM aplicaciones de gran volumen de producción, esto probablemente signifique que el DSP escogido será el más barato que pueda realizar la aplicación. Para aplicaciones con un volumen bajo-medio existirá el compromiso entre el costo de las herramientas de desarrollo y el costo y eficiencia del DSP. En cambio, para aplicaciones con un volumen bajo de producción tendrá más sentido utilizar un DSP que facilite el diseño o que tenga las herramientas de desarrollo más baratas. Cabe la posibilidad que la elección del DSP sea un proceso iterativo. En otras palabras, puede no haberse escogido el dispositivo correcto. Podría ser que aparecieran problemas imprevistos en la fase de desarrollo y prueba del código o incluso que se encontrara que un DSP más barato y menos potente pudiera ser el elegido. Comúnmente, las especificaciones del diseño alterarán y forzarán a replantear la solución escogida. Los dos primeros casos pueden evitarse haciendo más minuciosa la búsqueda del DSP que más se adecue a la aplicación en particular. Algunas veces merece la pena la compra de herramientas de desarrollo tales como los simuladores software para algunos DSP y ejercitar el código antes de comprometerse a un solo DSP. 4.1.7 Arquitecturas de Altas Prestaciones Hablar de DSP obliga a hacer referencia a las nuevas arquitecturas VLIW (Very Long Instruction Word) que están siendo adoptadas por los DSP de muy altas prestaciones. Las Tecnologías de la Información y las Comunicaciones (TIC) demandan cada vez más recursos para poder procesar grandes volúmenes de datos. Hasta ahora, los avances en la capacidad de cálculo de los procesadores se ha basado en el aumento de la velocidad del reloj y en innovaciones en la planificación, por parte del hardware, de la ejecución de instrucciones. Este modelo actual presupone que cada nueva generación de procesadores es capaz de ejecutar más instrucciones y será difícil que las arquitecturas tradicionales continúen doblando prestaciones cada 12-18 meses sin que se emigre a una nueva tecnología. El número de instrucciones por ciclo aumenta y también lo hace el número de interdependencias entre instrucciones a comprobar para determinar qué instrucciones pueden ejecutarse de forma simultánea. La lógica compleja requerida para la correcta planificación de instrucciones ocupa una gran parte del silicio del procesador y empieza a no tener sentido dedicar una gran parte de los recursos del procesador a la planificación de instrucciones. En su lugar, parece tener más sentido utilizar ese silicio para poder ejecutar más instrucciones por ciclo, incorporando más unidades funcionales y aumentar así el paralelismo de ejecución, mientras que la planificación de instrucciones se realiza por el compilador. Éste es el principio en que se basa la arquitectura VLIW. Esta reducción de complejidad, hardware más sencillo y menor número de transistores, permite incrementar la velocidad del reloj y al mismo tiempo reducir el consumo. El concepto de arquitectura VLIW no es nuevo ya que desde 1975 han ido apareciendo procesadores VLIW pero siempre más a un nivel de prototipo que a nivel comercial. Sin embargo, no ha sido hasta hace relativamente poco, aproximadamente en 1997, que los esfuerzos en la mejora del compilador, en aspectos de paralelismo ha hecho que estos procesadores sean realmente eficientes. Tradicionalmente, las ventajas asociadas con la arquitectura VLIW eran difíciles de conseguir y su futuro era cuestionable. La falta de compiladores eficientes a menudo significaba que el programador tuviera que pasar muchas horas tratando de optimizar, la mayoría de las veces sin éxito, su extenso código para mejorar las prestaciones de la aplicación. 86 Facultad de Ingeniería UNAM Las arquitecturas VLIW están estrechamente relacionadas con los procesadores superescalares. Ambos tratan de aumentar la velocidad computacional mediante paralelismo a nivel de instrucciones en el que se utilizan múltiples copias de algunas etapas del pipeline o unidades de ejecución trabajando en paralelo. Las dos diferencias principales recaen en cómo se formulan las instrucciones y en cómo se realiza su planificación o secuenciamiento. En una arquitectura VLIW, las instrucciones poseen un formato grande de palabra compuesto por múltiples instrucciones independientes que incluye un campo de control para cada una de las unidades de ejecución. El tamaño de la instrucción depende de dos factores: el número de unidades de ejecución disponibles y la longitud de código requerida para cada una de ellas. Una consecuencia de ello es que los buses internos de datos y de instrucciones son de mayor tamaño. Por otro lado, a diferencia de los procesadores superescalares en los que la planificación de las instrucciones para buscar el máximo paralelismo la realiza el propio procesador, en las arquitecturas VLIW esta tarea la realiza el compilador. Esta planificación es conocida como estática (static scheduling). Una ventaja inmediata de este tipo de planificación es que permite dedicar más tiempo a encontrar la mejor optimización, aunque esto hace que el compilador sea más complejo ya que sobre él recae la responsabilidad de agrupar de la mejor forma posible las instrucciones. La figura 33 muestra el núcleo de los TMS320C64xx de Texas Instruments. En particular, el TMS320C64x tiene una frecuencia máxima de trabajo de hasta 1.1 GHz que permite obtener prestaciones de 8800 MIPS y 4400 MMACS. Sus prestaciones son 10 veces superiores a las que presentaba el anterior líder, el TMS320C62xx. Esta mejora en prestaciones se ha conseguido haciendo que las unidades funcionales sean más flexibles, lo que permite ejecutar un mayor número de instrucciones, añadiendo instrucciones especiales para aplicaciones de comunicaciones digitales y vídeo que permitan una reducción del código y un incremento de la eficiencia del compilador, e incrementando el nivel de paralelismo. Por todo ello, puede realizar simultáneamente 2 operaciones de 16 bits o bien 4 de 8 bits. Además, el TMS320C64x cuenta con un mayor número de registros, 64 en total, y un camino de datos interno, datapath, de 64 bits, que dobla en ambos casos las cifras del TMS320C62xx. Para que el lector pueda hacerse una idea de lo que representan estos valores, alrededor de 1997 los valores para las frecuencias de trabajo y los MIPS eran de 10 MHz a 100 MHz y de 10 a 80, respectivamente. Por su parte, el TMS320C55x se presenta como el DSP con menor consumo en el mercado, tan solo 0.05 mW/MIPS a 0,9 V y con unas prestaciones que van de los 140 a 800 MIPS. 87 Facultad de Ingeniería UNAM Figura 9 Núcleo de los TMS320C62xx de Texas Instruments Comparado con su más directo competidor, el TMS320C54x, también de Texas, su factor de consumo/MIPS es 6 veces inferior a la vez que consigue multiplicar por 5 sus prestaciones. Este bajo consumo se debe a la incorporación de un sistema de administración automática avanzada de energía. El sistema continuamente supervisa las partes del chip que se están utilizando y procede a desactivarlas cuando no son necesarias. Además, se ofrece al diseñador la posibilidad de poder configurar a su conveniencia 6 componentes del DSP, cada uno representado por un bit en uno de sus registros, lo que origina un total de 64 modos configurables distintos. 4.1.8 Aplicaciones Los DSP se utilizan en muy diversas aplicaciones, desde sistemas radar hasta la electrónica de consumo. Naturalmente, ningún procesador satisface todas las necesidades de todas o la mayoría de aplicaciones. Por lo tanto, la primera tarea para el diseñador al elegir un DSP es ponderar la importancia relativa de las prestaciones, costo, integración, facilidad de desarrollo, consumo y otros factores para las necesidades de la aplicación en particular. Las grandes aplicaciones, en términos de dinero que mueven sus productos, se realizan para los sistemas pequeños, baratos y con un gran volumen de producción como los de telefonía celular, disqueteras y módems, en donde el costo y la integración son de la mayor importancia. En sistemas portátiles, alimentados por baterías, el consumo es crítico. Sin embargo, la facilidad de desarrollo es generalmente en estas aplicaciones menos importante para el diseñador. A pesar de que estas aplicaciones casi siempre implican el desarrollo de hardware y software a medida, el enorme volumen de producción justifica el esfuerzo extra de desarrollo. Una segunda clase de aplicaciones englobaría a aquellas que procesan un gran volumen de datos mediante algoritmos complejos. Ejemplos incluyen la exploración sonar y sísmica, donde el volumen de producción es bajo, los algoritmos más exigentes y el diseño del producto más largo y complejo. En consecuencia, el diseñador busca un DSP que tenga máximas prestaciones, buena facilidad de uso y soporte para configuraciones multiprocesador. En algunos casos, más que diseñar el propio hardware y software, el sistema se construye a partir de placas de desarrollo de catálogo y el software a partir de librerías de funciones ya existentes. 88 Facultad de Ingeniería UNAM 89 Facultad de Ingeniería UNAM 4.2 Ley de Moore 4.2.1 Historia de la Ley de Moore A principios de 1965, a sólo seis años de la invención del circuito integrado (CI) y tres años antes que Gordon Moore ayudara a fundar Intel Corporation, los CIs eran una tecnología de nicho cara, usada principalmente en aplicaciones militares. Pero Moore vio hacia futuro. Observó que sus ingenieros habían duplicado el número de transistores en un circuito integrado cada año. Basado en esto, predijo que ésta tasa de crecimiento continuaría así por otra década. Y aún más importante, observó la relación que significaría reducir el tamaño del transistor: los CIs se volverían sumamente más baratos, más poderosos, y más abundantes. Y esto transformaría la industria de la electrónica. La Ley de Moore, como se conoce ahora, ha demostrado su precisión, su permanencia, y produjo más cambios a largo plazo de los que Moore alguna vez esperó. Su predicción, tan poderosa por su simplicidad, ha influido por casi cuatro décadas apoyando la ingeniería y el motor industrial del silicio de Intel. Lo que empezó como una observación se ha vuelto tanto guía y motor, mostrando el escenario para la industria de semiconductores y produciendo un universo que expande exponencialmente nuevas aplicaciones y oportunidades. Ahora, en lugar de perder el impulso, las innovaciones y progresos ganados por el esfuerzo de Intel de alcanzar las predicciones de la Ley de Moore se aprovechan y aplican extendiéndolas y expandiéndolas. Intel espera producir procesadores de mil millones de transistores al final de la década, y el rango de aparatos que se pueden fabricar de silicio se extiende. Así, mientras que la ejecución por Intel de la Ley de Moore ya ha transformado el mundo, su impacto futuro probablemente sea igual o más dramático. 4.2.1.1 Nacimiento de la Ley de Moore A pesar de su nombre, la Ley de Moore no es una ley científica o natural. Es un principio que describe la oportunidad única de mejoras exponenciales proporcionada por los adelantos en la tecnología de semiconductores. El génesis de la ley fue un artículo que Gordon Moore escribió para el 35° aniversario de una revista electrónica, publicado en abril de 1965. Se le había pedido describir el futuro de electrónica. Los circuitos integrados en ese tiempo se limitaban a 30 transistores, pero el equipo de investigación de Moore había terminado un componente con 60 transistores. Balanceando innovación y factores económicos, Moore extrapoló que el número de dispositivos en un chip de silicio se podría doblar cada año en la próxima década. El profesor Carver Mead, un colega de Cal Tech, nombró más tarde la predicción como la “Ley de Moore”, nombre que se le quedó. En 1975 el número de dispositivos en un chip se ejecutaban un poco mejor de lo predicho. Moore, sin embargo, ajustó el ciclo de duplicación a 24 meses en compensación, en espera de incrementos en la complejidad de semiconductores. A finales de los años 80s, un ejecutivo de Intel observó que la Ley de Moore manejaba una duplicación de rendimiento en la computación cada 18 meses (figura 34). El término Ley de Moore se usa también para describir los resultados de la ley: el continuo 90 Facultad de Ingeniería UNAM crecimiento exponencial de la capacidad digital y mejoras en la relación precio/desempeño. Figura 10 Poder de procesamiento, medido en millones de instrucciones por segundo, que ha crecido debido al incremento del número de transistores en un chip. 4.2.2 Impacto exponencial El impacto por alcanzar las predicciones de la Ley de Moore ha sido profundo. Al mirarlo en términos simples de dispositivos de cálculo, el número de transistores en un chip ha alcanzado incrementos de múltiplos de diez desde los dispositivos de 30 transistores de 1965. En 1975 los transistores en los dispositivos de cálculo fueron 65,000. En 1989, el procesador Intel i486 tenía 1.4 millones de transistores. En enero de 2002 Intel anunció el procesador Intel Pentium 4 con la más nueva tecnología 0.13 micras de Intel, el cual contiene 55 millones de transistores sobre una pieza de silicio del tamaño de una uña. Pronto, ingenieros de Intel agregarán cientos de millones de transistores anualmente. Incluso la rapidez y ejecución han crecido mayúsculamente más que el número de transistores. El procesador i486 corría a 25 MHz. Hoy los procesadores Pentium 4 corren a 2.20 GHz y siguen aumentando. El procesador pronosticado de mil millones de transistores correrá probablemente a velocidades cercanas a 20 GHz. Visto desde otra perspectiva, a principios de 1990 tomó tres años avanzar del procesador i486 de 25 MHz a 50 MHz. Hoy, los ingenieros de Intel están agregando frecuencia a razón de 25 MHz por semana. El jefe de tecnología de Intel Pat Gelsinger comenta que en unos años, Intel anticipa agregar 25 MHz en un día solo. Otros atributos mejorados por la Ley de Moore incluyen la integración, el tamaño, la funcionalidad, la eficiencia de energía, y la fiabilidad. 91 Facultad de Ingeniería UNAM Un gran impacto ha sido en el ámbito económico. La inflación generalmente baja el valor del dólar u otras monedas. "Los dólares de la Ley de Moore" es el nombre de un tipo de inflación en especial: el del valor siempre creciente y el poder de compra. Cuando Moore declaró por primera vez su ley, el costo de un solo transistor era de 5 dólares. Hoy, con 5 dólares podría comprar 5 millones de transistores, o bien 1 millón de transistores por dólar. Es difícil de imaginar que con un dólar se pueda comprar 1 millón de cualquier cosa, y mucho menos un millón de estos dispositivos enormemente poderosos. El hecho es que podemos ser una consecuencia directa de la Ley de Moore y su proposición de valor único: una rápida reducción del costo da por resultado una creación de valor exponencial (figura 35). Figura 11 La ley de Moore significa costos a la baja. Encapsular más transistores en menor espacio ha conducido a reducciones dramáticas en su costo y en el costo de los productos que los integran. La importancia real de la Ley de Moore es menor en lo que predice que en lo que ha producido el esfuerzo de Intel por hacerlo y mantenerlo como una realidad. Hoy los microprocesadores impulsan la economía, son el combustible del crecimiento de Internet. Una tarjeta musical de cumpleaños tiene más poder de cómputo que los mainframes más rápidos de hace unas pocas décadas. Y, como la tecnología del silicio involucrada, la Ley de Moore cataliza el desarrollo de nuevas áreas de la aplicación enteras, causa la integración sencilla del cálculo y las comunicaciones y extiende el alcance de la Ley de Moore más allá de los reinos digitales de hoy. 92 Facultad de Ingeniería UNAM 4.2.3 Extendiendo la Ley de Moore con Nanotecnología de Silicio Manejar la Ley de Moore y dar en sus predicciones significa un proceso de reducción, disminuir las dimensiones geométricas de característica nominal de los dispositivos multiplicándolos y aumentando la potencia del silicio. El proceso de disminuir las geometrías se refiere a crear más espacio disponible para llevar más y diferentes tipos de dispositivos y funciones al chip. Un factor dominante en la continuación de la ley de Moore, es la nanotecnología, o llamada a veces fabricación molecular, que no es nada nuevo para Intel. Desde el lanzamiento del procesador Pentium 4 de Intel con un ancho del gate del transistor menor a 70 nm la fabricación en grandes cantidades de estructuras debajo de 100 nm ha sido la norma en Intel. De hecho, en los últimos tres años, Intel ha fabricado y ha vendido más de 50 cuatrillones de nanotransistores con un valor superior de 50 mil millones de dólares que lo hacen uno de fabricantes más grandes de nanotecnología hoy en día. El habilitador, atomic layer deposition (ALD), permite para el auto-montage de moléculas una capa mono-atómica a la vez basada en interacciones químicas sofisticadas, que naturalmente ocurren. Y los nanotubos o nanowires, construidos con la manipulación controlada de materiales a escala atómica, podían convertirse eventualmente en los ladrillos del edificio para una cierta futura generación de los productos de Intel. Al final de la última década, Intel ha encogido las geometrías por un orden de magnitud, desde una micra a tamaños debajo de 100 nanómetros. En la próxima década, las geometrías de procesos de Intel se acercarán a los límites físicos de la estructura atómica, trayendo nuevos desafíos como son potencia, calor, y conducta de la partícula. Intel ya ha mostrado transistores con características tan pequeñas como tres átomos. Los investigadores de Intel identifican agresivamente y eliminan cualquier barrera que les impida cumplir con la Ley de Moore, enfocándose en los principios de la tecnología del silicio y manufactura, incluyendo mejoras e innovaciones en proceso y tecnología industrial, estructura y materiales de transistores, y encapsulado. 4.2.3.1 Procesar y manufacturar tecnología La litografía es la tecnología usada para imprimir los modelos intrincados que definen los circuitos integrados hacia wafers de silicio. La tecnología actual de litografía de Intel usada en la producción de volumen es un proceso de 130 nm con características de longitud del gate de transistores de 60 nm y seis capas de interconexión de cobre. En agosto de 2002, Intel reveló el mayor avance del proceso de fabricación lógica de la industria. El nuevo proceso de 90 nm permite la impresión de líneas individuales más pequeñas que un virus, con características de siete capas de interconexión de cobre e integrando un número de mejoras tecnológicas industriales. Para empezar, ofrece los transistores Cmos más pequeños en producción del mundo, midiendo solamente 50 nm de longitud del gate. También implementa el óxido más delgado del gate usado en producción, apenas 1.2 nm o menos en cinco capas atómicas gruesas. Utilizado ya en la fabricación de chips SRAM de más alta capacidad del mundo, el proceso de 90 nm de Intel entró en la fabricación de volumen en el 2003, proporcionando ventajas significativas en funcionamiento, eficiencia de energía, y costo. Hacia el futuro, una tecnología avanzada de litografía actualmente bajo desarrollo, hará el estándar de producción de volumen. Conocida como litografía Extreme Ultraviolet (EUV), esta tecnología en lugar de transmitir la luz directamente usa el reflejo el cual deja un patrón de líneas aún más delgadas que 50 nm. En marzo de 2001 Intel entregó al EUV 93 Facultad de Ingeniería UNAM LLC (Limited Liability Corporation) los primeros formatos estándar-industriales de fotomáscaras para litografía EUV la cual usa un proceso propietario de generación de patrones mostrando anchuras de línea 30 por ciento más pequeñas que las máscaras más avanzadas en la industria de hoy. Después de esto, LLC anunció la terminación de la primera máquina prototipo a gran escala para hacer chips de computadora usando este nuevo proceso litográfico. Intel anticipa diseñar procesadores usando tecnología EUV en la segunda mitad de la década. Para llevar al máximo el impacto del liderazgo en tecnología de procesamiento, Intel también enfoca adelantos continuos en tecnología industrial. Por ejemplo: el tamaño del wafer. Los wafers proporciona la base en la que se fabrican los chips. Usando wafers más grandes se reduce costos industriales y el impacto al medio ambiente y mejora el rendimiento por fabricación. Usando 300 milímetros de wafer en la presente tecnología de procesadores, Intel espera bajar costos al 30 por ciento y por energía y requisitos de agua al 40 por ciento. Y mientras que mucha de la industria continúa en la transición de la producción a un proceso de 130 nm en wafers de 200 milímetros, Intel se está moviendo ya agresivamente para desplegar su nuevo proceso de 90 nm en los wafers de 300 milímetros exclusivamente. 4.2.3.2 Estructura del transistor y materiales En junio de 2001, Intel anunció que había desarrollado transistores cuyas estructuras características son de sólo 20nm. Estos nuevos transistores son 30 por ciento más pequeños y 25 por ciento más rápidos que los transistores anteriores más rápidos de la industria, que Intel había desarrollado también justamente un año antes. Al final de 2001, Intel consiguió desarrollar otro transistor más pequeño con una longitud de 15 [nm]. Estos transistores increíblemente pequeños de 15 nm son aproximadamente del tamaño que se requerirá en la industria hacia el final de esta década. Como los transistores continúan encogiéndose y se encapsulan más herméticamente hacia slivers de silicio corriendo a velocidades más altas, el consumo de potencia y calor pueden volverse factores potenciales que limiten la continuidad de la Ley de Moore. Para tratar este problema de la densidad de potencia, Intel está explorando el uso de nuevas estructuras, tales como el transistor tri-gate, y nuevos materiales, tales como silicio filtrado, que permiten incrementar el rendimiento mientras que mejoran la eficiencia de energía. El transistor Terahertz de Intel, anunciado en noviembre de 2001, es quizás el mejor ejemplo de esto. Implementando una estructura reducida del substrato del transistor y un nuevo material dieléctrico, este dispositivo experimental puede prenderse y apagarse por intervalos de un trillón de veces por segundo. Intel espera incorporar elementos de este nuevo diseño de transistor en su cadena de producción por la segunda mitad de esta década. 4.2.3.3 Encapsulado Hoy un chip de silicio se conecta a su encapsulado por medio de gotas diminutas de soldadura, o "bumps", creando conexiones eléctricas y mecánicas entre el paquete y el chip. Como la frecuencia de futuros procesadores aumenta exponencialmente, la ejecución de los bumps, el espesor del encapsulado, y el número de conexiones se vuelven preocupantes. En octubre de 2001 Intel anunció un adelanto de encapsulado, 94 Facultad de Ingeniería UNAM Bumpless Build-up Layer (BBUL), que elimina estos bumps para el crecimiento del paquete alrededor del silicio. Esta técnica reduce el espesor del paquete y habilita al procesador a correr a un menor voltaje. La tecnología BBUL de encapsulado es un ejemplo de la novedosa manera de embeber una computadora poderosa en espacios muy pequeños. Intel también apunta sobre el encapsulado con una variedad de nuevas tecnologías en encapsulado a gran escala del chip, creando una densidad más alta, soluciones de "system-in-a-package" que usan el encapsulado a gran escala del chip más avanzado del mundo. Estas soluciones de encapsulado no sólo dan mayor margen para la densidad del silicio encapsulado mientras simultáneamente reduce la marca del paquete global, sino que también ofrece nuevos métodos mejorados de integración funcional de dispositivos de silicio disímiles. Llevar a cabo la ley de Moore también requiere del establecimiento de una red y la creciente colaboración con consorcios (como SemaTech Internacional), cuerpos de normalización, colaboradores, y clientes. Intel ha implementado una única "investigación sin barreras" creando un ecosistema ampliado de innovación. La compañía ha financiado laboratorios en las universidades principales de Estados Unidos, tales como el laboratorio de investigación de Intel de Berkeley en la universidad de California. Intel también apoya la investigación académica prometedora alrededor del mundo, y el capital de Intel proporciona ayuda a los inicios que desarrollan las tecnologías de siguiente generación. 4.2.4 Más Allá de los Transistores Los investigadores de Intel también están ampliando la ley de Moore identificando y llevando a cabo agresivamente tecnologías que llevan el silicio más allá de los transistores y del rendimiento, y están permitiendo integrar nuevos dispositivos que entregan por completo nuevas capacidades. Como en los transistores basados en silicio duplican su capacidad de cómputo cada 24 meses, así se incrementa la capacidad de aumentar su complejidad y de integrar la convergencia de muchas variedades de dispositivos en un chip. Ésta combinación - cómputo, complejidad, y convergencia (figura 36) - significa un sistema más rico en recursos para la capacidad y la funcionalidad y mejoramiento de la flexibilidad con la cual puede ser aplicada. 95 Facultad de Ingeniería UNAM Figura 12 Cómputo, complejidad, convergencia. Ampliándose más allá de la sola variable del número de dispositivo, la ley de Moore comprende también la complejidad de aumento on- chip de dispositivos y la convergencia de nuevas funciones y tecnologías en el silicio. Cómputo. El aumento del cómputo del transistor en un chip es fundamental en la ley de Moore. Cuanto más se puede integrar en un chip, mayor es el potencial para el creciente rendimiento, funcionalidad, y nuevas capacidades. Es así como el transistor siempre que es reducido en tamaño permite incrementar el cómputo del dispositivo, reduciendo además el espacio necesario para una función particular lógica o de memoria, liberando espacio para nuevos dispositivos. Complejidad. Gordon Moore a menudo ha citado el incremento de complejidad como un factor importante para realizar la Ley de Moore. La complejidad creciente puede incluir tales adelantos como incorporar air gaps, partes móviles, antenas u otro tipo de nuevas estructuras que busquen una nueva funcionalidad del silicio acabado. Convergencia. La convergencia lleva funciones múltiples y diversas y tecnologías heterogéneas hacia un solo chip llevando al máximo la integración y funcionalidad. La convergencia ofrece una oportunidad extra para la innovación, trae nueva funcionalidad y aumenta el valor de productos semiconductores. Nuevas oportunidades incluyen combinar la funcionalidad del transistor tradicional con sistemas MEMS, dispositivos como antenas de radiofrecuencia proporcionan la existencia de radio chips de silicio totalmente integrados de bajo costo con roaming inteligente o agregar microradiadores que minimizan o eliminan la necesidad de soluciones suplementarias de enfriamiento asociadas con los chips. El impacto del desarrollo de Intel por alcanzar las predicciones de la Ley de Moore va más allá de la computadora. El desarrollo impulsa a tener millones y eventualmente billones de transistores en un chip, añadiendo dimensiones de complejidad y convergencia, ofreciendo crecientes oportunidades de los beneficios resultantes del impulso disponibles a un rango mayor de tecnologías, y áreas de aplicación. El impacto forma la próxima generación de tecnologías tan diversas como: MEMS Fluidics Conectividad Wireless Sensores de autoconfiguración de redes 96 Facultad de Ingeniería UNAM Transmisión óptica y procesamiento Tecnologías Biológicas La meta en cada caso es no simplemente mejorar el rendimiento sino entregar nueva funcionalidad y proporcionar una plataforma abierta para la innovación ampliada. Combinado con nuestro mundo cada vez más en red, éste cambio abre la puerta en un mundo de nuevas aplicaciones y mueve a la ley de Moore en nuevo dominio desde los coches hasta las cocinas y los objetos inteligentes. 4.2.4.1 Expandiendo la industria de la innovación El silicio es el material para el ecosistema de la innovación del siglo 21, tal como el acero lo fue a principio del siglo 20. El silicio de la Ley de Moore ha impulsado el mundo de la edad de la información a miniaturizar y conectar la electrónica. Con la extensión implacable de Intel y expansión de la Ley de Moore, se destina al silicio volverse el puente entre universos físicos y electrónicos uniendo el mundo de átomos al mundo de bits, fotones a electrones, y electrones a ondas de radio. La continua evolución de la capacidad del circuito integrado como resultado de las predicciones de la Ley de Moore enriquecen los negocios tradicionales con nueva capacidad, e impulsa la industria de la tecnología en un universo más grande. Por ejemplo, sensores de red con chip de comunicaciones inalámbricas generarán grandes volúmenes de datos nuevos e información, y extenderá el tamaño, alcance y valor de productos para servidores tradicionales y PCs, y extenderá al mercado aplicaciones y servicios que creen información valiosa. La persecución de Intel del cumplimiento de la Ley de Moore ha transformado nuestro mundo. Pero la futura oportunidad excede los beneficios del pasado. En un mundo donde la mayor parte de la población del mundo tiene poco o nada de acceso a tecnología digital, las predicciones de la Ley de Moore ayudarán a llevar a naciones en desarrollo al mundo digital. Una riqueza de nuevos espacios de mercado emergerá como factores de costo, tamaño, y conectividad trayendo algo mágico virtualmente a cada actividad humana. 4.2.5. Ley de Moore y Generaciones del Procesador IA-32 El crecimiento exponencial de la potencia y propiedad informática han hecho de la computadora una de las fuerzas más importantes en los negocios y la sociedad en la segunda mitad del siglo XX. Las computadoras continúan jugando un papel crucial en el crecimiento de la tecnología, los negocios, y nuevas áreas. El poder informático y la complejidad (o llanamente, el número de transistores por procesador) de los procesadores de la arquitectura Intel han crecido en relación estrecha a la ley de Moore. Para aprovechar el avance de la nueva tecnología de proceso y nuevos diseños de la microarquitectura, cada nueva generación de procesadores IA-32 han demostrado un escalamiento en frecuencia y nuevos niveles de rendimiento por encima de la generación de procesadores previos. La arquitectura Intel IA-32 ha estado a la vanguardia de la revolución informática y es actualmente la arquitectura de computadoras preferida, como medida para las computadoras en uso y el poder de procesamiento computacional total disponible en el mundo. 97 Facultad de Ingeniería UNAM Las características importantes del procesador Intel Pentium 4, Intel Xeon, Intel Xeon MP, Pentium III, y Pentium III Xeon con advanced transfer cache se muestra en la tabla 8. 4.2.5.1 Breve historia de la arquitectura IA-32 Este capítulo proporciona un resumen de los mayores pasos técnicos hacia la actual arquitectura IA-32, del procesador Intel 8086 a los más recientes procesadores Pentium 4 e Intel Xeon1. El código objeto creado para los procesadores lanzados a principios de 1978 todavía se ejecuta en los más recientes procesadores en la familia de la arquitectura IA-32. 4.2.5.1.1 Procesadores de 16 bits y segmentación (1978) La familia de la arquitectura IA-32 fue precedida por procesadores de 16 bits, el 8086 y 8088. El 8086 tiene registros de 16 bits y un bus de datos externo de 16 bits, con 20 bits de direccionamiento dándole 1 MB de espacio de dirección. El 8088 es similar al 8086 excepto que tiene un bus de datos externo de 8 bits. Con segmentación un segmento del registro de 16 bits contiene un apuntador a un segmento de la memoria de hasta 64 KB. Usando cuatro segmentos del registro al mismo tiempo, los procesadores 8086/ 8088 pueden direccionar hasta 256 KB sin conmutar entre segmentos. Las direcciones de 20 bits que se pueden formar usando un segmento del registro y un apuntador adicional de 16 bits proporcionando un rango de direcciones total de 1 MB. 4.2.5.1.2 El Procesador Intel 286 (1982) El procesador Intel 286 introdujo el modo de funcionamiento protegido en la arquitectura IA-32. El modo protegido usa el contenido de los segmentos de registro como seleccionadores o apuntadores en tablas descriptoras. Las tablas descriptoras proporcionan direcciones base de 24 bits con una memoria física de hasta 16 MB, soportado para el manejo de memoria virtual en una base swapping del segmento, y varios mecanismos de protección. Estos mecanismos incluyen: Verificación del límite del segmento Opciones del segmento de sólo lectura y sólo ejecución Cuatro niveles de privilegios. 4.2.5.1.3 El Procesador Intel386 (1985) El procesador Intel386 fue el primer procesador de 32 bits en la familia de la arquitectura IA-32. Introdujo registros de 32 bits tanto para contener operandos como para direccionamiento. La mitad baja de cada registro Intel386 de 32 bits retiene las propiedades de los registros de 16 bits de generaciones anteriores, permitiendo la compatibilidad hacia atrás. El procesador también proporciona un modo virtual-8086 que da margen para mayor eficiencia cuando ejecuta programas creados para procesadores 8086/ 8088. 1 Para detalles de datos históricos, siga el siguiente vínculo: http://www.intel.com/intel/intelis/museum/ 98 Facultad de Ingeniería UNAM Además, el procesador Intel386 tiene soporte para: Un bus de direcciones de 32 bits que soporta hasta 4 GB de memoria física Un modelo de memoria segmentada y un modelo de memoria flat2 Paginación, con un tamaño de página fijo de 4 KB proporcionando un método para el manejo de la memoria virtual Soporte para etapas paralelas 4.2.5.1.4 El Procesador Intel486 (1989) El procesador Intel486 agregó mayor capacidad de ejecución paralela por la expansión del instruction decode del procesador Intel386 y execution units en cinco etapas segmentadas (pipelining). Cada etapa opera en paralelo con las otras hasta en cinco instrucciones en diferentes etapas de ejecución. Además, el procesador agregó: Un cache on-chip de primer nivel de 8 KB que aumentó el porcentaje de instrucciones que se podrían ejecutar a la tasa escalar de una por ciclo de reloj Una unidad de punto flotante (FPU) x87 integrada Ahorrador de energía y capacidades de manejo del sistema 4.2.5.1.5 El Procesador Intel Pentium (1993) La introducción del procesador Intel Pentium agregó una segunda execution pipeline para desarrollar ejecución superescalar (dos pipelines, conocidas como u y v, juntas pueden ejecutar dos instrucciones por ciclo de reloj). El cache on-chip de primer nivel fue duplicado, con 8 KB dedicados al código y otros 8 KB dedicados a datos. El data cache usa el protocolo MESI para soportar con mayor eficiencia el writeback cache en adición del write-through cache usado por el procesador Intel486. Branch prediction con un on-chip branch table se aumentó para incrementar el desempeño en la construcción de ciclos. Además, el procesador agregó: Extensiones para hacer el modo virtual-8086 más eficiente Data paths internos de 128 y 256 bits agregan rapidez a la transferencia de datos internos Bus de datos externo Burstable se aumentó a 64 bits Un APIC para soportar sistemas con múltiples procesadores Un modo dual de procesador para soportar glueless dos sistemas de procesador Un paso subsecuente de la familia Pentium fue introducción de la tecnología Intel MMX (el Procesador Pentium con tecnología MMX). La tecnología Intel MMX utiliza el modelo de ejecución de una sola instrucción, datos múltiples (SIMD) para realizar operaciones paralelas en paquete de datos enteros en registros de 64 bits. 4.2.5.1.6 La Familia de Procesadores P6 (1995-1999) 2 Requiere sólo un componente de 32 bits de la dirección para acceder a cualquier parte en el espacio de la dirección lineal. 99 Facultad de Ingeniería UNAM La familia de procesadores P6 se basó en una microarquitectura superescalar que impone nuevos estándares de rendimiento. Una de las metas en el diseño de la familia de la microarquitectura P6 era exceder el rendimiento del procesador Pentium significativamente usando el mismo proceso de manufactura de 0.6 micrómetros, cuatro capas y metal BICMOS. Los miembros de esta familia incluyen: Procesador Intel Pentium Pro Procesador Intel Pentium II Procesador Intel Pentium II Xeon Procesador Intel Celeron Procesador Intel Pentium III Procesador Intel Pentium III Xeon El procesador Intel Pentium Pro de es superescalar de tres maneras. Usando técnicas de procesamiento paralelo, el procesador es habilitado para descifrar, enviar, y completar la ejecución (retiro) en tres instrucciones por ciclo de reloj en promedio. El Pentium Pro introdujo la ejecución dinámica (análisis del flujo de microdatos, ejecución out-of-order, Branch prediction superior, y ejecución especulativa) en una implementación superescalar. Se favoreció el desempeño del procesador por su caches. Tiene los mismos dos caches de primer nivel on-chip de 8 KB como el Procesador Pentium y un cache adicional de nivel 2 de 256 KB en el mismo paquete como el procesador. El procesador Intel Pentium II agregó la tecnología Intel MMX a la familia de procesadores P6 junto con un nuevo encapsulado y varias mejoras del hardware. El core del procesador se encapsula en el single edge contact cartridge (SECC). El nivel 1 de los caches de datos e instrucciones se amplió a 16 KB cada uno, y el nivel 2 del cache de 256 KB, 512 KB, y 1 MB son soportados. Un bus trasero a mitad de velocidad de ciclo de reloj conecta el cache de nivel 2 al procesador. Múltiples estados de baja energía tal como AutoHALT, Stop-Grant, Sleep, y Deep Sleep son soportados para conservar la energía cuando inactivo. El procesador Pentium II Xeon combinó las características premium de generaciones anteriores de procesadores Intel. Éstas incluyen: Escalabilidad 4-way, 8-way (y más) y un cache de nivel 2 de 2 MB corriendo en un bus trasero a velocidad de reloj. La familia de procesadores Intel Celeron enfocó la Arquitectura IA-32 en el valor del segmento del mercado de las PCs. Ofrece un cache de nivel 2 integrado de 128 KB y un plastic pin grid array (P.P.G.A.) como factor para bajar el costo del diseño del sistema. El procesador Intel Pentium III introdujo las extensiones Streaming SIMD (SSE) a la Arquitectura IA-32. Las extensiones SSE extienden el modelo de ejecución SIMD introducida con la tecnología Intel MMX para proporcionar un juego nuevo de registros de 128 bits y la habilidad de ejecutar operaciones SIMD en paquete con valores de punto flotante de precisión simple. El procesador Pentium III Xeon extendió los niveles de ejecución de los procesadores IA- 32 con el perfeccionamiento de full-speed, on-die, y Advanced Transfer Cache. 4.2.5.1.7 El Procesador Intel Pentium 4 (2000) y el Procesador Intel Pentium 4 con soporte de la tecnología Hyper-Threading (2004) El procesador Intel Pentium 4 se basa en la microarquitectura Intel NetBurst, también introdujo las siguientes mejoras características: Extensiones Streaming SIMD 2 (SSE2) 100 Facultad de Ingeniería UNAM Extensiones Streaming SIMD 3 (SSE3) 4.2.5.1.8 El Procesador Intel Xeon (2001-2004) El procesador Intel Xeon se basa también en la microarquitectura Intel NetBurst. Como familia, se diseña este grupo de procesadores IA-32 para usarse en sistemas servidor de multiprocesador y workstations de alto rendimiento. El procesador Intel Xeon MP introdujo soporte para la Tecnología HyperThreading. 4.2.5.1.9 El Procesador Intel Pentium M (2003-2004) La familia de procesadores Intel Pentium M es de alto desempeño, familia de procesador móvil de baja energía con perfeccionamientos de la microarquitectura por encima de generaciones anteriores de procesadores Intel móviles. Se diseña esta familia para extender la vida de la batería y la integración con innovaciones de la plataforma que habilitan nuevos modelos de uso (tal como movilidad extendida, factores de forma ultra delgados, e integración de redes inalámbricas). 101 Facultad de Ingeniería UNAM 4.3 Procesadores vs. DSP’s 4.3.1 Introducción El objetivo de una computadora es la ejecución de aplicaciones. Por ello, el tipo de aplicación y la velocidad de ejecución requerida es una guía constante en el diseño de todos sus componentes. Consideramos que la carga multimedia no es una moda; en los sistemas de escritorio, tanto domésticos como profesionales, cobra cada día más importancia el manejo de la imagen y el sonido. Decimos que una aplicación es “multimedia” si está relacionada con la imagen y/o el sonido en cantidades y velocidades similares a las que entiende o produce una persona. Así pues, podemos incluir el procesamiento y reconocimiento de documentos, la generación de imágenes (gráficos), la compresión (transmisión y almacenamiento de imagen y sonido), el reconocimiento de voz, el cifrado, etc. Desde el punto de vista del procesador, las aplicaciones multimedia tienen características similares: Datos de poca precisión (8 ó 16 bits), organizados en estructuras grandes. Cálculos regulares y simples, con mucho paralelismo inherente. Requisitos en Tiempo Real. Múltiples flujos concurrentes (por ejemplo vídeo y audio). Elevada transferencia de información (anchos de banda, MB/s) entre el procesador y la memoria. Estas características no dominaban en las aplicaciones de referencia en el diseño de los procesadores de propósito general (PPG). La industria produce equipos con el doble de potencia y la mitad de costo cada 18 meses, como lo hemos visto en el subcapítulo anterior pero parece que la demanda multimedia requiere un crecimiento aún más rápido. En la actualidad, las necesidades de tiempo real y los altos anchos de banda requeridos están dificultando la integración de aplicaciones que precisen a la vez visualización, cálculo, almacenamiento y transmisión. Por ello se ha mostrado interés en el desarrollo que añade al PPG recursos para ejecutar primitivas multimedia en Unidades Funcionales preparadas para ello. Podemos mencionar las siguientes extensiones: MAX (Multimedia Acceleration eXtension) para HP PA-RISC 2.0, VIS (Visual Instruction Set) para Sun Sparc V9, MMX (Matrix Math eXtensions) para Intel x86, MDMX (Mips Digital Media eXtension) para SGI MIPS-V, MVI (Motion Video Instructions) para DEC Alpha y AltiVec de Motorola para PowerPC. MAX, VIS, MMX y MVI forman parte integral de la misma arquitectura. MDMX se define como una extensión para aplicaciones específicas, independiente de MIPS V pero compatible con ella. AltiVec es la última propuesta por parte de Motorola. En la actualidad sólo los grandes mayoristas de aplicaciones están sacando partido a las extensiones, a base de incluirlas directamente en funciones de librería codificadas en ensamblador 4.3.1.1 Conceptos La Arquitectura del Lenguaje Máquina (ALMa) define las reglas de comportamiento que un procesador debe acatar, así como los aspectos de almacenamiento y formato. Estas 102 Facultad de Ingeniería UNAM definiciones se plasman en un manual y con frecuencia también en un lenguaje más formal. SPARC, por ejemplo, está definido en ISPS, un veterano lenguaje de descripción del hardware. Las reglas de comportamiento definen la secuencia de las instrucciones, los modos de direccionar datos, las operaciones y naturaleza de los operandos, etc. Los aspectos de almacenamiento y formato fijan las dimensiones de los diferentes almacenes (memoria, registros, etc.) y establecen las “plantillas” de interpretación de datos e instrucciones. La ALMa es una interfaz situada entre el hardware y la aplicación. Por tanto su diseño debe reunir a la vez cualidades para implementar y para usar. Un diseño orientado a la implementación permite un gran rango de realizaciones, desde el bajo costo hasta las altas prestaciones; esto tiene un efecto secundario importante: la capacidad de asimilar las mejoras tecnológicas (más transistores y mayor frecuencia de reloj) durante un tiempo razonable (en el orden de décadas). Un buen diseño para el uso proporciona primitivas útiles a los diferentes niveles software, principalmente al compilador y al sistema operativo. Como se ha dicho, para aumentar el rendimiento de los PPG en el cálculo multimedia, la industria ha definido varias extensiones al ALMa. La tarea no es trivial puesto que es necesario identificar primitivas que: se utilicen con frecuencia en la mayoría de aplicaciones, no sean tan complejas que afecten negativamente a la velocidad del procesador ejecutando las instrucciones antiguas y, puedan beneficiarse de las mejoras tecnológicas. En lo esencial las extensiones se parecen mucho entre sí, aunque también presentan diferencias no despreciables. La principal idea es operar en paralelo con datos de pequeña precisión empaquetados en la palabra del procesador. En adelante mencionaremos la estructura y operaciones de manera similar como lo hicimos con los DSPs, enfocándonos solamente a las extensiones multimedia de los PPG y posteriormente profundizando en los cambios de la arquitectura de los procesadores Intel para terminar con una aplicación que sobre este tipo de procesadores realiza la misma función que un DSP. 4.3.2 Extensiones Multimedia al Lenguaje Máquina 4.3.2.1 Vectores multimedia Los algoritmos multimedia trabajan con datos de pequeña precisión (8, 12 ó 16 bits), aunque a veces se use una mayor en cálculos intermedios. Por ejemplo, se usan 24 bits para manejar sonido en alta fidelidad en vez de los 16 bits de muestreo, ó 16 bits en cálculo de pixeles en vez de los 8 ó los 12 bits típicos para su representación. Si utilizamos una ruta de datos de 64 bits para hacer una secuencia de cálculos de menor precisión, estamos desperdiciando recursos, tanto de cálculo como de almacenamiento. La solución a este problema en el contexto multimedia descrito anteriormente, ha consistido en empaquetar varios elementos dentro de una palabra y diseñar las ALUs (unidades aritmético lógicas) para que trabajen de forma particionada. El resultado es un paralelismo pequeño pero efectivo de tipo SIMD. Llamaremos al nuevo tipo de datos Vector Multimedia, (distinguiéndolo de los grandes vectores de longitud variable de las máquinas vectoriales clásicas). 103 Facultad de Ingeniería UNAM La mayoría de las arquitecturas comentadas son de 64 bits. Ix86 de Intel es la única de 32 bits, pero su extensión MMX utiliza 64 bits. De esta forma, los vectores son de 64 bits y contienen componentes de 8, 16 y 32 bits (ver Figura 37). Así pues, podemos operar en paralelo sobre ocho elementos de 8 bits, sobre cuatro de 16 bits o sobre dos de 32 bits. 63 55 47 39 31 23 15 7 0 63 47 31 15 0 63 31 0 63 0 Figura 13 Vector de 64 bits, 8x8, 4x16 ó 2x32. Las extensiones soportan naturales y enteros en complemento a dos, pero no todas permiten combinar libremente precisión y signo. Por ejemplo, apenas ninguna soporta enteros de 8 bits y varias no soportan naturales de 16 bits. Las operaciones sobre vectores multimedia pueden agruparse en dos grandes clases: 1. Las que afectan a cada elemento por separado sin cambio en la estructura del vector: Operaciones aritméticas lógicas: suma, resta y multiplicación, tratamiento de bits (and, or), etc. 2. Las que alteran el número, formato u orden de los elementos: Reestructuración: conversión, mezcla o permutación. Conversión a precisiones diferentes, de menor a mayor o viceversa. Operadores de reducción que combinan elementos para formar un conjunto menor de valores. 4.3.2.2 Operaciones aritmético lógicas Modificar la ruta de datos del procesador para que opere de forma particionada en sumas o restas es fácil. Una ALU de m bits puede efectuar k operaciones independientes sobre un vector de k elementos de m/k bits con cambios que no aumentan el tiempo de ciclo del modo normal (rompiendo en los puntos apropiados la cadena del acarreo). Las operaciones lógicas (and, or,...), al realizarse bit a bit, son independientes del tipo de datos. Es exactamente lo mismo aplicarlas a palabras de 64 bits que a cualquier tipo de vectores multimedia. Algunas extensiones hacen uso de las operaciones ya existentes en la ALMa (MAX, MVI), otras añaden operaciones nuevas (VIS, AltiVec) o las incluyen por primera vez para palabras de 64 bits (MMX). La multiplicación con vectores al igual como sucede con los DSPs ya no es un cambio menor. Al multiplicar dos naturales de m bits se necesitan 2m bits para representar el 104 Facultad de Ingeniería UNAM resultado. Si además acumulamos, se necesita un número de bits adicional según el rango final deseado. En la figura 38 se ilustra un ejemplo con m =16. Posibles soluciones son: 1. Utilizar registros acumuladores de mayor tamaño. Podemos realizar múltiples operaciones requiriendo tan solo un redondeo al final. De las extensiones mencionadas la única que utiliza acumuladores es MDMX de MIPS. 2. Promocionar los operandos. Convertir los operandos de precisión de almacenamiento a la necesaria para el cálculo. Esto es de 8 bits a 16 bits ó de 16 bits a 32 bits. Cada vez que promocionemos estaremos dividiendo el paralelismo por dos. Además, por lo general, la conversión de tipo también consumirá tiempo reduciendo, aún más, el rendimiento. 63 15 0 a0 Vector A 63 15 0 b0 Vector B Multiplicador 63 31 0 a0*b0 Contenido tras multiplicar Sumador 63 0 Σ(a0*b0) Contenido tras acumular Figura 14 Multiplicación de componentes VIS, MMX y AltiVec disponen de diversas instrucciones para multiplicar elementos de pequeña precisión (generando un resultado de igual o mayor precisión). 4.3.2.3 Reestructuración de tipos La característica más común de los datos de las extensiones multimedia es su estructura vectorial: en una palabra de 32 ó 64 bits se codifica un vector con varias componentes de tamaño menor. En este apartado se exponen operaciones relacionadas con la manipulación de estas estructuras vectoriales. Las instrucciones soportan una o más de las siguientes funciones: Conversión de tipos: aumentar o disminuir la precisión de las componentes. Mezcla: se trata de crear un vector destino que combine las componentes de dos vectores fuente. Permutación: formar un operando destino con una permutación de las componentes del operando fuente. 105 Facultad de Ingeniería UNAM Conversión Mezcla Permutación Permutación Figura 15 Reestructuración de vectores; conversión, mezcla y permutación con y sin repetición En diversos algoritmos es interesante promocionar los datos de precisión de almacenamiento a otra mayor para realizar los cálculos intermedios con mayor precisión y viceversa. Por ejemplo, los pixeles almacenados como bytes pueden ser promocionados a 16 bits para los cálculos intermedios. Existen operaciones que son claramente de un tipo u otro, pero en la mayoría de los casos dependerá de como se usen y de los valores que tengan los operandos. Hay que entender que este tipo de operaciones son particulares para cada arquitectura, dependen de los tipos de datos permitidos, del modo de acceso a memoria y del objetivo de la extensión. 4.3.2.4 Otras operaciones dentro de las extensiones Además de las operaciones ya comentadas, hay otras que complementan el repertorio de las distintas extensiones. Nos referimos a comparaciones y desplazamientos. Según la arquitectura, estas operaciones toman más o menos importancia, pero en general no forman parte del núcleo de la extensión. Diversas arquitecturas disponen de desplazamientos sobre palabras de 64 bits, dichos desplazamientos son útiles en el acceso a memoria, ya que su función primordial es la alineación de datos. Los desplazamientos suelen ser usados para escalar datos y multiplicar o dividir por potencias de dos. Al trabajar con elementos se deberá tener en cuenta adecuadamente las fronteras entre ellos, aplicando el mismo desplazamiento a todos los elementos del vector, añadiendo ceros, o extendiendo el bit de signo donde toque. En el tema de las comparaciones sí que existen planteamientos distintos. Para empezar ni MAX ni MVI disponen de comparaciones. MDMX guarda el resultado de la comparación en los bits de condición. VIS genera una máscara de tipo indicando con un bit a uno o a cero los elementos que cumplen o no cumplen la condición. MMX genera una máscara en un registro MMX con elementos a uno o a cero según la condición se cumpla o no. AltiVec genera una máscara al igual que MMX pero permite opcionalmente modificar bits de condición y con ellos la secuencia. 4.3.2.5 Aritmética con saturación 106 Facultad de Ingeniería UNAM Las extensiones multimedia aprovechan la posibilidad de particionado ofreciendo una aritmética modular convencional, pero sobre k subpalabras de n = m/k bits. En las arquitecturas convencionales se facilita la reacción al desbordamiento de 2 formas: 1. Códigos de condición (c.c.) + instrucciones de salto y/o de desvío condicional. 2. Instrucciones aritméticas con generación de excepciones en caso de desbordamiento. Para las extensiones multimedia estos mecanismos siguen siendo válidos, con la complicación de k posibles desbordamientos por operación, apareciendo una casuística sobre si reaccionar por separado o conjuntamente a cada posible desbordamiento. En las extensiones los desbordamientos ni se señalan ni se generan excepciones. Si el resultado r (suma de p y q) corresponde a una magnitud que puede exceder el rango de representación alcanzable con n bits, entonces la existencia de desbordamiento es una condición de error: r no es correcto. Como hemos visto con los DSPs en aritmética con saturación, cuando una variable ha llegado a su techo acepta ser incrementada indefinidamente, manteniéndose en el mismo valor techo y manteniendo la corrección. Para dos números naturales de n bits p y q, la suma con saturación se define como: p+q sí p+q ≤ 2n - 1 r= 2n – 1 sí p+q > 2n – 1 Si bien este comportamiento puede parecer extraño a simple vista, existen muchas aplicaciones, tanto gráficas como de audio, en las que es muy interesante su uso. En especial en algoritmos de video-conferencia y sombreado de polígonos (algoritmo de Gouraud). Por ejemplo, un pixel negro sumado a otro pixel negro nos debe dar otro negro, nunca uno blanco. De no existir este tipo de aritmética se necesitarían alrededor de 5 instrucciones (dependiendo de la arquitectura) para checar los posibles desbordamientos y ajustar convenientemente el resultado. (Si pensamos que estamos trabajando con 4 datos de 16 bits nos estaremos ahorrando 20 instrucciones). Como ya vimos, los datos pueden ser naturales o enteros, de aquí que tengamos varios modos de saturación. Con signo tanto los operandos como el resultado tendrán signo. Un caso donde no se han puesto de acuerdo es en la saturación sin signo. Unos, como Intel, interpretan ambos operandos como valores sin signo, produciendo un resultado también sin signo. Otros, por ejemplo HP, interpretan que la saturación sin signo con ambos operandos de ese tipo no tiene sentido y denominan saturación sin signo a una mezcla donde el primer operando no tiene signo, mientras que el segundo sí lo tiene, dando como resultado un valor sin signo. MVI no dispone de dicha aritmética pero añade operaciones que permiten acotar valores a máximos o mínimos requeridos por las aplicaciones (también aparecen en Altivec). VIS sólo satura al empaquetar datos, no al operar. En MDMX cuando el destino es el acumulador se emplea aritmética módulo; si es otro registro, aritmética con saturación. AltiVec dispone de ambas formas de operar. A diferencia de todas las demás, existe un bit en la palabra de estado vectorial que nos indica si algún valor ha sido saturado. Junto con la inclusión de los nuevos tipos para operar en paralelo sobre datos de pequeña precisión, la saturación es una de las mayores innovaciones que aportan las extensiones. 107 Facultad de Ingeniería UNAM 4.3.2.6 Acceso a memoria En este apartado se exponen las instrucciones relacionadas con acceso a memoria en las distintas extensiones. En muchos casos el repertorio básico no necesita extensión y el soporte de cargas y descargas preexistente es suficiente. En los casos en que las extensiones añaden funcionalidad, podemos agrupar los añadidos en las siguientes categorías: Soporte a la transferencia de objetos no alineados, es decir, de datos cuya dirección de inicio no es múltiplo del tamaño del objeto. Al respecto hay que comentar que las primeras versiones de todos los repertorios RISC exigían alineación, aspecto que ha ido relajándose con el paso del tiempo. La línea Intel, en cambio, nunca ha tenido restricciones de alineación. Modos de direccionamiento complejos, que facilitan el acceso a estructuras multidimensionales. Soporte a transferencias multipalabra de tamaño fijo (bloques), con posibilidad de no afectar a los contenidos de memoria cache. Soporte a prebúsquedas software, que permita al compilador insertar instrucciones que con antelación suficiente carguen la cache y se experimente una reducción en la tasa de fallos. En resumen, se aporta funcionalidad al procesador para darle mayor eficiencia en el recorrido regular de grandes estructuras de datos, característica que aparece con frecuencia en las aplicaciones multimedia. Sabiendo el comportamiento de las aplicaciones multimedia en lo que respecta a accesos a memoria (pobre localidad temporal, alta espacial y working sets mayores que el primer nivel de cache), y en función del banco de registros elegido para almacenar los datos multimedia, cada extensión intenta complementar lo mejor posible a las primitivas de transferencia ya existentes en el ALMa. Algunas, (MAX, MDMX y MVI), no añaden ninguna función nueva, haciendo uso de las propias de la arquitectura. MMX añade tan solo una nueva operación para acceder a 64 bits, (al ser la arquitectura base de 32). AltiVec presenta un mecanismo software de prefetch de Streams. VIS, por el otro lado, añade toda una nueva gama de instrucciones, algunas de ellas bastante exóticas. A través de ellas se permite acceder a datos no alineados en memoria, accesos a matrices tridimensionales, realizar descargas parciales o mover bloques de datos sin alterar el contenido del cache. Las extensiones multimedia en los PPGs ofrecen nuevas posibilidades y retos en lenguajes de programación, compiladores, SO y arquitectura de computadoras. Según el éxito combinado de todas estas tecnologías los PPGs extendidos desbancarán o no a otras alternativas en el mercado multimedia. De mayor a menor especialización, las alternativas a considerar son: circuitos específicos (ASICs), procesadores digitales de señales (DSPs) y, procesadores multimedia. En el mercado del electrodoméstico son frecuentes los circuitos específicos (ASIC) que hacen lo estrictamente necesario, por ejemplo la electrónica de un teléfono digital. Estos circuitos específicos dan paso a los DSPs en aparatos de más prestaciones. Un DSP es muy veloz en ciertos algoritmos multimedia pero está limitado en aspectos de propósito general (seguridad, memoria virtual, procesamiento simbólico, etc.). 4.3.3 Arquitectura IA-32 de Intel 108 Facultad de Ingeniería UNAM Las secciones siguientes proporcionan información de la Arquitectura IA-32. 4.3.3.1. La Familia de la Microarquitectura P6 El procesador Pentium Pro introdujo un nueva microarquitectura normalmente llamada microarquitectura P6 del procesador. La microarquitectura P6 del procesador fue más tarde reforzada con un cache on die, de nivel 2, llamado Advanced Transfer Cache. La microarquitectura es superescalar de tres formas, arquitectura pipelined. Esto significa que por usar técnicas de procesamiento paralelas, el procesador es capaz en promedio para descifrar, despachar, y completar la ejecución (retiro) de tres instrucciones por ciclo de reloj. Para manejar este nivel de procesamiento de instrucciones, la familia P6 de procesadores usa un decoupled, un superpipeline de 12 estados que soporta la ejecución de instrucciones out-of-order. La figura 40 muestra una vista conceptual del pipeline del procesador con microarquitectura P6 con Advanced Transfer Cache perfeccionado. Bus del sistema Usado frecuentemente Usado poco frecuente Unidad Bus Cache on-die 2° nivel 8 way Cache 1er nivel 4 way, de baja latencia Execution Instruction Cache Microcode ROM Front End Fetch/ Decode Retirement Execution Out-of- order core 109 Facultad de Ingeniería UNAM BTSs/Branch prediction Branch History Update Figura 16 El Procesador con Microarquitectura P6 con Advanced Transfer Cache Perfeccionado Para asegurar un suministro firme de instrucciones y datos por la instruction execution pipeline, el procesador microarquitectura P6 incorpora dos niveles de cache. El cache de nivel 1 proporciona un instruction cache de 8 KB y un data cache de 8 KB, ambos estrechamente acoplados a la pipeline. El cache de nivel 2 proporciona 256 KB, 512 KB, o 1 MB de RAM estática que se acopla al core del procesador por un cache bus de 64 bits a velocidad total de reloj. La pieza central de la microarquitectura P6 es un mecanismo de out-of-order execution llamado ejecución dinámica. Ejecución dinámica incorpora tres conceptos de procesamiento de datos: Deep branch prediction permite que el procesador descifre instrucciones más allá de los branches para mantener la instruction pipeline llena. Las implementaciones de la familia P6 perfeccionó grandemente los algoritmos branch prediction para predecir la dirección de la instrucción. Análisis de flujo dinámico de datos requerido en el análisis en tiempo real del flujo de datos que pasan por el procesador para determinar dependencias y descubrir oportunidades para la ejecución de instrucciones out-of-order. El out-of-order execution core puede supervisar muchas instrucciones y ejecuta estas instrucciones en el orden que mejor optimice el uso de las unidades de ejecución múltiple del procesador, mientras que mantiene la integridad de los datos. Ejecución especulativa se refiere a la habilidad del procesador para ejecutar instrucciones que se encuentran más allá de una decisión condicional que no se ha resuelto todavía, y finalmente entrega los resultados en el orden del stream de instrucciones original. Para hacer posible la ejecución especulativa, el procesador con microarquitectura P6 desacopla el dispatch y la ejecución de instrucciones del compromiso de resultados. La out-of-order execution core del procesador usa el análisis del flujo de datos para ejecutar todas las instrucciones disponibles en la instruction pool y almacena los resultados en registros temporales. La retirement unit entonces busca linealmente la instruction pool para completar las instrucciones que ya no tiene dependencias de datos con otras instrucciones o branch predictions sin resolver. Cuando se encuentran instrucciones completas, la retirement unit entrega los resultados de estas instrucciones a la memoria y/o a los registros IA-32 (los ocho registros de propósito general del procesador y los ocho registros de datos de la FPU x87) en el orden que se emitieron originalmente y retira las instrucciones de la instruction pool. 4.3.3.2. La Microarquitectura Intel NetBurst La microarquitectura Intel NetBurst proporciona: Rapid Execution Engine 110 Facultad de Ingeniería UNAM Unidades Aritmético-Lógicas (ALUs) corriendo a dos veces la frecuencia del procesador Operaciones básicas de enteros se pueden entregar en la mitad del ciclo de reloj del procesador. Proporciona mayor rendimiento y reduce la latencia de ejecución Tecnología Hyper-Pipelined Deep pipeline para habilitar tasa principal de ciclo de reloj para la industria para PCs de escritorio y servidores Ejecución Dinámica Avanzada Deep, out-of-order, speculative execution engine Hasta 126 instrucciones en vuelo Hasta 48 cargas y 24 almacenamientos en la pipeline3 Capacidad Branch prediction reforzada Reduce las consecuencias de una predicción errónea asociada con deeper pipelines Algoritmo Branch prediction avanzados 4K de entrada de arreglos branch target Nuevo subsistema de cache Caches de primer nivel Execution Trace Cache avanzada que almacena instrucciones descifradas Execution Trace Cache remueve la latencia del decodificador desde ciclos de ejecución principales. Execution Trace Cache integra una dirección del flujo de ejecución del programa en una sola línea Data cache de baja latencia Caches de segundo nivel Advance Transfer Cache de alta velocidad, unificado de 8-way de nivel 2 on-die Aumento en el ancho de banda y el rendimiento con la frecuencia del procesador Alto desempeño, bus quad-pumped que sirve de interfase para el bus del sistema de la microarquitectura Intel NetBurst Soporte quad-pumped, reloj del bus escalable para alcanzar una velocidad efectiva de hasta 4X Capacidad de entregar de 3.2 hasta 6.4 GBytes de ancho de banda por segundo Desarrollo superescalar para habilitar el paralelismo Registros hardware expandidos con renombramiento para evitar limitaciones en el espacio de nombres de registro Cache line 64 de bytes (transfiere datos hasta en dos líneas por sector) Bus del sistema Usado frecuentemente Usado poco frecuente 3 Procesadores IA-32 basados en la microarquitectura Intel NetBurst con el proceso de 90nm pueden manejar más de 24 almacenamientos en vuelo. Unidad Bus 111 Facultad de Ingeniería UNAM Cache 3er nivel opcional Branch History Update Front End Fetch/ Decode Trace Cache Microcode ROM Execution Out-of- order core Retirement BTSs/ Branch prediction Cache 1er nivel 4 way Cache 2° nivel 8 way Figura 17 La Microarquitectura Intel NetBurst 4.3.3.2.1. La Pipeline Front End La front end proporciona instrucciones en orden programado a la out-of-order execution core. Ejecuta varias funciones: Trae antes las instrucciones IA-32 que probablemente serán ejecutadas. Trae las instrucciones que aún no habían sido traídas antes. Convierte las instrucciones IA-32 en micro-operaciones Genera microcódigo para instrucciones complejas y código de propósito especial Entrega instrucciones descifradas de la Execution Trace Cache Predice branches usando un algoritmo bastante avanzado La pipeline está diseñada para direccionar los problemas comunes en los microprocesadores pipelined de gran velocidad. Dos de estos problemas contribuyen en las principales fuentes de retrasos: El tiempo para descifrar instrucciones traídas desde el target 112 Facultad de Ingeniería UNAM Pérdida de tiempo descifrando ancho de banda debido a branches o branch target a mitad de las líneas del cache Se traen instrucciones constantemente y se descifran por el translation engine (que forma parte del fetch/decode logic) y se crean en secuencias de μops llamados traces. En cualquier tiempo trases múltiples (representando branches traídas antes) son guardados en el trace cache. El trace cache se busca para la instrucción que sigue la branch activa. Si la instrucción aparece también como la primera instrucción en un branch traído antes rama, el traer y descifrar de instrucciones desde la memory hierarchy cesa y la branch traída antes se vuelve nueva la fuente de instrucciones (ver Figura 41). El trace cache y el translation engine tiene cooperación de la branch prediction hardware. Branch targets son predecidos basándose en sus direcciones lineales usando branch target buffers (BTBs) y trayéndolos lo más pronto posible. 4.3.3.2.2. Out-Of-Order Execution Core La habilidad de la out-of-order execution core para ejecutar instrucciones out of order es un factor importante para habilitar el paralelismo. Ésta característica habilita al procesador para reordenar instrucciones de manera que si se tarda una μop, otras μops procederían alrededor de ella. El procesador emplea varios buffers para facilitar el flujo de μops. La core está diseñada para facilitar la ejecución paralela. Puede resolver hasta seis μops por ciclo (éste excede el ancho de banda del retirement μop y el trace cache). La mayoría de las pipelines pueden comenzar a ejecutar una μop nueva en cada ciclo, así varias instrucciones pueden estar en vuelo al mismo tiempo por cada pipeline. Varias instrucciones pueden iniciarse desde dos por ciclo para la unidad aritmética lógica (ALU); muchas instrucciones de punto flotante pueden iniciarse una cada dos ciclos. 4.3.3.2.3. Retirement Unit La retirement unit recibe los resultados de las μops ejecutadas desde la out-of-order execution core y procesa los resultados de manera tal que el estado de la arquitectura actualiza el orden original del programa. Cuando una μop completa y escribe su resultado, se retira. Hasta tres μops pueden retirarse por ciclo. El Reorder Buffer (ROB) es la unidad en el procesador cuyos buffers completan μops, actualiza el estado de la arquitectura en orden, y maneja el orden de las excepciones. La retirement section también cuida el track de branches y envía la información del branch target actualizada al BTB. El BTB entonces elimina traces traídos antes que ya no se requieren. 4.3.3.3. La Familia de Procesadores Intel Pentium M La familia de procesadores Intel Pentium M se diseña para un bajo consumo de energía. Se mejora la microarquitectura incluyendo las características siguientes: Soporta para la Arquitectura Intel con Ejecución Dinámica Un alto rendimiento, core de bajo-consumo fabricado usa la tecnología de proceso avanzada de Intel con interconexión de cobre 113 Facultad de Ingeniería UNAM Cache On-die, de primer nivel de instrucciones de 32 kb y cache de datos write- back de 32 kb Cache On-die, de segundo nivel (de hasta 2 MB) con Arquitectura Advanced Transfer Cache Branch prediction avanzado y Data Prefetch Logic Soporte para Tecnología MMX, instrucciones Streaming SIMD, y SSE2 instruction set Bus del Sistema del Procesador de fuente sícrona de 400 MHz Manejo de la energía avanzado usando Tecnología Enhanced Intel SpeedStep Estas características se han diseñado para facilitar la integración con subsistemas adicionales de la plataforma (perfeccionamientos de la batería, redes inalámbricas eficientes, y tecnologías de gráficos más avanzadas). 4.3.3.4 Intel Integrated Performance Primitives (IPP) Integrated Performance Primitives (IPP) de Intel son una capa de software de bajo nivel común entre los procesadores servidor, de escritorio y sistemas operativos Windows y Linux, incluyendo sistemas embebidos, con una gran variedad de capacidades de imagen, audio, video y voz disponibles para plataformas de microprocesadores de Intel. Esta plataforma estándar para diseñadores de software con gran rendimiento de ejecución en microprocesadores Intel presentes y futuros, tiene más de dos mil funciones para procesamiento de imágenes y señales, y todas las funciones están disponibles para los programadores en un solo API. Intel IPP es muy útil y proporciona funciones sumamente perfeccionadas trabajando en muchas plataformas. Son primitivas porque las funciones ejecutan operaciones básicas, no usan ninguna estructura de datos compleja u operaciones de E/ S, tienen poco overhead y tiene interfaces bien definidas y conducta predecible. Las primitivas se desarrollaron para diferentes plataformas que usan el mismo API, permitiendo fácilmente la portabilidad de aplicaciones a plataformas diferentes. Se pueden usar en cada biblioteca y cada aplicación en procesadores Intel, operando en plataformas Windows y Linux. Las primitivas son altamente optimizadas para procesadores Intel. Varios trucos que se describieron abajo pueden ayudar a comprende el desempeño potencial de las funciones IPP en una extensión completa. Las funciones que provee esta interfase son: Funciones de Procesamiento de señales: manipulación de datos, ventaneo, conversión, operaciones aritmético-lógicas, transformadas y filtros, estadística, audio, generación de señales. Funciones de Procesamiento de Imagen: manipulación de datos, funciones aritmético-lógicas, copia y conversiones, operaciones geométricas (scale, rotate, warp), conversión de color, alpha composite, gamma correction, filtros generales específicos, FFT, DCT, transformada wavelet. Funciones de Visión Computacional:Imagen piramidal (resample & blur), Filtros Laplace, Sobel, Scharr, Erode, Dilate, gradiente de movimiento, Flood fill, detección Canny edge, Snakes, flujo óptico Los tipos de datos que soportan son para procesamiento digital de señales y funciones de audio son de 16 bits enteros con signo (short), 32 bits de punto flotante (float) y 64 bits de punto flotante (double). Para procesamiento de imagen en 2D y funciones de video suporta 8 bits enteros sin signo (unsigned char), 16 bits enteros sin signo (unsigned char) 114 Facultad de Ingeniería UNAM y 32 bits de punto flotante (float). Además las funciones 1D soportan datos continuos de señales y las funciones 2D soportan interniveles (RGBRGBRGB) o planar (RRRGGGBBB) datos de imagen. Además la mayoría de las funciones soportan 1, 3, o 4 canales. IPP tiene cerca de 2500 funciones de las cuales cientos de ellas son operaciones discretas, el resto son variantes de estas operaciones con diferentes tipos de datos o numero de canales. La siguiente tabla resume la funcionalidad cubierta en cada procesador. Como una regla general, IPP para IA e IPP para procesadores Itanium son o serán un superset de funcionalidad. Grupo funcional Arquitectura Itanium IA-32 (incluyendo Pentium 4) Microarquitectura Intel StrongARM Microarquitectura Intel Xscale Procesamiento de señales Ahora Ahora Ahora ahora Procesamiento de imágenes Ahora Ahora Ahora ahora JPEG Ahora Ahora Ahora ahora Reconocimiento de voz Ahora Ahora Visión computacional Ahora Ahora Audio Codecs v2.0 v2.0 Ahora Ahora Video Codecs v2.0 v2.0 Ahora Ahora Matrices v2.0 v2.0 Vector Matemático v2.0 v2.0 Codificación de voz futuro futuro Ahora Ahora Tabla 1 Funcionalidad cubierta en cada procesador 4.3.3.5. Instrucciones SIMD Al principio con las familias de procesadores Pentium II y Pentium con tecnología Intel MMX, se han introducido cuatro extensiones en la Arquitectura IA-32 que permiten que los procesadores IA-32 ejecuten operaciones de datos múltiples en una sola instrucción (SIMD, por siglas en inglés). Estas extensiones incluyen la Tecnología MMX, extensiones SSE, extensiones SSE2, y extensiones SSE3. Cada una de estas extensiones proporciona un grupo de instrucciones que ejecutan operaciones SIMD en paquetes de datos enteros y/o en paquetes de elementos de punto flotante contenidos en registros MMX de 64 bits o en registros XMM de 128 bits. 115 Facultad de Ingeniería UNAM La figura 42 muestra un resumen de varias extensiones SIMD (Tecnología MMX, SSE, SSE2, y SSE3), los tipos de datos que se operan en ellos, y cómo los tipos de datos se empaquetan en registros MMX y XMM. La tecnología Intel MMX se introdujo en las familias de procesadores Pentium II y Pentium con tecnología MMX. Las instrucciones MMX ejecutan operaciones SIMD en paquetes de enteros de byte, palabra, doble palabra localizados en registros MMX. Estas instrucciones son útiles en aplicaciones que operan en arreglos enteros y streams de datos enteros que se confieren al proceso SIMD. Las extensiones SSE se introdujeron en la familia del procesador Pentium III. Las instrucciones SSE operan en paquetes de valores de punto flotante de precisión simple contenidos en registros XMM y en paquetes enteros contenidos en registros MMX. Varias instrucciones SSE proporcionan manejo del estado, control del cache, y operaciones de ordenamiento de la memoria. Otros instrucciones SSE son orientadas a aplicaciones que operan en arreglos de elementos de datos de punto flotante de precisión simple (procesamiento 3-D, codificación de video y aplicaciones de decodificación). Las extensiones SSE2 se introdujeron en los procesadores Pentium 4 e Intel Xeon. Las instrucciones SSE2 operan en paquetes de valores de punto flotante de doble precisión contenidos en registros XMM y en paquetes de enteros contenidos en registros MMX y XMM. Las instrucciones SSE2 de enteros extienden operaciones SIMD IA-32 por la adición de nuevas operaciones SIMD de enteros de 128 bits y por la expansión existente de operaciones SIMD de enteros de 64 bits a 128 bits. Las instrucciones SSE2 también proporcionan un nuevo control del cache y operaciones de ordenamiento de la memoria. Las extensiones SSE3 se introdujeron también con el procesador Pentium 4 que soporta la Tecnología Hyper- Threading (construida en tecnología de proceso del 90 nm). SSE3 ofrece 13 instrucciones que aceleran el rendimiento de la tecnología Streaming SIMD Extensions, la tecnología Streaming SIMD Extensions 2, y las facultades matemáticos del x87-FP. 116 Facultad de Ingeniería UNAM Extensión SIMD Arreglo del registro Tipo de datos Tecnología MMX Registros MMX 8 paquetes de bytes de enteros 4 paquetes de palabras de enteros 2 paquetes de doble palabra de enteros cuadrupalabra SSE Registros XXM Registros MMX 8 paquetes de bytes de enteros 4 paquetes de palabras de enteros 2 paquetes de doble palabras de enteros cuadrupalabra 4 paquetes de precisión simple de valores de punto flotante SSE2/SSE3 Registros MMX 2 paquetes de doble palabras de enteros cuadrupalabra Registros XXM 16 paquetes de bytes de enteros 8 paquetes de palabras de enteros 4 paquetes de doble- palabras de enteros 2 cuadru-palabras de enteros Doble cuadrupalabra 2 paquetes de doble precisión de valores de punto flotante 117 Facultad de Ingeniería UNAM Figura 18 Extensiones SIMD, Esquemas del Registro, y Tipos de Datos 4.3.3.5.1. Tecnología Hyper-Threading La Tecnología Hyper-Threading (HT) se desarrolló para mejorar el rendimiento de los procesadores IA-32 para ejecutar sistemas operativos multi-threaded y código de aplicaciones o aplicaciones single-threaded bajo ambientes multitareas. La tecnología habilita un solo procesador físico ejecutar dos o más streams de código separados (threads) concurrentemente. Visto desde la arquitectura, un procesador IA-32 que soporta Tecnología HT consiste de dos o más procesadores lógicos, cada uno teniendo su propio estado de arquitectura IA-32. Cada procesador lógico consta de un juego completo de registros de datos IA-32, registros de segmento y registros de control. También cada uno tiene su propio control de interrupción avanzado programable (APIC). La Figura 43 muestra una comparación de un procesador que soporta Tecnología HT (llevado a cabo con dos procesadores lógicos) y un sistema de procesador dual tradicional. A diferencia de una configuración del sistema MP tradicional que usa dos o más procesadores IA-32 separados físicamente, los procesadores lógicos en un procesador IA-32 con soporte a la Tecnología HT comparte los recursos del core del procesador físico. Éste incluye la execution engine y la interfase del bus del sistema. Después del encendido e inicialización, se puede direccionar cada procesador lógico independientemente para ejecutar un thread especificó, interrumpirlo, o detenerlo. Procesador IA-32 que soporta la tecnología Hyper-Threading Sistema multiprocesador (MP) tradicional Cada procesador esta separado físicamente en un paquete Core del procesador AS AS Core del procesador AS Core del procesador Dos procesadores lógicos que comparten un solo core AS AS = Estado de la arquitectura IA-32 118 Facultad de Ingeniería UNAM Figura 19 Comparación de un Procesador IA-32 que soporta Tecnología Hyper-Threading y un Sistema de Procesador Dual Tradicional La Tecnología HT toma ventaja del procesamiento y el paralelismo a nivel de thread encontrado en los sistemas operativos contemporáneos y en aplicaciones de alto desempeño por proporcionar dos o más procesadores lógicos en un solo chip. Esta configuración permite ejecutar dos o más threads4 simultáneamente en cada procesador físico. Cada procesador lógico ejecuta instrucciones de una aplicación thread usando los recursos en el core del procesador. El core ejecuta estos threads concurrentemente, usando organización de instrucciones out-of-order para llevar hasta al máximo el uso de las unidades de ejecución durante cada ciclo del reloj. 4.3.3.5.2. Notas en la Aplicación Todas las configuraciones de la Tecnología HT requieren: Un procesador que soporte Tecnología HT Un chipset y BIOS que utilice la tecnología Optimizaciones del sistema operativo Al nivel firmware (BIOS), los procedimientos básicos al inicializar los procesadores lógicos en un procesador con soporte a la Tecnología HT es el mismo como en una plataforma tradicional DP o MP5. Los mecanismos que se describen en la Especificación Multiprocessor, Versión 1.4 para encender e inicializar los procesadores físicos en un sistema MP también se aplican a procesadores lógicos en un procesador que soporta Tecnología HT. Un sistema operativo diseñado para correr en una plataforma DP o MP tradicional podría usar CPUID para determinar la presencia de procesadores IA-32 con soporte a la Tecnología HT y el número de procesadores lógicos proporcionados. Aunque existen sistemas operativos y códigos de aplicaciones que deben correr correctamente en un procesador que soporta Tecnología HT, se recomiendan hacer algunas modificaciones del código para obtener el beneficio óptimo. 4 En el resto de este documento, el término " thread " será usado como un término general para los términos de "procesos" y "thread." 5 Algunos mejoras relativamente simples para MP requieren un algoritmo de inicialización. 119 Facultad de Ingeniería UNAM Características importantes de los más Reciente Procesadores IA-32 Procesador Intel Fecha de liberación Micro- arquitectura Frecuencia de reloj a su liberación Transistores Por Die Tamaño de los Registros1 Ancho de banda del Bus del Sistema Max. Espacio de direc. Extern. Caches On-Die2 Pentium 4 2000 Intel NetBurst 1.50 GHz 42 M GP: 32 FPU: 80 MMX: 64 XMM: 128 3.2 GB/s 64 GB 12K μop Execution Trace Cache; 8KB L1; 256-KB L2 Intel Xeon 2001 Intel NetBurst 1.70 GHz 42 M GP: 32 FPU: 80 MMX: 64 XMM: 128 3.2 GB/s 64 GB 12K μop Trace Cache; 8- KB L1; 256-KB L2 Intel Xeon 2002 Intel NetBurst Hyper Threading 2.20 GHz 55 M GP: 32 FPU: 80 MMX: 64 XMM: 128 3.2 GB/s 64 GB 12K μop Trace Cache; 8- KB L1; 512-KB L2 Intel Xeon MP 2002 Intel NetBurst Hyper Threading 1.60 GHz 108 M GP: 32 FPU: 80 MMX: 64 XMM: 128 3.2 GB/s 64 GB 12K μop Trace Cache; 8- KB L1; 256-KB L2; 1-MB L3 Pentium 4 con Hyper Threading 2002 Intel NetBurst Hyper Threading 3.06 GHz 55 M GP: 32 FPU: 80 MMX: 64 XMM: 128 4.2 GB/s 64 GB 12K μop Execution Trace Cache; 8- KB L1; 512-KB L2 Pentium M 2003 Intel Pentium M 1.60 GHz 77 M GP: 32 FPU: 80 MMX: 64 XMM: 128 3.2 GB/s 4 GB L1: 64 KB L2: 1 MB Pentium 4 con soporte a Hyper Threading a proceso de 90 nm 2004 Intel NetBurst Hyper Threading 3.40 GHz 125 M GP: 32 FPU: 80 MMX: 64 XMM: 128 6.4 GB/s 64 GB 12K μop Execution Trace Cache; 16 KB L1; 1 MB L2 Pentium M 7553 2004 Intel Pentium M 2.00 GHz 140 M GP: 32 FPU: 80 MMX: 64 XMM: 128 3.2 GB/s 4 GB L1: 64 KB L2: 2MB Tabla 2 Características importantes de los más Reciente Procesadores IA-32 NOTAS 120 Facultad de Ingeniería UNAM 1. El tamaño del registro y del bus de datos externo se da en bits. 2. Se denota el cache de primer nivel usando la abreviación L1, el cache de segundo nivel se denota como L2. El tamaño de L1 incluye el data cache de primer nivel y el instruction cache donde es aplicable, pero no incluye el trace cache. 3. Los números del procesador Intel no son una medida de rendimiento. Los números del procesador diferencian los rasgos dentro de cada familia del procesador, no por familias del procesador diferentes. 4.3.3.6 Extensiones multimedia Las secciones siguientes proporcionan información de las extensiones multimedia introducidas en la arquitectura IA-32. 4.3.3.6.1 Programación con la Tecnología Intel MMX La tecnología Intel MMX se introdujo en la arquitectura IA-32 en la familia de procesadores Pentium II y Pentium con Tecnología MMX. Las extensiones introducidas en la tecnología MMX soportan el modelo de ejecución de una sola instrucción, datos múltiples (SIMD) que esta diseñada para acelerar la ejecución de media avanzada y aplicaciones de comunicaciones. Este capítulo describe la tecnología MMX. 4.3.3.6.1.1. Introducción a la Tecnología MMX La tecnología MMX define un modelo de ejecución SIMD simple y flexible para manejar paquetes de datos enteros de 64 bits. Este modelo agrega las características siguientes a la Arquitectura IA-32, mientras mantiene la compatibilidad con aplicaciones IA-32 anteriores y código del sistema operativo: Ocho nuevos registros de datos de 64 bits, llamados registros MMX Tres nuevos tipos de datos empaquetados: • Paquete de bytes de enteros de 64 bits (con signo y sin signo) • Paquete de palabra de enteros de 64 bits (con signo y sin signo) • Paquete de palabra doble de enteros de 64 bits (con signo y sin signo) Instrucciones que soportan los nuevos tipos de datos y manejan la administración del estado MMX Extensiones para instrucciones CPUID La tecnología MMX es accesible de todos los modos de ejecución de la arquitectura IA32 (modo protegido, modo de dirección real, y modo virtual 8086). No agrega ningún modo nuevo a la arquitectura. Las siguientes secciones de este capítulo describen ambiente de programación de la tecnología MMX, incluso el set de registros MMX, tipos de datos, y set de instrucciones. Instrucciones adicionales que operan en registros MMX se han añadido para la Arquitectura IA-32 por las extensiones SSE/SSE2. 4.3.3.6.1.2. Ambiente de Programación de la Tecnología MMX 121 Facultad de Ingeniería UNAM La Figura 44 muestra el ambiente de ejecución para la tecnología MMX. Todas las instrucciones MMX operan en registros MMX, en registros de propósito general, y/o en memoria de la siguiente manera: Registros MMX. Estos ocho registros (ver Figura 45) se usan para ejecutar operaciones en paquetes de datos enteros de 64 bits. Son llamados MM0 hasta MM7. Registros de Propósito General. Los ocho registros de propósito general (ver Figura 45) se usan para existir con modos de direccionamiento IA-32 para operandos de direcciones en la memoria (los registros MMX no se puede usar para direccionar en memoria). Los registros de propósito general se usan también soportar operandos para unas operaciones de la tecnología MMX. Los registros son EAX, EBX, ECX, EDX, EBP, ESI, EDI, y ESP. 232-1 0 Espacio de direcciones 8 Registros MMX de 64bits 8 Registros de propósito general de 32bits Figura 20 Ambiente de Ejecución de la Tecnología MMX 31 16 15 0 8 7 AH AL BH BL CH CL DH DL BP SI DI SP Registros de Propósito General 16bits 32bits AX EAX BX EBX CX ECX DX EDX EBP ESI EDI ESP Figura 21 Nombres de registros de propósito general 122 Facultad de Ingeniería UNAM 4.3.3.6.1.2.1. Registros MMX El set de registros MMX consta de ocho registros de 64 bits (véase la Figura 46), que se usan para realizar cálculos en paquetes de tipos de datos enteros MMX. Los valores en los registros MMX tienen el mismo formato que una cantidad de 64 bits en memoria. Los registros MMX tienen dos modos de acceso de datos: modo de acceso de 64 bits y modo de acceso 32 bits. Se usa el modo de acceso de 64 bits para: Accesos de memoria de 64 bits Transferencias de 64 bits entre registros MMX Algunas instrucciones desempaquetadas Se usa el modo de acceso de 32 bits para: accesos a memoria de 32 bits Trasferencias de 32 bits entre registros de propósito general y registros MMX Algunas instrucciones desempaquetadas 63 0 MM7 MM6 MM5 MM4 MM3 MM2 MM1 MM0 Figura 22 Set de Registros MMX 4.3.3.6.1.2.2. Tipos de Datos MMX La tecnología MMX introdujo los siguientes tipos de datos de 64 bits a la arquitectura IA- 32 (ver Figura 47): Paquete de ocho bytes de enteros de 64 bits Paquete de cuatro palabras de enteros de 64 bits Paquete dos doble-palabras de enteros de 64 bits Las instrucciones MMX manejan tipos de datos empaquetados en 64 bits (paquetes de bytes, paquetes de palabras, o paquetes de doble-palabras) y los tipos de datos de cuadrupalabras entre registros MMX y la memoria o entre registros MMX en bloques de 64 bits. Sin embargo, en la ejecución de operaciones lógicas o aritméticas en los tipos de datos empaquetados, las instrucciones MMX operan en paralelo en los bytes individuales, palabras, o doble-palabras contenidas en los registros MMX. 0 0 0 63 63 63 Paquete de Byte de Enteros Paquete de Palabra de Enteros Paquete de doble-palabra de Enteros 123 Facultad de Ingeniería UNAM Figura 23 Tipos de Datos Introducidos con la Tecnología MMX 4.3.3.6.1.2.3. Formatos de los Datos de Memoria Cuando son guardados en memoria: bytes, palabras y doble-palabras en los tipos de datos empaquetados se guardan en direcciones consecutivas. El byte menos significativo, palabra, o doble-palabra se guarda en la dirección más baja y el byte más significativo, palabra, o doble-palabra se guarda en la dirección más alta. El orden de bytes, palabras, o doble-palabras en memoria es siempre little endian. Esto es, los bytes con las direcciones bajas son menos significativos que los bytes con direcciones altas. Modelo de Ejecución una Sola Instrucción, Datos Múltiples (SIMD). La Tecnología MMX usa una sola instrucción, datos múltiples (SIMD) para ejecutar operaciones lógicas y aritméticas en bytes, palabras, o doble-palabras empaquetadas en registros MMX (ver Figura 48). Por ejemplo, la instrucción PADDSW agrega 4 palabras de enteros con signo desde un operando fuente a 4 palabras de enteros con signo en un segundo operando fuente y almacena un resultado de 4 palabras de enteros en un operando destino. Esta técnica SIMD permite una velocidad excesiva de ejecución de software permitiendo que se lleve a cabo la misma operación en elementos de datos múltiples en paralelo. La tecnología MMX soporta operaciones paralelas en elementos de datos bytes, palabras, y doble-palabra cuando son contenidos en registros MMX. El modelo de ejecución SIMD planea soportada en la Tecnología MMX directamente direcciona las aplicaciones necesarias de multimedia actual, comunicaciones, y gráficos, que a menudo usan algoritmos sofisticados que ejecutan las mismas operaciones en un gran número de tipos datos pequeños (bytes, palabras, y doble-palabras). Por ejemplo, la mayoría de datos de audio se representan en cantidades de 16 bits (una palabra). Las instrucciones MMX pueden operar en 4 palabras simultáneamente con una instrucción. Normalmente el video y la información gráfica se representan como cantidades de 8 bits (byte) en paralelo. En la Figura 48, una instrucción MMX opera en 8 bytes simultáneamente. Registro 1: X3 X2 X1 X0 Registro 2: Y3 Y2 Y1 Y0 op op op op Registro 124 Facultad de Ingeniería UNAM Resultante : X3 op Y3 X2 op Y2 X1 op Y1 X0 op Y0 Figura 24 Modelo de Ejecución SIMD 4.3.3.6.1.3. Saturación y Modos Wraparound Cuando se ejecuta aritmética de enteros, una operación podría dar por resultado una condición fuera de rango, donde no se puede representar el resultado verdadero en el formato destino. Por ejemplo, cuando se ejecuta aritmética en palabras de enteros con signo, un overflow positivo puede ocurrir cuando el resultado con signo es más grande de 16 bits. La tecnología MMX proporciona tres maneras de manejar las condiciones fuera de rango: Aritmética Wraparound. Con Aritmética wraparound un resultado verdadero fuera de rango se trunca (es decir, el acarreo o bit de overflow se ignora y sólo los bits menos significativos del resultado se regresan al destino). Aritmética Wraparound satisface aplicaciones que controlan el rango de operandos para prevenir resultados fuera de rango. Si no se controla el rango de los operandos, sin embargo, la Aritmética wraparound puede llevar a errores grandes. Por ejemplo, sumar dos números con signo grandes puede causar overflow positivo y producir un resultado negativo. Aritmética de saturación con signo. Con Aritmética de saturación con signo, los resultados fuera de rango se limitan al rango representable de enteros con signo por el tamaño entero a ser operado (ver Tabla 10). Por ejemplo, si ocurre un overflow positivo cuando se realiza una operación en palabras de enteros con signo, el resultado es "saturado" a 7FFFH, que es el entero más grande positivo que se puede representar con 16 bits; si ocurre un overflow negativo, se satura el resultado a 8000H. Aritmética de saturación sin signo. Con Aritmética de saturación sin signo, los resultados fuera de rango se limitan al rango representable de enteros sin signo para el tamaño de enteros. Así, un overflow positivo cuando se realiza una operación en bytes de enteros sin signo da por resultado FFH al regresar el dato y un overflow negativo da por resultado 00H al ser devuelto. La aritmética de saturación proporciona una respuesta para muchas situaciones de overflow. Por ejemplo, en cálculos de color, la saturación causa que un color quede negro puro o blanco puro sin permitir la inversión. Las instrucciones MMX no indican la ocurrencia de un overflow u underflow para excepciones generadoras o banderas levantadas en los registros EFLAGS. 4.3.3.6.1.4. Instrucciones MMX El set de instrucciones MMX consta de 47 instrucciones, agrupadas en las categorías siguientes: Transferencia de Datos Aritmética 125 Facultad de Ingeniería UNAM Comparación Conversión Empaquetamiento Lógica Conmutación Instrucción de estado vacío MMX (EMMS) Límite Inferior Límite Superior Tipo de Datos Hexadecimal Decimal Hexadecimal Decimal 80H -128 7FH 127 Byte con signo Palabra con signo 8000H -32.768 7FFFH 32.767 00H 0 FFH 255 Byte sin signo Palabra sin signo 0000H 0 FFFFH 65.535 Tabla 3 Rango de Datos Límites para Saturación 4.3.3.6.2 Programación con Extensiones Streaming SIMD (SSE) Las extensiones streaming SIMD (SSE) se introdujeron en la Arquitectura IA-32 en la familia del procesador Pentium III. Estas extensiones refuerzan la ejecución en procesadores IA-32 para gráficos avanzados 2-D y 3-D, video con movimiento, procesamiento de imágenes, reconocimiento de voz, síntesis de audio, telefonía, y video conferencia. Este capítulo describe las extensiones SSE. 4.3.3.6.2.1. Introducción a las extensiones SSE La tecnología Intel MMX introdujo el procesamiento SIMD en la Arquitectura IA-32, con los registros MMX de 64 bits, tipos de datos enteros en paquetes de 64 bits, e instrucciones que permitieron que operaciones SIMD se ejecutan en paquete enteros. Las extensiones SSE extienden el modelo de ejecución SIMD para agregar mejoras para la manipulación de paquetes y valores escalares del precisión simple del punto flotante contenidos en registros de 128 bits. Las extensiones SSE agregan los siguientes rasgos a la Arquitectura IA-32, mientras mantiene la compatibilidad con procesadores IA-32 anteriores, aplicaciones y sistemas operativos. Ocho registros de datos de 128 bits, llamados registros XMM Registros MXCSR de 32 bits, que proporciona bits de control y estado para operaciones ejecutadas en registros XMM Tipos de datos de paquete de punto flotante de precisión simple de 128 bits (cuatro valores de punto flotante de precisión simple IEEE empaquetados en una cuadrupalabra doble) Instrucciones que ejecutan operaciones SIMD valores en punto flotante de precisión simple que se extiende a operaciones SIMD que se pueden ejecutar en enteros: Instrucciones de punto flotante de precisión simple en paquete de 128 bits y escalares que operan en datos localizaron en MMX registros 126 Facultad de Ingeniería UNAM Instrucciones SIMD de entero de 64 bits que soportan operaciones adicionales con operandos en paquete de enteros localizados en los registros MMX Instrucciones que salvan y restauran el estado de los registros MXCSR Instrucciones que soportan prefetching explícito de datos, control de cacheability de datos, y control del orden de almacenamiento de operaciones Extensiones a las instrucciones CPUID Estas características se extienden en el modelo de programación SIMD de la Arquitectura IA-32 en cuatro formas importantes: La habilidad de ejecutar operaciones SIMD en cuatro paquetes de valores depunto flotante de precisión simple que refuerza la ejecución de procesadores IA-32 para aplicaciones de multimedia avanzada y de comunicaciones que usan algoritmos de cómputo intensivos para ejecutar operaciones repetitivas en grandes arreglos simples, de datos de elementos nativos. La habilidad ejecutar operaciones SIMD de punto flotante de precisión simple en registros XMM y operaciones SIMD de enteros en registros MMX proporcionan mayor flexibilidad para ejecutar aplicaciones que operan en grandes arreglos de punto flotante y datos de enteros. Instrucciones de control del Cache proporcionan la habilidad para empaquetar datos dentro y fuera de los registros XMM sin saturar los caches y la habilidad para traer datos antes a niveles de cache seleccionados antes de usarlos realmente. Aplicaciones que requieren acceso regular a cantidades grandes de datos se benefician de estas características de prefetching y streaming store. La instrucción SFENCE (almacenamiento fence) proporciona mayor control por encima del ordenamiento del almacenamiento de operaciones cuando se usan tipos de memoria de débil mandó. Las extensiones SSE son totalmente compatibles con todo software escrito para procesadores IA -32. Todo software existente continúa corriendo correctamente, sin modificación, en procesadores que incorporaron extensiones SSE. Los perfeccionamientos a la CPUID permiten la detección de extensiones SSE. Las extensiones SSE son accesible desde todos los modos de ejecución IA-32: modo protegido, modo de dirección real, y modo virtual 8086. 8 Registros MMX de 64bits 8 Registros de propósito general de 32bits 232-1 32bits 8 Registros XMM de 138bits Registro MXCSR Espacio de direcciones 127 Facultad de Ingeniería UNAM 0 32bits Registro EFLAGS Figura 25 Ambiente de Ejecución SSE 4.3.3.6.2.2. Ambiente de programación SSE La figura 49 muestra el ambiente de ejecución para extensiones SSE. Todas las instrucciones SSE operan en los registros XMM, registros MMX, y/ o memoria como sigue: Registros XMM. Estos ocho registros (ver Figura 50) se usa para realizar operaciones en paquete o escalares de datos de punto flotante de precisión simple. Las operaciones escalares son operaciones ejecutadas individualmente (desempaquetadas) de valores de punto flotante de precisión simple guardadas en la parte baja doble-palabra de un registro XMM. Los registros XMM son referenciados por los nombres XMM0 al XMM7. Registros MXCSR. Este registro de 32 bits proporciona bits de estado y de control usados en operaciones SIMD de punto flotante. Registros MMX. Estos ocho registros (ver Figura 46) se usan para ejecutar operaciones en paquetes de64 bits de datos de enteros. Se usan también para sostener operandos para algunas operaciones que se ejecutan entre los registros MMX y XMM. Los registros MMX son referenciados por los nombres MM0 al MM7. Registros de Propósito General. Los ocho registros del propósito general (ver Figura 45) se usan junto con los modos de direccionamiento existentes IA-32 para direccionar operandos en memoria (los registros MMX y XMM no se puede usar para direccionar en memoria). Los registros de propósito general se usa también para sostener operandos para algunas instrucciones SSE y son referenciadas como EAX, EBX, ECX, EDX, EBP, ESI, EDI, y ESP. Registro EFLAGS. Este registro de 32 bits se usa para grabar el resultado de algunas operaciones de comparación. 4.3.3.6.2.2.1. Registros XMM Ocho registros XMM de datos de 128 bits se introdujeron en la Arquitectura IA-32 con las extensiones SSE (ver Figura 50). Se pueden acceder a estos registros directamente usando los nombres XMM0 al XMM7; y se pueden acceder independientemente del FPU x87 y los registros MMX y los registros de propósito general (esto es, no forman un alias con cualquiera de los otros registros del procesador). Las instrucciones SSE usan los registros XMM sólo para realizar operaciones con operandos en paquete de punto flotante. Las extensiones SSE2 extienden las funciones de los registros XMM a operandos en paquete u operandos de punto flotante de doble precisión de escalares y paquete de operandos de enteros. 128 Facultad de Ingeniería UNAM Los registros XMM pueden ser usados sólo para ejecutar cálculos en datos; no se pueden usar para direccionar en memoria. El direccionamiento en memoria se logra usando los registros de propósito general. Se pueden cargar datos en registros XMM o escribir desde los registros a memoria en incrementos de 32 bits, 64 bits, y 128 bits. Cuando se guardan contenidos enteros de un registros XMM en memoria (guardar 128 bits), se guardan los datos en 16 bytes consecutivos, con el byte menos significativo del registro guardado en el primer byte en memoria. 0 127 XMM7 XMM6 XMM5 XMM4 XMM3 XMM2 XMM1 XMM0 Figura 26 Registros XMM 4.3.3.6.2.3. Tipos de datos SSE Las extensiones SSE introdujeron un tipo de datos, el tipo de datos de paquete de punto flotante de precisión simple de128 bits, a la Arquitectura IA-32 (ve Figura 51). Este tipo de datos consta de cuatro valores del punto flotante de precisión simple IEEE de 32 bits en un paquete de cuadrupalabra doble. Este paquete de tipo de datos de punto flotante de 128 bits opera en los registros XMM o en memoria. Se proporcionan instrucciones de conversión para convertir dos paquete de valores de punto flotante en dos paquetes de enteros de doble palabra o un valor de punto flotante de precisión simple escalar en un entero de doble palabra. Las extensiones SSE proporcionan instrucciones de conversión entre registros XMM y registros MMX, y entre registros XMM y registros de propósito general. La dirección de un operando de memoria de 128 bits en paquete se debe alinear en un límite de 16 bytes, excepto en algunos casos 4.3.3.6.2.4. Juego de instrucciones SSE Las instrucciones SSE se dividen en cuatro grupos funcionales Instrucciones en paquete y escalar de punto flotante de precisión simple Instrucciones SIMD de enteros de 64 bits Instrucciones de manejo de estados Instrucciones de ordenamiento de memoria, Control del Cache y prefetch 127 31 32 63 64 95 96 Contiene 4 valores de punto flotante de presición simple 0 129 Facultad de Ingeniería UNAM Figura 27 Tipos de Datos de Paquete de datos de punto flotante de precisión simple de 128 bits 4.3.3.6.3 Programación con Extensiones Streaming SIMD 2 (SSE2) Las extensiones streaming SIMD 2 (SSE2) se introdujeron en la Arquitectura IA-32 en los procesadores Pentium 4 e Intel Xeon. Estas extensiones refuerzan la ejecución de procesadores IA-32 para aplicaciones avanzadas de gráficos 3-D, video decodificación/codificación, reconocimiento de voz, E-commerce, Internet, científicas, y de ingeniería. 4.3.3.6.3.1. Introducción a las extensiones SSE2 Las extensiones SSE2 usan el modelo de ejecución (SIMD) que se usa con la tecnología MMX y extensiones SSE, que extienden este modelo con soporte para paquetes de valores de punto flotante de doble precisión y para paquete enteros de 128 bits. Las extensiones SSE2 agregan las características siguientes a la arquitectura IA-32, mientras mantiene la compatibilidad con los existentes procesadores IA-32, aplicaciones y sistemas operativos. Seis tipos de datos: Paquete de punto flotante de doble precisión de 128 bits (dos valores de punto flotante de doble precisión IEEE estándar 754 en un paquete de cuadrupalabra doble) Paquete de byte de enteros de128 bits Paquete de palabra de enteros de 128 bits Paquete de doble palabra de enteros de 128 bits Paquete de cuadrupalabra de enteros de 128 bits Instrucciones para soportar los tipos de datos adicionales y extender las existentes operaciones SIMD de enteros: Instrucciones de paquete y escalar de punto flotante de doble precisión Instrucciones SIMD de enteros adicionales de 64 bits y 128 bits - Versiones de instrucciones SIMD de enteros de 128 bits introducidas con la Tecnología MMX y las extensiones SSE Instrucciones adicionales de cacheability - control e instrucciones de ordenamiento Modificaciones a las instrucciones IA-32 existentes para soportar las características SSE2: Extensiones y modificaciones a la instrucción CPUID - Modificaciones a la instrucción RDPMC Estos nuevas características extienden el modelo de programación SIMD de la arquitectura IA-32 en tres formas importantes: 130 Facultad de Ingeniería UNAM Proporcionan la habilidad de ejecutar operaciones SIMD en pares de paquetes de valores de punto flotante de doble precisión. Esto permite que cálculos de mayor precisión más altos se lleven a cabo en registros XMM, que refuerza el rendimiento del procesador en aplicaciones científicas y de ingeniería y en aplicaciones que usan técnicas de geometría 3-D avanzada (tal como ray tracing). Se proporciona flexibilidad adicional con instrucciones que opera en valores escalares de punto flotante de doble precisión localizado en la parte baja de una cuadrupalabra de un registro XMM. Proporcionan la habilidad operar en paquetes de enteros de 128 bits (bytes, palabras, doblepalabras, y cuadrupalabras) en registros XMM. Esto proporciona mayor flexibilidad cuando se ejecuta operaciones SIMD en paquete enteros. La capacidad es particularmente útil para aplicaciones tal como RSA [autenticación] y RC5 [cifrado]. Usando el juego completo de registros SIMD, tipos de datos, e instrucciones proporcionadas con la Tecnología MMX y extensiones SSE/SSE2, los programadores pueden desarrollar algoritmos tan finamente mezclando paquetes de datos de punto flotante de simple y doble precisión y paquete datos de enteros de 64 y 128 bits. Las extensiones SSE2 refuerzan el soporte introducido con las extensiones SSE para controlar la cacheability de datos SIMD. Las instrucciones SSE2 del control del cache proporcionan la habilidad empaquetar datos dentro y fuera de los registros XMM sin corromper los caches y la habilidad de traer datos antes de usarlos. Las extensiones SSE2 son totalmente compatibles con todo software escrito para procesadores IA-32. Todo software existente continúa corriendo correctamente, sin modificación, en procesadores que incorporan las extensiones SSE2, así como en la presencia de aplicaciones que incorporan estas extensiones. Perfeccionamientos a la instrucción CPUID permite la detección de las extensiones SSE2. También, porque las extensiones SSE2 usan los mismos registros como las extensiones SSE, no se requiere ningún soporte nuevo del sistema operativo para salvar y restaura estado del programa durante un contexto cambiando más allá del que provee las extensiones SSE. Las extensiones SSE2 son accesible de todos los modos de ejecución IA-32: modo protegido, modo de dirección real, modo virtual 8086. 4.3.3.6.3.2. Ambiente de programación SSE2 La figura 52 muestra el ambiente de programación para extensiones SSE2. Ningún registro nuevo u otro estado de ejecución de instrucción está definido con las extensiones SSE2. Las instrucciones SSE2 usan los registros XMM, los registros MMX, y/ o registros de propósito general IA-32, como sigue:- Registros XMM. Estos ocho registros (ver Figura 50) se usan para operaciones en paquete o datos escalares de punto flotante de doble precisión. Operaciones de escalares son operaciones ejecutadas individualmente (desempaquetadas) de valores de punto flotante de doble precisión guardadas en la parte baja de la cuadrupalabra de un registro XMM. Los registros XMM se usan también para ejecutar operaciones en paquetes de datos enteros de 128 bits. Son referenciados por los nombres XMM0 al XMM7. 131 Facultad de Ingeniería UNAM Registro MXCSR. Este registro de 32 bits proporciona el estado y los bits de control usados en operaciones de punto flotante. Nuevas banderas en este registro proporcionan una alternativa de ejecución más alta para la manipulación de operandos. 8 Registros MMX de 64bits 8 Registros de propósito general de 32bits 232-1 0 32bits 32bits 8 Registros XMM de 128bits Registro EFLAGS Registro MXCSR Espacio de direcciones Figura 28 Ambiente de Ejecución SSE2 Registros MMX. Estos ocho registros se usan para ejecutar operaciones en paquetes de datos enteros de 64 bits. Se usan también sostener operandos para algunas operaciones ejecutadas entre registros MMX y XMM. Los registros MMX son referenciados por los nombres MM0 al MM7. Registros de Propósito General. Los ocho registros de propósito general se usan junto con el existe modo de direccionamiento IA-32 para direccionar operandos en memoria. Los registros MMX y XMM no se pueden usar para direccionar memoria. Registro EFLAGS. Este registro se usa para grabar los resultados de algunas operaciones de comparación. 4.3.3.6.3.2.1. Compatibilidad de las Extensiones SSE2 con SSE y MMX Tecnología, y Ambientes de Programación x87 FPU Las extensiones SSE2 no introducen ningún estado nuevo al ambiente de ejecución IA-32 más allá del de SSE. Las extensiones SSE2 representan un perfeccionamiento de extensiones SSE; son totalmente compatibles y comparten la misma información de estado. Se pueden ejecutar instrucciones SSE y SSE2 juntas en el misma stream de 132 Facultad de Ingeniería UNAM instrucciones sin la necesita de preservar el estado cuando se cambia entre juegos de instrucciones. 0 127 127 127 64 127 0 0 63 63 63 Paquete de Byte de Enteros de 128 bits Paquete de doble Palabra de Enteros de 128 bits 127 Paquete de punto flotante de doble precisión de 128 bits 0 Paquete de cuadrupalabra de Enteros de 128 bits 0 63 Paquete de Palabra de Enteros de 128 bits Figura 29 Tipos de Datos Introducidos con las Extensiones SSE2 4.3.3.6.3.3. Tipos de datos SSE2 Las extensiones SSE2 introdujeron un paquete de tipos de datos de punto flotante de 128 bits y cuatro tipos de datos SIMD de entero de 128 bits a la Arquitectura IA-32 (ver Figura 53). Paquete de punto flotante de doble-precisión. Este tipo de datos de 128 bits consta de dos valores de paquetes punto flotante del doble precisión IEEE de 64 bits una cuadrupalabra doble. Paquete de enteros de 128 bits. Los cuatro tipos de paquete de datos de enteros de 128 bits pueden contener 16 byte de enteros, 8 palabra de enteros, 4 doble palabras de enteros, o 2 cuadrupalabras de enteros. Todos estos tipos de datos son operados en registros XMM o en memoria. Se proporcionan instrucciones para convertir entre estos tipos de datos de 128 bits y los tipos de datos de 64 bits y 32 bits. 4.3.3.6.3.4. Instrucciones SSE2 Se dividen las Instrucciones SSE2 en cuatro grupos funcionales: Instrucciones de Paquete y escalares de punto flotante de doble precisión Instrucciones SIMD de enteros de 64 bits y 128 bits Instrucciones de extensiones SIMD de enteros de 128 bits introducidas con la Tecnología MMX y las extensiones SSE Instrucciones de control del cache e instrucciones de ordenamiento 4.3.3.6.4 Programación con Extensiones Streaming SIMD 3 (SSE3) 133 Facultad de Ingeniería UNAM El procesador Pentium 4 soporta la Tecnología Hyper-Threading introduciendo Extensiones Streaming SIMD 3 (SSE3). Este capítulo describe las SSE3 y proporciona información para escribir programas usando estas extensiones. 4.3.3.6.4.1. Introducción a las instrucciones SSE3 Las extensiones SSE3 incluyen 13 instrucciones. Diez de estas 13 instrucciones soportan el modelo de ejecución (SIMD) usado con Extensiones SSE/SSE2. Una instrucción SSE3 acelera el estilo de programación x87 por conversión de un valor de punto flotante a entero. Las dos instrucciones restantes (MONITOR y MWAIT) aceleran la sincronización de los threads. 4.3.3.6.4.2. Ambiente de programación SSE3 y tipos de datos El ambiente de programación para usar extensiones SSE3 no cambia de los mostrados en la Figura 44 y la Figura 49. SSE3 no introduce nuevos tipos de datos. Los registros XMM se usan para operar en paquete de datos de enteros, en datos de punto flotante de precisión simple o en datos de punto flotante de doble precisión. Se usa el FPU x87 para estilo de programación x87. Los registros generales son usados instrucciones por SSE3 para sincronización de threads. El registro MXCSR realiza operaciones SIMD de punto flotante. 4.3.3.6.4.2.1. Procesamiento Horizontal y Asimétrico Muchas Instrucciones SSE/SSE2 aceleran el procesamiento de datos SIMD usando un modelo llamado cómputo vertical. Usando este modelo, el flujo de datos es vertical entre los elementos de datos de las entradas y los de salida (la figura 54 proporciona un ejemplo). SSE3 introduce instrucciones que aceleran el procesamiento SIMD de punto flotante donde el resultado de cada elemento de datos de las salidas incluye también procesamiento asimétrico o movimiento de datos horizontal de elementos de datos de la entrada. La figura 54 ilustra el procesamiento asimétrico de la instrucción SSE3 ADDSUBPD. La figura 55 ilustra el movimiento de datos horizontal de la instrucción SSE3 HADDPD. Registro 1: X1 X0 134 Facultad de Ingeniería UNAM Registro 2: Y1 Y0 ADD SUB Registro resultante: X1 + Y1 X0 - Y0 Figura 30 Procesamiento asimétrico en ADDSUBPD Registro 1: X1 X0 Registro 2: Y1 Y0 ADD ADD Registro resultante: Y0 + Y1 X0 + X1 Figura 31 Movimiento horizontal de datos en ADDSUBPD 4.3.3.6.4.3. Instrucciones SSE3 SSE3 ofrece 13 instrucciones que aceleran el rendimiento de la tecnología de Extensiones Streaming SIMD, la tecnología Extensiones Streaming SIMD 2, y las capacidades matemáticas de x87-FP. Se agrupan estas instrucciones como sigue: Instrucción x87 FPU Una instrucción que mejora la conversión x87 FPU de punto flotante a entero Instrucción SIMD de enteros Una instrucción que proporciona una carga especializada de datos alineados de 128 bits Instrucciones SIMD de punto flotante Tres instrucciones que refuerzan el rendimiento de LOAD/MOVE/DUPLICATE Dos instrucciones que proporcionan suma/sustracción en paquete Cuatro instrucciones que proporcionan suma/sustracción horizontal Instrucciones sincronización de Threads Dos instrucciones que mejoran sincronización entre agentes multi-threaded 4.3.4 Software 135 Facultad de Ingeniería UNAM 4.3.4.1 Compiladores En la actualidad, los algoritmos que utilizan las extensiones se codifican a mano en ensamblador, garantizando buena eficiencia pero perdiéndose los conocidos beneficios de la programación en lenguaje de alto nivel. Esto es así porque el soporte del compilador se reduce a expansión de macros que se toman de la librería correspondiente y que dan acceso directo a las extensiones (con ayudas marginales en la asignación de registros y otras optimizaciones de bajo nivel). Las extensiones multimedia operan de forma vectorial sobre elementos empaquetados en la palabra del procesador. El compilador debería ser capaz de extraer paralelismo en base al análisis de las dependencias entre datos, pero las técnicas habituales de análisis de dependencias desarrolladas en las computadoras vectoriales segmentadas (tipo Cray, Convex, Nec o Fujitsu) no se han trasladado todavía. Al respecto no parece haber ninguna dificultad teórica, pero no conocemos producto alguno, ni siquiera experimental, que vectorice código multimedia. 4.3.4.2 Lenguajes de programación Es difícil apostar sobre la influencia de las extensiones, o más en general, del cálculo multimedia en los lenguajes de programación. Desde el punto de vista de la potencia expresiva un lenguaje contemporáneo permite expresar cómodamente algoritmos multimedia; ahora bien, si el mercado percibe oportunidad en la ejecución eficiente de multimedia, puede retocar, ampliar o crear lo que haga falta. Piénsese por ejemplo en los recientes dialectos visuales de varios lenguajes y en su soporte a la programación rápida de interfaz gráfica de usuario. En el caso multimedia pensamos que el diseñador de lenguajes puede considerar al menos la inclusión de dos aspectos: Tipos de datos de diferente precisión y manipulables mediante aritmética con saturación; los umbrales de saturación podrían ser una propiedad a definir junto con el tipo. Beneficios: expresividad y eficiencia en compilación. Primitivas vectoriales sobre los anteriores tipos de datos: operadores aritméticos, de reducción, de permutación, de conversión, etc. Los mismos beneficios que en el punto anterior, pero cuantitativamente mayores, ya que aquí la eficiencia en compilación se traduce en extracción guiada de paralelismo. Como implementar estas extensiones es otra cuestión a investigar. Cabe desde la inclusión en el lenguaje de tipos básicos y operadores vectoriales hasta la creación de bibliotecas de objetos multimedia, anotados con sugerencias para una compilación eficiente. En resumen, será necesario evaluar diferentes aspectos: complejidad añadida al lenguaje, potencia expresiva, facilidad de compilación eficiente, etc., y todo ello someterlo a la presión del mercado, que aunque no siempre acierta en las soluciones, siempre percibe los problemas con gran agudeza. 4.3.4.3 Sistemas operativos 136 Facultad de Ingeniería UNAM Las implicaciones al S.O. vienen dadas más por el carácter multimedia de las aplicaciones que por las extensiones. Las extensiones multimedia son, en general, transparentes al S.O. (no se generan nuevas excepciones, implicaciones mínimas en los cambios de contexto, etc.). La característica Tiempo Real en multimedia es ligeramente distinta de la de otras aplicaciones. Es una cuestión de percepción, es mejor descartar fotogramas que mostrar todos y ralentizar la imagen. Por ello es interesante poder reservar recursos y anticipar el tiempo necesario para realizar una tarea. 4.3.4.4 Host Media Processing Con el creciente rendimiento de los procesadores de propósito general, mucho del procesamiento de voz que antes hubiese requerido DSPs se puede realizar ahora con soluciones que involucran solamente software en los servidores estándares que funcionan con Windows o Linux. Este nuevo modelo, comúnmente llamado host media processing, o softDSP, realiza las funciones de procesamiento multimedia importantes de aplicaciones para comunicaciones sin ningún hardware de propósito especial de telefonía. En el modelo de HMP, el audio se transporta como voz sobre IP a través de la interfaz de red de Ethernet y todo el procesamiento multimedia ocurre en el CPU del host. Host processing tiene una larga historia de diseño de soluciones basadas en host IP. Our Fusion 3 de NMS, introducido en 1999, era un producto host IP gateway. HMP es importante pues se relaciona con la escalabilidad del sistema y de la aplicación. HMP da a los desarrolladores la libertad y la flexibilidad de construir aplicaciones de procesamiento multimedia de alto valor en un solo ambiente unificado de desarrollo y con la capacidad de funcionar y de desplegarlas en el silicio de su preferencia; software HMP en las PCs de propósito general o las plataformas poderosas de DSP. Con este tipo de software, los desarrolladores pueden construir aplicaciones que escalen a partir de 8 a los millares de sesiones IP, proporcionando soluciones rentables incluso en las densidades más bajas; haciendo de las ofertas de VoIP una realidad asequible, no solamente para los provedores de servicio sino también para los pequeños y medianos negocios. Las aplicaciones HMP, que regularmente trabajan solamente en un ambiente IP G.711, son muy diversas tal como IVR IP, servidor de anuncios, buzón de voz, prepago, etc. Pero, el tipo de uso no dicta a HMP, sino las características requeridas. Es obvio preguntar si es más económico usar software HMP corriendo en CPUs de propósito general que usando DSPs para procesamiento de comunicaciones telefónicas. La respuesta a esa pregunta depende de una gran cantidad de factores y no es desafortunadamente un simple sí; o no. En términos de costo de los componentes, es importante comparar el costo entero del sistema, no únicamente el costo de la solución de procesamiento multimedia. Por ejemplo, digamos que una aplicación puede correr 90 sesiones IP sobre una simple computadora host usando una tarjeta CG 6000 de NMS, pero cuando emigran a HMP resulta que un segundo ordenador host es necesario. Ahora los costos del sistema han aumentado y se requiere una solución distribuida del software. El costo de los componentes de HMP tiene una ventaja inequívoca solamente cuando la cuenta de la sesión es relativamente pequeña y la solución entera puede estar dentro de una sola computadora host. Las ventajas más grandes de HMP pueden consistir en la consideración de los costos enteros del ciclo de vida del producto. En el desarrollo, es menos costoso proporcionar sistemas HMP a los ingenieros que sistemas basados en hardware. Incluso una computadora portátil se puede utilizar para el desarrollo y la demostración de aplicaciones 137 Facultad de Ingeniería UNAM basadas en HMP. En la producción, hay ahorros claros en gastos de material y de tramitación. En cuanto a soporte, no hay problemas de hardware de propósito general, procedimientos RMA, etc. Con cualquier sistema, el costo de mantenimiento de hardware se relaciona con la complejidad de los componentes y de la vida media. Mientras que incluso las complejos tarjetas de DSP son enormemente confiables en uso del campo, tienen un porcentaje de averías que causan costos de mantenimiento que no aplican a host media processing. En cuanto al despliegue, y costos operacionales, HMP tiene una ventaja debido a la ausencia de las tarjetas DSP add-in. Por otro lado, en sistemas basados en DSP, los recursos son totalmente reservados para las operaciones requeridas, así que la calidad de la voz no será afectada. Como los sistemas HMP funcionan bajo un sistema operativo de propósito general, hay siempre condiciones de trabajo extenso que pueden conducir a la degradación en la calidad de la voz (es decir, los paquetes perdidos o excesivo jitter del paquete). Será el reto para los desarrolladores garantizar que no ocurran esas condiciones de cargamento, lo cuál no es un problema que el desarrollador tuvo que enfrentar cuando usaba soluciones DSP. Además en un sistema DSP, los media Streams de VoIP (es decir, paquetes de RTP) terminan en la tarjeta basada en DSP y no pueden transmitir código malévolo a la computadora host. En el caso de HMP, la computadora host en sí misma está terminando los Streams de VoIP y por lo tanto se expone directamente a este tráfico; y problemas tales como ataques de negación de servicio. Si el sistema tiene conexiones externas, después un firewall VoIP-aware o un controlador de sesión de frontera debe ser considerado, que incrementa el costo del sistema. Si el sistema HMP está proporcionando operaciones de misión críticas incluso dentro de un segmento protegido de la LAN de la empresa, entonces el sistema por sí mismo debe desplegar aplicaciones como firewalls y antivirus, que pueden erosionar el funcionamiento del sistema. Para terminar, varias tarjetas basadas en soluciones DSP pueden estar en el mismo servidor que la aplicación HMP, como una clase de application accelerator. 138 Facultad de Ingeniería UNAM CAPÍTULO 5. ALTERNATIVA EN EL PROCESAMIENTO DE VOZ 5.1 Host Media Processing Este capítulo describe el producto de software Intel NetStructure Host Media Processing (HMP), discute el escenario y las oportunidades del segmento de mercado, describe a los usuarios HMP, y resume el segmento de mercado. 5.1.1 Visión General Las siguientes secciones proporcionan una visión general del producto HMP: Descripción del Producto Aplicaciones Host Media Processing Arquitectura de Referencia del Software HMP 5.1.1.1 Descripción del Producto El software Intel NetStructure Host Media Processing (HMP) ejecuta tareas de procesamiento multimedia en servidores de propósito general basados en la arquitectura Intel sin la necesidad de hardware especializado. El software proporciona servicios media que se pueden usar para construir servidores IP media flexibles, escalables, y de costo eficiente de nueva generación. El software HMP es un bloque de tecnología para el desarrollo de comunicaciones de Intel. Cuando se instala en un sistema, el software emula una tarjeta Intel Dialogic con arquitectura DM3, tarjetas de última generación, para la aplicación del cliente, pero todo el procesamiento de media se produce en el procesador host. Para ayudar a los clientes a acelerar su tiempo de comercialización y migrar sus aplicaciones existentes hacia IP, el software también soporta dos interfases de programación de aplicaciones (APIs): R5 para procesamiento media y Global Call para control de llamadas. El software HMP hace uso de una tarjeta de interfase de red built-in (NIC) para proporcionar conectividad IP. Soporta el protocolo estándar industrial H.323 para control de llamadas, y RTP/RTSP para media streaming sobre IP en formato G.711. Para ayudar a la calidad de media streaming sobre la red, el software soporta tamaños de frame de 10, 20, y 30 ms, así como características adicionales tal como alarmas de umbral de QoS. El software HMP se implementa como un manejador de modo kernel del sistema operativo Windows que corre con una prioridad de tiempo real. Se optimiza el software para correr en procesadores Intel Pentium III, Pentium 4, y Xeon. Desde el software HMP se implementa como un producto único de software, se puede instalar y actualizar como cualquier otro software. Los recursos basados en host proporcionados por el software HMP incluyen: Recursos de Reproducción Recursos de Grabación Recursos de generación y detección de tonos Recursos de telefonía media IP Recursos de conferencia 139 Facultad de Ingeniería UNAM Después de que el software HMP se ha instalado, el host base "tarjeta soft-DM3" emula un recurso de tarjeta IP, y los archivos de configuración pueden ser "bajados" de la misma manera que una tarjeta física. 5.1.1.2 Aplicaciones Host Media Processing La introducción de capacidades de procesamiento digital de señales en el procesador Pentium ha creado una tecnología sumamente eficiente en costo para desarrollar funciones Host Media Processing. Según una estimación preliminar, Intel anticipa que el software HMP habilitará un solo procesador Pentium de 1GHz para reemplazar dos DSPs de 150 MHz. Con base en las mejoras proporcionadas por la ley de Moore al procesador Pentium permiten al software HMP trabajar a densidades de DS-3 y OC-3. La Figura 56 muestra los resultados de laboratorio y el rendimiento proyectado de un número mayor de funciones de proceso de comunicación multimedia: 1. Anuncios. Streaming datos de audio en ley μ o ley A de un archivo en un disco duro y convierte en un stream de audio de telecomunicaciones por un recurso de reproducción lineal 2. IVR. Combina señalización con Dual Tone Multi- Frequency (DTMF) o un algoritmo detector de señales touchtone. Esta función incluye barge-in, una característica que detiene la señalización cuando un digito DTMF se detecta o cuando se detecta la voz. Nosotros nos enfocamos en llevar a cabo una aplicación IVR usando software HMP 3. Conferencia. Permite streams de voz en una conferencia de tres a la vez. 4. Voz. Ejecuta un rango de funciones de tecnología de voz, incluyendo TTS, menús de voz, y vocabularios grandes (incluido sólo para comparación). El programa software HMP de Intel ha implementado, perfeccionado, y probado señalizaciones, Interactive Voice Response (IVR), y algoritmos de conferencia en plataformas con Intel Celeron o Pentium procesadores van de 566 MHz a 2 GHz. Las líneas sólidas en Figura 56 representan los resultados de laboratorio. Intel esta apuntando una aplicación de los algoritmos que escalen tecnología a una velocidad igual o más alta que los procesadores Intel Pentium, procesadores Intel Pentium en two-way, four-way, y finalmente en servidores de eight-way, procesadores Intel Xeon, y procesadores Intel Itanium. Las líneas punteadas en la Figura 56 proyectan los resultados esperados de Intel para algunas de estas futuras aplicaciones. 140 Facultad de Ingeniería UNAM Figura 1 Resultados de Laboratorio y Proyección de Ejecución La red modular de siguiente generación combina voz y datos en una simple infraestructura de paquetes. Como un resultado, dos arquitecturas principales son ordinariamente factibles para desplegar comunicación multimedia: una interfaz de red directa basada en circuitos y una interfaz de red basada en paquetes IP. Se muestran en la Figura 57 estas dos arquitecturas. EL software HMP puede proporcionar procesamiento de voz en ambos. Figura 2 Arquitectura de Desarrollo del Servidor de Multimedia 141 Facultad de Ingeniería UNAM Un ambiente de red basado en paquetes IP sólo requiere de interfaces de redes Ethernet. Los nuevos, y más recientemente, proveedores de servicio tradicionales emigran al estándar 100BaseT y Gigabit Ethernet como la interfaz primaria tanto para servicios de Internet backbone y conexiones de telecomunicaciones de voz. Proveedores de servicio utilizan gateways multimedia para convertir la red de circuitos de streams de voz a una infraestructura basada en Ethernet usando voz sobre IP (VoIP). La ubicuidad de Ethernet ha hecho necesario equipar plataformas estándares Web, y ahora computadoras de escritorio y laptops, con interfaz Ethernet. Como un resultado, un servidor Ethernet de telecomunicaciones multimedia se puede utilizar en una plataforma Web estándar con únicamente con software HMP y sin cualquier hardware de procesamiento de voz adicional. Estas redes Ethernet permiten a servidores de telecomunicación multimedia basados en Ethernet proporcionar procesamiento de voz tanto para clientes de circuito y clientes basados en IP. El mismo tipo de plataforma del servidor web descrito se está usando comúnmente para llamar funciones de procesamiento en aplicaciones softswitch. Los servicios de telecomunicaciones multimedia se pueden añadir fácilmente para estas redes con software HMP corriendo en la misma plataforma servidor como el softswitch. Este tipo nuevo de ambiente reemplazaría las plataformas especializadas de procesamiento multimedia comúnmente usadas. La economía del uso arquitectura del hardware homogéneo es el mismo compele. Se reduce el costo total de propiedad significativamente tanto para la red y las empresas proveedoras de servicio porque los costos económicos, de entrenamiento, y la integración de administración de sistemas es mucho más bajo. Tal despliegue también aumenta el tiempo para el mercado y acelera el ciclo de innovación al dejar que nuevas características se desplieguen por una sola actualización del software. Implementar un servidor multimedia con una conexión para la tradicional red de conmutación de circuitos o una red Asynchronous Transfer Mode (ATM) requiere la adición de una tarjeta de interfaz de red (NIC). Un circuito NIC proporciona las interfaces de línea de conmutación de circuitos (analógico [inicio de ciclo, inicio de tierra] o digital [ISDN BRI/ BRA), o las interfaces de conmutación de circuitos de alta capacidad (T1/ E1/ J1, E3/ T3, OC3). Un circuito típico NIC incluye las siguientes funciones básicas: Una unidad de interfaz de línea (LIU) que terminar las líneas de cobre o fibra Un framer para interfaces digitales que terminan la capa 1 de protocolos o un Codificador Decodificador (CODEC) para interfaces analógicas para la conversión de señales de voz analógicas a señales digitales Una interfaz de componentes periféricos estándar (PCI) interfase streaming para la plataforma computacional en PCI AT, CompactPCI*, o tarjeta mezzanine PCI (PMC) Para interfases troncales de alta capacidad, el circuito NIC también podría incluir componentes específicos para perfeccionar la multiplexación por división de tiempo (TDM) canalización de los datos e incrementar la administración de funciones de procesamiento a alto nivel del control de datos vinculados (HDLC) para ISDN y el sistema de señalización 7 (SS7). El circuito NIC empaqueta los datos para la plataforma de servidor con muy baja latencia (típicamente menos de 8 milisegundos). La plataforma del servidor entonces ejecuta el procesamiento multimedia y, si es aplicable, llama el procesamiento de señalización de control también. En apoyo del crecimiento de las redes de datos, los NICs de alta densidad (T1/ E1/ J1, T3/ E3, OC3, ATM) se vuelve más comunes en el segmento de mercado. Un NIC de 142 Facultad de Ingeniería UNAM circuito simple permite el bajo costo de plug-ins en routers estándares como una interfase de red de área global (WAN). También permite que las plataformas computacionales ejecuten funciones de enrutamiento. Como el diseño de circuito NICs se empieza a regularizar, su evolución será similar a los NICS de Ethernet en su segmento de mercado, pero más limitado. Esta evolución se debe manejar bajo el costo y el movimiento de los circuitos NICs hacia la misma compatibilidad "plug and play" que ahora es disponible con NICs Ethernet. La interfaz estándar de Intel " plug and play " para el procesamiento de circuitos de datos NIC se describen con más detalle en la siguiente sección. Intel ha desarrollado la referencia de la arquitectura de software HMP, mostrada en el diagrama a bloques de la Figura 58, como un cianotipo para los componentes en una solución de servidor multimedia de telecomunicaciones. Esta arquitectura define los requisitos para las interfaces y la funcionalidad para soportar tanto servidores multimedia basados en circuitos y basados en paquetes. Por favor note que es sólo un diagrama conceptual, y que los productos de software HMP actuales ofrecidos por Intel no incluyen necesariamente todos los componentes mostrados en el diagrama. Figura 3 Diagrama a Bloques de Referencia de la Arquitectura de Software HMP 143 Facultad de Ingeniería UNAM La arquitectura de referencia tiene cinco funciones principales: 1. Multimed HMP 2. Interfases de redes de multimedia. 3. Interfases de almacenamiento de voz y datos 4. Interfases de programación de HMP 5. Plataformas informáticas multimedia Cada una de estas funciones se describe en detalle en las secciones siguientes. El multimed HMP soporta dos funciones multimedia: algoritmos de procesamiento de voz multimedia y software de conmutación de voz. Algoritmos de Procesamiento de voz multimedia. Los algoritmos de procesamiento de voz multimedia soportan la funcionalidad para los recursos del procesamiento de voz: anuncios, IVR, conferencias, y transcoding. Sin embargo, el desarrollo de algoritmos es insuficiente. Para crear un ambiente robusto de procesamiento de voz multimedia, otras dos áreas requieren atención: Afinación de los algoritmos para el ambiente de red Perfección de los algoritmos para la plataforma Los algoritmos de Intel se derivan de los productos Intel Dialogic e Intel NetStructure. Estos algoritmos se han ajustado para ser usados en redes de telecomunicaciones entre millones de puertos desplegados en más de 100 países sobre los últimos veinte años. Intel portó esta tecnología a las familias de procesadores Intel Celeron, Pentium, Itanium y XScale. Intel perfeccionó estos algoritmos con la recodificación de las aplicaciones en C para mayor efectividad al usar las tecnologías MMX y SSE en procesadores Pentium e Itanium. La optimización puede producir hasta un incremento diez veces mayor en la ejecución de los algoritmos por encima de la inicial versión del código en C. Por ejemplo, al reescribir el algoritmo básico en C utilizando instrucciones SSE, Intel espera aumentar la eficiencia del algoritmo G.729a de 200 MHz a menos que 20 MHz por el uso de los recursos. Intel trabaja también con vendedores de la tecnología de voz para reducir costos y simplificar el desarrollo de aplicaciones de voz. Las aplicaciones basadas en reconocimiento de voz y la tecnología text-to-speech (TTS) (ej., IVR, portal de voz) proporcionan beneficios estimulados en cuanto a la eficacia operacional y la diferenciación competitiva. Una tecnología de Intel llamada procesamiento de lenguaje continuo es un ejemplo. Esta tecnología perfecciona los algoritmos de detección de la actividad de la voz (VAD) para encontrar los requisitos de la función de reconocimiento de voz. VAD sólo empaqueta datos al speech engine cuando se detecta lenguaje real humano, así perfecciona el número de millones de instrucciones por segundo (MIPS) que un procesador Pentium requiere para soportar el reconocimiento de voz. Según estimaciones preliminares, Intel anticipa que un procesador Pentium III de 1 GHz puede soportar encima de 100 canales de paquetes para un speech engine. El resultado es un incremento en densidades y un costo más bajo cuando desarrollan soluciones habilitadas por voz. Software de Conmutación de Voz. Los esfuerzos de optimización de Intel se extienden más allá del centro de los algoritmos de procesamiento multimedia para incluir un ambiente central de conmutación multimedia. El ambiente central soporta conmutación de datos de voz para y desde los recursos, para y desde los archivos, y para y desde 144 Facultad de Ingeniería UNAM recursos terceros (ej., reconocimiento de voz y TTS). Los conmutadores multimedia deben mover datos desde y hacia las interfases de red con una latencia sumamente baja. La latencia de extremo-a-extremo total debe ser menor a 200 ms para servicios de tiempo real sensibles tal como conferencia de manera que un usuario humano no perciba un retardo en el tiempo. El ambiente del software HMP soporta conferencias con menos de 50 ms de latencia para asegurar una latencia de extremo-a-extremo por debajo de los 100 ms. Otro ejemplo de optimización es el protocolo de transferencia en tiempo real de VoIP (RTP) procesándose en un servidor multimedia Ethernet. Intel perfecciona su driver de aplicación Ethernet para reducir el overhead de streaming basado en RTP y conmutando en la plataforma. 5.1.1.3.2 Interfaces de Redes de Telecomunicaciones La interfaces de red proporcionan la conexión a la red de circuitos o dispositivo cliente (ej., teléfono analógico o digital) como se definió en la sección de los Ambientes del Desarrollo. La referencia de la arquitectura del software HMP define dos tipos de interfaces de red: 1. Tarjeta de interfase de red Ethernet (NIC Ethernet) 2. Tarjeta de interfase de red de Circuitos (NIC circuitos) Estas interfaces empaquetan datos a la plataforma informática por un manejador PCI estándar que es parte del sistema operativo del servidor (SO). Interfase Ethernet. El NIC hardware empaqueta datos de voz dentro y fuera de la plataforma informática basada en el hardware IETF RTP. El ambiente de procesamiento hardware desempaqueta los datos RTP y empaqueta el contenido hardware para los recursos de procesamiento hardware bajo el control del hardware. Los datos se originan desde un almacenamiento de anuncios o recursos hardware se empaquetan hardware del ambiente de procesamiento hardware al NIC hardware. (Más hardware disponible en los servidores incluyen NICs hardware dual.) Como portadores y usuarios se mueven hacia una arquitectura homogénea hardware tanto para voz y datos, servidores habilitados por voz puede conectarse a las redes sin hardware adicional. Ésta red convergente llevará a cabo soluciones más rápidas y menos caras. Interfase de Circuitos. El circuito NIC empaqueta datos de voz dentro y fuera de la plataforma informática por el bus PCI en forma TDM a través de buffers. Como con la interfaz Ethernet, el framework de procesamiento multimedia desempaqueta los datos TDM y los pasa al framework de procesamiento multimedia. Las interfaces de circuitos troncales típicamente requieren la interfaz para ejecutar la cancelación del eco antes de atribuir un recurso específico como IVR, conferencia, mensajería, o reconocimiento de voz. Intel espera que un procesador 1 GHz Pentium III soporte más de 150 canales de cancelación de eco. Las interfases de circuito multimedia también empaquetan protocolos de señalización digitales (ISDN o SS7). Estos protocolos requieren procesamiento HDLC o Message Transfer Part 1 (MTP1) y procesamiento de recuperación orden y mezclado Link Access Protocol- D/Message Transfer Part 2 a nivel 2 (LAP-D/ MTP2). Para acabar con estos protocolos se hace uso de las siguientes arquitecturas: 145 Facultad de Ingeniería UNAM Hardware Especializado en las tarjetas de interfaz de circuitos multimedia para procesamiento de nivel 1 Software de procesamiento de nivel 1 en la plataforma informática Utilizar hardware especializado en el circuito NIC tiene la ventaja de cargar fuera el overhead del procesamiento de nivel 1 de la plataforma informática. Intel espera soportar ambas arquitecturas. En ambos casos se termina el protocolo de señalización a nivel 2, y los paquetes de nivel se envían 3 o reciben de la interfaz de la aplicación de control de señalización o la interfase del protocolo estándar tal como Simple Computer Telephony Protocol ISDN User Adaptation layer (SCTP IUA) para ISDN o Simple Computer Telephony MTP3 User Adaptation layer (SCTP MxUA) para SS7. Una interfaz estándar de circuito NIC permitirá a los proveedores de servicio escojer entre múltiples tipos de interfases de circuitos NIC (ej., analógico, BRI, T1/E1/J1, DS-3, etc.) e idealmente vendedores con compatibilidad " plug and play" con la arquitectura de software HMP. 5.1.1.3.3 Interfases de Almacenamiento de Voz y Datos La mayoría de aplicaciones de procesamiento multimedia de telecomunicaciones requieren la habilidad reproducir anuncios. Por ejemplo, una red de call centers para servicios 800 automatizado puede requerir almacenar más de 100,000 archivos de anuncios que permitan soporte para varios idiomas y para múltiples servicios. Los archivos son también la base de almacenamiento de buzón de voz y buzón de fax en aplicaciones de mensajería. Para facilitar el cumplimiento de estos requisitos, el software HMP soporta el empaquetamiento de los datos desde archivos y el almacenamiento de datos a archivos en plataformas estándares de discos o flash. HMP software empaqueta los datos desde un archivo usando las primitivas del sistema de archivos del SO. Esto habilita al operador escoger el tipo de almacenamiento usado. 5.1.1.3.4 Interfaces de Programación del Software HMP Para permitir la integración con varias arquitecturas industriales y planeado para interfaces estándares industriales, las interfaces de programación se dividen en cuatro áreas: Señalización de llamadas o control de llamadas Control de conexión Control multimedia Manejo o administración Las interfases de programación se diseñan para proporcionar dos niveles de integración entre estos cuatro dominios funcionales. El software HMP proporciona interfases de programación directas en lenguaje C para control de llamadas (también referido como Global Call) y procesamiento multimedia (también referido como R4 API). Estas interfaces son compatibles con versiones anteriores ofrecidas con productos de comunicaciones a nivel tarjeta de Intel NetStructure DM3, tarjetas de última generación, permitiendo a los clientes usar las mismas aplicaciones para estos productos y para software HMP. Además, las interfaces de programación estándares para la industria pueden ser proporcionadas para que habiliten a interfaces Plug and Play para soluciones tal como softswitches y aplicaciones de servidor. 146 Facultad de Ingeniería UNAM Señalización de llamadas o control de llamadas. Proporciona los servicios que interactúan con la red instalar una sesión de voz entre dos voice end points. Usando uno de la cinco mayores protocolos de señalización en la red de llamadas de voz típicamente: En banda (ej., R1 o R2), ISDN, SS7, H.323, o protocolo de iniciación de la sesión (SIP). Control de llamadas es una parte optativa del software HMP. Se define en la arquitectura de referencia del servidor multimedia las extensiones necesarias para especificar una referencia a recursos de procesamiento multimedia y habilita el streaming de datos de señalización de llamada asociados con los streams multimedia para el nivel de aplicación de funciones de procesamiento de llamadas (ej., softswitch). Además, es útil definir el control de llamadas para soportor una solución todo-en-uno. La versión actual del software HMP incluye la pila de control de llamada H.323 de Radvision, con el soporte de la interfase de programación Global Call en lenguaje C directo. El software HMP también proporciona un mecanismo que permite a los clientes integrar cualquier pila de control de llamada en conferencia tripartita con software HMP. En general, la arquitectura asume que una aplicación actuará recíprocamente con el control llamada fuera del Software HMP y definirá la asociación para instalarle una conexión de voz al recurso de procesamiento multimedia a través de un control de conexión. Esto ofrece el OEM y el proveedor de servicio flexibilidad óptima para integrar cualquier arquitectura mayor de control de llamadas como requiridas para las características específicas de una aplicación. Control de Conexión. Control de conexión da a la aplicación control cuando se vincula los streams de voz (ya sea por señalización de circuito digital de nivel 0 [DS-0] o sesión IP RTP) a un recurso multimedia para ser controlado por el software HMP – configuración de conmutación. La interfase de control de conexión también permite que la aplicación cree una conexión entre dos streams de voz (ej., dos usuarios en una llamada). El software HMP proporciona una interfase de control de conexión basado en el modelo de la arquitectura DM3. Este modelo permite un control granular cuando se instalan sesiones RTP, conexiones de circuitos NIC, y conexiones de recursos en modos uni y bi- direccionales. Con ventajas muy similares al de IP, una arquitectura basada en software puede mover datos por apuntadores pasivos a segmentos de memoria compartida. Esta flexibilidad simplifica el desarrollo de aplicaciones avanzadas para conferencia, call center, y otros servicios por la habilitación de una variedad de arquitecturas de conexión entre recursos. Por ejemplo, una configuración de 100 DS-0s podría incluir 100 puertos para IVR y sólo 20 puertos para conferencia. La conmutación flexible en la solución de software permite que los puertos de conferencia se tomen dinámicamente y se intercambien los MIPs de un procesador Pentium con los recursos IVR. En una implementación de hardware se dedica la conferencia típicamente a todos los recursos en una tarjeta o un porcentaje de ellos. No se pueden intercambiar recursos entre aplicaciones fácilmente. También, al usar conmutación basada en software y una estructura Ethernet, se puede escalar la arquitectura a una implementación grande de conmutación usando hardware de cómputo estándar. Por ejemplo, en lugar de configurar la conferencia como un recurso compartido con IVR en un servidor, se puede configurar la conferencia como un recurso separado en la red. Diez servidores IVR diferentes se podrían conectar al servidor de conferencia sobre de IP cuando se requiera un recurso de conferencia. 147 Facultad de Ingeniería UNAM Control Multimedia. El control multimedia es central al software que provee la interfase de programación para todos recursos del software HMP y de algoritmos. Las interfaces de control multimedia directa es totalmente compatible con las interfases de programación de aplicación (APIs) de la serie DM3 para multimedia escritos en C. Así, un rico juego de aplicaciones desarrolladas para productos Intel Dialogic durante los pasados veinte años se pueden beneficiar ahora de una arquitectura de sólo software cuando se usa software HMP. Las interfaces de control multimedia directa proporciona el nivel granular de control del algoritmo requirido para aplicaciones altamente específicas (ej., permite la cancelación de un eco específico). Incluso es el control de umbrales algorítmicos requeridos y configuración, y entrada y salida (ej., dígitos DTMF). En el área de interfaces estándares, cinco interfases de programación de control multimedia de telecomunicaciones se ha definido para la industria: Media Gateway Control Protocol (MGCP) Audio Server, H.248 Annex M (H.248.9), Java* Telephony API (JTAPI) 1.4 Media, VXML, y SALT. MGCP y H.248 son protocolos de control de conexión creados para soportar servicios multimedia que se puede desarrollar en un gateway multimedia o un servidor multimedia. En el caso de la siguiente generación de softswitches, los aditamentos permiten el uso de un protocolo para control de todos los elementos de la red: gateways multimedia o servidores multimedia. MGCP y H.248 se enfocan en las funciones multimedia centrales requeridas para la red de telecomunicaciones legadas (ej., avisos de la red, servicios de operadora, y tres a la vez). Las interfases de MGCP proporcionan un mecanismo natural para identificar explícitamente los coders para transcodificar de formatos de voz comprimida a formatos de descomprimidos. JTAPI 1.4 Media, VXML, y SALT son apuntados para habilitar servicios de telecomunicaciones avanzados. JTAPI 1.4 Media (ECTF S.410) es una interfaz Java definida específicamente para soportar tanto servicios fundamentales multimedia y servicios avanzados de voz. No ha ganado todavía el mismo nivel de aceptación como VXML. Se han definido VXML y SAL específicamente para soportar la integración de capacidades de reconocimiento de voz con ambientes Web. VXML ha ganado una gran cantidad de partidarios en el modelo de programación de Web services para portales de voz y últimamente aplicaciones de call centers para manejadores de voz. SAL extiende conceptos de VXML para incluir soporte para lenguajes de estandar de script de Web (ej., JavaScript) y aplicaciones multimodo (ej., telefonía por Internet). La arquitectura modular y las interfases de programación poderosas de gran uso del Software HMP permiten la integración fácil con cualesquiera de los interfaces de programación estándares descritos arriba. Manejo o Administración. Los frameworks comprensivos y los estándares de administración proporcionados para plataformas de informática como parte de sus sistemas operativos proveen de interoperabilidad significativa tanto a los sistemas de administración del carrier y como de la empresa. Las plataformas típicamente soportan tanto el Protocolo de Manejo de Red Simple (SNMP) y el lenguaje de marcado extensible (XML) para el manejo del rendimiento del procesador, e interfaces Ethernet y discos. Además, las plataformas informáticas de Intel también soportan la interfaz de 148 Facultad de Ingeniería UNAM administración IP (IPMI) para monitorear la plataforma y proporcionar la interfaz de manejo robusto requirida para la operación del servidor. El Software HMP proporciona soporte para tres áreas críticas de administración necesarias para un funcionamiento fiable e ingeniería eficaz: rendimiento, falla, y configuración. La base del manejo de información (MIB) para interfases de red de telecomunicaciones, almacenamiento, y hardware informático se basa en los estándares de las capacidades industriales incluyendo como parte de esos componentes. Intel también lleva a cabo estándares MIB tanto para sistemas operativos Linux* y Windows*. Intel se enfoca en un SNMP para el rendimiento y administración de errores y XML sobre el Protocolo de Acceso Simple a Objetos (SOAP) para la administración de la configuración. Además, para soporta la administración sobre Internet, SNMP Versión 3 es apuntada como crítica para reforzar las capacidades de seguridad. Oportunidades, y Costo. El Software HMP, también llamado "software-solamente procesamiento multimedia," es una tecnología que permite usar procesadores de propósito general para ejecutar tareas de procesamiento multimedia. Esta tecnología trae numerosas ventajas a los diseñadores de soluciones de telecomunicaciones, la más importante el ahorro de costos. Así pues, recientemente ha habido una crecida de los productos telecom nuevos construidos usando esta tecnología en diversos niveles de la integración, de componentes del bloque de edificio para terminar soluciones de llavero, y toda mientras tanto. Así, recientemente ha habido un crecimiento de nuevos productos de telecomunicaciones desarrollados para usar esta tecnología a diferentes niveles de integración. Esta tecnología ahora atrae la atención de analistas de investigación de mercado . Puesto que el software HMP cambia fundamental la manera en que el procesamiento multimedia en telecomunicaciones se hace, se refiere a menudo como revolucionaria. Hay dos manejadores principales detrás de esta tecnología: Los nuevos procesadores Intel más poderosos habilitan una plataforma de informática estándar para un rendimiento efectivo a bajo costo de las funciones de procesamiento multimedia hechos anteriormente sólo por procesadores de propósito específico. La migración a voz sobre IP (VoIP) para habilita el uso de tarjetas Ethernet (que se embeben virtualmente en cada computadora construidas actualmente) como una interfaz de red para conectar a una red de telecomunicaciones. Combinando estos dos factores permite a los diseñadores construir software solamente para servidores de procesamiento multimedia de telecomunicaciones usando servidores de un alto volumen estándar (SHV), sin ningún componente especializado de hardware (comúnmente, los diseñadores de aplicaciones necesitan comprar tarjetas y una plataforma de informática para empezar a desarrollar aplicaciones de telecomunicaciones nuevas). Con Software HMP, los diseñadores pueden comenzar a trabajar en aplicaciones de telecomunicaciones nuevas después de una simple instalación software. Debido a esto, los costos y las barreras de desarrollo para servidores de procesamiento disminuyen substancialmente. Específicamente, se reducen los costos en las áreas siguientes: Inversión inicial. los clientes pagan sólo por los recursos multimedia que requieren. 149 Facultad de Ingeniería UNAM Desarrollo. Desarrollo más efectivo y menos costoso en sistemas de prueba. Implementación. no necesita guardar inventario, también menos envío, honorarios de importación/exportación, ninguna comprobación de instalación física y redcción de aprobaciones regulatorias. Post-Implementación. costos económicos reducidos o eliminados, actualizaciones de campo más fáciles (se puede hacer remotamente), disponibilidad de sistema total mejorada (menos componentes de hardware). Actualizaciones. flexibilidad en agregar procesamiento multimedia. Costos reducidos. Junto con la integración de Internet-telecomunicación que emerge, prometen frezar una onda nueva de los usos innovadores, rentables de la telecomunicación. Costos reducidos, junto con una integración emergente de Internet-telecomunicaciones, promete frezar una nueva ola de innovación, aplicaciones de telecomunicaciones de bajo costo eficientes. Intel ha creado el Software HMP para clientes que aprovechen el ahorro de costos ofrecidos por la tecnología HMP. Este producto proporciona características similares a los ofrecidos en tarjetas Intel NetStructure, pero implementadas completamente en el software en procesadores de la arquitectura Intel. Esto permite construir a los clientes servidores multimedia IP sin usar ningún hardware especializado, y proporciona las mismas APIs como las tarjetas Intel NetStructure. Las siguientes secciones incluyen una discución de la economía y las oportunidades de negocio detrás de los principales manejadores de la tecnología HMP. 5.1.2.1 La Ley de Moore Hace Posible HMP Intel fue el primero en introducir funciones del procesamiento digital de señales básicas para sus procesadores con tecnología Intel MMX en el procesador Intel Pentium. La tecnología MMX comenzó un realce importante a la arquitectura de Intel que fue diseñada para acelerar software multimedia y de comunicaciones. Esta tecnología esencialmente incluyó las capacidades básicas de un DSP en el procesador Pentium e incluyó nuevos tipos de datos y 57 nuevas instrucciones que aceleran los cálculos comunes en audio, los gráficos 2D y 3D, vídeo, síntesis y reconocimiento de voz, y algoritmos de comunicaciones de datos. Como el número de transistores en un chip ha crecido, Intel ha continuado reforzando la habilidad del procesamiento digital de señales del procesador Pentium. Se ha extendido la capacidad que se creó con la MMX tecnología con Streaming SIMD Extensions (SSE). Streaming SIMD (una sola instrucción, datos múltiples) Extensiones son instrucciones que reducen el número global de instrucciones requiridas para procesar una tarea de un programa en particular. Como resultado, pueden alzar el rendimiento acelerando una amplia gama de aplicaciones, incluyendo el video, voz e imagen, procesamiento de imágenes, cifrado, finanzas, ingeniería, y aplicaciones científicas. La microarquitectura Intel NetBurst agrega 144 instrucciones SSE nuevas, que se conocen como SSE2 y están disponibles en los procesadores Intel Pentium III y Celeron. Actualmente, los procesadores Intel ejecutan operaciones de punto flotante, operaciones de matrices, transformada rápida de Fourier, respuesta al Impulso finita y multi-threading. Además, Intel proporciona Intel Integrated Performance Primitives para perfeccionar el procesamiento digital de señales. 150 Facultad de Ingeniería UNAM Para la optimización de E/S requirida para procesamiento de señales, los procesadores Intel ofrecen búses de datos más anchos y búses de memoria más rápidos. Para arquitecturas de memoria del acceso múltiple ofrecen en chip caches largos con múltiples operaciones por traída. Con la Ley de Moore se esperó trabajar por lo menos otra década, según un artículo de C-NET reciente, con la tecnología HMP que tiene un crecimiento potencial significante. 151 Facultad de Ingeniería UNAM 5.1.2.2 Aplicaciones HMP-CT ADE Con la esperada llegada de la masificación de la telefonía IP, el mercado se mueve aceleradamente hacia la diversificación de tecnologías y aplicaciones que brinden valores agregados, y sobre todo lo hacen los proveedores que tradicionalmente se enfocan en las comunicaciones. Bajo ese entorno surge un modelo de conmutación que convierte a una PC en un procesador de call center. Este esquema es posible con el software de Intel denominado Host Media Processing (HMP), el cual posibilita a una PC convertir su procesador en un conmutador con tecnología IP y SIP (misma que comprime y empaqueta la voz) hasta para 50 usuarios. El respaldo Host Media Processing (HMP, por sus siglas en inglés) Intel NetStructure versión 1.1 que posibilita soluciones de voz para ser utilizadas en propósitos generales Intel basado en servidores, hardware de telefonía no especializado, y además, reduce los costes totales de propiedad para soluciones de voz. Cómo se ha mencionado anteriormente, HMP es una tecnología utilizada para realizar procesos de tareas en servidores de altos estándares de volumen. HMP provee a los usuarios la capacidad de construir servidores multimedia rentables, escalables y flexibles. A través de HMP, las compañías son capaces de incrementar la accesibilidad del hardware de los servidores y generalmente son compatibles y escalables dependiendo de los propósitos especiales que se tengan, lo cual sustituye uno uso de alto costo de las tarjetas DSPs, (Digital Signal Procesors). Los beneficios que tiene la utilización de HMP van desde reducción de costos, durabilidad de existencia en el mercado y futuras soluciones, compatibilidad con productos anteriores, y soporta herramientas de desarrollo de rápida aplicación (CT- ADE). 152 Facultad de Ingeniería UNAM 5.2 CT-ADE 5.2.1 CT-ADE ahora soporta HMP Las herramientas que muchas compañías emplean en los desarrollos de computer telephony son: CT-ADE 8.2 (suite creada por Parity Software, misma que permite seleccionar las herramientas más adecuadas para cada proyecto) o el Symphone (simulador de una línea analógica para desarrollo y prueba). APLICACIONES TARJETAS DSPs SOFTWARE HMP ALGORITMOS DE PROCESAMIENTO: Play, Record, DTMF, Call Progress Detection, Coders, AGC, etc CALL CONTROLL AND MEDIA APIs CT ADE Figura 4 Bloques de Aplicación de una aplicación CT-ADE&HMP Al utilizar el CT ADE se tiene ventaja al tener ahorro en costos ofrecidos por HMP. Se necesitan migrar las aplicaciones de CTADE base DM3 a HMP. Posteriormente construir las nuevas aplicaciones para HMP utilizando CT ADE. El acceso a HMP media y recursos de IP son soportados en ADL (VOS), ADL Flowcharter y ADX (CallSuite). Por otra parte la versión del HMP es compatible para la plataforma Windows, donde se puede manejar voz y conferencia sobre IP con el codec G.711, también se tienen las opciones de la tri-partita (tirad-party) o Global Call sobre H.323, sesiones de conferencia o IVRs en G.711, soporta también CT ADE. La plataforma para Windows también soporta Global Call sobre SIP, IP multicast, Fax, coders de tasa baja (G.723.1, G.729ab), sesiones de IVR, mensajes unificados, servidores de conferencia. La versión para Linux puede soportar aplicaciones como voz, fax, conferencia sobre IP, play/record con el codec G.726; sesiones IVR, APIs directas, R4, Global Call. Sin embargo, hay un sin fin de soluciones que la nueva tecnología ofrece a sus usuarios que están muy bien especificadas en el mercado de la Telefonía, por lo que un Servidor de este tipo de tecnologías de estar inmerso y mantener una buena relación de trabajo con los proveedores. Ejemplos de estas soluciones se muestran a continuación: Microsoft Speech Server. Combina tecnología web, servicios de procesamiento de voz y capacidades telefónicas en sistema simple e integrado. El servidor habilita a las compañías para unificar las infraestructuras Web y telefónica y 153 Facultad de Ingeniería UNAM brindar una extensa gama de aplicaciones de acceso de voz para telefonía local, telefonía móvil, pocket pc’s y smartphones. Microsoft Speech Server es una plataforma de voz flexible e integrada que reduce dramáticamente la complejidad y el costo del desarrollo y despliegue de las aplicaciones de voz. Las aplicaciones de una amplia variedad de industrias pueden ser centros de contacto de información donde se pueden hacer reservaciones para viajes, acciones financieras, etc. Las compañías pueden utilizar Microsoft Speech Server para desarrollar aplicaciones de telefonía DTMF (usando el teclado). CT ADE. CT Application Development Enviroment es un sistema de construcción de bloques específicamente diseñado para entregar tecnologías características de Intel NetStructure, de tal forma que es mas sencillo de usar y más fácil de aprender que las interfaces de hardware convencionales. Global Call. Unificadamente, los desarrolladores de protocolos y de programación de control de llamadas, tienen detalles que difieren en el nivel del protocolo de señalización en los países alrededor del mundo. Un protocolo de diseño modular ofrece la habilidad de que una vez escrita la API, desplegar aplicaciones en muchos países sin costos adicionales de desarrollo. El diseño de APIs extensibles permite la adición de nuevas tecnologías de señalización en el mercado y en las necesidades que el consumidor demanda. Las herramientas estándar de la industria proveen protocolos de desarrollo y tiempos de respuesta más rápidos sobre nuevos requerimientos. Existe una extensa bibliografía de los protocolos de señalización para aplicaciones de voz, datos, video, e Internet que permiten la misma aplicación de trabajo en múltiples sistemas de señalización en todo el mundo. Dialogic. Son productos que incluyen la construcción de bloques y servicios que convergen a las tecnologías de voz y datos y que permiten la creación de una red modular. Intel ofrece un set de tecnologías de voz, fax, conferencia, interfaces de red de telefonía e IP, productos de integración para PBX, productos de sistema de nievel de trajetas y más para ayudar a satisfacer las necesidades de comunicación en el medio de los proveedores de servicio y el mercado tecnológico. HMP. Este software realiza tareas de procesamiento sobre servidores de propósitos generales basándose en la arquitectura Intel, sin utilizar hardware especializado. Cuando se instala el software Host Media Processing es similar a tener una tarjeta Dialogic de Intel con arquitectura DM3 para la aplicación del usuario, pero todo el procesamiento toma lugar en el procesador host. El software provee servicios media que pueden ser usados para construir servidores de IP media de la siguiente generación flexibles, escalables y de menor costo. Speech Works ScanSoft. Con el poder de los productos de reconocimiento de voz (Automatic Speech Recogniton, ASR) los usuarios pueden interactuar con cualquier teléfono convencional o inalámbrico y muchos dispositivos móviles para obtener información o manejar transacciones inmediatas, simplemente al hablar naturalmente. Los servicios ASR remplazan las incómodas y a veces problemáticas y confusas interfaces de toucch-tone y permiten nuevas categorías 154 Facultad de Ingeniería UNAM de aplicación así como portales. ASR provee un acoplamiento natural y eficiente a través de una interface que sirve rápida y consistentemente a los usuarios. Reconocimiento de Voz. El procesamiento de voz continua consiste de un software y de un soporte lógico inalterable que son característicos de las tarjetas de comunicación de la estructura Intel. El procesamiento de voz continua ha mejorado la tecnología de procesamiento de voz existe, al proveer una tarjeta de soporte lógico que procesa señales de voz en tiempo real para identificar la voz humana entrante y presentarla a la plataforma del host para el reconocimiento de la voz. Las funciones de tiempo real incluyen tanto cancelación de eco como detección de actividad de voz (VAD). Esta mejora en los recursos de la plataforma del host permite obtener más datos y así realizar tarea de reconocimientos más complejos, así como analizar y reconocer la voz entrante en soporte de la aplicación. El procesamiento de voz soporta importantes dispositivos de aplicación amigables así como la habilidad de interrumpir avisos de voz, al sobre escribirlos, a lo que se le conoce como Barge-in. El Barge-in permite a los usuarios controlar el paso de la conversación y completar la interacción más rápidamente, resultando en una experiencia placentera y en un uso más eficiente de la plataforma. Los recursos del sistema host del Barge-in ahorran el uso de mejoras que el sistema utiliza, y reduce los cargos del teléfono al tener llamadas más cortas. Las características de la tecnología VAD del procesamiento de voz produce un mejor reconocimiento de voz usando menos procesamiento y mejorando la exactitud de la detección. Diseñado para ser flexible, el procesamiento de voz continua permite que la detección de actividad de voz sea deshabilitada o usada en conjunto con los algoritmos de detección de voz desarrollados por la nueva tecnología. Text to speech. La tecnología (TTS) utiliza un software sofisticado para convertir texto en sonido de una voz natural. El software TTS reduce costos y velocidad al suplantar grabaciones de voz humana en un sin número de aplicaciones comerciales. Además, el software TTS puede mejorar la experiencia del usuario al proveer información dinámica, detallada y personalizada en tiempo real, con una voz automatizada parecida a la naturalmente humana. Muchas compañías ofrecen un kit de última versión del kit de desarrollo de software profesional, que permite la integración rápida y sencilla de funcionalidades de conversión texto-a-voz (TTS) con cualquier configuración de aplicaciones de cliente basadas en servidores estándar. de elevada densidad, multilingüe (19 idiomas) y de gran calidad, basado en un nuevo algoritmo optimizado, donde un E1 puede ser terminado en un servidor, haciendo posible que el usuario trabaje con más de 80 canales en un servidor estándar. Este tipo de software está soportado de forma nativa por CT ADE y es compatible con procesadores Intel® con Microsoft Windows 2000, NT y XP, Solaris, Linux/x86 y AIX/RS6000, etcétera. Además esta tecnología ofrece una voz humana en numerosas aplicaciones: soluciones de mensajería unificada, IVR, sistemas de información empresariales, servicios de operador, Call Centres, servicios de directorio o portales de voz. CT ADE es un conjunto de herramientas distintas que nos permite seleccionar la más adecuada para cada proyecto, obteniendo así las más complejas aplicaciones en un mínimo de tiempo y esfuerzo. Estas herramientas son: CallSuite, VOS, GVOS y Symphone, donde: 155 Facultad de Ingeniería UNAM Callsuite: son controles ActiveX para agregar a VisualBasic o Delphi. VOS: es un lenguaje orientado a desarrollos de aplicaciones de Computer Telephony que reduce la necesidad de utilizar un lenguaje de programación complejo como C o C++ en entornos de telefonía. GVOS: (Graphical VOS) es un interfaz gráfico para VOS, muy práctico y rápido en la generación de aplicaciones, ya que mediante la creación de diagramas de flujo se produce automáticamente la generación del código en VOS. Symphone: es un simulador de una línea analógica para desarrollo y pruebas sin necesidad de utilizar hardware de telefonía. El generador de aplicaciones CT ADE soporta las tarjetas Intel® Dialogic® de procesado vocal, reconocimiento de voz, Fax basado en PC, conversión de texto a voz y e interfaces de red telefónica. Además CT ADE soporta de forma nativa el software de conversión texto a voz de Scansoft® RealSpeak™ SDK. Al actualizar CT ADE los desarrolladores ganarán mejoras en la exactitud del reconocimiento de voz, gramáticas más poderosas, incluyendo lenguaje natural de entrada, voz sintética con sonido más natural, soporte para telefonía de voz sobre IP (VoIP), y un rendimiento más alto de la interfaces de red del Host Media Processing (HMP). 5.2.2. Cómo configurar los Coders VoIP en CT ADE. Cuando se utilizan tarjetas IP Link Intel® Dialogic® o HMP la aplicación necesita tener la información del coder para las llamadas. Esta nota técnica da los detalles a cerca del soporte de los coders y como configurarlos apropiadamente. El identificador de registro 3673, REGID_R4GcIpIpCapability es usado conveniente como el IP Link para mandar la información del coder para la estructura IP_CALLINFO. Por ejemplo: en ADL, para configurar el coder G.723.1 6.3Kbps en la dirección de transmisión con 2 tramas por paquete, se debe llamar a: TrunkSetInt(3673, 110, 2, 1, 255, 2); En ADX, para configurar G.723.1 5.3 kbps, en la dirección de recepción, con 3 tramas por segundo, podemos llamar a: Call ADXVoice1.SetTrunkIntEx(3673, 109, 2, 2, 255, 3) REGID_R4GcIpIpCapability (3673) permite usar valores de la capacidad de IP. Toma 6 argumentos en el siguiente orden: capacidad, tipo, dirección, tipo de carga útil, frames por paquete (fpp), VAD. Si menos de 6 parámetros son especificados, los valores de preestablecidos son usados para cualquier argumento faltante. Todos los coders que las tarjetas de Intel pueden soportar están definidos en gccfgparm.h file. Cuando los coders son configurados hay tres detalles que se tienen que tomar en cuenta: Primero, no todos los coders son soportados por las tarjetas Intel® Dialogic® DM3 IP, por lo tanto los siguientes coders son los que pueden ser utilizados: GCCAP_AUDIO_g711Alaw64k 101 fixed 1 fpp, frame size 10, 20, 30ms GCCAP_AUDIO_g711Ulaw64k 103 fixed 1 fpp, frame size 10, 20, 30ms GCCAP_AUDIO_g7231_5_3k 109 1, 2 or 3 fpp GCCAP_AUDIO_g7231_6_3k 110 1, 2 or 3 fpp 156 Facultad de Ingeniería UNAM GCCAP_AUDIO_g729AnnexA 118 3 or 4 app GCCAP_AUDIO_g729AnnexAwAnnexB 120 3 or 4 app Tabla 1 Codecs soportados por las tarjetas Intel Dialogic Segundo, para el parámetro de dirección, solo se puede seleccionar la dirección de transmisión o la dirección de recepción. #define IP_CAP_DIR_LCLTRANSMIT 0x01 #define IP_CAP_DIR_LCLRECEIVE 0x02 #define IP_CAP_DIR_LCLTXRX 0x03 Tabla 2 Definición de direcciones Las definiciones anteriores se encuentran en el archivo gcip_defs.h. El parámetro de IP_CAP_DIR_LCLTXRX solo es soportado por el protocolo T.38, no por IP. Así que para configurar un codec en ambas direcciones, la de transmisión y la de recepción, se tiene que hacer uso de registro regID 3673 en dos ocasiones. Una para recepción y la otra para transmisión. Si se tienen el archivo IP_CAP_DIR_LCLTXRX, se tendrá un error. El tercer detalle es acerca del codec G.711. Los fpp (frames por paquete) esta predeterminado como 1 para G.711. Pero el tamaño del frame es variable. Puede ser de 10, 20, 30 ms. Cuando se selecciona este codec, el parámetro fpp puede ser remplazado con el tamaño del frame. Por ejemplo, en ADL, para configurar el coder G.711 con Ley µ a 64 k, en la dirección de recepción con 10 ms como el tamaño de la trama, se debe poner: TrunkSetInt(3673, 101, 2, 2, 255, 10); Como se ha mencionado con anterioridad se pueden tener un sin número de aplicaciones comerciales haciendo uso de esta amplia gama de tecnología de la voz sobre IP. A continuación hay algunos ejemplos que ilustran el uso de VoIP en diferentes casos. Los ejemplos son tanto para gran escala así como para aplicaciones relativamente pequeñas, ilustrando los principios detrás de la implementación de la tecnología de VoIP en diferentes sistemas. Por ejemplo, la figura 60 muestra la configuración de una red de una organización con muchas oficinas en rama (por ejemplo un banco) que quiere reducir costos y combinar su tráfico para proveer acceso de voz y datos a la oficina principal. Esto se puede lograr si se tiene una red de paquetes para proveer una transmisión de datos estándar, mientras que al mismo tiempo se quiere llevar una carga de tráfico de voz junto con los datos. Típicamente, la configuración de esta red pudiera ser un beneficio si el tráfico de voz estuviera comprimido como resultado de un nivel bajo de ancho de banda disponible para esta aplicación. La voz sobre paquetes provee la función Inter.-working (IWF), que es la implementación física del hardware y del software que permite que la transmisión sea combinada de voz y datos sobre una red de paquetes. 157 Facultad de Ingeniería UNAM Figura 5 Aplicación de oficina de varias ramas Las interfaces que IWF debe soportar en este caso son interfaces análogas, que deben estar directamente conectadas a los teléfonos o a los sistemas de acceso. IWF debe emular las funciones tanto de intercambio de rama privado (Private Branch Exchange, PBX) para las terminales telefónicas en la rama, como de las funciones de las terminales telefónicas para el PBX en una oficina local. El IWF logra esto al implementar algún software de señalización específica que realice estas funciones. Un Segundo ejemplo de VoIP, se muestra en la figura 61, es una aplicación 158 Facultad de Ingeniería UNAM Trunking. En este escenario, una organización desea mandar tráfico de voz entre dos locaciones sobre una red de paquetes y remplazar las troncales saturadas que se están utilizando para conectarlos PBXs en las locaciones. Figura 6 Aplicación Trunking Esta aplicación usualmente requiere de IWF para soportar canales digitales de alta capacidad más que la aplicación de rama, como una interfaz T1/E1 de 1.544 2.048 Mbps. El IWF emula las funciones de señalización de un PBX, resultando en ahorros significantes en los costos de las compañías de comunicación. Una tercera aplicación de ejemplo de software de VoIP es la interworking con redes celulares, como se muestra en la figura 62. Los datos de voz en una red celular ya se encuentran comprimidos y empaquetados para su transmisión por aire a través de un teléfono celular. Las redes de paquetes pueden entonces transmitir el paquete celular de voz comprimida, así se ahorra en una gran cantidad el uso del ancho de banda. El IWF provee la función de transcoding que se requiere para convertir la voz celular al formato requerido por la red de telefonía pública (PSTN) 159 Facultad de Ingeniería UNAM Figura 7 Aplicación interworking 160 Facultad de Ingeniería UNAM 5.2.3 Integración de la Telefonía a la Computación La integración de la telefonía a la computación (CTI) es la combinación de la telefonía y la tecnología de la computación. Esta combinación habilita los procesamientos de la voz y los datos, así como el equipamiento para trabajar juntos y de esta forma se pueda intercambiar información fácil, rápida y eficazmente. El CT ADE (Ambiente de Desarrollo de Aplicaciones de Telefonía por Computadora) de Intel NetMerge es un juego de herramientas de desarrollo y de interfaces programadas que ayudan para acortar el tiempo de inversión haciendo que la construcción de aplicaciones robustas y portátiles de CTI sean rápidas y fáciles de crear, siendo estas tan complejas como sean necesarias y demandadas por el mercado para su comercialización. CT ADE alivia la necesidad de programar directamente con las API´s del lenguaje C o C++. El administrador de recursos elimina la necesidad, para diseñadores, del tiempo de aprendizaje del hardware actual, nuevo y de los protocolos de las API´s. El administrador de recursos es una capa de abstracción que se encuentra por encima de una API y realiza tares de CTI de bajo nivel. Permitiéndole enfocarse en la construcción de las aplicaciones sin preocuparse por el funcionamiento de lenguajes de bajo nivel. Con el administrador de recursos se pueden usar dos ambientes de programación que están incluidos: Lenguaje de Desarrollo de Aplicaciones (ADL) y Control Activo de Desarrollo de Aplicaciones (ADX). El ADL es un ambiente de programación que tiene un lenguaje de scrip o un escenario que incluye una interfaz gráfica al usuario (GUI) así como un depurador. Si se prefiere usar una ventana visual de desarrollo de lenguaje como Visual Basic, el ADX Control incorpora directamente a un ambiente de programación visual, proporcionando un desarrollo especifico de CT funcional. Figura 8 Bloques de aplicación CT ADE Cualquier ambiente le da una plataforma especializada que reduce las tares repetitivas asociadas con el desarrollo de aplicaciones de la telefonía tradicional, permitiéndole enfocarse en los aspectos esenciales del desarrollo de su aplicación. 161 Facultad de Ingeniería UNAM Se puede ejecutar solo un proceso de CTADE en su PC. Se puede ejecutar un proceso de ADL con muchas tareas si fuera necesario o una aplicación de ADX con múltiples ramas, pero no ambos. 5.2.3.1 ADL Studio Parte del CT ADE (Ambiente de Desarrollo de Aplicaciones de Telefonía por Computadora) es el ADL Studio que le da un ambiente de desarrollo integrado (IDE) en el que se puede crear, compilar, correr y depurar aplicaciones de telefonía. Se puede usar los beneficios del fácil uso de Flowcharter que GUI (User Interface dialog) combina con el poder y flexibilidad de ADL que programa el idioma para construir las aplicaciones de telefonía. El depurador mantiene una facilidad en el arte de la depuración innovadora en las aplicaciones de ADL. Usted puede crear y desplegar los sistemas de la telefonía con el Lenguaje de Desarrollo de Aplicaciones (ADL) un ambiente de desarrollo completo que incluye ADL Flowcharter, Editor, Compilador, Runtime Engine, Depurador y un Simulador de Teléfono. Flowcharter. ADL Flowcharter le ayuda a crear y revisar las aplicaciones de telefonía fácil y rápidamente, para que en vez de escribir el código fuentes, solo tenga que dibujar la aplicación que desee en el Flowcharter. Editor. El editor de ADL da relieve a la sintaxis diseñado específicamente para el código fuente del ADL. Se puede usar el editor para crear un nuevo archivo ADL .vs (fuente) y .fun (función) o abrir y editar los ya existentes. Compilador y Runtime Engine. Cuando se ejecuta un programa, el ADL Studio lo compila y lo ejecuta con Runtime Engine. Compilador. El compilador de ADL traduce el código fuente de ADL en un archivo ejecutable que tiene la extensión .vx. El compilador se configura con los registros de los archivos del escenario del ADL. Runtime Engine. El ADL Runtime Engine es el responsable de ejecutar las aplicaciones construidas en el compilador. Como el compilador el ADL engine es configurado con los registros de los archivos del escenario del ADL. Se pude configurar el ADL engine a través del panel de control de ADL. Depurador. El depurador es un código fuente nivelado, permite gráficos y soluciona problemas de los programas de ADL a través del desarrollo y después de la instalación. Se pueden depurar muchos programas en una solo sesión y revisar programas variables y el estado actual de su aplicación sin interrumpir sus llamadas actuales. El administrador de recursos. El administrador de recursos es la fundación para las próximas generaciones de herramientas de desarrollo. El objetivo del administrador de recursos es construir con una década de experiencia tratando con las API´s de telefonía, una plataforma cruzada portátil y una amplia variación en las capacidades ofrecidas por el hardware y servicios de las 162 Facultad de Ingeniería UNAM telecomunicaciones. El administrador de recursos es una colección de módulos de software. El componente central es una capa delgada de código que interviene entre los comandos de programación (como MediaPlayFile) y los recursos básicos de la API. Por ejemplo si se manda llamar la función TrunkAnswerCall, el administrador de recursos determina que interfaz se esta usando, si es legal hacer la llamada (tiene una llamada entrante) y entonces que API funciona para usar: dx_sethook (R4 analog), dt_setsig (R4 T-1) y así sucesivamente. Se puede agrega esta capa entre su aplicación y el dispositivo API el cual costara la actualización. Pero no es de preocuparse, el administrador de recursos existe en una capa muy delgada y eficaz que usa muy poca memoria e incrementa solo un poco el costo de un CPU en comparación con el código de API nativa directamente de C o C++. Simulador de teléfono. Cuando se instala ADL, se instala también un simulador de teléfono, un software que simula una línea telefónica que trabaja con el administrador de recursos y una tarjeta para simular un tablero y una línea telefónica. Llave de hardware. Una llave de hardware debe estar presente para que un programa de ADL funcione correctamente (si se corre un modelo de evaluación, esta llave no es requerida). La llave de hardware debe ir en un puerto paralelo o USB. La llave de hardware contiene las células programadas en memoria. Cada bloque contiene un ID que las identifica. La ventana del proyecto (Project window) muestra las aplicaciones y RLLs en el proyecto actual. Un proyecto contiene una aplicación plus más el flujo de caracteres que los archivos fuente de ADL necesitan para el sistema de telefonía. 163 Facultad de Ingeniería UNAM Figura 9 Ambiente de desarrollo 164 Facultad de Ingeniería UNAM Figura 10 Project Window La ventana de rendimiento (Output Window) muestra los resultados cuando compilamos un proyecto de ADL, mapa del flujo o archivo fuentes de ADL. Si al compilar un archivo produce errores, estos se verán en la ventana del rendimiento. Figura 11 Output Window 5.2.3.2 Barra de Herramientas ADL Studio tiene cuatro tipos de barras de herramientas incorporadas: la barra de herramientas estándar, barra de telefonía, barra de caracteres y barra de ejecución. Dentro del flujo de caracteres vienen cuatro muestras de herramientas personalizadas: Funciones de buzón, de fax y de conferencia. Se puede seleccionar cualquier elemento de la barra dando clic a cualquier icono y arrastrándolo a cualquier parte en el área de trabajo. Se puede poner en la parte superior, 165 Facultad de Ingeniería UNAM en el fondo o cualquier lado de la ventana principal. Si una barra de herramientas no es visible se debe regresar y usar el menú principal View | Toolbar. Figura 12 Barra de herramientas Cada botón de la barra de herramientas despliega tips si usted posiciona el ratón encima de un botón y espere un periodo de tiempo pequeño. 166 Facultad de Ingeniería UNAM 5.2.4 Crear una Aplicación en CT ADE En CT ADE se pueden crear aplicaciones tan simples; contestar una llamada, recibir un mensaje, fax o un correo, o tan completas; un IVR, una central, una Chat en línea, sistema telefónico, etc., como se desee. 1. Inicializar ADL Studio de la ventana del menú de Windows. En la ventana de dialogo de bienvenida de ADL, seleccione Create a New Project, entonces pulse el botón de OK. Figura 13 Ventana de Bienvenida 2. Se abrirá un nuevo dialogo. Figura 14 Cuadro de diálogo para una nueva aplicación (1) 167 Facultad de Ingeniería UNAM Se puede crear un nuevo proyecto (archivos .GVP), mapa de flujo (.FLW), archivos de funciones (.FUN), archivos de declaraciones (.DEC), incluir archivos (.INC) o archivos de código fuente ADL (.VS). File name. Teclee un nombre para el nuevo proyecto. Dependiendo el tipo de archivo que seleccione, Project, Chart o ADL program, el ADL Studio agregara la extensión apropiada automáticamente al nombre de archivo que usted escogió. Si el tipo de archivo que selecciono es Text se requiere incluir el nombre con la extensión. File Type. Es el tipo de archivo que usted puede crear: Project. Nuevo proyecto de ADL. Chart. Un nuevo mapa de flujo, el cual puede editar con el Flowcharter. Los archivos del mapa de flujo tendrán la extensión .flw. ADL Program. Un archivo con código fuente ADL el cual puede realizar en el Editor. ADL Program genera archivos .vs. Text. Crear un archivo de texto, el cual puede realizar en el Editor, use esta función para crear nuevas funciones, nuevas declaraciones o para incluir archivos. Location. Seleccione la ruta del archivo. Si el archivo es un proyecto el ADL Studio lo ubica automáticamente en el directorio de los proyectos. Project. Este campo despliega el nombre del proyecto, y pueda ser agregado cualquier archivo. No se puede modificar el campo del Project. Para agregar un archivo a un proyecto diferente, debe regresar a ADL Studio IDE, abra el otro proyecto y seleccione File | New. Asegurase de seleccionar en el campo de File Type seleccionar Project. En el campo de File name, el nombre del proyecto. En el campo de Location busque la siguiente ruta C:\Program Files\Intel CT ADE\ADL\Tutorial. Clic OK, y ADL Studio creara el nuevo proyecto. En la ventana se verá un árbol que muestra los archivos del proyecto: una aplicación maestra y un RLL. Figura 15 Explorador de proyecto 3. Después, agregaremos un mapa de flujo al proyecto. Del menú principal haga clic en File | New. En el nuevo dialogo, asegúrese de que en el campo de File Type seleccionar Chart. En el campo de File name poner el nombre del proyecto. 168 Facultad de Ingeniería UNAM Figura 16 Cuadro de diálogo para una nueva aplicación (2) 4. Pulse OK para crear un nuevo mapa. En el nuevo mapa, aparecen tres células de Inicio (Start), Fin (End) y Nuevo (New). Figura 17 Bloque de inicio Cuando se ejecuta la aplicación, esta comienza desde en el bloque de Start y pasa al siguiente bloque en el mapa. Cuando se está desarrollando la aplicación los nuevos bloques se colocan con el cursor, mostrando donde va a ser insertado el próxima bloque. 5. Después, la barra de herramientas de Telefonía debe estar visible. Si no se ve la barra de herramientas, del menú principal, seleccione View | Toolbars | Telephony. 6. Seleccione el icono del bloque que desea agregar de la barra de herramientas. El bloque que seleccione aparece en el mapa automáticamente abajo del blolque de inicio. Se puede insertar el bloque arrastrándo desde la barra de herramientas. Se pueden agregar tantos bloques como sean necesarias para crear la aplicación deseada. 169 Facultad de Ingeniería UNAM Figura 18 Inserción de nuevos bloques 7. Para completar su aplicación, arrastre el bloque de fin (End) a algún espacio del mapa y colóquela encima del bloque New. El bloque New se colocara debajo del bloque End dentro del mapa automáticamente y tiene un link con el bloque Disconnect. Cuando se ejecuta la aplicación y esta termina, el bloque de fin (End) reinicia la aplicación y regresa con un resumen del bloque de inicio (Start). 5.2.5 Ejecutar una Aplicación del Mapa de Flujo Desde el menú principal esta la pestaña de Run, seleccionar Run . ADL. 170 Facultad de Ingeniería UNAM Figura 19 Ejecutar una aplicación Studio compila la aplicación. Figura 20 Compilación Si el proceso de compilación es exitoso comienza a correr las rutinas del ADL y cuando termina de compilar arroja el Simulador de Teléfono (Simulated Phone) sino tiene instalada y configurada una tarjeta de telefonía Tarjeta Intel® Dialogic®: Con esta tarjeta se puede hace llamadas de voz. Si esta usando un simulador de línea telefónica como el SK-101, use el teléfono de su simulador y presione el botón Ring. Si esta usando una extensión de PBX, utilice un teléfono de escritorio y marque la extensión. Si esta usando una línea de la empresa marque ese número de línea desde otro teléfono. Simulated Phone: Haga clic en el botón de Ring, este simula una llamada a la tarjeta de voz. Figura 21 Simulated Phone 171 Facultad de Ingeniería UNAM La aplicación contestara y desplegara algunas sugerencias antes de colgar. Se puede hacer otra llamada, contestar otra aplicación y un nuevo mensaje. Para detener una aplicación que esta corriendo, vaya el menú principal del ADL Studio, al menú de Run y seleccione Stop Runnning. Figura 22 Parar una aplicación 5.2.6 Bloques de la aplicación del IVR 5.2.6.1 Bloque Un Bloque es un elemento básico en ADL Flowcharter. Un bloque realiza una acción tal como “llamada en espera”, “marcar un numero”, etc. Hay Bloques especiales e indispensables como "Start" and "End", inicio y fin, estas marcan donde comienza y donde termina la aplicación, esta puede reiniciarse y esperar la próxima llamada. Los Bloques son insertadas de diferentes formas al mapa de flujo: haciendo clic en el icono del bloque en la barra de herramientas; arrastrando el icono del bloque hacia el mapa de flujo; seleccionando un bloque del menú de inserción. 5.2.6.2 Nombre de un Bloque 172 Facultad de Ingeniería UNAM Se puede cambiar el nombre de la etiqueta del bloque. La etiqueta del blque deben cumplir las siguientes reglas: El nombre del bloque debe ser único. El nombre no puede exceder de 127 caracteres El primer carácter del nombre puede ser cualquier carácter de estos: A-Z, a-z o ( _ ) Los caracteres consecutivos pueden ser números o letras: A-Z, a-z, 0-9 o ( _ ) Los nombres de los bloques no pueden ser iguales a ninguna palabra clave del ADL. 5.2.6.3 Links Un link es la línea con flecha que conecta dos bloques. Cuando un bloque se ejecuta y esta termina mediante el link le da inicio al bloque que tiene directamente conectado. Los links definen el flujo de la aplicación. Figura 23 Links Si un link esta oculto, esta parece dejar el bloque y conectarla mediante una flecha verde. Figura 24 Link oculto Se puede conectar un link con un bloque seleccionando el link con el ratón y arrastrándolo hacia el bloque con la que se desea conectar o dándole doble clic y seleccionar el bloque con la que se desea conectar. Cuando se mueve un link, se puede cambiar solo el destino. Si se desea cambiar la fuente del link se debe borrar el link actual y arrastrar el link de la nueva fuente hacia el destino. Se pueden ver las propiedades del link dándole doble clic o clic con botón derecho del ratón y seleccionar Propiedades. Se pueden arrastrar los links a cualquier bloque del mapa. Los links aparecen debajo de cada bloque y esta determina la corriente de los bloques. Los link pueden ponerse en cualquiera de los tres lados del bloque: arriba o a los costados donde se coloque es indiferente. 173 Facultad de Ingeniería UNAM Figura 25 Posición de los links Los bloques que llevan una ramificación, tales como el bloque de Error y Branch, los link salen del fondo del bloque y dan salida y/o entrada a los lados. Figura 26 Ramificaciones 173 Facultad de Ingeniería UNAM CAPÍTULO 6. DESCRIPCIÓN DE LA APLICACIÓN DE IVR Nombre: Correo de voz. Propósito. Correo de voz es una aplicación simple que demuestra las características de un sistema de correo de voz. Requisitos: Administrador de recursos (Resource Manager) el cual es un recurso que viene incluido en la instalación del software CTADE, el cual debe configurarse previamente. Esta aplicación puede correr usando el Simulated Phone que viene incluido en el software CTADE. Si se desea no usar el Simulated Phone se necesita lo siguiente: - La tabla con el Trunk y Media Resources, por ejemplo, D/41E-SC para la parte analógica o D/240SC-T1 para la parte digital. (Nota: si usted instala las tablas después de la instalación del CTADE, se necesita reconstruir el perfil del CTADE. - Una conexión de Oficina Central (CO) o un simulador de CO. - Un teléfono. 6.1 Descripción de Bloques 6.1.1. Llamada en espera. Menu: Insert | Telephony | Wait for Call Espera indefinidamente una llamada entrante, cuando entra una llamada al bloque la toma y descuelga. 174 Facultad de Ingeniería UNAM Figura 1 Llamada en espera 6.1.2. Condición lógica Menu: Insert | Branch Este bloque tiene dos links que la une con dos bloques, la decisión de ir a alguna de estas depende si la expresión especificada es verdadera o falsa. La expresión es considerada verdadera si no esta vacía o no es cero. Una expresión consiste en un valor izquierdo, un operador de comparación y un valor derecho. Los valores que se pueden usar son: definir una variable, variables del sistema, campos de la base de datos o expresiones del ADL. Se requiere de: un valor izquierdo para compararlo contra el valor correcto; un valor derecho que especifica el valor correcto a comparar; y una condición de comparación especifica. 175 Facultad de Ingeniería UNAM Figura 2 Condición lógica 6.1.3 Play Menu: Insert | Telephony | Play El bloque Play toca un sonido en la línea del teléfono. Figura 3 Play Prompt: especifica el mensaje de entrada, de salida, etc que va a ser tomado una vez que una llamada entra y esta es tomada o cuando esta es terminada. Termination Digits: se especifica con cuales dígitos se va a terminar la ejecución del tono. 176 Facultad de Ingeniería UNAM 6.1.4 Buzón correo Pide el número del buzón y después la contraseña de ese buzón. Abre el buzón con la comprobación de la contraseña. Este bloque es llamado para saber el buzón actual y comprobar cual buzón le corresponde antes de llamar a los bloques que contiene la información sobre este (SpeakStatus, etc.). El valor que regresa este bloque es el numero de buzón que se ha seleccionado o no regresa nada si ningún buzón a si seleccionado, el valor que regresa se recibe por la variable especificada en la tabla de Variables. Si se selecciona “*” este cancela la operación y manda un error, para ver el valor que regresa debe ir a la selección del buzón. Figura 4 Ramificaciones 6.1.5 Otros El bloque Otros es un bloque predefinido de los casos del bloque de Switch. Si ningún valor seleccionado coincide con los valores de las opciones del bloque de Caso, entonces la aplicación continua a lo largo del bloque Otros. 177 Facultad de Ingeniería UNAM Figura 5 Otros 6.1.6 Switch Menu: Insert | Switch/Case El bloque de switch tiene varias ramificaciones estas para los valores de los diferentes casos, los valores de cada caso se especifican en la tabla del switch y cada uno de estos generar un bloque subsecuente. Figura 6 Switch 178 Facultad de Ingeniería UNAM 6.1.7 Case El bloque de caso contiene una posible rama u opción del switch o del menú. Cada bloque de caso contiene un valor constante. Esta constante es comparada con las variables definidas en el switch precedente. Si el valor de la constante coincide con las variables del switch, el flujo de la aplicación procede a lo largo de camino de los bloques que tengan link con este caso. Si ninguna de la variables del bloque es compatible con al menú del switch, entonces el flujo de la aplicación continua a lo largo del caso de error. Para el switch, si ninguno de los valores de los bloques son compatibles con las variables de este el flujo de la aplicación sigue el camino del bloque otros. Figura 7 Case 6.1.8 Menu Menu: Insert | Telephony | Menu El bloque de Menú es un bloque de telefonía importante. Esta presenta una lista de opciones, a cada opción la pone un digito de identificación con el cual va a responder, de acuerdo con lo dígitos los valida y los ramifica. Se puede especificar el mensaje que se desea escuchar en cada uno, cuales son los dígitos de las opciones validas y cual mensaje escuchar si la opción no es valida. Si se realizan 3 opciones inválidas el menú tomara el camino del error. El bloque de Menú siempre esta seguida del bloque de caso, una para cada elección disponible del menú. El resultado de las opciones seleccionadas del menú se guarda en el sysDigitBuffer. 179 Facultad de Ingeniería UNAM Figura 8 Menú 6.1.9 Error El bloque de Caso muestra una posible ramificación en el menú, un bloque para cada Caso y un bloque de Error. Si se introduce algún dígito que no es valido para el menú, la aplicación fluye a través el Caso de Error que se encuentra en esa misma ramificación. Los dígitos que son validos son especificados en el bloque de Menú en la tabla de Aceptar Dígitos. Figura 9 Error 6.1.10 Crear nuevo buzón 180 Facultad de Ingeniería UNAM Este bloque es para crear un nuevo buzón. El usuario puede escoger introducir un numero para el nuevo buzón, si se quiere que se le asigne un numero automáticamente debe de presiones “#” o si se desea abortar debe seleccionar “*”. El bloque devuelve el número del buzón creado o un código de error si este fue erróneo. El valor que regresa se recibe por la variable especificada en la tabla de variables. Figura 10 Crear buzón 6.1.11 Borrar buzón El bloque borrar buzón anula un buzón existente. El usuario debe introducir el número del buzón que desea borrar, si el buzón seleccionado no existe automáticamente se regresa, si desea cancelar presione “*”. Este bloque no regresa ningún valor. 6.1.12 Cambiar Contraseña En este bloque se puede cambiar la contraseña de su buzón, para cambiarla se debe introducir la nueva contraseña dos veces de la misma manera de otra forma no se actualiza la información. Este bloque no regresa ningún valor. 6.1.13 Estado del buzón El bloque de estado del buzón indica cuantos mensajes han entrado nuevos, cuantos mensajes tiene el buzón o que no hay ninguno. Este bloque no regresa ningún valor. 181 Facultad de Ingeniería UNAM 6.1.14 Revisar Nuevos Mensajes Este bloque permite revisar la lista de los mensajes nuevos entrantes uno por uno. Este bloque tiene la opción de guardar, borrar, repetir o enviar cada uno de los mensajes. 6.1.15 Revisar Mensajes Guardados Con este bloque se pueden escuchar los mensajes guardados uno por uno. Este bloque tiene la opción de borrar, repetir y enviar cada mensaje. 6.1.16 Dejar Mensaje Este bloque permite dejar (grabar) un mensaje en el buzón, debe tener el numero del buzón. 6.1.17 Registrar Saludo Este bloque puede registrar mensajes de saludos para su buzón. El mensaje de saludo es el primero que se despliega antes de dejar un mensaje en el buzón. Se puede restringir el número de intentos que alguien tiene para grabar un saludo antes de generar un error. 6.1.18 Desconectar llamada Menu: Insert | Telephony | Disconnect Call El bloque desconectar llamada desconecta la llamada en curso poniendo la línea telefónica en colgado. Esto termina la llamada en curso. 182 Facultad de Ingeniería UNAM Figura 11 Desconectar llamada 6.1.19 Dejar Pendiente Menu: Insert | Telephony | Hangup Catch Cuando en una conexión remota se cuelga esta, la aplicación automáticamente salta al bloque de fin. Si se inserta el bloque Dejar Pendiente, la aplicación salta inmediatamente a este bloque. Este bloque es útil cuando se necesita hacer algo después de que se ha cortado la conexión. Por ejemplo si se necesita anotar en una base de datos cuando la llamada termino. Puede haber solo un bloque Dejar Pendiente en el mapa de flujo de su aplicación. 183 Facultad de Ingeniería UNAM 6.2 Diagrama de Flujo del IVR 184 Facultad de Ingeniería UNAM Figura 12 Diagrama de la aplicación 6.3 Ejecución del IVR 1. Antes de que pueda completar esta sección, debe asegurarse que esta instalado el CTADE en el sistema. 2. Desde el menú escoja: Programs | Intel CT ADE | ADL | Voicemail 3. Ejecute la aplicación de ADL Studio escogiendo: Run | Run VoiceMail.gvp 4. Una vez inicializada la aplicación, llame la aplicación. - Si usted esta usando el Simulated Phone, debe de pulsar el botón Ring. 185 Facultad de Ingeniería UNAM - Si usted no va a usar el Simutaled Phone, realice una llamada desde un teléfono a su sistema o use su simulador de CO para realizar la llamada. 5. Una vez que la aplicación recibe la llamada entrante, está contesta la llamada, entonces inicia las funciones de la aplicación siguiendo el camino que el usuario indica. Figura 13 Bienvenida al buzón de voz Se recibe una llamada entrante, la aplicación contesta la llamada. Se escucha un mensaje de bienvenida, terminado este mensaje entra al bloque “OpenMailbox” le pide el número de buzón y su password. Para probar esta aplicación use el número de buzón y password siguiente: Boxnum Password ------ -------- 10000 0000 23646 1234 El bloque “IsMailBoxValid” (condición lógica) revisa que el número de buzón y el password que fueron introducidos sean correctos: Si estos no son correctos entonces se va directamente a la célula “Goodbye” donde se escucha un mensaje de despedida y esta pasa al bloque “Disconnect1” la cual termina con la llamada en curso poniendo la línea telefónica en colgado. Si el número de buzón y password son correctos entonces pasa al bloque “CheckBoxNumber” la cual despliegas tres opciones: “AdminCase”,”NoBoxEnteredCase” y ”NormalBoxCase”, de las cuales el usuario puede seleccionar una de ellas. Figura 14 Crear buzón 186 Facultad de Ingeniería UNAM 1. Si se selecciona la opción “AdminCase” entra al menú de administración de su buzón, la cual despliega las opciones que el usuario tiene: Figura 15 AdminCase Opción 1: “CreateMailboxChoice” en este bloque el usuario puede crear un nuevo buzón. Si se selecciona esta opción la aplicación lo envia al bloque de “CreateMailbox” donde se especificaran los características del nuevo buzón de voz, el usuario puede escoger introducir un numero para el nuevo buzón, si se quiere que se le asigne un numero automáticamente debe de presiones “#” o si se desea abortar debe seleccionar “*”. La célula devuelve el número del buzón creado o un código de error si este fue erróneo. El valor que regresa se recibe por la variable especificada en la tabla de variables. Opción 2: “DeleteMailboxChoice” en este bloque el usuario puede borrar un buzón que haya creado anteriormente. Si selecciona esta opción lo envía al bloque “DeleteMailbox” donde anula un buzón existente. El usuario debe introducir el número del buzón que desea borrar, si el buzón seleccionado no existe automáticamente se regresa, si desea cancelar presione “*”. Opción 3: “ChangePasswordAdminChoice” en esta opción se puede cambiar el password de algún buzón que tenga creado. Si se selecciona esta opción va directamente al bloque “ChangePasswordAdmin” para cambiarla se debe introducir la nueva contraseña dos veces de la misma manera, de otra forma no se actualiza la información. Opción 4: “HangupAdminChoice” con esta opción el usuario termina de utilizar este menú. Cuando se selecciona esta opción la aplicación lo envía al bloque “Goodbye” que envía un mensaje de despedida y termina la aplicación. Si el usuario selecciona algún dígito que no es valido para el menú, la aplicación fluye a través el Caso de Error que se encuentra en esa misma ramificación. Este bloque envía al usuario a bloque de despedida y termina con la aplicación. 2. Si selecciona la opción “NoBoxEnteredCase” el usuario indica que no va a realizar ningún cambio ni va a utilizar si buzón de voz y lo envía directamente al bloque de despedida y termina la aplicación. 187 Facultad de Ingeniería UNAM Figura 16 Despedida 3. Si el usuario quiere revisar su buzón, quiere escuchar, borrar, repetir y enviar sus mensajes, entonces debe selecciona la opción “NormalBoxCase”, este bloque lo envía al bloque de “SpeakStatus” la cual despliega el estado del buzón, le indica cuantos mensajes han entrado nuevos, cuantos mensajes tiene el buzón o que no hay ningún mensaje. Una vez que termina de indicar el estado actual del buzón pasa a la célula “MainMenu” la cual contiene el menú de opciones que el usuario tiene que son: “HangupChoice”, “ListenToNewMessagesChoice”, “ListenToSavedMessagesChoice”, “SendMessageChoice” y “PersonalOptionsChoice”. Figura 17 Menú buzón Opción1: “ListenToNewMessagesChoice” con esta opción lo envía al bloque de “ListenToNewMessages” donde podrá revisar la lista de los mensajes nuevos entrantes uno por uno, también puede guardar, borrar, repetir o enviar alguno de los mensajes que se encuentren en la lista. Una vez que termina de utilizar esta opción se regresa al bloque de “MainMenu” donde puede una vez mas revisar las opciones y seleccionar otra. 188 Facultad de Ingeniería UNAM Opción 2: “ListenToSavedMessagesChoice” esta opción lo envía al bloque “ListenToSavedMessages” donde el usuario puede revisar sus mensajes que tenga guardados, en esta opción también puede borrar, repetir y/o enviar algún mensaje. Una vez que termina de utilizar esta opción se regresa al bloque de “MainMenu” donde puede una vez mas revisar las opciones y seleccionar otra. Opción 3: “SendMessageChoice” al seleccionar esta opción lo envía al bloque de “SendMessage” donde el usuario puede grabar un mensaje nuevo. Una vez que termina de utilizar esta opción se regresa a la célula de “MainMenu” donde puede una vez mas revisar las opciones y seleccionar otra. Opción 4: “PersonalOptionsChoice” con esta opción el usuario puede modificar las características personales de su buzón. Si es seleccionada esta opción lo envía directamente al bloque “PersonalOptionMenu” donde se desplegara un nuevo menú: “BackToMainMenu”, “RecordGreetingChoice” y “ChangePasswordChoice”. Figura 18 Personalizar Buzón I. “BackToMainMenu” con esta opción puede regresar al menú principal. II. “RecordGreetingChoice” en esta opción puede grabar un nuevo mensaje de saludo, el mensaje de saludo es el primero que se despliega antes de dejar un mensaje en el buzón. Se puede restringir el número de intentos que alguien tiene para grabar un saludo antes de generar un error. Una vez que termina de utilizar esta opción se regresa al bloque de “PersonalOptionsChoice” donde puede una vez mas revisar las opciones y seleccionar otra. III. “ChangePasswordChoice” en esta opción el usuario puede cambiar su password. Para cambiar su password se debe introducir la nueva contraseña dos veces de la misma manera, de otra forma no se actualiza la información. Una vez que termina de utilizar esta opción se regresa al bloque de “PersonalOptionsChoice” donde puede una vez mas revisar las opciones y seleccionar otra. IV. Si el usuario selecciona alguna opción que no es valida entonces la aplicación se va directamente a la opción de “InvalidChoicePersonal” donde lo envía al bloque de “Goodbye” y termina la aplicación. 189 Facultad de Ingeniería UNAM Opción 5: “HangupChoice” Si el usuario selecciona esta opción entonces termina con la aplicación, lo envía al bloque de despedida “Goodbye” la cual termina la aplicación. Figura 19 Colgado Si el usuario selecciona algún dígito que no es valido para el menú, la aplicación fluye a través el Caso de Error que se encuentra en esa misma ramificación. Este bloque envía al usuario al bloque de despedida y termina con la aplicación. 6. Cuando se finalice se deberá escoger: Run | Stop Running Para que el ADL Studio deje de ejecutar la aplicación y entonces se puede salir de la aplicación Facultad de Ingeniería UNAM CONCLUSIONES La implementación de un IVR con base en el uso de la Voz sobre IP es una alternativa tecnológica viable que permite el desarrollo de aplicaciones a un bajo costo comparado con la utilización de IVRs utilizando equipos de alto costo que en un mediano plazo de tiempo no puede desempeñar más funciones y es limitado en cuanto a escalabilidad como lo son los equipos PBX. Las caracterísisticas requeridas del elemento procesador han llevado a crear arquitecturas especialmente diseñadas para acelerar los cálculos matemáticos intensos utilizados en la mayoría de sistemas de procesamiento de señales en tiempo real. La tendencia es que vayan apareciendo procesadores (tanto DSP’s como microprocesadores) con arquitecturas que estén cada vez más adaptadas a las particularidades de las diferentes aplicaciones. En este sentido, aunque a nivel de prestaciones varios tipos procesadores puedan reunir los requisitos necesarios exigidos por una aplicación, otras consideraciones como el costo o el consumo pueden ayudar a disminuir el número de posibles candidatos. Con la implementación que se propone en este trabajo se presenta un caso de implementación que es accesible para niveles económicos no muy altos ya que en la comparación del uso de microprocesadores contra los procesadores de señales digitales, los primeros, llevan la ventaja de que pueden ser escalables, de mucho menor costo y de fácil adquisición además de que tienen un crecimiento evolutivo de mayor rapidez que los procesadores digitales de señales (DSPs) Las microarquitecturas varían de generación en generación. Los métodos para optimizar en uno pueden no ser convenientes, y pueden degradar posiblemente el funcionamiento de las aplicaciones, para otro. Por ejemplo, la instrucción que de doble instrucción para la Microarquitectura P5 no es benéfica para las microarquitecturas P6 o NetBurst. Los algoritmos predictivos de decisión para cada procesador difieren entre microarquitecturas, y las recomendaciones de optimización se deben tomar en consideración al crear ciclos y declaraciones condicionales. Éstos son solamente algunos ejemplos de las pautas de la optimización a tener presente al desarrollar una aplicación. Los manuales de referencia que describen la microarquitectura básica, el sistema de instrucciones, y la programación de sistema están disponibles en cada generación de procesadores Intel. Un manual de optimización se encuentra también disponible por microarquitectura. Da los detalles de lo que pueden hacer los ingenieros a su código para mejorar el funcionamiento para cada generación de procesadores. Los ingenieros deben estar enterados de cómo se ejecutan las instrucciones, y de cómo escribir su código para conseguir el funcionamiento completo beneficio para la última familia de procesadores. Las actualizaciones a la familia de procesadores de escritorio de Intel se están haciendo continuamente. Las modificaciones se centrarán alrededor de los asuntos que hemos discutido hasta ahora, y quizás en otras áreas también. Los ingenieros encontrarán nuevas ventajas al aumentar la frecuencia, y el rendimiento de procesamiento total para los procesadores de la siguiente generación. La información detallada con respecto los asuntos discutidos y a otras características específicas de arquitectura se puede encontrar en la bibliografía y referencias electrónicas. Los diseñadores de compiladores y de lenguajes, y los arquitectos deben explorar posibilidades y superar carencias. Algunos temas serán resueltos por la industria conforme la nueva carga favorezca la inversión y el riesgo. Otros, como la extracción automática del paralelismo por el compilador, posiblemente serán afinados en las Universidades y transferidos a la industria. Facultad de Ingeniería UNAM Así pues, la intención de este trabajo fue la de proponer y aportar la idea de elaborar un sistema de aplicación IVR que sea de bajo costo, que tiene un gran alcance de usuarios y de alternativas de desenvolvimiento gracias al auge de la Voz sobre IP, que puede ser escalable y multifuncional, adquiriendo software que facilita el desarrollo de las aplicaciones y el procesamiento como lo es CT_ADE y HMP respectivamente. De esta forma las aplicaciones que se pueden llevar a cabo pueden ir desde la elaboración de un correo de voz propio, hasta la el desarrollo de menús complejos y jerárquicos tan grandes y de alta información para empresas grandes del tipo bancarias, industriales, académicas y de telecomunicaciones con un alcance mundial, tan factible como el hecho de que esa empresa cuente con un equipo de cómputo. Con lo dicho en los apartados anteriores hemos expuesto ideas sobre los conceptos actuales y algunas tendencias concernientes a la evolución multimedia. En una valoración global podríamos intentar clasificar a las extensiones multimedia según su utilidad, generalidad, complejidad, etc., pero mientras no exista un soporte software adecuado y un juego de pruebas general y ampliamente aceptado será complicada su comparación. Su utilidad dentro y fuera de las aplicaciones multimedia está por demostrar y como las aplicaciones (y quizás las extensiones) continúan evolucionando, habrá que esperar a que el tiempo y los usuarios se pronuncien sobre ello. Todo parece indicar que las extensiones multimedia han partido de la industria. La universidad no ha estado nunca separada del campo multimedia pero en este tema le ha tomado la delantera la industria, más motivada por la evolución del mercado. La razón que justifica el uso del CTADE y HMP es que es un software de construcción de bloques específicamente diseñado para entregar tecnologías características de Intel NetStructure, de tal forma que es mas sencillo de usar y más fácil de aprender que las interfaces de hardware convencionales, este software realiza tareas de procesamiento sobre servidores de propósitos generales basándose en la arquitectura Intel, sin utilizar hardware especializado, el costo que se genera al cliente es únicamente por los recursos que necesita. El software provee servicios de IP media que pueden ser usados para construir servidores de IP de la siguiente generación flexibles, escalables y de menor costo. Este trabajo esta enfocado para ser implementando por pequeñas y medianas empresas, pymes, que buscan mejorar la calidad de su servicio sin invertir en hardware muy costoso ya que solo se requiere de una PC con las características que hoy en día ofrecen los proveedores de las mismas; requiere una conexión a Internet la cual hoy es muy fácil de obtener y a un costo muy accesible; y adquirir la licencia del software de HMP, el costo de ésta es solo por los recursos que el usuario requiera. La principal razón es la automatización de los procesos de atención de llamadas, optimizando los recursos humanos, utilizándolos únicamente cuando la llamada requiera un trato personal. Con su consiguiente ahorro de gastos por parte de la empresa, crear una imagen más profesional e innovadora de la empresa mediante la implantación de nuevos servicios de atención, rápido acceso a la información. Facultad de Ingeniería UNAM GLOSARIO 10BaseT 10BaseT es un estándar de IEEE (802.3) para el funcionamiento de redes (LANs) Ethernet de 10 Mbps (megabits por segundo) con cables de par trenzado y un concentrador de conexión. 2.5G La tecnología celular de generación 2.5 hace posible el aumento del ancho de banda de datos disponible en comparación con las redes celulares 2G actuales. Los operadores celulares pueden implementar la tecnología 2.5G mediante actualizaciones de software en la red, mientras que la tecnología 3G precisa la instalación de hardware nuevo. Hasta la fecha, el despliegue de 2.5G más común es General Packet Radio Service o GPRS. 3G Las redes celulares analógicas son la tecnología de comunicaciones móviles de primera generación. PCS digital es la segunda generación, la cual es la actual. La tercera generación (3G) emergente ofrecerá un mayor ancho de banda, con un máximo de 384 Kbs cuando un dispositivo es estacionario o a velocidad de peatón, 128 Kbps en un automóvil y 2 Mbps en aplicaciones fijas. 3G funcionará con las interfaces inalámbricas a través del aire como EDGE y GSM. 802.11 802.11 es una interfaz a través del aire entre un cliente inalámbrico y una estación base; una familia de especificaciones desarrolladas por IEEE para la tecnología de LAN inalámbrica. 802.11b hace posibles las transmisiones a 11 Mbps en el ancho de banda de 2,4 GHz. El estándar 802.11a emergente utiliza el ancho de banda de 5 GHz, el cual tiene menos uso, y transmite los datos de forma inalámbrica a 54 Mbps. 802.11a 802.11a describe el estándar de red inalámbrica para una WLAN que funciona en la banda de radio de 5 GHz (ISM, la banda de frecuencia Industrial, científica y médica). Las WLAN basadas en 802.11a pueden obtener una velocidad máxima de 54 Mbps, lo que es una velocidad de datos casi cinco veces más rápida que el estándar 802.11b y pueden manejar más tráfico que las redes basadas en 802.11b. 802.11b 802.11b (conocido habitualmente como "Wi-Fi") describe el estándar de red inalámbrica de IEEE para una WLAN que funciona en la banda de radio de 2.4 GHz (ISM, la banda de frecuencia Industrial, científica y médica). Las WLAN basadas en 802.11b son mucho más habituales que las redes 802.11a o 802.11g y pueden conseguir una velocidad de datos máxima de 11 Mbps por segundo a una máxima distancia de aproximadamente 90 metros. 802.11b fue la primera tecnologia WLAN que se ofreció a los consumidores y hizo posible la creación de redes inalámbricas instantáneas en las oficinas y los hogares. Los dispositivos certificados por la Alianza Wi-Fi llevan el logotipo oficial de Wi-Fi. 802.11g 802.11g es un estándar propuesto que describe un método de red inalámbrica para una WLAN que funciona en la banda de radio de 2.4 GHz (ISM, la banda de frecuencia Industrial, científica y médica). Mediante la tecnología OFDM (Orthogonal Frequency Facultad de Ingeniería UNAM Division Multiplexing), las WLAN basadas en 802.11g podrán obtener una velocidad máxima de 54 Mbps. Los equipos compatibles con 802.11g, tal como los Puntos de acceso inalámbricos, podrán ofrecer la conectividad WLAN simultánea para los equipos 802.11g y 802.11b. Acceso telefónico Conexión de comunicación entre dispositivos a través de una red telefónica estándar, también se conoce como Servicio telefónico tradicional (POTS). ACPI (Interfaz Avanzada de Configuración y Energía) Ubicada en el bus de manejo del sistema, la interfaz ACPI hace posible el modo de espera de baja potencia y conserva la energía cuando el sistema está inactivo. Adaptador de bus Tarjeta especial que permite el uso de aparatos de radio de tarjeta PC en equipos de desktop. Se instala en la ranura PCI o ISA de los equipos. Algunas empresas ofrecen aparatos de radio de tarjeta PCI o ISA de una sola pieza, los cuales se instalan directamente en una ranura PCI o ISA disponible. Adaptador de medios digitales Dispositivo que permite que un PC doméstico distribuya contenido digital de forma inalámbrica, como fotografías y música, a una red de dispositivos electrónicos de consumo conectados en una red, como televisores y estéreos. Adaptador de red USB inalámbrico Un adaptador de red USB inalámbrico es una adaptador de red inalámbrico que conecta un equipo a una red inalámbrica mediante el puerto USB del equipo, en lugar de enchufarse en el CardBus o el bus PCI (véase también Tarjeta PC inalámbrica). El adaptador de red USB inalámbrico proporciona la misma funcionalidad que la tarjeta PC inalámbrica o el adaptador de red inalámbrico interno, pero se instala más rápido y se puede mover de un equipo a otro. Administración de la energía Indica la distribución eficaz de la energía a los distintos componentes de un sistema. Tiene una importancia particular en los dispositivos portátiles que dependen de la batería. Al reducir la energía dirigida a los componentes que no se utilizan, un sistema con una buena administración de la energía puede duplicar o triplicar la duración de la batería. ADSL (Asymmetric Digital Subscriber Line ó Línea de Abonado Digital Asimétrica) Es una tecnología que, basada en el par de cobre de su línea telefónica normal, la convierte en una línea de alta velocidad. Emplea los espectros de frecuencia que no son utilizados para el transporte de voz, y que por lo tanto, hasta ahora, no se utilizaban. Abriendo de esta forma un canal de datos, que permite el transporte a alta velocidad, permitiendo a su vez (gracias a esa separación datos/voz), poder aplicar una tarifa plana para ese transporte de datos (los de Internet). AGP (Puerto de gráficos acelerado) Facultad de Ingeniería UNAM El Puerto de gráficos acelerado (AGP) está ubicado en la motherboard y es un puerto dedicado de alta velocidad para transferir bloques grandes de datos entre el controlador de gráficos de un PC y la memoria del sistema. AI (Inteligencia artificial) La Inteligencia artificial (AI) se utiliza en los juegos para funciones que van desde oponentes informáticos que se comportan de forma convincentemente humana hasta unidades automatizadas que realizan tareas de forma realista. Alcance Distancia física a través de la cual una red inalámbrica funciona de forma fiable. La mayoría de los sistemas Wi-Fi admiten un alcance de cien pies o más. Según el entorno y el tipo de antena utilizado, las señales Wi-Fi pueden tener un alcance de hasta una milla. Algoritmo Procedimiento, regla o fórmula que se utiliza para resolver un problema. En esencia, los programas informáticos son algoritmos complejos que realizan una serie de pasos para llegar a un resultado específico. Analizador de rendimiento Se utiliza para identificar las áreas del código de software que utilizan una cantidad excesiva de ciclos de CPU. Una vez identificadas, se pueden optimizar dichas áreas a fin de que se ejecuten de forma más eficaz. El analizador de rendimiento Intel® VTune™ aumenta el desempeño de las aplicaciones que se ejecutan en los procesadores Intel más recientes. ALU (Unidad lógica aritmética) Parte de la CPU que realiza cálculos aritméticos, tales como la suma y la multiplicación, al igual que todas las operaciones de comparación. Se conoce como la Unidad lógica aritmética. ANALÓGICO En la industria de las telecomunicaciones y el cómputo siginica todo aquel proceso entrada/salida cuyos valores son continuos. Algo continuo es todo aquello de puede tomar una infinidad de valores dentro de un cierto limite, superior e inferior. ANCHO DE BANDA (BW) El ancho de banda se refiere a un espacio en el eje de frecuencias del espectro electromagnético utilizado por un transmisor. En la práctica mide su capacidad de comunicación o velocidad de transmisión de datos. El ancho de banda de una señal transmitida de comunicaciones es una medida del rango de frecuencias que ocupa la señal. El término se usa también en referencia a las características de respuesta de frecuencia de un sistema de recepción de comunicaciones. Capacidad de transmisión de una red. El ancho de banda disponible depende de diversas variables, tales como la velocidad de transmisión de datos entre los dispositivos de la red, la sobrecarga de la red, la cantidad de usuarios y el tipo de dispositivo que conecta los equipos a la red. El ancho de banda es similar al diámetro de un conducto: entre más ancho es el conducto, mayor cantidad de agua fluirá cada segundo. Del mismo modo, Facultad de Ingeniería UNAM entre más amplio es el ancho de banda, más datos podrán transmitirse cada segundo. El ancho de banda 802.11b estándar especifica un ancho de banda de 11 Mbps (megabits por segundo); 802.11a y 802.11g brindan un ancho de banda de 54 Mbps (véase Bits por segundo). Antena de diversidad Sistema que utiliza dos antenas para optimizar la calidad de recepción y transmisión a la vez que reduce la interferencia. AP (Punto de acceso) Un punto de acceso inalámbrico es un concentrador que conecta varios clientes inalámbricos a una red local o a Internet. El punto de acceso puede ser un dispositivo de hardware autónomo o un equipo con un adaptador de red inalámbrico y el software apropiado. Los puntos de acceso inalámbricos están disponibles para 802.11a, 802.11b y banda doble 802.11 a/b (puntos de acceso con capacidad tanto para 802.11a como para 802.11b). Artefactos Distorsión de una señal, ya sea de vídeo o de sonido. ATM (Modo de Transferencia Asíncrono) Es una tecnología de conmutación que usa pequeñas celdas de tamaño fijo. Es asíncrono porque las celdas son transmitidas a través de una red sin tener que ocupar fragmentos específicos de tiempo en alineación de paquete, como las tramas T1. BIOS Una parte integral del PC, el BIOS (sistema básico de entrada/salida) es el programa que usa un microprocesador para arrancar el sistema después de que lo encienda. También administra el flujo de datos entre el sistema operativo del sistema y los dispositivos periféricos conectados. BPS (Bits por segundo) Medida de la velocidad de transmisión de datos a través de líneas de comunicación. Indica la cantidad de bits que se pueden enviar o recibir cada segundo. Con frecuencia, se confunden los bits con segundo (bps) con los bytes por segundo (Bps). Los "bits" se utilizan para medir la velocidad de transmisión y los bytes para medir la capacidad de almacenamiento. Ocho bits de datos equivalen a un byte. Por lo tanto, si una red inalámbrica opera a un ancho de banda de 11 megabits por segundo (11 Mbps o 11 Mbits/s), envía los datos a 1,375 megabytes por segundo (1,375 MBps). Bajo voltaje Procesadores que llevan el rendimiento Intel y prolongan la batería a una nueva clase de miniequipos portátiles muy delgados y ligeros. Banda ancha Facultad de Ingeniería UNAM Este término se aplica a la transmisión de datos de alta velocidad, tal como cable, ISDN (Red digital de servicios integrados) y DSL (Línea de suscripción digital). Las tecnologías de banda ancha ofrecen conexiones más rápidas a Internet que los servicios de acceso telefónico tradicionales. Los servicios de banda ancha brindan acceso de alta velocidad a Internet a hogares y empresas, a la vez que liberan las líneas telefónicas para el uso simultáneo tradicional de voz. Al utilizar un servicio de banda ancha en equipos portátiles y de desktop, los usuarios tienen acceso a alta velocidad a Internet, correo electrónico y más. Banda ancha de satélite Conexión de Internet inalámbrica de alta velocidad proporcionada por los satélites. Algunas conexiones de banda ancha de satélite son bidireccionales: descendiente y ascendente. Otras son unidireccionales: el satélite proporciona un enlace descendiente de alta velocidad y una conexión de acceso telefónico u otro sistema basado en la tierra proporciona el enlace ascendente a Internet. Bluetooth* Bluetooth es una tecnología de radio de corto alcance (2,4 GHz) que simplifica la comunicación entre los dispositivos de red y entre los dispositivos e Internet. También simplifica la sincronización de datos entre los dispositivos de red y otros equipos. Debido a que la tecnología Bluetooth no está diseñada para llevar cargas de alto tráfico, no es una tecnología apropiada para LAN o WLAN. Bus de sistema Conecta el procesador con la memoria principal y administra la transferencia de datos e instrucciones entre los dos componentes. El procesador Pentium® 4 admite el bus de sistema de desktop de mayor rendimiento de Intel al brindar 3,2 GB de datos por segundo hacia y fuera del procesador, lo cual equivale a tres veces el ancho de banda de los procesadores anteriores. Esto se logra a través de un esquema de señales físicas que cuadriplica la transferencia de datos a través de un bus de sistema con velocidad de reloj de 100 MHz y un esquema de buffer que permite las transferencias continuas de datos a 533 MHz. Byte Unidad de almacenamiento que puede alojar un solo carácter. La unidad más pequeña de información de un equipo es un bit. Un byte consiste de 8 bits consecutivos de información. La memoria se indica en términos de kilobytes (1.024 bytes), megabytes (1.048.576 bytes) y gigabytes (1.073.741.824 bytes). Cable cruzado Se utiliza para conectar dos equipos a una red sin necesidad de un concentrador. Los cables cruzados también son necesarios para conectar un módem de cable o de DSL a una puerta de enlace inalámbrica o punto de acceso. En lugar atravesar el cable en rutas paralelas entre los enchufes, las señales se "cruzan". Por ejemplo, en un cable de ocho alambres, una señal que entra en el pin uno de un extremo del cable sale por el pin ocho en el otro extremo. Facultad de Ingeniería UNAM Caché La caché es un bloque de memoria de alta velocidad donde se copia la información que es recuperada de la RAM. Este almacenamiento de instrucciones claves permite mejorar el desempeño en el procesador. Los procesadores Intel incorporan cachés de nivel 1 (L1) y nivel 2 (L2). La caché L2 es un área de memoria de alta velocidad que mejora el desempeño reduciendo el tiempo medio de acceso a la memoria. Vea también: Caché de seguimiento de la ejecución de nivel 1 y Caché de transferencia avanzada de nivel 2. Caché de nivel 1 sin bloqueo La memoria caché de nivel 1 (L1) es un mecanismo de almacenamiento de alta velocidad incorporado en la arquitectura de un microprocesador. La función sin bloqueo consiste de dos memorias caché L1 de 16 KB separadas, de las cuales una se utiliza para las instrucciones y la otra para los datos, a fin de brindar rápido acceso a los datos y las instrucciones utilizadas recientemente. Caché de seguimiento de la ejecución de nivel 1 Parte de la microarquitectura Intel® NetBurst del procesador Pentium® 4. Además de la caché de datos de 8 KB, el procesador Pentium 4 incluye una caché de seguimiento de la ejecución que almacena hasta 12 K de microoperaciones decodificadas en el orden de la ejecución del programa. Esto aumenta el desempeño, ya que se elimina el decodificador en el bucle principal de ejecución y se hace más eficiente el uso del espacio de almacenamiento de la caché, ya que no se almacenan las instrucciones que están ramificadas alrededor. Como resultado, se envía un gran volumen de instrucciones a las unidades de ejecución del procesador y se reduce el tiempo total requerido para recuperar desde predicciones erradas de ramificación. Caché de transferencia avanzada de nivel 2 (ATC) La Caché de transferencia avanzada 256 KB de nivel 2 (ATC) suministra un canal de transferencia mucho más alta de datos entre la caché de nivel 2 y el núcleo del procesador. Consiste de una interfaz de 256 bits (32 bytes) que transfiere datos en cada reloj del núcleo. Como resultado, el procesador Pentium® 4 de 1,50 GHz puede suministrar una razón de transferencia de datos de 48 GB/s. Esto se compara a una razón de transferencia de 16 GB/s en el procesador Pentium® III a 1 GHz. Las características de la ATC incluyen: No Bloqueo, velocidad plena, caché de nivel 2 incorporada en el chip, conjunto de asociación de 8 vías, bus de datos de 256 bits para la caché nivel 2, datos medidos entrando y saliendo de la caché a cada ciclo del reloj. CD/DVD (Disco compacto/Disco de vídeo digital o Disco versátil digital) Los CD se utilizan para almacenar información digital, tales como datos informáticos o de música digital. Los CD de sólo lectura ya contienen información almacenada en ellos, de modo que solamente se pueden leer o reproducir. No obstante, los CD de lectura y escritura pueden borrarse y se pueden grabar datos nuevos en ellos. Los DVD tienen mucha más capacidad que los CD para almacenar datos, con un mínimo de 4.7 gigabytes, lo que equivale al tamaño de una película. Moving Picture Experts Group (MPEG-2) se utiliza para comprimir y producir datos de vídeo de alta calidad (720 x 480 y 1280 x 760 a 60 marcos por segundo) que se guardan en DVD. CDMA (Acceso múltiple por división de códigos) Tecnología celular digital que utiliza técnicas de distribución de espectro. A diferencia de los sistemas rivales, tal como GSM, que utiliza TDMA, CDMA no asigna una frecuencia Facultad de Ingeniería UNAM específica a cada usuario. En su lugar, cada canal utiliza el espectro disponible completo. Las conversaciones individuales se codifican con una secuencia digital seudoaleatoria. CODEC (Codificador/Decodificador) Tecnología que codifica y decodifica datos. Los codecs más populares incluyen MPEG, Indeo y Cinepak para vídeo digital, y MP3 y mp3PRO para música digital. Es un algoritmo de compresión que transforma la voz análoga en una trama de bits digital y viceversa. CODER Parte codificadora de un Codec Chipset El chipset controla el sistema y sus capacidades. Todos los componentes se comunican con el procesador a través del chipset - es el centro de toda la transferencia de datos. El chipset usa el controlador DMA y el controlador de bus para organizar el flujo estable de datos que él controla. El chipset es una serie de chips acoplados directamente a la motherboard y normalmente es el segundo en tamaño después del procesador. Los chipsets están integrados (soldados en la motherboard) y no pueden ser actualizados sin una motherboard nueva. Coma flotante mejorada y Unidad multimedia Parte de la microarquitectura NetBurst® del procesador Intel® Pentium® 4. Un registro de coma flotante expandido de 128 bits y un registro adicional para el movimiento de datos mejoran el desempeño en las aplicaciones de coma flotante y multimedia. Ciclo de reloj La velocidad a la que el procesador puede ejecutar instrucciones se conoce como ciclo de reloj o velocidad de reloj. Esta velocidad se expresa en gigahertz (GHz), siendo 1 GHz el equivalente a mil millones de ciclos por segundo. Cuantas más rápido sea el reloj, más instrucciones podrá ejecutar la CPU por segundo. Clave de codificación La clave de codificación es una serie alfanumérica (letras y/o números) que permite que los datos se codifiquen y descodifiquen de modo que puedan ser compartidos con seguridad entre los miembros de una red. WEP (Privacidad equivalente a las redes cableadas) utiliza una clave de codificación que codifica automáticamente los datos inalámbricos salientes. En el lado del receptor, la misma clave de codificación permite que el equipo descodifique automáticamente la información para que pueda ser leída. Codificación Hufmann Algoritmo de compresión que reemplaza los caracteres y las cadenas de datos que se presentan con frecuencia con códigos más cortos. Cada trozo de información se lee dos veces, la primera vez para determinar la frecuencia con que aparecen los caracteres de datos en el texto y la segunda vez para realizar el proceso de codificación. Codificación WEP (Privacidad equivalente a las redes cableadas) Estándar utilizado para codificar transmisiones inalámbricas a fin de proteger los datos en tránsito. WEP provee conexiones seguras a los usuarios de entornos WLAN. WEP ofrece varios niveles de codificación, desde 40 bits hasta seguridad superior con codificación de Facultad de Ingeniería UNAM 128 bits. WEP debe activarse en el punto de acceso inalámbrico y en el adaptador de red cliente a fin de garantizar transmisiones codificadas. Código abierto Programa informático que se ha puesto a la disposición del público en general de forma gratuita. El propósito del software de código abierto es producir más productos útiles y libres de defectos que todos puedan utilizar. El concepto depende de verificaciones hechas por colegas a fin de eliminar los defectos en el código de los programas, el cual es un proceso que no utilizan los programas que se desarrollan y empacan de forma comercial. La Iniciativa de código abierto (OSI) verifica y certifica los programas de código abierto. Existe una lista de criterios rigurosos que incluyen un proceso que garantiza que nadie reciba regalías por el software y que no se niegue el acceso a los programas a ninguna persona, grupo o campo de esfuerzo. Coma flotante Los cálculos que utilizan un exponente numérico para indicar la ubicación de la coma decimal "flotante" se conocen como aritmética de coma flotante. Estos números tienen dos partes: una mantisa y un exponente. La mantisa indica los dígitos del número y el exponente indica la posición de la coma decimal. Compilador Herramienta de software que convierte (o compila) el código fuente sin procesar en lenguaje de máquina que los equipos entienden. Los compiladores Intel® tienen funciones adicionales que hacen que el código se ejecute de forma más eficaz y sacan provecho de la arquitectura Intel® NetBurst®. Concentrador Dispositivo de red que conecta varios equipos a una LAN para que puedan comunicarse entre sí, con el resto de la red y con Internet. Todos los usuarios conectados a un concentrador comparten el ancho de banda de red disponible (a diferencia de los conmutadores que ofrecen el ancho de banda completo a cada equipo). Concentrador de medios digitales PC doméstico potente, flexible y con muchas funciones, que se utiliza para almacenar contenido digital en el hogar, como fotografías digitales, sonido digital y vídeo personal, y para distribuirlo a dispositivos conectados en una red, como televisores y estéreos. Conmutador Dispositivo de red que conecta varios equipos a una LAN para que puedan comunicarse entre sí, con el resto de la red y con Internet. A diferencia del concentrador, los usuarios conectados a un conmutador no comparten el ancho de banda disponible ya que cada puerto del conmutador se ejecuta al ancho de banda completo del puerto. Los conmutadores permiten que varios equipos se conecten a la misma red sin perder velocidad de ancho de banda. CSMA/CA (Sistema de recuperación y prevención de colisiones) Método de acceso de medios empleado por 802.11 WLAN. Es un método de "escuchar antes de hablar" que reduce (pero no elimina) las colisiones causadas por la transmisión simultánea de varios aparatos de radio. 802.11 obliga la prevención de colisiones en lugar de la detección de las mismas, debido a que el estándar utiliza aparatos de radio semidúplex (capaces de transmitir o recibir, pero no ambos a la vez). A diferencia de los Facultad de Ingeniería UNAM nodos Ethernet cableados tradicionales, las estaciones WLAN no pueden detectar una colisión durante la transmisión. Si se produce una colisión, la estación transmisora no recibe un paquete de reconocimiento de la estación receptora. Debido a esto, los paquetes de reconocimiento tienen mayor prioridad que el resto del tráfico de la red. Tras completar la transmisión de datos, la estación receptora inicia la transmisión del paquete de reconocimiento antes de que cualquier otro nodo empiece a transmitir un paquete de datos nuevo. Todas las demás estaciones deben esperar durante un lapso de tiempo más largo y seudoaleatorio antes de transmitir. Si la estación transmisora no recibe un paquete de reconocimiento, espera una oportunidad subsiguiente para reintentar la transmisión. CSMA/CD (Sistema de recuperación y detección de colisiones) Método de gestión del tráfico que reduce el ruido de las redes Ethernet. El dispositivo de red transmite datos tras detectar un canal disponible. No obstante, si dos dispositivos transmiten datos al mismo tiempo, los dispositivos transmisores detectan una colisión y vuelven a transmitir tras un retraso aleatorio. Data Prefetch Logic (Lógica de Búsqueda Previa de Datos) Está funcionalidad anticipa la información necesaria por una aplicación y la precarga en la Caché de transferencia avanzada, aumentando consecuentemente el desempeño del procesador y la aplicación. Datagrama Término utilizado con frecuencia en las redes IP para hacer referencia a un paquete, el cual es una porción de un mensaje que se transmite a través de una red de conmutación de paquetes. Un datagrama es un fragmento de paquete que es enviado con la suficiente información como para que la red pueda simplemente encaminar el fragmento hacia el ordenador receptor, de manera independiente a los fragmentos restantes. Esto puede provocar una recomposición desordenada o incompleta del paquete en el ordenador destino. La estructura de un datagrama es: encabezado y datos. DCT (Transformación de coseno discreto) Proceso que convierte imágenes de tres dimensiones (3D) en dos dimensiones (2D) mediante el uso de un coeficiente de coseno discreto (DC) que examina la luminosidad de cada bloque de píxeles utilizado para formar una imagen. Por lo general, este proceso se utiliza en la compresión de imágenes MPEG y JPEG. DECODER Parte decodificadora de un Codec DHCP (Protocolo de configuración dinámica de host) Utilidad de software que permite que un servidor asigne direcciones IP de forma dinámica, a partir de una lista predefinida de dispositivos de red, y limite el lapso de tiempo que se utilizan dichas direcciones para que puedan reasignarse. Sin DHCP, los administradores de TI tenían que introducir de forma manual todas las direcciones de todos los equipos de la red. Al utilizar DHCP, cada vez que un equipo inicia una sesión en la red se le asigna una dirección IP automáticamente. Facultad de Ingeniería UNAM Deep Sleep Vea Deeper Sleep Deeper Sleep Funciona junto con la tecnología QuickStart en los procesadores Intel para equipos portátiles. Deeper Sleep es un modo de administración dinámico de la energía que suministra mayor vida a la batería. Este modo minimiza el consumo de energía de la CPU cuando detecta un período largo de inactividad del usuario, reduciendo la energía cuando está inactivo y volviendo rápidamente la CPU a un estado activo tan pronto como el usuario reasume el uso del PC. Reduce el voltaje del procesador por debajo del mínimo operacional manteniendo el estado del mismo. Deeper Sleep es funcionalmente idéntico al estado Deep Sleep pero a un voltaje 66% inferior. Desentrelazado Método que combina los campos pares e impares de un vídeo para crear un vídeo de exploración progresiva. La exploración progresiva brinda marcos completos en secuencia y es el proceso utilizado por PC y HDTV. Dial-up Línea de datos que permite a un usuario acceder por módem a una red o a una computadora. DIGITAL Proceso con valores de entrada/salida discretos. Algo discreto es algo que puede tomar valores fijos. El el caso de las comunicaciones digitales y el cómputo, esos valores son el CERO (0) o el UNO (1) o Bits (BInary DigiTs). Dirección IP Número de 32 bits que identifica a cada transmisor y receptor de información a través de Internet. La dirección IP consta de dos partes: un identificador de una red particular en Internet y un identificador del dispositivo particular (el cual puede ser un servidor o una estación de trabajo) dentro de esa red. Dispositivos cliente Los dispositivos cliente son dispositivos de usuario final. Los dispositivos cliente Wi-Fi incluyen tarjetas PC que se insertan en equipos portátiles, módulos mini-PCI integrados en equipos portátiles y dispositivos informáticos móviles, al igual que aparatos de radio USB y aparatos de radio Wi-Fi de bus PCI/ISA. Los dispositivos cliente por lo general se comunican con dispositivos concentradores, tales como puntos de acceso y puertas de enlace (véase Punto de acceso). DNS (Sistema de nombres de dominio) Programa de software que traduce las URL de Internet a direcciones IP mediante el acceso a una base de datos que se mantiene en un grupo de servidores de Internet. Cada sitio web tiene su propia dirección IP en Internet. No obstante, las direcciones IP se especifican en formato numérico. El programa DNS funciona en segundo plano y facilita la navegación en Internet con secuencias de caracteres alfabéticos con significado, en lugar de direcciones numéricas. Por ejemplo, los servidores convierten nombres como "misitioweb.com" en una dirección IP como 107.22.55.26. Facultad de Ingeniería UNAM DSP Procesador de señales digitales, es un sistema que altera el sonido original para otorgarle efectos "especiales"; adicionalmente también ofrece las funciones de un ecualizador. DSL (Línea de suscripción digital) Tecnología de ancho de banda que permite el acceso a Internet a alta velocidad desde el hogar o la oficina a través una línea telefónica estándar. DSL brinda una conexión a Internet continua que permite el uso simultáneo de PC y teléfono. EDGE Ambiente GSM de datos mejorado (EDGE, Enhanced Data GSM Environment) es una versión más rápida del servicio inalámbrico GSM. Éste permite que los datos viajen a velocidades de hasta 384 Kbps en una banda ancha. E/S (entrada/salida) Describe un programa, operación o dispositivo que transfiere datos a un PC y desde éste, hacia un dispositivo periférico o desde éste. Por cada entrada existe un salida. Algunos dispositivos son de sólo entrada, como los teclados y ratones, mientras que otros son de sólo salida, como las impresoras. La transferencia de datos del procesador a la memoria, las ranuras de expansión y la motherboard, y viceversa, también se conoce como E/S. ESSID (Identificador de conjunto de servicios ampliado) Nombre de identificación de una red inalámbrica 802.11. Al especificar el ESSID correcto en la configuración de clientes, se garantiza la conexión a la red inalámbrica debida en lugar de otra red dentro del alcance (véase SSID). El ESSID también se llama nombre de red, red preferida, SSID o área de servicio de LAN inalámbrica. Ejecución Dinámica Avanzada Parte de la microarquitectura NetBurst® del procesador Pentium® 4. El algoritmo mejorado de predicción de ramificaciones acelera el flujo de trabajo hacia el procesador y ayuda a compensar la canalización más profunda. La ejecución especulativa muy profunda y fuera de orden permite al procesador ver 126 instrucciones en el vuelo y manejar hasta 48 cargas y 24 almacenamientos en la canalización. Un buffer ramificación de destino de 4 KB almacena más detalles en el historial de ramificaciones pasadas, reduciendo las predicciones de ramificaciones imprecisas por aproximadamente 33% (en comparación con la microarquitectura P6). Enmascaramiento Este término significa "cubrir" y es lo que suced4e cuando un sonido alto se mitiga con uno bajo. Éste último se enmascara. Enrutamiento Consiste en la capacidad del ACD, del marcador Predictivo, o el IVR de dirigir las llamadas entrantes a un agente determinado basado en una serie de parámetros, entre Facultad de Ingeniería UNAM ellos: su experiencia, especialidad, tiempo de ocio o el historial del número telefónico que llama, entre otros. Enrutador Dispositivo que envía paquetes de datos de una red de área local (LAN) o red de área amplia (WAN) a otra. Dependiendo de las tablas y los protocolos de enrutamiento, los enrutadores pueden leer la dirección de red en cada marco transmitido y elegir la ruta de transmisión más eficaz, según las condiciones de tráfico, coste de línea, velocidad, conexiones fallidas y otros factores (véase Enrutador inalámbrico). Enrutador inalámbrico Dispositivo de red que enruta el tráfico IP a través de varias redes cableadas e IP inalámbricas. Los enrutadores inalámbricos se utilizan para construir WLAN independientes que se pueden comunicar entre sí y con Internet. Algunos puntos de acceso pueden funcionar ya sea como puerta de enlace inalámbrica o como enrutador inalámbrico, mientras que otros dispositivos funcionan solamente como enrutador inalámbrico (véase enrutador). Estructura central La estructura central es la parte principal de una red de gran tamaño, la cual une dos o más subredes y es la ruta principal para la transmisión de datos en una empresa de gran magnitud. Las redes pueden tener estructuras centrales cableadas o inalámbricas. Ethernet Tecnología de red estándar internacional para las implementaciones con cable. Las redes 10BaseT básicas ofrecen un ancho de banda de alrededor de 10 Mbps. También están disponibles Fast Ethernet (100 Mbps) y Gigabit Ethernet (1000 Mbps). Etiqueta Comando que especifica la forma en que un documento o una porción de un documento debe formatearse, lo cual incluye los encabezados, los párrafos, las listas, los vínculos de hipertexto, etc. Etnografía Tipo de antropología que utiliza una variedad de métodos antropológicos y técnicas de investigación en campo para estudiar a las personas en sus actividades cotidianas. Extensiones de Internet Streaming SIMD Consiste de 70 instrucciones e incluye instrucciones simples con varios datos para coma flotante, integrador SIMD adicional e instrucciones de control de caché. Los beneficios incluyen visualización y manipulación de imágenes de alta resolución, audio de alta calidad, vídeo MPEG2, y codificación y decodificación MPEG2 simultánea, utilización reducida del CPU para reconocimiento de voz, y mayor precisión y tiempos de respuesta más rápidos. FCBGA El encapsulado micro-FCBGA (Flip Chip Ball Grid Array) para placas de montaje sobre Facultad de Ingeniería UNAM superficie consta de un chip colocado boca abajo sobre un sustrato orgánico. En lugar de pines, los paquetes utilizan pequeñas esferas que actúan como contactos para el procesador. La ventaja del uso de esferas en lugar de pines radica en que no hay conductores que se doblen. El encapsulado utiliza 479 esferas de 0.78 mm de diámetro. FCPGA El encapsulado de micro-FCPGA (Flip Chip Plastic Grid Array) para placas enchufables consta de un chip colocado boca abajo sobre un sustrato orgánico. El encapsulado utiliza 478 pines de 2.03 mm de longitud y 0.32 mm de diámetro. FFT (Transformación Fourier rápida) Implementación informática de las transformaciones Fourier que produce una serie finita de ondas de seno y coseno. Fibra óptica Los cables de fibra óptica consisten de grupos de conductores plásticos que transmiten datos mediante la luz. Aunque la instalación de las fibras ópticas es costosa y las mismas son más difíciles de dividir y son más frágiles que las líneas de comunicación de metal tradiciones (generalmente de cobre), tienen varias ventajas. Primero, transmiten mayor cantidad de datos debido a que tienen un ancho de banda superior. Además, son más delgadas y menos sensibles a las interferencias que los cables de metal. La transmisión de datos se hace de forma digital, en lugar de analógica. Fiesta LAN (LAN Party) Consiste de usuarios que se reúnen en una ubicación central, tal como una casa, una oficina, un centro de conferencias, etc., para participar en juegos de PC. Todos llevan su propio equipo (móvil o de desktop), los cuales se conectan a una red en un servidor local mediante una LAN en lugar de módems conectados a Internet. Los juegos son extremadamente rápidos e interactivos debido a que los jugadores se encuentra en cercanía. FireWire* Sistema de bus serie de alta velocidad. Estándar IEEE1394 para la tecnología de E/S que conecta dispositivos periféricos de multimedia y almacenamiento al PC. FireWire (Apple), 1394* (Linux) e iLink* (Sony) son distintos nombres de productos que realizan la misma función. FireWire proporciona un ancho de banda de alrededor de 400 Mbps. Física La física es los cálculos matemáticos diseñados para crear el realismo que imita el mundo real en las aplicaciones de uso intensivo de gráficos como los juegos de PC, la animación y las simulaciones como los choques de automóviles. FRAME o trama Es una cadena de datos FRAME RELAY Frame Relay es una tecnología de conmutación rápida de tramas, basada en estándares internacionales, que puede utilizarse como un protocolo de transporte y como un protocolo de acceso en redes públicas o privadas proporcionando servicios de comunicaciones. Facultad de Ingeniería UNAM Frecuencia Por lo general, medida en hercios (Hz), la frecuencia es la velocidad a la cual alterna una corriente eléctrica. Las ondas de sonido viajan en ciclos con límites de frecuencia altas y bajas. GPRS (Servicio general de paquetes de radio) Estándar de comunicación inalámbrica que permite que los paquetes de datos, tales como los mensajes de correo electrónico o el contenido de Internet, viajen a través de una red telefónica inalámbrica y a Internet. Por lo general, GPRS se denomina como la tecnología de "2.5G" (en comparación con la tecnología inalámbrica de la primera generación (1G), la cual se utiliza en los teléfonos celulares análogos, y la de la segunda generación (2G), la cual se utiliza en teléfonos celulares digitales). Además de los teléfonos celulares GPRS, los equipos portátiles pueden habilitarse para la conexión a Internet mediante la adición de un adaptador GPRS. GPS (Sistema de posicionamiento global) Tecnología de posicionamiento basada en satélite que permite que un receptor GPS identifique su ubicación en cualquier punto de la tierra. Los receptores GPS se encuentran en dispositivos de bolsillo, en automóviles para asistir en la navegación y en módulos que se insertan en asistentes de datos personales (PDA), tal como PalmPilot*. GSM (Sistema global para comunicaciones móviles) Estándar mundial de comunicación celular digital que utiliza el acceso múltiple por división de tiempo (TDMA) de banda angosta, para la voz y el servicio de mensajes cortos (SMS). Un 56% de las subscripciones celulares del mundo utilizan la tecnología GSM, la cual representa la tecnología celular de mayor uso en el mundo. (Fuente: Gartner Dataquest: Los 20 principales operadores de red del mundo, 2001) Gráficos de vídeo Texto e imágenes visualizados en el monitor de un equipo. Se utiliza una tarjeta o placa de vídeo para generar y enviar texto (caracteres ASCII) y gráficos (imágenes de mapa de bits) al monitor. La resolución de una tarjeta de vídeo determina la cantidad de colores que pueden visualizarse. Muchas tarjetas de vídeo contienen coprocesadores de memoria y gráficos que realizan cálculos gráficos, los cuales fueron anteriormente hechos por el procesador. Energía, lo cual es ideal en los equipos portátiles. HTML (Lenguaje de marcas de hipertexto) La lingua franca (lenguaje común) que se utiliza para crear documentos en Internet, y la cual define la estructura y el diseño de los documentos web mediante el uso de una variedad de etiquetas y atributos (campo o característica). HZ (hercio) Facultad de Ingeniería UNAM Abreviatura de la unidad internacional que mide la frecuencia y que es equivalente a la unidad anterior de ciclos por segundo. Un megahercio (MHz) equivale a un millón de hercios. Un gigahercio (MHz) equivale a mil millones de hercios. La frecuencia de energía eléctrica estándar de EE.UU. es de 60 hercios. La banda de frecuencia de radio de broadcast AM es de 535 a 1605 kHz y la FM es de 88 a 108 MHz. Las redes locales 802.11b operan a 2,4 GHz. Hacker de redes inalámbricas Cualquier persona que busca y explota redes locales inalámbricas sin seguridad. Estas personas utilizan software de detección de redes que encuentra casas o edificios de oficinas con acceso abierto. Se estacionan en la parte externa de los edificios o las casas sin seguridad y utilizan un equipo portátil y una antena para acceder a la red, obtener acceso gratuito a Internet o tener acceso a los datos de la red. Host Un servidor en informática o computación es: *Una computadora que realiza algunas tareas en beneficio de otras aplicaciones llamadas clientes. Algunos servicios habituales son los servicios de archivos, que permiten a los usuarios almacenar y acceder a los archivos de un ordenador y los servicios de aplicaciones, que realizan tareas en beneficio directo del usuario final. IEEE (Instituto de ingenieros eléctricos y electrónicos) IEEE ( www.ieee.org) es una organización con sede en Nueva York, la cual incluye ingenieros y estudiantes de electrónica y otros campos relacionados. Tiene más de 300.000 miembros y se dedica al establecimiento de normas informáticas y de comunicación. IETF La Fuerza de Ingeniería de Internet (IETF, Internet Engineering Task Force) es una comunidad internacional grande y abierta de fabricantes, diseñadores de redes, operadores e investigadores que desarrollan y supervisan las normas para Internet, su arquitectura y funcionamiento. iLink* Término utilizado por Sony para la tecnología IEEE1394, (originalmente denominada Firewire* por Apple). Esta tecnología de comunicación a alta velocidad brinda un ancho de banda de alrededor de 400 Mbps. Las nuevas versiones de IEEE1394 ampliarán considerablemente el ancho de banda. Informática fiable La informática fiable requiere que las transacciones y los dispositivos informáticos sean: De confianza, que actúen de manera prevista y que puedan comunicarse activamente de ese manera Fiables, que estén disponibles para las transacciones y la comunicación, al igual que estén preparados para actuar en contra de virus y otras intrusiones Seguros, que puedan detener cualquier intervención y observación no deseada Facultad de Ingeniería UNAM Protegidos, que compartan información solamente con los que la necesitan dentro de parámetros comúnmente aceptados de privacidad informática Inspección de emplazamiento Proceso por medio del cual un instalador de red inalámbrica inspecciona el emplazamiento antes de configurar la red inalámbrica. Las inspecciones de emplazamiento se utilizan para identificar las características de radio y cliente del edificio a fin de asegurar la colocación óptima de los puntos de acceso. Internet por cable de alta velocidad Tecnología de banda ancha de operadores de servicio de cable (también conocidos como operadores de servicios múltiples, MSO). Esta tecnología permite el acceso a Internet a alta velocidad en el hogar a través de la conexión de cable de televisión estándar. Los usuarios disfrutan de velocidades de transmisión de datos desde unos cuantos centenares de kbps hasta 30 Mbps. No obstante, el ancho de banda varía considerablemente en una red de cable debido a que es un medio compartido. La Internet por cable de alta velocidad es una red abierta que ofrece poca seguridad a los usuarios que se conectan directamente a la conexión de cable sin un dispositivo de cable/DSL/servidor de seguridad/enrutador. IP (Protocolo de Internet) Reglas y especificaciones de codificación para el envío de datos. También determina si la red utiliza una arquitectura de grupos de trabajo o de cliente/servidor. La versión actual de IP es IPv4. Se encuentra en desarrollo una nueva versión denominada IPv6. IPX-SPX/IPX (Intercambio de paquetes entre redes - Intercambio de paquetes entre redes/Intercambio de paquetes en secuencia) IPX es un protocolo de red utilizado por los sistemas operativos Novell NetWare*. Al igual que UDP/IP, IPX es un protocolo de datagramas utilizado en la comunicación sin conexión. Los protocolos de nivel superior, tales como SPX (Intercambio de paquetes en secuencia) y NCP (Protocolo central de Netware), se utilizan en servicios de recuperación de error adicionales. IrDA (Asociación de datos infrarrojos) Grupo de fabricantes de dispositivos que desarrollaron un estándar para la transmisión de datos a través de ondas de luz infrarroja. ISA (Arquitectura estándar del sector) Arquitectura estándar del sector para los buses de sistema. A principios de 1990, la arquitectura de bus local ISA PCI empezó a reemplazar a ISA. La mayoría de los equipos de la actualidad no incluyen el bus ISA. ISDN (Red digital de servicios integrados) Tipo de conexión de Internet de ancho de banda que ofrece servicio digital desde las instalaciones del cliente hasta la red telefónica de acceso telefónico. ISDN utiliza cables de cobre del servicio telefónico estándar para brindar voz, datos o vídeo. El ISDN implica la numeración de la red de teléfono, que permite la voz, los datos, el texto, los gráficos, la música, el vídeo y otro material de fuente que se transmitirá sobre los alambres existentes del teléfono. La aparición del ISDN representa un esfuerzo de estandardizar servicios del suscriptor, interfaces de user/network, y capacidades de la red y de la red interna. Los Facultad de Ingeniería UNAM usos del ISDN incluyen usos de alta velocidad de la imagen (tales como facsímil del grupo IV), líneas telefónicas adicionales en hogares para servir la industria de la teleconmutación, transferencia de archivo de alta velocidad, y videoconferencia. El servicio de la voz es también un uso para el ISDN. ISS (Sistemas de seguridad de Internet) Aplicación de software que permite que todos los equipos de una red tengan acceso simultáneo a Internet a través de una sola conexión y cuenta ISP (Proveedor de servicios de Internet). Itinerancia En redes inalámbricas, la itinerancia se refiere a la movilización de un punto de acceso a otro sin perder el servicio ni la conectividad. La itinerancia permite que los usuarios se movilicen con libertad y continúen teniendo acceso a correo electrónico o Internet. ITSP Internet Telephony Service Providers, Provedores de servicio de internet vía telefónica. IVR Respuesta de voz interactiva. (Interactive Voice Response) permite presentar un menú, a la persona que llama, a través del teclado del teléfono, por medio del cual podrá escoger la opción que encasille la respuesta o servicio buscado. Además puede sonar mensajes grabados para las llamadas en espera, para reforzar la imagen de marca o transmitir información adicional a la persona que llama. Jitter Variación en la cantidad de latencia entre paquetes de datos recibidos. Desviación o desplazamiento de los pulsos en una señal digital de alta frecuencia, ésta puede darse en términos de amplitud, desafase temporal o el ancho de la señal. Una descripción corta podria ser: "es el periodo del desplazamiento de la frecuencia de su lugar ideal". KBPS Kilo-bits por segundo LAN (Red de área local) Red de equipos que cubre un área relativamente pequeña y por lo general conecta estaciones de trabajo y PC, de modo que los usuarios se puedan comunicar entre sí, compartir datos o tener acceso a dispositivos, tales como impresoras láser. Cuando se Facultad de Ingeniería UNAM conectan varias redes locales entre sí a través de líneas telefónicas u ondas de radio, se conoce como red de área amplia (WAN). El estándar de red inalámbrica actual para redes locales es 802.11a con velocidades de datos de hasta 54 Mbps en comparación a 11 Mbps del estándar 802.11b. 802.11a permite varios usuarios inalámbricos simultáneos y aplicaciones de multimedia móvil mejoradas, tal como el vídeo fluido. Además, el estándar 802.11a opera en la banda de 5 GHz, la cual no presenta congestionamiento y reduce la interferencia con los teléfonos inalámbricos. Es un sistema de comunicación entre computadoras que permite compartir información, con la característica de que la distancia entre las computadoras debe ser pequeña. Estas redes son usadas para la interconexión de computadores personales y estaciones de trabajo. Se caracterizan por: tamaño restringido, tecnología de transmisión (por lo general broadcast), alta velocidad y topología. Latencia La latencia es el tiempo transcurrido entre un evento y el instante en el que el sitio remoto lo escucha u observa, y puede ser inducida por el proceso de codificación y decodificación de los equipos, los sistemas intermedios en la red y la distancia que deben recorrer los paquetes para arribar al destino. LEY-A Sistemas de compresión de audio (CODEC) definidos por el formato G.711 de CCITT, lo que comprime 16 bits lineares de datos de PCM en 8 bits de datos logarítmicos. Utilizada en Europa y resto del mundo. LEY-μ Sistema de codificación que se usa en América del Norte y Japón para la transferencia de datos de voz, en muchos sistemas de respuesta de voz interactiva y dispositivos de conmutación privados y en radio por Internet. MAC (Control de acceso de medios) Identificador único utilizado para brindar seguridad a las redes inalámbricas. Cada dispositivo 802.11 tiene su propia dirección MAC en el código. Si una red utiliza una tabla MAC, solamente los aparatos de radio 802.11a cuyas direcciones MAC se encuentren en la tabla, podrán funcionar en la red. MAN (Red de área metropolitana) Red de alta velocidad que se utiliza dentro de un poblado o ciudad. Normalmente, las MAN brindan conexiones de alta velocidad mediante cables de fibra óptica u otros medios digitales entre LAN de la misma área. Un ejemplo de esto es AbMAN, la red de área metropolitana de Aberdeen (www.abman.ent.uk). Recientemente, se han interconectado WLAN basadas en 802.11b en una creciente cantidad de comunidades, para formar MAN inalámbrica que utilizan sistemas de antena asequibles y equipos inalámbrico 802.11b y 802.11a de nivel de consumidor. Un ejemplo de esto es Personal Telco (www.personaltelco.net). Microarquitectura La arquitectura de un procesador se refiere al conjunto de instrucciones, registros, y Facultad de Ingeniería UNAM estructuras de datos residentes en la memoria que son públicos para el programador y son mantenidos y mejorados de una generación de arquitectura a la siguiente. La microarquitectura de un procesador se refiere a la implementación de una arquitectura de procesador en silicio. Dentro de una familia de procesadores, como los procesadores Intel IA-32, la microarquitectura normalmente cambia de una generación de procesadores a la siguiente, mientras implementa la misma arquitectura pública del procesador. La arquitectura de Intel IA-32 esta basada en el conjunto de instrucciones y registros x86. Fue aumentada y ampliada a través de generaciones de procesadores IA-32, manteniendo compatibilidad de soporte para código escrito para ejecutarse en los procesadores IA-32 anteriores. Microarquitectura Intel® NetBurst® Brinda una variedad de funciones nuevas e innovadoras, las cuales incluyen tecnología hipercanalizada, bus de sistema de 400 MHz, caché de seguimiento de ejecución y sistema de ejecución rápida. También ofrece funciones mejoradas, como caché de transferencia avanzada, ejecución dinámica avanzada, unidad mejorada de coma flotante y multimedia y extensiones Streaming SIMD 2. Microarquitectura P6 La arquitectura interna de los procesadores Pentium® III y de los procesadores Celeron®. Sus características incluyen: predicción múltiple de ramificaciones, que predice la ejecución del programa a través de múltiples ramificaciones y acelera el flujo de trabajo al procesador; análisis del flujo de información, que crea un programa reordenado y optimizado de las instrucciones analizando las dependencias de informaciones entre las instrucciones; y ejecución especulativa, que realiza la ejecución de instrucciones especulativamente y basada en este programa optimizado, asegura que las unidades de ejecución superescalares se mantengan ocupadas, aumentando el desempeño general. MIPS El número de Millones de Instrucciones por Segundo que es necesario para ejecutar los algoritmos de codificación y de decodificación mide la complejidad del codec. MMORPG (Juegos de representación en línea con varios participantes) Juegos en línea a través de una red o de Internet en los que participan más de un jugador. En la actualidad los juegos MMORPG admiten varios millares de jugadores al mismo tiempo. MP3 Extensión utilizada en los archivos de nivel de sonido (nivel 3) de MPEG. Este nivel utiliza codificación de sonido de percepción (se puede escuchar) y compresión psicoacústica para eliminar las señales de sonido redundantes o irrelevantes. Agrega un banco de filtros conocido como Transformación de coseno discreto modificado (MDCT), el cual aumenta la resolución de la frecuencia. El archivo resultante se reduce con un factor de 12 (de 1411,2 kbps a 112-128 kbps) sin sacrificar la calidad del sonido. Los archivos MP3 tienen un tamaño pequeño que facilita su transferencia a través de Internet. mp3PRO Generación de la compresión MP3. Los archivos mp3PRO son más pequeños y tienen una mayor fidelidad y calidad de sonido. También son compatibles con el formato MP3 estándar. Facultad de Ingeniería UNAM MPEG (Grupo de expertos en películas) Familia de estándares utilizados para la codificación de información audiovisual (por ejemplo, películas, vídeo, música) en un formato digital comprimido. La principal ventaja de MPEG en comparación con otros formatos de codificación de vídeo y sonido es que los archivos MPEG son mucho más pequeños y ofrecen la misma calidad. Esto se debe a que MPEG utiliza técnicas de compresión altamente sofisticadas. Mobile IP (Protocolo de Internet móvil) Protocolo definido por la IETF que permite a los dispositivos portátiles mantener sesiones y direcciones IP persistentes conforme el usuario mueve el dispositivo de una subred a otra o cambia de red. Módem de cable Dispositivo de conversión que conecta un equipo a un servicio de televisión de cable que provee acceso a Internet. La mayoría de los cables tienen un cable Ethernet externo que se conecta a la puerta de enlace Wi-Fi del usuario (véase Puerta de enlace inalámbrica). Modo de infraestructura Las redes inalámbricas pueden configurarse como "ad hoc" o de infraestructura. En el modo de infraestructura, la red inalámbrica utiliza un punto de acceso (AP) para conectar equipos habilitados para la tecnología inalámbrica a una LAN cableada y entre sí. El AP es un concentrador para todos los adaptadores de red inalámbrica con los que se comunica. MOS La calidad del codec es comúnmente medida mediante las calificaciones de Mean Opinión Store. Este grado es subjetivo, donde 1 es malo y 5 es excelente. Motherboard A veces llamada de placa del sistema, placa madre o placa principal, la motherboard es la principal placa de circuito de un PC. La motherboard normalmente contiene el procesador (o CPU), el BIOS (sistema básico de input/output), la memoria, muchas interfaces de almacenamiento, puertos series y paralelos, ranuras de expansión, y todos los controladores necesarios para comunicarse con los dispositivos periféricos estándar, como el monitor, el ratón, el teclado y la unidad de disco. Colectivamente, algunos de los chips que residen en la motherboard son conocidos como el chipset de la motherboard. Motor de juego Programa que ejecuta todos los componentes que forman un juego, lo cual incluye gráficos, sonido, detección de colisiones, física e inteligencia artificial. Multicast En el sistema multicast la transmisión de información llega multiples puntos a la vez. Modo de broadcast de información en vivo que permite que ésta pueda ser recibida por múltiples nodos de la red y por lo tanto por múltiples usuarios. Multimodo La tecnología de multimodo permite que los usuarios utilicen distintas formas de entrada y Facultad de Ingeniería UNAM salida, lo cual incluye voz, teclado y buril, de forma intercambiable en la misma interacción. NAT (Traducción de dirección de red) Capacidad de red que permite que un grupo de equipos en una casa compartan de forma dinámica una sola dirección IP entrante proveniente de una conexión de acceso telefónico, cable o DSL. NAT toma la dirección IP entrante y crea una nueva dirección IP para cada equipo de la red. NIC (Centro de Información de Red) Un NIC (Network Information Center), de acuerdo a los esquemas de Internet, es un organismo encargado de la administración de rangos o bloques de direcciones IP y dominios. NIC (Tarjeta de interfaz de red) Tipo de tarjeta de adaptador de PC que funciona sin cables (Wi-Fi) o se conecta a un cable de red para brindar comunicación en dos direcciones entre un equipo y los dispositivos de red, tales como concentradores o conmutadores. La mayoría de las NIC con cables en las oficinas funcionan a 10 Mbps (Ethernet), 100 Mbps (Fast Ethernet) o a la velocidad doble de 10/100 Mbps. También están disponibles las tarjetas NIC Gigabit y 10 Gigabit de alta velocidad (véase Tarjeta PC). Niveles de confianza Nivel 1: Fortalecer la plataforma básica y el software del sistema Nivel 2: Sistema operativo, aplicaciones y pila de soluciones de confianza. Nivel 3: E/S y comunicación de confianza Nivel 4: Nivel empresarial "X" de confianza, WAN, terminales, dispositivos periféricos y más Nombre de red Identifica a una red inalámbrica ante todos los componentes compartidos. Durante la instalación de la mayoría de las redes inalámbricas, debe introducirse el nombre de red o SSID. Se utilizan distintos nombres de red al configurar equipos individuales, redes cableadas o grupos de trabajo. OSI El modelo OSI (Open Systems Interconection) es la propuesta que hizo la Organización Internacional para la Estandarización (ISO) para estandarizar la interconexión de sistemas abiertos. Un sistema abierto se refiere a que es independiente de una arquitectura específica. Se compone el modelo, por tanto, de un conjunto de estándares ISO relativos a las comunicaciones de datos. Open Systems Interconnect o Interconexión de Sistemas Abiertos. Protocolo en el que se apoya Internet. Establece la manera como se realiza la comunicación entre dos computadoras a través de siete capas: Física, Datos, Red, Transporte, Sesión, Presentación y Aplicación. Facultad de Ingeniería UNAM Optimización Consiste del análisis y refinamiento del código de software a fin de hacer que funcione de forma más rápida y eficaz en la arquitectura de procesadores Intel. Optoelectrónica Incluye la fabricación de dispositivos de software que convierten señales electrónicas en señales de fotón (o luz) y viceversa. Algunos ejemplos de tecnologías optoelectrónicas son la comunicación en fibra óptica, los sistemas láser, los ojos eléctricos, los sistemas de detección remota, los sistemas de diagnóstico médico y los sistemas de información óptica. PAN (Red de área personal) LAN inalámbrica con un alcance muy corto (hasta 10 metros). Las PAN se utilizan para conectar dispositivos, tales como PDA, teclados, ratones, impresoras, etc., que un solo usuario utiliza en un equipo. Las PAN facilitan la interconexión entre dispositivos al eliminar los cables. Bluetooth* es una tecnología que se utiliza comúnmente para formar PAN. Pantalla inteligente Monitor LCD inalámbrico y habilitado para los lápices electrónicos, que amplía el uso de los equipos domésticos a cualquier sitio de la casa (dentro de los 100 pies) mediante capacidades inalámbricas integradas. Paquete Un recinto para un único elemento, circuito integrado, o circuito híbrido. Provee protección hermética y no hermética, determina el factor de forma, y sirve como el primer nivel de interconexión externa del dispositivo mediante los terminales del paquete. Packet-switched En el establecimiento de una red, la conmutación de conjunto de bits es el paradigma ahora dominante de las comunicaciones, en el cual los paquetes (los mensajes o los fragmentos de mensajes) se encaminan individualmente entre los nodos, sin la trayectoria de comunicación previamente establecida. La conmutación de conjunto de bits se utiliza para optimizar el uso del ancho de banda disponible en una red, y para reducir al mínimo el estado latente de la transmisión (es decir el tiempo que toma para los datos al paso a través de la red). PBX (Private Branch Exchange) (Central Telefónica Digital) Es un sistema telefónico dentro de una empresa, que maneja llamadas entre usuarios de una empresa en lineas locales mientras permite que entre todos los usuarios compartan un número determinado de lineas telefónicas externas. Su función principal es la de reducir los costos de tener una línea telefónica por cada usuario. Facultad de Ingeniería UNAM PCI (Interconexión de componentes periféricos) Estándar de bus local desarrollado por Intel. El bus es un canal que se utiliza para transferir datos a un equipo (entrada) y desde él (salida) al igual que a un dispositivo periférico. La mayoría de los equipos tienen un bus PCI que por lo general se implementa a 32 bits para brindar una velocidad de reloj de 33 MHz con una velocidad de proceso de 133 MBps. PCI Express Es la tercera generación de la arquitectura de E/S en la que ISA y PCI constituyeron la primera y segunda generación, respectivamente. En su calidad de interconexión de E/S serie de uso general y de alta velocidad, PCI Express ofrecerá en el principio velocidades de 2,5 gigabits por segundo, admitirá varios anchos ("líneas" de datos que oscilan entre 1 y 32) y escalará hasta los límites del cobre. PCI Express unificará la arquitectura de E/S en equipos de desktop, portátiles, servidores, plataformas de comunicación, estaciones de trabajo y dispositivos integrados, a la vez que coexistirá con los tipos de conexión PCI y USB. PCM Es un sistema binario; un pulso o ausencia de pulsos dentro de una ranura de tiempo preescrita representa ya sea una condición de lógica 1 o de lógica 0. PCMCIA (Asociación internacional de tarjetas de memoria de PC) Organización que incluye alrededor de 500 empresas, la cual desarrolló el estándar de dispositivos pequeños con tamaño de tarjetas de crédito, conocidos comúnmente como tarjetas PC. PHY (Medio de transporte físico) Designa el nivel de protocolo más bajo especificado en el modelo de red OSI. Se encarga principalmente de la transmisión del flujo de bits sin procesar a través de un medio de transporte físico. En el caso de las LAN inalámbricas, el medio de transporte es el espacio abierto. PHY define parámetros como la velocidad de datos, el método de modulación, los parámetros de señal y la sincronización entre los transmisores y los receptores. En las implementaciones de radio, PHY corresponde a las secciones de procesamiento de interfaz de radio y señal de banda base. Píxel Abreviatura de elemento de imagen, el cual es un punto de una imagen gráfica. La cantidad de bits necesarios para representar cada píxel determina la cantidad de colores o tonos de gris que pueden visualizarse. Por ejemplo, en el modo de color de 8 bits, el monitor a color utiliza 8 bits para cada píxel, lo cual permite visualizar una cantidad de 2 elevado a la octava potencia (256) de distintos colores o tonos de gris. Presión acústica La acústica se refiere a la transmisión de sonido. El sonido se produce cuando el aire se perturba de algún modo, como por ejemplo con un objeto vibrante. La presión acústica se refiere a la fluctuación en la presión del aire causada por los sonidos. La variación entre valores altos y bajos de la presión del aire o de la acústica se ilustra como una onda de sonido. Prevención de colisiones Facultad de Ingeniería UNAM Característica de los nodos de red que determina de forma activa si un nodo puede transmitir una señal sin riesgo de colisión con el resto del tráfico de la red (véase CSMA/CA). Procesador El procesador (CPU o microprocesador) es el cerebro de la computadora. Lee instrucciones de su software y le dice a su computadora lo que tiene que hacer. La velocidad con que la CPU procesa la información internamente es medida en MegaHertz (MHz) y GigaHertz (GHz). 1 GHz es igual a 1,000 MHz. Generalmente, los procesadores con MHz o GHz más altos aumentan su habilidad para ejecutar aplicaciones de entretenimiento, comunicación y productividad. Procesadores basados en la tecnología Intel® XscaleTM Una gama de procesadores Intel® diseñados para optimizar el bajo consumo de energía y el proceso de alto desempeño para una diversa variedad de aplicaciones inalámbricas y de red y servicios completos. Protocolos Establecen una descripción formal de los formatos que deberán presentar los mensajes para poder ser intercambiados por equipos de cómputo; además definen las reglas que ellos deben seguir para lograrlo. Psicoacústica Rama de la ciencia que trata con el oído, las sensaciones producidas por los sonidos y los problemas de comunicación. PSTN La red telefónica conmutada (abreviada RTC; en inglés Public Switched Telephony Network o PSTN) es una red de teléfono diseñada primordialmente para la transmisión de voz, aunque pueda también transportar datos, por ejemplo, en el caso del fax o de la conexión a Internet a través de un módem acústico. Puente Producto que conecta una red local (LAN) a otra red local que utiliza el mismo protocolo (por ejemplo, inalámbrico, Ethernet o token ring). Los puentes inalámbricos se utilizan de forma común para unir edificios en complejos con varios edificios. Puerta de enlace Véase Puerta de enlace inalámbrica. Puerta de enlace inalámbrica Punto de acceso inalámbrico que ofrece una conexión central entre una red inalámbrica y otras redes, incluso Internet. Las puertas de enlace inalámbricas pueden brindar servicios importantes, tales como la traducción de direcciones de red (NAT) y los servidores de seguridad. La puerta de enlace inalámbrica es una parte esencial de una red inalámbrica doméstica o de pequeña empresa al conectarse a Internet mediante tecnologías de banda ancha, como DSL o cable. Puerta de enlace residencial Facultad de Ingeniería UNAM Dispositivo inalámbrico que conecta varios equipos, periféricos e Internet en una red doméstica. La mayoría de las puertas de enlace Wi-Fi residenciales también ofrecen servicios DHCP y NAT. Punto de conexión Ubicaciones públicas tales como aeropuertos, centros comerciales y centros de conferencias que ya cuentan con redes inalámbricas de fácil acceso, generalmente 802.11b u 802.11a. Puerto de gráficos acelerado El Puerto de gráficos acelerado (AGP) está ubicado en la motherboard y es un puerto dedicado de alta velocidad para transferir bloques grandes de datos entre el controlador de gráficos de un PC y la memoria del sistema. QoS (Quality of service) Mecanismos para ofrecer redes de servicio de calidad. RAM Memoria de acceso aleatorio disponible para almacenar datos y programas que están siendo procesados. Se apaga automáticamente cuando se apaga la máquina. Puede accederse a ella sin tocar los bytes precedentes. Los procesadores Intel usan RDRAM o SDRAM. RDRAM Memoria Dinámica Rambus de Acceso Aleatorio. Desarrollada por la Rambus Corporation*, con arquitectura y protocolo diseñado para alcanzar ancho de banda altamente efectivo y granularidad de actualización de dispositivo único. El canal estrecho de alto desempeño también ofrece escalabilidad de desempeño y capacidad mediante el uso de múltiples canales en paralelo. Capaz de suministrar un ancho de banda de hasta 1.6 GB/seg. El chipset Intel® 850 implementa canales dobles de memoria RDRAM para conseguir un ancho de banda de memoria de 3.2-gigabytes por segundo. Otros chipset Intel usan SDRAM. Red de grupos de trabajo Red informática inalámbrica o cableada que no tiene un servidor, un concentrador central ni un enrutador. Todos los equipos conectados a la red tienen la misma capacidad de actuar como servidor de red o cliente. Cada equipo cliente puede comunicarse con todos los equipos inalámbricos sin necesidad de hacerlo a través de un punto de acceso o concentrador. No obstante, debido a que no existe una estación central básica para controlar el tráfico o proveer acceso a Internet, las diversas señales pueden colisionar y reducir el rendimiento general. Reproducción Proceso que agrega realismo a los gráficos informáticos al añadir cualidades Facultad de Ingeniería UNAM tridimensionales, tales como sombras y variaciones de color y sombra. Una de las técnicas en la reproducción de gráficos se denomina trazado de rayos. Otro tipo es la reproducción de línea de exploración, la cual reproduce imágenes una línea vertical a la vez en lugar de hacerlo un objeto a la vez como en el trazado de rayos. En general, la reproducción de línea de exploración no produce tan buenos resultados como el trazado de rayos, pero se utiliza con frecuencia en los paquetes de animación donde la calidad de la imagen de cada marco individual no es tan importante. RF (Frecuencia de radio) Cubre una gama de frecuencias altas electromagnéticas utilizadas en las transmisiones de radio. En la comunicación, las señales RF transmiten datos mediante diversos métodos, tales como TDMA, CDMA, DSSS (secuencia directa de distribución de espectro) y otros. WLAN, PAN, Bluetooth* y otras tecnologías inalámbricas utilizan señales RF para transmitir datos. RJ-45 (Enchufe registrado - 45) Conector estándar utilizado en redes Ethernet. Aunque es similar al conector telefónico RJ-11 estándar, el conector RJ-45 puede tener hasta ocho alambres, mientras que los conectores telefónicos solamente tienen cuatro. RTP Protocolo de transporte en tiempo real (RTP), un estándar de IETF diseñado para controlar los requisitos de las secuencias de audio y vídeo en tiempo real a través de Internet. SBR (Réplica de banda de espectro) Se utiliza para mejorar la calidad de sonido de archivos de sonido de alta compresión. La Réplica de banda de espectro (SBR) reconstruye la parte superior del espectro de frecuencia. Por ejemplo, alrededor de 60 kbps de un mp3PRO de 64 kbps se codifican como datos MP3 convencionales. La porción de alta frecuencia del archivo (de 8 a 16 kHz) se reconstruye mediante la Réplica de banda de espectro. SDRAM Memoria Dinámica Síncrona de Acceso Aleatorio. La SDRAM se sincroniza sola con el bus de los procesadores y es capaz de ejecutar a 133 MHz. El chipset Intel® 845 combina la potencia del procesador Pentium® 4 con la memoria PC133 SDRAM para posibilitar varios niveles de precio y desempeño. Otros chipsets de Intel usan RDRAM. SDRAM DDR La memoria DRAM (Sincrónico de velocidad de datos doble, del inglés Double Data Rate Synchronous) es un tipo de memoria que soporta transferencia de datos a ambos extremos de cada ciclo del reloj, por tanto, duplica el rendimiento de los datos en el chip de la memoria. DDR-SDRAM también consume menos energía, lo cual la hace ideal para computadora SDRAM DDR (DRAM sincrónica de velocidad de datos doble) Facultad de Ingeniería UNAM Tipo de memoria que admite velocidades de datos en ambos bordes de cada ciclo de reloj, y por lo tanto, duplica el desempeño de datos del chip de memoria. SDRAM DDR también consume menos SGML (Lenguaje de marcas generalizadas estándar) Adoptado por la Organización internacional de estándares en 1986, SGML es un lenguaje basado en texto que describe el contenido y la estructura de documentos digitales. HTML es una evolución de SGML. SPX (Intercambio de paquetes en secuencia) Protocolo de nivel de transporte (nivel 4 de OSI, Interconexión de sistemas abiertos) utilizado en redes Novell Netware*. El nivel SPX se encuentra encima del nivel IPX (nivel 3) y ofrece servicios de conexión entre dos nodos de la red. SPX se utiliza principalmente en aplicaciones de cliente/servidor. El protocolo IPX es similar a IP y SPX es similar a TCP. Por lo tanto, en conjunto IPX/SPX proporciona servicios de conexión similares a TCP/IP. Streaming SIMD Extensions (SSE) Internet Streaming SIMD Extensions son instrucciones que reducen la cantidad total de instrucciones necesarias para ejecutar una tarea determinada en un programa. Como resultado, pueden mejorar el rendimiento al acelerar una amplia gama de aplicaciones, incluidas aplicaciones de procesamiento de video, voz e imagen, encriptación, financieras, de ingeniería y científicas. La microarquitectura NetBurst® agrega 144 nuevas instrucciones SSE, que se denominan SSE2. SSID (Identificador de conjunto de servicios) Nombre con el que se identifica una red inalámbrica de forma exclusiva. Los puntos de acceso inalámbricos difunden el SSID para que los usuarios finales puedan identificar la WLAN a la cual desean conectarse. Los distintos SSID permiten que existan varias WLAN en el mismo espacio físico. Los SSID deben ser idénticos en el punto de acceso inalámbrico y en el adaptador de red inalámbrica a fin de permitir el acceso a la red inalámbrica. Para mejorar la seguridad en WLAN, los administradores pueden desactivar la función de broadcast de algunos puntos de acceso inalámbricos a fin de evitar la broadcast del SSID. Para que los clientes puedan conectarse a la red, el usuario final debe escribir el SSID de forma manual (véase ESSID). SSL (Nivel de zócalo seguro) Esquema de codificación común que se utiliza en muchos sitios de venta al detalle y finanzas en línea para proteger la integridad financiera de las transacciones. Cuando empieza una sesión SSL, el servidor envía su clave pública al navegador. El navegador regresa una clave generada de forma aleatoria al servidor a fin de tener un intercambio de clave secreta para esa sesión. Servidor de seguridad Sistema que brinda seguridad a una red y la protege del acceso por parte de usuarios no autorizados. Los servidores de seguridad se pueden implementar en software, hardware o una combinación de ambos. Además de evitar el acceso libre a la red, los servidores de seguridad también pueden restringir el flujo de los datos fuera de la red. Servidor de impresión inalámbrico Facultad de Ingeniería UNAM Conecta a los usuarios de una red inalámbrica a una impresora, sin necesidad de cables. Los datos de impresión se transmiten a través de una WLAN hasta el servidor de impresión inalámbrica donde se colocan en cola para su impresión. Los servidores de impresión inalámbrica permiten la instalación rápida y fácil desde cualquier punto de un área de WLAN. Servidor proxy Se utiliza en empresas y organizaciones de gran tamaño para mejorar las operaciones y la seguridad de la red. Se puede utilizar para evitar la comunicación directa entre dos o más redes. El servidor proxy envía las solicitudes de datos permitidas a los servidores remotos y/o responde a solicitudes de datos directamente de los datos de servidor almacenados remotamente. Sistema de ejecución rápida Forma parte de la microarquitectura Intel® NetBurst® del procesador Pentium® 4. Dos unidades aritméticas lógicas (ALU) tienen una velocidad de reloj que equivale al doble de la frecuencia del núcleo del procesador, lo cual permite que se ejecuten instrucciones básicas de enteros tales como la suma, la substracción, el AND lógico y el OR lógico, en la mitad de un ciclo del reloj. Por ejemplo, el Sistema de ejecución rápida de un procesador Pentium 4 a 1,50 GHz se ejecuta a 3 GHz. Subproceso Parte de un programa que se puede ejecutar de manera independiente de otros aspectos del programa. Subprocesos múltiples Un programa de subprocesos múltiples permite que diferentes partes de un programa se ejecuten de manera concurrente. Los sistemas operativos como Windows* .Net* y XP* utilizan subprocesos múltiples, al igual que muchas aplicaciones científicas. Cuando se crea una aplicación, los desarrolladores deben crear un código, de manera que los subprocesos se puedan ejecutar de manera independiente y no interfieran unos con otros. Subred Estas redes pequeñas se encuentran en redes de gran tamaño y se utilizan para simplificar el direccionamiento entre varios equipos. Las subredes se conectan a la red central mediante un enrutador, un concentrador o una puerta de enlace. Por lo general, cada LAN inalámbrica se configura a fin de que utilice la misma subred en todos los equipos locales con los que se comunica. Tabla de búsqueda Puede ser ya sea una tabla de traducción que determina las 'instrucciones' de enrutamiento de una llamada o bien, un conjunto de direcciones (de origen y destino) utilizado por un puente o enrutador para determinar dónde enviar un paquete de datos, el cual puede contener vídeo, sonido, etc. Tarjeta de sonido Facultad de Ingeniería UNAM La mayoría de los equipos contienen tarjetas de sonido, las cuales son placas de expansión que permiten que el equipo manipule y produzca sonidos a partir de un reproductor de CD o a través de los altavoces. La mayoría de las tarjetas de sonido admiten la Interfaz digital de instrumentos musicales (MIDI), el cual es un estándar de representación electrónica de la música. Además, la mayoría de las tarjetas de sonido son compatibles con Sound Blaster, lo cual significa que pueden procesar comandos escritos para tarjetas Sound Blaster, el cual es el estándar del sonido en PC. Los dos métodos básicos utilizados por las tarjetas de sonido para traducir datos digitales en sonido análogo son: la Síntesis FM (imita distintos instrumentos musicales según fórmulas integradas) y la Síntesis de tabla de ondas (produce sonido más exacto mediante el uso de grabaciones de instrumentos reales). Tarjeta PC Memoria extraíble del tamaño de una tarjeta de crédito o dispositivo de E/S que cabe en una ranura PCMCIA tipo II estándar. Las tarjetas PC se utilizan principalmente en equipos portátiles y PDA. Los periféricos de tarjeta PC incluyen tarjetas Wi-Fi, tarjetas de memoria, módems, NIC, unidades de disco duro, etc. Tarjeta PC inalámbrica Adaptador 802.11 WLAN que se inserta en una ranura PCMCIA de equipos portátiles o de desktop. Las tarjetas PC inalámbricas permiten que los usuarios se conecten a redes inalámbricas. También se puede utilizar una tarjeta PC inalámbrica y un PC para compartir una conexión a Internet con una WLAN. TCP (Protocolo de transmisión de comunicación) Protocolo de comunicación utilizado junto con el protocolo de Internet (IP) para enviar datos en forma de unidades individuales (llamados paquetes) entre equipos a través Internet. El protocolo IP se encarga de la entrega de los datos y TCP lleva un seguimiento de los paquetes en los que se divide un mensaje para el enrutamiento eficaz a través de Internet. Por ejemplo, cuando se descarga una página web de un servidor web, nivel de programa TCP del servidor divide el archivo en paquetes, numera los paquetes y los envía de forma individual al nivel de programa IP. Aunque todos los paquetes tienen la misma dirección IP de destino, podrían enrutarse por separado a través de la red. En el otro extremo de la transmisión, TCP vuelve a ensamblar los paquetes individuales y espera hasta que todos han llegado para enviarlos como un solo archivo. TCP/IP (Protocolo de transmisión de comunicación/Protocolo de Internet) Protocolo de comunicación que abarca Internet y la comunicación entre equipos de red. La primera parte, TCP, es la porción de transporte, la cual compara el tamaño de los mensajes en los dos extremos de la transmisión y garantiza que se reciba el mensaje correcto. La porción IP es la dirección del equipo del usuario en la red. Todos los equipos de una red TCP/IP tienen su propia dirección IP que se asigna dinámicamente durante el inicio o se asigna permanentemente. Todos los mensajes TCP/IP contienen la dirección de la red de destino, al igual que la dirección de la estación de destino. Esto permite la transmisión de mensajes TCP/IP a varias redes (subredes) dentro de una organización o en todo el mundo. Es un protocolo de red independiente del nivel físico y que soporta múltiples sesiones entre múltiples ordenadores. Es el lenguaje básico de comunicación o el protocolo de Internet. También puede ser utilizado como un protocolo de comunicaciones en una red privada (tanto una Intranet como una Extranet). Facultad de Ingeniería UNAM TDMA (Acceso múltiple por división de tiempo) Tecnología para la entrega de servicios inalámbricos digitales mediante la multiplexión por división de tiempo (TDM). Funciona mediante la división de la frecuencia de radio en porciones de tiempo y la asignación de las porciones a diversas llamadas. De este modo, una sola frecuencia puede admitir varios canales de datos simultáneos. TDMA se utiliza en el sistema celular digital GSM. Tecnología de 0,13 micras 0,13 micras es un término de fabricación que hace referencia al tamaño de función de las puertas de polisilicio del microprocesador. Este tamaño de función tiene una correlación directa con la velocidad y los requisitos de alimentación del microprocesador. A medida que se reduce el tamaño de función, la velocidad de proceso (MHz) aumenta y los requisitos de alimentación disminuyen del mismo modo. Actualmente, 0,13 micras es el tamaño de función más pequeño disponible en la fabricación de alto volumen, y se utiliza para los procesadores Pentium® 4 de alta gama de desktop, así como para los procesadores Intel® Pentium® 4 - M para equipos portátiles y los procesadores Intel® Pentium ® III - M para equipos portátiles. Esta tecnología hace posibles las mayores velocidades hasta el momento con un menor consumo de energía, con lo que se obtiene un mayor desempeño y una autonomía más prolongada de la batería en equipos portátiles más esbeltos y livianos. Tecnología hipercanalizada Forma parte de la microarquitectura Intel® NetBurst® del procesador Pentium® 4. La tecnología hipercanalizada duplica la profundidad de los canales de la microarquitectura P6 del procesador Pentium® III, para aumentar la predicción de bifurcación y la recuperación de canales a 20 etapas. Los canales profundos permiten que las instrucciones se coloquen en cola y se ejecuten a la velocidad más rápida posible, para aumentar el rendimiento, la frecuencia y la escalabilidad. Tecnología Intel® MMX™ La tecnología Intel® MMX™ está diseñada para acelerar las aplicaciones de multimedia y comunicación. La tecnología incluye nuevas instrucciones y tipos de datos que permiten que las aplicaciones logren un nuevo nivel de rendimiento. Aprovecha el paralelismo inherente en muchos algoritmos de multimedia y comunicación, a la vez que mantiene la compatibilidad total con los sistemas operativos y las aplicaciones existentes. Tecnología QuickStart Extiende la vida de la batería entrando en un estado de baja energía durante las menores pausas de actividad del usuario, como en el tecleado, y volviendo instantáneamente al estado de plena potencia cuando es activado. Tecnología hipercanalizada Parte de la microarquitectura NetBurst® del procesador Intel® Pentium® 4. La tecnología hipercanalizada duplica la profundidad de las conexiones de la microarquitectura P6 de los procesadores Pentium® III, aumentando la predicción de rama y recuperando la conexión en 20 etapas. Las conexiones más profundas permiten que las instrucciones sean ordenadas y ejecutadas a la velocidad más rápida posible, aumentando el desempeño, la frecuencia y la escalabilidad. Facultad de Ingeniería UNAM Tecnología 0.13-micrones 0.13 micrones es un término de fabricación que se refiere a la característica del tamaño de la compuerta de polisilicio en el microprocesador. Esta característica del tamaño tiene una correlación directa con la velocidad y los requisitos de energía del microprocesador. Cuando se reduce el tamaño, la velocidad de procesamiento (MHz) aumenta mientras disminuyen proporcionalmente los requisitos de energía. 0.13 micrones es actualmente el menor tamaño disponible para la producción de gran volumen. Esta tecnología permite velocidades más altas nunca antes vistas, con bajo consumo de energía, resultando en un mejor desempeño y mayor vida de la batería en notebooks más delgadas y livianas. Tecnología Intel® Enhanced SpeedStep? La tecnología Intel® Enhanced SpeedStep? permite la conmutación dinámica en tiempo real del voltaje y la frecuencia entre dos modos de desempeño basada en la demanda del procesador. Esto ocurre conmutando las proporciones del bus del sistema, el voltaje operacional del núcleo y las velocidades del núcleo del procesador sin reiniciarlo. El Procesador Pentium® III-M para Equipos Portátiles está disponible en las siguientes frecuencias y voltajes (modo de Máximo Desempeño/modo Optimizado da Batería): 1133/733 MHz, 1066/733 MHz, 1000/733 MHz, 933/733 MHz y 866/667 MHz a 1,40V/1,15V. Tecnología Intel® MMX™ La tecnología Intel® MMX™ está diseñada para acelerar las aplicaciones multimedia y de comunicaciones. Esta tecnología incluye nuevas instrucciones y tipos de datos que permiten que las aplicaciones puedan conseguir un nuevo nivel de desempeño. Aprovecha el paralelismo inherente en muchos algoritmos de multimedia y comunicaciones, pero mantiene a su vez la compatibilidad total con los sistemas operativos y las aplicaciones existentes. Tecnología Intel SpeedStep® Permite personalizar la informática de alto rendimiento en equipos portátiles. Cuando el equipo portátil se conecta a un tomacorriente de CA ejecuta las aplicaciones empresariales y de Internet más complejas a una velocidad virtualmente idéntica a la de un sistema de desktop. Al funcionar con batería, el procesador se cambia a una frecuencia menor (mediante el cambio de la relación de bus) y a un voltaje inferior, para prolongar la batería a la vez que mantiene un alto nivel de rendimiento. Una función manual permite elevar la frecuencia al funcionar con batería. Teclado digitalizador Dispositivo periférico que se puede asignar con el fin de permitir que los usuarios utilicen un buril (lápiz digital) o los dedos para interactuar con el sistema operativo, al igual que para teclear, escribir y dibujar. Terminal de Internet Equipo cuyo principal propósito es el acceso a Internet, es de configuración es sencilla y por lo general no admite la instalación de software de otros fabricantes. Normalmente, estos equipos ofrecen navegación en Internet personalizada, pantalla dactilar, servicios de correo electrónico, entretenimiento y aplicaciones de gestión de información personal. Pueden estar habilitados para Wi-Fi o conectados a la red local a través de un cable. TFTP Facultad de Ingeniería UNAM (Trivial File Transfer Protocol) Es un protocolo de transferencia muy simple semejante a una versión básica de FTP. TFTP a menudo se utiliza para transferir pequeños archivos entre ordenadores en una red, Es un protocolo de transferencia de ficheros asociado al puerto 69 y basado en UDP que no proporciona ninguna seguridad. Token Ring Es un protocolo para redes de área local de IBM. En síntesis consiste en la presencia de un testigo (token) que circula a través de la red. Cuando una estación o nodo desea transmitir, debe esperar al paso del testigo en condiciones de transportar la información. Arquitectura de red desarrollada por IBM con topología lógica en anillo y técnica de acceso de paso de testigo. Cumple el estándar IEEE 802.5. TPM (Módulo de plataforma fiable) Dispositivo de hardware que se conecta a la motherboard de una plataforma y se utiliza para validar la identidad y los parámetros de operación de un equipo o dispositivo utilizado en un entorno informático fiable. Los TPM y los datos almacenados en ellos se aíslan de los otros componentes de la plataforma. Además, los TPM no se pueden intercambiar entre las plataformas. Los TPM protegen los datos de los usuarios mediante la generación de una firma digital particular que verifica la plataforma y la unidad de disco duro exactas en las que se acceden los datos. UDP (Protocolo de datagrama de usuario) Protocolo sin conexión utilizado principalmente para la broadcast de mensajes a través de una red. Al igual que TCP, UDP se ejecuta por encima de redes IP. A diferencia de TCP/IP, UDP/IP provee muy pocos servicios de recuperación de error y en su lugar ofrece un modo directo para el envío y recepción de datagramas a través de una red IP. Unidad de disco duro La mayoría de los equipos pueden leer y escribir datos ya sea en un disco duro o en un disquete. El mecanismo que lee y escribe en el disco duro se denomina unidad de disco duro. Los discos duros alojan más datos y son más rápidos que los disquetes. Además, las unidades de disco duro y los discos duros asociados son por lo general componentes internos, mientras que los disquetes se pueden extraer y son portátiles. Unicast En el sistema unicast la transmisión de información se dirige a un solo punto. Una dirección que solamente puede ser reconocida por un sistema anfitrión. Comunicación establecida entre un solo emisor y un solo receptor en una red. USB (Bus serie universal) Estándar de bus externo y de interconexión que admite velocidades de transferencia de datos de 12 Mbps. Se puede utilizar un solo puerto USB para conectar hasta 127 dispositivos periféricos, tales como ratones, módems y teclados. Introducido en 1996, USB ha reemplazado completamente los puertos serie y paralelos. También admite instalaciones de plug-and-play y conexión en funcionamiento. USB 2.0, que admite velocidades de transferencia de datos de 480 Mbps, se introdujo en 2002 para Microsoft Windows XP.* Facultad de Ingeniería UNAM UDP UDP es un protocolo sencillo que implementa un nivel de transporte orientado a datagramas. No orientado a conexión y no muy fiable. Los datagramas UDP se encapsulan dentro de la parte de datos de un datagrama IP. VAD Detector de actividad de voz. Detecta actividad de voz y actividades y acciones de no transmisión de paquetes para así optimizar el ancho de banda. Velocidad del núcleo del procesador La velocidad del núcleo del procesador es una medida, en millones, del número de ciclos del procesador en un segundo. Generalmente, los procesadores con MHz o GHz más altos aumentan su habilidad para ejecutar aplicaciones de entretenimiento, comunicación y productividad. Velocidad en bits Cantidad de bits que "pasan" a través de un punto específico de una red de telecomunicaciones en un segundo. La velocidad en bits por lo genera se mide en múltiplos de bits por segundo, por ejemplo, kilobits o millares de bits por segundo (kpbs). El término velocidad en bits también es sinónimo de velocidad de transferencia de datos (o simplemente velocidad de datos). Velocidad del núcleo del procesador Medida en millones de la cantidad de veces que el procesador realiza un ciclo en un segundo. Por lo general, los procesadores con más MHz o GHz brindan mayor capacidad para ejecutar aplicaciones de creación, entretenimiento, comunicación y productividad. Voltaje Ultra Bajo Para lo último en portabilidad. Procesadores que llevan el desempeño y la vida extendida de la batería Intel a una nueva clase de sub-notebooks super delgados y livianos. VPN (Red privada virtual) Conexión de Internet segura que utiliza protocolos de codificación y túnel para crear una conexión segura o túnel con una red privada. Las VPN ofrecen conexiones altamente seguras entre clientes remotos, tales como oficinas sucursales o personal ambulante, y la oficina central. Está disponible una variedad de enrutadores de VPN tanto para la oficina como para el hogar. VTune El analizador de rendimiento Intel® VTune™ se utiliza para determinar la forma en que el software actúa al ejecutarse en un procesador específico, tal como el procesador Intel® Pentium® 4. A continuación, los desarrolladores de software pueden optimizar el software a fin de utilizar las funciones del procesador, tal como SSE2. Facultad de Ingeniería UNAM WAN (Red de área amplia) Una WAN conecta varias LAN y MAN a través de grandes distancias, tal como en todo un país o el mundo. La WAN se construye sobre los servicios de portadores de comunicación de "largo alcance", tales como Sprint* y UUNET*, los cuales utilizan cable de fibra óptica, satélite y otras tecnologías de comunicación de alta velocidad. Red de área amplia consiste básicamente en la unión de 2 ó más redes LAN. WAV Desarrollado por Microsoft e IBM, WAV es el formato estándar de almacenamiento de archivos de sonido en PC. Los archivos de sonido WAV tienen la extensión .wav y se pueden colocar en casi todos los equipos basados en Windows. Wi-Fi (Fidelidad inalámbrica) Nombre que se da a los equipos que cumplen con el estándar inalámbrico 802.11b, tal como lo define la alianza Wi-Fi. Los logotipos de Wi-Fi ayudan a identificar los componentes de red inalámbrica que tienen certificación para funcionar en WLAN 802.11b. WISP (Proveedor de servicios de Internet inalámbricos) Provee servicios de Internet a casas y empresas que utilizan tecnología de red inalámbrica, lo cual incluye 802.11a/b. Los clientes se comunican con el WISP mediante una antena. En algunos casos, la antena del adaptador de red inalámbrica es todo lo que el usuario necesita para comunicarse con el WISP. No obstante, en muchos casos, los usuarios deben instalar una antena externa. Los operadores de puntos de conexión (HSO) son WISP, ya que proveen servicios de Internet a clientes en áreas pequeñas, tal como hoteles, aeropuertos y cafés. WISP proveen acceso a Internet a usuarios que se encuentran en áreas aisladas, donde no existe acceso a DSL y cable. WLAN WLAN son las siglas para Wireless Local Area Network (Red de área local inalámbrica) véase LAN. XHTML (Lenguaje de marcas de hipertexto ampliable) Combina la fortaleza de HTML con la potencia de XML. Está diseñado para clientes de web que no admiten el conjunto completo de funciones de XHTML; por ejemplo, los clientes de web tales como teléfonos móviles, PDA y buscapersonas. Además, XHTML provee el marco de trabajo para futuras ampliaciones de HTML. XML (Lenguaje de marcas ampliable) Versión reducida de SGML que permite que los diseñadores creen sus propias etiquetas personalizadas para proporcionar funcionalidad que no está disponible con HTML. Facultad de Ingeniería UNAM 190 Facultad de Ingeniería UNAM BIBLIOGRAFÍA Y REFERENCIAS: Cisco Confidential. Design Implementation Guide: Voice over IP. Cisco Systems, 1998. Intel White Paper. Call Logging in an IP Environment. Intel Press. EUA, 2004 Intel White Paper. Deploying IP Video Solutions. Ashok Kondru. Intel Press. EUA, 2004 Intel White Paper. Diagnosing Voice Quality Impairments and Designing Solutions for Voice over IP Systems. Intel Press. EUA, 2004 Intel White Paper. Intel® NetStructure™ Host Media Processing Software Release 1.1 for the Windows* Operating System. Intel Corporation. EUA, 2004 Kumar, Vineet. “IP Telephony With H.323. Architectures for unified Networks and Integrated Services” Wiley Computer Publishing, EUA, 1998. Intel White Paper. Next Generetion Enterprise Communication. Michael Stanford. Intel Press. EUA, 2004 Intel White Paper. Overcoming Barriers High-Quality Voice IP Deployments. EUA, 2004 Intel White Paper. Voice over IP Systems. Stephen Madden. Intel Press. EUA, 2004 Intel White Paper. VoIP: Network Convergence and the Changing Telecom Landscape. Peter Gavalakis. Intel Press. EUA, 2004 http://www.digidata-ca.com/Archivos/pronto-2.htm http://www.enterate.unam.mx/ http://www.cisco.com/ http://www.ingetel.com/Paginas/Telefonia_IP_docus.htm Teléfono IP http://www.latca.com/Notas_Tecnicas_VoIP.htm ITU-T H.323: packet-based multimedia communication systems Understanding TCP/IP. 3Com Education Services. 3Com User Group Information U.S.A. 1991