Motorola 6845 - Motorola 6845

Контроллер Motorola 6845 CRT

В Motorola 6845, или же MC6845, был контроллер дисплея что широко использовалось в 8-битные компьютеры в течение 1980-х гг. Первоначально предназначался для дизайнов на основе Motorola 6800 ЦП и, учитывая соответствующий номер детали, он более широко использовался вместе с различными другими процессорами и чаще всего встречался в машинах на базе Зилог Z80 и MOS 6502.

6845 сам по себе не является полноценным дисплеем; Основная функция микросхемы - правильно рассчитывать время доступа к памяти дисплея и вычислять адрес памяти для следующей части, которая будет отрисована. Затем другие схемы в машине используют адрес, предоставленный 6845, для извлечения шаблона, а затем его рисования. Реализация этого оборудования полностью зависит от разработчика и широко варьируется в зависимости от машины. 6845 предназначен для символьных дисплеев, но может также использоваться для пиксельной графики с некоторым умным программированием.

Среди его наиболее известных применений - BBC Micro, Амстрад КТК, и Videx Видеокарты VideoTerm для Яблоко II. Он также входит в состав многих ранних графических адаптеров для IBM PC, в том числе MDA, Графическая карта Hercules (HGC) и Цветной графический адаптер (CGA). Его функциональность была продублирована и расширена за счет заказных схем в EGA и VGA Видеоадаптеры для ПК. Реализации чипа Технология MOS используются в Коммодор 64 и Коммодор 128, в виде Технология MOS 6545 и Технология MOS 8568 соответственно.

Первоначально разработан Hitachi как HD46505, Hitachi-версии есть в большом количестве японских компьютеров от Sony, Sharp, Panasonic и Casio. Он также известен как 6845 CRTC или CRTC6845, смысл "электронно-лучевая трубка контроллер ».

Распространенным клоном этого контроллера CRT является Объединенная корпорация микроэлектроники (UMC) UM6845E Контроллер ЭЛТ.

Во время эмбарго на технологии времен холодной войны 6845 был клонирован в Болгарии под обозначением CM607.

Обзор

Чип генерирует сигналы, необходимые для взаимодействия с растром. отображать но не генерирует фактических пиксели, хотя он вносит информацию о курсоре и гашении видео в пиксельные видеосигналы (интенсивность). Он используется для создания правильно синхронизированной горизонтальной и вертикальной синхронизации и предоставления адреса в памяти, из которого должен считываться следующий пиксель или набор пикселей. Процесс чтения этого значения, преобразования его в пиксели и отправки в ЭЛТ оставлено для других схем. Из-за этого системы, использующие 6845, могут иметь очень разные числа и значения цветов или могут вообще не поддерживать цвет.

Чересстрочный поддерживаются режимы вывода без чересстрочной развертки, а также аппаратный текстовый курсор. Генерация синхронизации включает в себя генерацию горизонтальных и вертикальных сигналов гашения видео, которые используются для кондиционирования внешних схем генерации пикселей. Кроме того, предусмотрена внутренняя защелка, которая при срабатывании будет дублировать и сохранять копию видеоадреса, чтобы впоследствии ее можно было прочитать обратно ЦП. Это полезно для световые ручки и легкие пушки который может работать, посылая импульс на 6845 при прохождении электронного луча, позволяя запущенной программе считывать местоположение, на которое было указано. Из-за этой особенности большинство компьютерных видеоадаптеров, использующих 6845, имели интерфейс светового пера, хотя обычно это был внутренний разъем на самой плате, а не снаружи компьютера, и это обычно не было описано в руководстве пользователя.

Поскольку все аспекты синхронизации видео программируются, одна машина может переключаться между NTSC и PAL тайминги в программном обеспечении. 6845 можно использовать для вождения мониторы или любой другой растровый дисплей.

Внутренности

Распиновка MC6845.

Чип имеет всего 18 8 бит регистры контроль всех аспектов тайминга видео. Внешним компонентам доступны только два адреса: один для выбора внутреннего регистра для чтения или записи, а другой для доступа к этому регистру.

6845 предназначен для символьных дисплеев. Каждый генерируемый адрес состоит из двух частей - 14-битного символьного адреса и 5-битного адреса строки. Используя полный диапазон адресов RA0-RA4: CA0-CA13, 6845 может адресовать 214+5 = 524,288 слова памяти, где слово может быть любым числом битов, выбранным разработчиком системы в качестве ширины памяти. Если размер слова составляет один байт, как это часто бывает, 6845 может адресовать 512 KiB. Если размер слова составляет 32 бита, например для 32-битной цветной графики с одним пикселем на слово 6845 может адресовать 2048 килобайт; для 64-битных слов он может адресовать вдвое больше. Эти ограничения возникают из-за комбинации 6845 и конструкции подключенной к нему внешней памяти, а не только из-за 6845. Хотя количество уникальных адресов, которые может адресовать 6845, ограничено 524,288, объем памяти, который может адресовать 6845, может быть значительно больше, чем можно было бы предположить, потому что 6845 не налагает ограничений на размер каждой адресуемой ячейки памяти.

Также важно, что каждое слово, адресованное 6845, не обязательно должно равняться одному пикселю или одному символу. В качестве примера рассмотрим использование 6845 в IBM CGA, где размер слова составляет один байт, а каждое слово представляет четыре или восемь пикселей в графических режимах среднего или высокого разрешения, соответственно, или половину символа. В буквенно-цифровом (текстовом) режиме CGA есть два байта на символ, к которым 6845 последовательно обращается: первый байт является байтом символьного кода, а второй байт - байтом символьного атрибута.

Адрес символа увеличивается линейно. Когда микросхема сигнализирует о строчной синхронизации, она увеличивает адрес строки. Если адрес строки не равен программно установленному количеству строк на символ, то адрес символа сбрасывается до значения, которое он имел в начале строки сканирования, которая была только что завершена. В противном случае адрес строки сбрасывается в ноль, а адрес памяти продолжает линейно увеличиваться. Это вызывает повторное считывание одной и той же последовательности значений символов из памяти для каждой строки растра каждой строки символов до того, как 6845 продвинет адрес памяти к следующей строке символов и повторит тот же шаблон. Следовательно, если символ занимает одно «слово» в видеобуфере, отображение л линии и c столбцы символов с s строк развертки на символ требует л × c слова памяти для представления всего экрана символов, но требует s количество обращений к памяти для завершения одного цикла обновления: каждая строка символьных слов читается повторно s раз до того, как будет прочитана следующая строка. Это означает, что символьные дисплеи, использующие 6845, по сравнению с графическими дисплеями с адресацией ко всем точкам того же разрешения, требуют гораздо меньше памяти, но все же требуют высокой пропускной способности памяти, примерно равной пропускной способности, необходимой для графики. Другой контроллер видеодисплея, который внутренне буферизует одну целую строку символьных данных, может избежать повторного чтения каждой строки символов из ОЗУ буфера дисплея, уменьшая требуемую полосу пропускания памяти и позволяя использовать более медленные и менее дорогие микросхемы памяти, больше времени. для системного процессора для доступа к памяти или их комбинации.

В 1970-х, 1980-х и, в меньшей степени, в 1990-х годах память была дорогой, особенно быстрой, и это было важной проблемой. В 1970-х и с начала до середины 1980-х плотность микросхем также была не очень высокой, и размещение 80-байтового или большего символьного буфера в микросхеме, такой как 6845, могло бы увеличить кристалл микросхемы на 50-100%, в свою очередь, он дороже в несколько раз из-за экспоненциального роста количества дефектов микросхемы и, как следствие, снижения производительности с размером кристалла. Поэтому добавление такого символьного буфера к 6845 не было экономически эффективным подходом, когда был представлен чип. Теперь, когда память стоит очень недорого, включая быструю память, мало мотивации для уменьшения пропускной способности памяти, необходимой для контроллера видеодисплея, поэтому это больше не является важным инженерным соображением. В то же время резко возросла плотность микросхем - что фактически является основной причиной сегодняшних низких цен на память - и многие микросхемы, используемые в компьютерах, имеют большие буферы и кеши; микросхема, подобная 6845, разработанная сегодня, может легко использовать кэш строки символов, чтобы избежать чтения и повторного чтения символов для каждой строки развертки видео в строке символов. Для портативных устройств с низким энергопотреблением, которые в настоящее время будут основными, которые, вероятно, будут использовать символьные дисплеи, мощность, используемая для доступа к памяти с высокой пропускной способностью, будет хорошей причиной для уменьшения полосы пропускания памяти для обновления дисплея за счет использования строчного кэша в контроллер дисплея.

Если адрес символа используется для поиска ссылки на символ в баран и адрес строки для индексации таблицы символьной графики в ПЗУ обычный текстовый режим дисплей построен. Ссылка на символ, считанная из памяти, должна быть объединена с адресом строки, чтобы сформировать адрес для ПЗУ символьной графики, при этом ссылка на символ выбирает набор шаблонов строк развертки, которые образуют один символ, и индексирование адреса строки в этом наборе для выбора одного сканирования линия. Другими словами, адрес ПЗУ делится на две части, чтобы использовать ПЗУ как двумерный массив: первое измерение выбирает символ, а второе выбирает строку графического узора этого символа.

Линейные буферы кадра

Как описано выше, 6845 обычно не может обеспечивать большие линейные буферы кадров. Дизайн мог использовать только 14 бит адрес символа и установите количество строк на символ равным 1, но это будет ограничено 16 кБ адресуемой памяти.

Решение находится в Амстрад КТК, который объединяет адрес строки и адрес символа, чтобы обеспечить линейные строки развертки в нелинейном буфере. Он отображает адрес строки RA0-RA2 в адрес памяти MA11-MA13 и символьный адрес CA0-CA10 в адрес памяти MA0-MA10. Это дает преимущества, заключающиеся в более простом программировании несимвольного отображения и легкой плавной горизонтальной прокрутке, но может препятствовать плавной вертикальной прокрутке.

Отличия от 6545

Несмотря на большую совместимость, между 6845 и 6545 существует ряд небольших вариаций.

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

Меньшие изменения заключаются в том, что Технология MOS и один вариант Rockwell 6545 не имеет поддержки чересстрочного вывода, и все 6545 включают необязательный перекос адреса, который задерживает включение отображения на один символьный цикл, если он установлен. Эта вторая особенность была включена в более поздние вариации Motorola 6845.

6545 можно настроить на работу в линейном 14-битном режиме с помощью бита состояния. На 6845 то же самое требует регулировки высоты символа.

Ухищрения

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

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

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

внешняя ссылка