IP Force 特許公報掲載プロジェクト 2022.1.31 β版

知財求人 - 知財ポータルサイト「IP Force」

▶ NEC東芝スペースシステム株式会社の特許一覧

特開2022-167527メモリアクセス装置、メモリアクセス方法、及びメモリアクセスプログラム
<>
  • 特開-メモリアクセス装置、メモリアクセス方法、及びメモリアクセスプログラム 図1
  • 特開-メモリアクセス装置、メモリアクセス方法、及びメモリアクセスプログラム 図2
  • 特開-メモリアクセス装置、メモリアクセス方法、及びメモリアクセスプログラム 図3
  • 特開-メモリアクセス装置、メモリアクセス方法、及びメモリアクセスプログラム 図4
  • 特開-メモリアクセス装置、メモリアクセス方法、及びメモリアクセスプログラム 図5
  • 特開-メモリアクセス装置、メモリアクセス方法、及びメモリアクセスプログラム 図6
  • 特開-メモリアクセス装置、メモリアクセス方法、及びメモリアクセスプログラム 図7
  • 特開-メモリアクセス装置、メモリアクセス方法、及びメモリアクセスプログラム 図8
  • 特開-メモリアクセス装置、メモリアクセス方法、及びメモリアクセスプログラム 図9
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公開特許公報(A)
(11)【公開番号】P2022167527
(43)【公開日】2022-11-04
(54)【発明の名称】メモリアクセス装置、メモリアクセス方法、及びメモリアクセスプログラム
(51)【国際特許分類】
   G06F 12/06 20060101AFI20221027BHJP
   G06F 12/02 20060101ALI20221027BHJP
【FI】
G06F12/06 550A
G06F12/02 580J
G06F12/02 510B
【審査請求】未請求
【請求項の数】6
【出願形態】OL
(21)【出願番号】P 2021073371
(22)【出願日】2021-04-23
(71)【出願人】
【識別番号】301072650
【氏名又は名称】NECスペーステクノロジー株式会社
(74)【代理人】
【識別番号】100109313
【弁理士】
【氏名又は名称】机 昌彦
(74)【代理人】
【識別番号】100149618
【弁理士】
【氏名又は名称】北嶋 啓至
(72)【発明者】
【氏名】久保 賢治
【テーマコード(参考)】
5B160
【Fターム(参考)】
5B160AA12
5B160AB17
5B160CD05
(57)【要約】      (修正有)
【課題】メモリに対するバーストアクセスにおいて、入力データ以外の無駄なデータのメモリへの書き込みを抑制するメモリアクセス装置、方法及びプログラムを提供する。
【解決手段】メモリアクセス装置100は、外部から入力した複数の入力データを入力順に分割又は連接した後に、複数の入力データの連続した部分を含むセグメントデータを生成し、セグメントデータにおける複数の入力データの各々の先頭位置を表す先頭位置データを生成し、セグメントデータ及び先頭位置データを含むセグメントを生成する符号化手段110と、生成されたセグメントを1個以上のセグメント単位でメモリへ書き込むと共に、メモリからセグメントを1個以上のセグメント単位で読み出すメモリ制御手段120と、メモリから読み出されたセグメントに基づいて、外部から入力した複数の入力データを再構成し、再構成したデータを外部へ出力する復号化手段130と、を含む。
【選択図】図1
【特許請求の範囲】
【請求項1】
外部から入力した複数の入力データを入力順に分割又は連接した後に、
前記複数の入力データの連続した部分を含むセグメントデータを生成し、
前記セグメントデータにおける前記複数の入力データの各々の先頭位置を表す先頭位置データを生成し、
前記セグメントデータ及び前記先頭位置データを含むセグメントを生成する
符号化手段と、
生成された前記セグメントを1個以上のセグメント単位でメモリへ書き込むと共に、
前記メモリから前記セグメントを1個以上のセグメント単位で読み出す
メモリ制御手段と、
前記メモリから読み出された前記セグメントに基づいて、前記外部から入力した複数の入力データを再構成し、再構成した前記外部から入力した複数の入力データを外部へ出力する復号化手段と
を備えたメモリアクセス装置。
【請求項2】
前記各入力データのデータ長の下限値が、前記セグメントデータのデータ長のn(nは2以上の整数)分の1以上であるように、前記各入力データ及び前記セグメントの規格が定められており、
前記セグメントはn個の前記先頭位置データを含む
請求項1に記載のメモリアクセス装置。
【請求項3】
前記各入力データは、
前記各入力データが含むコンテンツを表すコンテンツデータと、
前記コンテンツデータのデータ長を表すコンテンツデータ長と
を含む
請求項1に記載のメモリアクセス装置。
【請求項4】
前記各入力データのデータ長の下限値が、前記セグメントデータのデータ長のn(nは2以上の整数)分の1以上であるように、前記各入力データ及び前記セグメントの規格が定められており、
前記セグメントはnより小さい個数の前記先頭位置データを含む
を含む請求項3に記載のメモリアクセス装置。
【請求項5】
外部から入力した複数の入力データを入力順に分割又は連接した後に、
前記複数の入力データの連続した部分を含むセグメントデータを生成し、
前記セグメントデータにおける前記複数の入力データの各々の先頭位置を表す先頭位置データを生成し、
前記セグメントデータ及び前記先頭位置データを含むセグメントを生成する
符号化処理と、
生成された前記セグメントを1個以上のセグメント単位でメモリへ書き込むと共に、
前記メモリから前記セグメントを1個以上のセグメント単位で読み出す
メモリ制御処理と、
前記メモリから読み出された前記セグメントに基づいて、前記外部から入力した複数の入力データを再構成し、再構成した前記外部から入力した複数の入力データを外部へ出力する復号化処理と
を行うメモリアクセス方法。
【請求項6】
外部から入力した複数の入力データを入力順に分割又は連接した後に、
前記複数の入力データの連続した部分を含むセグメントデータを生成し、
前記セグメントデータにおける前記複数の入力データの各々の先頭位置を表す先頭位置データを生成し、
前記セグメントデータ及び前記先頭位置データを含むセグメントを生成する
符号化処理と、
生成された前記セグメントを1個以上のセグメント単位でメモリへ書き込むと共に、
前記メモリから前記セグメントを1個以上のセグメント単位で読み出す
メモリ制御処理と、
前記メモリから読み出された前記セグメントに基づいて、前記外部から入力した複数の入力データを再構成し、再構成した前記外部から入力した複数の入力データを外部へ出力する復号化処理と
をコンピュータに実行させるメモリアクセスプログラム。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、メモリにおけるデータへアクセス(書き込み及び読み出し)する技術に関する。
【背景技術】
【0002】
メモリへのアクセスを高速化するため、バースト処理によってメモリへアクセス(以降、「バーストアクセス」と称す)することがある。バーストアクセスにおいて一度にメモリへアクセスされるデータ長は、所定長(「セグメント長」と称す)に規定されている。一方、書き込まれるべきデータ(入力データ)のデータ長は、データ毎に異なる。
【0003】
メモリへのアクセスを高速化する技術の一例が、特許文献1に開示されている。特許文献1のメモリアクセス制御回路では、データ処理装置からなされた同期型メモリに対するデータ転送要求が、データ転送量が一度にバースト転送されるデータ量で複数のデータ転送要求に分割される。ここで、分割された各データ転送要求では、一度に転送されるデータが単一のメモリバンク内のデータに限定される。分割されたデータ転送要求は、各メモリバンクに対するデータ転送要求が1つずつ組み合わせられたデータ転送要求に組み立てられて、複数の新たなデータ転送要求として出力される。上記構成の結果、特許文献1のメモリアクセス制御回路では、複数のメモリバンクに格納された連続的なデータに対し、データ処理装置が効率的にアクセスする。
【0004】
しかしながら、メモリからのデータの読み出しに特許文献1の技術を利用しても、メモリ上の各セグメントにおける所望のデータが占める比率が低いという問題を解決できない。
【0005】
図9は、本発明で参照するバーストアクセス技術を説明する模式図である。本バーストアクセス技術では、図9に示すように、入力データがセグメント長に満たない部分(図9の中段における斜線網掛け部分)もメモリへ書き込まれる。そのため、入力データ以外の無駄なデータが書き込まれるメモリ上の領域が発生し、メモリの利用効率が低下する。又、メモリから読み出されたデータは、入力データ以外の不要なデータを含むため、出力されるデータ(出力データ)は、入力データ以外の不要なデータ(図9の下段における斜線網掛け部分)を含む。
【先行技術文献】
【特許文献】
【0006】
【特許文献1】特開2006-268801号公報
【発明の概要】
【発明が解決しようとする課題】
【0007】
本発明で参照するバーストアクセス技術において上述したように、入力データのデータ長がバーストアクセスにおけるセグメント長に対して増減する場合、入力データ以外の無駄なデータがメモリに対して書き込み又は読み出しされることがある。その結果、メモリに占める入力データの割合(メモリの利用効率)が低下し、アクセス速度が低下し、出力データに入力データ以外の無駄なデータが含まれる割合が高いという問題があった。
【0008】
本発明の目的は、上記の課題に鑑みてなされたもので、メモリに対するバーストアクセスにおいて、入力データ以外の無駄なデータのメモリへの書き込みを抑制することにある。
【課題を解決するための手段】
【0009】
本発明の一態様において、メモリアクセス装置は、外部から入力した複数の入力データを入力順に分割又は連接した後に、複数の入力データの連続した部分を含むセグメントデータを生成し、セグメントデータにおける複数の入力データの各々の先頭位置を表す先頭位置データを生成し、セグメントデータ及び先頭位置データを含むセグメントを生成する符号化手段と、生成されたセグメントを1個以上のセグメント単位でメモリへ書き込むと共に、メモリからセグメントを1個以上のセグメント単位で読み出すメモリ制御手段と、メモリから読み出されたセグメントに基づいて、外部から入力した複数の入力データを再構成し、再構成した外部から入力した複数の入力データを外部へ出力する復号化手段とを含む。
【0010】
本発明の一態様において、メモリアクセス方法は、外部から入力した複数の入力データを入力順に分割又は連接した後に、複数の入力データの連続した部分を含むセグメントデータを生成し、セグメントデータにおける複数の入力データの各々の先頭位置を表す先頭位置データを生成し、セグメントデータ及び先頭位置データを含むセグメントを生成する符号化処理と、生成されたセグメントを1個以上のセグメント単位でメモリへ書き込むと共に、メモリからセグメントを1個以上のセグメント単位で読み出すメモリ制御処理と、メモリから読み出されたセグメントに基づいて、外部から入力した複数の入力データを再構成し、再構成した外部から入力した複数の入力データを外部へ出力する復号化処理とを行う。
【0011】
本発明の一態様において、メモリアクセスプログラムは、外部から入力した複数の入力データを入力順に分割又は連接した後に、複数の入力データの連続した部分を含むセグメントデータを生成し、セグメントデータにおける複数の入力データの各々の先頭位置を表す先頭位置データを生成し、セグメントデータ及び先頭位置データを含むセグメントを生成する符号化処理と、生成されたセグメントを1個以上のセグメント単位でメモリへ書き込むと共に、メモリからセグメントを1個以上のセグメント単位で読み出すメモリ制御処理と、メモリから読み出されたセグメントに基づいて、外部から入力した複数の入力データを再構成し、再構成した外部から入力した複数の入力データを外部へ出力する復号化処理とをコンピュータに実行させる。
【発明の効果】
【0012】
本発明によれば、メモリに対するバーストアクセスにおいて、入力データ以外の無駄なデータのメモリへの書き込みを抑制することができるという効果がある。
【図面の簡単な説明】
【0013】
図1】本発明の第1実施形態におけるメモリアクセス装置の構成の一例を示すブロック図である。
図2】本発明の第1実施形態におけるセグメント構造の一例を示す図である。
図3】本発明の第1実施形態におけるメモリアクセス装置の動作を説明する模式図である。
図4】本発明の第2実施形態におけるメモリアクセス装置の構成の一例を示すブロック図である。
図5】本発明の第2実施形態におけるセグメント構造の一例を示す図である。
図6】本発明の第2実施形態におけるメモリアクセス装置の動作を説明する模式図である。
図7】本発明の第2実施形態の変形例におけるメモリアクセス装置の動作を説明する模式図である。
図8】本発明の各実施形態におけるメモリアクセス装置を実現可能なハードウェア構成の一例を示すブロック図である。
図9】本発明で参照するバーストアクセス技術を説明する模式図である。
【発明を実施するための形態】
【0014】
以下、本発明の実施形態について、図面を参照して詳細に説明する。なお、すべての図面において、同等の構成要素には同じ符号を付し、適宜説明を省略する。
(第1実施形態)
本発明の各実施形態の基本である、本発明の第1実施形態について説明する。
【0015】
本実施形態における構成について説明する。
【0016】
図1は、本発明の第1実施形態におけるメモリアクセス装置の構成の一例を示すブロック図である。図1に示すように、本実施形態のメモリアクセス装置100は、符号化部110と、メモリ制御部120と、復号化部130とを含む。
【0017】
符号化部110は、外部から入力した複数の入力データを入力順に分割又は連接して、セグメントを生成する。ここで、セグメントは、セグメントデータ及び先頭位置データを含む。セグメントデータは、入力順に分割又は連接された後の複数の入力データのうちで連続した部分を含む。先頭位置データは、複数の入力データのうちの各入力データの先頭位置を表すデータであって、各入力データの先頭位置についてセグメントデータ内での位置を表すデータである。
【0018】
メモリ制御部120は、生成されたセグメントを1個以上のセグメント単位でメモリ200へ書き込むと共に、メモリ200からセグメントを1個以上のセグメント単位で読み出す。メモリ200は、バーストアクセス時に、1個以上のセグメント単位でデータの書き込み及び読み出しを行う。
【0019】
復号化部130は、メモリ200から読み出されたセグメントに基づいて、外部から入力した複数の入力データを再構成し、再構成した外部から入力した複数の入力データを外部へ出力する。ここで、入力データを再構成するとは、メモリ200から読み出されたセグメントに基づいて、外部から入力された複数の入力データのそれぞれを分離して外部へ出力することである。
【0020】
図2は、本発明の第1実施形態におけるセグメントの構成の一例を示す図である。セグメントは、セグメントヘッダー部とセグメントデータ部とを含む。
【0021】
セグメントデータ部は、固定長(例えば、(セグメント長-2n)オクテット;「セグメントデータ長」と称す)となるように設定されており、セグメントデータを格納する。セグメントデータは、1個以上の入力データの全体又は部分を、入力された順に一定のセグメントデータ長に分割又は連接(結合)したものである。入力データ、又は入力データがセグメントデータに分割された際に残った入力データ(「先行入力データ」と称す)がセグメントデータ長に満たない場合には、先行入力データに次の入力データ(「後続入力データ」と称す)を連接してセグメントデータにされる。そのため、セグメントは、セグメントデータ内に複数の入力データの全体又は部分を含むことが可能である。
【0022】
本実施形態では、入力データ長の下限値がセグメントデータ長のn(nは2以上の整数)分の1以上であるように、入力データ及びセグメントの規格が定められていることとする(本制限がない変形例については、第2実施形態において後述する)。そのため、本実施形態では、1個のセグメントは、最大n個の入力データの全体、又は最大n+1個の入力データの部分を含み得る。即ち、セグメントデータ部は、1個以上のn+1個以下の入力データの全体又は部分を含み得る。
【0023】
セグメントヘッダー部は、固定長(例えば、2nオクテット;「セグメントヘッダー長」と称す)を有し、セグメントヘッダーを格納する。セグメントヘッダーは、n個の先頭位置データを含む。i(iは1≦i≦nを満たす整数)番目の先頭位置データ(図2ではHPiで示す)は、セグメントデータ部に格納された各入力データの先頭位置のうち、i番目の先頭位置を保持するデータである。先頭位置は、セグメントデータ部における位置を表す。以下では、先頭位置がセグメントデータ部の最初のオクテットからの距離(オクテット数)で表現される場合を例に説明するが、本実施形態における先頭位置の表現はこれに限られない。
【0024】
本実施形態における動作について説明する。
【0025】
図3は、本発明の第1実施形態におけるメモリアクセス装置の動作を説明する模式図である。図3では、nが3である場合を例に説明する(nが2の場合の動作については、第2実施形態を参照)。図3では、“A”、“B”、“C”、“D”、及び“E”は各入力データを表し、添字付きの英字は英字で示される各入力データが分割された分割データを表し、“EOF”は入力データの終わりを示す信号を表し、“*”は任意のパディングデータを表すこととする。又、図3では、値“0”、“X”、“Y”、“Z”、“W”、及び“V”は、セグメントデータ部における位置を表し、無効値“-”は無効な位置(位置が指定されていないこと)を表し、特殊値“/”は入力データの終わりを表すこととする。ここで、無効値及び特殊値はそれぞれ、先頭位置データの値として通常使われない所定の値で、例えば、0xffff(16進数表記)、0xfffe(16進数表記)である。図3に示すように、符号化部110は、セグメントデータ部において、入力データのi番目の先頭位置が含まれる場合に、i番目の先頭位置をi番目の先頭位置データに保持する。
【0026】
例えば、まず、セグメントデータ部より入力データAが長いので、符号化部110は、セグメントデータ部に分割データA1を保持させる(図3の左から1番目のセグメント)。そして、符号化部110は、セグメントデータ部における入力データAの1番目の先頭位置0を1番目の先頭位置データに保持させる。符号化部110は、他の先頭位置データには無効値を保持させる。
【0027】
次に、符号化部110は、入力データAを分割途中のセグメントにおいて、セグメントデータ部に分割データA2を保持させる(図3の左から2番目のセグメント)。そして、セグメントデータ部に入力データの先頭が含まれないので、符号化部110は、全ての先頭位置データには無効値を保持させる。
【0028】
続いて、残っている入力データA(A3)がセグメントデータ部よりも短いので、符号化部110は、セグメントデータ部に分割データA3を保持させる(図3の左から3番目のセグメント)。そして、符号化部110は、後続入力データBを待ち、先行入力データA3に後続入力データBの分割データB1を連接してセグメントデータ部に格納する。ここで、符号化部110は、セグメントデータ部における、入力データBの1番目の先頭位置Xを1番目の先頭位置データに保持させ、他の先頭位置データには無効値を保持させる。
【0029】
続いて、残っている入力データB(B2)がセグメントデータ部よりも短いので、符号化部110は、セグメントデータ部に分割データB2を保持させる(図3の左から4番目のセグメント)。そして、符号化部110は、後続入力データC、D、及びEを待ち、先行入力データBの分割データB2に後続入力データC及びD、並びに、後続入力データEの分割データE1を連接してセグメントデータ部に格納する。ここで、符号化部110は、セグメントデータ部において、入力データCの1番目の先頭位置Yを1番目の先頭位置データに保持させ、入力データDの2番目の先頭位置Zを2番目の先頭位置データに保持させ、入力データEの3番目の先頭位置Wを3番目の先頭位置データに保持させる。
【0030】
続いて、残っている入力データE(E2)がセグメントデータ部よりも短いので、符号化部110は、セグメントデータ部に分割データE2を保持させる(図3の左から5番目のセグメント)。そして、符号化部110は、入力データの終わりを待ち、先行入力データEの分割データE2にパディングデータ“*”を連接してセグメントデータ部に格納する。ここで、符号化部110は、セグメントデータ部において、“EOF”の最初の先頭位置Vを1番目の先頭位置データに保持させ、位置Vが入力データの終わりであることを示す特殊値“/”を2番目の先頭位置データに保持させ、処理を終了する。
【0031】
このように、符号化部110は、入力データを分割又は連接してセグメントを生成し、生成したセグメントをメモリ制御部120へ出力する。
【0032】
メモリ制御部120は、符号化部110から入力したセグメントを1個以上のセグメント単位でメモリ200へ順次書き込む。
【0033】
メモリ制御部120は、メモリ200から1個以上のセグメント単位でセグメントを順次読み出し、読み出したセグメントを復号化部130へ出力する。
【0034】
復号化部130は、メモリ制御部120を介して、メモリ200に書き込まれたセグメントを読み出す。そして、復号化部130は、読み出したセグメントの先頭位置データに基づいて、入力データを再構成し、再構成した入力データを出力データとして外部へ出力する。ここで、1個のセグメントは、最大n個の入力データの全体、又は最大n+1個の入力データの部分を含み得る。即ち、1個のセグメントは、最大n個の入力データの先頭位置を含み得る。各セグメントの先頭位置データはそれぞれ、そのセグメントにおける入力データのi番目の先頭位置を保持している。つまり、全ての入力データの先頭位置は、何れかのセグメントの、何れかの先頭位置データによって保持されている。従って、復号化部130は、読み出したセグメントの先頭位置データに基づいて、入力データを再構成することができる。
【0035】
復号化部130は、ある入力データの再構成に必要な、後続入力データの先頭位置がある時点で未取得であっても、更に後続セグメントを読み込むことによって、後続入力データの先頭位置を示す先頭位置データを取得できる。
【0036】
復号化部130は、再構成が完了した入力データを出力データとして順次外部へ出力する。
【0037】
例えば、まず、復号化部130は、第1のセグメントを入力する(図3の左から1番目のセグメント)。第1のセグメントは、1番目の先頭位置データに値“0”を保持し、2及び3番目の先頭位置データに無効値を保持している。このため、復号化部130は、第1のセグメントに1番目の入力データAの分割データA1が先頭から格納されていると判断する。
【0038】
次に、復号化部130は、第2のセグメントを入力する(図3の左から2番目のセグメント)。第2のセグメントは全ての先頭位置データに無効値を保持している。このため、復号化部130は、第2のセグメントに1番目の入力データAの分割データA2が継続して格納されていると判断する。
【0039】
続いて、復号化部130は、第3のセグメントを入力する(図3の左から3番目のセグメント)。第3のセグメントは、1番目の先頭位置データに値“X”を保持し、2及び3番目の先頭位置データに無効値を保持している。このため、復号化部130は、第3のセグメントの位置“X”の直前までに、1番目の入力データAの分割データA3が格納されていると判断する。そして、復号化部130は、第3のセグメントの位置“X”以降に2番目の入力データBの分割データB1が格納されていると判断する。復号化部130は、入力データAを再構成できたので、再構成した入力データAを出力データとして外部へ出力する。
【0040】
続いて、復号化部130は、第4のセグメントを入力する(図3の左から4番目のセグメント)。第4のセグメントは、1番目の先頭位置データに値“Y”を保持しており、2番目の先頭位置データに値“Z”を保持しており、3番目の先頭位置データに値“W”を保持している。このため、復号化部130は、第4のセグメントの、位置“Y”の直前までに2番目の入力データBの分割データB2が格納されており、位置“Y”から位置“Z”の直前までに3番目の入力データCが格納されており、位置“Z”から位置“W”の直前までに4番目の入力データDが格納されていると判断する。そして、復号化部130は、第4のセグメントの位置“W”以降に5番目の入力データEの分割データE1が格納されていると判断する。復号化部130は、入力データB、C、及びDを再構成できたので、再構成した入力データB、C、及びDを出力データとして外部へ出力する。
【0041】
続いて、復号化部130は、第5のセグメントを入力する(図3の左から5番目のセグメント)。第5のセグメントは、1番目の先頭位置データに値“V”を保持しており、2番目の先頭位置データに特殊値“/”を保持している。このため、復号化部130は、第5のセグメントの位置“V”の直前までに5番目の入力データEの分割データE2が格納されていると判断する。そして、復号化部130は、第5のセグメントの位置“V”が入力データの終わりであると判断する。復号化部130は、入力データEを再構成できたので、再構成した入力データEを出力データとして外部へ出力して、処理を終了する。
【0042】
このように、復号化部130は、メモリ制御部120を介して、メモリ200に書き込まれたセグメントを読み出し、読み出したセグメントの先頭位置データに基づいて入力データを再構成し、再構成した入力データを出力データとして外部へ出力する。
【0043】
以上、本実施形態における動作について、nが3である場合を例に説明した。しかしながら、本実施形態におけるnは3に限定されず、nが2又はnが4以上であってもよいことは明らかである。
【0044】
以上説明したように、本実施形態では、セグメントはセグメントヘッダー部とセグメントデータ部とを含む。そして、入力データ長の下限値がセグメントデータ長のn分の1以上であるように、入力データ及びセグメントの規格が定められている。そのため、セグメントデータ部は、1個以上のn+1個以下の入力データの全体又は部分を含み得る。セグメントヘッダー部は、n個の先頭位置データを含む。i番目の先頭位置データは、セグメントデータ部に格納された各入力データの先頭位置のうち、i番目の先頭位置を保持する。本実施形態のメモリアクセス装置100は、符号化部110と、メモリ制御部120と、復号化部130とを含む。符号化部110は、入力データを分割又は連接してセグメントを生成し、生成したセグメントをメモリ制御部120へ出力する。メモリ制御部120は、符号化部110から入力したセグメントを1個以上のセグメント単位でメモリ200へ書き込む。メモリ制御部120は、メモリ200からデータを1個以上のセグメント単位で読み出し、読み出したセグメントを復号化部130へ出力する。復号化部130は、メモリ制御部120からセグメントを入力し、入力したセグメントの先頭位置データに基づいて、入力データを再構成し、再構成した入力データを出力データとして外部へ出力する。ここで、各セグメントのi番目の先頭位置データはそれぞれ、そのセグメントにおける入力データのi番目の先頭位置を保持している。即ち、全ての入力データの先頭位置は、何れかのセグメントの、何れかの先頭位置データによって保持されている。つまり、復号化部130は、読み出したセグメントの先頭位置データに基づいて、入力データを再構成することができる。
【0045】
従って、本実施形態のメモリアクセス装置100には、メモリに対するバーストアクセスにおいて、入力データ以外の無駄なデータのメモリへの書き込みを抑制することができるという効果がある。
【0046】
その結果、本実施形態のメモリアクセス装置100では、メモリの利用効率が向上し、アクセス速度が向上し、出力データに入力データ以外の無駄なデータが含まれる割合が低下する。
【0047】
尚、上述の説明では、各入力データのデータ長の下限値が、セグメントデータのデータ長のn分の1以上であるように、入力データ及びセグメントの規格が定められている場合について説明した。しかしながら、本実施形態では、入力データ長の下限値とセグメントデータ長との関係は特に定められていなくてもよい。あるいは、本実施形態では、各入力データのデータ長の下限値が、セグメントデータのデータ長のn分の1以上であるが、セグメントはnより小さい個数の先頭位置データを含んでもよい。そして、これらの場合には、入力データがコンテンツデータ(各入力データが含むコンテンツ)とコンテンツデータ長(コンテンツデータのデータ長)とを含む。本実施形態のこのような変形例については、第2実施形態において後述する。
(第2実施形態)
本発明の第1実施形態を基本とする、本発明の第2実施形態について説明する。本実施形態では、入力データ長の下限値がセグメントデータ長の2分の1以上であるように、入力データ及びセグメントの規格が定められている。
【0048】
本実施形態における構成について説明する。
【0049】
図4は、本発明の第2実施形態におけるメモリアクセス装置の構成の一例を示すブロック図である。図4に示すように、本実施形態のメモリアクセス装置105は、符号化部115と、メモリ制御部125と、復号化部135とを含む。
【0050】
符号化部115は、メモリ200上の書き込み先の先頭アドレスを指定した上で、外部から入力データを入力して、入力データのデータ長に応じて、セグメントを生成し、生成したセグメントをメモリ制御部125へ出力する。
【0051】
メモリ制御部125は、メモリ200上の書き込み先の先頭アドレスを指定した上で、符号化部115から入力したセグメントを1個以上のセグメント単位でメモリ200上の書き込み先の先頭アドレスから始まる連続した領域へ書き込む。又、メモリ制御部125は、メモリ200上の読み出し元の先頭アドレスを指定した上で、メモリ200上の読み出し元の先頭アドレスから始まる連続した領域からデータを1個以上のセグメント単位で読み出し、読み出したセグメントを復号化部135へ出力する。
【0052】
復号化部135は、メモリ200上の読み出し元の先頭アドレスを指定した上で、メモリ制御部125を介して、メモリ200に書き込まれたセグメントを読み出し、読み出したセグメントから入力データを再構成し、再構成した入力データを出力データとして外部へ出力する。
【0053】
図5は、本発明の第2実施形態におけるセグメントの構成の一例を示す図である。セグメントは、セグメントヘッダー部とセグメントデータ部とを含む。
【0054】
セグメントデータ部は、固定長(例えば、(セグメント長-4)オクテット;セグメントデータ長)となるように設定されており、セグメントデータを格納する。セグメントデータは、1個以上の入力データの全体又は部分を、入力された順に一定のセグメントデータ長に分割又は連接(結合)したものである。入力データ、又は入力データがセグメントデータに分割された際に残った入力データ(先行入力データ)がセグメントデータ長に満たない場合には、先行入力データに次の入力データ(後続入力データ)を連接してセグメントデータにされる。そのため、セグメントは、セグメントデータ内に複数の入力データの全体又は部分を含むことが可能である。
【0055】
本実施形態では、入力データ長の下限値がセグメントデータ長の2分の1以上であるように、入力データ及びセグメントの規格が定められていることとする(本制限がない本実施形態の変形例については後述する)。そのため、本実施形態では、1個のセグメントは、最大2個の入力データの全体、又は最大3個の入力データの部分を含み得る。即ち、セグメントデータ部は、1個以上の3個以下の入力データの全体又は部分を含み得る。
【0056】
セグメントヘッダー部は、固定長(例えば、4オクテット;セグメントヘッダー長)を有し、セグメントヘッダーを格納する。セグメントヘッダーは、FHP(First Header Point;先頭位置データの一例)とLHP(Last Header Point;先頭位置データの一例)とを含む。FHPは、セグメントデータ部に格納された各入力データの先頭位置のうち、最初の先頭位置を保持するデータである。LHPは、セグメントデータ部に格納された各入力データの先頭位置のうち、最後の先頭位置を保持するデータである。先頭位置は、セグメントデータ部における位置を表す。以下では、先頭位置がセグメントデータ部の最初のオクテットからの距離(オクテット数)で表現される場合を例に説明するが、本実施形態における先頭位置の表現はこれに限られない。
【0057】
本実施形態における動作について説明する。
【0058】
図6は、本発明の第2実施形態におけるメモリアクセス装置の動作を説明する模式図である。図6では、“A”、“B”、“C”、及び“D”は各入力データを表し、添字付きの英字は英字で示される各入力データが分割された分割データを表し、“EOF”は入力データの終わりを示す信号を表し、“*”は任意のパディングデータを表すこととする。又、図6では、値“0”、“X”、“Y”、“Z”、及び“V”は、セグメントデータ部における位置を表し、無効値“-”は無効な位置(位置が指定されていないこと)を表し、特殊値“/”は入力データの終わりを表すこととする。ここで、無効値及び特殊値はそれぞれ、FHP及びLHPの値として通常使われない所定の値で、例えば、0xffff(16進数表記)、0xfffe(16進数表記)である。図6に示すように、符号化部115は、セグメントデータ部において、入力データの先頭位置が含まれる場合に、最初の先頭位置をFHPに保持し、最後の先頭位置をLHPに保持する。
【0059】
例えば、まず、セグメントデータ部より入力データAが長いので、符号化部115は、セグメントデータ部に分割データA1を保持させる(図6の左から1番目のセグメント)。そして、符号化部115は、セグメントデータ部における入力データAの最初且つ最後の先頭位置0をFHPとLHPの両方に保持させる。
【0060】
次に、符号化部115は、入力データAを分割途中のセグメントにおいて、セグメントデータ部に分割データA2を保持させる(図6の左から2番目のセグメント)。そして、セグメントデータ部に入力データの先頭が含まれないので、符号化部115は、FHP及びLHPの両方に無効値を保持させる。
【0061】
続いて、残っている入力データA(A3)がセグメントデータ部よりも短いので、符号化部115は、セグメントデータ部に分割データA3を保持させる(図6の左から3番目のセグメント)。そして、符号化部115は、後続入力データBを待ち、先行入力データA3に後続入力データBの分割データB1を連接してセグメントデータ部に格納する。ここで、符号化部115は、セグメントデータ部における、入力データBの最初の先頭位置XをFHPに保持させ、入力データBの最後の先頭位置XをLHPに保持させる。
【0062】
続いて、残っている入力データB(B2)がセグメントデータ部よりも短いので、符号化部115は、セグメントデータ部に分割データB2を保持させる(図6の左から4番目のセグメント)。そして、符号化部115は、後続入力データC及びDを待ち、先行入力データBの分割データB2に後続入力データC及び後続入力データDの分割データD1を連接してセグメントデータ部に格納する。ここで、符号化部115は、セグメントデータ部において、入力データCの最初の先頭位置YをFHPに保持させ、入力データDの最後の先頭位置ZをLHPに保持させる。
【0063】
続いて、残っている入力データD(D2)がセグメントデータ部よりも短いので、符号化部115は、セグメントデータ部に分割データD2を保持させる(図6の左から5番目のセグメント)。そして、符号化部115は、入力データの終わりを待ち、先行入力データDの分割データD2にパディングデータ“*”を連接してセグメントデータ部に格納する。ここで、符号化部115は、セグメントデータ部において、“EOF”の最初の先頭位置YをFHPに保持させ、位置Yが入力データの終わりであることを示す特殊値“/”をLHPに保持させ、処理を終了する。
【0064】
このように、符号化部115は、入力データを分割又は連接してセグメントを生成し、生成したセグメントをメモリ制御部125へ出力する。
【0065】
メモリ制御部125は、符号化部115から入力したセグメントを1個以上のセグメント単位でメモリ200へ順次書き込む。
【0066】
メモリ制御部125は、メモリ200から1個以上のセグメント単位でセグメントを順次読み出し、読み出したセグメントを復号化部135へ出力する。
【0067】
復号化部135は、メモリ制御部125を介して、メモリ200に書き込まれたセグメントを読み出す。そして、復号化部135は、読み出したセグメントのFHPとLHPに基づいて、入力データを再構成し、再構成した入力データを出力データとして外部へ出力する。ここで、1個のセグメントは、最大2個の入力データの全体、又は最大3個の入力データの部分を含み得る。即ち、1個のセグメントは、最大2個の入力データの先頭位置を含み得る。各セグメントのFHPとLHPはそれぞれ、そのセグメントにおける入力データの最初の先頭位置と最後の先頭位置を保持している。つまり、全ての入力データの先頭位置は、何れかのセグメントの、FHP又はLHPによって保持されている。従って、復号化部135は、読み出したセグメントのFHPとLHPに基づいて、入力データを再構成することができる。
【0068】
復号化部135は、ある入力データの再構成に必要な、後続入力データの先頭位置がある時点で未取得であっても、更に後続セグメントを読み込むことによって、後続入力データの先頭位置を示すFHP又はLHPを取得できる。
【0069】
復号化部135は、再構成が完了した入力データを出力データとして順次外部へ出力する。
【0070】
例えば、まず、復号化部135は、第1のセグメントを入力する(図6の左から1番目のセグメント)。第1のセグメントはFHP及びLHPに値“0”を保持している。このため、復号化部135は、第1のセグメントに1番目の入力データAの分割データA1が先頭から格納されていると判断する。
【0071】
次に、復号化部135は、第2のセグメントを入力する(図6の左から2番目のセグメント)。第2のセグメントはFHP及びLHPに無効値を保持している。このため、復号化部135は、第2のセグメントに1番目の入力データAの分割データA2が継続して格納されていると判断する。
【0072】
続いて、復号化部135は、第3のセグメントを入力する(図6の左から3番目のセグメント)。第3のセグメントはFHP及びLHPに値“X”を保持している。このため、復号化部135は、第3のセグメントの、位置“X”の直前までに1番目の入力データAの分割データA3が格納されており、位置“X”以降に2番目の入力データBの分割データB1が格納されていると判断する。復号化部135は、入力データAを再構成できたので、再構成した入力データAを出力データとして外部へ出力する。
【0073】
続いて、復号化部135は、第4のセグメントを入力する(図6の左から4番目のセグメント)。第4のセグメントは、FHPに値“Y”を保持しており、LHPに値“Z”を保持している。このため、復号化部135は、第4のセグメントの、位置“Y”の直前までに2番目の入力データBの分割データB2が格納されており、位置“Y”から位置“Z”の直前までに3番目の入力データCが格納されていると判断する。そして、復号化部135は、第4のセグメントの位置“Z”以降に4番目の入力データDの分割データD1が格納されていると判断する。復号化部135は、入力データB及びCを再構成できたので、再構成した入力データB及びCを出力データとして外部へ出力する。
【0074】
続いて、復号化部135は、第5のセグメントを入力する(図6の左から5番目のセグメント)。第5のセグメントは、FHPに値“V”を保持しており、LHPに特殊値“/”を保持している。このため、復号化部135は、第5のセグメントの、位置“V”の直前までに4番目の入力データDの分割データD2が格納されており、位置“V”が入力データの終わりであると判断する。復号化部135は、入力データDを再構成できたので、再構成した入力データDを出力データとして外部へ出力して、処理を終了する。
【0075】
このように、復号化部135は、メモリ制御部125を介して、メモリ200に書き込まれたセグメントを読み出し、読み出したセグメントのFHPとLHPに基づいて入力データを再構成し、再構成した入力データを出力データとして外部へ出力する。
【0076】
以上説明したように、本実施形態では、セグメントはセグメントヘッダー部とセグメントデータ部とを含む。そして、入力データ長の下限値がセグメントデータ長の2分の1以上であるように、入力データ及びセグメントの規格が定められている。そのため、セグメントデータ部は、1個以上の3個以下の入力データの全体又は部分を含み得る。セグメントヘッダー部は、FHPとLHPとを含む。FHPは、セグメントデータ部に格納された各入力データの先頭位置のうち、最初の先頭位置を保持する。LHPは、セグメントデータ部に格納された各入力データの先頭位置のうち、最後の先頭位置を保持する。本実施形態のメモリアクセス装置105は、符号化部115と、メモリ制御部125と、復号化部135とを含む。符号化部115は、入力データを分割又は連接してセグメントを生成し、生成したセグメントをメモリ制御部125へ出力する。メモリ制御部125は、符号化部115から入力したセグメントを1個以上のセグメント単位でメモリ200へ書き込む。メモリ制御部125は、メモリ200からデータを1個以上のセグメント単位で読み出し、読み出したセグメントを復号化部135へ出力する。復号化部135は、メモリ制御部125からセグメントを入力し、入力したセグメントのFHPとLHPに基づいて、入力データを再構成し、再構成した入力データを出力データとして外部へ出力する。ここで、各セグメントのFHPとLHPはそれぞれ、そのセグメントにおける入力データの最初の先頭位置と最後の先頭位置を保持している。即ち、全ての入力データの先頭位置は、何れかのセグメントの、FHP又はLHPによって保持されている。つまり、復号化部135は、読み出したセグメントのFHPとLHPに基づいて、入力データを再構成することができる。
【0077】
従って、本実施形態のメモリアクセス装置105には、メモリに対するバーストアクセスにおいて、入力データ以外の無駄なデータのメモリへの書き込みを抑制することができるという効果がある。
【0078】
その結果、本実施形態のメモリアクセス装置105では、メモリの利用効率が向上し、アクセス速度が向上し、出力データに入力データ以外の無駄なデータが含まれる割合が低下する。
(変形例)
本実施形態における変形例について説明する。本変形例では、セグメントの規格は本実施形態において上述した通りである。一方、入力データ長の下限値とセグメントデータ長との関係は、特に定められていないこととする。但し、入力データは、各入力データが含むコンテンツを表すコンテンツデータと、コンテンツデータのデータ長を表すコンテンツデータ長とを含む。
【0079】
本変形例における構成は、本実施形態において上述した通りである。
【0080】
図7は、本発明の第2実施形態の変形例におけるメモリアクセス装置の動作を説明する
模式図である。図7に示すように、本変形例における動作例では、図6に示した動作例に比べて、入力データDが短く、入力データEが入力データDに後続している。本変形例では、各入力データはコンテンツデータ長とコンテンツデータとを含む。しかしながら、図7では、入力データC及びDについてのみ内部構造を図示し、他の入力データについては内部構造の図示を省略している。以下では、図7に示す動作例について、上述した図6に示す動作例との差分について説明する。
【0081】
図7の左から1乃至3番目のセグメントについての符号化部115の動作は、上述した図6に示す動作例と同じである。
【0082】
続いて、符号化部115は、セグメントデータ部より残っている入力データB(B2)が短いので、セグメントデータ部に分割データB2を保持させる(図7の左から4番目のセグメント)。そして、符号化部115は、後続入力データC、D、及びEを待ち、先行入力データBの分割データB2に後続入力データC及びD、並びに、後続入力データEの分割データE1を連接してセグメントデータ部に格納する。ここで、符号化部115は、セグメントデータ部において、入力データCの最初の先頭位置YをFHPに保持させ、入力データEの最後の先頭位置WをLHPに保持させる。
【0083】
続いて、符号化部115は、セグメントデータ部より残っている入力データE(E2)が短いので、セグメントデータ部に分割データE2を保持させる(図7の左から5番目のセグメント)。そして、符号化部115は、セグメントデータ部に入力データの先頭が含まれないので、FHP及びLHPの両方に無効値を保持させる。
【0084】
図7の左から1乃至3番目のセグメントについての復号化部135の動作は、上述した図6に示す動作例と同じである。
【0085】
続いて、復号化部135は、第4のセグメントを入力する(図7の左から4番目のセグメント)。第4のセグメントは、FHPに値“Y”を保持しており、LHPに値“W”を保持している。このため、復号化部135は、第4のセグメントの、位置“Y”の直前までに2番目の入力データBの分割データB2が格納されており、位置“Y”から位置“W”の直前までに3及び4番目の入力データ(C+D)が格納されていると判断する。そして、復号化部135は、第4のセグメントの位置“W”以降に5番目の入力データEの分割データE1が格納されていると判断する。復号化部135は、入力データB及び(C+D)を再構成できたので、再構成した入力データB及び(C+D)を出力データとして外部へ出力する。ここで、第4のセグメントは、4番目の入力データDの先頭位置Zを保持していない。そのため、復号化部135は、3及び4番目の入力データ(C+D)を、3番目の入力データCと4番目の入力データDに分離できない。
【0086】
続いて、復号化部135は、第5のセグメントを入力する(図7の左から5番目のセグメント)。第5のセグメントはFHP及びLHPに無効値を保持している。このため、復号化部135は、第5のセグメントに5番目の入力データEの分割データE2が継続して格納されていると判断する。
【0087】
上述したように、復号化部135は、3及び4番目の入力データ(C+D)を、3番目の入力データCと4番目の入力データDに分離できない。しかしながら、3及び4番目の入力データ(C+D)は、3番目の入力データCと4番目の入力データDの連接である。そして、各入力データC、Dはそれぞれ、コンテンツデータ長とコンテンツデータとを含む。そこで、メモリアクセス装置105の出力データを入力した装置又はプログラムは、出力データの構造が既知であれば、コンテンツデータ長に基づいて、3及び4番目の入力データ(C+D)を、3番目の入力データCと4番目の入力データDに分離して、それぞれを処理することができる。
【0088】
従って、本変形例のメモリアクセス装置105には、メモリに対するバーストアクセスにおいて、入力データ以外の無駄なデータのメモリへの書き込みを抑制することができるという効果がある。但し、本変形例のメモリアクセス装置105では、入力データの完全な再構成には外部の装置又はプログラムを必要とする。本変形例のメモリアクセス装置105は、このような外部の装置又はプログラムを含んでもよい。
【0089】
本変形例が、第2実施形態のみならず、第1実施形態にも適用可能なことは明らかである。
【0090】
図8は、本発明の各実施形態におけるメモリアクセス装置を実現可能なハードウェア構成の一例を示すブロック図である。
【0091】
メモリアクセス装置901は、記憶装置902と、CPU(Central Processing Unit)903と、キーボード904と、モニタ905と、I/O(Input/Output)装置908とを備え、これらが内部バス906によって接続されている。記憶装置902は、符号化部110、115、メモリ制御部120、125、復号化部130、135等(以下、「符号化部等」と称す)のCPU903の動作プログラムを格納する。CPU903は、メモリアクセス装置901の全体を制御し、記憶装置902に格納された動作プログラムを実行し、I/O装置908によって符号化部等のプログラムの実行やデータの送受信を行なう。尚、上記のメモリアクセス装置901の内部構成は一例である。メモリアクセス装置901は、必要に応じて、キーボード904、モニタ905を接続する装置構成であってもよい。
【0092】
上述した本発明の各実施形態におけるメモリアクセス装置901は、専用の装置によって実現してもよいが、I/O装置908が外部との通信を実行するハードウェアの動作以外は、コンピュータ(情報処理装置)によっても実現可能である。この場合、係るコンピュータは、記憶装置902に格納されたソフトウェア・プログラムをCPU903に読み出し、読み出したソフトウェア・プログラムをCPU903において実行する。上述した各実施形態の場合、係るソフトウェア・プログラムには、上述したところの、図1及び4に示した、メモリアクセス装置の各部の機能を実現可能な記述がなされていればよい。但し、これらの各部には、適宜ハードウェアを含むことも想定される。そして、このような場合、係るソフトウェア・プログラム(コンピュータ・プログラム)は、本発明を構成すると捉えることができる。更に、係るソフトウェア・プログラムを格納した、コンピュータ読み取り可能な記憶媒体も、本発明を構成すると捉えることができる。
【0093】
以上、本発明を、上述した各実施形態およびその変形例によって例示的に説明した。しかしながら、本発明の技術的範囲は、上述した各実施形態およびその変形例に記載した範囲に限定されない。当業者には、係る実施形態に対して多様な変更又は改良を加えることが可能であることは明らかである。そのような場合、係る変更又は改良を加えた新たな実施形態も、本発明の技術的範囲に含まれ得る。そしてこのことは、特許請求の範囲に記載した事項から明らかである。
【産業上の利用可能性】
【0094】
本発明は、音声、動画、又は測定データ等の大容量データを保持する記憶装置に利用できる。
【符号の説明】
【0095】
100、105 メモリアクセス装置
110、115 符号化部
120、125 メモリ制御部
130、135 復号化部
200 メモリ
図1
図2
図3
図4
図5
図6
図7
図8
図9