(57)【要約】  本発明のデータ処理装置は、データ処理を行う第１のデータ処理部と、第１のデータ処理部による処理対象であるデータ処理のうち、特定のデータ処理を第１のデータ処理部に代わって行う第２のデータ処理部と、第１および第２のメモリブロックを備えるメモリとを有し、第１のデータ処理部は、第１の動作モードにおいては、すべてのメモリブロックを１つのメモリとしてアクセスしてデータ処理に伴うデータの読み書きを行い、第２の動作モードにおいては停止し、第２のデータ処理部は、第１の動作モードにおいては停止し、第２の動作モードにおいては、第１のメモリブロックを読み出し専用とし、第２のメモリブロックを書き込み専用とし、第１のメモリブロックからデータを読み出して特定のデータ処理を行い、特定のデータ処理の結果を第２のメモリブロックに書き込み。
2013136857.tif 000002
【特許請求の範囲】
【請求項１】
データ処理を行う第１のデータ処理部と、
前記第１のデータ処理部による処理対象であるデータ処理のうち、特定のデータ処理を前記第１のデータ処理部に代わって行う第２のデータ処理部と、
少なくとも第１および第２のメモリブロックを備えるメモリと、を有し、
前記第１のデータ処理部は、第１の動作モードにおいては、前記メモリが備えるすべてのメモリブロックを連続したアドレス空間を有する１つのメモリとしてアクセスして前記データ処理に伴うデータの読み書きを行い、第２の動作モードにおいては、停止状態となり、
前記第２のデータ処理部は、前記第１の動作モードにおいては、停止状態となり、前記第２の動作モードにおいては、前記第１のメモリブロックを読み出し専用のメモリとするとともに、前記第２のメモリブロックを書き込み専用のメモリとし、前記第１のメモリブロックからデータを読み出して前記特定のデータ処理を行い、該特定のデータ処理の結果を前記第２のメモリブロックに書き込むことを特徴とするデータ処理システム。
【請求項２】
請求項１記載のデータ処理システムにおいて、
前記特定のデータ処理の開始時に、前記第１の動作モードから前記第２の動作モードに遷移し、前記特定のデータ処理の終了時に、前記第２の動作モードから前記第１の動作モードに遷移することを特徴とするデータ処理システム。
【請求項３】
請求項２記載のデータ処理システムにおいて、
前記第１のデータ処理部は、前記第１の動作モードにおいて、前記特定のデータ処理を行うためのデータを前記第１のメモリブロックに書き込むことを特徴とするデータ処理システム。
【請求項４】
請求項１から３のいずれか１項に記載のデータ処理システムにおいて、
前記メモリは、第３のメモリブロックをさらに備え、
前記第２のデータ処理部は、前記第２の動作モードにおいて、他の前記メモリブロックとは独立に読み書き可能なローカルメモリとして前記第３のメモリブロックにアクセスすることを特徴とするデータ処理システム。
【請求項５】
請求項１から４のいずれか１項に記載のデータ処理システムにおいて、
前記メモリブロックは、１ポートメモリであることを特徴とするデータ処理システム。
【請求項６】
請求項１から５のいずれか１項に記載のデータ処理システムにおいて、
前記第１のメモリブロックと前記第２のメモリブロックとは、各々が内蔵するメモリセルアレイからデータを読み出すための読み出し用回路および前記メモリセルアレイにデータを書き込むための書き込み用回路を共有することを特徴とするデータ処理システム。
【請求項７】
請求項１から６のいずれか１項に記載のデータ処理システムにおいて、
前記メモリおよび前記第２のデータ処理部が、１つの半導体集積回路に集積されることを特徴とするデータ処理システム。
【請求項８】
請求項７記載のデータ処理システムにおいて、
前記半導体集積回路には、前記第１のデータ処理部がさらに集積されることを特徴とするデータ処理システム。
【請求項９】
データ処理を行う第１の処理部と、前記第１のデータ処理部による処理対象であるデータ処理のうち、特定のデータ処理を前記第１のデータ処理部に代わって行う第２の処理部と、少なくとも第１および第２のメモリブロックを備えるメモリと、を有し、
前記第１の処理部は、第１の動作モードにおいては、前記メモリが備えるすべてのメモリブロックを連続したアドレス空間を有する１つのメモリとして前記データ処理に伴うデータの読み書きを行い、第２の動作モードにおいては、停止状態となり、
前記第２の処理部は、前記第１の動作モードにおいては、停止状態となり、前記第２の動作モードにおいては、前記第１のメモリブロックを読み出し専用のメモリとするとともに、前記第２のメモリブロックを書き込み専用のメモリとし、前記第１のメモリブロックからデータを読み出して前記特定のデータ処理を行い、該特定のデータ処理の結果を前記第２のメモリブロックに書き込むことを特徴とする半導体集積回路。
【請求項１０】
データ処理を行う第１の処理部と、前記第１のデータ処理部による処理対象であるデータ処理のうち、特定のデータ処理を前記第１のデータ処理部に代わって行う第２の処理部と、少なくとも第１および第２のメモリブロックを備えるメモリと、を有する半導体集積回路の制御方法であって、
第１の動作モードにおいては、
前記第１の処理部は、前記メモリが備えるすべてのメモリブロックを連続したアドレス空間を有する１つのメモリとして前記データ処理に伴うデータの読み書きを行い、
前記第２の処理部は、停止状態となり、
第２の動作モードにおいては、
前記第１の処理部は、停止状態となり、
前記第２の処理部は、前記第１のメモリブロックを読み出し専用のメモリとするとともに、前記第２のメモリブロックを書き込み専用のメモリとし、前記第１のメモリブロックからデータを読み出して前記特定のデータ処理を行い、該特定のデータ処理の結果を前記第２のメモリブロックに書き込むことを特徴とする半導体集積回路の制御方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、データ処理システム、半導体集積回路およびその制御方法に関する。
【背景技術】
【０００２】
ＣＰＵ（Central  Processing  Unit）を用いてデータ処理を行うデータ処理システムにおいては、ＣＰＵで処理を行うと時間が掛かり過ぎたり、消費電力が大きくなり過ぎたりする特定のデータ処理を、ＣＰＵよりも高効率な処理性能を持つ別の回路が肩代わりして行うという方法が広く用いられている。以下では、ＣＰＵによる処理対象であるデータ処理のうち、特定のデータ処理を別の回路が肩代わりして行うことをオフロードと称する。また、ＣＰＵに代わって処理を行う回路をオフローダと称する。また、オフローダにより行われるデータ処理をオフロード処理と称する。また、オフローダのうち、多様なデータ処理を効率的に行うことができるものを汎用オフローダと称する。【０００３】
図１は、特許文献１（特開２００６−３３８５３８号公報）および特許文献２（特開２００７−０３４３９２号公報）に開示される、汎用オフローダを備えたデータ処理システムの要部構成を示す図である。【０００４】
図１に示すデータ処理システムは、システムバス７０を介して接続された、ＣＰＵ１０と、メモリ２０と、汎用オフローダ３０と、周辺ブロック９０とを有する。なお、図１においては、ＣＰＵ１０、メモリ２０および汎用オフローダ３０以外の回路をまとめて周辺ブロック９０として示す。周辺ブロック９０の具体例としては、入出力回路などがある。【０００５】
ＣＰＵ１０は、メモリ２０からデータを読み出してデータ処理を行い、処理結果をメモリ２０に書き込む。【０００６】
汎用オフローダ３０は、ＣＰＵ１０による処理対象であるデータ処理のうち特定のデータ処理をＣＰＵ１０に代わって行う。なお、ＣＰＵ１０が行うデータ処理と汎用オフローダ３０が行うデータ処理とは、予めプログラムなどで規定されている。ＣＰＵ１０が行うものとして規定されたデータ処理を要求する旨が不図示の入出力回路を介して入力された場合には、ＣＰＵ１０によりデータ処理が行われ、汎用オフローダ３０が行うものとして規定されたデータ処理を要求する旨が入力された場合には、汎用オフローダ３０によりデータ処理が行われる。【０００７】
図２は、汎用オフローダ３０の構成の一例を示すブロック図である。【０００８】
汎用オフローダ３０は、入力ＦＩＦＯ（First-In  First-Out）回路３１と、データ処理アクセレータ５０と、出力ＦＩＦＯ回路３３と、ローカルメモリ３４と、コントローラ３９と、を有する。【０００９】
入力ＦＩＦＯ回路３１は、入力されたデータを入力順にデータ処理アクセレータ５０に出力する。【００１０】
データ処理アクセレータ５０は、汎用性のある高効率な処理回路であり、アレイプロセッサや再構成可能回路などで構成される。データ処理アクセレータ５０は、入力ＦＩＦＯ回路３１から入力されたデータを用いてデータ処理を行い、処理結果を出力する。【００１１】
出力ＦＩＦＯ回路３３は、入力ＦＩＦＯ回路３１とは独立に、データ処理アクセレータ５０から入力されたデータ処理結果を連続的に出力する。【００１２】
ローカルメモリ３４は、データ処理アクセレータ５０がデータ処理を効率的に行うために設けられており、必要に応じて適宜、データ処理アクセレータ５０からアクセスされる。なお、図２においては、ローカルメモリ３４が１つである例を示しているが、ローカルメモリ３４は、複数であってもよい。【００１３】
コントローラ３９は、図２においては不図示のメモリ２０と入力ＦＩＦＯ回路３１との間、および、メモリ２０と出力ＦＩＦＯ回路３３との間で、システムバス７０を介してデータ転送を行うＤＭＡ（Direct  Memory  Access）回路を備えており、データ転送を制御する。【００１４】
データ処理アクセレータ５０により高効率な処理が可能なデータ処理の典型例として、ストリーミング処理がある。ストリーミング処理とは、データ入力とデータ処理結果の出力とが同時かつ連続的に行われる処理である。入力ＦＩＦＯ回路３１から連続的にデータをデータ処理アクセレータ５０に入力し、出力ＦＩＦＯ回路３３から連続的にデータ処理アクセレータ５０によるデータ処理結果を出力することで、複雑な処理を要する場合でも、高スループットを実現することができる。
【先行技術文献】
【特許文献】
【００１５】
【特許文献１】特開２００６−３３８５３８号公報
【特許文献２】特開２００７−０３４３９２号公報
【発明の概要】
【発明が解決しようとする課題】
【００１６】
汎用オフローダを備えたデータ処理システムにおいては、データ処理の前後にメモリ２０と入力ＦＩＦＯ回路３１との間、および、メモリ２０と出力ＦＩＦＯ回路３３との間で、多量のデータ転送を行う必要がある。また、そのデータ転送を効率的に行うためにＤＭＡ回路を含むコントローラ３９を設ける必要がある。【００１７】
多量のデータ転送を行うと、データ転送のオーバーヘッドが大きくなる。また、ＤＭＡ回路を含むコントローラ３９を設けると、回路規模のオーバーヘッドが大きくなる。データ転送や回路規模のオーバーヘッドが大きくなると、処理時間、回路面積、消費電力などの増大という問題が生じる。多量の計算を要する大規模なオフロード処理の場合には、上述したようなオーバーヘッドによる処理時間、回路面積、消費電力などの増大は相対的に小さく、あまり問題とならない。しかし、比較的規模の小さいデータ処理を行うＭＣＵ（Micro  Control  Unit）などにおいては、上述したオーバーヘッドによる処理時間、回路面積、消費電力などの増大が大きな比重を占めるようになり、無視できないものとなる。【００１８】
本発明の目的は、データ転送や回路規模のオーバーヘッドの低減を図ることができるデータ処理システム、半導体集積回路およびその制御方法に関する。
【課題を解決するための手段】
【００１９】
上記目的を達成するために本発明のデータ処理システムは、
データ処理を行う第１のデータ処理部と、
前記第１のデータ処理部による処理対象であるデータ処理のうち、特定のデータ処理を前記第１のデータ処理部に代わって行う第２のデータ処理部と、
少なくとも第１および第２のメモリブロックを備えるメモリと、を有し、
前記第１のデータ処理部は、第１の動作モードにおいては、前記メモリが備えるすべてのメモリブロックを連続したアドレス空間を有する１つのメモリとしてアクセスして前記データ処理に伴うデータの読み書きを行い、第２の動作モードにおいては、停止状態となり、
前記第２のデータ処理部は、前記第１の動作モードにおいては、停止状態となり、前記第２の動作モードにおいては、前記第１のメモリブロックを読み出し専用のメモリとするとともに、前記第２のメモリブロックを書き込み専用のメモリとし、前記第１のメモリブロックからデータを読み出して前記特定のデータ処理を行い、該特定のデータ処理の結果を前記第２のメモリブロックに書き込む。【００２０】
上記目的を達成するために本発明の半導体集積回路は、
データ処理を行う第１の処理部と、前記第１のデータ処理部による処理対象であるデータ処理のうち、特定のデータ処理を前記第１のデータ処理部に代わって行う第２の処理部と、少なくとも第１および第２のメモリブロックを備えるメモリと、を有し、
前記第１の処理部は、第１の動作モードにおいては、前記メモリが備えるすべてのメモリブロックを連続したアドレス空間を有する１つのメモリとして前記データ処理に伴うデータの読み書きを行い、第２の動作モードにおいては、停止状態となり、
前記第２の処理部は、前記第１の動作モードにおいては、停止状態となり、前記第２の動作モードにおいては、前記第１のメモリブロックを読み出し専用のメモリとするとともに、前記第２のメモリブロックを書き込み専用のメモリとし、前記第１のメモリブロックからデータを読み出して前記特定のデータ処理を行い、該特定のデータ処理の結果を前記第２のメモリブロックに書き込む。【００２１】
上記目的を達成するために本発明の半導体集積回路の制御方法は、
データ処理を行う第１の処理部と、前記第１のデータ処理部による処理対象であるデータ処理のうち、特定のデータ処理を前記第１のデータ処理部に代わって行う第２の処理部と、少なくとも第１および第２のメモリブロックを備えるメモリと、を有する半導体集積回路の制御方法であって、
第１の動作モードにおいては、
前記第１の処理部は、前記メモリが備えるすべてのメモリブロックを連続したアドレス空間を有する１つのメモリとして前記データ処理に伴うデータの読み書きを行い、
前記第２の処理部は、停止状態となり、
第２の動作モードにおいては、
前記第１の処理部は、停止状態となり、
前記第２の処理部は、前記第１のメモリブロックを読み出し専用のメモリとするとともに、前記第２のメモリブロックを書き込み専用のメモリとし、前記第１のメモリブロックからデータを読み出して前記特定のデータ処理を行い、該特定のデータ処理の結果を前記第２のメモリブロックに書き込む。【００２２】
本発明によれば、データ転送や回路規模のオーバーヘッドの低減を図ることができる。
【図面の簡単な説明】
【００２３】
【図１】関連するデータ処理システムの要部構成を示す図である。
【図２】図２に示す汎用オフローダの構成の一例を示すブロック図である。
【図３】本発明の第１の実施形態のデータ処理システムの構成を示すブロック図である。
【図４】図３に示すメモリおよび結合器の内部構成を示すブロック図である。
【図５】図３に示すデータ処理システムの動作を説明するための図である。
【図６】本発明の第２の実施形態のメモリおよび結合器の内部構成を示すブロック図である。
【図７】関連するメモリブロックの構成を示すブロック図である。
【図８】図７に示す読み出し用回路の構成を示すブロック図である。
【図９】図７に示す書き込み用回路の構成を示すブロック図である。
【発明を実施するための形態】
【００２４】
以下に、本発明を実施するための形態について図面を参照して説明する。
【００２５】
（第１の実施形態）
図３は、本発明の一実施形態のデータ処理システムの構成を示すブロック図である。図３において、図１および図２と同様の構成については同じ符号を付し、説明を省略する。
【００２６】
図３に示すデータ処理システム１は、ＣＰＵ１０と、メモリ２０と、結合器４０と、データ処理アクセレータ５０と、システムバス７０と、周辺ブロック９０と、を有する。ＣＰＵ１０は、第１のデータ処理部の一例であり、データ処理アクセレータ５０は、第２のデータ処理部の一例である。メモリ２０、結合器４０およびデータ処理アクセレータ５０は、汎用アクセレータを構成する。
【００２７】
メモリ２０は、メモリセルアレイを内蔵する複数のメモリブロックを備える。図３においては、メモリ２０は、２つのメモリブロックを備える例を示している。メモリブロックとしては、１ポートメモリが用いられる。
【００２８】
結合器４０は、メモリ２０が備える複数のメモリブロックを連続したアドレス空間を有する１つのメモリとして結合する。
【００２９】
データ処理アクセレータ５０は、結合器４０を介してメモリ２０にアクセスし、ＣＰＵ１０による処理対象であるデータ処理のうち特定のデータ処理をＣＰＵ１０に代わって行う。なお、ＣＰＵ１０が行うデータ処理とデータ処理アクセレータ５０が行うデータ処理とは、予めプログラムなどで規定されている。ＣＰＵ１０が行うものとして規定されたデータ処理を要求する旨が不図示の入出力回路を介して入力された場合には、ＣＰＵ１０によりデータ処理が行われ、データ処理アクセレータ５０が行うものとして規定されたデータ処理を要求する旨が入力された場合には、データ処理アクセレータ５０によりデータ処理が行われる。
【００３０】
システムバス７０は、ＣＰＵ１０と、結合器４０と、周辺回路９０と、を接続する。
【００３１】
本実施形態のデータ処理システム１は、第１および第２の動作モードを備えている。
【００３２】
第１の動作モードにおいては、ＣＰＵ１０は、結合器４０を介してメモリ２０にアクセスし、データ処理を行う。上述したように、メモリ２０には複数のメモリブロックが備えられているが、結合器４０は、複数のメモリブロックを連続したアドレス空間を有する１つのメモリとして結合する。ＣＰＵ１０は、連続したアドレス空間を有する１つのメモリとしてメモリ２０にアクセスし、データ処理に伴うデータの読み書きを行う。データ処理アクセレータ５０は、第１の動作モードにおいては、停止状態となる。
【００３３】
第２の動作モードにおいては、データ処理アクセレータ５０は、結合器４０を介してメモリ２０にアクセスし、ＣＰＵ１０による処理対象であるデータ処理のうち特定のデータ処理をＣＰＵ１０に代わって行う。ここで、データ処理アクセレータ５０は、メモリ２０の備えるメモリブロックごとに、独立なメモリとしてアクセスしてデータ処理を行う。ＣＰＵ１０は、第２の動作モードにおいては、停止状態となる。
【００３４】
本実施形態のデータ処理システム１においては、第１の動作モードと第２の動作モードとが切り替えられながら、データ処理が行われる。
【００３５】
第１の動作モードにおいて、メモリ２０の然るべきアドレスにデータ処理アクセレータ５０により処理されるべき入力データが保持される。第２の動作モードにおいて、然るべきアドレスに保持された入力データがデータ処理アクセレータ５０により処理され、その処理結果がメモリ２０の然るべきアドレスに保持される。次の第１の動作モードにおいて、ＣＰＵ１０は、メモリ２０の然るべきアドレスに保持された、データ処理アクセレータの処理結果にアクセスすることができる。ここで、入力データとデータ処理アクセレータ５０による処理結果とは、異なるメモリブロックに保持される。
【００３６】
図４は、メモリ２０および結合器４０の内部構成を示すブロック図である。
【００３７】
メモリ２０は、それぞれがメモリセルアレイを内蔵する３つメモリブロック２１−１〜２１−３を備える。また、結合器４０は、マルチプレクサ４１−１，４１−２，４１−３，４２−２，４２−３と、出力選択器４５と、を有する。
【００３８】
なお、図４においては、メモリ２０が３つのメモリブロックを備える場合を例として説明するが、これに限られるものではない。メモリ２０はメモリブロックを２つ、あるいは、４つ以上備えていてもよい。なお、メモリ２０がメモリブロックを２つ備える場合には、メモリブロック２１−１とメモリブロック２１−３とを備える。
【００３９】
図４においては不図示のシステムバス７０を介して、アドレス・制御信号７１が、マルチプレクサ４１−１，４１−２，４１−３と、出力選択器４５と、に入力される。また、書き込みデータ信号７２が、メモリブロック２１−１のＤＩ端子と、マルチプレクサ４２−２，４２−３と、に入力される。また、モード信号７４が、マルチプレクサ４１−１，４１−２，４２−２，４１−３，４２−３と、出力選択器４５と、データ処理アクセレータ５０と、に入力される。なお、アドレス・制御信号７１には、アクセス対象のメモリセルのアドレスを示すアドレス信号と制御入力を示す制御信号とが含まれる。書き込みデータ信号７２とは、メモリブロックに保持させるデータを示す信号である。モード信号７４とは、データ処理システム１の動作モードを示す信号である。
【００４０】
データ処理アクセレータ５０は、アドレス・制御信号５１−１，５１−２，５１−３をそれぞれ、マルチプレクサ４１−１，４１−２，４１−３に入力する。また、データ処理アクセレータ５０は、データ処理の結果を示すデータ信号５２−２，５２−３をそれぞれ、マルチプレクサ４２−２，４２−３に入力する。また、データ処理アクセレータ５０は、データ処理が終了すると、データ処理終了信号７５をシステムバス７０を介してＣＰＵ１０に入力する。
【００４１】
メモリブロック２１−１〜２１−３はそれぞれ、アドレス・制御端子（ＡＣ端子）と、データ読み出し端子（ＤＯ端子）と、データ書き込み端子（ＤＩ端子）と、を有する。メモリブロック２１−１〜２１−３はそれぞれ、ＡＣ端子から入力されるアドレス・制御信号に応じて、ＤＩ端子に入力されたデータを保持する。また、メモリブロック２１−１は、ＡＣ端子から入力されるアドレス・制御信号に応じて、保持しているデータをデータＤＯ端子からデータ信号５３−１として出力選択器４５およびデータ処理アクセレータ５０に出力する。また、メモリブロック２１−２は、ＡＣ端子から入力されるアドレス・制御信号に応じて、保持しているデータをＤＯ端子からデータ信号５３−２として出力選択器４５およびデータ処理アクセレータ５０に出力する。また、メモリブロック２１−３は、ＡＣ端子から入力されるアドレス・制御信号に応じて、保持しているデータをＤＯ端子からデータ信号５３−３として出力選択器４５に出力する。
【００４２】
マルチプレクサ４１−１は、動作モードに応じて、システムバス７０を介して入力されるアドレス・制御信号７１とデータ処理アクセレータ５０から入力されるアドレス・制御信号５１−１とのいずれか一方をメモリブロック２１−１のＡＣ端子に入力する。
【００４３】
マルチプレクサ４１−２は、動作モードに応じて、システムバス７０を介して入力されるアドレス・制御信号７１とデータ処理アクセレータ５０から入力されるアドレス・制御信号５１−２とのいずれか一方をメモリブロック２１−２のＡＣ端子に入力する。
【００４４】
マルチプレクサ４２−２は、動作モードに応じて、システムバス７０を介して入力される書き込みデータ信号７２とデータ処理アクセレータ５０から入力されるデータ信号５２−２とのいずれか一方をメモリブロック２１−２のＤＩ端子に入力する。
【００４５】
マルチプレクサ４１−３は、動作モードに応じて、システムバス７０を介して入力されるアドレス・制御信号７１とデータ処理アクセレータ５０から入力されるアドレス・制御信号５１−３とのいずれか一方をメモリブロック２１−３のＡＣ端子に入力する。
【００４６】
マルチプレクサ４２−３は、動作モードに応じて、システムバス７０を介して入力される書き込みデータ信号７２とデータ処理アクセレータ５０から入力されるデータ信号５２−３とのいずれか一方をメモリブロック２１−３のＤＩ端子に入力する。
【００４７】
出力選択器４５は、動作モードに応じて、データ信号５３−１，５３−２，５３−３のいずれかを読み出しデータ信号７３としてシステムバス７０に出力し、または、読み出しデータ信号７３の出力を停止する。
【００４８】
次に、データ処理システム１の動作について、図３および図４を参照して説明する。
【００４９】
なお、以下では、ＣＰＵ１０により行われるものとして規定されたデータ処理を要求する旨と、データ処理アクセレータ５０により行われるものとして規定された特定のデータ処理を要求する旨とが入力されるものとする。また、以下では、モード信号の論理値が第１の論理値である場合には第１の動作モードとなり、モード信号の論理値が第２の論理値である場合には第２の動作モードとなるものとする。
【００５０】
まず、第１の動作モード時の動作について説明する。
【００５１】
第１の動作モードにおいては、ＣＰＵ１０は、動作状態となり、データ処理に応じて、アドレス・制御信号７１と書き込みデータ信号７２とをシステムバス７０を介して結合器４０に入力する。一方、データ処理アクセレータ５０は停止状態となる。そのため、データ処理終了信号７５の値はドントケアとなる。
【００５２】
マルチプレクサ４１−１は、システムバス７０を介して入力されるアドレス・制御信号７１をメモリブロック２１−１のＡＣ端子に入力する。マルチプレクサ４１−２は、システムバス７０を介して入力されるアドレス・制御信号７１をメモリブロック２１−２のＡＣ端子に入力する。マルチプレクサ４１−３は、システムバス７０を介して入力されるアドレス・制御信号７１をメモリブロック２１−３のＡＣ端子に入力する。
【００５３】
上述したように、アドレス・制御信号７１には、アドレス信号と制御信号とが含まれる。制御信号の例としては、データ書き込みイネーブル信号ＷＥ、データ読み出しイネーブル信号ＲＥ、メモリブロックの入出力モードを制御する出力イネーブル信号ＯＥなどがある。なお、データ書き込みイネーブル信号ＷＥとデータ読み出しイネーブル信号ＲＥとを互いに反転論理の関係として１つの信号にまとめる方式など、メモリブロックの制御方式としては種々のものがあるが、本発明はメモリブロックの制御方式の差異に依存するものではない。
【００５４】
第１の動作モードにおいては、例えば、アドレス信号の上位２ビットによって、メモリブロック２１−１〜２１−３のいずれかのメモリブロック（以下、メモリブロック２１−ｋ（ｋ＝１，２，３）と称する）が選択され、残りのメモリブロックは読み書きされない非選択状態となる。また、アドレス信号の上位２ビット以外の下位ビットにより、メモリブロック２１−ｋ内の特定のアドレスが指定される。
【００５５】
マルチプレクサ４２−２は、システムバス７０を介して入力された書き込みデータ信号７２をメモリブロック２１−２のＤＩ端子に入力する。マルチプレクサ４２−３は、システムバス７０を介して入力された書き込みデータ信号７２をメモリブロック２１−３のＤＩ端子に入力する。
【００５６】
メモリブロック２１−ｋは、制御信号として書き込みイネーブル信号が入力され、また、ＤＩ端子に書き込みデータ信号７２が入力されると、アドレス信号の上位２ビット以外の下位ビットにより示されるアドレスに、書き込みデータ信号７２に示されるデータを保持する。
【００５７】
また、メモリブロック２１−ｋは、制御信号として読み出しイネーブル信号が入力されると、アドレス信号の上位２ビット以外の下位ビットにより示されるアドレスに保持しているデータをデータ信号５３−ｋとして出力選択器４５に入力する。
【００５８】
出力選択器４５は、入力されたデータ信号５３−ｋを読み出しデータ信号７３としてシステムバス７０に出力する。読み出しデータ信号７３は、システムバス７０を介してＣＰＵ１０に入力される。
【００５９】
このように、第１の動作モードにおいては、メモリ２０の備える複数のメモリブロックが連続したアドレス空間を有する１つのメモリとして、システムバス７０、ひいては、ＣＰＵ１０からアクセスされる。
【００６０】
次に、第２の動作モード時の動作について説明する。
【００６１】
第２の動作モードにおいては、ＣＰＵ１０は停止状態となる。一方、データ処理アクセレータ５０は、動作状態となり、データ処理に応じて、アドレス・制御信号５１−１，５１−２，５１−３をそれぞれ、マルチプレクサ４１−１，４１−２，４１−３に入力し、また、データ信号５２−２，５２−３をそれぞれ、マルチプレクサ４２−２，４２−３に入力する。
【００６２】
マルチプレクサ４１−１は、データ処理アクセレータ５０から入力されたアドレス・制御信号５１−１をメモリブロック２１−１のＡＣ端子に入力する。マルチプレクサ４１−２は、データ処理アクセレータ５０から入力されたアドレス・制御信号５１−２をメモリブロック２１−２のＡＣ端子に入力する。マルチプレクサ４１−３は、データ処理アクセレータ５０から入力されたアドレス・制御信号５１−３をメモリブロック２１−３のＡＣ端子に入力する。
【００６３】
アドレス・制御信号５１−１の入力に応じて、メモリブロック２１−１は読み出し専用となり、また、アドレス・制御信号５１−３の入力に応じて、メモリブロック２１−３は書き込み専用となる。
【００６４】
メモリブロック２１−１は、アドレス信号に示されるアドレスに保持しているデータをデータ信号５３−１としてＤＯ端子からデータ処理アクセレータ５０に出力する。データ処理アクセレータ５０は、データ信号５３−１を用いてデータ処理を行い、処理結果を示すデータ信号５２−３をマルチプレクサ４２−３に出力する。マルチプレクサ４２−３は、そのデータ信号５２−３をメモリブロック２１−３のＤＩ端子に入力する。メモリブロック２１−３は、マルチプレクサ４１−３から入力されたアドレス信号に示されるアドレスに、マルチプレクサ４２−３から入力されたデータ信号５２−３に示されるデータを保持する。
【００６５】
ここで、データ処理アクセレータ５０は、メモリブロック２１−１からのデータの読み出しとメモリブロック２１−３へのデータの書き込みとを独立して連続的に行うことで、高効率にストリーミング処理を行うことができる。
【００６６】
第２の動作モードにおいては、メモリブロック２１−２は、データ処理アクセレータ５０からのアドレス・制御信号５１−２によって、他のメモリブロックとは独立にアドレッシングされ、また、独立に制御される。つまり、メモリブロック２１−２は、データ処理アクセレータ５０により適宜、メモリブロック２１−２からのデータの読み出し、あるいは、メモリブロック２１−２へのデータの書き込みが行われ、データ処理アクセレータ５０の作業用ローカルメモリとして機能する。なお、データ処理アクセレータ５０の使用目的によっては、作業用ローカルメモリを設けなくてもよいし、また、独立な作業用ローカルメモリを複数設けてもよい。
【００６７】
第２の動作モードにおいては、出力選択器４５は、データ読み出し信号７３の出力を行わない。このとき、システムバス７０に仕様により、出力選択器４５の出力がハイインピーダンスである必要がある場合には、そのような仕様に準じる出力選択器を用いる。この場合、第２の動作モードにおいては、出力選択器４５の出力はハイインピーダンス状態になる。また、第１の動作モードにおいては、出力選択器４５は、入力されるデータ信号のうちいずれかを出力する。
【００６８】
データ処理アクセレータ５０は、第２の動作モードになるとデータ処理終了信号７５の論理値を第２の論理値とし、データ処理が終了すると、データ処理終了信号７５の論理値を第１の論理値に遷移させる。データ処理終了信号７５の論理値が第２の論理値から第１の論理値に遷移すると、モード信号７４の論理値が第２の論理値から第１の論理値に遷移する。なお、モード信号７４の論理値の第１の論理値から第２の論理値への遷移は、例えば、データ処理アクセレータ５０がデータ処理を行うのに必要なデータのＣＰＵ１０によるメモリブロック２１−１への書き込みが終了した際などに行われる。
【００６９】
このように、本実施形態のデータ処理システム１においては、ＣＰＵ１０とデータ処理アクセレータ５０とがメモリ２０を共有している。第１の動作モードにおいては、ＣＰＵ１０は、メモリ２０の備える複数のメモリブロックを連続したアドレス空間を有する１つのメモリとしてアクセスしてデータ処理を行い、データ処理アクセレータ５０は停止状態となる。一方、第２の動作モードにおいては、ＣＰＵ１０は停止状態となり、データ処理アクセレータ５０は、メモリ２０の備える複数のメモリブロックのそれぞれを独立したメモリブロックとして、各メモリブロックにアクセスし、データ処理を行う。
【００７０】
図５は、第１および第２の動作モードにおけるモード信号およびデータ処理終了信号の状態と、ＣＰＵ１０、データ処理アクセレータ５０およびメモリ２０の状態とを示す図である。
【００７１】
図５において、時刻ｔ１から時刻ｔ２までの間は、モード信号の論理値が第１の論理値（Ｌｏｗ）であるため、動作モードは第１の動作モードとなる。
【００７２】
上述したように、第１の動作モードにおいては、データ処理アクセレータ５０は停止状態となり、データ処理アクセレータ５０から出力されるデータ処理終了信号の値はドントケアとなる。また、ＣＰＵ１０は動作状態となり、メモリ２０が備える複数のメモリブロックを連続したアドレス空間を有する１つのメモリとしてアクセスする。
【００７３】
データ処理アクセレータ５０により行われるものとして規定された特定のデータ処理を要求する旨が入力されると、モード信号の論理値が第１の論理値から第２の論理値に遷移する。ここで、データ処理アクセレータ５０により行われるデータ処理に必要なデータのメモリブロックへの保持がＣＰＵ１０により行われた後に、モード信号の論理値が第１の論理値から第２の論理値に遷移する。
【００７４】
時刻ｔ２から時刻ｔ３までの間は、モード信号の論理値が第２の論理値（Ｈｉｇｈ）であるため、動作モードは第２の動作モードに遷移する。
【００７５】
上述したように、第２の動作モードにおいては、ＣＰＵ１０は停止状態となる。また、データ処理アクセレータ５０は、動作状態となり、データ処理終了信号の論理値を第１の論理値（Ｌｏｗ）から第２の論理値（Ｈｉｇｈ）に遷移させる。また、データ処理アクセレータ５０は、メモリ２０が備える複数のメモリブロックをそれぞれ独立したメモリブロックとしてアクセスする。
【００７６】
データ処理が終了すると、データ処理アクセレータ５０は、データ処理終了信号の論理値を第１の論理値から第２の論理値に遷移させる。データ処理終了信号の論理値が第１の論理値から第２の論理値に遷移すると、モード信号の論理値が第２の論理値から第１の論理値に遷移し、時刻ｔ３において第１の動作モードに遷移する。その後、図５においては記載を省略するが、時刻ｔ４において、再び、第２の動作モードとなり、第１の動作モードと第２の動作モードとが繰り返される。
【００７７】
このように本実施形態のデータ処理システム１は、ＣＰＵ１０とデータ処理アクセレータ５０とがメモリ２０を共有している。第１の動作モードにおいては、ＣＰＵ１０は、メモリ２０の備える複数のメモリブロックを連続したアドレス空間を有する１つのメモリとしてアクセスし、データ処理アクセレータ５０は、停止状態となる。第２の動作モードにおいては、ＣＰＵ１０は停止状態となり、データ処理アクセレータ５０は、メモリ２０の備える複数のメモリブロックのそれぞれを独立したメモリブロックとして、各メモリブロックにアクセスする。
【００７８】
そのため、汎用オフローダのための専用メモリが不要となるので、専用メモリ分の回路面積および消費電力の削減を図ることができる。また、ＣＰＵが使用するメモリと汎用オフローダの専用メモリとの間でのデータ転送が不要となるので、データ転送に伴う処理時間や消費電力の増大を抑制することができる。また、ＤＭＡ回路を備えたコントローラなどを設ける必要がなくなるので、回路面積の削減を図ることができる。
【００７９】
また、本実施形態のデータ処理システム１においては、データ処理アクセレータ５０は、第２の動作モードにおいては、複数のメモリブロックのうち、１つのメモリブロックを読み出し専用とし、別の１つのメモリブロックを書き込み専用とする。
【００８０】
そのため、データの読み出しと読み出したデータを用いたデータ処理による処理結果の出力とを独立かつ連続的に行うストリーミング処理を高効率に実現することができる。通常、ストリーミング処理を行うためには高コストなＦＩＦＯ回路や２ポートメモリが用いられていた。しかし、本実施形態においては、入力専用のメモリブロックと出力専用のメモリブロックとを分けることで、メモリブロックを１ポートメモリとすることができる。そのため、安価なメモリブロックを用いることができ、低コスト化を図ることができる。さらに、汎用オフローダ（データ処理アクセレータ）がメモリにアクセスする際に、すべてのメモリブロックを読み書き可能なメモリブロックとする場合と比べて、回路構成を簡素化し、低コスト化を図ることができる。
【００８１】
（第２の実施形態）
本発明の第２の実施形態のデータ処理システムは、第１の実施形態のデータ処理システム１と比較して、結合器４０およびメモリブロックの構成が異なる。そのため、以下では、これらの構成を中心に説明する。
【００８２】
図６は、本実施形態のメモリ２０および結合器４０の構成を示すブロック図である。図６において、図４と同様の構成については同じ符号を付し、説明を省略する。
【００８３】
メモリ２０は、少なくとも２つのメモリブロック２１−１０，２１−３０を備える。なお、図６においては、メモリ２０は２つのメモリブロックを備える例を用いて説明するが、これに限られるものではなく、第１の実施形態と同様に、３以上のメモリブロックを備えてもよい。メモリ２０が３以上のメモリブロックを備える場合であっても、メモリブロック２１−１０，２１−３０以外のメモリブロックは第１の実施形態と同様にして組み込まれるものである。そのため、図６においては、メモリブロック２１−１０，２１−３０以外のメモリブロックについては記載を省略する。
【００８４】
結合器４０は、マルチプレクサ４１−１，４１−３，４２−０，４３と、出力選択器４５−２と、ＯＲ回路４９と、バッファ２２０，２３０と、を有する。
【００８５】
図６においては不図示のシステムバス７０を介して、アドレス・制御信号７１が、マルチプレクサ４１−１，４１−３と、出力選択器４５−２と、ＯＲ回路４９と、に入力される。また、書き込みデータ信号７２が、マルチプレクサ４２−０に入力される。また、モード信号７４が、マルチプレクサ４１−１，４１−３，４２−０と、出力選択器４５−２と、ＯＲ回路４９と、データ処理アクセレータ５０と、に入力される。
【００８６】
データ処理アクセレータ５０は、アドレス・制御信号５１−１，５１−３をそれぞれ、マルチプレクサ４１−１，４１−３に入力する。また、データ処理アクセレータ５０は、データ信号５２−３をマルチプレクサ４２−０に入力する。
【００８７】
マルチプレクサ４１−１は、動作モードに応じて、システムバス７０を介して入力されるアドレス・制御信号７１とデータ処理アクセレータ５０から入力されるアドレス・制御信号５１−１とのいずれか一方をメモリブロック２１−１０のＡＣ端子に入力する。
【００８８】
マルチプレクサ４１−３は、動作モードに応じて、システムバス７０を介して入力されるアドレス・制御信号７１とデータ処理アクセレータ５０から入力されるアドレス・制御信号５１−３とのいずれか一方をメモリブロック２１−３０のＡＣ端子に入力する。
【００８９】
マルチプレクサ４２−０は、動作モードに応じて、システムバス７０を介して入力される書き込みデータ信号７２とデータ処理アクセレータ５０から入力されるデータ信号５２−３のいずれか一方をバッファ２３０に出力する。
【００９０】
マルチプレクサ４３は、ＯＲ回路４９から入力される信号の論理値に応じて、メモリブロック２１−１０のＤＯ端子からの出力とメモリブロック２１−３０のＤＯ端子からの出力とのいずれか一方をバッファ２２０に出力する。
【００９１】
ＯＲ回路４９は、システムバス７０を介して入力されるアドレス・制御信号７１とモード信号７４との論理和を演算し、演算結果をマルチプレクサ４３に出力する。
【００９２】
バッファ２３０は、マルチプレクサ４２−０の出力をバッファリングし、データ信号５２としてメモリブロック２１−１０およびメモリブロック２１−３０のＤＩ端子に入力する。
【００９３】
バッファ２２０は、マルチプレクサ４３の出力をバッファリングし、データ信号５３−１として出力選択器４５−２およびデータ処理アクセレータ５０に入力する。
【００９４】
出力選択器４５−２は、バッファ２２０から出力されたデータ信号５３−１と図６においては不図示の他のメモリブロックのＤＯ端子から入力されたデータ信号５３−２のいずれかを読み出しデータ信号７３としてシステムバス７０に出力する。
【００９５】
ここで、一般的なメモリブロックの構成について説明する。
【００９６】
図７は、一般的なメモリブロック２１の構成を示すブロック図である。
【００９７】
図７に示すメモリブロック２１は、メモリセルアレイを内蔵する。また、メモリブロック２１は、メモリセルアレイからのデータの読み出しに用いられる読み出し用回路２２と、メモリセルアレイへのデータの書き込みに用いられる書き込み用回路２３と、を有する。なお、データの読み出しを行うか書き込みを行うかは、アドレス・制御信号に含まれる制御信号によって決まる。
【００９８】
図８は、図７に示す読み出し用回路２２の構成を示すブロック図である。
【００９９】
図８に示す読み出し用回路２２は、スイッチ２２１と、センスアンプ２２２と、出力バッファ２２３と、を有する。
【０１００】
スイッチ２２１は、データ読み出しイネーブル信号ＲＥが入力され、データ読み出しイネーブル信号ＲＥの論理値に応じて、導通状態または遮断状態となる。データ読み出しイネーブル信号ＲＥは読み出しモードにおいて第１の論理値となり、スイッチ２２１は、データ読み出しイネーブル信号ＲＥの論理値が第１の論理値である場合に導通状態となる。
【０１０１】
センスアンプ２２２は、スイッチ２２１を介して入力されたメモリセルからの信号を増幅し、出力バッファ２２３に出力する。
【０１０２】
出力バッファ２２３は、センスアンプ２２２から入力された信号をバッファリングし、ＤＯ端子に出力する。
【０１０３】
図９は、図７に示す書き込み用回路２３の構成を示すブロック図である。
【０１０４】
図９に示す書き込み用回路２３は、入力バッファ２３１と、書き込みバッファ２３２と、スイッチ２３３と、を有する。
【０１０５】
入力バッファ２３１は、ＤＩ端子に入力されたデータ入力信号をバッファリングし、書き込みバッファ２３２に出力する。
【０１０６】
書き込みバッファ２３２は、入力バッファ２３１から入力されたデータをバッファリングし、スイッチ２３３に出力する。
【０１０７】
スイッチ２３３は、データ書き込みイネーブル信号ＷＥが入力され、データ書き込みイネーブル信号ＷＥの論理値に応じて、導通状態または遮断状態となる。データ書き込みイネーブル信号ＷＥは書き込みモードにおいて第１の論理値となり、スイッチ２３３は、データ書き込みイネーブル信号ＷＥの論理値が第１の論理値である場合に導通状態となる。スイッチ２３３が導通状態となると、書き込みバッファ２３２から出力された信号がメモリセルアレイに書き込まれる。
【０１０８】
なお、スイッチ２２１およびスイッチ２３３は、一般に、パストランジスタやトランスミッションゲートで構成されるスイッチである。スイッチ２２１およびスイッチ２３３は、データ読み出しイネーブル信号ＲＥやデータ書き込みイネーブル信号ＷＥの論理値が第２の論理値である場合には遮断状態となる。典型的には、データ読み出しイネーブル信号ＲＥとデータ書き込みイネーブル信号ＷＥとは論理反転の関係にある。
【０１０９】
本実施形態においては、メモリブロック２１−１０，２１−３０は、図８に示すセンスアンプ２２２および出力バッファ２２３と、図９に示す入力バッファ２３１および書き込みバッファ２３２と、を有さない。その代わりに、図６に示すバッファ２３０が、メモリブロック２１−１０およびメモリブロック２１−３０の書き込みバッファおよび入力バッファとして機能し、バッファ２２０が、メモリブロック２１−１０およびメモリブロック２１−３０のセンスアンプおよび出力バッファとして機能する。
【０１１０】
本実施形態のデータ処理システムの動作について図６を参照して説明する。
【０１１１】
なお、以下では、モード信号７４の第１の論理値を０とし、第２の論理値を１とする。
【０１１２】
まず、モード信号７４の論理値が０、すなわち、第１の動作モードの場合の動作について説明する。
【０１１３】
第１の動作モードにおいては、システムバス７０から入力されたアドレス・制御信号７１が、マルチプレクサ４１−１を介してメモリブロック２１−１０のＡＣ端子に入力され、マルチプレクサ４１−３を介してメモリブロック２１−３０のＡＣ端子に入力される。さらに、システムバス７０から入力された書き込みデータ信号７２が、マルチプレクサ４２−０を介してバッファ２３０に入力される。バッファ２３０は、マルチプレクサ４２−０からの入力に応じて、データ信号５２をメモリブロック２１−１０およびメモリブロック２１−３０のＤＩ端子に入力する。アドレス・制御信号７１の入力によって書き込みモードになっているメモリブロックがあれば、そのメモリブロックにデータ信号５２が保持される。
【０１１４】
上述したように、第１の動作モードにおいては、メモリ２０の備える複数のメモリブロックを連続したアドレス空間を有する１つのメモリとしてアクセスが行われる。そのため、ある時点において書き込みモードとなるメモリブロックは１つだけである。本実施形態においては、バッファ２３０は、メモリブロック２１−１０およびメモリブロック２１−３０の書き込み用回路として共有されるが、ある時点において書き込みモードとなるのは１つのメモリブロックだけであるため、メモリブロック２１−１０およびメモリブロック２１−３０がバッファ２３０を書き込み用回路として共有することができる。
【０１１５】
ＯＲ回路４９は、アドレス・制御信号７１とモード信号７４との論理和を演算し、演算結果をマルチプレクサ４３に出力する。ここで、アドレス・制御信号７１には、メモリブロック２１−１０とメモリブロック２１−３０とを区別する１ビットの信号が含まれている。モード信号の論理値は０であるため、ＯＲ回路４９は、アドレス・制御信号７１に含まれるメモリブロック２１−１０とメモリブロック２１−３０とを区別する１ビットの信号と同じ論理値の信号をマルチプレクサ４３に出力する。
【０１１６】
マルチプレクサ４３は、ＯＲ回路４９から入力される信号の論理値に応じて、メモリブロック２１−１０およびメモリブロック２１−３０のうち、いずれかのメモリブロックのＤＯ端子から出力された信号をバッファ２２０に出力する。ここで、マルチプレクサ４３は、例えば、パストランジスタやトランスミッションゲートなどで構成されたパッシブなマルチプレクサであり、バッファリング機能を有しない。
【０１１７】
バッファ２２０は、メモリブロック２１−１０あるいはメモリブロック２１−３０のメモリセルアレイからＤＯ端子およびマルチプレクサ４３を介して入力された微弱な信号を増幅し、データ信号５３−１として出力選択器４５−２に出力する。
【０１１８】
出力選択器４５−２は、メモリブロック２１−１０，２１−３０以外の他のメモリブロックからのデータ５３−２の入力がある場合には、アドレス・制御信号７１の論理値に応じて、データ信号５３−１とデータ信号５３−２のうちいずれか一方を読み出し信号７３として出力する。
【０１１９】
上述したように、第１の動作モードにおいては、メモリ２０の備える複数のメモリブロックを連続したアドレス空間を有する１つのメモリとしてアクセスが行われる。そのため、ある時点において読み出しモードとなるメモリブロックは１つだけである。本実施形態においては、バッファ２２０は、メモリブロック２１−１０およびメモリブロック２１−３０の読み出し用回路として共有されるが、ある時点において読み出しモードとなるのは１つのメモリブロックだけであるため、メモリブロック２１−１０およびメモリブロック２１−３０がバッファ２２０を読み出し用回路として共有することができる。
【０１２０】
次に、モード信号７４の論理値が１、すなわち、第２の動作モードの場合の動作について説明する。
【０１２１】
第２の動作モードにおいては、マルチプレクサ４１−１は、データ処理アクセレータ５０から出力されたアドレス・制御信号５１−１をメモリブロック２１−１０のＡＣ端子に入力する。アドレス・制御信号５１−１の入力に応じて、メモリブロック２１−１０は、読み出し専用となる。また、マルチプレクサ４１−３は、データ処理アクセレータ５０から出力されたアドレス・制御信号５１−３をメモリブロック２１−３０のＡＣ端子に入力する。アドレス・制御信号５１−３の入力に応じて、メモリブロック２１−３０は、書き込み専用となる。
【０１２２】
メモリブロック２１−１０のＤＯ端子からの出力はマルチプレクサ４３に入力され、マルチプレクサ４３はメモリブロック２１−１０のＤＯ端子から出力された信号をバッファ２２０に出力する。
【０１２３】
バッファ２２０は、マルチプレクサ４３から入力された信号を増幅し、データ信号５３−１としてデータ処理アクセレータ５０に出力する。
【０１２４】
また、マルチプレクサ４２−０は、データ処理アクセレータ５０から出力されたデータ信号５２−３をバッファ２３０に出力する。バッファ２３０は、マルチプレクサ４２−０から入力された信号をバッファリングし、データ信号５２としてメモリバッファ２１−１０およびメモリバッファ２１−３０に出力する。ここで、第２の動作モードにおいては、メモリブロック２１−３０が書き込み専用のメモリブロックであり、書き込みモードとなるため、バッファ２３０から出力されたデータ信号５２はメモリブロック２１−３０に保持される。
【０１２５】
上述したように、メモリブロック２１−１０とメモリブロック２１−３０とは、バッファ２３０を書き込み用回路として共有し、バッファ２２０を読み出し用回路として共有している。第２の動作モードにおいては、メモリブロック２１−１０は読み出し専用となり、メモリブロック２１−３０は書き込み専用となるため、メモリブロック２１−１０およびメモリブロック２１−３０がバッファ２２０を読み出し用回路として共有することができる。
【０１２６】
このように本実施形態のデータ処理システムによれば、メモリブロック２１−１０とメモリブロック２１−３０とは、それぞれが内蔵するメモリセルアレイに書き込みを行うための書き込み用回路、および、メモリセルアレイから読み出しを行うための読み出し用回路と、を共有する。
【０１２７】
そのため、複数のメモリブロックのそれぞれに書き込み用回路および読み出し用回路を設ける場合と比較して、回路面積を削減することができる。特に、ＭＣＵのような小規模なチップ内のメモリの場合、メモリ容量は小さいため、書き込み回路や読み出し回路が示す面積比率が相対的に大きくなるため、複数のメモリブロックで書き込み用回路および読み出し用回路を共有することで、回路面積の削減の効果が大きくなる。
【０１２８】
なお、上述した第１および第２の実施形態のデータ処理システムにおいて、ＣＰＵ１０、汎用オフローダ（データ処理アクセレータ５０）、周辺ブロック９０、システムバス７０などの各構成は、１つの半導体集積回路に修正されていることは必須ではない。しかし、メモリ２０やデータ処理アクセラレータ５０などを含む汎用オフローダが１つの半導体集積回路に集積されている場合、加えて、ＣＰＵ１０やシステムバス７０なども同じ半導体集積回路に集積されている場合に、本発明は、より大きな効果を奏することができる。
【０１２９】
以上、実施形態を参照して本願発明を説明したが、本発明は上記実施形態に限定されるものではない。本願発明の構成や詳細には、本願発明の範囲内で当業者が理解し得る様々な変更をすることができる。
【０１３０】
この出願は、２０１２年３月１３日に出願された日本出願２０１２−５５９０３を基礎とする優先権を主張し、その開示の全てをここに取り込む。
【図１】
2013136857.tif 000003
【図２】
2013136857.tif 000004
【図３】
2013136857.tif 000005
【図４】
2013136857.tif 000006
【図５】
2013136857.tif 000007
【図６】
2013136857.tif 000008
【図７】
2013136857.tif 000009
【図８】
2013136857.tif 000010
【図９】
2013136857.tif 000011
【手続補正書】
【提出日】平成26年9月1日(2014.9.1)
【手続補正１】
【補正対象書類名】特許請求の範囲
【補正対象項目名】請求項１
【補正方法】変更
【補正の内容】
【請求項１】
データ処理を行う第１のデータ処理部と、
前記第１のデータ処理部による処理対象であるデータ処理のうち、特定のデータ処理を前記第１のデータ処理部に代わって行う第２のデータ処理部と、
少なくとも第１および第２のメモリブロックを備えるメモリと、を有し、
前記第１のデータ処理部は、第１の動作モードにおいては、前記メモリが備えるすべてのメモリブロックを連続したアドレス空間を有する１つのメモリとしてアクセスして前記データ処理に伴うデータの読み書きを行い、第２の動作モードにおいては、停止状態となり、
前記第２のデータ処理部は、前記第１の動作モードにおいては、停止状態となり、前記第２の動作モードにおいては、前記第１のメモリブロックを読み出し専用のメモリとするとともに、前記第２のメモリブロックを書き込み専用のメモリとし、前記第１のメモリブロックからデータを読み出して前記特定のデータ処理を行い、該特定のデータ処理の結果を前記第２のメモリブロックに書き込み、前記読み出しと前記書き込みを同時に行うことを特徴とするデータ処理システム。
【手続補正２】
【補正対象書類名】特許請求の範囲
【補正対象項目名】請求項９
【補正方法】変更
【補正の内容】
【請求項９】
データ処理を行う第１の処理部と、前記第１のデータ処理部による処理対象であるデータ処理のうち、特定のデータ処理を前記第１のデータ処理部に代わって行う第２の処理部と、少なくとも第１および第２のメモリブロックを備えるメモリと、を有し、
前記第１の処理部は、第１の動作モードにおいては、前記メモリが備えるすべてのメモリブロックを連続したアドレス空間を有する１つのメモリとして前記データ処理に伴うデータの読み書きを行い、第２の動作モードにおいては、停止状態となり、
前記第２の処理部は、前記第１の動作モードにおいては、停止状態となり、前記第２の動作モードにおいては、前記第１のメモリブロックを読み出し専用のメモリとするとともに、前記第２のメモリブロックを書き込み専用のメモリとし、前記第１のメモリブロックからデータを読み出して前記特定のデータ処理を行い、該特定のデータ処理の結果を前記第２のメモリブロックに書き込み、前記読み出しと前記書き込みを同時に行うことを特徴とする半導体集積回路。
【手続補正３】
【補正対象書類名】特許請求の範囲
【補正対象項目名】請求項１０
【補正方法】変更
【補正の内容】
【請求項１０】
データ処理を行う第１の処理部と、前記第１のデータ処理部による処理対象であるデータ処理のうち、特定のデータ処理を前記第１のデータ処理部に代わって行う第２の処理部と、少なくとも第１および第２のメモリブロックを備えるメモリと、を有する半導体集積回路の制御方法であって、
第１の動作モードにおいては、
前記第１の処理部は、前記メモリが備えるすべてのメモリブロックを連続したアドレス空間を有する１つのメモリとして前記データ処理に伴うデータの読み書きを行い、
前記第２の処理部は、停止状態となり、
第２の動作モードにおいては、
前記第１の処理部は、停止状態となり、
前記第２の処理部は、前記第１のメモリブロックを読み出し専用のメモリとするとともに、前記第２のメモリブロックを書き込み専用のメモリとし、前記第１のメモリブロックからデータを読み出して前記特定のデータ処理を行い、該特定のデータ処理の結果を前記第２のメモリブロックに書き込み、前記読み出しと前記書き込みを同時に行うことを特徴とする半導体集積回路の制御方法。
【国際調査報告】
2013136857.tif 000012
2013136857.tif 000013
2013136857.tif 000014
2013136857.tif 000015