Институт №8 МАИ

9 день. Архитектуры компьютера. Вопросы 1-12.


1 вопрос. Понятие об ЭВМ

Рекомендую прочесть эти статьи, чтобы были понятны последующие вопросы и термины (1-12).

ЭВМ — электронная машина для вычислений.

Структурная схема:

image


2 вопрос. Принципы фон Неймана

Аппаратная реализация процессора фон Неймана — это машина.

Различают 3 принципа:

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

Алгоритм работы программы представлен в виде последовательности команд.

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

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

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

3) Принцип однородности памяти (или принцип хранимой в памяти команды, первый по важности!)

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

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

Канал — это специализированный процессор ввода/вывода. В канале есть процессор и память. Канал распараллеливает процессоры, фактически делая компьютер многопроцессорным.


Вопрос 3. Структурная схема класса Mainframe.

Подробно о Mainframe

В те времена (эпоха mainframe) связь шла через телефонные линии.


Вопрос 4. Открытая шинная архитектура. Системная плата.

Подробно о шине

Шина компьютера — информационная магистраль, вокруг которой строится компьютер.

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

Через адреса, которые есть в шине, можно обмениваться между устройствами.

Шина является к нам в форме материнской платы. Но по факту все устройства втыкаются в шину.

Северный и южный мосты — это чипы, которые обеспечивают работу материнской платы.

До шины гибкости в компьютерах не было! Шину придумали для миникомпьютера, микропроцессора.

Лучше шинной архитектуры ничего не придумали.

Далее вслед за DEC в эту сферу втянулась и фирма IBM со своим IBM PC, вышедшим в 1986 году.

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

Шине не позволили стать узким местом компьютера — поставили доп.шину и всё! Не надо менять ни программиста, ни драйвера!


Вопрос 5. Процессор. Регистры. УУ и АЛУ.

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

Процессор работает на машинном языке — языке команд процессора!

Процессор состоит из:

АЛУ — это конкретная реализация всех программ. Процессор выполняет команды из АЛУ. Чтобы было понятнее: АЛУ — это 100 машин Тьюринга.

УУ — управляет процессом выполнения команд.

Регистр — служебная часть памяти внутри процессора.

При чтении копия машинного слова читается из ячейки памяти и записывается на регистр, а при записи копия машинного слова с регистра посылается в ячейку памяти.

РК, РАК, РД, РАД — лежат на ЦП.

РК — регистр команд, а РАК — регистр адреса команд. РД — регистр данных, а РАД — регистр адреса данных.

По принципу фон Неймана выполнение идёт команда за командой, при этом команда находится в оперативной памяти.

РАК указывает на команду в памяти и загружает команду в РК — на центральный процессор.

Вычисление адресов — непростая штука. Часто они формируются динамически. В этом процессе фигурируют регистры (их номера), где содержатся записи адресов.

Получается, что адреса регистра данных и команд лежат отдельно.

© мухи отдельно, котлеты отдельно

Чтобы данные стали командой, они должны попасть на спец.регистр. Поэтому мусор никогда не станет командой. Спец.регистр не пропустит.

© Машина фон Неймана 
- это чаша для существования вирусов.

РАК накручивается на длину выполненной команды. Команды выполнятся одна за другой.

Команда перехода подменяет место, где будет совершён переход.

РАК и РК — активные данные.

И хотя программисту доступны лишь арифметические регистры, он при этом может химичить с памятью: подготовить зловредную версию программы и подменить её!

РАК, РК, РАОП, РДП — недоступны программисту.

Внутри процессора гарвардская архитектура!

Как видно, вопросы связаны. Наша задача на экзамене — составить лаконичный рассказ, затронув смежные темы.

Назначение регистра: процессор благодаря нему всегда знает, где идёт команда.

Процессор выполняет свои железные, зашитые в ПЗУ команды.

(зашитые немками из фирмы Siemens)

Микропроцессор (1951) (Уилкс) — эта железка выполняет сдвиги, ссылки, но не вычисления.

Что представляют собой ядра?

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

Микропрограммы подражают командам, разработанным на полноценном ПК.


Вопросы 6-11. Архитектуры процессоров

CISC — Complex Instruction Set Computer — компьютер с набором сложных команд.

CISC читается как КИСК, а не циск.

Зачем нужен сложный набор команд? Чтобы работать с железным железом, когда программирование было на ассемблере. (На компьютерах, прошитых нитками немецких тружениц фирмы сименс.)

Дальше шло усовершенствование железок. Первым, что сделали — ввели косвенную адресацию.

Косвенная адресация нужна для сокращения длины машинных команд (адрес - машинное слово). Адреса в памяти заменялись короткими номерами регистров.

1 регистр — полбайта, значит, сокращение вышло в 8 раз.

Таким образом экономилось место на ОЗУ и на самом жёстком диске.

Таким образом обрабатываются массивы.

Благодаря косвенным схемам адресации вместо нескольких десятков команд получилось несколько сотен команд.

Косвенная адресация, индексация, базирование — это ищем!

Базирование позволяет хранить и запускать программу вне зависимости от настроек команд.

Индекс образуется на лету. Это было нужно, чтобы ускорить работу пк.

АЛУ — арифметико-логическое устройство


RISC

- А зачем нам ассемблер?
- Даже негры на нём не работают!

Тем более, зачем делать CISC, если на асемблере никто не работает и если есть язык C, который быстрее.

© И на котором даже пишутся драйвера видеокарт!

Тогда предложили новую архитектуру — RISC! Уже тогда перестали экономить на памяти. Дефицит памяти пропал, и многоуровневая косвенная адресация стала не нужна. При этом программистам на асемблере платят столько же, сколько и на C, но as-шников нужно больше на один проект, что невыгодно.

© Эра удобного вычисления полинома на асемблере уже прошла!

RISC предложена фирмой IBM. Эта архитектура разбухла в 3-4 раза в размерах программ (у нас плоская память и большой набор команд), процессор стал мощнее на порядок.

Плоская память — от нуля и до (большого числа). Косвенная адресация режется на кусочки и кладется друг на друга.

CISC у фирмы Intel имел высокое распространение и дешивизну, но как пропихуть RISC в массы?

RISC стал внутри, на уровне микропрограмм.

1) RISC-ядро

2) II поколение RISC (64 бита)

3) RISC-32 бита — простая архитектура, используемая в роутерах.

эту информацию стоит изучить подробнее

Остановимся на RISC II поколения (1991г.)

Это процессоры серверного типа, но на одном чипе.

Почему на это дело ушло почти 10 лет? (вспоминаем, что только в 1984 предложили сменить CISC)

Мы говорили о плоской памяти, о том, что адресация не содержит нелинейности. В то время были 32-битные процессоры.

32-битный процессор — тот, который за один такт обрабатывает 32 бита.

Если бы компьютеры не развивались, программы были бы рыхлые (за счёт командных слов).

Как появились 64-битные процессоры:

32 бит может адресовать 2 ГБ. Адрес памяти тоже должен быть 32-битным.

© 32-битный процессор — это кухонный процессор. Он нам не годится.


MIPS

MIPS — Microprocessor without Interlocked Pipeline Stages (процессор R-10000).

RISC отличается большим количеством регистров.

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

DEC — ALPHA (64 бита). Хотели занять весь серверный рынок.

© Процессорные фирмы не делают процессоры! Они делают деньги!


VLIW

VLIW — Very Large Instruction Word (очень широкое командное слово).

Поищи провалы Intel.

VLIW — это тоже попытка серверного процессора, но не вышедшая в массовом тираже.


SISD — Single Instruction - Single Data.

Далеко не всегда удобно сводить к линейным системам (много памяти, большая погрешность при этом).

Когда 1 единица данных на 1 команду, линейная алгебра этого не терпит. Наша линейная алгебра хочет SIBD.


Векторно-конвейерная архитектура

Появилась векторизация (нужно было выяснить, как вектор представить в скалярном виде). Одна часть вектора на регистре, а другая считался в памяти.

Крей - автор идеи внутреннего распараллеливания (операнды можме загружать параллельно, одновременно).

Процессор Alpha имел 10 конвейеров, т.е. он в 10 раз быстрее себя одного.

Конвейер распараллеливает за счёт нового/дополнительного оборудования.


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


DSP

Это переменные данные, вещественная прямая континуального характера.

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

DSP — это цифровая версия аналогового компьютера. Сейчас аналоговые компьютеры сохранены на уровне приборов.

DSP нам нужны, они никуда не уйдут. Взять хотя бы слух — он у нас аналоговый, не цифровой.

© Нормальные люди никогда не пишут на железной машине ассемблера.

© Машина фон Неймана приходит к нам в виде ЯП

Вопрос 12. Выполнение программы ЭВМ

Чтобы программа была выполнена, компьютер должен иметь её в основной памяти (или безграмотно — в оперативной).

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

Если машина в работоспособном состоянии, то в ней есть ОС, обрабатывающая внешние устройства.

А если компьютер выключен, то в его процессоре и в оперативной памяти ничего нет. И в момент включения нет ничего.

Тогда нужна какая-то программа, которая всё это дело запустит!

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

© Английским владеют даже тупые англичане!

Но мало включить компьютер. Надо подсунуть ему мелкую программу.

Если бы этого не было: надо было бы на тумблере с лампочками набрать нули и единицы, затем загрузить команду и отправить. Но это не автоматизм.

Нам нужна ОС, которая может откуда-то получать программы и автоматически выполнять их.

Пример выполнения программы включения: 1) Программа попала в пульт. Но пока что это мертвые данные.

2) ОС узнала адресочек команды. Чтобы адрес с данными РАД стал командой, надо загрузить её на РАК.

3) Процессор выполняет циклограмму (повтор итеративной программы).

4) Компьютер разменивает данные, и команда попадает на регистр команд.

5) На регистре УУ дешифрует адрес команды. Она выясняет, мусор ли это, проверяет правильность. В случае правильности дешифровка продолжается, иначе комп выдаст ошибку или остановит дешифровку.

6) У команды есть операнды, но на железе хранятся адреса.

7) Давным давно расшифровка попадала не на регистры команд, а на регистры данных.

8) УУ запускает микропрограммы, АЛУ выполняет уже то, что находится на регистре.

Пример:

C = a + b

1) Разыменовываем a

2) Разыменовываем b

3) Выполним микропрограмму сложения

4) Делаем запоминание/запись в С