Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Шпоры к ГОСАМ (все билеты).doc
Скачиваний:
4
Добавлен:
01.04.2025
Размер:
2 Мб
Скачать
☆

2. Основные идеи объектно-ориентированных языков программирования. Создание абстрактных типов данных. Инкапсуляция. Полиморфизм. Наследование.

ООП - методология программирования, основанная на представлении программы в виде совокупности объектов, каждый из которых является реализацией определенного класса, а классы образуют иерархию на основе принципов наследования.

Соответственно, ООП-язык - язык, имеющий необходимые средства для реализации ООП.

Основные понятия ООП:

- инкапсуляция:(сокрытие информации) – определение пользователем новых типов данных, каждый такой тип содержит определение набора значений и операций, которые могут быть выполнены над этими значениями. Такой тип данных называется абстрактным.

- наследование: это механизм, позволяющий строить иерархию типов. Механизм наследования предполагает определение базового типа, а затем использование этого типа для построения производных (потомков). Каждый производный тип наследует все свойства базового, включая данные и операции.

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

Абстрактные типы данных: они создаются для описания неких общих свойств, присущих определенному набору объектов (физических). Для примера: абстрактные классы в С++ – классы с чисто виртуальными функциями. Многие ООП языки поддерживают понятия интерфейса – класс, все методы которого являются чисто виртуальными (только описаны, но не определены).

3. Развитие архитектур современных мп. Конвейеризация и динамическое выполнение потока команд. Суперскалярность. Архитектура epic мп Intel itanium.

Производительность процессора зависит от тактовой частоты синхронизации, общего количества выполняемых процессором команд, количества команд, выполняемых процессором за один такт, от скорости обмена данными с памятью. Эти параметры определяются развитием технологии производства интегральных схем и функциональной организацией процессора. Для повышения производительности процессоров используется следующее:

  • Повышается тактовая частота, например, использование меди вместо алюминия позволяет преодолеть предел в 1 ГГц, для таких частот скорость распространения сигнала вызывает серьезные ограничения, поэтому необходимо, чтобы взаимодействующие блоки микропроцессора располагались рядом.

  • Увеличивается степень интеграции.

  • В процессор встраиваются устройства управления памятью.

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

  • Вводится большое количество параллельно работающих конвейерных операционных устройств (т.е. используется суперскалярный принцип и принцип конвейеризации вычислений).

  • Увеличивается число ступеней конвейера команд.

  • Вводится система предсказания переходов.

  • Вводится система опережающего -“спекулятивного” выполнения команд.

  • Обеспечивается как можно более полная загрузка работой всех операционных устройств.

  • Реализация команд обмена данными между памятью и регистрами операционных устройств осуществляется без остановки работы операционного устройства.

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

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

  • Расширяется шина данных до 128 разрядов для связи с кэш памятью второго уровня и до 64 разрядов для связи с системной шиной.

  • Вводятся высокоскоростные интерфейсы для связи процессора с системной шиной и связи с внешней памятью.

Конвейеризация выполнения команд. Все основные операции, выполняемые процессором: обращения в память, обработка команд и выполнение инструкций являются конвейерными.

"Динамического выполнения команд" (dynamic execution), которая построена на основе трех базовых концепций: предсказании переходов (branch prediction), динамическом анализе потока данных (dynamic data flow analysis) и спекулятивном выполнении инструкций (speculative execution).

Предсказание переходов - заключается в следующем. На вход процессора поступает поток инструкций для их последующего исполнения. Инструкции поступают в том порядке, в котором они содержатся в коде программы, исполняемой в данный момент процессором. Как только на входе процессора появляется очередная порция инструкций для исполнения, ее содержимое анализируется с целью найти точки ветвления в исполняемом потоке инструкций и предсказать наиболее вероятные пути (ветви), по которым пойдет обработка инструкций после этих точек ветвления. Инструкции, принадлежащие ветвям с наибольшей вероятностью выполнения, тут же ставятся в очередь на исполнение.

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

Динамический анализ потока данных включает в себя выполняемый в режиме реального времени анализ зависимости инструкций от исходных данных и значений регистров процессора, а также определение возможности исполнения и непосредственное исполнение инструкций в порядке, отличном от порядка их первоначальной постановки в очередь на исполнение (out-of-order execution).

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

Суперскаляр

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

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

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

Несмотря на то, что до сих пор этот подход был достаточно успешным, он имеет существенные недостатки. Он хорошо работает для определенного уровня параллелизма аппаратных средств, когда объем аппаратуры не очень большой. Когда этот уровень превышается, задача планирования ресурсов становится настолько сложной, что ее выполнение в реальном времени ограничивает скорость компьютера.

Архитектура EPIC - Explicitly Parallel Instruction Computing и процессор Intel Itanium.

Архитектура EPIC имеет следующие основные особенности:

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

Первые образцы 64-разрядного процессора Intel представляют собой картридж размером примерно 10х6 см, который включает в себя кэш-память третьего уровня емкостью 2 либо 4 Мбайт и радиатор. Картридж монтируется в разъем типа Slot и имеет 418 выводов. Процессор имеет трехуровневую иерархию сверхоперативной памяти.

Процессор содержит 128 целочисленных регистров и регистров с плавающей запятой, 64 однобитных предикатных регистра, 8 регистров перехода. 96 регистров видны в качестве "регистрового окна" и могут быть использованы при программной конвейеризации. Регистры перехода служат для предсказания адреса перехода и хранят адрес, используемый в косвенном переходе.

Каждая инструкция МП Itanium содержит 3 команды. Микропроцессор может выполнить более одной инструкции за 1 такт. Описанная ранее поддержка спекулятивных команд в архитектуре EPIC реализуется МП Itanium с помощью дополнительного 1-битового поля, называемого NaT. Таким образом, все регистры МП имеют на самом деле длину 65 бит.

Тактовая частота первых серийно выпускаемых систем на базе процессора Itanium составила 733 и 800 МГц для процессоров с кэш-памятью третьего уровня объемом 2 МБ и 4 МБ, что было достаточно малой частотой по сравнению с архитектурой IA-32.

В первую очередь от реализованной в процессоре Intel Itanium 64-разрядной адресации, ускорения операций с плавающей запятой и возможностей технологии EPIC выиграют такие требовательные приложения для рабочих станций, как системы разработки цифрового наполнения, а также системы автоматизированного проектирования механических и электрических конструкций.

Билет 27