Регистр статуса программы
Помимо регистрового файла, имеется отдельный регистр XPSR, который называется регистром статуса программы. Он не входит в основной регистровый файл, а доступ к нему возможен с помощью двух специальных инструкций. В XPSR хранятся значения полей, влияющих на исполнение инструкций Cortex. Регистр статуса программы содержит поля статуса, от которых зависит исполнение инструкций. Данный регистр… Читать ещё >
Регистр статуса программы (реферат, курсовая, диплом, контрольная)
Помимо регистрового файла, имеется отдельный регистр XPSR, который называется регистром статуса программы. Он не входит в основной регистровый файл, а доступ к нему возможен с помощью двух специальных инструкций. В XPSR хранятся значения полей, влияющих на исполнение инструкций Cortex. Регистр статуса программы содержит поля статуса, от которых зависит исполнение инструкций. Данный регистр разделен еще на три поля: статуса прикладной программы, исполнения программы и прерываний.
Регисгр статуса программы содержит поля, от которых зависит исполнение инструкций. Данный регисгр разделен на три поля: статуса прикладной программы, исполнения программы и прерываний (рис. 1.1). Биты регистра XPSR разделены на три группы, к каждой из которых возможен доступ по собственному наименованию.
Верхние пять бит (флаги кода условия) именуются полем статуса прикладной программы. Первые четыре флага кода условия N, Z, С, V (индикация отрицательного (N) или нулевого (Z) результата, переноса © и переполнения (V)) устанавливаются и сбрасываются по итогам выполнения инструкции обработки данных. Пятый бит Q используется при выполнении математических инструкций с насыщением алгоритмов цифровой обработки сигналов для индикации достижения переменной своего максимального или минимального значения. Так же как и 32-битные инструкции ARM, некоторые инструкции Thumb-2.
выполняются только при условии совпадения кода условия инструкции и состояния флагов регист ра статуса прикладной программы. Если коды условия инструкции не совпадают, то инструкция проходит по конвейеру как NOP (нет операции). Этим гарантируется равномерность прохождения инструкций по конвейеру и минимизируется число перезагрузок конвейера. У Cortex данный способ расширен полем статуса исполнения программы, который связан с битами [26:8]' регистра XPSR. Это поле состоит из трех полей: поле 'if then' (IT), поле возобновляемой прерыванием инструкции и поле инструкции Thumb. Набор инструкций Thumb-2 реализует эффективный метод выполнения компактных блоков инструкций типа 'if then'. Если проверяемое условие истинно, записью значения в поле IT можно сигнализировать микропроцессору о необходимости выполнения до четырех следующих инструкций. Если же проверяемое условие — ложное, то данные инструкции пройдут по конвейеру как NOP.
Несмотря на то, что большинство инструкций Thumb-2 выполняются за один цикл, некоторые инструкции (например, инструкции чтения/записи) требуют для выполнения несколько циклов. Чтобы точно знать время отклика микропроцессорного ядра Cortex на прерывания, данные инструкции должны быть прерываемыми. В случае преждевременного прекращения исполнения инструкции в поле возобновляемых прерываниями инструкций запоминается номер следующего регистра, подлежащего обработке инструкцией многократного чтения или записи. Таким образом, сразу после завершения процедуры обработки прерывания выполнение инструкции многократного чтения/записи может быть восстановлено. Последнее поле Thumb предусмотрено для совместимости с предшествующими версиями микропроцессорного ядра ARM. Данное поле сигнализирует, что в настоящий момент микропроцессорное ядро выполняет инструкцию ARM или Thumb. У микропроцессорного ядра Cortex-МЗ данный бит всегда равен единице. Наконец, в поле статуса прерывания хранится информация о любых приостановленных запросах прерывания.