Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Вопросы и ответы ЭВМ.docx
Скачиваний:
10
Добавлен:
16.12.2018
Размер:
423.73 Кб
Скачать

Конвейерная обработка данных

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

Внеочередное выполнение команд

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

Механизмы:

  • статические - работа возлагается на компилятор

  • динамические - работа возлагается на процессор

Производительность можно повысить, сделав АЛУ многофункциональным. Если сделать отдельные функциональные элементы для сложения, вычитания, умножения и деления, то схемы становятся проще, а система будет работать быстрее.

Производительность конвейеров

Операция

Время выполнения

Производительность

Скалярная

S + K

1 / (S + K)

Векторная

S + K * N

N / (S + K * N) ~ 1 / K

m - число ступеней. K - время выдачи очередного результата. N - длина вектора. S = K * (m - 1) - время запуска конвейера.

Векторно-конвейерные вычислители

Циклы вызывают накладные расходы на скалярных вычислителях - эффективнее векторно-конвейерных. Например, векторная команда сложения VADD(B,C,A,N).

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

Конвейер для однотипных операций дешевле и быстрее. Для их совместной работы используется принцип зацепления конвейеров.

Конвейерная обработка команд

  • Принять команду

  • Дешифровать КОП

  • Сформировать исполнительный адрес

  • Выбрать операнды

  • Выполнить команду

  • Записать результат

Конвейерные конфликты

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

  • По управлению - команд переходов и других команд, изменяющих значение счетчика команд

  • По данным - выполнение одной команды зависит от результата выполнения предыдущей команды

  1. Конфликты в конвейере и способы их разрешения.

Конфликты - это такие ситуации в конвейерной обработке, которые препятствуют выполнению очередной команды в предназначенном для нее такте.

Конфликты делятся на три группы:

  • структурные,

  • по управлению,

  • по данным.

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

Причины структурных конфликтов.

  1. Не полностью конвейерная структура процессора, при которой некоторые ступени отдельных команд выполняются более одного такта.

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

  1. Недостаточное дублирование некоторых ресурсов. Борьба с конфликтами такого рода проводится путем увеличения количества однотипных функциональных устройств, которые могут одновременно выполнять одни и те же или схожие функции

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

Конфликты по данным возникают в случаях, когда выполнение одной команды зависит от результата выполнения предыдущей команды.

При обсуждении этих конфликтов будем предполагать, что команда i предшествует команде j.

Существует несколько типов конфликтов по данным.

  1. Конфликты типа RAW ( Read After Write ): команда j пытается прочитать операнд прежде, чем команда i запишет на это место свой результат. При этом команда j может получить некорректное старое значение операнда.

Пусть выполняемые команды имеют следующий вид:

i) ADD R1,R2; R1 = R1+R2

i+1=j) SUB R3,R1; R3 = R3-R1

Команда i изменит состояние регистра R1 в такте 5. Но команда i+1 должна прочитать значение операнда R1 в такте 4. Если не приняты специальные меры, то из регистра R1 будет прочитано значение, которое было в нем до выполнения команды i.

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

Конфликты типа RAW обусловлены именно конвейерной организацией обработки команд.

Главной причиной двух других типов конфликтов по данным является возможность неупорядоченного выполнения команд в современных микропроцессорах, то есть выполнение команд не в том порядке, в котором они записаны в программе.

  1. Конфликты типа WAR ( Write After Read ): команда j пытается записать результат в приемник, прежде чем он считается оттуда командой i, При этом команда i может получить некорректное новое значение операнда:

i) ADD R1,R2

i+1 =j) SUB R2,R3

Этот конфликт возникнет в случае, если команда j вследствие неупорядоченного выполнения завершится раньше, чем команда i прочитает старое содержимое регистра R2.

  1. Конфликты типа WAW ( Write After Write ): команда j пытается записать результат в приемник, прежде чем в этот же приемник будет записан результат выполнения команды i, то есть запись заканчивается в неверном порядке, оставляя в приемнике результата значение, записанное командой i:

i) ADD R1,R2

. . .

j) SUB R1,R3

Устранение конфликтов по данным типов WAR и WAW достигается путем отказа от неупорядоченного исполнения команд, но чаще всего путем введения буфера восстановления последовательности команд.

  1. Классификация вычислительных систем Флинна.

В 1966 г. М.Флинном (Flynn) был предложен чрезвычайно удобный подход к классификации архитектур вычислительных систем. В его основу было положено понятие потока, под которым понимается последовательность элементов, команд или данных, обрабатываемая процессором. Она базируется на понятиях двух потоков: команд и данных. На основе числа этих потоков выделяется четыре класса архитектур:

  1. SISD (Single Instruction Single Data) - единственный поток команд и единственный поток данных. По сути дела это классическая машина фон Неймана. К этому классу относятся все однопроцессорные системы.

  2. SIMD (Single Instruction Multiple Data) - единственный поток команд и множественный поток данных. Типичными представителями являются матричные компьютеры, в которых все процессорные элементы выполняют одну и ту же программу, применяемую к своим (различным для каждого ПЭ) локальным данным. Некоторые авторы к этому классу относят и векторно-конвейерные компьютеры, если каждый элемент вектора рассматривать как отдельный элемент потока данных.

  3. MISD (Multiple Instruction Single Date) - множественный поток команд и единственный поток данных. М. Флинн не смог привести ни одного примера реально существующей системы, работающей на этом принципе. Некоторые авторы в качестве представителей такой архитектуры называют векторно-конвейерные компьютеры, однако такая точка зрения не получила широкой поддержки.

  4. MIMD (Multiple Instruction Multiple Date) - множественный поток команд и множественный поток данных. К этому классу относятся практически все современные многопроцессорные системы.

  1. Классификация вычислительных систем Джонсона.

MIMD (Multiple Instruction Multiple Data): раз­ные по­то­ки ин­ст­рук­ций опе­ри­ру­ют раз­лич­ны­ми дан­ны­ми. Это си­сте­мы наи­бо­лее об­ще­го ви­да, по­это­му их про­ще все­го ис­поль­зо­вать для ре­ше­ния раз­лич­ных па­ра­л­лель­ных за­дач.

MIMD-си­сте­мы, в свою оче­редь, при­ня­то раз­де­лять (клас­сифи­ка­ция Джон­со­на) на

  • си­сте­мы с об­щей па­мя­тью (Си­сте­ма­ми с об­щей па­мя­тью на­зы­ва­ют си­сте­мы, в ко­то­рых не­сколь­ко про­цес­со­ров име­ют об­щую опе­ра­тив­ную па­мять. Ча­ще все­го встре­чаю­щие­ся си­сте­мы это­го ти­па — ком­пью­те­ры с мно­го­ядер­ны­ми про­цес­со­ра­ми). Плюсы: Не тре­бу­ет­ся об­мен дан­ны­ми, про­сто пи­сать про­грам­м, Ком­пакт­ность си­стем. Минусы: Про­бле­ма сов­мест­но­го до­сту­па к па­мя­ти, Про­бле­ма син­хрон­но­сти кэ­шей, мед­лен­но­го об­ра­ще­ния к опе­ра­тив­ной па­мя­ти, Про­бле­ма мас­шта­би­ру­е­мо­сти.

  • си­сте­мы с рас­пре­де­лен­ной па­мя­тью (Си­сте­ма со­дер­жит не­сколь­ко про­цес­со­ров, каж­дый име­ет свою опе­ра­тив­ную па­мять. Для обес­пе­че­ния об­ме­на ин­фор­ма­ци­ей про­цес­со­ры со­еди­не­ны ка­на­ла­ми свя­зи). Плюсы: Про­сто­та и де­ше­виз­на по­строе­ния, Эф­фек­тив­ное ре­ше­ние за­дач, тре­бую­щих ма­ло­го об­ме­на дан­ны­ми, Воз­мож­ность ре­шать за­да­чи, тре­бую­щие очень боль­ших объ­ё­мов опе­ра­тив­ной па­мя­ти, Воз­мож­ность мас­шта­би­ро­ва­ния. Минусы: Про­бле­ма об­ме­на дан­ны­ми, Слож­ное про­грам­ми­ро­ва­ние, Боль­шой раз­мер си­стем и боль­шое энер­го­по­треб­ле­ние.

  • си­сте­мы с не­од­но­род­ным до­сту­пом к па­мя­ти (NUMA) — в ко­то­рых до­ступ к па­мя­ти дру­гих вы­чис­ли­те­лей су­ще­ству­ет, но он зна­чи­тель­но мед­лен­нее, чем до­ступ к «сво­ей» па­мя­ти.

  1. Архитектура VLIW.

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

Выделение в архитектуре VLIW компонентов командного слова, управляющих отдельными блоками МП, вводит явный параллелизм на уровне команд. Задача обеспечения эффективного распараллеливания работы отдельных блоков возлагается при этом на компилятор, который должен сгенерировать машинные команды, содержащие явные указания на одновременное исполнение операций в разных блоках. Таким образом, достижение параллелизма, обеспечиваемое в современных суперскалярных RISC-процессоров их аппаратурой, в VLIW возлагается на компилятор. Очевидно, что это вызывает сложные проблемы разработки соответствующих компиляторов. При этом распараллеливание работы между ФУ в EPIC происходит статически при компиляции, в то время как современные суперскалярные RISC-процессоры осуществляют это динамически.

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

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

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

  1. Что такое архитектура ЭВМ? Что к ней относится? 

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

• структуру памяти ЭВМ;

• способы доступа к памяти и внешним устройствам;

• возможности изменения конфигурации компьютера;

• систему команд;

• форматы данных;

• организацию интерфейса.

Классические принципы построения архитектуры ЭВМ Дж. фон Неймана:

• использование двоичной системы представления данных;

• принцип хранимой программы;

• принцип последовательного выполнения операций;

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

В ходе эволюции ЭВМ, с созданием микропроцессоров, с появлением интеллектуальных контроллеров совершён переход к шинной архитектуре ЭВМ. Процессор перестал быть центром конструкции, стало возможным реализовывать прямые связи между устройствами.

  1. Назначение, функции и структура системной платы персонального компьютера

Системная плата - это сложная многослойная печатная плата, на которой

устанавливаются основные компоненты персонального компьютера (центральный

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

  1. Назначение и функции набора микросхем системной логики. 

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

  1. Назначение и функции оперативной памяти.

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

1.1 Память динамического типа (англ. DRAM (Dynamic Random Access Memory))

1.2 Память статического типа (англ. SRAM (Static Random Access Memory))

  1. Варианты связи оперативной памяти с остальными частями персонального компьютера. Достоинства и недостатки.

90% работы процессора связано с оперативной памятью. Он берет оттуда данные, обрабатывает их и отсылает обратно в память. Кроме этого, сам процессор имеет собственную память, называемую регистрами.

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

Но такое не всегда бывает. Если в команде указан полный адрес ячейки, где лежат необходимые данные, то это уже полный или абсолютный тип адресации.

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

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

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

  1. Память с произвольным доступом. Виды RAM, их достоинства и недостатки.