(57)【要約】本発明はコード圧縮を利用した電子装置に関し、パイプラインプロセッサ２５、次の命令のアドレスを先取り可能な分岐ユニット２６、コード解凍ユニット２７及びメモリ２８を含み、結合された前記プロセッサ２５、前記分岐ユニット２６及び前記解凍ユニット２７に対して新たな圧縮命令セットが定義される。前記解凍ユニット２７は、前記新たな圧縮命令セットへ導入されたループ開始及びループ終了ラベルをデコードすることによって、ループの開始及び終了に対する２つの信号を前記分岐ユニット２６に送る。前記分岐ユニット２６はこれら２つの信号を処理する。本発明はその他この種のプロセッサの管理方法に関する。
2004533065.tif 000002
【特許請求の範囲】
【請求項１】
パイプラインプロセッサ、次の命令のアドレスを先取り可能な分岐ユニット、コード解凍ユニット及びメモリを含み、結合された前記プロセッサ、前記分岐ユニット及び前記解凍ユニットに対して新たな圧縮命令セットが定義された、コード圧縮を利用した電子装置であって、
前記解凍ユニットは、前記新たな圧縮命令セットに導入されたループ開始及びループ終了ラベルをデコードすることによって、ループの開始及び終了に対する２つの信号を前記分岐ユニットに送り、前記分岐ユニットはこれら２つの信号を処理することを特徴とする電子装置。
【請求項２】
前記分岐ユニットは、ループ開始あるいはループ終了信号がないときは、透過的に動作し、この場合、入力信号を出力信号とすることを特徴とする請求項１に記載の電子装置。
【請求項３】
前記プロセッサ、前記解凍及び分岐ユニット及び前記メモリが組み込まれた特定用途向け集積回路を備えた請求項１に記載の電子装置。
【請求項４】
前記プロセッサを前記分岐及び解凍ユニットと統合化した特定用途向け集積回路を備えた請求項１に記載の電子装置。
【請求項５】
前記分岐及び解凍ユニットを前記メモリと統合化した特定用途向け集積回路を備えた請求項１に記載の電子装置。
【請求項６】
前記分岐及び解凍ユニットを統合化した特定用途向け集積回路を備えた請求項１に記載の電子装置。
【請求項７】
前記請求項に記載の電子装置は、オンボード装置であることを特徴とする前記請求項のいずれかに記載の電子装置。
【請求項８】
条件分岐命令によって終了される圧縮されたプログラムループにおけるパイプラインプロセッサの管理方法であって、
ループ開始及びループ終了ラベルが前記ループの最初及び最後の命令に導入され、
前記ループ開始ラベルが検出されたとき前記ループ開始アドレスが記憶され、
前記ループ終了ラベルが検出されたとき、ループバックの場合は、前記ループ開始アドレスに配置された命令が計算へ取り込まれる、
ことを特徴とするパイプラインプロセッサの管理方法。
【請求項９】
前記パイプラインプロセッサはRISCプロセッサであることを特徴とする請求項８に記載の方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、パイプラインプロセッサを含むコード圧縮を利用した電子装置及びこの種のプロセッサの管理方法に関する。
【背景技術】
【０００２】
複雑なオンボード電子装置の設計者は、高レベルな特徴及び性能を備える装置を提供するため、しばしばRISC（Reduced Instruction Set Computer：縮小命令セットコンピュータ）プロセッサの処理能力を必要とし、さらに、できるだけコストを固定的に低くする必要がある。実際のところ、これを実現することは困難である。この種のオンボードRISCプロセッサは、ASIC（Application-Specific Integrated Curcuit：特定用途向け集積回路）に組み込まれ、例えば、記憶容量、特にコード記憶容量に関して、制限された特徴を呈する。実際では、コード圧縮方法が、オンボード用途用の記憶容量を低減させ得る。
【０００３】
いわゆる“CodePack”と称されるIBMコード圧縮装置は、本文の最後に記載した参考文献［１］［２］において述べられているように、このタイプの装置の一例である。
【０００４】
コード圧縮技術は、参考文献［２］に述べられているように、また、図１に示されるように、一般的に、プログラムメモリ１３に格納される圧縮コード１２へソースコード１１を変換するソフトウェアプログラム１０を利用し、一方では、特定用途向け集積回路１５に送られた命令を、RISCプロセッサ１６とメモリ１３との間に配置された解凍ユニット１４において解凍する。バス１８、１９はそれぞれ内部バス及び外部バスである。
【発明の開示】
【発明が解決しようとする課題】
【０００５】
しかしながら、この種の圧縮技術は、重要な不利益を提示する。即ち、圧縮され、次いで解凍される命令のストリームは、これらの圧縮及び解凍ステップがなかったものと同一でないという事実に起因する処理能力の損失が存在する。参考文献［２］は稼働可能な能力の損失を１０％に予測する。
【０００６】
一方、RISCプロセッサが用いられる場合、そのアーキテクチャは装置の性能に影響を及ぼし得る。実際、ほとんどのRISCプロセッサは、プロセッサの設計に依存する多数のステージを伴うパイプラインを備える。これは、例えば、Advance Risc Machine社のARM７プロセッサやMIPS社のR３０００プロセッサに適用される。全てのパイプラインプロセッサの第１ステージは、フェッチステージである。このステージでは、プロセッサは、アドレスバスを活性化して、データバス上に命令を取得する。この種のプロセッサでは、条件付き分岐命令で終了する各プログラムループは、大きな時間損失を生じさせる。実際、いくつかの命令は、その命令の数はパイプラインの範囲に依存するが、条件分岐の後で呼び出され、ループの開始に分岐が生じた場合は実行されない。その後このパイプラインは空にされ、ループの開始から再度満たされなければならない。従って、パイプラインは、ループの開始への各ループバックにおいて、空にされそして再度満たされ、プロセッサの性能に負の影響を与える。
【０００７】
図２は、３つのステージを伴うパイプラインによるループ命令の実行の間におけるこの種の不利益を示し、ｎ番目の命令は、条件分岐命令である。これら３つのステージはそれぞれフェッチステージ（タスクA）、デコードステージ（タスクB）及び実行ステージ（タスクC）である。この例において、ループが実行されるたびに、ループの外側の命令呼び出し（サイクルｎ＋１、ｎ＋２）に対応する、符号２０で示す２サイクルが損失となり、この結果、プロセッサの処理能力は低減する。斜め線で示されるサイクルは空化サイクルに対応する。もし、このループが１００回実行され、ループサイズが２０命令であるとした場合、２０００サイクルを越えた２００サイクルは損失となり、そのことは約１０％の損失を意味する。
【０００８】
この問題を解決するため、参考文献［３］で述べられているように、特定の複雑なマイクロプロセッサが、次に呼び出される命令のアドレスを先取り可能な分岐ユニットを組み込む。しかし、オンボード電子装置の分野において伝統的に利用されるプロセッサはこの種のユニットを有していない。なぜなら、この分野では、コスト及び自律（autonomy）の観点に対してできるだけ正確に照準を向ける努力がなされるからである。
【０００９】
本発明の目的は上で定められた不利益を取り除くことにある。
【課題を解決するための手段】
【００１０】
本発明は、コード圧縮を利用した電子装置に関し、パイプラインプロセッサと、次の命令アドレスの先取りを可能にする分岐ユニットと、コード解凍ユニットと、メモリとを含み、結合されたプロセッサ、分岐ユニット及び解凍ユニットに対して新たな圧縮命令セットが定義され、解凍ユニットは、新たな命令セットに導入されたループ開始（start-of-loop）及びループ終了（end-of-loop）ラベルをデコードすることによってループの開始及び終了に対する２つの信号を分岐ユニットに送り、分岐ユニットはこれら２つの信号を処理する。
【００１１】
分岐ユニットは、ループ開始あるいはループ終了信号が存在しないときは透過的に動作し、この場合、入力信号を出力信号とする。
【００１２】
本発明は、さらに、条件分岐命令によって終了される圧縮されたプログラムループ内におけるパイプラインプロセッサの管理方法に関し、以下のステップを含む。
【００１３】
- ループ開始及びループ終了ラベルがループの最初及び最後の命令に導入される。
【００１４】
- ループ開始ラベルが検出（エンカウント）されたときループ開始アドレスが記憶される。
【００１５】
- ループ終了ラベルが検出されたとき、ループバックの場合は、ループ開始アドレスに配置された命令が計算（アカウント）へ取り込まれる。
【００１６】
本発明によって提案される解決法は、圧縮技術を利用したほとんどのRISCプロセッサに適用可能である。それは、実行時間の低減化を可能にし、コードサイズと処理能力との間に好適な歩み寄りを提供する。
【００１７】
本発明に従った装置は、好適にはポータブル装置の分野、特にモバイルフォンを用いた通信の分野に利用し得る。本発明は、新たな特徴が加えられた際にメモリサイズが上昇することを阻止でき、一方、非常に競争力のあるコストを実現し得る。
【００１８】
本発明のこれら及びその他の特徴は、以下に述べる実施例を参照することにより、明らかにされる。
【発明を実施するための最良の形態】
【００１９】
図３に示すように、本発明に従った装置は、例えばオンボードプロセッサのようなパイプラインプロセッサ２５、分岐ユニット２６、パイプラインの空化の時間数を減じるように修正された解凍ユニット２７、及びメモリ２８を含む、コード圧縮を利用する装置である。この図において、アドレスバスＢＡ、データバスＢＤ、制御信号ＳＣ、及び本発明に特有の２つの信号BeginOfLoop及びEndOfLoopが示される。
【００２０】
分岐ユニット２６は、パイプラインの空化を阻止するために、正しいアドレスの先取りを可能にする。
【００２１】
新たなループ開始及びループ終了ラベルは、各ループの最初及び最後の命令に導入される。従って、ループ開始アドレスは、ループ開始ラベルが検出されたときに記憶される。ループ終了ラベルが検出されたときは、ループバックが存在する場合は、計算（アカウント）へ取り込まれる命令は、ループに続くアドレスではなくループ開始アドレスに配置された命令である。それ故、ループを再度実行するためにパイプラインを空にする必要はもはやない。従って、ループの終わりに存在するものを除き、パイプラインの空化は全て避けられる。
【００２２】
本発明に従った装置において、分岐ユニット２６は、プロセッサの外側に配置され、そのことは、プロセッサの動作を改善し、また、性能の点において解凍ユニット２７の負担を補うことを可能にする。
【００２３】
本発明に従った装置において、図３に示すように、特定用途向け集積回路（ASIC）は、
-全ての構成要素２５、２６、２７、２８
-外部に残るメモリ２８を除く全ての構成要素
-プロセッサ２５を除く全ての構成要素
-分岐ユニット２６及び解凍ユニット２７
のいずれかを組み込むことができる。
【００２４】
図３に示す装置に対応する実施例は、オンボード用途に幅広く利用されるARM7TDMI型のプロセッサ２５の特徴である。
【００２５】
解凍ユニット２７は、圧縮命令セットへ導入された２つのループ開始及びループ終了ラベルをデコードすることによって、２つの“BeginOfLoop”及び“EndOfLoop”信号が分岐ユニット２６に向けて生成されることを可能にする。制御信号SCはメモリへのアクセスを許容する信号であり、信号ABORTは例外がプロセッサで生起されることを許容し、信号nEXECは、実行ステージ内の命令が実行中でないことを意味し、信号nOPCはオペレーティングコードコールを意味する。
【００２６】
オペレーティングコードのフェッチに該当しないメモリコールに関して、分岐ユニットは透過的であり、次式Abu[31:0]=Ap[31:0] 及び Dbu[31:0]=Dp[31:0] で表されるように、アドレス及びデータバスをコピーする。
【００２７】
分岐ユニット２６の動作の一例が図４のフローチャートにおいて示され、以下に連続して示す。
【００２８】
- ループ開始の検査（符号３０）
- 命令サイズを入力する初期変数“Offset”の初期化（符号３１）
- ループ終了の検査（符号３２）
- 変数Offsetの更新（符号３３）
- バスのコピー（符号３４）
- 第２の変数“index”の初期化（符号３５）
- ループ終了命令がプロセッサの実行ステージにある時間の検査（符号３６）
- 条件分岐検査の実行（符号３７）
- ABORT例外の生成（符号３８）
- パイプライン現象を透過的にし、空化を阻止する手法（符号３９）
条件分岐が実行されないとき、ABORT例外がループから抜けるために生成される。この例外は、コードの実行を正しく再開するために、戻り先のアドレスを変更する。
【００２９】
参考文献：
［１］“PowerPCがコード圧縮を採択”Jim Turley（マイクロプロセッサリポート、１９９８年１０月２６日、マイクロデザインリソース）
［２］“CodePackTM：PowerPCTMプロセッサ用のコード圧縮”Mark Game及びAlan Booker（インターネットサイト：www.chips.ibm.com/products/powerpc/corer/cd pack-wp.pdf；version 1.0）
［３］“PowerPC603eTMRISCマイクロプロセッサ技術概要”（MPR603TSU04, MPC603E/D, Motorola Inc., 1995, page 1-32）
【図面の簡単な説明】
【００３０】
【図１】周知のタイプのコード圧縮／解凍装置を示す。
【図２】ｎ番目の命令が条件分岐命令である、ｎの命令のループを実行する間、３ステージを伴うパイプラインの振舞いを示す。
【図３】本発明に従った装置を示す。
【図４】本発明に従った装置の動作例を示すフローチャートである。
【図２】
2004533065.tif 000003
【図４】
2004533065.tif 000004
【国際公開パンフレット】
2004533065.tif 000005
2004533065.tif 000006
2004533065.tif 000007
2004533065.tif 000008
2004533065.tif 000009
2004533065.tif 000010
2004533065.tif 000011
2004533065.tif 000012
2004533065.tif 000013
2004533065.tif 000014
2004533065.tif 000015
【国際調査報告】
2004533065.tif 000016
2004533065.tif 000017
2004533065.tif 000018