- •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 Квантовые вычисления
2.2.2 Программы
Один из способов представления алгоритмов – машинная программа, которая согласно стандарту ISO 2382/1-84, представляет собой упорядоченную последовательность команд, подлежащую обработке. Как и для алгоритма, для программы также характерно свойство вложенности (уровни задания, задачи, подзадачи, операции, микрооперации). Эти уровни определяются особенностями программирования и управления вычислительным процессом, при этом их границы не могут быть установлены жестко.
Полный перечень команд, которые способна выполнять вычислительная система образует систему команд. Близость системы команд и множества операций, необходимых для выполнения алгоритма, характеризует степень приспособленности операций, реализуемых аппаратными средствами, к алгоритмам решаемых задач. Чем меньше команд требуется для составления программы реализации какого-либо алгоритма, тем выше программируемость вычислительной машины. Расширяя систему команд вычислительной машины сложными командами, подобными операторам языка высокого уровня, пытаются решить проблему семантического разрыва, заключающуюся в существенном отличии сложных операторов, характерных для языков высокого уровня от простых машинных команд. Однако, данный путь ведет к усложнению аппаратуры и негативно сказывается на производительности вычислительной системы. Большое количество машинных команд различного формата с разнообразными способами адресации операндов характерно для CISC (Complex Instruction Set Computer) архитектуры.
Упростить аппаратные средства вычислительной системы и повысить ее быстродействие можно за счет сокращения числа форматов команд и способов адресации памяти, что было положено в основу RISC (Reduced Instruction Set Computer) архитектуры. RISC архитектура имеет сокращенный набор часто используемых команд и предполагает уменьшение времени выполнения программы за счет сокращения среднего количества тактов процессора, приходящихся на одну команду, а также длительности тактового периода.
Термин “RISC” впервые был использован Паттерсоном и Дитцелем (D.Patterson, D.Ditzel) в 1980 году. Предложенная ими идея заключалась в ограничении списка команд вычислительной машины часто используемыми простыми командами, оперирующими данными, размещенными только в регистрах процессора. Для обращения к основной памяти предлагалось использование отдельных команд чтения и записи.
Выполнение программы можно рассматривать как некоторый процесс, который описывается своим множеством состояний, начальным состоянием и правилами перехода из одного состояния в другое. Если в этом процессе переходы выполняются в дискретные моменты времени под влиянием неких внешних воздействий, то его называют автоматом. Понятие автомата варьируется в зависимости от характера конкретно изучаемых систем, от принятого уровня абстракции и целесообразной степени общности. Данная математическая модель оказывается удобной для описания широкого класса процессов функционирования.
Формализованное описание процесса функционирования вычислительной системы строится, в зависимости от необходимой степени детализации, с использованием различных языков описания, которые образуют определённую иерархию, соответствующую различным уровням вычислительного процесса. Процесс выполнения программы может быть представлен последовательностью циклов выполнения отдельных команд (выборки, декодирования, исполнения и т.д.), каждый из которых включает несколько этапов. В свою очередь каждый этап представляется в виде последовательности микрокоманд, каждая из которых включает совокупность микроопераций.
