図面 (/)

技術 静的スケジュールプロセッサのノンブロッキング実行装置及び方法

出願人 三星電子株式会社
発明者 權勸宅禹相玉李時和鄭錫潤
出願日 2014年3月3日 (5年4ヶ月経過) 出願番号 2014-040668
公開日 2014年9月22日 (4年10ヶ月経過) 公開番号 2014-174994
状態 特許登録済
技術分野 機械語命令の実行 マルチプロセッサ 先行制御
主要キーワード 処理結果値 特定演算 レイテンシ値 動的スケジュール 演算結果値 ソフトウェアパイプライン ダミー値 無駄遣い
関連する未来課題
重要な関連分野

この項目の情報は公開日時点(2014年9月22日)のものです。
また、この項目は機械的に抽出しているため、正しく解析できていない場合があります

図面 (6)

課題

静的スケジュールプロセッサのノンブロッキング実行装置及び方法を提供する。

解決手段

伝達される入力データを用いて少なくとも1つ以上の演算を処理するプロセッサと、前記入力データを前記プロセッサに伝達し、前記少なくとも1つ以上の演算に対する処理結果を格納する入力バッファを含み、前記プロセッサは、前記少なくとも1つ以上の演算をそれぞれ行う少なくとも1つ以上の演算ユニットを含み、前記少なくとも1つ以上の演算ユニットは、前記伝達される入力データをレギュラーレイテンシの演算及びイレギュラーレイテンシの演算のうち少なくとも1つの演算を用いて処理する。

概要

背景

静的スケジュールプロセッサ(static schedule processor)は、与えられた入力データに対して適用しなければならない演算をどのような演算ユニットでどのような順序をもって実行するかをコンパイル時に決定する方式のプロセッサである。ソフトウェアパイプラインアルゴリズムのうち、スケジュールを決定するSRP(Samsung Reconfigurable Processor)も静的スケジュールプロセッサに該当する。

プロセッサの演算スケジュールは、各演算が実行可能な演算ユニット、各演算の入力データが備えられる時点、各演算の所用時間などを考慮して最適の実行性能を発揮するように作られる。

ここで、演算の所用時間が常に一定のレギュラーレイテンシ(regular latency)演算では、コンパイル時に正確なタイミング算出が可能なので、最適のスケジュールを発揮することができる。しかし、演算の所用時間が不規則イレギュラーレイテンシ(irregular latency)演算の場合は、コンパイル時に1つレイテンシ値仮定して先にスケジュールを生成するので、ランタイムに仮定と異なるレイテンシが発生する場合、これを対処するための別途の方法が求められる。

概要

静的スケジュールプロセッサのノンブロッキング実行装置及び方法を提供する。伝達される入力データを用いて少なくとも1つ以上の演算を処理するプロセッサと、前記入力データを前記プロセッサに伝達し、前記少なくとも1つ以上の演算に対する処理結果を格納する入力バッファを含み、前記プロセッサは、前記少なくとも1つ以上の演算をそれぞれ行う少なくとも1つ以上の演算ユニットを含み、前記少なくとも1つ以上の演算ユニットは、前記伝達される入力データをレギュラーレイテンシの演算及びイレギュラーレイテンシの演算のうち少なくとも1つの演算を用いて処理する。

目的

本発明の目的は、静的スケジュールプロセッサのノンブロッキング実行装置及び方法を提供する

効果

実績

技術文献被引用数
0件
牽制数
0件

この技術が所属する分野

ライセンス契約や譲渡などの可能性がある特許掲載中! 開放特許随時追加・更新中 詳しくはこちら

請求項1

伝達される入力データを用いて少なくとも1つ以上の演算を処理するプロセッサと、前記入力データを前記プロセッサに伝達し、前記少なくとも1つ以上の演算に対する処理結果を格納する入力バッファと、を含み、前記プロセッサは、前記少なくとも1つ以上の演算をそれぞれ行う少なくとも1つ以上の演算ユニットを含み、前記少なくとも1つ以上の演算ユニットは、前記伝達される入力データをレギュラーレイテンシの演算及びイレギュラーレイテンシの演算のうち少なくとも1つの演算を用いて処理することを特徴とする静的スケジュールプロセッサのノンブロッキング実行装置

請求項2

前記少なくとも1つ以上の演算ユニットは、前記入力データを前記レギュラーレイテンシの演算で処理するか、または前記イレギュラーレイテンシの演算で処理するかを判断することを特徴とする請求項1に記載の静的スケジュールプロセッサのノンブロッキング実行装置。

請求項3

前記少なくとも1つ以上の演算ユニットは、前記入力データを前記イレギュラーレイテンシの演算で処理する場合、前記入力データに対する以前の演算結果値が前記入力バッファに格納されているか否かを確認することを特徴とする請求項2に記載の静的スケジュールプロセッサのノンブロッキング実行装置。

請求項4

前記少なくとも1つ以上の演算ユニットは、前記以前の演算結果値が前記入力バッファに格納されている場合、スケジュールとして定義されている基本レイテンシ後に前記以前の演算結果値を出力し、前記以前の演算結果値が前記入力バッファに格納されていない場合に演算を実行し、前記演算の実行中に追加レイテンシが発生するか否かを判断することを特徴とする請求項3に記載の静的スケジュールプロセッサのノンブロッキング実行装置。

請求項5

前記少なくとも1つ以上の演算ユニットは、前記演算の実行中に追加レイテンシが発生する場合にダミー値を出力し、前記出力されたダミー値に相応する状態ビットを前記入力バッファに記録し、前記演算の実行中に追加レイテンシが発生しない場合に前記演算の実行による結果値を出力し、前記出力された結果値を前記入力バッファに記録する、ことを特徴とする請求項4に記載の静的スケジュールプロセッサのノンブロッキング実行装置。

請求項6

前記少なくとも1つ以上の演算ユニットは、前記追加レイテンシが発生した演算の実行が終了した後、演算の最終的な結果値を前記入力バッファに記録することを特徴とする請求項5に記載の静的スケジュールプロセッサのノンブロッキング実行装置。

請求項7

前記入力バッファは、状態レジスタ及び結果バッファを含み、前記状態レジスタは、前記入力データに対する状態を格納し、前記結果バッファは、以前の演算結果値を格納することを特徴とする請求項4に記載の静的スケジュールプロセッサのノンブロッキング実行装置。

請求項8

前記状態レジスタは、前記入力データに対して演算を再度行うか否かに対する状態を格納することを特徴とする請求項7に記載の静的スケジュールプロセッサのノンブロッキング実行装置。

請求項9

入力バッファから入力データが伝達され、複数の演算ユニットを用いて演算を行う演算処理部と、前記入力データの演算中に前記複数の演算ユニットのうち少なくとも1つに追加レイテンシが発生するかを判断する判断部と、前記追加レイテンシが発生する場合にダミー値を出力して前記入力バッファに格納する格納処理部と、を備えることを特徴とする静的スケジュールプロセッサ。

請求項10

前記演算処理部は、前記入力バッファから前記伝達された入力データに対する以前の演算結果値が格納されているかを確認し、前記以前の演算結果値が格納されている場合、スケジュールとして定義されている基本レイテンシ後に前記以前の演算結果値を出力し、前記以前の演算結果値が前記入力バッファに格納されていない場合、前記入力データの演算を実行することを特徴とする請求項9に記載の静的スケジュールプロセッサ。

請求項11

プロセッサで、伝達される入力データを用いて少なくとも1つ以上の演算を処理するステップと、入力バッファで、前記入力データを前記プロセッサに伝達し、前記少なくとも1つ以上の演算に対する処理結果を格納するステップと、を含み、前記少なくとも1つ以上の演算を処理するステップは、前記伝達される入力データをレギュラーレイテンシの演算及びイレギュラーレイテンシの演算のうち少なくとも1つの演算を用いて処理するステップを含むことを特徴とする静的スケジュールプロセッサのノンブロッキング実行方法

請求項12

前記少なくとも1つ以上の演算を処理するステップは、前記入力データを前記レギュラーレイテンシの演算で処理するか、または前記イレギュラーレイテンシの演算で処理するかを判断するステップを含むことを特徴とする請求項11に記載の静的スケジュールプロセッサのノンブロッキング実行方法。

請求項13

前記少なくとも1つ以上の演算を処理するステップは、前記入力データを前記イレギュラーレイテンシの演算で処理する場合、前記入力データに対する以前の演算結果値が前記入力バッファに格納されているか否かを確認するステップを含むことを特徴とする請求項12に記載の静的スケジュールプロセッサのノンブロッキング実行方法。

請求項14

前記少なくとも1つ以上の演算を処理するステップは、前記以前の演算結果値が前記入力バッファに格納されている場合、スケジュールとして定義されている基本レイテンシ後に前記以前の演算結果値を出力するステップを含み、以前の演算結果値が前記入力バッファに格納されていない場合に演算を実行し、前記演算の実行中に追加レイテンシが発生するか否かを判断するステップを含むことを特徴とする請求項13に記載の静的スケジュールプロセッサのノンブロッキング実行方法。

請求項15

前記少なくとも1つ以上の演算を処理するステップは、前記演算の実行中に追加レイテンシが発生する場合にダミー値を出力し、前記出力されたダミー値に相応する状態ビットを前記入力バッファに記録するステップを含むことを特徴とする請求項14に記載の静的スケジュールプロセッサのノンブロッキング実行方法。

請求項16

前記少なくとも1つ以上の演算を処理するステップは、前記追加レイテンシが発生した演算の実行が終了した後、演算の最終的な結果値を前記入力バッファに記録するステップを含むことを特徴とする請求項15に記載の静的スケジュールプロセッサのノンブロッキング実行方法。

請求項17

複数の演算のうち第1演算の実行中に選択的にダミー値を出力するステップと、前記複数の演算のうち第2演算を実行するステップと、前記第1演算を再実行して前記第1演算が正常終了することによって結果を取得するステップと、を含むことを特徴とする静的スケジュールプロセッサの動作方法

請求項18

第1演算の実行時間が選定された値を超過する場合、前記ダミー値が出力されることを特徴とする請求項17に記載の静的スケジュールプロセッサの動作方法。

請求項19

前記選定された値は、前記第1演算のプロセッサ実行サイクルカウントを含むことを特徴とする請求項18に記載の静的スケジュールプロセッサの動作方法。

技術分野

0001

下記の実施形態は入力データに対する演算中に基本レイテンシよりも著しく大きいレイテンシが発生する場合、プロセッサ全体が長いサイクルの間にストール(stall)状態に切り替えることなく演算能力を保持する静的スケジュールプロセッサのノンブロッキング実行装置及び方法に対する技術的な思想を開示する。

背景技術

0002

静的スケジュールプロセッサ(static schedule processor)は、与えられた入力データに対して適用しなければならない演算をどのような演算ユニットでどのような順序をもって実行するかをコンパイル時に決定する方式のプロセッサである。ソフトウェアパイプラインアルゴリズムのうち、スケジュールを決定するSRP(Samsung Reconfigurable Processor)も静的スケジュールプロセッサに該当する。

0003

プロセッサの演算スケジュールは、各演算が実行可能な演算ユニット、各演算の入力データが備えられる時点、各演算の所用時間などを考慮して最適の実行性能を発揮するように作られる。

0004

ここで、演算の所用時間が常に一定のレギュラーレイテンシ(regular latency)演算では、コンパイル時に正確なタイミング算出が可能なので、最適のスケジュールを発揮することができる。しかし、演算の所用時間が不規則イレギュラーレイテンシ(irregular latency)演算の場合は、コンパイル時に1つレイテンシ値仮定して先にスケジュールを生成するので、ランタイムに仮定と異なるレイテンシが発生する場合、これを対処するための別途の方法が求められる。

発明が解決しようとする課題

0005

本発明の目的は、静的スケジュールプロセッサのノンブロッキング実行装置及び方法を提供することにある。

課題を解決するための手段

0006

<発明の概要
一実施形態に係る静的スケジュールプロセッサのノンブロッキング実行装置は、伝達される入力データを用いて少なくとも1つ以上の演算を処理するプロセッサと、前記入力データを前記プロセッサに伝達し、前記少なくとも1つ以上の演算に対する処理結果を格納する入力バッファとを含み、前記プロセッサは、前記少なくとも1つ以上の演算をそれぞれ行う少なくとも1つ以上の演算ユニットを含み、前記少なくとも1つ以上の演算ユニットは、前記伝達される入力データをレギュラーレイテンシの演算及びイレギュラーレイテンシの演算のうち少なくとも1つの演算を用いて処理する。

0007

一実施形態に係る静的スケジュールプロセッサは、入力バッファから入力データが伝達され、複数の演算ユニットを用いて演算を行う演算処理部と、前記入力データの演算中に前記複数の演算ユニットのうち少なくとも1つに追加レイテンシが発生するかを判断する判断部と、前記追加レイテンシが発生する場合にダミー値を出力して前記入力バッファに格納する格納処理部とを備える。

0008

一実施形態に係る静的スケジュールプロセッサのノンブロッキング実行方法は、プロセッサで、伝達される入力データを用いて少なくとも1つ以上の演算を処理するステップと、入力バッファで、前記入力データを前記プロセッサに伝達し、前記少なくとも1つ以上の演算に対する処理結果を格納するステップとを含み、前記少なくとも1つ以上の演算を処理するステップは、前記伝達される入力データをレギュラーレイテンシの演算及びイレギュラーレイテンシの演算のうち少なくとも1つの演算を用いて処理するステップを含む。

0009

一実施形態に係る静的スケジュールプロセッサの動作方法は、複数の演算のうち第1演算の実行中に選択的にダミー値を出力するステップと、前記複数の演算のうち第2演算を実行するステップと、前記第1演算を再実行して前記第1演算が正常終了することによって結果を取得するステップとを含む。

発明の効果

0010

一実施形態に係るプロセッサの動作方法を用いると、各入力データに対する演算中に、基本レイテンシよりも著しく大きいレイテンシが発生した場合、プロセッサ全体が長いサイクルの間にストール状態になることで演算能力の低下を防止することができる。

0011

一実施形態に係るプロセッサの動作方法を用いると、基本レイテンシよりも大きいレイテンシが発生しても、プロセッサはストールすることなく当該の演算値のみをダミー値に処理するだけで、続けて次のデータに対する演算は正常に実行できる。そして、後でダミー値として処理されたデータに対しては演算を再度行うことができる。

図面の簡単な説明

0012

一実施形態に係る静的スケジュールプロセッサのノンブロッキング実行装置を説明するブロック図である。
一実施形態に係るノンブロッキング実行装置の入力バッファを説明する図である。
他の一実施形態に係る静的スケジュールプロセッサを説明するブロック図である。
一実施形態に係る静的スケジュールプロセッサのノンブロッキング実行方法を説明するフローチャートである。
一実施形態に係るプロセッサの動作方法を説明するフローチャートである。

実施例

0013

<発明の詳細>

0014

一実施形態に係る静的スケジュールプロセッサのノンブロッキング実行装置は、伝達される入力データを用いて少なくとも1つ以上の演算を処理するプロセッサと、前記入力データを前記プロセッサに伝達し、前記少なくとも1つ以上の演算に対する処理結果を格納する入力バッファとを含み、前記プロセッサは、前記少なくとも1つ以上の演算をそれぞれ行う少なくとも1つ以上の演算ユニットを含み、前記少なくとも1つ以上の演算ユニットは、前記伝達される入力データをレギュラーレイテンシの演算及びイレギュラーレイテンシの演算のうち少なくとも1つの演算を用いて処理する。

0015

一実施形態に係る前記少なくとも1つ以上の演算ユニットは、前記入力データを前記レギュラーレイテンシの演算で処理するか、または前記イレギュラーレイテンシの演算で処理するかを判断してもよい。

0016

一実施形態に係る前記少なくとも1つ以上の演算ユニットは、前記入力データを前記イレギュラーレイテンシの演算で処理する場合、前記入力データに対する以前の演算結果値が前記入力バッファに格納されているか否かを確認してもよい。

0017

一実施形態に係る前記少なくとも1つ以上の演算ユニットは、前記以前の演算結果値が前記入力バッファに格納されている場合、スケジュールとして定義されている基本レイテンシ後に前記以前の演算結果値を出力してもよい。

0018

一実施形態に係る前記少なくとも1つ以上の演算ユニットは、前記以前の演算結果値が前記入力バッファに格納されていない場合に演算を実行し、前記演算の実行中に追加レイテンシが発生するか否かを判断してもよい。

0019

一実施形態に係る前記少なくとも1つ以上の演算ユニットは、前記演算の実行中に追加レイテンシが発生する場合にダミー値を出力し、前記出力されたダミー値に相応する状態ビットを前記入力バッファに記録してもよい。

0020

一実施形態に係る前記少なくとも1つ以上の演算ユニットは、前記追加レイテンシが発生した演算の実行が終了した後、演算の最終的な結果値を前記入力バッファに記録してもよい。

0021

一実施形態に係る前記少なくとも1つ以上の演算ユニットは、前記演算の実行中に追加レイテンシが発生しない場合に前記演算の実行による結果値を出力し、前記出力された結果値を前記入力バッファに記録してもよい。

0022

一実施形態に係る前記入力バッファは、状態レジスタ及び結果バッファを含み、前記状態レジスタは、前記入力データに対する状態を格納し、前記結果バッファは、以前の演算結果値を格納してもよい。

0023

一実施形態に係る前記状態レジスタは、前記入力データに対して演算を再度行うか否かに対する状態を格納してもよい。

0024

一実施形態に係る静的スケジュールプロセッサは、入力バッファから入力データが伝達され、複数の演算ユニットを用いて演算を行う演算処理部と、前記入力データの演算中に前記複数の演算ユニットのうち少なくとも1つに追加レイテンシが発生するかを判断する判断部と、前記追加レイテンシが発生する場合にダミー値を出力して前記入力バッファに格納する格納処理部とを備える。

0025

一実施形態に係る前記演算処理部は、前記入力バッファから前記伝達された入力データに対する以前の演算結果値が格納されているかを確認し、前記以前の演算結果値が格納されている場合、スケジュールとして定義されている基本レイテンシ後に前記以前の演算結果値を出力してもよい。

0026

一実施形態に係る前記演算処理部は、前記入力バッファから前記伝達された入力データに対する以前の演算結果値が格納されているかを確認し、前記以前の演算結果値が前記入力バッファに格納されていない場合、前記入力データの演算を実行してもよい。

0027

一実施形態に係る静的スケジュールプロセッサのノンブロッキング実行方法は、プロセッサで、伝達される入力データを用いて少なくとも1つ以上の演算を処理するステップと、入力バッファで、前記入力データを前記プロセッサに伝達し、前記少なくとも1つ以上の演算に対する処理結果を格納するステップとを含み、前記少なくとも1つ以上の演算を処理するステップは、前記伝達される入力データをレギュラーレイテンシの演算及びイレギュラーレイテンシの演算のうち少なくとも1つの演算を用いて処理するステップを含む。

0028

一実施形態に係る前記少なくとも1つ以上の演算を処理するステップは、前記入力データを前記レギュラーレイテンシの演算で処理するか、または前記イレギュラーレイテンシの演算で処理するかを判断するステップを含んでもよい。

0029

一実施形態に係る前記少なくとも1つ以上の演算を処理するステップは、前記入力データを前記イレギュラーレイテンシの演算で処理する場合、前記入力データに対する以前の演算結果値が前記入力バッファに格納されているか否かを確認するステップを含んでもよい。

0030

一実施形態に係る前記少なくとも1つ以上の演算を処理するステップは、前記以前の演算結果値が前記入力バッファに格納されている場合、スケジュールとして定義されている基本レイテンシ後に前記以前の演算結果値を出力するステップを含んでもよい。

0031

一実施形態に係る前記少なくとも1つ以上の演算を処理するステップは、以前の演算結果値が前記入力バッファに格納されていない場合に演算を実行し、前記演算の実行中に追加レイテンシが発生するか否かを判断するステップを含んでもよい。

0032

一実施形態に係る前記少なくとも1つ以上の演算を処理するステップは、前記演算の実行中に追加レイテンシが発生する場合にダミー値を出力し、前記出力されたダミー値に相応する状態ビットを前記入力バッファに記録するステップを含んでもよい。

0033

一実施形態に係る前記少なくとも1つ以上の演算を処理するステップは、前記追加レイテンシが発生した演算の実行が終了した後、演算の最終的な結果値を前記入力バッファに記録するステップを含んでもよい。

0034

一実施形態に係る静的スケジュールプロセッサの動作方法は、複数の演算のうち第1演算の実行中に選択的にダミー値を出力するステップと、前記複数の演算のうち第2演算を実行するステップと、前記第1演算を再実行して前記第1演算が正常終了することによって結果を取得するステップとを含む。

0035

一実施形態に係る第1演算の実行時間が選定された値を超過する場合、前記ダミー値が出力されてもよい。

0036

一実施形態に係る前記選定された値は、前記第1演算のプロセッサ実行サイクルカウントを含んでもよい。

0037

以下、実施形態を添付する図面を参照しながら詳細に説明する。

0038

実施形態を説明するにおいて、関連する公知機能または構成に対する具体的な説明が実施形態の要旨を不要に曖昧にすると判断される場合にはその詳細な説明は省略される。そして、本明細書で用いられる用語は実施形態を適切に表現するために用いられる用語として、これはユーザ、運用者の意図、または該当技術が属する分野の慣例などによって変わり得る。したがって、用語に対する定義は本明細書の全般にわたる内容に基づいて定められる。各図面に提示された同一の参照符号は同一の部材を示す。

0039

図1は、一実施形態に係る静的スケジュールプロセッサのノンブロッキング実行装置100を説明するブロック図である。

0040

一実施形態に係る静的スケジュールプロセッサのノンブロッキング実行装置100は、入力バッファ110及びプロセッサ120を備える。

0041

以下の「プロセッサ」は、静的スケジュール基盤のプロセッサを含んでもよい。

0042

一実施形態に係るプロセッサ120は、伝達される入力データを用いて少なくとも1つ以上の演算を処理する。

0043

一実施形態に係る入力バッファ110は、入力データをプロセッサに伝達し、少なくとも1つ以上の演算に対する処理結果を格納してもよい。

0044

ここでのプロセッサ120は、少なくとも1つ以上の演算をそれぞれ行う少なくとも1つ以上の演算ユニット121(Functional Unit:FU)を備えてもよい。

0045

少なくとも1つ以上の演算ユニット121は、伝達される入力データをレギュラーレイテンシの演算及びイレギュラーレイテンシの演算のうち少なくとも1つの演算方式で処理してもよい。

0046

少なくとも1つ以上の演算ユニット121は、入力データを確認し、確認された結果に応じて当該入力データをレギュラーレイテンシの演算で処理するか、イレギュラーレイテンシの演算で処理するかを決定してもよい。

0047

少なくとも1つ以上の演算ユニット121は、演算の所用時間が常に一定であるため、コンパイル時に正確なタイミング算出が可能であり、最適のスケジュールを作り出すことのできる入力データに対してレギュラーレイテンシの演算で処理してもよい。

0048

反対に、少なくとも1つ以上の演算ユニット121は、演算の所用時間が不規則な入力データに備えてコンパイル時に1つのレイテンシ値を仮定して先にスケジュールを生成してもよい。ここで、少なくとも1つ以上の演算ユニット121は、ランタイムに仮定と他のレイテンシが発生する場合にも長いサイクルの間にストール状態に切り替えることなく、演算能力を保持することができる。

0049

言い換えれば、一実施形態に係る静的スケジュールプロセッサのノンブロッキング実行装置100は、静的スケジュール基盤のプロセッサ動作を実行しながらもノンブロッキング特性を保持することができる。

0050

少なくとも1つ以上の演算ユニット121は、追加レイテンシが発生した演算の実行が終了した後、演算の最終的な結果値を入力バッファ110に記録してもよい。

0051

一実施形態に係るプロセッサ120は、与えられた入力データに対して適用しなければならない演算をどのような演算ユニットでどのような順序をもって実行するかをコンパイル時に決定してもよい。

0052

一実施形態に係るプロセッサ120は、静的スケジュール基盤として、動的スケジュール基盤のプロセッサに比べてハードウェアの大きさが小さくて簡単である。また、一実施形態に係るプロセッサ120は、追加レイテンシが発生した分だけのプロセッサ120動作をストールしないため、一般的な静的スケジュール基盤のプロセッサがランタイムに発生するレイテンシに対応することのできない問題を解決することができる。

0053

一実施形態に係るプロセッサ120が実行する演算中に外部要因に影響を受けることなく実行できる演算は常に一定のレイテンシを発生させる。例えば、キャッシュメモリを参照して演算処理する間にキャッシュヒットされる場合などには選定されたレイテンシ以外に追加レイテンシが発生しない。一実施形態に係るプロセッサ120は、このような演算に対してレギュラーレイテンシの演算方式で処理してもよい。

0054

外部メモリアクセスなどの外部要因の影響を受ける動作が含まれた演算や条件に応じて、選択的な動作を行う演算に対して一般的なプロセッサであれば、演算する度にレイテンシが変わり得る。一実施形態に係るプロセッサ120は、このような演算についてイレギュラーレイテンシの演算方式に処理してもよい。

0055

例えば、一般的なプロセッサがデータキャッシュによってプロセッサ外部のメモリアクセス動作する場合、キャッシュヒットまたはミス(cache hit/miss)の有無に応じて動作が変わりつつ、実行に必要なレイテンシが変わることがある。また、同じキャッシュミスの状況でも外部メモリにアクセスするための所要時間が毎度変わるので、実行に必要なレイテンシも変わり得る。

0056

これとは対照的に、一実施形態に係るプロセッサ120は、実行する全ての演算のレイテンシを定められた値に指定してもよい。前記決定した値は、全ての演算で同一であるか、実行する全ての演算で同一でなくてもよい。

0057

ここで、一実施形態に係るプロセッサ120は、指定されたレイテンシにより最適の実行性能が発揮できるスケジュールを生成することができ、ランタイムには定められたスケジュールに応じてのみ動作する。

0058

もし、ランタイムに特定演算が行われるためにさらに多くの時間が必要な場合は、一実施形態に係るプロセッサ120は、システムの効率のために追加レイテンシによりストール状態を維持しないため、特定演算の処理が完了するまで待機しない。また、一実施形態に係るプロセッサ120は、追加レイテンシが発生した特定演算を無視して誤ったデータを出力することもない。

0059

言い換えれば、指定されたレイテンシ以外に追加レイテンシが発生した場合、一実施形態に係るプロセッサ120は、その演算の結果を用いる次の演算をスケジュールに定められた時点に合わせて実行することができない。言い換えれば、レイテンシが予め指定した値よりも大きければ、その演算の結果を用いる次の演算をスケジュールに定められた時点に合わせて実行できなくなる。

0060

このような状況が発生すると、一般的には追加発生したレイテンシだけプロセッサをストールし、特定演算が完了すれば再び本来のスケジュールの通りに演算実行再開する。

0061

一実施形態に係るプロセッサ120は、指定されたレイテンシ以外に追加レイテンシが発生した場合、特定演算を処理した演算ユニット121によって意味のない値であるダミー値を出力してもよい。また、出力されたダミー値に相応する状態ビットは、結果格納信号140によって入力バッファ110に結果値として格納されてもよい。

0062

入力バッファ110は、入力データに対して複数のイレギュラーレイテンシ演算による結果値を格納してもよい。

0063

一実施形態に係るプロセッサ120は、各エントリに対してイレギュラーレイテンシ演算の結果値を格納しておいてもよく、結果検索信号130によって、特定演算の処理以前にも格納された結果値を検索してもよい。

0064

言い換えれば、一実施形態に係るプロセッサ120は、特定演算の処理前に入力される入力データの以前結果値にダミー値に相応する状態ビットが格納され、演算ユニット121の再実行が必要であるかを先に確認することができる。すなわち、一実施形態に係るプロセッサ120は、イレギュラーレイテンシ演算の場合、演算を開始する時点に先に当該データに対する当該演算の結果値が予め入力バッファに格納されているかの以前結果値を検索してもよい。

0065

結果値が存在すれば、一実施形態に係るプロセッサ120は、演算を再実行する代わりにスケジュールに定義された基本レイテンシ後に照会された結果値を出力してもよい。もし、ダミー値に相応する状態ビットが入力されたり、結果値が入力バッファに存在しなければ、一実施形態に係るプロセッサ120は当該演算を実際に再実行してもよい。

0066

その後、演算ユニット121の実行結果、基本レイテンシ中に演算が完了すれば、一実施形態に係るプロセッサ120は有効な演算結果値を出力してもよい。

0067

演算ユニット121の実行結果、基本レイテンシ中に演算が完了されなければ、一実施形態に係るプロセッサ120はダミー値を出力する。プロセッサ120が実際に演算した場合レイテンシと関係なしにその結果値は入力バッファに格納されてもよい。

0068

一実施形態に係るプロセッサ120はダミー値を出力し、追加発生したレイテンシだけプロセッサをストールしないだけではなく、ダミー値による誤った結果値を出力しない。

0069

一実施形態に係るプロセッサ120は、各入力データに対する最終の実行結果を出力するための全ての中間演算でダミー値の出力があるか否かを確認する。

0070

そのために、一実施形態に係るプロセッサ120が指定されたレイテンシ内に演算を終了して正常な出力値を出力し、これを入力バッファ110に格納する場合、プロセッサ120は完了フラグ信号150によって完了フラグを入力バッファ110に送信してもよい。ここで、入力バッファ110は、格納される出力値に相応する完了フラグを確認して入力データの演算が正常に終了されたことを表現する。

0071

正常に終了した入力データは出力データとして外部に出力され、次の処理に用いられる。正常出力されたエントリは入力バッファ110で削除されてもよい。

0072

もし、完了フラグが確認されない入力データの場合はダミー値を含む結果として判断し、入力バッファ110で適切な時点に当該入力データを再びプロセッサ120に送信し、演算過程を最初から再開してもよい。

0073

言い換えれば、プロセッサ120は、各入力データの演算中にイレギュラーレイテンシ演算の結果が基本レイテンシよりも大きい場合を検出し、当該データに対して再び演算するように動作してもよい。ここで、以前ステップにおける処理結果値は、入力バッファ110に入力データに対応する位置に格納されてもよい。

0074

これにより、例外的なレイテンシに対しても選定されたスケジュールを保ちながら演算結果が同一に実行することができ、追加レイテンシだけプロセッサ全体をストールしないため、プロセッサの処理性能を向上させることができる。

0075

すなわち、一実施形態に係る静的スケジュールプロセッサのノンブロッキング実行装置100を用いると、各入力データに対する演算中に基本レイテンシよりも著しく大きいレイテンシが発生した場合について、プロセッサ全体が長いサイクルの間にストール状態になって演算能力が低下することを防止することができる。

0076

一実施形態に係る静的スケジュールプロセッサのノンブロッキング実行装置100を用いると、基本レイテンシよりも大きいレイテンシが発生してもプロセッサはストールすることなく当該の演算値のみをダミー値として処理するだけで、続けて次のデータの演算は正常に行うことができる。例えば、演算の最初実行と外部メモリアクセスのような待機中である追加レイテンシ演算が完了するとき、後ほどダミー値として処理されたデータは演算を最初から再演算すればよい。言い換えれば、追加発生したレイテンシだけのストールサイクルを減少させ得る一方、当該データに対して再演算するだけの実行時間のみが追加される。

0077

一般的に、入力データ1件当りプロセッサ演算時間は、10〜50サイクル程度が必要とされる。一方、キャッシュメモリアクセス演算の追加レイテンシは100〜300サイクル程度が必要とされる。

0078

ここで、一実施形態に係る静的スケジュールプロセッサのノンブロッキング実行装置100を用いると、追加レイテンシの発生ごとに100〜300サイクルストールによるサイクルの無駄遣いを防止することができ、再演算に必要な10〜50サイクルのみで性能向上を図ることができる。

0079

図2は、一実施形態に係るノンブロッキング実行装置の入力バッファ200を説明する図である。

0080

一実施形態に係る入力バッファ200は、少なくとも1つ以上の入力データに対して入力される順序に応じてエントリごとに区分して格納してもよい。

0081

プロセッサに提供する入力データが外部から供給されれば、入力データは一実施形態に係る入力バッファ200に格納される。

0082

入力バッファ200は、格納されたエントリのうち1つのエントリ210を選択して実際プロセッサの入力に伝達する。

0083

エントリ210は、状態ビット(state)211、入力データ(Input data)212、結果バッファ(result0〜3)213を備えてもよい。

0084

入力バッファ200がエントリ210に対して格納する内容は、まず入力データ212そのものとエントリの状態情報、そして複数のイレギュラーレイテンシ演算による結果値である。プロセッサは、エントリ210に対してイレギュラーレイテンシ演算の結果値を格納してもよく、格納された結果値を照会してもよい。

0085

具体的に、プロセッサは、各入力データが演算ユニットで処理された後の結果に応じて完了フラグを状態ビット211に格納してもよい。プロセッサは、入力バッファの状態ビット211を確認して当該入力データ212が再実行されなければならないか否かを決定してもよい。

0086

入力データ212は演算ユニットで処理される単位として、格納される順に入力バッファ200に積載されてもよい。

0087

結果バッファ213は、演算ユニットで入力データ212が処理された後の結果値を格納してもよい。もし、演算ユニットで追加レイテンシが発生する場合、結果バッファ213にはダミー値に相応する状態ビットが記録されてもよい。また、結果バッファ213にダミー値に相応する状態ビットが記録される場合、状態ビット211には完了フラグが記録されない。

0088

プロセッサの入力で伝達されたエントリ210は、まず入力バッファ200から削除されず残っている。エントリ210が削除される時点は、プロセッサで全ての処理が完了して出力データが発生する時点である。

0089

図3は、一実施形態に係る静的スケジュールプロセッサ300を説明するブロック図である。

0090

一実施形態に係る静的スケジュールプロセッサ300は、演算処理部310、判断部320、格納処理部330を備える。

0091

外部メモリを参照しなければならない場合、同じキャッシュミスの状況でも外部メモリにアクセスするための所要時間が毎回異なることもあるため、実行に必要なレイテンシも異なり得る。

0092

一実施形態に係る静的スケジュールプロセッサ300は、実行する全ての演算のレイテンシを定められた値に指定してもよい。ここで、一実施形態に係る静的スケジュールプロセッサ300は、指定されたレイテンシにより最適の実行性能が発揮されるスケジュールを生成し、ランタイムには定められたスケジュールによってのみ動作する。

0093

一実施形態に係る演算処理部310は、入力バッファから入力データが伝達され、複数の演算ユニットを用いて演算を実行する。

0094

一実施形態に係る判断部320は、入力データの演算中に前記複数の演算ユニットのうち少なくとも1つに追加レイテンシが発生するかを判断する。

0095

一実施形態に係る格納処理部330は、追加レイテンシが発生する場合にダミー値を出力して入力バッファに格納する。

0096

ここで、一実施形態に係る静的スケジュールプロセッサ300は、入力データに対する演算をストールせず次の演算を行ってもよい。

0097

一実施形態に係る静的スケジュールプロセッサ300は、予め設定されたレイテンシにしたがって入力データの演算を処理してもよい。もし、一実施形態に係る演算処理部310がデータキャッシュによってプロセッサ外部のメモリにアクセスする場合が発生すると、キャッシュヒットまたはミス(cache hit/miss)の有無に応じて動作が変わりつつ、実行に必要な追加レイテンシが生成されてもよい。

0098

例えば、ランタイムに特定演算が行われるために多くの時間が必要な場合、一実施形態に係る静的スケジュールプロセッサ300は、システム効率のために追加レイテンシによりストール状態を維持しないことから、特定演算の処理が完了するまで待機しない。また、一実施形態に係る静的スケジュールプロセッサ300は、追加レイテンシが発生した特定演算を無視して誤ったデータを出力することもない。

0099

言い換えれば、指定されたレイテンシ以外に追加レイテンシが発生した場合、一実施形態に係る静的スケジュールプロセッサ300は、その演算結果を使用する次の演算をスケジュールに定められた時点に合わせて実行できなくなる。言い換えれば、レイテンシが予め指定された値よりも大きければ、その演算の結果を用いる次の演算をスケジュールに定められた時点に合わせて実行できなくなる。

0100

このような状況が発生すると、一実施形態に係る格納処理部330は、追加レイテンシが発生する場合にダミー値を出力して入力バッファに格納してもよい。

0101

一実施形態に係る演算処理部310は、入力バッファから伝達された入力データに対する以前の演算結果値が格納されているかを先に確認する。ここで、演算処理部310は、以前の演算結果値が格納されている場合、スケジュールに定義されている基本レイテンシ後に以前の演算結果値を出力してもよい。

0102

一実施形態に係る演算処理部310は、入力バッファに以前の演算結果値が格納されていない場合、入力データの演算を再実行してもよい。

0103

すなわち、一実施形態に係る静的スケジュールプロセッサ300を用いると、各入力データに対する演算中に基本レイテンシよりも著しく大きいレイテンシが発生した場合、プロセッサ全体が長いサイクルの間にストール状態になって演算能力の低下を防止することができる。

0104

一実施形態に係る静的スケジュールプロセッサ300を用いると、基本レイテンシよりも大きいレイテンシが発生しても、プロセッサはストールすることなく当該の演算値のみをダミー値として処理するだけで続けて次のデータの演算は正常に実行できる。そして、後ほどダミー値として処理されたデータは演算を最初から再演算すればよい。言い換えれば、追加発生したレイテンシだけのストールサイクルを減少させ得る一方、当該データに対して再演算するだけの実行時間のみが追加される。

0105

一般的に、入力データ1件当りプロセッサの演算時間は10〜50サイクル程度が必要とされる。一方、キャッシュメモリアクセス演算の追加レイテンシは100〜300サイクル程度が必要とされる。

0106

ここで、一実施形態に係る静的スケジュールプロセッサ300を用いると、追加レイテンシの発生時ごとに100〜300サイクルストールによるサイクルの無駄遣いを防止することができ、再演算に必要な10〜50サイクルのみで性能向上を図ることができる。

0107

図4は、一実施形態に係る静的スケジュールプロセッサのノンブロッキング実行方法を説明するフローチャートである。

0108

一実施形態に係る静的スケジュールプロセッサのノンブロッキング実行方法は、入力バッファを介して入力データをプロセッサに伝達する(S401)。

0109

次に、一実施形態に係る静的スケジュールプロセッサのノンブロッキング実行方法は、プロセッサによって伝達される入力データを用いて少なくとも1つ以上の演算を処理する(S402)。

0110

次に、一実施形態に係る静的スケジュールプロセッサのノンブロッキング実行方法は、入力バッファを介して入力データをプロセッサに伝達し、少なくとも1つ以上の演算に対する処理結果を格納する(S403)。

0111

一実施形態に係る静的スケジュールプロセッサのノンブロッキング実行方法は、少なくとも1つ以上の演算を処理するため、伝達される入力データをレギュラーレイテンシの演算及びイレギュラーレイテンシの演算のうち少なくとも1つの演算を用いて処理してもよい。

0112

一実施形態に係る静的スケジュールプロセッサのノンブロッキング実行方法は、予め設定されたレイテンシにより入力データに対する演算を処理してもよい。この場合、レギュラーレイテンシの演算を適用して入力データの演算を実行してもよい。

0113

もし、データキャッシュによってプロセッサ外部のメモリにアクセスする場合が発生すると、キャッシュヒットまたはミスの有無に応じて動作が変わり、実行に必要な追加レイテンシが生成することがある。この場合、一実施形態に係る静的スケジュールプロセッサのノンブロッキング実行方法は、イレギュラーレイテンシの演算を適用して入力データの演算を実行する。

0114

一実施形態に係る静的スケジュールプロセッサのノンブロッキング実行方法は、少なくとも1つ以上の演算を処理するために、入力データをレギュラーレイテンシの演算で処理するか、またはイレギュラーレイテンシの演算で処理するかを判断する。

0115

入力データをイレギュラーレイテンシの演算で処理する場合、一実施形態に係る静的スケジュールプロセッサのノンブロッキング実行方法は、入力データに対する以前の演算結果値が入力バッファに格納されているか否かを確認する。

0116

以前の演算結果値が前記入力バッファに格納されている場合、一実施形態に係る静的スケジュールプロセッサのノンブロッキング実行方法は、スケジュールとして定義されている基本レイテンシ後に以前の演算結果値を出力してもよい。

0117

以前の演算結果値が前記入力バッファに格納されていない場合、一実施形態に係る静的スケジュールプロセッサのノンブロッキング実行方法は演算を実行し、演算の実行中に追加レイテンシが発生するか否かを判断する。

0118

キャッシュミスなどの理由により演算の実行中に追加レイテンシが発生する場合、一実施形態に係る静的スケジュールプロセッサのノンブロッキング実行方法はダミー値を出力し、出力されたダミー値に相応する状態ビットを入力バッファに記録して正しい結果値ではないことを表示する。

0119

一実施形態に係る静的スケジュールプロセッサのノンブロッキング実行方法は、演算の実行中に追加レイテンシが発生しない場合、演算の実行による結果値を出力してもよい。また、一実施形態に係る静的スケジュールプロセッサのノンブロッキング実行方法は、出力された結果値を入力バッファに記録してもよい。

0120

結局、一実施形態に係る静的スケジュールプロセッサのノンブロッキング実行方法を用いると、各入力データに対する演算中に基本レイテンシよりも著しく大きいレイテンシが発生した場合、プロセッサ全体が長いサイクルの間にストール状態になって演算能力の低下を防止することができる。

0121

一実施形態に係る静的スケジュールプロセッサのノンブロッキング実行方法を用いると、基本レイテンシよりも大きいレイテンシが発生しても、プロセッサはストールすることなく当該の演算値のみをダミー値として処理するだけで続けて次のデータの演算は正常に実行できる。そして、後ほどダミー値として処理されたデータは演算を最初から再演算すればよい。言い換えれば、追加発生したレイテンシだけのストールサイクルを減少させう得る一方、当該データに対して再演算するだけの実行時間のみが追加される。

0122

図5は、一実施形態に係るプロセッサの動作方法を説明するフローチャートである。

0123

一実施形態に係るプロセッサの動作方法は、入力バッファから入力データが伝達されて演算を行い、入力データの演算中に複数の演算ユニットのうち少なくとも1つに追加レイテンシが発生するかを判断し、追加レイテンシが発生する場合にダミー値を出力して入力バッファに格納してもよい。

0124

具体的に、一実施形態に係るプロセッサの動作方法は、入力バッファから入力データが伝達されて演算を行う前にレギュラー演算で処理するか、イレギュラー演算で処理するかを判断する(S501)。例えば、入力バッファの状態ビットに当該入力データの完了フラグがセッティングされている場合、入力データをレギュラー演算で処理してもよい。

0125

レギュラー演算で処理する場合、一実施形態に係るプロセッサの動作方法は、入力データに対して選定された演算を実行し(S502)、実行結果による有効値を出力する(S503)。

0126

イレギュラー演算で処理する場合、一実施形態に係るプロセッサの動作方法は、演算を行うために入力バッファから伝達された入力データに対する以前の演算結果値が格納されているかを確認する(S504)。

0127

もし、以前の演算結果値が格納されている場合、一実施形態に係るプロセッサの動作方法は、以前の演算結果値を有効値として出力する(S503)。言い換えれば、一実施形態に係るプロセッサの動作方法は、スケジュールとして定義されている基本レイテンシ後に以前の演算結果値を出力してもよい。

0128

以前の演算結果値が格納されていない場合、一実施形態に係るプロセッサの動作方法は入力データに対する演算を実行する(S505)。

0129

一実施形態に係るプロセッサの動作方法は、入力データに対する演算途中に追加レイテンシの存在可否を判断する(S506)。例えば、4回の実行サイクルの後にも演算が終了しなければ、演算のための追加レイテンシが決定されてもよい。しかし、追加レイテンシはこのような状況だけで決定されるものと限定されることはない。

0130

もし、追加レイテンシが発生しなければ、一実施形態に係るプロセッサの動作方法は、実行による結果値を入力バッファに記録する(S507)。また、追加レイテンシが存在すれば、一実施形態に係るプロセッサの動作方法はプロセッサのストールを防止するためにダミー値を出力する(S508)。

0131

一実施形態に係るプロセッサの動作方法は、出力されたダミー値を入力バッファに格納する(S509)。

0132

実施形態に係る方法は、多様なコンピュータ手段を介して様々な処理を実行することができるプログラム命令の形態で実現され、コンピュータ読取可能な記録媒体に記録されてもよい。コンピュータ読取可能な媒体は、プログラム命令、データファイルデータ構造などのうち1つまたはその組合せを含んでもよい。媒体に記録されるプログラム命令は、本発明の目的のために特別に設計されて構成されたものでもよく、コンピュータソフトウェア分野の技術を有する当業者にとって公知のものであり、使用可能なものであってもよい。コンピュータ読取可能な記録媒体の例としては、ハードディスクフロッピー登録商標ディスク及び磁気テープのような磁気媒体CD−ROM、DVDのような光記録媒体光ディスクのような光磁気媒体、及びROM、RAM、フラッシュメモリなどのようなプログラム命令を保存して実行するように特別に構成されたハードウェア装置が含まれてもよい。プログラム命令の例には、コンパイラによって作られるような機械語コードだけでなく、インタープリタなどを用いてコンピュータによって実行できる高級言語コードが含まれる。前記したハードウェア装置は、本発明の動作を行うために1つ以上のソフトウェアモジュールとして作動するように構成されてもよく、その逆も同様である。

0133

上述したように、本発明を限定された実施形態と図面によって説明したが、本発明は、上記の実施形態に限定されることなく、本発明が属する分野における通常の知識を有する者であれば、このような実施形態から多様な修正及び変形が可能である。

0134

したがって、本発明の範囲は、開示された実施形態に限定されるものではなく、特許請求の範囲だけではなく特許請求の範囲と均等なものなどによって定められるものである。

0135

100:静的スケジュールプロセッサのノンブロッキング実行装置
110:入力バッファ
120:プロセッサ
121:演算ユニット
130:結果検索信号
140:結果格納信号
150:完了フラグ信号

ページトップへ

この技術を出願した法人

この技術を発明した人物

ページトップへ

関連する挑戦したい社会課題

該当するデータがありません

関連する公募課題

該当するデータがありません

ページトップへ

技術視点だけで見ていませんか?

この技術の活用可能性がある分野

分野別動向を把握したい方- 事業化視点で見る -

ページトップへ

おススメ サービス

おススメ astavisionコンテンツ

新着 最近 公開された関連が強い技術

  • グラフコアーリミテッドの「 コンパイル方法」が 公開されました。( 2019/05/23)

    【課題】コンピュータ化機能を提供するために複数のプログラムを生成する。【解決手段】この方法は、一連の実行可能命令を含む各処理ユニット用のローカルプログラムを生成することと、各処理ユニットについて、各ロ... 詳細

  • グラフコアーリミテッドの「 マルチスレッドプロセッサでのタスクのスケジューリング」が 公開されました。( 2019/05/23)

    【課題】反復するシーケンスのそれぞれにおいて個別のスレッドを実行する実行ユニットと、個別のスレッドの状態を表すためにレジスタの個別のセットを含む複数のコンテキストレジスタセットとを備えるプロセッサに関... 詳細

  • グラフコアーリミテッドの「 命令セット」が 公開されました。( 2019/05/23)

    【課題】コンピュータプログラムを保持する命令ストレージ、そのコンピュータプログラムを実行する実行装置、及びデータを保持するデータ記憶装置を有する処理ユニット上で実行するための一連の命令を含むコンピュー... 詳細

この 技術と関連性が強い技術

関連性が強い 技術一覧

この 技術と関連性が強い人物

関連性が強い人物一覧

この 技術と関連する社会課題

該当するデータがありません

この 技術と関連する公募課題

該当するデータがありません

astavision 新着記事

サイト情報について

本サービスは、国が公開している情報(公開特許公報、特許整理標準化データ等)を元に構成されています。出典元のデータには一部間違いやノイズがあり、情報の正確さについては保証致しかねます。また一時的に、各データの収録範囲や更新周期によって、一部の情報が正しく表示されないことがございます。当サイトの情報を元にした諸問題、不利益等について当方は何ら責任を負いかねることを予めご承知おきのほど宜しくお願い申し上げます。

主たる情報の出典

特許情報…特許整理標準化データ(XML編)、公開特許公報、特許公報、審決公報、Patent Map Guidance System データ