В 1970-х годах на отечественном рынке вычислительной техники появился микропроцессорный комплект КР580, ставший одним из ключевых элементов в развитии советской электроники. Этот набор интегральных микросхем, будучи функциональным аналогом популярного в то время Intel 8080, не только обеспечил основу для создания множества уникальных компьютеров, но и заложил фундамент для подготовки тысяч инженеров и программистов. Сегодня, в эпоху повсеместного распространения сложнейших многоядерных систем, изучение архитектуры и принципов работы КР580 является не просто данью истории, но и критически важным шагом к глубокому пониманию фундаментальных основ микропроцессорной техники. Для студента технического вуза, выполняющего курсовую работу, погружение в мир КР580 предоставляет уникальную возможность освоить базовые принципы построения вычислительных систем «снизу вверх» — от логических элементов до программного кода.
Целью настоящей курсовой работы является разработка исчерпывающего описания микропроцессорной системы на базе комплекта КР580, охватывающего как аппаратную, так и программную реализацию. В рамках данной работы будут рассмотрены архитектурные особенности ключевых БИС, детально проанализированы шаги по проектированию аппаратной части, включая модули памяти и интерфейсы, а также изучены методики разработки программного обеспечения на языке Ассемблера. Особое внимание будет уделено организации ввода-вывода, режимам прерываний и прямого доступа к памяти, а также современным и историческим инструментам отладки, что позволит сформировать целостное представление о процессе создания МПС на этой элементной базе.
Архитектура и историческое значение комплекта КР580
Микропроцессорные системы: основные понятия
В основе современной вычислительной техники лежат микропроцессорные системы (МПС), которые представляют собой сложный симбиоз аппаратных и программных компонентов. Центральным элементом любой МПС является микропроцессор (МП) — программно-управляемое устройство, реализованное в виде Большой Интегральной Схемы (БИС) или Сверхбольшой Интегральной Схемы (СБИС). Его главные функции — это обработка информации (выполнение арифметических и логических операций) и управление этой обработкой.
БИС (Большая Интегральная Схема), в свою очередь, является классом интегральных микросхем, которые отличаются высокой степенью интеграции элементов — количеством транзисторов и других компонентов, размещенных на одном полупроводниковом кристалле. Комплект КР580, о котором пойдет речь, полностью состоит из таких БИС, каждая из которых выполняет свою специфическую функцию в общей архитектуре системы.
Построение большинства МПС основывается на магистрально-модульном принципе. Это означает, что система состоит из отдельных функциональных модулей (например, центрального процессора, модулей памяти, устройств ввода/вывода), которые обмениваются информацией через общую системную шину (магистраль). Такая модульность обеспечивает гибкость в проектировании, масштабируемость и упрощает модификацию или расширение системы.
Исторический контекст и место КР580 в отечественной вычислительной технике
История микропроцессорных систем в СССР тесно связана с разработкой и внедрением отечественных аналогов зарубежных технологий. Комплект микросхем серии КР580 стал ярким примером такого процесса, являясь функциональным аналогом набора микросхем Intel 8080/82xx, который в середине 1970-х годов был одним из самых популярных в мире. Это позволило советским инженерам быстро освоить передовые архитектурные решения и создать собственную элементную базу для развития вычислительной техники.
Благодаря своей доступности и относительно высокой производительности для своего времени, комплект КР580 стал основой для целого ряда популярных советских компьютеров и управляющих систем. Среди них можно выделить:
- СМ-1800: Промышленная микроЭВМ, активно применявшаяся в автоматизированных системах управления технологическими процессами и научно-исследовательских комплексах.
- Радио-86РК: Один из первых массовых любительских персональных компьютеров в СССР, опубликованный в журнале «Радио», что позволило тысячам радиолюбителей самостоятельно собрать свою ЭВМ.
- Микроша: Еще один популярный домашний компьютер, ориентированный на образовательные цели и развлечения.
- Специалист: Персональный компьютер, который отличался простотой схемотехники и был широко распространен среди инженеров и энтузиастов.
- Львов ПК-01: Учебный персональный компьютер, предназначенный для школьного образования.
- Корвет: Более продвинутый домашний компьютер, обладавший графическими возможностями и применявшийся в школах и на предприятиях.
- Вектор-06Ц: Персональный компьютер с цветной графикой, разработанный в Бресте.
- Орион-128: Домашний компьютер, который также активно использовался энтузиастами.
Эти машины не только продемонстрировали возможности отечественной микроэлектроники, но и сыграли ключевую роль в формировании целого поколения советских программистов и инженеров, став для многих первой ступенью в мир вычислительной техники. Разве это не показатель того, насколько фундаментальными и универсальными были заложенные в КР580 идеи, несмотря на временной разрыв?
Микропроцессор КР580ВМ80А: сердце системы
Если комплект КР580 можно сравнить с оркестром, то микропроцессор КР580ВМ80А, несомненно, является его дирижером и солистом одновременно. Это функционально законченный однокристальный 8-разрядный параллельный микропроцессор с фиксированной системой команд, разработанный Киевским НИИ микроприборов. Он представляет собой отечественный аналог Intel 8080A, который в 1970-х годах был одним из самых влиятельных и широко используемых МП в мире.
Архитектура КР580ВМ80А тщательно спроектирована для эффективной обработки 8-разрядных данных и управления потоком информации:
- 8-разрядное арифметико-логическое устройство (АЛУ): Выполняет все основные арифметические (сложение, вычитание) и логические (И, ИЛИ, НЕ, исключающее ИЛИ) операции с 8-разрядными числами, как в двоичной, так и в двоично-десятичной системах счисления. Также АЛУ может работать с 16-разрядными числами, выполняя соответствующие операции.
- Регистровый файл: Состоит из нескольких ключевых регистров:
- Аккумулятор (A): 8-разрядный регистр, который является основным операндом для большинства арифметических и логических операций, а также служит для временного хранения результатов.
- Регистры общего назначения (РОН): Шесть 8-разрядных регистров (B, C, D, E, H, L), которые могут использоваться для временного хранения данных. Эти регистры обладают уникальной особенностью: они могут объединяться в три 16-разрядные пары (BC, DE, HL), что позволяет работать с 16-разрядными адресами или данными, существенно расширяя возможности МП. Пара HL часто используется как указатель на область памяти.
- Программный счетчик (PC): 16-разрядный регистр, который всегда хранит адрес следующей команды, подлежащей выполнению. Он автоматически инкрементируется после выборки каждой команды, обеспечивая последовательное выполнение программы. При выполнении команд перехода или вызова подпрограмм его содержимое изменяется.
- Указатель стека (SP): 16-разрядный регистр, указывающий на вершину стека в оперативной памяти. Стек используется для временного хранения адресов возврата при вызове подпрограмм, а также для сохранения состояния регистров при обработке прерываний.
- Регистр команд (IR): 8-разрядный регистр, в котором хранится текущая выбранная команда до ее дешифрации и выполнения.
- Регистр признаков (флагов): 8-разрядный регистр, каждый бит которого является флагом, отражающим результат последней выполненной арифметической или логической операции (например, флаг переноса, флаг нуля, флаг знака, флаг четности). Эти флаги используются для принятия решений в программе (условные переходы).
- Схема управления и синхронизации: Генерирует и распределяет все необходимые управляющие сигналы внутри МП, координируя работу всех его блоков.
КР580ВМ80А обладает раздельной 16-разрядной шиной адреса и 8-разрядной шиной данных. Это позволяет напрямую адресовать внешнюю память объемом до 65536 байт (64 Кбайт) и работать с 256 устройствами ввода и 256 устройствами вывода через изолированное адресное пространство портов.
Технологические параметры КР580ВМ80А также являются важной характеристикой: он содержит 4758 транзисторов, выполнен по 6 мкм n-МДП технологии, а его максимальная тактовая частота составляет 2,5 МГц. Эти параметры определяли его производительность и область применения в свое время.
Вспомогательные БИС комплекта КР580: функционал и принципы работы
Эффективная работа микропроцессора КР580ВМ80А была бы невозможна без целого ряда вспомогательных Больших Интегральных Схем, каждая из которых выполняла критически важную функцию, превращая разрозненные чипы в единую, слаженно работающую систему. Эти БИС являются функциональными аналогами соответствующих чипов серии Intel 8080/82xx.
Генератор тактовых импульсов КР580ГФ24
КР580ГФ24 – это специализированный генератор тактовых импульсов (ГТИ), незаменимый для синхронизации работы микропроцессора КР580ВМ80А. Его основная задача – формировать необходимые тактовые сигналы, которые определяют ритм и последовательность всех операций в МПС.
Эта микросхема генерирует следующие ключевые сигналы:
- Тактовые сигналы фаз C1 и C2: Это двухфазные тактовые импульсы с амплитудой 12 В и частотой в диапазоне от 0,5 до 3,0 МГц. Они являются основными сигналами синхронизации для КР580ВМ80А.
- Тактовый сигнал C (ТТЛ-совместимый): Дополнительный тактовый сигнал, который может использоваться для синхронизации других ТТЛ-совместимых компонентов системы.
- Сигнал строба состояния STB#: Используется для фиксации состояния микропроцессора на шине данных в определенные моменты времени, позволяя системным контроллерам дешифрировать выполняемую операцию.
- Сигнал RESET: Активный низкий сигнал сброса, который при поступлении на вход RESIN ГТИ (через RC-цепочку) формирует сигнал RESET, необходимый для начальной инициализации всей системы.
Для своей работы КР580ГФ24 требует подключения внешнего кварцевого резонатора. Ключевое требование: частота кварцевого резонатора должна быть в 9 раз больше требуемой тактовой частоты микропроцессора. Например, если МП должен работать на частоте 2 МГц, кварцевый резонатор должен иметь частоту 18 МГц. Это соотношение обусловлено внутренней архитектурой ГТИ, который делит частоту кварца для получения требуемых фаз.
Системные контроллеры КР580ВК28 и КР580ВК38
КР580ВК28 и КР580ВК38 выполняют функции системных контроллеров и буферных регистров данных. Их роль критически важна для управления системными шинами и формирования управляющих сигналов, необходимых для взаимодействия микропроцессора с памятью и устройствами ввода-вывода.
Основные задачи этих контроллеров:
- Формирование управляющих сигналов: На основе сигналов состояния, которые КР580ВМ80А выставляет на шину данных, КР580ВК28/ВК38 генерируют стандартные управляющие сигналы, такие как:
- RD (Read): сигнал чтения из памяти.
- WR (Write): сигнал записи в память.
- RDIO (Read I/O): сигнал чтения из порта ввода-вывода.
- WRIO (Write I/O): сигнал записи в порт ввода-вывода.
- INTA (Interrupt Acknowledge): сигнал подтверждения прерывания.
- Буферизация данных: Помимо формирования управляющих сигналов, эти микросхемы также обеспечивают прием/передачу 8-разрядной информации, выполняя функции буферов для шины данных. Это особенно важно, учитывая, что выходы самого КР580ВМ80А имеют ограниченную нагрузочную способность. КР580ВК28 используется для неинвертирующих сигналов, а КР580ВК38 – для инвертирующих, что дает гибкость в схемотехнических решениях.
Буферный регистр-защелка КР580ИР82
КР580ИР82 — это 8-разрядный буферный регистр-защелка, спроектированный специально для задач ввода-вывода информации в микропроцессорных системах. Его ключевые особенности:
- Повышенная нагрузочная способность: В отличие от выходов самого микропроцессора, КР580ИР82 способен управлять гораздо большим количеством нагрузок, что делает его идеальным для сопряжения с внешними устройствами.
- Три состояния на выходе: Эта функция позволяет выходам регистра находиться в высокоимпедансном состоянии (Z-состояние), эффективно отключая его от шины данных, когда он не активен. Это критически важно для работы в шинных системах, где несколько устройств могут использовать одну и ту же шину.
- Режимы работы: КР580ИР82 может функционировать как в режиме шинного формирователя (просто передавая данные), так и в режиме хранения (фиксируя данные по сигналу строба). Выбор режима определяется управляющими сигналами, поступающими на вход стробирования.
Совокупность этих вспомогательных БИС создавала надежную и функциональную платформу для построения сложных микропроцессорных систем на базе КР580ВМ80А, позволяя реализовывать широкий спектр задач — от простых устройств управления до полноценных персональных компьютеров.
Аппаратная реализация микропроцессорной системы
Структурная схема микропроцессорной системы
Разработка любой микропроцессорной системы начинается с формирования её общей архитектуры. В основе МПС на базе КР580 лежит магистрально-модульный принцип, который обеспечивает гибкость и масштабируемость. Центральный процессор, модули памяти и устройства ввода-вывода соединяются между собой через общую системную шину. Эта шина состоит из трех основных частей:
- Шина адреса (ША): 16-разрядная шина, по которой процессор передает адреса ячеек памяти или портов ввода-вывода.
- Шина данных (ШД): 8-разрядная шина, по которой передаются данные между процессором, памятью и устройствами ввода-вывода.
- Шина управления (ШУ): Набор сигналов, определяющих тип операции (чтение/запись, память/ВВ), синхронизацию и состояние системы.
Типовая структурная схема МПС выглядит следующим образом:
| Компонент | Подключение к шинам | Назначение |
|---|---|---|
| Центральный процессор (ЦП) | ША, ШД, ШУ | Ядро системы, выполняет команды, управляет всеми процессами. |
| Модуль ОЗУ | ША, ШД, ШУ | Энергозависимая память для временного хранения программ и данных. |
| Модуль ПЗУ | ША, ШД, ШУ | Энергонезависимая память для постоянного хранения системных программ (BIOS, монитор). |
| Интерфейсный модуль ВВ (например, КР580ВВ55) | ША, ШД, ШУ | Сопряжение с внешними устройствами (клавиатура, дисплей, принтер). |
| Контроллер прерываний (КР580ВН59) | ШД, ШУ | Обработка запросов на прерывание от внешних устройств. |
| Контроллер ПДП (КР580ВТ57) | ША, ШД, ШУ | Организация прямого доступа к памяти для высокоскоростного обмена. |
Такая структура позволяет легко добавлять или заменять модули, не затрагивая остальные части системы, что упрощает проектирование и модернизацию.
Проектирование блока центрального процессора
Блок центрального процессора (ЦП) является сердцем микропроцессорной системы и отвечает за выполнение всех вычислительных и управляющих функций. В своей простейшей конфигурации он включает всего три ключевые микросхемы:
- Микропроцессор КР580ВМ80А: Собственно вычислительное ядро.
- Генератор тактовых импульсов (ГТИ) КР580ГФ24: Обеспечивает синхронизацию всех компонентов системы.
- Системный контроллер КР580ВК28 или КР580ВК38: Формирует управляющие сигналы и буферизует шину данных.
Одной из важнейших деталей при проектировании блока ЦП является обеспечение корректной начальной установки (сброса) микропроцессора. Для этого используется RC-цепочка, подключаемая ко входу RESIN генератора тактовых импульсов (ГТИ). Эта RC-цепочка, состоящая из резистора (R) и конденсатора (C), обеспечивает формирование импульса сброса необходимой длительности при включении питания. Когда питание подается, конденсатор начинает заряжаться, и напряжение на входе RESIN плавно нарастает. Это позволяет ГТИ сформировать сигнал RESET, который удерживает микропроцессор в состоянии сброса достаточно долго, чтобы все его внутренние регистры были инициализированы в предсказуемое состояние. Длительность сигнала сброса должна быть достаточной для стабилизации всех напряжений и частот, обычно это несколько тактовых периодов.
Буферизация шин адреса и данных
Важным аспектом, который часто упускается из виду в общих описаниях, является необходимость буферизации шин адреса и данных. Выходы микропроцессора КР580ВМ80А обладают относительно малой нагрузочной способностью — обычно не более одного входа стандартной ТТЛ-микросхемы. Это означает, что прямое подключение к ним множества микросхем памяти, портов ��вода-вывода и других устройств может привести к перегрузке выходов МП, некорректной работе или даже его выходу из строя.
Для решения этой проблемы в шины адреса и данных включаются специальные буферные регистры, такие как КР580ВА86 (с прямыми выходами) и КР580ВА87 (с инверсными выходами). Эти микросхемы выполняют две основные функции:
- Увеличение нагрузочной способности: Буферы имеют высокую входную чувствительность и мощные выходные драйверы, способные управлять многими нагрузками.
- Электрическая развязка: Они изолируют МП от потенциальных помех или неисправностей на шине.
Пример схемотехнического решения для буферизации:
Для шины адреса (16 бит) потребуется два буфера КР580ВА86 (8-разрядных) или аналогичных. Они подключаются таким образом, чтобы выходы адресной шины МП (A0-A15) подавались на их входы, а выходы буферов уже подключались ко всем остальным устройствам в системе. Аналогично, для шины данных (8 бит) также используется один буфер, который должен быть двунаправленным, чтобы обеспечивать как чтение, так и запись данных.
| Компонент | Назначение | Обозначение на схеме |
|---|---|---|
| КР580ВМ80А | Микропроцессор | CPU |
| КР580ГФ24 | Генератор тактовых импульсов | CLK |
| КР580ВК28/ВК38 | Системный контроллер | SYS_CTRL |
| КР580ВА86/ВА87 | Буферы шин | ADDR_BUF, DATA_BUF |
Модули памяти: ОЗУ и ПЗУ
Память — это важнейший компонент любой микропроцессорной системы, без которой невозможно ни хранение программ, ни обработка данных. В МПС на базе КР580 обычно используются два основных типа памяти: оперативное запоминающее устройство (ОЗУ) и постоянное запоминающее устройство (ПЗУ).
- ОЗУ (Оперативное Запоминающее Устройство): Это энергозависимая память, предназначенная для временного хранения данных и программ, которые активно используются процессором в текущий момент. Главное свойство ОЗУ — быстрый доступ к информации, но все записанные в него данные теряются при выключении питания. В системах на КР580ВМ80А часто использовались статические ОЗУ (SRAM) меньшей емкости или динамические ОЗУ (DRAM) для больших объемов, требующие схем регенерации.
- ПЗУ (Постоянное Запоминающее Устройство): Это энергонезависимая память, предназначенная для постоянного хранения программ и констант, которые не изменяются в процессе работы системы. К ПЗУ относятся, например, системные программы-мониторы, загрузчики (BIOS) или таблицы констант. Информация в ПЗУ сохраняется даже после отключения питания. В зависимости от типа, ПЗУ могло быть масочным (прошитым на заводе), программируемым (PROM), стираемым и программируемым (EPROM, EEPROM).
КР580ВМ80А имеет 16-разрядную адресную шину, что позволяет адресовать в общей сложности 216 = 65536 байт (64 Кбайт) внешней памяти. Это адресное пространство должно быть рационально распределено между ОЗУ и ПЗУ.
Расчет и планирование адресного пространства памяти
Планирование адресного пространства памяти — это критически важный этап проектирования, определяющий, какие диапазоны адресов будут отведены под ОЗУ, ПЗУ и устройства ввода-вывода. Основная задача — избежать конфликтов адресов и обеспечить эффективное использование доступного пространства.
Методология распределения:
- Определение требуемых объемов: Сначала определяются необходимые объемы ОЗУ и ПЗУ. Например, 8 Кбайт ПЗУ для системного монитора и 16 Кбайт ОЗУ для пользовательских программ и данных.
- Выбор начальных адресов: Традиционно, ПЗУ размещают в младших адресах (например, от 0000h до 1FFFh), так как именно с этих адресов МП начинает выполнение программы после сброса. ОЗУ обычно располагают в следующих доступных диапазонах.
- Дешифрация адресов: Для того чтобы микропроцессор мог отличить обращение к ПЗУ от обращения к ОЗУ или устройству В/В, используются схемы дешифрации адресов. Эти схемы анализируют старшие биты адресной шины и генерируют сигналы выбора кристалла (Chip Select, CS) для соответствующего модуля памяти или устройства.
Пример распределения памяти:
Допустим, у нас есть 64 Кбайт адресного пространства.
- ПЗУ: 8 Кбайт (от 0000h до 1FFFh)
- ОЗУ: 16 Кбайт (от 2000h до 5FFFh)
- ОЗУ: 16 Кбайт (от 6000h до 9FFFh)
- Остальное пространство может быть неиспользованным или зарезервировано для других нужд.
Примеры схем дешифрации адресов памяти:
Простейшая схема дешифрации может быть реализована на логических элементах (например, дешифраторах типа К155ИД4 или К555ИД7).
Представим, что у нас есть 8 Кбайт ПЗУ (13 адресных линий) и 16 Кбайт ОЗУ (14 адресных линий).
- Для ПЗУ, занимающего адресный диапазон 0000h-1FFFh, младшие 13 бит адреса (A0-A12) идут непосредственно на адресные входы ПЗУ. Старшие биты (A13-A15) используются для формирования сигнала CS#. Например, если A15=0, A14=0, A13=0, то выбирается ПЗУ.
- Для ОЗУ, занимающего диапазон 2000h-5FFFh, младшие 14 бит адреса (A0-A13) идут на адресные входы ОЗУ. Сигнал CS# формируется, например, при A15=0, A14=0, A13=1.
Более сложные схемы могут использовать программируемые логические интегральные схемы (ПЛИС) или мультиплексоры для создания более гибких карт памяти.
Интерфейсные модули
Интерфейсный модуль — это функциональный блок, обеспечивающий согласование между микропроцессорной системой и внешними устройствами ввода-вывода (УВВ). Внешние устройства, такие как клавиатура, дисплей, принтер или датчики, имеют свои собственные характеристики (скорость работы, формат данных, уровни сигналов), которые часто не совпадают с параметрами МПС. Интерфейсный модуль решает эту проблему, осуществляя:
- Преобразование форматов данных: Например, из последовательного в параллельный и наоборот.
- Буферизацию данных: Временное хранение данных для компенсации разницы в скорости между МП и УВВ.
- Управление потоком данных: Синхронизация обмена, обработка сигналов готовности/занятости.
- Согласование уровней сигналов: Преобразование логических уровней напряжения.
В простейшем случае интерфейсный модуль может состоять из буферных регистров (КР580ИР82) и элементов дешифрации адресов портов. В более сложных системах используются специализированные программируемые контроллеры, такие как КР580ВВ55, о котором пойдет речь далее.
Организация ввода-вывода, прерываний и прямого доступа к памяти (DMA)
Параллельный ввод-вывод
Для микропроцессорной системы на базе КР580ВМ80А эффективная организация ввода-вывода данных является краеугольным камнем взаимодействия с внешним миром. Сам КР580ВМ80А поддерживает адресацию до 256 портов ввода и 256 портов вывода, используя изолированное адресное пространство ввода-вывода, что означает, что адреса портов не конфликтуют с адресами памяти.
Центральным компонентом для организации параллельного ввода-вывода является БИС КР580ВВ55 (также известный как КР580ИК55 или КР580ВВ55А) – программируемый параллельный интерфейс (ППИ). Эта микросхема является универсальным решением благодаря своей гибкой архитектуре:
- Три 8-разрядных канала (порта А, В, С): КР580ВВ55 предоставляет три независимых 8-разрядных порта, которые могут быть настроены индивидуально для различных режимов работы.
- Режимы настройки портов:
- Режим 0 (простой ввод/вывод): Каждый из портов (A, B, C) может быть настроен на простой ввод или простой вывод данных без использования сигналов квитирования. Это самый базовый режим, подходящий для подключения простых периферийных устройств, таких как светодиоды, кнопки или ЦАП/АЦП.
- Режим 1 (стробируемый ввод/вывод): Порты А и В могут быть настроены на стробируемый ввод или вывод, используя часть порта С для формирования сигналов квитирования (например, Strobe, Input Buffer Full, Output Buffer Empty). Этот режим обеспечивает более надежный обмен данными с устройствами, требующими синхронизации.
- Режим 2 (двунаправленный обмен): Порт А может быть настроен на двунаправленный обмен данными, используя часть порта С для управления. Этот режим подходит для подключения к шинам данных других устройств, позволяя как читать, так и записывать информацию. Порт В при этом может работать в Режиме 0 или 1.
Настройка режимов работы КР580ВВ55 осуществляется путем записи управляющего слова в его регистр управления. Это делает его чрезвычайно гибким и адаптируемым к различным задачам.
Расчет и планирование адресного пространства портов ввода-вывода
Как и в случае с памятью, для портов ввода-вывода требуется тщательное планирование адресного пространства, чтобы избежать конфликтов и обеспечить уникальную идентификацию каждого порта. КР580ВМ80А способен адресовать 256 портов (от 00h до FFh).
Методология:
- Назначение базового адреса: Для каждого КР580ВВ55 назначается базовый адрес, который дешифрируется с помощью старших битов адресной шины.
- Внутренние адреса: Внутри КР580ВВ55 имеется 4 регистра (Порт А, Порт В, Порт С, Регистр Управления), которые адресуются младшими битами адресной шины (обычно A0 и A1).
- Например, если базовый адрес КР580ВВ55 равен 10h, то:
- Порт А: 10h
- Порт В: 11h
- Порт С: 12h
- Регистр Управления: 13h
- Например, если базовый адрес КР580ВВ55 равен 10h, то:
- Схемы дешифрации: Для дешифрации адресов портов используются логические схемы, аналогичные дешифраторам памяти, но они активируются сигналом, указывающим на операцию ввода-вывода (например, RDIO или WRIO).
Пример: Если мы хотим использовать один КР580ВВ55, его базовый адрес может быть, например, 80h. Тогда его регистры будут доступны по адресам 80h (Порт А), 81h (Порт В), 82h (Порт С) и 83h (Регистр Управления). Дешифратор будет активироваться, когда на адресной шине будут выставлены соответствующие старшие биты и МП подаст сигнал В/В.
Система прерываний
В современных вычислительных системах крайне важно обеспечить своевременную реакцию на внешние события, такие как нажатие кнопки, приход данных извне или срабатывание таймера. Для этого используется механизм прерываний.
Прерывание — это событие, которое вызывает временную приостановку выполнения текущей программы процессором для немедленной обработки этого события. После завершения обработки, процессор возвращается к прерванной программе и продолжает её выполнение с того места, где она была остановлена. Это позволяет МПС эффективно управлять несколькими задачами и реагировать на асинхронные события.
В системах на КР580ВМ80А обработка прерываний осуществляется с использованием программируемого контроллера прерываний КР580ВН59 (также известного как КР580ВМ59). Эта микросхема способна управлять несколькими источниками прерываний, приоритизировать их и передавать информацию микропроцессору.
Принцип работы контроллера прерываний
Процесс обработки прерывания с участием КР580ВН59 происходит следующим образом:
- Запрос прерывания (INT): Когда одно из внешних устройств требует внимания МП, оно посылает запрос прерывания на вход контроллера КР580ВН59.
- Сигнал INT для МП: Если прерывания разрешены, и КР580ВН59 принимает запрос, он формирует сигнал INT (Interrupt), который передается на соответствующий вход микропроцессора КР580ВМ80А.
- Подтверждение прерывания (INTA): Получив сигнал INT, микропроцессор КР580ВМ80А завершает выполнение текущей команды и формирует сигнал подтверждения прерывания (INTA — Interrupt Acknowledge), который посылается обратно в КР580ВН59.
- Выдача команды RST: В ответ на сигнал INTA, контроллер КР580ВН59 помещает на шину данных специальную однобайтовую команду RST (Restart). Формат этой команды:
11NNN1112, гдеNNN— это 3-битный двоичный код, соответствующий номеру вектора прерывания (от 0 до 7). Этот кодNNNопределяется приоритетом прерывания и настроен в КР580ВН59. - Переход к обработчику: Микропроцессор КР580ВМ80А, прочитав команду RST, интерпретирует ее как команду безусловного перехода к определенному адресу в памяти. Этот адрес вычисляется по формуле:
0000 0000 00NNN0002. Таким образом,NNNкодирует один из восьми предопределенных адресов перехода (00h, 08h, 10h, …, 38h). По этим адресам должны находиться короткие команды безусловного перехода (JMP) к реальным подпрограммам-обработчикам прерывания, расположенным в других областях памяти. - Выполнение обработчика и возврат: После выполнения подпрограммы-обработчика, последняя команда
RET(Return) возвращает управление к прерванной программе, восстанавливая её состояние.
Таким образом, КР580ВН59 значительно упрощает работу с прерываниями, позволяя эффективно управлять несколькими источниками и обеспечивая быстрый переход к соответствующим обработчикам.
Прямой доступ к памяти (DMA)
Одним из наиболее эффективных способов обмена большими объемами данных между периферийными устройствами и оперативной памятью является прямой доступ к памяти (DMA, Direct Memory Access).
Принцип DMA: Это режим обмена данными, в котором центральный процессор (ЦП) не участвует непосредственно в передаче. Вместо этого, специализированный контроллер (контроллер DMA) временно «захватывает» управление системными шинами (адреса, данных и части управляющей шины) и осуществляет передачу данных напрямую между устройством и памятью. Это значительно увеличивает скорость передачи данных, поскольку освобождает процессор для выполнения других задач, исключая накладные расходы на его участие в каждом цикле передачи.
Для организации прямого доступа к памяти в системах на КР580 используется программируемый контроллер прямого доступа к памяти КР580ВТ57 (также известный как КР580ИК57). Эта микросхема является мощным инструментом для организации высокоскоростного обмена.
Механизм DMA на КР580
Работа КР580ВТ57 по организации DMA происходит следующим образом:
- Запрос DMA: Периферийное устройство (например, дисковый контроллер или сетевой адаптер) генерирует запрос DMA (DRQ — DMA Request) на один из каналов КР580ВТ57.
- Запрос захвата шин: Получив запрос, КР580ВТ57, если он настроен и разрешен, формирует сигнал HOLD, который посылается на соответствующий вход микропроцессора КР580ВМ80А. Это сигнал, сообщающий МП о необходимости приостановить свою работу и освободить системные шины.
- Подтверждение захвата шин: Микропроцессор КР580ВМ80А, завершив текущий машинный цикл, выставляет сигнал HLDA (Hold Acknowledge), подтверждая, что он освободил свои шины и перешел в высокоимпедансное состояние.
- Захват шин контроллером DMA: Получив HLDA, контроллер КР580ВТ57 полностью «захватывает» управление системными шинами. Он сам генерирует адреса для памяти, управляет сигналами чтения/записи и координирует передачу данных между периферийным устройством и ОЗУ.
- Передача данных: КР580ВТ57 начинает передачу данных блоками. Он содержит внутренние регистры для хранения начального адреса памяти, количества передаваемых байт и номера канала. После передачи каждого байта адрес памяти автоматически инкрементируется, а счетчик байт декрементируется.
- Завершение DMA: Когда весь блок данных передан (счетчик байт достигает нуля), КР580ВТ57 снимает сигнал HOLD.
- Возврат управления МП: Микропроцессор КР580ВМ80А, видя отсутствие сигнала HOLD, вновь активирует свои шины и продолжает выполнение прерванной программы.
Использование КР580ВТ57 позволяет значительно повысить производительность системы при работе с внешними устройствами, которым требуется быстрый доступ к большим объемам данных, освобождая процессор для более сложных вычислительных задач.
Разработка программного обеспечения для КР580ВМ80А
Этапы разработки ПО
Разработка программного обеспечения для микропроцессорных систем на базе КР580ВМ80А, несмотря на кажущуюся простоту элементной базы, представляет собой полноценный инженерный процесс, состоящий из нескольких ключевых этапов:
- Постановка задачи: На этом начальном этапе формулируется четкое описание того, что должна делать программа. Определяются входные данные, желаемые выходные данные, алгоритм их обработки, ограничения по времени выполнения и объему памяти. Четкая постановка задачи является залогом успешной разработки.
- Алгоритмизация: Полученная задача преобразуется в формализованный алгоритм. На этом этапе активно используются блок-схемы – графическое представление алгоритма, которое помогает визуализировать последовательность действий, условия ветвления, циклы и точки принятия решений. Блок-схемы позволяют логически отладить алгоритм до перехода к написанию кода, выявить возможные ошибки и оптимизировать последовательность операций.
- Кодирование: На этом этапе алгоритм переводится непосредственно в команды языка программирования. Для микропроцессоров семейства КР580ВМ80А основным инструментом является язык Ассемблера.
Основы программирования на Ассемблере для КР580ВМ80А
Язык Ассемблера — это низкоуровневый язык программирования, который является символьным представлением машинных команд микропроцессора. Каждая команда Ассемблера (мнемоника) соответствует одной или нескольким машинным операциям. Программирование на Ассемблере для КР580ВМ80А позволяет создавать исключительно эффективные программы с точки зрения быстродействия и объема занимаемой памяти, что было критически важно в условиях ограниченных ресурсов ранних микропроцессорных систем.
Система команд КР580ВМ80А насчитывает 78 основных команд и логически делится на пять основных групп:
- Команды пересылки данных (Data Transfer Group): Перемещение данных между регистрами, между регистром и памятью, загрузка непосредственных значений в регистры. Примеры:
MOV(Move),MVI(Move Immediate),LDA(Load Accumulator Direct),STA(Store Accumulator Direct). - Арифметические команды (Arithmetic Group): Выполнение операций сложения, вычитания, инкремента, декремента с 8-разрядными числами. Примеры:
ADD(Add),SUB(Subtract),INR(Increment Register),DCR(Decrement Register),ADC(Add with Carry),SBB(Subtract with Borrow). - Логические команды (Logical Group): Выполнение побитовых логических операций (И, ИЛИ, НЕ, исключающее ИЛИ), сравнения. Примеры:
ANA(AND with Accumulator),ORA(OR with Accumulator),XRA(XOR with Accumulator),CMP(Compare),RLC(Rotate Left Accumulator),RRC(Rotate Right Accumulator). - Команды передачи управления (Branch Group): Изменение последовательности выполнения программы – условные и безусловные переходы, вызовы подпрограмм, возвраты. Примеры:
JMP(Jump),CALL(Call Subroutine),RET(Return),JZ/JNZ(Jump if Zero/Not Zero),JC/JNC(Jump if Carry/Not Carry). - Команды управления процессором (Stack, I/O, and Machine Control Group): Операции со стеком, ввод-вывод, управление флагами, остановка процессора. Примеры:
PUSH(Push to Stack),POP(Pop from Stack),IN(Input),OUT(Output),HLT(Halt).
Структура команд: Команды КР580ВМ80А могут быть одно-, двух- или трехбайтовыми.
- Однобайтовые: Состоят только из кода операции (opcode). Например,
HLT(остановка процессора). - Двухбайтовые: Первый байт – код операции, второй – непосредственный операнд (данные). Например,
MVI A, 05h(загрузить число 05h в аккумулятор). - Трехбайтовые: Первый байт – код операции, второй и третий – 16-разрядный адрес или непосредственный операнд. Например,
JMP 1000h(перейти по адресу 1000h).
Использование программного счетчика (PC) и указателя стека (SP)
- Программный счетчик (PC): Этот 16-разрядный регистр играет центральную роль в последовательном выполнении программы. Он всегда содержит адрес следующей команды, которую микропроцессор должен извлечь из памяти. После выборки каждой команды содержимое PC автоматически инкрементируется на длину этой команды (1, 2 или 3 байта). Команды передачи управления (JMP, CALL, RET) изменяют значение PC, направляя выполнение программы по новому пути.
- Указатель стека (SP): Также 16-разрядный регистр, SP всегда указывает на вершину стека — специальной области в оперативной памяти, организованной по принципу LIFO (Last In, First Out – последним пришел, первым ушел). Стек используется для:
- Временного хранения адресов возврата: При вызове подпрограммы (команда
CALL) текущее значение PC (адрес следующей команды послеCALL) автоматически помещается в стек. КомандаRET(возврат из подпрограммы) извлекает этот адрес из стека и загружает его в PC, обеспечивая возврат к основной программе. - Сохранения и восстановления состояния регистров: Команды
PUSHиPOPпозволяют сохранять содержимое пар регистров в стеке и восстанавливать их оттуда. Это удобно при работе с подпрограммами, чтобы не портить значения регистров основной программы.
- Временного хранения адресов возврата: При вызове подпрограммы (команда
Практический пример программы на Ассемблере
Рассмотрим классический пример программы для вывода символа на монитор (или другое устройство вывода) с использованием портов ввода-вывода. Предположим, порт 00h используется для вывода как цвета, так и кода символа (это упрощение для примера, в реальной системе порты могли быть разными).
ORG 0000h ; Начальный адрес программы
START: ; Метка начала программы
MVI B, 7Fh ; Загрузить 7Fh (код цвета, например, белый) в регистр B
MVI C, FFh ; Загрузить FFh (код символа, например, #) в регистр C
LOOP: ; Метка для организации цикла
MOV A, B ; Переместить значение из регистра B (цвет) в аккумулятор A
OUT 00h ; Вывести содержимое аккумулятора (цвет) в порт 00h
MOV A, C ; Переместить значение из регистра C (символ) в аккумулятор A
OUT 00h ; Вывести содержимое аккумулятора (символ) в порт 00h
DCR B ; Уменьшить значение в регистре B на 1 (изменить цвет)
DCR C ; Уменьшить значение в регистре C на 1 (изменить символ)
MVI A, 00h ; Загрузить 00h в аккумулятор A
SUB C ; Вычесть содержимое регистра C из аккумулятора.
; Результат не сохраняется, но устанавливаются флаги.
; Если C = 00h, то флаг нуля будет установлен.
JNZ LOOP ; Если флаг нуля не установлен (C не равно 00h), перейти к метке LOOP
; Если C стало 00h, цикл завершится.
HLT ; Остановить процессор (программа завершена)
Анализ фрагмента программы:
ORG 0000h: Директива ассемблеру, указывающая, что следующая программа должна быть размещена, начиная с адреса 0000h.MVI B, 7Fh,MVI C, FFh: КомандыMVI(Move Immediate) загружают непосредственные 8-битные значения в указанные регистры.7FhиFFh— шестнадцатеричные значения.MOV A, B,MOV A, C: КомандыMOV(Move) копируют содержимое одного регистра в другой. Здесь они используются для перемещения данных в аккумулятор перед выводом.OUT 00h: КомандаOUT(Output) выводит содержимое аккумулятора (A) в порт с указанным адресом (00h).DCR B,DCR C: КомандыDCR(Decrement Register) уменьшают содержимое указанного регистра на 1. Это создает эффект изменения цвета и символа в каждом цикле.MVI A, 00h,SUB C: Эти две команды используются для проверки условия выхода из цикла. Сначала аккумулятор обнуляется, затем из него вычитается значение регистра C. Флаг нуля (Z) будет установлен, если результат вычитания равен нулю (то есть, если C стало 00h).JNZ LOOP: КомандаJNZ(Jump if Not Zero) — это условный переход. Если флаг нуля не установлен (C ≠ 00h), программа переходит к меткеLOOP, продолжая цикл. В противном случае (если C = 00h), программа продолжает выполнение со следующей команды.HLT: КомандаHLT(Halt) останавливает выполнение программы и переводит процессор в режим ожидания.
Этот пример демонстрирует базовые операции ввода-вывода, работу с регистрами, арифметические операции и организацию циклов, что является основой для создания более сложных программ.
Карта распределения памяти и портов ввода-вывода
При разработке программного обеспечения для КР580, особенно при работе с несколькими модулями памяти и устройствами ввода-вывода, крайне важно составлять карту распределения памяти и портов ввода-вывода.
Почему это важно:
- Избегание конфликтов: Адреса памяти и портов ввода-вывода могут совпадать (хотя и находятся в разных адресных пространствах, но для дешифрации это может быть важно), или разные модули памяти могут претендовать на один и тот же диапазон адресов. Карта помогает избежать таких конфликтов.
- Оптимизация использования ресурсов: Четкое понимание, какие диапазоны адресов заняты, позволяет эффективно использовать оставшееся пространство.
- Упрощение отладки: При отладке программы, зная карту, можно легко определить, к какому устройству или области памяти обращается программа в данный момент.
- Документация: Карта является важной частью технической документации, необходимой для поддержки и модернизации системы.
Содержание карты:
Карта распределения памяти и портов представляет собой таблицу, в которой для каждого модуля (ОЗУ, ПЗУ, КР580ВВ55, КР580ВН59 и т.д.) указываются:
- Название модуля
- Тип (ОЗУ, ПЗУ, порт В/В)
- Начальный адрес
- Конечный адрес
- Объем
- Назначение (например, «Системный монитор», «Рабочая область ОЗУ», «Порт клавиатуры»)
Пример фрагмента карты:
| Модуль | Тип | Начальный адрес | Конечный адрес | Объем | Назначение |
|---|---|---|---|---|---|
| ПЗУ | Память | 0000h | 0FFFh | 4 Кбайт | Системный загрузчик, BIOS |
| ОЗУ | Память | 1000h | 3FFFh | 12 Кбайт | Рабочая память для программ и данных |
| КР580ВВ55_1 | Порт В/В | 80h | 83h | 4 байта | Порт клавиатуры и дисплея |
| КР580ВН59 | Порт В/В | 90h | 91h | 2 байта | Контроллер прерываний |
Такая карта является незаменимым инструментом как для аппаратного, так и для программного проектировщика, обеспечивая ясность и системность в работе.
Инструменты и методики проектирования и отладки микропроцессорных систем
Методологии проектирования аппаратных средств
В эпоху микропроцессоров акцент в проектировании сместился. Если ранее львиная доля усилий приходилась на схемотехнику сложных дискретных логических узлов, то с появлением БИС центр тяжести перенесся на разработку прикладных программ, а также на системное проектирование архитектуры. Тем не менее, проектирование аппаратной части остаётся критически важным.
Ключевые методологии проектирования аппаратных средств для МПС на КР580 включают:
- Расчет и планирование адресного пространства: Как уже обсуждалось, это базовый шаг, определяющий, где в 64 Кбайт адресного пространства будут располагаться модули памяти (ОЗУ, ПЗУ) и регистры устройств ввода-вывода. Это включает определение начальных и конечных адресов для каждого компонента, а также их объемов.
- Построение схем дешифрации адресов: После планирования адресного пространства необходимо разработать логические схемы, которые будут преобразовывать 16-разрядный адрес с шины адреса в сигналы выбора кристалла (Chip Select, CS) для каждого конкретного модуля памяти или порта ввода-вывода. Эти схемы могут быть реализованы на:
- Дискретных логических элементах: Дешифраторы (например, К155ИД4, К555ИД7), логические элементы (И, ИЛИ, НЕ), мультиплексоры.
- Программируемых логических интегральных схемах (ПЛИС): Для более сложных систем ПЛИС (например, ПЛМ, ППВМ) предоставляют гибкий и компактный способ реализации дешифрации, позволяя легко изменять карту адресов при необходимости.
- Проектирование схем буферизации и сопряжения: Учитывая малую нагрузочную способность КР580ВМ80А, необходимо включать буферные регистры (КР580ВА86/ВА87, КР580ИР82) для усиления сигналов на шинах адреса и данных. Также разрабатываются схемы сопряжения для внешних устройств, обеспечивающие электрическую совместимость и правильную передачу сигналов.
- Синхронизация и сброс: Разработка схемы генератора тактовых импульсов (на базе КР580ГФ24) и цепей сброса (RC-цепочки) для обеспечения стабильной работы системы.
- Питание и разводка печатной платы: Разработка стабильной системы питания, грамотная разводка земляных и питающих шин, учет наводок и помех.
Все эти этапы тесно взаимосвязаны и требуют комплексного подхода, часто с использованием систем автоматизированного проектирования (САПР).
Инструменты отладки программного обеспечения
Отладка программного обеспечения для микропроцессорных систем на КР580, особенно написанного на Ассемблере, является сложным, но крайне важным этапом. В условиях, когда физическая аппаратная платформа могла быть недоступна или сложна в модификации, на помощь приходили эмуляторы.
Эмуляторы — это программные комплексы, которые имитируют работу реального микропроцессора и всей его периферии на более мощном компьютере.
Для изучения и отладки микропроцессорных систем на базе КР580 использовались и до сих пор используются такие эмуляторы, как:
- «Эмулятор «Emu 80» для микроЭВМ «Партнер 0101»»: Это один из примеров специализированных эмуляторов, который воссоздавал окружение конкретной советской ЭВМ.
- «Эмулятор КР580»: Существует множество различных эмуляторов с таким общим названием, созданных энтузиастами и разработчиками.
Эти эмуляторы предоставляют разработчику мощный набор функций, значительно упрощающих процесс отладки:
- Монитор (Monitor): Базовая программа, позволяющая просматривать и изменять содержимое ячеек памяти и регистров процессора, запускать программы по заданному адресу, выполнять одношаговые операции.
- Ассемблер (Assembler): Встроенный или внешний ассемблер, который транслирует исходный код программы, написанный на Ассемблере, в машинный код, понятный микропроцессору.
- Редактор (Editor): Текстовый редактор для набора и редактирования исходного кода программ.
- Отслеживание состояния ОЗУ и регистров: Эмуляторы позволяют в любой момент выполнения программы посмотреть текущее состояние всех регистров микропроцессора (A, B, C, D, E, H, L, PC, SP, F) и содержимое любой ячейки оперативной памяти. Это критически важно для понимания, как данные перемещаются и изменяются в процессе работы программы.
- Точки останова (Breakpoints): Возможность установить точки останова в коде, где выполнение программы будет приостановлено, позволяя разработчику анализировать состояние системы в определенные моменты.
- Пошаговое выполнение (Step-by-step execution): Выполнение программы по одной команде, что дает полный контроль над процессом и позволяет детально отслеживать изменения.
Особенности отладки на Ассемблере
Отладка программ на Ассемблере, особенно для низкоуровневых систем, требует особой тщательности и глубокого понимания архитектуры микропроцессора. Процесс может быть сложным по ряду причин:
- Низкий уровень абстракции: Каждая команда Ассемблера напрямую соответствует машинной операции, что дает полный контроль, но и требует учитывать множество мелких деталей. Ошибка в одной команде может привести к непредсказуемым последствиям.
- Прямая работа с памятью и регистрами: Программист напрямую управляет всеми ресурсами, что увеличивает вероятность ошибок, связанных с неправильной адресацией или порчей содержимого регистров.
- Отсутствие высокоуровневых средств: В отличие от современных языков, Ассемблер не предоставляет встроенных механизмов для обработки исключений, сложной работы с данными или автоматического управления памятью, что перекладывает всю ответственность на программиста.
Для успешной отладки на Ассемблере необходимы:
- Тщательное проектирование: Хорошо продуманный алгоритм и блок-схемы минимизируют ошибки на этапе кодирования.
- Постоянное тестирование: Тестирование небольших, изолированных фрагментов кода перед их интеграцией в большую программу.
- Использование отладочных средств: Активное применение эмуляторов, мониторов, трассировщиков и пошагового выполнения для локализации ошибок.
- Документирование кода: Подробные комментарии в коде, объясняющие логику работы, регистры, используемые переменные, значительно упрощают отладку.
Несмотря на сложности, опыт отладки на Ассемблере является бесценным для любого специалиста, так как он формирует глубокое понимание того, как вычислительная система работает на самом низком уровне.
Заключение
Изучение и разработка микропроцессорной системы на базе комплекта КР580 — это не просто курсовая работа, а увлекательное погружение в фундаментальные основы вычислительной техники, которые продолжают оставаться актуальными и сегодня. Анализ архитектуры КР580ВМ80А, его вспомогательных БИС, таких как КР580ГФ24, КР580ВК28/ВК38, КР580ИР82, КР580ВВ55, КР580ВН59 и КР580ВТ57, позволил не только воссоздать картину прошлого, но и подчеркнуть универсальность инженерных решений, применяемых в 1970-х годах и успешно адаптированных в отечественной промышленности.
В ходе работы мы подробно рассмотрели каждый аспект: от исторического контекста и места комплекта КР580 в отечественной вычислительной технике, до нюансов аппаратной реализации, включая буферизацию шин и планирование адресного пространства. Были детально описаны механизмы параллельного ввода-вывода, системы прерываний и прямого доступа к памяти, что критически важно для понимания взаимодействия микропроцессора с внешними устройствами. Отдельное внимание уделено разработке программного обеспечения на языке Ассемблера, что позволило не только изучить систему команд, но и проанализировать практический пример кода, демонстрирующий логику низкоуровневого программирования. Наконец, мы обсудили инструменты и методики проектирования и отладки, подчеркнув роль эмуляторов как незаменимых помощников в работе с такими системами.
Значимость изученного материала для современного студента выходит за рамки простого выполнения курсовой работы. Понимание архитектуры КР580ВМ80А и принципов построения систем на его основе формирует прочную теоретическую базу, необходимую для освоения более сложных современных архитектур. Это способствует развитию системного мышлен��я, навыков низкоуровневого программирования и глубокого понимания взаимодействия аппаратного и программного обеспечения.
В качестве направлений для дальнейшего исследования можно предложить:
- Разработку более сложных схем дешифрации адресного пространства с использованием ПЛИС.
- Изучение возможностей создания собственных эмуляторов или интегрированных сред разработки для КР580.
- Проектирование и реализацию специализированных периферийных устройств на базе КР580ВВ55 для решения конкретных задач (например, управления робототехническими системами).
- Анализ и сравнение производительности различных программных алгоритмов, реализованных на Ассемблере для КР580ВМ80А.
Комплект КР580, безусловно, является вехой в истории вычислительной техники, а его изучение позволяет заглянуть «под капот» цифрового мира, понимая, как рождались и эволюционировали те принципы, на которых базируются современные технологии.
Список использованной литературы
- Калабеков Б. А. Цифровые устройства и многопроцессорные системы: Учебник для техникумов связи. Горячая линия-Телеком, 2003. 336 с.
- Корнеев В. В., Киселев А. В. Современные микропроцессоры. 3-е изд., перераб. и доп. СПб.: БХВ-Петербург, 2003. 448 с.
- Микушин А. В., Сажнев А. М., Сединин В. И. Цифровые устройства и микропроцессоры: учеб. пособие. СПб.: БХВ-Петербург, 2010. 832 с.
- Нефедов А. В. Интегральные микросхемы и их зарубежные аналоги: Справочник. Т. 6. М.: ИП РадиоСофт, 2003. 544 с.
- КР580ГФ24. Микросхема. Компания Электроника и связь.
- Микросхема КР580ВМ80. Вычислительное устройство на основе микропроцессорного комплекта серии КР580. Studwood.
- Контроллер прямого доступа к памяти КР580ИК57 (КР580ВТ57). Виртуальный компьютерный музей.
- «Система команд микропроцессора КР580ВМ80А». Конспект лекции.
- Написание программы на ассемблере для процессора КР580ВМ80А. HPC.
- Программирование на языке Ассемблер (микропроцессор КР 580 ВМ 80).
- Микропроцессорная система КР580. BiblioFond.ru.
- Микропроцессорные системы управления. Белорусский государственный университет информатики и радиоэлектроники.
- КР580 и другие динозавры. Assembler / Ассемблер.
- Архитектура вычислительных устройств информационных систем. Севастопольский государственный университет.
- Микропроцессорный комплект серии КР580. Википедия.
- КР580ВМ80А. Википедия.