- •Технологические особенности проектирования вычислительной техники
- •Введение
- •1. Основные принципы
- •1.1. Постановка задачи и критические параметры
- •1.2. Энергоемкость и надежность
- •1.3. Себестоимость хранения и скорость доступа
- •2. История создания вычислительных машин
- •2.1. Механический этап
- •2.2. Электромеханический этап
- •2.3. Ламповый этап
- •2.4. Полупроводниковый этап
- •2.5. Интегральный этап
- •3. Основы устройства эвм
- •3.1. Реализация эвм, как машины Тьюринга
- •3.2. Реализация эвм, как машины фон Неймана
- •3.3. Заключение
- •4. Процессор
- •4.1. Постановка задачи
- •4.2. Выборка и обработка данных
- •4.3. Исполнение команд
- •4.4. Состав простейшего процессора
- •4.5. Размещение команд в памяти
- •4.6. Управление порядком выполнения команд
- •4.7. Сокращение размера команды
- •4.8. Резюме
- •5. Развитие процессоров. Параллельные вычисления
- •5.1. Пути повышения производительности
- •5.2. Параллельная обработка
- •6. Устройства хранения данных
- •6.1 Общие сведения
- •6.2. Получение требуемой информации
- •6.3. Операции с ухд
- •6.4. Классификация ухд по принципам записи и выборки
- •7. Основные характеристики ухд
- •7.1. Емкость
- •7.2. Стоимость ухд
- •7.3. Скорость или время операции
- •7.4. Прочие характеристики
- •7.5. Резюме
- •8. Физические среды хранения данных
- •8.1. Электрическая емкость
- •8.2. Бистабильная электрическая схема
- •8.3. Размыкание электрической цепи
- •8.4. Среда с наличием/отсутствием светопроницаемости
- •8.5. Ферромагнитный материал
- •9. Ухд, работающие по принципу «память»
- •9.1. Структура и классификация
- •9.2. Регенерация динамической памяти
- •10. Ухд, работающие по принципу «накопитель»
- •10.1. Общие сведения
- •10.2. Барабан
- •10,3. Диски
- •10.4 Лента
- •Контрольные вопросы
- •Литература
- •Оглавление
3.3. Заключение
Основные достоинства машины фон Неймана заключаются в следующем:
простота реализации;
универсальность;
гибкость (это значит, что машина фон Немана позволяет легко встраивать в нее самые разнообразные технические решения).
Недостатки машины в основном связаны с тем, что современные методы программирования оперируют с достаточно сложными структурами данных, а машина фон Неймана в принципе не предоставляет здесь никакой технической базы. Например, в машине фон Неймана возможна только одна структура данных – вектор ячеек, все остальные, например, такие как многомерные массивы, списки, очереди и т.д. в ней не поддерживаются. С другой стороны, если мы попытаемся модифицировать машину фон Неймана для удобства решения одних задач, не помешает ли это решению других задач? Стоит ли отказываться от простоты и универсальности? В конечном счете, практика показывает, что достоинства машины фон Неймана настолько перекрывают ее недостатки, что эта машина положена в основу устройства практически всех современных компьютеров.
В том случае, когда требуется реализация более сложной машины, она реализуется программным способом, являясь, как будто бы, виртуальной. Для этого программист использует не ту систему команд, которую понимает процессор, а пишет на достаточно сложном языке, так называемого, высокого уровня. В таком языке поддерживаются удобные программисту структуры данных и типы переменных (вплоть до крайне сложных), происходит проверка соответствия типов, данные отделены от программ и т.д. Далее такая программа транслируется специальной программой-компилятором в команды, понятные процессору. Интересно, что на основе одной виртуальной машины может быть создана другая, еще более сложная, и вторая программа-компилятор транслирует команды второй машины в команды первой. Конечно, такая трансляция далека от оптимальной. Если предоставленная программисту виртуальная машина чрезвычайно сложна, такая трансляция может приводить к большому количеству избыточных операций, но это компенсируется большей мощностью лежащей в основе нашей ЭВМ машины фон Неймана. С другой стороны, необходимость поддержки более сложных виртуальных машин – одна из причин, по которой для выполнения аналогичных по функциям программ со временем требуется все большая мощность вычислительных машин.
4. Процессор
4.1. Постановка задачи
Мы снова возвращаемся к каретке в машине Тьюринга.
Если обобщить сведения о вычислительной машине, изложенные выше, мы придем к выводу о том, что действия, которые должен уметь выполнять наш процессор, можно разбить на три группы: 1) выполнять операции над данными; 2) понимать и исполнять команды, записанные на ленте; 3) обращаться с устройствами ввода/вывода. Рассмотрим их более подробно.
4.2. Выборка и обработка данных
Выполнение операций над данными, помимо простого их переписывания, заключается в выполнении каких-либо математических функций над ними. Из всего большого множества функций, используя небольшое число элементов переключения, технически реально организовать только несколько. По мере увеличения числа элементов переключения можно увеличивать количество реализованных в машине функций, но это количество все равно останется небольшим. Все остальные функции следует представить на основе уже реализованных. Кроме того, что исходных функций должно быть мало, они должны быть просты для изготовления (содержать мало элементов переключения) и удобны для последующего представления остальных функций. Минимальный набор таких функций обычно состоит из сложения, сдвига, инверсии и логического умножения (логическое умножение может быть заменено на логическое сложение, но на практике для удобства программирования реализуют обе эти простые функции). Как мы видим, первые две функции (сложение и сдвиг) арифметические, остальные логические (сдвиг двоичного числа влево на один разряд соответствует умножению этого числа на два). Устройство, выполняющее все эти функции, называется арифметико-логическим устройством (АЛУ). Такое АЛУ обычно имеет внутри себя сумматор, устройство сдвига, инвертор, логический сумматор, логический умножитель, два входа для операндов, выход для результата и вход, на который подается код той операции, которую следует выполнить, а значит и того узла, который будет задействован. Чтобы задействовать нужный узел, код операции следует дешифровать, соответственно, дешифратор входит в состав АЛУ.
АЛУ в машине фон Неймана оперирует только с двоичными числами и, естественно, имеет ограниченную и одинаковую разрядность для всех узлов. Эта же разрядность на входе и выходе АЛУ. Эта же разрядность и определяет разрядность процессора. Если в ходе выполнения операции суммирования или сдвига разрядности не хватило, информация об этом также поступает на выход АЛУ в виде так называемогобита переполнения. На основании этого бита может быть сделан вывод об адекватности результата. Для того, чтобы выполнять арифметические операции с числами большей разрядности, чем нам это позволяет АЛУ, мы должны выполнять операции по частям. Число разбивается по группам разрядов (количество разрядов в группе равно разрядности АЛУ), например, на две группы: старшие разряды и младшие разряды. Младшие разряды это те, которые имеют меньший вес в числе, при записи они располагаются правее. Операции с числами начинаются с младших разрядов (т.е. справа). При выполнении операции со старшими разрядами чисел нам необходимо знать было ли переполнение при операции с младшими. Для этого бит переполнения называетсябитом переносаи поступает на вход АЛУ.
Обсуждая действия каретки мы заметили, что данные требуется не просто обрабатывать, но и переносить из одной ячейки ленты в другую, так как сама лента ни в машине Тьюринга, ни в машине фон Неймана сделать это не может. Это значит, что каретка должна иметь возможность помещать содержимое ячейки ленты в какую-то собственную, внутреннюю ячейку, и возвращать содержимое из этой ячейки на ленту. Эта внутренняя ячейка каретки получила название регистра. Для выполнения переноса каждая каретка должна иметь как минимум одинрегистр. В общем случае, большее количество регистров удобнее при программировании, но для этого приходится усложнять процессор.
Для выполнения операций над данными память должна быть соединена с процессором. Набор проводов, осуществляющий электрическое соединение, называется шиной данных. Соединение не всегда непосредственное. Между ними могут появитьсябуферные устройства: усилитель сигнала; если параметры электрических сигналов в памяти и процессоре разные, устройство, преобразующее сигналы –шинный формирователь; если проходящий сигнал требуется хранить какое-то время (связанное, например, с задержкой в приеме сигналов процессором) –буферный регистр. Данные могут проходить из памяти в процессор, такая операция называетсячтение, и из процессора в память, такая операция называетсязапись. Для этих целей могут быть организованы разные шины данных, однако, обычный процессор не может выполнять одновременно запись и чтение, поэтому из экономии практически всегда используют один набор проводов, работающий в обе стороны. В этих случаях между памятью и процессором прокладывается дополнительный провод, по которому процессор указывает какую из операций он выполняет.
Количество проводов шины данных называется разрядностью шины данных.Вполне естественно, если разрядность шины данных, разрядность процессора и разрядность ячеек памяти совпадают, но это не всегда так. По технологическим причинам разрядность шины данных может быть меньше разрядности процессора, тогда данные передаются в несколько этапов. Разрядность шины данных может быть больше разрядности процессора, это делается для увеличения скорости передачи данных.