- •Оглавление
- •Архитектура вычислительных систем
- •Этапы развития вычислительных машин
- •Фон неймановская архитектура
- •Типы структур вычислительных машин и систем
- •Вычислительная система с общей памятью
- •Распределенная система
- •Классификация параллельных вычислительных систем
- •29.09.2011
- •Способы ускорения традиционных архитектур
- •01.10.2011
- •Супер скалярные процессоры
- •06.10.2011 Кэш-память
- •Алгоритмы замещения информации в заполненной кэш-памяти.
- •27.10.2011 Расслоенная память Блочная организация основной памяти
- •Структура основной памяти на основе блочной схемы
- •Циклическая организация
- •Блочно-циклическая схема расслоения памяти
- •Архитектура с сокращенным набором команд
- •КлассSimd
- •Структура типа память-память и регистр-регистр
- •03.11.2011 Матричные вычислительные системы
- •Контроллер массива процессоров
- •Массив процессоров
- •10.11.2011 Ассоциативные вычислительные системы
- •Вычислительные системы с систолической структурой
- •Классификация систолических структур
- •Основы теории вычислительных систем
- •Задача синтеза
- •Модели вычислительных систем
- •Статистические модели
- •Аналитические методы
- •Имитационные модели
- •Экспериментальные методы
- •24.11.2011 КлассMimd
- •Симметричные мультипроцессорные системы (smp)
- •Архитектура с общей шиной
- •Классификация кластеров
- •01.12.2011 Топологии кластеров
- •Системы с массовой параллельной обработкой (mpp-системы)
- •Транспьютеры
- •08.12.2011 Вычислительные системы с неоднородным доступом к памяти (cc-numa)
- •Вычислительные системы с обработкой по принципу волнового фронта
- •Надежность и отказоустойчивость вычислительных систем
- •Трансляторы
- •10.12.2011
- •Варианты взаимодействия двух трансляторов
- •Многопроходная трансляция
- •Однопроходная трансляция
Варианты взаимодействия двух трансляторов
Организация процесса трансляции может осуществляться двумя способами:
Многопроходная трансляция, при которой каждая из фаз является независимым процессом, передающим управление следующей фазе после окончания полной обработки своих данных;
Однопроходная трансляция, при которой все фазы представляют единый процесс и передают друг другу данные небольшими фрагментами;
Многопроходная трансляция
Рисунок 47 Многопроходная трансляция
Лексический анализатор полностью обрабатывает исходный текст, формируя на выходе цепочку всех полученных лексем. После этого управление передается синтаксическому анализатору, который на основе полученной цепочки формирует промежуточное представление или объектную модель. После формирования всех объектной модели он передает управление генератору кода, который строит машинный код на основе полученной объектной модели.
Достоинства:
Обособленность отдельных фаз, что позволяет обеспечить их независимую реализацию и использование;
Возможность хранения данных, получаемых в результате работы каждой из фаз на одном из внешнего ЗУ;
Возможность уменьшения объема ОЗУ, требуемого для работы, за счет последующего вызова фаз;
Недостатки:
Большие объемы промежуточной информации;
Замедление скорости трансляции последовательного выполнения фаз;
Подход неудобен при построении трансляторов с языков, обладающих простой синтаксической и семантической структурой;
Однопроходная трансляция
Рисунок 48 однопроходная трансляция
Лексический анализатор читает фрагмент исходного текста, необходимого для получения одной лексемы. После формирования лексемы осуществляется вызов синтаксического анализатора и передачи ему созданной лексемы. Если синтаксический анализатор может построить очередной элемент промежуточного представления, то он это делает и передает построенный фрагмент генератору кода. В противном случае синтаксический анализатор возвращает управление лексическому анализатору, давая понять, что очередная лексема обработана и нужны новые данные. По окончанию исходного текста и завершению обработки всех промежуточных данных в каждом из блоков лексический анализатор инициирует процесс завершения программы.
Достоинства:
Отсутствие больших объемов;
Высокая скорость обработки;
Отсутствие обращений к внешним ЗУ;
Недостатки:
Невозможность реализации для сложных по структуре языков;
Отсутствие промежуточных данных, которые можно использовать для анализа и оптимизации;