(57)【特許請求の範囲】
【請求項１】
再構成可能論理と、
前記再構成可能論理に連結されたメモリシステムと、
前記メモリシステムに連結されたマイクロプロセッサ論理と
を備え、
前記再構成可能論理および前記マイクロプロセッサ論理は、前記メモリシステムのコンテンツにアクセスする機能面で対等である移動機器。
【請求項２】
前記再構成可能論理と、前記メモリシステムと、前記マイクロプロセッサ論理とに動作電力を提供するべく連結されたバッテリをさらに備える、請求項１に記載の移動機器。
【請求項３】
前記再構成可能論理は、前記マイクロプロセッサ論理と協働して、音声認識、グラフィック描画、暗号、復号、Ｉ／Ｏインターフェース、画像処理、音声および／または動画の圧縮および／または伸張、または二次的なマイクロプロセッサ機能のうちの少なくとも１つを提供する、請求項１または２に記載の移動機器。
【請求項４】
前記マイクロプロセッサ論理に連結されたディスプレイをさらに備える、請求項１から３のいずれか一項に記載の移動機器。
【請求項５】
前記マイクロプロセッサ論理に連結されたスピーカをさらに備える、請求項１から４のいずれか一項に記載の移動機器。
【請求項６】
前記マイクロプロセッサ論理に連結された入力デバイスをさらに備える、請求項１から５のいずれか一項に記載の移動機器。
【請求項７】
前記入力デバイスは、マイクロフォン、キーパッド、および／または、タッチスクリーンのうち少なくとも１つを含む、請求項６に記載の移動機器。
【請求項８】
前記移動機器がデータを送受信するためのアンテナをさらに備える、請求項１から７のいずれか一項に記載の移動機器。
【請求項９】
携帯電話を含む、請求項１から８のいずれか一項に記載の移動機器。
【請求項１０】
セキュアなクレジットカード、個人情報および／または医療情報の保管場所、および／または、ゲームデバイスのうち少なくとも１つとして機能可能な、請求項１から８のいずれか一項に記載の移動機器。
【請求項１１】
車両のエンジンのイグニションキー、および／または、アクセスキーとして機能することが可能な、請求項１から８のいずれか一項に記載の移動機器。
【請求項１２】
前記再構成可能論理、前記メモリシステム、および、前記マイクロプロセッサ論理は、スタックダイを含む、請求項１から１１のいずれか一項に記載の移動機器。
【請求項１３】
前記再構成可能論理、前記メモリシステム、および、前記マイクロプロセッサ論理は、パッケージ−オン−パッケージ構成である、請求項１から１１のいずれか一項に記載の移動機器。
【請求項１４】
前記再構成可能論理、前記メモリシステム、および、前記マイクロプロセッサ論理は、２．５Ｄパッケージ構成である、請求項１から１１のいずれか一項に記載の移動機器。
【請求項１５】
前記再構成可能論理、および、前記マイクロプロセッサ論理は、単一のダイに集積されている、請求項１から１１のいずれか一項に記載の移動機器。
【請求項１６】
前記再構成可能論理は、Ｊａｖａ（登録商標）仮想マシンをインスタンス化する、請求項１から１５のいずれか一項に記載の移動機器。
【請求項１７】
直接実行論理ブロックと、
高密度論理デバイスと、
前記直接実行論理ブロックと前記高密度論理デバイスとに連結されたメモリシステムと
を備え、
前記直接実行論理ブロックおよび前記高密度論理デバイスは、前記メモリシステムのコンテンツにアクセスする機能面で対等である移動機器。
【請求項１８】
前記直接実行論理ブロックと、前記高密度論理デバイスと、前記メモリシステムとに動作電力を提供するべく連結されたバッテリをさらに備える、請求項１７に記載の移動機器。
【請求項１９】
前記直接実行論理ブロックは、前記高密度論理デバイスと協働して、音声認識、グラフィック描画、暗号、復号、Ｉ／Ｏインターフェース、画像処理、音声および／または動画の圧縮および／または伸張、または二次的なマイクロプロセッサ機能のうちの少なくとも１つを提供する、請求項１７または１８に記載の移動機器。
【請求項２０】
前記高密度論理デバイスに連結されたディスプレイをさらに備える、請求項１７から１９のいずれか一項に記載の移動機器。
【請求項２１】
前記高密度論理デバイスに連結されたスピーカをさらに備える、請求項１７から２０のいずれか一項に記載の移動機器。
【請求項２２】
前記高密度論理デバイスに連結された入力デバイスをさらに備える、請求項１７から２１のいずれか一項に記載の移動機器。
【請求項２３】
前記入力デバイスは、マイクロフォン、キーパッド、および／または、タッチスクリーンのうち少なくとも１つを含む、請求項２２に記載の移動機器。
【請求項２４】
前記移動機器がデータを送受信するためのアンテナをさらに備える、請求項１７から２３のいずれか一項に記載の移動機器。
【請求項２５】
携帯電話を含む、請求項１７から２４のいずれか一項に記載の移動機器。
【請求項２６】
セキュアなクレジットカード、個人情報および／または医療情報の保管場所、および／または、ゲームデバイスのうち少なくとも１つとして機能可能な、請求項１７から２４のいずれか一項に記載の移動機器。
【請求項２７】
車両のエンジンのイグニションキー、および／または、アクセスキーとして機能することが可能な、請求項１７から２４のいずれか一項に記載の移動機器。
【請求項２８】
前記直接実行論理ブロック、前記高密度論理デバイス、および、前記メモリシステムは、スタックダイを含む、請求項１７から２７のいずれか一項に記載の移動機器。
【請求項２９】
前記直接実行論理ブロック、前記高密度論理デバイス、および、前記メモリシステムは、パッケージ−オン−パッケージ構成である、請求項１７から２７のいずれか一項に記載の移動機器。
【請求項３０】
前記直接実行論理ブロック、前記高密度論理デバイス、および、前記メモリシステムは、２．５Ｄパッケージ構成である、請求項１７から２７のいずれか一項に記載の移動機器。
【請求項３１】
前記直接実行論理ブロック、および、前記高密度論理デバイスは、単一のダイに集積されている、請求項１７から２７のいずれか一項に記載の移動機器。
【請求項３２】
前記直接実行論理ブロックは、Ｊａｖａ（登録商標）仮想マシンをインスタンス化する、請求項１７から３１のいずれか一項に記載の移動機器。
【請求項３３】
プログラマブル論理デバイスと、
前記プログラマブル論理デバイスに連結されたメモリシステムと、
前記メモリシステムに連結されたマイクロプロセッサ論理と
を備え、
前記プログラマブル論理デバイスおよび前記マイクロプロセッサ論理は、前記メモリシステムのコンテンツにアクセスする機能面で対等である移動機器。
【請求項３４】
前記プログラマブル論理デバイスと、前記メモリシステムと、前記マイクロプロセッサ論理とに動作電力を提供するべく連結されたバッテリをさらに備える、請求項３３に記載の移動機器。
【請求項３５】
前記プログラマブル論理デバイスは、前記マイクロプロセッサ論理と協働して、音声認識、グラフィック描画、暗号、復号、Ｉ／Ｏインターフェース、画像処理、音声および／または動画の圧縮および／または伸張、または二次的なマイクロプロセッサ機能のうちの少なくとも１つを提供する、請求項３３または３４に記載の移動機器。
【請求項３６】
前記マイクロプロセッサ論理に連結されたディスプレイをさらに備える、請求項３３から３５のいずれか一項に記載の移動機器。
【請求項３７】
前記マイクロプロセッサ論理に連結されたスピーカをさらに備える、請求項３３から３６のいずれか一項に記載の移動機器。
【請求項３８】
前記マイクロプロセッサ論理に連結された入力デバイスをさらに備える、請求項３３から３７のいずれか一項に記載の移動機器。
【請求項３９】
前記入力デバイスは、マイクロフォン、キーパッド、および／または、タッチスクリーンのうち少なくとも１つを含む、請求項３８に記載の移動機器。
【請求項４０】
前記移動機器がデータを送受信するためのアンテナをさらに備える、請求項３３から３９のいずれか一項に記載の移動機器。
【請求項４１】
携帯電話を含む、請求項３３から４０のいずれか一項に記載の移動機器。
【請求項４２】
セキュアなクレジットカード、個人情報および／または医療情報の保管場所、および／または、ゲームデバイスのうち少なくとも１つとして機能可能な、請求項３３から４０のいずれか一項に記載の移動機器。
【請求項４３】
車両のエンジンのイグニションキー、および／または、アクセスキーとして機能することが可能な、請求項３３から４０のいずれか一項に記載の移動機器。
【請求項４４】
前記プログラマブル論理デバイス、前記メモリシステム、および、前記マイクロプロセッサ論理は、スタックダイを含む、請求項３３から４３のいずれか一項に記載の移動機器。
【請求項４５】
前記プログラマブル論理デバイス、前記メモリシステム、および、前記マイクロプロセッサ論理は、パッケージ−オン−パッケージ構成である、請求項３３から４３のいずれか一項に記載の移動機器。
【請求項４６】
前記プログラマブル論理デバイス、前記メモリシステム、および、前記マイクロプロセッサ論理は、２．５Ｄパッケージ構成である、請求項３３から４３のいずれか一項に記載の移動機器。
【請求項４７】
前記プログラマブル論理デバイス、および、前記マイクロプロセッサ論理は、単一のダイに集積されている、請求項３３から４３のいずれか一項に記載の移動機器。
【請求項４８】
前記プログラマブル論理デバイスはＦＰＧＡを含む、請求項３３から４７のいずれか一項に記載の移動機器。
【請求項４９】
前記プログラマブル論理デバイスは、Ｊａｖａ（登録商標）仮想マシンをインスタンス化する、請求項３３から４８のいずれか一項に記載の移動機器。
【請求項５０】
再構成可能論理と、前記再構成可能論理に連結されたメモリシステムと、前記メモリシステムに連結されたマイクロプロセッサ論理とを備え、前記再構成可能論理および前記マイクロプロセッサ論理は、前記メモリシステムのコンテンツにアクセスする機能面で対等である移動機器を実装する方法であって、
前記移動機器のアプリケーションコードを提供する段階と、
前記アプリケーションコードをコンパイルする段階と、
コンパイルされた前記アプリケーションコードから前記再構成可能論理に実装可能なコードを生成する段階と
を備える方法。
【請求項５１】
前記アプリケーションコードを提供する段階は、
Ｊａｖａ（登録商標）アプリケーションコードを提供する段階を有する、請求項５０に記載の方法。
【請求項５２】
前記コンパイルする段階と前記生成する段階とは、
前記再構成可能論理に実装するために、前記Ｊａｖａ（登録商標）アプリケーションコードを変更する段階を有する、請求項５１に記載の方法。
【請求項５３】
前記Ｊａｖａ（登録商標）アプリケーションコードを提供する段階は、
前記Ｊａｖａ（登録商標）アプリケーションコードをバイトコードの形式で提供する段階を含む、請求項５１または５２に記載の方法。
【請求項５４】
前記アプリケーションコードを提供する段階は、
アプリケーションＪａｖａ（登録商標）バイトコードを提供する段階を含む、請求項５０に記載の方法。
【請求項５５】
前記コンパイルする段階と前記生成する段階とは、
前記再構成可能論理に実装するために、前記アプリケーションＪａｖａ（登録商標）バイトコードを変更する段階を有する、請求項５４に記載の方法。
【請求項５６】
前記アプリケーションＪａｖａ（登録商標）バイトコードを提供する段階は、
任意の言語のアプリケーションソースコードを、Ｊａｖａ（登録商標）バイトコード形式に低減させた形で提供する段階を含む、請求項５４または５５に記載の方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、２０１１年１２月１６日に提出された米国仮特許出願第６１／５７６，８４６号に関連しており、その優先権を主張する。この特許出願、および、このなかで引用された全ての特許および特許出願全ての開示の全体を、ここに参照目的で特に組み込む。
【背景技術】
【０００２】
本発明は概して、移動電子機器分野に係る。より詳しくは、本発明は、再構成可能な処理技術を利用して、低電力消費で（特にバッテリ寿命を延ばしつつ）高速アプリケーションを可能とする移動電子機器に係る。ここに開示する技術はさらに、埋め込み可能な医療機器その他の可搬型の電子システム（特に電力消費を最小限に抑え、計算力を上げることが望ましい用途）向けに適している。
【０００３】
今日の移動機器は、バッテリの寿命を延ばしたり、物理的な大きさを小さくしたり、軽量化を図ったり、という目的のために非常に計算力が限られている。この結果、これら機器が実行可能なソフトウェアアプリケーションは潜在的に限定される。したがって、「クラウド」計算モデルに関しては「リーチバック（reach back）」の計算モデルを採用している。しかし、Ｎｅｔｆｌｉｘ（登録商標）等のストリーミングが普及すると、クラウドへの帯域幅にアクセスすることができなくなる。例えば、Ｎｅｔｆｌｉｘは既に、午後６時から午後９時の間の全インターネット帯域幅の３０％を消費しているとのことである。したがって、クラウドプロバイダその他のストリーミングメディアサービスは、移動リーチバックモデルの機能を事実上停止させてしまうことにもなるので、これ以上の利用率の向上を目指さないことが容易に想定される。
【０００４】
この状況を打開するべく、移動機器の製造業者は、非常に低電力しか消費しないマイクロプロセッサを一次プロセッサとしつつ、これより僅かに機能の高いアプリケーションプロセッサを搭載させる試みを行っている。この解決策は、移動処理機能をいくらか向上させるものの、期待されるほどの利得はない。
【発明の概要】
【０００５】
より効果的な解決法として、将来の移動機器に、再構成可能な処理機能を組み込む、というものがある。再構成可能なプロセッサは、同等な機能を有するマイクロプロセッサにおける処理のわずか１％しか消費せず、消費電力は同じでも、先に述べたアプリケーションプロセッサの性能を１００倍上回ることが証明されている。この点において、本発明の譲受人であるＳＲＣ  Ｃｏｍｐｕｔｅｒｓ  ＬＬＣ社から入手可能なＩＭＰＬＩＣＩＴ+ＥＸＰＬＩＣＩＴ（登録商標）アーキテクチャが、まさにこの構成をサポートしており、標準的な高レベルプログラミング言語を利用して移動機器をプログラミングすることができる。
【０００６】
このアーキテクチャを利用する実装方法の一例が、パッケージ−オン−パッケージ（ＰｏＰ）アセンブリである。このよく利用されている移動機器アセンブリ技術は、ボールグリッドアレイデバイスを上下に重ねて配置して、下の部材以下の設置面積を達成する。移動機器では通常、マイクロプロセッサの上にメモリを積層する。ＳＲＣ  Ｃｏｍｐｕｔｅｒｓ  ＬＬＣ社が特許化したアーキテクチャによれば、再構成可能機器とマイクロプロセッサとを共有メモリで相互接続するので、ＰｏＰアセンブリを拡張して再構成可能なレイヤを含めることで、ＳＲＣ  ＭＡＰ（登録商標）アーキテクチャを、移動機器で利用可能になるように実装することもできることが理解されるだろう。
【０００７】
ここに開示される再構成可能な計算アーキテクチャの他の実装アセンブリの例としては、例えば、シリコン貫通ビア（ＴＳＶ）によって接続されたスタックダイ、ファインピッチのインターポーザその他公知のマルチ集積回路ダイパッケージ技術を利用する２．５Ｄアセンブリが含まれる。さらに、本発明の再構成可能な計算アーキテクチャは、再構成可能な論理およびマイクロプロセッサが１つの集積回路ダイに形成されている構成にも実装可能である。
【０００８】
再構成可能処理によって計算機能が顕著に向上した移動機器はさらに、いくつかの付随したコスト面、および性能面での恩恵もあり、かつ、これら機器は、今日は考えられないような新たなアプリケーション領域の開発の可能性を秘めている。第一に、ウェブサイトで、標準バージョンと移動バージョンの両方を維持する必要がなくなるので、年間数百万ドルを節約することが即可能となる。さらに、計算機能の向上した移動機器によって、今日利用されている帯域幅と同量の帯域幅で、移動機器に送信されるデータ量を増やすことが可能となる。
【０００９】
第二に、再構成可能な計算機能によって、暗号アルゴリズムが顕著にセキュアに実行可能となることにより、移動機器を、ユーザにとってセキュアなデータの一次的な保管場所とすることができる。クレジットカードを物理的に有する代わりに、機器のディスプレイ上の２Ｄバーコードとすることで、個々人が処理を行うことができるような物理的なカードを入手する機会をなくすことにより、クレジットカードにまつわる詐欺の事例を大幅に低減させることができるようになる。移動機器は、高度にセキュアな無線モードで利用することもでき、このモードとすることで、例えばお店に人が入ったとき、中に設置されているセンサが、購入者の存在、前に所望された製品、現在の購入制限額等の情報を検知することができてよい。
【００１０】
このような向上した移動暗号機能は、さらに、ユーザが医療記録等の慎重に扱うべきデータを携帯することができるようになるが、これは、救急時や旅行中の事故時等に非常に役立つ。別の用途としては、車両の電子鍵の代わりに、移動機器に暗号化されたコードを実装することも考えられるだろう。
【００１１】
第三に、多くのユーザにとって移動機器が主要な音声動画媒体となっている昨今では、処理機能を大幅に向上させることでこれらのアプリケーションも大幅に向上すると考えられる。例えば、フラッシュ範囲が限られ、シャッタースピードが遅いことから携帯電話の撮像機能で顕著なモーションブラーを低減させることができる。さらに、今日の「赤目」低減機能等の基本的な画像処理機能の多くを、動画全体にも実行することができるようになる。現行の音声圧縮技術を、リアルタイムではない音声の前処理を必要とすることなく、大幅に向上させることもできるようにもなるだろう。また、ここで開示する再構成可能処理技術は、移動ゲームアプリケーションにも適用可能であり、これにより、ゲームの総合的なパフォーマンスを上げたり、ゲームのさまざまな時点における最適なパフォーマンスを達成したりすることができるようになる。
【００１２】
現在のＡｎｄｒｏｉｄ（Ｇｏｏｇｌｅ，Ｉｎｃ社の登録商標である）デバイスにおけるアプリケーションは、Ｊａｖａ（登録商標）（Ｏｒａｃｌｅ  Ｃｏｒｐｏｒａｔｉｏｎ社の登録商標である）で記述されている。これにより、同じプロセッサを利用しなくても、アプリケーションを全てのＡｎｄｒｏｉｄ端末で携帯することができる。これは、各プロセッサが仮想Ｊａｖａ（登録商標）プロセッサとしてコードを実行し、これがアプリケーションを実行することで達成されている。この結果、可搬性が実現しているわけではあるが、このせいでパフォーマンスは、これと同等のＣコードの約１／４まで低くなる。これは、命令プロセッサが、ハードウェアではなくソフトウェアで構成されていることに起因している。ここで開示する再構成可能処理技術を利用することで、Ｊａｖａ（登録商標）コードを、ＦＰＧＡ等の再構成可能な論理に実装することができるようになり、これにより、現在のプロセッサにおけるエミュレーションの速度低下を防ぐことができるようになる。この結果、Ｊａｖａ（登録商標）が、ハードウェアの実行速度を保ったまま携帯可能になる。
【００１３】
ここに、再構成可能論理にＪａｖａ（登録商標）仮想マシンをインスタンス化して、Ｊａｖａ（登録商標）仮想マシンをマイクロプロセッサに実装する際に見られる性能低下を防ぐことができる本発明の再構成可能処理技術を組み込んだ移動機器を開示する。本発明に関して、アプリケーションを入力しとして、再構成可能プロセッサを含む移動機器上で実行するのに適したコードを生成するコンパイラも開示する。ここで開示するコンパイラは、さらに、特にＪａｖａ（登録商標）アプリケーションを入力として、コードを変更したり、バイトコード形式のものを入力として、再構成可能プロセッサを含む移動機器上での実行を可能としたりすることができる。
【００１４】
ここに特に開示するのは、構成可能な計算機能を組み込んだ移動機器である。本発明のある実施形態では、移動機器の構成可能処理機能によって、ウェブサイトにアクセスする際の計算機能が大幅に上がり、複雑なデータ圧縮技術およびデータ暗号化技術を利用することができるようになる。本発明の移動機器用の構成可能処理技術は、さらに、移動機器に、セキュアなユーザの医療情報その他の個人情報を含ませることができ、かつ、車両のエンジンのイグニションキー（automotive ignition）、その他のアクセスキーとしての用途の可能性を秘めている。
【００１５】
本発明の再構成可能処理技術の他に考えられる用途としては、移動機器の計算機能を向上させて、向上した画像処理技術によって音声および動画の品質を上げる、というものもある。このように向上したオンボードの画像処理によって、動画（高精細な動画を含む）をリアルタイムに移動機器に提供することが可能になる。本発明の再構成可能処理技術の特定の実装例として、ＳＲＣ  Ｃｏｍｐｕｔｅｒｓ  ＬＬＣ社のＩＭＰＬＩＣＩＴ+ＥＸＰＬＩＣＩＴ（登録商標）アーキテクチャにしたがって、共有メモリに連結された高密度論理デバイスおよび直接実行論理の形式で利用することができる明示的および暗示的な論理が挙げられる。
【００１６】
本発明について上述した特徴および目的、その他の特徴および目的、それらの達成法、および、本発明自身は、添付図面に関して記載される好適な実施形態に関する以下の記載を読むことでよくわかるだろう。
【図面の簡単な説明】
【００１７】
【図１】専用論理による従来の処理を利用して現在実装可能な移動機器の内部論理回路の機能ブロック図である。
【図２】本発明の技術にしたがって実装可能な移動機器の機能ブロック図を示し、この再構成可能論理は、前図に示す処理機能の一部または全ての置き換えとして利用される。
【図３】ＩＭＰＬＩＣＩＴ+ＥＸＰＬＩＣＩＴ（登録商標）アーキテクチャの形式で、前図に示された移動機器を実装することのできるプログラミングシステムの代表的な実施形態を示す高レベルブロック図である。
【図４】図２のマイクロプロセッサ論理および再構成可能論理のための１つの統合された実行ファイルを生成するための代表的なコード開発プロセスを示す。
【図５】本発明の一実施形態において利用することのできるスタックダイを含む図２の移動機器の機能部材について可能な物理的実装例の簡略化分解図である。
【図６】本発明の別の実施形態における移動アプリケーションで利用するためのパッケージ−オン−パッケージ構成を含む図２の移動機器の機能部材について可能な別の実装例の切り欠き側面図である。
【図７】本発明のまた別の実施形態における移動アプリケーションで利用されるインターポーザで実装される２．５Ｄ構成を含む図２の移動機器の機能部材について可能なまた別の実装例の切り欠き側面図である。
【図８】移動機器から車両へのアクセスを可能とする従来の移動システムの代表的なアプリケーションにおける現在水準の技術を示す。
【図９】本発明の技術における再構成可能処理によって実装される移動機器が、携帯電話の基地局を介して、または携帯電話のサービスプロバイダを介さずに直接、車両と通信することが可能な移動システムの対応する図である。
【発明を実施するための形態】
【００１８】
図１は、専用論理による従来の処理を利用して現在実装可能な移動機器１００の内部論理回路の機能ブロック図である。移動機器１００は、関連部分に、市販されているマイクロプロセッサ装置（ＭＰＵ）、中央処理装置（ＣＰＵ）、マイクロコントローラ（ＭＣＵ）、デジタル信号プロセッサ（ＤＳＰ）、またはこれらに類似したデバイスとして実装可能なマイクロプロセッサ論理デバイス１０２を含む。マイクロプロセッサ論理デバイス１０２は、外部メモリ１０４に連結されて、外部メモリ１０４にアクセスして読み書きを行う。
【００１９】
マイクロプロセッサデバイス１０２はさらに、システムインターコネクトに連結されており、システムインターコネクトには、移動機器１００の機能およびフィーチャに応じて、グラフィック描画論理１０６、暗号／復号論理１０８、さまざまな入出力（Ｉ／Ｏ）デバイス１１０用のインターフェース論理、画像処理論理１１２、音声／動画・圧縮／伸張論理１１４、二次マイクロプロセッサ（μＰ）論理１１６等が連結されてよい。これら別個のデバイスそれぞれが独立して、または、共同して、移動機器１００の給電を要求するので、オンボードのバッテリ電力が早期に枯渇しないように機能を落とす必要がある場合がある。
【００２０】
図２は、本発明の技術にしたがって実装可能な移動機器２００の機能ブロック図を示し、この再構成可能論理は、前図に示す処理機能の一部または全ての置き換えとして利用される。移動機器２００は、メモリ２０４をマイクロプロセッサ論理２０６との間で共有する再構成可能論理２０２を含み、この再構成可能論理２０２は、前図に記載した論理１０６から１１６までの機能全ての実行（前図）が可能である。
【００２１】
図示されているように、移動機器２００は、さらに、ユーザが見ることができるディスプレイ２０８、スピーカ２１０、移動機器２００がデータまたはコマンドを受け取るためのキーパッドおよび／または、タッチスクリーン２１２、オンボードバッテリー２１４、その他の給電部、および、移動機器２００が外部との間で信号をやりとりするためのアンテナ２１６を含んでよい。移動機器２００はさらに、外部信号の送受信時に利用するマイクロフォン２１６を、携帯電話フィーチャに関連して、および／または、音声認識機能を含む移動機器とのやりとりにおいて、移動機器２００自身が音声コマンドを受け取るために利用するために、含むこともできる。簡単に言うと、移動機器２００は、従来のスマートフォン、情報携帯端末、その他の任意の移動機器のフィーチャ全てを含んだものであってよい。
【００２２】
再構成可能論理２０２、共有メモリ２０４、マイクロプロセッサ論理２０６、およびこれらのプログラミング技術を実装可能な代表的な実施形態は、本発明の譲受人であるＳＲＣ  Ｃｏｍｐｕｔｅｒｓ  ＬＬＣ社の以下の米国特許の１以上に開示されており、これらの開示の全体を、ここに参照目的で特に組み込む。米国特許第6,026,459; 6,076,152; 6,247,110; 6,295,598; 6,339,819; 6,356,983; 6,434,687; 6,594,736; 6,836,823; 6,941,539; 6,961,841; 6,964,029; 6,983,456; 6,996,656; 7,003,593; 7,124,211; 7,134,120; 7,149,867; 7,155,602; 7,155,708; 7,167,976; 7,197,575; 7,225,324; 7,237,091; 7,299,458; 7,373,440; 7,406,573; 7,421,524; 7,424,552; 7,565,461; 7,620,800; 7,680,968; 7,703,085; 7,890,686。
【００２３】
図３は、ＩＭＰＬＩＣＩＴ+ＥＸＰＬＩＣＩＴ（ＳＲＣ  Ｃｏｍｐｕｔｅｒｓ  ＬＬＣ社の登録商標である）アーキテクチャの形式で、図２に示された移動機器２００を実装することのできるプログラミングシステム３００の代表的な実施形態を示す高レベルブロック図である。
【００２４】
システム３００は、関連部分に、例えばＦｏｒｔｒａｎまたはＣプログラミング言語でのアプリケーションソースファイルの入力を可能とするＳＲＣ  Ｃｏｍｐｕｔｅｒｓ  ＬＬＣ社のＣａｒｔｅ（登録商標）プログラミング環境３０４によって生成される統合された実行ファイル３０２を含んでいる。暗示的なデバイス３０６および明示的なデバイス３０８が（後で詳述する）、Ｃａｒｔｅプログラミング環境によってプログラミングされ、これらは両方とも、共通のメモリ３１０に連結されてアクセスを行う。この点において、暗示的なデバイス３０６がマイクロプロセッサ論理２０６に対応しており（図２）、明示的なデバイス３０８が、再構成可能な論理２０２（図２）に対応しており、共通のメモリ３１０は、共有メモリ２０４（図２）に対応している。
【００２５】
このアーキテクチャでは、明示的なプロセッサ３０６および暗示的なプロセッサ３０８は、共通のメモリ３１０の形態のシステムメモリコンテンツにアクセスする機能面で対等である。このようにすると、同じプログラムに対して２つの種類のプロセッサが動作することに起因するオーバヘッドを最小限に抑えられる。これにより、ＳＲＣ  Ｃｏｍｐｕｔｅｒｓ  ＬＬＣ社のＣａｒｔｅ（登録商標）プログラミングツールが、制御切り替えというペナルティーを心配することなく、アプリケーション全体の特定の部分について最適な種類のプロセッサを利用することができるようになる。
【００２６】
暗示的なデバイス３０６は、さらに、高密度論理デバイス（ＤＬＤ：Dense Logic Device）と称されることもあり、マイクロプロセッサ、デジタル信号プロセッサ、グラフィックプロセッサユニット（ＧＰＵ）、および、一部の特定用途向け集積回路（ＡＳＩＣ）を含むコンポーネント群を包括する概念であってよい。これら処理部材は全て暗示的に制御され、通常は、ユーザによる変更が不可能な固定論理からなっている。これらデバイスは、ソフトウェアが発する命令を、予め定められた相互接続および機能を有する固定論理で段階的に実行する。
【００２７】
他方で、明示的なデバイス３０８のほうは、直接実行論理（ＤＥＬ：Direct Execution Logic）と称されることがあり、明示的に制御され、通常は再構成可能なコンポーネント群が含まれてよい。これには、フィールドプログラマブルゲートアレイ（ＦＰＧＡ）、フィールドプログラマブルオブジェクトアレイ（ＦＰＯＡ）、および複雑なプログラマブル論理デバイス（ＣＰＬＤ）が含まれる。この部材群は、プログラムに、特定の機能ユニット間の相互接続の最適化を実現させて、特定のコードに潜む並行処理機能の最大化を達成するために望ましい計算上の、プリフェッチの、および／またはデータアクセスに関する機能を実装するものである。
【００２８】
暗示的なデバイス３０６（ＤＬＤ）および明示的なデバイス３０８（ＤＥＬ）処理部材は互いに同等に、共有システムメモリ（例えば共通のメモリ３１０）に対して何らかの形で接続されており、データ共有が明示的に実装可能であることから、インターコネクトはキャッシュコヒーレンシーをサポートしていなくてもよい。
【００２９】
明示的デバイス３０８のＤＥＬにおける計算は、アプリケーションに適合した動的論理を採用しており、これは、１つのサイズが全てに適合せねばならないような固定マイクロプロセッサアーキテクチャにアプリケーションを強制的に押し込める技法と対照的である。このおかげで、あるコードについて、機能ユニットおよび並行処理機能の正確さにおいて最も効率的な回路を実現することができる。この結果、あるコードについて進化させることが可能な特定の動的アプリケーション向けプロセッサとすることもでき、および／または、別のコードについて部分的にプログラミングしなおすことで、さまざまなコードにも対応可能にすることもできる。ＤＥＬの計算技術によって、ユーザは、ある用途に特化したコンピュータが持つ性能と、汎用マシンの持つ経済性を享受することができるようになる。
【００３０】
この暗示的なデバイス３０６および明示的なデバイス３０８の融合は、Ｃａｒｔｅプログラミング環境によって、プログラマーがＦｒｏｔｒａｎまたはＣ高レベル言語等のＡＮＳＩ標準言語を利用することで、暗示的なデバイス３０６および明示的なデバイス３０８両方においてアプリケーションが特定されることで可能となる。Ｃａｒｔｅプログラミング環境で行われるコンパイル作業の結果、１つの統合された実行ファイルが、移動機器２００（図２）等の対象異種コンピュータシステムのために出力される。明示的なデバイスは、内部にプログラムイディオムを有することがあり、ＡＮＳＩ標準コンピュータ言語を利用する間、暗示的なデバイスプログラムで利用される表現とは異なる言語を利用することがあることに留意されたい。
【００３１】
一部の現行の異種コンピュータシステムでは、帯域幅が低く、待ち時間が長くかかる入出力バスが、ＦＰＧＡデバイスをＣＰＵから分離させている。ＳＲＣ  Ｃｏｍｐｕｔｅｒｓ  ＬＬＣ社のＩＭＰＬＩＣＩＴ+ＥＸＰＬＩＣＩＴアーキテクチャは、この限定を、ＤＬＤプロセッサおよびＤＥＬプロセッサ同士が同等の立場でシステムメモリを動作させることで取り除いている。これは、システムメモリの帯域幅および待ち時間による限定のみがこれらデバイスの制約であることを意味しており、これによって、システムでのアプリケーションの性能全体が向上する。標準言語を利用しており、暗示的なデバイス３０６および明示的なデバイス３０８がＩＭＰＬＩＣＩＴ+ＥＸＰＬＩＣＩＴアーキテクチャのシステムメモリ３１０の特徴によってのみ制限される、統一されたプログラミング環境は、ユーザに、今日利用可能な如何なるシステムであっても達成し得ないような、利用が容易な高性能のアプリケーションプラットフォームを提供する。
【００３２】
ＩＭＰＬＩＣＩＴ+ＥＸＰＬＩＣＩＴアーキテクチャによって、ユーザは既存のコードを実行することができ、または、簡単に再コンパイルができたり、新たなコードを開発したりすることで、システムの再構成可能なＤＥＬプロセッサの電力を有効利用することができるようになる。このハードウェアとソフトウェアとの組み合わせのアーキテクチャは、マイクロプロセッサ技術と、再構成可能なＤＥＬプロセッサとの完全融合を達成して、性能のスケールのオーダーを上げて、消費電力を低減させる。ＳＲＣ  Ｃｏｍｐｕｔｅｒｓ  ＬＬＣ社のＣａｒｔｅ（登録商標）のプログラミング環境は、プログラマーがコードのマイクロプロセッサの部分を得て、再構成可能なプロセッサの部分を処理する際に旧来直面してきた課題を解決することができる。
【００３３】
図４は、図２のマイクロプロセッサ論理２０６等の高密度論理デバイスおよび再構成可能論理２０２等の直接実行論理のための１つの統合された実行ファイルを生成するための代表的なコード開発プロセス４００を示す。プロセス４００は、再構成可能論理２０２（例えばＭＡＰ（登録商標：ＳＲＣ  Ｃｏｍｐｕｔｅｒｓ  ＬＬＣ社の登録商標である）プロセッサ）のソースファイル４０２およびアプリケーションソースファイル４０４の入力から始まるが、後者は、ステップ４０６で、マイクロプロセッサのコンパイラのコンパイル処理によって、従来の方法で生成されたオブジェクトファイル８０８とする。
【００３４】
Ｃａｒｔｅコンパイラ４１０は、ソースファイル４０２を受け取り、Ｃａｒｔｅマクロライブラリ４１２のハードウェアバージョンを利用して、ＦＰＧＡの位置およびルートツール４１４を呼び出して、ＦＰＧＡビットストリームを生成する。このビットストリームは、Ｃａｒｔｅコンパイラ４１０によってオブジェクトファイル出力４１６に含められる。ステップ４１８で、全てのオブジェクトファイル４０８および４１６が、Ｃａｒｅｔｅライブラリを利用して、解決されているハードウェアマクロライブラリシンボル４２０に結び付けられる。このようにして、ＦＰＧＡプログラミングビットストリームおよびランタイムコード４２４が、単一の統合されたアプリケーション実行ファイル４２２内に埋め込まれる。プログラマーが、自身のＶｅｒｉｌｏｇまたはＶＨＤＬ  ＩＰをこれらライブラリに組み込むこともできる。こうすることで、プログラマーは、単純な機能呼び出しを利用して、ＩＰをインスタンス化することができる。
【００３５】
プログラミングソフトウェアは、標準的な第三者ソフトウェアおよびＳＲＣ  Ｃａｒｔｅプログラミング環境という２つの主要な部材を含む。移動機器２００（図２）は、ベースシステムソフトウェアを形成する、標準ベースのソフトウェア（例えばＬｉｎｕｘ（登録商標）  Ｆｅｄｏｒａオペレーティングシステム）を利用して実装可能である。Ｌｉｎｕｘ（登録商標）内でサポートされているコンパイラ、デバッガー、およびソフトウェア管理ツールを、Ｃａｒｔｅプログラミング環境とともに利用したり、Ｃａｒｔｅプログラミング環境とインターフェースしたりすることもできる。ツールの一部は、Ｉｎｔｅｌ（登録商標）Ｆｏｒｔｒａｎコンパイラ、Ｉｎｔｅｌ（登録商標）Ｃ++コンパイラ、および／または、Ａｌｔｅｒａ  Ｑｕａｒｔｕｓ（登録商標）ＩＩ  ＦＰＧＡデザインソフトウェアを含んでもよい。Ｌｉｎｕｓオペレーティングシステム（ＯＳ）環境も、周辺ストレージおよびネットワーキングをサポートする複数のドライバおよびライブラリへのアクセスを許可することができる。
【００３６】
Ｃａｒｔｅプログラミング環境は、標準ＡＮＳＩ  Ｆｏｒｔｒａｎおよび／またはＣで記述されたアプリケーションをとり、再構成可能論理２０２およびマイクロプロセッサ論理２０６（図２）の計算機能を単一の統合された実行ファイルへの統合を、途切れなく実行する。より詳しくは、Ｃａｒｔｅプログラミング環境によって、プログラマーは、マイクロプロセッサ／ＦＰＧＡ異種システム内でのコードの同時実行の明示的な定義を行うことができるようになり、同時に、メモリ階層内での明示的なデータ管理の提供を行うことができるようになる。プログラマーは、低レベルハードウェア機能（高レベルプログラミング言語内からのプロセッサハードウェアの定義および生成を含む）への最終的なアクセス権を与えられている。このレベルの制御が計算およびメモリアクセスに対して与えられていることで、高い計算機能が可能となる。
【００３７】
Ｃａｒｔｅプログラミング環境は、いくつかのコンポーネントからなり、主要なソフトウェアコンポーネントは、ＳＲＣ  ＭＡＰプロセッサコンパイラであり、現在はＭＡＰ／ＦｏｒｔｒａｎコンパイラまたはＭＡＰ／Ｃコンパイラとして利用可能である。ＭＡＰコンパイラは、ＭＡＰ  ＦＰＧＡ用の直接実行論理を生成する。コンパイルシステムは、コードの最大限の並行処理を引き出して、ＦＰＧＡにパイプラインハードウェア論理をインスタンス化する。コンパイラは、ＭＡＰプロセッサに対するデータの移動を管理するために必要なインタフェースコード全てを生成して、ＭＡＰプロセッサでの論理の実行とマイクロプロセッサの実行との間の調整を行う。ライブラリは、整数、単精度、倍精度の浮動小数点といった各種データを完全にサポートしている。
【００３８】
必要なインターフェースおよび管理コードの全てが、Ｃａｒｔｅランタイムライブラリに含まれている。ＳＮＡＰ（登録商標：ＳＲＣ  Ｃｏｍｐｕｔｅｒｓ  ＬＬＣの登録商標）のドライバおよび関連するライブラリに、Ｃａｒｔｅプログラミング環境が備わり、アプリケーション開発者は、これによって、自身のアルゴリズムが完全に融合するように、簡単に設計および実装することができる。さらにユーザは、Ｃａｒｔｅプログラミング環境によって、コンパイルされたコードを「デバッグモード」でエミュレーションおよびシミュレーションすることができる。デバッグモードのコンパイルによって、ユーザは、ＦＰＧＡの位置およびルートツールを呼び出すことなく、ＣＰＵ上で自分の全てのコードをコンパイルしてテストすることができる。ループ性能情報もデバッグモードで提供され、これによって、ＦＰＧＡ位置およびルートの前に、ＭＡＰプロセッサコード性能の推定を正確に行うことができる。
【００３９】
図５は、本発明の一実施形態の移動用途において利用することのできるスタックダイ５００を含む図２の移動機器の機能部材について可能な物理的実装例の簡略化分解図である。スタックダイ５００は、ダイパッケージ５０２を含み、ダイパッケージ５０２には、マイクロプロセッサ５０６（例えばマイクロプロセッサ論理２０６）、メモリ５０６（例えばメモリ２０４）、およびＦＰＧＡ５０８（例えば再構成可能論理２０３）が、貫通ダイ電気コネクタ５１０（例えば貫通シリコンビア「ＴＳＶ」）およびコンタクト５１２によって、物理的および電気的に連結されている。
【００４０】
スタックダイ５００の可能性のある実施形態を生成する際の代表的な実装例およびプロセスが、Ａｒｂｏｒ  Ｃｏｍｐａｎｙ  ＬＬＰの以下の米国特許の１以上に開示されており、これらの特許出願の開示の全体を、ここに参照目的で特に組み込む。米国特許第6,627,985; 6,781,226; 7,126,214; 7,282,951; RE42,035。
【００４１】
図６は、本発明の別の実施形態における移動アプリケーションで利用するためのパッケージ−オン−パッケージ（ＰｏＰ）６００構成を含む図２の移動機器の機能部材について可能な別の実装例の切り欠き側面図である。
【００４２】
パッケージ−オン−パッケージ６００は、回路基板にＰｏＰ６００を連結させるために、一連の高密度ボールグリッドアレイ（ＢＧＡ）コンタクト６０２を含んでいる。コンタクト６０２は、単一または複数の集積回路ダイ部材６０６（図２のマイクロプロセッサ論理２０６等の）をサポートする積層基板６０４に取り付けられていてよい。複数のワイヤボンド６０８によって、ダイ部材６０６がコンタクト６０２に電気的に連結される。ダイ部材６０６およびワイヤボンド６０８は、カプセル６１０内に含まれている。
【００４３】
ＰｏＰ６００はさらに、これも１以上の集積回路ダイ部材６１６をサポートしている別の積層基板６１４に取り付けられた複数の低密度ＢＧＡコンタクト６１２を含む。この点において、ダイ部材６１６は、例えば、図２の移動機器のメモリ２０４および再構成可能論理２０２を含んでよい。メモリ２０４と再構成可能論理２０２とを含むダイ部材６１６は、前図である図５に示すように積層されてもよいし、ダイ部材６０６と別のカプセルに封入されてもよい。複数のワイヤボンド６１８は、ダイ部材６１６をコンタクト６１２に電気的に連結して、両方ともがカプセル６２０内に封入されている。さらに、集積回路ダイ部材６０６では、共通の基板上に、再構成可能論理２０２およびマイクロプロセッサ論理２０６が、一緒に形成されていてもよい点にも留意されたい（ダイ部材６１６のいずれについても同様である）。
【００４４】
図７は、本発明のまた別の実施形態における移動アプリケーションで利用されるインターポーザで実装される２．５Ｄ７００構成を含む図２の移動機器の機能部材について可能なまた別の実装例の切り欠き側面図である。
【００４５】
２．５Ｄ７００構成は、複数のＢＧＡはんだボールコンタクト７０２と、別の複数のより小さいはんだバンプ７０６までの複数のインターコネクトが内部を通っているパッケージ基板７０４とを含む。はんだバンプ７０６は、インターポーザ７０８を支持して、インターポーザ７０８に形成された、複数の帯域幅が高く、待ち時間が短いインターコネクト７１０に、ＴＳＶ（不図示）を介して電気的に連結されている。そして、インターコネクト７１０は、さまざまな集積回路ダイ７１４に電気的接続を提供する複数のマイクロバンプ７１２に連結されている。この点に関しては、集積回路ダイ７１４のいずれもが、図２の移動機器２００の再構成可能論理２０２、メモリ２０４、および／または、マイクロプロセッサ論理２０６を含むことができる。加えて、集積回路ダイ７１４のいずれもが、共通基板上に、再構成可能論理２０２とマイクロプロセッサ論理２０６とを含むことができる。
【００４６】
図８は、従来の移動機器８０２から車両へのアクセスを可能とする従来の移動システム８００の代表的なアプリケーションにおける現在水準の技術を示す。従来の移動機器８０２は、潜在的に処理制限を持ち、利用可能な給電量が所与であることから、移動機器８０２が車両８１０と通信するためには、まず、携帯電話の基地局８０４と通信することになる。そして、携帯電話の基地局８０４は、サービスプロバイダの地上局８０６と通信して、このサービスプロバイダの地上局８０６が、衛星８０８を介して車両８１０へと信号を中継する。
【００４７】
図９は、本発明の技術における再構成可能処理によって実装される移動機器９０２が、携帯電話の基地局９０６を介して、または携帯電話のサービスプロバイダを介さずに直接、車両と通信することが可能な移動システム９００の対応する図である。
【００４８】
本発明の原理を特定の装置、機器構成、およびプログラミング環境を例にとって説明してきたが、前述した記載はあくまで例示であり、本発明の範囲の限定ではないことは理解されたい。特に、前述した開示の教示から、関連する技術分野の当業者であれば、他の変形例を想到する。これら変形例は、それ自体が公知であったり、ここに記載してきた特徴の代わり、またはこれらに追加することができたりする他の特徴に関するものであってよい。本願では特定の特徴の組み合わせに対して請求項が作成されたが、ここにおける開示の範囲は、さらに、現在いずれかの請求項で請求されているものと同じ発明に関していてもいなくても、かつ、本発明が解決を試みる同じ技術上の課題のいずれかまたは全てを軽減するものであってもなくても、当業者には明らかである、明示的または暗示的に開示した任意の新規な特徴、または、特徴の任意の新規な組み合わせ、またはその任意の一般化または変形例も含むものとして理解されたい。したがって本願の審査中に、または本願から派生する別の出願において、これら特徴および／またはこれら特徴の組み合わせについて新たな請求項を作成する権利を留保する。
【００４９】
ここで利用する用語「備える」およびその派生語は、非排他的な含有関係を意図しており、一定の部材を引用するプロセス、方法、物品、または装置が、必ずしもこれら部材のみを含むのではなく、必ずしも明示的に引用されていない他の部材、または、これらプロセス、方法、物品、または装置に内在する他の部材を含みうることを意味している。本願の記載はいずれも、任意の具体的な部材、ステップ、または機能が、請求項の範囲に含まれねばならない本質的な部材である、として理解されるべきではなく、特許化された主題の範囲は、許可された請求項によってのみ定義される点に留意されたい。さらに、添付請求項のいずれも、「〜（分詞形）する手段」という用語が明らかに利用されていない限り、米国特許法１１２条の６段落の記載には該当しない点も理解されたい。
【図１】
0005630772.tif 000002
【図２】
0005630772.tif 000003
【図３】
0005630772.tif 000004
【図４】
0005630772.tif 000005
【図５】
0005630772.tif 000006
【図６】
0005630772.tif 000007
【図７】
0005630772.tif 000008
【図８】
0005630772.tif 000009
【図９】
0005630772.tif 000010