(57)【要約】【課題】複数の半導体装置の間でシステムバスを接続することなく外部メモリを共有可能であり、かつ、夫々の半導体装置に外部メモリを直接接続することも可能とする。【解決手段】第１の半導体装置の拡張インタフェースは、第２の半導体装置のメモリ制御装置Ｂから、外部メモリＡに対するプロトコルに基づいた読み出し要求を受信し、当該読み出し要求に応じて外部メモリＡへの読み出し要求をメモリ制御装置Ａに送信する。そして、当該読み出し要求に応じてメモリ制御装置Ａから送信されてくるデータを前記プロトコルに基づいてメモリ制御装置Ｂへ送信する。そして、拡張インタフェースは、当該読み出し要求を受信してから前記プロトコルにおける通常のタイミングでメモリ制御装置Ｂにデータを送信できない場合は、データを送信可能となるまでの間、メモリ制御装置Ｂの動作を停止させる停止信号をメモリ制御装置Ｂに出力する。【選択図】  図１
2006293591.tif 000002
【特許請求の範囲】
【請求項１】
メモリと、
第１の半導体装置と、
第２の半導体装置と、
を含み、
前記第１の半導体装置は、
前記メモリに対する読み出し要求を出力する第１のアクセス要求出力部と、
前記第２の半導体装置から、前記メモリあるいは前記メモリとは異種のメモリに対する所定の第２のプロトコルに基づいた読み出し要求を受信し、当該読み出し要求に応じて前記メモリへの読み出し要求を出力し、当該読み出し要求に応じて送信されてくるデータを前記プロトコルに基づいて前記第２の半導体装置へ送信するインタフェース部と、
前記第１のアクセス要求出力部又は前記インタフェース部からの前記読み出し要求に応じて、前記メモリに対応する所定の第１のプロトコルに基づいた読み出し要求を前記メモリに送信し、当該読み出し要求に応じて前記メモリから送信されてくる前記データを前記第１のアクセス要求出力部又は前記インタフェース部に送信する第１のメモリ制御部と、
を備え、
前記第２の半導体装置は、
前記メモリに対する読み出し要求を出力する第２のアクセス要求出力部と、
前記第２のアクセス要求出力部からの前記読み出し要求に応じて、前記第２のプロトコルに基づいた前記読み出し要求を前記インタフェース部に送信する第２のメモリ制御部と、
を備え、
前記インタフェース部は、
前記読み出し要求を受信してから所定の時間で前記第２のメモリ制御部に対して前記データの送信を開始できない場合は、前記データを送信可能となるまでの間、前記第２のメモリ制御部の動作を停止させる停止信号を前記第２のメモリ制御部に出力すること、
を特徴とする半導体システム。
【請求項２】
請求項１に記載の半導体システムであって、
前記所定の時間は、前記メモリが前記第１のメモリ制御部から前記読み出し要求を受信してから前記データを前記第１のメモリ制御部に送信し始めるまでの時間よりも長いことを特徴とする半導体システム。
【請求項３】
請求項１に記載の半導体システムであって、
前記インタフェース部は、
前記第２のメモリ制御部からの前記読み出し要求を記憶する第２の記憶部を備え、当該第２の記憶部の空き領域が所定の大きさ未満である場合は、当該空き領域が前記所定の大きさ以上となるまでの間、前記停止信号を前記第２のメモリ制御部に出力すること、
を特徴とする半導体システム。
【請求項４】
請求項１に記載の半導体システムであって、
前記第２のアクセス要求出力部は、
前記メモリに対する書き込み要求を出力し、
前記第２のメモリ制御部は、
前記第２のアクセス要求出力部からの前記書き込み要求に応じて、前記第２のプロトコルに基づいた書き込み要求を前記インタフェース部に送信し、
前記インタフェース部は、
前記第２のメモリ制御部からの前記書き込み要求を記憶する第３の記憶部を備え、
当該書き込み要求に応じて前記メモリへの書き込み要求を前記第１のメモリ制御部に出力する書き込み要求出力し、前記第３の記憶部の空き領域が所定の大きさ未満である場合は、前記空き領域が前記所定の大きさ以上となるまでの間、前記停止信号を前記第２のメモリ制御部に出力し、
前記第１のメモリ制御部は、
前記インタフェース部からの前記書き込み要求に応じて、前記第１のプロトコルに基づいた書き込み要求を前記メモリに送信すること、
を特徴とする半導体システム。
【請求項５】
請求項１に記載の半導体システムであって、
前記第２のアクセス要求出力部から出力される前記読み出し要求に含まれるアドレスは、第１〜第３のアドレスを含んで構成されており、
前記第２のメモリ制御部は、
前記読み出し要求を前記インタフェース部に送信する際に、前記第１のアドレス及び前記第２のアドレスを送信した後に、前記第１のアドレス及び前記第３のアドレスを送信し、
前記インタフェース部は、
前記第２のメモリ制御部から受信する前記第１のアドレス及び前記第２のアドレスを対応付けて記憶する第４の記憶部を備え、前記第２のメモリ制御部から前記第１のアドレス及び前記第３のアドレスを受信すると、当該第１のアドレスと、当該第１のアドレスに対応する前記第４の記憶部に記憶されている前記第２のアドレスと、当該第３のアドレスとを含んで構成される前記読み出し要求を前記第１のメモリ制御部に送信すること、
を特徴とする半導体システム。
【請求項６】
請求項５に記載の半導体システムであって、
前記第１のアクセス要求出力部又は前記インタフェース部から出力される前記読み出し要求に含まれるアドレスは、前記第１〜第３のアドレスを含んで構成されており、
前記第１のメモリ制御部は、
当該読み出し要求に含まれる前記アドレスのうち、前記第１〜第３のアドレスの夫々のビット位置を記憶するビット位置記憶部を備え、
当該読み出し要求に含まれる前記アドレスから、前記ビット位置記憶部に記憶された前記ビット位置に基づいて前記第１〜第３のアドレスを生成すること、
を特徴とする半導体システム。
【請求項７】
請求項１に記載の半導体システムであって、
前記第２のアクセス要求出力部から出力される前記読み出し要求に含まれるアドレスは、第２及び第３のアドレスを含んで構成されており、
前記第２のメモリ制御部は、
前記読み出し要求を前記インタフェース部に送信する際に、前記第２のアドレスを送信した後に、前記第３のアドレスを送信し、
前記インタフェース部は、
前記第２のメモリ制御部から受信する前記第２のアドレスを記憶する第４の記憶部を備え、前記第２のメモリ制御部から前記第３のアドレスを受信すると、当該第３のアドレスと、前記第４の記憶部に記憶されている前記第２のアドレスとを含んで構成される前記読み出し要求を前記第１のメモリ制御部に送信すること、
を特徴とする半導体システム。
【請求項８】
請求項１に記載の半導体システムであって、
前記第２のメモリ制御部は、
前記読み出し要求を前記インタフェースに送信する際に、前記メモリのデータ領域を指定可能なアドレスを一度に送信することを特徴とする半導体システム。
【請求項９】
請求項１に記載の半導体システムであって、
前記インタフェース部は、
前記第２のメモリ制御部から受信する前記読み出し要求に含まれるアドレスを所定の規則に基づいて変換し、当該変換されたアドレスを設定した前記読み出し要求を前記第１のメモリ制御部に送信すること、
を特徴とする半導体システム。
【請求項１０】
請求項１に記載の半導体システムであって、
前記第１の半導体装置は、
データを読み出すことが可能な読み出し可能装置を備え、
前記インタフェース部は、
前記第２のメモリ制御部から受信する前記読み出し要求に含まれるアドレスに応じて、前記第１のメモリ制御部又は前記読み出し可能装置に前記読み出し要求を送信することを特徴とする半導体システム。
【請求項１１】
請求項４に記載の半導体システムであって、
前記第１の半導体装置は、
データを書き込むことが可能な書き込み可能装置を備え、
前記インタフェース部は、
前記第２のメモリ制御部から受信する前記書き込み要求に含まれるアドレスに応じて、前記第１のメモリ制御部又は前記書き込み可能装置に前記書き込み要求を送信することを特徴とする半導体システム。
【請求項１２】
請求項１１に記載の半導体システムであって、
前記第１の半導体装置は、内部メモリを備えており、
前記書き込み可能装置は、前記メモリと、前記内部メモリとの間におけるデータ転送を制御するダイレクトメモリアクセス制御装置であること、
を特徴とする半導体システム。
【請求項１３】
請求項１に記載の半導体システムであって、
前記第１のメモリ制御部は、
連続して応答可能な時間を記憶する連続応答可能時間記憶部と、
前記第１のアクセス要求出力部又は前記インタフェース部の一方からの前記読み出し要求に対して連続して応答している時間を記憶する連続応答時間記憶部と、
を備え、
他方からの前記読み出し要求を受信すると、前記連続応答時間記憶部に記憶されている時間が前記連続応答可能時間記憶部に記憶されている時間を超えている場合は、前記一方からの前記読み出し要求に対する応答を停止し、前記他方からの前記読み出し要求に対する応答を開始すること、
を特徴とする半導体システム。
【請求項１４】
請求項１に記載の半導体システムであって、
前記第１のメモリ制御部は、
連続して読み出し可能なデータサイズを記憶する連続アクセス可能サイズ記憶部と、
前記第１のアクセス要求出力部又は前記インタフェース部の一方からの前記読み出し要求に対して連続して読み出したデータサイズを記憶する連続アクセスサイズ記憶部と、  を備え、
他方からの前記読み出し要求を受信すると、前記連続アクセスサイズ記憶部に記憶されているデータサイズが前記連続アクセス可能サイズ記憶部に記憶されているデータサイズを超えている場合は、前記一方からの前記読み出し要求に対する応答を停止し、前記他方からの前記読み出し要求に対する応答を開始すること、
を特徴とする半導体システム。
【請求項１５】
請求項１に記載の半導体システムであって、
前記第１のメモリ制御部は、
前記第１のアクセス要求出力部又は前記インタフェース部の一方に対する応答に割り当てるべき時間の比率を記憶する設定応答時間比率記憶部と、
前記一方に対する応答に要した時間の比率を記憶する応答時間比率記憶部と、
を備え、
前記一方からの前記読み出し要求に応答している際に、他方からの前記読み出し要求を受信すると、前記設定応答時間比率記憶部に記憶されている比率が前記応答時間比率記憶部に記憶されている比率を超えている場合は、前記一方からの前記読み出し要求に対する応答を停止し、前記他方からの前記読み出し要求に対する応答を開始すること、
を特徴とする半導体システム。
【請求項１６】
メモリと、前記メモリと通信可能に接続される第１の半導体装置と、前記第１の半導体装置と通信可能に接続される第２の半導体装置と、を含んで構成される半導体システムにおける前記第１の半導体装置であって、
前記メモリに対する読み出し要求を出力する第１のアクセス要求出力部と、
前記第２の半導体装置から、前記メモリあるいは前記メモリとは異種のメモリに対する所定の第２のプロトコルに基づいた読み出し要求を受信し、当該読み出し要求に応じて前記メモリへの読み出し要求を出力し、当該読み出し要求に応じて送信されてくるデータを前記第２のプロトコルに基づいて前記第２の半導体装置へ送信するインタフェース部と、
前記第１のアクセス要求出力部又は前記インタフェース部からの前記読み出し要求に応じて、前記メモリに対応する所定の第１のプロトコルに基づいた読み出し要求を前記メモリに送信し、当該読み出し要求に応じて前記メモリから送信されてくる前記データを前記第１のアクセス要求出力部又は前記インタフェース部に送信する第１のメモリ制御部と、
を備え、
前記インタフェース部は、
前記読み出し要求を受信してから所定の時間で前記第２のメモリ制御部に対して前記データの送信を開始できない場合は、前記データを送信可能となるまでの間、前記第２のメモリ制御部の動作を停止させる停止信号を前記第２のメモリ制御部に出力すること、
を特徴とする半導体装置。
【請求項１７】
請求項１６に記載の半導体装置であって、
前記インタフェース部は、
前記第２のメモリ制御部から前記第２のプロトコルに基づいて送信されてくる前記メモリに対する書き込み要求を記憶する第３の記憶部を備え、
当該書き込み要求に応じて前記メモリへの書き込み要求を前記第１のメモリ制御部に出力し、前記第３の記憶部の空き領域が所定の大きさ未満である場合は、前記空き領域が前記所定の大きさ以上となるまでの間、前記停止信号を前記第２のメモリ制御部に出力し、
前記第１のメモリ制御部は、
前記インタフェース部からの前記書き込み要求に応じて、前記第１のプロトコルに基づいた書き込み要求を前記メモリに送信すること、
を特徴とする半導体装置。
【請求項１８】
メモリと、前記メモリと通信可能に接続される第１の半導体装置と、前記第１の半導体装置と通信可能に接続される第２の半導体装置と、を含んで構成される半導体システムにおける前記第２の半導体装置であって、
前記メモリに対する読み出し要求を出力する第２のアクセス要求出力部と、
前記第２のアクセス要求出力部からの前記読み出し要求に応じて、前記第１の半導体装置と前記メモリとの間における第１のプロトコルあるいは前記メモリとは異種のメモリに対応する第３のプロトコルの何れかである第２のプロトコルに基づいた読み出し要求を前記第１の半導体装置に送信し、当該読み出し要求に応じて前記第１の半導体装置から前記第２のプロトコルに基づいて送信されてくるデータを受信する第２のメモリ制御部と、
を備え、
前記第２のメモリ制御部は、
前記第１の半導体装置に前記読み出し要求を送信してから所定の時間で前記データの送信が開始されない場合に前記第１の半導体装置から出力される停止信号が入力されている間は、前記第１の半導体装置に対する動作を停止すること、
を特徴とする半導体装置。
【請求項１９】
請求項１８に記載の半導体装置であって、
前記第２のアクセス要求出力部は、
前記メモリに対する書き込み要求を出力し、
前記第２のメモリ制御部は、
前記第２のアクセス要求出力部からの前記書き込み要求に応じて、前記第２のプロトコルに基づいた書き込み要求を前記第１の半導体装置に送信し、前記第１の半導体装置があらたな書き込み要求を受信することができない場合に前記第１の半導体装置から出力される停止信号が入力されている間は、前記第１の半導体装置に対する動作を停止すること、
を特徴とする半導体装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、半導体システム及び半導体装置に関する。
【背景技術】
【０００２】
半導体装置を開発する場合、システム構成や生産の都合等により、例えば機能毎に半導体装置を分割し、これら複数の半導体装置を組み合わせて半導体システムを構成することがある。そして、このような半導体システムにおいては、半導体装置が使用するワークメモリとしてＳＤＲＡＭ等の外部メモリが用いられることが多い。
【０００３】
例えば、特許文献１に開示されたテレビ放送受信装置は、トランスポート部の機能とデコード部の機能とを組み合わせて構成された半導体システムである。この半導体システムでは、夫々の機能にワークメモリとしてＤＲＡＭが接続されている。  
また、特許文献２には、プロセッサや表示制御装置等の複数の半導体装置が、システムバスを互いに接続することによって外部メモリを共有した半導体システムが開示されている。  
また、特許文献３には、メモリバスに要求されるデータバンド幅を削減するための半導体装置として、演算処理機能を内蔵するメモリが開示されている。
【特許文献１】特開平１０−２３４５８０号公報
【特許文献２】特開２０４−３１７５３６号公報
【特許文献３】特開平１０−４９４２８号公報
【発明の開示】
【発明が解決しようとする課題】
【０００４】
しかしながら、複数の機能を組み合わせて半導体システムを構成する場合において、特許文献１のように機能ごとに外部メモリを設けると、半導体システムを構成するために必要な外部メモリの個数が多くなり、システムコストが上昇してしまう。
【０００５】
そこで、特許文献２に開示されている構成を複数の半導体装置で構成するシステムに適用し、複数の半導体装置で外部メモリを共有することにより、半導体システムを構成するために必要な外部メモリの個数を削減することも考えられる。しかし、このような方法では、複数の半導体装置のシステムバスを互いに接続するために、システムバスを半導体装置の端子に出す必要があり、システムバスの動作速度の低下を招いてしまう。
【０００６】
また、例えば、特許文献３に開示されている演算処理機能を内蔵するメモリを用いて夫々の半導体装置を構成することにより、半導体システムを構成するために必要な外部メモリの個数を削減することも考えられる。しかし、このような構成とする場合、半導体装置は内蔵されたメモリしか利用できず、実現可能な機能に限界がある。
【０００７】
また、例えば機能毎に半導体装置を分割した場合、分割された複数の半導体装置を組み合わせて半導体システムを構成する場合もあるが、夫々の半導体装置を単独で使用する場合もある。
【０００８】
本発明は上記課題を鑑みてなされたものであり、複数の半導体装置の間でシステムバスを接続することなく外部メモリを共有可能であり、かつ、夫々の半導体装置に外部メモリを直接接続することも可能な半導体システム及び半導体装置を提供することを目的とする。
【課題を解決するための手段】
【０００９】
上記課題を解決するために、本発明のうちの主たる発明は、メモリと、第１の半導体装置と、第２の半導体装置と、を含み、前記第１の半導体装置は、前記メモリに対する読み出し要求を出力する第１のアクセス要求出力部と、前記第２の半導体装置から、前記メモリあるいは前記メモリとは異種のメモリに対する所定の第２のプロトコルに基づいた読み出し要求を受信し、当該読み出し要求に応じて前記メモリへの読み出し要求を出力し、当該読み出し要求に応じて送信されてくるデータを前記プロトコルに基づいて前記第２の半導体装置へ送信するインタフェース部と、前記第１のアクセス要求出力部又は前記インタフェース部からの前記読み出し要求に応じて、前記メモリに対応する所定の第１のプロトコルに基づいた読み出し要求を前記メモリに送信し、当該読み出し要求に応じて前記メモリから送信されてくる前記データを前記第１のアクセス要求出力部又は前記インタフェース部に送信する第１のメモリ制御部と、を備え、前記第２の半導体装置は、前記メモリに対する読み出し要求を出力する第２のアクセス要求出力部と、前記第２のアクセス要求出力部からの前記読み出し要求に応じて、前記第２のプロトコルに基づいた前記読み出し要求を前記インタフェース部に送信する第２のメモリ制御部と、を備え、前記インタフェース部は、前記読み出し要求を受信してから所定の時間で前記第２のメモリ制御部に対して前記データの送信を開始できない場合は、前記データを送信可能となるまでの間、前記第２のメモリ制御部の動作を停止させる停止信号を前記第２のメモリ制御部に出力することとする。
【発明の効果】
【００１０】
複数の半導体装置の間でシステムバスを接続することなく外部メモリを共有可能であり、かつ、夫々の半導体装置に外部メモリを直接接続することも可能である半導体システム及び半導体装置を提供することができる。
【発明を実施するための最良の形態】
【００１１】
＝＝全体構成＝＝
図１は、本発明の一実施形態である半導体システムの構成を示す図である。半導体システムは、第１の半導体装置１００及び第２の半導体装置２００の２個の半導体装置を用いて構成されている。ここで、半導体装置とは、主としてパッケージの形態になっている集積回路、あるいは集積回路のダイのことである。つまり、第１の半導体装置１００及び第２の半導体装置２００は、基板上に搭載するためにパッケージングされた部品の場合と、ダイの場合とがある。ダイの場合、第１の半導体装置１００のみ搭載したパッケージ、第２の半導体装置２００のみ搭載したパッケージ、または、第１の半導体装置１００及び第２の半導体装置２００の両方を搭載したパッケージを構成することが可能である。
【００１２】
まず、第１の半導体装置１００の内部構成について説明する。第１の半導体装置１００は、プロセッサＡ１１０、入出力装置Ａ１２０、内部メモリＡ１３０、メモリ制御装置Ａ（第１のメモリ制御部）１４０、ダイレクトメモリアクセス制御装置１５０、及び拡張インタフェース（インタフェース部）１６０を備え、これらはシステムバスＡ１９０により相互に通信可能に接続されている。
【００１３】
プロセッサＡ１１０は、演算処理や制御を行うプロセッサである。入出力装置Ａ１２０は、各種入出力を行う機能ユニットであり、例えば、映像や音声信号、汎用データ等の入出力を行うことができる。内部メモリＡ１３０は、プロセッサＡ１１０が頻繁に参照するプログラム及びデータの格納や、入出力装置Ａ１２０の制御に必要なデータの格納、第２の半導体装置２００が必要とするプログラム及びデータの格納等に用いられる。
【００１４】
メモリ制御装置Ａ１４０は、外付けのメモリを制御する機能ユニットであり、シーケンサ等のハードウェアによって実現される。メモリ制御装置Ａ１４０は、プロセッサＡ１１０や拡張インタフェース１６０等から送信されるアクセス要求に基づいて、外部メモリＡ３００へのアクセス制御を行う。本実施形態においては、外部メモリＡ３００はＤＤＲ−ＳＤＲＡＭ等の同期型ダイナミックＲＡＭであることとするが、システム構成によっては同期型スタティックメモリや非同期型メモリ等、他の種類のメモリを用いることも可能である。
【００１５】
ダイレクトメモリアクセス制御装置１５０は、データ転送を制御するレジスタを備えており、レジスタに設定された内容に基づいて、主に内部メモリＡ１３０と外部メモリＡ３００との間でのデータ転送を行う。
【００１６】
拡張インタフェース１６０は、第２の半導体装置２００内のメモリ制御装置Ｂ２４０に接続可能なメモリのように振舞うインタフェースである。本実施形態においては、メモリ制御装置Ｂ２４０に接続可能なメモリはＤＤＲ−ＳＤＲＡＭ等の同期型ダイナミックＲＡＭであることとするが、システム構成によっては他の種類のメモリとすることも可能である。
【００１７】
メモリ制御装置Ｂ２４０がＤＤＲ−ＳＤＲＡＭ向けである場合、拡張インタフェース１６０は、ＤＤＲ−ＳＤＲＡＭのプロトコルによる外部メモリＡ３００へのアクセス要求をメモリ制御装置Ｂ２４０から受信する。そして、拡張インタフェース１６０は、当該要求に応じて、外部メモリＡ３００へのアクセス要求をメモリ制御装置Ａ１４０に送信する。これにより、第２の半導体装置２００は、第１の半導体装置１００に接続された外部メモリＡ３００にアクセスすることが可能となる。
【００１８】
また、拡張インタフェース１６０は、メモリ制御装置Ｂ２４０の動作を一時停止させるストール信号（停止信号）４２０を出力することが可能である。メモリ制御装置Ｂ２４０に対してＤＤＲ−ＳＤＲＡＭと同じタイミングでの応答が困難である場合、拡張インタフェース１６０は、ストール信号４２０を出力してメモリ制御装置Ｂ２４０の動作を一時停止させる。
【００１９】
また、拡張インタフェース１６０は、拡張インタフェース１６０の動作に不必要なメモリリフレッシュ要求等のコマンドが来た場合には、そのコマンドを無視する。さらに、第２の半導体装置２００からのメモリアクセス性能を考慮し、拡張インタフェース１６０においては、ＣＡＳレイテンシを通常のＤＤＲ−ＳＤＲＡＭよりも長い時間に設定することができる。また、拡張インタフェース１６０においては、プリチャージが不要であるためプリチャージ時間は０クロックサイクルとなっており、バンクアクティベイティング時間は拡張インタフェース１６０の内部動作に必要なクロックサイクル数となっている。
【００２０】
なお、拡張インタフェース１６０は、第２の半導体装置２００のメモリ制御装置Ｂ２４０が出力しないコマンドやモードへの対応を省略し、簡略化することもできる。省略可能なものとしては、例えば、長いバースト長を利用するモードやバースト・シーケンスでのインタリーブ・アドレッシング指定等が考えられる。
【００２１】
また、拡張インタフェース１６０は、外部メモリＡ３００に限らず、第２の半導体装置２００から第１の半導体装置１００の内部に存在する内部メモリＡ１３０やダイレクトメモリアクセス制御装置１５０等に対するアクセスを仲介することもできる。例えば、第２の半導体装置２００は、拡張インタフェース１６０を介してダイレクトメモリアクセス制御装置１５０が備えるレジスタの設定を行うことも可能である。これにより、第２の半導体装置２００は、拡張インタフェース１６０を介してダイレクトメモリアクセス制御装置１５０に対し、外部メモリＡ３００に存在するデータを内部メモリＡ１３０へ転送するように指示したり、内部メモリＡ１３０に存在するデータを外部メモリＡ３００へ転送するように指示したりすることができる。これにより、第２の半導体装置２００がメモリ制御装置Ｂ２４０経由で頻繁にアクセスする外部メモリＡ３００に格納されたデータやプログラムを、予め内部メモリＡ１３０内に用意しておくことが可能となり、第２の半導体装置２００が第１の半導体装置１００経由で外部メモリＡ３００にアクセスする際のオーバヘッドを軽減することができる。
【００２２】
システムバスＡ１９０は、第１の半導体装置１００内部の機能ユニット間におけるデータ転送に使用されるバスである。また、専用パス１９５は、メモリ制御装置Ａ１４０と拡張インタフェース１６０とを直結するパスであり、第２の半導体装置２００から外部メモリＡ３００にアクセスする際のレイテンシ抑制やバンド幅確保のために設けられている。
【００２３】
なお、プロセッサＡ１１０、入出力装置Ａ１２０、及びダイレクトメモリアクセス制御装置１５０は、処理に応じて外部メモリＡに対するアクセス要求を出力する装置であり、本発明における第１のアクセス要求出力部に該当する。また、入出力装置Ａ１２０、内部メモリＡ１３０、及びダイレクトメモリアクセス制御装置１５０は、夫々が備えるレジスタやバッファ等にデータを書き込むことが可能な装置であり、本発明の書き込み可能装置に該当する。
【００２４】
次に、第２の半導体装置２００の内部構成を説明する。第２の半導体装置２００は、プロセッサＢ２１０、入出力装置Ｂ２２０、内部メモリＢ２３０、メモリ制御装置Ｂ（第２のメモリ制御部）２４０、及び固定機能処理装置２８０を備え、これらはシステムバスＢ２９０により相互に通信可能に接続されている。
【００２５】
プロセッサＢ２１０は、演算処理や制御を行うプロセッサである。入出力装置Ｂ２２０は、各種入出力を行う機能ユニットであり、例えば映像や音声信号、汎用データ等の入出力を行うことができる。内部メモリＢ２３０は、プロセッサＢ２１０が頻繁に参照するプログラム及びデータの格納や、入出力装置Ｂ２２０の制御に必要なデータの格納等に用いられる。固定機能処理装置２８０は、予め処理内容が決まっている演算処理を行う機能ユニットであり、例えば映像のインタレース−プログレッシブ変換を行うユニットなどが考えられる。なお、プロセッサＢ２１０、入出力装置Ｂ２２０、及び固定機能処理装置２８０は、処理に応じて外部メモリＡ３００に対するアクセス要求を出力する装置であり、本発明における第２のアクセス要求出力部に該当する。
【００２６】
メモリ制御装置Ｂ２４０は、外付けのメモリを制御する機能ユニットであり、シーケンサ等のハードウェアによって実現される。メモリ制御装置Ｂ２４０には、ストール信号４２０の入力機能が設けられている。メモリ制御装置Ｂ２４０は、ストール信号４２０が入力されている間（例えば、ストール信号がハイレベルの間）、メモリアクセス動作を一時停止する。メモリ制御装置Ｂ２４０に外付け可能なメモリは、本実施形態ではＤＤＲ−ＳＤＲＡＭ等の同期型ダイナミックＲＡＭであることとするが、システム構成によっては同期型スタティックメモリや非同期型メモリ等、他の種類のメモリとすることも可能である。
【００２７】
図１に示す構成では、メモリ制御装置Ｂ２４０は拡張インタフェース１６０に接続されており、第２の半導体装置２００は外付けのメモリとして、第１の半導体装置１００経由で外部メモリＡ３００や第１の半導体装置１００の内部メモリＡ１３０等を用いる。
【００２８】
第１の半導体装置１００と第２の半導体装置２００とは、入出力装置Ａ１２０と入出力装置Ｂ２２０とによっても接続されている。この接続により、メモリ共有以外の方法であっても、一方の半導体装置で処理した結果を他方に送信し、他方の半導体装置がさらに処理を施すことも可能である。この接続は、第１の半導体装置１００と第２の半導体装置２００がメモリ共有だけで協調動作する場合は省略することができる。
【００２９】
第１の半導体装置１００及び第２の半導体装置２００の具体例としては、デジタル放送向けテレビを構成する映像デコード装置と画質改善装置とが挙げられる。第１の半導体装置１００に外付けメモリＡ３００を付加した状態で映像デコーダを実現でき、表示装置を付加すればテレビに映像を表示できる。さらに、第２の半導体装置２００を付加することにより、映像の画質改善という付加価値を付与することができる。デジタル放送の映像デコード処理ではフレームバッファが必要であり、また高機能の画質改善処理にもフレームバッファが必要なため、第１の半導体装置１００及び第２の半導体装置２００のそれぞれに外付けのメモリが必要であるが、本実施形態の構成とすることにより、第２の半導体装置２００に直接接続する外付けメモリを省略することができる。
【００３０】
本実施形態においては、半導体システムを構成する半導体装置は第１の半導体装置１００及び第２の半導体装置２００の２個のみであるが、システム構成によっては別の半導体装置が付加されても良い。そして、付加された半導体装置は、入出力装置Ａ１２０又は入出力装置Ｂ２２０を介して第１の半導体装置１００又は第２の半導体装置２００に接続することができる。また、第１の半導体装置１００及び第２の半導体装置２００の内部にある機能ユニットの構成は変更可能であり、例えば第１の半導体装置１００に固定機能処理装置を付加したり、第２の半導体装置２００からプロセッサＢ２１０を削除したりすることも考えられる。
【００３１】
＝＝メモリマッピング＝＝
次に、第１の半導体装置１００のアドレス空間と第２の半導体装置２００のアドレス空間とのマッピングについて説明する。
【００３２】
図２は、第１の半導体装置１００における外部メモリＡ３００アクセス用のアドレス空間と第２の半導体装置２００における外部メモリＡ３００アクセス用のアドレス空間のマッピングの例を示す図である。第２の半導体装置２００は第１の半導体装置１００経由で外部メモリＡ３００にアクセスすることができる。第１の半導体装置１００からは、外部メモリ第１の半導体装置専用空間５０１０と、第２の半導体装置２００からのアクセス用に割り当てられた空間である外部メモリ拡張インタフェース用割り当て空間５０２０と、が見える。
【００３３】
拡張インタフェース１６０は、第２の半導体装置２００からのアクセス要求を受信すると、当該アクセス要求に設定されたアドレス空間Ａ６０２０のアドレスを、外部メモリ拡張インタフェース用割り当て空間５０２０のアドレスに変換し、専用パス１９５経由でメモリ制御装置Ａ１４０へ送信する。つまり、第２の半導体装置２００のアドレス空間Ａ６０２０は、第１の半導体装置１００のアドレス空間の外部メモリ拡張インタフェース用割り当て空間５０２０として見える。
【００３４】
第１の半導体装置専用空間５０１０は、アドレス空間Ａ６０２０から見ることができないため、第２の半導体装置２００のアクセスから保護される。外部メモリ拡張インタフェース用割り当て空間５０２０を第１の半導体装置１００の内部で発生するアクセスから保護する必要がある場合は、当該空間５０２０に対するシステムバスＡ１９０経由でのアクセス要求を禁止する機能をメモリ制御装置Ａ１４０に設けることも可能である。
【００３５】
図３及び図４は、第１の半導体装置１００の全体アドレス空間と第２の半導体装置２００からメモリ制御装置Ｂ２４０経由で見えるアドレス空間のマッピングの例を示す図である。
【００３６】
図３及び図４に示す例においては、図２と同様に、第２の半導体装置２００のアドレス０ｘ００００００００番地から０ｘ０７ＦＦＦＦＦＦ番地にアドレス空間Ａ６０２０が存在し、このアドレス空間が第１の半導体装置１００の外部メモリ拡張インタフェース用割り当て空間５０２０とマッピングされている。
【００３７】
図３及び図４において、内部メモリ空間５０３０は、内部メモリＡ１３０にアクセスするためのアドレス空間である。また、Ｉ／Ｏ空間５０４０は、入出力装置Ａ１２０やダイレクトメモリアクセス制御装置１５０の制御レジスタ等、第１の半導体装置１００の内部に存在する各種機能ユニットの動作を制御するためのアドレス空間である。
【００３８】
図３に示す例は、第２の半導体装置２００においてメモリ制御装置Ｂ２４０経由でのアクセスに割り当てられたアドレス空間が広い場合に対応している。第１の半導体装置１００の外部メモリ拡張インタフェース用割り当て空間５０２０がアドレス空間Ａ６０２０に割り当てられ、内部メモリ空間５０３０の一部あるいは全部がアドレス空間Ｂ６０３０に割り当てられ、Ｉ／Ｏ空間５０４０の一部あるいは全部がアドレス空間Ｃ６０４０に割り当てられている。これらアドレス空間の割り当て制御は拡張インタフェース１６０において行われる。図３の例では、アドレス空間Ａ６０２０、アドレス空間Ｂ６０３０、及びアドレス空間Ｃ６０４０は互いに重ならないよう配置されている。
【００３９】
図３のようにアドレス空間をマッピングすることにより、第２の半導体装置２００は、Ｉ／Ｏ空間５０４０を見ることができる。つまり、第２の半導体装置２００は、第１の半導体装置１００のダイレクトメモリアクセス制御装置１５０を制御することが可能となる。これにより、第２の半導体装置２００は、例えば、外部メモリＡ３００に格納されたデータにアクセスしたい場合に、ダイレクトメモリアクセス制御装置１５０を制御することにより、当該データを内部メモリＡ１３０に予め転送しておくことができる。
【００４０】
図４に示す例は、第２の半導体装置２００においてメモリ制御装置Ｂ２４０経由でのアクセスに割り当てられたアドレス空間が狭い場合に対応している。図３の例と同様に、第１の半導体装置１００の外部メモリ拡張インタフェース用割り当て空間５０２０がアドレス空間Ａ６０２０に割り当てられ、内部アドレス空間５０３０の一部あるいは全部がアドレス空間Ｂ６０３０に割り当てられ、Ｉ／Ｏ空間５０４０の一部あるいは全部がアドレス空間Ｃ６０４０に割り当てられている。しかし、アドレス空間Ｂ６０３０及びアドレス空間Ｃ６０４０はアドレス空間Ａ６０２０の一部に重なるように割り当てられている。拡張インタフェース１６０は、重なったアドレス空間へのアクセス要求を受信すると、アドレス空間Ｃ６０４０又はアドレス空間Ｂ６０３０へのアクセスとして処理する。これにより、第２の半導体装置２００においてメモリ制御装置Ｂ２４０経由でのアクセスに割り当てられたアドレス空間が狭い場合であっても、第２の半導体装置２００は、第１の半導体装置１００の内部メモリＡ１３０にアクセスしたり、ダイレクトメモリアクセス制御装置１５０を制御したりすることができる。
【００４１】
＝＝バンク割り当て＝＝
次に、外部メモリＡ３００が内部４バンク構成のＤＤＲ−ＳＤＲＡＭである場合の、ＤＤＲ−ＳＤＲＡＭ内のバンクと第１の半導体装置１００の外部メモリＡ３００のアドレス空間との関係について説明する。
【００４２】
図５は、外部メモリＡ３００アクセス用のアドレスの上位２ビットをバンクアドレスとして用いる場合の例を示す図である。第１の半導体装置１００のアドレス空間と第２の半導体装置２００のアドレス空間とが図２に示した関係となっている場合、第２の半導体装置２００は、バンク３（５１３０）のみに対してアクセスすることができる。つまり、バンク０（５１００）からバンク２（５１２０）については、プロセッサＡ１１０等、第１の半導体装置１００の内部のみからアクセス可能である。
【００４３】
そのため、バンク０（５１００）からバンク２（５１２０）において、第１の半導体装置１００と第２の半導体装置２００とからのアクセス混在によるロウアドレスの切り替えが発生せず、アクセス性能の低下を抑制することができる。同様に、第１の半導体装置１００の内部からバンク３（５１３０）へのアクセスを抑制することにより、バンク３（５１３０）において、第１の半導体装置１００と第２の半導体装置２００とからのアクセス混在によるロウアドレス切り替えに伴う性能低下を抑えることができる。
【００４４】
図６は、外部メモリＡ３００アクセス用のアドレスの上位１ビット、及び上位から３ビット目以降のビットをバンクアドレスとして用いる場合の例を示す図である。第１の半導体装置１００のアドレス空間と第２の半導体装置２００のアドレス空間とが図２に示した関係となっている場合、バンク０／１（５２００）については、第１の半導体装置１００の内部のみからアクセス可能である。
【００４５】
そのため、バンク０／１（５２００）において、第１の半導体装置１００と第２の半導体装置２００とからのアクセス混在によるロウアドレスの切り替えが発生せず、アクセス性能の低下を抑制することができる。また、２バンクにアクセスを分散可能であるため、第１の半導体装置１００のメモリアクセスパターンによっては、ロウアドレスの指定回数を抑制することができる。この場合、図５に示す例に比べて、メモリアクセス性能を改善することが可能である。
【００４６】
また、バンク２／３（５２２０）については、第１の半導体装置１００と第２の半導体装置２００とからのアクセス混在によるロウアドレス切り替えに伴う性能低下が考えられる。しかし、２バンクにアクセスが分散することにより、図５に示す例に比べて、メモリアクセス性能が向上する可能性もある。
【００４７】
図７は、外部メモリＡ３００アクセス用のアドレスの上位２ビット以外をバンクアドレスとして用いた場合の例である。全てのバンク０／１／２／３（５３００）において、第１の半導体装置１００と第２の半導体装置２００とからのアクセス混在が発生し、ロウアドレス切り替えに伴う性能低下が考えられる。しかし、同時に４バンクにアクセス可能であり、図５や図６に示す例に比べて、メモリアクセス性能が向上する可能性もある。
【００４８】
図５から図７に示した例には、前述したように、それぞれ利点、欠点がある。そのため、第１の半導体装置１００及び第２の半導体装置２００のメモリアクセスパターンにより、どのようにバンクを割り当てるのが良いかは異なってくる。したがって、外部メモリＡ３００が内部に複数バンクを持つメモリであり、第１の半導体装置１００及び第２の半導体装置２００の用途が一意に決まらない場合、アドレス空間に対するバンク割り当てを変更可能とすることが望ましい。
【００４９】
そこで、本実施形態においては、メモリ制御装置Ａ１４０は、アドレス空間を指定するアドレスのうち、バンクアドレス、ロウアドレス、及びカラムアドレスの夫々のビット位置を記憶するレジスタ（ビット位置記憶部）を備えることとする。メモリ制御装置Ａ１４０は、外部メモリＡ３００へのアクセス要求を受信すると、当該アクセス要求に含まれるアドレスから、レジスタに記憶されたビット位置に基づいてバンクアドレス、ロウアドレス、及びカラムアドレスを生成し、外部メモリＡ３００にアクセスする。つまり、本実施形態においては、このレジスタに記憶されたビット位置を変更することによって、アドレス空間に対するバンク割り当てを変更することができる。
【００５０】
＝＝拡張インタフェースの構成＝＝
次に、メモリ制御装置Ｂ２４０がＤＤＲ−ＳＤＲＡＭ向けである場合、すなわち拡張インタフェース１６０がＤＤＲ−ＳＤＲＡＭのように動作する場合における拡張インタフェース１６０の構成について説明する。図８は、拡張インタフェース１６０の内部構成の一例を示すブロック図である。
【００５１】
拡張インタフェース１６０は、システムバスインタフェース１６１０、拡張インタフェース制御装置１６２０、状態レジスタ１６３０、アドレスバッファ１６４０、ライト要求用データバッファ１６５０、リード要求用データバッファ１６５５、専用パス入力バッファ１６７０、選択装置１６７５、ＤＬＬ（Delay Locked Loop）１６８０、コマンドラッチ１６９０、アドレスラッチ１６９１、及びデータラッチ１６９２を備えている。また、拡張インタフェース１６０は、第１の半導体装置１００内部のシステムバスＡ１９０及び専用パス１９５に接続されている。また、第１の半導体装置１００には、メモリ制御信号４１０の入出力端子と、ストール信号４２０の出力端子とが設けられている。
【００５２】
メモリ制御信号４１０は、メモリアクセスコマンドを受け取るコマンド入力、メモリアドレスやコマンドの付加情報を受け取るアドレス入力、メモリアクセス動作の基準クロックを受け取るクロック入力、データの送受信を行うデータ入出力、及びデータ入出力タイミングの制御に用いるデータストローブ入出力で構成され、実際のＤＤＲ−ＳＤＲＡＭと同様の構成となっている。メモリ制御装置Ｂ２４０が、例えば、複数のＤＤＲ−ＳＤＲＡＭを並べること等により、データ入出力幅を６４ビットとする構成を想定している場合は、拡張インタフェース１６０側のデータ入出力のビット幅もその幅に合わせ、データストローブ入出力数もデータ入出力のビット幅相応にする。
【００５３】
コマンドラッチ１６９０、アドレスラッチ１６９１、及びデータラッチ１６９２は、メモリ制御装置Ｂ２４０との間で送受信されるメモリ制御信号４１０を一時的に記憶する回路である。
【００５４】
メモリ制御信号４１０のコマンド信号は、メモリ制御信号４１０のクロック信号を用いてコマンドラッチ１６９０に一旦ラッチされ、拡張インタフェース１６０の内部クロックに同期化される。同様に、メモリ制御信号４１０のアドレス信号は、メモリ制御信号４１０のクロック信号を用いてアドレスラッチ１６９１に一旦ラッチされ、拡張インタフェース１６０の内部クロックに同期化される。
【００５５】
ＤＤＲ−ＳＤＲＡＭと同様、アドレスはバンクを示す部分とロウアドレス（第２のアドレス）またはカラムアドレス（第３のアドレス）を示す部分とで構成され、バンクを示す部分はバンクアドレス（第１のアドレス）と呼ばれる。また、アドレスの一部のビットがコマンドの一部として取り扱われる場合もある。但し、拡張インタフェース１６０が擬似するメモリの構成により、バンクを示す部分がない場合や、ロウアドレスとカラムアドレスとの区別がない場合も有り得る。
【００５６】
書き込み要求に伴うデータ入力の際には、データストローブ信号を用いてデータラッチ１６９２に書き込み対象のデータが一旦ラッチされ、拡張インタフェース１６０の内部クロックに同期化される。この際、ライトマスクもデータと同時に取り込まれる。なお、ライトマスク信号は、データのバイト幅単位毎に用意されており、バイト単位で書き込み処理を無効にするために用いられる。
【００５７】
読み出し要求に伴うデータ出力の際には、読み出されたデータがデータラッチ１６９２に一旦ラッチされ、メモリ制御信号４１０のクロック信号に同期化される。ＤＬＬ１６８０は、データ出力時にメモリ制御信号４１０のクロック信号に高精度に同期してデータストローブ信号やデータを出力するために用いられる。
【００５８】
拡張インタフェース制御装置１６２０は、拡張インタフェース１６０の全体制御を行う装置であり、シーケンサ等のハードウェアによって実現される。拡張インタフェース制御装置１６２０が行う制御には、ＤＤＲ−ＳＤＲＡＭと同様の状態遷移制御、ストール信号４２０の出力制御、状態レジスタ１６３０の更新制御、システムバスＡ１９０や専用パス１９５へのアクセス要求の振り分け制御、システムバスＡ１９０や専用パス１９５からの応答データの選択制御、データ連続転送を行う際のアドレス更新制御等がある。
【００５９】
状態レジスタ１６３０は、モードレジスタ設定コマンドにより設定されるモードや、バンクアクティブコマンドにより指定されるロウアドレス等を記憶するレジスタである。図９は、状態レジスタ１６３０の構成の一例を示す図である。図に示すように、状態レジスタ１６３０には、バンク０ロウアドレスレジスタ１６３１、バンク１ロウアドレスレジスタ１６３２、バンク２ロウアドレスレジスタ１６３３、バンク３ロウアドレスレジスタ１６３４、モードレジスタ０（１６３５）、モードレジスタ１（１６３６）、モードレジスタ２（１６３７）、及びモードレジスタ３（１６３８）が設けられている。
【００６０】
ＤＤＲ−ＳＤＲＡＭでは、ロウアドレスとカラムアドレスとに分けてアドレスが指定される。そして、書き込み要求におけるライトコマンドや読み出し要求におけるリードコマンドが発行される際には、カラムアドレスのみが指定される。そのため、ロウアドレスを状態レジスタ１６３０で保持する必要がある。また、通常ＤＤＲ−ＳＤＲＡＭ内部には４個のバンクがあり、バンク毎にロウアドレスを指定可能である。そのため、４個のバンクに対応するロウアドレスレジスタ１６３１〜１６３４が設けられている。これらのロウアドレスレジスタ１６３１〜１６３４が、本発明の第４の記憶部に該当する。
【００６１】
なお、拡張インタフェース１６０がメモリのバンク数が４個でないメモリ相当の動作をする場合は、そのバンク数に合わせてロウアドレスレジスタを設ける必要がある。また、拡張インタフェース１６０がロウアドレスとカラムアドレスとに分けずにアドレスが指定されるメモリ相当の動作をする場合は、状態レジスタ１６３０でロウアドレスを保持する必要がない。このような場合には、ロウアドレスレジスタ１６３１〜１６３４は不要である。
【００６２】
モードレジスタ０（１６３５）及びモードレジスタ１（１６３６）は、それぞれ一般的なＤＤＲ−ＳＤＲＡＭのモードレジスタ及び拡張モードレジスタに対応する。モードレジスタ２（１６３７）、モードレジスタ３（１６３８）は拡張インタフェース１６０の機能を一般的なＤＤＲ−ＳＤＲＡＭから拡張するために用意されたものである。但し、構成や必要性によりモードレジスタの個数が異なることも有り得る。
【００６３】
なお、拡張インタフェース１６０がモードレジスタ設定コマンドに相当するコマンドを持たないメモリ相当の動作をする場合は、モード設定を固定とすることとしてもよい。この場合、モードレジスタ１６３５〜１６３８は不要である。また、モードレジスタ設定コマンドに相当するコマンドを持たないメモリにおいて使用されない信号状態をモードレジスタ設定コマンドとして利用することとしてもよい。また、モード設定を行うためのモード設定要求信号を新たに追加することとしてもよい。
【００６４】
なお、状態レジスタ１６３０の内容は、システムバスインタフェース１６１０を介してシステムバスＡ１９０からアクセスすることができる。そのため、状態レジスタ１６３０の設定をプロセッサＡ１１０から行うことも可能である。また、デバッグ時等にプロセッサＡ１１０から状態レジスタ１６３０の内容を確認することも可能である。
【００６５】
システムバスインタフェース１６１０は、システムバスＡ１９０へのアクセスを制御する装置であり、シーケンサ等のハードウェアによって実現される。システムバスインタフェース１６１０は、システムバスＡ１９０の利用権を確認しながら必要に応じて適宜システムバスＡ１９０へアクセスする。システムバスＡ１９０の利用権獲得までに時間を要する可能性を考慮し、システムバスインタフェース１６１０の内部には、アドレス及びデータを一時的に格納するためのバッファが設けられている。
【００６６】
アドレスバッファ１６４０は、リードコマンドまたはライトコマンドを受け取った際に、バンクアドレス、ロウアドレス、カラムアドレス、及び読み書きの種別を一時的に記憶する先入れ先出しバッファである。なお、アドレスバッファ１６４０は、リードコマンドまたはライトコマンドにおけるバンクアドレスに基づき、当該バンクに対するロウアドレスをロウアドレスレジスタ１６３１〜１６３４から取得する。
【００６７】
アドレスバッファ１６４０には、メモリ制御信号４１０のデータのビット幅の単位でアドレスが記録される。また、連続データアクセス時には、拡張インタフェース制御装置１６２０が、カラムアドレスの下位３ビットを変換してアドレスバッファ１６４０に記録する。この下位３ビットは、メモリ制御信号４１０のデータ信号のビット幅単位のデータアクセス毎に変化するものであり、モードレジスタ設定コマンドを用いて状態レジスタ１６３０に設定された値に基づいて変換される。これにより、ＤＤＲ−ＳＤＲＡＭと同様のアドレス更新処理を実現することができる。
【００６８】
なお、拡張インタフェース１６０が擬似するメモリによっては、連続アクセス時に拡張インタフェース制御装置１６２０により変換されるアドレスのビット位置が異なる場合もある。また、ロウアドレスとカラムアドレスとに分けずにアドレスが一括指定されるメモリを擬似する場合には、アドレスバッファ１６４０は、アドレスと読み書きの種別を記録する。そして、必要に応じてそのアドレスの一部が拡張インタフェース制御装置１６２０によって変換される。
【００６９】
また、アドレスバッファ１６４０は、アドレスが書き込まれる際にアドレスを変換する機能を持つ。この機能により、図２〜図４に例示したように、第２の半導体装置２００におけるアドレス空間と第１の半導体装置１００におけるアドレス空間との対応付けを変更することができる。
【００７０】
アドレスバッファ１６４０に記録されたアドレス及び読み書き種別は、記録された順に専用パス１９５又はシステムバスＡ１９０に出力される。専用パス１９５に出力するかシステムバスＡ１９０に出力するかの選択は、拡張インタフェース制御装置１６２０によって、読み書き対象となるアドレスに基づいて行われる。なお、システムバスＡ１９０への転送は、システムバスインタフェース１６１０を介して行われる。
【００７１】
拡張インタフェース制御装置１６２０は、リードコマンドを処理する際には、専用パス１９５及びシステムバスＡ１９０の選択した順序をレジスタ等に記録しておく。そして、拡張インタフェース制御装置１６２０は、その順序に基づいて選択装置１６７５を制御する。
【００７２】
また、アドレスバッファ１６４０が一杯の場合又は一杯になりそうな場合、つまり、アドレスバッファ１６４０の空き領域が所定のサイズ未満である場合、拡張インタフェース制御装置１６２０からストール信号４２０が出力され、メモリ制御装置Ｂ２４０が一時停止の状態となる。
【００７３】
ライト要求用データバッファ１６５０は、ライトコマンドを受け取った際に、書き込みデータ及びライトマスクを一時的に記憶する先入れ先出しバッファである。拡張インタフェース制御装置１６２０は、アドレスバッファ１６４０を参照し、書き込み処理であると判断すると、ライト要求用データバッファ１６５０から書き込みデータ及びライトマスクを取り出し、専用パス１９５又はシステムバスＡ１９０へ転送する。専用パス１９５に出力するかシステムバスＡ１９０に出力するかの選択は、拡張インタフェース制御装置１６２０によって、書き込み対象となるアドレスに基づいて行われる。なお、システムバスＡ１９０への転送は、システムバスインタフェース１６１０を介して行われる。
【００７４】
また、ライト要求用データバッファ１６５０が一杯の場合又は一杯になりそうな場合、つまり、ライト要求用データバッファ１６５０の空き領域が所定のサイズ未満である場合、拡張インタフェース制御装置１６２０からストール信号４２０が出力され、メモリ制御装置Ｂ２４０が一時停止の状態となる。
【００７５】
専用パス入力バッファ１６７０は、専用パス１９５に出力した読み出し要求に応じて送信されてきたデータを一時的に保持する先入れ先出しバッファである。システムバスＡ１９０から送信されてくるデータはシステムバスインタフェース１６１０内部のバッファで一時的に保持されるが、専用パス１９５はメモリ制御装置Ａ１４０と１対１で接続される信号線であり、システムバスインタフェース１６１０では保持されない。そのため、専用パス１９５から送信されてきたデータを一時的に保持するための当該バッファ１６７０が必要となる。
【００７６】
システムバスインタフェース１６１０又は専用パス入力バッファ１６７０に送信されてきた読み出しデータは、拡張インタフェース制御装置１６２０の制御によって選択装置１６７５で選択され、リード要求用データバッファ１６５５に格納される。
【００７７】
リード要求用データバッファ１６５５は、読み出しデータを一時的に保持する先入れ先出しバッファである。このバッファ１６５５は、システムバスＡ１９０及び専用パス１９５の動作速度とメモリ制御信号４１０の動作速度との違いを吸収するために設けられている。
【００７８】
メモリ制御信号４１０にデータを出力するタイミング、あるいはその少し前の時点でリード要求用データバッファ１６５５にデータが存在しない場合、拡張インタフェース制御装置１６２０はストール信号４２０を出力し、メモリ制御装置Ｂ２４０を一時停止の状態とする。つまり、拡張インタフェース制御部１６２０は、ＤＤＲ−ＳＤＲＡＭが読み出し要求を受信してからデータ応答までの所定のクロックサイクル数でメモリ制御装置Ｂ２４０に対してデータの送信を開始できない場合は、データを送信可能となるまでの間、ストール信号４２０を出力する。
【００７９】
図１０は、拡張インタフェース１６０の状態遷移の例を示す図である。メモリ制御装置Ｂ２４０がメモリアクセスする際に使用する状態遷移がＤＤＲ−ＳＤＲＡＭが持つ状態遷移の一部のみ使用することを想定し、図１０は本来ＤＤＲ−ＳＤＲＡＭが持つ状態遷移のサブセットとなっている。ただし、メモリ制御装置Ｂ２４０がメモリアクセス動作として利用する状態遷移が他にある場合や、第２の半導体装置２００以外の半導体装置を接続する可能性がある場合等には、ＤＤＲ−ＳＤＲＡＭのデータシート等に公開された本来の機能を追加することも可能である。
【００８０】
拡張インタフェース１６０は、アイドルＳ００１の状態でモードレジスタ設定コマンドを受け取ると、モードレジスタ設定Ｓ００７の状態に移行し、メモリ制御信号４１０のアドレス信号を用いて、モードレジスタ１６３５〜１６３８に値を設定する。一般的なＤＤＲ−ＳＤＲＡＭと同様に、メモリ制御信号４１０のアドレス信号のバンクアドレス部分によって、値を設定するモードレジスタが決定される。また、モードレジスタに設定される値は、メモリ制御信号４１０のアドレス信号のロウアドレスまたはカラムアドレスを指定する部分を用いて示される。なお、モードレジスタの設定後、拡張インタフェース１６０はアイドルＳ００１の状態へ戻る。
【００８１】
モードレジスタ設定コマンドでは、ライトコマンドまたはリードコマンド実行時の連続データアクセス回数、連続データアクセス時のアドレス更新方法、リードコマンド発行からデータ応答までのクロックサイクル数、ＤＬＬ１６８０の使用の有無等のパラメータを設定することができる。本実施形態においては、これらのパラメータは、一般的なＤＤＲ-ＳＤＲＡＭのモードレジスタセットの同じモードレジスタの同じビットフィールドに割り当てられている。一般的なＤＤＲ−ＳＤＲＡＭと同じパラメータ位置としておくことにより、メモリ制御装置Ｂ２４０にＤＤＲ−ＳＤＲＡＭを直接接続することも可能となるからである。
【００８２】
また、モードレジスタ設定コマンドでは、一般的なＤＤＲ−ＳＤＲＡＭが持つパラメータに加え、リードコマンド発行からデータ応答までの追加クロックサイクル数、ライトコマンド発行から書き込みデータを受け取るまでのクロックサイクル数を指定するパラメータを設定することも可能である。これらのパラメータは、第２の半導体装置２００が第１の半導体装置１００経由で外部メモリＡ３００にアクセスする際のメモリアクセス性能を考慮したものであり、一般的なＤＤＲ−ＳＤＲＡＭが使用しないモードレジスタ、あるいは一般的なＤＤＲ−ＳＤＲＡＭが使用しないモードレジスタのビットフィールドに割り当てられる。
【００８３】
また、メモリ制御信号４１０のデータ信号が双方向転送であるため、リードコマンドとライトコマンドとが混在する際にデータの信号線を使用するタイミングを調整した方がメモリ制御信号４１０の送受信効率上好ましい。この調整を行うために、ライトコマンド発行から書き込みデータを受け取るまでのクロックサイクル数を指定するパラメータが設定される。例えば、リードコマンドとライトコマンドが連続して発行されると、書き込みデータと読み出しデータとが衝突するため、ライトコマンドの発行を遅らせる必要が生じ得る。しかし、拡張インタフェース１６０は書き込みデータをすぐに受け取るのではなく、当該パラメータに設定し、リードコマンド発行から読み出しデータを受け取るまでに要するクロックサイクル数と同じクロックサイクル数後に書き込みデータを受け取れば、このような問題は生じない。したがって、当該パラメータを用いることにより、リードコマンドとライトコマンドとが混在する場合において、メモリ制御信号４１０の送受信の効率を向上させることができる。なお、書き込みデータと読み出しデータとで異なる信号線を使用する場合は、当該パラメータは不要である。
【００８４】
拡張インタフェース１６０は、アイドルＳ００１の状態でバンクアクティブコマンドを受け取ると、バンクアクティベイティングＳ００２状態に移行する。この状態では、拡張インタフェース１６０は、メモリ制御信号４１０のアドレス信号からバンクアドレスとロウアドレスとを取得し、当該バンクアドレスに対応する状態レジスタ１６３０内部のロウアドレスレジスタを更新する。状態遷移はバンク毎に管理されており、バンクアクティベイティングＳ００２状態へはバンクアドレスで指定されたバンクのみ移行する。拡張インタフェース１６０は、ロウアドレスの更新完了後、バンクアクティブＳ００３状態へ移行する。  
バンクアクティブＳ００３状態では、拡張インタフェース１６０は、リードコマンド、ライトコマンド、プリチャージコマンドのいずれかを受け取ることができる。
【００８５】
拡張インタフェース１６０は、バンクアクティブＳ００３状態でリードコマンドを受け取ると読み出しＳ００４状態に移行する。この際、拡張インタフェース１６０は、メモリ制御信号４１０のアドレス信号からバンクアドレス及びカラムアドレスを取得し、当該バンクアドレスに対応する状態レジスタ１６３０内部のロウアドレスレジスタからロウアドレスを取得する。そして、拡張インタフェース１６０は、当該ロウアドレス及び当該カラムアドレスに基づいて、読み出し処理の基準となるアドレスを決定する。読み出しＳ００４状態に移行すると、拡張インタフェース１６０は、基準となるアドレスを元に、状態レジスタ１６３０のモードレジスタで指定されるアドレス変化方法、及び連続アクセス回数に従い読み出し処理を行う。
【００８６】
リードコマンドには自動プリチャージ付きのコマンドと通常のコマンドが存在する。拡張インタフェース１６０は、自動プリチャージ付きのリードコマンドの場合は、読み出し処理完了後にプリチャージＳ００６状態へ移行し、通常のリードコマンドの場合は、読み出し処理完了後にバンクアクティブＳ００３状態へ移行する。
【００８７】
拡張インタフェース１６０は、バンクアクティブＳ００３状態でライトコマンドを受け取ると、書き込みＳ００５状態に移行する。この際、拡張インタフェース１６０は、メモリ制御信号４１０のアドレス信号からバンクアドレス及びカラムアドレスを取得し、当該バンクアドレスに対応する状態レジスタ１６３０内部のロウアドレスレジスタからロウアドレスを取得する。そして、拡張インタフェース１６０は、当該ロウアドレス及び当該カラムアドレスに基づいて、書き込み処理の基準となるアドレスを決定する。書き込みＳ００５状態に移行すると、拡張インタフェース１６０は、基準となるアドレスを元に、状態レジスタ１６３０のモードレジスタで指定されるアドレス変化方法、及び連続アクセス回数に従い書き込み処理を行う。
【００８８】
ライトコマンドには自動プリチャージ付きのコマンドと通常のコマンドが存在する。拡張インタフェース１６０は、自動プリチャージ付きのライトコマンドの場合は、読み出し処理完了後にプリチャージＳ００６状態へ移行し、通常のライトコマンドの場合は、読み出し処理完了後にバンクアクティブＳ００３状態へ移行する。
【００８９】
拡張インタフェース１６０は、バンクアクティブＳ００３状態でプリチャージコマンドを受け取ると、プリチャージＳ００６状態へ移行する。プリチャージコマンドには指定バンクのみプリチャージＳ００６状態へ移行させるコマンドと、全てのバンクをバンクプリチャージＳ００６状態へ移行させるコマンドとがある。拡張インタフェース１６０は、指定バンクのみプリチャージＳ００６状態へ移行するコマンドを受け取る際、対象バンクに対応するバンクアドレスをメモリ制御信号４１０のアドレス信号から取得する。  
そして、拡張インタフェース１６０は、プリチャージＳ００６状態で所定時間経過後、アイドルＳ００１状態へ移行する。
【００９０】
なお、プリチャージＳ００６状態は、ダイナミックメモリ内部を制御する上で必要な状態であるため、拡張インタフェース１６０では省略することもできる。プリチャージＳ００６状態を省略する場合、プリチャージＳ００６状態への遷移はアイドルＳ００１状態への遷移とする。
【００９１】
＝＝アクセス動作＝＝
次に、拡張インタフェース１６０がＤＤＲ−ＳＤＲＡＭを疑似する場合における、メモリ制御信号４１０及びストール信号４２０の動作タイミングを説明する。なお、タイミングチャートには、メモリ制御信号４１０のクロック信号、コマンド信号、アドレス信号及びデータ信号のみ記している。また、コマンド信号のＮＯＰはコマンド無し、ＡＣＴはバンクアクティブコマンド、ＲＤはリードコマンド、ＷＲはライトコマンドを示している。また、一般的なＤＤＲ−ＳＤＲＡＭと同様、拡張インタフェース１６０は、クロックの立ち上がりでコマンド及びアドレスを取り込むこととする。また、拡張インタフェース１６０のデータの入出力タイミングも一般的なＤＤＲ−ＳＤＲＡＭと同じである。
【００９２】
図１１は、メモリ制御装置Ｂ２４０が読み出し動作する際の動作タイミングの一例を示すタイミングチャートである。図１１に示すタイミングは、メモリ制御装置Ｂ２４０がバンクアクティブコマンド発行後Δｔｒ０時間後にリードコマンドを発行可能であり、リードコマンド発行後Δｔｃ０時間後から読み出しデータが出力されるＤＤＲ−ＳＤＲＡＭの動作を拡張インタフェース１６０が擬似する場合に対応するものである。なお、図１１の例においては、Δｔｒ０は３クロックサイクル、Δｔｃ０は２クロックサイクルとなっている。
【００９３】
拡張インタフェース１６０のモードレジスタには、予めモードレジスタ設定コマンドにより、リードコマンド発行からデータ応答までのクロックサイクル数に２が設定されている。そして、図１１の例では、第１の半導体装置１００側の動作上の都合により、拡張インタフェース１６０はリードコマンドを受け取ってから５クロックサイクル後に読み出しデータの出力が開始されている。
【００９４】
図１１に示すタイミングでは、メモリ制御装置Ｂ２４０が想定したタイミングｔ０２では拡張インタフェース１６０が読み出しデータの出力を開始できず、ストール信号４２０が出力されている（ハイレベルとなっている）。拡張インタフェース１６０は、メモリ制御装置Ｂ２４０が想定したタイミングｔ０２の直前のクロックサイクルで、読み出しデータがリード要求用データバッファ１６５５に格納されていない場合、ｔ０２でデータを出力開始することは困難であると判断し、ストール信号４２０を立ち上げる。そして、拡張インタフェース１６０は、タイミングｔ０３の直前のクロックサイクルで読み出しデータがリード要求用データバッファ１６５５に格納されると、ストール信号４２０を立ち下げる。同様に、拡張インタフェース１６０は、タイミングｔ０５の直前のクロックサイクルでストール信号４２０を立ち上げ、タイミングｔ０６の直前のクロックサイクルでストール信号４２０を立ち下げる。つまり、拡張インタフェース１６０は、読み出し要求を受信してからモードレジスタに設定されたクロックサイクル数（Δｔｃ０）で読み出しデータの送信を開始できない場合は、データを送信可能となるまでの間、ストール信号４２０を出力する。なお、この場合におけるリード要求用データバッファ１６５５が、本発明の第１の記憶部に該当する。
【００９５】
タイミングｔ０２の直前のクロックサイクルでストール信号４２０が立ち上がると、メモリ制御装置Ｂ２４０は、タイミングｔ０２でストール信号４２０を取り込み、一時停止状態となる。メモリ制御装置Ｂ２４０は、タイミングｔ０２で出力を開始するアドレス及びリードコマンドの出力決定はタイミングｔ０２の直前のクロックサイクルで行う必要がある。そのため、メモリ制御装置Ｂ２４０は、タイミングｔ０２で取り込んだストール信号４２０を用いてタイミングｔ０２の直後のクロックサイクルにおけるアドレス変化を一時停止することができない。したがって、メモリ制御装置Ｂ２４０は、アドレスＣＡ３及びそれに対応するリードコマンドを出力した状態で、コマンド出力を一時停止する。この動作に対応するため、拡張インタフェース１６０は、立ち上がったストール信号４２０をメモリ制御装置Ｂ２４０が取り込むタイミングｔ０２までコマンドを取り込む。
【００９６】
タイミングｔ０３の直前のクロックサイクルでストール信号４２０が立ち下がると、メモリ制御装置Ｂ２４０は、タイミングｔ０３でストール信号４２０を取り込み、一時停止状態から抜ける。メモリ制御装置Ｂ２４０は、タイミングｔ０３で出力を開始するアドレス及びリードコマンドの出力決定はタイミングｔ０３の直前のクロックサイクルで行う必要がある。そのため、メモリ制御装置Ｂ２４０は、タイミングｔ０３で取り込んだストール信号４２０を用いてタイミングｔ０３の直後のクロックサイクルにおけるアドレス変化を開始することができない。したがって、メモリ制御装置Ｂ２４０は、タイミングｔ０４の直後のクロックサイクルからアドレス及びコマンド出力を再開する。この動作に対応するため、拡張インタフェース１６０は、立ち下がったストール信号４２０をメモリ制御装置Ｂ２４０が取り込むタイミングｔ０３までコマンドを破棄する。この結果、タイミングｔ０４でアドレスＣＡ３及びそれに対応するリードコマンドが取り込まれることになる。
【００９７】
タイミングｔ０５の直前のクロックサイクルでストール信号４２０が立ち上がる場合も、タイミングｔ０２の直前のクロックサイクルでストール信号４２０が立ち上がった場合と同様に動作する。
【００９８】
メモリ制御装置Ｂ２４０が読み出し動作する際には、拡張インタフェース１６０は、読み出しデータの準備が出来てない場合に加え、アドレスバッファ１６４０の空き領域が所定のサイズ未満となっている場合にも、ストール信号４２０を立ち上げる必要がある。なお、この場合におけるアドレスバッファ１６４０が、本発明における第２の記憶部に該当する。
【００９９】
既に説明したように、立ち上がったストール信号４２０をメモリ制御装置Ｂ２４０が取り込むタイミングでは、拡張インタフェース１６０はコマンド及びアドレスを受け付ける必要がある。そのため、拡張インタフェース１６０は、アドレスバッファ１６４０の空き領域が最低でも２コマンド分に必要なサイズ未満になった時点でストール信号４２０を立ち上げ、２コマンド分以上に回復した時点でストール信号４２０を立ち下げる必要がある。
【０１００】
メモリ制御装置Ｂ２４０は、一時停止期間中は拡張インタフェース１６０から出力される読み出しデータを破棄し、一時停止期間中以外は一般的なＤＤＲ−ＳＤＲＡＭに対する処理と同様に読み出しデータを取り込む。
【０１０１】
図１２は、メモリ制御装置Ｂ２４０が書き込み動作する際の動作タイミングの一例を示すタイミングチャートである。図１２に示すタイミングは、メモリ制御装置Ｂ２４０がバンクアクティブコマンド発行後Δｔｒ０時間後にライトコマンドを発行可能であり、ライトコマンド発行後Δｔｄ０時間後からメモリ制御信号４１０のデータ信号に乗った書き込みデータを取り込むＤＤＲ−ＳＤＲＡＭの動作を拡張インタフェース１６０が擬似する場合に対応するものである。なお、図１２の例においては、Δｔｒ０は３クロックサイクル、Δｔｄ０は１クロックサイクルとなっている。
【０１０２】
メモリ制御装置Ｂ２４０が書き込み動作する場合においても、コマンドとストール信号４２０との関係は読み出し動作の場合と同様である。すなわち、図１２の例では、タイミングｔ１３の直前のクロックサイクルでストール信号４２０が立ち上がるので、拡張インタフェース１６０は、タイミングｔ１３までコマンドを取り込んだ後、ストール信号４２０が立ち下がった直後のクロック立ち上がりタイミングであるタイミングｔ１４までコマンドを破棄する。
【０１０３】
拡張インタフェース１６０は、書き込み要求と読み出し要求とが混在するアクセスを考慮し、ストール信号４２０によって間隔が開く以外は、書き込みデータ及び読み出しデータの順序関係が変化しないように制御する必要がある。そこで、拡張インタフェース１６０は、ストール信号４２０が立ち上がったクロックサイクルまで書き込みデータを有効データとして取り込み、その後ストール信号４２０が立ち下がるクロックサイクルまで書き込みデータを無効データとして破棄する。メモリ制御装置Ｂ２４０は、ストール信号４２０が立ち上がった次のクロックサイクルにおける書き込みデータの出力を停止することはできないが、この出力データは拡張インタフェース１６０で破棄されるため問題ない。
【０１０４】
メモリ制御装置Ｂ２４０が書き込み動作する際には、拡張インタフェース１６０は、アドレスバッファ１６４０又はライト要求用データバッファ１６５０の空き領域が所定のサイズ未満となっている場合に、ストール信号４２０を立ち上げる必要がある。なお、この場合におけるアドレスバッファ１６４０又はライト要求用データバッファ１６５０が、本発明における第３の記憶部に該当する。
【０１０５】
拡張インタフェース１６０は、メモリ制御装置Ｂ２４０が読み出し動作する際と同様の理由で、アドレスバッファ１６４０の空き領域が最低でも２コマンド分に必要なサイズ未満になった時点でストール信号４２０を立ち上げ、２コマンド分以上に回復した時点でストール信号４２０を立ち下げる必要がある。また、拡張インタフェース１６０は、データを１クロックサイクルに２個取り込む必要があるので、ライト要求用データバッファ１６５０の空き領域がデータ２個分に必要なサイズ未満になった時点でストール信号４２０を立ち上げ、２個分以上に回復したらストール信号４２０を立ち下げる必要がある。
【０１０６】
図１３は、メモリ制御装置Ｂ２４０が読み出し動作する際の図１１とは異なる動作タイミングの例を示すタイミングチャートである。
【０１０７】
図１３の例では、バンクアクティブコマンド発行後Δｔｒ１時間後、即ち１クロックサイクル後にリードコマンドが発行されている。拡張インタフェース１６０は実際のＤＤＲ−ＳＤＲＡＭのようにダイナミックメモリのメモリセルにアクセスしないため、バンクアクティベイティングに要する時間は短い。したがって、メモリ制御装置Ｂ２４０がバンクアクティブコマンドを発行してからリードコマンドを発行するまでの最小待ち時間が短縮されている。これはデータ書き込みの際にライトコマンドを発行する場合も同様である。
【０１０８】
そして、図１３の例では、拡張インタフェース１６０のモードレジスタに、リードコマンド発行からデータ応答までの追加クロックサイクル数として、例えば３クロックサイクルが設定されている。この場合、リードコマンド発行からデータ応答までのクロックサイクル数は、基本の２クロックサイクルに３クロックサイクルを加えた５クロックサイクルとなる。つまり、拡張インタフェース１６０がリードコマンドを受け取ってから５クロックサイクルでデータの出力を開始できない場合に、ストール信号４２０が出力される。
【０１０９】
図１３の例では、拡張インタフェース１６０は、第１の半導体装置１００側の動作上の都合により、リードコマンドを受け取ってからΔｔｃ１時間後、即ち５クロックサイクル後に読み出しデータの出力を開始するとする。この場合、追加クロックサイクル数が設定されているため、拡張インタフェース１６０からは、ストール信号４２０が出力されない。
【０１１０】
図１１と図１３とを比較すると、共に６個のリードコマンドに対応する１２個のデータを読み出しているにもかかわらず、メモリ制御装置Ｂ２４０がバンクアクティブコマンドを発行してから最後のデータを受け取るまでに必要なクロックサイクルが短くなっている。これは、バンクアクティブコマンドが発行されてからリードコマンドが発行されるまでの最小待ち時間を一般的なＤＤＲ−ＳＤＲＡＭより小さく設定可能であること、及び、リードコマンドを発行してからメモリ制御信号４１０のデータ信号に読み出しデータが現れるまでの時間を一般的なＤＤＲ−ＳＤＲＡＭより大きく設定可能であることによる。つまり、これらの設定により、第２の半導体装置２００からのメモリアクセス性能を向上させることが可能である。
【０１１１】
＝＝アクセス調停＝＝
次に、外部メモリＡ３００に対するシステムバスＡ１９０からのアクセス要求と専用パス１９５からのアクセス要求とが競合した場合の調停手順について説明する。図１４は、メモリ制御装置Ａ１４０におけるアクセス要求の調停処理の一例を示すフローチャートである。
【０１１２】
第１の半導体装置１００内部で発生する外部メモリＡ３００へのアクセス要求は、システムバスＡ１９０経由でメモリ制御装置Ａ１４０に送信される。また、第２の半導体装置２００からのアクセス要求は拡張インタフェース１６０及び専用パス１９５経由でメモリ制御装置Ａ１４０に送信される。そして、メモリ制御装置Ａ１４０は、図１４に示すフローチャートに従って、第１の半導体装置１００内部からのアクセス要求と第２の半導体装置２００からのアクセス要求との調停を行う。
【０１１３】
メモリ制御装置Ａ１４０は、システムバスＡ１９０からのアクセス要求と専用パス１９５からのアクセス要求との競合を検出すると（Ｓ１００）、外部メモリＡ３００へ行われている現在のアクセスが一方の要求元から連続して予め設定された時間以上行われていないか確認する（Ｓ１０１）。なお、この設定時間はメモリ制御装置Ａ１４０が備えるレジスタ等（連続応答可能時間記憶部）に記憶されており、アクセス要求元ごとに設定することができる。また、メモリ制御装置Ａ１４０は、一方の要求元に対して連続して応答している時間をレジスタ等（連続応答時間記憶部）に記憶している。また、メモリ制御装置Ａ１４０は、一方のアクセス要求元に対して応答している際中に他方からのアクセス要求を受信することにより、アクセス要求の競合を検出することとする。
【０１１４】
一方の要求元から連続して予め設定した時間以上のアクセスが発生している場合は（Ｓ１０１：Ｙｅｓ）、メモリ制御装置Ａ１４０は、外部メモリＡ３００へのメモリアクセス操作の区切りがつき次第アクセス要求元を切り替える（Ｓ１０２）。また、それ以外の場合（Ｓ１０１：Ｎｏ）、Ｓ１０３またはＳ１０６の判定処理に進む。なお、外部メモリＡ３００がＤＤＲ−ＳＤＲＡＭ等、ロウアドレスとカラムアドレスとを分けて指定するメモリの場合にはＳ１０３へ進み、スタティックメモリなどロウアドレスとカラムアドレスとを分けて指定しないメモリの場合にはＳ１０６へ進む。
【０１１５】
この判定（Ｓ１０１）により、一方のアクセス要求元から外部メモリＡ３００へのアクセスが長時間連続することを防ぎ、入出力処理などのリアルタイム処理の動作に支障が発生することを防止することができる。
【０１１６】
Ｓ１０３では、メモリ制御装置Ａ１４０は、外部メモリＡ３００への次のアクセスを行う際にロウアドレスの指定が必要であるかどうか確認する。指定が必要な場合、Ｓ１０６の判定処理へ進み、それ以外の場合にはＳ１０４の判定処理へ進む。
【０１１７】
Ｓ１０４では、メモリ制御装置Ａ１４０は、ロウアドレスを変更することなく外部メモリＡ３００へ連続してアクセスした回数を予め設定した値と比較する。なお、この設定値はメモリ制御装置Ａ１４０が備えるレジスタ等（連続アクセス可能サイズ記憶部）に記憶されている。また、メモリ制御装置Ａ１４０は、ロウアドレス設定後にロウアドレスを変更することなく外部メモリＡ３００へアクセスした回数をレジスタ等（連続アクセスサイズ記憶部）に記憶している。
【０１１８】
予め設定した値より少ない場合（Ｓ１０４：Ｙｅｓ）、メモリ制御装置Ａ１４０は、現在のアクセス要求元を切り替えずに外部メモリＡ３００へのアクセスを継続する（Ｓ１０５）。
【０１１９】
これらの判定（Ｓ１０３，Ｓ１０４）により、外部メモリＡ３００に対して頻繁にロウアドレス指定が発生することを防止し、メモリアクセス性能の低下を抑えることができる。ダイナミックメモリの状態遷移は図１０で示したようになっており、ロウアドレスを指定する際にプリャージやバンクアクティブ処理の時間が必要となる。そのため、ロウアドレスを頻繁に指定するとリードコマンドやライトコマンドに費やせる時間が少なくなり、実効的なメモリアクセス性能が低下してしまう。
【０１２０】
Ｓ１０６では、メモリ制御装置Ａ１４０は、現在処理中のアクセス要求元からのアクセス要求に基づいて外部メモリＡ３００に対してコマンドを発行した時間の比率が十分であるかどうか確認する。つまり、メモリ制御装置Ａ１４０は、現在処理中のアクセス要求元に対する応答に要した時間の比率が予め設定された比率を超えているかどうかを確認する。なお、この設定比率は、メモリ制御装置Ａが備えるレジスタ等（設定応答時間比率記憶部）に記憶されており、アクセス要求元ごとに設定することができる。この設定比率は、第１の半導体装置１００及び第２の半導体装置２００のそれぞれで処理する内容に基づいて予め定められる。また、メモリ制御装置Ａ１４０は、それぞれのアクセス要求元に対する応答に要した時間の比率をレジスタ等（応答時間比率記憶部）に記憶している。
【０１２１】
現在のアクセス要求元に対する処理割り当て時間比率が十分である場合は（Ｓ１０６：Ｙｅｓ）、メモリ制御装置Ａ１４０は、アクセス要求元を切り替える（Ｓ１０７）。また、現在のアクセス要求元に対する処理割り当て時間比率が不十分である場合は（Ｓ１０６：Ｎｏ）、メモリ制御装置Ａ１４０は、現在のアクセス要求元を切り替えずに外部メモリＡ３００へのアクセスを継続する（Ｓ１０８）。  
この判定（Ｓ１０６）により、第１の半導体装置１００及び第２の半導体装置２００における外部メモリＡ３００に対するメモリアクセス帯域の割り当てを制御することができる。
【０１２２】
以上、本実施形態の半導体システムについて説明した。前述したように、拡張インタフェース１６０は、メモリ制御装置Ｂ２４０から読み出し要求を受信し、当該読み出し要求に応じた読み出しデータをメモリ制御装置Ｂ２４０に送信する。また、拡張インタフェース１６０は、読み出し要求を受信してから所定の時間でデータの送信を開始できない場合、データを送信可能となるまでの間、メモリ制御装置Ｂ２４０に対してストール信号４２０を出力する。
【０１２３】
これにより、第２の半導体装置２００は、拡張インタフェース１６０を介して外部メモリ３００に格納されたデータを読み出すことが可能となり、第１の半導体装置１００及び第２の半導体装置２００の間でシステムバスを接続することなく外部メモリＡ３００を共有することができる。
【０１２４】
また、メモリ制御装置Ｂ２４０と拡張インタフェース１６０との間では、ストール信号４２０を除き、外部メモリＡ３００に対するプロトコルに基づいてコマンドやデータの送受信が行われている。そのため、ストール信号４２０を適切に固定することにより、メモリ制御装置Ｂ２４０に一般的なメモリを直接接続することも可能である。したがって、第１の半導体装置１００が存在しなくとも、第２の半導体装置２００を利用することができる。
【０１２５】
また、拡張インタフェース１６０においては、読み出し要求を受信してからデータの送信を開始するまでのクロックサイクル数を一般的なＤＤＲ−ＳＤＲＡＭ等のメモリの場合よりも大きな値に設定することができる。これにより、ストール信号４２０が出力される頻度を下げ、第２の半導体装置２００から外部メモリＡ３００へのメモリアクセス性能を向上させることができる。
【０１２６】
また、拡張インタフェース１６０は、読み出し要求に含まれるアドレスを記憶するアドレスバッファ１６４０の空き領域が所定の大きさ未満である場合にも、ストール信号４２０を出力する。したがって、アドレスバッファ１６４０が溢れてしまうことがなく、第２の半導体装置２００からの読み出し要求を正しく処理することができる。
【０１２７】
また、拡張インタフェース１６０は、メモリ制御装置Ｂ２４０から書き込み要求を受信し、当該書き込み要求をメモリ制御装置Ａ１４０に送信する。そして、拡張インタフェース１６０は、書き込み要求に含まれるアドレス及び書き込みデータを記憶するアドレスバッファ１６４０及びライト要求用データバッファ１６５０の空き領域が所定の大きさ未満である場合に、ストール信号４２０を出力する。
【０１２８】
これにより、第２の半導体装置２００は、拡張インタフェース１６０を介して外部メモリ３００にデータを書き込むことが可能となり、第１の半導体装置１００及び第２の半導体装置２００の間でシステムバスを接続することなく外部メモリＡ３００を共有することができる。なお、アドレスバッファ１６４０及びライト要求用データバッファ１６５０が溢れてしまうことがなく、第２の半導体装置２００からの書き込み要求を正しく処理することができる。
【０１２９】
また、書き込みの場合においても、メモリ制御装置Ｂ２４０と拡張インタフェース１６０との間のプロトコルは、ストール信号４２０を除き、メモリ制御装置Ａ１４０と外部メモリＡ３００との間のプロトコルと同様である。そのため、ストール信号４２０を適切に固定することにより、メモリ制御装置Ｂ２４０に一般的なメモリを直接接続することも可能である。したがって、第１の半導体装置１００が存在しなくとも、第２の半導体装置２００を利用することができる。
【０１３０】
また、拡張インタフェース１６０は、バンクアドレス、ロウアドレス、及びカラムアドレスによりデータ領域が指定されるメモリに相当する動作をすることができる。つまり、バンクアドレス、ロウアドレス、及びカラムアドレスによりデータ領域が指定されるメモリとして、複数の半導体装置で共有することが可能となる。
【０１３１】
また、メモリ制御装置Ａ１４０では、外部メモリＡ３００へのアクセス要求に含まれるアドレスのうち、バンクアドレス、ロウアドレス、及びカラムアドレスのビット位置を設定により変更することができる。つまり、第１の半導体装置１００及び第２の半導体装置２００のメモリアクセスパターンに基づいてアドレス空間に対するバンク割り当てを変更し、外部メモリＡ３００へのアクセス効率を高めることができる。
【０１３２】
また、拡張インタフェース１６０は、バンクアドレスを持たないメモリに相当する動作をすることもできる。また、拡張インタフェースは、アクセス要求時にアドレスを一度に送信するスタティックＲＡＭ等のメモリに相当する動作をすることもできる。すなわち、外部メモリＡ３００がＤＤＲ−ＳＤＲＡＭで拡張インタフェース１６０が同期スタティックＲＡＭ相当動作、あるいはその逆の構成等もあり得る。
【０１３３】
また、拡張インタフェース１６０は、メモリ制御装置Ｂ２４０からのアクセス要求に含まれるアドレスを、図２に例示したように、所定の規則に基づいて変換することができる。なお、この変換規則はレジスタ等に設定されており、変更することが可能である。
【０１３４】
また、拡張インタフェース１６０は、図３に例示したように、アドレスを変換することができる。これにより、第２の半導体装置２００から、第１の半導体装置１００内の内部メモリＡ１３０やダイレクトメモリアクセス制御装置１５０等の各種装置にアクセスすることが可能である。なお、図４に例示したように、第２の半導体装置２００におけるアドレス空間が一部重複するように、アドレスの変換規則を設定することも可能である。これにより、第２の半導体装置２００においてメモリ制御装置Ｂ２４０でのアクセスに割り当てられたアドレス空間が狭い場合に対応することができる。
【０１３５】
また、メモリ制御装置Ａ１４０は、第１の半導体装置１００内部から外部メモリＡ３００へのアクセスと、第２の半導体装置２００から外部メモリＡ３００へのアクセスとが競合した場合に、これらのアクセスを調停することができる。  
例えば、アクセス要求元からの連続アクセス時間に基づいて調停することにより、一方のアクセス要求元から外部メモリＡ３００へのアクセスが長時間連続することを防ぐことができる。これにより、入出力処理などのリアルタイム処理の動作に支障が発生することを防止することができる。
【０１３６】
また、同一のロウアドレス内における連続アクセス長に基づいて調停することにより、外部メモリＡ３００に対して頻繁にロウアドレス指定が発生することを防止することができる。これにより、ロウアドレスの切り替え頻発によるメモリアクセス性能の低下を抑制することができる。
【０１３７】
また、アクセス要求元に対するコマンドの割り当て時間の比率に基づいて調停することにより、第１の半導体装置１００と第２の半導体装置２００への外部メモリＡ３００に対するメモリアクセス帯域の割り当てを制御することができる。
【０１３８】
以上、本実施の形態について説明したが、上記実施例は本発明の理解を容易にするためのものであり、本発明を限定して解釈するためのものではない。本発明は、その趣旨を逸脱することなく、変更、改良され得ると共に、本発明にはその等価物も含まれる。
【図面の簡単な説明】
【０１３９】
【図１】本発明の一実施形態である半導体システムの構成を示すブロック図である。
【図２】外部メモリＡに関する第１の半導体装置のアドレス空間と第２の半導体装置のアドレス空間の対応付けの一例を示す図である。
【図３】第１の半導体装置の全アドレス空間と第２の半導体装置のメモリ制御装置Ｂからアクセス可能なアドレス空間の対応付けの第１の例を示す図である。
【図４】第１の半導体装置の全アドレス空間と第２の半導体装置のメモリ制御装置Ｂからアクセス可能なアドレス空間の対応付けの第２の例を示す図である。
【図５】第１の半導体装置におけるアドレス空間と外部メモリＡのバンクの第１の対応関係の例を示す図である。
【図６】第１の半導体装置におけるアドレス空間と外部メモリＡのバンクの第２の対応関係の例を示す図である。
【図７】第１の半導体装置におけるアドレス空間と外部メモリＡのバンクの第３の対応関係の例を示す図である。
【図８】拡張インタフェースの内部構成例を示すブロック図である。
【図９】状態レジスタのレジスタ構成の一例を示す図である。
【図１０】拡張インタフェースの状態遷移の一例を示す図である。
【図１１】第２の半導体装置が拡張インタフェースへ読み出しアクセスする際のタイミングの一例を示す図である。
【図１２】第２の半導体装置が拡張インタフェースへ書き込みアクセスする際のタイミングの一例を示す図である。
【図１３】第２の半導体装置が拡張インタフェースへ読み出しアクセスする際のタイミングを改善した一例を示す図である。
【図１４】外部メモリＡのアクセスに競合が発生した際の調停方法を示すフローチャートである。
【符号の説明】
【０１４０】
１００  第１の半導体装置                １１０  プロセッサＡ
１２０  入出力装置Ａ                    １３０  内部メモリＡ
１４０  メモリ制御装置Ａ                １５０  ダイレクトメモリアクセス装置
１６０  拡張インタフェース              １９０  システムバスＡ
１９５  専用パス                        ２００  第２の半導体装置
２１０  プロセッサＢ                    ２２０  入出力装置Ｂ
２３０  内部メモリＢ                    ２４０  メモリ制御装置Ｂ
２８０  固定機能処理装置                ２９０  システムバスＢ
３００  外部メモリＡ                    ４１０  メモリ制御信号
４２０  ストール信号                    １６１０  システムバスインタフェース
１６２０  拡張インタフェース制御装置    １６３０  状態レジスタ
１６３１  バンク０ロウアドレスレジスタ
１６３２  バンク１ロウアドレスレジスタ
１６３３  バンク２ロウアドレスレジスタ
１６３４  バンク３ロウアドレスレジスタ
１６３５  モードレジスタ０              １６３６  モードレジスタ１
１６３７  モードレジスタ２              １６３８  モードレジスタ３
１６４０  アドレスバッファ              １６５０  ライト要求用データバッファ
１６５５  リード要求用データバッファ    １６７０  専用パス入力バッファ
１６７５  選択装置                      １６８０  ＤＬＬ
１６９０  コマンドラッチ                １６９１  アドレスラッチ
１６９２  データラッチ
５０１０  外部メモリ第１の半導体装置専用空間
５０２０  外部メモリ拡張インタフェース用割り当て空間
５０３０  内部メモリ空間                ５０４０  Ｉ／Ｏ空間
５１００  バンク０                      ５１１０  バンク１
５１２０  バンク２                      ５１３０  バンク３
５２００  バンク０／１                  ５２２０  バンク２／３
５３００  バンク０／１／２／３          ６０２０  アドレスＡ
６０３０  アドレス空間Ｂ                ６０４０  アドレス空間Ｃ
【図１】
2006293591.tif 000003
【図２】
2006293591.tif 000004
【図３】
2006293591.tif 000005
【図４】
2006293591.tif 000006
【図５】
2006293591.tif 000007
【図６】
2006293591.tif 000008
【図７】
2006293591.tif 000009
【図８】
2006293591.tif 000010
【図９】
2006293591.tif 000011
【図１０】
2006293591.tif 000012
【図１１】
2006293591.tif 000013
【図１２】
2006293591.tif 000014
【図１３】
2006293591.tif 000015
【図１４】
2006293591.tif 000016