Documentos de Académico
Documentos de Profesional
Documentos de Cultura
TECNOLOGIA ZISC (Zero Instructions Set Computer – Computadora con Cero Conjunto de
Instrucciones), fue desarrollado por IBM en París y por Guy Paillet en California.
En 1992, usando estas técnicas, Guy Paillet trabajó en conjunto con IBM en el desarrollo y
patentamiento de una arquitectura en paralelo de hardware, para emular el cerebro humano,
orientada al reconocimiento de patrones.
El resultado de estos esfuerzos fue ZISC, un chip de altísima escalabilidad y alta tecnología de
firmware para el reconocimiento de patrones.
IBM produjo el chip original y la actual segunda generación de chips, que excede la densidad
de las redes neuronales, en dos veces la densidad de las neuronas.
El resultado neto de este esfuerzo fue una tecnología de reconocimiento de patrones, que
ofrece un acercamiento elegante a la solución de seguimientos complejos, reconocimiento y
comprensión de problemas inherentes al procesamiento avanzado de imágenes y sonido. Este
acercamiento ofrece muchas ventajas intrínsecas, para traducir en este producto
características y capacidades enormes.
La primera generación de chips ZISC contenía 36 células independientes que pueden ser
pensadas como neuronas ó procesadores paralelos. Cada una de estas células es designada
para comparar un vector de entrada de 64 bytes, con uno similar almacenado en la memoria de
las células. Si el vector de entrada acierta con el vector en memoria, se alerta. Si no acierta, no
lo hace. Como una arquitectura paralela, el chip ZISC le dice a todas las células que comparen
el vector de entrada con la memoria, al mismo tiempo. Como salida, el chip provee el número
de la célula que tiene el acierto, ó indica que no hubo coincidencias.
Silicon Recognition, la empresa de Guy Paillet, desarrolló la tecnología ZISC llamándola PALM
(Parallel Associative Learning Memory – Memoria Paralela de Aprendizaje Asociativo). Esta
combina un sistema de control, típicamente un FPGA y memoria DRAM, con uno ó más chips
ZISC, para crear un sistema de reconocimiento.
1
Es una tecnología de avanzada para identificación de modelos ó patrones (reconocimiento
positivo) ó para detección de anomalías ó novedades en el patrón (reconocimiento negativo),
con dispositivos inteligentes distribuidos.
ZISC ofrece una alternativa revolucionaria a las memorias y procesadores estándar, para
aplicaciones orientadas al seguimiento de objetos, reconocimiento de patrones, procesamiento
de señales de imagen y reconocimiento de información (data-mining).
Esto representa un paradigma significante que requiere cambiar a nuevas formas de pensar,
pero también increíbles nuevas oportunidades para el procesamiento en tiempo real.
Esto se debe a que se necesita observar en cada ubicación del array, para ver si hay un
acierto. Con ZISC, el sistema provee la ubicación del acierto sin observar que hay dentro de
cada ubicación. En lugar de ver el problema como “¿Qué hay en la ubicación Nº 12 del array?”
ó “¿Hay un acierto?”, el problema se convierte en “Ubicación 12: acierto”.
Con la eliminación del paso de carga y comparación del patrón para cada ubicación, la
velocidad del sistema se incrementa increíblemente.
Los chips ZISC también pueden ser usados para encontrar comparaciones confusas. En vez
de preguntarse si encontró la comparación exacta, puede preguntar por el ítem más cercano o
siguiente. En este caso, las células están concentradas en una especie de “umbral de alertas”,
y el controlador del chip observa cual de todos los ítems devuelve el valor más cercano. Por
ejemplo, en la ubicación 12 podría haber 63/64 aciertos, y en la 14 podría haber 62/64. El
sistema devuelve la ubicación 12 como el “mejor acierto”. En este punto, el software de alto
nivel puede determinar si el acierto es apropiado.
El sistema puede ser instruido también por ejemplos contables. Si el sistema confunde una
manzana verde con una roja, lo puede corregir con el agregado de un nuevo patrón en una
2
célula “roja”. Eventualmente, el sistema aprenderá a separar manzanas en un alto grado de
exactitud.
El poder real de ZISC reside en la escalabilidad. La red ZISC puede ser expandida añadiendo
más dispositivos ZISC sin sufrir una reducción en la velocidad de reconocimiento.
Teóricamente no existen límites con respecto al número de células que pueden componer la
red. Un práctico ejemplo de esto es imaginar un gran estadio de fútbol con capacidad para
cincuenta mil personas. Si el anunciador ejecuta un aviso sobre el público, cada persona
escucha el mensaje al mismo tiempo y lo pueden procesar en un modo verdaderamente
paralelo. En opuesto, en una versión en serie tradicional, el anunciador debe moverse de
asiento en asiento y transmitir el mensaje de a una persona a la vez.
Hay muchas aplicaciones para esta tecnología. Reconocimiento facial es un caso de los más
usados. Por ejemplo, si su patrón es reconocido, el acceso está garantizado. Si esta tecnología
fuera puesta en una cámara en el frente de su casa, su puerta se abriría automáticamente
cuando usted se aproxime a ella.
Hoy, el chip ZISC trabaja a 20 Mhz y puede encontrar un acierto entre diez mil patrones en solo
3 microsegundos.
Las características del chip ZISC lo convierten en algo útil en dos situaciones específicas. La
primera es el motor de reconocimiento, introducido en una computadora tradicional. Silicon
Recognition ofrece placas PCI, ISA, PCMCIA y VME para ello. En este contexto, los chips ZISC
3
son usados para descargar la función de reconocimiento desde una computadora de propósitos
generales.
La red neuronal pretende imitar el método usado por el cerebro humano para resolver
problemas. Los dispositivos están entrenados, no programados.
1 – Recolección de imágenes.
2 – Anotar objetos de interés en una categoría (categorizar).
3 – Enseñar al motor de reconocimiento.
4 – Validar el motor de reconocimiento con el 100 % de las imágenes
recolectadas.
5 – Reconocer, usando el motor de reconocimiento cargado en una PC ó
cámara.
4
Este es el caso en acercamientos probabilísticos, donde la decisión final es tomada una vez
que la probabilidad del vector entrada pertenece a alguna categoría. En estos casos, la
exploración es un recurso que consume tareas. Estructuras hiper paralelas, como las redes
neuronales, dan una solución muy eficiente a ésta clase de problemas.
Una red ZISC puede componerse de muchos procesadores ZISC en paralelo. La extensión de
la red no requiere lógica, solo resistencias y eventualmente generadores de energía. Esta
característica puede extender múltiples placas ZISC en cascada, con un simple conector.
Como resultado, no hay límites en el número de patrones y categorías necesarios para
construir un motor de reconocimiento exacto.
ZISC permite dividir la red neuronal en subredes. Una subred es definida por un valor
contextual, el cual puede setear un nivel de registro global (CSR – Control Status Register) a
nivel de neurona. El aprendizaje ó el reconocimiento pueden estar limitados según el valor del
contexto.
ZISC posee dos categorías de registros. Los primeros, llamados registros globales, contienen
información para el dispositivo (o para la red completa, cuando hay muchos dispositivos en
cascada).
Los segundos, llamados registros neuronales, contienen información local para cada neurona.
La neurona se define como un recurso capaz de almacenar patrones con su categoría y campo
de influencia. Una neurona también tiene su propia lógica para calcular distancias y comparar
campos de influencia, como así también para construir procesos de aprendizaje ajustando los
campos de influencia como nuevos patrones almacenados en la red.
Todas las neuronas se comunican en conjunto a través del bus comunicador Inter-ZISC. Un
protocolo eficiente permite un verdadero paralelismo de todas las neuronas de la red. Este bus,
es re direccionado internamente para permitir la conexión de varios módulos ZISC, sin impactar
en la performance.
La familia ZISC está diseñada para extender la red neuronal más allá del límite de un simple
chip, sin impactar en la performance. Algunas aplicaciones pueden también tener el beneficio
de multicapas, donde las decisiones de una capa pueden convertirse en vectores de entrada
de la segunda capa. Esto también puede hacerse conectando varios chips juntos en modo
multiplexado.
El bus de E/S de ZISC, fue diseñado para permitir una amplia variedad de agregados, desde
una máquina de estado simple a micro controladores o buses. La elección es dada al usuario
para elegir entre protocolos.
Basada en tecnología de red neuronal, el corazón de la ZiCAM es un circuito ZISC. Esto resulta
en un sistema que puede realizar clasificaciones multidimensionales ó no lineales.
5
Viene provista con una interfaz gráfica llamada “ZiCAM EZI-Teacher”, la cual es usada para
entrenar la cámara mientras está fuera de línea. Este interfaz puede ser usada para capturar
objetos, definir campos visuales, reconocer características, testear el conocimiento de la
cámara y para poner la cámara en modo inspección.
6
Motor de reconocimiento multimedia (MUREN)
Memoria flash opcional para guardar imágenes
Salida análoga de video VGA
Display local para resultados de inspección
Interfaz Ethernet 10/100 BaseT
60 cuadros por segundo (fps)
Cada neurona ZISC posee 64 bytes de entrada. Todas las neuronas son conectadas entre
ellas por procesamiento paralelo (78 neuronas por chip). La versión estándar es de 156
neuronas por chip, y la versión plus es de 312.
La ZiCAM es una unidad modular con cámara incorporada, placa de procesador ZISC, CPU y
memoria, placa de energía y memoria flash opcional.
Especificaciones técnicas
Chip: 1/3” CMOS
Píxeles: 640 x 480
Tamaño de célula: 7.8 micrones x 7.8 micrones
Escaneo: 60 Hz no interlazado
Reloj de píxel: 25.175 Mhz
Salida de video: 640 x 480 VGA
7
Interfaz: 10/100 BaseT Ethernet
Consumo: 12 volts
Temperatura de trabajo: -10º C a 45º C
Tamaño: 72.9 mm x 72.9 mm x 69.7 mm
Peso: 324 gr
Funciones opcionales: 4 chips ZISC (312 neuronas), 128 ó
256 MB de memoria flash
Accesorios: lentes, luces, conector RS-232
Este kit está compuesto por dos chips ZISC 78 (156 procesadores paralelos, con un millón de
reconocimientos por segundo), chips de arquitectura FPGA Spartan II, 2 memorias SRAM para
almacenamiento en general, memoria FLASH EPROM para reconfiguración de firmware, y
cinco conectores de E/S. El entorno de software es ZDK y Xilinx FPGA.
Actualmente Silicon Recognition se encuentra trabajando con redes de diez mil y quince mil
células a modo de prueba, como en una especie de desafío al límite de expansión de las redes
ZISC.