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

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

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

Среди его наиболее известных применений - видеокарты BBC Micro , Amstrad CPC и Videx VideoTerm для Apple II . Он также входит в состав многих ранних графических адаптеров для IBM PC , включая MDA , Hercules Graphics Card (HGC) и Color Graphics Adapter (CGA). Его функциональность была продублирована и расширена за счет заказных схем в видеоадаптерах EGA и VGA для ПК.

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

Распространенным клоном этого контроллера ЭЛТ является ЭЛТ-контроллер UM6845E United Microelectronics Corporation (UMC) .

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

Обзор [ править ]

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

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

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

Внутреннее [ править ]

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

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

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

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

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

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

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

Линейные буферы кадра [ править ]

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

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

Отличия от 6545 [ править ]

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

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

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

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

Уловки [ править ]

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

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

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

  • Motorola 6847 , полноценный генератор видеодисплея
  • Список домашних компьютеров по видеооборудованию

Внешние ссылки [ править ]

  • HTML-документация регистров 6845
  • Zip-архивы TIF листов данных 6845
  • Отличия моделей CRTC
  • Synertek 6545 Примечание по применению
  • Калькулятор времени MC6845, вычисление значений регистров