(57)【要約】      （修正有）【課題】デジタルシグナルプロセッサ内で２の補数演算を実行するための改良されたシステム及び方法を提供する。【解決手段】２の補数演算を達成する方法は、複数のバイト値を受信することと、複数のバイト値を第１の部分及び第２の部分に分割することとを含む。更に、この方法は、第１の部分を、第１の４対２コンプレッサの第１のセグメントへ入力することと、第１の部分について、第１の４対２圧縮演算を実行し、第１のロウと、第１のロウから１ビットオフセットした第２のロウとを有する第１の結果のセットを生成することと、１からなる第１の値を送り、第１の２の補数演算を達成することとを含む。この方法はまた、第２の部分を、第２の４対２コンプレッサの第２のセグメントへ入力することと、１からなる第２の値を第２の部分にキャリーインし、第２の２の補数演算を達成するために、第２の部分のすぐ右側に、１からなる２つの値を加えることとを含む。【選択図】図１
2011023013.tif 000002
【特許請求の範囲】
【請求項１】
２の補数演算を達成する方法であって、
複数のバイト値を受け取ることと、
前記複数のバイト値を第１の部分及び第２の部分に分割することと、
前記第１の部分を、第１の４対２コンプレッサの第１のセグメントに入力することと、
前記第１の部分について第１の４対２圧縮演算を行い、第１のロウと、前記第１のロウから１ビットオフセットした第２のロウとを有する第１の結果のセットを生成することと、
１からなる第１の値を送り、第１の２の補数演算を達成することと
を備える方法。
【請求項２】
前記第２の部分を、第２の４対２コンプレッサの第２のセグメントに入力することと、
１からなる第２の値を、前記第２の部分に送り、第２の２の補数演算を達成するために、１からなる２つの値を、前記第２の部分のすぐ右側に加えることと、
前記第２の部分について第２の４対２圧縮演算を行い、第１のロウと、前記第１のロウから１ビットオフセットした第２のロウとを有する第２の結果のセットを生成することと
を更に備える請求項１に記載の方法。
【請求項３】
第３の２の補数演算を達成するために、１からなる第３の値を、前記第１の結果のセットの前記第２のロウのオフセットビットに入力することを更に備える請求項１に記載の方法。
【請求項４】
第４の２の補数演算を達成するために、１からなる第４の値を、前記第２の結果のセットの第２のロウのオフセットビットに入力することを更に備える請求項３に記載の方法。
【請求項５】
前記第１の結果のセットを、第１の累積値とともに、第１の３対２コンプレッサに入力することと、
前記第１の結果のセットと前記累積値とについての第１の３対２圧縮演算を行い、第１のロウと、前記第１のロウから１ビットオフセットした第２のロウとを有する第３の結果のセットを生成することと
を更に備える請求項４に記載の方法。
【請求項６】
前記第２の結果のセットを、第２の累積値とともに、第２の３対２コンプレッサに入力することと、
前記第２の結果のセットと前記累積値とについて第２の３対２圧縮演算を行い、第１のロウと、前記第１のロウから１ビットオフセットした第２のロウとを有する第４の結果のセットを生成することと
を更に備える請求項５に記載の方法。
【請求項７】
第５の２の補数演算を達成するために、１からなる第５の値を、前記第３の結果のセットの第２のロウのオフセットビットに挿入することを更に備える請求項６に記載の方法。
【請求項８】
第６の２の補数演算を達成するために、１からなる第６の値を、前記第４の結果のセットの前記第２のロウのオフセットビットに挿入することを更に備える請求項７に記載の方法。
【請求項９】
前記第３の結果のセットを、第１の循環型加算器（ＣＰＡ）に入力することと、
前記第３の結果のセットについて第１のＣＰＡ演算を実行することと
を更に備える請求項８に記載の方法。
【請求項１０】
第７の２の補数演算を達成するために、１からなる第７の値を送ることと、
第５の結果のセットを生成することと
を更に備える請求項９に記載の方法。
【請求項１１】
前記第４の結果のセットを、第２の循環型加算器（ＣＰＡ）に入力することと、
前記第４の結果のセットについて第２のＣＰＡ演算を実行することと
を更に備える請求項１０に記載の方法。
【請求項１２】
第８の２の補数演算を達成するために、１からなる第８の値を送ることと、
第６の結果のセットを生成することと
を更に備える請求項１１に記載の方法。
【請求項１３】
前記第５の結果のセットを、レジスタの第１の部分に書き込むことと、
前記第６の結果のセットを、前記レジスタの第２の部分に書き込むことと
を更に備える請求項１２に記載の方法。
【請求項１４】
１又は複数の２の補数演算を達成する方法であって、
８つのサブワード差分バイト値を判定することと、
サブワード差分バイト値の各々の符号を判定することと、
負である前記８つのサブワード差分バイト値の各々を反転し、反転されたサブワード差分バイト値のセットを生成することと、
正である前記８つのサブワード差分バイト値の各々を、リダクションツリーに入力することと、
前記反転されたサブワード差分バイト値の各々を、前記リダクションツリーに入力することと
を備える方法。
【請求項１５】
前記８つのサブワード差分バイト値に関する複数のリダクション演算を実行しながら、最大８つの１を入力することによって、最大８つの２の補数演算を達成することを更に備える請求項１４に記載の方法。
【請求項１６】
反転されたサブワード差分バイト値のセットのうちの少なくとも１つに関するリダクション演算を実行しながら、１からなる値を送ることを更に備える請求項１５に記載の方法。
【請求項１７】
前記複数のリダクション演算のうちの少なくとも１つによって生成された結果のセットのオフセットビットに、１からなる値を入力することを更に備える請求項１５に記載の方法。
【請求項１８】
前記複数のリダクション演算のうちの少なくとも１つの間、互いに２つの１を加え、前記リダクション演算によって生成された結果に、１からなる値を送ることを更に備える請求項１５に記載の方法。
【請求項１９】
命令実行ユニットであって、
第１の４対２コンプレッサと、
前記第１の４対２コンプレッサに接続された制御モジュールとを備え、
前記制御モジュールは、
８バイト値を、４バイト値からなる第１のグループと、４バイト値からなる第２のグループとに分割するロジックと、
前記第１の４対２コンプレッサを用いて、４バイト値からなる前記第１のグループを、第１のロウと第２のロウとを有する第１の結果のセットへ圧縮するロジックと、
第１の２の補数演算を達成するために、４バイト値からなる前記第１のグループを圧縮しながら、１からなる第１の値を送るロジックと、
第２の２の補数演算を達成するために、前記第１の結果のセット内の前記第２のロウのオフセットビットへ、１からなる第２の値を入力するロジックと
を備える命令実行ユニット。
【請求項２０】
前記制御モジュールに接続された第２の４対２コンプレッサを更に備え、
前記制御モジュールは、
前記第２の４対２コンプレッサを用いて、４バイト値からなる前記第２のグループを、第１のロウと第２のロウとを有する第２の結果のセットに圧縮するロジックと、
第３の２の補数演算を達成するために、４バイト値からなる前記第２のグループを圧縮しながら、１からなる第３の値を、４バイト値からなる前記第２のグループへ送るために、前記第２の４対２コンプレッサ内で互いに２つの１を加えるロジックと、
第４の２の補数演算を達成するために、前記第２の結果のセット内で前記第２のロウのオフセットビットへ、１からなる第４の値を入力するロジックと
を更に備える請求項１９に記載の命令実行ユニット。
【請求項２１】
前記制御モジュールに接続された第１の３対２コンプレッサと、
前記制御モジュールに接続された第２の３対２コンプレッサとを更に備え、
前記制御モジュールは、
前記第１の３対２コンプレッサを用い、前記第１の結果のセットと、第１の累積値とを圧縮して、第１のロウと第２のロウとを有する第３の結果のセットを生成するロジックと、
前記第２の３対２コンプレッサを用い、前記第２の結果のセットと、第２の累積値とを圧縮して、第１のロウと第２のロウとを有する第４の結果のセットを生成するロジックと、
第５の２の補数演算を達成するために、１からなる第５の値を、前記第３の結果のセット内の前記第２のロウのオフセットビットに入力するロジックと、
第６の２の補数演算を達成するために、１からなる第６の値を、前記第４の結果のセット内の前記第２のロウのオフセットビットに入力するロジックと
を更に備える請求項２０に記載の命令実行ユニット。
【請求項２２】
第１の循環型加算器と、
第２の循環型加算器とを更に備え、
前記制御モジュールは、
前記第１の循環型加算器を用いて、前記第３の結果のセットの第１のロウ及び第２のロウを加えるロジックと、
第７の２の補数演算を達成するために、前記第３の結果のセットの前記第１のロウと前記第２のロウとを加えながら、１からなる第７の値を送るロジックと、
前記第２の循環型加算器を用いて、前記第４の結果のセットの前記第１のロウと前記第２のロウとを加えるロジックと、
第８の２の補数演算を達成するために、前記第４の結果のセットの前記第１のロウと前記第２のロウとを加えながら、１からなる第８の値を送るロジックと
を更に備える請求項２１に記載の命令実行ユニット。
【請求項２３】
デジタルシグナルプロセッサであって、
メモリと、
前記メモリに反応するシーケンサと、
前記メモリに接続されたレジスタファイルと、
前記シーケンサに反応する命令実行ユニットとを備え、
前記命令実行ユニットは、
第１の４対２コンプレッサと、
第２の４対２コンプレッサと、
前記第１の４対２コンプレッサに接続された第１の３対２コンプレッサと、
前記第２の４対２コンプレッサに接続された第２の３対２コンプレッサと、
前記第１の３対２コンプレッサに接続された第１の循環型加算器と、
前記第２の３対２コンプレッサに接続された第２の循環型加算器と、
前記第１の４対２コンプレッサ、前記第２の４対２コンプレッサ、前記第１の３対２コンプレッサ、前記２の３対２コンプレッサ、前記第１の循環型加算器、及び、前記第２の循環型加算器に接続された制御モジュールとを備え、
前記制御モジュールは、
８バイト値を、４バイト値からなる第１のグループと、４バイト値からなる第２のグループとに分割するロジックと、
前記第１の４対２コンプレッサを用い、４バイト値からなる前記第１のグループを、第１のロウと第２のロウとを有する第１の結果のセットに圧縮するロジックと、
第１の２の補数演算を達成するために、４バイト値からなる前記第１のグループを圧縮しながら、１からなる第１の値を送るロジックと、
第２の２の補数演算を達成するために、前記第１の結果のセット内の前記第２のロウのオフセットビットへ、１からなる第２の値を入力するロジックと
を備えるデジタルシグナルプロセッサ。
【請求項２４】
前記制御モジュールは、
前記第２の４対２コンプレッサを用い、４バイト値からなる前記第２のグループを、第１のロウと、前記第１のロウから１ビットオフセットした第２のロウとを有する第２の結果のセットに圧縮するロジックと、
第３の２の補数演算を達成するために、４バイト値からなる前記第２のグループを圧縮しながら、１からなる第３の値を、４バイト値からなる前記第２のグループへ送るために、前記第２の４対２コンプレッサ内で互いに２つの１を加えるロジックと、
第４の２の補数演算を達成するために、１からなる第４の値を、前記第２の結果のセット内の前記第２のロウのオフセットビットに入力するロジックと
を更に備える請求項２３に記載のデジタルシグナルプロセッサ。
【請求項２５】
前記制御モジュールは、
前記第１の３対２コンプレッサを用い、前記第１の結果のセットと、第１の累積値とを圧縮して、第１のロウと第２のロウとを有する第３の結果のセットを生成するロジックと、
前記第２の３対２コンプレッサを用い、前記第２の結果のセットと、第２の累積値とを圧縮して、第１のロウと第２のロウとを有する第４の結果のセットを生成するロジックと、
第５の２の補数演算を達成するために、１からなる第５の値を、前記第３の結果のセット内の前記第２のロウのオフセットビットに入力するロジックと、
第６の２の補数演算を達成するために、１からなる第６の値を、前記第４の結果のセット内の前記第２のロウのオフセットビットに入力するロジックと
を更に備える請求項２４に記載のデジタルシグナルプロセッサ。
【請求項２６】
前記制御モジュールは、
前記第１の循環型加算器を用いて、前記第３の結果のセットの第１のロウ及び第２のロウを加えるロジックと、
第７の２の補数演算を達成するために、前記第３の結果のセットの前記第１のロウと前記第２のロウとを加えながら、１からなる第７の値を送るロジックと、
前記第２の循環型加算器を用いて、前記第４の結果のセットの前記第１のロウと前記第２のロウとを加えるロジックと、
第８の２の補数演算を達成するために、前記第４の結果のセットの前記第１のロウと前記第２のロウとを加えながら、１からなる第８の値を送るロジックと
を更に備える請求項２５に記載のデジタルシグナルプロセッサ。
【請求項２７】
ポータブル通信デバイスであって、
デジタルシグナルプロセッサを備え、
前記デジタルシグナルプロセッサは、
メモリと、
前記メモリに反応するシーケンサと、
前記メモリに接続されたレジスタファイルと、
前記シーケンサに反応する命令実行ユニットとを備え、
前記命令実行ユニットは、
第１の４対２コンプレッサと、
第２の４対２コンプレッサと、
前記第１の４対２コンプレッサに接続された第１の３対２コンプレッサと、
前記第２の４対２コンプレッサに接続された第２の３対２コンプレッサと、
前記第１の３対２コンプレッサに接続された第１の循環型加算器と、
前記第２の３対２コンプレッサに接続された第２の循環型加算器と、
前記第１の４対２コンプレッサ、前記第２の４対２コンプレッサ、前記第１の３対２コンプレッサ、前記２の３対２コンプレッサ、前記第１の循環型加算器、及び、前記第２の循環型加算器に接続された制御モジュールとを備え、
前記制御モジュールは、
前記第１の４対２コンプレッサ、前記第２の４対２コンプレッサ、前記第１の３対２コンプレッサ、前記第２の３対２コンプレッサ、前記第１の循環型加算器、及び、第２の循環型加算器を用いて８バイト値を処理しながら、最大８つの２の補数演算を達成するロジックを備えるポータブル通信デバイス。
【請求項２８】
プロセッサデバイスであって、
複数のバイト値を受け取る手段と、
前記複数のバイト値を、第１の部分のバイト値と、第２の部分のバイト値とに分割する手段と、
前記第１の部分のバイト値を、第１の４対２コンプレッサの下半分に入力する手段と、
前記第１の部分のバイト値について第１の４対２圧縮演算を行い、第１のロウと、前記第１のロウから１ビットオフセットした第２のロウとを有する第１の結果のセットを生成する手段と、
１からなる値を送り、第１の２の補数演算を達成する手段と
を備えるプロセッサデバイス。
【請求項２９】
プロセッサデバイスであって、
８つのサブワード差分バイト値を判定する手段と、
サブワード差分バイト値の各々の符号を判定する手段と、
負である各サブワード差分バイト値を反転し、反転されたサブワード差分バイト値を生成する手段と、
正である各サブワード差分バイト値を、リダクションツリーに入力する手段と、
前記反転された各サブワード差分バイト値を、前記リダクションツリーに入力する手段と、
前記８つのサブワード差分バイト値に関する複数のリダクション演算を実行しながら、最大８つの１を加えることによって、最大８つの２の補数演算を達成する手段と
を備えるプロセッサデバイス。
【発明の詳細な説明】
【技術分野】
【０００１】
本開示は、一般に、デジタルシグナルプロセッサと、そのようなデジタルシグナルプロセッサを用いるデバイスに関する。更に詳しくは、本開示は、デジタルシグナルプロセッサ内で２の補数演算を実行することに関する。
【背景技術】
【０００２】
技術の進歩によって、より小型でより強力なパーソナル計算デバイスが出現した。例えば、現在、小型かつ軽量でユーザに容易に運ばれるポータブル無線電話、携帯情報端末（ＰＤＡ）、及びページングデバイスのような無線計算デバイスを含む様々なポータブルパーソナル計算デバイスが存在する。更に詳しくは、セルラ電話及びＩＰ電話のようなポータブル無線電話は、無線ネットワークを介して音声パケットやデータパケットを通信することができる。更に、そのような多くの無線電話は、その中に組み込まれる他の種類のデバイスを含む。例えば、無線電話はまた、デジタルスチルカメラ、デジタルビデオカメラ、デジタルレコーダ、及び、オーディオファイルプレーヤを含むことができる。また、そのような無線電話は、インターネットにアクセスするために使用可能なウェブインタフェースを含むことができる。そのため、これらの無線電話は、相当の計算能力を含んでいる。
【０００３】
無線電話内に組み込まれた別のデバイスの機能を提供するプログラムの幾つかは、２の補数演算を必要とする命令を含む。例えば、絶対差の合計は、負である他の値のために、２の補数を必要とする。特定のバイト値の２の補数は、バイト内の各ビットを反転し、反転した結果に１を加えることによって決定することができる。２の補数演算を用いることによって、デジタルシグナルプロセッサ内のハードウェアを増加させる場合がある。
【０００４】
従って、デジタルシグナルプロセッサ内で２の補数演算を実行するための改良されたシステム及び方法を提供することが有利であろう。
【発明の概要】
【０００５】
２の補数演算を達成する方法が開示される。この方法は、複数のバイト値を受信することと、これら複数のバイト値を第１の部分と第２の部分に分割することとを含む。更に、この方法は、第１の部分を、第１の４対２コンプレッサの第１のセグメントへ入力することと、第１の部分について、第１の４対２圧縮演算を実行し、第１のロウと、第１のロウから１ビットオフセットした第２のロウとを有する第１の結果のセットを生成することと、１からなる第１の値をキャリーインし、第１の２の補数演算を達成することとを含む。
【０００６】
特定の実施形態では、この方法はまた、第２の部分を、第２の４対２コンプレッサの第２のセグメントへ入力することと、１からなる第２の値を第２の部分にキャリーインし、第２の２の補数演算を達成するために、第２の部分のすぐ右側に、１からなる２つの値を加えることとをも含む。更に特定の実施形態では、この方法は、第２の部分について、第２の４対２圧縮演算を実行し、第１のロウと、第１のロウから１ビットオフセットした第２のロウとを有する第２の結果のセットを生成することを含む。
【０００７】
別の特定の実施形態では、この方法は、第３の２の補数演算を達成するために、第１の結果のセットの第２のロウのオフセットビットに、１からなる第３の値を入力することを含む。更にこの方法は、第４の２の補数演算を達成するために、第２の結果のセットの第２のロウのオフセットビットに、１からなる第４の値を入力することを含むことができる。この方法は更に、第１の結果のセットを、第１の累積値とともに、第１の３対２コンプレッサに入力することと、第１の結果のセットと累積値とについて、第１の３対２圧縮演算を実行し、第１のロウと、第１のロウから１ビットオフセットした第２のロウとを有する第３の結果のセットを生成することを含むことができる。
【０００８】
また別の特定の実施形態では、この方法は、第２の結果のセットを、第２の累積値とともに、第２の３対２コンプレッサに入力することと、第２の結果のセットと累積値とについて、第２の３対２圧縮演算を実行し、第１のロウと、第１のロウから１ビットオフセットした第２のロウとを有する第４の結果のセットを生成することとを含む。また、この方法は、第５の２の補数演算を達成するために、第３の結果のセットの第２のロウのオフセットビットに、１からなる第５の値を挿入することを含む。更に、この方法は、第６の２の補数演算を達成するために、第４の結果のセットの第２のロウのオブセットビットに、１からなる第６の値を挿入することを含む。
【０００９】
別の特定の実施形態では、この方法は、第３の結果のセットを、第１の循環型加算器（ＣＰＡ：carry propagate adder）に入力することと、第３の結果にセットについて、第１のＣＰＡ演算を実行することとを備える。更に、この方法は、第７の２の補数演算を達成するために、１からなる第７の値をキャリーインすることと、第５の結果のセットを生成することとを含む。更に、特定の実施形態では、この方法は、第４の結果のセットを、第２の循環型加算器に入力することと、第４の結果のセットについて、第２のＣＰＡ演算を実行することとを含む。また、この方法は、第８の２の補数演算を達成するために、１からなる第８の値をキャリーインすることと、第６の結果のセットを生成することとを含むことができる。この方法はまた、第５の結果のセットを、レジスタの第１の部分に書き込むことと、第６の結果のセットを、レジスタの第２の部分に書き込むこととを含むことができる。
【００１０】
別の実施形態では、１又は複数の２の補数演算を達成する方法が開示される。この方法は、８つのサブワード差分バイト値を判定することと、各サブワード差分バイト値の符号を判定することと、負である８つのサブワード差分バイト値の各々を反転し、反転されたサブワード差分バイト値のセットを生成することとを含む。更に、この実施形態では、この方法は、正である８つのサブワード差分バイト値をリダクションツリーに入力することと、反転されたサブワード差分バイト値のセットの各々をリダクションツリーに入力することとを含む。
【００１１】
また別の実施形態では、命令実行ユニットが提供される。この命令実行ユニットは、第１の４対２コンプレッサと、第１の４対２コンプレッサに接続された制御モジュールと含む。この実施形態では、制御モジュールは、８バイト値を、４バイト値からなる第１のグループと、４バイト値からなる第２のグループとに分割するロジックと、第１の４対２コンプレッサを用いて、４バイト値からなる第１のグループを、第１のロウと第２のロウとを有する第１の結果のセットへ圧縮するロジックと、第１の２の補数演算を達成するために、４バイト値からなる第１のグループを圧縮しながら、１からなる第１の値をキャリーインするロジックと、第２の２の補数演算を達成するために、第１の結果のセット内の第２のロウのオフセットビットに、１からなる第２の値を入力するロジックとを含む。
【００１２】
また別の実施形態では、デジタルシグナルプロセッサが提供される。このデジタルシグナルプロセッサは、メモリと、メモリに反応するシーケンサと、メモリに接続されたレジスタファイルと、シーケンサに反応する命令実行ユニットとを含む。この実施形態では、命令実行ユニットは、第１の４対２コンプレッサと、第２の４対２コンプレッサと、第１の４対２コンプレッサに接続された第１の３対２コンプレッサと、第２の４対２コンプレッサに接続された第２の３対２コンプレッサと、第１の３対２コンプレッサに接続された第１の循環型加算器と、第２の３対２コンプレッサに接続された第２の循環型加算器とを含む。更に、制御モジュールは、第１の４対２コンプレッサ、第２の４対２コンプレッサ、第１の３対２コンプレッサ、第２の３対２コンプレッサ、第１の循環型加算器、及び第２の循環型加算器に接続される。制御モジュールは、８バイト値を、４バイト値からなる第１のグループと、４バイト値からなる第２のグループとに分割するロジックと、第１の４対２コンプレッサを用いて、４バイト値からなる第１のグループを、第１のロウと第２のロウとを有する第１の結果のセットへ圧縮するロジックと、第１の２の補数演算を達成するために、４バイト値からなる第１のグループを圧縮しながら、１からなる第１の値をキャリーインするロジックと、第２の２の補数演算を達成するために、第１の結果のセット内の第２のロウのオフセットビットに、１からなる第２の値を入力するロジックとを含む。
【００１３】
また別の実施形態では、デジタルシグナルプロセッサを含むポータブル通信デバイスが開示される。デジタルシグナルプロセッサは、メモリと、メモリに反応するシーケンサと、メモリに接続されたレジスタファイルと、シーケンサに反応する命令実行ユニットとを含む。この命令実行ユニットは、第１の４対２コンプレッサと、第２の４対２コンプレッサと、第１の４対２コンプレッサに接続された第１の３対２コンプレッサと、第２の４対２コンプレッサに接続された第２の３対２コンプレッサと、第１の３対２コンプレッサに接続された第１の循環型加算器と、第２の３対２コンプレッサに接続された第２の循環型加算器とを含む。制御モジュールは、第１の４対２コンプレッサ、第２の４対２コンプレッサ、第１の３対２コンプレッサ、第２の３対２コンプレッサ、第１の循環型加算器、及び第２の循環型加算器に接続される。この制御モジュールは、第１の４対２コンプレッサ、第２の４対２コンプレッサ、第１の３対２コンプレッサ、第２の３対２コンプレッサ、第１の循環型加算器、及び第２の循環型加算器を用いて、８バイト値を処理しながら、最大８つの２の補数演算を達成するロジックを含むことができる。
【００１４】
別の実施形態では、プロセッサデバイスが開示される。このプロセッサデバイスは、複数のバイト値を受信する手段と、複数のバイト値を、第１のバイト値からなる部分と、第２のバイト値からなる部分とに分割する手段と、第１のバイト値からなる部分を、第１の４対２コンプレッサの下半分に入力する手段と、第１のバイト値からなる部分について、第１の４対２圧縮演算を実行し、第１のロウと、第１のロウから１ビットオフセットした第２のロウとを有する第１の結果のセットを生成する手段と、第１の２の補数演算を達成するために、１からなる値をキャリーインする手段とを含む。
【００１５】
また別の実施形態では、プロセッサデバイスが提供される。このプロセッサデバイスは、８つのサブワード差分バイト値を判定する手段と、各サブワード差分バイト値の符号を判定する手段と、負のサブワード差分バイト値の各々を反転し、反転されたサブワード差分バイト値を生成する手段と、正のサブワード差分バイト値をリダクションツリーに入力する手段と、反転されたサブワード差分バイト値の各々をリダクションツリーに入力する手段と、８つのサブワード差分バイト値について、複数のリダクション演算を実行しながら、最大８つの１を加えることによって、最大８つの２の補数演算を達成する手段とを含む。
【００１６】
本明細書で開示された１又は複数の実施形態の利点は、デジタルシグナルプロセッサ内で多数のバイトリダクション演算を実行しながら、最大８つの２の補数演算を達成することを含む。
【００１７】
他の利点は、デジタルシグナルプロセッサ内で２の補数演算を実行するために必要なハードウェアを実質的に低減することを含む。
【００１８】
本開示の他の局面、利点、及び特徴は、図面の簡潔な説明、詳細な説明、及び特許請求の範囲の各セクションを含む出願全体の検討後に明らかになるであろう。
【図面の簡単な説明】
【００１９】
【図１】図１は、典型的なデジタルシグナルプロセッサの一般的な図である。
【図２】図２は、典型的な命令実行ユニットを例示する図である。
【図３】図３は、多数の命令語に関する絶対差の総和を実行する方法を例示するフローチャートである。
【図４】図４は、最大８つの２の補数演算を達成するために必要な最大８つのスティッキーな１を入力する方法を例示するフローチャートである。
【図５】図５は、デジタルシグナルプロセッサを組み込むポータブル通信デバイスの一般的な図である。
【図６】図６は、デジタルシグナルプロセッサを組み込む典型的なセルラ電話の一般的な図である。
【図７】図７は、デジタルシグナルプロセッサを組み込む典型的な無線インターネットプロトコル電話の一般的な図である。
【図８】図８は、デジタルシグナルプロセッサを組み込む典型的なポータブルデジタルアシスタントの一般的な図である。
【図９】図９は、デジタルシグナルプロセッサを組み込む典型的なオーディオファイルプレーヤの一般的な図である。
【発明を実施するための形態】
【００２０】
本明細書に記載の実施形態の局面及び付随する利点は、添付図面と連携した場合に、以下の詳細記載への参照によって、より容易に明らかになるであろう。
【００２１】
図１は、デジタルシグナルプロセッサ（ＤＳＰ）１００の典型的な、限定しない実施形態のブロック図を例示する。図１に例示するように、ＤＳＰ１００は、バス１０６を介してシーケンサ１０４に接続されたメモリ１０２を含む。本明細書で使用されるように、文言「接続された」は、２以上の構成要素が直接的又は間接的に接続されていることを示す。特定の実施形態では、バス１０６は、６４ビットバスであり、シーケンサ１０４は、３２ビット又は６４ビットの長さを有する命令を、メモリ１０２から検索するように構成される。バス１０６は、第１の命令実行ユニット１０８、第２の命令実行ユニット１１０、第３の命令実行ユニット１１２、第４の命令実行ユニット１１４に接続される。図１は、各命令実行ユニット１０８，１１０，１１２，１１４が、第１のバス１１８によって汎用レジスタファイル１１６に接続されていることを示す。汎用レジスタファイル１１６はまた、第２のバス１２０によって、シーケンサ１０４及びメモリ１０２に接続することもできる。
【００２２】
特定の実施形態では、メモリ１０２は、第１の命令キャッシュ１２２、第２の命令キャッシュ１２４、第３の命令キャッシュ１２６、第４の命令キャッシュ１２８、第５の命令キャッシュ１３０、及び第６の命令キャッシュ１３２を含んでいる。動作中、命令キャッシュ１２２，１２４，１２６，１２８，１３０，１３２は、シーケンサ１０４によって、互いに独立してアクセスされうる。更に、特定の実施形態では、各命令キャッシュ１２２，１２４，１２６，１２８，１３０，１３２はそれぞれ、複数の命令、各命令のための命令操作データ、及び、各命令のための命令事前復号データを含む。
【００２３】
図１に例示するように、メモリ１０２は、各命令キャッシュ１２２，１２４，１２６，１２８，１３０，１３２のための命令キューを含む命令キュー１３４を含むことができる。特に、命令キュー１３４は、第１の命令キャッシュ１２２に関連する第１の命令キュー１３６と、第２の命令キャッシュ１２４に関連する第２の命令キュー１３８と、第３の命令キャッシュ１２６に関連する第３の命令キュー１４０と、第４の命令キャッシュ１２８に関連する第４の命令キュー１４２と、第５の命令キャッシュ１３０に関連する第５の命令キュー１４４と、第６の命令キャッシュ１３２に関連する第６の命令キュー１４６とを含む。
【００２４】
動作中、シーケンサ１０４は、命令キュー１３４を経由して、各命令キャッシュ１２２，１２４，１２６，１２８，１３０，１３２から命令を取得することができる。特定の実施形態では、シーケンサ１０４は、第１の命令キュー１３６から第６の命令キュー１４６まで、命令キュー１３６，１３８，１４０，１４２，１４４，１４６から順番に命令を取得する。第６の命令キュー１４６から命令を取得した後、シーケンサ１０４は、第１の命令キュー１３６に戻り、命令キュー１３６，１３８，１４０，１４２，１４４，１４６から順番に命令を取得し続ける。
【００２５】
特定の実施形態では、シーケンサ１０４は、スーパースカラ命令をサポートする２ウェイスーパースカラシーケンサとして第１のモードで動作する。更に、特定の実施形態では、シーケンサはまた、超長命令語（ＶＬＩＭ）命令をサポートする第２のモードで動作する。特に、シーケンサは、４ウェイＶＬＩＭシーケンサとして動作することができる。特定の実施形態では、第１の命令実行ユニット１０８は、ロード命令、格納命令、及び、算術論理演算ユニット（ＡＬＵ）命令を実行することができる。第２の命令実行ユニット１１０は、ロード命令及びＡＬＵ命令を実行することができる。更に、第３の命令実行ユニット、乗算命令、乗累算命令（ＭＡＣ：multiply-accumulate instruction）、ＡＬＵ命令、プログラムリダイレクト構築、及び、転送レジスタ（ＣＲ）命令を実行することができる。図１は更に、第４の命令実行ユニット１１４が、シフト命令、ＡＬＵ命令、プログラムリダイレクト構築、及びＣＲ命令を実行できることを示す。特定の実施形態では、プログラムリダイレクト構築は、ゼロオーバヘッドループ、分岐命令、ジャンプ（Ｊ）命令等でありうる。
【００２６】
図１に示すように、汎用レジスタ１１６は、第１のユニファイドレジスタファイル１４８、第２のユニファイドレジスタファイル１５０、第３のユニファイドレジスタファイル１５２、第４のユニファイドレジスタファイル１５４、第５のユニファイドレジスタファイル１５６、及び第６のユニファイドレジスタファイル１５８を含む。各ユニファイドレジスタファイル１４８，１５０，１５２，１５４，１５６，１５８は、メモリ１０２内の命令キャッシュ１２２，１２４，１２６，１２８，１３０，１３２に対応する。更に、特定の実施形態では、各ユニファイドレジスタファイル１４８，１５０，１５２，１５４，１５６，１５８は、同じ構成を有し、多くのデータオペランド及び多くのアドレスオペランドを含んでいる。
【００２７】
デジタルシグナルプロセッサ１００の動作中、命令は、シーケンサ１０４によってメモリ１０２から取得され、指定の命令実行ユニット１０８，１１０，１１２，１１４に送られ、命令実行ユニット１０８，１１０，１１２，１１４において実行される。更に、１又は複数のオペランドが、汎用レジスタ１１６、例えば、ユニファイドレジスタファイル１４８，１５０，１５２，１５４，１５６，１５８のうちの１つから検索され、命令の実行中に使用される。各命令実行ユニット１０８，１１０，１１２，１１４における結果は、汎用レジスタ１１６へ、すなわち、ユニファイドレジスタファイル１４８，１５０，１５２，１５４，１５６，１５８のうちの１つに書き込まれる。
【００２８】
図２に示すように、命令実行ユニットの典型的で限定しない実施形態が示され、それは一般に２００で示される。特定の実施形態では、命令実行ユニット２００は、図１に示すシステム１００に組み込むことができる。例えば、図２に示す命令実行ユニット２００は、第４の命令実行ユニット１１４と交換することができる。図２に示すように、命令実行ユニット２００は、シフト／符号拡張ユニット２０４に接続されたベクトルブロック２０２を含んでいる。更に、第１の４：２コンプレッサ２０６及び第２の４：２コンプレッサ２０８が、シフト／符号拡張ユニット２０４に接続される。特定の実施形態では、第１の３：２コンプレッサ２１０は、第１の４：２コンプレッサ２０６に接続される。更に、特定の実施形態では、第２の３：２コンプレッサ２１２が、第２の４：２コンプレッサ２０８に接続される。
【００２９】
図２はまた、第１の循環型加算器（ＣＰＡ）２１４が、第１の３：２コンプレッサ２１０に接続されうることを示す。また、第２のＣＰＡ２１６が、第２の３：２コンプレッサ２１２に接続される。図２に示すように、実例となる実施形態では、飽和／パック／ターンケート（truncate）ユニット２１８が、第１のＣＰＡ２１４及び第２のＣＰＡ２１６に接続される。制御モジュール２２０は、シフト／符号拡張ユニット２０４、第１の４：２コンプレッサ２０６、第２の４：２コンプレッサ２０８、第１の３：２コンプレッサ２１０、第２の３：２コンプレッサ２１２、第１のＣＰＡ２１４、及び第２のＣＰＡ２１６に接続される。また、図２に示すように、命令実行ユニット２００は、レジスタ２２０に接続され、圧縮演算とＣＰＡ演算との結果が、レジスタ２２０に書き込まれる。図２は更に、制御モジュール２２２に接続されるインバータ２２４を示す。
【００３０】
図３は、図２に示す命令実行ユニット２００のようなデジタルシグナルプロセッサの命令実行ユニット内で多数の２の補数演算を実行する方法の典型的で限定しない実施形態を示す。ブロック３００で始まり、複数のサブワード差分が計算される。特定の実施形態では、複数のサブワード差分の各々は、８ビット幅である１バイトである。更に、サブワード差分はそれぞれ、第１のワードの第１の部分と、第２のワードの第１の部分との間の差分、あるいは、第１のワードの第２の部分と、第２のワードの第２の部分との間の差分を表す。判定ステップ３０４に移り、シフト／符号拡張ユニットが、各サブワード差分の符号が、正であるか負であるかを判定する。
【００３１】
ブロック３０４では、負のサブワード差分のそれぞれが反転される。その後、ブロック３０６では、反転された各サブワード差分が、例えば、シフト／符号拡張ユニットに接続されたベクトルブロックから、シフト／符号拡張ユニットへ渡される。その後、方法は、ブロック３０８へ進む。一方、判定ステップ３０２へ戻って、サブワード差分の符号が正であれば、方法はブロック３１０へ進み、オリジナルのサブワード差分が、シフト／符号拡張ユニットへ渡される。その後、ロジックは、ブロック３０８へ進む。
【００３２】
ブロック３０８では、シフト／符号拡張ユニットが、オリジナルの各サブワード差分と、反転された各サブワード差分とを３２ビットに符号拡張する。ブロック３１２に移動して、符号／シフト拡張器は、符号拡張されたオリジナルのサブワード差分と、符号拡張された反転されたサブワード差分とを、１対の４：２コンプレッサ、１対の３：２コンプレッサ、及び１対の循環型加算器を含むリダクションツリーへ入力する。ブロック３１４では、反転された各サブワード差分のための２の補数演算を達成するために、反転された各サブワード差分について“スティッキー”な１を加えながら、リダクションツリーが、入力されたサブワード差分について３２ビットバイトリダクションを実行する。次に、ブロック３１６では、リダクションツリーが、バイトリダクション結果をレジスタに書き込む。その後、方法は、状態３１８で終了する。
【００３３】
図４に、リダクションツリー内で最大８つの２の補数演算を達成するために最大８つのスティッキーな１を加える方法が示される。この方法は、ブロック４００で開始される。ブロック４００において、シフト／符号拡張ユニットは、複数のバイトを受け取る。特定の実施形態では、シフト／符号拡張ユニットは、８バイトを受け取る。また、各バイトはそれぞれ８ビットを含んでいる。特定の実施形態では、バイトはそれぞれ、２つのワード間のサブワード差分に相当する。ブロック４０２では、シフト／符号拡張ユニットが、第１の部分及び第２の部分へ各バイトを分割する。特定の実施形態では、第１の部分は、例えばバイト０からバイト３までの４ビットからなる第１のグループを含み、第２の部分は、例えばバイト４からバイト７までの４ビットからなる第２のグループを含む。
【００３４】
ブロック４０４へ移動して、シフト／符号拡張ユニットは、バイト値の第１の部分を、第１の４：２コンプレッサへ入力する。特定の実施形態では、第１の４：２コンプレッサは、例えば、０から６３までの６４ビットからなる４つのロウを含む６４ビットコンプレッサである。更に、特定の実施形態では、シフト／符号拡張ユニットは、例えば、第１の４：２コンプレッサの下位ビットのようなバイト値の第１の部分を、第１の４：２コンプレッサの第１のセグメントへ入力する。特定の実施形態では、第１の４：２コンプレッサの下位ビットは、例えば、各ロウについてビット０からビット３１のような第１の４：２コンプレッサの各ロウの下位３２ビットを含む。
【００３５】
ブロック４０６に進み、シフト／符号拡張ユニットは、バイト値の第２の部分を第２の４：２コンプレッサへ入力する。特定の実施形態では、第２の４：２コンプレッサは、６４ビットコンプレッサであり、シフト／符号拡張ユニットは、例えば、第２の４：２コンプレッサの上位ビットのようなバイト値の第２の部分を、第２の４：２コンプレッサの第２の部分へ入力する。第２の４：２コンプレッサの上位ビットは、例えば各ロウのビット３２からビット６４のように、第２の４：２コンプレッサの各ロウの上位３２ビットを含む。
【００３６】
ブロック４０８では、第１の４：２コンプレッサが、第１の４：２圧縮を行い、第１の４：２コンプレッサに接続された制御モジュールによって提供された第１のスティッキーな１ビットをキャリーインする。特定の実施形態では、第１のスティッキーな１ビットは、第１の２の補数演算を達成する。次に、ブロック４１０において、第２の４：２コンプレッサが、第２の４：２圧縮を行い、第２のスティッキーな１ビットをその中に生成する。特定の実施形態では、第２のスティッキーな１ビットが、例えば、ロウ１のビット３１及びロウ２のビット３１内のように、第２の４：２コンプレッサ内のバイト値の２の始まりに直ぐ隣接した２つの１を加えることによって生成される。そのため、第２のスティッキーな１ビットは、４：２圧縮の結果へ繰り越される。第２のスティッキーは、第２の２の補数演算を達成する。
【００３７】
ブロック４１２に進んで、第１の４：２コンプレッサは、第１の結果のセットを生成する。特定の実施形態では、第１の結果のセットは、第１のロウと第２のロウとを含む。更に、特定の実施形態では、第２のロウは、第１のロウから１ビットオフセットされる。つまり、第１の結果のセット内の第２のロウは、１ビット左にオフセットしている。そのため、第２のロウは、第２のロウのビット０の前のオフセットビットを含み、このオフセットビットは、第２のロウ内の最下位ビットである。ブロック４１４へ進み、第２の４：２コンプレッサが、第２の結果のセットを生成する。特定の実施形態では、第２の結果のセットは、第１のロウと第２のロウとを含んでいる。更に、特定の実施形態では、第２のロウが、第１のロウから１ビットオフセットされる。すなわち、第２の結果のセット内の第２のロウは、左に１ビットオフセットされる。
【００３８】
ブロック４１６へ進み、制御モジュールが、第３の２の補数演算を達成するために、第３のスティッキーな１ビットを、第１の結果のセットの第２のロウ、例えば、第１の結果のセットの第２のロウ内のオフセットビットに入力する。ブロック４１８では、制御モジュールが、第４の２の補数演算を達成するために、第４のスティッキーな１ビットを、第２の結果のセットの第２のロウ、例えば、第２の結果のセットの第２のロウ内のオフセットビットに入力する。ブロック４２０に進んで、第１の４：２コンプレッサが、第３のスティッキーな１ビットを含む第１の結果のセットを、第１の３：２コンプレッサへ入力する。ブロック４２２において、第２の４：２コンプレッサが、第４のスティッキーな１ビットを含む第２の結果のセットを、第２の３：２コンプレッサへ入力する。
【００３９】
ブロック４２４では、第１の３：２コンプレッサは、制御モジュールから入力された第１の累積値と第１の結果のセットとを用いて、第１の３：２圧縮を実行する。更に、ブロック４２６において、第２の３：２コンプレッサが、制御モジュールから入力された第２の累積値と第２の結果のセットとを用いて第２の３：２圧縮を実行する。更にブロック４２８に進んで、第１の３：２コンプレッサは、特定の実施形態において、第１のロウと、第１のロウの左へ１ビットオフセットしている第２のロウとを含む第３の結果のセットを生成する。ブロック４３０では、第２の３：２コンプレッサが、特定の実施形態において、第１のロウと、第１のロウの左へ１ビットオフセットしている第２のロウとを含む第４の結果のセットを生成する。
【００４０】
ブロック４３２に進んで、制御モジュールは、第５の２の補数演算を達成するために、第５のスティッキーな１ビットを、第２の結果のセットの第２のロウに加える。その後、ブロック４３４では、制御モジュールが、第６の２の補数演算を達成するために、第６のスティッキーな１ビットを、第４の結果のセットの第２のロウに加える。ブロック４３６へ進んで、第１の３：２コンプレッサは、第３の結果のセットを、第１の循環型加算器（ＣＰＡ）へ入力する。ブロック４３８では、第２の３：２コンプレッサが、第４の結果のセットを第２のＣＰＡへ入力する。
【００４１】
ブロック４４０に進み、第１のＣＰＡは、第３の結果のセットについて第１のＣＰＡ演算を実行し、第６の２の補数演算を達成するために、制御モジュールによって提供される第７のスティッキーな１ビットをキャリーインする。ブロック４４２では、第２のＣＰＡが、第４の結果のセットについて第２のＣＰＡ演算を実行し、第８の２の補数演算を達成するために、第８のスティッキーな１ビットをキャリーインする。次に、ブロック４４４では、第１のＣＰＡが、第５の結果のセットを生成する。ブロック４４６では、第２のＣＰＡが、第６の結果のセットを生成する。ブロック４４８に進み、第１のＣＰＡが、第５の結果のセットを、例えば、６４ビットレジスタの最初の３２ビット、すなわち、６４ビットレジスタの下半分である６４ビットレジスタの第１の部分に書き込む。ブロック４５０では、第２のＣＰＡが、例えば、６４ビットレジスタの次の３２ビット、すなわち、６４ビットレジスタの上半分である６４ビットレジスタの第２の部分に書き込む。その後、方法は、状態４５２で終了する。
【００４２】
図５は、一般に５２０で示されるポータブル通信デバイスの典型的で限定しない実施形態を例示する。図５に例示するように、ポータブル通信デバイスは、デジタルシグナルプロセッサ５２４を含むオンチップシステム５２２を含んでいる。特定の実施形態では、デジタルシグナルプロセッサ５２４は、図１に示され、本明細書で説明されるデジタルシグナルプロセッサである。更に、特定の実施形態では、デジタルシグナルプロセッサ５２４は、図２に例示するような命令実行ユニットを含むことができる。図５はまた、デジタルシグナルプロセッサ５２４及びディスプレイ５２８に接続されたディスプレイコントローラ５２６を示す。更に、入力デバイス５３０も、デジタルシグナルプロセッサ５２４に接続される。図示するように、メモリ５３２は、デジタルシグナルプロセッサ５２４に接続される。更に、コーダ／デコーダ（コデック）５３４が、デジタルシグナルプロセッサ５２４に接続されうる。スピーカ５３６及びマイクロホン５３８が、コデック５３４に接続される。
【００４３】
図５はまた、無線コントローラ５４０が、デジタルシグナルプロセッサ５２４及び無線アンテナ５４２に接続されうることを示す。特定の実施形態では、電源５４４が、オンチップシステム５２２に接続される。更に、特定の実施形態では、図５に例示するように、ディスプレイ５２８、入力デバイス５３０、スピーカ５３６、マイクロホン５３８、無線アンテナ５４２、及び電源５４４は、オンチップシステム５２２の外部にある。しかしながら、それぞれは、オンチップシステム５２２の構成要素に接続されている。
【００４４】
特定の実施形態では、デジタルシグナルプロセッサ５２４は、ポータブル通信デバイス５２０の様々な構成要素によって必要とされる機能及び動作を実行するために必要なプログラムスレッドに関連した命令を処理するために、インタリーブマルチスレッディングを利用する。例えば、無線通信セッションが無線アンテナによって確立された場合、ユーザは、マイクロホン５３８に向かってしゃべることができる。ユーザの音声を表わす電子信号がコデック５３４に送られ、そこで符号化される。デジタルシグナルプロセッサ５２４は、マイクロホンからの電子信号を符号化するコデック５３４のためのデータ処理を行なうことができる。更に、無線アンテナ５４２を介して受信された到来信号は、無線コントローラ５４０によってコデック５３４へ送られ、そこで復号されて、スピーカ５３６へ送られる。デジタルシグナルプロセッサ５２４は、無線アンテナ５４２を介して受信した信号が復号されると、コデック５３４のためのデータ処理を行うこともできる。
【００４５】
無線通信セッション中、無線通信セッション前あるいは後に、デジタルシグナルプロセッサ５２４は、入力デバイス５３０から受信された入力を処理することができる。例えば、無線通信セッション中、ユーザは、ポータブル通信デバイス５２０のメモリ５３２内に組み込まれたウェブブラウザを介してインターネットをサーフィンするために入力デバイス５３０及びディスプレイ５２８を使用するかもしれない。デジタルシグナルプロセッサ５２４は、本明細書で説明したような入力デバイス５３０、ディスプレイコントローラ５２６、ディスプレイ５２８、コデック５３４、及び無線コントローラ５４０によって使用される様々なプログラムスレッドをインタリーブして、ポータブル通信デバイス５２０及びその中の様々な構成要素の動作を効率的に制御する。様々なプログラムスレッドに関連した命令の多くは、１又は複数のクロックサイクル中に同時に実行される。そのため、浪費されるクロックサイクルによる電力及びエネルギーの使用量が、実質的に減少する。
【００４６】
図６を参照して、セルラ電話の典型的で限定しない実施形態が示される。これは、一般に６２０で示される。図示するように、セルラ電話６２０は、共に接続されているデジタルベースバンドプロセッサ６２４及びアナログベースバンドプロセッサ６２６を含むオンチップシステム６２２を含む。特定の実施形態では、デジタルベースバンドプロセッサ６２４は、例えば図１に示され本明細書で説明するようなデジタルシグナルプロセッサである。更に、特定の実施形態では、アナログベースバンドプロセッサ６２６も、例えば図１に示すデジタルシグナルプロセッサでありうる。特定の実施形態では、デジタルシグナルプロセッサの各々は、図２に例示するような命令実行ユニットを含むことができる。図６に例示するように、ディスプレイコントローラ６２８及びタッチスクリーンコントローラ６３０が、デジタルベースバンドプロセッサ６２４に接続される。一方、オンチップシステム６２２の外部にあるタッチスクリーンディスプレイ６３２は、ディスプレイコントーら６２８及びタッチスクリーンコントローラ６３０に接続されている。
【００４７】
図６は更に、例えば、位相交互ライン（ＰＡＬ：phase alternating line）符号器、セカム（ＳＥＣＡＭ：sequential couleur a memoire）符号器、又は、全国テレビジョン方式委員会（ＮＴＳＣ）符号器のようなビデオ符号器６３４が、デジタルベースバンドプロセッサ６２４に接続される。更に、ビデオ増幅器６３６が、ビデオ符号器６３４及びタッチスクリーンディスプレイ６３２に接続される。また、ビデオポート６３８が、ビデオ増幅器６３６に接続される。図６に示すように、ユニバーサルシリアルバス（ＵＳＢ）コントローラ６４０が、デジタルベースバンドプロセッサ６２４に接続される。ＵＳＢポート６４２は更にＵＳＢコントローラ６４０に接続される。メモリ６４４及び加入者アイデンティティモジュール（ＳＩＭ）カード６４６も、デジタルベースバンドプロセッサ６２４に接続される。更に、図６に示すように、デジタルカメラ６４８もデジタルベースバンドプロセッサ６２４に接続される。典型的な実施形態では、デジタルカメラ６４８は、電荷結合素子（ＣＣＤ）カメラ又は相補性金属酸化膜半導体（ＣＭＯＳ）カメラである。
【００４８】
更に図６に例示するように、ステレオオーディオコデック６５０が、アナログベースバンドプロセッサ６２６に接続される。更に、オーディオ増幅器６５２も、ステレオオーディオコデック６５０に接続される。典型的な実施形態では、第１のステレオスピーカ６５４及び第２のステレオスピーカ６５６が、オーディオ増幅器６５２に接続される。図６は、マイクロホン増幅器６５８が、ステレオオーディオコデック６５０に接続されていることを示している。更に、マイクロホン６６０をマイクロホン増幅器６５８に接続することもできる。特定の実施形態では、周波数変調（ＦＭ）ラジオチューナ６６２が、ステレオオーディオコデック６５０に接続される。また、ＦＭアンテナ６６４がＦＭラジオチューナ６６２に接続される。更に、ステレオヘッドホン６６６がステレオオーディオコデック６５０に接続される。
【００４９】
図６は更に、ラジオ周波数（ＲＦ）トランシーバ６６８が、アナログベースバンドプロセッサ６２６に接続されていることを示す。ＲＦスイッチ６７０が、ＲＦトランシーバ６６８及びＲＦアンテナ６７２に接続される。図６に示すように、キーパッド６７４が、アナログベースバンドプロセッサ６２６に接続される。また、マイクロホン６７６を備えたモノラルヘッドホンが、アナログベースバンドプロセッサ６２６に接続される。更に、バイブレータ６７８が、アナログベースバンドプロセッサ６２６に接続される。図６はまた、電源６８０が、オンチップシステム６２２に接続されることを示す。特定の実施形態では、電源６８０は、電力を必要とするセルラ電話６２０の様々な構成要素に電力を供給する直流（ＤＣ）電源である。更に、特定の実施形態では、電源は、充電可能なＤＣバッテリであるか、あるいは、交流（ＡＣ）から、ＡＣ電源に接続されたＤＣ変圧器へ導かれるＤＣ電源である。
【００５０】
特定の実施形態では、図６に示すように、タッチスクリーンディスプレイ６３２、ビデオポート６３８、ＵＳＢポート６４２、カメラ６４８、第１のステレオスピーカ６５４、第２のステレオスピーカ６５６、マイクロホン６６０、ＦＭアンテナ６６４、ステレオヘッドホン６６６、ＲＦスイッチ６７０、ＲＦアンテナ６７２、キーパッド６７４、モノヘッドホン６７６、バイブレータ６７８、及び電源６８０が、オンチップシステム６２２の外側に存在する。更に、特定の実施形態では、セルラ電話６２０に関連する別の構成要素のうちの１又は複数に関連付けられた様々なプログラムスレッドを処理するために、本明細書で説明したように、デジタルベースバンドプロセッサ６２４及びアナログベースバンドプロセッサ６２６が、インタリーブされたマルチスレッドを用いることができる。
【００５１】
図７を参照して、無線インターネットプロトコル（ＩＰ）電話の典型的で限定しない実施形態が示される。これは、一般に、７００で示される。図示するように、無線ＩＰ電話７００は、デジタルシグナルプロセッサ（ＤＳＰ）７０４を含むオンチップシステム７０２を含む。特定の実施形態では、ＤＳＰ７０４は、図１に示され、本明細書に記載のデジタルシグナルプロセッサである。更に、特定の実施形態では、デジタルシグナルプロセッサ７０４は、図２に例示するような命令実行ユニットを含むことができる。図７に例示するように、ディスプレイコントローラ７０６は、ＤＳＰ７０４に接続され、ディスプレイ７０８は、ディスプレイコントローラ７０６に接続される。典型的な実施形態では、ディスプレイ７０８は液晶ディスプレイ（ＬＣＤ）である。図７は更に、ＤＳＰ７０４に接続されるキーパッド７１０を示す。
【００５２】
図７に示すように、更に、フラッシュメモリ７１２がＤＳＰ７０４に接続される。同期型ＤＲＡＭ（ＳＤＲＡＭ）７１４、スタティックＲＡＭ（ＳＲＡＭ）７１６、及び電気的消去可能ＲＯＭ（ＥＥＰＲＯＭ）７１８も、ＤＳＰ７０４に接続される。図７はまた、発光ダイオード（ＬＥＤ）７２０がＤＳＰ７０４に接続されることを示す。更に、特定の実施形態では、音声コデック７２２が、ＤＳＰ７０４に接続される。増幅器７２４が音声コデック７２２に接続され、モノラルスピーカ７２６が増幅器７２４に接続される。図７は更に、モノラルヘッドホン７２８が音声コデック７２２に接続されることを示す。特定の実施形態では、モノラルヘッドホン７２８は、マイクロホンを含んでいる。
【００５３】
図７はまた、無線ローカルエリアネットワーク（ＷＬＡＮ）ベースバンドプロセッサ７３０が、ＤＳＰ７０４に接続されることを例示している。ＲＦトランシーバ７３２は、ＷＬＡＮベースバンドプロセッサ７３０に接続され、ＲＦアンテナ７３４は、ＲＦトランシーバ７３２に接続される。特定の実施形態では、Ｂｌｕｅｔｏｏｔｈ（登録商標）コントローラ７３６もＤＳＰ７０４に接続され、Ｂｌｕｅｔｏｏｔｈアンテナ７３８がコントローラ７３６に接続される。図７は更に、ＵＳＢポート７４０が、ＤＳＰ７０４に接続されることを示す。更に、電源７４２がオンチップシステム７０２に接続され、オンチップシステム７０２を経由して、無線ＩＰ電話７００の様々な構成要素に電力を供給する。
【００５４】
特定の実施形態では、図７に示すように、ディスプレイ７０８、キーパッド７１０、ＬＥＤ７２０、モノスピーカ７２６、モノヘッドホン７２８、ＲＦアンテナ７３４、Ｂｌｕｅｔｏｏｔｈアンテナ７３８、ＵＳＢポート７４０、及び電源７４２が、オンチップシステム７０２の外部に存在する。しかしながら、これらの構成要素の各々は、オンチップシステムの１又は複数の構成要素に接続される。更に、特定の実施形態では、ＩＰ電話７００に関連する異なる構成要素の１又は複数の関連した様々なプログラムスレッドを処理するために、デジタルシグナルプロセッサ７０４は、本明細書に記載するように、インタリーブされたマルチスレッドを用いることができる。
【００５５】
図８は、一般に８００で示されるポータブルデジタルアシスタント（ＰＤＡ）の典型的で限定しない実施形態を例示する。図示するように、ＰＤＡ８００は、デジタルシグナルプロセッサ（ＤＳＰ）８０４を含むオンチップシステム８０２を含んでいる。特定の実施形態では、ＤＳＰ８０４は、図１で示され、本明細書で説明されているデジタルシグナルプロセッサである。更に、特定の実施形態では、デジタルシグナルプロセッサ８０４は、図２で例示するような命令実行ユニットを含むことができる。図８に示すように、タッチスクリーンコントローラ８０６及びディスプレイコントローラ８０８が、ＤＳＰ８０４に接続される。更に、タッチスクリーンディスプレイ８１０は、タッチスクリーンコントローラ８０６及びディスプレイコントローラ８０８に接続される。図８はまた、キーパッド８１２がＤＳＰ８０４に接続されることを示す。
【００５６】
図８において更に示すように、フラッシュメモリ８１４がＤＳＰ８０４に接続される。更に、読取専用メモリ（ＲＯＭ）８１６、ＤＲＡＭ（ＤＲＡＭ）８１８、及びＥＥＰＲＯＭ（ＥＥＰＲＯＭ）８２０がＤＳＰ８０４に接続される。図８はまた、赤外線データ結合（ＩｒＤＡ）ポート８２２をＤＳＰ８０４に接続できることを示す。更に、特定の実施形態では、デジタルカメラ８２４がＤＳＰ８０４に接続される。
【００５７】
図８に示すように、特定の実施形態では、ステレオオーディオコデック８２６がＤＳＰ８０４に接続される。第１のステレオ増幅器８２８が、ステレオオーディオコデック８２６に接続され、第１のステレオスピーカ８３０が、第１のステレオ増幅器８２８に接続される。更に、マクロフォン増幅器８３２が、ステレオオーディオコデック８２６に接続され、マイクロホン８３４が、マイクロホン増幅器８３２に接続される。図８は更に、第２のステレオ増幅器８３６が、ステレオオーディオコデック８２６に接続され、第２のステレオスピーカ８３８が、第２のステレオ増幅器８３６に接続されることを示す。特定の実施形態では、ステレオヘッドホン８４０はまた、ステレオオーディオコデック８２６に接続される。
【００５８】
図８はまた、８０２．１１コントローラ８４２が、ＤＳＰ８０４に接続され、８０２．１１アンテナ８４４が、８０２．１１コントローラ８４２に接続されることを例示する。更に、Ｂｌｕｅｔｏｏｔｈコントローラ８４６が、ＤＳＰ８０４に接続され、Ｂｌｕｅｔｏｏｔｈアンテナ８４８が、Ｂｌｕｅｔｏｏｔｈコントローラ８４６に接続される。図８に示すように、ＵＳＢコントローラ８５０がＤＳＰ８０４に接続され、ＵＳＢポート８５２がＵＳＢコントローラ８５０に接続される。更に、例えば、マルチメディアカード（ＭＭＣ）又はセキュアデジタルカード（ＳＤ）のようなスマートカード８５４が、ＤＳＰ８０４に接続される。更に、図８に示されるように、電源８５６がオンチップシステム８０２に接続され、オンチップシステム８０２を経由してＰＤＡ８００の様々な構成要素に電力を供給することができる。
【００５９】
特定の実施形態では、図８に示すように、ディスプレイ８１０、キーパッド８１２、ＩｒＤＡポート８２２、デジタルカメラ８２４、第１のステレオスピーカ８３０、マイクロホン８３４、第２のステレオスピーカ８３８、ステレオヘッドホン８４０、８０２．１１アンテナ８４４、Ｂｌｕｅｔｏｏｔｈアンテナ８４８、ＵＳＢポート８５２、及び電源８５０が、オンチップシステム８０２の外部に存在する。しかしながら、これらの構成要素の各々は、オンチップシステム８０２上の１又は複数の構成要素に接続される。更に、特定の実施形態では、デジタルシグナルプロセッサ８０４が、ポータブルデジタルアシスタント８００に関連した異なる構成要素の１又は複数に関連した様々なプログラムスレッドを処理するために、本明細書に記載されたインタリーブされたマルチスレッドを使用することができる。
【００６０】
図９を参照して、例えばＭＰ３プレーヤのようなオーディオファイルプレーヤの典型的で限定しない実施形態が示される。これは一般に９００として示される。図示するように、オーディオファイルプレーヤ９００は、デジタルシグナルプロセッサ（ＤＳＰ）９０４を含むオンチップシステム９０２を含む。特定の実施形態では、ＤＳＰ９０４は、図１で示され、本明細書に記載されたデジタルシグナルプロセッサである。更に、特定の実施形態では、デジタルシグナルプロセッサ９０４は、図２に例示するような命令実行ユニットを含むことができる。図９に例示するように、ディスプレイコントローラ９０６はＤＳＰ９０４に接続され、ディスプレイ９０８はディスプレイコントローラ９０６に接続される。典型的な実施形態では、ディスプレイ９０８は液晶ディスプレイ（ＬＣＤ）である。図９は更に、ＤＳＰ９０４に接続されるキーパッド９１０を示す。
【００６１】
図９に更に示すように、フラッシュメモリ９１２及び読取専用メモリ（ＲＯＭ）９１４が、ＤＳＰ９０４に接続される。更に、特定の実施形態では、オーディオコデック９１６が、ＤＳＰ９０４に接続される。増幅器９１８が、オーディオコデック９１６に接続され、モノスピーカ９２０が増幅器９１８に接続される。図９は更に、オーディオコデック９１６に接続されるマイク端子９２２及びステレオ入力９２４を示す。特定の実施形態では、ステレオヘッドホン９２６もまたオーディオコデック９１６に接続される。
【００６２】
図９は更に、ＵＳＢポート９２８とスマートカード９３０とがＤＳＰ９０４に接続できることを示す。更に、電源９３２がオンチップシステム９０２に接続され、オンチップシステム９０２を経由してオーディオファイルプレーヤ９００の様々な構成要素に電力を供給することができる。
【００６３】
特定の実施形態では、図９に示すように、ディスプレイ９０８、キーパッド９１０、モノスピーカ９２０、マイク端子９２２、ステレオ入力９２４、ステレオヘッドホン９２６、ＵＳＢポート９２８、及び電源９３２が、オンチップシステム９０２の外部に存在する。しかしながら、これら構成要素の各々は、オンチップシステム９０２上の１又は複数の構成要素に接続される。さらに、特定の実施形態では、デジタルシグナルプロセッサ９０４は、オーディオファイルプレーヤ９００に関連した異なる構成要素の１又は複数に関連した様々なプログラムスレッドを処理するために本明細書に記載のインタリーブされたマルチスレッドを使用することができる。
【００６４】
本明細書に記載の構造の構成によって、本明細書に記載の方法及びシステムは、多数のバイトリダクション演算を同時に行いながら、最大８つの２の補数演算を達成する方法を提供する。そのため、２の補数演算を達成するための追加ハードウェアに対する要求が取り除かれる。
【００６５】
当業者であれば、更に、ここで開示された実施形態に関連して記載された様々な説明的論理ブロック、モジュール、回路、およびアルゴリズムステップが、電子工学ハードウェア、コンピュータソフトウェア、あるいはこれらの組み合わせとして実現されることを理解するであろう。ハードウェアとソフトウェアとの相互互換性を明確に説明するために、様々に例示された部品、ブロック、モジュール、回路、およびステップが、それらの機能に関して一般的に記述された。それら機能がハードウェアとして又はソフトウェアとして実現されているかは、特定のアプリケーション及びシステム全体に課せられている設計制約に依存する。当業者であれば、各特定のアプリケーションに応じて変更した方法で上述した機能を実施しうる。しかしながら、この適用判断は、本発明の範囲から逸脱したものと解釈されるべきではない。
【００６６】
ここで開示された実施形態に関連して記述された方法やアルゴリズムのステップは、ハードウェアや、プロセッサによって実行されるソフトウェアモジュールや、これらの組み合わせによって直接的に具現化される。ソフトウェアモジュールは、ＲＡＭメモリ、フラッシュメモリ、ＲＯＭメモリ、ＥＰＲＯＭメモリ、ＥＥＰＲＯＭメモリ、レジスタ、ハードディスク、リムーバブルディスク、ＣＤ−ＲＯＭ、あるいは当該技術分野で知られているその他の型式の記憶媒体に収納されうる。典型的な記憶媒体は、プロセッサがそこから情報を読み取り、またそこに情報を書き込むことができるようにプロセッサに結合される。または、記憶媒体はプロセッサに統合されうる。このプロセッサと記憶媒体は、ＡＳＩＣ内に存在することができる。ＡＳＩＣは、ユーザ端末内に存在することもできる。あるいはこのプロセッサと記憶媒体は、ユーザ端末内のディスクリート部品として存在しうる。
【００６７】
開示された実施形態における上述の記載は、当該技術分野におけるいかなる人であっても、本発明の活用または利用を可能とするように提供される。これらの実施形態への様々な変形例もまた、当業者に対しては明らかであって、ここで定義された一般的な原理は、本発明の主旨または範囲を逸脱せずに他の実施形態にも適用されうる。このように、本発明は、ここで示された実施形態に制限されるものではなく、ここで記載された原理と新規の特徴に一致した最も広い範囲に相当するものを意図している。
【図１】
2011023013.tif 000003
【図２】
2011023013.tif 000004
【図３】
2011023013.tif 000005
【図４】
2011023013.tif 000006
【図５】
2011023013.tif 000007
【図６】
2011023013.tif 000008
【図７】
2011023013.tif 000009
【図８】
2011023013.tif 000010
【図９】
2011023013.tif 000011
【手続補正書】
【提出日】平成22年8月30日(2010.8.30)
【手続補正１】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
プロセッサデバイスを用いて１又は複数の２の補数演算を達成する方法であって、
前記プロセッサデバイスは、
８つのサブワード差分バイト値を判定し、
サブワード差分バイト値の各々の符号を判定し、
負である前記８つのサブワード差分バイト値の各々を反転し、反転されたサブワード差分バイト値のセットを生成し、
正である前記８つのサブワード差分バイト値の各々を、リダクションツリーに入力し、
前記反転されたサブワード差分バイト値の各々を、前記リダクションツリーに入力する方法。
【請求項２】
前記プロセッサデバイスはさらに、前記８つのサブワード差分バイト値に関する複数のリダクション演算を実行しながら、最大８つの１を入力することによって、最大８つの２の補数演算を達成する請求項１に記載の方法。
【請求項３】
前記プロセッサデバイスはさらに、反転されたサブワード差分バイト値のセットのうちの少なくとも１つに関するリダクション演算を実行しながら、１からなる値をキャリーインする請求項２に記載の方法。
【請求項４】
前記プロセッサデバイスはさらに、前記複数のリダクション演算のうちの少なくとも１つによって生成された結果のセットのオフセットビットに、１からなる値を入力する請求項２に記載の方法。
【請求項５】
前記プロセッサデバイスはさらに、前記複数のリダクション演算のうちの少なくとも１つの間、互いに２つの１を加え、前記リダクション演算によって生成された結果に、１からなる値をキャリーインする請求項２に記載の方法。
【請求項６】
プロセッサデバイスであって、
８つのサブワード差分バイト値を判定する手段と、
サブワード差分バイト値の各々の符号を判定する手段と、
負である各サブワード差分バイト値を反転し、反転されたサブワード差分バイト値を生成する手段と、
正である各サブワード差分バイト値を、リダクションツリーに入力する手段と、
前記反転された各サブワード差分バイト値を、前記リダクションツリーに入力する手段と、
前記８つのサブワード差分バイト値に関する複数のリダクション演算を実行しながら、最大８つの１を加えることによって、最大８つの２の補数演算を達成する手段と
を備えるプロセッサデバイス。
【外国語明細書】
2011023013000001.pdf