Данное изобретение относится к комплексным специализированным интегральным схемам, в частности к распределенной параллельной архитектуре процессора и способу конструирования, который позволит легко конструировать эти комплексные интегральные схемы.
Предшествующий уровень техники
Техника интегральных схем прошла путь в интегрировании вентилей от небольшого количества (менее ста транзисторов) до очень большого (миллионы транзисторов). В итоге можно изготавливать интегральные схемы (ИС), которые выполняют все более комплексные функции, и поэтому можно заменить большое количество дискретных компонентов, при этом получив соответствующие преимущества в размере, себестоимости и надежности. Но сложность схем и большое количество присутствующих транзисторов делают конструирование ИС более трудным. Вследствие этого в помощь конструкторам ИС для более эффективного конструирования ИС разработаны некоторые инструменты. Цель этих инструментов - облегчить для конструктора синтезирование нужного логического блока без необходимости манипулировать транзисторами или вентилями.
В архитектуре универсального процессора элементарные команды низкого уровня (такие как суммирование, умножение, сравнение и пр.) выполняют в аппаратуре, которую можно упорядочить в программированный набор команд для выполнения комплексной функции. Такая архитектура ограничена пропускной способностью, которую можно обеспечить центральным процессором (ЦП), который должен соответствовать требованиям максимальной пропускной способности для ряда операций. Это ограничение подчас предъявляет большие требования к аппаратуре и приводит к недостаткам использования сконструированной аппаратуры. Кроме этого, в такой архитектуре с централизованным управлением обычно трудно управлять электропотреблением.
Для конструирования с целью увеличения пропускной способности с рентабельным исполнением аппаратуры конструкторы нередко предпочитают пользоваться методикой конструирования специализированных интегральных схем, жертвуя гибкостью конструкции системы, предложенной постсинтезной программируемостью.
В помощь конструкторам ИС разработано два предложения: техника "стандартного логического элемента" и техника "вентильной матрицы". Эта техника изложена в общем в патентах США NN 5119314 (Хотта и др.); 5173864 (Ватанабе и др.); 5197016 (Сугимото и др.) и 5283753 (Шукер и др.). В способе "стандартного логического элемента" часто используемые логические блоки тщательно конструируют и хранят в библиотеке логических элементов. Для обеспечения нужных функций конструкторы могут выбирать и взаимосвязывать соответствующие логические блоки. Обычно эти блоки являются элементарными логическими структурами, такими как вентили И-НЕ либо ИЛИ-НЕ, или другими простыми логическими блоками, такими как сумматор или умножитель. Логические блоки можно связывать между собой проводами маршрутизации между соответствующими входами/выходами блоков.
Способ "вентильной матрицы" предполагает изготовление большого количества базовых полупроводниковых пластин, содержащих идентичные элементы (вентили) интегральной схемы до, но не включая, первого уровня электропроводного межсоединения. Конструкторы ИС "выполняют на заказ" вентильную матрицу путем определения только рисунков схемных соединений, которые используют для соединения между собой готовых вентилей.
Одна из проблем обоих этих способов заключается в том, что их трудно применять для конструирования ИС, которые выполняют усложненные функции. Причина в том, что стандартные логические элементы и вентильные матрицы являются элементарными или простыми логическими блоками для всех типов использования. Следовательно, для интегрирования этих основных блоков в нужные специализированные интегральные схемы требуются много времени, большое умение и большой объем работы. Кроме этого, ограничения по времени и компоновке и конструкторская работа, необходимые для осуществления соединений этих логических блоков, как правило, ограничивают свободу действия конструкторов и увеличивают сроки конструирования.
В качестве примера: схемы, используемые для применения в связи, обычно выполняют комплексные операции обработки сигнала. Примерами этих схем являются фильтры с импульсной характеристикой бесконечной длительности, фильтры с импульсной характеристикой конечной длительности, демодуляторы и корреляторы. Эти схемы включают в себя сложные математические алгоритмы, которые могут понять и сконструировать только чрезвычайно квалифицированные инженеры. Вследствие этого выполнение этих схем с помощью элементарных блоков, имеющихся в способах стандартного логического элемента и вентильной матрицы, является утомительным делом.
Некоторые ограничения по компоновке, связанные с конструированием комплексных интегральных схем с помощью конструкторских способов стандартного логического элемента и вентильной матрицы, описываются у Шукера и др. Способ конструирования интегральных схем с блочной архитектурой, описываемый в этом патенте, позволяет повторно использовать заранее разработанные логические блоки, но не решает проблему сложности осуществления соединения между собой различных логических блоков. Помимо этого, описываемый способ конструирования интегральных схем не предусматривает управление электропотреблением, которое является важным фактором для комплексных ИС с большим количеством вентилей.
Некоторые изготовители электронных систем для решения указанной проблемы следуют совершенно иной стратегии. Вместо того, чтобы исходить из сконструированных на заказ ИС, они используют универсальные ИС, такие как микроконтроллеры и процессоры цифровых сигналов. Эти ИС могут выполнять в секунду большое число команд. Для приведения функций этих ИС в соответствие с заказанными функциями обычно применяют средства программного обеспечения.
Одна из проблем применения этих универсальных ИС заключается в том, что они не могут обеспечить пропускную способность, сравнимую со специализированными ИС. Во многих случаях, где самым важным фактором является скорость обработки, например в системах связи высокой скорости, рабочие характеристики универсальных ИС не приемлемы. Кроме этого, использование средств программного обеспечения не устраняет необходимости выведения усложненного алгоритма обработки чрезвычайно квалифицированными инженерами.
Сугитомо и др. раскрывают автоматизированную систему и способ конструирования специализированных интегральных схем, содержащих множество логических блоков, соединенных вместе множеством шин данных, адресных шин и управляющих шин. Этот способ конструирования имеет несколько недостатков. Во-первых, в нем отсутствует возможность выполнения постсинтезного программирования для логических блоков, синтезированных в аппаратурные блоки программной автоматической компоновки кремниевых ИС, а именно - элементарные функции поддержки, такие как компараторы, сумматоры и счетчики, которые включают в блоки для увеличения пропускной способности системы.
Помимо этого, потребности сложных алгоритмов в обработке все же выполняются в средствах программного обеспечения и поэтому для комплексной системы требуется квалифицированный конструктор. И также, описываемый Сугитомо и др. метод конструирования интегральных схем не предусматривает управление питанием.
Поэтому необходимы специализированная интегральная схема с блочной архитектурой и способ конструирования, который позволит эффективно заключить специализированную комплексную обработку в функциональные блоки, которые можно повторно использовать от одной конструкции к другой, но которые могут быть программируемыми постсинтезно, чтобы удовлетворять потребности развития, совершенствования и расширения функциональных возможностей специализированного применения с эффективной по электропотреблению конструкцией интегральной схемы.
Раскрытие изобретения
Изобретение содержит специализированный процессор (СП) (который можно выполнить на одном кристалле) и способ конструирования с использованием специализированного набора команд, где каждая команда определяет функцию высокого порядка обработки и для определенного класса применений. Обработка требует конкретного класса применения (напр. , средства связи), который сначала анализируют и группируют в операции и алгоритмы обработки, наиболее часто используемые данным применением, в функциональные блоки, чтобы взять в один функциональный блок высококомплексный и часто используемый тип преобразования данных. Каждый функциональный блок соответствует какой-либо одной специализированной команде данного набора команд. Эти специализированные команды выполняют в качестве аппаратных функциональных блоков, которые взаимосвязывают многоцелевой шиной. При использовании взаимно соединенные аппаратурные функциональные блоки упорядочивают согласно разработанной конструктором программе команд, чтобы осуществлять конкретное применение. Во многих функциональных блоках значения определенных параметров алгоритмов обработки, выполненных блоками, определяют с помощью регистров, которые можно программировать одним из множества возможных значений. Поэтому каждый функциональный блок конструктор может рассматривать как параметрически программируемую высокого порядка специализированную операцию или команду.
Каждый из этих функциональных блоков содержит множество простых элементов обработки низкого порядка, которые скомпонованы и сгруппированы для формирования специализированной операции высокого уровня. Поскольку каждый из этих функциональных блоков является операцией высокого порядка для конкретного применения, то эти функциональные блоки можно считать "синтаксисом" специализированного языка, то есть функциональные блоки содержат части кода, применяемого в прикладном языке для программирования работы СП. Далее по тексту функциональные блоки, используемые в системе и способе данного изобретения, называются взаимозаменяемыми "прикладным синтаксисом" или "прикладным элементом". Каждый прикладной синтаксис в библиотеке также содержит блок интерфейса для сопряжения функционального блока с многоцелевой шиной.
Прикладной синтаксис можно рассматривать как строительные блоки интегральной схемы, которые заранее сконструированы, выполнены и оптимизированы для целевой технологии (например, конкретная технология микроэлектронной интеграции, такая как КМОП-структура).
Готовые сконструированные специализированные функциональные блоки (прикладной синтаксис) группируют в библиотеку конструирования следующим образом, чтобы облегчить процесс конструирования СП данного изобретения. Сначала конструктор анализирует условия конструирования для специализированного применения и описывает их как подмножество специализированных блоков, выбранных из библиотеки, как если бы он писал программу с помощью специализированных команд. Выбранные функциональные блоки затем взаимно соединяют стандартным интерфейсом многоцелевой шины, встроенной в каждом функциональном блоке. Затем эту интегральную конструкцию можно синтезировать в программируемую интегральную схему СП. Постсинтезная подгонка синтезированной интегральной схемы СП выполняется с помощью программы команд, которая последовательно вызывает каждый специализированный функциональный блок и обеспечивает каждый функциональный блок командами переконфигурирования или маршрутизации входа/выхода данных. Встроенное средство управления электропотреблением включено в конструкцию каждого специализированного функционального блока, благодаря которому большинство логики функциональных блоков может быть включено только в течение времени, требуемого для выполнения принятой команды вызова.
Конструкция СП согласно данному изобретению упрощена языком программирования высокого порядка, благодаря которому конструктор может преобразовать уровневые потребности системы непосредственно в исполнение СП, не обладая глубоким знанием сложных алгоритмов каждого прикладного синтаксиса. С помощью этого языка согласно изобретению СП можно конструировать простой программой, которая определяет взаимосвязь между различными прикладными синтаксисами, параметрами каждого прикладного синтаксиса, включая местоположение ввода и вывода, конфигурацию и время, когда в соответствии с тактовыми импульсами многоцелевой шины вызывают каждый прикладной синтаксис. Параметры, которые не определены, устанавливают на заданные значения по умолчанию.
Архитектуру и способ конструирования СП согласно данному изобретению можно использовать для конструирования очень разнообразных изделий. Например, если в библиотеке есть прикладной синтаксис, относящийся к системе связи, его можно использовать для конструирования изделий для сотовых телефонов, местных беспроводных сетей связи, персональных сетей связи и цифровых кабельных сетей связи. Поэтому затраты на конструирование прикладного синтаксиса могут окупить многие пользователи библиотеки.
Способ данного изобретения также предусматривает упрощенную, высокого уровня, методику конструирования для СП. Каждый прикладной синтаксис можно рассматривать как "черный ящик" с заданными характеристиками входа и выхода. Поэтому конструктору не нужна библиотека, чтобы глубоко понимать, как выполнять эти специализированные комплексные функции. Конструктору нужно только работать со строительными блоками системного уровня или прикладным синтаксисом. Гораздо легче и быстрее конструировать системы с помощью этих прикладных синтаксисов, чем исполнять одно и то же функциональное назначение, выбирая, компонуя и соединяя стандартные логические элементы или осуществляя межсоединения тысяч вентилей. Поэтому затраты и сроки доведения продукции до коммерческого состояния при таком конструировании значительно снижаются.
Помимо этого, СП и способ конструирования снижают затраты на усовершенствование и развитие продукции. С помощью раскрытых в данном изобретении архитектуры СП, библиотеки прикладных синтаксисов и способа конструирования довольно легко изменять и дополнять свойства продукции путем удаления и введения прикладного синтаксиса и последующего нового синтезирования нового варианта специализированной интегральной схемы. Нет необходимости повторного конструирования всей системы. Кроме этого, в результате постсинтезной программируемости, которая присуща конструкции каждого прикладного синтаксиса, усовершенствовать продукцию можно перепрограммированием выполненного СП, не нуждаясь при этом в повторном синтезировании. Поэтому резко снижаются затраты на усовершенствование и развитие.
Взаимосвязь между прикладным синтаксисом в соответствии с данным изобретением допускает слабую связь при использовании единой многоцелевой шины, в результате чего набор прикладных синтаксисов может действовать асинхронно. Каждый прикладной синтаксис на многоцелевой шине можно вызывать одновременно (параллельная обработка) либо разносить во времени (конвейерная обработка). Помимо этого, прикладной синтаксис вводят в действие только тогда, когда необходима функция обработки. Поскольку использование питания для прикладного синтаксиса зависит только от того, задействован он или нет, то это свойство позволяет иметь встроенное эффективное управление электропотреблением.
Многоцелевую шину используют как для переноса команд, так и переноса данных. Команды и данные соединяют попарно таким образом, что их перемещают одновременно одним обращением к многоцелевой шине. Число слоев в шине, предназначенной для команд и данных, может изменяться в каждом обращении. Это свойство "подвижной границы" позволяет увеличить до максимума производительность многоцелевой шины.
Архитектура данного изобретения также позволяет осуществлять распределенное управление, благодаря которому каждый прикладной синтаксис может генерировать и отправлять команды и данные другому прикладному синтаксису. Поэтому центральный контроллер не нужен. Этот способ распределенного управления дает возможность эффективного выполнения высокоупорядоченной во времени многорежимной специализированной обработки. Архитектура данного изобретения также позволяет использовать прикладной синтаксис для управления работой нескольких других прикладных синтаксисов в СП. Когда один прикладной синтаксис становится центральным контроллером для группы других синтаксисов применения, управляемые прикладные синтаксисы называют "кластером" прикладных синтаксисов. Таким образом, прикладные синтаксисы, которым нужна большая пропускная способность интерфейса, можно взаимно соединить как группу с одним физическим интерфейсом, который является отдельным от указанной выше многоцелевой шины. Такое группирование прикладного синтаксиса в кластер дает возможность отрегулировать пропускную способность интерфейса межсоединения, чтобы согласовать ее с полосой потока данных в интегральной схеме. Благодаря этому можно избежать перегруженности потока данных.
Одна из областей применения прикладного синтаксиса - цифровая связь. Прикладные синтаксисы содержат усложненные алгоритмы, такие как цифровые фильтры, корреляторы, демодуляторы, исправление ошибок и пр. В архитектуре данного изобретения конструктору системы связи не нужно вникать в подробности этих алгоритмов. Конструктор просто интегрирует вместе соответствующие прикладные синтаксисы для разной продукции: такой как модемы с расширенным спектром, скачкообразной перестройкой частоты и множественным доступом с разделением во времени.
Краткое описание чертежей
В дальнейшем изобретение поясняется конкретным вариантом его воплощения со ссылками на сопровождающие чертежи, на которых
фиг. 1 изображает специализированную архитектуру согласно изобретению;
фиг. 2 изображает логический блок обращения интерфейса в прикладном синтаксисе согласно изобретению;
фиг. 3 - логический блок введения в действие генератора тактовых импульсов в прикладном синтаксисе согласно изобретению;
фиг. 4 - логический блок прикладного синтаксиса в прикладном синтаксисе согласно изобретению;
фиг. 5 - блок-схему способа конструирования СП согласно изобретению;
фиг. 6 - блок-схему модема, выполненного с помощью специализированной архитектуры в области связи, согласно изобретению;
фиг. 7 - схему потока данных модема на фиг. 6 согласно изобретению;
фиг. 8 - схему хронирования, изображающую конвейерную обработку в модеме, согласно изобретению.
Другие аспекты и преимущества данного изобретения станут очевидными из следующего описания изобретения в совокупности с прилагаемыми чертежами и таблицами.
Подробное описание изобретения
Данное изобретение представляет собой процессор и способ его конструирования, в котором множество функциональных элементов, каждый из которых предназначен для выполнения конкретной функции, соединяют между собой для совместного выполнения задания. Контекст построения, в котором объединены эти функциональные элементы, и упорядоченное группирование функциональных элементов для выполнения зависимой от данного вида применения задачи в настоящем описании назван специализированным процессором (СП).
На фиг. 1 показаны схема 100 СП согласно изобретению, шина 110 команд/данных/хронирования и множество прикладных синтаксисов, таких как прикладные синтаксисы 111, 112 и 113. Эти прикладные синтаксисы могут быть разными либо некоторые из них могут быть одинаковыми. Сообщение между прикладными синтаксисами выполняют по шине 110 команд/данных/хронирования.
Каждый прикладной синтаксис содержит по сути одинаковые схемы для сопряжения с шиной 110 команд/данных/хронирования. Поэтому подробно описаны схемы интерфейса только одного прикладного синтаксиса 111. Прикладной синтаксис 111 содержит логический блок 121 приведения в действие (запуска) генератора тактовых импульсов, логический блок 123 обращения к интерфейсу и логический блок 125 прикладного синтаксиса. Логический блок 125 прикладного синтаксиса выполняет заданную функцию. Показано, что логический блок 125 прикладного синтаксиса работает на пользовательских данных, которые направляют к прикладному синтаксису 111 по двустороннему пути, который называется внешней линией интерфейса 131. Логический блок 121 приведения в действие генератора тактовых импульсов и логический блок 123 обращения к интерфейсу сопрягают логический блок 125 прикладного синтаксиса с шиной 110 команд/данных/хронирования. Логический блок 121 приведения в действие генератора тактовых импульсов подает на логический блок 125 прикладного синтаксиса сигналы хронирования и включает логический блок 125 прикладного синтаксиса только тогда, когда это необходимо. Логический блок 123 обращения к интерфейсу разрешает логическому блоку 125 прикладного синтаксиса принимать команды и данные от и отправлять команды и данные к другим прикладным синтаксисам через шину 110 команд/данных/хронирования.
В архитектуре 100 СП структуры блока 121 приведения в действие тактовых импульсов и логического блока 123 обращения к интерфейсу в каждом прикладном синтаксисе по сути одинаковые, хотя некоторые особые компоненты, такие как адрес прикладного синтаксиса, различны. Некоторые компоненты в логическом блоке 125 прикладного синтаксиса являются также общими для всех прикладных синтаксисов, например компоненты сопряжения с блоком 121 приведения в действие тактовых импульсов и логическим блоком 123 обращения к интерфейсу. Но схемы в прикладном синтаксисе, которые выполняют определенные функции обработки данных и сигналов, могут быть разными (например, один прикладной синтаксис функционирует как демодулятор, другой - как коррелятор и пр.). Кратко, прикладной синтаксис может выполнять разные функции, но части прикладного синтаксиса для сопряжения с шиной 110 команд/данных/хронирования по существу одинаковы. Поэтому прикладные синтаксисы могут сопрягаться друг с другом с помощью шины 110 команд/данных/хронирования.
На фиг. 2 подробно показана блок-схема логического блока 123 обращения к интерфейсу. Логический блок 123 обращения к интерфейсу содержит декодер 140 адреса, подключенный к командам/данным в блоке 142, и блок 121 приведения в действие тактовых импульсов. Декодер 140 адреса принимает адресные сигналы от шины 150 команд/адреса и указывает данным/командам в блоке 142 и логическом блоке 121 приведения в действие генератора тактовых импульсов принять адресуемые для прикладного синтаксиса 111 команды и данные. Шина 150 команд/данных является частью шины 110 команд/данных/хронирования. Команды и данные, обработанные командами/данными в блоке 142, отправляют к логическому блоку 125 прикладного синтаксиса. Логический блок 123 обращения к интерфейсу также содержит блок 144 вывода команд/данных и блок 148 вывода адреса. Эти два блока передают информацию команд, данных и адресов, выработанную логическим блоком 125 прикладного синтаксиса, к шине 150 команд/данных. Логический блок 123 обращения к интерфейсу также содержит схему 146 обращения к шине, которая подключена к блоку 144 вывода команд/данных и блоку 148 вывода адреса.
Два блока 142 и 144 команд/данных работают на формате ввода/вывода, который состоит из пары команды и данных, причем и то и другое имеет изменяющийся размер. Совокупный размер команды и данных основывается на операционных потребностях логики специализированного синтаксиса. Указанное попарное группирование команды и данных имеет подвижные границы, которые позволяют максимально увеличить производительность физического интерфейса, например шины 110 команд/данных/хронирования.
Поскольку структура логического блока 123 обращения к интерфейсу одинакова для всех прикладных синтаксисов, один прикладной синтаксис может направить команды и данные другому прикладному синтаксису по шине 110 команд/данных/хронирования. Этот способ "приводимого с помощью данных" распределенного управления делает возможным эффективное выполнение высокоупорядоченной во времени специализированной многорежимной обработки. Таким образом, нет необходимости ограничивать способ управления полностью центрально управляемым способом. Для оптимального соответствия потребностям нужного применения можно применять распределенное управление, централизованное управление или комбинированный способ управления. Возможности прикладного синтаксиса генерировать команды для другого прикладного синтаксиса позволяют прикладному синтаксису становиться центральным контроллером для группы других прикладных синтаксисов, которые названы кластером прикладных синтаксисов.
Еще одно преимущество изобретения заключается в том, что шина 110 команд/данных/хронирования скрыта от логики прикладного синтаксиса (т.е. логике прикладного синтаксиса не нужно знать подробности работы шины). Таким образом, конструктору определенной функции для прикладного синтаксиса не нужно знать, как работает шина, и поэтому можно получить экономию.
На фиг. 3 показана блок-схема логического блока 121 приведения в действие генератора тактовых импульсов. Логический блок 121 приведения в действие генератора тактовых импульсов содержит регистр 211 состояния команды, который получает сигнал входа от шины 151 хронирования, шины 150 команд/данных и декодера 140 адреса логического блока 123 выборки интерфейса. Шина 153 хронирования является частью шины 110 команд/данных/хронирования и обычно содержит множество сигналов генератора тактовых импульсов, переносимых на разных уровнях.
Регистр 211 состояния команд принимает соотнесенные по времени команды и данные, которые адресованы к прикладному синтаксису 111. Регистр 211 состояния команд использует эти команды и данные для определения значения выбора мультиплексора и значения периода по модулю. Значение выбора мультиплексора направляют к мультиплексору 213 по совокупности линий 214 выбора мультиплексора, чтобы мультиплексор 213 смог выбрать нужный генератор тактовых импульсов (или период) из шины 153 хронирования. Значение периода по модулю направляют к логическому блоку 217 команд, и оно определяет в нем модуль, т.е. количество периодов, отсчитываемых до включения вентильного генератора тактовых импульсов, как описано ниже.
Выход мультиплексора 213 подключен к таймеру 215 активности. Таймер 215 активности также принимает сигнал "счет" от логического блока 217 команд по линии 227. Этот сигнал счета соответствует указанному выше значению периода по модулю в логическом блоке 217 команд. Таймер 215 активности использует этот сигнал счета для отсчета периодов, выбранных регистром состояния команд, и направляет "полный" сигнал по линии 225 к логическому блоку 217 команд. Логический блок 217 команд затем включает вентильный генератор тактовых импульсов и генерирует пусковой сигнал, синхронный с вентильным генератором тактовых импульсов. Пусковой сигнал и вентильный генератор тактовых импульсов связывают с логическим блоком 125 прикладного синтаксиса по линиям 219 и 221 соответственно. Логический блок 217 команд также содержит схемы, которые позволяют включать и выключать вентильный генератор тактовых импульсов по командам от регистра 211 состояния команд.
Логический блок 121 приведения в действие генератора тактовых импульсов обусловливает включение логического блока 125 прикладного синтаксиса в конкретных случаях определенного периода хронирования, например логический блок 121 приведения в действие генератора тактовых импульсов можно конфигурировать для включения логического блока 125 прикладного синтаксиса в заданные периоды и выключать вентильный генератор тактовых импульсов во время простоев, тем самым ограничивая рассеяние мощности прикладного синтаксиса 111. Далее логический блок 121 приведения в действие генератора тактовых импульсов разрешает самостоятельную работу прикладного синтаксиса на основе периодов хронирования, распределенных по системе. Таким образом, в результате того, что каждому прикладному синтаксису разрешают включаться только тогда, когда нужно вызвать его функцию, то временное упорядочение обработки данных и эффективное управление электропотреблением становятся присущими аспектами этой схемы.
На фиг. 4 показана блок-схема логического блока 125 прикладного синтаксиса. Логический блок 125 прикладного синтаксиса содержит логический блок 256 прикладной функции, который выполняет заданные функции, являющиеся специальными для данного прикладного синтаксиса, такие как преобразование пользовательских данных, направленных по линии 131 внешнего интерфейса. То есть блок 256 прикладной функции содержит схемы, которые не являются частью интерфейсной структуры, общей для всех прикладных синтаксисов. Логический блок 125 прикладного синтаксиса также содержит блок 252 мультиплексора/демультиплексора команд/данных, который принимает команды и данные от логического блока 123 выборки интерфейса и сигнал вентильного генератора тактовых импульсов от логического блока 121 приведения в действие генератора тактовых импульсов. Логический блок 252 мультиплексора/демультиплексора команд/данных извлекает команды для доставки к логическому блоку 254 команд/декодирования и данные для двустороннего сообщения с логическим блоком 256 прикладной функции, принятые от логического блока 123 выборки интерфейса.
Логический блок 254 команд/декодирования можно рассматривать как контроллер логического блока 125 прикладного синтаксиса. Он управляет работой логического блока 256 прикладного синтаксиса по линии 262. То есть, логический блок 254 команд/декодирования получает команды от логического блока 123 выборки интерфейса по блоку 252 мультиплексора/демультиплексора команд/данных, интерпретирует эти команды и управляет действием логического блока 256 прикладной функции. Пример действий: (1) конфигурирование логического блока 256 прикладной функции и (II) вызов отдельного заранее определенного преобразования пользовательских данных, направленных линией 131 внешнего интерфейса. По завершении команды логический блок 256 прикладной функции направляет "полный" сигнал к логическому блоку 254 команд/декодирования по линии 264.
Как объяснялось выше, пусковой сигнал на 219, принятый логическим блоком 254 команд/декодирования, используют для синхронизации вызова логического блока 256 прикладной функции. Логический блок 254 команд/декодирования также генерирует сигнал "сделано" и передает его по линии 220 к логическому блоку 121 приведения в действие генератора тактовых импульсов, который в свою очередь выключает вентильный генератор тактовых импульсов логическому блоку 254 команд/декодирования, логическому блоку 256 прикладной функции и блоку 252 мультиплексора/демультиплексора команд/данных. Выключение вентильного генератора тактовых импульсов для этих блоков по сути выключает их. Наоборот, включение вентильного генератора тактовых импульсов включает их.
Как указано выше, логический блок 256 прикладной функции в прикладном синтаксисе специально сконструирован для выполнения заданной функции. Каждый прикладной синтаксис определяет особую функцию применения, которая заранее сконструирована, выполнена и оптимизирована для нужной технологии, например для конкретной технологии микроэлектронного интегрирования. Набор прикладных синтаксисов, которые выполняют разные функции преобразования данных и сигналов, можно поместить в библиотеку. Когда необходимо сконструировать систему для определенного применения (например, модем для беспроводной связи), соответствующий прикладной синтаксис выбирают из библиотеки и помещают на шине команд/данных/хронирования, чтобы они смогли выполнять нужную функцию.
В варианте, представленном на фиг. 1-4, аргументы команды передают по шине 150 команд/данных и обрабатывают логическим блоком 123 выборки интерфейса и логическим блоком 121 приведения в действие генератора тактовых импульсов. Аргументы времени передают по шине 153 хронирования и обрабатывают в основном логическим блоком 121 приведения в действие генератора тактовых импульсов.
Архитектура СП позволяет вызывать набор прикладных синтаксисов одновременно (параллельная обработка), с разнесением во времени (конвейерная обработка) или последовательно во времени (обработка без перекрытия операций). Эта особенность обеспечивает значительную гибкость при выборе конструкций системы. Одновременные вызовы (параллельная обработка) позволяет реализовать высокую пропускную способность обработки данных. Разнесенные во времени вызовы (конвейерная обработка) или последовательные во времени вызовы (обработка без перекрытия операций) позволяют одному прикладному синтаксису действовать как предпроцессор для другого прикладного синтаксиса. Аргумент времени (Т) каждого прикладного синтаксиса определяет выравнивание периодов вызова для реализации наиболее производительной обработки в отношении другого прикладного синтаксиса.
Соответствующие прикладные синтаксисы выбирают из библиотеки, содержащей полную совокупность имеющихся прикладных синтаксисов. Такое конструирование позволяет взаимно соединить любой набор прикладных синтаксисов в полностью связанной топологии, которая допускает поток данных между любыми двумя прикладными синтаксисами. Это межсоединение основано на слабой связи, благодаря чему набор прикладных синтаксисов может действовать асинхронно.
Способ конструирования для ИС СП согласно изобретению далее описывается со ссылкой на фиг. 5. Во-первых, требования обработки для нужной продукции анализируют и разлагают на основные специализированные процессы, такие как фильтрация, демодуляция, обращенное перемежение и пр. для случая с продукцией средств связи - процесс 10. Затем в библиотеке блоков 12 специализированной функции производят поиск для распознавания подмножества прикладных синтаксисов, соответствующих для выполнения заданных потребностей обработки - процесс 14. Если определено, что новая или особая специализированная функция обработки не содержится в библиотеке, то эти новые или особые потребности специализированной обработки выполняют с помощью языка описания аппаратных средств (ЯОАС) в прикладной синтаксис, который включает указанный выше интерфейс с многоцелевой шиной СП - процесс 16. Вновь сконструированный ЯОАС прикладного синтаксиса вместе с ЯОАС готовых прикладных синтаксисов, распознанных в библиотеке, интегрирует для образования ЯОАС нужной ИС СП - процесс 18.
Моделирование поведенческого уровня выполняют в процессе 20, чтобы проверить, отвечают ли внутренние и внешние интерфейсы техническим требованиям конструирования. Одновременно с моделированием поведенческого уровня, проведенного в процессе 20, составляют прикладную программу команды, которую можно использовать для упорядочения действия выбранного прикладного синтаксиса в целях выполнения требования обработки нужной специализированной интегральной схемы - процесс 24. Затем интегрированный ЯОАС синтезируют соответствующим средством автоматизированного конструирования синтеза специально для технологии, выбранной для выполнения СП, - процесс 22. В процессе 26 получившуюся в результате этого логику затем комбинируют с прикладной программой команд, составленной в процессе 24 и моделированной на вентильном уровне для проверки соответствия нужным специализированным требованиям. По завершении адекватного моделирования логики вентильного уровня конструкцию выпускают для компоновки и изготовления специализированной ИС - процесс 28.
Библиотеку прикладного синтаксиса можно рассматривать как сборник команд в языке программирования. Пользователь может выбрать соответствующее подмножество команд из библиотеки для выполнения программируемого СП, который соответствует запланированному применению. Набор команд можно отрегулировать в соответствии с конкретными требованиями обработки для нужного применения, например для цифровой связи. Архитектура СП является архитектурой, в которой команды в наборе можно комбинировать для совместной работы, чтобы выполнять определенное применение. Отдельные элементы этого прикладного набора команд конструируют таким образом, чтобы взять высококомплексный, но часто используемый тип преобразования данных в один "синтаксис", который можно адресовать в качестве элементарной команды на прикладном уровне. Этот тип синтаксиса называют "прикладным синтаксисом" или "прикладным элементом", как указано выше. Примерами физического осуществления этих синтаксисов являются прикладные синтаксисы 111, 112 и 113, которые упомянуты выше.
В архитектуре СП прикладной синтаксис вызывают двумя наборами основных аргументов, а именно команды (С) и времени (Т). В терминологии, аналогичной программированию средств программирования, структурой синтаксиса является "Syntax (С, Т)". Каждый синтаксис при вызове преобразует заданный порядок расположения ввода, структуру данных и/или команды и выход с помощью преобразования. С помощью аргумента команды (С) синтаксиса можно установить определенные параметры управления, встроенные в прикладной синтаксис, на заданные значения и в силу этого изменять выполняемое прикладным синтаксисом преобразование от одного вызова к другому, не изменяя тип выполняемого функционального преобразования. Например, в Специализированном Процессоре Связи (СПС) прикладной синтаксис можно определить как функцию фильтра с аргументом команды, который позволяет полосе фильтра изменяться. Временной (Т) аргумент синтаксиса дает возможность вызывать прикладной синтаксис в конкретные временные периоды, когда значение аргумента (Т) задает время, в которое нужно вызвать прикладной синтаксис, или период времени между последовательными вызовами. В аппаратном выполнении каждый синтаксис при вызове преобразует заданный определенный порядок ввода, структуру данных и/или команды в выход при помощи специализированного преобразования. Аргументом команды (С) в синтаксисе можно установить определенные параметры управления, встроенные в прикладной синтаксис, на заданные значения и в силу этого изменять выполняемое прикладным синтаксимом преобразование от одного вызова к другому, не изменяя тип выполняемого функционального преобразования. Например, в Специализированном Процессоре Связи (СПС) прикладной синтаксис можно определить как функцию фильтра аргументом команды, который позволяет полосе фильтра изменяться. Временной (Т) аргумент синтаксиса дает возможность вызвать прикладной синтаксис в конкретные временные эпохи, когда значение аргумента (Т) задает время, в которое нужно вызвать прикладной синтаксис, или период времени между последовательными вызовами.
В соответствии с принципами данного изобретения СП можно программировать как на предсинтезном, так и постсинтезном этапах конструирования. Общий процесс конструирования, который охватывает анализ требований, функциональную декомпозицию, поиск в библиотеке прикладного синтаксиса, интеграцию прикладного синтаксиса и пр., был описан подробно. Предсинтезная программируемость относится, в частности, к программируемости встроенных средств, которые дают конструктору интегральной схемы возможность еще точнее выполнить конструирование каждого функционального блока в соответствии с заказом путем адаптирования ЯОА-модели функционального блока. Приводимые в качестве примера свойства, которые являются программируемыми или до или после синтеза, сведены в табл. 1 в контексте демодулятора фазовой манипуляции. Специалисту в данной области очевидно, что некоторые свойства можно выполнить программируемыми до или после синтеза, а другие предпочтительно выполнять на одном этапе, но не на другом (например, в модеме использование двухфазной манипуляции по сравнению с четырехфазной предпочтительно предполагает предсинтезное программирование, в то время как скорость передачи в бодах модемом - постсинтезное). Выполнение предсинтезной программируемости можно осуществить просто высокомодулярной и комментированной компоновкой модели ЯОАС, чтобы можно было откомментировать нежелательные функциональные возможности и добавить заказанные функциональные возможности. Либо, в усложненном варианте, признаки и макроопределения предварительного компилятора можно использовать для управления вызовом определенной функциональности путем установки отдельных параметров.
В данном варианте осуществления прикладного процессора такие характеристики многоцелевой шины, как ширина шины или скорость тактирования, можно программировать предсинтезно для выполнения требований специализированного применения. В результате этого конструктор интегральной схемы сможет оптимизировать многоцелевую шину, тем самым создав возможность выполнения эффективного количества вентилей.
В конструкции каждого функционального блока предусмотрено, что значения определенных параметров алгоритмов обработки в конструкции каждого функционального блока выполняют с помощью регистров, которые можно программировать на любые нужные значения. Размер этих регистров и соответственно диапазон программируемых значений каждого регистра можно программировать предсинтезно для соблюдения требований специализированного применения. В итоге это свойство предсинтезной программируемости дает, как указано выше, конструктору интегральной схемы возможность оптимизировать постсинтезную программируемость конструкции сообразно нуждам специализированного применения, благодаря чему имеется дополнительное преимущество выполнения конструкции с меньшим количеством вентилей.
Также скорость сигналов хронирования внутри универсальной шины можно программировать предсинтезно сообразно потребностям специализированного применения. Это также позволяет конструктору оптимизировать количество вентилей согласно потребностям конкретного применения.
В постсинтезном отношении архитектура специализированного процессора данного изобретения также допускает программируемость перемещения данных между двумя функциональными блоками. Таким образом, каждый функциональный блок можно программировать адресом памяти ввода и вывода данных в качестве неотъемлемой части команд каждого блока.
Как указано выше, значения определенных параметров алгоритмов обработки выполняют с помощью регистров, которые можно программировать любыми нужными значениями. Поэтому каждый функциональный блок можно рассматривать как параметрически программируемую высокоупорядоченную специализированную операцию или команду. Благодаря этому специализированный процессор можно постсинтезно программировать для регулировки производительности по обработке каждого функционального блока согласно непосредственным потребностям конкретного применения.
Кроме этого, каждый функциональный блок можно постсинтезно программировать для управления временем его вызова по сигналу хронирования, направляемому к функциональному блоку по многоцелевой шине.
Также одной из характеристик конструкции каждого специализированного функционального блока является возможность затворять сигнал тактирования между последовательными вызовами. Поэтому архитектура специализированного процессора фактически дает возможность программировать сигнал хронирования для каждого функционального блока и для периода включения/выключения, и для периода вызова.
Вследствие характеристики движущейся границы многоцелевой шины эту многоцелевую шину можно рассматривать как программируемую постсинтезно для адаптирования пропускной способности, требуемой для перемещения данных и команд между межсоединенными функциональными блоками. Поскольку каждый функциональный блок в специализированном процессоре может иметь разные размеры структуры данных и команд, вызов функциональных блоков в соответствии с последовательностью программированных команд фактически является программированием многоцелевой шины в реальном времени в целях выполнения потребностей интегральных функциональных блоков в отношении данных и команд.
В качестве примера постсинтезной программируемости в данном осуществлении команду "FILTER" можно конфигурировать для обработки данных следующим образом:
FILTER (IN= α receiveol-signal-sample-bus, OUT= α fietered-signal-bus, TYPE=FIR, NCOEF=Num-Coef, COEF=MF_Coef, TIME=Burst_CLK).
Первые два аргумента команды FILTER устанавливают связность фильтра. Первый аргумент соединяет вход фильтра с шиной принятого сигнала, а второй аргумент соединяет выход фильтра с шиной фильтрованного сигнала. Функция фильтра примет свои входные данные с шины принятого сигнала и запишет полученные таким образом выходные данные на шине фильтрованного сигнала, указанной на фиг. 6. Следующие три аргумента дают команду функциональному блоку FILTER выполнить фильтр с Конечной Импульсной Характеристикой (КИХ) с коэффициентами фильтра Num-Coef. Num-Coef является постоянной конкретного задания, либо приведением, которую устанавливают в базе данных задания. База данных задания может определять такое приведение, как данные, запомненные в определенном адресе в постоянном запоминающем устройстве (ПЗУ) констант, либо конфигурируемые пользователем данные в запоминающем устройстве с произвольной выборкой (ЗУПВ). Последний аргумент команды FILTER дает команду функциональному блоку фильтра вызвать период генератора тактовых импульсов пакетов, который обеспечивает шина команд/данных/хронирования.
Параметры, не указанные прямо в объявлении команд, устанавливают на значения по умолчанию. Параметры по умолчанию для каждого прикладного синтаксиса могут включать в себя ширину внутренней шины, рабочую скорость, конфигурацию архитектуры и разные варианты конфигурации/управления. Например, команду FILTER можно полностью конфигурировать с помощью значений по умолчанию без прямо определенных параметров. В этом варианте команда FILTER в программе будет иметь следующий вид: FILTER0.
В одном из вариантов осуществления команды составляют и запоминают в синтаксисе совместно используемой памяти, которая, как указано ниже, может содержать ЗУПВ, при этом программу загружают в СП при включении питания. В другом варианте осуществления синтаксис совместно используемой памяти может содержать ПЗУ вместо ЗУПВ или даже дополняя ЗУПВ, содержать ПЗУ для запоминания программы и ЗУПВ для регистров с выборкой пользователем или модифицируемых регистров. Еще в одном осуществлении параметры команд или конфигурации, зависимые только от одного функционального блока, можно хранить в соответствующем блоке.
Архитектура СП данного изобретения нацелена на варианты исполнения, включающие микроэлектронную технологию интегральных схем и также технологии на уровне платы. Поскольку составляющие данное изобретение механизмы обработки и вызова согласованы с конкретным применением, архитектура СП предлагает максимальную пропускную способность, которую можно достигнуть целевой технологией с достаточной гибкостью программирования для реализации преимуществ низкой себестоимости путем группирования объема производства нескольких рынков продукции с общими потребностями обработки данных. Например, можно создать библиотеку, в которой учтены потребности обработки цифровых сигналов связи для комбинированных рынков нескольких видов продукции, включая сотовые телефоны, беспроводные местные сети связи, персональные сети связи, цифровые кабельные сети связи и др. Такая архитектура также способствует пониманию специалистами прикладных областей преимуществ более низкой себестоимости конструирования и сокращения срока доработки до коммерческого состояния и позволяет ориентировать на программируемость объект системного уровня, благодаря чему не будет необходимости глубоко вникать в сложные аспекты обработки конкретного применения. Быстрый цикл быстрой разработки высокопроизводительных прикладных схем со встроенными возможностями управления, электропотребления и гибкостью программирования, нацеленными на усовершенствование и развитие продукции, наряду с резко сниженной себестоимостью разработки являются основными преимуществами этой архитектуры.
Одним из применений архитектуры СП данного изобретения является СП связи (СПС). Табл. 2 дает название и характеристику некоторых прикладных синтаксисов в библиотеке, которую можно использовать для конструирования различных СПС.
Примером системы связи, сконструированной с помощью архитектуры ПКП данного изобретения, является модулятор/демодулятор (модем), который выполняет схему сигнализации расширенного спектра, скачкообразной перестройки частоты (РС/СПЧ), многостанционного доступа с временным разделением каналов (МСДВРК). РС/СПЧ выполняют рандомизацией частоты несущей каждого пакета. МСДВРК обеспечивают разделением времени на канале в пакеты МСДВРК; при этом рабочий цикл многостанционного доступа определяют как "цикл". Временное размещение назначенного пакета в цикле рандомизируют. Схема многостанционного доступа по требованию динамически назначает поток данных каждому пакету в помощь пользовательским данным. Каждый пакет определяют комплексом параметров, указанных в табл. 3.
На фиг. 6 показана блок-схема верхнего уровня модема 400 РС/СПЧ МСДВРК, выполненного с помощью СПС. В частности, используемый в этом примере прикладной синтаксис приведен в табл. 4. Эти прикладные синтаксисы сообщаются по шине 499 команд/данных/хронирования, на которой каждый прикладной синтаксис можно вызывать (или включать) на различных скоростях. Шина 499 является реализацией шины 110 команд/данных/хронирования, показанной на фиг. 1.
Каждый прикладной синтаксис, определенный в модеме 400, принимает входную команду конфигурации, которая управляет преобразованием данных, и входную команду хронирования, которая управляет временем вызова. Эта структура команды определена как Syntax (С, Т) в архитектуре СП (фиг. 1). При вызове прикладной синтаксис устанавливает свои параметры на соответствующие значения, обрабатывает входные данные и затворяет свой входной генератор тактовых импульсов до следующей команды вызова. Таким образом, при затворении генератора тактных импульсов обеспечивают экономию электропотребления. Прикладной синтаксис, определенный в модеме 400, имеет разные логики прикладного синтаксиса (т. е. блок 125 на фиг. 1) для выполнения разных функций обработки сигнала. Но все эти прикладные синтаксисы используют для подключения к шине 499 команд/данных/хронирования одинаковую структуру интерфейса.
В модеме 400 (фиг. 6) для содействия динамическому переконфигурированию модема на попакетной основе и на поцикловой основе обработки данных используют как централизованные аспекты, так и аспекты распределенного управления архитектуры СП. Централизованное управление обеспечивают нисходящим дерандомизатором 404 и восходящим рандомизатором 406, которые координируют нисходящую и восходящую обработку сигнала соответственно на попакетной основе. Распределенное управление обеспечивают самостоятельным прикладным синтаксисом на поцикловой основе для обработки данных. Конкретно, этими самостоятельными прикладными синтаксисами являются кодер 408, перемежитель 425, блок 424 проверки при помощи циклического избыточного кода, декодер 423 и обращенный перемежитель 409.
Модем 400 содержит синтаксис 416 совместно используемой памяти, который обеспечивает слабую связь между всеми прикладными синтаксисами. Тем самым устраняется аппаратурная избыточность множества отдельных информационных и адресных линий, а также отдельных запоминающих устройств. Каждый прикладной синтаксис выполняет определенное(ые) задание(я) на своих входных данных и направляет свой выход к следующему прикладному синтаксису по синтаксису 416 совместно используемой памяти.
Как показано (фиг. 7) данные и управление перемещаются между прикладными синтаксисами через назначенные сегменты в синтаксисе 416 совместно используемой памяти. В каждом назначенном сегменте памяти (т.е. сегменты 460, 462, 464 и 472) есть свой указатель "записи" (такой как указатель 482), указатель "считывания" (такой, как указатель 483), свое значение "длины сегмента" (значение 484) и свои подлежащие обработке данные (такие, как обращенно перемеженные данные 485). Указатель "записи" поддерживается прикладным синтаксисом, записывающим данные, а указатель "считывания" поддерживается прикладным синтаксисом, считывающим данные. Каждый прикладной синтаксис изучает указатели "записи" и "считывания", чтобы определить, достаточно ли есть данных для обработки, и выключается до следующего периода тактовых импульсов цикла, когда данных нет. Кроме обеспечения встроенной экономии электропотребления это свойство дает возможность обрабатывать данные только тогда, когда они есть в наличии и с нужной пропускной способностью.
Далее следует описание операции нисходящей обработки, выполняемой модемом 400. Структура сигнализации на нисходящем направлении включает уплотненный по времени сигнал со скачкообразно перестроенной частотой, который имеет данные связи, с мультиплексированием, имеющие разную скорость данных пакета, данные управления выборкой и информацией синхронизации. Информацию синхронизации демодулируют коррелятором 428 синхронизации для получения принятого сигнала и слежения за ним. Данные связи и данные управления выборкой демодулируют демодулятором 429 фазовой манипуляции. Оба прикладных синтаксиса 428 и 429 выводят данные в синтаксис 416 совместно используемой памяти для последующей обработки данных другим самостоятельным прикладным синтаксисом.
В модеме согласованный фильтр 427, коррелятор 428 синхронизации и демодулятор 429 фазовой манипуляции группируют в кластер 430 демодуляции. Он демодулирует принятый сигнал в реальном времени на пакетной скорости и помещает демодулированные данные в синтаксис 416 совместно используемой памяти. Согласованный фильтр 427 согласует характеристику связи поступающего цифрового сигнала, тем самым обеспечивая фильтрованные образцы для коррелятора 428 синхронизации и модулятора 429 фазовой манипуляции. Для принятия высокочастотной полосы фильтрованного сигнала компоненты кластера 430 демодуляции соединяют высокочастотной шиной, называемой шиной 431 фильтрованного сигнала.
В модеме 400 централизованное управление кластером 430 демодуляции выполняют нисходящим дерандомизатором 404. В частности, нисходящий дерандомизатор 404 выполняет следующие функции:
1) генерирует и синхронизирует слово псевдослучайного кода,
2) вычисляет скачкообразно перестроенную частоту несущей,
3) генерирует соответствующую команду частоты и строб-импульс для нисходящего синтезатора, внешнего по отношению к модему 400,
4) генерирует все необходимые генераторы тактовых импульсов, включая генератор тактовых импульсов пакета и генератор тактовых импульсов цикла, и
5) конфигурирует кластер 430 демодуляции на попакетной основе.
Конфигурация кластера 430 демодуляции заключается в установке согласованного фильтра 427 на данные пакета и выборе либо коррелятора 428 синхронизации, либо демодулятора 429 фазовой манипуляции. Исходя из генерированного псевдослучайного кода, нисходящий дерандомизатор 404 распознает поступающий индекс пакета. С помощью этого опознанного индекса пакета нисходящий дерандомизатор 404 производит выборку синтаксиса 416 совместно используемой памяти для определения параметров конфигурации пакета, содержащихся в нисходящем "шаблоне команды". Шаблон команды является кодом машинного языка, полученного в результате составления программы команд СПС, написанной специально для данного применения модема. Информация в шаблоне (программе) команд определяет работу модема и ее можно изменять в соответствии с изменяющимися нисходящими параметрами. Информация в шаблоне (программе) команд определяет команды обработки сигнала и также команды обработки данных. Команды обработки сигнала используют для конфигурирования кластера 430 демодуляции, а команды обработки данных используют для конфигурирования самостоятельного синтаксиса обработки данных.
Нисходящий дерандомизатор 404 записывает команду (Т) хронирования в каждый из компонентов кластера 430 демодуляции, которая конфигурирует кластер 430 демодуляции для его включения в период тактовых импульсов пакета. До периода тактовых импульсов пакета нисходящий дерандомизатор 404 записывает команды (С) конфигурации в каждый компонент кластера 430 демодуляции. Кластер 430 демодуляции включается в период тактовых импульсов пакета и обрабатывает данные в соответствии с тем, как это определено командой конфигурации, направленной нисходящим дерандомизатором 404. Ниже дан пример динамического переконфигурирования в период тактовых импульсов пакета.
Демодулированные данные далее обрабатывают самостоятельными прикладными синтаксисами. Эти синтаксисы применения включаются в нисходящем периоде тактовых импульсов цикла. В результате этого получается существенная экономия электропотребления во время работы. В модеме 400 каждый самостоятельный прикладной синтаксис сохраняет свой вход и выход в синтаксисе 416 совместно используемой памяти. На фиг. 7 показан поток данных между управляемым централизованно кластером 430 демодуляции и распределенно управляемым синтаксисом обработки данных. Сигналы, полученные модемом 400 по линии 432, демодулируют кластером 430 демодуляции. Демодулированные данные помещают в сегмент 460 данных демодуляции синтаксиса 416 совместно используемой памяти по шине 498 команд/данных, которая состоит из части шины 499 команд/данных/хронирования. Эти демодулированные данные последовательно обрабатывают обращенным перемежителем 409. Результат запоминают в сегменте 462 данных обращенного перемежителя в синтаксисе 416 совместно используемой памяти. Обращенно перемеженные данные последовательно обрабатывают декодером 423. Декодированные данные запоминают в сегменте 464 декодированных данных. Декодированные данные затем проверяют на ошибки блоком 424 контроля циклическим избыточным кодом и помещают в сегменте 472 принятых пользовательских данных. Принятые пользовательские данные можно затем извлечь элементом внешней системы с помощью синтаксиса 426 интерфейса данных/управления на внешней шине 490.
Команды конфигурации самостоятельного прикладного синтаксиса подают как часть нисходящего шаблона (программы) команд в синтаксисе 416 совместно используемой памяти. Как описано выше, команды для каждого из этих прикладных синтаксисов состоят из двух аргументов: аргумента команды (в этом случае - команда конфигурации) и аргумента времени (в этом случае - время вызова). При вызове прикладной синтаксис будет декодировать аргумент (С) команды и соответственно конфигурировать свои параметры. Каждый прикладной синтаксис декодирует аргумент (Т) времени для определения периода вызова. Аргумент времени можно выполнять как команду для выбора либо тактовых импульсов 495 пакета или тактовых импульсов 496 цикла шины 497 хронирования, которая является частью шины 499 команд/данных/хронирования, и использовать его для установления периода периодического вызова.
Конвейерное свойство архитектуры СП используют в модеме 400, в котором аргументы времени шаблона (программы) команд СПС были выбраны для выполнения указанных выше операций в конвейере обработки. На фиг. 8 представлен программированный нисходящий конвейер обработки, выполненный в модеме 400. Входной сигнал на линии 432 демодулируют в реальном времени на скорости пакета, при этом обращенное перемежение, декодирование и проверка циклическим избыточным кодом обрабатываются в последующих циклах на скорости цикла.
Ниже следует подробное описание выполненного в модеме 400 нисходящего конвейера обработки. С помощью программирования образующего прикладной синтаксис модема 400 принятый сигнал 432 обрабатывают в соответствии с временем на канале, разделенном на пакеты МСДВРК с рабочим циклом многостанционного доступа, определенным как "цикл". На фиг. 8 ход времени изображен в виде последовательности циклов с последовательно возрастающими номерами цикла. В частности, изображенная последовательность является циклом (N) 500, за которой идет цикл (N+1) 501, затем - цикл (N+2) 502, потом - цикл (N+3) 503, где N является произвольным целым числом, отсчитывающим количество циклов. В данном цикле ход времени изображен как последовательность пакетов 560 с последовательно возрастающими номерами пакетов. Конкретно, последовательность является пакетом (M) 570, за которым следует пакет (M+1) 571, затем пакет (M+2) 572, где M является произвольным целым числом, отсчитывающим количество пакетов в цикле.
Выполненный в модеме 400 нисходящий конвейер обработки начинается с согласованного фильтра/демодуляции (N) 510, выполненного на принятых данных 432 цикла (N) 500. Конкретно, выполняют следующую программированную последовательность операций.
a) Согласованный фильтр (M) 580 выполняют на пакете (M) 570 цикла (N) 500.
b) Демодуляцию (M) 590 выполняют на выходных данных согласованного фильтра (M) 580.
c) Согласованный фильтр (M+1) 581 выполняют на пакете (M+1) 571 цикла (N) 500.
d) Демодуляцию (M+1) 591 выполняют на выходных данных согласованного фильтра (M+1) 581.
e) Согласованный фильтр (M+2) 582 выполняют на пакете (M+2) 572 цикла (N) 500.
f) Демодуляцию (M+2) 592 выполняют на выходных данных согласованного фильтра (M+2) 582.
g) И так далее до тех пор, пока все назначенные пакеты в цикле (N) 500 не будет согласованы, отфильтрованы и демодулированы.
h) В следующем цикле перемежение (N) 520 выполняют на выходных данных демодуляции (M) 590, демодуляции (M+1) 591 и демодуляции (M+2) 592 и т.д.
i) В следующем цикле декодирование (N) 530 выполняют на выходных данных перемежения (N) 520.
j) В следующем цикле проверку (N) 540 циклическим избыточным кодом выполняют на выходных данных декодирования (N) 530.
k) В следующем цикле принятые данные 550 извлекают из выходных данных проверки (N) 540 циклическим избыточным кодом и направляют к элементу внешней системы.
Аналогично, группу (N+1) обрабатывают следующим образом.
a) Согласованный фильтр (M) 580 выполняют на пакете (M) 570 цикла (N+1) 501.
b) Демодуляцию (M) 590 выполняют на выходных данных согласованного фильтра (M) 580.
c) Согласованный фильтр (M+1) 581 выполняют на пакете (M) 571 цикла (N+1) 501.
d) Демодуляцию (M+1) 591 выполняют на выходных данных согласованного фильтра (M+1) 581.
e) Согласованный фильтр (M+2) 582 выполняют на пакете (M) 572 цикла (N+1) 501.
d) Демодуляцию (M+2) 592 выполняют на выходных данных согласованного фильтра (M+2) 582.
g) И так далее до тех пор, пока все назначенные пакеты в цикле (N+1) 501 не будут согласованно фильтрованы и демодулированы.
h) В следующем цикле обращенное перемежение (N+1) 521 выполняют на выходных данных демодуляции (M) 590, демодуляции (M+1) 591, демодуляции (M+2) 592 и т.д.
i) В следующем цикле декодирование (N+1) 531 выполняют на выходных данных перемежения (N+1) 521.
j) В следующем цикле проверку (N+1) 541 циклическим избыточным кодом выполняют на выходных данных декодирования (N+1) 531.
k) В следующем цикле принятые данные 550 извлекают из выходных данных проверки (N+1) 541 циклическим избыточным кодом и направляют к элементу внешней системы.
Нисходящий конвейер обработки продолжается бесконечно по этой же повторяющейся схеме до тех пор, пока модем 400 не будет переконфигурирован в другой режим или выключен.
Свойство программируемости в модеме 400 СПС дает возможность управлять прикладным синтаксисом с помощью аргумента времени для выбора одного из тактовых импульсов, обеспечиваемого на шине 499 команд/данных/хронирования, и для использования выбранных тактовых импульсов, чтобы генерировать периоды вызова модулем (N) отсчета выбранного периода или осуществлять вызов, когда тактовые импульсы доходят до определенного значения. Например, шаблон (программа) команд СПС определяет заданный период вызова кодера, который должен состоять из множества циклов. В этом примере входные данные кодера будут накапливаться в своем назначенном сегменте согласно используемой памяти до тех пор, пока они не будут обработаны кодером при вызове.
Программа команд для подачи команд модему СПС Модема, показано на фиг. 6 для обработки поступающих данных, будет следующей:
** Demodulator Cluster (Кластер Демодулятора)
FILTER (1N= α received_siqnal_sample_bus, OUT= α filtered_siqnal_bus, TYPE=FIR, NCOEF=Num_Coef, COEF=MF_Coef, TIME=Burst_CLK) 1F Data_BURST THEN
PSK_ DEMOD (1N=Samp_Bus, OUT= α Demod_Data, TYPE= α Demod_Type, SYMB_rate,
TIME=Burst_CLK)
ELSEIF SYNC_BURST
SYNC(IN=Samp_Bus, OUT= α Sync_Buf, TYPE= α SYNC_Type, SYNC_COEF= α S_Coef,
SYMB=Symb_rate, TIME=Burst.CLK)
ENDIF
** Frame Processes (Процессы Группы)
CONV_DEINT(IN= α Demod_Data, OUT= α Deint_Data, NUM=Num_Data, ROW=NRows, COL=NCol, STEP=N STEP, TIME=Frame_CKL)
CONV_DECODE(IN= α Deint_Data, OUT= α Dec_Data, NUM=Num_Data, K=Rate, LEN-Conv_Len, TAPS=Conv_Taps, TIME=Frame_CKL)
CRC(IN= α DEINT_Data, OUT= α CRC_Date, NUM=Num_Data, TAPS=CRC_Taps, LEN= CRC_Len, TIME=Frame_CKL)
DATA_IF(IN= α CRC_Data, OUT=D_Bus, TIME=Frame_CLK)
Команда FILTER описана выше. Оператор 1F, следующий за командой FILTER, позволяет выполнять соответствующую обработку на двух разных типах принятого пакета МСДВРК; оператор ELSE1F позволяет выполнять соответствующую обработку информации синхронизации, а END1F указывает, как ожидается, конец этих двух ветвей. Компайлер преобразует эту команду 1F в шаблон команд, который можно определить программатором. Программатор затем заполняет этот шаблон команд определенной структурой цикла МСДВРК, содержащей пакеты данных и синхронизации. Этот шаблон запоминают как часть составленной программы и используют для распознавания типа принятого пакета.
Описание команды PSK_DEMOD. Исходя из содержания составленного программой шаблона команд структуры цикла, каждый принятый пакет распознают либо как пакет синхронизации (SYNC), либо как пакет данных. Если принятый пакет распознан как пакет данных, команда PSK_DEMOD указывает функциональному блоку демодулятора фазовой манипуляции обработать фильтрованные образцы принятого сигнала. Команда PSK_DEMOD указывает демодулятору фазовой манипуляции извлечь его вход из Шины Фильтрованного Сигнала (фиг. 6) и маршрутизировать полученный выход в определенную ячейку памяти в блоке совместно используемой памяти.
Структура функционального блока совместно используемой памяти также содержится как часть составленной программы посредством базы данных задания. Два новых аргумента команды определяют конкретную конфигурацию демодулятора фазовой манипуляции в отношении типа демодулируемого символа фазовой манипуляции (например, двоичная или четвертичная фазовая манипуляция) и скорости принятого символа. Аргумент TIME дает команду о вызове демодулятора фазовой манипуляции на скорости тактовых импульсов пакета.
Команда SYNC аналогична команде демодулятора фазовой манипуляции, за тем исключением, что важные параметры для синхронизации включают коэффициенты синхронизации, количество коэффициентов и точный тип синхронизации.
Сверточный обращенный перемежитель (CONV_ DEINT), сверточный декодер (CONV_ DECODE), блок проверки циклическим избыточным кодом (CRC), Интерфейс Данных (DATA_ IF) - все они являются процессами цикла. Каждый из этих процессов вызывают на тактовых импульсах цикла. Эти процессы извлекают данные из совместно используемой памяти, выполняют нужное преобразование данных, выводят данные назад в совместно используемую память и затем вновь переходят в режим ожидания. Такие параметры, как структура шины команд/данных/хронирования, структура буфера совместно используемой памяти и внутренняя ширина бита, определяют в базе данных уровня задания. Для краткости ниже объясняется только сверточный обращенный перемежитель. Другие процессы цикла имеют очень схожие аргументы, и их можно легко извлекать, если понятен сверточный обращенный перемежитель.
Первые два аргумента команды CONV_DEINT определяют связность модуля. То есть, первые два аргумента информируют CONV_DEINT о том, где расположены входы совместно используемой памяти и где совместно используемая память должна разместить свои выходы. В этом случае CONV_DEINT получит свои входы от буфера Demod_Data в совместно используемой памяти и выведет свои данные в Deint Data, расположенные в совместно используемой памяти. Такие параметры буфера, как структура, длина и местоположение, находятся в базе данных уровня задания. Следующий аргумент информирует CONV_DEINT о том, сколько нужно за один вызов обращенно перемежить программных битов решения. Следующие три аргумента информируют CONV_ DEINT о вызываемой точной конфигурации. В том случае сверточный обращенный перемежитель будет следующим: nrows • ncol. Наконец, последний аргумент дает команду вызвать функцию сверточного обращенного перемежителя на скорости цикла.
Поскольку для специалистов в данной области очевидно, как построить входящую часть модема 400, когда понятна нисходящая часть, здесь описывается только нисходящая часть. Структура и действие восходящей части не описываются.
Изобретение относится к комплексным специализированным интегральным схемам, в частности к распределенной параллельной архитектуре процессора. Техническим результатом является расширение функциональных возможностей за счет использования библиотеки готовых сконструированных функциональных блоков. Программируемая архитектура специализированного процессора содержит множество взаимосвязанных прикладных элементов и набор прикладных команд, причем одна прикладная команда имеет в качестве аргумента время вызова прикладного элемента. 2 с. и 25 з.п.ф-лы, 8 ил., 4 табл.
US 5283753 A, 01.02.94 | |||
US 4951221 A, 21.08.90 | |||
КЛИНГМАН Э | |||
Проектирование специализированных микропроцессорных систем | |||
- М.: Мир, 1985, с.147 | |||
КАЛЯЕВ А.В | |||
Многопроцессорные системы с программируемой архитектурой | |||
- М.: Радио и связь, 1984, с.211-218. |
Авторы
Даты
2000-04-10—Публикация
1995-05-17—Подача