question-5

Вопрос 5

Структура и принцип функционирования ЭВМ. Порядок функционирования простого процессора на примере калькулятора

Структура и принцип функционирования ЭВМ

Типичная ЭВМ (построенная по архитектуре фон Неймана) состоит из трех главных узлов:

  • Процессор (CPU): включает в себя АЛУ (арифметико-логическое устройство), Устройство Управления (УУ, декодирует команды и переключает нужные вентили) и набор регистров (сверхбыстрая память для текущих операндов).

  • Память: хранит как исполняемые программы (инструкции), так и данные, из-за чего по ячейке так сразу и не скажешь, будет она командой или данными - может быть и тем, и другим. Состоит из пронумерованных (адресуемых) ячеек.

  • Устройства ввода-вывода (ВУ): обеспечивают связь ЭВМ с внешним миром.

Все эти узлы соединены системной шиной, состоящей из шины данных, шины адреса и шины управления.

Функционирование ЭВМ — это непрерывный цикл: процессор извлекает команду из памяти (по адресу из счетчика команд), декодирует её, при необходимости извлекает операнды, выполняет действие в АЛУ, сохраняет результат и переходит к следующей команде.

Порядок функционирования на примере калькулятора

Рассмотрим простейшую ЭВМ — калькулятор. Его структура включает:

  • Регистр X: связан с дисплеем (показывает текущее введенное число или результат).
  • Регистр Y: хранит предыдущее число (операнд памяти).
  • АЛУ: умеет складывать и сдвигать.
  • УУ (Устройство управления): реагирует на кнопки и посылает сигналы (У1, У2…) на открытие нужных вентилей.

Далее идут три слайда из презы №1, которые все переписать на экзе не получится уж точно. Выберите себе самый удобный для Вас вариант и потактово распишите (ну или хотя бы нарисуйте схемку с пояснениями).

Пример 1: Ввод первой цифры числа (например, нажали «7»)

Если пользователь начинает вводить новое число, УУ должно сохранить старые данные и подготовить Регистр X. 1. Содержимое Регистра X пересылается в Регистр Y (открывается вентиль У3). Этот шаг необходим для сохранения 1-го аргумента при операциях +,-, * и т.д. 2. Регистр X обнуляется: вентили У2 и У6 открываются, записывая 0 в X. 3. АЛУ складывает X (в котором сейчас 0) с введенной цифрой «7» (открыты вентили У1, У5, задана операция сложения У7). 4. Результат записывается в Регистр X (У2). calc_schema_1.png

Пример 2: Ввод второй (и последующих) цифр числа

Если мы продолжаем вводить число (например, после «7» нажимаем «5»), УУ должно сдвинуть уже введенные данные влево (умножить на 10) и добавить новую цифру. 1. Содержимое Регистра X через вентиль У1 поступает на левый вход АЛУ. Вентиль клавиатуры У5 закрыт (на правый вход идет 0). 2. Выполняется операция сдвига (У8). Результат через У2 пишется обратно в X (теперь там 70). 3. Сдвинутое значение снова подается на АЛУ (У1), а вентиль клавиатуры У5 открывается, пропуская цифру «5» на правый вход. 4. АЛУ складывает 70 и 5 (У7). Результат сохраняется в X (У2) и отображается на экране (75). calc_schema_2.png

Пример 3: Операция сложения (нажали кнопку «+» или «=»)

Нужно сложить текущее число на экране (Регистр X) с числом, сохраненным ранее (Регистр Y). 1. УУ открывает вентиль У1 (содержимое X идет на левый вход АЛУ) и вентиль У4 (содержимое Y идет на правый вход АЛУ). Вентиль клавиатуры У5 строго закрыт. 2. УУ подает на АЛУ приказ выполнить сложение (У7). 3. Результат суммы через открытый вентиль У2 записывается в Регистр X. Экран аппаратно отображает новое значение. calc_schema_3.png

Ссылка на оригинал


question-35

Вопрос 35

Параллельная передача данных. Контроллеры параллельной передачи и приема

Параллельная передача данных

При параллельной передаче все биты информационного слова (например, 8 или 16 бит) передаются одновременно по отдельным физическим проводам.

  • Плюсы: Высокая скорость передачи данных при одинаковой тактовой частоте по сравнению с последовательным интерфейсом.
  • Минусы: Требуется много проводов (дороговизна разъемов и кабелей). Интерфейс сильно подвержен электромагнитным помехам (наводкам между проводами) и рассинхронизации сигналов, из-за чего дальность передачи очень мала.

Контроллер параллельной передачи (Вывод в ВУ)

Используется для отправки данных из процессора во внешнее устройство (ВУ) с помощью асинхронного обмена (по готовности). Основные аппаратные элементы: буферный регистр данных A1 и регистр состояния A2 (выполняющий роль флага занятости).

Алгоритм работы контроллера передачи:

  1. Процессор (непрерывно в цикле или по прерыванию) проверяет регистр состояния A2. 0 — контроллер свободен, 1 — занят.
  2. Если A2 = 0, процессор выставляет выводимый байт на системную шину данных и подаёт команду “Вывод”.
  3. Логика управления контроллера записывает данные в регистр A1 и одновременно устанавливает регистр A2 в 1. На ВУ физически уходит сигнал “Выходные данные готовы”.
  4. Внешнее устройство считывает данные из A1 и отправляет обратно аппаратный сигнал “Данные приняты”.
  5. Этот сигнал аппаратно сбрасывает регистр A2 в 0, сигнализируя процессору, что байт доставлен и можно отправлять следующий.

io-parallel-dev-give.png

Рис. 1: Контроллер передачи параллельного асинхронного интерфейса

Зачем столько линий и причём тут RS- и D-триггеры?

Логика управления (ЛУ) сама не передаёт данные. Буферный регистр А1 построен на базе D-триггеров. Когда процессор выставляет данные на шину, они подходят ко входам D регистра A1. ЛУ лишь расшифровывает команду процессора и посылает короткий синхроимпульс на входы C (Clock) регистра. По этому стробу D-триггеры аппаратно “защёлкивают” данные внутри себя. Подробнее об этом: RS- и D-Триггеры.

Что за облачко молочного цвета?

Регистр состояния A2 — это физически всего один RS-триггер (1 бит). Однако системная шина данных многоразрядная. Чтобы процессор мог прочитать этот 1 бит, выход триггера A2 аппаратно припаян к нулевому проводу шины данных. Остальные разряды при чтении заполняются нулями.

Контроллер параллельного приема (Ввод из ВУ)

Используется для получения данных от внешнего устройства. Состоит из тех же основных элементов: буферного регистра данных A1 и регистра состояния A2.

Алгоритм работы контроллера приема:

  1. Внешнее устройство выставляет байт данных на периферийную шину и подаёт в контроллер сигнал “Запись вА1”.
  2. Данные сохраняются в буферном регистре A1, а регистр состояния A2 устанавливается в 1. Контроллер выставляет на системную шину управления сигнал “Готовность ВУ” (сообщающий процессору, что свежие данные можно забирать).
  3. Процессор обнаруживает готовность (считав A2 напрямую или получив прерывание) и подаёт команду “Ввод”.
  4. Данные из A1 выдаются на системную шину данных и считываются в аккумулятор процессора.
  5. Одновременно с чтением логика управления сбрасывает регистр A2 в 0, отправляя на ВУ сигнал “Данные приняты”. Это сообщает внешнему устройству, что контроллер свободен и можно присылать следующий байт.

io-parallel-dev-get.png

Рис. 2: Контроллер приема параллельного асинхронного интерфейса

Что изменилось?

Тут изменения только в том, что теперь все линии к триггерам исходят от ВУ. Аналогично контроллеру передачи, тут “запись в А1” - это сигнал C для D-триггера, а RS-триггер работает точно так же, но в другую сторону

Ссылка на оригинал