Алгоритм - Учебный центр
Заполните форму ниже! Мы вам перезвоним!

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


Технология Execute In Place.

Технология Execute In Place.

Cущественым недостатком использования ПЗУ была и остается их низкая производительность. Ее помогает обойти использование «теневой памяти» (Shadow RAM) в которую для ускорения доступа копируется BIOS (а теперь и UEFI). Почему бы не попытаться выполнить старт персональной платформы, полностью отказавшись от использования оперативной памяти? Чип W25Q64FV, используемый в Compute Stick для хранения кода UEFI BIOS, компания Winbond, разработавшая этот чип, позиционирует его как устройство, способное выполнять программы непосредственно из исходного носителя. Данная технология получила название Execute In Place (XIP) и по идее должна заменить режим Shadow RAM.

В широком смысле технология Execute In Place – это выполнение программы непосредственно из исходного носителя (в нашем случае в качестве исходного носителя используется микросхема ROM) без копирования кода в оперативную память. В современных системах с момента старта платформы до инициализации ОЗУ (либо до инициализации режима Cache-as-RAM), код UEFI BIOS также выполняется в режиме Execute In Place. Другими словами, особой новизны здесь нет. Разумеется, для универсальной микросхемы ROM не имеет значения, какая информация читается из нее: выполняемый код, данные, либо идет побайтное копирование образа ROM в оперативную память. Поэтому к инициативам Winbond можно относиться скептически, и неверно утверждать, что есть ROM с поддержкой XIP, а есть ROM без поддержки XIP. Любой ROM поддерживает XIP, поэтому правильнее говорить о том, что некоторые ROM (в частности микросхема W25Q64FV) оптимизированы для ускорения XIP. Имеется в виду следующее, что производительность памяти, в том числе постоянных запоминающих устройств, характеризуется двумя параметрами:

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

- и латентностью (время реакции на изменившийся адрес).

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

При выполнении программного кода (это и есть XIP), наоборот, имеют место ветвления (условные переходы), выборочный доступ к мелким фрагментам, частое изменение адреса по нерегулярному закону. В этом случае важнее минимизировать латентность, а опережающее чтение байтов, явно не затребованных для чтения, может принести вред, так как мы с высокой вероятностью потратим время работы SPI интерфейса на чтение данных, которые не потребуются, например, прочитаем инструкции, расположенные в программе после инструкции передачи управления JMP. Смысл XIP-оптимизированных режимов чтения в том, чтобы обеспечить низкую латентность (это важно при чтении мелко разбросанных данных), а также «умерить инициативу» микросхемы ROM и контроллера SPI по чтению данных, которые не затребованы явно. XIP-оптимизацией названы и такие оптимизации, которые повлияют не только на доступ в режиме XIP, но и на непрерывный блоковый доступ, имеющий место при копировании содержимого ROM в Shadow RAM. В частности расширения SPI-протокола: Dual SPI, Quad SPI.

Режим Dual SPI увеличивает разрядность передаваемых данных от одного бита (классической реализации) до двух. Режим Quad SPI увеличивает разрядность передаваемых данных до четырех. Линии, образующие однобитовую двунаправленную шину и сигналы управления, переопределяются с использованием мультиплексирования в четырехбитовую шину. Режим QPI (Quad Peripheral Interconnect) в чипе W25Q64FV по праву можно назвать XIP-оптимизацией. Он использует тот же набор сигналов, что и Quad SPI. Отличие в том, что в режиме QPI, увеличение разрядности шины в 4 раза затрагивает не только передачу адреса и данных, но и управляющих команд: 8-битная команда передается не за восемь, а за два такта. В результате снижается латентность (минимизируется потеря времени на восприятие новой команды). Как было сказано выше, латентность особенно важна для XIP при доступе к мелко-разбросанным данным.

Строго говоря, если называть последовательным (serial) интерфейсом только такой интерфейс, у которого для передачи данных используется одна линия, то SPI с указанными расширениями уже не является последовательным. Пропускная способность возрастает пропорционально увеличенной разрядности. Использование описанных функциональных расширений возможно только в том случае, если SPI хост-контроллер их поддерживает. Обычно, хост-контроллер входит в состав микросхемы PCH (Platform Controller Hub), либо находится в составе центрального процессора. 


Лицензия