JP5895229B2 - 配置決定装置、配置決定方法、データ構造、メモリ、アクセス装置及びメモリアクセス方法 - Google Patents
配置決定装置、配置決定方法、データ構造、メモリ、アクセス装置及びメモリアクセス方法 Download PDFInfo
- Publication number
- JP5895229B2 JP5895229B2 JP2013519363A JP2013519363A JP5895229B2 JP 5895229 B2 JP5895229 B2 JP 5895229B2 JP 2013519363 A JP2013519363 A JP 2013519363A JP 2013519363 A JP2013519363 A JP 2013519363A JP 5895229 B2 JP5895229 B2 JP 5895229B2
- Authority
- JP
- Japan
- Prior art keywords
- data
- bits
- compressed
- memory
- bit
- 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
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/14—Handling requests for interconnection or transfer
- G06F13/16—Handling requests for interconnection or transfer for access to memory bus
- G06F13/1605—Handling requests for interconnection or transfer for access to memory bus based on arbitration
- G06F13/161—Handling requests for interconnection or transfer for access to memory bus based on arbitration with latency improvement
- G06F13/1626—Handling requests for interconnection or transfer for access to memory bus based on arbitration with latency improvement by reordering requests
- G06F13/1631—Handling requests for interconnection or transfer for access to memory bus based on arbitration with latency improvement by reordering requests through address comparison
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/04—Addressing variable-length words or parts of words
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/40—Specific encoding of data in memory or cache
- G06F2212/401—Compressed data
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/3017—Runtime instruction translation, e.g. macros
- G06F9/30178—Runtime instruction translation, e.g. macros of compressed or encrypted instructions
-
- H—ELECTRICITY
- H03—ELECTRONIC CIRCUITRY
- H03M—CODING; DECODING; CODE CONVERSION IN GENERAL
- H03M7/00—Conversion of a code where information is represented by a given sequence or number of digits to a code where the same, similar or subset of information is represented by a different sequence or number of digits
- H03M7/30—Compression; Expansion; Suppression of unnecessary data, e.g. redundancy reduction
- H03M7/40—Conversion to or from variable length codes, e.g. Shannon-Fano code, Huffman code, Morse code
- H03M7/4031—Fixed length to variable length coding
-
- H—ELECTRICITY
- H03—ELECTRONIC CIRCUITRY
- H03M—CODING; DECODING; CODE CONVERSION IN GENERAL
- H03M7/00—Conversion of a code where information is represented by a given sequence or number of digits to a code where the same, similar or subset of information is represented by a different sequence or number of digits
- H03M7/30—Compression; Expansion; Suppression of unnecessary data, e.g. redundancy reduction
- H03M7/60—General implementation details not specific to a particular type of compression
- H03M7/6058—Saving memory space in the encoder or decoder
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Compression, Expansion, Code Conversion, And Decoders (AREA)
- Stored Programmes (AREA)
Description
<1.概要>
実施の形態1に係る配置決定装置は、M個のNビットの非圧縮プログラムコードそれぞれを基に圧縮したM個の圧縮プログラムコードの、本発明に係るメモリの一実施形態であるROM(Read Only Memory)への配置を決定する装置である。以下、「プログラムコード」のことを単に「コード」ともいう。
<2−1.配置決定装置>
まず、配置決定装置100の機能構成について説明する。
addr_a1=ADDR_a/2
第2決定部112は、圧縮部102から受領したXaビットより大きい圧縮コード(特定圧縮コード)からXaビット分のデータを除いた残りのデータを、その圧縮コードの基となった非圧縮コードの非圧縮ブロック中のアドレス値ADDR_aに第2演算を施した結果値addr_a2が示すROM10上の位置に配置するよう決定する機能を有する。第2演算の一例を数2に示す。
addr_a2=M/2+Round1/2(ADDR_a/4)
ここで、Mは、非圧縮コードの個数であり、圧縮コードの個数でもある。また、Round1/2(ADDR_a/4)は、ADDR_aを4で除算した結果を、1/2単位で丸めた結果値を返す関数である。
図2は、実施の形態1に係るアクセス装置200の主要部の機能構成を示すブロック図である。
addr_b1=ADDR_b/2
なお、第1特定部211は、特定したROM10上の位置に配置されている第1データを、読出部202を介して読み出す機能も有する。
addr_b2=M/2+Round1/2(ADDR_b/4)
ここで、Mは、非圧縮コードであり、圧縮コードの個数でもある。また、Round1/2(ADDR_b/4)は、ADDR_bを4で除算した結果を、1/2単位で丸めた結果値を返す関数である。
以下では、ROM10のデータ構成について説明する。
次に、上記構成を備える配置決定装置100及びアクセス装置200の動作について説明する。
まずは、配置決定装置100の配置決定処理について説明する。
上述した配置決定装置100の配置決定処理について、図3に示す例を用いて、図4に示すフローチャートに即して具体的に説明する。
まず、配置決定装置100における制御部110は、処理対象の非圧縮コードの非圧縮ブロック内アドレス値ADDR_aを「0」に初期化する(ステップS1)。
非圧縮コードB1を圧縮した圧縮コードB10についても、上記圧縮コードA10と同様に処理されるため(ステップS2〜S6、S8、S9)、詳細な説明は省略するが、ステップS5の第1演算の結果値addr_a1は、アドレス値ADDR_a(1)/2で「1/2」になる。また、図3(a)の例では、圧縮コードB10のデータ長は、Xaビット以下である。
この例では、M個の非圧縮コード全てについて、ステップS3以降の処理を完了していないので(ステップS2:NO)、制御部110は、アドレス値ADDR_a(2)が示す記憶装置20の非圧縮コード用の領域21内の位置に格納されている非圧縮コード(C1)を、アクセス部101を介して読み出す(ステップS3)。
非圧縮コードD1を圧縮した圧縮コードD10についても、上記圧縮コードB10と同様に処理され、図3(b)に示すように、フラグ(0)とステップS4で受領した圧縮コード(D10)とが、第1演算の結果値addr_a1(3/2)が示す記憶装置20の圧縮コード用の領域22内の位置に配置されることになる。
次に、アクセス装置200のアクセス処理について説明する。
上述したアクセス装置200のアクセス処理について、図3に示す例を用いて、図5に示すフローチャートに即して具体的に説明する。
実施の形態1に係る配置決定装置100によれば、アドレス変換テーブルを用いることなく、各圧縮コードのROM10上の配置の決定できると共に、一定条件下で、各圧縮コードを配置するROM10上の領域area0の容量削減に利用できる。
実施の形態1では、アクセス装置200の制御部210の機能は、アクセス装置200のメモリに格納されたプログラムを、アクセス装置200が備えるプロセッサが実行することで実現するものとして説明したが、以下では、比較的簡単な構成の回路で実現するように変形した例を説明する。
入力部201を介してプロセッサ40から、0〜15ビット目までの16ビットからなるアドレス値ADDR[15:0]=‘0・・・010’b=2が入力された時に、セレクタ214aでは、「0」側の入力が選択されている。
上述の通り、NDATA_ENABLEが「1」となったため、セレクタ214a〜214dでは、「1」側の入力が選択されることになる。
以下では、実施の形態1で説明した第2演算の内容を変更した例を、実施の形態1との相違点を中心に説明する。
図7は、実施の形態2に係る配置決定装置120の主要部の機能構成を示すブロック図であり、図8は、実施の形態2に係るアクセス装置220の主要部の機能構成を示すブロック図である。
ADDR_a=ADDR_b=4×j+k
但し、j=0,1,・・・,M/4−1、k=0,1,2,3
[数6]
addr_a2=addr_b2=M/2+j
[数7]
addr_a2=addr_b2=M/2+j+1/2
[数8]
addr_a2=addr_b2=3×M/4+j/2
<2.データ>
図9(a)は、M個のNビットの非圧縮コードそれぞれを圧縮した結果例を示す図である。
次に、配置決定装置120及びアクセス装置220の動作について説明する。
まずは、配置決定装置120の配置決定処理について説明する。
上述した配置決定装置120の配置決定処理について、図9に示す例を用いて、図10に示すステップS31〜S33の処理内容を具体的に説明する。
この例では、非圧縮コードA2を圧縮した圧縮コードA20のデータ長はXbビットより大きく(ステップS31:YES)、非圧縮コードA2のアドレス値ADDR_aは「4×j」(但しj=0)である。従って、制御部130の第2決定部131は、数6に示す演算を第2演算として実行する(ステップS32)。この第2演算の結果値addr_a2は、「M/2」になる。
この例では、非圧縮コードB2を圧縮した圧縮コードB20のデータ長はXbビット以下である(ステップS31:NO)。従って、制御部130は、図9(b)に示すように、2ビットのフラグ(00)とステップS4で受領した圧縮コードとを、ステップS5の第1演算の結果値addr_a1(1/2)が示す記憶装置20の圧縮コード用の領域22内の位置にアクセス部101を介して書き込む(ステップS33)。
非圧縮コードC2を圧縮した圧縮コードC20についても、上記圧縮コードA20と同様に処理されるため(ステップS2〜S5、S31〜S33、S9)、詳細な説明は省略するが、ステップS5の第1演算の結果値addr_a1は、「1」になる。
非圧縮コードD2を圧縮した圧縮コードD20についても、上記圧縮コードA20と同様に処理され、特に、ステップS5の第1演算の結果値addr_a1は、「3/2」になる。
次に、アクセス装置220のアクセス処理について説明する。
上述したアクセス装置220のアクセス処理について、図9に示す例を用いて、図11に示すS41〜S43の処理内容を具体的に説明する。
実施の形態2に係る配置決定装置120によれば、実施の形態1に係る配置決定装置100の場合よりも特定圧縮コードについての条件を緩和しつつも、各圧縮コードを配置するROM10上の領域area10の容量を削減できる。
以下では、実施の形態2に係るアクセス装置220の制御部230を比較的簡単な構成の回路で実現するように変形した例を説明する。
入力部201を介してプロセッサ40から、アドレス値ADDR[15:0]=‘0・・・011’b=3が入力された時、セレクタ232aでは、「00」側の入力が選択されているので、16ビットのアドレス値{0,ADDR[15:1]}=‘0・・・001’b=1がセレクタ232aからaddr[15:0]として出力される。
上述の通り、NDATA_ENABLE[1:0]が「01」となったため、セレクタ232a及び232bは、「01」側の入力が選択され、セレクタ232c、232d及び232fでは、「(not)00」側の入力が選択されることになる。
以下では、実施の形態1で説明した第1演算及び第2演算の内容を変更した例を、実施の形態1との相違点を中心に説明する。
図13は、実施の形態3に係る配置決定装置140の主要部の機能構成を示すブロック図であり、図14は、実施の形態3に係るアクセス装置240の主要部の機能構成を示すブロック図である。
k=0:addr_a1=addr_b1=3×j
k=1:addr_a1=addr_b1=3×j+1/2
k=2:addr_a1=addr_b1=3×j+2
k=3:addr_a1=addr_b1=3×j+2+1/2
但し、j=0,1,・・・,M/4−1
また、配置決定装置140の第2決定部152及びアクセス装置240の第2特定部252は、アドレス値ADDR_a及びアドレス値ADDR_bを数5に示すように表した場合において、数10で示すkの値に応じた演算を第2演算として行う点で、第2決定部112及び第2特定部212と異なる。
k=0,1:addr_a2=addr_b2=3×j+1
k=2,3:addr_a2=addr_b2=3×j+1+1/2
但し、j=0,1,・・・,M/4−1
<2.データ>
図15(a)は、M個のNビットの非圧縮コードそれぞれを圧縮した結果例を示す図である。
次に、配置決定装置140及びアクセス装置240の動作について説明する。
まずは、配置決定装置140の配置決定処理について説明する。
上述した配置決定装置140の配置決定処理について、図15に示す例を用いて、図16に示すステップS51及びS52の処理内容を具体的に説明する。
この例では、非圧縮コードA3のアドレス値ADDR_aは「4×j+0」(但しj=0)である。従って、第1決定部151は、数9に示すk=0の場合の演算を第1演算として実行する(ステップS51)。この第1演算の結果値addr_a1は、「0」になる。
非圧縮コードB3を圧縮した圧縮コードB30についても、上記圧縮コードA30と同様に処理されるため、詳細な説明は省略するが、ステップS51の第1演算の結果値addr_a1は、「1/2」になる。従って、図15(b)に示すように、フラグ(0)とステップS4で受領した圧縮コード(B30)とが、第1演算の結果値addr_a1(1/2)が示す記憶装置20の圧縮コード用の領域22内の位置に配置されることになる。
この例では、非圧縮コードC3のアドレス値ADDR_aは「4×j+2」(但しj=0)である。従って、第1決定部151は、数9に示すk=2の場合の演算を第1演算として実行する(ステップS51)。この第1演算の結果値addr_a1は、「2」になる。
非圧縮コードD3を圧縮した圧縮コードD30についても、上記圧縮コードA30と同様に処理されるため、詳細な説明は省略するが、ステップS51の第1演算の結果値addr_a1は、「2+1/2」になる。従って、図15(b)に示すように、フラグ(0)とステップS4で受領した圧縮コード(D30)とが、第1演算の結果値addr_a1(2+1/2)が示す記憶装置20の圧縮コード用の領域22内の位置に配置されることになる。
次に、アクセス装置240のアクセス処理について説明する。
上述したアクセス装置240のアクセス処理について、図15に示す例を用いて、図17に示すS61及びS62の処理内容を具体的に説明する。
実施の形態3に係る配置決定装置140によれば、実施の形態1に係る配置決定装置100の場合と同様に、アドレス値ADDR_aが「2×j」及び「2×j+1」(但し、j=0,1,・・・M/2)である2つの非圧縮コードを圧縮した各圧縮コードが共に特定圧縮コードでないことを条件に、各圧縮コードのROM10上の格納領域area20(図15(b)参照)の容量は、3×M×N/4ビットとなる。
以下では、実施の形態3に係るアクセス装置240の制御部250を比較的簡単な構成の回路で実現するように変形した例を説明する。
以上、本発明に係る配置決定装置、配置決定方法、データ構造、メモリ、アクセス装置及びメモリアクセス方法を、各実施の形態及び各変形例(以下、単に「実施の形態」ともいう)に基づいて説明したが、以下のように変形することも可能であり、本発明は上述した実施の形態で示した通りの配置決定装置、配置決定方法、データ構造、メモリ、アクセス装置及びメモリアクセス方法に限られないことは勿論である。
20 記憶装置
30 書込装置
100、120、140 配置決定装置
101 アクセス部
102 圧縮部
110、130、150、210、230、250 制御部
111、151 第1決定部
112、131、152 第2決定部
200、220、240 アクセス装置
201 入力部
202 読出部
203 伸長部
211、251 第1特定部
212、231、252 第2特定部
213 出力部
Claims (11)
- データブロックを構成するM個のNビットデータそれぞれを基に圧縮したM個のNビット未満の圧縮データについてのメモリ配置を決定する配置決定装置であって、
M個の圧縮データのうち、データ長がXビット(X<N)以下である一般圧縮データそれぞれについては、当該一般圧縮データ全体と、少なくとも当該一般圧縮データのデータ長がXビット以下であることを示すフラグとからなるLビット(X<L<N)以下の第1データを、当該一般圧縮データの基となったNビットデータの前記データブロック内アドレス値に第1演算を施した結果値が示すメモリ位置に配置するよう決定し、
M個の圧縮データのうち、データ長がXビットより大きい特定圧縮データそれぞれについては、当該特定圧縮データのうちのXビット分と、少なくとも当該特定圧縮データのデータ長がXビットより大きいことを示すフラグとからなるLビットの第1データを、当該特定圧縮データの基となったNビットデータの前記データブロック内アドレス値に第1演算を施した結果値が示すメモリ位置に配置するよう決定する第1決定手段と、
前記特定圧縮データそれぞれについて、当該特定圧縮データから前記第1データに含まれるXビットを除いた部分の一部又は全体を含む第2データを、当該特定圧縮データの基となったNビットデータの前記データブロック内アドレス値に前記第1演算とは異なる第2演算を施した結果値が示すメモリ位置に配置するよう決定する第2決定手段とを備え、
前記第2演算は、M個のNビットデータそれぞれの前記データブロック内アドレス値のうち、K個(K≦M)を1組とした各組について、同じ組内のいずれのアドレス値に当該第2演算を施しても同一の結果値が生じ、かつ他のいずれの組内の各アドレス値に当該第2演算を施して生じた結果値とも異なる結果値が生じる演算である
ことを特徴とする配置決定装置。 - 前記第1演算は、各結果値それぞれが、メモリ中の第1領域内の異なる位置を示すものであり、
前記第2演算は、各結果値それぞれが、前記メモリ中の前記第1領域と連続する第2領域内の位置を示すものである
ことを特徴とする請求項1記載の配置決定装置。 - 前記第1領域は、N×M/2ビットの領域であり、
前記第1決定手段は、
前記フラグをFビットとし、データ長がN/2−Fビットより大きい圧縮データを前記特定圧縮データとして、M個の圧縮データそれぞれについて、当該圧縮データの基となるNビットデータの前記データブロック内アドレス値を2で除算した結果値が示すメモリ位置に、前記第1データを配置するよう決定する
ことを特徴とする請求項2記載の配置決定装置。 - 前記第2領域は、N×M/4ビットの領域であり、
前記第2演算は、
M個のNビットデータそれぞれの前記データブロック内アドレス値のうち、2個を1組とした組毎に、N/2ビットずつずれたメモリ位置を示す結果値が生じる演算である
ことを特徴とする請求項3記載の配置決定装置。 - 前記第2領域は、N×M×3/8ビットの領域であり、
前記第2演算は、M個のNビットデータそれぞれの前記データブロック内アドレス値のうち、4個を1組とした組毎に、3個のメモリ位置を示す結果値が生じる演算であり、
前記第2決定手段は、
各特定圧縮データそれぞれについて、当該特定圧縮データの前記第2データを、当該特定圧縮データの基となるNビットデータの前記データブロック内アドレス値に第2演算を施した結果値が示す3個のメモリ位置のうち、他の特定圧縮データの前記第2データが配置されていない1つのメモリ位置に配置するよう決定し、
前記第1データに含まれるフラグは、更に
当該第1データを含む前記特定圧縮データの前記第2データが、前記3個のメモリ位置のうち、いずれのメモリ位置に配置されているかを示す2ビットのデータである
ことを特徴とする請求項3記載の配置決定装置。 - 前記第1演算及び前記第2演算は、
M個のNビットデータそれぞれの前記データブロック内アドレス値のうち、J個(K≦J≦M)を1組とした各組について、同じ組内の各アドレス値に当該第1演算及び当該第2演算を施すと、メモリ中の第1領域内の位置を示す結果値が生じ、かつ他の1つの組内の各アドレス値に当該第1演算及び当該第2演算を施すと前記メモリ中の前記第1領域とは異なる第2領域内の位置を示す結果値が生じる演算である
ことを特徴とする請求項1記載の配置決定装置。 - 前記第2演算は、
M個のNビットデータそれぞれの前記データブロック内アドレス値のうち、連続する4個のアドレス値を1組とした各組について、同じ組内の第1及び第2のアドレス値に当該第2演算を施すと、前記第1領域内の部分領域内の同一位置を示す同一の結果値が生じ、かつ当該同じ組内の第3及び第4のアドレス値に当該第2演算を施すと、前記第1及び第2のアドレス値に当該第2演算を施した結果値が示す同一のメモリ位置からN/2ビットずれた前記部分領域内の同一の位置を示す同一の結果値が生じる演算であり、
前記第1演算は、
M個のNビットデータそれぞれの前記データブロック内アドレス値のうち、4個を1組とした各組について、各アドレス値に当該第1演算を施すと、前記第1領域内の前記部分領域とは異なる位置を示す結果値が生じる演算である
ことを特徴とする請求項6記載の配置決定装置。 - データブロックを構成するM個のNビットデータそれぞれを基に圧縮したM個のNビット未満の圧縮データについてのメモリ配置を決定する配置決定装置における配置決定方法であって、
M個の圧縮データのうち、データ長がXビット(X<N)以下である一般圧縮データそれぞれについては、当該一般圧縮データ全体と、少なくとも当該一般圧縮データのデータ長がXビット以下であることを示すフラグとからなるLビット(X<L<N)以下の第1データを、当該一般圧縮データの基となったNビットデータの前記データブロック内アドレス値に第1演算を施した結果値が示すメモリ位置に配置するよう決定し、
M個の圧縮データのうち、データ長がXビットより大きい特定圧縮データそれぞれについては、当該特定圧縮データのうちのXビット分と、少なくとも当該特定圧縮データのデータ長がXビットより大きいことを示すフラグとからなるLビットの第1データを、当該特定圧縮データの基となったNビットデータの前記データブロック内アドレス値に第1演算を施した結果値が示すメモリ位置に配置するよう決定する第1決定ステップと、
前記特定圧縮データそれぞれについて、当該特定圧縮データから前記第1データに含まれるXビットを除いた部分の一部又は全体を含む第2データを、当該特定圧縮データの基となったNビットデータの前記データブロック内アドレス値に前記第1演算とは異なる第2演算を施した結果値が示すメモリ位置に配置するよう決定する第2決定ステップとを含み、
前記第2演算は、M個のNビットデータそれぞれの前記データブロック内アドレス値のうち、K個(K≦M)を1組とした各組について、同じ組内のいずれのアドレス値に当該第2演算を施しても同一の結果値が生じ、かつ他のいずれの組内の各アドレス値に当該第2演算を施して生じた結果値とも異なる結果値が生じる演算である
ことを特徴とする配置決定方法。 - データブロックを構成するM個のNビットデータそれぞれを基に圧縮したM個のNビット未満の圧縮データそれぞれが配置されたメモリにアクセスするアクセス装置であって、
前記メモリは、第1メモリ領域と第2メモリ領域とを有し、
前記第1メモリ領域は、
M個の圧縮データのうち、データ長がXビット(X<N)以下である一般圧縮データそれぞれについては、当該一般圧縮データ全体と、少なくとも当該一般圧縮データのデータ長がXビット以下であることを示すフラグとからなるLビット(X<L<N)以下の第1データが配置された、当該一般圧縮データの基となるNビットデータの前記データブロック内アドレス値に第1演算を施した結果値が示す領域であり、
M個の圧縮データのうち、データ長がXビットより大きい特定圧縮データそれぞれについては、当該特定圧縮データのうちのXビット分と、少なくとも当該特定圧縮データのデータ長がXビットより大きいことを示すフラグとからなるLビットの第1データが配置された、当該特定圧縮データの基となるNビットデータの前記データブロック内アドレス値に第1演算を施した結果値が示す領域であり、
前記第2メモリ領域は、
前記特定圧縮データそれぞれについて、当該特定圧縮データから前記第1データに含まれるXビットを除いた部分の一部又は全体を含む第2データが配置された、当該特定圧縮データの基となるNビットデータの前記データブロック内アドレス値に前記第1演算とは異なる第2演算を施した結果値が示す領域であり、
前記第2演算は、M個のNビットデータそれぞれの前記データブロック内アドレス値のうち、K個(K≦M)を1組とした各組について、同じ組内のいずれのアドレス値に当該第2演算を施しても同一の結果値が生じ、かつ他のいずれの組内の各アドレス値に当該第2演算を施して生じた結果値とも異なる結果値が生じる演算であり、
前記アクセス装置は、
プロセッサの1つのNビットデータにアクセスするためのアドレス値を受け付ける入力手段と、
前記入力手段が受け付けたアドレス値に第1演算を施し、当該第1演算の結果値が示す、前記1つのNビットデータを基に圧縮した前記圧縮データの全体又はXビット分と、少なくとも当該圧縮データがXビットより大きいか否かを示すフラグとからなるLビット以下の第1データが配置されている前記メモリ上の位置を特定する第1特定手段と、
前記第1特定手段が特定した前記メモリ上の位置に配置されている前記第1データ内の前記フラグが、前記圧縮データがXビットより大きいことを示す場合に、前記入力手段が受け付けたアドレス値に前記第1演算とは異なる第2演算を施し、当該第2演算の結果値が示す、前記圧縮データから前記第1データに含まれるXビットを除いた部分の一部又は全体を含む第2データが配置されている前記メモリ上の位置を特定する第2特定手段と、
前記第1特定手段が特定した前記メモリ上の位置に配置されている前記第1データに含まれる前記圧縮データの全体又はXビット分を出力すると共に、前記第2特定手段が前記メモリ上の位置を特定した場合には、当該メモリ上の位置に配置されている第2データを出力する出力手段とを備え、
前記第2演算は、M個のNビットデータそれぞれの前記データブロック内アドレス値のうち、K個(K≦M)を1組とした各組について、同じ組内のいずれのアドレス値に当該第2演算を施しても同一の結果値が生じ、かつ他のいずれの組内の各アドレス値に当該第2演算を施して生じた結果値とも異なる結果値が生じる演算である
ことを特徴とするアクセス装置。 - 前記アクセス装置は、更に
圧縮データを伸長し、得られたNビットデータを前記プロセッサに送出する伸長手段を備える
ことを特徴とする請求項9記載のアクセス装置。 - データブロックを構成するM個のNビットデータそれぞれを基に圧縮したM個のNビット未満の圧縮データそれぞれが配置されたメモリにアクセスするアクセス装置におけるメモリアクセス方法であって、
前記メモリは、第1メモリ領域と第2メモリ領域とを有し、
前記第1メモリ領域は、
M個の圧縮データのうち、データ長がXビット(X<N)以下である一般圧縮データそれぞれについては、当該一般圧縮データ全体と、少なくとも当該一般圧縮データのデータ長がXビット以下であることを示すフラグとからなるLビット(X<L<N)以下の第1データが配置された、当該一般圧縮データの基となるNビットデータの前記データブロック内アドレス値に第1演算を施した結果値が示す領域であり、
M個の圧縮データのうち、データ長がXビットより大きい特定圧縮データそれぞれについては、当該特定圧縮データのうちのXビット分と、少なくとも当該特定圧縮データのデータ長がXビットより大きいことを示すフラグとからなるLビットの第1データが配置された、当該特定圧縮データの基となるNビットデータの前記データブロック内アドレス値に第1演算を施した結果値が示す領域であり、
前記第2メモリ領域は、
前記特定圧縮データそれぞれについて、当該特定圧縮データから前記第1データに含まれるXビットを除いた部分の一部又は全体を含む第2データが配置された、当該特定圧縮データの基となるNビットデータの前記データブロック内アドレス値に前記第1演算とは異なる第2演算を施した結果値が示す領域であり、
前記第2演算は、M個のNビットデータそれぞれの前記データブロック内アドレス値のうち、K個(K≦M)を1組とした各組について、同じ組内のいずれのアドレス値に当該第2演算を施しても同一の結果値が生じ、かつ他のいずれの組内の各アドレス値に当該第2演算を施して生じた結果値とも異なる結果値が生じる演算であり、
前記メモリアクセス方法は、
プロセッサの1つのNビットデータにアクセスするためのアドレス値を受け付ける入力ステップと、
前記入力ステップで受け付けたアドレス値に第1演算を施し、当該第1演算の結果値が示す、前記1つのNビットデータを基に圧縮した前記圧縮データの全体又はXビット分と、少なくとも当該圧縮データがXビットより大きいか否かを示すフラグとからなるLビット以下の第1データが配置されている前記メモリ上の位置を特定する第1特定ステップと、
前記第1特定ステップで特定した前記メモリ上の位置に配置されている前記第1データ内の前記フラグが、前記圧縮データがXビットより大きいことを示す場合に、前記入力ステップで受け付けたアドレス値に前記第1演算とは異なる第2演算を施し、当該第2演算の結果値が示す、前記圧縮データから前記第1データに含まれるXビットを除いた部分の一部又は全体を含む第2データが配置されている前記メモリ上の位置を特定する第2特定ステップと、
前記第1特定ステップで特定した前記メモリ上の位置に配置されている前記第1データのうちの全体又はXビット分を出力すると共に、前記第2特定ステップで前記メモリ上の位置を特定した場合には、当該メモリ上の位置に配置されている第2データを出力する出力ステップとを含み、
前記第2演算は、M個のNビットデータそれぞれの前記データブロック内アドレス値のうち、K個(K≦M)を1組とした各組について、同じ組内のいずれのアドレス値に当該第2演算を施しても同一の結果値が生じ、かつ他のいずれの組内の各アドレス値に当該第2演算を施して生じた結果値とも異なる結果値が生じる演算である
ことを特徴とするメモリアクセス方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2013519363A JP5895229B2 (ja) | 2011-06-10 | 2012-05-21 | 配置決定装置、配置決定方法、データ構造、メモリ、アクセス装置及びメモリアクセス方法 |
Applications Claiming Priority (4)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2011130153 | 2011-06-10 | ||
JP2011130153 | 2011-06-10 | ||
PCT/JP2012/003293 WO2012169124A1 (ja) | 2011-06-10 | 2012-05-21 | 配置決定装置、配置決定方法、データ構造、メモリ、アクセス装置及びメモリアクセス方法 |
JP2013519363A JP5895229B2 (ja) | 2011-06-10 | 2012-05-21 | 配置決定装置、配置決定方法、データ構造、メモリ、アクセス装置及びメモリアクセス方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
JPWO2012169124A1 JPWO2012169124A1 (ja) | 2015-02-23 |
JP5895229B2 true JP5895229B2 (ja) | 2016-03-30 |
Family
ID=47295717
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2013519363A Active JP5895229B2 (ja) | 2011-06-10 | 2012-05-21 | 配置決定装置、配置決定方法、データ構造、メモリ、アクセス装置及びメモリアクセス方法 |
Country Status (4)
Country | Link |
---|---|
US (1) | US9519599B2 (ja) |
JP (1) | JP5895229B2 (ja) |
CN (1) | CN103597454B (ja) |
WO (1) | WO2012169124A1 (ja) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9141538B2 (en) * | 2010-07-07 | 2015-09-22 | Marvell World Trade Ltd. | Apparatus and method for generating descriptors to transfer data to and from non-volatile semiconductor memory of a storage drive |
Family Cites Families (14)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP3170312B2 (ja) * | 1991-07-29 | 2001-05-28 | キヤノン株式会社 | 画像処理装置 |
JPH06222984A (ja) * | 1993-01-22 | 1994-08-12 | Mitsubishi Electric Corp | 読み出し専用メモリ |
CN1099081C (zh) * | 1994-01-29 | 2003-01-15 | 世嘉企业股份有限公司 | 信息处理装置 |
JPH0922353A (ja) * | 1995-07-05 | 1997-01-21 | Toshiba Corp | 1チップ・マイクロコンピュータおよびその命令コード格納方法 |
JP3749507B2 (ja) * | 2002-07-01 | 2006-03-01 | 株式会社ルネサステクノロジ | 圧縮コードを処理するマイクロコントローラ |
US7203935B2 (en) * | 2002-12-05 | 2007-04-10 | Nec Corporation | Hardware/software platform for rapid prototyping of code compression technologies |
US7162584B2 (en) * | 2003-12-29 | 2007-01-09 | Intel Corporation | Mechanism to include hints within compressed data |
CA2564844C (en) * | 2004-04-26 | 2014-12-09 | Storewiz, Inc. | Method and system for compression of files for storage and operation on compressed files |
US7533234B2 (en) * | 2005-05-13 | 2009-05-12 | Intel Corporation | Method and apparatus for storing compressed code without an index table |
EP1939751A1 (en) * | 2006-12-22 | 2008-07-02 | Telefonaktiebolaget LM Ericsson (publ) | Storing compressed data |
US8706951B2 (en) * | 2008-07-18 | 2014-04-22 | Marvell World Trade Ltd. | Selectively accessing faster or slower multi-level cell memory |
JP2010287114A (ja) * | 2009-06-12 | 2010-12-24 | Toshiba Corp | データ格納方法及びデータ格納装置 |
CN101692349A (zh) * | 2009-10-23 | 2010-04-07 | 中兴通讯股份有限公司 | 一种设备及其进行数据存储和启动的方法 |
TWI459197B (zh) * | 2011-04-21 | 2014-11-01 | Phison Electronics Corp | 資料寫入方法、記憶體控制器與記憶體儲存裝置 |
-
2012
- 2012-05-21 CN CN201280028496.2A patent/CN103597454B/zh not_active Expired - Fee Related
- 2012-05-21 JP JP2013519363A patent/JP5895229B2/ja active Active
- 2012-05-21 WO PCT/JP2012/003293 patent/WO2012169124A1/ja active Application Filing
-
2013
- 2013-11-26 US US14/091,122 patent/US9519599B2/en active Active
Also Published As
Publication number | Publication date |
---|---|
WO2012169124A1 (ja) | 2012-12-13 |
CN103597454B (zh) | 2016-02-03 |
US9519599B2 (en) | 2016-12-13 |
JPWO2012169124A1 (ja) | 2015-02-23 |
CN103597454A (zh) | 2014-02-19 |
US20140089622A1 (en) | 2014-03-27 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP6370988B2 (ja) | 圧縮されたデータセグメントのキャッシュライン小型化 | |
JP6768928B2 (ja) | アドレスを圧縮するための方法及び装置 | |
US6704852B2 (en) | Control device applicable to flash memory card and method for building partial lookup table | |
TWI705695B (zh) | 針對片上系統中的圖像幀的中央凹型壓縮的系統和方法 | |
CN108052643B (zh) | 基于LSM Tree结构的数据存储方法、装置及存储引擎 | |
KR20170097609A (ko) | 압축된 데이터 백그라운드를 캐싱하는 장치, 시스템 및 방법 | |
CN102112973B (zh) | 协调装置、协调系统、协调方法、半导体集成电路及图像处理装置 | |
US20100250864A1 (en) | Method And Apparatus For Compressing And Decompressing Data | |
JP7088897B2 (ja) | データアクセス方法、データアクセス装置、機器及び記憶媒体 | |
US6684267B2 (en) | Direct memory access controller, and direct memory access control method | |
US7598891B2 (en) | Data development device and data development method | |
JP5895229B2 (ja) | 配置決定装置、配置決定方法、データ構造、メモリ、アクセス装置及びメモリアクセス方法 | |
JP2009533763A (ja) | 大蓄積容量を備えるマルチメディアカード | |
US8688947B1 (en) | Aligned data access | |
JP4693072B2 (ja) | Jpegアプリケーションにおける可変長符号の復号 | |
JP5978259B2 (ja) | 順次読み出し最適化可変サイズフラッシュトランスレーションレイヤ | |
JP2010182254A (ja) | 情報処理装置、および情報処理方法、並びにプログラム | |
JP2004246889A (ja) | シーケンシャルバッファを内蔵してdspのデータアクセス性能を向上させるコンピュータシステム及びそのコンピュータシステムのアクセス方法 | |
CN110119313B (zh) | 图像处理方法及图像处理装置 | |
JP4895264B2 (ja) | 記憶装置および情報処理装置 | |
JP4479370B2 (ja) | プロセッサ | |
JP2019113890A (ja) | ストレージコントローラ、ストレージアレイ装置、データ格納方法、およびプログラム | |
JP2010287114A (ja) | データ格納方法及びデータ格納装置 | |
JP2023503034A (ja) | パターンベースのキャッシュブロック圧縮 | |
CN112580297B (zh) | 一种编解码数据的方法、电子设备及存储介质 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20150512 |
|
A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20150707 |
|
A02 | Decision of refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A02 Effective date: 20150811 |
|
A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20150915 |
|
A911 | Transfer to examiner for re-examination before appeal (zenchi) |
Free format text: JAPANESE INTERMEDIATE CODE: A911 Effective date: 20151013 |
|
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: 20151110 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20151203 |
|
R151 | Written notification of patent or utility model registration |
Ref document number: 5895229 Country of ref document: JP Free format text: JAPANESE INTERMEDIATE CODE: R151 |
|
S111 | Request for change of ownership or part of ownership |
Free format text: JAPANESE INTERMEDIATE CODE: R313113 |
|
SZ03 | Written request for cancellation of trust registration |
Free format text: JAPANESE INTERMEDIATE CODE: R313Z03 |
|
R350 | Written notification of registration of transfer |
Free format text: JAPANESE INTERMEDIATE CODE: R350 |
|
S111 | Request for change of ownership or part of ownership |
Free format text: JAPANESE INTERMEDIATE CODE: R313113 |
|
R350 | Written notification of registration of transfer |
Free format text: JAPANESE INTERMEDIATE CODE: R350 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |