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

Раздел 1. Основы построения ОС и СУБД

Тема 1: Архитектура, аппаратное и программное обеспечение вычислительной системы

Лекция №1. Основные понятия и абстракции ОС

Лекция является вводной и в ней рассматриваются вопросы архитектур компьютера, формулируются требования к ОС, вводятся основные понятия и абстракции операционной системы.

Более конкретно рассматриваются следующие вопросы:

· Фоннеймановская архитектура ЭВМ. Принцип хранимой в памяти программы.

· Процедура выполнения команд.

· Компоненты компьютера.

· Устройства ввода-вывода и организация памяти.

· Виды архитектур современных вычислительных систем.

Предложенная Von Neumann архитектура ЭВМ основывается на концепции хранимой программы и последовательных вычислениях. В ней определены следующие основные устройства: арифметико-логическое устройство (АЛУ), память (ЗУ), управляющее устройство (УУ), устройство ввода данных в машину, устройство вывода из нее результатов расчета и устройство взаимодействия с пользователем для приема управляющих команд.

Арифметико-логическое устройство (АЛУ) осуществляет арифметические и логические преобразования над поступающими в него машинными словами, т. е. кодами определенной длины.

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

Управляющее устройство (УУ) автоматически управляет вычислительным процессом, посылая всем другим компонентам управляющие команды и сигналы, предписывающие им конкретные действия.

УУ осуществляет автоматическое управление вычислительным процессом на основе принципа программного управления, являющегося основной особенностью ЭВМ. Он тесно связан с другим принципом хранимой в памяти программы. Согласно этому принципу команды программы, закодированные в цифровом виде, хранятся в памяти наравне с операндами. В команде указываются не операнды непосредственно, а соответствующие им адреса ОП, и адреса ячеек для помещения результата операции.

Поскольку команды представляются в форме чисел, то над командами также могут выполняться операции (“модификация команд”).

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

В настоящее время известна и используется гарвардская архитектура (Harvard architecture), отличающаяся раздельной памятью программ и данных для конвейерной обработки, а также раздельными шины адреса и данных для доступа к ним. Команда и операнд могут считываться одновременно за один машинный такт, что уменьшает число тактов, требуемых для выполнения машинной команды), чем отличается от фон-неймановской архитектуры. Развитие этого направления представляет модифицированная гарвардская архитектура (modified Harvard architecture), в которой применяются три банка памяти, со своими собственными наборами шин.

В этой связи представляет интерес обратиться к отечественным разработкам в области построения программного обеспечения (ПО) архитектурных решений, например, к разработанным в ИТМиВТ системам Эльбрус-1 (1978) и Эльбрус-2 (1984), реализованным с использованием языка программирования высокого уровня Эль-76, а не традиционного ассемблера. Эль-76 отличался динамическим связыванием типов, которое поддержано на аппаратном уровне. Эль-76 являлся одновременно языком прикладного программирования, управления заданиями, системного программирования. Эль-76 перед исполнением переводился в байткод. Этот байткод "на лету" аппаратно транслировался в машинные команды. Возглавлявший проект 32-разрядного микропроцессора Эль-90 Владимир Пентковский затем являлся главным архитектором Pentium III (1993). В Эль-90 сочетались концепция RISC и архитектура Эльбрус-2. Основные характеристики Эль-90, которые также иллюстрируют основную терминологию определения архитектуры вычислительной системы:

· выдача до трех команд за такт;

· 32-разрядная архитектура;

· упрощенный набор команд, большинство команд исполняются за один такт;

· аппаратная поддержка языков программирования высокого уровня;

· исполнение по предположению;

· изменение порядка исполнения команд;

· предсказание ветвлений;

· переименование регистров;

· раздельные кэши команд и данных по 32KB;

· конвейеризованное устройство вещественной арифметики;

· поддержка многоуровневой иерархии памяти, кэш первого и второго уровня;

· поддержка мультипроцессорност и (до 10 процессоров);

· поддержка отладки, мониторинг производительности;

· режим " сверхнадежных вычислений ", в котором несколько процессоров независимо производят вычисления и сравнивают результаты, а если результаты расходятся, считают заново.

Эти характеристики иллюстрируют сложность построения современных вычислительных систем. В этой связи следует обратиться также к терминологии.

Центральный процессор, ЦП (CPU) - компонент компьютера, непосредственно исполняющий машинные команды, соответствующие его набору команд. Содержит регистровый файл (register file), устройство управления (control unit), устройство управления памятью (MMU), арифметико-логическое устройство (ALU) и другие блоки.

ALU (Arithmetic-Logic Unit) - арифметико-логическое устройство, компонент процессора, выполняющий набор его арифметических и логических команд, а также команды сдвигов. Команды арифметики с плавающей запятой выполняются блоком арифметики с плавающей запятой (FPU), управление памятью и взаимодействие с внешними устройствами осуществляется блоком MMU.

Набор команд (instruction set) - совокупность всех машинных команд, которые может исполнять данный процессор. Типичный набор состоит из арифметических и логических команд, команд пересылки данных, команд переходов и ввода-вывода. Набор команд - составная часть архитектуры процессора и может рассматриваться в качестве интерфейса между программным и аппаратным обеспечением. Существуют RISC-, CISC- и VLIW –архитектуры.

RISC-архитектура - архитектура процессоров, построенная на основе сокращённого набора команд. Характеризуется наличием команд фиксированной длины, большого количества регистров, операций типа регистр-регистр, а также отсутствием косвенной адресации.

CISC (Complex Instruction Set Computer) - процессор со сложным набором команд, традиционной архитектуры процессоров с широким набором различных машинных команд переменной длины и различным временем их исполнения.

VLIW (Very Long Instruction Word) – архитектура процессора с командными словами очень большой длины, в такой команде объединено несколько обычных команд, которые выполняются одновременно (параллельно) разными функциональными блоками процессора для повышения его быстродействия. Рост производительности достигается за счет того, что процессору не нужно тратить время на организацию параллелизма на уровне команд (ILP, Instruction Level Parallelism). Группирование параллельно исполняемых операций выполняет компилятор.

EPIC (Explicitly Parallel Instruction Computing) - вычисления с явно заданным параллелизмом команд. В этой технологии компилятор явным образом говорит процессору, какие команды можно исполнять параллельно, а какие зависят от других команд

ILP - параллелизм на уровне машинных команд, означает способность процессора исполнять несколько машинных команд одновременно в рамках одного программного потока (Thread).

Hyper-Threading (HT) – гиперпотоковость, название технологии, реализованной в процессоре Pentium 4. Она использует возможности незадействованных регистров и блоков процессора, позволяя ему работать до 30% производительнее. Благодаря этому настольный ПК может выполнять два разных приложения одновременно или одно приложение, но быстрее, чем однопроцессорная система.

Parallel processing - параллельная обработка. Способ выполнения задачи на многопроцессорном компьютере, когда отдельные её блоки (процессы) распределяются по всем доступным процессорам

Parallel computer - параллельный компьютер. Вычислительная система с распараллеливанием выполнения операций на множестве а рифметических и логических блоков (процессоров). Различают системы с общей и распределённой оперативной памятью, многопроцессорные и многокомпьютерные системы.

Symmetric multiprocessing (SMP) - симметричная многопроцессорная система. Сильносвязанная система, используемая для параллельных вычислений, в которой однотипные процессорные элементы управляются единой операционной системой, причем каждый процессор имеет одинаковый доступ к устройствам ввода-вывода и все процессоры делят общее пространство памяти. Задачи (потоки) распределяются между разными процессорами. Так как все процессоры рассматриваются как эквивалентные, то новая задача поступает на процессор с наименьшей рабочей загрузкой на момент диспетчеризации задач. Процессоры взаимодействуют друг с другом по так называемой шине межсоединения

NUMA (Non-Uniform Memory Architecture [Access]) - архитектура неоднородного доступа к памяти, архитектура NUMA. Это архитектура с распределённой разделяемой памятью многопроцессорной системы, в которой время доступа в память зависит от её расположения (доступ процессора к локальному ОЗУ быстрее, чем к нелокальному). Для этого процессоры организуются в небольшие группы (кластеры), каждая из которых имеет собственный общий пул ОЗУ. Позволяет значительно увеличить число процессоров в SMP–системе.

Локальная память (local memory) - в многопроцессорных системах (например, в кластерах) относится к конкретному процессору (обычно расположена на одной с ним плате).

MPP (Massively Parallel Processing) - вычисления с массовым параллелизмом. Это архитектура многопроцессорной системы, в которой каждый из процессоров имеет собственное ОЗУ и копию ОС, приложения и обрабатывает данные независимо (SMP) от других процессоров.

SSP (Small-Scale Parallel system) - вычислительная система с ограниченным параллелизмом в работе.


Понравилась статья? Добавь ее в закладку (CTRL+D) и не забудь поделиться с друзьями:  



double arrow
Сейчас читают про: