IP Force 特許公報掲載プロジェクト 2022.1.31 β版

知財求人 - 知財ポータルサイト「IP Force」

▶ エスケーハイニックス株式会社の特許一覧

<>
  • 特許-半導体システム及びその動作方法 図1
  • 特許-半導体システム及びその動作方法 図2
  • 特許-半導体システム及びその動作方法 図3
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2023-05-30
(45)【発行日】2023-06-07
(54)【発明の名称】半導体システム及びその動作方法
(51)【国際特許分類】
   G06F 12/00 20060101AFI20230531BHJP
   G06F 12/06 20060101ALI20230531BHJP
【FI】
G06F12/00 560F
G06F12/06 515J
G06F12/06 515K
G06F12/06 522B
【請求項の数】 18
(21)【出願番号】P 2019093637
(22)【出願日】2019-05-17
(65)【公開番号】P2019200793
(43)【公開日】2019-11-21
【審査請求日】2022-04-22
(31)【優先権主張番号】10-2018-0056379
(32)【優先日】2018-05-17
(33)【優先権主張国・地域又は機関】KR
(73)【特許権者】
【識別番号】310024033
【氏名又は名称】エスケーハイニックス株式会社
【氏名又は名称原語表記】SK hynix Inc.
【住所又は居所原語表記】2091, Gyeongchung-daero,Bubal-eub,Icheon-si,Gyeonggi-do,Korea
(74)【代理人】
【識別番号】100118913
【弁理士】
【氏名又は名称】上田 邦生
(74)【代理人】
【識別番号】100142789
【弁理士】
【氏名又は名称】柳 順一郎
(74)【代理人】
【識別番号】100163050
【弁理士】
【氏名又は名称】小栗 眞由美
(74)【代理人】
【識別番号】100201466
【弁理士】
【氏名又は名称】竹内 邦彦
(72)【発明者】
【氏名】キム, イ ソク
【審査官】北村 学
(56)【参考文献】
【文献】特開2000-235516(JP,A)
【文献】特開2014-078231(JP,A)
【文献】特開2017-016668(JP,A)
【文献】特表2002-535777(JP,A)
【文献】国際公開第2017/187582(WO,A1)
(58)【調査した分野】(Int.Cl.,DB名)
G06F 12/00
G06F 12/06
(57)【特許請求の範囲】
【請求項1】
プロセッサと、
該プロセッサと通信してデータを格納するストレージと、
前記プロセッサの要請によって、前記ストレージから第1のワークロード及び第2のワークロードを受信して格納し、前記第1のワークロードに対して第1の演算動作を遂行する第1のメモリ装置と、
前記プロセッサの要請によって、前記第1のメモリ装置から前記第2のワークロードを受信し、該第2のワークロードに対して第2の演算動作を遂行する第2のメモリ装置とを備える半導体システム。
【請求項2】
前記第1のメモリ装置の動作速度が前記ストレージの動作速度よりも速く、前記第2のメモリ装置のデータ動作速度が前記第1のメモリ装置の動作速度よりも速い請求項1に記載の半導体システム。
【請求項3】
前記ストレージが、前記第1のメモリ装置よりも大きいデータ格納容量を有し、
前記第1のメモリ装置が、前記第2のメモリ装置よりも大きいデータ格納容量を有する請求項1に記載の半導体システム。
【請求項4】
前記第2のメモリ装置が、前記第1のメモリ装置よりも広い帯域幅を有する請求項1に記載の半導体システム。
【請求項5】
前記第2のメモリ装置が遂行する前記第2の演算動作は、前記第1のメモリ装置が遂行する前記第1の演算動作よりも複雑なアルゴリズムを含む請求項1に記載の半導体システム。
【請求項6】
前記第1のメモリ装置は、前記第1のワークロードに対応するデータ及び前記第2のワークロードに対応するデータを格納する第1のデータ格納領域と、前記第1のワークロードに対応する前記データに対して前記第1の演算動作を遂行する第1の演算回路とを有する請求項1に記載の半導体システム。
【請求項7】
前記第2のメモリ装置は、前記第2のワークロードに対応するデータを格納する第2のデータ格納領域と、前記第2のワークロードに対応する前記データに対して前記第2の演算動作を遂行する第2の演算回路とを有する請求項6に記載の半導体システム。
【請求項8】
前記第1のデータ格納領域が、複数のサブ領域を有し、
前記第1のワークロードに対応する前記データが格納される前記サブ領域と、前記第2のワークロードに対応するデータが格納される前記サブ領域とが、互いに異なるように割り当てられる請求項6に記載の半導体システム。
【請求項9】
前記第1のデータ格納領域が、複数のサブ領域を有し、
前記第1のワークロードに対応する前記データが、最も高い順番の前記サブ領域から順次低い順番の前記サブ領域に格納され、前記第2のワークロードに対応するデータが、最も低い順番の前記サブ領域から順次高い順番の前記サブ領域に格納される請求項6に記載の半導体システム。
【請求項10】
前記第1のメモリ装置が、前記第1の演算動作を遂行することよりも、前記第2のワークロードを前記第2のメモリ装置に出力することを優先的に遂行する請求項1に記載の半導体システム。
【請求項11】
第1のワークロード及び第2のワークロードに対して演算動作を遂行するために、第1のメモリ装置がストレージから前記第1のワークロード及び前記第2のワークロードを受信して格納するステップと、
第2のメモリ装置が前記第1のメモリ装置から前記第2のワークロードに対応するデータを受信し、受信した前記データに対して第2の演算動作を遂行するステップと、
前記第1のメモリ装置が前記第1のワークロードに対して第1の演算動作を遂行するステップとを含む半導体システムの動作方法。
【請求項12】
前記第2の演算動作は、前記第1の演算動作よりも複雑なアルゴリズムで遂行される請求項11に記載の半導体システムの動作方法。
【請求項13】
前記第1のメモリ装置は前記ストレージよりも速い動作速度を有し、前記第2のメモリ装置は前記第1のメモリ装置よりも速い動作速度を有する請求項11に記載の半導体システムの動作方法。
【請求項14】
前記第2のメモリ装置は、前記第1のメモリ装置よりも広い帯域幅を有する請求項12に記載の半導体システムの動作方法。
【請求項15】
前記ストレージは、前記第1のメモリ装置よりも大きいデータ格納容量を有し、前記第のメモリ装置は前記第のメモリ装置よりも大きいデータ格納容量を有する請求項11に記載の半導体システムの動作方法。
【請求項16】
前記第1の演算動作を遂行するステップは、前記第2のメモリ装置が前記第2のワークロードに対応する前記データを受信した後、前記第2の演算動作と同時に遂行される請求項11に記載の半導体システムの動作方法。
【請求項17】
前記第1のメモリ装置及び前記第2のメモリ装置が前記第1の演算動作及び前記第2の演算動作の結果をプロセッサに各々転送するステップと、
前記プロセッサが前記第1の演算動作及び前記第2の演算動作の結果に対して演算動作を遂行するステップを含む請求項11に記載の半導体システムの動作方法。
【請求項18】
第2のワークロードに対して第2の演算動作を遂行する積層揮発性メモリ装置と、
第1のワークロード及び前記第2のワークロードをローディングし、前記第2のワークロードを前記積層揮発性メモリ装置に提供し、前記第1のワークロードに対して第1の演算動作を遂行するストレージクラスメモリと、
前記積層揮発性メモリ装置及び前記ストレージクラスメモリに前記第1の演算動作及び前記第2の演算動作のための第1のコマンド及び第2のコマンドを提供し、外部要請に応じて前記第1の演算動作及び前記第2の演算動作の結果に対して演算動作を遂行するプロセッサとを備え、
前記ストレージクラスメモリは、前記第1の演算動作を遂行することよりも、前記第2のワークロードを前記積層揮発性メモリ装置に優先的に提供する半導体システム。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、集積回路技術に関し、さらに詳細には、多様なメモリ装置を備える半導体システムに関する。
【背景技術】
【0002】
電子装置は、多くの電子構成要素を備え、なかでも、コンピュータシステムは半導体からなる多くの半導体システムを備えている。一般的に、半導体システムは、ホスト機能を遂行するプロセッサ、キャッシュ(cache)機能を遂行するメモリ装置、並びに大容量データの格納及び出力を遂行するストレージからなる。しかしながら、半導体技術の発展に伴い、プロセッサ及び残りの構成要素間の動作性能の差が益々大きくなっている。いずれか一つの構成要素の低性能は全体システムの性能を制約する。
【0003】
近年、構成要素等の性能制約を改善するために、多様なメモリ装置及びストレージが開発されている。そのうちの一つとしては、大容量データを高速で格納及び出力ができるナンドストレージ、即ち、ソリッドステートドライブ(Solid State Drive)である。もう一つとしては、大容量データを格納しながら、ランダムアクセスメモリ(Random Access Memory、RAM)に次ぐデータの格納及び出力速度を有する不揮発性メモリ装置を備えるストレージクラスメモリ(Storage Class Memory、SCM)である。ストレージクラスメモリ及びソリッドステートドライブは、半導体システムの性能改善に寄与している。
【発明の概要】
【発明が解決しようとする課題】
【0004】
本発明は、データ演算が遂行できる多様なメモリ装置を備える半導体システム及びその動作方法を提供する。
【課題を解決するための手段】
【0005】
本発明の一態様は、プロセッサと、該プロセッサと通信してデータを格納するストレージと、前記プロセッサの要請によって、前記ストレージから第1のワークロード及び第2のワークロードを受信して格納し、前記第1のワークロードに対して第1の演算動作を遂行する第1のメモリ装置と、前記プロセッサの要請によって、前記第1のメモリ装置から第2のワークロードを受信し、該第2のワークロードに対して第2の演算動作を遂行する第2のメモリ装置を備える半導体システムを提供する。
【0006】
本発明の他の態様は、第1のワークロード及び第2のワークロードに対して演算動作を遂行するために、第1のメモリ装置がストレージから前記第1のワークロード及び前記第2のワークロードを受信して格納するステップと、第2のメモリ装置が前記第1のメモリ装置から前記第2のワークロードに対応するデータを受信し、受信した前記データに対して第2の演算動作を遂行するステップと、前記第1のメモリ装置が前記第1のワークロードに対して第1の演算動作を遂行するステップとを含む半導体システムの動作方法を提供する。
【0007】
本発明の他の態様は、第2のワークロードに対して第2の演算動作を遂行する積層揮発性メモリ装置と、第1のワークロード及び前記第2のワークロードをローディングし、前記第2のワークロードを前記積層揮発性メモリ装置に提供し、前記第1のワークロードに対して第1の演算動作を遂行するストレージクラスメモリと、前記積層揮発性メモリ装置及び前記ストレージクラスメモリに前記第1の演算動作及び前記第2の演算動作のための第1のコマンド及び第2のコマンドを提供し、外部要請に応じて前記第1の演算動作及び前記第2の演算動作の結果に対して演算動作を遂行するプロセッサを備え、前記ストレージクラスメモリは、前記第1の演算動作を遂行することよりも、前記第2のワークロードを前記積層揮発性メモリ装置に優先的に提供する半導体システムを提供する。
【発明の効果】
【0008】
本発明は、半導体システムの動作効率を増加させることで、動作性能の改善を図ることができる。
【図面の簡単な説明】
【0009】
図1】本発明の一実施形態に係る半導体システムの構成を示す図である。
図2】本発明の一実施形態に係る半導体システムの動作方法を示すフローチャートである。
図3図1の第1のデータ格納領域の構成を示す図である。
【発明を実施するための形態】
【0010】
図1は、本発明の一実施形態に係る半導体システム1の構成を示す図である。半導体システム1は、階層的メモリ構造を有している。半導体システム1は、多様な種類のメモリ装置を備え、多様なメモリ装置が階層的メモリ構造を形成してシステムの動作効率を最適化させる。多様な種類のメモリ装置は、データの格納及び出力速度、データ格納容量並びに帯域幅が互いに異なっている。
【0011】
図1に示されるように、半導体システム1は、プロセッサ110、メインメモリ120、第1のメモリ装置130、第2のメモリ装置140及びストレージ150を備えている。
プロセッサ110は、半導体システム1のホストとして動作し、メインメモリ120、第1のメモリ装置130、第2のメモリ装置140及びストレージ150が動作するために必要な多様な制御信号を提供する。
プロセッサ1から提供される多様な制御信号は、要請(request)の形態により、メインメモリ120、第1のメモリ装置130、第2のメモリ装置140及びストレージ150に提供される。例えば、プロセッサ110は、中央処理処置(CPU)、グラフィック処理装置(Graphic Processing Unit、GPU)、マルチメディアプロセッサ(Multi-Media Processor、MMP)、デジタル信号プロセッサ(Digital Signal Processor)及びアプリケーションプロセッサ(AP)等を含む。
【0012】
メインメモリ120、第1のメモリ装置130及び第2のメモリ装置140は、ワーキングメモリ(working memory)であり、バッファーメモリ(buffer memory)として機能できる。
メインメモリ120は、プロセッサ110のキャッシュとして機能できる。一般的に、メインメモリ120は、データの格納及び出力速度が高速且つ一定であるSRAM(Static RAM)、DRAM(Dynamic RAM)及びSDRAM(Synchronous DRAM)等のランダムアクセスメモリを含む。
メインメモリ120は、DIMM(Dual In-line Memory Module)のようなモジュール形態で具現できる。
【0013】
第1のメモリ装置130及び第2のメモリ装置140は、プロセッサ110と共に演算動作を遂行する。プロセッサ110が一つの単一演算動作によりマップリデュース(MapReduce)プログラムを遂行する際、プロセッサ110、第1のメモリ装置130及び第2のメモリ装置140は、単一演算動作の一部を各々遂行する。マップリデュースプログラムは、マップ関数(map function)及びリデュース関数(reduce function)を含む。例えば、第1のメモリ装置130及び第2のメモリ装置140がマップ関数に対応する演算動作を遂行し、プロセッサ110が第1のメモリ装置130及び第2のメモリ装置140の演算動作結果に対してリデュース関数に対応する演算動作を遂行する。マップ関数及びリデュース関数は、ユーザー定義関数(user defined functions)である。例えば、マップ演算は、データを他の値にフィルターリング又は変化させるための演算動作である。リデュース演算は、マップ演算の結果をグルーピング又は集計(aggregating)する演算動作である。
【0014】
使用者によって特定の演算動作を必要とするプログラムが実行されると、特定の演算動作はマップ関数による演算動作及びリデュース関数による演算動作を通して遂行される。即ち、特定の演算動作は、複数のマップ演算及びリデュース演算を通して遂行するようにプログラミングされる。一つの単一演算動作が複数のマップ演算及びリデュース演算を通して遂行される場合、大容量データに対する分散並列処理が可能であるため、演算の複雑性及び演算時間を大きく減少させることができる。
プロセッサ110は、特定の演算動作を遂行するためにワークロード(work load)を第1のメモリ装置130及び第2のメモリ装置140に割り当て、第1のメモリ装置130及び第2のメモリ装置140は、割り当てられたワークロードに対して各々マップ演算を遂行できる。第1のメモリ装置130及び第2のメモリ装置140が遂行するマップ演算は、同種或いは異種である。プロセッサ110は、第1のメモリ装置130及び第2のメモリ装置140でマップ演算の結果に対してリデュース演算を遂行できる。
【0015】
プロセッサ110は、第1のメモリ装置130及び第2のメモリ装置140により特定の演算動作が遂行されるように、第1のメモリ装置130及び第2のメモリ装置140にワークロードを割り当てることができる。ワークロードは、メモリ装置130,140に割り当てられ、メモリ装置130,140により演算されるターゲットデータグループを意味する。プロセッサ110は、第1のメモリ装置130に一方のワークロードを割り当て、第2のメモリ装置140に他方のワークロードを割り当てる。第1のメモリ装置130及び第2のメモリ装置140は、各々割り当てられたワークロードに対してマップ演算を遂行する。
【0016】
ストレージ150は、大容量データ格納装置である。ストレージ150は、複数のNANDフラッシュメモリを有するソリッドステートドライブである。
【0017】
本発明の一実施形態において、第1のメモリ装置130は、第2のメモリ装置140よりも大きいデータ格納容量を有し、ストレージ150は、第1のメモリ装置130よりも大きいデータ格納容量を有する。第1のメモリ装置130は、ストレージ150よりもデータのライト及びリードのための動作速度が速く、第2のメモリ装置140は、第1のメモリ装置130よりもデータのライト及びリードのための動作速度が速い。第2のメモリ装置140の帯域幅は、第1のメモリ装置130の帯域幅よりも広い。ここで、帯域幅が広いとは、単位時間に入出力されるデータの量が多いことを意味する。
【0018】
第1のメモリ装置130は、ストレージクラスメモリである。第1のメモリ装置130は、複数の不揮発性ランダムアクセスメモリを含む。例えば、第1のメモリ装置130は、相変化メモリ(Phase Change RAM)、磁気メモリ(Magnetic RAM)、抵抗性メモリ(Resistive RAM)及び強誘電性メモリ(Ferroelectric RAM)の少なくとも一つ以上の種類を有する。
【0019】
第2のメモリ装置140は、積層揮発性メモリ装置を含む。第2のメモリ装置140は、例えば、複数のDRAMが積層された3次元の積層メモリ装置である。第2のメモリ装置140は、高帯域幅の積層メモリ装置(High Bandwidth Memory、HBM)及びハイブリッドメモリキューブ(Hybrid Memory Cube、HMC)等を含む。
【0020】
第1のメモリ装置130及び第2のメモリ装置140は演算動作を遂行する。第1のメモリ装置130及び第2のメモリ装置140は、プロセッサ110が遂行する演算動作の少なくとも一部を各々遂行する。
第1のメモリ装置130及び第2のメモリ装置140は、演算動作を遂行するための演算回路を有する。第1のメモリ装置130及び第2のメモリ装置140は、プロセッサインメモリ(Processor In Memory)又はプロセッサニアメモリ(Processor Near Memory)で具現できる。
プロセッサインメモリ又はプロセッサニアメモリは、ある演算動作を遂行するための演算回路がメモリ装置と共に単一チップに集積されることを意味する。プロセッサ110が特定のワークロードに対して演算動作を遂行する際、第1のメモリ装置130及び第2のメモリ装置140は、各々特定のワークロードの少なくとも一部に対する演算動作を各々遂行し、演算動作の結果をプロセッサ110に転送する。
プロセッサ110は、第1のメモリ装置130及び第2のメモリ装置140から転送された各々の演算動作の結果に対して演算動作をさらに遂行する。
【0021】
図1に示されるように、第1のメモリ装置130は、第1のデータ格納領域131及び第1の演算回路132を有する。
第1のデータ格納領域131は、ストレージ150から提供されたデータを格納できる。第1のデータ格納領域131はワークロードが格納できる。ワークロードは、プロセッサ110が演算動作を遂行しようとするターゲットデータグループである。ワークロードは、第1のワークロード及び第2のワークロードを含む。
【0022】
第1の演算回路132は、第1のワークロードに対して第1の演算動作を遂行する。第1の演算回路132は、第1のデータ格納領域131に格納されたデータのうち、第1のワークロードに対応するデータを読み出して第1の演算動作を遂行する。第1の演算回路132は、第1のワークロードに対して第1の演算動作を遂行した後、第1の演算動作の結果をプロセッサ110に提供する。
本実施形態において、第1のメモリ装置130は、ファイングレイン(fine grain)方式により、第1のデータ格納領域131に格納された第1のワークロードに対応するデータを読み出すことができる。第1の演算回路132は、ファイングレイン方式により、第1のデータ格納領域131に格納されたデータを読み出すことができる。
【0023】
第2のメモリ装置140は、第2のデータ格納領域141及び第2の演算回路142を有する。第2のメモリ装置140は、第2のワークロードを第1のメモリ装置130から受信し、第2のワークロードを第2のデータ格納領域141に格納する。
第2の演算回路142は、第2のワークロードに対して第2の演算動作を遂行する。第2の演算回路142は、第2のデータ格納領域141に格納されたデータを読み出して第2の演算動作を遂行する。第2の演算回路142は、第2のワークロードに対して第2の演算動作を遂行した後、第2の演算動作の結果をプロセッサ110に提供する。
【0024】
第2のメモリ装置140は、第2のワークロードに対応するデータが第2のメモリ装置140のデータ格納容量を超過する場合、第2のワークロードに対応するデータの一部を第1のメモリ装置130から受信して、第2の演算動作を遂行する。例えば、第1のメモリ装置130は、第2のワークロードに対応するデータのうち、第2のメモリ装置140の格納容量に対応するデータだけをまず提供し、提供されたデータに対する演算動作が完了すると、残りのデータをさらに提供する。第2のメモリ装置140は、第2のワークロードに対応するデータの全部に対して、第2の演算動作が遂行されるまで第1のメモリ装置130からデータを受信する動作及び受信されたデータに対する演算動作を繰り返して遂行する。
本実施形態において、第1のメモリ装置130は、コースグレイン(coarse grain)方式により、第1のデータ格納領域131に格納された第2のワークロードに対応するデータを第2のメモリ装置140に出力できる。即ち、第1のメモリ装置130及び第2のメモリ装置140間でコースグレイン方式によりデータを転送できる。
【0025】
本実施形態において、第1のメモリ装置130及び第2のメモリ装置140によって遂行される第1の演算動作及び第2の演算動作は、互いに類似する水準のアルゴリズムを含むことができる。例えば、第1の演算回路132及び第2の演算回路142は、互いに類似する水準の複雑性を持つアルゴリズムを含み、同一のアルゴリズムを含む。本実施形態において、第2のメモリ装置140で遂行される第2の演算動作は、第1のメモリ装置130で遂行される第1の演算動作よりも複雑なアルゴリズムを含むことができる。第2の演算回路142は、第1の演算回路132よりも複雑な演算動作を遂行でき、より複雑な演算動作を遂行するロジック回路を有する。本実施形態において、第2のワークロードに対応するデータはビックデータ(Big Data)である。ビックデータは、互いに同一の形式を持つ膨大な量のデータを意味する。
【0026】
本発明の一実施形態に係る半導体システム1は、互いに異なる特性を持つ2個のメモリ装置が全部演算動作を遂行することで、半導体システム1の動作効率を最大化させることができる。例えば、第1のメモリ装置130は、相対的に大きいデータ格納容量を有するが、相対的に小さい帯域幅を持つため、第1のメモリ装置130だけが演算動作を遂行するように構成する場合、ワークロード処理性能が制約される恐れがある。反対に、第2のメモリ装置140は、相対的に大きい帯域幅を持つが、相対的に少ないデータ格納容量を有するため、第2のメモリ装置140だけが演算動作を遂行するように構成される場合、大容量のデータを効率よく処理することが困難になる。即ち、ワークロードの容量が大きい場合、第2のメモリ装置140は、ストレージからよくデータを受信しなければならない。したがって、本実施形態に係る半導体システム1は、第1のメモリ装置130及び第2のメモリ装置140を全部プロセッサインメモリ又はプロセッサニアメモリで具現し、ワークロードに対して効率よく演算するように、第1のメモリ装置130及び第2のメモリ装置140を使用できる。
【0027】
図1を参照すれば、プロセッサ110は、メモリコントローラ111を備えている。
メモリコントローラ111は、プロセッサ110の多様な要請を第1のメモリ装置130、第2のメモリ装置140及びストレージ150に提供される多様なコマンドに変換できる。メモリコントローラ111は、プロセッサ110の多様なリクエストをスケジューリングできる。例えば、メモリコントローラ111は、ストレージ150にリードコマンドを提供し、第1のメモリ装置130にライトコマンドを提供できる。メモリコントローラ111は、ストレージ150から出力されたデータを受信し、データを第1のメモリ装置130に転送できる。メモリコントローラ111は、第1のメモリ装置130にリードコマンドを提供し、第2のメモリ装置140にライトコマンドを提供できる。メモリコントローラ111は、第1のメモリ装置130から出力されたデータを受信し、データを第2のメモリ装置140に転送できる。メモリコントローラ111は、第1のメモリ装置130及び第2のメモリ装置140に各々リードコマンドを提供し、プロセッサ110が第1のメモリ装置130及び第2のメモリ装置140から出力されたデータを受信する。
【0028】
第1のメモリ装置130は第1の制御回路133をさらに有している。第1の制御回路133は、第1のデータ格納領域131から第1の演算回路132に出力されるデータを受信し、第1の演算回路132から演算されたデータをプロセッサ110に出力する。また、第1の制御回路133は、プロセッサ110から第1のデータ格納領域131に対するアクセス(access)と、第1の演算回路132から第1のデータ格納領域131に対するアクセスとを仲裁(arbitrate)できる。
第2のメモリ装置140は第2の制御回路143をさらに有している。第2の制御回路143は、第2のデータ格納領域141から第2の演算回路142に出力されるデータを受信し、第2の演算回路142により演算されたデータをプロセッサ110に出力できる。また、第2の制御回路143は、プロセッサ110から第2のデータ格納領域141に対するアクセスと、第2の演算回路142から第2のデータ格納領域141に対するアクセスとを仲裁できる。
【0029】
図2は、本発明の一実施形態に係る半導体システム1の動作を示すフローチャートである。図1及び図2を参照して、本実施形態に係る半導体システム1の動作方法を説明する。
プロセッサ110は、特定のワークロードに対して演算動作を遂行するために、ストレージ150、第1のメモリ装置130及び第2のメモリ装置140に接近要請を提供する。プロセッサ110は、ストレージ150にリード要請を提供し、第1のメモリ装置130にライト要請を提供する。
ステップS21において、ストレージ150は、プロセッサ110のリード要請によって、ワークロードに対応するデータを第1のメモリ装置130に出力し、第1のメモリ装置130は、プロセッサ110のライト要請によって、ワークロードに対応するデータをストレージ150から受信して第1のデータ格納領域131に格納する。
【0030】
ステップS22において、プロセッサ110は、第1のデータ格納領域131に格納されたワークロードのうち、演算が必要なワークロードが存在するか否かが判断される。演算が必要なワークロードが存在する場合(ステップS22において“はい”の場合)、プロセッサ110は第1のメモリ装置130及び第2のメモリ装置140に接近要請を提供する。プロセッサ110は、第1のメモリ装置130にリード要請及び演算要請を提供し、第2のメモリ装置140にライト要請及び演算要請を提供する。
【0031】
このとき、ステップS23において、第1のメモリ装置130は、プロセッサ110からリード要請と演算要請とが共に受信されたか否かが判断される。第1のメモリ装置130は、演算要請よりもリード要請に優先的に応答する。即ち、第1のメモリ装置130は、演算要請に応じて第1の演算動作を遂行することよりも、リード要請に優先的に応答して、第1のデータ格納領域131に格納されたデータのうち、第2のワークロードに対応するデータを第2のメモリ装置140に出力する。第2のメモリ装置140は、プロセッサ110のライト要請によって、第1のメモリ装置130から受信されたデータを第2のデータ格納領域141に格納する。
【0032】
ステップS24において、第1のメモリ装置130がプロセッサ110からリード要請と演算要請とを共に受信した場合(ステップS23において“はい”の場合)、第2のメモリ装置140は、プロセッサ110から提供されたライト要請によって、第1のメモリ装置130から提供されたデータを第2のデータ格納領域141に格納する。
【0033】
ステップS25において、第2のメモリ装置140は、第2のデータ格納領域141に格納されたデータを読み出し、プロセッサ110から提供された演算要請によって、第2のワークロードに対して第2の演算動作を遂行する。
【0034】
ステップS26において、第2のメモリ装置140は、第2の演算動作が完了すると、第2の演算動作の結果をプロセッサ110に提供する。
【0035】
プロセッサ110に演算動作の結果を提供した後、ステップS22において第1のデータ格納領域131に格納されたワークロードのうち、演算が必要なワークロードが存在するか否かを再度判断し、演算が必要なワークロードが存在する場合、ステップS23からステップS26を繰り返して遂行する。
【0036】
ステップS27において、第1のメモリ装置130は、プロセッサからリード要請を受信せず、演算要請だけを受信した場合(ステップS23において“いいえ”の場合)、第1のデータ格納領域131に格納されたデータのうち、第1のワークロードに対応するデータを読み出し、第1のワークロードに対して第1の演算動作を遂行する。また、第1のメモリ装置130は、第2のワークロードに対応するデータを第2のメモリ装置140に提供した後(即ち、ステップS24が完了した後)、第2のメモリ装置140と共に演算動作を遂行する。一実施例において、第1のメモリ装置130及び第2のメモリ装置140の演算動作は同時に遂行できる。
【0037】
ステップS28において、第1のメモリ装置130は、第1の演算動作が完了すると、第1の演算動作の結果をプロセッサ110に提供する。
【0038】
プロセッサ110に演算動作の結果を提供した後、ステップS22において第1のデータ格納領域131に格納されたワークロードのうち、演算が必要なワークロードが存在するか否かを再度判断し、演算が必要なワークロードが存在し、第1のメモリ装置130がプロセッサ110からリード要請を受信せず、演算要請だけを受信した場合、ステップS27及びステップS28を繰り返して遂行する。
【0039】
ステップS29において、全体ワークロードに対する演算が完了した場合、即ち、演算が必要なワークロードが存在しない場合(ステップS22において“いいえ”の場合)、プロセッサ110は、第1のメモリ装置130及び第2のメモリ装置140から提供された演算動作の結果に対して演算動作を遂行する。
【0040】
図3は、図1に示される第1のデータ格納領域131の構成を示す図である。
第1のデータ格納領域131は、複数のサブ領域に区分できる。複数のサブ領域は、物理的又は論理的に区分された単位データ格納領域である。図3に示されるように、第1のデータ格納領域131は、第1から第nまでのサブ領域SDB1-SDBnを有する。第1のメモリ装置130は、ストレージ150から提供されたデータを第1から第nまでのサブ領域SDB1-SDBnに格納する。第1のワークロードに対応するデータが格納されるサブ領域は、第2のワークロードに対応するデータが格納されるサブ領域と異なるように割り当てられる。即ち、第1のワークロードに対応するデータが格納されるように割り当てられるサブ領域は、第2のワークロードに対応するデータが格納されるように割り当てられるサブ領域と重畳しない。例えば、第1のワークロードに対応するデータは、最も高い順番のサブ領域から順次低い順番のサブ領域に格納する。第2のワークロードに対応するデータは、最も低い順番のサブ領域から順次高い順番のサブ領域に格納する。例えば、第1のワークロードに対応するデータを格納するために、第nのサブ領域SDBnが優先的に割り当てられ、次に第n-1のサブ領域SDBn-1が割り当てられる。反対に、第2のワークロードに対応するデータを格納するために、第1のサブ領域SDB1が優先的に割り当てられ、順次第2のサブ領域SDB2及び第3のサブ領域SDB3が割り当てられる。例えば、第2のワークロードは、第1から第mまでのサブ領域SDB1-SDBmに格納でき、第1のワークロードは、第nから第m+1までのサブ領域SDBn-SDBm+1に格納できる。第1のメモリ装置130が演算する第1のワークロードと、第2のメモリ装置140に提供される第2のワークロードとが、互いに異なるサブ領域に格納されることで、第1のメモリ装置130は、第1のワークロード及び第2ワークロードに対応するデータが互いに衝突しないようにリード動作を遂行できる。
【0041】
本発明の属する技術分野における通常の技術者は、本発明がその技術的思想や必須特徴から逸脱しない範囲内において、他の具体的な形態で実施できるので、前述した実施例は全ての面において例示的なものであり、限定的なものではないと理解するべきである。本発明の範囲は詳細な説明よりも後述する特許請求の範囲により示され、特許請求の範囲の意味及び範囲、その等価概念から導出される全ての変更又は変形された形態が、本発明の範囲に含まれるものと解析するべきである。
【符号の説明】
【0042】
1 半導体システム
110 プロセッサ
130 第1のメモリ装置
140 第2のメモリ装置
150 ストレージ
図1
図2
図3