stringtranslate.com

Conjunto de chips originales Amiga

Conjunto de chips Amiga

El conjunto de chips original ( OCS ) es un conjunto de chips utilizado en las primeras computadoras Commodore Amiga y definió las capacidades gráficas y de sonido del Amiga. Fue sucedido por el conjunto de chips mejorado (ECS) ligeramente mejorado y la arquitectura de gráficos avanzada (AGA) muy mejorada.

El chipset original apareció en los modelos Amiga fabricados entre 1985 y 1990: Amiga 1000 , Amiga 2000 , Amiga CDTV y Amiga 500 .

Resumen de chips

El conjunto de chips que dio al Amiga sus características gráficas únicas consta de tres chips principales "personalizados"; Agnus , Denise y Paula . Tanto el chipset original como el chipset mejorado fueron fabricados utilizando tecnología lógica NMOS por la filial de fabricación de chips de Commodore , MOS Technology . Según Jay Miner , el chipset OCS se fabricó en un proceso de fabricación de 5 µm, mientras que AGA Lisa se implementó en un proceso de 1,5 µm. Los tres chips personalizados se empaquetaron originalmente en DIP de 48 pines ; Las versiones posteriores de Agnus, conocidas como Fat Agnus, estaban empaquetadas en un PLCC de 84 pines .

Agnus es el chip central del diseño. Controla todo el acceso a la RAM del chip tanto desde el procesador central 68000 como desde los otros chips personalizados, utilizando un complicado sistema de prioridad. Agnus incluye subcomponentes conocidos como blitter (transferencia rápida de datos en la memoria sin la intervención del procesador) y Copper (coprocesador sincronizado con video). El Agnus original puede direccionar 512 KB de RAM en chip. Las revisiones posteriores, denominadas 'Fat Agnus', agregaron 512 KB de RAM pseudorrápida, que para ECS se cambió a 1 MB (a veces llamado 'Fatter Agnus') y posteriormente a 2 MB de RAM en chip.

Denise es la procesadora de video principal. Sin utilizar overscan , la pantalla gráfica del Amiga tiene 320 o 640 píxeles de ancho por 200 ( NTSC ) o 256 ( PAL ) píxeles de alto. Denise también admite el entrelazado , que duplica la resolución vertical, a costa de un parpadeo intrusivo en los monitores típicos de esa época. Se utilizan gráficos de mapa de bits planos , que dividen los bits individuales por píxel en áreas separadas de memoria, llamadas planos de bits . En funcionamiento normal, Denise permite entre uno y cinco planos de bits, lo que proporciona de dos a 32 colores únicos. Estos colores se seleccionan de una paleta de 4096 colores (cuatro bits por componente RGB ). Un sexto plano de bits está disponible para dos modos de vídeo especiales: modo Halfbrite y modo Hold-And-Modify (HAM). Denise también admite ocho sprites , desplazamiento de un solo píxel y un modo de "campo de juego dual". Denise también maneja la entrada del mouse y del joystick digital.

Paula es principalmente el chip de audio, con cuatro canales de sonido PCM de 8 bits mezclados por hardware independientes , cada uno de los cuales admite 65 niveles de volumen (sin sonido hasta el volumen máximo) y velocidades de salida de formas de onda desde aproximadamente 20 muestras por segundo hasta casi 29.000 muestras por segundo. . Paula también maneja interrupciones y varias funciones de E/S , incluida la unidad de disquete , el puerto serie y los joysticks analógicos .

Hay muchas similitudes, tanto en la funcionalidad general como en la división de la funcionalidad en los chips de tres componentes, entre el chipset OCS y el chipset mucho más antiguo y simple de la familia Atari de computadoras domésticas de 8 bits , que consta de ANTIC , GTIA y chips POKEY ; Ambos conjuntos de chips fueron diseñados conceptualmente por Jay Miner , lo que explica la similitud.

Agnus

MOS 8367R0 - Agnus

El chip Agnus tiene el control general de todo el funcionamiento del chipset. Todas las operaciones están sincronizadas con la posición del haz de vídeo. Esto incluye el acceso a la RAM incorporada , conocida como RAM del chip porque el chipset tiene acceso a ella. Tanto el procesador central 68000 como otros miembros del chipset tienen que arbitrar el acceso a la RAM del chip a través de Agnus . En términos de arquitectura informática, esto es acceso directo a memoria (DMA), donde Agnus es el controlador DMA (DMAC).

Agnus tiene una política de acceso a la memoria compleja y basada en prioridades que intenta coordinar mejor las solicitudes de acceso a la memoria entre recursos en competencia. Por ejemplo, las recuperaciones de datos de plano de bits tienen prioridad sobre las transferencias de blitter, ya que la visualización inmediata de los datos del búfer de cuadros se considera más importante que el procesamiento de la memoria por parte del blitter. Agnus también intenta ordenar los accesos de tal manera que se superpongan los ciclos del bus de la CPU con los ciclos de DMA. Como el procesador 68000 original en Amigas tendía a acceder solo a la memoria en cada segundo ciclo de memoria disponible, Agnus opera un sistema donde los ciclos de acceso a la memoria "impares" se asignan primero y, según sea necesario, al chip personalizado DMA de tiempo crítico, mientras que los ciclos restantes están disponibles para la CPU, por lo que la CPU generalmente no queda bloqueada para el acceso a la memoria y no parece disminuir la velocidad. Sin embargo, el acceso al chip personalizado que no es crítico en el tiempo, como las transferencias blitter , puede consumir cualquier ciclo par o impar sobrante y, si el indicador "BLITHOG" (blitter hog) está activado, Agnus puede bloquear los ciclos pares de la CPU . en deferencia al blitter .

Los tiempos de Agnus se miden en "relojes de colores" de 280  ns . Esto equivale a dos píxeles de baja resolución (140 ns) o cuatro píxeles de alta resolución (70 ns). Al igual que Denise, estos horarios se diseñaron para mostrarse en televisores domésticos y se pueden sincronizar con una fuente de reloj externa.

Blitter

El blitter es un subcomponente de Agnus. "Blit" es la abreviatura de "transferencia de imágenes en bloque" o bit blit . El blitter es una unidad de operación lógica y transferencia de memoria altamente paralela. Tiene tres modos de operación: copiar bloques de memoria, llenar bloques (por ejemplo, relleno de polígonos) y dibujar líneas.

El blitter permite una copia rápida de la memoria de vídeo, lo que significa que la CPU puede quedar libre para otras tareas. El blitter se utilizaba principalmente para dibujar y volver a dibujar imágenes gráficas en la pantalla, llamadas "bobs", abreviatura de "objetos blitter".

El modo de copia en bloque del blitter toma de cero a tres fuentes de datos en la memoria, llamadas A, B y C, realiza una función booleana programable en las fuentes de datos y escribe el resultado en un área de destino, D. Cualquiera de estas cuatro áreas puede superponerse. El blitter se ejecuta desde el inicio del bloque hasta el final, conocido como modo "ascendente", o en modo inverso, "descendente".

Los bloques son "rectangulares"; tienen un "ancho" en múltiplos de 16 bits, una altura medida en "líneas" y una distancia de "zancada" para pasar del final de una línea a la siguiente. Esto permite que el blitter funcione en cualquier resolución de vídeo de hasta 1.024×1.024 píxeles. [1] La copia realiza automáticamente una operación lógica por píxel. Estas operaciones se describen genéricamente utilizando minterms . Esto se usa más comúnmente para hacer copias directas (D = A), o aplicar una máscara de píxeles alrededor de objetos borrados (D = (C AND B) OR A). La copia también puede desplazar cada línea de 0 a 15 píxeles. Esto permite que el blitter dibuje en desplazamientos de píxeles que no son exactamente múltiplos de 16.

Estas funciones permiten al Amiga mover ventanas GUI por la pantalla rápidamente, ya que cada una se representa en el espacio de memoria gráfica como un bloque rectangular de memoria que puede desplazarse a cualquier ubicación de memoria de la pantalla requerida a voluntad.

El modo de línea del blitter dibuja líneas gruesas de un solo píxel utilizando el algoritmo de líneas de Bresenham . También puede aplicar un patrón repetitivo de 16 bits a la línea. El modo de línea también se puede usar para dibujar bobs rotados: cada línea de datos de bob se usa como patrón de línea, mientras que el modo de línea dibuja el bob inclinado línea por línea.

El modo de llenado del blitter se utiliza para llenar tramos horizontales por línea. En cada tramo, lee cada píxel por turno, de derecha a izquierda. Cada vez que lee un píxel establecido, activa o desactiva el modo de relleno. Cuando el modo de relleno está activado, configura cada píxel hasta que se desactiva el modo de relleno o la línea termina. Juntos, estos modos permiten que el blitter dibuje polígonos individuales con sombra plana. Más tarde, los Amigas tendieron a utilizar una combinación de CPU más rápida y blitter para muchas operaciones.

Cobre

El Cobre es otro subcomponente de Agnus; El nombre es la abreviatura de "coprocesador". Copper es una máquina programable de estados finitos que ejecuta un flujo de instrucciones programado, sincronizado con el hardware de video.

Cuando está encendido, el Cobre tiene tres estados; ya sea leyendo una instrucción, ejecutándola o esperando una posición específica del haz de video. El Copper ejecuta un programa llamado lista Copper en paralelo con la CPU principal . Copper funciona en sincronía con el haz de vídeo y se puede utilizar para realizar diversas operaciones que requieren sincronización de vídeo. Por lo general, se usa para controlar la salida de video, pero puede escribir en la mayoría de los registros del chipset y, por lo tanto, puede usarse para iniciar blits, configurar registros de audio o interrumpir la CPU.

La lista Copper tiene tres tipos de instrucciones, cada una de las cuales es un par de dos bytes, cuatro bytes en total:

La duración del programa de la lista Copper está limitada por el tiempo de ejecución. Copper reinicia la ejecución de la lista Copper al comienzo de cada nuevo cuadro de video. No hay ninguna instrucción explícita de "finalización"; en cambio, la instrucción WAIT se utiliza para esperar a una ubicación que nunca se alcanza.

Usos del Cobre

Temporización de vídeo externo

En circunstancias normales, Amiga genera sus propios tiempos de video, pero Agnus también admite la sincronización del sistema con una señal externa para lograr genlocking con hardware de video externo. También hay una salida de 1 bit en este conector que indica si el Amiga está emitiendo color de fondo o no, lo que permite superponer fácilmente el vídeo del Amiga en un vídeo externo. Esto hizo que Amiga fuera particularmente atractivo como generador de caracteres para títulos de videos y trabajos de transmisión, ya que evitaba el uso y el gasto de unidades A/B roll y chroma key que se requerirían sin el soporte genlock. La compatibilidad con capacidades de sobreexploración, entrelazado y genlocking, y el hecho de que el tiempo de visualización era muy cercano a los estándares de transmisión (NTSC o PAL), hicieron del Amiga el primer ordenador ideal para fines de vídeo y, de hecho, se utilizó en muchos estudios para digitalización de datos de vídeo (a veces llamado captura de fotogramas), subtitulado y noticias en vídeo interactivas.

Denise

MOS 8362R5 - Denise

Denise está programada para recuperar datos de vídeo planos de uno a cinco planos de bits y traducirlos en una búsqueda de color . El número de planos de bits es arbitrario, por lo que si no se necesitan 32 colores, se pueden utilizar 2, 4, 8 o 16 en su lugar. El número de planos de bits (y la resolución) se puede cambiar sobre la marcha, generalmente mediante Copper. Esto permite un uso muy económico de la RAM y un equilibrio entre la velocidad de procesamiento de la CPU y la sofisticación gráfica cuando se ejecuta desde el chip RAM (ya que los modos superiores a 4 bpp en lores o 2 bpp en contrataciones utilizan canales DMA adicionales que pueden ralentizar o detener temporalmente la CPU además). a los canales habituales no conflictivos). También puede haber un sexto plano de bits, que se puede utilizar en tres modos gráficos especiales:

Hay dos resoluciones de gráficos horizontales, "lowres" con 140 ns píxeles y "hires" con 70 ns píxeles, con un valor predeterminado de 320 o 640 píxeles horizontales de ancho sin utilizar sobreexploración. Como la salida de píxeles está regulada por el reloj principal del sistema, que se basa directamente en el reloj de ráfaga de color NTSC, estos tamaños casi llenan el ancho de un televisor estándar con solo un borde delgado de "exploración inferior" entre los gráficos y el borde de la pantalla en comparación. a muchas otras computadoras domésticas contemporáneas, para una apariencia más cercana a una consola de juegos pero con detalles más finos. Además de esto, Denise admite una sobreexploración razonablemente extensa; Técnicamente, se pueden especificar modos con datos suficientes para hasta 400 u 800 píxeles (+25%), aunque en realidad esto solo es útil para desplazamiento y efectos especiales que implican la visualización parcial de gráficos grandes, ya que se cumple un límite de hardware separado en 368 ( o 736) píxeles, que es el máximo que cabe entre el final de un período de supresión y el comienzo del siguiente, aunque es poco probable que incluso esta cantidad de píxeles sean visibles en cualquier pantalla que no sea un monitor dedicado que permita el ajuste de ancho de escaneo horizontal, ya que gran parte de la imagen, por diseño, desaparecerá perfectamente detrás del marco de la pantalla (o, en las pantallas LCD, se recortará en el borde del panel). [4] [5] Debido a la estructura altamente regular de la sincronización del Amiga en relación con las líneas de exploración y la asignación de recursos DMA para diversos usos además de los gráficos normales del "campo de juego", el aumento de la resolución horizontal también es una compensación entre el número de píxeles y la cantidad de hardware. Hay sprites disponibles, ya que aumentar las ranuras DMA dedicadas al video del campo de juego termina robando parte (de 1 a 7 del total de 8) del motor de sprites.[1]

La resolución vertical, sin sobreexploración, es de 200 píxeles para un Amiga NTSC de 60 Hz o de 256 para un Amiga PAL de 50 Hz. Esto se puede duplicar usando una pantalla entrelazada y, al igual que con la resolución horizontal, aumentar usando sobreexploración, hasta un máximo de 241 (o 483) para NTSC y 283 (o 567) para PAL (los modos entrelazados obtienen una línea adicional como máximo). está determinado por la cantidad de líneas que se toman del total disponible mediante el borrado y la sincronización, y el total de líneas de exploración en modos no entrelazados es la mitad de los recuentos entrelazados originales con números impares y especificaciones de transmisión, redondeados hacia abajo).

A partir de ECS, Denise se actualizó para admitir el modo "Productividad", que permitía 640x400 no entrelazados, aunque con solo 4 colores.

Denise puede componer hasta ocho sprites de 16 píxeles de ancho por línea de escaneo (en modo automático) encima, debajo o entre campos de juego, y detectar colisiones entre sprites y campos de juego o entre sprites. Estos sprites tienen tres colores visibles y un color transparente. Opcionalmente, se pueden "unir" pares adyacentes de sprites para crear un único sprite de 15 colores. El Sprite DMA lee datos para formar un canal de sprites controlado por sus registros, lo que permite la reutilización vertical de sprites. Tiene que haber una línea de exploración vacía entre dos entradas sucesivas de la lista para permitir la actualización de los datos del sprite. Utilizando manipulaciones de registro de cobre o CPU, cada canal de sprites se puede reutilizar varias veces en un solo cuadro para aumentar el total de sprites por cuadro. Los registros de posición de los sprites también se pueden cambiar durante una línea de exploración, aumentando el número total de sprites en una sola línea de exploración. Sin embargo, los datos del sprite , o forma, solo se recuperan una vez por línea de escaneo y no se pueden cambiar. El primer juego de Amiga que utilizó los registros de reposición de sprites durante una línea de exploración fue Hybris, lanzado en 1988.

El chip Denise no admite un modo de texto dedicado. [6]

Finalmente, Denise, junto a los CIA, es responsable de manejar las entradas X/Y del mouse/joystick.

La noción de que Denise recupera datos de planos de bits y sprites es una simplificación. Es Agnus quien mantiene los contadores de posición de pantalla horizontal y vertical e inicia las operaciones de lectura de DRAM. Denise tiene varios registros de plano de bits que contienen 16 bits de datos cada uno, suficiente para dibujar 16 píxeles. Cuando Agnus emite una escritura en el registro 1, todos los registros se transfieren a registros de desplazamiento separados a partir de los cuales se generan píxeles (al mismo tiempo se cargan nuevos valores desde la DRAM). Denise tampoco conoce ninguna dirección de memoria.

paula

Chip Paula (MOS Technology 8364 R4) utilizado en Amiga 1000
Troquel del chip Paula (MOS Technology 8364 R4)

El chip Paula, diseñado por Glenn Keller, de MOS Technology , es el controlador de interrupciones , pero también incluye lógica para reproducción de audio, control de disquetera, puerto serie de entrada/salida y botones de ratón/joystick de dos y tres señales. La lógica siguió siendo funcionalmente idéntica en todos los modelos Amiga de Commodore.

Audio

Paula tiene cuatro canales de sonido PCM de 8 bits controlados por DMA . Se mezclan dos canales de sonido en la salida de audio izquierda y los otros dos se mezclan en la salida derecha, produciendo una salida de audio estéreo . El único formato de muestra de hardware admitido es el complemento a dos lineal de 8 bits con signo . Cada canal de sonido tiene una frecuencia independiente y un control de volumen de 6 bits (64 niveles). Internamente, el hardware de audio está implementado mediante cuatro máquinas de estados, cada una con ocho estados diferentes.

Además, el hardware permite que un canal de un par de canales module el período o la amplitud del otro canal. Rara vez se usa en Amiga debido a que tanto la frecuencia como el volumen se pueden controlar mejor, pero podría usarse para lograr diferentes tipos de trémolo y vibrato , e incluso efectos rudimentarios de síntesis FM .

El audio se puede emitir mediante dos métodos. La mayoría de las veces se utiliza audio controlado por DMA. Como se explicó en la discusión de Agnus, el acceso a la memoria tiene prioridad y hay disponible una ranura DMA por línea de exploración para cada uno de los cuatro canales de sonido. En una pantalla NTSC o PAL normal, la reproducción de audio DMA está limitada a una velocidad de salida máxima de 28,867 valores por canal (PAL: 28837) por segundo, con un total de 57674 (PAL: 57734) valores por segundo en cada salida estéreo. Esta velocidad se puede aumentar con los conjuntos de chips ECS y AGA utilizando un modo de vídeo con una velocidad de exploración horizontal más alta .

Alternativamente, Paula puede indicarle a la CPU que cargue una nueva muestra en cualquiera de los cuatro buffers de salida de audio generando una interrupción cuando se necesita una nueva muestra. Esto permite velocidades de salida que superan los 57 kHz por canal y aumenta la cantidad de voces posibles (sonidos simultáneos) a través de la mezcla de software.

El Amiga contiene un filtro de paso bajo analógico ( filtro de reconstrucción ) que es externo a Paula. El filtro es un filtro de paso bajo Butterworth de 12 dB/oct a aproximadamente 3,3 kHz. El filtro solo se puede aplicar globalmente a los cuatro canales. En modelos posteriores al Amiga 1000 (excluyendo la primera revisión del Amiga 500), el brillo del LED de encendido se utiliza para indicar el estado del filtro. El filtro está activo cuando el LED tiene un brillo normal y se desactiva cuando está atenuado (en los primeros modelos Amiga 500 el LED se apagaba por completo). Los modelos lanzados antes del Amiga 1200 también tienen un filtro de paso bajo estático tipo "perilla de tono" que se habilita independientemente del "filtro LED" opcional. Este filtro es un filtro de paso bajo de 6 dB/oct con frecuencia de corte de 4,5 o 5 kHz.

Posteriormente se desarrolló una técnica de software que puede reproducir audio de 14 bits combinando dos canales configurados en diferentes volúmenes. Esto da como resultado dos canales de 14 bits en lugar de cuatro canales de 8 bits. Esto se logra reproduciendo el byte alto de una muestra de 16 bits al volumen máximo y el byte bajo al volumen mínimo (ambos rangos se superponen, por lo que el byte bajo debe desplazarse dos bits a la derecha). La operación de desplazamiento de bits requiere una pequeña cantidad de CPU o sobrecarga de blitter, mientras que la reproducción convencional de 8 bits se basa casi en su totalidad en DMA. Esta técnica se incorporó al subsistema de audio reorientable AHI , lo que permite que las aplicaciones compatibles utilicen este modo de forma transparente.

Controlador de disquete

El controlador de disquete es inusualmente flexible. Puede leer y escribir secuencias de bits sin procesar directamente desde y hacia el disco a través de DMA o E/S programadas a 500 ( doble densidad ) o 250 kbit/s ( densidad única o GCR). MFM o GCR fueron los dos formatos más utilizados, aunque en teoría se podría utilizar cualquier código de longitud limitada . También proporciona una serie de funciones convenientes, como sincronización en palabra (en la codificación MFM, generalmente se usa $4489 como palabra de sincronización ). La codificación/decodificación MFM generalmente se realiza con el blitter: una pasada para decodificar y tres pasadas para codificar. Normalmente, toda la pista se lee o escribe de una sola vez, en lugar de sector por sector; esto hizo posible eliminar la mayoría de los espacios entre sectores que la mayoría de los formatos de disquete necesitan para evitar de forma segura el "sangrado" de un sector escrito en el encabezado previamente existente del siguiente sector debido a las variaciones de velocidad de la unidad. Si todos los sectores y sus encabezados siempre se escriben de una sola vez, dicho sangrado solo es un problema al final de la pista (que aún no debe regresar al principio), de modo que solo se necesita un espacio por pista. De esta manera, para el formato de disco nativo Amiga, la capacidad de almacenamiento sin procesar de los discos DD de 3,5 pulgadas se incrementó de los típicos 720 KB a 880 KB, aunque el sistema de archivos no tan ideal de los modelos anteriores de Amiga lo redujo nuevamente a aproximadamente 830. KB de datos de carga útil reales.

Además del formato de disco nativo de 880 KB y 3,5 pulgadas, el controlador puede manejar muchos formatos externos, como por ejemplo:

El Amiga 3000 introdujo una unidad de disquete especial de doble velocidad que también permitía el uso de discos de alta densidad con doble capacidad sin ningún cambio en el controlador de disquete de Paula.

Puerto serial

El puerto serie es rudimentario, utiliza únicamente entrada/salida programada y carece de un búfer FIFO . Sin embargo, se puede seleccionar prácticamente cualquier velocidad de bits, incluidas todas las velocidades estándar, velocidad MIDI y velocidades personalizadas extremadamente altas.

Origen de los nombres de los chips

Hoja de ruta del chipset de gráficos Amiga

Ver también

Referencias

  1. ^ El registro BLTSIZE contiene seis bits para palabras horizontales y diez bits para líneas verticales.
  2. ^ Inventado en 1989 por Rhett Anderson "Cronología de las computadoras Amiga (1989)". Archivado desde el original el 10 de julio de 2006 . Consultado el 10 de julio de 2006 .
  3. ^ "OLD-COMPUTERS.COM: El museo". Archivado desde el original el 28 de mayo de 2010 . Consultado el 27 de mayo de 2005 .
  4. ^ "Tamaños de visualización, desplazamientos y recortes".
  5. ^ "3 / Planos de bits y ventanas de todos los tamaños / Tamaño máximo de ventana de visualización".
  6. ^ "El Museo Amiga» Denise " . Consultado el 28 de febrero de 2021 .

enlaces externos