Чет про программирование / 1) Принципы Неймана, процессор, память
.docxПринципы Джона фон Неймана.
В 1946 году Нейман предложил ряд новых идей организации ЭВМ, в том числе концепцию хранимой программы, он предложил записывать и хранить в памяти алгоритм вычислений вместе с данными. Принципы Дж . фон Неймана показались вначале простыми и очевидными и лишь в дальнейшем они приобрели статус фундаментальных положений, надолго определивших направление развития вычислительной техники. В результате реализации идей фон Неймана была создана архитектора ЭВМ, во многих чертах сохранившаяся до настоящего времени. Основные принципы заключались в следующем:
-
Компьютеры на электронных элементах должны работать не в десятичной, а в двоичной системе счисления.
-
Компьютер управляется программой, составленной из отдельных шагов - команд. Программа должна размещаться в одном из блоков компьютера - в запоминающем устройстве, обладающем достаточной емкостью и скоростью выборки команд.
-
Команды, так же как и числа, с которыми оперирует компьютер, записываются в двоичном коде. Это обстоятельство приводит к следующим важным последствиям
-
промежуточные результаты вычислений, константы и другие числа могут размещаться в том же запоминающем устройстве, что и программа;
-
числовая форма записи программы позволяет производить операции над величинами, которыми закодированы команды программы;
-
появляется возможность перехода в процессе вычислений на тот или иной участок программы в зависимости от результатов вычислений, условных переходов.
-
Трудности физической реализации запоминающего устройства, быстродействие которого соответствует скорости работы логических схем требует иерархической организации памяти.
-
Арифметическое устройство конструируется на основе схем, выполняющих операцию сложения - создание специальных устройств для выполнения других операций нецелесообразно.
-
Необходимо использовать параллельный принцип организации вычислительного процесса (операции над словами производятся одновременно во всех разрядах слова)
Принцип использования двоичной системы счисления расширил набор физических приборов и явлений, которые можно использовать для представления информации в операционных и запоминающих устройствах компьютера. Две цифры для отображения "1" и "0" могут быть отображением состояния любой двухстабильной системы. В двоичной системе счисления возможно построение логических схем и реализация функций алгебры логики.
Принцип хранимой в памяти программы, представленной в двоичном коде, позволяет производить не только вычисления, направляя команду в устройство управления, а данные в арифметическое устройство, но и преобразовывать сами команды, например в зависимости от результатов вычислений, используя для преобразования коды команд и оперируя с ними, как с данными.
Принцип реализации условных переходов позволяет осуществлять программы с циклическими вычислениями с автоматическим выходом из цикла. Благодаря принципу условного перехода сокращается число команд, в программе, так как не требуется повторять одинаковые участки программы.
Принцип иерархической организации памяти был сформулирован в связи с тем, что с самого первого компьютера с сохраняемой программой существовало несоответствие между быстродействием арифметического устройства и оперативной памяти. Противоречия бы не существовало, если выполнить память на тех же элементах, что и арифметическое устройство, но такая память получалась слишком дорогой. Иерархическое построение оперативного запоминающего устройства позволяет иметь быстродействующую память небольшого объема только для данных и команд, подготовленных к выполнению. Все остальное хранится в запоминающем устройстве более низкого уровня.
Параллельный принцип организации вычислений позволяет значительно увеличить скорость вычислений.
Иерархия памяти
Различные виды памяти (устройства хранения данных) образуют иерархию, на различных уровнях которой расположены памяти с отличающимися временем доступа, сложностью, стоимостью и объемом. Возможность построения иерархии памяти вызвана тем, что большинство алгоритмов обращаются в каждый промежуток времени к небольшому набору данных, который может быть помещен в более быструю, но дорогую и поэтому небольшую, память. Использование более быстрой памяти увеличивает производительность вычислительного комплекса.
При проектировании высокопроизводительных компьютеров и систем необходимо решить множество компромиссов, например, размеры и технологии для каждого уровня иерархии. Каждый уровень является как бы подчиненным для предыдущего уровня иерархии. Для уменьшения времени ожидания на более высоких уровнях, низшие уровни могут подготавливать данные укрупненными частями с буферизацией и, по наполнению буфера, сигнализировать верхнему уровню о возможности получения данных.
Пример иерархии памяти ЭВМ:
-
Регистры процессора (несколько сотен байт)
-
Кэш L1 процессора (десятки Кб)
-
Кэш L2 процессора (около 0,5 Мб)
-
Кэш L3 процессора (несколько Мб)
-
ОЗУ (несколько гигабайт)
-
Локальное дисковое хранилище (до нескольких Тб)
-
Удаленное дисковое хранилище (неограниченные объемы)
Логика работы процессора
Процессор – это основное устройство ЭВМ, выполняющее логические и арифметические операции, и осуществляющее управление всеми компонентами ЭВМ.
Рабочий цикл по своему содержанию в основном одинаков для всех вычислительных машин различных поколений и отличается лишь некоторыми техническими деталями реализации. Важной составной частью фон-неймановской архитектуры является счетчик адреса команд. Он постоянно указывает на ячейку памяти, в которой хранится следующая команда. Считав очередную команду из памяти, процессор сразу же увеличивает значение счетчика так, чтобы он показывал на следующую команду. Считанная в регистр команд операция расшифровывается, извлекаются необходимые данные, над ними в АЛУ выполняются требуемые действия и, если предусмотрено операцией, результат записывается в ОЗУ.
Затем во всех случаях, за исключением команды останова, описанные действия циклически повторяются.
Начало Считывание очередной команды в регистр Формирование адреса след. команды Расшифровка команды (с пом. Набора команд процессора) Выборка данных Выполнение Запись результата.
Все процессоры можно разделить на:
-
Процессоры с расширенной системой команд (CISC - процессоры).
-
Процессоры с сокращенной системой команд (RISC - процессоры).
Первый тип процессоров характеризуется небольшим числом регистров, но большим количеством команд, более длинным форматом их записи в байтах и, соответственно, более медленной работой. Такие процессоры используются в универсальных вычислительных системах и являются стандартом для микрокомпьютеров.
Второй тип процессоров характеризуется меньшим количеством команд и, соответственно, более высоким быстродействием. Но сложные операции в этом случае приходится разбивать на последовательность простейших команд, что не всегда эффективно. Поэтому такие процессоры используются в специализированных вычислительных системах, ориентированных на выполнение однообразных операций.