JP2022035436A - 集積回路、データ転送システム、処理方法及びプログラム - Google Patents
集積回路、データ転送システム、処理方法及びプログラム Download PDFInfo
- Publication number
- JP2022035436A JP2022035436A JP2020139768A JP2020139768A JP2022035436A JP 2022035436 A JP2022035436 A JP 2022035436A JP 2020139768 A JP2020139768 A JP 2020139768A JP 2020139768 A JP2020139768 A JP 2020139768A JP 2022035436 A JP2022035436 A JP 2022035436A
- Authority
- JP
- Japan
- Prior art keywords
- data
- memory
- identifier
- storage means
- integrated circuit
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Images
Landscapes
- Bus Control (AREA)
Abstract
【課題】データ転送時間を短くすることができる集積回路を提供する。【解決手段】集積回路は、異なる集積回路から第1データ及び第2データを取得する取得手段と、前記取得手段が取得した第2データについて識別子を生成する生成手段と、前記識別子に基づいて前記第1データ及び前記第2データの書き込みが完了したか否かを示すフラグを決定する第1記憶手段と、を備える。【選択図】図8
Description
本発明は、集積回路、データ転送システム、処理方法及びプログラムに関する。
現在、1つのコンピュータにおいて、複数のノード(LSI、Large Scale Integrated Circuit)が実装されることが主流になってきている。1つのコンピュータにおいて複数のLSIが実装される場合、LSI間はPCI(Peripheral Component Interconnect) expressで接続され、LSIにおいて、複数のメモリがリングバスで接続されることがある。
特許文献1には、関連する技術として、リングバスを介してデータをメモリに転送する技術が開示されている。
特許文献1には、関連する技術として、リングバスを介してデータをメモリに転送する技術が開示されている。
ところで、1つのコンピュータにおいて複数のLSIが実装され、LSI間がPCI expressで接続され、LSIにおいてリングバスを介して複数のメモリが接続され、複数のLSIのうちの1つから複数のLSIのうちの他のLSIのメモリへデータが転送される場合、一般的に、DMA(Direct Memory Access)コントローラがそのデータ転送を制御し、対象のメモリに対してリングバスが最短となる経路でデータを転送する。そして、DMAコントローラが、例えば、第1メモリのあとに第2メモリにデータを転送する場合、DMAコントローラは、第1メモリへデータと共にSYNC信号を送信し、第1メモリから受信の終了を通知するACK信号を受信して、はじめて、第2メモリへデータを転送することになる。つまり、1つのコンピュータにおいて複数のLSIが実装され、LSI間がPCI expressで接続され、LSIにおいてリングバスを介して複数のメモリが接続され、複数のLSIのうちの1つから複数のLSIのうちの他のLSIのメモリへデータが転送される場合において、同期制御が必要な場合、複数のデータ間で転送される順序を保証する必要があるため、データ転送時間が長くなってしまう。
本発明の各態様は、上記の課題を解決することのできる集積回路、データ転送システム、処理方法及びプログラムを提供することを目的としている。
上記目的を達成するために、本発明の一態様によれば、集積回路は、異なる集積回路から第1データ及び第2データを取得する取得手段と、前記取得手段が取得した第2データについて識別子を生成する生成手段と、前記識別子に基づいて前記第1データ及び前記第2データの書き込みが完了したか否かを示すフラグを決定する第1記憶手段と、を備える。
上記目的を達成するために、本発明の別の態様によれば、データ転送システムは、上記の集積回路と、前記異なる集積回路と、を備える。
上記目的を達成するために、本発明の別の態様によれば、処理方法は、異なる集積回路から第1データ及び第2データを取得することと、取得した第2データについて識別子を生成することと、前記識別子に基づいて前記第1データ及び前記第2データの書き込みが完了したか否かを示すフラグを決定することと、を含む。
上記目的を達成するために、本発明の別の態様によれば、プログラムは、コンピュータに、異なる集積回路から第1データ及び第2データを取得することと、取得した第2データについて識別子を生成することと、前記識別子に基づいて前記第1データ及び前記第2データの書き込みが完了したか否かを示すフラグを決定することと、を実行させる。
本発明の各態様によれば、データ転送時間を短くすることができる。
以下、図面を参照しながら実施形態について詳しく説明する。
<実施形態>
本発明の一実施形態によるコンピュータ1(データ転送システムの一例)は、複数のデータ間で転送される順序を保証し、トータルの転送時間を短くすることのできるコンピュータである。コンピュータ1は、図1に示すように、LSI(Large Scale Integrated Circuit)10(集積回路の一例)、LSI20(集積回路の一例)、PCI(Peripheral Component Interconnect) express30を備える。
<実施形態>
本発明の一実施形態によるコンピュータ1(データ転送システムの一例)は、複数のデータ間で転送される順序を保証し、トータルの転送時間を短くすることのできるコンピュータである。コンピュータ1は、図1に示すように、LSI(Large Scale Integrated Circuit)10(集積回路の一例)、LSI20(集積回路の一例)、PCI(Peripheral Component Interconnect) express30を備える。
LSI10は、PCI express30を介して、LSI20にデータを転送する。PCI express30は、LSI10とLSI20との間でデータを転送する手段である。
LSI20は、図1に示すように、DMA(Direct Memory Access)コントローラ201、メモリ202a(第1記憶手段の一例)、メモリ202b(第2記憶手段の一例)、メモリ202c、メモリ202d、コア203(読み出し手段の一例)、リングバス204を備える。なお、メモリ202a、メモリ202b、メモリ202c、メモリ202dを総称して、メモリ202という。
DMAコントローラ201は、図2に示すように、制御部2011(取得手段の一例、第1送信手段の一例、第2送信手段の一例)、ID(IDentification)生成部2012(生成手段の一例)を備える。
制御部2011は、LSI20におけるデータの転送を制御する。
ID生成部2012は、転送されるデータを識別するためのそのデータ固有の識別子(以下、IDと記載)を生成する。
制御部2011は、LSI20におけるデータの転送を制御する。
ID生成部2012は、転送されるデータを識別するためのそのデータ固有の識別子(以下、IDと記載)を生成する。
メモリ202のそれぞれは、リングバス204を介して、DMAコントローラ201、メモリ202a、メモリ202b、メモリ202c、メモリ202d、DMAコントローラ201の順にリング状に接続される。
コア203は、メモリ202が記憶するデータを読み出す。コア203は、読み出したデータに基づいて所定の演算を実行する。
次に、コンピュータ1が行う処理について説明する。
ここでは、図1、図5を参照して、LSI10からLSI20のメモリ202bへ第1データd1が転送され、メモリ202aへ第2データd2が転送され、コア203がメモリ202bからデータを読み出す場合を例に、図3に示すコンピュータ1が行うデータ転送の処理、及び、図4に示すコンピュータ1が行うメモリ202からデータを読み出す処理について説明する。また、ここでは、第1データd1は、“0x123”(図5における本発明の元データ1に相当)であり、第2データd2は、特定のフラグが1であることを示すデータ“特定フラグ=1”(図5における本発明の元データ2に相当)であるものとする。また、図1に示すように、DMAコントローラ201からメモリ202aを介してメモリ202bまでの経路を経路L1とする。また、図1に示すように、DMAコントローラ201からメモリ202aまでの経路を経路L2とする。また、図1に示すように、DMAコントローラ201からメモリ202d、メモリ202c、メモリ202bを介してメモリ202aまでの経路を経路L3とする。また、図1に示すように、メモリ202bからメモリ202aまでの経路を経路L4とする。また、図1に示すように、コア203からメモリ202aまでの経路を経路L5とする。また、図1に示すように、コア203からメモリ202bまでの経路を経路L6とする。
ここでは、図1、図5を参照して、LSI10からLSI20のメモリ202bへ第1データd1が転送され、メモリ202aへ第2データd2が転送され、コア203がメモリ202bからデータを読み出す場合を例に、図3に示すコンピュータ1が行うデータ転送の処理、及び、図4に示すコンピュータ1が行うメモリ202からデータを読み出す処理について説明する。また、ここでは、第1データd1は、“0x123”(図5における本発明の元データ1に相当)であり、第2データd2は、特定のフラグが1であることを示すデータ“特定フラグ=1”(図5における本発明の元データ2に相当)であるものとする。また、図1に示すように、DMAコントローラ201からメモリ202aを介してメモリ202bまでの経路を経路L1とする。また、図1に示すように、DMAコントローラ201からメモリ202aまでの経路を経路L2とする。また、図1に示すように、DMAコントローラ201からメモリ202d、メモリ202c、メモリ202bを介してメモリ202aまでの経路を経路L3とする。また、図1に示すように、メモリ202bからメモリ202aまでの経路を経路L4とする。また、図1に示すように、コア203からメモリ202aまでの経路を経路L5とする。また、図1に示すように、コア203からメモリ202bまでの経路を経路L6とする。
まず、図3に示すコンピュータ1が行うデータ転送の処理について説明する。
LSI10は、第1データd1及び第2データd2についてライトリクエストを発行する。そして、LSI10は、PCI express30を介して、第1データd1、第2データd2の順番で、それらのデータをLSI20に送信する。
LSI10は、第1データd1及び第2データd2についてライトリクエストを発行する。そして、LSI10は、PCI express30を介して、第1データd1、第2データd2の順番で、それらのデータをLSI20に送信する。
制御部2011は、LSI10から第1データd1を受信する(ステップS1)。制御部2011が第1データd1及び第2データd2を受信すると、ID生成部2012は、第2データd2に対して、例えば1ビットのIDである“0x1”(図5における本発明のIDに相当)を生成する(ステップS2)。そして、ID生成部2012は、生成した“0x1”を第1データd1の上位ビットに追加する(ステップS3、図5における本発明のデータ1+IDに相当、以下、第1データd1+IDと記載)。また、ID生成部2012は、生成した“0x1”を第2データd2の上位ビットに追加する(ステップS4、図5における本発明のデータ2+IDに相当、以下、第2データd2+IDと記載)。
制御部2011は、経路L1を介して、第1データd1+IDをメモリ202bに転送する(ステップS5)。また、制御部2011は、第1データd1+IDのメモリ202bへの転送の完了を確認せずに、経路L2を介して、第2データd2+IDをメモリ202aに転送する(ステップS6)。また、制御部2011は、ステップS6の処理と並行して、経路L3を介して、IDをメモリ202aへ転送する(ステップS7)。
メモリ202bは、第1データd1+IDを受信する(ステップS8)。メモリ202bは、経路L4を介して、受信した第1データd1+IDに含まれるIDをメモリ202aに転送する(ステップS9)。
メモリ202aは、経路L2を介して第2データd2+IDを受信すると、第2データd2+IDを記憶する(ステップS10)。また、メモリ202aは、経路L3または経路L4を介してIDを受信すると、IDを記憶する(ステップS11)。なお、メモリ202aは、ステップS10~ステップS11の処理において、後着したIDを廃棄する。
メモリ202aは、経路L2を介して第2データd2+IDを受信し、かつ、経路L3または経路L4を介してIDを受信したか否かを判定する(ステップS12)。
メモリ202aは、第2データd2+IDを受信し、かつ、IDを受信したと判定した場合(ステップS12においてYES)、特定のレジスタにおける特定フラグに1をアサインする(ステップS13)。
また、メモリ202aは、ステップS12の処理において、上記以外の判定を行った場合(ステップS12においてNO)、ステップS12の処理に戻す。
なお、特定フラグの初期値は0である。特定フラグに1がアサインされる、すなわち、第2データd2+IDを受信し、かつ、IDを受信したことが特定フラグ1により示されることにより、第1データd1と第2データd2の書き込みがすべて終了したことがわかる。
メモリ202aは、第2データd2+IDを受信し、かつ、IDを受信したと判定した場合(ステップS12においてYES)、特定のレジスタにおける特定フラグに1をアサインする(ステップS13)。
また、メモリ202aは、ステップS12の処理において、上記以外の判定を行った場合(ステップS12においてNO)、ステップS12の処理に戻す。
なお、特定フラグの初期値は0である。特定フラグに1がアサインされる、すなわち、第2データd2+IDを受信し、かつ、IDを受信したことが特定フラグ1により示されることにより、第1データd1と第2データd2の書き込みがすべて終了したことがわかる。
次に、図4に示すコンピュータ1が行うメモリ202からデータを読み出す処理について説明する。
コア203は、第1データd1を読み出す場合、経路L5を介して、一定の時間間隔で問い合わせる、すなわちポーリングを行うことにより、メモリ202aから特定フラグを取得する(ステップS21)。コア203は、特定フラグが1であるか否かを判定する(ステップS22)。
コア203は、特定フラグが0であると判定した場合(ステップS22においてNO)、ステップS22の処理に戻す。
また、コア203は、特定フラグが1であると判定した場合(ステップS22においてYES)、経路L6を介して、メモリ202bから第1データd1を読み出す(ステップS23)。
なお、この処理は、メモリ202aにおける特定フラグが0である場合、第1データd1及び第2データd2の少なくとも一方がメモリ202に書き込まれていない、すなわち、所望のデータとなっておらず、メモリ202にアクセスした場合、誤ったデータにアクセスすることになるという考えに基づくものである。
コア203は、第1データd1を読み出す場合、経路L5を介して、一定の時間間隔で問い合わせる、すなわちポーリングを行うことにより、メモリ202aから特定フラグを取得する(ステップS21)。コア203は、特定フラグが1であるか否かを判定する(ステップS22)。
コア203は、特定フラグが0であると判定した場合(ステップS22においてNO)、ステップS22の処理に戻す。
また、コア203は、特定フラグが1であると判定した場合(ステップS22においてYES)、経路L6を介して、メモリ202bから第1データd1を読み出す(ステップS23)。
なお、この処理は、メモリ202aにおける特定フラグが0である場合、第1データd1及び第2データd2の少なくとも一方がメモリ202に書き込まれていない、すなわち、所望のデータとなっておらず、メモリ202にアクセスした場合、誤ったデータにアクセスすることになるという考えに基づくものである。
なお、上述の一実施形態では、第1データd1の通信時間は、第1データd1+IDの送信時点から経路L1を介したメモリ202bの受信時点までの時間によって定義される。また、第2データd2の通信時間は、第2データd2+IDの送信時点から、メモリ202aに第2データd2+IDと、DMAコントローラ201から経路L3を介したメモリ202aによるID、または、メモリ202bから経路L4を介したメモリ202aによるIDとの受信時点までの短い方の時間によって定義される。
また、上述の一実施形態では、メモリ202aへのデータ書き込みは、下記のケース1とケース2に場合分けされる。
メモリ202aがDMAコントローラ201からのIDと第2データd2+IDとを受信するケース1では、第2データd2の通信時間は、DMAコントローラ201から経路L2を介してメモリ202aに第2データd2+IDが転送されるまでの時間と、DMAコントローラ201から経路L3を介してメモリ202aにIDが転送されるまでの時間の長い方となる。
つまり、経路L3は経路L2よりも長いので、第2データd2の通信時間は、経路L3を介してメモリ202aにIDが転送された時間となる。
このケース1では、第2データd2が転送される経路L2は、第1データd1が転送される経路L1よりも短い。そのため、第2データd2が第1データd1よりも早く転送されるが、経路L3は経路L1より長いため、DMAコントローラ201から経路L3を介して転送されるIDと第2データd2とがメモリ202aに送信されて初めて書き込みが終了したことを示す特定フラグが1となる。そのため、第1データd1の書き込みがメモリ202bに行われたことを保証することができる。
また、メモリ202aがメモリ202bからのIDと第2データd2+IDとを受信するケース2では、第2データd2の通信時間は、DMAコントローラ201から経路L2を介してメモリ202aに第2データd2+IDが転送されるまでの時間と、メモリ202bが第1データを記憶し、メモリ202bから経路L4を介してメモリ202aにIDが転送されるまでの時間の長い方となる。
つまり、経路L1+経路L4は、経路L2よりも長いので、第2データd2の通信時間は、経路L1+経路L3を介してメモリ202aにIDが転送された時間となる。
このケース2では、メモリ202bから経路L4を介したメモリ202aへのIDの転送は、第1データd1の書き込みが完了した後に行われる。そのため、IDと第2データd2とがメモリ202a送信されて初めて書き込みが終了したことを示す特定フラグが1となる。そのため、第1データd1の書き込みがメモリ202bに行われたことを保証することができる。
メモリ202aがDMAコントローラ201からのIDと第2データd2+IDとを受信するケース1では、第2データd2の通信時間は、DMAコントローラ201から経路L2を介してメモリ202aに第2データd2+IDが転送されるまでの時間と、DMAコントローラ201から経路L3を介してメモリ202aにIDが転送されるまでの時間の長い方となる。
つまり、経路L3は経路L2よりも長いので、第2データd2の通信時間は、経路L3を介してメモリ202aにIDが転送された時間となる。
このケース1では、第2データd2が転送される経路L2は、第1データd1が転送される経路L1よりも短い。そのため、第2データd2が第1データd1よりも早く転送されるが、経路L3は経路L1より長いため、DMAコントローラ201から経路L3を介して転送されるIDと第2データd2とがメモリ202aに送信されて初めて書き込みが終了したことを示す特定フラグが1となる。そのため、第1データd1の書き込みがメモリ202bに行われたことを保証することができる。
また、メモリ202aがメモリ202bからのIDと第2データd2+IDとを受信するケース2では、第2データd2の通信時間は、DMAコントローラ201から経路L2を介してメモリ202aに第2データd2+IDが転送されるまでの時間と、メモリ202bが第1データを記憶し、メモリ202bから経路L4を介してメモリ202aにIDが転送されるまでの時間の長い方となる。
つまり、経路L1+経路L4は、経路L2よりも長いので、第2データd2の通信時間は、経路L1+経路L3を介してメモリ202aにIDが転送された時間となる。
このケース2では、メモリ202bから経路L4を介したメモリ202aへのIDの転送は、第1データd1の書き込みが完了した後に行われる。そのため、IDと第2データd2とがメモリ202a送信されて初めて書き込みが終了したことを示す特定フラグが1となる。そのため、第1データd1の書き込みがメモリ202bに行われたことを保証することができる。
つまり、上述の実施形態では、第1データd1と第2データd2とで、第1データd1を第2データd2よりも早く書き込むという書き込み順序を保証することにより、メモリ202aにおける特定フラグが1であることが確認できた時点で、コア203がメモリ202aから読み出したデータの正確さを保証することができる。
また、DMAコントローラ201からのIDの転送がメモリ202bからのIDの転送よりも遅い場合、メモリ202aは、メモリ202bから転送したIDを先に受信し、データ2の書き込みが早く完了できる。
ここで、図7を参照して、本発明の一実施形態によるコンピュータ1との比較対象となる図6に示す関連するコンピュータについて説明する。
コンピュータ1は、図6に示すように、LSI10、LSI20、PCI express30を備える。
コンピュータ1は、図6に示すように、LSI10、LSI20、PCI express30を備える。
LSI10は、PCI express30を介して、LSI20にデータを転送する。PCI express30は、LSI10とLSI20との間でデータを転送する手段である。
LSI20は、図6に示すように、DMAコントローラ201、メモリ202a、メモリ202b、メモリ202c、メモリ202d、コア203、リングバス204を備える。メモリ202a、メモリ202b、メモリ202c、メモリ202dを総称して、メモリ202という。
DMAコントローラ201は、リングバス204上でデータの転送経路を判断する。具体的には、DMAコントローラ201は、対象となるメモリ202へ一番短い経路でデータを転送する。
LSI20におけるリングバス204を介して同期が必要なデータを転送する場合、先に転送したデータの転送が終了しないと、次のデータを転送することができない。図6に示すコンピュータ1では、PCI express30を使用して、LSI10から転送される第1データd1がDMAコントローラ201を介してメモリ202bに書き込まれる。その後、LSI10から転送される第2データd2がDMAコントローラ201を介してメモリ202aに書き込む場合、DMAコントローラ201は、その第1データd1を経路L1を介してメモリ2020bに転送する。そして、DMAコントローラ201は、メモリ202bに第1データd1が送信されたことを確認した後、第2データd2をメモリ202aに送信する必要がある。メモリ202bに書き込んだ第1データd1の確認は、LSI10から出力した第1データd1と共に図6に示すsync信号(図7におけるデータ1に相当)をDMAコントローラ201を介してメモリ202bに送信し、第1データd1の書き込みが終了したときに、メモリ202bがsync信号の確認応答であるack信号を経路L7を介してDMAコントローラ201へ送信することによって行われる。このack信号により、DMAコントローラ201は、第1データd1の書き込みの終了を知ることができる。DMAコントローラ201による第2データd2の送信は、このack信号を受信した後に行われる。第2データd2の書き込みが終了すると、メモリ202aにおける特定フラグに1が書き込まれる。
コア203は、メモリ202bに書き込んだ第1データd1を読み出す場合、まず経路L5を介してポーリングを行う。これにより、コア203は、メモリ202aにおける特定フラグが1であるか否かを確認することができる。コア203は、特定フラグが1である場合に、経路L6を介してメモリ202bから第1データd1を読み出す。
なお、第1データd1の書き込みが終わらないときにDMAコントローラ201が第2データd2を転送した場合、経路L2が経路L1よりも短いため、第2データd2は対象のメモリ202aよりも先に書き込んでしまう可能性がある。この場合、メモリ202aにおける特定フラグは1であるが、メモリ202bには第1データd1がまだ書き込まれていない。よって、コア203は、経路L5を介してメモリ202aにおける特定フラグが1であることを確認し、経路L6を介してメモリ202bからデータを読み出しても、メモリ202bには第1データd1が書き込まれていないため、読み出したデータは誤ったデータである。そのため、図6に示すコンピュータ1では、複数のデータを並行して転送することはできず、データ転送時間が長くなる。その結果、図6に示すコンピュータ1では、メモリアクセスのレイテンシが大きくなってしまう。
以上が図6に示すコンピュータ1の説明である。
LSI20におけるリングバス204を介して同期が必要なデータを転送する場合、先に転送したデータの転送が終了しないと、次のデータを転送することができない。図6に示すコンピュータ1では、PCI express30を使用して、LSI10から転送される第1データd1がDMAコントローラ201を介してメモリ202bに書き込まれる。その後、LSI10から転送される第2データd2がDMAコントローラ201を介してメモリ202aに書き込む場合、DMAコントローラ201は、その第1データd1を経路L1を介してメモリ2020bに転送する。そして、DMAコントローラ201は、メモリ202bに第1データd1が送信されたことを確認した後、第2データd2をメモリ202aに送信する必要がある。メモリ202bに書き込んだ第1データd1の確認は、LSI10から出力した第1データd1と共に図6に示すsync信号(図7におけるデータ1に相当)をDMAコントローラ201を介してメモリ202bに送信し、第1データd1の書き込みが終了したときに、メモリ202bがsync信号の確認応答であるack信号を経路L7を介してDMAコントローラ201へ送信することによって行われる。このack信号により、DMAコントローラ201は、第1データd1の書き込みの終了を知ることができる。DMAコントローラ201による第2データd2の送信は、このack信号を受信した後に行われる。第2データd2の書き込みが終了すると、メモリ202aにおける特定フラグに1が書き込まれる。
コア203は、メモリ202bに書き込んだ第1データd1を読み出す場合、まず経路L5を介してポーリングを行う。これにより、コア203は、メモリ202aにおける特定フラグが1であるか否かを確認することができる。コア203は、特定フラグが1である場合に、経路L6を介してメモリ202bから第1データd1を読み出す。
なお、第1データd1の書き込みが終わらないときにDMAコントローラ201が第2データd2を転送した場合、経路L2が経路L1よりも短いため、第2データd2は対象のメモリ202aよりも先に書き込んでしまう可能性がある。この場合、メモリ202aにおける特定フラグは1であるが、メモリ202bには第1データd1がまだ書き込まれていない。よって、コア203は、経路L5を介してメモリ202aにおける特定フラグが1であることを確認し、経路L6を介してメモリ202bからデータを読み出しても、メモリ202bには第1データd1が書き込まれていないため、読み出したデータは誤ったデータである。そのため、図6に示すコンピュータ1では、複数のデータを並行して転送することはできず、データ転送時間が長くなる。その結果、図6に示すコンピュータ1では、メモリアクセスのレイテンシが大きくなってしまう。
以上が図6に示すコンピュータ1の説明である。
本発明の一実施形態によるコンピュータ1は、特定フラグが1であることを確認することにより、メモリ202に書き込まれたデータの正しさ、すなわち書き込みが終了した後のデータであることが保証される。そのため、本発明の一実施形態によるコンピュータ1は、図6に示すコンピュータ1のようにsync信号を転送し、先に転送したデータの書き込み終了を確認する必要がない。その結果、本発明の一実施形態によるコンピュータ1は、複数のデータを並列に転送することができ、メモリ202へのデータの転送時間を短くすることができる。また、本発明の一実施形態によるコンピュータ1では、IDがDMAコントローラ201だけではなく、メモリ202bからも送信されるため、IDの転送時間を短くすることができる。
以上、本発明の一実施形態によるコンピュータ1について説明した。
コンピュータ1において、制御部2011(取得手段の一例)は、LSI10(別のLSIの一例)から第1データd1及び第2データd2を取得する。ID生成部2012(生成手段の一例)は、取得した第2データd2についてID(識別子の一例)を生成する。メモリ202a(第1記憶手段の一例)は、前記IDに基づいて前記第1データd1及び前記第2データd2の書き込みが完了したか否かを示す特定フラグ(フラグの一例)を決定する。
こうすることにより、コンピュータ1において、特定フラグに基づいて、第1データd1及び第2データd2のメモリ202への書き込みが完了したか否かを判定できる。その結果、例えば、コア203は、特定フラグが1である、すなわち第1データd1及び第2データd2のメモリ202への書き込みが完了したことを確認した上で、第1データd1を読み出した場合、確実に書き込みが完了した後のデータ、すなわち、正確なデータを読み出すことができる。つまり、本発明の一実施形態によるコンピュータ1は、図6に示したコンピュータ1とは異なり、第1データd1及び第2データd2を並列にメモリ202へ書き込むことができる。その結果、本発明の一実施形態によるコンピュータ1は、図6に示したコンピュータ1に比べて、データ転送時間を短くすることができ、メモリアクセスのレイテンシを小さくすることができる。
コンピュータ1において、制御部2011(取得手段の一例)は、LSI10(別のLSIの一例)から第1データd1及び第2データd2を取得する。ID生成部2012(生成手段の一例)は、取得した第2データd2についてID(識別子の一例)を生成する。メモリ202a(第1記憶手段の一例)は、前記IDに基づいて前記第1データd1及び前記第2データd2の書き込みが完了したか否かを示す特定フラグ(フラグの一例)を決定する。
こうすることにより、コンピュータ1において、特定フラグに基づいて、第1データd1及び第2データd2のメモリ202への書き込みが完了したか否かを判定できる。その結果、例えば、コア203は、特定フラグが1である、すなわち第1データd1及び第2データd2のメモリ202への書き込みが完了したことを確認した上で、第1データd1を読み出した場合、確実に書き込みが完了した後のデータ、すなわち、正確なデータを読み出すことができる。つまり、本発明の一実施形態によるコンピュータ1は、図6に示したコンピュータ1とは異なり、第1データd1及び第2データd2を並列にメモリ202へ書き込むことができる。その結果、本発明の一実施形態によるコンピュータ1は、図6に示したコンピュータ1に比べて、データ転送時間を短くすることができ、メモリアクセスのレイテンシを小さくすることができる。
本発明の実施形態による最小構成の集積回路20について説明する。
本発明の実施形態による最小構成の集積回路20は、図8に示すように、取得手段2011a、生成手段2012a、第1記憶手段202a1を備える。
取得手段2011aは、異なる集積回路から第1データ及び第2データを取得する。
生成手段2012aは、前記取得手段2011aが取得した第2データについて識別子を生成する。
第1記憶手段202a1は、前記識別子に基づいて前記第1データ及び前記第2データの書き込みが完了したか否かを示すフラグを決定する。
本発明の実施形態による最小構成の集積回路20は、図8に示すように、取得手段2011a、生成手段2012a、第1記憶手段202a1を備える。
取得手段2011aは、異なる集積回路から第1データ及び第2データを取得する。
生成手段2012aは、前記取得手段2011aが取得した第2データについて識別子を生成する。
第1記憶手段202a1は、前記識別子に基づいて前記第1データ及び前記第2データの書き込みが完了したか否かを示すフラグを決定する。
次に、最小構成の集積回路20の処理について図9を参照して説明する。
取得手段2011aは、異なる集積回路から第1データ及び第2データを取得する(ステップS31)。
生成手段2012aは、前記取得手段2011aが取得した第2データについて識別子を生成する(ステップS32)。
第1記憶手段202a1は、前記識別子に基づいて前記第1データ及び前記第2データの書き込みが完了したか否かを示すフラグを決定する(ステップS33)。
こうすることにより、集積回路20は、特定フラグに基づいて、第1データ及び第2データの書き込みが完了したか否かを判定できる。その結果、集積回路20では、フラグに基づいて第1データ及び第2データの書き込みが完了したことを確認した上で、第1データを読み出した場合、確実に書き込みが完了した後のデータ、すなわち、正確なデータを読み出すことができる。つまり、集積回路20では、第1データ及び第2データを並列に転送することができる。その結果、データ転送時間を短くすることができ、メモリアクセスのレイテンシを小さくすることができる。
取得手段2011aは、異なる集積回路から第1データ及び第2データを取得する(ステップS31)。
生成手段2012aは、前記取得手段2011aが取得した第2データについて識別子を生成する(ステップS32)。
第1記憶手段202a1は、前記識別子に基づいて前記第1データ及び前記第2データの書き込みが完了したか否かを示すフラグを決定する(ステップS33)。
こうすることにより、集積回路20は、特定フラグに基づいて、第1データ及び第2データの書き込みが完了したか否かを判定できる。その結果、集積回路20では、フラグに基づいて第1データ及び第2データの書き込みが完了したことを確認した上で、第1データを読み出した場合、確実に書き込みが完了した後のデータ、すなわち、正確なデータを読み出すことができる。つまり、集積回路20では、第1データ及び第2データを並列に転送することができる。その結果、データ転送時間を短くすることができ、メモリアクセスのレイテンシを小さくすることができる。
なお、本発明の別の実施形態では、LSI20におけるリングバス204のように1つのLSIにおけるリングバスのみならず、複数のLSIを接続するリングバスにおいてIDを用いて複数のデータを並行して転送し、特定フラグにより確実にデータの書き込みが完了したことを保証するものであってもよい。
なお、本発明の実施形態における処理は、適切な処理が行われる範囲において、処理の順番が入れ替わってもよい。
本発明の実施形態について説明したが、上述のコンピュータ1、集積回路20、その他の制御装置のそれぞれは、コンピュータ装置を有していてもよい。そして、上述した処理の過程は、プログラムの形式でコンピュータ読み取り可能な記録媒体に記憶されており、このプログラムをコンピュータが読み出して実行することによって、上記処理が行われる。コンピュータの具体例を以下に示す。
図10は、少なくとも1つの実施形態に係るコンピュータの構成を示す概略ブロック図である。
コンピュータ5は、図10に示すように、CPU6(プロセッサを含む)、メインメモリ7、ストレージ8、インターフェース9を備える。
例えば、上述のコンピュータ1、集積回路20、その他の制御装置のそれぞれは、コンピュータ5に実装される。そして、上述した各処理部の動作は、プログラムの形式でストレージ8に記憶されている。CPU6は、プログラムをストレージ8から読み出してメインメモリ7に展開し、当該プログラムに従って上記処理を実行する。また、CPU6は、プログラムに従って、上述した各記憶部に対応する記憶領域をメインメモリ7に確保する。
図10は、少なくとも1つの実施形態に係るコンピュータの構成を示す概略ブロック図である。
コンピュータ5は、図10に示すように、CPU6(プロセッサを含む)、メインメモリ7、ストレージ8、インターフェース9を備える。
例えば、上述のコンピュータ1、集積回路20、その他の制御装置のそれぞれは、コンピュータ5に実装される。そして、上述した各処理部の動作は、プログラムの形式でストレージ8に記憶されている。CPU6は、プログラムをストレージ8から読み出してメインメモリ7に展開し、当該プログラムに従って上記処理を実行する。また、CPU6は、プログラムに従って、上述した各記憶部に対応する記憶領域をメインメモリ7に確保する。
ストレージ8の例としては、HDD(Hard Disk Drive)、SSD(Solid State Drive)、磁気ディスク、光磁気ディスク、CD-ROM(Compact Disc Read Only Memory)、DVD-ROM(Digital Versatile Disc Read Only Memory)、半導体メモリ等が挙げられる。ストレージ8は、コンピュータ5のバスに直接接続された内部メディアであってもよいし、インターフェース9または通信回線を介してコンピュータ5に接続される外部メディアであってもよい。また、このプログラムが通信回線によってコンピュータ5に配信される場合、配信を受けたコンピュータ5が当該プログラムをメインメモリ7に展開し、上記処理を実行してもよい。少なくとも1つの実施形態において、ストレージ8は、一時的でない有形の記憶媒体である。
また、上記プログラムは、前述した機能の一部を実現してもよい。さらに、上記プログラムは、前述した機能をコンピュータ装置にすでに記録されているプログラムとの組み合わせで実現できるファイル、いわゆる差分ファイル(差分プログラム)であってもよい。
本発明のいくつかの実施形態を説明したが、これらの実施形態は、例であり、発明の範囲を限定しない。これらの実施形態は、発明の要旨を逸脱しない範囲で、種々の追加、省略、置き換え、変更を行ってよい。
1、5・・・コンピュータ
6・・・CPU
7・・・メインメモリ
8・・・ストレージ
9・・・インターフェース
10、20・・・LSI
30・・・PCI express
201・・・DMAコントローラ
202、202a、202b、202c、202d・・・メモリ
203・・・コア
204・・・リングバス
L1、L2、L3、L4、L5、L6、L7・・・経路
6・・・CPU
7・・・メインメモリ
8・・・ストレージ
9・・・インターフェース
10、20・・・LSI
30・・・PCI express
201・・・DMAコントローラ
202、202a、202b、202c、202d・・・メモリ
203・・・コア
204・・・リングバス
L1、L2、L3、L4、L5、L6、L7・・・経路
Claims (8)
- 異なる集積回路から第1データ及び第2データを取得する取得手段と、
前記取得手段が取得した第2データについて識別子を生成する生成手段と、
前記識別子に基づいて前記第1データ及び前記第2データの書き込みが完了したか否かを示すフラグを決定する第1記憶手段と、
を備える集積回路。 - 前記第1データを記憶する第2記憶手段、
を備え、
前記第1記憶手段は、
前記第2記憶手段から取得した前記識別子に基づいて前記フラグを決定する、
請求項1に記載の集積回路。 - 前記第1記憶手段を介して前記第2記憶手段に前記第1データ及び前記識別子を送信する第1送信手段、
を備え、
前記第1記憶手段は、
前記第1送信手段が送信した前記第1データを前記第2記憶手段が記憶した後に、前記第2記憶手段が前記第1記憶手段に送信した前記識別子に基づいて前記フラグを決定する、
請求項2に記載の集積回路。 - 第3記憶手段及び前記第2記憶手段を介して前記識別子を前記第1記憶手段に送信する第2送信手段、
を備え、
前記第1記憶手段は、
前記第2送信手段が送信した前記識別子に基づいて前記フラグを決定する、
請求項2または請求項3に記載の集積回路。 - 前記フラグに基づいて、前記第1データを読み出す読み出し手段、
を備える請求項1から請求項4の何れか一項に記載の集積回路。 - 請求項1から請求項5の何れか一項に記載の集積回路と、
前記異なる集積回路と、
を備えるデータ転送システム。 - 異なる集積回路から第1データ及び第2データを取得することと、
取得した第2データについて識別子を生成することと、
前記識別子に基づいて前記第1データ及び前記第2データの書き込みが完了したか否かを示すフラグを決定することと、
を含む処理方法。 - コンピュータに、
異なる集積回路から第1データ及び第2データを取得することと、
取得した第2データについて識別子を生成することと、
前記識別子に基づいて前記第1データ及び前記第2データの書き込みが完了したか否かを示すフラグを決定することと、
を実行させるプログラム。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2020139768A JP2022035436A (ja) | 2020-08-21 | 2020-08-21 | 集積回路、データ転送システム、処理方法及びプログラム |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2020139768A JP2022035436A (ja) | 2020-08-21 | 2020-08-21 | 集積回路、データ転送システム、処理方法及びプログラム |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2022035436A true JP2022035436A (ja) | 2022-03-04 |
Family
ID=80443899
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2020139768A Pending JP2022035436A (ja) | 2020-08-21 | 2020-08-21 | 集積回路、データ転送システム、処理方法及びプログラム |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP2022035436A (ja) |
-
2020
- 2020-08-21 JP JP2020139768A patent/JP2022035436A/ja active Pending
Similar Documents
Publication | Publication Date | Title |
---|---|---|
KR101412173B1 (ko) | 다중―프로세서 시스템에서 1차 프로세서로부터 하나 이상의 2차 프로세서로의 실행 가능 소프트웨어 이미지의 직접적인 분산 로딩 | |
JP6882943B2 (ja) | 半導体装置 | |
JP4408126B2 (ja) | 監視装置、半導体集積回路、および監視方法 | |
US20060236001A1 (en) | Direct memory access controller | |
JP7030673B2 (ja) | 送信装置、通信装置、通信システム、送信方法、およびプログラム | |
JP2010211322A (ja) | ネットワークプロセッサ、受信コントローラ、及びデータ受信処理方法 | |
US20170308487A1 (en) | Data transfer control system, data transfer control method, and program storage medium | |
JP5651622B2 (ja) | データ伝送装置、データ伝送方法、及びプログラム | |
CN106815176B (zh) | 用于经由柔性寄存器访问总线传输访问请求的系统和方法 | |
JP2014179066A (ja) | ストレージ制御装置、ストレージシステム、およびストレージ制御方法 | |
JP2022035436A (ja) | 集積回路、データ転送システム、処理方法及びプログラム | |
JP5659817B2 (ja) | 相互接続装置 | |
JP2019185544A (ja) | 半導体装置およびufsシステム | |
CN110268390B (zh) | 相干互连系统中的读取交易跟踪器生命期 | |
CN105022707B (zh) | 接口单元装置 | |
JP2007226374A (ja) | データ処理装置 | |
US8239652B2 (en) | Data processing system | |
US8713205B2 (en) | Data transfer device and data transfer method | |
JP2009015783A (ja) | インタフェースコントローラ | |
JP2006338533A (ja) | Ecc回路を有するマルチレイヤバスシステム | |
JP2012118906A (ja) | 相互接続装置、および、その制御方法 | |
JP6171367B2 (ja) | スイッチ装置、画像処理装置、及び排他制御方法 | |
CN114610661B (zh) | 数据处理装置、方法和电子设备 | |
JP6222079B2 (ja) | 計算機システム、その処理方法、及びプログラム | |
JP6384359B2 (ja) | 分散共有メモリを有する情報処理装置、方法、および、プログラム |