Главная Случайная страница


Полезное:

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


Категории:

АрхитектураАстрономияБиологияГеографияГеологияИнформатикаИскусствоИсторияКулинарияКультураМаркетингМатематикаМедицинаМенеджментОхрана трудаПравоПроизводствоПсихологияРелигияСоциологияСпортТехникаФизикаФилософияХимияЭкологияЭкономикаЭлектроника






Команды доступа в оперативную память





Прежде всего, это команды загрузки регистров и записи из них в оперативную память. Команда LD загружает в регистры GR 1-, 2-, 4- и 8-байтные целочисленные величины; аналогично команда LDF загружает в регистры FR числа с плавающей точкой размером 4, 8, 10 байт, а также пары 4-байтных чисел. В этих командах можно указать также на тонкие особенности работы с оперативной памятью и кэш-памятью. Имеются и специальные команды работы с кэш-памятью.

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

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

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

Все команды можно разделить на «спекулятивно» выполнимые и «спекулятивно» невыполнимые. Последние могут вызывать прерывания, которые не могут быть отложены. Обычные вычислительные команды, имеющие GR или FR в качестве регистров результата, - «спекулятивные». Если же команда изменяет другие типы регистров, она не «спекулятивная».

Кроме обычных не «спекулятивных» команд (LD, LDF...) в архитектуре EPIC имеются их «спекулятивные» модификации (LD.S, LDF.S...). Вычислительные команды в общем случае не вызывают прерываний (операции с плавающей точкой обрабатывают прерывания специальным образом), поэтому единственным способом сгенерировать признак отложенного прерывания являются команды «спекулятивной» загрузки. Другие команды его могут только "распространять".

В точке программы, где надо использовать результат «спекулятивного» выполнения, применяется «спекулятивная» команда CHK.S, проверяющая признак отложенного прерывания. Если оно имелось, команда CHK.S передает управление по указанному в ней адресу, по которому программист должен расположить программы обработки ситуации. Поскольку стало ясно, что «спекулятивное» выполнение команды действительно понадобилось, можно закодировать копию спекулятивно выполненного фрагмента программы, но уже с не «спекулятивными» командами загрузки.

Другой тип «спекулятивного» выполнения может иметь место, когда вслед за записью в оперативную память идет команда загрузки регистра, и невозможно заранее определить, не будут ли перекрываться в оперативной памяти используемые этими командами данные. В архитектуре EPIC имеются «спекулятивные» команды загрузки (LD.A, LDF.A...), которые называются "усовершенствованными" (advanced) командами загрузки. Аналогично взаимозависимости между командами по управлению, "устраняемой" применением спекулятивных команд с "постфиксом".S, продвинутые команды загрузки вместе с соответствующей командой проверки CHK.A (аналог команды CHK.S) позволяют исключить задержки выполнения при наличии взаимозависимости по данным.

 

 







Date: 2015-10-18; view: 317; Нарушение авторских прав



mydocx.ru - 2015-2024 year. (0.007 sec.) Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав - Пожаловаться на публикацию