Блок корреляции для использования в определенных программным обеспечением системах радиосвязи и способ для его осуществления
Иллюстрации
Показать всеИзобретение относится к системе связи и может быть использовано в устройствах бытовой электронике, устройствах промышленного назначения, научной аппаратуре и сети связи. Технический результат - повышение скорости передачи. Блок корреляции для корреляционной обработки последовательности выборок кодовых элементов содержит: 1) память для хранения последовательности выборок кодовых элементов; 2) множество элементов сложения-вычитания, причем каждый из элементов сложения-вычитания может принимать множество действительных битов а из первой выборки кодовых элементов в памяти и множество мнимых битов b из первой выборки кодовых элементов; и 3) множество блоков выбора знака. Каждый из множества блоков выбора знака принимает из одного множества элементов сложения-вычитания первый входной сигнал, равный сумме (a+b), множества действительных битов а и множества мнимых битов b, и второй выходной сигнал, равный разности (a-b), множества действительных битов а и множества мнимых битов b. Каждый блок выбора знака генерирует действительный выходной сигнал и мнимый выходной сигнал, которые соответственно равны одному из следующих: 1) сумме (a+b), умноженной на +1 или -1, и 2) разности (a-b), умноженной на +1 или -1. 4 н. и 21 з.п. ф-лы, 14 ил.
Реферат
Предпосылки изобретения
Процессоры данных используются в электронном устройстве почти каждого типа, включая бытовую электронику, устройства промышленного назначения, научную аппаратуру и сети связи. Однако эффективность и сложность процессоров данных (или микропроцессоров), используемых в различных приложениях, могут варьироваться в широком диапазоне. Требования по скорости и мощности для конкретного приложения важны при определении типа используемого процессора данных.
Тип используемого процессора данных, в частности, важен в реализациях радиосвязи, определяемых программным обеспечением (SDR). Устройство SDR использует аппаратные средства с изменяемой конфигурацией, которые могут программироваться по радиоканалу для работы в рамках различных протоколов беспроводной связи. Например, приемопередатчик SDR в беспроводном портативном компьютере может конфигурироваться с помощью загрузки первого программного обеспечения для работы в беспроводной сети стандарта IEE-802.11x, и его конфигурация может изменяться с помощью загрузки второго программного обеспечения для работы в беспроводной сети стандарта CDMA2000.
Имеются шесть основных типов процессоров данных обычного использования: 1) цифровые процессоры сигналов, 2) компьютеры с сокращённым набором команд, 3) компьютеры с комплексным набором команд, 4) программируемые пользователем вентильные матрицы, 5) специализированные интегральные схемы и 6) процессоры с набором специфических для приложения команд. Каждый из этих типов процессоров данных имеет конкретные преимущества и конкретные недостатки.
Цифровой процессор сигналов (ЦПС, DSP) представляет собой универсальный процессор, оптимизированный для эффективного выполнения операций обработки цифровых сигналов, таких как операция умножения-суммирования для операций фильтрации с конечным импульсным откликом (КИО) и быстрого преобразования Фурье (БПФ). ЦПС реализует многие усложненные режимы адресации для удовлетворения многих из требований вычислений ЦПС, такие как режим адресации с реверсированием битов для БПФ, индексная адресация для устройств FIFO («первым пришел - первым обслужен») и т.д. Примеры ЦПС включают следующее: 1) процессоры Motorola 56000, 56300, SC81xx и MRC6011; 2) Texas Instruments (TI) C55, C6203, C6416 и C67xx; 3) процессоры ADI Share и TigerSharc; 4) ЦПС с изменяемой конфигурацией Morpho MSI-64.
Компьютер с сокращённым набором команд (RISC) является универсальным компьютером (GPP), который главным образом нацелен на приложения управления, такие как приложения управления доступом к среде передачи (МАС). Основным достоинством машины типа RISC является ее простота. Как следует из определения, процессор RISC имеет малый набор команд, который обеспечивает большую плотность кода, а также более быструю реакцию на изменение потока. Примерами устройств RISC являются следующие: 1) процессоры ARM (например, ARM926, ARM1136J); 2) процессоры MIPS (например, MIPS32, MIPS64); 3) IBM PowerPC 405 и 750FX; и 4) Motorola PowerPC603).
Компьютер с комплексным набором команд (CISC) является универсальным процессором (GPP), нацеленным на приложения общего назначения, занимающие диапазон от мультимедийных приложений до приложений персональных компьютеров (РС). Примеры процессоров CISC включают в себя следующие: 1) Intel Pentium и 2) Motorola 68000.
Программируемая пользователем вентильная матрица (FPGA) является устройством с изменяемой конфигурацией, основанным на матрице элементов аппаратных средств, соединенных через длинные шины и локальные шины. Устройства на FPGA по существу повсеместно используются в приложениях и реализациях базовых станций беспроводной сети. Примеры устройств на FPGA включают в себя: 1) Xilinx Virtex IV и 2) Altera Stratix II.
Специализированная интегральная схема (ASIC) является аппаратным средством, специально спроектированным для конкретного приложения. Схема ASIC является очень эффективной по мощности. Устройства на ASIC используются во многих беспроводных устройствах (например, в сотовых телефонах и т.д.). Процессор с набором специфических для приложения команд (ASIP) является улучшенной версией устройства на ASIC, которая добавляет больше программируемости к аппаратным средствам на ASIC.
Каждый из вышеописанных процессоров имеет определенные преимущества и конкретные недостатки. Цифровые процессоры сигналов являются наиболее гибким типом процессора, с точки зрения аппаратных средств, чтобы удовлетворить требования радиосвязи, определяемой программным обеспечением (SDR). Однако устройства на DSP не имеют достаточной эффективности MIPS и архитектуры манипулирования битами для удовлетворения требований обработки с битовой скоростью стандартов 3G и 4G. Процессоры на RISC нацелены на приложения управления, но не адекватны вне приложений базовой полосы для реализаций беспроводных сетей. Процессоры CISC могут иметь гибкость и эффективность MIPS для обработки приложений базовой полосы, но их низкая мощность по существу делает их неподходящими в случае ограничений по мощности, свойственных телефонным трубкам. Устройства на FPGA, такие как процессоры CISC, могут соответствовать эффективности MIPS, но их низкая эффективность по мощности делает их непригодными для конструкций телефонных трубок.
Устройства на ASIC хорошо согласованы с ограничениями по мощности и стоимости конструкций телефонных трубок. Однако их гибкость весьма ограничена для того, чтобы сделать их пригодными для реализаций SDR. Устройства на ASIP позволяют достичь более высокой гибкости, чем устройства на ASIC, путем добавления большей степени программируемости к специализированным аппаратным средствам и путем введения процессоров на наборе команд в аппаратные средства. Однако поскольку ASIP являются универсальными устройствами, их эффективность процессорного ядра зависит от обрабатываемого приложения. Чем больше управляющего кода в приложении, тем менее эффективным будет процессор ASIP. Результатом является низкая эффективность и высокое потребление энергии.
Дополнительными недостатками известных процессоров являются масштабируемость и модульность. Метод радиосвязи, определяемой программным обеспечением (SDR), был создан для минимизации затрат (времени проектирования, TTM) и потребляемой мощности для максимизации гибкости. Известные реализации процессоров не обеспечивают оптимизированной комбинации масштабируемости и модульности.
Проектирование процессора данных для использования в мобильных станциях объективно затруднено ввиду компромиссов, которые должны всегда делаться между конкурирующими факторами, включая эффективность по энергии, вычислительную мощность и гибкость. Большинство современных, соответствующих множеству стандартов беспроводных устройств, содержат блоки из отдельных и во многом независимых устройств на ASIC, каждое из которых относится к отдельному стандарту беспроводной связи. Отдельные устройства на ASIC компонуются вместе, чтобы одновременно обеспечить поддержку различных стандартов беспроводной связи. Этот метод решения «в лоб» вызывает различные проблемы ввиду увеличения размеров, увеличения мощности и отсутствия гибкости. С другой стороны, универсальные процессоры DSP и сходные архитектуры обеспечивают значительную гибкость. Однако эти устройства характеризуются высокой потребляемой мощностью и в типовом случае не могут удовлетворить требования вычислений в реальном времени для большинства стандартов беспроводной связи.
Современные мобильные станции (или беспроводные терминалы) основаны на устройствах с множеством ASIC, что обусловлено факторами мощности и эффективности. Как отмечено, такие устройства на ASIC обычно являются специализированными только для выполнения конкретных функций в системе. Например, в большинстве традиционных мобильных станций широкополосного множественного доступа с кодовым разделением каналов (WCDMA) отдельные блоки ASIC в типовом случае используются для функции коррелятора и для функции поиска сотовой ячейки, несмотря на то, что оба блока во многом весьма сходны. Если бы обе функции можно было реализовать на одном и том же аппаратном средстве с изменяемой конфигурацией в максимально возможной степени, то такое решение было бы намного более эффективным и позволило бы использовать кристаллы с меньшими размерами.
Поэтому в технике имеется потребность в усовершенствованной архитектуре радиосвязи, определяемой программным обеспечением (SDR), которая минимизирует затраты и потребляемую мощность при сохранении гибкости. В частности, имеется необходимость в реконфигурируемом блоке корреляции для использования в беспроводных устройствах SDR.
Сущность изобретения
Настоящее изобретение обеспечивает реконфигурируемый блок корреляции, который может быть реализован в процессоре с набором команд, реконфигурируемым для основанных на контексте операций. Блок корреляции, соответствующий принципам настоящего изобретения, согласует архитектуру с областью приложения и совместно оптимизирует эффективность и мощность. Таким образом, настоящее изобретение одновременно удовлетворяет требованиям обработки реального времени и требованиям низкой мощности беспроводных мобильных станций. Предпочтительным образом, блок корреляции является в высокой степени реконфигурируемым и может быть использован для различных функциональных блоков, работающих в соответствии с различными стандартами в процессоре CRISP, включая функциональные блоки сжатия в системе CDMA, демодуляции в IEEE-802.11b CCK, сжатия в WCDMA, поиска ячейки, сжатия в HSDPA и т.п.
Для преодоления вышеуказанных недостатков предшествующего уровня техники, основной целью настоящего изобретения является создание реконфигурируемого блока корреляции для корреляционной обработки последовательности выборок кодовых элементов. В соответствии с предпочтительным вариантом осуществления настоящего изобретения реконфигурируемый блок корреляции содержит: 1) память для хранения последовательности выборок кодовых элементов, 2) множество элементов сложения-вычитания, причем каждый из элементов сложения-вычитания может принимать множество действительных битов а из первой выборки кодовых элементов в памяти и множество мнимых битов b из первой выборки кодовых элементов; и 3) блок обработки, содержащий множество блоков выбора знака. Каждый из множества блоков выбора знака принимает из одного из множества элементов сложения-вычитания первый входной сигнал, равный сумме (а+b), множества действительных битов а и множества мнимых битов b, и второй выходной сигнал, равный разности (а-b), множества действительных битов а и множества мнимых битов b. Каждый блок выбора знака генерирует действительный выходной сигнал и мнимый выходной сигнал, причем каждый из указанных действительного выходного сигнала и мнимого выходного сигнала является одним из следующих: 1) суммой (а+b), умноженной на +1 или -1, и 2) разностью (а-b), умноженной на +1 или -1.
Согласно варианту осуществления настоящего изобретения блок корреляции дополнительно содержит генератор кода для генерации последовательности кодовых битов, причем каждый блок выбора знака получает действительный кодовый бит и мнимый кодовый бит из последовательности, и при этом действительный и мнимый кодовые биты определяют значение действительного выходного сигнала и значение мнимого выходного сигнала каждого блока выбора знака.
Согласно другому варианту осуществления настоящего изобретения блок обработки дополнительно содержит первый каскад сумматоров, содержащий первое множество действительных сумматоров и первое множество мнимых сумматоров.
Согласно еще одному варианту осуществления настоящего изобретения каждый из первого множества действительных сумматоров принимает первый действительный выходной сигнал с одного из множества блоков выбора знака и второй действительный выходной сигнал с другого из множества блоков выбора знака и формирует действительный суммарный выходной сигнал.
Согласно еще одному варианту осуществления настоящего изобретения каждый из первого множества мнимых сумматоров принимает первый мнимый выходной сигнал с одного из множества блоков выбора знака и второй мнимый выходной сигнал с другого из множества блоков выбора знака и формирует мнимый суммарный выходной сигнал.
Согласно другому варианту осуществления настоящего изобретения блок обработки дополнительно содержит второй каскад сумматоров, содержащий, по меньшей мере, один действительный сумматор и, по меньшей мере, один мнимый сумматор.
Согласно еще одному варианту осуществления настоящего изобретения каждый из, по меньшей мере, одного действительного сумматора во втором каскаде принимает первый действительный суммарный выходной сигнал с одного из первого множества действительных сумматоров и второй действительный выходной сигнал с другого одного из первого множества действительных сумматоров и формирует действительный суммарный выходной сигнал.
Согласно еще одному варианту осуществления настоящего изобретения каждый из, по меньшей мере, одного сумматора во втором каскаде принимает первый мнимый суммарный выходной сигнал с одного из первого множества мнимых сумматоров и второй мнимый суммарный выходной сигнал с другого из первого множества мнимых сумматоров и формирует мнимый суммарный выходной сигнал.
Согласно еще одному варианту осуществления настоящего изобретения реконфигурируемый блок для обработки множества контекстных команд содержит множество процессоров для исполнения каждой из предварительно определенных команд конкретного контекста; память программы для хранения управляющей программы из внешней линии управления; контроллер последовательности для извлечения программных команд из памяти программы, упорядочивания контекстов и посылки упорядоченных контекстов в виде реконфигурируемых битов на соответствующий процессор из упомянутого множества процессоров; и коммутатор межсоединений, подсоединенный между каждым из множества процессоров и внешней шиной данных, для посылки данных из шины данных на соответствующий процессор из множества процессоров.
Перед переходом к детальному описанию изобретения, приведенному ниже, было бы полезным привести определения некоторых терминов и выражений, используемых по всему тексту данного документа. Термины «включать в себя» и «содержать», а также производные от них термины означают включение без ограничения; термин «или» употребляется в смысле «включая», то есть означает и/или; выражения «ассоциирован (связан) с» и «ассоциированный (связанный) с указанным» и производные от них могут интерпретироваться как включать, включать в состав, взаимно соединять, содержать, содержаться, присоединять к чему-либо или соединять с чем-либо, связывать с чем-либо, сообщаться с чем-либо, взаимодействовать с чем-либо, перемежать, располагать рядом, находиться вблизи чего-либо, связываться с чем-либо, иметь, иметь свойство чего-либо и т.п. Термин «контроллер» означает любое устройство, систему или их часть, которое(ая) управляет, по меньшей мере, одной операцией, причем такое устройство может быть реализовано аппаратными средствами, программно-аппаратными средствами или программным обеспечением, или некоторой комбинацией, по меньшей мере, двух из указанных объектов. Следует отметить, что функциональность, ассоциированная с любым контроллером, может быть централизованной или распределенной как локально, так и дистанционно. Определения некоторых терминов и выражений приведены по всему описанию, и специалистам должно быть понятно, что во многих, если не во всех случаях, такие определения применимы как к предшествующему, так и к будущему использованию определенных таким образом терминов и выражений.
Краткое описание чертежей
Настоящее изобретение и его преимущества поясняются в нижеследующем описании, иллюстрируемом чертежами, на которых одинаковыми ссылочными позициями обозначены сходные элементы и на которых показано следующее:
Фиг.1 - блок-схема обычного процессора данных согласно примерному варианту осуществления согласно предшествующему уровню техники;
Фиг.2 - таблица состояний конечного автомата (FSM) для процессора данных;
Фиг.3 - диаграмма состояний, соответствующая таблице состояний конечного автомата на фиг.2;
Фиг.4 - диаграмма состояний, показывающая основанные на контексте группирования состояний в таблице состояний конечного автомата по фиг.2, согласно приведенному для примера варианту осуществления настоящего изобретения;
Фиг.5 - высокоуровневая блок-схема процессора с набором команд, реконфигурируемым для основанных на контексте операций, согласно приведенному для примера варианту осуществления настоящего изобретения;
Фиг.6 - высокоуровневая блок-схема реконфигурируемой системы обработки, содержащей множество процессоров с набором команд, реконфигурируемым для основанных на контексте операций, согласно приведенному для примера варианту осуществления настоящего изобретения;
Фиг.7 - высокоуровневая блок-схема соответствующей множеству стандартов системы радиосвязи, определяемой программным обеспечением (SDR), содержащей множество процессоров с набором команд, реконфигурируемым для основанных на контексте операций, согласно приведенному для примера варианту осуществления настоящего изобретения;
Фиг.8 - блок-схема блока корреляции согласно варианту осуществления настоящего изобретения;
Фиг.9 - блок-схема блока памяти в блоке корреляции согласно варианту осуществления настоящего изобретения;
Фиг.10А - более детальное представление элемента сложения-вычитания согласно приведенному для примера варианту осуществления настоящего изобретения;
Фиг.10В - более детальное представление блока выбора знака согласно приведенному для примера варианту осуществления настоящего изобретения;
Фиг.10С - блок-схема, иллюстрирующая работу блока корреляции согласно принципам настоящего изобретения;
Фиг.11 - представление вывода данных блока корреляции по фиг.8 в течение выбранных циклов операции согласно варианту осуществления настоящего изобретения;
Фиг. 12 - представление вывода данных блока корреляции по фиг.8 в течение операции поиска ячейки WCDMA согласно варианту осуществления настоящего изобретения.
Детальное описание изобретения
Фиг.1-12, описанные ниже, и различные используемые варианты осуществления, используемые для описания принципов настоящего изобретения в настоящем патентном документе, приведены только для иллюстрации и не должны толковаться как ограничивающие объем изобретения. Специалистам в данной области техники должно быть понятно, что принципы настоящего изобретения могут быть реализованы в любой соответственно реализованной системе обработки.
На фиг.1 показана блок-схема обычного процессора данных согласно примерному варианту осуществления согласно предшествующему уровню техники. Фиг.1 представляет обобщенное выполнение приложения в аппаратных средствах и программном обеспечении. Процессор 100 данных содержит память 110 и схемы 120 управления. Схемы 120 управления включают в себя объединенные схемы конечного автомата (FSM) и схемы тракта данных. Память 110 содержит N блоков памяти, включая приведенные для примера блоки 111-113 памяти, которые произвольно обозначены как память 1, память 2 и память N.
Любое приложение процессора данных может рассматриваться как набор трактов данных, управляемых и координируемых конечным автоматом FSM, как показано на фиг.1. Конечный автомат принимает входные события и в ответ выполняет переходы между состояниями и/или генерирует выходные результаты. Конечный автомат FSM принимает решение, в какие состояния следует переходить, на основе текущего состояния и принимаемых входных событий.
На фиг.2 показана таблица 200 состояний конечного автомата для приведенного для примера процессора данных. Таблица 200 состояний конечного автомата представляет переходы в следующее состояние, выполняемые конечным автоматом, на основе текущего состояния (то есть одного из состояний S1-S10) и принятого входного события (то есть одного из событий Е1-Е7). Первоначально конечный автомат находится в состоянии S1. Столбец для состояния S1 указывает переходы состояний для состояния S1 в ответ на события Е1-Е4.
В ответ на событие Е1, принятое в состоянии S1, конечный автомат переходит из состояния S1 в состояние S9. В ответ на событие Е2, принятое в состоянии S1, конечный автомат переходит из состояния S1 в состояние S2. В ответ на событие Е3, принятое в состоянии S1, конечный автомат переходит из состояния S1 в состояние S2. В ответ на событие Е4, принятое в состоянии S1, конечный автомат переходит из состояния S1 в состояние S10.
Как видно из фиг.2, в таблице 200 состояний конечного автомата имеется множество пропусков, для которых не указаны значения. Например, для состояния S1 не приведены значения для событий Е5-Е7. В процессорах, известных из предшествующего уровня техники, эти пропуски, хотя и не вносят вклада в поток операций конечного автомата, однако они должны быть предусмотрены, так как в противном случае конечный автомат не будет работать корректным образом. В процессорах, известных из предшествующего уровня техники, конечные автоматы не могли быть оптимизированы далее, чтобы устранить эти пропуски.
Фиг.3 иллюстрирует диаграмму состояний, соответствующую таблице состояний конечного автомата на фиг.2. Каждое из состояний S1-S10 представлено кружком, а события Е1-Е7 вызывают переходы между состояниями. Эти переходы представлены линиями со стрелками, соединяющими кружки состояний. Стрелка определяет направление перехода.
Следует отметить, что на диаграмме 300 состояний можно сгруппировать состояния в соответствии с контекстом исполнительных блоков. Для целей настоящего описания контекстом является группа операций и/или инструкций, которые связаны с одной и той же функцией. Фиг.4 иллюстрирует диаграмму 400 состояний, в которой состояния показанной на фиг.2 таблицы состояний конечного автомата, которые относятся к тому же самому контексту, сгруппированы вместе согласно принципам настоящего изобретения. Группирования состояний образуют контексты С0, С1, С2, С3 и С4.
Каждое из группирований состояний, показанных на фиг.4, может быть использовано для создания процессора с набором команд, реконфигурируемым для основанных на контексте операций (CRISP), согласно принципам настоящего изобретения. Каждый из контекстов С0-С4 содержит минимальное число входных событий и набор вероятных операций. Каждый контекст, таким образом, имеет свой собственный тракт данных, который может содержать блоки параллельного исполнения, в то время как исполнение набора команд может быть осуществлено в VLIP (процессор с командами очень большой длины), SIMD (один поток команд - много потоков данных), микрокоде или другими известными способами реализации, чтобы повысить эффективность в целом.
На фиг.5 показана высокоуровневая блок-схема процессора 500 с набором команд, реконфигурируемым для основанных на контексте операций (CRISP), согласно приведенному для примера варианту осуществления настоящего изобретения. Процессор CRISP 500 содержит память 510, программируемые схемы 520 трактов данных, программируемый конечный автомат 530 и, факультативно, память 540 программы. Процессор CRISP 500 предназначен для реализации только поднабора контекстно-связанных команд по фиг.4 оптимальным способом. Каждый из контекстов С0-С4 на фиг.4 может быть реализован отдельным процессором CRISP, подобным процессору CRISP 500. Процессор 500 с набором команд, реконфигурируемым для основанных на контексте операций (CRISP), определяет общеизвестный блок аппаратных средств, который обычно состоит из процессорных блоков аппаратных средств более высокого уровня. Принципиальное преимущество процессора CRISP 500 заключается в том, что процессор CRISP 500 разбивает требуемое приложение на две основные области: область управления и область трактов данных, и оптимизирует каждую область отдельно. При реализации приложения процессора данных, такой как трубка мобильной станции (например, сотовый телефон, беспроводный портативный компьютер), с использованием процессора CRISP 500, настоящее изобретение, по меньшей мере частично, преодолевает проблемы зависимости гибкости от производительности, которые оказывают отрицательное влияние на традиционные приложения процессора данных.
Область управления реализуется с помощью программируемого конечного автомата 530, который может содержать DSP (цифровой процессор сигналов), MCU (модуль микроконтроллера) или другое устройство известного типа. Программируемый конечный автомат 530 конфигурируется посредством битов реконфигурации, принятых от внешнего контроллера (не показан). Программируемый конечный автомат 530 может исполнять программу, сохраненную в ассоциированной факультативной памяти 540 программы. Программа может быть сохранена в памяти 540 программы через линию данных от внешнего контроллера (не показан). Память 510 используется для хранения данных приложения, используемых схемами 530 трактов данных.
Схемы 520 программируемых трактов данных делятся на набор структурных блоков, которые выполняют конкретные функции (например, регистры, мультиплексоры, умножители и т.п.). Каждый из структурных блоков является как реконфигурируемым, так и программируемым для обеспечения максимальной гибкости. Критерии для разделения программируемых схем 520 трактов данных на функциональные блоки зависят от уровня реконфигурируемости и программируемости, требуемого для конкретного приложения.
Поскольку каждый из контекстов С0-С4 на фиг.4 реализуется посредством отдельного процессора CRISP 500, который работает независимо от других процессоров CRISP, настоящее изобретение обеспечивает эффективную схему управления производительностью, которая обеспечивает возможность отключения процессора CRISP, если процессор CRISP не требуется для исполнения. Это гарантирует, что активными являются только те процессоры CRISP, которые необходимы в данный момент времени, в то время как другие неработающие процессоры CRISP не потребляют значительной мощности.
Процессор CRISP согласно принципам настоящего изобретения может быть нацелен на несколько приложений, включая, но без ограничения указанным, приложения базовой полосы в беспроводных устройствах и мультимедийные приложения. Во многих приложениях эти контексты могут представлять собой слабо связанные контексты, которые могут исполняться одновременно при минимальной зависимости или в ее отсутствие.
На фиг.6 показана высокоуровневая блок-схема реконфигурируемой системы 600 обработки согласно приведенному для примера варианту осуществления настоящего изобретения. Реконфигурируемая система 600 обработки содержит N процессоров с набором команд, реконфигурируемым для основных на контексте операций (CRISP), включая приведенные для примера процессоры CRISP 500а, 500b и 500с, которые произвольно обозначены как CRISP1, CRISP2 и CRISPN. Реконфигурируемая система 600 обработки также содержит контроллер 610 последовательности команд реального времени, память 620 программы последовательности, программируемый переключатель 630 межсоединений и буферы 640 и 645.
Биты реконфигурации могут быть загружены в процессоры CRISP 500а, 500b и 500с из линии управления посредством контроллера 610 последовательности команд реального времени и буфера 640. Программа управления может быть также загружена в память 620 программы последовательности из линии управления через буфер 640. Контроллер последовательности команд реального времени упорядочивает контексты для исполнения каждым из процессоров CRISP 500а-с путем извлечения команд программы из памяти 620 программы и посылки битов реконфигурации на процессоры CRISP 500а-с. В приведенном для примера варианте осуществления, контроллер 610 последовательности команд реального времени может содержать процессор стека, который может работать как планировщик реального времени ввиду его низкого запаздывания и простоты.
Программируемый переключатель 630 межсоединений обеспечивает связанность между каждым из процессоров CRISP 500а-с и внешней шиной данных посредством двунаправленного буфера 645. В приведенном для примера варианте осуществления настоящего изобретения каждый из процессоров CRISP 500а-с может действовать как задающий блок реконфигурируемого переключателя 630 межсоединений и может инициировать адресный доступ. Арбитр шины для программируемого переключателя 630 межсоединений может быть внутренним для контроллера 610 последовательности команд реального времени.
В приведенном для примера варианте осуществления реконфигурируемая система 600 обработки может представлять собой, например, сотовый телефон или подобное беспроводное устройство, или процессор данных для использования в портативном компьютере. В среде беспроводного устройства, реализованной в соответствии с принципами радиосвязи, определенными программным обеспечением (SDR), каждый из процессоров CRISP 500а-с обеспечивает исполнение поднабора контекстно-связанных команд, которые ассоциированы с конкретной реконфигурируемой функцией. Например, процессор CRISP 500а может быть конфигурирован для исполнения контекстно-связанных команд, которые обрабатывают сигналы базовой полосы CDMA или сигналы базовой полосы OFDMA. Процессор CRISP 500b может быть конфигурирован для исполнения контекстно-связанных команд, которые действуют как контроллер памяти. Процессор CRISP 500с может быть конфигурирован для исполнения контекстно-связанных команд, которые выполняют обработку MPEG-4 для мультимедийных приложений.
Процессор CRISP согласно принципам настоящего изобретения обеспечивает новый способ реализации методов ускорения реконфигурируемых аппаратных средств. Настоящее изобретение обеспечивает реконфигурируемость и программируемость при минимальном снижении эффективности по мощности. Поскольку процессоры CRISP в сильной степени независимы и могут работать одновременно, настоящее изобретение имеет преимущество по эффективности, заключающееся в параллелизме, не влекущем за собой проблемы полной мощности, связанной с выполнением параллельных операций. Слабая связь и независимость процессоров CRISP позволяет конфигурировать их для различных систем и функций, которые могут отключаться независимым образом.
На фиг.7 представлена высокоуровневая блок-схема соответствующей множеству стандартов системы 700 радиосвязи, определяемой программным обеспечением (SDR), содержащей множество процессоров с набором команд, реконфигурируемым для основанных на контексте операций, согласно приведенному для примера варианту осуществления настоящего изобретения. Система SDR 700 может содержать беспроводный терминал (или мобильную станцию), который получает доступ к беспроводной сети, например, сотовый телефон GSM или CDMA, PDA с функциями согласно WCDMA или IEEE-802.11x и т.п.
Мультистандартная система SDR 700 содержит подсистему 701 базовой полосы, подсистемы 702 приложений, подсистему 765 интерфейса памяти и периферийных устройств, основной блок управления (MCU) 770, память 775 и средство 780 межсоединений. Блок MCU 770 может содержать, например, обычный микроконтроллер или микропроцессор (например, x86, ARM, RISC, DSP и т.д.). Подсистема 765 интерфейса памяти и периферийных устройств может соединять систему SDR 700 с внешней памятью (не показана) и с внешними периферийными устройствами (не показаны). Память 775 сохраняет данные от других компонентов в системе SDR 700 и от внешних устройств (не показаны). Например, память 775 может сохранять поток выборок входящих данных, принимаемых от внешней антенной системы и РЧ преобразователя с понижением частоты, связанных с системой SDR 700. Средство 780 межсоединений обеспечивает перенос данных между подсистемами 701 и 702, подсистемой 765 интерфейса памяти и периферийных устройств, блоком MCU 770 и памятью 775.
Подсистема 701 базовой полосы содержит контроллер 705 последовательности реального времени (RT Seq.), подсистему 715 DSP базовой полосы, средство 725 межсоединений и множество специализированных процессоров CRISP, включая процессор CRISP 500d преобразования, процессор CRISP 500е частоты следования кодовых элементов, процессор CRISP 500f частоты следования символов и процессор CRISP 500g блока манипулирования битами (BMU). Например, процессор CRISP 500d преобразования может реализовывать функцию быстрого преобразования Фурье (БПФ), процессор CRISP 500е частоты следования кодовых элементов может реализовывать корреляционную функцию для сигнала CDMA, и процессор CRISP 500f частоты следования символов может реализовывать функцию декодера Витерби.
В таком приведенном для примера варианте осуществления настоящего изобретения процессор CRISP 500d преобразования может получать выборки сигнала промежуточной частоты (ПЧ), сохраненные в памяти 775, и выполнять функцию БПФ, которая генерирует последовательность выборок кодовых элементов с частотой в базовой полосе. Затем процессор CRISP 500е частоты следования кодовых элементов получает выборки кодовых элементов из процессора CRISP 500d преобразования и выполняет корреляционную функцию, которая генерирует последовательность символов данных. Затем процессор CRISP 500f частоты следования символов получает данные символов от процессора CRISP 500е частоты следования кодовых элементов и выполняет декодирование Витерби для восстановления пользовательских данных в базовой полосе. Пользовательские данные базовой полосы могут затем использоваться подсистемой 702 приложений.
В приведенном для примера варианте осуществления настоящего изобретения процессор CRISP 500f частоты следования символов может содержать два или более процессора CRISP, которые работают параллельно. Также, например, процессор CRISP 500g блока манипулирования битами (BMU) может реализовывать такие функции, как кодирование переменной длины, проверка циклическим избыточным кодом (СRC), сверточное кодирование и т.п. Средство 725 межсоединений обеспечивает перенос данных между контроллером 705 последовательности реального времени, памятью 710, подсистемой 715 DSP базовой полосы и процессорами CRISP 500d-500g.
Подсистема 702 приложений содержит контроллер 730 последовательности команд реального времени (RT Seq.), память 735, подсистему 740 DSP мультимедийных данных, средство 745 межсоединений и макрокомандный процессор CRISP 750 мультимедийных данных. Макрокомандный процессор CRISP 750 мультимедийных данных содержит множество специализированных процессоров CRISP, включая процессор CRISP 500h MPEG-4/H.264, процессор CRISP 500i преобразования и процессор CRISP 500j BMU. В приведенном для примера варианте осуществления настоящего изобретения процессор CRISP 500h MPEG-4/H.264 выполняет функции оценивания движения, а процессор CRISP 500i преобразования выполняет функцию дискретного косинусного преобразования (ДКП). Средство 745 межсоединений обеспечивает перенос данных между контроллером 730 последовательности команд реального времени (RT Seq.), памятью 735, подсистемой 740 DSP мультимедийных данных и макрокомандным процессором CRISP 750 мультимедийных данных.
В приведенном для примера варианте осуществления, показанном на фиг.7, использование процессоров CRISP позволяет изменять конфигурацию подсистемы 702 приложений мультистандартной системы SDR 700 для поддержки множества стандартов видео с множеством профилей и размеров. Дополнительно использование устройств CRISP позволяет изменять конфигурацию подсистемы 701 базовой полосы мультистандартной системы SDR 700 для поддержки множества стандартов радиоинтерфейсов. Таким образом, система SDR 700 может работать в беспроводных сетях различных типов (например, CDMA, GSM, 802.11x и т.д.) и может воспроизводить видео- и аудиоформаты различных типов. Однако использование процессоров CRISP в соответствии с принципами настоящего изобретения позволяет системе SDR 700 выполнять эти функции при существенно меньшем потреблении мощности, чем в обычных беспроводных устройствах, имеющих сопоставимые возможности.
Более конкретно, настоящее изобретение обеспечивает блок корреляции с изменяемой конфигурацией, который может быть реализован в процессоре с набором команд, реконфигурируемым для основанных на контексте операций. Предпочтительным образом, блок корреляции, соответствующий принципам настоящего изобретения, является в высокой степени реконфигурируемым и может использоваться для различных функциональных блоков, работающих в