ПРОЦЕССОР И СПОСОБ ОСУЩЕСТВЛЕНИЯ ОПЕРАЦИЙ НЕПРЯМОГО ЧТЕНИЯ И ЗАПИСИ РЕГИСТРА
PROCESSOR AND METHOD OF INDIRECT READING AND RECORDING INTO REGISTER

Область техники, к которой относится изобретение
Данное изобретение относится, в целом, к процессорам и, в частности, к процессору и способу осуществления операций непрямого чтения и записи регистра.
Уровень техники
Цифровые сигнальные процессоры представляют собой специализированные процессоры, способные выполнять математические операции с высокой скоростью. Цифровые сигнальные процессоры (ЦСП) можно использовать для обработки изображений, обработки аудиосигналов, обработки видеосигналов и для многих других целей. Цифровые сигнальные процессоры обычно входят в состав разнообразных устройств, например мобильных телефонов, карманных персональных компьютеров, фотоаппаратов, видеокамер и портативных вычислительных систем. Для увеличения скорости выполнения некоторые цифровые сигнальные процессоры имеют многопотоковую архитектуру с перемежением, позволяющую поддерживать одновременное выполнение нескольких аппаратных потоков. Команды от нескольких потоков перемежаются в конвейере выполнения. Эта архитектура позволяет использовать агрессивную тактовую частоту и одновременно поддерживать высокую эффективность использования ядра и памяти.
Сущность изобретения
Здесь описаны способ и система для осуществления доступа к значениям, хранящимся в любом регистре, с использованием значения другого регистра в качестве индекса регистра. Значения могут храниться в регистрах с возможностью такого доступа для использования в вычислениях и других операциях без обращения к памяти.
Согласно одному аспекту варианта осуществления изобретения, способ содержит этапы, на которых обращаются к первому регистру на основании команды программы и получают выходное значение первого регистра, обращаются ко второму регистру на основании выходного значения первого регистра, получают выходное значение второго регистра и сохраняют выходное значение второго регистра в третьем регистре на основании команды программы.
Согласно другому аспекту варианта осуществления изобретения, способ содержит этапы, на которых считывают значение из исходного поля команды программы, обращаются к первому регистру на основании значения исходного поля и получают выходное значение первого регистра, в необязательном порядке осуществляют первую математическую/логическую операцию над выходным значением первого регистра, обращаются ко второму регистру на основании результата первой математической/логической операции и получают выходное значение второго регистра, в необязательном порядке осуществляют вторую математическую/логическую операцию над выходным значением второго регистра, считывают значение из конечного поля команды программы и сохраняют результат второй математической/логической операции в третьем регистре на основании значения конечного поля.
Согласно другому аспекту варианта осуществления изобретения, предусмотрен компьютерно-считываемый носитель, на котором закодирован процесс, подлежащий выполнению на цифровом сигнальном процессоре. Процесс содержит обращение к первому регистру на основании команды программы и получение выходного значения первого регистра, обращение ко второму регистру на основании выходного значения первого регистра и получение выходного значения второго регистра и сохранение выходного значения второго регистра в третьем регистре на основании команды программы.
Согласно еще одному аспекту варианта осуществления изобретения, процессор содержит средство доступа к первому регистру на основании команды программы и получения выходного значения первого регистра, средство доступа ко второму регистру на основании выходного значения первого регистра и получения выходного значения второго регистра и средство сохранения выходного значения второго регистра в третьем регистре на основании команды программы.
Согласно еще одному аспекту варианта осуществления изобретения, способ содержит этапы, на которых обращаются к первому регистру на основании команды программы и получают выходное значение первого регистра, обращаются ко второму регистру на основании команды программы и получают выходное значение второго регистра и сохраняют выходное значение первого регистра в третьем регистре на основании выходного значения второго регистра.
Согласно еще одному аспекту варианта осуществления изобретения, предусмотрен компьютерно-считываемый носитель, на котором закодирован способ, содержащий этапы, на которых обращаются к первому регистру на основании команды программы и получают выходное значение первого регистра, обращаются ко второму регистру на основании команды программы и получают выходное значение второго регистра и сохраняют выходное значение первого регистра в третьем регистре на основании выходного значения второго регистра.
Согласно еще одному аспекту варианта осуществления изобретения, процессор содержит средство доступа к первому регистру на основании команды программы и получения выходного значения первого регистра, средство доступа ко второму регистру на основании команды программы и получения выходного значения второго регистра и средство сохранения выходного значения первого регистра в третьем регистре на основании выходного значения второго регистра.
Согласно еще одному аспекту варианта осуществления изобретения, процессор содержит первый блок выполнения, способный обращаться к первому регистру на основании команды программы и получать выходное значение первого регистра, и второй блок выполнения, способный обращаться ко второму регистру на основании выходного значения первого регистра, получать выходное значение второго регистра и сохранять выходное значение второго регистра в третьем регистре на основании команды программы.
Краткое описание чертежей
Более полное понимание этого раскрытия можно получить, обратившись к прилагаемым чертежам, рассматриваемым совместно с нижеследующим подробным описанием.
Фиг.1 - упрощенная схема последовательности операций согласно варианту осуществления процессорного конвейера.
Фиг.2 - упрощенная временная диаграмма многопотокового выполнения с перемежением процессорного конвейера.
Фиг.3 - схема последовательности операций согласно варианту осуществления процесса непрямого чтения.
Фиг.4 - схема последовательности операций согласно варианту осуществления процесса непрямой записи.
Осуществление изобретения
На фиг.1 показана упрощенная схема последовательности операций согласно варианту осуществления процессорного конвейера 10. Процессорный конвейер 10 можно реализовать на цифровом сигнальном процессоре, предназначенном для математических операций, или на процессоре общего назначения. В одном варианте осуществления, процессорный конвейер 10 имеет многопотоковую архитектуру с перемежением, которая позволяет, по существу, одновременно выполнять шесть потоков. Процессорный конвейер 10 содержит командный блок 12 памяти, содержащий шесть потоков. Команды программы выбираются из командного кэша 14. Затем логика 16 управления и предварительного декодирования команд может разрешать зависимости данных и конфликты ресурсов, закодированные в некоторых заранее определенных битах в командах, и направлять команды в конкретные блоки выполнения. Затем команды программы считываются в очередь 18 команд, ожидающих выполнения. Согласно варианту осуществления цифрового сигнального процессора, каждая команда программы представляет собой пакет команд, содержащий четыре отдельные команды. Каждая команда может содержать одно или несколько исходных полей, каждое из которых может содержать индекс для регистрового файла, позволяющий считывать значение, используемое при выполнении команды. Регистровый файл можно рассматривать как массив регистров, доступный по индексу для регистрового файла. Затем производится операция 20 чтения регистрового файла для считывания операндов, необходимых для выполнения команды для потока. Совокупность блоков 22 выполнения, например четыре в этом варианте осуществления, для выполнения каждой из четырех команд в пакете команд, способны осуществлять выполнение команды программы. Затем производится операция 24 записи регистрового файла для сохранения результатов выполнения.
На фиг.2 показана упрощенная временная диаграмма многопотокового выполнения с перемежением. Многопотоковая архитектура с перемежением процессорного конвейера 10 позволяет, по существу, одновременно выполнять шесть команд из шести потоков 31-36 (T1-T6). Согласно показанному варианту осуществления цифрового сигнального процессора, каждая команда программы представляет собой пакет команд, содержащий четыре отдельные команды. Каждый пакет команд может выполняться за семь периодов тактовых импульсов, например для декодирования (период тактовых импульсов C1), чтения операций из регистрового файла (период тактовых импульсов C2), выполнения четырех команд (периоды тактовых импульсов C3-C6) и, наконец, записи результатов в регистровый файл (период тактовых импульсов C1). В то время как пакет команд из первого потока декодируется, после чего операнды считываются из регистрового файла, декодируется второй пакет команд. В таком режиме работы начало выполнения каждого следующего пакета команд отстает от предыдущего пакета команд на один период тактовых импульсов. Преимущества такого режима выполнения процессорного конвейера позволяют обеспечить ранее недостижимую эффективность работы. Прежде было невозможно осуществлять непрямую операцию чтения для считывания значения из регистрового файла и использования его в качестве индекса для того же регистрового файла для поиска значения, используемого в операции. Также было невозможно осуществлять непрямую операцию записи для записи результата в регистровый файл в месте, индексированном значением, считанным из регистрового файла. Логика для реализации непрямого/й чтения/записи регистрового файла была бы слишком дорогой и сложной для реализации. Эти операции в настоящее время можно осуществлять благодаря дополнительному времени, доступному для выполнения команды в потоке, в то время как выполняются другие потоки.
На фиг.3 показана схема последовательности операций согласно варианту осуществления процесса непрямого чтения. Команда 40 программы может включать в себя конечное поле 42 и исходное поле 44. Значение в исходном поле 44 сначала считывается и используется в качестве индекса 46 для регистрового файла 48. Значение в положении в регистровом файле 48, указанном индексом 46, считывается из регистрового файла 48, и выходное значение регистра 50 может использоваться в математической или логической операции 52. Математическая или логическая операция 52 может, например, быть операцией сложения, вычитания, умножения, деления, логической операцией И (или НЕ-И), логической операцией ИЛИ (или НЕ-ИЛИ), логической операцией ИСКЛЮЧАЮЩЕГО ИЛИ, операцией битового маскирования (например, для маскирования нескольких старших или младших битов). Операция выдает результат, который затем используется в качестве индекса 54 для регистрового файла 48. Выходное значение 56 регистра, считанное из регистрового файла 48, затем используется в другой математической или логической операции 58, и ее результат 60 записывается в регистровый файл 48 в положение, индексируемое значением индекса 62, считанным из конечного поля 42 команды 40. В вышеприведенном описании математические или логические операции 52 и/или 58 могут быть необязательными этапами. Непрямая операция чтения может иметь множественные итерации чтения регистра для получения индекса для регистрового файла для получения другого значения, которое, в свою очередь, может использоваться как операнд или другой индекс регистра. Эту последовательность операций можно реализовать аппаратными, программными или комбинированными средствами.
На фиг.4 показана схема последовательности операций согласно варианту осуществления процесса непрямой записи. Команда 70 программы включает в себя исходное поле 72, значение которого используется в качестве индекса 74 для регистрового файла 76. Выходное значение 78 регистра, хранящееся в положении, индексированном индексом 74, считывается для использования в математической или логической операции 80. Затем результат 82 записывается в регистровый файл 76 в положении, указанном индексом 92, определенным считыванием значения индекса 86 из конечного поля 84 команды 70 программы и используемым для чтения поля 76 регистра. Выходное значение регистра 88, считанное из регистрового файла 76, затем используется в математической или логической операции 90. Затем результат этой операции используется в качестве индекса для регистрового файла 76 для сохранения результата операции 80. Таким образом, непрямая операция записи может иметь множественные итерации чтения регистра для получения индекса для регистрового файла для получения другого значения, которое, в свою очередь, может использоваться как операнд или другой индекс регистра, указывающий положение для сохранения результата. Эту последовательность операций можно реализовать аппаратными, программными или комбинированными средствами.
Из вышеприведенного описания следует, что, давая создателям программного кода возможность извлекать и сохранять значение в любом регистре на основании значений, хранящихся в регистрах, можно обеспечить повышенную гибкость манипулирования программной логикой. Появляется возможность доступа к совокупности значений, хранящихся в регистрах, даже, когда шаблон доступа на этапе компиляции не известен. Прежде было трудно или неудобно обращаться к значениям, хранящимся в регистрах, на основании значения регистра.
Хотя варианты осуществления настоящего раскрытия были описаны подробно, специалисты в данной области техники могут предложить различные изменения, замены и модификации, не выходящие за рамки сущности и объема настоящего изобретения. Соответственно, все подобные изменения, замены и модификации следует рассматривать как входящие в объем настоящего изобретения, который определен нижеприведенной формулой изобретения. Формула изобретения охватывает описанные здесь структуры как осуществляющие указанные функции и не только структурные эквиваленты, но и эквивалентные структуры.