(57)【要約】  メモリ間でのデータ位置を指定する方法を統一したシステム、データ処理方法、及びプログラムを提供する。  システム１は、制御部１０と、データ位置に基づいてデータを格納する格納部２０とを備えるシステムであって、システム１が、データへアクセスするポインタとして、所定のスキームと所定の区切りの後にスキーム毎に定義された書式によるリソースとが対応付けられているＵｎｉｆｏｒｍ  Ｒｅｓｏｕｒｃｅ  Ｉｄｅｎｔｉｆｉｅｒ（ＵＲＩ）をデータ位置の代わりに用い、制御部１０が、ＵＲＩに対応付けられているスキームが指定するアプリケーションを制御して起動させ、ＵＲＩのリソースをアプリケーションに渡し、アプリケーションが、リソースに基づいてＵＲＩをデータ位置として用い、ＵＲＩで指定されて格納部２０に格納されるデータを制御する。
2019216130.tif 000002
【特許請求の範囲】
【請求項１】
制御部と、データ位置に基づいてデータを格納する格納部とを備えるシステムであって、
前記システムが、前記データへアクセスするポインタとして、所定のスキームと所定の区切りの後に前記スキーム毎に定義された書式によるリソースとが対応付けられているＵｎｉｆｏｒｍ  Ｒｅｓｏｕｒｃｅ  Ｉｄｅｎｔｉｆｉｅｒ（ＵＲＩ）を前記データ位置の代わりに用い、
前記制御部が、前記ＵＲＩに対応付けられている前記スキームが指定するアプリケーションを制御して起動させ、前記ＵＲＩの前記リソースを前記アプリケーションに渡し、
前記アプリケーションが、前記リソースに基づいて前記ＵＲＩを前記データ位置として用い、前記ＵＲＩで指定されて前記格納部に格納されるデータを制御するシステム。
【請求項２】
前記格納部が、互いに異なる形式の前記データ位置が割り当てられた複数の格納部を含み、
前記アプリケーションが、前記複数の格納部のそれぞれに格納されるデータを前記ＵＲＩに基づいて指定する請求項１に記載のシステム。
【請求項３】
前記複数の格納部が、レジスタ、キャッシュ、ＤＲＡＭ、ビデオメモリ、ＳＳＤ、ＨＤＤ、テープドライブ、光学記録媒体、光磁気記憶媒体、及び磁気記録媒体からなる群から選択される少なくとも２つの格納部を含む請求項１又は２に記載のシステム。
【請求項４】
前記制御部が、前記ＵＲＩに対応付けられている前記スキームに基づいて、複数のアプリケーションを制御して起動させる請求項１〜３のいずれか１項に記載のシステム。
【請求項５】
前記データ位置が、物理アドレスである請求項１〜４のいずれか１項に記載のシステム。
【請求項６】
前記データ位置が、少なくともＩＯコントローラーの番号を含んで特定される請求項１〜４のいずれか１項に記載のシステム。
【請求項７】
前記格納部が、所定のスキームと所定の区切りの後に前記スキーム毎に定義された書式によるリソースとが対応付けられているＵＲＩを含む画像データを格納し、
前記アプリケーションが、前記画像データに所定の処理を施す画像処理アプリケーションである請求項１〜６のいずれか１項に記載のシステム。
【請求項８】
制御部と、データ位置に基づいてデータを格納する格納部とを備えるシステムにおけるデータ処理方法であって、
前記システムが、前記データへアクセスするポインタとして、所定のスキームと所定の区切りの後に前記スキーム毎に定義された書式によるリソースとが対応付けられているＵｎｉｆｏｒｍ  Ｒｅｓｏｕｒｃｅ  Ｉｄｅｎｔｉｆｉｅｒ（ＵＲＩ）を前記データ位置の代わりに用い、
前記制御部が、前記ＵＲＩに対応付けられている前記スキームが指定するアプリケーションを制御して起動させ、前記ＵＲＩの前記リソースを前記アプリケーションに渡す段階と、
前記アプリケーションが、前記リソースに基づいて前記ＵＲＩを前記データ位置として用い、前記ＵＲＩで指定されて前記格納部に格納されるデータを制御する段階と
を備えるデータ処理方法。
【請求項９】
制御部と、データ位置に基づいてデータを格納する格納部とを備えるシステム用のプログラムであって、
コンピューターに、
前記データへアクセスするポインタとして、所定のスキームと所定の区切りの後に前記スキーム毎に定義された書式によるリソースとが対応付けられているＵｎｉｆｏｒｍ  Ｒｅｓｏｕｒｃｅ  Ｉｄｅｎｔｉｆｉｅｒ（ＵＲＩ）を前記データ位置の代わりに用いる機能と、
前記ＵＲＩに対応付けられている前記スキームが指定するアプリケーションを制御して起動させ、前記ＵＲＩの前記リソースを前記アプリケーションに渡す機能と、
前記アプリケーションが、前記リソースに基づいて前記ＵＲＩを前記データ位置として用い、前記ＵＲＩで指定されて前記格納部に格納されるデータを制御する機能と
を実現させるプログラム。
【請求項１０】
制御部と、データ位置に基づいてデータを格納する格納部とを備えるシステム用のプログラムであって、
コンピューターに、
前記データへアクセスするポインタとして、所定のスキームと所定の区切りの後に前記スキーム毎に定義された書式によるリソースとが対応付けられているＵｎｉｆｏｒｍ  Ｒｅｓｏｕｒｃｅ  Ｉｄｅｎｔｉｆｉｅｒ（ＵＲＩ）を前記データ位置の代わりに用いる機能と、
前記ＵＲＩに対応付けられている前記スキームが指定するアプリケーションを制御して起動させ、前記ＵＲＩの前記リソースを前記アプリケーションに渡す機能と、
前記アプリケーションが、前記リソースに基づいて前記ＵＲＩを前記データ位置として用い、前記ＵＲＩで指定されて前記格納部に格納されるデータを処理する機能と
を実現させるプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、システム、データ処理方法、及びプログラムに関する。特に、本発明は、データ位置を指定する方法を拡張、統一したシステム、データ処理方法、及びプログラムに関する。
【背景技術】
【０００２】
従来、不揮発性メモリと、不揮発性メモリに格納されており、複数のレイヤを持つ階層構造により、書き込み先又は読み出し先として指定された論理アドレスと、不揮発性メモリにおける位置を示す物理アドレスとを関連付けているアドレス変換データと、不揮発性メモリよりも高速に読み出し及び書き込み可能であり、アドレス変換データの一部を格納するキャッシュメモリと、アドレス変換データの階層構造にしたがって、キャッシュメモリに格納すべきアドレス変換データの一部を探索し、アドレス変換データの一部をキャッシュメモリに格納し、キャッシュメモリを参照することにより、論理アドレスを物理アドレスに変換するアドレス変換部と、書き込みコマンドを受信した場合に、アドレス変換部によって取得された物理アドレスの示す位置に、書き込み対象データを書き込む書き込み制御部と、読み出しコマンドを受信した場合に、アドレス変換部によって取得された物理アドレスの示す位置から、読み出し対象データを読み出す読み出し制御部と、を具備し、アドレス変換データに含まれる複数の所定サイズの部分データは、複数のレイヤに所属し、複数のレイヤのうちの第１のレイヤに属する第１の部分データは、論理アドレスと、複数のレイヤのうちの第１のレイヤの下位である第２のレイヤに属する複数の第２の部分データを参照するための複数の参照先情報を含み、複数の部分データのうち階層構造における最下位の部分データは、論理アドレスと物理アドレスとを含むメモリ装置が知られている（例えば、特許文献１参照。）。特許文献１に記載のメモリ装置によれば、アドレス変換データを効率的に管理することができる。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開２０１８−０４１２０４号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
コンピューターにおいては、レジスタ、キャッシュ、Ｄｙｎａｍｉｃ  Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ（ＤＲＡＭ）、ビデオメモリ、Ｓｏｌｉｄ  Ｓｔａｔｅ  Ｄｒｉｖｅ（ＳＳＤ）、Ｈａｒｄ  Ｄｉｓｋ  Ｄｒｉｖｅ（ＨＤＤ）等のように各種のメモリ（格納部）が用いられている。これらのメモリは各種の通信バスで互いに接続され、互いに異なる形式によって各メモリ内に所定のアドレスが割り当てられている。そして、コンピューターによる各種のデータ処理が実行される場合、当該データ処理に用いられる所定のデータは、個別に分けられた各メモリのアドレス間で頻繁にデータ転送される。したがって、当該処理に用いられるデータ容量が増加するとデータ転送も増大する。【０００５】
この場合において、例えば、ＤＲＡＭ間でのデータ転送とＤＲＡＭとＳＳＤとの間でのデータ転送とを比べると、ＤＲＡＭ間における転送速度の方がＤＲＡＭとＳＳＤとの間における転送速度よりはるかに速いので、ＤＲＡＭ間でやり取りしていたデータをＤＲＡＭとＳＳＤとの間でやり取りすると転送速度不足によってデータ処理速度が大幅に低下する。【０００６】
そして、従来の特許文献１に記載されているメモリ装置等の技術においては、アドレス変換データを効率的に管理することを意図しているものの、所定のデータ処理を実行する場合、ＳＳＤやＨＤＤからＤＲＡＭへデータ転送せざるを得ず、かつ、メモリ間の転送速度の違いにより発生するデータ処理速度の低下については考慮されていない。【０００７】
したがって、本発明の目的は、メモリ間でのデータ位置を指定する方法を拡張、統一したシステム、データ処理方法、及びプログラムを提供することにある。
【課題を解決するための手段】
【０００８】
本発明は、上記目的を達成するため、制御部と、データ位置に基づいてデータを格納する格納部とを備えるシステムであって、システムが、データへアクセスするポインタとして、所定のスキームと所定の区切りの後にスキーム毎に定義された書式によるリソースとが対応付けられているＵｎｉｆｏｒｍ  Ｒｅｓｏｕｒｃｅ  Ｉｄｅｎｔｉｆｉｅｒ（ＵＲＩ）をデータ位置の代わりに用い、制御部が、ＵＲＩに対応付けられているスキームが指定するアプリケーションを制御して起動させ、ＵＲＩのリソースをアプリケーションに渡し、アプリケーションが、リソースに基づいてＵＲＩをデータ位置として用い、ＵＲＩで指定されて格納部に格納されるデータを制御するシステムが提供される。【０００９】
また、上記システムにおいて、格納部が、互いに異なる形式のデータ位置が割り当てられた複数の格納部を含み、アプリケーションが、複数の格納部のそれぞれに格納されるデータをＵＲＩに基づいて指定することもできる。【００１０】
また、上記システムにおいて、複数の格納部が、レジスタ、キャッシュ、ＤＲＡＭ、ビデオメモリ、ＳＳＤ、ＨＤＤ、テープドライブ、光学記録媒体、光磁気記憶媒体、及び磁気記録媒体からなる群から選択される少なくとも２つの格納部を含むこともできる。【００１１】
また、上記システムにおいて、制御部が、ＵＲＩに対応付けられているスキームに基づいて、複数のアプリケーションを制御して起動させ手もよい。【００１２】
また、上記システムにおいて、データ位置が、物理アドレスであることが好ましい。【００１３】
また、上記システムにおいて、データ位置が、少なくともＩＯコントローラーの番号を含んで特定されてもよい。【００１４】
また、上記システムにおいて、格納部が、所定のスキームと所定の区切りの後にスキーム毎に定義された書式によるリソースとが対応付けられているＵＲＩを含む画像データを格納し、アプリケーションが、画像データに所定の処理を施す画像処理アプリケーションであってもよい。【００１５】
また、本発明は、上記目的を達成するため、制御部と、データ位置に基づいてデータを格納する格納部とを備えるシステムにおけるデータ処理方法であって、システムが、データへアクセスするポインタとして、所定のスキームと所定の区切りの後にスキーム毎に定義された書式によるリソースとが対応付けられているＵｎｉｆｏｒｍ  Ｒｅｓｏｕｒｃｅ  Ｉｄｅｎｔｉｆｉｅｒ（ＵＲＩ）をデータ位置の代わりに用い、制御部が、ＵＲＩに対応付けられているスキームが指定するアプリケーションを制御して起動させ、ＵＲＩのリソースをアプリケーションに渡す段階と、アプリケーションが、リソースに基づいてＵＲＩをデータ位置として用い、ＵＲＩで指定されて格納部に格納されるデータを制御する段階とを備えるデータ処理方法が提供される。【００１６】
また、本発明は、上記目的を達成するため、制御部と、データ位置に基づいてデータを格納する格納部とを備えるシステム用のプログラムであって、コンピューターに、データへアクセスするポインタとして、所定のスキームと所定の区切りの後にスキーム毎に定義された書式によるリソースとが対応付けられているＵｎｉｆｏｒｍ  Ｒｅｓｏｕｒｃｅ  Ｉｄｅｎｔｉｆｉｅｒ（ＵＲＩ）をデータ位置の代わりに用いる機能と、ＵＲＩに対応付けられているスキームが指定するアプリケーションを制御して起動させ、ＵＲＩのリソースをアプリケーションに渡す機能と、アプリケーションが、リソースに基づいてＵＲＩをデータ位置として用い、ＵＲＩで指定されて格納部に格納されるデータを制御する機能とを実現させるプログラムが提供される。【００１７】
また、本発明は、上記目的を達成するため、制御部と、データ位置に基づいてデータを格納する格納部とを備えるシステム用のプログラムであって、コンピューターに、データへアクセスするポインタとして、所定のスキームと所定の区切りの後にスキーム毎に定義された書式によるリソースとが対応付けられているＵｎｉｆｏｒｍ  Ｒｅｓｏｕｒｃｅ  Ｉｄｅｎｔｉｆｉｅｒ（ＵＲＩ）をデータ位置の代わりに用いる機能と、ＵＲＩに対応付けられているスキームが指定するアプリケーションを制御して起動させ、ＵＲＩのリソースをアプリケーションに渡す機能と、アプリケーションが、リソースに基づいてＵＲＩをデータ位置として用い、ＵＲＩで指定されて格納部に格納されるデータを処理する機能とを実現させるプログラムが提供される。
【発明の効果】
【００１８】
本発明に係るシステム、データ処理方法、及びプログラムによれば、メモリ間でのデータ位置を指定する方法を拡張、統一したシステム、データ処理方法、及びプログラムを提供できる。
【図面の簡単な説明】
【００１９】
【図１】本実施の形態に係るシステムの機能構成ブロック図である。
【図２】メモリヒエラルキーを示す図である。
【図３】本実施の形態に係るシステムの応用例における処理のフロー図である。
【図４】本実施の形態に係るシステムの応用例における処理のフロー図である。
【発明を実施するための形態】
【００２０】
［実施の形態］
図１は、本発明の実施の形態に係るシステムの機能構成の一例を示す。また、図２はメモリヒエラルキーを示す図である。
【００２１】
（システム１の概要）
従来のコンピュータープログラムは、複数のルーチンがポインタと呼ばれる物理アドレスを受け渡し、Ｄｙｎａｍｉｃ  Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ（ＤＲＡＭ）上のデータを複数のルーチン間で共有して利用したり、加工したりして動作する。そのため、Ｓｏｌｉｄ  Ｓｔａｔｅ  Ｄｒｉｖｅ（ＳＳＤ）等のメモリヒエラルキー下層のデータを一度、ＤＲＡＭに転送することを要する。ここで、ＤＲＡＭとＳＳＤとの間で扱うデータ量が増大すると、従来の方式では十分な転送速度を確保できず、ＤＲＡＭへのデータ転送がデータ処理のボトルネックとなっている。
【００２２】
メモリヒエラルキー２を参照して説明すると、メモリヒエラルキー２においては、レジスタ２００の下にキャッシュ２０２が位置し、キャッシュ２０２の下にＤＲＡＭ２０４が位置し、ＤＲＡＭ２０４の下にＳＳＤ２０８が位置し、ＳＳＤ２０８の下にＨａｒｄ  Ｄｉｓｋ  Ｄｒｉｖｅ（ＨＤＤ）２１０が位置し、ＨＤＤ２１０の下にテープドライブ２１２が位置する。そして、ＤＲＡＭ２０４とＳＳＤ２０８との間のデータ転送３００がボトルネックとなっている。
【００２３】
そこで、本実施形態に係るシステム１においては、上記ボトルネックを解消する観点から、物理アドレスでの管理をＵｎｉｆｏｒｍ  Ｒｅｓｏｕｒｃｅ  Ｉｄｅｎｔｉｆｉｅｒ（ＵＲＩ）での管理に変更する。すなわち、本実施形態に係るシステム１は、制御部１０と、データ位置（例えば、物理アドレスや各種の格納部の番地、ＩＯコントローラーの番号等）で示される番地にデータを格納する格納部２０とを備える。システム１では、データへアクセスするポインタとして、所定のスキームと所定の区切り（例えば、「：」（コロン）等）の後にスキーム毎に定義された書式によるリソースとが対応付けられているＵＲＩを用いる。つまり、本実施形態に係るシステム１においては、コンピューター内部のデータ位置を指し示すポインタを物理アドレスからＵＲＩに変更若しくは置換して用いることで、制御部１０が処理できるデータの位置を「拡張」する。換言すれば、システム１においては、データ位置の代わりにＵＲＩを用いる。なお、ポインタは、コンピュータープログラムが、ルーチン間で処理するデータの位置を受け渡す場合に用いる付票である。
【００２４】
（制御部１０）
制御部１０は、システム１における各種のデータ処理等を制御する。制御部１０は格納部２０に働きかけて、格納部２０に格納されているデータの転送、処理等、及び所定のアプリケーションの制御を実行する。制御部１０は、例えば、Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ（ＣＰＵ）の論理回路を有して構成される。
【００２５】
制御部１０は、ＵＲＩに対応付けられているスキームによって指定される所定のアプリケーションを制御して起動させる。そして、制御部１０は、ＵＲＩのリソースをアプリケーションに渡す。続いて、アプリケーションは、リソースに基づいてＵＲＩをデータ位置として用い、ＵＲＩで指定されて格納部２０に格納されるデータを処理する。なお、制御部１０は、ＵＲＩに対応付けられているスキームに基づいて、複数のアプリケーションを制御して起動させることもできる。また、アプリケーションは、所定のデータを転送する機能（転送機能）を処理の一環として更に有するか、転送機能だけを有するアプリケーションであってもよい。この場合、アプリケーションは所定のデータを所定の格納部に転送する。
【００２６】
なお、ＵＲＩは、予め定められた一定の書式によってリソース（資源）を指し示す識別子である。本実施形態に係るＵＲＩにおいては、目的とするデータがシステム１内に存在しない場合をも考慮し、制御部１０若しくはアプリケーションによるアクセスを可能にするためのリソースをも指し示すことができるものとする。また、ＵＲＩが指し示すリソースに制御部１０やアプリケーションがアクセスすることができるようにすることを目的として、ＵＲＩを、実際の格納部における物理アドレスに変換することを要するので、同一の物理アドレスを複数のＵＲＩが指し示すこともあるものとする。なお、ＵＲＩの物理アドレスへの変換若しくは置換は、ＵＲＩに対応付けられているスキームが指定するアプリケーションが実行する。
【００２７】
また、ＵＲＩは、例えば、「スキーム：／／リソース」の形式で記述され、リソースは、スキーム毎に定義された書式で記述される。そして、リソースの例としては、例えば、「目的のデータが存在するディスク番号、ディレクトリ、ファイル、シーク」、「目的のデータが存在するＤＲＡＭメモリアドレス」、「目的のデータが存在しない場合の対応、リトライ、コールバック」等が挙げられる。
【００２８】
（格納部２０）
格納部２０は、所定の形式のデータ位置に所定のデータを格納可能に設けられる。格納部２０は、各種のデータを格納する機能を有する限り様々な記憶媒体を用いることができ、例えば、レジスタ２００、キャッシュ２０２、ＤＲＡＭ２０４、ビデオメモリ２０６、ＳＳＤ２０８、ＨＤＤ２１０、テープドライブ２１２、Ｃｏｍｐａｃｔ  Ｄｉｓｃ（ＣＤ）やＤｉｇｉｔａｌ  Ｖｅｒｓａｔｉｌｅ  Ｄｉｓｃ（ＤＶＤ）等の光学記録媒体、光磁気記憶媒体、及び磁気記録媒体等である。これらの格納部には、互いに異なる形式のデータ位置が割り当てられている。なお、図２に示すメモリヒエラルキー２において、制御部１０とＳＳＤ２０８以下の格納部とは、例えば、ＩＯチャネルによって接続され、ＩＯコントローラーで制御される。
【００２９】
一例として、レジスタ２００、キャッシュ２０２、ＤＲＡＭ２０４においては、データ位置は物理アドレスを用いて指定される。具体的に、レジスタ２００においては、レジスタ名若しくは番号でデータ位置が指定される。キャッシュ２０２においては、先頭から順列に沿って数えたアドレスによってデータ位置が指定される。ＤＲＡＭ２０４においても、先頭から順列に沿って数えたアドレスでデータ位置が指定される。ただし、ＤＲＡＭ２０４においては、データ位置の指定は物理的にキャッシュ２０２とは異なる。
【００３０】
本実施形態に係るシステム１は、これらの格納部から選択される少なくとも２つの格納部を含む。
【００３１】
（システム１の処理の詳細）
本実施形態に係るシステム１は、ＵＲＩによってデータが指定される格納部２０を備えるシステムである。そして、制御部１０がＵＲＩに対応付けられているスキームに応じたアプリケーションを起動させ、起動されたアプリケーションに当該ＵＲＩのリソースが渡される。そして、アプリケーションは、渡されたリソースに基づいてＵＲＩをデータ位置に変換する。これにより、格納部２０がどのような種類の格納部２０であっても、制御部１０による格納部２０の直接的、統一的な制御を可能とする。
【００３２】
例えば、図２に示すメモリヒエラルキー２のように、従来のＣＰＵではレジスタ２００、キャッシュ２０２、及びＤＲＡＭ２０４までを直接、制御する。そして、従来のＣＰＵは、ＳＳＤ２０８以下の格納部を直接制御することができない。ＤＲＡＭ２０４からＳＳＤ２０８にデータを転送する経路における転送速度がＤＲＡＭ２０４以上の格納部における転送速度より低速であることから、ＤＲＡＭ２０４以上におけるデータ転送等がいかに高速であっても、ＤＲＡＭ２０４からＳＳＤ２０８へのデータ転送が転送速度の観点からボトルネックになる。これは、従来のコンピューターでは格納部毎に異なる形式を用い、データ位置を物理アドレスで指定していることに起因する。
【００３３】
一方、本実施形態に係るシステム１は、物理アドレスの代わりにＵＲＩをポインタとして用いる。そのため、ＤＲＡＭ２０４から下層の格納部であるＳＳＤ２０８等を制御部１０によって直接、制御することができる。具体的に、本実施形態に係る制御部１０において、制御部１０が各格納部にアクセスする場合、制御部１０の命令によってアクセス可能な範囲は、レジスタ２００、キャッシュ２０２、ＤＲＡＭ２０４、及びＩＯチャネルのＩＯコントローラーである。そして、制御部１０が、レジスタ２００、キャッシュ２０２、ＤＲＡＭ２０４、及びＩＯチャネルのＩＯコントローラーに保持されているデータ位置等の数値を制御し、ＩＯコントローラーに保持されている数値が制御部１０によって書き換えられることにより、ＩＯコントローラーから先のＳＳＤ２０８、ＨＤＤ２１０、及びテープドライブ２１２等の格納部が制御部１０によって直接制御される。
【００３４】
その結果、例えば、ＤＲＡＭ２０４をデータの転送先・共有場所としてではなく、キャッシュ２０２より容量が大きなキャッシュとして扱えるので、システム１におけるデータ処理速度を大幅に向上させることができる。
【００３５】
より具体的には、制御部１０は、所定のデータのＵＲＩを参照し、ＵＲＩに対応付けられているスキームが指定するアプリケーションを起動する。制御部１０は、アプリケーションにＵＲＩの区切りの後ろのリソースを渡す。アプリケーションは、リソースに基づいて、物理アドレスの代わりにＵＲＩをデータ位置として用い、ＵＲＩで指定されている格納部に格納されているデータにアクセスする。これにより、ＵＲＩを用いてＳＳＤ２０８等へのアクセスを、制御部１０により一元管理できる。
【００３６】
例えば、制御部１０によって起動されるアプリケーションがＳＳＤ制御ルーチンであれば、ＳＳＤ制御ルーチンがリソースに基づいてＳＳＤコントローラー機器の物理アドレスや、ＳＳＤコントローラー上のＳＳＤメモリ空間の物理アドレスを生成する。これにより制御部１０が、ＳＳＤ２０８を制御することができる。
【００３７】
なお、アプリケーションは、複数の格納部のそれぞれに格納されるデータをＵＲＩに基づいて指定することもできる。すなわち、アプリケーションは、制御部１０に制御され、複数の格納部にそれぞれ異なる形式の物理アドレスで指定された位置・番地に格納されている複数のデータそれぞれを、ＵＲＩを用いることで統一的に取り扱うこともできる。これにより、本実施形態に係るシステム１によれば、複数の格納部間でのデータ位置の指定をＵＲＩで拡張し、その結果、統一的に扱うことができる。
【００３８】
また、本実施の形態に係るシステム１は、制御部１０が有するデバイスドライバによってＳＳＤ２０８やＨＤＤ２１０等が制御される。本実施形態においてシステム１の処理を高速化させる観点から、デバイスドライバをプラグイン受け入れ可能な形態に変更することができる。アプリケーションにおいてポインタで指定されるデータを扱うルーチンをデバイスドライバのプラグインとして読み込まさせることで、ルーチンをデバイスドライバ内部で動作させることができ、アプリケーションはオペレーティングシステムを介さずにＳＳＤ２０８等の記憶素子に直接アクセスできる。これにより、システム１における処理が高速化される。
【００３９】
（実施の形態の効果）
本実施の形態に係るシステム１においては、複数のルーチンで受け渡されるポインタとして、ＵＲＩをデータ位置（物理アドレス）の代わりに用いたので、ＤＲＡＭ２０４をキャッシュ２０２より容量の大きなキャッシュとして用いることができる。すなわち、システム１においては、データ処理に用いるデータのすべてをＤＲＡＭ２０４に転送することを必ずしも要さず、ＳＳＤ２０８等のメモリヒエラルキーの下層の格納部に格納されているデータのデータ処理に要する一部だけにアクセスして処理ができ（部分アクセス）、また、ＳＳＤ２０８等のメモリヒエラルキーの下層の格納部から所定のデータを読み取る場合において、データ処理に要する演算を組み込む処理（ストリーム処理等）をすることができる。
【００４０】
したがって、従来の物理アドレスによる管理では格納部毎にポインタが異なるのに対し、本実施形態に係るシステム１によれば、ＵＲＩを用いることで同一のポインタで同一のデータを指し示すことができることから、すべての格納部のデータを統一的に管理できるので、データ量が転送速度に対して増大した場合であっても、部分アクセスやストリーム処理等のデータ処理の高速化技術を様々なアプリケーションに組み込むことで、従来のアドレス管理よりも高速化したデータ処理を実現することができる。すなわち、本実施形態に係るシステム１によれば、無駄なデータ転送の削減、データ転送ルーチンの共通化、及びデータ転送ルーチンへの拡張を実現することができる。
【００４１】
また、従来の物理アドレスによる管理ではデータをＤＲＡＭ上に転送し、かつ、集約することから、システム上でデータの集中した転送・集約処理が発生する。その結果、従来のシステムの熱効率は悪い。一方、本実施形態に係るシステム１においては、ＵＲＩを用いてデータを一元管理するので、データ転送の転送・集約処理が発生せず、熱効率が向上する。
【００４２】
更に、物理アドレスは機器毎に異なることから、データ処理を複数の機器で分散する場合、データ処理を実行する機器のＤＲＡＭ上に個別にデータ転送することを要するので、機器間のデータ転送に無駄な電力消費・排熱が生じる。一方、本実施形態に係るシステム１においては、ＵＲＩによってデータを一元管理するので、機器間でＵＲＩが指し示すデータが同一になり、機器間で分散処理する場合に無駄なデータ転送が生じないことから、電力消費・廃熱が削減され熱効率が向上する。
【００４３】
［実施の形態の応用例］
図３及び図４は、本実施の形態に係るシステムの応用例における処理の流れの一例を示す。
【００４４】
本実施形態に係るシステム１の応用例として、画像に含まれる人物の顔認識を実行するシステムの例を取り上げる（以下、応用例に係るシステムを「顔認識システム」と称する。）。応用例においては、格納部２０が、所定のスキームと所定の区切りの後にスキーム毎に定義された書式によるリソースとが対応付けられているＵＲＩを含む画像データを格納している。また、アプリケーションは、画像データに所定の処理を施す画像処理アプリケーションである。なお、本実施形態において画像データは、静止画像の画像データ、及び／又は動画に含まれる動画構成画像の画像データであってよい。動画に含まれる動画構成画像は、フレーム画像、フィールド画像、及びその他の動画を構成する様々な形式の画像のいずれであってもよい。
【００４５】
なお、本実施形態の応用例として顔認識システムを説明するが、応用例としては顔認識システムに限られず、各種データを処理するシステムであれば、様々な分野・用途において応用することができる。
【００４６】
応用例に係る顔認識システムは、画像に含まれる１つ以上の人物の顔領域を指摘するシステムである。まず、顔認識システムは、処理対象である画像ファイルが指定された場合（ステップ１０。以下、ステップを「Ｓ」と表す。）、所定の処理のコンテキスト（すなわち、アプリケーションの実行に要求される各種の制御情報）を作成する（Ｓ１２）。ここで、画像ファイルには予めＵＲＩが対応付けられており、顔認識システムは指定された画像ファイルのＵＲＩを参照し、ＵＲＩにより指定されているアプリケーションをコールするアプリケーションとして特定する。なお、以下の説明において「アプリケーション」と「読み込みルーチン」とは同一のプログラムである。
【００４７】
次に顔認識システムは、実行イメージを用意する（Ｓ１４）。すなわち、まず、顔認識システムは、特定したアプリケーションに格納部２０のいずれかの格納部の中から作業メモリを確保させる（例えば、コンパイラにより作業メモリは算出される。）。そして、アプリケーションは、指定された画像ファイルのグレースケール化、及びヒストグラム均一化処理を実行して作業メモリに読み込む。続いて、アプリケーションは、画像ファイル内の人物の顔検出処理を実行し、顔の位置（顔位置）を特定すると共に、格納部２０のいずれかから仮の出力先を決定し、仮の出力先において検出されたすべての顔位置に円を描画する。このように顔認識システムは、実行イメージを用意する。
【００４８】
続いて顔認識システムは、用意した実行イメージを「読み込みルーチン」の拡張機能として実行可能な形式にビルドする（Ｓ１６）。そして、顔認識システムは、Ｓ１２で作成したコンテキストに、ビルドされた実行可能な形式を実行イメージとして添付する（Ｓ１８）。更に、顔認識システムは、コンテキストの引数として処理対象である画像ファイルのＵＲＩを添付し（Ｓ２０）、かつ、コンテキストの引数として「分類器のカスケード」を読み込ませる（Ｓ２２）。なお、分類器のカスケードとは、複数の強識別器を連結した識別器であり、各強識別器により順列に判別処理が実行される。
【００４９】
また、顔認識システムは、コンテキストに引数として「処理結果を書き込む領域」を指定する（Ｓ２４）。そして、顔認識システムは、「読み込みルーチン」を呼び出して、「読み込みルーチン」にコンテキストを渡して顔認識処理を実行させる（Ｓ２６）。
【００５０】
「読み込みルーチン」であるアプリケーションは、顔認識システムからコンテキストを受け取った場合、読み込みルーチンを開始し（Ｓ３０）、コンテキストを読み込む（Ｓ３２）。そして、アプリケーションは、格納部２０のいずれかから作業メモリを確保する（Ｓ３４）。アプリケーションは、コンテキストの引数のＵＲＩで渡されたリソースを、該当するコントローラーと、コントローラーに接続されているメモリ空間での番地とに変換する（Ｓ３６）。すなわち、アプリケーションはＵＲＩをデータ位置に変換する。
【００５１】
そして、アプリケーションは、上記コントローラーとメモリ空間の番地とを「入力元」として登録すると共に（Ｓ３８）、「処理結果を書き込む領域」を特定し、特定した領域を「出力先」として登録する（Ｓ４０）。次に、アプリケーションは実行イメージにコンテキスト内の引数を渡し（Ｓ４２）、実行イメージの処理を開始する（Ｓ４４）。実行イメージの処理においては、「入力元」から取得した画像データにグレースケール化処理とヒストグラム均一化処理とを施して「作業メモリ」に読み込み、顔検出処理を実行する。そして、アプリケーションは、「出力先」において顔位置に円を描画する。これにより、実行イメージの処理が完了する。
【００５２】
アプリケーションは実行イメージの処理が完了した場合、実行イメージの処理完了を呼び出し元に通知し（Ｓ４６）し、顔認識システムは、コンテキストから処理結果を読み取る（Ｓ２８）。これにより、画像において人物の顔の位置が指摘される。なお、顔認識システムによる処理結果の読み取り（Ｓ２８）が完了した場合、アプリケーションは実行イメージを含むコンテキスト、及び作業メモリを解放する。
【００５３】
応用例に係る顔認識システムにおいては、画像ファイルのデータを転送する処理を実行しないので、読み込みメモリの確保をすることを要さない。また、顔認識システムにおいては、読み込み先を示すＵＲＩによって読み込み用のプリケーションが指定されるので、画像ファイルがＤＲＡＭ２０４上のメモリ空間、ＳＳＤ２０８上のファイル、ビデオメモリ２０６上等のいずれに存在していた場合であっても、同一のＵＲＩによって同一の画像ファイルを制御できる。そして、顔認識システムにおいては、「読み込みルーチン」に添付される拡張機能として実行イメージを指定できるので、画像ファイルを読み込む過程において顔認識を実行することができる。
【００５４】
以上の説明において、システム１又は顔認識システムの各部は、ハードウエアにより実現されてもよく、ソフトウエアにより実現されてもよい。また、ハードウエアとソフトウエアとの組み合わせにより実現されてもよい。プログラムは、コンピューター読み取り可能な媒体又はネットワークに接続された記憶装置から、システム１又は顔認識システムを構成するコンピューターにインストールされてもよい。
【００５５】
コンピューターにインストールされ、コンピューターを本実施形態に係るシステム１又は顔認識システムとして機能させるプログラムは、ＣＰＵ等に働きかけて、コンピューターをシステム１又は顔認識システムとして機能させる。プログラムに記述された情報処理は、コンピューターに読込まれることにより、ソフトウエアとシステム１又は顔認識システムの少なくとも一方のハードウエア資源とが協働した具体的手段として機能する。そして、これらの具体的手段によって、本実施形態におけるコンピューターの使用目的に応じた情報の処理を実現することにより、使用目的に応じた特有のシステム１又は顔認識システムを構成できる。
【００５６】
また、システム１又は顔認識システムは、ＣＰＵ、ＲＯＭ、ＲＡＭ、通信インターフェース等を有するデータユニットと、キーボード、タッチパネル、マイク等の入力ユニットと、ディスプレイ、スピーカ等の出力ユニットと、メモリ、ＨＤＤ等の記憶ユニットとを備える構成の情報処理装置において、システム１又は顔認識システムの各部の動作を規定したソフトウエア又はプログラムを起動することにより実現してもよい。
【００５７】
システム１用又は顔認識システム用のプログラムは、インターネット等の通信ネットワーク、又は磁気記録媒体、光学記録媒体等の記録媒体を介してシステム１又は顔認識システムに提供し得る。そして、システム１又は顔認識システムに格納されたシステム１用又は顔認識システム用のプログラムは、ＣＰＵ等により実行される。プログラムを格納している記録媒体は、ＣＤ−ＲＯＭやＤＶＤ等の非一過性の記録媒体であってもよい。
【００５８】
以上、本発明の実施の形態を説明したが、上記に記載した実施の形態は特許請求の範囲に係る発明を限定するものではない。また、実施の形態の中で説明した特徴の組合せの全てが発明の課題を解決するための手段に必須であるとは限らない点に留意すべきである。更に、上記した実施形態の技術的要素は、単独で適用されてもよいし、プログラム部品とハードウエア部品とのような複数の部分に分割されて適用されるようにすることもできる。
【符号の説明】
【００５９】
１  システム
２  メモリヒエラルキー
１０  制御部
２０  格納部
２００  レジスタ
２０２  キャッシュ
２０４  ＤＲＡＭ
２０６  ビデオメモリ
２０８  ＳＳＤ
２１０  ＨＤＤ
２１２  テープドライブ
３００  データ転送
【図１】
2019216130.tif 000003
【図２】
2019216130.tif 000004
【図３】
2019216130.tif 000005
【図４】
2019216130.tif 000006
【国際調査報告】
2019216130.tif 000007
2019216130.tif 000008