stringtranslate.com

Оригинальный набор микросхем Amiga

Набор микросхем Amiga

Оригинальный набор микросхем ( OCS ) — это набор микросхем , который использовался в самых ранних компьютерах Commodore Amiga и определял графические и звуковые возможности Amiga. На смену ему пришли слегка улучшенный расширенный набор микросхем (ECS) и значительно улучшенная усовершенствованная графическая архитектура (AGA).

Оригинальный набор микросхем появился в моделях Amiga, выпущенных между 1985 и 1990 годами: Amiga 1000 , Amiga 2000 , Amiga CDTV и Amiga 500 .

Обзор фишек

Чипсет, который придал Amiga уникальные графические возможности, состоит из трех основных «специальных» чипов; Агнус , Дениз и Паула . И исходный, и улучшенный набор микросхем были изготовлены с использованием логической технологии NMOS дочерней компанией Commodore по производству микросхем MOS Technology . По словам Джея Майнера , чипсет OCS был изготовлен по 5-микронной технологии, а AGA Lisa — по 1,5-мкм. Все три нестандартных чипа изначально были упакованы в 48-контактные DIP- разъемы ; более поздние версии Agnus, известные как Fat Agnus, были упакованы в 84-контактный PLCC .

Agnus — центральная фишка в дизайне. Он контролирует весь доступ к оперативной памяти чипа как центрального процессора 68000 , так и других специализированных чипов, используя сложную систему приоритетов. Agnus включает в себя подкомпоненты, известные как блиттер (быстрая передача данных в память без вмешательства процессора) и Copper (сопроцессор с синхронизацией видео). Оригинальный Agnus может адресовать 512 КБ оперативной памяти чипа. В более поздних версиях, получивших название «Fat Agnus», было добавлено псевдобыстрое ОЗУ объемом 512 КБ , которое для ECS было изменено на 1 МБ (иногда называемое «Fatter Agnus»), а затем на 2 МБ чипового ОЗУ.

Дениз — главный видеопроцессор. Без использования overscan графический дисплей Amiga имеет ширину 320 или 640 пикселей и высоту 200 ( NTSC ) или 256 ( PAL ). Дениз также поддерживает чересстрочную развертку , которая удваивает разрешение по вертикали за счет навязчивого мерцания на типичных мониторах той эпохи. Используется плоская растровая графика , которая разбивает отдельные биты на пиксель на отдельные области памяти, называемые битовыми плоскостями . При нормальной работе Denise допускает от одной до пяти битовых плоскостей, что дает от двух до 32 уникальных цветов. Эти цвета выбираются из палитры из 4096 цветов (по четыре бита на компонент RGB ). Шестая битовая плоскость доступна для двух специальных видеорежимов: режима Halfbrite и режима Hold-And-Modify (HAM). Дениз также поддерживает восемь спрайтов , однопиксельную прокрутку и режим «двойного игрового поля». Дениз также управляет вводом данных с помощью мыши и цифрового джойстика.

Paula — это, прежде всего, аудиочип с четырьмя независимыми 8-битными звуковыми каналами PCM , каждый из которых поддерживает 65 уровней громкости (от отсутствия звука до максимальной громкости) и скорость вывода сигналов от примерно 20 семплов в секунду до почти 29 000 сэмплов в секунду. . Паула также обрабатывает прерывания и различные функции ввода-вывода, включая дисковод гибких дисков , последовательный порт и аналоговые джойстики .

Между набором микросхем OCS и гораздо более ранним и более простым набором микросхем семейства 8-битных домашних компьютеров Atari, состоящим из ANTIC , GTIA и фишки ПОКЕЙ ; оба чипсета были концептуально разработаны Джеем Майнером , что и объясняет сходство.

Агнус

МОС 8367R0 - Агнус

Чип Agnus полностью контролирует работу всего набора микросхем. Все операции синхронизируются с положением видеолуча. Это включает в себя доступ к встроенной оперативной памяти , известной как RAM чипа, поскольку чипсет имеет к ней доступ. И центральному процессору 68000 , и другим элементам набора микросхем приходится решать вопрос о доступе к оперативной памяти чипа через Agnus . С точки зрения вычислительной архитектуры это прямой доступ к памяти (DMA), где Agnus — контроллер DMA (DMAC).

Agnus имеет сложную политику доступа к памяти, основанную на приоритетах, которая пытается наилучшим образом координировать запросы на доступ к памяти между конкурирующими ресурсами. Например, выборка данных битовой плоскости имеет приоритет над передачей блиттера, поскольку немедленное отображение данных кадрового буфера считается более важным, чем обработка памяти блиттером. Agnus также пытается упорядочить доступ таким образом, чтобы циклы шины ЦП перекрывались с циклами DMA. Поскольку исходный процессор 68000 в Amigas имел тенденцию обращаться к памяти только в каждом втором доступном цикле памяти, Agnus использует систему, в которой «нечетные» циклы доступа к памяти выделяются первыми и по мере необходимости для критичного ко времени специального чипа DMA, в то время как любые оставшиеся циклы доступны для ЦП, поэтому ЦП обычно не блокируется из-за доступа к памяти и не замедляется. Однако некритичный ко времени доступ к пользовательскому чипу, такой как блиттер- передача, может использовать любые свободные нечетные или четные циклы, и, если установлен флаг «BLITHOG» (блиттер-свинья), Agnus может заблокировать четные циклы из ЦП . из уважения к блиттеру .

Тайминги Agnus измеряются в «цветных тактах» 280  нс . Это эквивалентно двум пикселям низкого разрешения (140 нс) или четырем пикселям высокого разрешения (70 нс). Как и Дениз, эти тайминги были разработаны для отображения на бытовых телевизорах и могут быть синхронизированы с внешним источником синхронизации.

Блиттер

Блиттер это подкомпонент Agnus. «Блит» — это сокращение от «передача блочного изображения» или «битовый блит» . Блиттер — это высокопараллельный блок передачи памяти и логических операций. Имеет три режима работы: копирование блоков памяти, заполнение блоков (например, заполнение полигонов) и рисование линий.

Блиттер позволяет быстро копировать видеопамять, а это означает, что процессор можно освободить для других задач. Блиттер в основном использовался для рисования и перерисовки графических изображений на экране, называемых «бобс», сокращенно от «блиттер-объекты».

Режим копирования блоков блиттера использует от нуля до трех источников данных в памяти, называемых A, B и C, выполняет программируемую логическую функцию над источниками данных и записывает результат в область назначения D. Любая из этих четырех областей может перекрываться. Блиттер выполняется либо от начала блока до конца, что известно как «восходящий» режим, либо в обратном, «нисходящем» режиме.

Блоки «прямоугольные»; они имеют «ширину», кратную 16 битам, высоту, измеряемую в «строках», и расстояние «шага» для перемещения от конца одной строки к другой. Это позволяет блиттеру работать с любым разрешением видео до 1024×1024 пикселей. [1] Копия автоматически выполняет попиксельную логическую операцию. Эти операции в общем описываются с помощью minterms . Чаще всего это используется для прямого копирования (D = A) или применения пиксельной маски вокруг дублированных объектов (D = (C AND B) OR A). Копия также может сдвигать каждую строку на 0–15 пикселей. Это позволяет блиттеру рисовать со смещением пикселей, не кратным 16.

Эти функции позволяют Amiga быстро перемещать окна графического интерфейса по экрану, поскольку каждое из них представлено в пространстве графической памяти в виде прямоугольного блока памяти, который по желанию можно переместить в любое необходимое место памяти экрана.

Линейный режим блиттера рисует однопиксельные толстые линии с использованием линейного алгоритма Брезенхэма . Он также может применить к строке 16-битный повторяющийся шаблон. Линейный режим также можно использовать для рисования повернутых бобов: каждая строка данных боба используется как образец линии, в то время как линейный режим рисует наклонный боб построчно.

Режим заполнения блиттера используется для заполнения горизонтальных промежутков по строкам. В каждом диапазоне он считывает каждый пиксель по очереди справа налево. Всякий раз, когда он считывает заданный пиксель, он включает или выключает режим заполнения. Когда режим заполнения включен, он устанавливает каждый пиксель до тех пор, пока режим заполнения не будет отключен или линия не закончится. Вместе эти режимы позволяют блиттеру рисовать отдельные полигоны с плоской заливкой. Позже Amigas стала использовать комбинацию более быстрого процессора и блиттера для многих операций.

Медь

Медь еще один подкомпонент Агнуса; Название является сокращением от «сопроцессор». Copper — это программируемый конечный автомат , который выполняет запрограммированный поток команд, синхронизированный с видеооборудованием.

Когда он включен, Copper имеет три состояния; либо чтение инструкции, ее выполнение, либо ожидание определенного положения видеолуча. Copper запускает программу под названием Copper list параллельно с основным процессором . Медь работает синхронно с видеолучом и может использоваться для выполнения различных операций, требующих видеосинхронизации. Чаще всего он используется для управления видеовыходом, но может записывать в большинство регистров чипсета и, таким образом, может использоваться для инициации блиц, установки аудиорегистров или прерывания работы ЦП.

Список Copper содержит три типа инструкций, каждая из которых представляет собой пару двухбайтовых байтов, всего четыре байта:

Длина программы Copper list ограничена временем выполнения. Copper перезапускает выполнение списка Copper в начале каждого нового видеокадра. Не существует явной инструкции «конец»; вместо этого инструкция WAIT используется для ожидания местоположения, которое никогда не достигается.

Использование меди

Внешняя синхронизация видео

В обычных обстоятельствах Amiga генерирует собственную синхронизацию видео, но Agnus также поддерживает синхронизацию системы с внешним сигналом, чтобы обеспечить синхронизацию с внешним видеооборудованием. На этом разъеме также имеется 1-битный выход, который указывает, выводит ли Amiga цвет фона или нет, что позволяет легко накладывать видео Amiga на внешнее видео. Это сделало Amiga особенно привлекательным в качестве генератора символов для титров видео и трансляций, поскольку позволило избежать использования и затрат на прокрутку A/B и блоки цветности , которые потребовались бы без поддержки генлока. Поддержка возможностей развертки, чересстрочной развертки и генлокировки, а также тот факт, что время отображения было очень близко к стандартам вещания (NTSC или PAL), сделали Amiga первым идеальным компьютером для видеосъемки, и действительно, он использовался во многих студиях для оцифровка видеоданных (иногда называемая захватом кадров), создание субтитров и интерактивные видеоновости.

Дениз

MOS 8362R5 - Дениз

Denise запрограммирована на получение плоских видеоданных от одной до пяти битовых плоскостей и преобразование их в цветовой поиск . Количество битовых плоскостей произвольное, поэтому, если 32 цвета не нужны, вместо них можно использовать 2, 4, 8 или 16. Количество битовых плоскостей (и разрешение) можно изменить на лету, обычно с помощью Copper. Это позволяет очень экономно использовать ОЗУ и сбалансировать скорость обработки ЦП с графической сложностью при выполнении из ОЗУ чипа (в режимах, превышающих 4 бита на пиксель в знаниях или 2 бит на пиксель при найме, используются дополнительные каналы DMA, которые могут дополнительно замедлить или временно остановить ЦП. на обычные неконфликтные каналы). Также может быть шестая битовая плоскость, которую можно использовать в трёх специальных графических режимах:

Существует два разрешения графики по горизонтали: «lowres» с пикселями 140 нс и «наймы» с пикселями 70 нс, с шириной по умолчанию 320 или 640 пикселей по горизонтали без использования overscan. Поскольку выход пикселей регулируется основной системной тактовой частотой, которая основана непосредственно на тактовой частоте цветовой синхронизации NTSC, эти размеры почти заполняют ширину стандартного телевизора, имея лишь тонкую границу «недостаточной развертки» между графикой и границей экрана при сравнении. для многих других современных домашних компьютеров, поскольку он выглядит ближе к игровой консоли, но с более мелкими деталями. Вдобавок ко всему, Дениз поддерживает достаточно обширное пересканирование; технически могут быть указаны режимы с достаточным количеством данных для 400 или 800 пикселей (+25%), хотя на самом деле это полезно только для прокрутки и специальных эффектов, которые включают частичное отображение большой графики, поскольку отдельный аппаратный предел достигается на уровне 368 ( или 736) пикселей, что является максимумом, который может поместиться между окончанием одного периода гашения и началом следующего - хотя маловероятно, что даже такое количество пикселей будет видно на любом дисплее, кроме специального монитора, который позволяет регулировать ширина горизонтальной развертки, поскольку большая часть изображения по замыслу будет плавно исчезать за рамкой экрана (или, на ЖК-дисплеях, будет обрезана по краю панели). [4] [5] Из-за очень регулярной структуры тайминга Amiga в отношении строк развертки и распределения ресурсов DMA для различных целей, помимо обычной графики «игрового поля», повышенное горизонтальное разрешение также является компромиссом между количеством пикселей и количеством оборудования. спрайты доступны, поскольку увеличение количества слотов DMA, выделенных для видео игрового поля, приводит к краже части (от 1 до 7 из 8) движка спрайтов.[1]

Разрешение по вертикали без переразвертки составляет 200 пикселей для NTSC Amiga с частотой 60 Гц или 256 для PAL Amiga с частотой 50 Гц. Его можно удвоить, используя чересстрочный дисплей, и, как и в случае с горизонтальным разрешением, увеличить с помощью overscan, максимум до 241 (или 483) для NTSC и до 283 (или 567) для PAL (в чересстрочных режимах в качестве максимального значения увеличивается одна дополнительная строка). определяется тем, сколько строк берется из доступного общего числа путем гашения и синхронизации, а общее количество строк развертки в нечересстрочных режимах составляет половину исходного числа чересстрочных нечетных чисел, округленного в меньшую сторону).

Начиная с ECS, Denise была обновлена ​​для поддержки режима «Производительность», который позволял использовать разрешение 640x400 без чересстрочной развертки, хотя и с использованием всего 4 цветов.

Дениз может компоновать до восьми спрайтов шириной 16 пикселей на строку сканирования (в автоматическом режиме) сверху, снизу или между игровыми полями, а также обнаруживать столкновения между спрайтами и игровыми полями или между спрайтами. Эти спрайты имеют три видимых цвета и один прозрачный цвет. При желании можно «присоединить» соседние пары спрайтов, чтобы создать один 15-цветный спрайт. Sprite DMA считывает данные для формирования канала спрайтов, управляемого его регистрами, что позволяет повторно использовать спрайты по вертикали. Между двумя последовательными записями списка должна быть одна пустая строка сканирования, чтобы можно было обновлять данные спрайта. Используя манипуляции с регистрами Copper или CPU, каждый канал спрайтов можно повторно использовать несколько раз в одном кадре, чтобы увеличить общее количество спрайтов на кадр. Регистры положения спрайтов также могут быть изменены во время строки сканирования, увеличивая общее количество спрайтов в одной строке сканирования. Однако данные спрайта или форма извлекаются только один раз для каждой строки сканирования и не могут быть изменены. Первой игрой Amiga, в которой использовались регистры изменения положения спрайтов во время строки сканирования, была Hybris , выпущенная в 1988 году.

Чип Denise не поддерживает выделенный текстовый режим. [6]

Наконец, Дениз, рядом с ЦРУ, отвечает за обработку ввода X/Y с помощью мыши/джойстика.

Представление о том, что Denise извлекает данные битовой плоскости и спрайтов, является упрощением. Именно Агнус поддерживает счетчики горизонтального и вертикального положения экрана и инициирует операции чтения DRAM. У Дениз есть несколько регистров битовой плоскости, каждый из которых содержит 16 бит данных, чего достаточно для рисования 16 пикселей. Когда Agnus выдает запись в регистр 1, все регистры затем передаются в отдельные сдвиговые регистры, из которых генерируются пиксели (при этом новые значения загружаются из DRAM). Дениз также не знает никаких адресов памяти.

Паула

Чип Paula (MOS Technology 8364 R4), используемый в Amiga 1000
Чип Паулы (MOS Technology 8364 R4) кристалл

Чип Paula, разработанный Гленном Келлером из MOS Technology , является контроллером прерываний , но также включает в себя логику для воспроизведения звука, управления дисководом гибких дисков, ввода/вывода последовательного порта и кнопок мыши/джойстика для двух и трех сигналов. Логика оставалась функционально идентичной для всех моделей Amiga от Commodore.

Аудио

Паула имеет четыре 8-битных звуковых канала PCM , управляемых DMA . Два звуковых канала микшируются на левый аудиовыход, а два других микшируются на правый выход, создавая стереофонический аудиовыход. Единственный поддерживаемый аппаратный формат выборки — линейное 8-битное дополнение до двух со знаком . Каждый звуковой канал имеет независимую частоту и 6-битный регулятор громкости (64 уровня). Внутри звуковое оборудование реализовано четырьмя конечными автоматами, каждый из которых имеет восемь различных состояний.

Кроме того, аппаратное обеспечение позволяет одному каналу в паре каналов модулировать период или амплитуду другого канала. Он редко используется на Amiga из-за того, что и частоту, и громкость можно лучше контролировать, но его можно использовать для достижения различных видов тремоло и вибрато и даже элементарных эффектов FM-синтеза .

Звук можно выводить двумя способами. Чаще всего используется звук, управляемый DMA. Как объяснялось при обсуждении Agnus, доступ к памяти имеет приоритет, и для каждого из четырех звуковых каналов доступен один слот DMA на строку сканирования. На обычном дисплее NTSC или PAL воспроизведение звука DMA ограничено максимальной скоростью вывода 28 867 значений на канал (PAL: 28837) в секунду, что в сумме составляет 57 674 (PAL: 57734) значений в секунду на каждом стереовыходе. Эту скорость можно увеличить с помощью наборов микросхем ECS и AGA, используя видеорежим с более высокой скоростью горизонтальной развертки .

В качестве альтернативы Паула может подать сигнал ЦП о загрузке нового сэмпла в любой из четырех выходных аудиобуферов, генерируя прерывание, когда требуется новый семпл. Это обеспечивает выходную частоту, превышающую 57 кГц на канал, и увеличивает количество возможных голосов (одновременных звуков) за счет программного микширования.

Amiga содержит аналоговый фильтр нижних частот ( фильтр реконструкции ), который является внешним по отношению к Пауле. Фильтр представляет собой фильтр нижних частот Баттерворта с коэффициентом пропускания 12 дБ/октаву и частотой примерно 3,3 кГц. Фильтр можно применить глобально только ко всем четырем каналам. В моделях после Amiga 1000 (за исключением самой первой версии Amiga 500) яркость светодиода питания используется для индикации состояния фильтра. Фильтр активен, когда светодиод имеет нормальную яркость, и деактивируется, когда он тускнеет (на ранних моделях Amiga 500 светодиод полностью гаснет). Модели, выпущенные до Amiga 1200, также имеют статический фильтр нижних частот типа «регулятор тона», который включается независимо от дополнительного «светодиодного фильтра». Этот фильтр представляет собой фильтр нижних частот 6 дБ/октаву с частотой среза 4,5 или 5 кГц.

Позже была разработана программная технология, которая может воспроизводить 14-битный звук путем объединения двух каналов с разной громкостью. В результате получается два 14-битных канала вместо четырех 8-битных. Это достигается за счет воспроизведения старшего байта 16-битного семпла на максимальной громкости и младшего байта на минимальной громкости (оба диапазона перекрываются, поэтому младший байт необходимо сдвинуть на два бита вправо). Операция битового сдвига требует небольшой нагрузки на процессор или блиттер, тогда как обычное 8-битное воспроизведение почти полностью управляется DMA. Этот метод был включен в перенацеливаемую аудиоподсистему AHI , что позволяет совместимым приложениям прозрачно использовать этот режим.

Контроллер гибких дисков

Контроллер гибких дисков необычайно гибок. Он может считывать и записывать необработанные последовательности битов непосредственно с диска и на диск через DMA или программный ввод-вывод со скоростью 500 ( двойная плотность ) или 250 кбит/с ( одинарная плотность или GCR). MFM или GCR были двумя наиболее часто используемыми форматами, хотя теоретически можно было использовать любой код с ограниченной длиной . Он также предоставляет ряд удобных функций, таких как синхронизация по слову (при кодировании MFM в качестве слова синхронизации обычно используется $4489 ). Кодирование/декодирование MFM обычно выполняется с помощью блиттера — один проход для декодирования, три прохода для кодирования. Обычно вся дорожка считывается или записывается за один раз, а не по секторам; это позволило избавиться от большинства межсекторных промежутков, которые необходимы большинству форматов гибких дисков, чтобы безопасно предотвратить «утечку» записанного сектора в ранее существовавший заголовок следующего сектора из-за изменений скорости привода. Если все сектора и их заголовки всегда записываются за один раз, такое кровотечение является проблемой только в конце дорожки (которая все равно не должна проникать обратно в ее начало), так что необходим только один пробел на дорожку. Таким образом, для собственного формата дисков Amiga исходная емкость 3,5-дюймовых дисков DD была увеличена с типичных 720 КБ до 880 КБ, хотя неидеальная файловая система более ранних моделей Amiga снова уменьшала ее примерно до 830 КБ. КБ фактических данных полезной нагрузки.

Помимо собственного формата 3,5-дюймового диска емкостью 880 КБ, контроллер может обрабатывать множество иностранных форматов, таких как:

Amiga 3000 представила специальный двухскоростной дисковод, который также позволял использовать диски высокой плотности с двойной емкостью без каких-либо изменений в контроллере гибких дисков Паулы.

Последовательный порт

Последовательный порт является элементарным, использует только программный ввод/вывод и не имеет буфера FIFO . Однако можно выбрать практически любую скорость передачи данных, включая все стандартные скорости, скорости MIDI , а также чрезвычайно высокие пользовательские скорости.

Происхождение названий чипов

Дорожная карта графического чипсета Amiga

Смотрите также

Рекомендации

  1. ^ Регистр BLTSIZE содержит шесть бит для горизонтальных слов и десять бит для вертикальных строк.
  2. ^ Изобретён в 1989 году Реттом Андерсоном «Хронология компьютеров Amiga (1989)». Архивировано из оригинала 10 июля 2006 г. Проверено 10 июля 2006 г.
  3. ^ "OLD-COMPUTERS.COM: Музей" . Архивировано из оригинала 28 мая 2010 г. Проверено 27 мая 2005 г.
  4. ^ «Размеры отображения, смещения и обрезка» .
  5. ^ «3 / Битовые плоскости и окна всех размеров / Максимальный размер окна отображения» .
  6. ^ "Музей Амиги » Дениз" . Проверено 28 февраля 2021 г.

Внешние ссылки