Понятие многоуровневой ЭВМ. Понятие и пример программы на разных уровнях

Понятие многоуровневой ЭВМ

Современные вычислительные системы слишком сложны, чтобы программировать их напрямую на физическом уровне (управлении транзисторами и логическими вентилями). Для решения этой проблемы архитектура ЭВМ строится по иерархическому принципу в виде набора логических уровней.

Каждый уровень представляет собой виртуальную машину со своим собственным языком программирования.

Иерархия уровней ЭВМ и пример программы

Для демонстрации работы уровней рассмотрим задачу сложения двух чисел: .

Уровень 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: Уровень машинных команд

Уровень двоичных (или шестнадцатеричных) кодов, которые физически считываются процессором из ОЗУ. Это интерфейс между программным обеспечением и аппаратной частью. Пример:

--- Память
001: (содержимое X)
002: (содержимое Y)
003: (содержимое R)
--- Команды
010: A001 (LD X)
011: 4002 (ADD Y)
012: E003 (ST R)

Уровень 1: Микропрограммный уровень

Самый низкий программный уровень. Каждая машинная команда уровня 2 интерпретируется на уровне 1 как последовательность микрокоманд. Микрокоманды напрямую управляют вентилями процессора, АЛУ и регистрами в течение каждого такта генератора. Пример микрокоманды сложения (ADD): 32 0010E09011 — операционная микрокоманда БЭВМ, которая подключает выходы AC и DR к АЛУ, выполняет сложение и записывает результат обратно в AC с обновлением флагов.