(57)【特許請求の範囲】
【請求項１】
線形帰還シフトレジスタのシフト処理及び帰還データを計算する論理回路であって、
第１のデータを０乃至ｎ−１ビットシフトし且つビットシフトで空いたビットに０を挿入して得られる並列ｎ個のデータの各々と第２のデータとの間でビット毎のＡＮＤを計算し、該ＡＮＤ計算により得られる並列ｎ個のデータの各々について全てのビットのＸＯＲを計算することにより、ｎ個の１ビットデータを並列に生成するＸＯＲ処理部と、
前記第１のデータをｍ（０＜ｍ＜ｎ）ビットシフトした状態での帰還データを生成するために、前記第１のデータを０乃至ｍ−１ビットシフトしたそれぞれの状態での過去のｍ個の帰還データと前記第２のデータの対応ビットとの間でのビット毎のＡＮＤを計算し、該ＡＮＤ計算により得られる全てのビットと前記第１のデータのｍビットシフト状態での前記１ビットデータとのＸＯＲを計算する値生成処理部と
を含むことを特徴とする論理回路。
【請求項２】
前記ＸＯＲ処理部は更に、前記第１のデータを０乃至ｎ−１ビットシフトし且つビットシフトで空いたビットに０を挿入して得られる前記並列ｎ個のデータの各々と第３のデータとの間でビット毎のＡＮＤを計算し、該ＡＮＤ計算により得られる並列ｎ個のデータの各々について全てのビットのＸＯＲを計算することにより、ｎ個の第２の１ビットデータを並列に生成し、
前記値生成処理部は更に、前記過去のｍ個の帰還データと前記第３のデータの対応ビットとの間でのビット毎のＡＮＤを計算し、該ＡＮＤ計算により得られる全てのビットと前記第１のデータのｍビットシフト状態での前記第２の１ビットデータとのＸＯＲを計算することにより、前記第１のデータをｍビットシフトした状態での出力データを生成する
ことを特徴とする請求項１記載の論理回路。
【請求項３】
受信信号を周波数変換して周波数変換後の受信信号を生成するＲＦ処理部と、
前記周波数変換後の受信信号をデジタル受信信号に変換するＡＤ変換部と、
前記デジタル受信信号に対してデスクランブル処理を含む無線処理を行なうデジタル信号プロセッサと
を含み、前記デジタル信号プロセッサは、
算術論理演算ユニットと、
専用命令処理ユニットと
を含み、前記専用命令処理ユニットは、線形帰還シフトレジスタのシフト処理及び帰還データを計算するために、
第１のデータを０乃至ｎ−１ビットシフトし且つビットシフトで空いたビットに０を挿入して得られる並列ｎ個のデータの各々と第２のデータとの間でビット毎のＡＮＤを計算し、該ＡＮＤ計算により得られる並列ｎ個のデータの各々について全てのビットのＸＯＲを計算することにより、ｎ個の１ビットデータを並列に生成するＸＯＲ処理部と、
前記第１のデータをｍ（０＜ｍ＜ｎ）ビットシフトした状態での帰還データを生成するために、前記第１のデータを０乃至ｍ−１ビットシフトしたそれぞれの状態での過去のｍ個の帰還データと前記第２のデータの対応ビットとの間でのビット毎のＡＮＤを計算し、該ＡＮＤ計算により得られる全てのビットと前記第１のデータのｍビットシフト状態での前記１ビットデータとのＸＯＲを計算する値生成処理部と
を含むことを特徴とする受信装置。
【請求項４】
線形帰還シフトレジスタのシフト処理及び帰還データを計算する論理演算方法であって、
第１のデータを０乃至ｎ−１ビットシフトし且つビットシフトで空いたビットに０を挿入して得られる並列ｎ個のデータの各々と第２のデータとの間でビット毎のＡＮＤを計算し、該ＡＮＤ計算により得られる並列ｎ個のデータの各々について全てのビットのＸＯＲを計算することにより、ｎ個の１ビットデータを並列に生成し、
前記第１のデータをｍ（０＜ｍ＜ｎ）ビットシフトした状態での帰還データを生成するために、前記第１のデータを０乃至ｍ−１ビットシフトしたそれぞれの状態での過去のｍ個の帰還データと前記第２のデータの対応ビットとの間でのビット毎のＡＮＤを計算し、該ＡＮＤ計算により得られる全てのビットと前記第１のデータのｍビットシフト状態での前記１ビットデータとのＸＯＲを計算する
各段階を含むことを特徴とする論理演算方法。
【請求項５】
前記第１のデータを０乃至ｎ−１ビットシフトし且つビットシフトで空いたビットに０を挿入して得られる前記並列ｎ個のデータの各々と第３のデータとの間でビット毎のＡＮＤを計算し、該ＡＮＤ計算により得られる並列ｎ個のデータの各々について全てのビットのＸＯＲを計算することにより、ｎ個の第２の１ビットデータを並列に生成し、
前記過去のｍ個の帰還データと前記第３のデータの対応ビットとの間でのビット毎のＡＮＤを計算し、該ＡＮＤ計算により得られる全てのビットと前記第１のデータのｍビットシフト状態での前記第２の１ビットデータとのＸＯＲを計算することにより、前記第１のデータをｍビットシフトした状態での出力データを生成する
各段階を更に含むことを特徴とする請求項４記載の論理演算方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本願開示は、一般に論理回路、受信装置、及び論理演算方法に関し、詳しくは無線処理を行なうための論理回路、受信装置、及び論理演算方法に関する。
【背景技術】
【０００２】
携帯電話に代表されるように、無線技術は多くの分野で活用されている。携帯電話の規格としては、例えば、次世代の携帯電話規格であるＬＴＥ（Long Term Evolution）や現行規格のＷＣＤＭＡ（Wideband Code Division Multiple Access）等がある。一般に、ある１つの規格に対応して設計されたシステムＬＳＩ（Large Scale Integration）は、当該規格に対して使用できるのみであり、他の規格に対しては使用できず、また規格の変更等に対応することもできない。そこでこの問題に対応するために、ソフトウェアを用いて無線処理を行うＳＤＲ（Software Defined Radio）という技術が提案されている。
【０００３】
ＳＤＲでは、各種の無線処理をソフトウェアにより行うので、ソフトウェアの更新により規格の変更に対応できる。またソフトウェアの切り替えにより、多様な無線規格に対応することも可能となる。更には、リリース後に発生したバグなども、ソフトウェアの更新によって回避することができる。
【０００４】
以上のように、ＳＤＲはその柔軟性という点においてハードウェアによる無線処理に対して優位性がある。但し複雑で演算量の多い無線信号処理に対応するためには、汎用のＤＳＰ（Digital Signal Processor）だけでは無理があり、無線処理に適した専用命令及び専用命令処理ユニットが設けられる。そのような専用の命令を必要とする処理の１つとして、線形帰還シフトレジスタを用いたスクランブルコード生成処理がある。スクランブルコード生成用の専用命令処理ユニットは、シフトレジスタの指定ビット位置のデータのＸＯＲ（排他的論理和）をシフトレジスタへのフィードバック入力とする線形帰還シフトレジスタを用いることにより、スクランブルコードを生成する。
【０００５】
所望のビット位置でのＸＯＲ演算（即ち所望のタップ位置）を実現して所望のスクランブルコードを生成するためには、専用命令処理ユニットとして、柔軟に回路素子間の接続を変更可能な回路構成とすることが望まれる。特許文献１には、１つのＸＯＲ回路と２つの選択回路とを含む基本回路を複数直列に接続することで、スクランブラ、ＣＲＣ生成器、畳み込み符号化器、線形帰還シフトレジスタ、及びｎビット一括処理回路等を実現できる回路が開示されている。
【０００６】
このようにスクランブルコード処理用の専用命令及び専用命令処理ユニットを設けることで、対応する無線処理を効率化することが可能である。しかし線形帰還シフトレジスタにおいて、シフト動作とＸＯＲ演算とを順次行ないスクランブルコードを計算していたのでは、数多くの計算サイクルがかかるという問題がある。そこで回路を並列化して、線形帰還シフトレジスタのシフト演算の複数回分を並列に計算することが考えられる。上記の特許文献１においても、ｎビット一括処理回路により複数ｎビットを同時に処理して、スクランブラやＣＲＣ生成器等の処理の高速化を図ることが開示されている。しかし特許文献1のようにセレクタを含む基本回路を複数個組み合わせる構成では、セレクタの段数即ち論理ゲートの段数が非常に大きくなるために、十分に高速な処理ができない可能性がある。
【先行技術文献】
【特許文献】
【０００７】
【特許文献１】特開２００５−３４１２９９号公報
【特許文献２】特許第４３０３５４８号
【発明の概要】
【発明が解決しようとする課題】
【０００８】
以上を鑑みると、線形帰還シフトレジスタにおいて所望の構成を設定可能でありながらシフト演算の複数回分を並列且つ高速に計算可能な論理回路が望まれる。
【課題を解決するための手段】
【０００９】
線形帰還シフトレジスタのシフト処理及び帰還データを計算する論理回路は、第１のデータを０乃至ｎ−１ビットシフトし且つビットシフトで空いたビットに０を挿入して得られる並列ｎ個のデータの各々と第２のデータとの間でビット毎のＡＮＤを計算し、該ＡＮＤ計算により得られる並列ｎ個のデータの各々について全てのビットのＸＯＲを計算することにより、ｎ個の１ビットデータを並列に生成するＸＯＲ処理部と、前記第１のデータをｍ（０＜ｍ＜ｎ）ビットシフトした状態での帰還データを生成するために、前記第１のデータを０乃至ｍ−１ビットシフトしたそれぞれの状態での過去のｍ個の帰還データと前記第２のデータの対応ビットとの間でのビット毎のＡＮＤを計算し、該ＡＮＤ計算により得られる全てのビットと前記第１のデータのｍビットシフト状態での前記１ビットデータとのＸＯＲを計算する値生成処理部とを含むことを特徴とする。
【００１０】
受信装置は、受信信号を周波数変換して周波数変換後の受信信号を生成するＲＦ処理部と、前記周波数変換後の受信信号をデジタル受信信号に変換するＡＤ変換部と、前記デジタル受信信号に対してデスクランブル処理を含む無線処理を行なうデジタル信号プロセッサとを含み、前記デジタル信号プロセッサは、算術論理演算ユニットと、専用命令処理ユニットとを含み、前記専用命令処理ユニットは、線形帰還シフトレジスタのシフト処理及び帰還データを計算するために、第１のデータを０乃至ｎ−１ビットシフトし且つビットシフトで空いたビットに０を挿入して得られる並列ｎ個のデータの各々と第２のデータとの間でビット毎のＡＮＤを計算し、該ＡＮＤ計算により得られる並列ｎ個のデータの各々について全てのビットのＸＯＲを計算することにより、ｎ個の１ビットデータを並列に生成するＸＯＲ処理部と、前記第１のデータをｍ（０＜ｍ＜ｎ）ビットシフトした状態での帰還データを生成するために、前記第１のデータを０乃至ｍ−１ビットシフトしたそれぞれの状態での過去のｍ個の帰還データと前記第２のデータの対応ビットとの間でのビット毎のＡＮＤを計算し、該ＡＮＤ計算により得られる全てのビットと前記第１のデータのｍビットシフト状態での前記１ビットデータとのＸＯＲを計算する値生成処理部とを含むことを特徴とする。
【００１１】
線形帰還シフトレジスタのシフト処理及び帰還データを計算する論理演算方法は、第１のデータを０乃至ｎ−１ビットシフトし且つビットシフトで空いたビットに０を挿入して得られる並列ｎ個のデータの各々と第２のデータとの間でビット毎のＡＮＤを計算し、該ＡＮＤ計算により得られる並列ｎ個のデータの各々について全てのビットのＸＯＲを計算することにより、ｎ個の１ビットデータを並列に生成し、前記第１のデータをｍ（０＜ｍ＜ｎ）ビットシフトした状態での帰還データを生成するために、前記第１のデータを０乃至ｍ−１ビットシフトしたそれぞれの状態での過去のｍ個の帰還データと前記第２のデータの対応ビットとの間でのビット毎のＡＮＤを計算し、該ＡＮＤ計算により得られる全てのビットと前記第１のデータのｍビットシフト状態での前記１ビットデータとのＸＯＲを計算する各段階を含む。
【発明の効果】
【００１２】
本願開示の少なくとも１つの実施例によれば、第２のデータをマスクデータとしてＡＮＤ演算することにより、線形帰還シフトレジスタにおいて所望の構成を設定可能とする。また更に、ビットシフトで空いたビットに０を挿入して帰還データの寄与を無視することによりシフト演算の複数回分を並列に計算し、この並列計算後に帰還データの寄与分を求める。これにより、線形帰還シフトレジスタのシフト処理及び帰還データを高速に計算可能となる。
【図面の簡単な説明】
【００１３】
【図１】ＷＣＤＭＡにおけるスクランブルコードを生成する回路の一例を示す図である。
【図２】図１に示す一方の線形帰還シフトレジスタ及びその出力用ＸＯＲ回路を抽出して示す図である。
【図３】所望のタップ位置及び所望の出力抽出位置を設定可能な線形帰還シフトレジスタ及び出力用ＸＯＲ回路を含む回路構成を示す図である。
【図４】受信装置の構成の一例を示す図である。
【図５】ＤＳＰ部の構成の一例を示す図である。
【図６】スクランブルコード生成のための論理回路の構成の一例を示す図である。
【図７】シフト処理部及びマスク・ＸＯＲ処理部の構成の一例を示す図である。
【図８】出力・フィードバック値生成処理部の構成の一例を示す図である。
【図９】シフト処理部の構成の一例を示す図である。
【図１０】スクランブルコード生成のための論理回路の構成の別の一例を示す図である。
【発明を実施するための形態】
【００１４】
図１は、ＷＣＤＭＡにおけるスクランブルコードを生成する回路の一例を示す図である。図１に示すスクランブルコード生成回路は、シフトレジスタ１０及び１１、及びＸＯＲ回路１２乃至１７を含む。シフトレジスタ１０及び１２の各々は、ビット番号０〜１７に対応する１８個の直列接続されたフリップフロップを含む。第１７ビットから第０ビットに向けて、各フリップフロップに格納される１ビットデータが順次シフトされる。
【００１５】
ＸＯＲ回路１２は、シフトレジスタ１０の所定のビット位置のフリップフロップから出力されるデータのＸＯＲを計算し、その計算結果を第１７ビットのフリップフロップの入力としてシフトレジスタ１０にフィードバックする。即ち、シフトレジスタ１０とＸＯＲ回路１２とで線形帰還シフトレジスタを構成している。図１に示す例では、第０ビットのフリップフロップの出力及び第７ビットのフリップフロップの出力のＸＯＲが、帰還データとしてフィードバックされている。
【００１６】
同様に、ＸＯＲ回路１５は、シフトレジスタ１１の所定のビット位置のフリップフロップから出力されるデータのＸＯＲを計算し、その計算結果を第１７ビットのフリップフロップの入力としてシフトレジスタ１１にフィードバックする。即ち、シフトレジスタ１１とＸＯＲ回路１５とで線形帰還シフトレジスタを構成している。図１に示す例では、第０ビット、第５ビット、第７ビット、第１０ビットのフリップフロップの出力のＸＯＲが、帰還データとしてフィードバックされている。
【００１７】
ＸＯＲ回路１３は、シフトレジスタ１０の所定のビット位置のフリップフロップから出力されるデータのＸＯＲを計算し、その計算結果をＸＯＲ回路１７への入力とする。ＸＯＲ回路１６は、シフトレジスタ１１の所定のビット位置のフリップフロップから出力されるデータのＸＯＲを計算し、その計算結果をＸＯＲ回路１７へのもう一つの入力とする。ＸＯＲ回路１７は、これら２つの入力のＸＯＲを計算し、直交成分用のスクランブルコードＱとして出力する。またＸＯＲ回路１４は、シフトレジスタ１０の第０ビットのフリップフロップの出力とシフトレジスタ１１の第０ビットのフリップフロップの出力とのＸＯＲを計算し、同相成分用のスクランブルコードＩとして出力する。こうして生成されたスクランブルコードは、送信側でのスクランブル処理においては送信信号に乗算され、また受信側でのデスクランブル処理においては受信信号に乗算される。
【００１８】
図２は、図１に示す一方の線形帰還シフトレジスタ及びその出力用ＸＯＲ回路を抽出して示す図である。シフトレジスタ１０とＸＯＲ回路１２とが線形帰還シフトレジスタを構成する。出力用のＸＯＲ回路１３が、この線形帰還シフトレジスタの所定のビット位置のフリップフロップ出力のＸＯＲを計算し、第１の出力ｏｕｔｐｕｔ＿０を生成する。またシフトレジスタ１０の第０ビットのフリップフロップ出力が、第２の出力ｏｕｔｐｕｔ＿１として用いられる。
【００１９】
図３は、所望のタップ位置及び所望の出力抽出位置を設定可能な線形帰還シフトレジスタ及び出力用ＸＯＲ回路を含む回路構成を示す図である。図３に示す回路は、シフトレジスタ２０、マスクレジスタ２１及び２２、ＡＮＤ回路２３及び２４、及びＸＯＲ回路２５及び２６を含む。シフトレジスタ２０は、ビット番号０〜３１に対応する３２個の直列接続されたフリップフロップを含む。第３１ビットから第０ビットに向けて、各フリップフロップに格納される１ビットデータが順次シフトされる。マスクレジスタ２１は３２個のフリップフロップを含み、タップ位置を設定する３２ビットのマスクデータが格納される。またマスクレジスタ２２は３２個のフリップフロップを含み、出力抽出位置を設定する３２ビットのマスクデータが格納される。
【００２０】
ＡＮＤ回路２３は、シフトレジスタ２０に格納されるデータとマスクレジスタ２１に格納されるマスクデータとのビット毎のＡＮＤを計算し、３２ビットのデータを生成する。このＡＮＤ回路２３の生成した３２ビットのデータはＸＯＲ回路２５に供給される。マスクデータが１であるビット位置においてシフトレジスタ２０のフリップフロップの出力が有効となり、マスクデータが０であるビット位置においてシフトレジスタ２０のフリップフロップの出力が無効となる。即ち、マスクデータにより、ＸＯＲ回路２５のＸＯＲ演算に影響するタップ位置が決定される。ＸＯＲ回路２５は、ＡＮＤ回路２３の出力データの全てのビットのＸＯＲを計算する。即ちＸＯＲ回路２５は、供給される３２ビットデータに対して、ＸＯＲのリダクション演算を実行する。ＸＯＲ回路２５の出力は、シフトレジスタ２０の第１７ビットのフリップフロップの入力としてフィードバックされる。なお図３の構成において、このフィードバック位置を設定可能とする仕組みは含まれていない。
【００２１】
ＡＮＤ回路２４は、シフトレジスタ２０に格納されるデータとマスクレジスタ２２に格納されるマスクデータとのビット毎のＡＮＤを計算し、３２ビットのデータを生成する。このＡＮＤ回路２４の生成した３２ビットのデータはＸＯＲ回路２６に供給される。マスクデータが１であるビット位置においてシフトレジスタ２０のフリップフロップの出力が有効となり、マスクデータが０であるビット位置においてシフトレジスタ２０のフリップフロップの出力が無効となる。即ち、マスクデータにより、ＸＯＲ回路２６のＸＯＲ演算に影響する出力抽出位置が決定される。ＸＯＲ回路２６は、ＡＮＤ回路２４の出力データの全てのビットのＸＯＲを計算する。即ちＸＯＲ回路２６は、供給される３２ビットデータに対して、ＸＯＲのリダクション演算を実行する。このＸＯＲ回路２６の出力が、第１の出力ｏｕｔｐｕｔ＿０となる。またシフトレジスタ２０の第０ビットのフリップフロップ出力が、第２の出力ｏｕｔｐｕｔ＿１となる。
【００２２】
図３に示す回路において、マスクレジスタ２１及びマスクレジスタ２２のマスクデータを適宜設定することにより、例えば図２に示す線形帰還シフトレジスタ及び出力用ＸＯＲ回路を実現することができる。またマスクデータの内容を変更すれば、異なる構成の線形帰還シフトレジスタ及び出力用ＸＯＲ回路を実現することができる。即ち、例えば図１のシフトレジスタ１１、ＸＯＲ回路１５、及びＸＯＲ回路１６からなる線形帰還シフトレジスタ及び出力用ＸＯＲ回路を実現することもできる。従って、図３に示すような所望の構成に設定可能な線形帰還シフトレジスタを含む回路を、ＤＳＰの専用命令処理ユニットに設ければ、ＳＤＲにおいて所望のスクランブルコードを生成することが可能となる。
【００２３】
しかしながら、図３に示す構成のままでは、シフト動作とＸＯＲ演算とを順次行ないスクランブルコードを計算することになり、数多くの計算サイクルがかかるという問題がある。そこで回路を並列化して、線形帰還シフトレジスタのシフト演算の複数回分を並列に計算することが好ましい。また図３に示す構成では、フィードバック位置が設定可能とはなっていない。そこでフィードバック位置を自由に設定可能とすることが好ましい。
【００２４】
以下に、本発明の実施例を添付の図面を用いて詳細に説明する。
【００２５】
図４は、受信装置の構成の一例を示す図である。図４に示す受信装置は、ＲＦ処理部３０、ＡＤ変換部３１、ＤＳＰ部３２、アプリケーションプロセッサ部３３、及び入出力部３４を含む。ＲＦ処理部３０は、アンテナにより受信された受信信号を周波数変換して、例えば中間周波数等の周波数変換後の受信信号を生成する。ＡＤ変換部３１は、アナログデジタル変換を行ない、周波数変換後の受信信号をデジタル受信信号に変換する。ＤＳＰ部３２は、デジタル受信信号に対して、デスクランブル処理を含む復調処理及び復号処理等の無線処理を行ない、復号受信データを生成する。アプリケーションプロセッサ部３３は、復号受信データに基づいて、種々のアプリケーション処理を実行する。入出力部３４は、例えば表示装置及びキーパッド等を含み、アプリケーションプロセッサ部３３により処理されたデータを表示装置に表示したり、キーパッドを介して入力された操作指示データをアプリケーションプロセッサ部３３に供給したりする。
【００２６】
図５は、ＤＳＰ部３２の構成の一例を示す図である。ＤＳＰ部３２は、ＤＳＰ（デジタル信号プロセッサ）４０、命令ＲＡＭ４１、及びデータＲＡＭ４２を含む。ＤＳＰ４０は、プログラムカウンタ５１、命令レジスタ＆デコーダ５２、レジスタファイル５３、データレジスタ５４、アドレスレジスタ５５、レジスタ５６及び５７、ＡＬＵ５８、レジスタ５９、専用命令処理ユニット６０、及びレジスタ６１及び６２を含む。プログラムカウンタ５１は、フェッチして実行する命令の格納アドレスを示すアドレスデータを保持し、このアドレスデータはプログラムの実行に従って順次インクリメントされる。プログラムカウンタ５１の保持するアドレスデータが命令ＲＡＭ４１に印加され、命令ＲＡＭ４１の対応アドレスから命令データが読み出され、命令レジスタ＆デコーダ５２に格納される。命令レジスタ＆デコーダ５２はデコード及びシーケンス制御の機能を含み、格納されている命令データをデコードし、そのデコード結果に従ってＤＳＰ４０内部の各部の動作シーケンスを制御する。これにより、読み出した命令の動作がＤＳＰ４０により実行される。
【００２７】
アドレスレジスタ５５は、ＡＬＵ（算術論理演算ユニット）５８から供給されるアドレスデータを保持する。ロード命令実行時には、このアドレスデータが指し示すデータＲＡＭ４２のアドレスからデータを読み出す。読み出されたデータは、データレジスタ５４に一時保持され、その後レジスタファイル５３中の指定レジスタに格納される。またストア命令実行時には、レジスタファイル５３中の指定レジスタのデータがデータレジスタ５４に一時保持され、その後アドレスレジスタ５５のアドレスデータが指し示すデータＲＡＭ４２のアドレスに、このデータが書き込まれる。
【００２８】
ＡＬＵ５８は、加算及び減算等の算術演算と、ＡＮＤ及びＯＲ演算等や更にはシフト演算等の論理演算を実行する汎用の処理ユニットである。レジスタファイル５３からレジスタ５６及び５７に転送されたデータを演算対象として、指定された算術又は論理演算を実行する。演算結果はレジスタ５９に一時的に保持され、その後レジスタファイル５３の指定レジスタに格納される。
【００２９】
専用命令処理ユニット６０は、演算が複雑で演算量が多いためにＡＬＵ５８では要求される演算性能を満たせない無線処理を実行するために、専用に設けられた処理ユニットである。専用命令処理ユニット６０は、例えば、スクランブルコードを生成するための論理回路を含む。この論理回路は、図４で説明したような所望の構成に設定可能な線形帰還シフトレジスタ及び出力用ＸＯＲ回路を少なくとも含む。
【００３０】
図６は、スクランブルコード生成のための論理回路の構成の一例を示す図である。図６に示す論理回路は、シフト処理部７１、マスク・ＸＯＲ処理部７２、出力・フィードバック値生成処理部７３を含む。シフト処理部７１は、線形帰還シフトレジスタのフィードバック位置をレジスタ最上位ビットに設定するために、シフト演算を行なう。なおこのシフト処理部７１を専用命令処理ユニット６０に設けるのではなく、ＡＬＵ５８のシフト演算機能で代用してもよい。マスク・ＸＯＲ処理部７２は、図４で説明したようなマスクデータと線形帰還シフトレジスタの格納データとのマスク演算及びＸＯＲ演算を実行する。但しマスク・ＸＯＲ処理部７２は、後述するようにこれらのマスク演算及びＸＯＲ演算を複数ビット分（線形帰還シフトレジスタの複数シフト動作分）並列に実行する。マスク・ＸＯＲ処理部７２は、線形帰還シフトレジスタの帰還データ（フィードバックデータ）の寄与分を無視して上記のマスク演算及びＸＯＲ演算を実行することで、並列な演算を可能としている。出力・フィードバック値生成処理部７３は、無視されていた帰還データの寄与分を含めるように追加のマスク演算及びＸＯＲ演算を実行し、出力データを計算する。
【００３１】
図７は、シフト処理部７１及びマスク・ＸＯＲ処理部７２の構成の一例を示す図である。レジスタ８０は、線形帰還シフトレジスタの格納データを格納するレジスタである。レジスタ８０にシフト機能は必要としない。レジスタ８１は、出力ＸＯＲ演算の入力データについてのマスク処理のために、マスクデータを格納するレジスタである。レジスタ８２は、線形帰還シフトレジスタの帰還データを計算するためのＸＯＲ演算の入力データについてのマスク処理のために、マスクデータを格納するレジスタである。これらのレジスタ８０乃至８２は、専用命令処理ユニット６０の内部のレジスタであってもよいし、専用命令処理ユニット６０外部のレジスタ５６及び５７やレジスタファイル５３内のレジスタ等であってもよい。
【００３２】
シフト回路８３−１乃至８３−３は、図６のシフト処理部７１に相当し、それぞれレジスタ８０乃至８２の格納データを指定ビット数左にシフトする。シフト後のデータは、それぞれレジスタ８４乃至８６に格納される。これにより、例えば３２ビット幅のレジスタ８０に格納される例えばｋビット（ｋ＜３２）のデータが、最上位ビット側に詰めるように左シフトされ、例えば３２ビット幅のレジスタ８４において最上位ビットから上位ｋビットの位置に格納されることになる。同様に、例えば３２ビット幅のレジスタ８１に格納される例えばｋビット（ｋ＜３２）のマスクデータが、最上位ビット側に詰めるように左シフトされ、例えば３２ビット幅のレジスタ８５において最上位ビットから上位ｋビットの位置に格納されることになる。同様に、例えば３２ビット幅のレジスタ８２に格納される例えばｋビット（ｋ＜３２）のマスクデータが、最上位ビット側に詰めるように左シフトされ、例えば３２ビット幅のレジスタ８６において最上位ビットから上位ｋビットの位置に格納されることになる。ここで、左詰されて格納されたデータの右側の残りのビット（最下位ビット側の残りのビット）には、ゼロが格納される。
【００３３】
なおレジスタ８４乃至８６は、レジスタ８０乃至８２と同一のレジスタでもよい。またレジスタ８５及び８６の各々は、図７において複数個示されているが、並列複数個のＡＮＤ回路の入力として便宜上複数個示されているに過ぎず、実際には１個ずつ設けられていればよい。
【００３４】
マスク・ＸＯＲ処理部７２は、シフト配線８７−０乃至８７−７、ＡＮＤ回路８８−０乃至８８−７、ＡＮＤ回路８９−０乃至８９−７、ＸＯＲ回路９０−０乃至９０−７、及びＸＯＲ回路９１−０乃至９１−７を含む。ここで各回路は８個ずつ並列に設けられており、マスク処理及びＸＯＲ演算を８ビット並列に実行する回路、即ち、線形帰還シフトレジスタの８回のシフト演算分を並列に実行する回路となっている。ここで並列数ｎは８に限定されるものではなく、２からレジスタのビット幅迄の任意の数であってよい。
【００３５】
図７に示す並列数ｎが８の例において、シフト配線８７−０乃至８７−７は、レジスタ８４に格納されるデータ（第１のデータ）を０乃至７ビットシフトし且つビットシフトで空いたビットに０を挿入して、並列８個のデータを生成する。ＡＮＤ回路８９−０乃至８９−７は、これら並列８個のデータの各々とレジスタ８６に格納されるデータ（第２のデータ）との間でビット毎のＡＮＤを計算する。ＸＯＲ回路９１−０乃至９１−７は、ＡＮＤ計算により得られる並列８個のデータの各々について全てのビットのＸＯＲを計算することにより、８個の１ビットデータｂ＿ａｎｄ＿ｘｏｒ８乃至ｂ＿ａｎｄ＿ｘｏｒ１を並列に生成する。
【００３６】
ここでシフト配線８７−０乃至８７−７は、図７においてあたかも８個のレジスタが設けられているかのように図示されているが、並列８個のＡＮＤ回路の入力として便宜上そのように示されているに過ぎず、実際には単なる信号の配線でよい。勿論、実際に８個のレジスタが設けられていてもよいが、そのような構成は、ゲート段数を増やすのみである。
【００３７】
例えばシフト配線８７−３の部分を例にとり、ＡＮＤ演算及びＸＯＲ演算について説明する。シフト配線８７−３は、レジスタ８４の格納データを３ビット右にシフトし、この右シフトにより空きビットとなる最上位ビットからの３つのビット位置に、ビット値０を挿入する配線となっている。本来の線形帰還シフトレジスタの動作では、これらのビット位置に帰還データが格納されるが、帰還データの計算を行なっていたのでは８ビット分を並列に計算できない。そこで図７に示す回路では、帰還データが０であるとして、即ち帰還データの寄与分を取り敢えず無視して、ＡＮＤ演算及びＸＯＲ演算を実行する。ＡＮＤ回路８９−３は、シフト配線８７−３が生成した３ビット右シフトした状態のデータとレジスタ８６のマスクデータとのビット毎のＡＮＤを計算することにより、マスク処理を実行する。このマスク処理により、線形帰還シフトレジスタのタップ位置（帰還データに寄与するビット位置）が制御される。ＸＯＲ回路９１−３は、ＡＮＤ計算により得られた３２ビットのデータを入力とし、これら３２ビット全てのビットのＸＯＲを計算する、即ちＸＯＲのリダクション演算を実行する。これにより、レジスタ８４の格納データの３ビットシフト状態での１ビットのデータｂ＿ａｎｄ＿ｘｏｒ５を生成する。
【００３８】
ＡＮＤ回路８８−０乃至８８−７及びＸＯＲ回路９０−０乃至９０−７は、用いるマスクデータがレジスタ８５に格納されていることを除き、上記説明したＡＮＤ回路８９−０乃至８９−７及びＸＯＲ回路９１−０乃至９１−７と同様の動作を実行する。即ち、ＡＮＤ回路８８−０乃至８８−７は、シフト配線８７−０乃至８７−７により得られる０乃至７ビットシフト後の並列８個のデータの各々と、レジスタ８５に格納されるデータ（第３のデータ）との間でビット毎のＡＮＤを計算する。ＸＯＲ回路９０−０乃至９０−７は、ＡＮＤ計算により得られる並列８個のデータの各々について全てのビットのＸＯＲを計算することにより、８個の１ビットデータａ＿ａｎｄ＿ｘｏｒ８乃至ａ＿ａｎｄ＿ｘｏｒ１を並列に生成する。
【００３９】
図８は、出力・フィードバック値生成処理部７３の構成の一例を示す図である。図８において、図７と同一の構成要素は同一の番号で参照し、その説明は適宜省略する。この出力・フィードバック値生成処理部７３は、上記のマスク・ＸＯＲ処理部７２により無視された帰還データの寄与分を計算すると共に、出力データを計算する。出力・フィードバック値生成処理部７３は、図８（ａ）に示す出力値生成処理回路と、図８（ｂ）に示すフィードバック値生成処理回路とに分けられる。
【００４０】
出力・フィードバック値生成処理部７３は、ＡＮＤ回路群１０１及び１０２、ＸＯＲ回路１０３−１乃至１０３−７、及びＸＯＲ回路１０４−１乃至１０４−７を含む。図７で説明したように、レジスタ８５には、出力ＸＯＲ演算の入力データについてのマスク処理のために、左詰されたマスクデータが格納される。またレジスタ８６には、帰還データを計算するためのＸＯＲ演算の入力データについてのマスク処理のために、左詰されたマスクデータが格納される。またレジスタ９５には、図７のマスク・ＸＯＲ処理部７２により計算された８個の１ビットデータａ＿ａｎｄ＿ｘｏｒ８乃至ａ＿ａｎｄ＿ｘｏｒ１が格納される。またレジスタ９６には、マスク・ＸＯＲ処理部７２により計算された８個の１ビットデータｂ＿ａｎｄ＿ｘｏｒ８乃至ｂ＿ａｎｄ＿ｘｏｒ１が格納される。レジスタ９５及び９６の格納データは、それぞれＸＯＲ回路１０３−１乃至１０３−７及びＸＯＲ回路１０４−１乃至１０４−７に供給される。なおレジスタ９５及び９６を設けることなく、マスク・ＸＯＲ処理部７２の出力をそのまま信号配線を介して直接にＸＯＲ回路１０３−１乃至１０３−７及びＸＯＲ回路１０４−１乃至１０４−７に供給してもよい。
【００４１】
図８（ｂ）に示すＡＮＤ回路群１０２及びＸＯＲ回路１０４−１乃至１０４−７は、レジスタ８４に格納されるデータ（第１のデータ）をｍ（０＜ｍ＜ｎ）ビットシフトした状態での帰還データを生成する。具体的には、ＡＮＤ回路群１０２は、上記第１のデータを０乃至ｍ−１ビットシフトしたそれぞれの状態での過去のｍ個の帰還データとレジスタ８６の格納データ（第２のデータ）の対応ビットとの間でのビット毎のＡＮＤを計算する。ＸＯＲ回路１０４−１乃至１０４−７は、このＡＮＤ計算により得られる全てのビットと上記第１のデータのｍビットシフト状態での１ビットデータ（ｂ＿ａｎｄ＿ｘｏｒ８乃至ｂ＿ａｎｄ＿ｘｏｒ１の対応する１つ）とのＸＯＲを計算する。
【００４２】
まずｍが０の場合、即ちレジスタ８４に格納されるデータ（第１のデータ）を０ビットシフトした状態での帰還データを生成する場合を考える。この場合、第１のデータの０ビットシフト状態での１ビットデータｂ＿ａｎｄ＿ｘｏｒ８が、そのまま０ビットシフトした状態での帰還データｓｈ＿ｘｏｒ８となる。
【００４３】
次にｍが１の場合、即ちレジスタ８４に格納されるデータ（第１のデータ）を１ビットシフトした状態での帰還データを生成する場合を考える。この場合、ＡＮＤ回路群１０２のＡＮＤ回路１０２−１は、上記第１のデータを０ビットシフトした状態での過去の１個の帰還データｓｈ＿ｘｏｒ８とレジスタ８６の格納データの対応ビット（ビット３１）との間でのビット毎のＡＮＤを計算する。ＸＯＲ回路１０４−１は、このＡＮＤ計算により得られる全てのビット（１ビット）と上記第１のデータの１ビットシフト状態での１ビットデータｂ＿ａｎｄ＿ｘｏｒ７とのＸＯＲを計算する。これについて更に説明すると、第１のデータの１ビットシフト状態での１ビットデータｂ＿ａｎｄ＿ｘｏｒ７は、第１のデータを０ビットシフトした状態での過去の１個の帰還データｓｈ＿ｘｏｒ８の寄与分を含んでいない。そこで、まずマスクデータの対応ビット（レジスタ８６のビット３１）の値とのＡＮＤをとることにより、この過去の帰還データｓｈ＿ｘｏｒ８が有効か無効かを制御する。そしてこのＡＮＤ演算の結果を、過去の帰還データｓｈ＿ｘｏｒ８を無視してＸＯＲ計算した結果である１ビットデータｂ＿ａｎｄ＿ｘｏｒ７にＸＯＲすることで、帰還データｓｈ＿ｘｏｒ８を考慮したＸＯＲ値が得られる。このようにして、第１のデータを１ビットシフトした状態での帰還データｓｈ＿ｘｏｒ７が得られる。
【００４４】
次にｍが２の場合、即ちレジスタ８４に格納されるデータ（第１のデータ）を２ビットシフトした状態での帰還データを生成する場合を考える。この場合、ＡＮＤ回路１０２−２及び１０２−３が、第１のデータを０乃至１ビットシフトしたそれぞれの状態での過去の２個の帰還データ（ｓｈ＿ｘｏｒ８，７）とレジスタ８６の格納データの対応ビット（ビット３０，３１）との間でのビット毎のＡＮＤを計算する。ＸＯＲ回路１０４−２は、このＡＮＤ計算により得られる全てのビット（２ビット）と上記第１のデータの２ビットシフト状態での１ビットデータｂ＿ａｎｄ＿ｘｏｒ６とのＸＯＲを計算する。これにより、第１のデータを２ビットシフトした状態での帰還データｓｈ＿ｘｏｒ６が得られる。
【００４５】
以下同様である。例えば、ｍが４の場合、レジスタ８４に格納されるデータ（第１のデータ）を４ビットシフトした状態での帰還データを生成する。ＡＮＤ回路１０２−４乃至１０２−７は、第１のデータを０乃至３ビットシフトしたそれぞれの状態での過去の４個の帰還データ（ｓｈ＿ｘｏｒ８〜５）とレジスタ８６の格納データの対応ビット（ビット２８〜３１）との間でのビット毎のＡＮＤを計算する。ＸＯＲ回路１０４−４は、このＡＮＤ計算により得られる全てのビット（４ビット）と上記第１のデータの４ビットシフト状態での１ビットデータｂ＿ａｎｄ＿ｘｏｒ４とのＸＯＲを計算する。これにより、第１のデータを４ビットシフトした状態での帰還データｓｈ＿ｘｏｒ４が得られる。
【００４６】
図８（ａ）に示すＡＮＤ回路群１０１及びＸＯＲ回路１０３−１乃至１０３−７は、レジスタ８４に格納されるデータ（第１のデータ）をｍ（０＜ｍ＜ｎ）ビットシフトした状態での出力データを生成する。具体的には、ＡＮＤ回路群１０１は、過去のｍ個の帰還データとレジスタ８５に格納されるデータ（第３のデータ）の対応ビットとの間でのビット毎のＡＮＤを計算する。ＸＯＲ回路１０３−１乃至１０３−７は、このＡＮＤ計算により得られる全てのビットと上記第１のデータのｍビットシフト状態での１ビットデータ（ａ＿ａｎｄ＿ｘｏｒ８乃至ａ＿ａｎｄ＿ｘｏｒ１の対応する１つ）とのＸＯＲを計算する。これにより、上記第１のデータをｍビットシフトした状態での出力データを生成する。
【００４７】
まずｍが０の場合、即ちレジスタ８４に格納されるデータ（第１のデータ）を０ビットシフトした状態での出力データを生成する場合を考える。この場合、第１のデータの０ビットシフト状態での１ビットデータａ＿ａｎｄ＿ｘｏｒ８が、そのまま０ビットシフトした状態での出力データａ＿ｘｏｒ８となる。
【００４８】
次にｍが１の場合、即ちレジスタ８４に格納されるデータ（第１のデータ）を１ビットシフトした状態での出力データを生成する場合を考える。この場合、ＡＮＤ回路群１０１のＡＮＤ回路１０１−１は、上記第１のデータを０ビットシフトした状態での過去の１個の帰還データｓｈ＿ｘｏｒ８とレジスタ８５の格納データの対応ビット（ビット３１）との間でのビット毎のＡＮＤを計算する。ＸＯＲ回路１０３−１は、このＡＮＤ計算により得られる全てのビット（１ビット）と上記第１のデータの１ビットシフト状態での１ビットデータａ＿ａｎｄ＿ｘｏｒ７とのＸＯＲを計算する。このようにして、第１のデータを１ビットシフトした状態での出力データａ＿ｘｏｒ７が得られる。
【００４９】
次にｍが２の場合、即ちレジスタ８４に格納されるデータ（第１のデータ）を２ビットシフトした状態での出力データを生成する場合を考える。この場合、ＡＮＤ回路１０１−２及び１０１−３が、第１のデータを０乃至１ビットシフトしたそれぞれの状態での過去の２個の帰還データ（ｓｈ＿ｘｏｒ８，７）とレジスタ８５の格納データの対応ビット（ビット３０，３１）との間でのビット毎のＡＮＤを計算する。ＸＯＲ回路１０３−２は、このＡＮＤ計算により得られる全てのビット（２ビット）と上記第１のデータの２ビットシフト状態での１ビットデータａ＿ａｎｄ＿ｘｏｒ６とのＸＯＲを計算する。これにより、第１のデータを２ビットシフトした状態での出力データａ＿ｘｏｒ６が得られる。
【００５０】
以下同様である。例えば、ｍが４の場合、レジスタ８４に格納されるデータ（第１のデータ）を４ビットシフトした状態での出力データを生成する。ＡＮＤ回路１０１−４乃至１０１−７は、第１のデータを０乃至３ビットシフトしたそれぞれの状態での過去の４個の帰還データ（ｓｈ＿ｘｏｒ８〜５）とレジスタ８５の格納データの対応ビット（ビット２８〜３１）との間でのビット毎のＡＮＤを計算する。ＸＯＲ回路１０３−４は、このＡＮＤ計算により得られる全てのビット（４ビット）と上記第１のデータの４ビットシフト状態での１ビットデータａ＿ａｎｄ＿ｘｏｒ４とのＸＯＲを計算する。これにより、第１のデータを４ビットシフトした状態での帰還データａ＿ｘｏｒ４が得られる。
【００５１】
以下、同様にして、図７に示す回路によるマスク及びＸＯＲ処理と図８に示す回路による帰還データ及び出力データ生成処理とを繰り返すことで、スクランブルコードを生成することができる。この際、図７において並列計算した８ビットの次の８ビットを計算するために、レジスタ８４のデータを８ビットシフト後のデータに置き換える。この８ビットシフト後のデータは、シフト配線８７−７が生成した７ビットシフトデータを更に右に１ビットシフトし、その最上位ビット側の８ビットに図８（ｂ）の回路で計算した帰還データｓｈ＿ｘｏｒ８乃至ｓｈ＿ｘｏｒ１を挿入して作成することができる。
【００５２】
図９は、シフト処理部７１の構成の一例を示す図である。図９に示すシフト処理部７１は、８ビットバレルシフタであり、入力データレジスタ１１１、シフト量レジスタ１１２、及びセレクタ１１３乃至１１５を含む。入力データレジスタ１１１には、シフト対象のデータが格納される。シフト量レジスタ１１２には、シフト量（シフトビット数）として０乃至７ビットを指定する３ビット幅のシフト量指定データが格納される。セレクタ１１３乃至１１５は２対１（１６ビット入力で８ビット出力）のレジスタである。セレクタ１１３は、入力データレジスタ１１１からの実線で示す信号線入力により入力データを左１ビットシフトし最下位ビットに０を挿入したシフトデータと、入力データレジスタ１１１からの点線で示す信号線入力によるシフト無しデータとの何れかを選択する。何れかを選択するかは、シフト量レジスタ１１２のシフト量データの最下位ビットにより決まる。セレクタ１１４は、セレクタ１１３からの実線で示す信号線入力によりデータを左２ビットシフトし最下位２ビットに０を挿入したシフトデータと、セレクタ１１３からの点線で示す信号線入力によるシフト無しデータとの何れかを選択する。何れかを選択するかは、シフト量レジスタ１１２のシフト量データの第２番目のビットにより決まる。セレクタ１１５は、セレクタ１１４からの実線で示す信号線入力によりデータを左４ビットシフトし最下位４ビットに０を挿入したシフトデータと、セレクタ１１４からの点線で示す信号線入力によるシフト無しデータとの何れかを選択する。何れかを選択するかは、シフト量レジスタ１１２のシフト量データの最上位ビットにより決まる。
【００５３】
このようにして、図９に示すバレルシフタでは、０乃至７ビットのうちから指定したシフト量の左シフトを実現することができる。同様にして、３２ビットの入力データを対象とし、５段のセレクタを用い、５ビットのシフト量データによりシフトビット数を指定することにより、０〜３１ビットの任意のシフト量を実現することができる。
【００５４】
特許文献１の図１３における、ＯＵＴＰＵＴｎは、スクランブルコード長（FFサイズ）が３２ビットの場合、ＩＮＰＵＴｎからＯＵＴＰＵＴｎまで、最低でも３２段のセレクタを通過する必要がある。２対１のセレクタは２段の基本論理ゲート（ＡＮＤ及びＯＲ）で構成されるため、ゲート換算では６４段の処理段数が必要になる。それに対して図６に示す回路の場合、シフト処理部７１の３２ビット入力のバレルシフタのセレクタ段数は５段となり、ゲート換算では１０段となる。マスク・ＸＯＲ処理部７２でのビット毎のＡＮＤ演算は１段のゲートであり、その後のＸＯＲ演算は３２ビット入力に対して２入力ＸＯＲゲートが５段である。従ってシフト処理部７１及びマスク・ＸＯＲ処理部７２（図７の回路）による中間結果（ａ＿ａｎｄ＿ｘｏｒ８〜１及びｂ＿ａｎｄ＿ｘｏｒ８〜１）を得るまでに、１０段＋１段＋５段で１６段の処理段数となる。中間結果以降の処理段数は、図８の回路と特許文献1の方式とでほぼ同等である。従って、中間結果を得るまでの特許文献1の方式における６４段の処理段数に対して、図６の回路における１６段の処理段数を比較すると、図６の回路が高速に処理可能であることが分かる。
【００５５】
なお図６の論理回路の構成の一例では、最初にシフト処理部７１によるシフト処理を行ない、図７に示すようにレジスタ８４乃至８６において演算対象データが最上位ビットから開始されるようにしている。しかし図７の演算処理の内容を考えれば分かるように、必要な有効ビット以外のマスクデータのビットが０に設定されているならば、例えば演算対象データが全て右詰めで最上位ビット側に設けられていてもよい。更に言えば、レジスタ８４乃至８６において演算対象データの格納位置が互いに一致するように揃ってさえいればよく、絶対的な格納ビット位置は問題とはならない。但し、図８において、レジスタ８５とＡＮＤ回路群１０１の配線接続は固定であり、またレジスタ８６とＡＮＤ回路群１０２との配線接続は固定であるので、図８の計算のためにはマスクデータが最上位ビット側に左詰されていることが必要となる。
【００５６】
以上から、例えば、図７においてＡＮＤ回路８８−０乃至８８−７にはシフト前のレジスタ８１の格納データを入力し、ＡＮＤ回路８９−０乃至８９−７にはシフト前のレジスタ８２の格納データを入力してよい。そして図８において、レジスタ８１のデータをシフトして左詰めしたレジスタ８５の格納データをＡＮＤ回路群１０１への入力とし、レジスタ８２のデータをシフトして左詰めしたレジスタ８６の格納データをＡＮＤ回路群１０２への入力としてよい。
【００５７】
図１０は、スクランブルコード生成のための論理回路の構成の別の一例を示す図である。この構成では、最初にマスク・ＸＯＲ処理部７２によりマスク演算及びＸＯＲ演算を実行し、次にシフト処理部７１により、上記のようにレジスタ８１及び８２のデータをシフトしてレジスタ８５及び８６に格納している。その後、出力・フィードバック値生成処理部７３により出力データ値と帰還データ値との計算を行なっている。このように、シフト処理部７１によるシフト演算を実行するタイミングは、図６に示す構成に限られるものではなく、図１０に示す構成のようなタイミングであってもよい。更に言えば、出力・フィードバック値生成処理部７３の動作を開始するまでにレジスタ８１及び８２のデータをシフトしてレジスタ８５及び８６に格納してさえおけばよいので、例えばシフト処理部７１とマスク・ＸＯＲ処理部７２とを並列に実行してもよい。この場合、シフト処理部７１及びマスク・ＸＯＲ処理部７２による中間結果を得るまでに、１０段の処理段数と６段の処理段数との長い方の１０段の処理段数がかかることになり、より高速な処理が可能となる。
【００５８】
以上、本発明を実施例に基づいて説明したが、本発明は上記実施例に限定されるものではなく、特許請求の範囲に記載の範囲内で様々な変形が可能である。
【００５９】
なお本願発明は以下の内容を含むものである。
（付記１）
線形帰還シフトレジスタのシフト処理及び帰還データを計算する論理回路であって、
第１のデータを０乃至ｎ−１ビットシフトし且つビットシフトで空いたビットに０を挿入して得られる並列ｎ個のデータの各々と第２のデータとの間でビット毎のＡＮＤを計算し、該ＡＮＤ計算により得られる並列ｎ個のデータの各々について全てのビットのＸＯＲを計算することにより、ｎ個の１ビットデータを並列に生成するＸＯＲ処理部と、
前記第１のデータをｍ（０＜ｍ＜ｎ）ビットシフトした状態での帰還データを生成するために、前記第１のデータを０乃至ｍ−１ビットシフトしたそれぞれの状態での過去のｍ個の帰還データと前記第２のデータの対応ビットとの間でのビット毎のＡＮＤを計算し、該ＡＮＤ計算により得られる全てのビットと前記第１のデータのｍビットシフト状態での前記１ビットデータとのＸＯＲを計算する値生成処理部と
を含むことを特徴とする論理回路。
（付記２）
前記ＸＯＲ処理部は更に、前記第１のデータを０乃至ｎ−１ビットシフトし且つビットシフトで空いたビットに０を挿入して得られる前記並列ｎ個のデータの各々と第３のデータとの間でビット毎のＡＮＤを計算し、該ＡＮＤ計算により得られる並列ｎ個のデータの各々について全てのビットのＸＯＲを計算することにより、ｎ個の第２の１ビットデータを並列に生成し、
前記値生成処理部は更に、前記過去のｍ個の帰還データと前記第３のデータの対応ビットとの間でのビット毎のＡＮＤを計算し、該ＡＮＤ計算により得られる全てのビットと前記第１のデータのｍビットシフト状態での前記第２の１ビットデータとのＸＯＲを計算することにより、前記第１のデータをｍビットシフトした状態での出力データを生成する
ことを特徴とする付記１記載の論理回路。
（付記３）
前記第２のデータを格納する記憶回路と、
前記第２のデータを前記記憶回路の最上位ビット側に詰めるように前記第２のデータをシフトするシフト処理部と
を更に含むことを特徴とする付記１又は２記載の論理回路。
（付記４）
受信信号を周波数変換して周波数変換後の受信信号を生成するＲＦ処理部と、
前記周波数変換後の受信信号をデジタル受信信号に変換するＡＤ変換部と、
前記デジタル受信信号に対してデスクランブル処理を含む無線処理を行なうデジタル信号プロセッサと
を含み、前記デジタル信号プロセッサは、
算術論理演算ユニットと、
専用命令処理ユニットと
を含み、前記専用命令処理ユニットは、線形帰還シフトレジスタのシフト処理及び帰還データを計算するために、
第１のデータを０乃至ｎ−１ビットシフトし且つビットシフトで空いたビットに０を挿入して得られる並列ｎ個のデータの各々と第２のデータとの間でビット毎のＡＮＤを計算し、該ＡＮＤ計算により得られる並列ｎ個のデータの各々について全てのビットのＸＯＲを計算することにより、ｎ個の１ビットデータを並列に生成するＸＯＲ処理部と、
前記第１のデータをｍ（０＜ｍ＜ｎ）ビットシフトした状態での帰還データを生成するために、前記第１のデータを０乃至ｍ−１ビットシフトしたそれぞれの状態での過去のｍ個の帰還データと前記第２のデータの対応ビットとの間でのビット毎のＡＮＤを計算し、該ＡＮＤ計算により得られる全てのビットと前記第１のデータのｍビットシフト状態での前記１ビットデータとのＸＯＲを計算する値生成処理部と
を含むことを特徴とする受信装置。
（付記５）
前記ＸＯＲ処理部は更に、前記第１のデータを０乃至ｎ−１ビットシフトし且つビットシフトで空いたビットに０を挿入して得られる前記並列ｎ個のデータの各々と第３のデータとの間でビット毎のＡＮＤを計算し、該ＡＮＤ計算により得られる並列ｎ個のデータの各々について全てのビットのＸＯＲを計算することにより、ｎ個の第２の１ビットデータを並列に生成し、
前記値生成処理部は更に、前記過去のｍ個の帰還データと前記第３のデータの対応ビットとの間でのビット毎のＡＮＤを計算し、該ＡＮＤ計算により得られる全てのビットと前記第１のデータのｍビットシフト状態での前記第２の１ビットデータとのＸＯＲを計算することにより、前記第１のデータをｍビットシフトした状態での出力データを生成する
ことを特徴とする付記４記載の受信装置。
（付記６）
前記デジタル信号プロセッサは、
前記第２のデータを格納する記憶回路と、
前記第２のデータを前記記憶回路の最上位ビット側に詰めるように前記第２のデータをシフトするシフト処理部と
を更に含むことを特徴とする付記４又は５記載の受信装置。
（付記７）
前記デジタル信号プロセッサは、前記専用命令処理ユニットによりスクランブルコードを生成し、前記スクランブルコードを用いて前記デスクランブル処理を実行することを特徴とする付記４乃至６何れか一項記載の受信装置。
（付記８）
線形帰還シフトレジスタのシフト処理及び帰還データを計算する論理演算方法であって、
第１のデータを０乃至ｎ−１ビットシフトし且つビットシフトで空いたビットに０を挿入して得られる並列ｎ個のデータの各々と第２のデータとの間でビット毎のＡＮＤを計算し、該ＡＮＤ計算により得られる並列ｎ個のデータの各々について全てのビットのＸＯＲを計算することにより、ｎ個の１ビットデータを並列に生成し、
前記第１のデータをｍ（０＜ｍ＜ｎ）ビットシフトした状態での帰還データを生成するために、前記第１のデータを０乃至ｍ−１ビットシフトしたそれぞれの状態での過去のｍ個の帰還データと前記第２のデータの対応ビットとの間でのビット毎のＡＮＤを計算し、該ＡＮＤ計算により得られる全てのビットと前記第１のデータのｍビットシフト状態での前記１ビットデータとのＸＯＲを計算する
各段階を含むことを特徴とする論理演算方法。
（付記９）
前記第１のデータを０乃至ｎ−１ビットシフトし且つビットシフトで空いたビットに０を挿入して得られる前記並列ｎ個のデータの各々と第３のデータとの間でビット毎のＡＮＤを計算し、該ＡＮＤ計算により得られる並列ｎ個のデータの各々について全てのビットのＸＯＲを計算することにより、ｎ個の第２の１ビットデータを並列に生成し、
前記過去のｍ個の帰還データと前記第３のデータの対応ビットとの間でのビット毎のＡＮＤを計算し、該ＡＮＤ計算により得られる全てのビットと前記第１のデータのｍビットシフト状態での前記第２の１ビットデータとのＸＯＲを計算することにより、前記第１のデータをｍビットシフトした状態での出力データを生成する
各段階を更に含むことを特徴とする付記８記載の論理演算方法。
【符号の説明】
【００６０】
３０  ＲＦ処理部
３１  ＡＤ変換部
３２  ＤＳＰ部
３３  アプリケーションプロセッサ部
３４  入出力部
５８  ＡＬＵ
６０  専用命令処理ユニット
７１  シフト処理部
７２  マスク・ＸＯＲ処理部
７３  出力・フィードバック値生成処理部
【図１】
0005459180.tif 000002
【図２】
0005459180.tif 000003
【図３】
0005459180.tif 000004
【図４】
0005459180.tif 000005
【図５】
0005459180.tif 000006
【図６】
0005459180.tif 000007
【図７】
0005459180.tif 000008
【図８】
0005459180.tif 000009
【図９】
0005459180.tif 000010
【図１０】
0005459180.tif 000011