(57)【要約】【課題】拡張メモリシステムを活用したデータ処理システムを提供すること。【解決手段】データ処理システムは、第１の処理ユニット及び第１のメモリユニットが備えられたメインカードと、第２の処理ユニット及び第２のメモリユニットが備えられた補助カードと、第３のメモリユニットが備えられた拡張カードと、前記メインカードと補助カードとの間の通信を支援する第１のインターフェースと、前記メインカードと拡張カードとの間の通信を支援する第２のインターフェースと、前記補助カードと拡張カードとの間の通信を支援する第３のインターフェースとを備える【選択図】図２
2019185743.tif 000002
【特許請求の範囲】
【請求項１】
第１の処理ユニット及び第１のメモリユニットが備えられたメインカードと、
第２の処理ユニット及び第２のメモリユニットが備えられた補助カードと、
第３のメモリユニットが備えられた拡張カードと、
前記メインカードと補助カードとの間の通信を支援する第１のインターフェースと、
前記メインカードと拡張カードとの間の通信を支援する第２のインターフェースと、
前記補助カードと拡張カードとの間の通信を支援する第３のインターフェースと、
を備えるデータ処理システム。
【請求項２】
前記第１の処理ユニットは
コマンドを前記第２の処理ユニットに送信し、入力データを前記第３のメモリユニットに送信し、
前記第２の処理ユニットは、
前記第３のメモリユニットから前記入力データを受信し、処理データを生成するために、前記コマンドに応じて前記入力データを処理し、前記処理データを前記第３のメモリユニットに送信し、
前記第１の処理ユニットは、
前記処理データを前記第３のメモリユニットから受信する請求項１に記載のデータ処理システム。
【請求項３】
前記第３のメモリユニットは、
第１及び第２のメモリ領域を含み、
前記第１の処理ユニットは、
前記入力データを前記第１のメモリ領域に送信し、
前記第２の処理ユニットは、
前記第１のメモリ領域から前記入力データを受信し、前記処理データを前記第２のメモリ領域に送信し、
前記第１の処理ユニットは、
前記処理データを前記第２のメモリ領域から受信する請求項２に記載のデータ処理システム。
【請求項４】
前記第１の処理ユニットは、
コマンドを前記第２の処理ユニットに送信し、第１の入力データを前記第２のメモリユニットに送信し、第２の入力データを前記第３のメモリユニットに送信し、
前記第２の処理ユニットは、
前記送信されたコマンドに応じて前記第２のメモリユニットから前記第１の入力データを受信し、前記第１の入力データを処理して第１の処理データを生成し、前記第３のメモリユニットから前記第２の入力データを受信し、前記第２の入力データを処理して第２の処理データを生成し、前記第１の処理データを前記第２のメモリユニットに送信し、前記第２の処理データを前記第３のメモリユニットに送信し、
前記第１の処理ユニットは、
前記第２のメモリユニットから前記第１の処理データを受信し、前記第３のメモリユニットから前記第２の処理データを受信する請求項１に記載のデータ処理システム。
【請求項５】
前記第３のメモリユニットは、
第１及び第２のメモリ領域を含み、
前記第１の処理ユニットは、
コマンドを前記第２の処理ユニットに送信し、前記第２のメモリユニットに第１の入力データを送信し、前記第１のメモリ領域に第２の入力データを送信し、
前記第２の処理ユニットは、
前記送信されたコマンドに応じて前記第２のメモリユニットから前記第１の入力データを取得し、前記第１の入力データを処理して第１の処理データを生成し、前記第１のメモリ領域から前記第２の入力データを取得し、前記第２の入力データを処理して第２の処理データを生成し、前記第１及び第２の処理データを前記第２のメモリ領域に送信し、
前記第１の処理ユニットは、
前記第１及び第２の処理データを前記第２のメモリ領域から受信する請求項１に記載のデータ処理システム。
【請求項６】
前記メインカードは、メインボード上に装着され、
前記補助カードは、補助スロットを介して前記メインボードに装着され、
前記拡張カードは、拡張スロットを介して前記メインボードに装着される請求項１に記載のデータ処理システム。
【請求項７】
前記メインカードは、メインボード上に装着され、
前記補助カードは、ライザーカードに含まれた補助スロットに装着され、
前記拡張カードは、前記ライザーカードに含まれた拡張スロットに装着され、
前記ライザーカードは、ライザーカードスロットを介して前記メインボードに装着される請求項１に記載のデータ処理システム。
【請求項８】
前記メインカードは、メインボード上に装着され、
前記補助カードは、補助スロットを介して前記メインボードに装着され、
前記拡張カードは、拡張スロットを介して前記補助カードに装着される請求項１に記載のデータ処理システム。
【請求項９】
データ処理システムの動作方法において、
前記データ処理システムの第１の処理ユニットがコマンドを第１のインターフェースを介して前記データ処理システムの第２の処理ユニットに送信し、入力データを第２のインターフェースを介して前記データ処理システムの第３のメモリユニットに送信するステップと、
前記第２の処理ユニットが前記コマンドに応じて第３のインターフェースを介して前記第３のメモリユニットから前記入力データを受信し、前記コマンドに応じて前記入力データを処理して処理データを生成し、前記第３のインターフェースを介して前記第３のメモリユニットに送信するステップと、
前記第１の処理ユニットが前記処理データを前記第２のインターフェースを介して前記第３のメモリユニットから受信するステップと、
を含む動作方法。
【請求項１０】
前記第３のメモリユニットは、
第１及び第２のメモリ領域を含み、
前記入力データを前記第３のメモリユニットに送信するステップは、前記入力データを前記第１の領域に送信するステップを含み、
前記入力データを受信するステップは、前記入力データを前記第１のメモリ領域から受信するステップを含み、前記処理データを送信するステップは、前記第２のメモリ領域に前記処理データを送信するステップを含み、
前記処理データを受信するステップは、
前記処理データを前記第２のメモリ領域から受信するステップを含む請求項９に記載の動作方法。
【請求項１１】
データ処理システムの動作方法において、
前記データ処理システムの第１の処理ユニットが第１のインターフェースを介して前記データ処理システムの第２の処理ユニットにコマンドを送信し、第１の入力データを前記データ処理システムの第２のメモリユニットに送信し、第２のインターフェースを介して前記データ処理システムの第３のメモリユニットに第２の入力データを送信するステップと、
前記第２の処理ユニットが前記コマンドに応じて前記第２のメモリユニットの前記第１の入力データを受信し、前記第１の入力データを処理して第１の処理データを生成し、前記第１の処理データを前記第２のメモリユニットに提供し、前記コマンドに応じて前記第３のインターフェースを介して前記第３のメモリユニットから前記第２の入力データを受信し、前記第２の入力データを処理して第２の処理データを生成し、前記第２の処理データを前記第３のメモリユニットに提供するステップと、
前記第１の処理ユニットが前記第１の処理データを前記第１のインターフェースを介して前記第２のメモリユニットから受信し、前記第２の処理データを前記第２のインターフェースを介して前記第３のメモリユニットから受信するステップと、
を含む動作方法。
【請求項１２】
第１及び第２のメモリ領域が含まれた第３のメモリユニットを備えるデータ処理システムの動作方法において、
前記データ処理システムの第１の処理ユニットが第１のインターフェースを介して前記データ処理システムの第２の処理ユニットにコマンドを送信し、第１の入力データを前記第１のインターフェースを介して前記データ処理システムの第２のメモリユニットに送信し、第２の入力データを第２のインターフェースを介して前記第１のメモリ領域に送信するステップと、
前記第２の処理ユニットが前記コマンドに応じて前記第２のメモリユニットからの前記第１の入力データ及び前記第１のメモリ領域からの前記第２の入力データを取得して処理し、前記第１及び第２の入力データを処理することによって生成された前記第１及び第２の処理データを第２のメモリ領域に送信するステップ（前記第２の処理ユニットは、第３のインターフェースユニットを介して前記第３のメモリユニットにアクセスする）と、
前記第１の処理ユニットが前記第１及び第２の処理データを前記第２のインターフェースを介して前記第２のメモリ領域から受信する第３のステップと、
を含む動作方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明の様々な実施形態等は、データ処理システムに関するものである。具体的に、上記実施形態等は、拡張メモリシステムを活用したデータ処理システムに関するものである。
【背景技術】
【０００２】
マシンラーニング（Ｍａｃｈｉｎｅ  Ｌｅａｒｎｉｎｇ）、マップリデュース（Ｍａｐ  Ｒｅｄｕｃｅ）のような大容量並列プロセシングの活用が増加している。したがって、大容量データを速く処理する技術に対する需要が次第に増加している。
【０００３】
ＧＰＵ（Ｇｒａｐｈｉｃｓ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）は、グラフィック処理を加速化することを主な目的とするプロセッサである。３Ｄグラフィックの品質が向上するにつれて、例えば、より高いグラフィック処理能力が必要となった。内部並列性を利用すれば、ＧＰＵが計算集約的なグラフィックタスクを行うことができる。
【０００４】
ＧＰＵの高い並列性により、大量計算及びＧＰＵプログラミング環境が生じるようになった。ＧＰＵは、グラフィック処理だけでなく、大容量データ処理のためにも使用されている。
【０００５】
ＧＰＵが大容量データを速く処理するために、ＧＰＵを用いたデータ処理システムのデータ処理容量を改善する必要がある。
【発明の概要】
【発明が解決しようとする課題】
【０００６】
本発明は、第１の処理ユニットと、前記第１の処理ユニットの性能を支援する第２の処理ユニットとを備えるデータ処理システムにおいて、第２の処理ユニットと第１の処理ユニットとが別のインターフェースを介して接近できる第３のメモリユニットを備えるデータ処理システムを提案する。
【課題を解決するための手段】
【０００７】
本発明の一実施形態は、第１の処理ユニット及び第１のメモリユニットが備えられたメインカードを備えるデータ処理システムに関するものである。前記データ処理システムは、さらに第２の処理ユニット及び第２のメモリユニットが備えられた補助カード及び第３のメモリユニットが備えられた拡張カードを備える。前記データ処理システムは、前記メインカードと補助カードとの間の通信を支援する第１のインターフェース、前記メインカードと拡張カードとの間の通信を支援する第２のインターフェース、及び前記補助カードと拡張カードとの間の通信を支援する第３のインターフェースを備える。
【０００８】
また、本発明の一実施形態は、データ処理システムの動作方法に関するものである。前記方法は、前記データ処理システムの第１の処理ユニットがコマンドを第１のインターフェースを介して前記データ処理システムの第２の処理ユニットに送信し、前記第１の処理ユニットが入力データを第２のインターフェースを介して第３のメモリユニットに送信するステップを含む。また、前記方法は、前記第２の処理ユニットが第３のインターフェースを介して前記第３のメモリユニットから前記入力データを受信し、処理データを生成するために、前記コマンドに応じて前記入力データを処理し、前記処理データを前記第３のインターフェースを介して前記第３のメモリユニットに送信するステップを含む。前記方法は、前記第１の処理ユニットが前記処理データを前記第２のインターフェースを介して前記第３のメモリユニットから受信するステップをさらに含む。
【発明の効果】
【０００９】
本発明は、高い性能でデータ処理が可能なデータ処理システムを提供できる。
【図面の簡単な説明】
【００１０】
【図１】本発明の一実施形態に係るデータ処理システムの構造を図示する。
【図２】本発明の一実施形態に係るデータ処理システムの例示的な構造を示すブロック図を見せる。
【図３】本発明の一実施形態に係るデータ処理システムの例示的な構造を示すブロック図を見せる。
【図４】本発明の一実施形態に係るデータ処理システムの並列データ処理動作を示すフローチャートを見せる。
【図５】本発明の一実施形態に係るデータ処理システムの並列データ処理動作を示すフローチャートを見せる。
【図６】本発明の一実施形態に係るデータ処理システムの並列データ処理動作を示すフローチャートを見せる。
【図７】本発明の一実施形態に係るデータ処理システムの並列データ処理動作を示すフローチャートを見せる。
【図８】本発明の一実施形態に係るデータ処理システムの物理的な構成を示す斜視図を見せる。
【図９】本発明の一実施形態に係るデータ処理システムの物理的な構成を示す斜視図を見せる。
【図１０】本発明の一実施形態に係るデータ処理システムの物理的な構成を示す斜視図を見せる。
【発明を実施するための形態】
【００１１】
本発明の様々な実施形態は、図面を参照して詳しく説明されるであろう。しかしながら、本発明は、ここに紹介された実施形態等と異なる実施形態で実現され得ることに留意しなければならない。したがって、提示された実施形態等は、本発明を制限することと解釈されてはならない。却って、通常の技術者に本発明を伝達するために制限された実施形態が説明される。本明細書の全体にわたって、同じ図面符号は、図面及び本発明の実施形態の全体にわたって類似した部分を示す。
【００１２】
「第１」、「第２」、「第３」などの用語が様々な構成要素を説明するために使用され得るとしても、前記構成要素等は、このような用語に限定されないという点が理解されるべきである。このような用語等は、１つの構成要素を他の構成要素から区別するために使用された。したがって、下記において説明された第１構成要素は、本発明の思想と範囲を逸脱せず、第２または第３構成要素として説明されることができる。
【００１３】
図面は、必ずしも一定の割合で図示されたものではなく、一部の例において提示された実施形態の特徴を明確に説明するために比率が誇張され得る。１つの要素が他の要素に連結されるか、結合されたことと述べられるとき、１つの要素は、他の要素に直接連結されるか、結合されるか、他の要素と電気的に連結されるか、結合され得るという点が理解されるべきである。
【００１４】
また、１つの構成要素が他の構成要素に「連結された」または「結合された」ことと述べられるとき、前記１つの構成要素は、他の構成要素に直接的に連結されるか、結合されるか、１つの構成要素と他の構成要素との間に１つ以上の構成要素が介入され得るという点が理解されるであろう。また、１つの構成要素が２つの構成要素の「間」にあることと述べられるとき、前記１つの構成要素は、２つの構成要素間の唯一の構成要素でありうるし、１つ以上の構成要素がさらに介入され得るという点が理解されるであろう。
【００１５】
本明細書において使用された用語は、特定実施形態を説明するためのものであり、他の可能な実施形態を制限しようとするものではない。
【００１６】
本明細書において使用された単数形態は、文脈に別に明示されない限り、複数形態を含むことと意図される。
【００１７】
本明細書において使用された「含む」という用語は、明示された構成要素の存在を表し、１つ以上の追加的な構成要素の存在を排除するものでないという点が理解されるであろう。本明細書において使用された「及び／又は」という用語は、１つ以上の羅列されたまたは暗示された項目の任意の組み合わせを含む。
【００１８】
別に定義されない限り、本明細書において使用された技術的及び科学的用語を含む全ての用語は、本開示の属する技術分野における通常の技術者により一般的に理解されることと同じ意味を有する。また、一般的に使用される辞書において定義された用語は、本開示内容及び関連技術における意味と一致する意味を有することと解釈されなければならず、用語は、ここで明示的に定義されない限り、理想的であるか、過度に形式的な意味と解釈されないであろうという点が理解されるであろう。
【００１９】
以下の説明において、複数の特定細部事項が、本発明に対する理解を提供するために説明される。本発明は、このような特定細部事項のうち、一部または全部を提示せずに実施されることができる。他の例において、公知されたプロセッサ構造及び／又はプロセスは、本教示の説明された特徴を不要に不明にしないために、詳しく説明されなかった。
【００２０】
また、一部の例において、関連技術分野の通常の技術者に明らかなように、別に明示しない限り、一実施形態と関連して記述された特徴または要素は、単独に、または他の実施形態の他の特徴または要素と組み合わせて使用され得るという点が注目される。
【００２１】
以下、図面を参照して本発明の実施形態についてより具体的に説明する。
【００２２】
図１は、データ処理システム１０の構造を示した図である。
【００２３】
データ処理システム１０は、グラフィックカード１００とメインカード３００とを備えることができる。メインカード３００は、メイン処理ユニット３１０とメインメモリユニット３３０とを備える。グラフィックカード１００は、ＧＰＵ（１１０）とＧＰＵメモリユニット１３０とを備える。ＧＰＵ（１１０）は、データの並列処理のために、複数の演算コア１１２を含む。
【００２４】
グラフィックカード１００とメインカード３００とは、インターフェース２００を介して相互通信することができる。メイン処理ユニット３１０とメインメモリユニット３３０とは、メインカード３００の内部で相互通信し、ＧＰＵ（１１０）とＧＰＵメモリユニット１３０とは、グラフィックカード１００の内部で相互通信する。
【００２５】
ＧＰＵは、グラフィック処理を加速化するためのプロセッサである。例えば、３Ｄグラフィックの品質が増加するにつれて、より高いグラフィック処理能力が必要となったので、計算集約的なグラフィックタスクを行うために、ＧＰＵの内部並列性が増加している。ＧＰＵの高い並列性により大量計算が容易になり、ＧＰＵプログラミング環境が揃えられたので、ＧＰＵは、グラフィック処理だけでなく、大容量データ処理のためにも使用されている。
【００２６】
インターフェース２００は、ＰＣＩｅ（Ｐｅｒｉｐｈｅｒａｌ  Ｃｏｍｐｏｎｅｎｔ  Ｉｎｔｅｒｃｏｎｎｅｃｔ  Ｅｘｐｒｅｓｓ）のような高速通信インターフェースでありうる。
【００２７】
メイン処理ユニット３１０は、インターフェース２００を介してＧＰＵ（１１０）にコマンドを提供する。メイン処理ユニット３１０は、インターフェース２００を介してメインメモリユニット３３０に格納された入力データを前記ＧＰＵメモリユニット１３０に送信することができる。前記入力データは、前記コマンドに対応してＧＰＵが処理すべきデータを意味する。
【００２８】
ＧＰＵ（１１０）は、前記入力データを前記コマンドに応答して処理する。このとき、ＧＰＵ（１１０）に含まれた複数の演算コア１１２がＧＰＵメモリユニット１３０に格納されたデータを並列処理できる。
【００２９】
ＧＰＵ（１１０）が、前記処理が完了した処理データをインターフェース２００を介してメインメモリユニット３３０に送信することにより、データ処理システム１０の並列データ処理動作が終了される。
【００３０】
一方、ＧＰＵメモリユニット１３０のサイズは、グラフィックカード１００のスペック（ｓｐｅｃｉｆｉｃａｔｉｏｎ）によって規定されることができる。例えば、グラフィックカード１００の標準によってメモリのサイズが制限され得る。これにより、メインメモリユニット３３０からＧＰＵメモリユニット１３０にデータが送信されるか、ＧＰＵメモリユニット１３０からメインメモリユニット３３０にデータが送信される過程でボトルネック現象が起こり得る。制限されたサイズのＧＰＵメモリユニット１３０は、メインメモリユニット３３０とＧＰＵメモリユニット１３０との間に送信されるデータの単位サイズを制限する。このようなボトルネック現象は、ＧＰＵ（１１０）自体の性能とは関係なく、データ処理システム１０の全体的な性能が大きく減少する結果を生じさせる。
【００３１】
すなわち、ＧＰＵ（１１０）の処理能力（ｐｒｏｃｅｓｓ  ｃａｐａｃｉｔｙ）と関係なく、ＧＰＵメモリユニット１３０が制限されたメモリを有しており、データ処理システム１０の性能が低下する恐れがある。
【００３２】
図２は、本発明の一実施形態に係るデータ処理システム２０の構造を示した図である。
【００３３】
データ処理システム２０は、補助カード４００、拡張カード５００、及びメインカード６００を備えることができる。メインカード６００は、第１の処理ユニット６１０と第１のメモリユニット６３０とを備えることができる。補助カード４００は、第２の処理ユニット４１０と第２のメモリユニット４３０とを備えることができる。第２の処理ユニット４１０は、データの並列処理のために、複数の演算コアを含むことができる。
【００３４】
補助カード４００とメインカード６００とは、第１のインターフェース７００を介して相互通信することができる。第１の処理ユニット６１０と第１のメモリユニット６３０とは、メインカード６００の内部で相互通信することができる。第２の処理ユニット４１０と第２のメモリユニット４３０とは、補助カード４００の内部で相互通信することができる。
【００３５】
拡張カード５００は、第３のメモリユニット５３０を備えることができる。第３のメモリユニット５３０は、拡張メモリコントローラと拡張メモリ装置とを含むメモリシステムでありうる。前記第３のメモリユニット５３０は、第２のメモリユニット４３０に加えて、コマンドに応じて第２の処理ユニット４１０が処理すべき入力データ及び第２の処理ユニット４１０により処理が完了した処理データを格納できる。具体的に、前記拡張メモリコントローラが内部コマンドを送信することによって前記拡張メモリ装置を制御し、前記拡張メモリ装置は、これに応じて前記入力データ及び処理データを格納できる。
【００３６】
拡張カード５００は、第２のインターフェース８００を介してメインカード６００と通信し、第３のインターフェース９００を介して補助カード４００と通信することができる。
【００３７】
第２のメモリユニット４３０だけでなく、拡張カード５００の第３のメモリユニット５３０に前記入力データ及び前記処理データが格納されることにより、第２の処理ユニット４１０を備えるデータ処理システム２０で第２の処理ユニット４１０が１回に処理できるデータサイズが増加しうる。
【００３８】
本発明の一実施形態によれば、第２の処理ユニット４１０は、グラフィック処理ユニット（ＧＰＵ）でありうる。
【００３９】
本発明の一実施形態によれば、補助カード４００は、グラフィックカードでありうる。
【００４０】
本発明の一実施形態によれば、第１のインターフェース７００は、ＰＣＩｅのような高速通信インターフェースでありうる。
【００４１】
本発明の一実施形態によれば、第２のインターフェース８００は、ＰＣＩｅのような高速通信インターフェースでありうる。
【００４２】
データ処理システム２０がブーティングされれば、第１の処理ユニット６１０は、メインカード６００のバイオス（ＢＩＯＳ）の情報を介して補助カード４００及び拡張カード５００を認識できる。
【００４３】
第１の処理ユニット６１０は、ＭＭＩＯ（Ｍｅｍｏｒｙ  Ｍａｐｐｅｄ  Ｉｎｐｕｔ／Ｏｕｔｐｕｔ）を介して補助カード４００及び拡張カード５００にアクセスすることができる。ＭＭＩＯは、入出力装置のレジスタをメモリとして取り扱い、メモリの住所空間を前記レジスタのために割り当てて、プロセッサがメモリにアクセスするときと同じ方法にて前記レジスタにアクセスする入出力方式である。
【００４４】
具体的に、第１の処理ユニット６１０は、第１のメモリユニット６３０の住所空間を補助カード４００及び拡張カード５００のレジスタのために割り当てることができる。これにより、第１の処理ユニット６１０は、第１のメモリユニット６３０にアクセスすることと同じ方法にて補助カード４００及び拡張カード５００にアクセスすることができる。
【００４５】
第１の処理ユニット６１０は、前記ＭＭＩＯを介して第２の処理ユニット４１０にコマンドを送信できる。
【００４６】
第１の処理ユニット６１０は、第１のメモリユニット６３０に格納された入力データを補助カード４００に送信することができる。第２の処理ユニット４１０は、前記入力データを受信して第２のメモリユニット４３０に格納することができる。
【００４７】
第１の処理ユニット６１０は、第１のメモリユニット６３０に格納された入力データを第３のメモリユニット５３０に送信することができる。
【００４８】
第１の処理ユニット６１０は、前記入力データが第２のメモリユニット４３０または第３のメモリユニット５３０に送信されたことを前記ＭＭＩＯを介して第２の処理ユニット４１０に知らせることができる。第２の処理ユニット４１０は、データ処理後、データ処理が完了したことを前記ＭＭＩＯを介して第１の処理ユニット６１０に知らせることができる。
【００４９】
第１の処理ユニット６１０は、第２のメモリユニット４３０または第３のメモリユニット５３０に格納された処理データを受信して第１のメモリユニット６３０に格納することができる。
【００５０】
補助カード４００及び拡張カード５００が第１のメモリユニット６３０にアクセスできる方法のうちの１つは、ＤＭＡ（Ｄｉｒｅｃｔ  Ｍｅｍｏｒｙ  Ａｃｃｅｓｓ）である。ＤＭＡは、グラフィックカードなどの周辺装置がメモリに直接アクセスできるようにする機能である。例えば、補助カード４００及び拡張カード５００は、ＤＭＡコントローラを介して第１のメモリユニット６３０のフレームバッファ（ｆｒａｍｅ  ｂｕｆｆｅｒ）に直接アクセスすることができる。
【００５１】
一実施形態によれば、物理的に第１の処理ユニット６１０とは別に備えられるＤＭＡコントローラを介して補助カード４００及び拡張カード５００と第１のメモリユニット６３０との間にデータ交換動作が行われ得る。一実施形態によれば、ＤＭＡコントローラは、第１の処理ユニット６１０に含まれることができ、この場合、補助カード４００及び拡張カード５００と第１のメモリユニット６３０との間のデータ交換動作は、第１の処理ユニット６１０に含まれた前記ＤＭＡコントローラの制御によって行われることができる。
【００５２】
前記ＤＭＡコントローラが物理的に第１の処理ユニット６１０とは別に備えられても、機能的には第１の処理ユニット６１０に含まれることと理解されることができる。
【００５３】
本明細書では、前記ＤＭＡコントローラが物理的に第１の処理ユニット６１０とは別に備えられる一実施形態と第１の処理ユニット６１０に含まれる一実施形態とを区分せずに、補助カード４００及び拡張カード５００と第１のメモリユニット６３０との間のデータ交換動作が第１の処理ユニット６１０の制御によって行われることと説明する。
【００５４】
本発明の一実施形態によれば、第３のインターフェース９００は、ＰＣＩｅのような高速通信インターフェースでありうる。第２の処理ユニット４１０は、第３のインターフェース９００を介して第３のメモリユニット５３０の拡張メモリコントローラにコマンド及び前記コマンドを行うメモリアドレス情報を含むパケット（ｐａｃｋｅｔ）を送信できる。前記コマンドは、書き込み、読み出し、イレース、フラッシュ（ｆｌｕｓｈ）のようなコマンドでありうる。前記拡張メモリコントローラは、前記送信されたパケットの構造をパージング（ｐａｒｓｉｎｇ）し、前記コマンドに応じて拡張メモリ装置の動作を制御できる。
【００５５】
図２は、メインカード６００、補助カード４００、及び拡張カード５００が各々１つずつ含まれたデータ処理システム２０を例示しているが、１つ以上のメインカード６００、１つ以上の補助カード４００、及び１つ以上の拡張カード５００の互いに異なる組み合わせがデータ処理システム２０に含まれ得る。前記組み合わせにおいて、データ処理システム２０に含まれたカード個数によって第１ないし第３のインターフェース７００〜９００のうち、１つまたはそれ以上は、各々複数個含まれることができる。
【００５６】
図３は、本発明の一実施形態に係る図２のデータ処理システム２０の構造を示した図である。
【００５７】
図３に示すように、第３のメモリユニット５３０は、第１のメモリ領域５３１及び第２のメモリ領域５３３を含むことができる。第１のメモリ領域５３１は、第１の処理ユニット６１０から送信された入力データが格納される領域であり、第２のメモリ領域５３３は、第２の処理ユニット４１０により処理が完了した処理データが格納される領域である。
【００５８】
前記拡張メモリコントローラは、第２のメモリ領域５３３に前記処理データが格納されたことを前記ＭＭＩＯを介して第１の処理ユニット６１０に知らせることができる。
【００５９】
図４は、本発明の一実施形態に係るデータ処理システム２０の並列データ処理動作を示したフローチャートである。
【００６０】
ステップＳ４０２において、第１の処理ユニット６１０は、第１のインターフェース７００を介して第２の処理ユニット４１０にコマンドを送信する。
【００６１】
ステップＳ４０４及びステップＳ４０６において、第１の処理ユニット６１０は、第１のメモリユニット６３０に格納された入力データを第１の入力データ及び第２の入力データに分けることができる。前記第１の入力データは、第２のメモリユニット４３０の容量に基づくことができる。第２のメモリユニット４３０の前記容量を超過する残りのデータは、第２の入力データでありうる。第１の処理ユニット６１０は、前記第１の入力データを第１のインターフェース７００を介して第２のメモリユニット４３０に送信し、前記第２の入力データを第２のインターフェース８００を介して第３のメモリユニット５３０に送信することができる。
【００６２】
ステップＳ４０８において、第２の処理ユニット４１０は、前記コマンドに応じて第２のメモリユニット４３０及び第３のメモリユニット５３０に送信された前記第１及び第２の入力データを受信して処理する。このとき、第２の処理ユニット４１０に含まれた複数の演算コアが前記第１及び第２の入力データを並列処理できる。
【００６３】
このとき、第２のメモリユニット４３０と第３のメモリユニット５３０とは、第２の処理ユニット４１０がアクセスできる１つのメモリスペースとして動作することができる。第２の処理ユニット４１０は、前記第２の入力データを処理するために、第３のインターフェース９００を介して第３のメモリユニット５３０に格納されたデータにアクセスすることができる。
【００６４】
第２の処理ユニット４１０は、前記第２のメモリユニット４３０及び第３のメモリユニット５３０の処理により各々生成された第１及び第２の処理データを第２のメモリユニット４３０及び第３のメモリユニット５３０に各々送信することができる。
【００６５】
第２の処理ユニット４１０は、データ処理が完了したことを第１の処理ユニット６１０が認識できるようにすることができる。例えば、前述したように、第１のメモリユニット６３０の住所空間が補助カード４００のレジスタのために割り当てられている。第２の処理ユニット４１０が前記レジスタを用いてデータ処理が完了したことを表示すれば、第１の処理ユニット６１０は、ＭＭＩＯを介して前記レジスタにアクセスしてデータ処理が完了したことを分かることができる。
【００６６】
あるいは、第２の処理ユニット４１０が第１の処理ユニット６１０にインターラプトを送信することにより、データ処理が完了したことを第１の処理ユニット６１０に知らせることができる。
【００６７】
ステップＳ４１０及びステップＳ４１２において、第１の処理ユニット６１０は、前記第１及び第２の処理データを第１のインターフェース７００及び第２のインターフェース８００を介して受信して第１のメモリユニット６３０に格納することができる。これにより、データ処理システム２０の並列データ処理動作が終了される。
【００６８】
図５は、本発明の一実施形態に係るデータ処理システム２０の並列データ処理動作を示したフローチャートである。
【００６９】
ステップＳ５０２において、第１の処理ユニット６１０は、第１のインターフェース７００を介して第２の処理ユニット４１０にコマンドを送信する。
【００７０】
ステップＳ５０４及びステップＳ５０６において、第１の処理ユニット６１０は、第１のメモリユニット６３０に格納された入力データを第１及び第２の入力データに分けることができる。前記第１の入力データは、第２のメモリユニット４３０の容量に基づくことができる。第２のメモリユニット４３０の容量を超過する残りのデータは、第２の入力データでありうる。第１の処理ユニット６１０は、前記第１の入力データを第１のインターフェース７００を介して第２のメモリユニット４３０に送信し、前記第２の入力データを第２のインターフェース８００を介して第３のメモリユニット５３０の第１のメモリ領域５３１に送信することができる。
【００７１】
ステップＳ５０８において、第２の処理ユニット４１０は、前記コマンドに応じて第２のメモリユニット４３０及び第１のメモリ領域５３１に送信された前記第１及び第２の入力データを受信して処理する。
【００７２】
このとき、第２のメモリユニット４３０と第３のメモリユニット５３０とは、第２の処理ユニット４１０がアクセスできる１つのメモリスペースとして動作することができる。
【００７３】
ステップＳ５１０及びステップＳ５１２において、第２の処理ユニット４１０は、前記処理された第１及び第２の処理データを第３のメモリユニット５３０の第２のメモリ領域５３３に送信することができる。
【００７４】
拡張メモリコントローラは、第２のメモリ領域５３３に前記第１及び第２の処理データが格納されていることを第１の処理ユニット６１０が認識できるようにすることができる。例えば、前述したように、第１のメモリユニット６３０の住所空間が拡張カード５００のレジスタのために割り当てられている。前記拡張メモリコントローラが、前記レジスタを用いて前記第１及び第２の処理データが第２のメモリ領域５３３に格納されていることを表示すれば、第１の処理ユニット６１０は、ＭＭＩＯを介して前記レジスタにアクセスして、第２のメモリ領域５３３に前記第１及び第２の処理データが格納されていることを分かることができる。
【００７５】
あるいは、前記拡張メモリコントローラが第１の処理ユニット６１０にインターラプトを送信することにより、第２のメモリ領域５３３に前記第１及び第２の処理データが格納されていることを第１の処理ユニット６１０に知らせることができる。
【００７６】
ステップＳ５１４において、第１の処理ユニット６１０は、前記第１及び第２の処理データを第２のインターフェース８００を介して受信して第１のメモリユニット６３０に格納することができる。
【００７７】
本発明の一実施形態によれば、第１の処理ユニット６１０は、前記第１及び第２の入力データの処理中にも、処理が完了して第２のメモリ領域５３３に格納された前記第１及び第２の処理データを受信することができる。
【００７８】
これにより、データ処理システム２０の並列データ処理動作が終了される。
【００７９】
この場合、第２のインターフェース８００だけが前記第１及び第２の処理データの送信を行うので、第１のインターフェース７００を介しての補助カード４００及びメインカード６００間のコマンド及び入力データ送信は、前記第１及び第２の処理データ送信の影響を受けない。したがって、データ処理システム２０の性能が向上し得る。
【００８０】
図６は、本発明の一実施形態に係るデータ処理システム２０の並列データ処理動作を示したフローチャートである。
【００８１】
図６に示すように、ステップＳ６０２において、第１の処理ユニット６１０は、第１のインターフェース７００を介して第２の処理ユニット４１０にコマンドを送信する。
【００８２】
ステップＳ６０４において、第１の処理ユニット６１０は、入力データを第２のインターフェース８００を介して第３のメモリユニット５３０に送信することができる。
【００８３】
一実施形態において、第２の処理ユニット４１０が第２のメモリユニット４３０にアクセスする速度は、第２の処理ユニット４１０が第３のインターフェース９００を介して第３のメモリユニット５３０にアクセスする速度より速い。したがって、第２のメモリユニット４３０は、第２の処理ユニット４１０のキャッシュメモリとして、第３のメモリユニット５３０は、第２の処理ユニット４１０のメインメモリとして動作することができる。このようなメモリ階層構造（Ｍｅｍｏｒｙ  ｈｉｅｒａｒｃｈｙ）は、第２の処理ユニット４１０の処理性能を向上させることができる。
【００８４】
ステップＳ６０６において、第２の処理ユニット４１０は、第３のメモリユニット５３０から前記入力データを受信することができる。
【００８５】
ステップＳ６０８において、第２の処理ユニット４１０は、前記コマンドに応じて、前記受信した入力データを処理する。このとき、第２の処理ユニット４１０は、前記入力データに速くアクセスするために、前記入力データを第２のメモリユニット４３０にキャッシングすることができる。前記入力データは、第２の処理ユニット４１０に含まれた複数の演算コアが並列処理できる。
【００８６】
ステップＳ６１０において、第２の処理ユニット４１０のデータ処理が完了すれば、前記処理が完了した処理データは、第３のメモリユニット５３０に送信されることができる。
【００８７】
前述したように、第１の処理ユニット６１０は、ＭＭＩＯを介して補助カード４００のレジスタにアクセスしてデータ処理が完了したことを分かることができる。
【００８８】
あるいは、第２の処理ユニット４１０が第１の処理ユニット６１０にインターラプトを送信することにより、データ処理が完了したことを第１の処理ユニット６１０に知らせることができる。
【００８９】
ステップＳ６１２において、第１の処理ユニット６１０は、前記処理データを第２のインターフェース８００を介して受信して第１のメモリユニット６３０に格納することができる。これにより、データ処理システム２０の並列データ処理動作が終了される。
【００９０】
図７は、本発明の一実施形態に係るデータ処理システム２０の並列データ処理動作を示したフローチャートである。
【００９１】
ステップＳ７０２において、第１の処理ユニット６１０は、第１のインターフェース７００を介して第２の処理ユニット４１０にコマンドを送信する。
【００９２】
ステップＳ７０４において、第１の処理ユニット６１０は、入力データを第２のインターフェース８００を介して第３のメモリユニット５３０の第１のメモリ領域５３１に送信することができる。
【００９３】
ステップＳ７０６において、第２の処理ユニット４１０は、第１のメモリ領域５３１から前記入力データを受信することができる。
【００９４】
ステップＳ７０８において、第２の処理ユニット４１０は、前記コマンドに応じて前記受信した入力データを処理する。このとき、第２の処理ユニット４１０は、前記データに速くアクセスするために、前記入力データを第２のメモリユニット４３０にキャッシングすることができる。前記入力データは、第２の処理ユニット４１０に含まれた複数の演算コアにより並列処理することができる。
【００９５】
前記入力データの処理が完了すれば、ステップＳ７１０において第２の処理ユニット４１０は、前記処理データを第３のメモリユニット５３０の第２のメモリ領域５３３に送信することができる。
【００９６】
前述したように、第１の処理ユニット６１０は、ＭＭＩＯを介して拡張カード５００のレジスタにアクセスして第２のメモリ領域５３３に処理データが格納されていることを分かることができる。
【００９７】
あるいは、拡張メモリコントローラが第１の処理ユニット６１０にインターラプトを送信することにより、第２のメモリ領域５３３に前記処理データが格納されていることを第１の処理ユニット６１０に知らせることができる。
【００９８】
ステップＳ７１２において、第１の処理ユニット６１０は、前記処理データを第２のインターフェース８００を介して受信して第１のメモリユニット６３０に格納することができる。
【００９９】
本発明の一実施形態によれば、第１の処理ユニット６１０は、前記入力データの処理中にも、処理が完了して第２のメモリ領域５３３に格納された前記処理データを受信することができる。
【０１００】
これにより、データ処理システム２０の並列データ処理動作が終了される。
【０１０１】
この場合、図５を参照して説明したことと同様に、第１のインターフェース７００を介しての補助カード４００及びメインカード６００間のコマンド及び入力データ送信は、処理データ送信の影響を受けない。したがって、データ処理システム２０の性能が向上し得る。
【０１０２】
図８は、本発明の一実施形態に係るデータ処理システム２０の物理的構造を示した斜視図である。
【０１０３】
図８に示すように、メインカード６００は、メインボード１０００に装着されることができる。一実施形態において、メインボードに装着されるメインカードは、前記メインカードの第１の処理ユニットが前記メインボードに結合されることを意味する。例えば、前記第１の処理ユニットは、前記メインボードに結合されるために、ワイヤ・ボンディング（ｗｉｒｅ  ｂｏｎｄｉｎｇ）されるか、例えば、ハンダボール（ｓｏｌｄｅｒ  ｂａｌｌ）を使用して半田付け（ｓｏｌｄｅｒｉｎｇ）されるか、ソケットに差し込まれることができる。
【０１０４】
他の実施形態において、メインカードは、第１の処理ユニットが搭載された印刷回路基板（ＰＣＢ）を含む。前記第１の処理ユニットが装着されるＰＣＢは、拡張スロットまたは当業界に公示された他のインターフェースを介してメインボードに動作可能なように連結される。
【０１０５】
さらに他の実施形態において、第１のメモリユニットは、メインプロセッサに対して図８〜図１０に示されたようにメインボードに直接連結されるか、前記メインボードに連結されたＰＣＢカードを経由して結合されることができる。
【０１０６】
補助カード４００及び拡張カード５００は、各々メインボード１０００上の補助スロット及び拡張スロットに装着されることができる。図８の例示において、第１のスロット１０１０が前記補助スロットに該当し、第２のスロット１０３０が前記拡張スロットに該当する。
【０１０７】
本発明の一実施形態によれば、第１のスロット１０１０及び第２のスロット１０３０は、ＰＣＩｅスロットでありうる。
【０１０８】
補助カード４００及びメインカード６００は、前記補助スロットを介して相互通信することができる。すなわち、前記補助スロットによって第１のインターフェース７００が形成され得る。
【０１０９】
拡張カード５００及びメインカード６００は、前記拡張スロットを介して相互通信することができる。すなわち、前記拡張スロットによって第２のインターフェース８００が形成され得る。
【０１１０】
補助カード４００及び拡張カード５００を連結するための別のインターフェース１０５０が存在し得る。すなわち、別のインターフェース１０５０によって第３のインターフェース９００が形成され得る。
【０１１１】
本発明の一実施形態によれば、メインボード１０００は、印刷回路基板（ＰＣＢ）形態であり、別のインターフェース１０５０が前記印刷回路基板に印刷されていることができる。
【０１１２】
図９は、本発明の一実施形態に係るデータ処理システム２０の物理的構造を示した斜視図である。
【０１１３】
図９に示すように、メインカード６００は、メインボード１０００上に装着されることができる。メインボード１０００上のライザーカードスロットにライザーカード（ｒｉｓｅｒ  ｃａｒｄ、１１００）が装着され得る。図９の例示において、第１のスロット１０１０が前記ライザーカードスロットに該当する。ライザーカード１１００は、他のカードを装着できる１つまたはそれ以上の追加スロットを含むカードである。
【０１１４】
ライザーカード１１００上の補助スロット及び拡張スロットに補助カード４００及び拡張カード５００が各々装着され得る。図９の例示において、第３のスロット１１１０が前記補助スロットに該当し、第４のスロット１１３０が前記拡張スロットに該当する。第２のスロット１０３０は、使用されなかった。補助カード４００及びメインカード６００は、前記補助スロット及びライザーカードスロットを介して相互通信することができる。すなわち、前記補助スロット及びライザーカードスロットによって第１のインターフェース７００が形成され得る。
【０１１５】
拡張カード５００及びメインカード６００は、前記拡張スロット及びライザーカードスロットを介して相互通信することができる。すなわち、前記拡張スロット及びライザーカードスロットによって第２のインターフェース８００が形成され得る。
【０１１６】
補助カード４００及び拡張カード５００は、前記補助スロット及び拡張スロットを介して相互通信することができる。すなわち、前記補助スロット及び拡張スロットによって第３のインターフェース９００が形成され得る。
【０１１７】
図１０は、本発明の一実施形態に係るデータ処理システム２０の物理的構造を示した図である。
【０１１８】
本発明の一実施形態によれば、メインカード６００は、メインボード１０００上に装着されることができる。補助カード４００は、メインボード１０００上の補助スロットに装着されることができる。図１０の例示では、第１のスロット１０１０が前記補助スロットに該当する。補助カード４００は、拡張カード５００を装着するための拡張スロット１２１０を含むことができる。拡張カード５００は、拡張スロット１２１０を介して補助カード４００と直接連結されることができる。
【０１１９】
このとき、補助カード４００及びメインカード６００は、前記補助スロットを介して相互通信することができる。すなわち、前記補助スロットによって第１のインターフェース７００が形成され得る。
【０１２０】
拡張カード５００及びメインカード６００は、前記補助スロット及び拡張スロット１２１０を介して相互通信することができる。すなわち、前記補助スロット及び拡張スロット１２１０を介して第２のインターフェース８００が形成され得る。
【０１２１】
補助カード４００及び拡張カード５００は、拡張スロット１２１０を介して相互通信することができる。すなわち、拡張スロット１２１０を介して第３のインターフェース９００が形成され得る。
【０１２２】
本発明の実施形態によれば、第２の処理ユニット４１０は、第２のメモリユニット４３０だけでなく、第３のメモリユニット５３０を用いて、１回に多量の入力データを第１のメモリユニット６３０から受信してデータ並列処理を行うことができる。受信されるデータのサイズが増加してデータが受信される頻度が減少すれば、前記ボトルネック現象の発生が減少してデータ処理システム２０の全体的な性能が向上し、第２の処理ユニット４１０の個別演算コアが処理できるデータの量が増加されて、データ処理システム２０の分析能力が向上する。
【０１２３】
一方、本発明の詳細な説明では、具体的な実施形態に関して説明したが、本発明の範囲から逸脱しない限度内で様々な変形が可能であることはもちろんである。したがって、本発明の範囲は、説明された実施形態に局限されて決められてはならず、後述する特許請求の範囲だけでなく、この特許請求の範囲と均等なものなどにより決められるべきである。
【図１】
2019185743.tif 000003
【図２】
2019185743.tif 000004
【図３】
2019185743.tif 000005
【図４】
2019185743.tif 000006
【図５】
2019185743.tif 000007
【図６】
2019185743.tif 000008
【図７】
2019185743.tif 000009
【図８】
2019185743.tif 000010
【図９】
2019185743.tif 000011
【図１０】
2019185743.tif 000012