
- •230100 «Информатика и вычислительная техника»
- •1 Общие положения
- •1.1 Цели и задачи дисциплины
- •2 Лекция №1 схемы алгоритмов
- •2.1 Ключевые (основные) вопросы (моменты)
- •2.2 Текст лекции
- •2.2.1 Схемы Ляпунова-Янова
- •2.2.2 Программы
- •2.2.3 Микропрограммирование
- •3 Лекция №2 программирование
- •3.1 Ключевые (основные) вопросы (моменты)
- •3.2 Текст лекции
- •3.2.1 Парадигмы программирования
- •3.2.2 Функциональное программирование
- •4 Лекция №3
- •4.1 Ключевые (основные) вопросы (моменты)
- •4.2 Текст лекции
- •4.2.1 Продукционные системы
- •4.2.2 Императивное и объектно-ориентированное программирование
- •5 Лекция №4
- •5.1 Ключевые (основные) вопросы (моменты)
- •5.2 Текст лекции
- •5.2.1 Информационный граф
- •6 Лекция №5
- •6.1 Ключевые (основные) вопросы (моменты)
- •6.2 Текст лекции
- •6.2.1 Управление вычислительным процессом
- •6.2.2 Управление последовательностью команд
- •7 Лекция №6
- •7.1 Ключевые (основные) вопросы (моменты)
- •7.2 Текст лекции
- •7.2.1 Управление по потоку данных
- •8 Лекция №7
- •8.1 Ключевые (основные) вопросы (моменты)
- •8.2 Текст лекции
- •8.2.1 Механизм управления по запросу
- •8.2.2 Механизмы передачи данных
- •9 Лекция №8
- •9.1 Ключевые (основные) вопросы (моменты)
- •9.2 Текст лекции
- •9.2.1 Организация процессора пересылок
- •9.2.2 Пример программы
- •10 Лекция №9
- •10.1 Ключевые (основные) вопросы (моменты)
- •10.2 Текст лекции
- •10.2.1 Теговые машины
- •10.2.2 Ассоциативный процессор
- •11 Лекция №10
- •11.1 Ключевые (основные) вопросы (моменты)
- •11.2 Текст лекции
- •11.2.1 Вычисления с использованием стека
- •12 Лекция №11
- •12.1 Ключевые (основные) вопросы (моменты)
- •12.2 Текст лекции
- •12.2.1 Принципы организации параллельныхвычислений
- •13 Лекция №12
- •13.1 Ключевые (основные) вопросы (моменты)
- •13.2 Текст лекции
- •13.2.1 Квантовые вычисления
9.1 Ключевые (основные) вопросы (моменты)
— принцип организации процессора пересылок;
— механизм запуска команд;
9.2 Текст лекции
9.2.1 Организация процессора пересылок
Существенный недостаток канонической схемы фон-неймановских вычислений связан с пассивностью памяти и тем, что при выполнении программы требуется неоднократное обращение к единой последовательно адресуемой памяти, в которой хранятся как команды, так и данные. При этом невысокая пропускная способность канала связи приводит к тому, что процессор простаивает, ожидая очередной команды, операндов или окончания выполнения присваивания. В свою очередь, рост скорости канала связи ограничивается постоянно растущей потребностью расширения объема памяти.
На ограничения фон-неймановской архитектуры еще в середине 70-х годов указал разработчик БНФ-граматики (BNF, Backus normal form) и одного из первых компилируемых языков высокого уровня Fortran (1954 год) Джон Бэкус (John W. Backus) в лекции, прочитанной при вручении ему премии Тьюринга. Для повышения производительности традиционную архитектуру модифицируют путем разделения памяти команд и данных, увеличения регистрового блока, добавления команд, выполняющих достаточно сложные действия над операндами, введения ассоциативной кэш памяти и самоопределяемых данных.
Идея хранимой в памяти программы была выдвинута в 1944 году Джоном Эккертом (John Presper Eckert) и впервые реализована совместно с Джоном Мочли (John W. Mauchly) в проекте компьютера EDVAC. После выхода в 1945 году статьи фон Неймана, являвшегося консультантом данного проекта, концепция единой памяти для хранения команд и данных легла в основу фон-неймановской архитектуры и была принята при разработке вычислительных машин в Институте передовых исследований (IАS) в Принстоне, получив название принстонской архитектуры. В 1948 году была предложена другая модель, в которой вычислительная система имела отдельную память команд и отдельную память данных. Этот вид архитектуры, впервые воплощенной в компьютере Marc-III, созданном в Гарвардском университете Говардом Айкеном (Howard Aiken), называют гарвардской архитектурой.
Разделение памяти программ и данных повышает надежность системы, так как аппаратный запрет на доступ к области машинного кода предотвращает возможность самомодификации программ. Кроме того, данный подход позволяет организовывать одновременный доступ к командам и данным, поэтому наряду с модифицированной гарвардской архитектурой, предоставляющей возможность контролируемого обмена информацией между памятью программ и памятью данных, широко используется в современных конвейерных вычислительных устройствах.
Классические принципы построения вычислительной системы предусматривают иерархическую организацию памяти, при которой в машинной команде применяются разные способы адресации, а разные уровни иерархии рассматриваются логически как разные устройства. Отказ от классической иерархии памяти в пользу логического объединения адресного пространства, имеющего единый способ адресации в машинной команде, положен в основу процессора пересылок, архитектура которого в настоящее время нашла применение в ряде процессоров обработки сигналов.
В данной архитектуре предполагается единообразная адресация и обращение к различным устройствам: специальным регистрам управления процессором, внутренним регистрам схем выполнения машинных команд, регистрам общего назначения, а также к словам оперативной памяти. Такая сквозная адресация устройств порождает специфический подход к организации работы процессора и механизму выполнения машинных команд.
При распределении схем, реализующих выполнение машинных команд, с их собственными регистрами операндов и результатов по фиксированным адресам сквозной памяти, область сквозного адресного пространства, соответствующая входным и выходным регистрам, оказывается жестко закреплена за соответствующими машинными командами. Поэтому команды процессора пересылок не содержат поля кода операции, а запуск той или иной операции связан только с адресами расположения соответствующих входных регистров. Например, схема сложения чисел с фиксированной точкой, обладающая собственными регистрами двух операндов и регистром результата оказывается фиксированной в соответствующих трех адресах сквозной памяти. При этом, поскольку команда сложения жестко закреплена за этими адресами, запуск операции сложения связан только с пересылкой операндов по адресам расположения соответствующих входных регистров.