(57)【要約】第１メモリ(506)に結合される第１集積回路(502)及び少なくとも、第１集積回路に結合される(516、518、520)第２集積回路（508、512）を有する電子製品(500)。第１集積回路は、第１コード画像などの情報を第１メモリから第１集積回路にロードし、第１コード画像のうちの少なくとも一部分を実行する。そのようなコード実行に応じて、第１集積回路は、第２コード画像などの情報を第１メモリから読み取り、その情報を第２集積回路に送信する。情報を伝送する、第１集積回路と第２集積回路との間のインタフェースは、JTAG回路などのテスト回路（522、528、526、524）インタフェースであり得る。一実施例では、プログラム・コードは単一の外部メモリから第１集積回路を介して1つ又は複数のダウンストリーム集積回路に、直列に接続されるJTAGのデータ・ピン及び制御ピンを介して転送される。
2006510967.tif 000002
【特許請求の範囲】
【請求項１】
基板上に配置される第１メモリからプログラミング命令を、該基板上に配置される複数の集積回路（IC）に転送する方法であって：該複数のICの第１のものが該第１メモリをアクセスし、第１プログラミング命令群を取り出し、かつ該複数のICの該第１のものの中に該第１プログラミング命令群を記憶させる工程；及び該複数のICの該第１のものが該第１メモリ集積回路をアクセスし、第２プログラミング命令群を取り出し、かつ該第２プログラミング命令群を該複数のICの第２のものに送信する工程を備えることを特徴とする方法。
【請求項２】
請求項1記載の方法であって、該複数のICの該第１のもの及び該第２のもの各々が、それぞれ、該第１プログラミング命令群及び該第２プログラミング命令群を実行することができるプロセッサを備えることを特徴とする方法。
【請求項３】
請求項2記載の方法であって、更に、該複数のICの該第１のものが該第１プログラミング命令群のうちの少なくとも一部分を実行する工程を備えることを特徴とする方法。
【請求項４】
請求項3記載の方法であって、該第１プログラミング命令群のうちの少なくとも一部分を実行する工程が、該第２プログラミング命令群を該複数のICの第２のものに送信する前に行われることを特徴とする方法。
【請求項５】
請求項2記載の方法であって、更に、該複数のICの該第１のものが、該第１メモリをアクセスし、第１データ群を取り出し、該第１データ群を該複数のICの該第１のものの中に記憶させる工程；及び該複数のICの該第１のものが、該第１メモリをアクセスし、第２データ群を取り出し、該第２データ群を該複数のICの第２のものに送信する工程を備えることを特徴とする方法。
【請求項６】
請求項3記載の方法であって、該基板が印刷回路基板を備えることを特徴とする方法。
【請求項７】
請求項3記載の方法であって、送信する工程が、該第１集積回路からデータを直列にシフト出力し、同時にデータを該第２集積回路にシフト入力する工程を備えることを特徴とする方法。
【請求項８】
請求項7記載の方法であって、更に、制御情報を該第１集積回路から該第２集積回路に、該第２プログラミング命令群を該複数のICの第２のものに送信する前に送信する工程を備えることを特徴とする方法。
【請求項９】
請求項8記載の方法であって、該制御情報は、該複数のICの該第２のものがプログラミング命令を後に送信したものを受信するよう命令することを特徴とする方法。
【請求項１０】
単一の非揮発性メモリからコードを複数の集積回路（IC）の各々にダウンロードする方法であって、印刷回路基板上に配置される該複数のICを有するシステムにおいて、各ICが少なくともプログラミング命令を記憶させるメモリを備え、各々は更に、該メモリに結合されて、該メモリに記憶されるプログラミング命令を実行するプロセッサを備え；該システムは更に、該印刷回路基板上に配置され、メモリをアクセスするよう該複数のICの第１のもののみに結合される該単一の非揮発性メモリを有し：該複数のICの第１のもので、第１データ群を該単一の非揮発性メモリから受信する工程；該第１データ群を該複数のICの該第１のものの該メモリに記憶させる工程；該複数のICの該第１のもので、該単一の非揮発性メモリからの第２データ群を受信する工程；該第２データ群を該複数のICの該第１のものから該複数のICの該第２のものに送信する工程；及び該第２データ群を該複数のICの該第２のものの該メモリに記憶させる工程を備え；該第１データ群及び該第２データ群がプログラム・コードを備えることを特徴とする方法。
【請求項１１】
請求項10記載の方法であって、更に：該第１のICにおいて、該第１データ群における該プログラム・コードの少なくとも一部分を実行する工程；該複数のICの該第１のもので、第３データ群を該単一の非揮発性メモリから受信する工程；該第３データ群を該複数のICの該第１のものから該複数のICの第３のものに送信する工程；及び該第３データ群を該複数のICの該第３のものの該メモリに記憶させる工程；を備えることを特徴とする方法。
【請求項１２】
請求項10記載の方法であって、該第２データ群を該複数のICの該第１のものから該複数のICの該第２のものに送信する工程が、データを、該複数のICの該第１のものから出力端子を介して直列にシフト出力する工程を備え；該出力端子が該複数のICの該第２のものの入力端子に結合され、該入力端子は、直列データを受信するよう適合される、該複数のICの該第２のものの中の回路に結合されることを特徴とする方法。
【請求項１３】
請求項12記載の方法であって、更に、該第２データ群を送信する前に、制御情報を該複数のICの該第１のものから該複数のICの該第２のものに制御情報を送信する工程を備えることを特徴とする方法。
【請求項１４】
請求項13記載の方法であって、制御情報がJTAG通信標準によって送信されることを特徴とする方法。
【請求項１５】
電子製品であって：第１プロセッサと、第１内部メモリと、第１直列通信インタフェースと、外部メモリ・インタフェースとを有する第１集積回路；該外部メモリ・インタフェースに結合される外部メモリ；第２プロセッサと、第２内部メモリと、第２直列通信インタフェースとを有する第２集積回路を備え、該第２直列通信インタフェースは該第１直列通信インタフェースに結合され；該第１集積回路、該外部メモリ、及び該第２集積回路が基板上に配置されることを特徴とする電子製品。
【請求項１６】
請求項15記載の電子製品であって、該第１プロセッサが該第１内部メモリに結合され、該第１内部メモリは第１コード画像を受信するよう適合され、該第２プロセッサは該第２内部メモリに結合され、該第２内部メモリは第２コード画像を受信するよう適合され、該
外部メモリは、該第１コード画像と該第２コード画像とによってコード化される非揮発性メモリであることを特徴とする電子製品。
【請求項１７】
請求項16記載の電子製品であって、該第１集積回路は、少なくとも第１機能を行う第１ハードウェア・ファシリティを有し、該第２集積回路は、少なくとも第２機能を行う第２ハードウェア・ファシリティを有し、該第１機能と該第２機能は異なることを特徴とする電子製品。
【請求項１８】
請求項17記載の電子製品であって、更に、第３プロセッサ、第３内部メモリ、及び第３直列通信インタフェースを有する第３集積回路を備え、該第３直列通信インタフェースは該第２直列インタフェースに結合され、該第３プロセッサは該第３内部メモリに結合され、該第３内部メモリは第３コード画像を受信するよう適合され、該外部メモリは更に、該第３コード画像によってコード化されることを特徴とする電子製品。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、一般的に、電子システムに関し、特に、複数の集積回路に情報を効率的にロードする方法及び装置に関し、その修正回路の各々はその意図する機能を行ううえでそのような情報を必要とする。
【背景技術】
【０００２】
半導体製造技術、更にはディジタル・システム・アーキテクチャにおける進展によって、今まで可能であったものよりもずっと多くの機能を組み入れた、より大規模の集積回路を設計し、生産することができるようになった。少なくともいくつかの大規模機能ブロックを組み入れて高レベルの機能を生成する特定の集積回路クラスは、システム・オン・チップ（SoC）として呼ばれている。そのようなSoC集積回路は多くの場合、1つ又は複数のプロセッサを、プロセッサによって実行される対象のプログラム・コードを記憶するメモリとともに有し、更に、種々の高レベルの周辺機能を実施する1つ又は複数の回路ブロックを有する。
【発明の開示】
【発明が解決しようとする課題】
【０００３】
SoCは通常、種々の別の構成部分を有する電子製品又はシステムにおいて用いられている。通常の配置では、SoCと、SoCの外部にあるROM又はフラッシュなどの非揮発性メモリは印刷回路基板上などの基板上に実装される。この場合、外部非揮発性メモリはSoCに結合されて、１つ又は複数の、その上に集積されるプロセッサによって後に用いられるよう、そのSoCにロードされるプログラム・コードを備える。別の配置では、プログラム・コード用メモリは、SoCに対して完全に外にあってもよく、一部が外にあってもよい。電子製品がより複雑になるにつれ、複数のSoCを単一の電子製品が有するようにする必要性が生じてきた。
【０００４】
電子製品が有するSoCなどの複数の集積回路に情報を効率的にロードする方法及び装置が必要である。
【課題を解決するための手段】
【０００５】
簡潔に述べれば、本発明の実施例は、単一の非揮発性外部メモリからの情報を複数の集積回路にロードするようにしており、複数の集積回路の１つのみが、単一の非揮発性外部メモリへのメモリ・アクセスを行うよう接続される。
【０００６】
本発明の別の特徴では、複数の集積回路のうちの少なくとも１つにロードされる情報は、少なくとも1つの集積回路が有するプロセッサによって実行可能であるプログラム・コードを備える。
【０００７】
本発明の更に別の特徴では、単一の外部メモリから第１集積回路を介して第２集積回路までプログラム・コードを転送するのに用いる通信経路は、第１集積回路と第２集積回路との各々の中にある検査経路を有する。
【発明を実施するための最良の形態】
【０００８】
それ自体が「システム・オン・チップ」（SoC）の種類のものであるその複数の集積回路を有する電子製品は、タイム・トゥー・マーケットの制約によって一層普及してきている。すなわち、特定の機能を備えるシステム・ソルーションは今では、それらの複数のSoCの機能を組み合わせることによって新たなASIC（すなわち、SoC）を生成するよりもむしろ、基板レベルでいくつかのSoCを集積することによってよりすばやく実現し得る。通常、そのようなSoCの各々は、とりわけ、プログラム・コードを実行するプロセッサ、及びそのプロセッサによって実行される対象のプログラムを記憶させるメモリを有する。一部の通常の別の配置では、プロセッサによって実行される対象のプログラム・コードを記憶する外部メモリはSoCに結合される。又、通常は、そのようなSoCの各々は、プログラム・コードがSoCにロードされる別個の外部メモリに結合されなければならない。この通常の配置では、各SoCは別個のメモリに結合され、そのことによって電子製品のコストにかなり付加される。
【０００９】
本発明の種々の実施例は、システム・デバッグ処理に通常用いる各SoC上の既存の通信インタフェースを用いることによって、システムにおける複数SoC毎に単一の外部メモリからプログラム・コードを備える。一部の実施例では、SoCの各々が有するJTAG回路はコードをダウンロードするのに用いる通信インタフェースを備えるのに用いられる。
【００１０】
本明細書及び特許請求の範囲の原文における「one  embodiment」、「an  embodiment」又は同様な表現に対する言及は、実施例に関して記載した特定の特徴、構造、処理又は特性を本発明の少なくとも一実施例が有するということを意味する。よって、本明細書及び特許請求の範囲記載のそのような句又は表現が出てくることは、必ずしも全てが同じ実施例を表しているわけではない。更に、種々の特定の特徴、構造、動作又は特性を、1つ又は複数の実施例における何れかの適切な方法で組み合わせ得る。
【００１１】
頭字語ASICは特定用途向け集積回路を表す。
【００１２】
頭字語JTAGはジョイント・テスト・アクション・グループを表す。米国電気電子技術者協会(IEEE)はIEEE  Standard  1149.1,  Test  Access  Port  and  Boundary  Scan  Architectureを承認している。
【００１３】
頭字語LSIは大規模集積を表す。
【００１４】
頭字語NVMは非揮発性メモリを表し、電源を入れることなくデータを保持する何れかの適切なデータ記憶手段を有する。非揮発性メモリの例は、制約ではないが、ROM、PROM、EPROM及びフラッシュを有する。
【００１５】
頭字語SoCは、システム・オン・チップを表す。
【００１６】
頭字語TAPは、テスト・アクセス・ポートを表す。
【００１７】
MIPS  EJTAGは、組み込みMIPSアーキテクチャ・プロセッサを有するSoCに変更不要デバッグ機能を備えるハードウェア・デバッグ・ファシリティを表す。同様ではあるが代替のICEと表す配置は、ARMプロセッサ・アーキテクチャに利用可能である。
【００１８】
チップ、半導体デバイス、集積回路、LSIデバイス、モノリシック集積回路、ASIC、SoC、マイクロエレクトニック・デバイス及び同様な表現はこの分野では場合によっては同義に用いられる。マイクロエレクトロニック・デバイスは、その他を包含する最広義の語とみなし得る。このマイクロエレクトロニック・デバイスに関しては、信号はそのようなデバイスと、別の回路構成要素との間で物理的な導電接続を介して結合される。接続点は場合によっては、入力、出力、端子、ライン、ピン、パッド、ポート、インタフェース、又は別の変形及び組み合わせとして表す。これらは、本願の開示の目的では同等な語とみなされる。
【００１９】
ダウンローディングの語は、本明細書及び特許請求の範囲では、外部メモリに直結されているか間接的に接続されている、例えばSoCなどの集積回路に、外部メモリから、制約ではないがプログラム・コードを有する情報を転送することを表すのに用いられる。
【００２０】
プログラミング命令は場合によってはコードとして表す。例えば定数などのデータをプログラミング命令とともに備えて実働プログラムを構築することが多くの場合必要である。同様な表現は、制約ではないが、プログラム・コード、ソフトウェア、ファームウェア、及びマイクロコードを有する。
【００２１】
JTAG準拠デバイスは、TCK、TDI、TDO、及びTMSとして各々表す、クロック用ピン、入力データ用ピン、出力データ用ピン、及びモード選択用ピンを有する。TCKはシステム・クロックとは別個のクロック信号を受信するJTAG準拠デバイスの端子であるテスト・クロック入力を表す。TDIは、データがJTAG準拠デバイスにシフト入力される端子であるテスト・データ入力を表す。TDOは、データがJTAG準拠デバイスからシフト出力される端子であるテスト・データ出力を表す。TMSは、JTAG準拠デバイスが動作する対象が1つ又は複数のテスト・モードのうちのどれかを判定するデータを受信する端子であるテスト・モード選択を表す。JTAG準拠デバイスは、例えば、マイクロプロセッサ、ASIC、又はSoCなどの何れかの種類の集積回路であり得る。JTAG準拠デバイスは、TRST#として表す、ロー・アクティブ・リセット信号を受信するピンを有する場合もある。JTAG準拠デバイスは、境界スキャン・レジスタ及びTAPコントローラを有する。TAPコントローラは、JTAG機能を制御するステート・マシンである。境界スキャン・レジスタはいくつかの直列に続くビットから構成され、これらのビットの各々はJTAG準拠デバイスのディジタル・ピンにも結合される。JTAG準拠デバイスは、データ・レジスタ、命令レジスタ、及びバイパス・レジスタなどの別のレジスタを有する場合もある。
【００２２】
EJTAGを備えているSoCは、別の構成部分と通信するよう、IEEE1149.1JTAG標準に規定されている5ピンのJTAGインタフェースを用いる。EJTAG回路は更に、組み込みプロセッサの特性を直接制御する手段を備える。内部的には、EJTAGを備えているSoCは、とりわけ、SoCが内部に有する、組み込みプロセッサ、組み込みプログラム・メモリ及び別の組み込み機能ブロックによって通常用いられるアドレス・バス及びデータ・バスをアクセスする回路を有する。
【００２３】
本発明の種々の実施例は実働環境におけるSoCの既存デバッグ機能を用いて2つ以上のSoCを有する完全なシステムの全体コストを削減する。通常、各SoCはブート・アップする相当外部メモリを有する。本発明の一部の実施例は、SoCのうちの単一のものにインタフェースされる単一の外部メモリにおいて、マルチMoC電子製品のSoC毎にコード画像を記憶させる。ダウンストリームのSoC毎のコード画像はそれに対して、外部メモリにインタフェースされるSoCと、ダウンストリームSoCの各々との間のインタフェースを介して転送される。
【実施例】
【００２４】
図１を参照すれば、通常の電子製品100を示す。通常の電子製品100は、第１SoC104、第２SoC108、並びに第３SoC112、及び第１非揮発性メモリ106、第２非揮発性メモリ110、並びに第３非揮発性メモリ114をその上に配置させたその印刷回路基板102を有する。SoC104、108、並びに112は通常、少なくとも、プログラミング命令をプロセッサが実行するようにするのに必要な回路と、プログラミング命令を記憶するメモリとを有する集積回路である。非揮発性メモリ106、110、並びに114は各々、第１SoC104、第２SoC108、並びに第３SoC112に、それぞれ結合されているSoC及び非揮発性メモリ各々の間でコードを転送し得るように結合される。図1の通常の手法では、それらの別個の非揮発性メモリをアクセスするよう別個の非揮発性メモリ及び経路を各SoCが必要とするということが分かり得る。これらの構成部分と、それらが必要とする空間及び電力は、このようにして構築される電子製品の製造費用と運転費用とを増加させる。
【００２５】
図2を参照すれば、本発明による電子製品200を示す。電子製品200は基板202を有する。基板202は通常、印刷回路基板であるが、集積回路をサポートする何れかの適切なマテリアル若しくは構造であってもよく、その上に配置し得る別の構成部分であってもよい。図2に示すように、第１非揮発性メモリ206、第１SoC204、第２SoC208、及び第３SoC210が基板202上に配置される。SoC204、208、210は同じハードウェア・ファシリティ又は別のハードウェア・ファシリティを有し得るが、通常の実施例では、これらは種々の機能を実施する種々のハードウェア・ファシリティを有する。制約ではなく例として、第１SoCはケーブル・モデム・インタフェースを実施するハードウェア・ファシリティを有し得る一方、第２SoCはMPEG復号器を実施するハードウェア・ファシリティを有し得る。この説明例では、SoC204、208、210各々は、MIPアーキテクチャ・プロセッサとEJTAGデバッグ・ファシリティとを有する。SoCの組み込みメモリに対するアクセスが備えられている限り、別のデバッグ・ファシリティを用い得るということは本願の開示の恩恵を受けている当業者が分かるものである。
【００２６】
第１非揮発性メモリ206及び第１SoC204は、SoC204が第１非揮発性メモリ206の内容をアクセスする、すなわち読み取ることが可能であるように接続される。このことを説明する別の方法としては、第１SoC204が外部メモリ（すなわち、非揮発性メモリ206）に接続される外部メモリ・インタフェースを有するということを述べることがある。SoC204はSoC208に結合されて、データをSoC204からSoC208に通信する。同様に、SoC208はSoC210に結合されて、データをSoC208からSoC210に通信する。そのような構成によって、非揮発性メモリ206から外部メモリ・インタフェースを介してSoC204に対して、外部メモリ・インタフェースを介してSoC204を通じてSoC208に対して、かつ外部メモリ・インタフェースを介して、SoC204を通じ、SoC208を通じてSoC210に対して、例えばコード画像などのデータが転送されることを可能にする。
【００２７】
図3を参照すれば、本発明による電子製品300を示す。図3の電子製品300は図2に示すものと同様であるが、特に、コード画像を単一の外部メモリから複数の集積回路の各々に転送するJTAGインタフェースによって実施する信号経路を示し、複数の集積回路のうちの1つのみが、外部メモリを読み取るよう結合される。第１非揮発性メモリ206、第１SoC204、第２SoC208、及び第３SoC210は基板302上に配置される。JTAGのクロック信号、リセット信号及びモード選択信号（TCLK、TRST#、及びTMS）は第１SoC204、第２SoC208、及び第３SoC210の各々に同様に結合される。これらの信号は、本発明のコード・ダウンロード処理中に第１SoC204によって駆動され、これらの信号は通常、JTAG回路を通常用いる場合、外部の信号源から駆動されることになる。第１非揮発性メモリ206及び第１SoC204は、SoC204が第１非揮発性メモリ206の内容をアクセスする、すなわち読み取ることが可能であるように接続される。SoC204はSoC208に結合されてデータをSoC204からSoC208に通信する。特に、SoC204の出力端子304はSoC208の入力端子306に導電経路308によって結合される。この例示的実施例では、出力端子304はJTAGテスト・データ出力（TDO）ピンであり、入力端子306はJTAGテスト・データ入力（TDI）ピンである。同様に、SoC208はSoC210に結合されてデータをSoC208からSoC210に通信する。特に、SoC208の出力端子310はSoC210の入力端子312に、導電経路によって結合される。この例示的実施例では、出力端子304はJTAGテスト・データ出力（TDO）ピンであり、入力端子306はJTAGテスト・データ入力（TDI）ピンである。そのような構成によって、非揮発性メモリ206から外部メモリ・インタフェースを介してSoC204に対して、外部メモリ・インタフェースを介してSoC204を通じてSoC208に対して、かつ外部メモリ・インタフェースを介して、SoC204を通じ、SoC208を通じてSoC210に対して、例えばコード画像などのデータが転送されることを可能にする。SoC208、210の内部の回路は、例えばそれらの内部メモリに対する、プログラム・コードのロードを制御する。
【００２８】
図3に示す例示的実施例をなお参照すれば、任意的には、戻り経路を作り出すよう、SoC210のテスト・データ出力ピンとSoC204のテスト・データ入力ピンとの間の接続（図示せず）があり得る。そのような接続は、種々のダウンストリームSoCのステータスを判定することをSoC204が要求される場合に備える。
【００２９】
図4を参照すれば、EJTAG機能を有するJTAG準拠ICの概略レベルの略構成図を示す。特に、CPU402、デバッグ・レジスタ404、少なくともプログラム・コードを記憶するシステム・メモリ406、周辺機能ブロック408、及びEJTAGブロック410を有するSoC400を示す。EJTAGブロック410は、TAPコントローラ412、命令、データ、制御、及び境界スキャン・レジスタ414、直接メモリ・アクセス（DMA）モジュール416、及びプロセッサ・アクセス・モジュール418を有する。SoC400は更に、CPU402、デバッグ・レジスタ404、システム・メモリ406、DMAモジュール416、及びプロセッサ・アクセス・モジュール418が結合されるアドレス/データ・バス420を有する。なお、一部の実施例では、システム・メモリはチップの外にあり得る；DMAモジュールは必ずしも、全ての実施例が有する訳でない；更に、一部の実施例はEJTAG回路とプロセッサとの間の直接制御接続及び/又はステータス接続を有し得る。TAPコントローラ412は、JTAGの、クロック信号、リセット信号、モード選択信号、及びデータ入力信号を受信する入力端子を有し、更に、データ出力信号を送信する出力端子を有する。そのような配置はシステム・メモリとの間で情報を転送する機構を備える。
【００３０】
図5を参照すれば、単一の非揮発性メモリと、そのSoC各々がそれ自身のプラーベート外部メモリを有するそのいくつかのSoCとを有する電子製品500の略構成図を示す。この例示的実施例では、EJTAGマスタ・デバイスとして動作することができるSoC502は非揮発性メモリ504に結合される。SoC502は更に、JTAGコンプライアンス・イネーブル信号を受信するノード522に結合される入力端子を有する。JTAGコンプライアンス・イネーブル信号は、JTAGマスタとJTAGスレーブとの間でSoC502の動作モードを変更することに関して用いられる。NVM504は電子製品500における複数のSoCにロードされる対象のプログラム・コード及び/又は別のデータを有し得る。外部メモリ506はSoC502に結合される。外部メモリ506は、とりわけ、NVM504からダウンロードされるプログラム・コード及びデータを記憶させることができる。同様な方法で、図5に示すように、SoC508、512は各々、それら自身のプラーベート外部メモリ510、514に結合される。SoC508、512はEJTAGスレーブ・デバイスとして動作することができる。更に、EJTAGマスタ・デバイスからEJTAGスレーブ・デバイスに制御信号を備える通信経路516が図示するようにSoC502、SoC508、及びSoC512間で結合される。なお、（例えば、クロック、リセット、モードなどの）これらの制御信号は、電子製品500がテスト・モードにおいて動作するよう適切に構成される場合にポート526からのテスタなどの外部ソースによって駆動し得る。通信経路516は通常、例えば、クロック信号、リセット信号及びモード信号などの信号の通信に備える。図5に示すのは更に、SoC508のテスト・データ入力端子にSoC502のテスト・データ出力端子を接続する経路518と、SoC512のテスト・データ入力端子にSoC508のテスト・データ出力端子を接続する経路520である。なお、SoC512のテスト・データ出力はポート524で観察し得るものであり、SoC502のテスト・データ入力をポート528から駆動し得る。更に、SoC512のテスト・データ出力をSoC502のテスト・データ入力に接続する戻りループを作り出し得る。
【００３１】
動作上、例示的電子製品500は、プログラム・コード及び/又はデータなどの情報をNVM504からプライベート外部メモリ506、510及び512に対してSoC502、SoC508、及びSoC512が有するJTAG直列データ経路を利用するEJTAGマスタ・デバイスの制御下で転送し得る。なお、種々の実施例では、SoC502、SoC508、及びSoC512は各々、それら自体の中に特定量のメモリを組み入れさせている場合があり、一部の実施例では、これらの内部メモリはプログラム・コード及び/又はデータを記憶している場合もある。
【００３２】
図6を参照すれば、単一の非揮発性メモリ及びいくつかのSoCを有する電子製品600の略構成図を示し、各SoCはそれ自身のメモリ・バスに対する接続を有する。この例示的実施例は、非揮発性メモリがメモリ・バスから取り除かれ、それによってバス・ローディングを削減し、メモリ・バスに結合されるメモリ・デバイスの動作速度の増加を可能にする、本発明の効果を示す。そのような配置の別の効果は、SoCが（メモリ・アクセス用の異なる制御信号仕様を有し得る）RAM及びNVMよりも、RAMにインタフェースするだけでよいため、SoCのメモリ・コントローラ・ロジックが単純化されるという点である。特に、SoC602は、EJTAGマスタ・デバイスとして動作することができるNVM604に結合される。この例示的実施例では、NVM604は、その中にプロセッサ又はCPUが一体化されていなくてもEJTAGマスタ・デバイスとなる対象の回路を有するフラッシュ・メモリである。SoC602は、SoC612及び614とともに各々がそれぞれメモリ・バス606a、606b、606cに結合される。メモリ・デバイス608a、610a、608b、610b、608c及び610cはメモリ・バス606a、606b、606cに各々結合されて示している。なお、市場で入手可能なメモリ・アーキテクチャとメモリ・アクセス・プロトコルは各種存在する一方、制約ではないが、スタティック・ランダム・アクセス・メモリ又はダイナミック・ランダム・アクセス・メモリなどの何れかの適切なメモリであり得る。更に、２つのメモリ・デバイスがメモリ・バスに結合されて示しているが、本発明は、何れかの特定数のそのようなデバイスに限定されるものでない。
【００３３】
なお図6を参照すれば、通信経路616は、EJTAGマスタNVM604とSoC602、612、及び614との間で結合されて示されている。通信経路616は、制約ではないが、クロック信号、リセット信号及びモード信号などの制御信号を備えるのに適している。通信経路618はSoC602のテスト・データ出力端子をSoC612のテスト・データ入力端子に結合する。通信経路620はSoC612のテスト・データ出力端子をSoC614のテスト・データ入力端子に結合する。
【００３４】
なお、本発明は代替的には、各SoCが、プライベート・メモリ・バスではなく共通メモリ・バスを介して揮発性メモリをアクセスする以外は、図6に示すものと同様な構成において実施し得る。
【００３５】
図7を参照すれば、本発明による例示的処理を示す。第１処理702では、第１プログラム・コードは第１メモリから第１集積回路に転送される。第１メモリは通常、単一のチップであり、通常、例えば、読み取り専用メモリ（ROM）又はフラッシュなどの非揮発性メモリ・チップでもある。本発明によれば、第１メモリは単一のパッケージ又はユニットとしてアドレス指定可能な複数のスタック・メモリ・チップとして実施される場合もある。第１プログラム・コードは通常、第１集積回路中のプロセッサによって実行可能な複数の命令を有する。第１プログラム・コードは、第１集積回路上のプロセッサによって用いることが可能なデータ、すなわち実行不能情報を有する場合もある。第１集積回路上のプロセッサは何れかの適切なアーキテクチャのものであり得る。本発明による、SoCにおいて用い得るプロセッサ・アーキテクチャの一例はMIPSアーキテクチャである。しかし、本発明は何れかの特定のプロセッサ・アーキテクチャに限定されるものでない。第１集積回路は、何れかの任意の機能を実施する場合があり、SoCとして呼ばれる集積回路クラスのものである場合があり、JTAGテスト回路（例えば、境界スキャン・レジスタ、TAPコントローラ、モード選択レジスタ、バイパス・レジスタなど）を有するSoCであり得る。第１ICは、プログラム・コードを記憶し得るメモリを有する（が、上記のように、別の実施例はこのメモリがICの外部にあるようにしている）。第１集積回路は通常、メモリとの間で情報を転送することを可能にするEJTAG回路によって備えられるもののような経路を有する。第１プログラム・コードは第１ICに記憶される(704)。図7に示すように、第２プログラム・コードは第１メモリから第１ICに転送され(706)、第２プログラム・コードは第１ICから、第１ICに結合される第２ICに送信される(708)。第２ICは、何れかの任意の機能を実施する場合があり、SoCとして呼ばれる集積回路クラスのものである場合があり、通信するJTAGテスト回路インタフェースを有するSoCであり得る。第２プログラム・コードは第２ICに記憶される(710)。なお、1つ又は複数の別の集積回路が第１メモリからコードを第１集積回路と、本発明による何れかの中間的に結合される集積回路とを介して受信する場合がある。第１ICから第２ICまでの第２プログラム・コードの伝送は何れかの適切なインタフェース配置によって実現し得る。本発明の一部の実施例では、インタフェース配置は、第１集積回路と第２集積回路が有するJTAGテスト回路が備えるものである。なお、データの転送は、必須ではないが、パイプライン方法で行われる場合がある、すなわち、転送される対象のデータの一部分が移動され、更に、要求データ全てが転送されるまで当該処理が繰り返される。
【００３６】
図8を参照すれば、本発明により別の例示的処理を表す。第１処理802では、第１プログラム・コードが第１メモリから第１ICに転送される。第１メモリは通常、単一チップの非揮発性メモリICである。第１プログラム・コードは通常、第１IC中に組み入れられるプロセッサによって実行可能な複数の命令を有する。第１プログラム・コードはデータを有する場合もある。第１ICは、何れかの任意の機能を実施する場合があり、SoCとして呼ばれる集積回路クラスのものである場合があり、JTAGテスト回路を有するSoCであり得る。第１ICは、プログラム・コードを記憶し得るメモリを有する。第１プログラム・コードは第１ICに記憶される(804)。第１ICは更に、第１プログラム・コードの少なくとも一部分を実行する(806)。第１ICにおける第１プログラム・コードの少なくとも一部分の実行に応じて、第２プログラム・コードは第１メモリから第１ICに転送される(808)。第１プログラム・コードの少なくとも一部分の実行に対する別の応答として、第２プログラム・コードが、第１ICから、第１ICに結合される第２ICに送信される(810)。第２ICは、何れかの任意の機能を実施する場合があり、SoCとして呼ばれている集積回路クラスのものである場合があり、JTAGテスト回路を有するSoCであり得る。本発明の例示的実施例では、第２プログラム・コードは第１ICからそのJTAGデータ出力ピンを介して直列にシフト出力され、第２ICのJTAGデータ入力ピンを介して第２ICに直列にシフト入力される。第２プログラム・コードは、第２IC中に有するプロセッサが実行し得るように第２ICに記憶される(812)。なお、1つ又は複数の別の集積回路がコードを第１メモリから第１ICと、本発明による何れかの中間的に結合される集積回路とを介して受信し得る。
【００３７】
１つの例示的実施例では、第１ICはプログラム・コードを外部メモリからロードし、更に、（直接又は間接に）結合される1つ又は複数のダウンストリーム集積回路にコードをダウンロードし始めることが可能な状態にブート・アップする。そのような実施例では、第１ICは第２ICのメモリ・コントローラを初期化し、コードを第２ICのメモリにダウンロードし、第２ICのメモリから動作する第２ICの組み込みプロセッサを設定する場合がある。同様に、第１ICは複数のダウンストリームICの各々にコードをダウンロードし、それらの各々を開始させる場合がある。
【００３８】
別の例示的実施例では、第１ICは、外部メモリからプログラム・コードをロードするが、コードをダウンストリーム集積回路にダウンロードする処理を始める前に、その完全な機能モードまでではなく限定的な範囲までしかブート・アップしない。1つ又は複数のダウンストリーム・デバイスがプログラム・コードによってロードされた後、第１集積回路はそのブート・アップ処理に戻り得る。並列処理を開始することによって、合計システム・ブート・アップ時間を削減し得るが、それは、第１ICがそのブート・アップ処理を完了する前にダウンストリーム・デバイスがその各々のブート・アップ処理を開始したからである。
【００３９】
更に別の実施例では、コードを2つ以上のダウンストリーム・デバイスに同時にダウンロードし得る。
【００４０】
本発明の種々の例示的実施例を、プロセッサを有する複数の集積回路を有する電子製品と、プロセッサによって実行するよう、プログラム・コードをそれらの集積回路にダウンロードする方法とによって記載したが、本発明は更に広く適用可能である。例えば、実行に適したプログラム・コードではなく、例示的な電子製品における1つ又は複数のICはデータ又は制御情報を受信し得る。上記のように、本発明による、単一メモリから情報を受信するダウンストリーム集積回路は、メモリと、情報を受信するICとの中間に配置される別のICとインタフェースする。更に、JTAGベースのインタフェースは本発明の例示的実施例において記載したが、電子製品が有する、単一の外部メモリと種々の集積回路との間のデータ転送処理に何れかの適切なインタフェースを用い得る。
【００４１】
なお、本発明の種々の例示的実施例に表す単一の外部メモリ・チップは、更に、何れかの任意の機能を実施する回路をその上に有するようにしている。
【００４２】
本発明の種々の実施例は、例えばJTAG準拠のSoCなどの複数の個々の集積回路の既存のハードウェア機能を、新規性を有する方法で組み合わせて、電子製品のサイズ、コスト及び電力消費を削減するシステム及び方法を備える。
【００４３】
一部の実施例では、個々の集積回路のJTAGデバッグ機能を、システムにおけるIC毎のコード画像を、単一のフラッシュ・メモリに記憶させ、EJTAGマスタ・イネーブル・デバイスに添付し、EJTAGマスタ・デバイスがブート・アップされると各標的デバイスにダウンロードすることが可能であるように実働環境で組み合わせる。
【００４４】
なお、本発明は上記実施例に限定されず、本特許請求の範囲記載の範囲内に収まる実施例全てを包含することとする。
【図面の簡単な説明】
【００４５】
【図１】プログラム・コードがSoCに転送される別個の外部非揮発性メモリ・チップにそのSoC各々が結合されるその複数のSoCを有する通常の電子製品の略構成図である。
【図２】本発明による、単一の外部メモリ・チップがプログラム・コードなどの情報を複数のSoCに供給する電子製品の概略構成図である。
【図３】本発明による、単一の外部メモリ・チップがプログラム・コードなどの情報を複数のSoCにJTAG機構によって供給する電子製品の略構成図である。
【図４】一般的にJTAG準拠集積回路を示し、特にEJTAG拡張を示す、本発明の実施例において用いるのに適した集積回路の略構成図である。
【図５】本発明による、単一の外部非揮発性メモリ・チップがプログラム・コードなどの情報を、その各々がプライベート外部メモリも有するその複数のSoCにJTAG機構によって供給する電子製品の略構成図である。
【図６】本発明による、単一の外部非揮発性メモリ・チップがプログラム・コードなどの情報を、その各々がそれ自身の外部メモリ・バスに結合されるその複数のSoCにJTAG機構によって供給する電子製品の略構成図である。
【図７】本発明による例示的処理の流れ図である。
【図８】本発明による別の例示的処理の流れ図である。
【図１】
2006510967.tif 000003
【図２】
2006510967.tif 000004
【図３】
2006510967.tif 000005
【図４】
2006510967.tif 000006
【図５】
2006510967.tif 000007
【図６】
2006510967.tif 000008
【図７】
2006510967.tif 000009
【図８】
2006510967.tif 000010
【国際調査報告】
2006510967.tif 000011
2006510967.tif 000012