Из Википедии, бесплатной энциклопедии
Перейти к навигации Перейти к поиску

Блиттер представляет собой схему, иногда в качестве сопроцессора или логического блока на микропроцессоре , посвященный быстрое движение и модификации данных внутри компьютер памяти . Блиттер может относительно быстро копировать большие объемы данных из одной области памяти в другую и параллельно с ЦП , освобождая более сложные возможности ЦП для других операций. Типичным использованием блиттера является перемещение растрового изображения , например окон и шрифтов в графическом пользовательском интерфейсе или изображений и фонов в 2D-видеоигре. Название происходит от битовой операции Xerox Alto 1973 года., [1], что означает передачу битового блока. [2] Блит-операция - это больше, чем просто копия памяти, потому что она может включать в себя данные, которые не выровнены по байтам (отсюда и бит в блит-блит ), обработку прозрачных пикселей (пиксели, которые не должны перезаписывать место назначения) и различные способы комбинирования исходные и целевые данные.

На смену блиттерам пришли программируемые графические процессоры .

История [ править ]

В ранних компьютерах с выводом растровой графики буфер кадра обычно находился в основной памяти и обновлялся с помощью программного обеспечения, запущенного на ЦП. Для многих простых графических процедур, таких как объединение меньшего изображения в большее (например, для видеоигры) или рисование заполненного прямоугольника, приходилось манипулировать большими объемами памяти, и многие циклы ЦП тратились на выборку и декодирование инструкций для краткости. повторяющиеся циклы инструкций загрузки / сохранения. Для ЦП без кешей требования к шине для инструкций были столь же важны, как и данные. Кроме того, поскольку один байт обычно занимает от 2 (для 16 цветов) до 8 (для монохромных) пикселей, данные не были естественным образом выровнены для ЦП, поэтому требовались дополнительные операции сдвига и маскирования.

Блитеры в персональных компьютерах и видеоиграх [ править ]

1973: Xerox Alto , где этот термин немного Blit возник, имеет инструкцию битовой передачи блока осуществляется в микрокоде , что делает его гораздо быстрее , чем ту же операция , написанную на CPU. [1] Микрокод был реализован Дэном Ингаллсом . [1]

1982: Помимо рисования примитивов формы, процессор видеодисплея NEC µPD7220 может передавать прямоугольные растровые изображения в память дисплея посредством прямого доступа к памяти и заполнять прямоугольные части экрана. [3] [4]

1982: Robotron: 2084 аркада от Williams Electronics включает в себя две Blitter чипы , которые позволяют игра иметь до 80 одновременно движущихся объектов. [5] Производительность составила примерно 910 КБ / с. [5] Блиттер работает с 4-битными (16-цветными) пикселями, где цвет 0 является прозрачным, что позволяет создавать непрямоугольные формы. [6] Уильямс использовал то же оборудование в других играх того времени, включая Sinistar и Joust . [6]

1984: MS-DOS , совместимые Миндсут персональный компьютер содержит пользовательскую СБИС микросхему для перемещения прямоугольных участков растрового изображения. Аппаратное обеспечение поддерживает прозрачность и восемь режимов для объединения исходных и целевых данных. [7] Утверждалось, что в мышлении графика была в 50 раз быстрее, чем на компьютерах того времени, [8] но система не увенчалась успехом.

1985: Один из аппаратных сопроцессоров в персональном компьютере Amiga - блиттер. Первая патентная заявка в США, в которой использовался термин блиттер, была «Персональное компьютерное устройство для блочной передачи данных растрового изображения», переданная Commodore-Amiga, Inc. [9] Блиттер выполняет произвольную логическую операцию над тремя битовыми векторами размера 16:

destination := op(source A, source B, source C)

1986: TMS34010 общего назначение 32-битный процессор с дополнительным блиттером-подобные инструкциями для манипулирования данных растровых. Он оптимизирован для случаев, когда центральный процессор требует дополнительной обработки, такой как обработка прозрачных пикселей, работа с не выровненными по байтам данными и преобразование между битовой глубиной. TMS34010 служил как ЦП, так и ГП для ряда аркадных игр, начиная с 1988 года с Narc, включая Hard Drivin ', Smash TV , Mortal Kombat и NBA Jam , [10] Он также использовался в графическом ускорителе профессионального уровня. доски в 1990-е годы.

1986: Intel 82786 - программируемый графический процессор с BIT_BLTинструкциями по перемещению прямоугольных участков растровых изображений. [11]

1987: IBM 8514 / A видеоадаптер, введенный с / 2 IBM Personal System компьютеров в апреле 1987 года, включает в себя несколько блоков оборудования передачи. [12]

Чип Atari ST Blitter

1987: Atari ST Мега 2 поставляется с чипом блиттера. [13] Официально названный «Процессор передачи битовых блоков Atari ST», стилизованный под BLiTTER, он предоставляет 16 вариантов для объединения исходных и целевых данных. [14] Блиттер поддерживается на большинстве последующих компьютеров ST, включая более поздние версии домашних компьютеров STfm начального уровня.

1989: недолговечная Atari Transputer Workstation содержит блиттер оборудование как часть его (Mega ST на базе) видеосистем «Blossom». [15]

1993: Последняя игровая консоль, выпущенная Atari Corporation, Jaguar , поставляется с блиттерным оборудованием в составе специального чипа Tom. [16]

Операция [ править ]

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

Для копирования данных с прозрачными частями, такими как спрайты, можно указать цвет, который будет игнорироваться во время копирования (например, цвет 0). В других системах второе изображение 1 бит на пиксель может использоваться как «маска», чтобы указать, какие пиксели передать, а какие оставить нетронутыми (см. Изображение справа). Маска действует как трафарет . Логическая операция для системы прозрачного цвета (после суммирования битов пикселей по ИЛИ для определения того, имеет ли этот пиксель цвет 0) destination := (background AND NOT mask) OR sprite. Для отдельной предварительно рассчитанной плоскости маски, где как замаскированные, так и немаскированные пиксели могут быть любой записью палитры / комбинацией 0 и 1 бит (и в предыдущей операции потенциально могут конфликтовать с фоном, даже если они предположительно замаскированы), операцияdestination := (background AND NOT mask) OR (sprite AND mask)(по-прежнему три входа, но с использованием одного из них дважды), аналогичный по работе методу на основе XOR, используемому при программном рендеринге (например, указатели мыши с 1 битом плюс маска в ранних монохромных или цветных графических интерфейсах с битовой плоскостью, с любыми дополнительными битовыми плоскостями все зажаты до 0 в замаскированных областях).

Другие подходы [ править ]

Аппаратные спрайты - это небольшие растровые изображения, которые могут быть расположены независимо друг от друга, объединены вместе с фоном на лету видеочипом, поэтому фактического изменения буфера кадра не происходит. [17] Системы Sprite более эффективны для движущейся графики, обычно требующей 1/3 цикла памяти, потому что нужно извлекать только данные изображения, а не инструкции ЦП, с последующим компонованием на кристалле. [ необходима цитата ] Обратной стороной спрайтов является ограничение перемещения графики на строку развертки, которое может варьироваться от трех ( Atari 2600 ) до восьми ( Commodore 64 и семейство Atari 8-bit) до значительно большего для 16-битного аркадного оборудования и консолей, а также невозможности обновления постоянного растрового изображения (что делает их непригодными для общего ускорения графического интерфейса рабочего стола).

См. Также [ править ]

  • Прямой доступ к памяти (DMA)

Ссылки [ править ]

  1. ^ a b c Ширрифф, Кен. «Восстановление Xerox Alto от YCombinator, день 5: Трассировка микрокода с помощью логического анализатора» . Блог Кена Ширриффа .
  2. ^ "Функция BitBlt" . Сеть разработчиков Windows . Microsoft . Дата обращения 2 октября 2016 .
  3. ^ Педди, Джон. «Известные графические чипы: контроллер графического дисплея NEC µPD7220» . computer.org .
  4. ^ «Руководство пользователя: NEC µPD7220 / 7220A» (PDF) . archive.org . NEC Electronics. Декабрь 1985 г.
  5. ^ a b Вольф, Марк JP (июнь 2012 г.). Перед аварией: ранняя история видеоигр . Издательство Государственного университета Уэйна. п. 185. ISBN 9780814334508.
  6. ^ a b Загадка, Шон. «Блиттерная информация» .
  7. ^ Уильямс, Грегг (апрель 1984). «Предварительный просмотр продукта: персональный компьютер с мышлением» . Байт Журнал . 9 (4): 278–280.
  8. Андерсон, Джон Дж. (Февраль 1985 г.). «Mindset Micro: выход за границы или что случилось с инновациями?» . Творческие вычисления . 11 (2): 50.
  9. ^ "Патент США 4874164" Персональный компьютер для блочной передачи данных растрового изображения " " .
  10. ^ «Список игр для игр, работающих на процессоре TMS34010» . mamedb.com . Архивировано из оригинала на 2016-03-04 . Проверено 15 мая 2016 .
  11. ^ 82786 Руководство пользователя графического сопроцессора . Intel. 1988. с. 2-29.
  12. ^ Necasek, Майкл. «Графический ускоритель 8514 / A» . OS / 2 Музей .
  13. ^ "Atari Mega ST 2" . Центр истории вычислений .
  14. ^ «Руководство пользователя процессора передачи битовых блоков Atari ST» . archive.org . Корпорация Atari. 17 июня 1987 г.
  15. ^ Розенталь, маршал М. (ноябрь 1989 г.). «Транспьютерная связь: эксклюзивное интервью с доктором Тимом Кингом из Perihelion» . НАЧАТЬ . 4 (4).
  16. ^ "Техническое справочное руководство Том и Джерри" (PDF) . Февраль 2001. С. 4–5.
  17. ^ Гаага, Джеймс. «Почему существуют специальные игровые приставки?» . Программирование в 21 веке . Архивировано из оригинала на 2018-04-23 . Проверено 3 сентября 2019 .