JP7378823B2 - システム、データ処理方法、及びプログラム - Google Patents

システム、データ処理方法、及びプログラム Download PDF

Info

Publication number
JP7378823B2
JP7378823B2 JP2020518218A JP2020518218A JP7378823B2 JP 7378823 B2 JP7378823 B2 JP 7378823B2 JP 2020518218 A JP2020518218 A JP 2020518218A JP 2020518218 A JP2020518218 A JP 2020518218A JP 7378823 B2 JP7378823 B2 JP 7378823B2
Authority
JP
Japan
Prior art keywords
data
uri
scheme
resource
application
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.)
Active
Application number
JP2020518218A
Other languages
English (en)
Other versions
JPWO2019216130A1 (ja
Inventor
光央 戀川
豪放 小倉
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Individual
Original Assignee
Individual
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Individual filed Critical Individual
Publication of JPWO2019216130A1 publication Critical patent/JPWO2019216130A1/ja
Application granted granted Critical
Publication of JP7378823B2 publication Critical patent/JP7378823B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0655Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
    • G06F3/0659Command handling arrangements, e.g. command buffers, queues, command scheduling
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/10File systems; File servers
    • G06F16/18File system types
    • G06F16/1847File system types specifically adapted to static storage, e.g. adapted to flash memory or SSD
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/10Program control for peripheral devices
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/14Handling requests for interconnection or transfer
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/0604Improving or facilitating administration, e.g. storage management
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/061Improving I/O performance
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0646Horizontal data movement in storage systems, i.e. moving data in between storage devices or systems
    • G06F3/0647Migration mechanisms
    • G06F3/0649Lifecycle management
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/0671In-line storage system
    • G06F3/0673Single storage device
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/0671In-line storage system
    • G06F3/0683Plurality of storage devices
    • G06F3/0685Hybrid storage combining heterogeneous device types, e.g. hierarchical storage, hybrid arrays

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Human Computer Interaction (AREA)
  • Databases & Information Systems (AREA)
  • Data Mining & Analysis (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Memory System (AREA)
  • Communication Control (AREA)

Description

本発明は、システム、データ処理方法、及びプログラムに関する。特に、本発明は、データ位置を指定する方法を拡張、統一したシステム、データ処理方法、及びプログラムに関する。
従来、不揮発性メモリと、不揮発性メモリに格納されており、複数のレイヤを持つ階層構造により、書き込み先又は読み出し先として指定された論理アドレスと、不揮発性メモリにおける位置を示す物理アドレスとを関連付けているアドレス変換データと、不揮発性メモリよりも高速に読み出し及び書き込み可能であり、アドレス変換データの一部を格納するキャッシュメモリと、アドレス変換データの階層構造にしたがって、キャッシュメモリに格納すべきアドレス変換データの一部を探索し、アドレス変換データの一部をキャッシュメモリに格納し、キャッシュメモリを参照することにより、論理アドレスを物理アドレスに変換するアドレス変換部と、書き込みコマンドを受信した場合に、アドレス変換部によって取得された物理アドレスの示す位置に、書き込み対象データを書き込む書き込み制御部と、読み出しコマンドを受信した場合に、アドレス変換部によって取得された物理アドレスの示す位置から、読み出し対象データを読み出す読み出し制御部と、を具備し、アドレス変換データに含まれる複数の所定サイズの部分データは、複数のレイヤに所属し、複数のレイヤのうちの第1のレイヤに属する第1の部分データは、論理アドレスと、複数のレイヤのうちの第1のレイヤの下位である第2のレイヤに属する複数の第2の部分データを参照するための複数の参照先情報を含み、複数の部分データのうち階層構造における最下位の部分データは、論理アドレスと物理アドレスとを含むメモリ装置が知られている(例えば、特許文献1参照。)。特許文献1に記載のメモリ装置によれば、アドレス変換データを効率的に管理することができる。
特開2018-041204号公報
コンピューターにおいては、レジスタ、キャッシュ、Dynamic Random Access Memory(DRAM)、ビデオメモリ、Solid State Drive(SSD)、Hard Disk Drive(HDD)等のように各種のメモリ(格納部)が用いられている。これらのメモリは各種の通信バスで互いに接続され、互いに異なる形式によって各メモリ内に所定のアドレスが割り当てられている。そして、コンピューターによる各種のデータ処理が実行される場合、当該データ処理に用いられる所定のデータは、個別に分けられた各メモリのアドレス間で頻繁にデータ転送される。したがって、当該処理に用いられるデータ容量が増加するとデータ転送も増大する。
この場合において、例えば、DRAM間でのデータ転送とDRAMとSSDとの間でのデータ転送とを比べると、DRAM間における転送速度の方がDRAMとSSDとの間における転送速度よりはるかに速いので、DRAM間でやり取りしていたデータをDRAMとSSDとの間でやり取りすると転送速度不足によってデータ処理速度が大幅に低下する。
そして、従来の特許文献1に記載されているメモリ装置等の技術においては、アドレス変換データを効率的に管理することを意図しているものの、所定のデータ処理を実行する場合、SSDやHDDからDRAMへデータ転送せざるを得ず、かつ、メモリ間の転送速度の違いにより発生するデータ処理速度の低下については考慮されていない。
したがって、本発明の目的は、メモリ間でのデータ位置を指定する方法を拡張、統一したシステム、データ処理方法、及びプログラムを提供することにある。
本発明は、上記目的を達成するため、制御部と、データ位置に基づいてデータを格納する格納部とを備えるシステムであって、システムが、データへアクセスするポインタとして、所定のスキームと所定の区切りの後にスキーム毎に定義された書式によるリソースとが対応付けられているUniform Resource Identifier(URI)をデータ位置の代わりに用い、制御部が、URIに対応付けられているスキームが指定するアプリケーションを制御して起動させ、URIのリソースをアプリケーションに渡し、アプリケーションが、リソースに基づいてURIをデータ位置として用い、URIで指定されて格納部に格納されるデータを制御するシステムが提供される。
また、上記システムにおいて、格納部が、互いに異なる形式のデータ位置が割り当てられた複数の格納部を含み、アプリケーションが、複数の格納部のそれぞれに格納されるデータをURIに基づいて指定することもできる。
また、上記システムにおいて、複数の格納部が、レジスタ、キャッシュ、DRAM、ビデオメモリ、SSD、HDD、テープドライブ、光学記録媒体、光磁気記憶媒体、及び磁気記録媒体からなる群から選択される少なくとも2つの格納部を含むこともできる。
また、上記システムにおいて、制御部が、URIに対応付けられているスキームに基づいて、複数のアプリケーションを制御して起動させ手もよい。
また、上記システムにおいて、データ位置が、物理アドレスであることが好ましい。
また、上記システムにおいて、データ位置が、少なくともIOコントローラーの番号を含んで特定されてもよい。
また、上記システムにおいて、格納部が、所定のスキームと所定の区切りの後にスキーム毎に定義された書式によるリソースとが対応付けられているURIを含む画像データを格納し、アプリケーションが、画像データに所定の処理を施す画像処理アプリケーションであってもよい。
また、本発明は、上記目的を達成するため、制御部と、データ位置に基づいてデータを格納する格納部とを備えるシステムにおけるデータ処理方法であって、システムが、データへアクセスするポインタとして、所定のスキームと所定の区切りの後にスキーム毎に定義された書式によるリソースとが対応付けられているUniform Resource Identifier(URI)をデータ位置の代わりに用い、制御部が、URIに対応付けられているスキームが指定するアプリケーションを制御して起動させ、URIのリソースをアプリケーションに渡す段階と、アプリケーションが、リソースに基づいてURIをデータ位置として用い、URIで指定されて格納部に格納されるデータを制御する段階とを備えるデータ処理方法が提供される。
また、本発明は、上記目的を達成するため、制御部と、データ位置に基づいてデータを格納する格納部とを備えるシステム用のプログラムであって、コンピューターに、データへアクセスするポインタとして、所定のスキームと所定の区切りの後にスキーム毎に定義された書式によるリソースとが対応付けられているUniform Resource Identifier(URI)をデータ位置の代わりに用いる機能と、URIに対応付けられているスキームが指定するアプリケーションを制御して起動させ、URIのリソースをアプリケーションに渡す機能と、アプリケーションが、リソースに基づいてURIをデータ位置として用い、URIで指定されて格納部に格納されるデータを制御する機能とを実現させるプログラムが提供される。
また、本発明は、上記目的を達成するため、制御部と、データ位置に基づいてデータを格納する格納部とを備えるシステム用のプログラムであって、コンピューターに、データへアクセスするポインタとして、所定のスキームと所定の区切りの後にスキーム毎に定義された書式によるリソースとが対応付けられているUniform Resource Identifier(URI)をデータ位置の代わりに用いる機能と、URIに対応付けられているスキームが指定するアプリケーションを制御して起動させ、URIのリソースをアプリケーションに渡す機能と、アプリケーションが、リソースに基づいてURIをデータ位置として用い、URIで指定されて格納部に格納されるデータを処理する機能とを実現させるプログラムが提供される。
本発明に係るシステム、データ処理方法、及びプログラムによれば、メモリ間でのデータ位置を指定する方法を拡張、統一したシステム、データ処理方法、及びプログラムを提供できる。
本実施の形態に係るシステムの機能構成ブロック図である。 メモリヒエラルキーを示す図である。 本実施の形態に係るシステムの応用例における処理のフロー図である。 本実施の形態に係るシステムの応用例における処理のフロー図である。
[実施の形態]
図1は、本発明の実施の形態に係るシステムの機能構成の一例を示す。また、図2はメモリヒエラルキーを示す図である。
(システム1の概要)
従来のコンピュータープログラムは、複数のルーチンがポインタと呼ばれる物理アドレスを受け渡し、Dynamic Random Access Memory(DRAM)上のデータを複数のルーチン間で共有して利用したり、加工したりして動作する。そのため、Solid State Drive(SSD)等のメモリヒエラルキー下層のデータを一度、DRAMに転送することを要する。ここで、DRAMとSSDとの間で扱うデータ量が増大すると、従来の方式では十分な転送速度を確保できず、DRAMへのデータ転送がデータ処理のボトルネックとなっている。
メモリヒエラルキー2を参照して説明すると、メモリヒエラルキー2においては、レジスタ200の下にキャッシュ202が位置し、キャッシュ202の下にDRAM204が位置し、DRAM204の下にSSD208が位置し、SSD208の下にHard Disk Drive(HDD)210が位置し、HDD210の下にテープドライブ212が位置する。そして、DRAM204とSSD208との間のデータ転送300がボトルネックとなっている。
そこで、本実施形態に係るシステム1においては、上記ボトルネックを解消する観点から、物理アドレスでの管理をUniform Resource Identifier(URI)での管理に変更する。すなわち、本実施形態に係るシステム1は、制御部10と、データ位置(例えば、物理アドレスや各種の格納部の番地、IOコントローラーの番号等)で示される番地にデータを格納する格納部20とを備える。システム1では、データへアクセスするポインタとして、所定のスキームと所定の区切り(例えば、「:」(コロン)等)の後にスキーム毎に定義された書式によるリソースとが対応付けられているURIを用いる。つまり、本実施形態に係るシステム1においては、コンピューター内部のデータ位置を指し示すポインタを物理アドレスからURIに変更若しくは置換して用いることで、制御部10が処理できるデータの位置を「拡張」する。換言すれば、システム1においては、データ位置の代わりにURIを用いる。なお、ポインタは、コンピュータープログラムが、ルーチン間で処理するデータの位置を受け渡す場合に用いる付票である。
(制御部10)
制御部10は、システム1における各種のデータ処理等を制御する。制御部10は格納部20に働きかけて、格納部20に格納されているデータの転送、処理等、及び所定のアプリケーションの制御を実行する。制御部10は、例えば、Central Processing Unit(CPU)の論理回路を有して構成される。
制御部10は、URIに対応付けられているスキームによって指定される所定のアプリケーションを制御して起動させる。そして、制御部10は、URIのリソースをアプリケーションに渡す。続いて、アプリケーションは、リソースに基づいてURIをデータ位置として用い、URIで指定されて格納部20に格納されるデータを処理する。なお、制御部10は、URIに対応付けられているスキームに基づいて、複数のアプリケーションを制御して起動させることもできる。また、アプリケーションは、所定のデータを転送する機能(転送機能)を処理の一環として更に有するか、転送機能だけを有するアプリケーションであってもよい。この場合、アプリケーションは所定のデータを所定の格納部に転送する。
なお、URIは、予め定められた一定の書式によってリソース(資源)を指し示す識別子である。本実施形態に係るURIにおいては、目的とするデータがシステム1内に存在しない場合をも考慮し、制御部10若しくはアプリケーションによるアクセスを可能にするためのリソースをも指し示すことができるものとする。また、URIが指し示すリソースに制御部10やアプリケーションがアクセスすることができるようにすることを目的として、URIを、実際の格納部における物理アドレスに変換することを要するので、同一の物理アドレスを複数のURIが指し示すこともあるものとする。なお、URIの物理アドレスへの変換若しくは置換は、URIに対応付けられているスキームが指定するアプリケーションが実行する。
また、URIは、例えば、「スキーム://リソース」の形式で記述され、リソースは、スキーム毎に定義された書式で記述される。そして、リソースの例としては、例えば、「目的のデータが存在するディスク番号、ディレクトリ、ファイル、シーク」、「目的のデータが存在するDRAMメモリアドレス」、「目的のデータが存在しない場合の対応、リトライ、コールバック」等が挙げられる。
(格納部20)
格納部20は、所定の形式のデータ位置に所定のデータを格納可能に設けられる。格納部20は、各種のデータを格納する機能を有する限り様々な記憶媒体を用いることができ、例えば、レジスタ200、キャッシュ202、DRAM204、ビデオメモリ206、SSD208、HDD210、テープドライブ212、Compact Disc(CD)やDigital Versatile Disc(DVD)等の光学記録媒体、光磁気記憶媒体、及び磁気記録媒体等である。これらの格納部には、互いに異なる形式のデータ位置が割り当てられている。なお、図2に示すメモリヒエラルキー2において、制御部10とSSD208以下の格納部とは、例えば、IOチャネルによって接続され、IOコントローラーで制御される。
一例として、レジスタ200、キャッシュ202、DRAM204においては、データ位置は物理アドレスを用いて指定される。具体的に、レジスタ200においては、レジスタ名若しくは番号でデータ位置が指定される。キャッシュ202においては、先頭から順列に沿って数えたアドレスによってデータ位置が指定される。DRAM204においても、先頭から順列に沿って数えたアドレスでデータ位置が指定される。ただし、DRAM204においては、データ位置の指定は物理的にキャッシュ202とは異なる。
本実施形態に係るシステム1は、これらの格納部から選択される少なくとも2つの格納部を含む。
(システム1の処理の詳細)
本実施形態に係るシステム1は、URIによってデータが指定される格納部20を備えるシステムである。そして、制御部10がURIに対応付けられているスキームに応じたアプリケーションを起動させ、起動されたアプリケーションに当該URIのリソースが渡される。そして、アプリケーションは、渡されたリソースに基づいてURIをデータ位置に変換する。これにより、格納部20がどのような種類の格納部20であっても、制御部10による格納部20の直接的、統一的な制御を可能とする。
例えば、図2に示すメモリヒエラルキー2のように、従来のCPUではレジスタ200、キャッシュ202、及びDRAM204までを直接、制御する。そして、従来のCPUは、SSD208以下の格納部を直接制御することができない。DRAM204からSSD208にデータを転送する経路における転送速度がDRAM204以上の格納部における転送速度より低速であることから、DRAM204以上におけるデータ転送等がいかに高速であっても、DRAM204からSSD208へのデータ転送が転送速度の観点からボトルネックになる。これは、従来のコンピューターでは格納部毎に異なる形式を用い、データ位置を物理アドレスで指定していることに起因する。
一方、本実施形態に係るシステム1は、物理アドレスの代わりにURIをポインタとして用いる。そのため、DRAM204から下層の格納部であるSSD208等を制御部10によって直接、制御することができる。具体的に、本実施形態に係る制御部10において、制御部10が各格納部にアクセスする場合、制御部10の命令によってアクセス可能な範囲は、レジスタ200、キャッシュ202、DRAM204、及びIOチャネルのIOコントローラーである。そして、制御部10が、レジスタ200、キャッシュ202、DRAM204、及びIOチャネルのIOコントローラーに保持されているデータ位置等の数値を制御し、IOコントローラーに保持されている数値が制御部10によって書き換えられることにより、IOコントローラーから先のSSD208、HDD210、及びテープドライブ212等の格納部が制御部10によって直接制御される。
その結果、例えば、DRAM204をデータの転送先・共有場所としてではなく、キャッシュ202より容量が大きなキャッシュとして扱えるので、システム1におけるデータ処理速度を大幅に向上させることができる。
より具体的には、制御部10は、所定のデータのURIを参照し、URIに対応付けられているスキームが指定するアプリケーションを起動する。制御部10は、アプリケーションにURIの区切りの後ろのリソースを渡す。アプリケーションは、リソースに基づいて、物理アドレスの代わりにURIをデータ位置として用い、URIで指定されている格納部に格納されているデータにアクセスする。これにより、URIを用いてSSD208等へのアクセスを、制御部10により一元管理できる。
例えば、制御部10によって起動されるアプリケーションがSSD制御ルーチンであれば、SSD制御ルーチンがリソースに基づいてSSDコントローラー機器の物理アドレスや、SSDコントローラー上のSSDメモリ空間の物理アドレスを生成する。これにより制御部10が、SSD208を制御することができる。
なお、アプリケーションは、複数の格納部のそれぞれに格納されるデータをURIに基づいて指定することもできる。すなわち、アプリケーションは、制御部10に制御され、複数の格納部にそれぞれ異なる形式の物理アドレスで指定された位置・番地に格納されている複数のデータそれぞれを、URIを用いることで統一的に取り扱うこともできる。これにより、本実施形態に係るシステム1によれば、複数の格納部間でのデータ位置の指定をURIで拡張し、その結果、統一的に扱うことができる。
また、本実施の形態に係るシステム1は、制御部10が有するデバイスドライバによってSSD208やHDD210等が制御される。本実施形態においてシステム1の処理を高速化させる観点から、デバイスドライバをプラグイン受け入れ可能な形態に変更することができる。アプリケーションにおいてポインタで指定されるデータを扱うルーチンをデバイスドライバのプラグインとして読み込まさせることで、ルーチンをデバイスドライバ内部で動作させることができ、アプリケーションはオペレーティングシステムを介さずにSSD208等の記憶素子に直接アクセスできる。これにより、システム1における処理が高速化される。
(実施の形態の効果)
本実施の形態に係るシステム1においては、複数のルーチンで受け渡されるポインタとして、URIをデータ位置(物理アドレス)の代わりに用いたので、DRAM204をキャッシュ202より容量の大きなキャッシュとして用いることができる。すなわち、システム1においては、データ処理に用いるデータのすべてをDRAM204に転送することを必ずしも要さず、SSD208等のメモリヒエラルキーの下層の格納部に格納されているデータのデータ処理に要する一部だけにアクセスして処理ができ(部分アクセス)、また、SSD208等のメモリヒエラルキーの下層の格納部から所定のデータを読み取る場合において、データ処理に要する演算を組み込む処理(ストリーム処理等)をすることができる。
したがって、従来の物理アドレスによる管理では格納部毎にポインタが異なるのに対し、本実施形態に係るシステム1によれば、URIを用いることで同一のポインタで同一のデータを指し示すことができることから、すべての格納部のデータを統一的に管理できるので、データ量が転送速度に対して増大した場合であっても、部分アクセスやストリーム処理等のデータ処理の高速化技術を様々なアプリケーションに組み込むことで、従来のアドレス管理よりも高速化したデータ処理を実現することができる。すなわち、本実施形態に係るシステム1によれば、無駄なデータ転送の削減、データ転送ルーチンの共通化、及びデータ転送ルーチンへの拡張を実現することができる。
また、従来の物理アドレスによる管理ではデータをDRAM上に転送し、かつ、集約することから、システム上でデータの集中した転送・集約処理が発生する。その結果、従来のシステムの熱効率は悪い。一方、本実施形態に係るシステム1においては、URIを用いてデータを一元管理するので、データ転送の転送・集約処理が発生せず、熱効率が向上する。
更に、物理アドレスは機器毎に異なることから、データ処理を複数の機器で分散する場合、データ処理を実行する機器のDRAM上に個別にデータ転送することを要するので、機器間のデータ転送に無駄な電力消費・排熱が生じる。一方、本実施形態に係るシステム1においては、URIによってデータを一元管理するので、機器間でURIが指し示すデータが同一になり、機器間で分散処理する場合に無駄なデータ転送が生じないことから、電力消費・廃熱が削減され熱効率が向上する。
[実施の形態の応用例]
図3及び図4は、本実施の形態に係るシステムの応用例における処理の流れの一例を示す。
本実施形態に係るシステム1の応用例として、画像に含まれる人物の顔認識を実行するシステムの例を取り上げる(以下、応用例に係るシステムを「顔認識システム」と称する。)。応用例においては、格納部20が、所定のスキームと所定の区切りの後にスキーム毎に定義された書式によるリソースとが対応付けられているURIを含む画像データを格納している。また、アプリケーションは、画像データに所定の処理を施す画像処理アプリケーションである。なお、本実施形態において画像データは、静止画像の画像データ、及び/又は動画に含まれる動画構成画像の画像データであってよい。動画に含まれる動画構成画像は、フレーム画像、フィールド画像、及びその他の動画を構成する様々な形式の画像のいずれであってもよい。
なお、本実施形態の応用例として顔認識システムを説明するが、応用例としては顔認識システムに限られず、各種データを処理するシステムであれば、様々な分野・用途において応用することができる。
応用例に係る顔認識システムは、画像に含まれる1つ以上の人物の顔領域を指摘するシステムである。まず、顔認識システムは、処理対象である画像ファイルが指定された場合(ステップ10。以下、ステップを「S」と表す。)、所定の処理のコンテキスト(すなわち、アプリケーションの実行に要求される各種の制御情報)を作成する(S12)。ここで、画像ファイルには予めURIが対応付けられており、顔認識システムは指定された画像ファイルのURIを参照し、URIにより指定されているアプリケーションをコールするアプリケーションとして特定する。なお、以下の説明において「アプリケーション」と「読み込みルーチン」とは同一のプログラムである。
次に顔認識システムは、実行イメージを用意する(S14)。すなわち、まず、顔認識システムは、特定したアプリケーションに格納部20のいずれかの格納部の中から作業メモリを確保させる(例えば、コンパイラにより作業メモリは算出される。)。そして、アプリケーションは、指定された画像ファイルのグレースケール化、及びヒストグラム均一化処理を実行して作業メモリに読み込む。続いて、アプリケーションは、画像ファイル内の人物の顔検出処理を実行し、顔の位置(顔位置)を特定すると共に、格納部20のいずれかから仮の出力先を決定し、仮の出力先において検出されたすべての顔位置に円を描画する。このように顔認識システムは、実行イメージを用意する。
続いて顔認識システムは、用意した実行イメージを「読み込みルーチン」の拡張機能として実行可能な形式にビルドする(S16)。そして、顔認識システムは、S12で作成したコンテキストに、ビルドされた実行可能な形式を実行イメージとして添付する(S18)。更に、顔認識システムは、コンテキストの引数として処理対象である画像ファイルのURIを添付し(S20)、かつ、コンテキストの引数として「分類器のカスケード」を読み込ませる(S22)。なお、分類器のカスケードとは、複数の強識別器を連結した識別器であり、各強識別器により順列に判別処理が実行される。
また、顔認識システムは、コンテキストに引数として「処理結果を書き込む領域」を指定する(S24)。そして、顔認識システムは、「読み込みルーチン」を呼び出して、「読み込みルーチン」にコンテキストを渡して顔認識処理を実行させる(S26)。
「読み込みルーチン」であるアプリケーションは、顔認識システムからコンテキストを受け取った場合、読み込みルーチンを開始し(S30)、コンテキストを読み込む(S32)。そして、アプリケーションは、格納部20のいずれかから作業メモリを確保する(S34)。アプリケーションは、コンテキストの引数のURIで渡されたリソースを、該当するコントローラーと、コントローラーに接続されているメモリ空間での番地とに変換する(S36)。すなわち、アプリケーションはURIをデータ位置に変換する。
そして、アプリケーションは、上記コントローラーとメモリ空間の番地とを「入力元」として登録すると共に(S38)、「処理結果を書き込む領域」を特定し、特定した領域を「出力先」として登録する(S40)。次に、アプリケーションは実行イメージにコンテキスト内の引数を渡し(S42)、実行イメージの処理を開始する(S44)。実行イメージの処理においては、「入力元」から取得した画像データにグレースケール化処理とヒストグラム均一化処理とを施して「作業メモリ」に読み込み、顔検出処理を実行する。そして、アプリケーションは、「出力先」において顔位置に円を描画する。これにより、実行イメージの処理が完了する。
アプリケーションは実行イメージの処理が完了した場合、実行イメージの処理完了を呼び出し元に通知し(S46)し、顔認識システムは、コンテキストから処理結果を読み取る(S28)。これにより、画像において人物の顔の位置が指摘される。なお、顔認識システムによる処理結果の読み取り(S28)が完了した場合、アプリケーションは実行イメージを含むコンテキスト、及び作業メモリを解放する。
応用例に係る顔認識システムにおいては、画像ファイルのデータを転送する処理を実行しないので、読み込みメモリの確保をすることを要さない。また、顔認識システムにおいては、読み込み先を示すURIによって読み込み用のプリケーションが指定されるので、画像ファイルがDRAM204上のメモリ空間、SSD208上のファイル、ビデオメモリ206上等のいずれに存在していた場合であっても、同一のURIによって同一の画像ファイルを制御できる。そして、顔認識システムにおいては、「読み込みルーチン」に添付される拡張機能として実行イメージを指定できるので、画像ファイルを読み込む過程において顔認識を実行することができる。
以上の説明において、システム1又は顔認識システムの各部は、ハードウエアにより実現されてもよく、ソフトウエアにより実現されてもよい。また、ハードウエアとソフトウエアとの組み合わせにより実現されてもよい。プログラムは、コンピューター読み取り可能な媒体又はネットワークに接続された記憶装置から、システム1又は顔認識システムを構成するコンピューターにインストールされてもよい。
コンピューターにインストールされ、コンピューターを本実施形態に係るシステム1又は顔認識システムとして機能させるプログラムは、CPU等に働きかけて、コンピューターをシステム1又は顔認識システムとして機能させる。プログラムに記述された情報処理は、コンピューターに読込まれることにより、ソフトウエアとシステム1又は顔認識システムの少なくとも一方のハードウエア資源とが協働した具体的手段として機能する。そして、これらの具体的手段によって、本実施形態におけるコンピューターの使用目的に応じた情報の処理を実現することにより、使用目的に応じた特有のシステム1又は顔認識システムを構成できる。
また、システム1又は顔認識システムは、CPU、ROM、RAM、通信インターフェース等を有するデータユニットと、キーボード、タッチパネル、マイク等の入力ユニットと、ディスプレイ、スピーカ等の出力ユニットと、メモリ、HDD等の記憶ユニットとを備える構成の情報処理装置において、システム1又は顔認識システムの各部の動作を規定したソフトウエア又はプログラムを起動することにより実現してもよい。
システム1用又は顔認識システム用のプログラムは、インターネット等の通信ネットワーク、又は磁気記録媒体、光学記録媒体等の記録媒体を介してシステム1又は顔認識システムに提供し得る。そして、システム1又は顔認識システムに格納されたシステム1用又は顔認識システム用のプログラムは、CPU等により実行される。プログラムを格納している記録媒体は、CD-ROMやDVD等の非一過性の記録媒体であってもよい。
以上、本発明の実施の形態を説明したが、上記に記載した実施の形態は特許請求の範囲に係る発明を限定するものではない。また、実施の形態の中で説明した特徴の組合せの全てが発明の課題を解決するための手段に必須であるとは限らない点に留意すべきである。更に、上記した実施形態の技術的要素は、単独で適用されてもよいし、プログラム部品とハードウエア部品とのような複数の部分に分割されて適用されるようにすることもできる。
1 システム
2 メモリヒエラルキー
10 制御部
20 格納部
200 レジスタ
202 キャッシュ
204 DRAM
206 ビデオメモリ
208 SSD
210 HDD
212 テープドライブ
300 データ転送

Claims (9)

  1. 制御部と、データ位置に基づいてデータを格納する格納部とを備えるシステムであって、
    前記システムが、前記データへアクセスするポインタとして、所定のスキームと所定の区切りの後に前記スキーム毎に定義された書式によるリソースとが対応付けられているUniform Resource Identifier(URI)を前記データ位置の代わりに用い、
    前記URIが、「スキーム://リソース」の形式で記述され、当該リソースはスキーム毎に定義された書式で記述され、
    前記制御部が、前記URIに対応付けられている前記スキームが指定するアプリケーションを制御して起動させ、前記URIの前記リソースを前記アプリケーションに渡し、
    前記アプリケーションが、前記スキームごとに定義された前記リソースが記述されている前記URIを前記データ位置として代わりに用い、前記URIで指定されて前記格納部に格納されるデータを制御し、
    前記格納部が、互いに異なる形式の前記データ位置が割り当てられた複数の格納部を含み、
    前記アプリケーションが、前記複数の格納部のそれぞれに格納されるデータを前記URIに基づいて指定するシステム。
  2. 前記複数の格納部が、レジスタ、キャッシュ、DRAM、ビデオメモリ、SSD、HDD、テープドライブ、光学記録媒体、光磁気記憶媒体、及び磁気記録媒体からなる群から選択される少なくとも2つの格納部を含む請求項1に記載のシステム。
  3. 前記制御部が、前記URIに対応付けられている前記スキームに基づいて、複数のアプリケーションを制御して起動させる請求項1又は2に記載のシステム。
  4. 前記データ位置が、物理アドレスである請求項1~のいずれか1項に記載のシステム。
  5. 前記データ位置が、IOコントローラーの番号である請求項1~のいずれか1項に記載のシステム。
  6. 前記格納部が、所定のスキームと所定の区切りの後に前記スキーム毎に定義された書式によるリソースとが対応付けられているURIが対応付けられている画像データを格納し、
    前記アプリケーションが、前記画像データに所定の処理を施す画像処理アプリケーションである請求項1~のいずれか1項に記載のシステム。
  7. 制御部と、データ位置に基づいてデータを格納する格納部とを備えるシステムにおけるデータ処理方法であって、
    前記システムが、前記データへアクセスするポインタとして、所定のスキームと所定の区切りの後に前記スキーム毎に定義された書式によるリソースとが対応付けられているUniform Resource Identifier(URI)を前記データ位置の代わりに用い、
    前記URIが、「スキーム://リソース」の形式で記述され、当該リソースはスキーム毎に定義された書式で記述され、
    前記制御部が、前記URIに対応付けられている前記スキームが指定するアプリケーションを制御して起動させ、前記URIの前記リソースを前記アプリケーションに渡す段階と、
    前記アプリケーションが、前記スキームごとに定義された前記リソースが記述されている前記URIを前記データ位置として代わりに用い、前記URIで指定されて前記格納部に格納されるデータを制御する段階と
    を備え、
    前記格納部が、互いに異なる形式の前記データ位置が割り当てられた複数の格納部を含み、
    前記アプリケーションが、前記複数の格納部のそれぞれに格納されるデータを前記URIに基づいて指定するデータ処理方法。
  8. 制御部と、データ位置に基づいてデータを格納する格納部とを備えるシステム用のプログラムであって、
    コンピューターに、
    前記データへアクセスするポインタとして、所定のスキームと所定の区切りの後に前記スキーム毎に定義された書式によるリソースとが対応付けられているUniform Resource Identifier(URI)を前記データ位置の代わりに用いる機能と、
    前記URIが、「スキーム://リソース」の形式で記述され、当該リソースはスキーム毎に定義された書式で記述されており、
    前記URIに対応付けられている前記スキームが指定するアプリケーションを制御して起動させ、前記URIの前記リソースを前記アプリケーションに渡す機能と、
    前記アプリケーションが、前記スキームごとに定義された前記リソースが記述されている前記URIを前記データ位置として代わりに用い、前記URIで指定されて前記格納部に格納されるデータを制御する機能と
    を実現させ、
    前記格納部が、互いに異なる形式の前記データ位置が割り当てられた複数の格納部を含み、
    前記アプリケーションが、前記複数の格納部のそれぞれに格納されるデータを前記URIに基づいて指定するプログラム。
  9. 制御部と、データ位置に基づいてデータを格納する格納部とを備えるシステム用のプログラムであって、
    コンピューターに、
    前記データへアクセスするポインタとして、所定のスキームと所定の区切りの後に前記スキーム毎に定義された書式によるリソースとが対応付けられているUniform Resource Identifier(URI)を前記データ位置の代わりに用いる機能と、
    前記URIが、「スキーム://リソース」の形式で記述され、当該リソースはスキーム毎に定義された書式で記述されており、
    前記URIに対応付けられている前記スキームが指定するアプリケーションを制御して起動させ、前記URIの前記リソースを前記アプリケーションに渡す機能と、
    前記アプリケーションが、前記スキームごとに定義された前記リソースが記述されている前記URIを前記データ位置として代わりに用い、前記URIで指定されて前記格納部に格納されるデータを処理する機能と
    を実現させ、
    前記格納部が、互いに異なる形式の前記データ位置が割り当てられた複数の格納部を含み、
    前記アプリケーションが、前記複数の格納部のそれぞれに格納されるデータを前記URIに基づいて指定するプログラム。
JP2020518218A 2018-05-07 2019-04-16 システム、データ処理方法、及びプログラム Active JP7378823B2 (ja)

Applications Claiming Priority (5)

Application Number Priority Date Filing Date Title
JP2018089022 2018-05-07
JP2018089022 2018-05-07
JP2018178170 2018-09-23
JP2018178170 2018-09-23
PCT/JP2019/016260 WO2019216130A1 (ja) 2018-05-07 2019-04-16 システム、データ処理方法、及びプログラム

Publications (2)

Publication Number Publication Date
JPWO2019216130A1 JPWO2019216130A1 (ja) 2021-05-13
JP7378823B2 true JP7378823B2 (ja) 2023-11-14

Family

ID=68467063

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2020518218A Active JP7378823B2 (ja) 2018-05-07 2019-04-16 システム、データ処理方法、及びプログラム

Country Status (4)

Country Link
US (1) US20210165608A1 (ja)
JP (1) JP7378823B2 (ja)
TW (1) TWI802689B (ja)
WO (1) WO2019216130A1 (ja)

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20040162997A1 (en) 1999-07-26 2004-08-19 Hopmann Alexander I. Systems and methods for integrating access control with a namespace
US20160021207A1 (en) 2014-07-18 2016-01-21 Avaya Inc. Method and system for a uniform resource identifier (uri) broker
US20170208200A1 (en) 2014-07-18 2017-07-20 Hewlett-Packard Development Company, L.P. Creation of uniform resource identifiers including a scheme name associated with a print application

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP3992177B2 (ja) * 2001-11-29 2007-10-17 株式会社リコー 画像処理装置、画像処理方法及びコンピュータ・プログラム
TW200817997A (en) * 2006-10-12 2008-04-16 Corel Tw Corp Information providing apparatus and method thereof
US8180996B2 (en) * 2008-05-15 2012-05-15 Calxeda, Inc. Distributed computing system with universal address system and method
US10778636B2 (en) * 2016-06-28 2020-09-15 ColorTokens, Inc. Dynamic credential based addressing

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20040162997A1 (en) 1999-07-26 2004-08-19 Hopmann Alexander I. Systems and methods for integrating access control with a namespace
US20160021207A1 (en) 2014-07-18 2016-01-21 Avaya Inc. Method and system for a uniform resource identifier (uri) broker
US20170208200A1 (en) 2014-07-18 2017-07-20 Hewlett-Packard Development Company, L.P. Creation of uniform resource identifiers including a scheme name associated with a print application

Also Published As

Publication number Publication date
JPWO2019216130A1 (ja) 2021-05-13
TWI802689B (zh) 2023-05-21
US20210165608A1 (en) 2021-06-03
WO2019216130A1 (ja) 2019-11-14
TW201947398A (zh) 2019-12-16

Similar Documents

Publication Publication Date Title
US7383392B2 (en) Performing read-ahead operation for a direct input/output request
RU2616545C2 (ru) Подкачка рабочего набора, используя последовательно упорядоченный файл подкачки
US9459899B2 (en) Apparatus and method for providing services using a virtual operating system
US8607005B2 (en) Monitoring program execution to learn data blocks accessed by software process for facilitating efficient prefetching
US20120117328A1 (en) Managing a Storage Cache Utilizing Externally Assigned Cache Priority Tags
US20180143878A1 (en) De-duplicated virtual machine image transfer
CN108228343B (zh) 内存回收方法及装置、计算机装置及计算机可读存储介质
US8140825B2 (en) Systems and methods for selectively closing pages in a memory
US9703593B2 (en) Apparatus and method for memory overlay
JP4461089B2 (ja) ストレージ制御装置およびストレージ制御方法
CN112162855B (zh) 基于页锁定内存的gpu页缺失处理方法、系统及介质
JP7378823B2 (ja) システム、データ処理方法、及びプログラム
CN103377060B (zh) 一种计算机程序加速方法和系统
JP4792065B2 (ja) データ記憶方法
US20200257630A1 (en) Information processing apparatus, information processing method, and computer readable medium
US20240111684A1 (en) Multi-level starvation widget
US12019894B2 (en) Systems and methods for managing coresident data for containers
JP2001118365A (ja) 記憶階層管理システム、記憶階層管理方法及び記憶階層管理プログラムを記録した記録媒体
TWI768799B (zh) 資料讀取方法及電子系統
JP2024500668A (ja) 汎用レジスタ階層システム及び方法
CN115016733A (zh) 一种脏数据删除方法、装置及电子设备
JP2022150968A (ja) メモリ制御システム
KR101523469B1 (ko) 식별 번호를 기록하여 블록 간의 시간적 선후 관계를 추출하는 캐시 방법 및 시스템
TWI581097B (zh) 存取方法
JPH10312646A (ja) 磁気ディスクおよび磁気ディスク制御装置

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20220328

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20230508

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20230629

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20231005

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20231025

R150 Certificate of patent or registration of utility model

Ref document number: 7378823

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150