Скачиваний:
1
Добавлен:
30.12.2025
Размер:
1.75 Mб
Скачать

Рис. 28. Структура ТАР

В процессе обмена информацией через TAP ведущее устройство воспринимает БИС как сдвиговый регистр, построенный на ячейках граничного сканирования, при этом

-TDI – вход сдвигового регистра;

-TDO – выход сдвигового регистра;

-TCK – сигнал синхронизации сдвигового регистра. TAP требует 4-х внешних контактов:

-TDI (Test Data Input) – контакт для получения последовательных данных. На этот контакт последовательно, бит за битом подаются данные, которые затем интерпретируются схемой управления;

-TDO (Test Data Output) – контакт вывода последовательных данных. С этого контакта ведущее устройство последовательно считывает данные из БИС (например, результат тестовых операций);

-TCK (Test Clock Input) – контакт сигнала синхронизации обмена;

-TMS (Test Mode Select) – этот контакт управляет состоянием внутреннего автомата TAP. В частности, с помощью этого контакта определяется, что загружается: команда или данные, а также определяется начало и конец загрузки;

-TRST (Test ReSeT) – сброс в начальное состояние контроллера внутреннего автомата TAP (контакт не является обязательным для реализации).

26.Протокол JTAG. Структура и функционирование BSC (ячейки граничного сканирования).

Регистр данных – сдвигающий регистр, состоящий из цепочки ячеек граничного сканирования – BSC (boundary scan cell). Такой регистр называется регистром граничного сканирования (Boundary Scan Register).

Вариант схемы отдельной ячейки показаны на рис. 29 и рис. 30.

Рис. 29. Структура ячейки граничного сканирования для тестирования. Можно выделить несколько режимов в работе ячейки:

-режим сдвига, когда в триггере Т1 по сигналу «захват» сохраняется состояние аналогичного триггера предыдущей ячейки. В этом режиме ведущее устройство последовательно выдвигает текущее состояние ячеек и вдвигает новое;

-режим наблюдения («Sample»). В этом режиме по импульсу текущее состояние вывода фиксируется в триггере и может быть потом считано ведущим устройством. При этом в процессе обмена данные, получаемые от ведущего устройства, фиксируются в триггере. При необходимости, в режиме тестирования (EXTEST) эти данные могут быть выведены на внешний вывод;

-режим тестирования ( EXTEST, – Executing Test ). В этом режиме на выход подается логическое значение, которое находится в триггере T2.

Для целей программирования структура ячейки будет выглядеть следующим образом

Рис. 30. Структура ячейки граничного сканирования для программирования.

Каждая ячейка граничного сканирования располагается во внешней части кристалла между контактной площадкой и внутренней частью.

Возможны следующие режимы работы:

-загрузка программ или чтение внутрисистемных ЗУ. В этом случае отключается контактная площадка, и вся информация поступает из BSC во внутреннюю часть кристалла или из кристалла в BSC;

-тестирование соединений БИС в плате или нескольких БИС между собой. Отключена внутренняя часть, остается соединение BSC с контактной площадкой;

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

27. Общая структура HPS Cortex A9, входящего в структуру FPGA CycloneV. Регистр статуса.

Общая структура микропроцессора CortexA9 показана на рис. 31.

Рис. 31.

В структуру процессора входят:

-блок предварительной выборки команд;

-блок декодирования и подмены;

-блок организации исполнения;

-исполнительный блок;

-блок осуществления обратной записи.

Блок предварительной выборки команд включает в себя:

-первичную очередь команд, поступающих из кэш инструкций;

-блок организации прогнозирования переходов.

Блок декодирования и подмены включает в себя:

-блок декодирования;

-блок подтверждения перехода;

-блок подмены команд;

-блок подмены регистров.

Блок организации исполнения включает в себя:

-вторичную, реальную очередь команд;

-блок управления порядком обработки данных. Исполнительный блок включает в себя:

-блок переключений вычислительных функций: блок целочисленных вычислений или вычислений с плавающей точкой;

-АЛУ, АЛУ + умножитель, умножитель и прочие блоки исполнения команд;

-блок регистров с подключением кэш данных.

Блок осуществления обратной записи включает в себя:

- интерфейсы для кэш L2, GIC (контроллер прерываний) и т.п.

Первые три блока нужно рассматривать в комплексе, также как и последующие два.

Регистр текущего статуса программы содержит основные установки, определяющие стратегию действий ядра и системы. См. рис. 32. Флаги состояний устанавливаются в ходе выполнения программы и определяют её дальнейшее поведение.

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

Рис. 32.

28. Производительность процессора. В чем заключается конвейерная обработка команд? Ступени конвейера.

Если процессор работает с тактовой частоой F, то время T=1/F называется тактом. Время выполнения тестовой задачи tp можно рассчитать через такт

tp=T x C x I,

где C – количество тактов на инструкцию, а I – количество инструкций на задачу.

Соответственно, чем меньше времени затрачивается на решение тестовой задачи, тем производительность процессора выше. В указанном выше

выражении уменьшение T ограничено свойствами структуры, поэтому изменение производительности можно достичь изменением I или C.

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

1 – выборка кода из памяти по выставленному на адресной шине адресу, 2 – дешифрация кода, 3 – исполнение,

4 – получение результата,

5 – обратная загрузка результата.

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

Рис. 33.

29. Производительность процессора. Суперскалярная архитектура. Прогнозирование переходов. Внутрипроцессорная многопоточность.

В представленной на рис. 33 схеме имеются участки, которые могут замедлять, или даже приостанавливать работу конвейера. Это ступень выборки при разветвленных алгоритмах, а также ступени 3 - 5. Действительно, если, для получения результата, команде N требуются операнды, полученные в результате выполнения команды N-1, то, с большой долей вероятности, ожидается временная задержка на получение этих операндов. Для уверенной работы должны быть соблюдены следующие зависимости:

RAW - взаимосвязь. (Read After Write). Считывать состояние регистра команда может лишь после того, как в него записала данные предыдущая команда.

WAR – взаимосвязь. (Write After Read). Переписать состояние регистра команда может только тогда, когда его считала предыдущая команда.

WAW – запись после записи. (Write After Write). Записывать операндисточник в регистр можно только после записи результата.

Таким образом, запускать команду на 3 стадию нельзя в трех случаях:

1.Если какой-либо операнд записывается.

2.Если считывается состояние регистра результатов.

3.Если записывается регистр результатов.

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

Поэтому используют методы подмены команд и подмены регистров, как дополнительный этап – формирование второй очереди.

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

Очевидно, что такой путь наращивания числа параллельных конвейеров не слишком эффективен из-за жестких требований к выбираемым командам. Тем более, что в каждом из конвейеров самым длительным будет четвертый этап. Поэтому распараллеливание начали делать на этапе С4 – исполнение команд. Такой подход к построению конвейера носит название

суперскалярная архитектура, рис. 34.

Рис. 34.

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

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

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

1.Переход происходит всегда (ПВ).

2.Переход никогда не происходит (ПН).

3.Предсказание определяется по результатам профилирования.

4.Предсказание определяется кодом операции команды перехода.

5.Предсказание зависит от направления перехода.

6.При первом выполнении команды переход имеет место всегда.

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

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

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

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

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

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

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

В мелкомодульной многопоточности, рис. 35, выборка команд из разных потоков идет «по кругу», не дожидаясь простоя.

Рис. 35

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

Рис.36.

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

Рис. 37.

30. Структура внутренней памяти процессорной системы. Физическая основа памяти данных и инструкций.

Внутренняя память (системная память) включает в себя так называемую обычную память, память устройств и строго упорядоченную память (память

споследовательным доступом).

Обычная память – вся адресная и ассоциативная память (SDRAM, DDR, SRAM (cache), EEPROM(Flash). Хранит коды инструкций и данные. Доступна по указателю PC. Имеет область стека.

SDRAM имеет матрицу, основанную на ёмкостных носителях, изначально это была память DRAM, не синхронизированная с системой, а управляющаяся с помощью линии задержки, рис 38.

Рис. 38

В DRAM адресные входы подключаются к шине через мультиплексоры, выделяющие адреса строки и столбца. K=n/2, где n – количество подключаемых разрядов адресной шины, а K – количество адресных входов микросхемы. Вход RAS (row address strobe) (строб строки) активен, когда

подается адрес строки, вход CAS (column address strobe) (строб столбца) активен после подачи адреса столбца.

Рис. 39.

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

При записи строки в защелку строки информация в ячейках разрушается, поэтому во время выдачи информации одновременно идет восстановление строки из защелки. Этот процесс занимает три такта. Строки, не выбранные дешифратором при активном RAS, подвергаются регенерации. Таким образом, DRAM позволяет за 5 тактов получить всего ону единицу информации. Причём во время считывания информации из регистра обратно в строку состояние регистра не меняется. Поэтому, если засинхронизировать схему и поставить счетчик обращений, то появляется возможность считать еще 3 единицы информации.

Для повышения производительности обмена процессора с памятью применяется DDR – DDR SDRAM (Double Data Rate Synchronous Dynamic Random Access Memory – динамическая синхронизированная память с произвольным порядком выборки и удвоенной передачей данных). Основное отличие DDR SDRAM от обычной SDRAM заключается в том, что за один цикл происходит два обращения к данным: по положительному и отрицательному краям импульса тактового сигнала системной шины - чтение/запись. В схеме DDR SDRAM формируется дополнительный строб. Это достигается установкой инверторов в цепях опроса и вывода данных на шину, позволяющих отрицательный край импульса синхронизации воспринимать как положительный. Таким образом, скорость передачи данных процессору повышается в два раза.