(57)【要約】      （修正有）【課題】データ演算が遂行できる多様なメモリ装置を含む半導体システム及びその動作方法を提供する。【解決手段】半導体システムは、プロセッサ１１０、ストレージ１５０、第１のメモリ装置１３０及び第２のメモリ装置１４０を備える。ストレージは、プロセッサと通信してデータを格納する。第１のメモリ装置は、プロセッサの要請によって、ストレージから第１のワークロード及び第２のワークロードを受信して格納し、第１のワークロードに対して第１の演算動作を遂行する。第２のメモリ装置は、プロセッサの要請によって、第１のメモリ装置から第２のワークロードを受信し、第２のワークロードに対して第２の演算動作を遂行する。【選択図】図１
2019200793.tif 000002
【特許請求の範囲】
【請求項１】
プロセッサと、
該プロセッサと通信してデータを格納するストレージと、
前記プロセッサの要請によって、前記ストレージから第１のワークロード及び第２のワークロードを受信して格納し、前記第１のワークロードに対して第１の演算動作を遂行する第１のメモリ装置と、
前記プロセッサの要請によって、前記第１のメモリ装置から前記第２のワークロードを受信し、該第２のワークロードに対して第２の演算動作を遂行する第２のメモリ装置とを備える半導体システム。
【請求項２】
前記第１のメモリ装置の動作速度が前記ストレージの動作速度よりも速く、前記第２のメモリ装置のデータ動作速度が前記第１のメモリ装置の動作速度よりも速い請求項１に記載の半導体システム。
【請求項３】
前記ストレージが、前記第１のメモリ装置よりも大きいデータ格納容量を有し、
前記第１のメモリ装置が、前記第２のメモリ装置よりも大きいデータ格納容量を有する請求項１に記載の半導体システム。
【請求項４】
前記第２のメモリ装置が、前記第１のメモリ装置よりも広い帯域幅を有する請求項１に記載の半導体システム。
【請求項５】
前記第２のメモリ装置が遂行する前記第２の演算動作は、前記第１のメモリ装置が遂行する前記第１の演算動作よりも複雑なアルゴリズムを含む請求項１に記載の半導体システム。
【請求項６】
前記第１のメモリ装置は、前記第１のワークロードに対応するデータ及び前記第２のワークロードに対応するデータを格納する第１のデータ格納領域と、前記第１のワークロードに対応する前記データに対して前記第１の演算動作を遂行する第１の演算回路とを有する請求項１に記載の半導体システム。
【請求項７】
前記第２のメモリ装置は、前記第２のワークロードに対応するデータを格納する第２のデータ格納領域と、前記第２のワークロードに対応する前記データに対して前記第２の演算動作を遂行する第２の演算回路とを有する請求項６に記載の半導体システム。
【請求項８】
前記第１のデータ格納領域が、複数のサブ領域を有し、
前記第１のワークロードに対応する前記データが格納される前記サブ領域と、前記第２のワークロードに対応するデータが格納される前記サブ領域とが、互いに異なるように割り当てられる請求項６に記載の半導体システム。
【請求項９】
前記第１のデータ格納領域が、複数のサブ領域を有し、
前記第１のワークロードに対応する前記データが、最も高い順番の前記サブ領域から順次低い順番の前記サブ領域に格納され、前記第２のワークロードに対応するデータが、最も低い順番の前記サブ領域から順次高い順番の前記サブ領域に格納される請求項６に記載の半導体システム。
【請求項１０】
前記第１のメモリ装置が、前記第１の演算動作を遂行することよりも、前記第２のワークロードを前記第２のメモリ装置に出力することを優先的に遂行する請求項１に記載の半導体システム。
【請求項１１】
第１のワークロード及び第２のワークロードに対して演算動作を遂行するために、第１のメモリ装置がストレージから前記第１のワークロード及び前記第２のワークロードを受信して格納するステップと、
第２のメモリ装置が前記第１のメモリ装置から前記第２のワークロードに対応するデータを受信し、受信した前記データに対して第２の演算動作を遂行するステップと、
前記第１のメモリ装置が前記第１のワークロードに対して第１の演算動作を遂行するステップとを含む半導体システムの動作方法。
【請求項１２】
前記第２の演算動作は、前記第１の演算動作よりも複雑なアルゴリズムで遂行される請求項１１に記載の半導体システムの動作方法。
【請求項１３】
前記第１のメモリ装置は前記ストレージよりも速い動作速度を有し、前記第２のメモリ装置は前記第１のメモリ装置よりも速い動作速度を有する請求項１１に記載の半導体システムの動作方法。
【請求項１４】
前記第２のメモリ装置は、前記第１のメモリ装置よりも広い帯域幅を有する請求項１２に記載の半導体システムの動作方法。
【請求項１５】
前記ストレージは、前記第１のメモリ装置よりも大きいデータ格納容量を有し、前記第２のメモリ装置は前記第１のメモリ装置よりも大きいデータ格納容量を有する請求項１２に記載の半導体システムの動作方法。
【請求項１６】
前記第１の演算動作を遂行するステップは、前記第２のメモリ装置が前記第２のワークロードに対応する前記データを受信した後、前記第２の演算動作と同時に遂行される請求項１１に記載の半導体システムの動作方法。
【請求項１７】
前記第１のメモリ装置及び前記第２のメモリ装置が前記第１の演算動作及び前記第２の演算動作の結果をプロセッサに各々転送するステップと、
前記プロセッサが前記第１の演算動作及び前記第２の演算動作の結果に対して演算動作を遂行するステップを含む請求項１１に記載の半導体システムの動作方法。
【請求項１８】
第２のワークロードに対して第２の演算動作を遂行する積層揮発性メモリ装置と、
第１のワークロード及び前記第２のワークロードをローディングし、前記第２のワークロードを前記積層揮発性メモリ装置に提供し、前記第１のワークロードに対して第１の演算動作を遂行するストレージクラスメモリと、
前記積層揮発性メモリ装置及び前記ストレージクラスメモリに前記第１の演算動作及び前記第２の演算動作のための第１のコマンド及び第２のコマンドを提供し、外部要請に応じて前記第１の演算動作及び前記第２の演算動作の結果に対して演算動作を遂行するプロセッサとを備え、
前記ストレージクラスメモリは、前記第１の演算動作を遂行することよりも、前記第２のワークロードを前記積層揮発性メモリ装置に優先的に提供する半導体システム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、集積回路技術に関し、さらに詳細には、多様なメモリ装置を備える半導体システムに関する。
【背景技術】
【０００２】
電子装置は、多くの電子構成要素を備え、なかでも、コンピュータシステムは半導体からなる多くの半導体システムを備えている。一般的に、半導体システムは、ホスト機能を遂行するプロセッサ、キャッシュ（ｃａｃｈｅ）機能を遂行するメモリ装置、並びに大容量データの格納及び出力を遂行するストレージからなる。しかしながら、半導体技術の発展に伴い、プロセッサ及び残りの構成要素間の動作性能の差が益々大きくなっている。いずれか一つの構成要素の低性能は全体システムの性能を制約する。
【０００３】
近年、構成要素等の性能制約を改善するために、多様なメモリ装置及びストレージが開発されている。そのうちの一つとしては、大容量データを高速で格納及び出力ができるナンドストレージ、即ち、ソリッドステートドライブ（Ｓｏｌｉｄ  Ｓｔａｔｅ  Ｄｒｉｖｅ）である。もう一つとしては、大容量データを格納しながら、ランダムアクセスメモリ（Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ、ＲＡＭ）に次ぐデータの格納及び出力速度を有する不揮発性メモリ装置を備えるストレージクラスメモリ（Ｓｔｏｒａｇｅ  Ｃｌａｓｓ  Ｍｅｍｏｒｙ、ＳＣＭ）である。ストレージクラスメモリ及びソリッドステートドライブは、半導体システムの性能改善に寄与している。
【発明の概要】
【発明が解決しようとする課題】
【０００４】
本発明は、データ演算が遂行できる多様なメモリ装置を備える半導体システム及びその動作方法を提供する。
【課題を解決するための手段】
【０００５】
本発明の一態様は、プロセッサと、該プロセッサと通信してデータを格納するストレージと、前記プロセッサの要請によって、前記ストレージから第１のワークロード及び第２のワークロードを受信して格納し、前記第１のワークロードに対して第１の演算動作を遂行する第１のメモリ装置と、前記プロセッサの要請によって、前記第１のメモリ装置から第２のワークロードを受信し、該第２のワークロードに対して第２の演算動作を遂行する第２のメモリ装置を備える半導体システムを提供する。
【０００６】
本発明の他の態様は、第１のワークロード及び第２のワークロードに対して演算動作を遂行するために、第１のメモリ装置がストレージから前記第１のワークロード及び前記第２のワークロードを受信して格納するステップと、第２のメモリ装置が前記第１のメモリ装置から前記第２のワークロードに対応するデータを受信し、受信した前記データに対して第２の演算動作を遂行するステップと、前記第１のメモリ装置が前記第１のワークロードに対して第１の演算動作を遂行するステップとを含む半導体システムの動作方法を提供する。
【０００７】
本発明の他の態様は、第２のワークロードに対して第２の演算動作を遂行する積層揮発性メモリ装置と、第１のワークロード及び前記第２のワークロードをローディングし、前記第２のワークロードを前記積層揮発性メモリ装置に提供し、前記第１のワークロードに対して第１の演算動作を遂行するストレージクラスメモリと、前記積層揮発性メモリ装置及び前記ストレージクラスメモリに前記第１の演算動作及び前記第２の演算動作のための第１のコマンド及び第２のコマンドを提供し、外部要請に応じて前記第１の演算動作及び前記第２の演算動作の結果に対して演算動作を遂行するプロセッサを備え、前記ストレージクラスメモリは、前記第１の演算動作を遂行することよりも、前記第２のワークロードを前記積層揮発性メモリ装置に優先的に提供する半導体システムを提供する。
【発明の効果】
【０００８】
本発明は、半導体システムの動作効率を増加させることで、動作性能の改善を図ることができる。
【図面の簡単な説明】
【０００９】
【図１】本発明の一実施形態に係る半導体システムの構成を示す図である。
【図２】本発明の一実施形態に係る半導体システムの動作方法を示すフローチャートである。
【図３】図１の第１のデータ格納領域の構成を示す図である。
【発明を実施するための形態】
【００１０】
図１は、本発明の一実施形態に係る半導体システム１の構成を示す図である。半導体システム１は、階層的メモリ構造を有している。半導体システム１は、多様な種類のメモリ装置を備え、多様なメモリ装置が階層的メモリ構造を形成してシステムの動作効率を最適化させる。多様な種類のメモリ装置は、データの格納及び出力速度、データ格納容量並びに帯域幅が互いに異なっている。
【００１１】
図１に示されるように、半導体システム１は、プロセッサ１１０、メインメモリ１２０、第１のメモリ装置１３０、第２のメモリ装置１４０及びストレージ１５０を備えている。
プロセッサ１１０は、半導体システム１のホストとして動作し、メインメモリ１２０、第１のメモリ装置１３０、第２のメモリ装置１４０及びストレージ１５０が動作するために必要な多様な制御信号を提供する。
プロセッサ１から提供される多様な制御信号は、要請（ｒｅｑｕｅｓｔ）の形態により、メインメモリ１２０、第１のメモリ装置１３０、第２のメモリ装置１４０及びストレージ１５０に提供される。例えば、プロセッサ１１０は、中央処理処置（ＣＰＵ）、グラフィック処理装置（Ｇｒａｐｈｉｃ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ、ＧＰＵ）、マルチメディアプロセッサ（Ｍｕｌｔｉ−Ｍｅｄｉａ  Ｐｒｏｃｅｓｓｏｒ、ＭＭＰ）、デジタル信号プロセッサ（Ｄｉｇｉｔａｌ  Ｓｉｇｎａｌ  Ｐｒｏｃｅｓｓｏｒ）及びアプリケーションプロセッサ（ＡＰ）等を含む。
【００１２】
メインメモリ１２０、第１のメモリ装置１３０及び第２のメモリ装置１４０は、ワーキングメモリ（ｗｏｒｋｉｎｇ  ｍｅｍｏｒｙ）であり、バッファーメモリ（ｂｕｆｆｅｒ  ｍｅｍｏｒｙ）として機能できる。
メインメモリ１２０は、プロセッサ１１０のキャッシュとして機能できる。一般的に、メインメモリ１２０は、データの格納及び出力速度が高速且つ一定であるＳＲＡＭ（Ｓｔａｔｉｃ  ＲＡＭ）、ＤＲＡＭ（Ｄｙｎａｍｉｃ  ＲＡＭ）及びＳＤＲＡＭ（Ｓｙｎｃｈｒｏｎｏｕｓ  ＤＲＡＭ）等のランダムアクセスメモリを含む。
メインメモリ１２０は、ＤＩＭＭ（Ｄｕａｌ  Ｉｎ−ｌｉｎｅ  Ｍｅｍｏｒｙ  Ｍｏｄｕｌｅ）のようなモジュール形態で具現できる。
【００１３】
第１のメモリ装置１３０及び第２のメモリ装置１４０は、プロセッサ１１０と共に演算動作を遂行する。プロセッサ１１０が一つの単一演算動作によりマップリデュース（ＭａｐＲｅｄｕｃｅ）プログラムを遂行する際、プロセッサ１１０、第１のメモリ装置１３０及び第２のメモリ装置１４０は、単一演算動作の一部を各々遂行する。マップリデュースプログラムは、マップ関数（ｍａｐ  ｆｕｎｃｔｉｏｎ）及びリデュース関数（ｒｅｄｕｃｅ  ｆｕｎｃｔｉｏｎ）を含む。例えば、第１のメモリ装置１３０及び第２のメモリ装置１４０がマップ関数に対応する演算動作を遂行し、プロセッサ１１０が第１のメモリ装置１３０及び第２のメモリ装置１４０の演算動作結果に対してリデュース関数に対応する演算動作を遂行する。マップ関数及びリデュース関数は、ユーザー定義関数（ｕｓｅｒ  ｄｅｆｉｎｅｄ  ｆｕｎｃｔｉｏｎｓ）である。例えば、マップ演算は、データを他の値にフィルターリング又は変化させるための演算動作である。リデュース演算は、マップ演算の結果をグルーピング又は集計（ａｇｇｒｅｇａｔｉｎｇ）する演算動作である。
【００１４】
使用者によって特定の演算動作を必要とするプログラムが実行されると、特定の演算動作はマップ関数による演算動作及びリデュース関数による演算動作を通して遂行される。即ち、特定の演算動作は、複数のマップ演算及びリデュース演算を通して遂行するようにプログラミングされる。一つの単一演算動作が複数のマップ演算及びリデュース演算を通して遂行される場合、大容量データに対する分散並列処理が可能であるため、演算の複雑性及び演算時間を大きく減少させることができる。
プロセッサ１１０は、特定の演算動作を遂行するためにワークロード（ｗｏｒｋ  ｌｏａｄ）を第１のメモリ装置１３０及び第２のメモリ装置１４０に割り当て、第１のメモリ装置１３０及び第２のメモリ装置１４０は、割り当てられたワークロードに対して各々マップ演算を遂行できる。第１のメモリ装置１３０及び第２のメモリ装置１４０が遂行するマップ演算は、同種或いは異種である。プロセッサ１１０は、第１のメモリ装置１３０及び第２のメモリ装置１４０でマップ演算の結果に対してリデュース演算を遂行できる。
【００１５】
プロセッサ１１０は、第１のメモリ装置１３０及び第２のメモリ装置１４０により特定の演算動作が遂行されるように、第１のメモリ装置１３０及び第２のメモリ装置１４０にワークロードを割り当てることができる。ワークロードは、メモリ装置１３０，１４０に割り当てられ、メモリ装置１３０，１４０により演算されるターゲットデータグループを意味する。プロセッサ１１０は、第１のメモリ装置１３０に一方のワークロードを割り当て、第２のメモリ装置１４０に他方のワークロードを割り当てる。第１のメモリ装置１３０及び第２のメモリ装置１４０は、各々割り当てられたワークロードに対してマップ演算を遂行する。
【００１６】
ストレージ１５０は、大容量データ格納装置である。ストレージ１５０は、複数のＮＡＮＤフラッシュメモリを有するソリッドステートドライブである。
【００１７】
本発明の一実施形態において、第１のメモリ装置１３０は、第２のメモリ装置１４０よりも大きいデータ格納容量を有し、ストレージ１５０は、第１のメモリ装置１３０よりも大きいデータ格納容量を有する。第１のメモリ装置１３０は、ストレージ１５０よりもデータのライト及びリードのための動作速度が速く、第２のメモリ装置１４０は、第１のメモリ装置１３０よりもデータのライト及びリードのための動作速度が速い。第２のメモリ装置１４０の帯域幅は、第１のメモリ装置１３０の帯域幅よりも広い。ここで、帯域幅が広いとは、単位時間に入出力されるデータの量が多いことを意味する。
【００１８】
第１のメモリ装置１３０は、ストレージクラスメモリである。第１のメモリ装置１３０は、複数の不揮発性ランダムアクセスメモリを含む。例えば、第１のメモリ装置１３０は、相変化メモリ（Ｐｈａｓｅ  Ｃｈａｎｇｅ  ＲＡＭ）、磁気メモリ（Ｍａｇｎｅｔｉｃ  ＲＡＭ）、抵抗性メモリ（Ｒｅｓｉｓｔｉｖｅ  ＲＡＭ）及び強誘電性メモリ（Ｆｅｒｒｏｅｌｅｃｔｒｉｃ  ＲＡＭ）の少なくとも一つ以上の種類を有する。
【００１９】
第２のメモリ装置１４０は、積層揮発性メモリ装置を含む。第２のメモリ装置１４０は、例えば、複数のＤＲＡＭが積層された３次元の積層メモリ装置である。第２のメモリ装置１４０は、高帯域幅の積層メモリ装置（Ｈｉｇｈ  Ｂａｎｄｗｉｄｔｈ  Ｍｅｍｏｒｙ、ＨＢＭ）及びハイブリッドメモリキューブ（Ｈｙｂｒｉｄ  Ｍｅｍｏｒｙ  Ｃｕｂｅ、ＨＭＣ）等を含む。
【００２０】
第１のメモリ装置１３０及び第２のメモリ装置１４０は演算動作を遂行する。第１のメモリ装置１３０及び第２のメモリ装置１４０は、プロセッサ１１０が遂行する演算動作の少なくとも一部を各々遂行する。
第１のメモリ装置１３０及び第２のメモリ装置１４０は、演算動作を遂行するための演算回路を有する。第１のメモリ装置１３０及び第２のメモリ装置１４０は、プロセッサインメモリ（Ｐｒｏｃｅｓｓｏｒ  Ｉｎ  Ｍｅｍｏｒｙ）又はプロセッサニアメモリ（Ｐｒｏｃｅｓｓｏｒ  Ｎｅａｒ  Ｍｅｍｏｒｙ）で具現できる。
プロセッサインメモリ又はプロセッサニアメモリは、ある演算動作を遂行するための演算回路がメモリ装置と共に単一チップに集積されることを意味する。プロセッサ１１０が特定のワークロードに対して演算動作を遂行する際、第１のメモリ装置１３０及び第２のメモリ装置１４０は、各々特定のワークロードの少なくとも一部に対する演算動作を各々遂行し、演算動作の結果をプロセッサ１１０に転送する。
プロセッサ１１０は、第１のメモリ装置１３０及び第２のメモリ装置１４０から転送された各々の演算動作の結果に対して演算動作をさらに遂行する。
【００２１】
図１に示されるように、第１のメモリ装置１３０は、第１のデータ格納領域１３１及び第１の演算回路１３２を有する。
第１のデータ格納領域１３１は、ストレージ１５０から提供されたデータを格納できる。第１のデータ格納領域１３１はワークロードが格納できる。ワークロードは、プロセッサ１１０が演算動作を遂行しようとするターゲットデータグループである。ワークロードは、第１のワークロード及び第２のワークロードを含む。
【００２２】
第１の演算回路１３２は、第１のワークロードに対して第１の演算動作を遂行する。第１の演算回路１３２は、第１のデータ格納領域１３１に格納されたデータのうち、第１のワークロードに対応するデータを読み出して第１の演算動作を遂行する。第１の演算回路１３２は、第１のワークロードに対して第１の演算動作を遂行した後、第１の演算動作の結果をプロセッサ１１０に提供する。
本実施形態において、第１のメモリ装置１３０は、ファイングレイン（ｆｉｎｅ  ｇｒａｉｎ）方式により、第１のデータ格納領域１３１に格納された第１のワークロードに対応するデータを読み出すことができる。第１の演算回路１３２は、ファイングレイン方式により、第１のデータ格納領域１３１に格納されたデータを読み出すことができる。
【００２３】
第２のメモリ装置１４０は、第２のデータ格納領域１４１及び第２の演算回路１４２を有する。第２のメモリ装置１４０は、第２のワークロードを第１のメモリ装置１３０から受信し、第２のワークロードを第２のデータ格納領域１４１に格納する。
第２の演算回路１４２は、第２のワークロードに対して第２の演算動作を遂行する。第２の演算回路１４２は、第２のデータ格納領域１４１に格納されたデータを読み出して第２の演算動作を遂行する。第２の演算回路１４２は、第２のワークロードに対して第２の演算動作を遂行した後、第２の演算動作の結果をプロセッサ１１０に提供する。
【００２４】
第２のメモリ装置１４０は、第２のワークロードに対応するデータが第２のメモリ装置１４０のデータ格納容量を超過する場合、第２のワークロードに対応するデータの一部を第１のメモリ装置１３０から受信して、第２の演算動作を遂行する。例えば、第１のメモリ装置１３０は、第２のワークロードに対応するデータのうち、第２のメモリ装置１４０の格納容量に対応するデータだけをまず提供し、提供されたデータに対する演算動作が完了すると、残りのデータをさらに提供する。第２のメモリ装置１４０は、第２のワークロードに対応するデータの全部に対して、第２の演算動作が遂行されるまで第１のメモリ装置１３０からデータを受信する動作及び受信されたデータに対する演算動作を繰り返して遂行する。
本実施形態において、第１のメモリ装置１３０は、コースグレイン（ｃｏａｒｓｅ  ｇｒａｉｎ）方式により、第１のデータ格納領域１３１に格納された第２のワークロードに対応するデータを第２のメモリ装置１４０に出力できる。即ち、第１のメモリ装置１３０及び第２のメモリ装置１４０間でコースグレイン方式によりデータを転送できる。
【００２５】
本実施形態において、第１のメモリ装置１３０及び第２のメモリ装置１４０によって遂行される第１の演算動作及び第２の演算動作は、互いに類似する水準のアルゴリズムを含むことができる。例えば、第１の演算回路１３２及び第２の演算回路１４２は、互いに類似する水準の複雑性を持つアルゴリズムを含み、同一のアルゴリズムを含む。本実施形態において、第２のメモリ装置１４０で遂行される第２の演算動作は、第１のメモリ装置１３０で遂行される第１の演算動作よりも複雑なアルゴリズムを含むことができる。第２の演算回路１４２は、第１の演算回路１３２よりも複雑な演算動作を遂行でき、より複雑な演算動作を遂行するロジック回路を有する。本実施形態において、第２のワークロードに対応するデータはビックデータ（Ｂｉｇ  Ｄａｔａ）である。ビックデータは、互いに同一の形式を持つ膨大な量のデータを意味する。
【００２６】
本発明の一実施形態に係る半導体システム１は、互いに異なる特性を持つ２個のメモリ装置が全部演算動作を遂行することで、半導体システム１の動作効率を最大化させることができる。例えば、第１のメモリ装置１３０は、相対的に大きいデータ格納容量を有するが、相対的に小さい帯域幅を持つため、第１のメモリ装置１３０だけが演算動作を遂行するように構成する場合、ワークロード処理性能が制約される恐れがある。反対に、第２のメモリ装置１４０は、相対的に大きい帯域幅を持つが、相対的に少ないデータ格納容量を有するため、第２のメモリ装置１４０だけが演算動作を遂行するように構成される場合、大容量のデータを効率よく処理することが困難になる。即ち、ワークロードの容量が大きい場合、第２のメモリ装置１４０は、ストレージからよくデータを受信しなければならない。したがって、本実施形態に係る半導体システム１は、第１のメモリ装置１３０及び第２のメモリ装置１４０を全部プロセッサインメモリ又はプロセッサニアメモリで具現し、ワークロードに対して効率よく演算するように、第１のメモリ装置１３０及び第２のメモリ装置１４０を使用できる。
【００２７】
図１を参照すれば、プロセッサ１１０は、メモリコントローラ１１１を備えている。
メモリコントローラ１１１は、プロセッサ１１０の多様な要請を第１のメモリ装置１３０、第２のメモリ装置１４０及びストレージ１５０に提供される多様なコマンドに変換できる。メモリコントローラ１１１は、プロセッサ１１０の多様なリクエストをスケジューリングできる。例えば、メモリコントローラ１１１は、ストレージ１５０にリードコマンドを提供し、第１のメモリ装置１３０にライトコマンドを提供できる。メモリコントローラ１１１は、ストレージ１５０から出力されたデータを受信し、データを第１のメモリ装置１３０に転送できる。メモリコントローラ１１１は、第１のメモリ装置１３０にリードコマンドを提供し、第２のメモリ装置１４０にライトコマンドを提供できる。メモリコントローラ１１１は、第１のメモリ装置１３０から出力されたデータを受信し、データを第２のメモリ装置１４０に転送できる。メモリコントローラ１１１は、第１のメモリ装置１３０及び第２のメモリ装置１４０に各々リードコマンドを提供し、プロセッサ１１０が第１のメモリ装置１３０及び第２のメモリ装置１４０から出力されたデータを受信する。
【００２８】
第１のメモリ装置１３０は第１の制御回路１３３をさらに有している。第１の制御回路１３３は、第１のデータ格納領域１３１から第１の演算回路１３２に出力されるデータを受信し、第１の演算回路１３２から演算されたデータをプロセッサ１１０に出力する。また、第１の制御回路１３３は、プロセッサ１１０から第１のデータ格納領域１３１に対するアクセス（ａｃｃｅｓｓ）と、第１の演算回路１３２から第１のデータ格納領域１３１に対するアクセスとを仲裁（ａｒｂｉｔｒａｔｅ）できる。
第２のメモリ装置１４０は第２の制御回路１４３をさらに有している。第２の制御回路１４３は、第２のデータ格納領域１４１から第２の演算回路１４２に出力されるデータを受信し、第２の演算回路１４２により演算されたデータをプロセッサ１１０に出力できる。また、第２の制御回路１４３は、プロセッサ１１０から第２のデータ格納領域１４１に対するアクセスと、第２の演算回路１４２から第２のデータ格納領域１４１に対するアクセスとを仲裁できる。
【００２９】
図２は、本発明の一実施形態に係る半導体システム１の動作を示すフローチャートである。図１及び図２を参照して、本実施形態に係る半導体システム１の動作方法を説明する。
プロセッサ１１０は、特定のワークロードに対して演算動作を遂行するために、ストレージ１５０、第１のメモリ装置１３０及び第２のメモリ装置１４０に接近要請を提供する。プロセッサ１１０は、ストレージ１５０にリード要請を提供し、第１のメモリ装置１３０にライト要請を提供する。
ステップＳ２１において、ストレージ１５０は、プロセッサ１１０のリード要請によって、ワークロードに対応するデータを第１のメモリ装置１３０に出力し、第１のメモリ装置１３０は、プロセッサ１１０のライト要請によって、ワークロードに対応するデータをストレージ１５０から受信して第１のデータ格納領域１３１に格納する。
【００３０】
ステップＳ２２において、プロセッサ１１０は、第１のデータ格納領域１３１に格納されたワークロードのうち、演算が必要なワークロードが存在するか否かが判断される。演算が必要なワークロードが存在する場合（ステップＳ２２において“はい”の場合）、プロセッサ１１０は第１のメモリ装置１３０及び第２のメモリ装置１４０に接近要請を提供する。プロセッサ１１０は、第１のメモリ装置１３０にリード要請及び演算要請を提供し、第２のメモリ装置１４０にライト要請及び演算要請を提供する。
【００３１】
このとき、ステップＳ２３において、第１のメモリ装置１３０は、プロセッサ１１０からリード要請と演算要請とが共に受信されたか否かが判断される。第１のメモリ装置１３０は、演算要請よりもリード要請に優先的に応答する。即ち、第１のメモリ装置１３０は、演算要請に応じて第１の演算動作を遂行することよりも、リード要請に優先的に応答して、第１のデータ格納領域１３１に格納されたデータのうち、第２のワークロードに対応するデータを第２のメモリ装置１４０に出力する。第２のメモリ装置１４０は、プロセッサ１１０のライト要請によって、第１のメモリ装置１３０から受信されたデータを第２のデータ格納領域１４１に格納する。
【００３２】
ステップＳ２４において、第１のメモリ装置１３０がプロセッサ１１０からリード要請と演算要請とを共に受信した場合（ステップＳ２３において“はい”の場合）、第２のメモリ装置１４０は、プロセッサ１１０から提供されたライト要請によって、第１のメモリ装置１３０から提供されたデータを第２のデータ格納領域１４１に格納する。
【００３３】
ステップＳ２５において、第２のメモリ装置１４０は、第２のデータ格納領域１４１に格納されたデータを読み出し、プロセッサ１１０から提供された演算要請によって、第２のワークロードに対して第２の演算動作を遂行する。
【００３４】
ステップＳ２６において、第２のメモリ装置１４０は、第２の演算動作が完了すると、第２の演算動作の結果をプロセッサ１１０に提供する。
【００３５】
プロセッサ１１０に演算動作の結果を提供した後、ステップＳ２２において第１のデータ格納領域１３１に格納されたワークロードのうち、演算が必要なワークロードが存在するか否かを再度判断し、演算が必要なワークロードが存在する場合、ステップＳ２３からステップＳ２６を繰り返して遂行する。
【００３６】
ステップＳ２７において、第１のメモリ装置１３０は、プロセッサからリード要請を受信せず、演算要請だけを受信した場合（ステップＳ２３において“いいえ”の場合）、第１のデータ格納領域１３１に格納されたデータのうち、第１のワークロードに対応するデータを読み出し、第１のワークロードに対して第１の演算動作を遂行する。また、第１のメモリ装置１３０は、第２のワークロードに対応するデータを第２のメモリ装置１４０に提供した後（即ち、ステップＳ２４が完了した後）、第２のメモリ装置１４０と共に演算動作を遂行する。一実施例において、第１のメモリ装置１３０及び第２のメモリ装置１４０の演算動作は同時に遂行できる。
【００３７】
ステップＳ２８において、第１のメモリ装置１３０は、第１の演算動作が完了すると、第１の演算動作の結果をプロセッサ１１０に提供する。
【００３８】
プロセッサ１１０に演算動作の結果を提供した後、ステップＳ２２において第１のデータ格納領域１３１に格納されたワークロードのうち、演算が必要なワークロードが存在するか否かを再度判断し、演算が必要なワークロードが存在し、第１のメモリ装置１３０がプロセッサ１１０からリード要請を受信せず、演算要請だけを受信した場合、ステップＳ２７及びステップＳ２８を繰り返して遂行する。
【００３９】
ステップＳ２９において、全体ワークロードに対する演算が完了した場合、即ち、演算が必要なワークロードが存在しない場合（ステップＳ２２において“いいえ”の場合）、プロセッサ１１０は、第１のメモリ装置１３０及び第２のメモリ装置１４０から提供された演算動作の結果に対して演算動作を遂行する。
【００４０】
図３は、図１に示される第１のデータ格納領域１３１の構成を示す図である。
第１のデータ格納領域１３１は、複数のサブ領域に区分できる。複数のサブ領域は、物理的又は論理的に区分された単位データ格納領域である。図３に示されるように、第１のデータ格納領域１３１は、第１から第ｎまでのサブ領域ＳＤＢ１−ＳＤＢｎを有する。第１のメモリ装置１３０は、ストレージ１５０から提供されたデータを第１から第ｎまでのサブ領域ＳＤＢ１−ＳＤＢｎに格納する。第１のワークロードに対応するデータが格納されるサブ領域は、第２のワークロードに対応するデータが格納されるサブ領域と異なるように割り当てられる。即ち、第１のワークロードに対応するデータが格納されるように割り当てられるサブ領域は、第２のワークロードに対応するデータが格納されるように割り当てられるサブ領域と重畳しない。例えば、第１のワークロードに対応するデータは、最も高い順番のサブ領域から順次低い順番のサブ領域に格納する。第２のワークロードに対応するデータは、最も低い順番のサブ領域から順次高い順番のサブ領域に格納する。例えば、第１のワークロードに対応するデータを格納するために、第ｎのサブ領域ＳＤＢｎが優先的に割り当てられ、次に第ｎ−１のサブ領域ＳＤＢｎ−１が割り当てられる。反対に、第２のワークロードに対応するデータを格納するために、第１のサブ領域ＳＤＢ１が優先的に割り当てられ、順次第２のサブ領域ＳＤＢ２及び第３のサブ領域ＳＤＢ３が割り当てられる。例えば、第２のワークロードは、第１から第ｍまでのサブ領域ＳＤＢ１−ＳＤＢｍに格納でき、第１のワークロードは、第ｎから第ｍ＋１までのサブ領域ＳＤＢｎ−ＳＤＢｍ＋１に格納できる。第１のメモリ装置１３０が演算する第１のワークロードと、第２のメモリ装置１４０に提供される第２のワークロードとが、互いに異なるサブ領域に格納されることで、第１のメモリ装置１３０は、第１のワークロード及び第２ワークロードに対応するデータが互いに衝突しないようにリード動作を遂行できる。
【００４１】
本発明の属する技術分野における通常の技術者は、本発明がその技術的思想や必須特徴から逸脱しない範囲内において、他の具体的な形態で実施できるので、前述した実施例は全ての面において例示的なものであり、限定的なものではないと理解するべきである。本発明の範囲は詳細な説明よりも後述する特許請求の範囲により示され、特許請求の範囲の意味及び範囲、その等価概念から導出される全ての変更又は変形された形態が、本発明の範囲に含まれるものと解析するべきである。
【符号の説明】
【００４２】
１  半導体システム
１１０  プロセッサ
１３０  第１のメモリ装置
１４０  第２のメモリ装置
１５０  ストレージ
【図１】
2019200793.tif 000003
【図２】
2019200793.tif 000004
【図３】
2019200793.tif 000005