stringtranslate.com

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

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

Original Chip Set ( OCS ) — чипсет, использовавшийся в самых ранних компьютерах Commodore Amiga и определявший графические и звуковые возможности Amiga. За ним последовали слегка улучшенный Enhanced Chip Set (ECS) и значительно улучшенная Advanced Graphics Architecture (AGA).

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

Обзор чипов

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

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

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

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

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

Агнус

MOS 8367R0 - Агнус

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

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

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

Блиттер

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

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

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

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

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

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

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

Медь

Copper — еще один подкомпонент Agnus; название является сокращением от «co-processor» (сопроцессор). Copper — это программируемый конечный автомат , который выполняет запрограммированный поток инструкций, синхронизированный с видеооборудованием.

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

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

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

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

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

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

Дениз

MOS 8362R5 - Дениз

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

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

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

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

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

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

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

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

Паула

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

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

Аудио

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

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

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

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

Amiga содержит аналоговый фильтр нижних частот ( фильтр реконструкции ), который является внешним по отношению к Paula. Фильтр представляет собой фильтр нижних частот Баттерворта с крутизной 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)". Архивировано из оригинала 2006-07-10 . Получено 2006-07-10 .
  3. ^ "OLD-COMPUTERS.COM : Музей". Архивировано из оригинала 2010-05-28 . Получено 2005-05-27 .
  4. ^ «Размеры отображения, смещения и обрезка».
  5. ^ "3 / Битовые плоскости и окна всех размеров / Максимальный размер окна отображения".
  6. ^ "The Amiga Museum » Denise" . Получено 28.02.2021 .

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