(57)【要約】【課題】  各処理回路が必要時にメモリを使用可能としつつ、可及的にメモリサイズを抑える。【解決手段】  本発明の半導体システムは、共有メモリと、それぞれ記憶容量を指定して前記共有メモリを用い、動作モードに応じた特定の組み合わせが同時に動作する複数の処理回路と、前記処理回路によって指定された前記記憶容量分のアドレス範囲を前記処理回路に使用可能に割り当てるアドレス回路とを備えたものとして構成される。【選択図】  図１
2005078481.tif 000002
【特許請求の範囲】
【請求項１】
共有メモリと、
それぞれ記憶容量を指定して前記共有メモリを用い、動作モードに応じた特定の組み合わせが同時に動作する複数の処理回路と、
前記処理回路によって指定された前記記憶容量分のアドレス範囲を前記処理回路に使用可能に割り当てるアドレス回路と、
を備えることを特徴とする半導体システム。
【請求項２】
前記アドレス回路は、前記アドレス範囲として前記共有メモリにおける連続領域を割り当てることを特徴とする請求項１に記載の半導体システム。
【請求項３】
前記アドレス回路は、前記処理回路ごとに定められた基準アドレスと、前記処理回路によって指定された前記記憶容量とに基づいて、割り当てる前記連続領域の範囲を決定することを特徴とする請求項２に記載の半導体システム。
【請求項４】
前記複数の処理回路はメインバスに接続されるとともに、前記メインバスに接続されたＣＰＵによる制御を受け、前記メインバスとは独立して前記共有メモリとの間でデータ転送可能に構成されたことを特徴とする請求項１乃至３のいずれかに記載の半導体システム。
【請求項５】
前記記憶容量の指定は前記ＣＰＵによって行われ、
指定された前記記憶容量の情報を格納する記憶容量情報記憶部をさらに備え、
前記アドレス回路は、前記記憶容量情報記憶部内に格納された前記記憶容量の情報を用いて、割り当てる前記連続領域の範囲を決定することを特徴とする請求項４に記載の半導体システム。
【請求項６】
前記ＣＰＵは、前記処理回路ごとの前記基準アドレスを決定するものであり、
決定された前記基準アドレスを格納する基準アドレス記憶部をさらに備え、
前記アドレス回路は、前記基準アドレス記憶部内の前記基準アドレスを用いて、割り当てる前記連続領域の範囲を決定することを特徴とする請求項４又は５に記載の半導体システム。
【請求項７】
前記メモリは複数のセクションから構成され、
前記アドレス回路は、前記処理回路に対して、前記アドレス範囲として、前記セクションの単数あるいは任意の組み合わせを割り当てることを特徴とする請求項１に記載の半導体システム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、複数の処理回路を備えた半導体システムに関する。
【背景技術】
【０００２】
従来では、同一チップ内の複数のＩＰ（Intellectual Property）回路は、各々その回路中に独自にメモリを有していた。
【０００３】
しかし、これら複数のＩＰ回路は、全てのＩＰ回路が常に動作しているとは限らなかっため、このように複数のＩＰ回路を搭載した装置（システムＬＳＩ、ＳｏＣ（System on Chip）等）では、メモリを有効に活用できているとはいえなかった。
【０００４】
図１１は、従来の半導体システムの一部を示すブロック図である。
【０００５】
図１１に示すように、装置１００と装置１０１とがＣＰＵバス１０２に接続されている。
【０００６】
装置１００は、３つのＩＰ回路１０３（１）、１０３（２）、１０３（３）を備え、各ＩＰ回路１０３（１）、１０３（２）、１０３（３）は、それぞれメモリ１０４（１）（容量ｉＫＢ）、１０４（２）（容量ｊＫＢ）、１０４（３）（容量ｋＫＢ）を備えている。
【０００７】
一方、装置１０１は、複数のＩＰ回路１０５（１）・・・を備え、各ＩＰ回路１０５（１）・・・は、それぞれメモリ１０６（１）・・・を備えている。
【０００８】
図１２は、装置１００におけるＩＰ回路１０３（１）〜１０３（３）の使用状況を示す図である。
【０００９】
図１２に示すように、この装置１００では、同時に動作するのは、最大でもいずれか２つのＩＰ回路である。
【００１０】
例えば、期間ｔ１では、ＩＰ回路１０３（１）及びＩＰ回路１０３（３）のみが動作する。従って、期間ｔ１では、メモリ１０４（１）〜１０４（３）のうち、メモリ１０４（１）（容量ｉｋＢ）とメモリ１０４（３）（容量ｋＫＢ）のみが用いられる（図１１の斜線部分参照）。つまり、期間ｔ１では、メモリ１０４（２）（容量ｊＫＢ）は用いられず、従って、期間ｔ１では、このメモリ１０４（２）は無駄になってしまう。
【００１１】
図１３は、従来の別の半導体システムの一部を示すブロック図である。
【００１２】
この半導体システムでは、ＣＰＵバス１１０に対して共有メモリ１１１及びハードディスク（ＨＤＤ）１１２が接続され、装置１１３、１１４におけるＩＰ回路１１５、１１６は、このＣＰＵバス１１０に接続された共有メモリ１１１を用いる。
【００１３】
しかし、各ＩＰ回路１１５、１１６は、ＣＰＵバス１１０を介して、共有メモリ１１１に直接アクセス（DMA: Direct Memory Access）するので（パスＲ１、Ｒ２参照）、ＤＭＡ毎にＣＰＵバス１１０の使用権を獲得する必要がある。つまり、各ＩＰ回路１１５、１１６は、同時に共有メモリ１１１にアクセスすることはできない。
【００１４】
このため、特に外部とのデータのやり取りが必要なＩＰ回路（例えば受信回路、送信回路）では、上述の共有メモリ１１１を例えばバッファとして使用することは難しかった。
【特許文献１】特開２０００−１７２５５５号公報
【発明の開示】
【発明が解決しようとする課題】
【００１５】
以上のように、最初に述べた従来技術においては、使用されないメモリが常に存在するため、メモリを有効に使用しているとはいえなかった。また、別の従来技術においては、ＣＰＵバスの使用権を獲得する必要があるため、ＣＰＵバスに対して接続された共有メモリを例えばバッファとして用いることは困難であった。
【００１６】
本発明は、上記問題点に鑑みてなされたものであり、その目的は、各回路が必要時にメモリを使用可能としつつ、可及的にメモリサイズを抑えた半導体システムを提供することにある。
【課題を解決するための手段】
【００１７】
本発明の第１の半導体システムは、共有メモリと、それぞれ記憶容量を指定して前記共有メモリを用い、動作モードに応じた特定の組み合わせが同時に動作する複数の処理回路と、前記処理回路によって指定された前記記憶容量分のアドレス範囲を前記処理回路に使用可能に割り当てるアドレス回路と、を備えることを特徴とする。
【００１８】
本発明の第２の半導体システムは、第１の半導体システムにおいて、前記アドレス回路は、前記アドレス範囲として前記共有メモリにおける連続領域を割り当てることを特徴とする。
【００１９】
本発明の第３の半導体システムは、第２の半導体システムにおいて、前記アドレス回路は、前記処理回路ごとに定められた基準アドレスと、前記処理回路によって指定された前記記憶容量とに基づいて、割り当てる前記連続領域の範囲を決定することを特徴とする。
【００２０】
本発明の第４の半導体システムは、第１〜第３の半導体システムのいずれかにおいて、前記複数の処理回路はメインバスに接続されるとともに、前記メインバスに接続されたＣＰＵによる制御を受け、前記メインバスとは独立して前記共有メモリとの間でデータ転送可能に構成されたことを特徴とする。
【００２１】
本発明の第５の半導体システムは、第４の半導体システムにおいて、前記記憶容量の指定は前記ＣＰＵによって行われ、指定された前記記憶容量の情報を格納する記憶容量情報記憶部をさらに備え、前記アドレス回路は、前記記憶容量情報記憶部内に格納された前記記憶容量の情報を用いて、割り当てる前記連続領域の範囲を決定することを特徴とする。
【００２２】
本発明の第６の半導体システムは、第４又は第５の半導体システムにおいて、前記ＣＰＵは、前記処理回路ごとの前記基準アドレスを決定するものであり、決定された前記基準アドレスを格納する基準アドレス記憶部をさらに備え、前記アドレス回路は、前記基準アドレス記憶部内の前記基準アドレスを用いて、割り当てる前記連続領域の範囲を決定することを特徴とする。
【００２３】
本発明の第７の半導体システムは、第１の半導体システムにおいて、前記メモリは複数のセクションから構成され、前記アドレス回路は、前記処理回路に対して、前記アドレス範囲として、前記セクションの単数あるいは任意の組み合わせを割り当てることを特徴とする。
【発明の効果】
【００２４】
本発明によれば、複数の処理回路間で同時に使用される最大のメモリ容量を最低限有するメモリを搭載し、このメモリをメインバスを介することなく共有するようにしたので、メモリサイズを可及的に小さくすることができ、また、各処理回路は必要時にメモリにアクセスすることができる。
【発明を実施するための最良の形態】
【００２５】
（第１の実施の形態）
図１は、本発明の第１の実施の形態としての半導体システムにおける半導体装置１の構成を示すブロック図である。
【００２６】
この半導体装置１は、ワンチップにより構成され、図示しないＣＰＵバス（メインバス）に接続されている。
【００２７】
この半導体装置１は、目的に応じた種々の処理を行う第１のＩＰ回路Ｃ（１）、第２のＩＰ回路Ｃ（２）及び第３のＩＰ回路Ｃ（３）を備える。また、この半導体装置１は、第１のＩＰ回路Ｃ（１）〜第３のＩＰ回路Ｃ（３）間でメモリ５を共有するための共有メモリ制御回路２を備える。
【００２８】
第１のＩＰ回路Ｃ（１）〜第３のＩＰ回路Ｃ（３）は、データの書込み及び読出しのタイミングを示すイネイブルデータＥＮ１〜ＥＮ３、メモリ５におけるデータの書込み及び読出しアドレスを指示するアドレスＡＤＲ１〜ＡＤＲ３、動作時に必要なメモリサイズを表すサイズＳＩＺＥ１〜ＳＩＺＥ３、第１のＩＰ回路Ｃ（１）〜第３のＩＰ回路Ｃ（３）が動作中であるか否かを示すランデータＲＵＮ１〜ＲＵＮ３を生成及び出力する。さらに、第１のＩＰ回路Ｃ（１）〜第３のＩＰ回路Ｃ（３）は、データの書込み及び読出しを指示する書込み制御データ／読出し制御データ（図示せず）や、メモリ５に書き込む書込みデータ（図示せず）等を生成及び出力する。
【００２９】
以上のような第１のＩＰ回路Ｃ（１）〜第３のＩＰ回路Ｃ（３）は、最大で２つが同時に動作（２つのランデータＲＵＮの信号がアサート）し、３つが同時に動作することはないものとする。また、２つのＩＰ回路が動作する場合、下位（図中下側の方）のＩＰ回路が、上位のＩＰ回路に先立って動作を開始するものとする。
【００３０】
共有メモリ制御回路２は、第１のＩＰ回路Ｃ（１）〜第３のＩＰ回路Ｃ（３）間で共有されるメモリ５を備える。このメモリ５は、第１のＩＰ回路Ｃ（１）〜第３のＩＰ回路Ｃ（３）の外側に配置されている。このメモリ５のサイズは、第１のＩＰ回路Ｃ（１）〜第３のＩＰ回路Ｃ（３）に必要とされるそれぞれメモリサイズのうち、１番目及び２番目に大きいものを合計したものである。これは、上述したように、第１のＩＰ回路Ｃ（１）〜第３のＩＰ回路Ｃ（３）のうち、同時に動作するのは最大で２つであることに対応させたものである。
【００３１】
また、共有メモリ制御回路２は、第１のＩＰ回路Ｃ（１）〜第３のＩＰ回路Ｃ（３）とメモリ５との間でデータのやり取りするための第１のポートＰ１〜第３のポートＰ３を備える。
【００３２】
より詳しくは、第１のポートＰ１〜第３のポートＰ３は、それぞれ、データ書込み用のＷＲポート及びデータ読出し用のＲＤポートを備えている。また、第１のポートＰ１〜第３のポートＰ３は、上述のイネイブルデータＥＮ１〜ＥＮ３を入力するＥＮポート（図示せず）、後述する実メモリアドレスＭＡＤＲ１〜ＭＡＤＲ３を入力する実アドレスポート（図示せず）、上述の書込み制御データ／読出し制御データを入力する制御ポート（図示せず）等をそれぞれ備える。
【００３３】
また、共有メモリ制御回路２は、第１のＩＰ回路Ｃ（１）〜第３のＩＰ回路Ｃ（３）により出力されたアドレスＡＤＲ１〜３を、実メモリアドレスＭＡＤＲ１〜３に変換する第１アドレス回路４（１）〜第３アドレス回路４（３）を備える。
【００３４】
図２は、第１のアドレス回路４（１）〜第３のアドレス回路４（３）のいずれか（第ｎのアドレス回路４（ｎ））の構成を示すブロック図である。
【００３５】
図２に示すように、第ｎのアドレス回路４（ｎ）は、それぞれ、２つの加算器８、９と、１つのセレクタ１０とを備える。
【００３６】
加算器８は、ベースアドレスＢＡＤＲと、ＩＰ回路からのアドレスＡＤＲ（アドレスＡＤＲ１〜アドレスＡＤＲ３）とを加算して、実メモリアドレスＭＡＤＲ（実メモリアドレスＭＡＤＲ１〜ＭＡＤＲ３）を生成する。
【００３７】
セレクタ１０は、ランデータＲＵＮの信号がアサートされている場合は、ＩＰ回路からのサイズＳＩＺＥ（サイズＳＩＺＥ１〜ＳＩＺＥ３）をそのまま出力し、一方、ランデータＲＵＮの信号がデアサートされている場合は、０を出力する。
【００３８】
加算器９は、ベースアドレスＢＡＤＲと、セレクタ１０から出力された出力データ（サイズＳＩＺＥあるいは０）とを加算して、上位の回路（第３のＩＰ回路Ｃ（３）に対する第２のＩＰ回路Ｃ（２）、あるいは第２のＩＰ回路Ｃ（２）に対応する第１のＩＰ回路Ｃ（１））に対するベースアドレスＢＡＤＲを出力する。なお、第ｎのアドレス回路４（ｎ）が第１のアドレス回路４（１）の場合は、上位の回路が存在しないので、出力されたベースアドレスＢＡＤＲは何ら用いられることはない。
【００３９】
次に、図１及び図２を用いて、この半導体装置１の動作について説明する。
【００４０】
図１に示すように、第３のＩＰ回路Ｃ（３）がランデータＲＵＮ３の信号をアサートしている場合、第３のアドレス回路４（３）は、与えられたベースアドレスＡＤＲ（０番地）と、第３のＩＰ回路Ｃ（３）から出力されたアドレスＡＤＲ３とを加算して、実メモリアドレスＭＡＤＲ３を出力する。第３のポートは、この実メモリアドレスＭＡＤＲ３を受け取るとともに、第３のＩＰ回路Ｃ（３）からイネイブルデータＥＮ３、書込み制御データあるいは読出し制御データ（図示せず）、書込みデータ（書込みの場合）（図示せず）を受け取り、メモリ５に渡す。メモリ５は、書込みの場合は、受け取った書込みデータを指定された実メモリアドレスＭＡＤＲ３にイネイブルデータＥＮ３のタイミングで格納する。読出しの場合は、メモリ５は、指定された実メモリアドレスＭＡＤＲ３からデータを読出し、第３のポートＰ３を介して、第３のＩＰ回路Ｃ（３）に送出する。
【００４１】
また、第３のアドレス回路４（３）は、第３のＩＰ回路Ｃ（３）からのサイズＳＩＺＥ３と、与えられたベースアドレスＡＤＲ（０番地とする）とを加算して、第２のアドレス回路４（２）へのベースアドレスＢＡＤＲを算出し、第２のアドレス回路４（２）に送出する。
【００４２】
一方、第３のアドレス回路４（３）は、第３のＩＰ回路Ｃ（３）がランデータＲＵＮ３の信号をデアサートしている場合は、セレクタ１０（図２参照）で選択された０データと、ベースアドレスＢＡＤＲ（０番地）とを加算したものをベースアドレスＢＡＤＲとして第２のアドレス回路４（２）に送出する。
【００４３】
次に、第２のアドレス回路４（２）は、第２のＩＰ回路Ｃ（２）がランデータＲＵＮ２の信号をアサートしている場合、第３のアドレス回路４（３）から入力されたベースアドレスＢＡＤＲと、第２のＩＰ回路Ｃ（２）から出力されたアドレスＡＤＲ２とを加算して、実メモリアドレスＭＡＤＲ２を出力する。第２のポートＰ２は、この実メモリアドレスＭＡＤＲ２を受け取るとともに、第２のＩＰ回路Ｃ（２）からイネイブルデータＥＮ２、書込み制御データあるいは読出し制御データ（図示せず）、書込みデータ（書込みの場合）（図示せず）を受け取り、メモリ５に渡す。メモリ５は、書込みの場合は、受け取った書込みデータを指定された実メモリアドレスＭＡＤＲ２に格納する。読出しの場合は、メモリ５は、指定された実メモリアドレスＭＡＤＲ２からデータを読出し、第２のポートＰ２を介して、第２のＩＰ回路Ｃ（２）に送出する。
【００４４】
また、第２のアドレス回路４（２）は、第３のアドレス回路４（３）から入力されたベースアドレスＡＤＲと、第２のＩＰ回路Ｃ（２）から出力されたサイズＳＩＺＥ２とを加算して第１のアドレス回路４（１）へのベースアドレスＢＡＤＲを算出する。第２のアドレス回路４（２）は、算出したベースアドレスを第１のアドレス回路４（１）に送出する。
【００４５】
一方、第２のアドレス回路４（２）は、第２のＩＰ回路Ｃ（２）がランデータＲＵＮ２の信号をデアサートしている場合は、セレクタ１０（図２参照）で選択された０データと、第３のアドレス回路４（３）から入力されたベースアドレスＢＡＤＲとを加算し、ベースアドレスＢＡＤＲとして第１のアドレス回路４（１）に送出する。
【００４６】
次に、第１のアドレス回路４（１）は、第１のＩＰ回路Ｃ（１）がランデータＲＵＮ１の信号をアサートしている場合、第２のアドレス回路４（２）から入力されたベースアドレスＢＡＤＲと、第１のＩＰ回路Ｃ（１）から出力されたアドレスＡＤＲ１とを加算して、実メモリアドレスＭＡＤＲ１を出力する。第１のポートＰ１は、この実メモリアドレスＭＡＤＲ１を受け取るとともに、第１のＩＰ回路Ｃ（１）からイネイブルデータＥＮ１、書込み制御データあるいは読出し制御データ（図示せず）、書込みデータ（書込みの場合）（図示せず）を受け取り、メモリ５に渡す。メモリ５は、書込みの場合は、受け取った書込みデータを指定された実メモリアドレスＭＡＤＲ１に格納する。読出しの場合は、メモリ５は、指定された実メモリアドレスＭＡＤＲ１からデータを読出し、第１のポートＰ１を介して、第１のＩＰ回路Ｃ（１）に送出する。
【００４７】
次に、この半導体装置１の動作を、具体例を用いて、説明する。
【００４８】
図３は、半導体装置の動作を具体的に説明するための図表である。
【００４９】
まず、図３を用いて、動作を説明するに当たっての、前提条件について説明する。
【００５０】
図３の「回路条件」の欄に示すように、第１のＩＰ回路Ｃ（１）は、サイズＳＩＺＥ１として１０（アドレス）を出力し、アドレスＡＤＲ１として０〜９（番地）を出力するものとする。
【００５１】
同様に、第２のＩＰ回路Ｃ（２）は、サイズＳＩＺＥ２として４０（アドレス）を出力し、アドレスＡＤＲ２として０〜３９（番地）を出力するものとする。
【００５２】
また、第３のＩＰ回路Ｃ（３）は、サイズＳＩＺＥ３として２０（アドレス）を出力し、アドレスＡＤＲ３として０〜１９（番地）を出力するものとする。
【００５３】
以上から分かるように、サイズＳＩＺＥ１〜ＳＩＺＥ３はそれぞれ１０、４０、２０であるため、メモリ５に必要とされる最低限のメモリサイズは、１番目及び２番目に大きなメモリサイズの合計、４０＋２０＝６０（アドレス）となる。そこで、図３の「必要なメモリサイズ」の欄に示すように、メモリ５としては、０〜５９番地まで（６０アドレス）有するものを用意する。
【００５４】
以上の前提条件の下、半導体装置１の動作を、書込みの場合を例にして、説明する。
【００５５】
まず、図３の「第３及び第２のＩＰ回路が動作」の欄に示すように、第３のＩＰ回路Ｃ（３）と第２のＩＰ回路Ｃ（２）とが動作する場合について説明する。
【００５６】
図１に示すように、まず、ランデータＲＵＮ３の信号がアサートされた状態で、第３のＩＰ回路Ｃ（３）から第３のアドレス回路４（３）にアドレスＡＤＲ３(
０〜１９番地）と、サイズＳＩＺＥ３（＝１０）とが入力される。さらに、第３のアドレス回路４（３）にベースアドレスＢＡＤＲ（＝０）が入力される。第３のアドレス回路４（３）は、アドレスＡＤＲ３（０〜１９番地）と、ベースアドレスＢＡＤＲ（＝０）とを加算したものを、実メモリアドレスＭＡＤＲ３（０〜１９番地）として出力する。第３のＩＰ回路Ｃ（３）からの図示しない書込みデータが、図３に示すように、この実メモリアドレスＭＡＤＲ３（０〜１９番地）に書き込まれる。
【００５７】
一方、第３のアドレス回路４（３）は、図１に示すように、第３のＩＰ回路Ｃ（３）からのサイズＳＩＺＥ３（＝２０）と、ベースアドレスＢＡＤＲ（＝０）とを加算したものをベースアドレスＢＡＤＲ（＝２０）として第２のアドレス回路４（２）に送出する。
【００５８】
ランデータＲＵＮ２の信号がアサートされた状態で、第２のＩＰ回路Ｃ（２）から第２のアドレス回路４（２）に、アドレスＡＤＲ２（０〜３９番地）と、サイズＳＩＺＥ２（＝４０）とが入力される。第２のアドレス回路４（２）は、アドレスＡＤＲ２（０〜３９番地）と、第３のアドレス回路４（３）から受け取ったベースアドレスＢＡＤＲ（＝２０）とを加算したものを実メモリアドレスＭＡＤＲ２（２０〜５９番地）として出力する。この実メモリアドレスＭＡＤＲ２（２０〜５９番地）に、第２のＩＰ回路Ｃ（２）からの図示しない書込みデータが、図３に示すように、書き込まれる。
【００５９】
一方、第２のアドレス回路４（２）は、第２のＩＰ回路Ｃ（２）からのサイズＳＩＺＥ２（＝４０）と、第３のアドレス回路４（３）からのベースアドレスＢＡＤＲ（＝２０）とを加算したものをベースアドレスＢＡＤＲ（＝６０）として第１のアドレス回路４（１）に送出する。第１のＩＰ回路Ｃ（１）は、動作を停止しているので、このベースアドレスＢＡＤＲ（＝６０）は第１のＩＰ回路Ｃ（１）において無視される。
【００６０】
次に、図３の「第２及び第１のＩＰ回路が動作」の欄に示すように、第２のＩＰ回路Ｃ（２）と第１のＩＰ回路Ｃ（１）が動作する場合について説明する。
【００６１】
図１に示すように、まず、第３のアドレス回路４（３）に、ランデータＲＵＮ３の信号がデアサートされた状態で、ベースアドレスＢＡＤＲ（＝０）が入力される。第３のアドレス回路４（３）は、このベースアドレスＢＡＤＲ（＝０）と、０データ（図２参照）とを加算したものを、ベースアドレスＢＡＤＲとして第２のアドレス回路４（２）に送出する。
【００６２】
第２のアドレス回路４（２）は、第３のアドレス回路４（３）からのベースアドレス（＝０）と、第２のＩＰ回路Ｃ（２）からのアドレスＡＤＲ２（０〜３９番地）とを加算したものを、実メモリアドレスＭＡＤＲ２（０〜３９番地）として出力する。第２のＩＰ回路Ｃ（２）から出力された書込みデータは、図３に示すように、メモリ５における０〜３９番地のいずれかに書き込まれる。
【００６３】
一方、第２のアドレス回路４（２）は、第２のＩＰ回路Ｃ（２）からのサイズＳＩＺＥ２（＝４０）と、第３のアドレス回路４（３）からのベースアドレスＢＡＤＲ（＝０）とを加算したものを、ベースアドレスＢＡＤＲ（＝４０）として第１のアドレス回路４（１）に送出する。
【００６４】
ランデータＲＵＮ１の信号がアサートされた状態で、第１のＩＰ回路Ｃ（１）から第１のアドレス回路４（１）に、アドレスＡＤＲ１（０〜９番地）と、サイズＳＩＺＥ１（＝１０）とが入力される。第１のアドレス回路４（１）は、アドレスＡＤＲ１（０〜９番地）と、第２のアドレス回路４（２）から受け取ったベースアドレスＢＡＤＲ（＝４０）とを加算したものを、実メモリアドレスＭＡＤＲ（４０〜４９番地）として出力する。第１のＩＰ回路Ｃ（１）から出力された書込みデータは、図３に示すように、メモリ５における４０〜４９番地のいずれかに書き込まれる。残りの５０〜５９番地は、空き領域となる。
【００６５】
次に、図３の「第３及び第１のＩＰ回路が動作」の欄に示すように、第３のＩＰ回路Ｃ（３）と第１のＩＰ回路Ｃ（１）が動作する場合について説明する。
【００６６】
図１に示すように、ランデータＲＵＮ３の信号がアサートされた状態で、第３のＩＰ回路Ｃ（３）から第３のアドレス回路４（３）に、アドレスＡＤＲ３（０〜１９番地）と、サイズＳＩＺＥ３（＝２０）とが入力される。さらに、第３のアドレス回路４（３）にはベースアドレスＢＡＤＲ（＝０）が入力される。第３のアドレス回路４（３）は、アドレスＡＤＲ３（０〜１９番地）と、ベースアドレスＢＡＤＲ（＝０）とを加算したものを、実メモリアドレスＭＡＤＲ３（０〜１９番地）として出力する。第３のＩＰ回路Ｃ（３）から出力された書込みデータは、図３に示すように、メモリ５における０〜１９番地のいずれかに書き込まれる。
【００６７】
一方、第３のアドレス回路４（３）は、第３のＩＰ回路Ｃ（３）からのサイズＳＩＺＥ３（＝２０）と、ベースアドレスＢＡＤＲ（＝０）とを加算したものをベースアドレスＢＡＤＲ（＝２０）として第２のアドレス回路４（２）に送出する。
【００６８】
ランデータＲＵＮ２の信号がデアサートされた状態で、第３のアドレス回路４（３）から第２のアドレス回路４（２）に、ベースアドレスＢＡＤＲ（＝２０）が入力される。第２のアドレス回路４（２）は、このベースアドレスＢＡＤＲ（＝２０）と、０データ（図２参照）とを加算したものを、ベースアドレスＢＡＤＲとして、第１のアドレス回路４（１）に送出する。
【００６９】
ランデータＲＵＮ１の信号がアサートされた状態で、第１のＩＰ回路Ｃ（１）から第２のアドレス回路４（２）に、アドレスＡＤＲ１（０〜９番地）と、サイズＳＩＺＥ１（＝１０）とが入力される。第１のアドレス回路４（１）は、アドレスＡＤＲ１（０〜９番地）と、第２のアドレス回路４（２）から受け取ったベースアドレスＢＡＤＲ（＝２０）とを加算したものを、実メモリアドレスＭＡＤＲ１（２０〜２９番地）として出力する。第１のＩＰ回路Ｃ（１）から出力された書込みデータは、図３に示すように、メモリ５における２０〜２９番地のいずれかに書き込まれる。残りの３０〜５９番地は、空き領域となる。
【００７０】
以上のように本発明の第１の実施の形態によれば、第１のＩＰ回路Ｃ（１）〜第３のＩＰ回路Ｃ（３）がそれぞれ出力するメモリアドレスＡＤＲに、それぞれベースアドレスＢＡＤＲを加算したものを、共有メモリ上のアドレスＭＡＤＲとして用いるようにしたので、同時に動作する同一チップ上の各回路は、回路側から見たアドレスはそのままで、通常通りに共有メモリにアクセス（メモリにおける連続した領域をそれぞれ確保）できる。これにより、複数の回路間での、メモリ共有が可能となる。従って、ＳｏＣの動作に必要な最低限のメモリを実装すればよく、このことはゲート数の削減、チップ面積の縮小化にもつながる。
【００７１】
また、本実施の形態によれば、各回路が、ＣＰＵバスとは別個のデータバスで接続されたメモリを共有するようにしたので、ダイレクト・メモリ・アクセス（ＤＭＡ）とは異なり、各回路は、必要な時に随時、メモリを使用することができる。
【００７２】
以上に説明した第１の実施の形態では、複数の回路とメモリとを同一のチップ上に配置したが、ＣＰＵバスとは別個のバスに対して複数のチップ及びメモリを接続することで、各チップ間でのメモリの共有も可能である。
【００７３】
（第２の実施の形態）
図４は、本発明の第２の実施の形態としての半導体システムにおける半導体装置１２を示すブロック図である。
【００７４】
この半導体装置１２が、第１の実施の形態における半導体装置１と異なる点は以下の点にある。
【００７５】
すなわち、第１の実施の形態では、各ＩＰ回路Ｃ（１）〜Ｃ（３）に必要な記憶容量を表すサイズＳＩＺＥ１〜ＳＩＺＥ３を、第１のＩＰ回路Ｃ（１）〜第３のＩＰ回路Ｃ（３）から第１アドレス回路４（１）〜第３アドレス回路４（３）に出力した。本実施の形態では、これらサイズＳＩＺＥ１〜ＳＩＺＥ３を、ソフトウェア（ＳＷ）によりアクセス可能なレジスタ１１（１）〜１１（３）に格納し、第１アドレス回路４（１）〜第３アドレス回路４（３）は、レジスタ１１（１）〜１１（３）内からサイズＳＩＺＥ１〜ＳＩＺＥ３を取り出す。
【００７６】
以上のように、本発明の第２の実施の形態によれば、各ＩＰ回路に必要とされるメモリサイズを表すサイズＳＩＺＥ１〜ＳＩＺＥ３をレジスタ内に格納するようにしたので、各ＩＰ回路で必要なメモリサイズが変更されても、ソフトウェアにより容易にサイズＳＩＺＥ１〜ＳＩＺＥ３を変更することができる。
【００７７】
（第３の実施の形態）
図５は、本発明の第３の実施の形態としての半導体システムにおける半導体装置１４を示すブロック図である。
【００７８】
図５に示すように、本実施の形態では、第１のＩＰ回路Ｃ（１）〜第３のＩＰ回路Ｃ（３）に対し、ベースアドレスＢＡＤＲ１〜３を保持したレジスタ１５（１）〜レジスタ１５（３）が設けられている。また、サイズＳＩＺＥ１〜サイズＳＩＺＥ３を保持したレジスタ１１（１）〜１１（３）が、第２の実施の形態と同様に、各第１のＩＰ回路Ｃ（１）〜第３のＩＰ回路Ｃ（３）に対して、設けられている。
【００７９】
レジスタ１５（１）〜レジスタ１５（３）内のベースアドレスＢＡＤＲ１〜ＢＡＤＲ３、及びレジスタ１１（１）〜１１（３）内のサイズＳＩＺＥ１〜ＳＩＺＥ３は、ソフトウェアによりアクセス可能である。
【００８０】
また、本実施の形態では、第１及び第２の実施の形態における第１アドレス回路４（１）〜第３アドレス回路４（３）に代えて、加算器１６（１）〜１６（３）が設けられている。加算器１６（１）〜１６（３）は、レジスタ１５（１）〜１５（３）内のベースアドレスＢＡＤＲ１〜ＢＡＤＲ３と、第１のＩＰ回路Ｃ（１）〜第３のＩＰ回路Ｃ（３）から出力されたアドレスＡＤＲ１〜ＡＤＲ３とを加算して実メモリアドレスＭＡＤＲ１〜ＭＡＤＲ３を算出する
次に、図５及び図６（ａ）〜（ｃ）を用いて、この半導体装置１４の動作を、書込みの場合を例にして、説明する。
【００８１】
但し、第１のＩＰ回路Ｃ（１）〜第３のＩＰ回路Ｃ（３）のうち、第１のＩＰ回路Ｃ（１）及び第３のＩＰ回路Ｃ（３）が動作するものとする。この際、第１のＩＰ回路Ｃ（１）が、第３のＩＰ回路Ｃ（３）に先だって、動作を開始するものとする。
【００８２】
また、第１の実施の形態と同様に、サイズＳＩＺＥ１〜ＳＩＺＥ３はそれぞれ１０、４０、２０とする（図３参照）。アドレスＡＤＲ１は０〜９番地、アドレスＡＤＲ２は０〜３９番地、アドレスＡＤＲ３は０〜１９番地とする（図３参照）。そして、メモリ５は０〜５９番地まで有するものとする（図３参照）。
【００８３】
図６（ａ）〜（ｃ）は、動作時におけるメモリ５内のデータ状態を時系列に沿って示した図である。
【００８４】
図６（ａ）に示すように、動作開始前においては、メモリ５内にデータは格納されていない。
【００８５】
この状態において、まず、図５に示すように、第１のＩＰ回路Ｃ（１）が動作を開始すると、共有メモリ制御回路１８が、他の回路の動作状況を調べる。第２のＩＰ回路Ｃ（２）及び第３のＩＰ回路Ｃ（３）は共に動作していないので、共有メモリ制御回路１８は、メモリ５においてサイズＳＩＺＥ１（＝１０）分の連続領域を確保可能なベースアドレスＢＡＤＲ１を算出し（ここでは２０番地とする）、レジスタ１５（１）内に設定する。
【００８６】
加算器１６（１）は、第１のＩＰ回路Ｃ（１）から出力されたアドレスＡＤＲ１（０〜９番地）を受け取ると共に、レジスタ１５（１）からベースアドレスＢＡＤＲ１（２０番地）を取得し、これらを加算したものを実メモリアドレスＭＡＤＲ１（２０〜２９番地）として出力する。メモリ５は、第１のポートＰ１を介して、この実メモリアドレスＭＡＤＲ１を受け取り、第１のＩＰ回路Ｃ（１）からの書込みデータ（図示せず）を、図６（ｂ）に示すように、実メモリアドレスＭＡＤＲ１（２０〜２９番地）に書き込む。
【００８７】
この状態において、第３のＩＰ回路Ｃ（３）が動作を開始するとする。共有メモリ制御回路１８は、他の回路の動作状況を調べる。第１のＩＰ回路Ｃ（１）が動作中であるので、共有メモリ制御回路１８は、メモリ５において既に使用されている領域（２０〜２９番地）以外において、サイズＳＩＺＥ３（＝２０）分の連続領域を確保可能なベースアドレスＢＡＤＲ３を算出し（ここでは４０番地）、レジスタ１５（３）内に設定する。
【００８８】
加算器１６（３）は、第３のＩＰ回路Ｃ（３）から出力されたアドレスＡＤＲ３（０〜１９番地）と、レジスタ１５（３）内のベースアドレスＢＡＤＲ３（４０番地）とを加算したものを実メモリアドレスＭＡＤＲ３（４０〜５９番地）として出力する。メモリ５は、第３のポートＰ３を介して、この実メモリアドレスＭＡＤＲ３を受け取り、第３のＩＰ回路Ｃ（３）からの書込みデータを、図６（ｃ）に示すように、実メモリアドレスＭＡＤＲ３（４０〜５９番地）に書き込む。
【００８９】
以上のように、本発明の第３の実施の形態によれば、第１のＩＰ回路Ｃ（１）〜第３のＩＰ回路Ｃ（３）に対するベースアドレスＢＡＤＲを任意に設定できるようにしたので、各ＩＰ回路による書込みデータを、メモリ５における任意の位置に書き込むことができる。また、第１の実施の形態では、下位の回路が上位の回路に先立って動作を開始する必要があったが、本実施の形態では、ベースアドレスＢＡＤＲを自由に設定できるので、どちらが先に動作を開始しても問題ない。
【００９０】
（第４の実施の形態）
図７は、本発明の第４の実施の形態としての半導体システムにおける半導体装置２１を示すブロック図である。
【００９１】
図７に示すように、本実施の形態におけるメモリ５は、それぞれ等サイズ（例えば１０アドレス）からなる各セクションＳ１〜Ｓｎに分割されている。
【００９２】
第１のＩＰ回路Ｃ（１）〜第３のＩＰ回路Ｃ（３）から出力されたアドレスＡＤＲ１〜ＡＤＲ３は、それぞれ上位アドレスＵＡＤＲ１〜ＵＡＤＲ３と下位アドレスＬＡＤＲ１〜ＬＡＤＲ３とに図示しない分割回路によって分割される。
【００９３】
第１セクション決定部２３（１）〜第３セクション決定部２３（３）は、各上位アドレスＵＡＤＲ１〜ＵＡＤＲ３から、書込み及び読出し対象となるセクションＳ１〜Ｓｎを特定するセクションアドレスＳＡＤＲ１〜ＳＡＤＲ３を出力する。
【００９４】
一方、コンカチネイト（concatenate）回路（結合回路）２４（１）〜２４（３）は、セクションアドレスＳＡＤＲ１〜ＳＡＤＲ３と、下位アドレスＬＡＤＲ１〜ＬＡＤＲ３とを結合したものを実メモリアドレスＭＡＤＲ１〜ＭＡＤＲ３として出力する。
【００９５】
図９は、アドレスＡＤＲ（アドレスＡＤＲ１〜ＡＤＲ３）と実メモリアドレスＭＡＤＲ（実メモリアドレスＭＡＤＲ１〜ＭＡＤＲ３）との関係を示す図である。
【００９６】
図９に示すように、アドレスＡＤＲにおける上位アドレスＵＡＤＲはセクション決定部においてセクションアドレスＳＡＤＲに変換され、このセクションアドレスＳＡＤＲと下位アドレスＬＡＤＲとがコンカチネイト回路によって結合されたものが、実メモリアドレスＭＡＤＲとなる。例えば、アドレスＡＤＲが「５８」で、この上位アドレス「５」が、セクションアドレスＳＡＤＲ「１」に変換された場合、実メモリアドレスＭＡＤＲは、セクションアドレスＳＡＤＲ「１」と下位アドレスＬＡＤＲ「８」との結合である「１８」になる。
【００９７】
図８は、第１セクション決定部２３（１）〜第３セクション決定部２３（３）の構成をより詳細に示す図である。
【００９８】
図８に示すように、セクション決定部２３（第１セクション決定部２３（１）〜第３セクション決定部２３（３）のうちの任意のもの）は、メモリ５における各セクションＳ１〜Ｓｎに対応したセクションアドレスＳＡＤＲ［０］〜ＳＡＤＲ［ｎ］を格納する記憶部２６を備える。
【００９９】
一方、セクション決定部２３は、上位アドレスＵＡＤＲに基づいて、対応するセクションアドレスＳＡＤＲ［０］〜ＳＡＤＲ［ｎ］を選択するデコーダ２５を備えている。各デコーダ２５は、他のデコーダ２５によるセクションアドレスＳＡＤＲの選択状況を確認可能に構成され、他のデコーダ２５と同時期に同一のセクションアドレスＳＡＤＲを選択することはない。
【０１００】
次に、図７、図８及び図１０（ａ）〜（ｃ）を用いて、本実施の形態における半導体装置２１の動作を、書込みの場合の例にして、説明する。
【０１０１】
但し、第１のＩＰ回路Ｃ（１）〜第３のＩＰ回路Ｃ（３）のうち、第１のＩＰ回路Ｃ（１）及び第２のＩＰ回路Ｃ（２）が動作するものとする。
【０１０２】
また、第１の実施の形態と同様に、サイズＳＩＺＥ１〜ＳＩＺＥ３はそれぞれ１０、４０、２０とする（図３参照）。アドレスＡＤＲ１は０〜９番地、アドレスＡＤＲ２は０〜３９番地、アドレスＡＤＲ３は０〜１９番地とする（図３参照）。そして、メモリ５は０〜５９番地まで有し（図３参照）、例えば６つのセクションＳ０〜Ｓ５（１セクションは１０アドレス）に分割（図７及び図８のメモリ５においてｎ＝５の場合）されているものとする。
【０１０３】
図１０（ａ）〜（ｃ）は、動作時におけるメモリ５内のデータ状態を時系列に沿って示した図である。
【０１０４】
図１０（ａ）に示すように、動作開始前においては、メモリ５内にデータは格納されていない。
【０１０５】
この状態において、まず、図７に示すように、第１のＩＰ回路Ｃ（１）が動作を開始すると、第１のＩＰ回路Ｃ（１）から出力されたアドレスＡＤＲ１（０〜９番地）は、上位アドレスＵＡＤＲ「０」と下位アドレスＬＡＤＲ「０〜９」に分割される。上位アドレスＵＡＤＲ「０」は第１セクション決定部２３（１）に入力され、下位アドレスＬＡＤＲ「０〜９」はコンカチネイト回路２４（１）に入力される。
【０１０６】
第１セクション決定部２３（１）におけるデコーダ２５（図８参照）は、例えば、上位アドレスＵＡＤＲ「０」に基づき記憶部２６内のセクションアドレスＳＡＤＲ［２］（＝２）を選択する。
【０１０７】
選択されたセクションアドレスＳＡＤＲ［２］（＝２）は、図８に示すように、記憶部２６から取り出され、コンカチネイト回路２４（１）に入力される。
【０１０８】
コンカチネイト回路２４（１）は、このセクションアドレスＳＡＤＲ［２］（＝２）と、上述の下位アドレスＬＡＤＲ「０〜９」とを結合して、実メモリアドレスＭＡＤＲ１「２０〜２９」を生成する。
【０１０９】
メモリ５は、図７に示すように、第１のポートＰ１を介して、この実メモリアドレスＭＡＤＲ１（２０〜２９番地）を受け取り、第１のＩＰ回路Ｃ（１）からの書込みデータ（図示せず）を、図１０（ｂ）の斜線部分（セクションＳ２）に示すように、実メモリアドレスＭＡＤＲ１（２０〜２９番地）に書き込む。
【０１１０】
この状態において、図７に示すように、第２のＩＰ回路Ｃ（２）が、動作を開始すると、第２のＩＰ回路Ｃ（２）から出力されたアドレスＡＤＲ２（０〜３９番地）は、上位アドレスＵＡＤＲ「０〜３」と下位アドレスＬＡＤＲ「０〜９」に分割される。上位アドレスＵＡＤＲ「０〜３」は第２セクション決定部２３（２）に入力され、下位アドレスＬＡＤＲ「０〜９」はコンカチネイト回路２４（２）に入力される。
【０１１１】
第２セクション決定部２３（２）におけるデコーダ２５（図８参照）は、セクションアドレスＳＡＤＲ［２］は既に使用されていると判断して、例えば、上位アドレスＵＡＤＲ「０〜３」に対し、記憶部２６内のセクションアドレスＳＡＤＲ［０］、ＳＡＤＲ［１］、ＳＡＤＲ［３］、ＳＡＤＲ［４］を選択する。
【０１１２】
例えば、上位アドレスＵＡＤＲが「０」のときは、セクションアドレスＳＡＤＲ［０］（＝０）を、上位アドレスＵＡＤＲが「１」のときは、セクションアドレスＳＡＤＲ［１］（＝１）を、上位アドレスＵＡＤＲが「２」のときは、セクションアドレスＳＡＤＲ［３］（＝３）を、上位アドレスＵＡＤＲが「３」のときは、セクションアドレスＳＡＤＲ［４］（＝４）を選択する。
【０１１３】
選択されたセクションアドレスＳＡＤＲ［ｎ］（ｎ＝０、１、３、４）は記憶部２６から取り出され、コンカチネイト回路２４（２）に入力される。
【０１１４】
コンカチネイト回路２４（２）は、このセクションアドレスＳＡＤＲ［ｎ］（＝０、１、３、４）と、上述の下位アドレスＬＡＤＲ「０〜９」とを結合して、実メモリアドレスＭＡＤＲ２「０〜１９、３０〜４９」を生成する。
【０１１５】
メモリ５は、第２のポートＰ２を介して、この実メモリアドレスＭＡＤＲ２を受け取り、第２のＩＰ回路Ｃ（２）からの書込みデータを、図１０（ｃ）の斜線部分（セクションＳ０、Ｓ１、Ｓ３、Ｓ４）に示すように、実メモリアドレスＭＡＤＲ２（０〜１９、３０〜４９番地のいずれか）に書き込む。
【０１１６】
以上のように、本発明の第４の実施の形態によれば、メモリを複数のセクションに分割し、セクション単位でデータを格納するようにしたので、連続した領域を確保することなくデータを格納することができる。
【図面の簡単な説明】
【０１１７】
【図１】本発明の第１の実施の形態としての半導体システムにおける半導体装置の構成を示すブロック図である。
【図２】第１のアドレス回路〜第３のアドレス回路の構成を示すブロック図である。
【図３】半導体装置の動作を説明するための図である。
【図４】本発明の第２の実施の形態としての半導体システムにおける半導体装置を示すブロック図である。
【図５】本発明の第３の実施の形態としての半導体システムにおける半導体装置を示すブロック図である。
【図６】図５の半導体装置の動作時におけるメモリ内のデータを示した図である。
【図７】本発明の第４の実施の形態としての半導体システムにおける半導体装置を示すブロック図である。
【図８】第１セクション決定部〜第３セクション決定部を説明するための図である。
【図９】アドレスＡＤＲと実メモリアドレスＭＡＤＲとの関係を示す図である。
【図１０】図７の半導体装置の動作時におけるメモリ内のデータを示した図である。
【図１１】従来の半導体システムの一部を示すブロック図である。
【図１２】同一チップ内に設けられた複数のＩＰ回路の使用状況を示す図である。
【図１３】従来の別の半導体システムの一部を示すブロック図である。
【符号の説明】
【０１１８】
１、１２、１４、２１  半導体装置
２、１３、１８、２２  共有メモリ制御回路
４（１）〜４（３）  第１アドレス回路〜第３アドレス回路
５  メモリ
８、９、１６（１）〜１６（３）  加算器
１０  選択器
１１（１）〜１１（３）、１５（１）〜１５（３）  レジスタ
２３（１）〜２３（３）、２６  レジスタ
２４（１）〜２４（３）  コンカチネイト回路
２５  デコーダ
Ｃ（１）〜Ｃ（３）  第１のＩＰ回路〜第３のＩＰ回路
Ｐ１〜Ｐ３  第１ポート〜第３ポート
ＥＮ１、ＥＮ２、ＥＮ３  イネイブルデータ
ＡＤＲ１、ＡＤＲ２、ＡＤＲ３  アドレス
ＳＩＺＥ１、ＳＩＺＥ２、ＳＩＺＥ３  サイズ
ＲＵＮ１、ＲＵＮ２、ＲＵＮ３  ランデータ
ＢＡＤＲ、ＢＡＤＲ１，ＢＡＤＲ２、ＢＡＤＲ３  ベースアドレス
ＭＡＤＲ１、ＭＡＤＲ２、ＭＡＤＲ３  実メモリアドレス
【図１】
2005078481.tif 000003
【図２】
2005078481.tif 000004
【図３】
2005078481.tif 000005
【図４】
2005078481.tif 000006
【図５】
2005078481.tif 000007
【図６】
2005078481.tif 000008
【図７】
2005078481.tif 000009
【図８】
2005078481.tif 000010
【図９】
2005078481.tif 000011
【図１０】
2005078481.tif 000012
【図１１】
2005078481.tif 000013
【図１２】
2005078481.tif 000014
【図１３】
2005078481.tif 000015