Понятие многоуровневой ЭВМ. Понятие и пример программы на разных уровнях
Понятие многоуровневой ЭВМ
Современные вычислительные системы слишком сложны, чтобы программировать их напрямую на физическом уровне (управлении транзисторами и логическими вентилями). Для решения этой проблемы архитектура ЭВМ строится по иерархическому принципу в виде набора логических уровней.
Каждый уровень представляет собой виртуальную машину со своим собственным языком программирования.
Иерархия уровней ЭВМ и пример программы
Для демонстрации работы уровней рассмотрим задачу сложения двух чисел: R=X+Y.
Уровень 5: Уровень программных систем
Уровень прикладного ПО и специализированных языков программирования (например, формулы в Excel). Пользователь работает в абстрактной визуальной среде.
Пример: формула в ячейке =СУММ(X; Y).
Уровень 4: Уровень проблемно-ориентированных задач (Языки высокого уровня)
Языки программирования общего назначения (C, C++, Java, Python). Они независимы от конкретной аппаратной архитектуры процессора и ориентированы на удобство человека.
Пример на языке C:
int r = x + y;
Уровень 3: Язык Ассемблера
Символическое представление машинных команд конкретного процессора. Каждой строке ассемблерного кода соответствует ровно одна машинная команда. Компилятор (ассемблер) переводит имена переменных в реальные адреса памяти.
Пример:
LD X ; Загрузить значение X в аккумуляторADD Y ; Сложить с Y, результат в аккумулятореST R ; Сохранить результат в ячейку R
Уровень 2: Уровень машинных команд
Уровень двоичных (или шестнадцатеричных) кодов, которые физически считываются процессором из ОЗУ. Это интерфейс между программным обеспечением и аппаратной частью.
Пример:
Самый низкий программный уровень. Каждая машинная команда уровня 2 интерпретируется на уровне 1 как последовательность микрокоманд. Микрокоманды напрямую управляют вентилями процессора, АЛУ и регистрами в течение каждого такта генератора.
Пример микрокоманды сложения (ADD):32 0010E09011 — операционная микрокоманда БЭВМ, которая подключает выходы AC и DR к АЛУ, выполняет сложение и записывает результат обратно в AC с обновлением флагов.
Адресуемая память, организация и временные диаграммы. Конструктивные особенности современной памяти
Организация адресуемой памяти
Память физически представляет собой двумерную матрицу ячеек. Чтобы не тянуть к каждой ячейке отдельный провод, адрес делится на две части: адрес строки и адрес столбца.
Для экономии контактов на микросхеме обе части адреса передаются по одной шине последовательно. Процессор сначала выставляет адрес строки и подаёт сигнал RAS (Row Address Strobe) — адрес защёлкивается в регистре строк памяти. Затем процессор выставляет адрес столбца и подаёт сигнал CAS (Column Address Strobe). На пересечении активной строки и столбца выбирается нужная ячейка.
Рис. 1: Организация памяти с фиксацией строк и столбцов
Временные диаграммы асинхронной памяти
При взаимодействии процессора и памяти зоны ответственности разделены: Процессор управляет Шиной Адреса и сигналами “Чтение/Запись”, а Память управляет сигналом “Готовность”. Шина данных двунаправленная. Выделяют два основных цикла:
Цикл считывания:
Процессор выставляет адрес на шину и подаёт сигнал “Чтение”. Памяти требуется время, чтобы дешифровать адрес и выставить данные на шину — это Время доступа (Тд). Как только данные на шине стабилизировались, память выдает сигнал «Готовность». Процессор считывает данные и убирает свои сигналы адреса и чтения. Заметив это, память снимает “Готовность” и очищает шину данных. Время “реакции” памяти называется Временем восстановления (Тв).
Цикл записи:
Процессор выставляет на шины адрес и данные, а затем бьёт коротким Импульсом записи. Этот импульс необходим аппаратуре памяти как точный триггер, указывающий момент для физической фиксации данных с шины в ячейки. После успешной записи память выставляет “Готовность”, процессор снимает свои сигналы.
Рис. 2: Временные диаграммы работы памяти
Конструктивные особенности современной памяти
Современная оперативная память является синхронной (SDRAM). Это значит, что все процессы внутри неё происходят строго по фронтам тактового генератора (ТГ), что позволяет избавиться от асинхронных задержек на сигналы “Готовность”.
Рис. 3: Чтение в SDRAM
Зачем нужен сигнал Output Enable (OE)?
К одной шине данных подключено множество микросхем. Сигнал OE (Разрешение выхода) физически подключает буферы конкретной микросхемы к шине строго в нужный такт, чтобы её сигналы не столкнулись с данными от других устройств.
Для повышения скорости работы внедрены следующие конструктивные особенности:
Burst mode (Пакетный режим):
Способность памяти выдавать данные целым пакетом (например, сразу 64 байта) в ответ на один адрес. Память сама инкрементирует адрес столбца с каждым следующим тактом.
Double Data Rate (DDR):
Технология, позволяющая передавать данные дважды за один такт ТГ: и по фронту (напряжение растёт), и по спаду сигнала.
Interleaving (Расслоение памяти):
ОЗУ делится на несколько независимых банков. Соседние по адресам данные лежат в разных банках. Пока один банк уходит на восстановление после чтения (Тв), процессор уже читает данные из соседнего банка без простоев.
SPD (Serial Presence Detect):
Маленький чип на планке ОЗУ, в котором производитель зашивает физические характеристики модуля. BIOS считывает их при включении ПК для правильной настройки таймингов.