Принцип программы хранимой в памяти компьютера

В основе архитектуры современных ЭВМ лежит представление алгоритма решения задачи в виде программы последовательных вычислений. Согласно стандарту ISO 2382/1-84, программа для ЭВМ — это «упорядоченная последовательность команд, подлежащая обработке».

ЭВМ, где определенным образом закодированные команды программы хранятся в памяти, известна под названием вычислительной машины с хранимой в памяти программой. Идея принадлежит создателям вычислителя ENIAC Эккерту, Мочли и фон Нейману. Еще до завершения работ над ENIAC они приступили к новому проекту — EDVAC, главной особенностью которого стала концепция хранимой в памяти программы, на долгие годы определившая базовые принципы построения последующих поколений вычислительных машин. Относительно авторства существует несколько версий, но поскольку в законченном виде идея впервые была изложена в 1945 году в статье фон Неймана [Von Neumann, J. «First Draft of a Report on the EDVAC», Moore School, University of Pennsylvania, 1945], именно его фамилия фигурирует в обозначении архитектуры подобных машин, составляющих подавляющую часть современного парка вычислительных машин и вычислительных систем.

Основы программирования / Урок #5 – Как работает память компьютера?

Сущность фон-неймановской концепции вычислительной машины можно свести к четырем принципам:

  • — двоичного кодирования;
  • — программного управления;
  • — однородности памяти;
  • — адресности.

Принцип двоичного кодирования

Согласно этому принципу, вся информация, как данные, так и команды, кодируются двоичными цифрами 0 и 1. Каждый тип информации представляется двоичной последовательностью и имеет свой формат. Последовательность битов в формате, имеющая определенный смысл, называется полем, В числовой инфор-

мации обычно выделяют поле знака и поле значащих разрядов. В формате команды можно выделить два поля (рисунок 1.6): поле кода операции (КОп) и поле адресов (адресную часть — АЧ).

Формат команды

Рис. 1.6 Формат команды

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

Вид адресной части и число составляющих ее адресов зависят от типа команды: в командах преобразования данных АЧ содержит адреса объектов обработки (операндов) и результата; в командах изменения порядка вычислений — адрес следующей команды программы; в командах ввода/вывода — номер устройства ввода/ вывода. Адресная часть также представляется двоичной последовательностью, длину которой обозначим через р. Таким образом, команда в вычислительной машине имеет вид (гн-р)-разрядной двоичной комбинации.

Принцип программного управления

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

Как работает память компьютера? [Ted Ed на русском]

Принцип однородности памяти

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

Такой прием носит название модификации команд и с позиций современного программирования не приветствуется. Более полезным является другое следствие принципа однородности, когда команды одной программы могут быть получены как результат исполнения другой программы. Эта возможность лежит в основе трансляции — перевода текста программы с языка высокого уровня на язык конкретной вычислительной машины.

Концепция вычислительной машины, изложенная в статье фон Неймана, предполагает единую память для хранения команд и данных. Такой подход был принят в вычислительных машинах, создававшихся в Принстонском университете, из-за чего и получил название принстонской архитектуры.

Практически одновременно в Гарвардском университете предложили иную модель, в которой ВМ имела отдельную память команд и отдельную память данных. Этот вид архитектуры называют гарвардской архитектурой. Долгие годы преобладающей была и остается принстонская архитектура, хотя она порождает проблемы пропускной способности тракта «процессор-память». В последнее время в связи с широким использованием кэш-памяти разработчики ВМ все чаще обращаются к гарвардской архитектуре.

Читайте также:
Программа со схемами электрооборудования автомобилей

Принцип адресности

Структурно основная память состоит из пронумерованных ячеек, причем процессору в произвольный момент доступна любая ячейка. Двоичные коды команд и данных разделяются на единицы информации, называемые словами, и хранятся в ячейках памяти, а для доступа к ним используются номера соответствующих ячеек — адреса.

Контрольные вопросы

  • 1.1. Что понимается под ЭВМ?
  • 1.2. Охарактеризуйте перовое поколение ЭВМ.
  • 1.3. В чем основные отличие ЭВМ второго поколения от первого?
  • 1.4. Охарактеризуйте третье поколение ЭВМ.
  • 1.5. В ЭВМ какого поколения впервые появились микропроцессоры?
  • 1.6. В каком направлении идет развитие ЭВМ?
  • 1.7. Приведите классификацию средств ЭВТ по принципу действия.
  • 1.8. Приведите классификацию средств ЭВТ по сфере применения.
  • 1.9. Приведите классификацию средств ЭВТ по быстродействию.
  • 1.10. Поясните упрощенную структурную схему ЭВМ.
  • 1.11. Какие базовые функции возлагаются на ЭВМ?
  • 1.12. В чем состоит сущность фон-неймановской концепции вычислительной машины?
  • 1.13. Поясните принцип двоичного кодирования.
  • 1.14. В чем заключается принцип программного управления?
  • 1.15. Чем отличается принстонская архитектура от гарвардской?
  • 1.16. В чем заключается принцип адресности?

Источник: studref.com

Принцип хранимой в памяти программы

Принцип хранимой в памяти программы был предложен фон Нейманом в 1945 году. Этот принцип стал основой современных машин. В соответствии с этим принципом команды хранятся в памяти, также как и данные. При этом под программу отводится одна отдельная область памяти, под данные — другая область.

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

Адрес операнда

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

Программа вычисления выражения: при использовании команд последнего типа намного сокращается.

5-я команда: i>n?. Если нет, то переход на 2-ю команду;

6-я команда: Конец.

Обобщенный формат команд

Команды в ЦВМ могут быть одноадресными, двухадресными и трехадресными (в машинах с так называемой естественной адресацией команд).

А -Адрес операнда

А1-Адрес 1-го операнда

А2- Адрес 2-го операнда

А1-Адрес 1-го операнда

А2-Адрес 2-го операнда

А3-Адрес 3-го операнда

Команда состоит из операционной части- кода операции (КОП) и адресной части. В операционной части указывается тип выполняемой операции в виде двоичного числа. В адресной части указывается адрес ячейки памяти, в которой размещается операнд (одноадресная команда). Если в команде указывается адреса 1-го и 2-го операнда, то такая команда называется двухадресной. В трехадресной машине указывается еще и адрес результата, то есть ячейка ОП, куда помещается результат.

Какая из систем лучше? В современных машинах большого класса могут сочетаться все типы. Приведенные типы команд относятся к так называемым машинам с естественной адресацией, когда команды из программы выбираются последовательно одна за другой. Адресация производится с помощью счетчика команд СчК (PC- Program Count). Однако существовали машины и с принудительной адресацией, в которых очередная команда выбиралась по адресу, указанному в предыдущей команде (такой способ адресации сохранен в настоящее время только в так называемых микропрограммных устройствах управления).

Структура команд такой машины:

где Ар- адрес результата;

Аск -адрес следующей команды .

Если операндов два, и еще существует поле адреса результата, то команда становится четырехадресной:

Источник: studfile.net

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

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

Читайте также:
Как попасть в программу ремонт квартиры

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

· раздельные кэши команд и данных по 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) и не забудь поделиться с друзьями:

Источник: studopedia.ru

Рейтинг
( Пока оценок нет )
Загрузка ...
EFT-Soft.ru