Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Лекции / 1CompArch.doc
Скачиваний:
36
Добавлен:
20.06.2014
Размер:
657.41 Кб
Скачать

ОБЩАЯ АРХИТЕКТУРА ЭВМ

СТРУКТУРА, ПРИНЦИПЫ РАБОТЫ И ПРОГРАММИРОВАНИЕ ЭВМ

Структуризация ЭВМ

Определение и назначение ЭВМ

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

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

Существуют компьютеры, в которых программу менять не требуется или требуется не часто. Это, например, компьютеры для управления оборудованием какого-либо технологического процесса, где выполняется одна и та же задача по обработке информации. В других случаях требуется решать множество задач и, соответственно, запускать различные программы для их решения. Для запуска различных программ на исполнение и, при необходимости, управления их работой или обеспечения их работы предназначена специальная программа (совокупность программ) — операционная система (ОС — OS, Operating System). Есть еще одна программа или совокупность программ — базовая система ввода-вывода (Basic Input-Output System, BIOS), которая тоже предназначена для обеспечения работы других программ, в том числе и операционной системы. BIOS начинает работать сразу после включения питания компьютера. Она тестирует оборудование, инициализирует необходимые параметры, некоторые из которых можно поменять с помощью программы Setup BIOS, например дату и время, а потом загружает операционную систему с диска в оперативную память компьютера.

Основные деления в ЭВМ

Можно провести следующие основные деления в ЭВМ, аналогичные делениям, принятым для человеческого организма:

  1. Аппаратная (твердая, hard) часть — программная (мягкая, soft) часть (скелет — мягкие ткани).

  2. Подсистемы (системы):

  • математическая — вычисления с плавающей точкой;

  • физическая — физические расчеты;

  • сигнальная (MMX) — обработка сигналов;

  • звуковая (аудиосистема) — обработка звуковых сигналов;

  • графическая (видеосистема) — обработка видеосигналов;

  • коммуникационная — обработка пакетов;

  • безопасности;

  • прерываний;

  • прямого доступа к памяти;

  • ввода-вывода;

  • ввода информации с клавиатуры и т.д.

  • Элементы (органы):

    • центральные (внутренние):

    • процессор (обрабатывающее устройство);

    • память (запоминающее устройство);

    • периферийные (внешние) — устройства ввода-вывода.

    Процессор и память — это "мозг" компьютера, генератор тактовых импульсов — "сердце", устройства ввода-вывода — органы "чувств" и "речи".

    Деление на органы можно условно назвать "поперечным", а на подсистемы — "продольным".

    Можно ввести также и "вертикальное" деление — на уровни [Таненбаум-2007]:

    1. Уровень 5 — "Язык высокого уровня".

    2. Уровень 4 — "Уровень языка ассемблера".

    3. Уровень 3 — "Уровень операционной системы".

    4. Уровень 2 — "Уровень архитектуры команд".

    5. Уровень 1 — "Уровень микроархитектуры".

    6. Уровень 0 — "Цифровой логический уровень".

    7. Уровень -1 — "Уровень физических устройств".

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

    Основные элементы подсистем компьютера

    Надо отметить, что многие подсистемы, устройства ввода-вывода и их интерфейсы имеют главный элемент, называемый контроллером или процессором:

    • математическая — устройство с плавающей точкой (Floating Point Unit, FPU);

    • физическая — физический процессор (Physics Processing Unit, PPU);

    • сигнальная — сигнальный или медийный процессор, устройство MMX;

    • звуковая — сигнальные процессоры: аудиоконтроллер и аудиокодек;

    • графическая — графический процессор (Graphics Processing Unit, GPU);

    • коммуникационная — сетевой процессор (Network Processor, NP);

    • безопасности — криптографический процессор (примеры: SLD 9630 TT компании Infineon, AT97SC3201 и AT97SC3202 Atmel (код 38L3S13), PC8374T National Semiconductor, ST19WP18 STMicroelectronics);

    • прерываний — контроллер прерываний (Programmable Interrupt Controller, PIC);

    • прямого доступа к памяти — контроллер ПДП (Direct Memory Access Controller, DMA Controller);

    • ввода-вывода — контроллер ввода-вывода;

    • ввода информации с клавиатуры — контроллер клавиатуры и микро-ЭВМ клавиатуры.

    Архитектура фон Неймана

    Схема ЭВМ архитектуры фон Неймана

    ЭВМ в укрупненном виде представляется архитектурой фон Неймана (рис.).

    Рис. Схема ЭВМ архитектуры фон Неймана

    Основные принципы архитектуры фон Неймана

    В своей знаменитой работе "First Draft of a Report on the EDVAC" (Moore School of Electrical Engineering, University of Pennsylvania, June 30, 1945) Джон фон Нейман (John von Neumann) разработал фундаментальные математические основы построения компьютеров, которые предполагалось реализовать в EDVAC — Electronic Discrete Variable Automatic Computer. Сформулированные им основные принципы и называются архитектурой фон Неймана.

    Основные принципы архитектуры фон Неймана (в скобках приведены оригинальные названия частей вычислительной системы из работы "First Draft of a Report on the EDVAC"):

    1. Машина состоит из пяти основных блоков, представленных на рисунке: арифметико-логического устройства (CA, central arithmetical part), устройства управления (CC, central control part), запоминающего устройства (M, memory), устройства ввода (I, input) и устройства вывода (O, output). Первые два устройства вместе составляют центральный блок (C, Central), в настоящее время называемый процессором (CPU, Central Processing Unit).

    2. Запоминающее устройство содержит команды и данные (концепция хранимой программы). Данные могут включать в себя переменные — поименованные области памяти, к которым можно обращаться по имени (которое для процессора представляет собой адрес) для чтения или записи (изменения их значения).

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

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

    Помимо пяти основных блоков, фон Нейман упоминает еще одну составляющую компьютера — носитель информации (R), т. е. внешнюю память, с которого информация вводится в основную память компьютера с помощью устройства ввода и на который выводится информация из основной памяти компьютера с помощью устройства вывода.

    Существенной в архитектуре фон Неймана является концепция хранимой программы. В “First Draft of a Report on the EDVAC” она впервые была сформулирована в явном виде. Однако она была известна и другим исследователям в области компьютерной науки того времени, в частности разработчикам компьютера ЕNIAC (Electronic Numerical Integrator and Calculator) Джону Пресперу Экерту (J. Presper Eckert) и Джону Моучли (John Mauchly). Поэтому в точности авторство концепции хранимой программы неизвестно. Компьютер ENIAC создавался в той же Электротехнической школе Мура Пенсильванского университета в 1943-1946 гг. Однако в ENIAC команды программы не вводились в запоминающее устройство, а формировались коммутацией определенных элементов с помощью проводников.

    Принстонская и гарвардская архитектура

    В архитектуре фон Неймана и команды, и данные программы представляются в одной и той же числовой двоичной форме (в ENIAC использовалась десятичная, а не двоичная арифметика) и хранятся вместе в одном и том же запоминающем устройстве.

    Другая возможность — команды и данные программы хранить в физически различных запоминающих устройствах: памяти команд и памяти данных. Она была реализована в Гарвардском университете в компьютере Mark I и называется гарвардской архитектурой.

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

    Типы устройств ЭВМ архитектуры фон Неймана

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

    Типы взаимодействия устройств ЭВМ архитектуры фон Неймана

    В архитектуре фон Неймана информация с устройства ввода поступает непосредственно в память и выдается из памяти на устройство вывода, минуя процессор. В современных компьютерах это называется прямым доступом к памяти (DMA, Direct Memory Access). Однако во многих случаях все устройства взаимодействуют, обмениваясь информацией через процессор. Это называется программируемым вводом-выводом (PIO, Programming Input-Output).

    Аналогия фон Неймана между устройством компьютера и человеческого организма

    Интересно отметить, что фон Нейман также проводил аналогию между устройством компьютера и человеческого организма: "The three specific parts CA, CC (together C) and M correspond to the associative neurons in the human nervous system. It remains to discuss the equivalents of the sensory or afferent and the motor or efferent neurons. These are the input and the output organs of the device."

    Принципы работы эвм архитектуры фон Неймана

    Математическая основа процессора

    В качестве математической основы процессора можно привести следующую теорему [Глушков В. М. Введение в кибернетику. –Киев, 1964. -323 с.]: "Существует такой нормальный алгоритм U, называемый универсальным нормальным алгоритмом, который для любого нормального алгоритма А и любого входного слова Р из области определения этого последнего алгоритма переводит слово АР, полученное приписыванием слова Р к алгоритму А, в слово, являющееся соответствующим выходным словом, в которое алгоритм А перерабатывает слово Р":

    U(AP) = A(P).

    Теорема утверждает возможность создания устройства, которое может выполнить любое заданное преобразование информации. Таким устройством и является процессор. Процессор реализует алгоритм (U) выполнения алгоритма (А). Как следует из теоремы, процессор должен получать информацию двух типов — команды (алгоритм А) и данные или операнды (входное слово Р алгоритма А). Совокупность команд и данных и представляет собой программу.

    Необходимую универсальность процессора обеспечивают следующие типы команд:

    1. Передачи данных. В любой программе требуется передавать данные, например, из основной памяти в регистр процессора или обратно.

    2. Передачи управления (перехода, ветвления). Только при решении простых задач команды программы могут выполняться одна за другой так, как они расположены в тексте программы (в памяти). Для решения большинства задач линейной структуры программы недостаточно, требуется осуществлять переходы в заданную точку с возвратом или без, в зависимости от выполнения некоторых условий выполнять или не выполнять тот или иной фрагмент программы, идти по одной из нескольких возможных ветвей, выполнять определенный фрагмент программы несколько раз.

    3. Арифметических и логических операций. Это основной тип команд, без них никакие другие команды не нужны, ведь одним из основных устройств процессора является АЛУ, арифметико-логическое устройство, которое и выполняет эти команды.

    4. Машинного управления (управления процессором). Первые три типа команд относятся непосредственно к алгоритму A, они содержат информацию о задаче. Команды четвертого типа определяют условия выполнения задачи, например, должны быть разрешены прерывания или нет. Таким образом, они относятся уже в большей степени к алгоритму U, хотя и содержатся технически в алгоритме A. Можно сказать, что с их помощью алгоритм A влияет на алгоритм U.

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

    Регистры ЭВМ архитектуры фон Неймана

    В работе “First Draft of a Report on the EDVAC” фон Нейман всего один раз использует слово "регистр". Однако он указывает, что память может быть сложным устройством, состоящим из различных частей, выполняющих определенные функции. В частности, фон Нейман говорит, что арифметико-логическое устройство должно хранить результаты промежуточных вычислений в отдельных запоминающих элементах. Таким образом, часть памяти оказывается в процессоре, а также и в устройствах ввода-вывода компьютера.

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

    В соответствии с рассмотренным математическим обоснованием в каждый момент времени процессор должен знать месторасположение следующей команды и операндов, в том числе выходных (т. е. куда поместить результат операции).

    Для этого в процессоре имеются следующие основные регистры:

    • счетчик команд (счетчик программы (program counter, PC) или указатель команд (instruction pointer, IP)) — содержит адрес очередного байта (или слова) команды, который должен быть считан из памяти команд;

    • регистр команд — содержит код операции команды, введенный из памяти по адресу в счетчике команд;

    • аккумулятор (accumulator, A, накопительный регистр или регистр результата) — содержит входной операнд или один из входных операндов команды и результат ее выполнения.

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

    IP ← IP + 1.

    Элемент цифровой электроники, реализующий операцию инкремента — это и есть счетчик.

    Если же нужно нарушить последовательность выполнения команд, то используется явное задание адреса:

    IP ← новое значение

    или

    IP ← IP + смещение.

    Помимо указанных процессор содержит множество других регистров, некоторые из которых могут иметь подобного рода специализацию.

    Этапы выполнения программы ЭВМ архитектуры фон Неймана

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

    Представление и выполнение команд ЭВМ архитектуры фон Неймана

    Рассмотрим фрагмент программы сложения двух чисел (табл.)

    Табл. Фрагмент программы сложения двух чисел

    Адрес (IP)

    Команда на машинном языке

    Команда на языке ассемблера

    Регистр команд

    Аккумулятор

    1.

    0000

    B8 01 00

    mov ax, 01

    B8

    0001

    2.

    0003

    05 02 00

    add ax, 02

    05

    0003

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

    Перед выполнением второй команды IP равен 0003. По этому адресу процессор читает из памяти код операции второй команды 05 и также помещает его в регистр команд. По результатам дешифрации кода операции из памяти читаются второй и третий байты команды и прибавляются к значению аккумулятора.

  • Соседние файлы в папке Лекции