JP2019061631A - 半導体装置、及びメモリアクセス方法 - Google Patents
半導体装置、及びメモリアクセス方法 Download PDFInfo
- Publication number
- JP2019061631A JP2019061631A JP2017187998A JP2017187998A JP2019061631A JP 2019061631 A JP2019061631 A JP 2019061631A JP 2017187998 A JP2017187998 A JP 2017187998A JP 2017187998 A JP2017187998 A JP 2017187998A JP 2019061631 A JP2019061631 A JP 2019061631A
- Authority
- JP
- Japan
- Prior art keywords
- auxiliary information
- address
- compressed data
- circuit
- data
- 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.)
- Pending
Links
Images
Classifications
-
- 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/06—Addressing a physical block of locations, e.g. base addressing, module addressing, memory dedication
-
- 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/0223—User address space allocation, e.g. contiguous or non contiguous base addressing
- G06F12/023—Free address space management
-
- 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/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/0802—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
- G06F12/0877—Cache access modes
- G06F12/0882—Page mode
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F7/00—Methods or arrangements for processing data by operating upon the order or content of the data handled
- G06F7/38—Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation
- G06F7/48—Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation using non-contact-making devices, e.g. tube, solid state device; using unspecified devices
- G06F7/57—Arithmetic logic units [ALU], i.e. arrangements or devices for performing two or more of the operations covered by groups G06F7/483 – G06F7/556 or for performing logical operations
- G06F7/575—Basic arithmetic logic units, i.e. devices selectable to perform either addition, subtraction or one of several logical operations, using, at least partially, the same circuitry
-
- 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/10—Providing a specific technical effect
- G06F2212/1016—Performance improvement
- G06F2212/1024—Latency reduction
-
- 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/10—Providing a specific technical effect
- G06F2212/1041—Resource optimization
- G06F2212/1044—Space efficiency improvement
-
- 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/30—Providing cache or TLB in specific location of a processing system
- G06F2212/302—In image processor or graphics adapter
-
- 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
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/46—Caching storage objects of specific type in disk cache
- G06F2212/466—Metadata, control data
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- Mathematical Analysis (AREA)
- Computational Mathematics (AREA)
- Mathematical Optimization (AREA)
- Pure & Applied Mathematics (AREA)
- Computing Systems (AREA)
- Memory System Of A Hierarchy Structure (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
- Memory System (AREA)
Abstract
【課題】圧縮データを外部のメモリに格納する半導体装置、及びメモリアクセス方法を提供する。【解決手段】メモリ空間上に圧縮データ格納領域を包含する管理単位メモリ領域108Aと、補助情報を包含する補助情報格納領域108Cとを定義し、管理単位メモリ空間が設定されるメモリ上の場所を示すアドレスと、補助情報格納領域のアドレスと、圧縮データのアドレスとから補助情報アドレスを算出することによって、圧縮データと補助情報の対応づけを行い、補助情報を読み出す。【選択図】図4
Description
本発明は、半導体装置、及びメモリアクセス方法に関し、例えば、圧縮データを外部のメモリに格納する半導体装置、及びメモリアクセス方法に関する。
近年、画像処理等の様々な演算処理を行う半導体装置が広く利用されている。このような半導体装置は、画像等のデータのメモリへの書き込み及びメモリからの読み出しを行う際に、データの圧縮及び伸張等を行っている。圧縮データの読み出しに関連する技術として、例えば、特開平10−27127号公報(特許文献1)が知られている。
特許文献1では、圧縮データをメモリに格納する際には、その圧縮データの読み出しに用いる補助情報として、その圧縮データが格納されているメモリのアドレス情報を、バス経由でメモリに格納する。メモリから圧縮データを読み出す際には、アドレス情報を用いて、圧縮データを読み出す。
しかしながら、特許文献1では、圧縮データと当該圧縮データに対応するアドレス情報とをページング制御で対応付けしているため、オペレーション単位ごとに圧縮データが格納されている領域とページテーブルとの両方を対応づけて管理する必要があった。このため、圧縮データの読み出し/書き出しの際にソフトウェアでの処理が煩雑になるという問題があった。
その他の課題と新規な特徴は、本明細書の記述および添付図面から明らかになるであろう。
一実施の形態によれば、メモリ空間上に圧縮データ格納領域を包含して格納する管理単位メモリ領域と、当該圧縮データをメモリから読み出し/書き込みする際に必要な補助情報を包含して格納する補助情報格納領域とをメモリ上に設定し、補助情報を読み出す。
一実施の形態によれば、補助情報を読み出す際に必要なソフトウェアの処理量や計算に必要な処理時間を削減することができる。
以下、実施の形態を図面に基づいて詳細に説明する。また、以下の実施の形態においては便宜上その必要があるときは、複数のセクションまたは実施の形態に分割して説明するが、特に明示した場合を除き、それらはお互いに無関係なものではなく、一方は他方の一部または全部の変形例、詳細、補足説明等の関係にある。
また、以下の実施の形態において、要素の数等(個数、数値、量、範囲等を含む)に言及する場合、特に明示した場合および原理的に明らかに特定の数に限定される場合等を除き、その特定の数に限定されるものではなく、特定の数以上でも以下でも良い。さらに、以下の実施の形態において、その構成要素(要素ステップ等も含む)は、特に明示した場合および原理的に明らかに必須であると考えられる場合等を除き、必ずしも必須のものではないことは言うまでもない。同様に、以下の実施の形態において、構成要素等の形状、位置関係等に言及するときは、特に明示した場合および原理的に明らかにそうでないと考えられる場合等を除き、実質的にその形状等に近似または類似するもの等を含むものとする。このことは、上記数値および範囲についても同様である。
(実施の形態1)
《半導体装置の概略構成》
図1は、実施の形態1に係る半導体システムの構成を示す概略図である。図1に示す半導体システム10は、例えば第一演算回路101_1、第二演算回路101_2、・・・、第N演算回路101_N、第一補助情報管理/データ圧縮回路111_1、第二補助情報管理/データ圧縮回路111_2、・・・、バス109、メモリコントローラ106等を含む半導体装置100と、外部メモリ108によって構成される。外部メモリ108はSDRAM(Synchronous Dynamic Random Access Memory)等の半導体記憶装置で構成される。第一補助情報管理/データ圧縮回路111_1は、第一演算回路101_1から発行された圧縮データへのアクセスに対して圧縮データへの読み出し/書き込みを行うために必要な補助情報を生成したり、第一演算回路101_1が生成したデータに対して圧縮処理を行ったりする。第二補助情報管理/データ圧縮回路111_2も同様に、第二演算回路101_2から発行されたアクセスや生成されたデータに対して補助情報の生成やデータ圧縮などの処理を行う。なお、これら第一補助情報管理/データ圧縮回路111_1、第二補助情報管理/データ圧縮回路111_2のような補助情報管理/データ圧縮回路は全ての演算回路に対して設ける必要はなく、第N演算回路101_Nのように補助情報管理/データ圧縮回路を設けずに直接バス109に接続するようにしてもよい。また、図1では2つの補助情報管理/データ圧縮回路を図示しているが、2以上または2以下の数を設けるようにしても良い。
《半導体装置の概略構成》
図1は、実施の形態1に係る半導体システムの構成を示す概略図である。図1に示す半導体システム10は、例えば第一演算回路101_1、第二演算回路101_2、・・・、第N演算回路101_N、第一補助情報管理/データ圧縮回路111_1、第二補助情報管理/データ圧縮回路111_2、・・・、バス109、メモリコントローラ106等を含む半導体装置100と、外部メモリ108によって構成される。外部メモリ108はSDRAM(Synchronous Dynamic Random Access Memory)等の半導体記憶装置で構成される。第一補助情報管理/データ圧縮回路111_1は、第一演算回路101_1から発行された圧縮データへのアクセスに対して圧縮データへの読み出し/書き込みを行うために必要な補助情報を生成したり、第一演算回路101_1が生成したデータに対して圧縮処理を行ったりする。第二補助情報管理/データ圧縮回路111_2も同様に、第二演算回路101_2から発行されたアクセスや生成されたデータに対して補助情報の生成やデータ圧縮などの処理を行う。なお、これら第一補助情報管理/データ圧縮回路111_1、第二補助情報管理/データ圧縮回路111_2のような補助情報管理/データ圧縮回路は全ての演算回路に対して設ける必要はなく、第N演算回路101_Nのように補助情報管理/データ圧縮回路を設けずに直接バス109に接続するようにしてもよい。また、図1では2つの補助情報管理/データ圧縮回路を図示しているが、2以上または2以下の数を設けるようにしても良い。
図2は、図1における第一演算回路101_1及び第一補助情報管理/データ圧縮回路111_1に着目した場合の半導体システムの構成例を示した詳細図である。半導体システム10は、演算回路101と、補助情報管理/データ圧縮回路111と、伸長回路107を有するメモリコントローラ106と、を備えた半導体装置100と外部メモリ(以下、単に「メモリ」と表記する。)108とか実装された構成となっている。
補助情報管理/データ圧縮回路111は図1の第一補助情報管理/データ圧縮回路111_1、第二補助情報管理/データ圧縮回路111_2に対応し、内部に管理単位メモリ空間判定回路102と、補助情報アドレス生成回路103と、補助情報キャッシュ104と、コマンド変換/データ圧縮回路105と、を備える。
演算回路101は図1の第一演算回路101_1、第二演算回路101_2、・・・、第N演算回路101_Nに対応し、ユーザに応じた所定の処理を行う。演算回路101は例えばCPU(Central Processing Unit)で実現されるが、CPUから特定の処理の命令を受けて処理を行う特定処理演算回路であっても良い。
管理単位メモリ空間判定回路102は、演算回路101から発行されるメモリ108へのアクセスが、どの管理単位メモリ空間内へのアクセスかを判定する。なお、単位管理メモリ空間とは、圧縮データを内部に包含するように設定されるメモリ空間のことであり、演算回路等によって領域が設定される。管理単位メモリ空間の詳細については後述する。
補助情報アドレス生成回路103は、アクセスが圧縮データへのアクセスである時に、当該圧縮データに対応する補助情報が格納されているアドレス(以下、補助情報アドレスと表記する。)を生成する。なお、補助情報とは、圧縮データをメモリ108に読み出し/書き込みする際に必要な情報のことを指し、例えば圧縮後のデータサイズを指す。データは圧縮されるとデータサイズが減縮するため、圧縮後のデータを読み出し/書き込みするためには圧縮後のデータサイズの情報が必要となる。そのため、補助情報アドレス生成回路103は、圧縮データをメモリ108から読み出す際には、圧縮データへのアクセスアドレスなどから補助情報アドレスを生成し、コマンド変換/データ圧縮回路105へと出力する。
補助情報と圧縮データはいずれもメモリ108上に保存される。圧縮データを読み出すときは、最初に補助情報をメモリ108から読み出し、読み出した補助情報に基づいて圧縮データのリードリクエストを変換し、変換したリードリクエストに基づいて圧縮データを読み出す動作が必要となる。一方で圧縮データを書き込むときには、最初にデータを圧縮し、圧縮後のデータサイズを基に補助情報を生成し、圧縮データをメモリ108に格納する。補助情報は補助情報キャッシュ104に格納され、一定量の補助情報が補助情報キャッシュ104に格納された後、メモリ108に格納される。
補助情報キャッシュ104は補助情報を格納するキャッシュである。補助情報は、コマンド変換/データ圧縮回路105によって圧縮データのリード/ライトリクエスト変換に用いられた後、補助情報キャッシュ104へと格納される。次に同じ圧縮データへのリクエストが発行されても、当該圧縮データに対応する補助情報が既に補助情報キャッシュ104に格納されている場合には、メモリ108に読み出しに行くことなく圧縮データへのリード/ライトリクエストを変換することができる。なお、補助情報キャッシュ104がない場合でも補助情報の読み出し/書き込みを行うことは可能だが、補助情報キャッシュ104を設けることでより効率的なアクセスを実現することができる。
コマンド変換/データ圧縮回路105は、演算回路101から生成されたデータの圧縮を行い、圧縮後のデータのデータサイズ情報を生成する。生成されたデータサイズ情報は補助情報として補助情報キャッシュ104またはメモリ108に格納される。また、コマンド変換/データ圧縮回路105は、圧縮データへのリード/ライトリクエストを発行する。演算回路101からコマンド変換/データ圧縮回路105へ出力されるリード/ライトリクエストは、圧縮前のデータサイズ分だけリード/ライトするリクエスト内容となっているため、そのままメモリコントローラ106へ出力することはできない。そのため、圧縮後のデータサイズ情報である補助情報を使って、圧縮後のデータサイズをリード/ライトするようリクエストの内容を書き換える必要がある。
メモリコントローラ106はコマンド変換/データ圧縮回路105により生成された圧縮データへのリード/ライトリクエストを受け取り、半導体装置100とメモリ108との間でデータのやりとりを行う。
メモリ108は半導体装置100の外部に設けられるメモリであって、圧縮データや補助情報を格納する。
伸長回路107はメモリ108から読み出された圧縮データを伸長し、演算回路101へ供給する。なお、図2ではメモリコントローラ106の内部に配置されているが、各補助情報管理/データ圧縮回路111の内部に設けても良い。メモリコントローラ106の内部に設けた場合は、複数の演算回路101が1つの伸長回路107を共通して使用することができるため伸長回路107の個数を減らすことが可能となり、回路面積の削減をすることができる。複数の補助情報管理/データ圧縮回路111の各々に設ける場合は回路面積が増えるが、圧縮された状態のデータで内部バスを通過することができるため、内部バスのトランザクションを緩和することができる。
<比較例>
ここで、実施の形態1の半導体装置の動作の説明に先立ち、その前提として検討した技術(以下、比較例という。)に係る半導体装置について説明する。
ここで、実施の形態1の半導体装置の動作の説明に先立ち、その前提として検討した技術(以下、比較例という。)に係る半導体装置について説明する。
図7は、比較例に係るメモリ空間を示した図である。縦軸はメモリ空間を意味し、メモリ空間上には圧縮データと、その圧縮データに対応する補助情報が格納される。図7においては、例示として、圧縮データ#1と圧縮データ#1に対応する補助情報#1とが関連づけられて格納され、圧縮データ#2と圧縮データ#2に対応する補助情報#2とが関連づけられて格納される。
各圧縮データは、演算回路の演算単位(オペレーション)ごとにまとめられて格納される。演算単位とは、データを格納するアドレスのスタートアドレスが変更される単位の処理を意味し、例えば動画像符号化処理であれば、輝度と色差の処理が該当する。動画像符号化処理または動画像復号処理における輝度と色差の処理はそれぞれ独立に処理され、それぞれ別のベースアドレスをもとに算出されたアドレスに対してアクセスが発生する。例えば輝度の処理を行うオペレーション#1で使用するデータは圧縮データ#1の領域に圧縮して格納され、色差の処理を行うオペレーション#2で使用するデータは圧縮データ#2の領域に圧縮して格納される。そして圧縮データ#1の領域に格納される圧縮データを読み出すための補助情報は補助情報#1の領域に格納され、圧縮データ#2の領域に格納される圧縮データを読み出すための補助情報は補助情報#2の領域に格納される。
比較例では、圧縮データと、それに対応する補助情報との関連付けは、ソフトウェアがオペレーションごとのベースアドレスと補助情報のベースアドレスを関連付けて管理する必要がある。すなわち、オペレーション#1のベースアドレス(BAA)と、オペレーション#1で使用される圧縮データ#1に対応する補助情報#1のベースアドレス(BAa)とをソフトウェアで関連付けて管理する必要がある。
<実施の形態の説明>
以下に、本実施の形態に係る半導体装置の説明を行う。
以下に、本実施の形態に係る半導体装置の説明を行う。
図3は、実施の形態1に係るアドレス空間を示す図である。縦軸はメモリ空間を意味し、メモリ空間上には圧縮データと、その圧縮データに対応する補助情報が格納される。例示として、第1の圧縮データである圧縮データ#1と圧縮データ#1に対応する第1の補助情報である補助情報#1が関連づけられて格納され、圧縮データ#2と圧縮データ#2に対応する補助情報#2が関連づけられて格納される。また各圧縮データは、演算回路の演算単位(オペレーション)ごとにまとめられて格納される。本実施の形態では更に、複数の圧縮データを含むように設定された管理単位メモリ空間108Aと、当該管理単位メモリ空間108A内に含まれ圧縮データを格納する領域である圧縮データ格納領域108Bと、当該圧縮データに対応する補助情報が格納される補助情報格納領域108Cとが設定される。管理単位メモリ空間108Aはメモリ108に割り当てられる。
圧縮データ格納領域108Bは圧縮データを格納することが可能な領域であり、複数の圧縮データが格納される。圧縮データ格納領域108BはCPUなどの演算回路によって設定され、圧縮データ格納領域108Bのスタート(始点)アドレス(STB)とエンド(終点)アドレス(ENB)は補助情報アドレス生成回路103の内部にあるレジスタ(不図示)に設定値が保存される。
補助情報格納領域108Cは補助情報を格納することが可能な領域であり、複数の補助情報が格納される。図3においては、圧縮データ#1に対応する補助情報#1と、圧縮データ#2に対応する補助情報#2とが格納される。補助情報アドレス生成回路103内部にあるレジスタ(不図示)には、管理単位メモリ空間が設定されるメモリ上の場所を示すアドレスと当該管理単位メモリ空間に格納されている圧縮データに対応する補助情報を格納する補助情報格納領域108Cのスタートアドレス(STC)との対応関係が設定されている。つまり、いずれの管理単位メモリ空間に圧縮データが格納されているかを判定すれば、レジスタの値から当該圧縮データの対応する補助情報が格納されている補助情報格納領域108Cのアドレスを算出することができる。なお、補助情報格納領域108Cは必ずしも対応する圧縮データ格納領域108Bが存在する管理単位メモリ空間内部に存在する必要はなく、当該管理単位メモリ空間外に存在してもよい。
管理単位メモリ空間108Aは、圧縮データと補助情報の関連付けを行うために設定される領域であり、圧縮データ格納領域108Bを包含するよう設定される。管理単位メモリ空間108Aはメモリ上に複数設定されてもよいし、1つのみ設定することも可能である。管理単位メモリ空間108Aは、一例として、メモリアドレスの上位数ビットの値によって設定される。例えばメモリアドレスが40ビットで設定され、管理単位メモリ空間108Aがメモリアドレスの上位8ビットで設定される場合、各管理単位メモリ空間は32ビット4ギガバイトの空間であり、最大256個存在することとなる。管理単位メモリ空間判定回路102は、演算回路101から発行される圧縮データへのアクセスのアドレスを受け取り、アドレスの上位数ビットをデコードして、当該圧縮データがいずれの管理単位メモリ空間上に格納されているかを判定する。また、上位ビットの値で設定する方法のみならず、別途スタートアドレスとエンドアドレスを設定して管理単位メモリ空間を設定するようにしても良い。その他、内部に複数の圧縮データを含むよう設定されていれば、管理単位メモリ空間を設定する方法はこれらに限定されない。
<動作の説明>
図5A、5B、及び図6A、6Bは演算回路がそれぞれリードリクエスト、ライトリクエストを発行した時の動作フローを説明した図である。本フローと合わせて実施の形態1に係る半導体装置の動作を説明する。
図5A、5B、及び図6A、6Bは演算回路がそれぞれリードリクエスト、ライトリクエストを発行した時の動作フローを説明した図である。本フローと合わせて実施の形態1に係る半導体装置の動作を説明する。
図5A、5Bは、演算回路から圧縮データに対してリードリクエストが発行された時の動作を示す図である。演算回路101がメモリ108に対してリードリクエスト(リードトランザクション)を発行すると(ステップS1)、リードリクエストを受けた管理単位メモリ空間判定回路102は、リード先のアドレスがいずれの管理単位メモリ空間に存在するかをアドレス上位ビット(例えば、ビット32〜39)で判定する(ステップS2)。リード先アドレスが含まれる管理単位メモリ空間を判定した後、補助情報アドレス生成回路103は、当該リード先アドレスが圧縮データ格納領域108B内へのアクセスであるかを判定する(ステップS3)。リード先アドレスがメモリ108の圧縮データ格納領域108B内へのアクセスである場合、補助情報アドレス生成回路103は、管理単位メモリ空間判定回路102の判定結果から、圧縮データに対応する補助情報格納領域108Cのスタートアドレス(STC)を導き出し、当該スタートアドレス(STC)とリード先アドレス(例えば、ビット8〜31)とを用いて、補助情報アドレスを生成する(ステップS4)。なお、ステップS3とステップS4を逆にして、データが圧縮データであるかに関わらず補助情報アドレスを生成した後に、アクセス先が圧縮データであるかを判定して、補助情報アドレスを利用するか否かを決定することも可能である。
以下、補助情報アドレスを生成する動作について説明する。
説明を図3に戻す。図3に示すように、管理単位メモリ空間108Aは圧縮データ格納領域108Bを包含するように設定されている。また補助情報格納領域108Cに関しても、複数の補助情報が包含されるように設定される。
図4は、管理単位メモリ空間108Aと補助情報格納領域108Cの対応関係を示す図である。図4を参照し、圧縮データ#1を読み出す例を述べる。
まず第1に、補助情報アドレス生成回路103は、管理単位メモリ空間判定回路102の判定結果から、アクセスする圧縮データが存在する管理単位メモリ空間108Aのスタートアドレス(STA)を取得する。そして、管理単位メモリ空間108Aのスタートアドレス(STA)をベースとして、ベースのアドレスと圧縮データ#1のアドレス(STB1)との差分値(図4のDaの距離)を算出する。
今、補助情報のサイズは元の圧縮データのサイズよりも1/M(Mは定数で、圧縮データと補助情報のデータサイズ比)倍であることを想定している。そのため、圧縮データが格納される領域は補助情報が格納される領域よりも1/M倍の大きさである。また、本実施の形態では、複数の圧縮データが格納される順番と、複数の対応する補助情報が格納される順番は等しくなるよう保存される。従って、管理単位メモリ空間108A内に含まれるN番目の圧縮データは、補助情報格納領域108Cの中に含まれるN番目の補助情報に対応することとなる。そのため、管理単位メモリ空間のスタートアドレス(STA)と圧縮データ#1のアドレスとの差分値(図4のDaの距離)と、補助情報格納領域108Cのスタートアドレス(STC)とを用いて補助情報#1のアドレス(第1の補助情報アドレス)を算出することができる。補助情報は圧縮データのサイズの1/M倍の大きさであるから、ベースのアドレスと圧縮データ#1のアドレスとの差分値であるDaの距離が求まれば、その値を1/M倍したものが補助情報格納領域108Cのスタートアドレス(STC)と補助情報#1のアドレスの差分値(図4のDbの距離)となるためである。すなわち、管理単位メモリ空間108Aのスタートアドレス(STA)と圧縮データ#1のアドレスとの差分値を1/M倍したものを、補助情報格納領域108Cのスタートアドレス(STC)に加算することで、補助情報#1のアドレスを算出することができる。このとき、管理単位メモリ空間内108Aにおける圧縮データの相対的格納位置と、補助情報格納領域108C内における当該圧縮データに対応する補助情報の相対的格納位置とが一致するように、圧縮データと補助情報が格納されることとなる。
以上のように、管理単位メモリ空間のスタートアドレス(STA)をベースとして、ベースのアドレスと圧縮データ#1のアドレスとの差分値の計算を行い、当該差分値を整数倍で縮小した値を補助情報格納領域108Cのスタートアドレス(STC)に加算した値が、補助情報#1のアドレス値となる。そしてこのとき、管理単位メモリ空間単位内部で見たときの圧縮データの相対格納位置と、補助情報格納領域単位内部で見たときの圧縮データに対応する補助情報の相対格納位置は同じになる。つまり、換言すれば、管理単位メモリ空間のデータサイズを1/M倍に縮小し、管理格納される圧縮データを、当該圧縮データに対応する補助情報に置き換えたものが補助情報格納領域ということもできる。
以上のようにして、圧縮データのリード先アドレスから、補助情報のアドレスを算出することが可能となる。つまり、圧縮データと補助情報は、管理単位メモリ空間が設定されるメモリ上の場所を示すアドレスと、補助情報格納領域のスタートアドレスと、圧縮データへのリード先アドレスのみを用いて関連付けすることができる。そのため、ページングなどの制御をする必要がなく、ソフトウェアの処理量を削減し、処理時間を削減することが可能となる。
説明を図5Aに戻す。以上のように補助情報アドレスを生成した後(ステップS4)、補助情報アドレス生成回路103は、生成した補助情報アドレスに対応する補助情報が補助情報キャッシュ104に存在するか確認する(ステップS5)。対応する補助情報が補助情報キャッシュ104内に存在している場合(ステップS5でYESの場合)、図5Bに示すように、補助情報キャッシュ104から当該補助情報を読み出し(ステップS6)、当該補助情報を用いてコマンド変換/データ圧縮回路105にてリードリクエストの内容を変換し(ステップS7)、当該リードリクエストをメモリコントローラ106に発行する(ステップS8)。また、補助情報キャッシュ104に、生成した補助情報アドレスに対応する補助情報が含まれていない場合は(ステップS5でNOの場合)、当該補助情報アドレスを使用して補助情報をメモリ108から例えば128バイト読み出したのち、補助情報キャッシュ104に格納する(ステップS9)。
またステップS3において、リード先アドレスが圧縮データ領域外へのリードリクエストである場合(ステップS3でNOの場合)、補助情報アドレス生成回路103は補助情報を生成することなく、演算回路101から発行されたリードリクエストは変換されないままメモリコントローラ106に出力される。
なお、補助情報キャッシュ104が存在しない場合は、補助情報アドレス生成回路103が補助情報アドレスを生成後(ステップS4)、補助情報キャッシュ104へアクセスすることなくメモリ108から補助情報を読み出し、読み出した補助情報を用いてコマンドを変換する(ステップS7)。
図6A、6Bは、演算回路からメモリに対してライトリクエストが発行された時の動作を示す図である。ステップS11からS14まではリードリクエストのステップS1からS4と同様であるため説明を省略する。
ステップS13において、ライトリクエストが圧縮データ格納領域108Bへのライトである場合(ステップS13でYESの場合)、ステップS14で補助情報アドレスを生成した後、データを圧縮し、当該データに対応する補助情報を生成する(ステップS15)。生成された補助情報は補助情報キャッシュ104に格納された後メモリ108に格納されるが、一回のメモリアクセスでより多くの補助情報をメモリ108へ格納するために、一回でメモリ108へ転送できる最大サイズ分(例えば、64バイト)の補助情報を補助情報キャッシュ104に格納してから、メモリ108にまとめて書き出しを行う。そのため、補助情報を生成した後、補助情報キャッシュ104に補助情報を書き込む空きがない場合(ステップS16でNOの場合)、つまり補助情報がメモリ108で転送できる最大サイズ分既に格納されていた場合、図6Bに示すように、既に格納されていた分の補助情報をメモリ108に書き込み(ステップS19)、補助情報キャッシュ104の空いたスペースに新たに生成した補助情報を書き込む(ステップS17)。そして補助情報を補助情報キャッシュ104に格納した後、圧縮データをメモリ108に書き込む(ステップS18)。一方、補助情報キャッシュ104に補助情報を書き込む空きがある場合(ステップS16でYESの場合)、補助情報を補助情報キャッシュ104に書き込み(ステップS17)、転送できる最大サイズ分補助情報が格納されるまでメモリ108への転送を待つ。
補助情報がメモリ108に書き込まれるときに生成される補助情報アドレスは、補助情報を読み出すときと同様に、管理単位メモリ空間が設定されるメモリ上の場所を示すアドレスと、補助情報格納領域108Cのスタートアドレス(STC)とから生成される。
以上のように、実施の形態1では、圧縮データ格納領域108Bを包含する管理単位メモリ空間108Aと、補助情報を包含する補助情報格納領域108Cとを設定し、管理単位メモリ空間108Aが設定されるメモリ上の場所を示すアドレスと、補助情報格納領域108Cのスタートアドレス(STC)と圧縮データの格納アドレスとから補助情報アドレスを算出する。これにより、圧縮データと補助情報の対応づけに必要な処理を軽量化し、ソフトウェアの処理量や計算に必要な処理時間を削減することができる。
(実施の形態2)
図8は、実施の形態2に係る半導体システムの構成を示す図である。図8に示す半導体システム20は半導体装置200およびメモリ208により構成される。半導体装置200は、第一演算回路201_1、第二演算回路201_2、・・・、第N演算回路201_Nと、第一補助情報管理/データ圧縮回路211_1、第二補助情報管理/データ圧縮回路211_2、・・・、第N補助情報管理/データ圧縮回路211_Nと、バス209と、伸長回路207を有するメモリコントローラ206と、を備える。バス209は補助情報アクセス判定回路210とバス優先度制御回路212とを備える。実施の形態1と比較して、バス209に、補助情報アクセス判定回路210とバス優先度制御回路212とを新たに備えたことが異なる。補助情報アクセス判定回路210は、第一演算回路201_1、第二演算回路201_2、・・・、第N演算回路201_Nからアクセスアドレスを受け取り、アクセス先が補助情報のアドレスであるか否かを判定する。バス優先度制御回路212は、補助情報アクセス判定回路210が補助情報のアクセスであると判定した場合に、当該アクセスの優先度を上げる調停を行う。
図8は、実施の形態2に係る半導体システムの構成を示す図である。図8に示す半導体システム20は半導体装置200およびメモリ208により構成される。半導体装置200は、第一演算回路201_1、第二演算回路201_2、・・・、第N演算回路201_Nと、第一補助情報管理/データ圧縮回路211_1、第二補助情報管理/データ圧縮回路211_2、・・・、第N補助情報管理/データ圧縮回路211_Nと、バス209と、伸長回路207を有するメモリコントローラ206と、を備える。バス209は補助情報アクセス判定回路210とバス優先度制御回路212とを備える。実施の形態1と比較して、バス209に、補助情報アクセス判定回路210とバス優先度制御回路212とを新たに備えたことが異なる。補助情報アクセス判定回路210は、第一演算回路201_1、第二演算回路201_2、・・・、第N演算回路201_Nからアクセスアドレスを受け取り、アクセス先が補助情報のアドレスであるか否かを判定する。バス優先度制御回路212は、補助情報アクセス判定回路210が補助情報のアクセスであると判定した場合に、当該アクセスの優先度を上げる調停を行う。
第一補助情報管理/データ圧縮回路211_1〜第N補助情報管理/データ圧縮回路211_Nのそれぞれは、管理単位メモリ空間判定回路202と補助情報アドレス生成回路203と補助情報キャッシュ204とコマンド変換/データ圧縮回路205とを備える。以下、第一補助情報管理/データ圧縮回路211_1について説明するが、第二補助情報管理/データ圧縮回路211_2、・・・、第N補助情報管理/データ圧縮回路211_Nについても同様である。
管理単位メモリ空間判定回路202は、例えばアドレスの上位ビットを用いてアクセス先の管理単位メモリ空間を判定し、判定結果を補助情報アドレス生成回路203に出力する。
補助情報アドレス生成回路203は、管理単位メモリ空間判定回路202からの判定結果から、アクセス先の圧縮データに対応する補助情報が格納されている補助情報格納領域108Cのスタートアドレス(STC)を算出し、補助情報アドレスを生成する。そして、当該生成した補助情報アドレスを補助情報キャッシュ204に出力する。
補助情報キャッシュ204は、アクセスがリードアクセスである場合、補助情報アドレス生成回路203から出力された補助情報アドレスに格納される補助情報が、補助情報キャッシュ204内部に格納されているか確認する。対応する補助情報が存在すれば、当該補助情報をコマンド変換/データ圧縮回路205に出力して圧縮データを読み出し、存在しない場合はメモリ208から補助情報を読み出す。この際、補助情報へのリードリクエスト発行はリードコマンド変換/データ圧縮回路205が行う。また、アクセスがライトアクセスである場合は、コマンド変換/データ圧縮回路205は圧縮データをメモリ208に書き込み、かつ、圧縮時に生成された補助情報を補助情報キャッシュ204に書き込む。補助情報キャッシュ204に書き込まれた補助情報は、補助情報アドレス生成回路203によって生成された補助情報アドレスと共に関連付けられて管理される。
コマンド変換/データ圧縮回路205は、コマンドの変換とデータの圧縮処理を行う。第一演算回路201_1は、データをコマンド変換/データ圧縮回路205に出力する。コマンド変換/データ圧縮回路205は、第一演算回路201_1が出力したデータを圧縮し、その圧縮後のデータ長を補助情報として補助情報キャッシュ204に出力する。また、コマンド変換/データ圧縮回路205は、補助情報である圧縮データ長をもとにリードリクエストを、圧縮後のデータ長だけ読み出すように内容を変換する。
補助情報アクセス判定回路210は、第一演算回路201_1〜第N演算回路201_Nからアクセスアドレスを受け取り、補助情報へのアクセスであるか否かを判定する。
バス優先度制御回路212は、補助情報アクセス判定回路210からの判定結果が補助情報のアクセスであると判定された場合に、アクセスの優先度を上げる調停を行う。
実施の形態1で述べたように、圧縮データを読み出す際に補助情報が補助情報キャッシュ204内に存在しないとき、メモリ208から補助情報を読み出し、読み出した補助情報を用いて圧縮データを読み出すためのリードリクエストを生成する必要がある。そのため、補助情報を読み出しに遅延が生じた場合、コマンド変換/データ圧縮回路205による圧縮データのリードリクエスト発行も同様に遅延し、リードレイテンシが増大してしまう。
本実施の形態に係る構成では、補助情報アクセス判定回路210は、第一演算回路201_1〜第N演算回路201_Nからのアクセスアドレスが補助情報のアドレスであるか否かを判定し、アクセス先が補助情報のアドレスである際には、バス優先度制御回路212が補助情報を優先してメモリ208から読み出すようアクセスの優先度を上げる調停を行う。
以上のように補助情報のアクセスに高い優先順位を割り当てることで、補助情報のリードレイテンシを短くすることが可能となり、コマンド変換/データ圧縮回路205は少ない遅延で圧縮データのリードコマンドの発行をすることができる。そのため、圧縮データを読み出すためのリードレイテンシを削減することができる。
(実施の形態3)
図9は、実施の形態3に係る半導体システムの構成を示す図である。図9に示す半導体システム30は半導体装置300とメモリ308とにより構成されている。半導体装置300は、第一演算回路301_1、第二演算回路301_2、・・・、第N演算回路301_Nと、第一補助情報管理/データ圧縮回路311_1、第二補助情報管理/データ圧縮回路311_2、・・・、第N補助情報管理/データ圧縮回路311_Nと、バス優先度制御回路312を有するバス309と、伸長回路307を有するメモリコントローラ306と、を備える。実施の形態1及び実施の形態2では、補助情報キャッシュ204は第一補助情報管理/データ圧縮回路211_1〜第N補助情報管理/データ圧縮回路211_Nにそれぞれ1つ設けられていた。一方、本実施の形態では、補助情報キャッシュ304は第一補助情報管理/データ圧縮回路311_1〜第N補助情報管理/データ圧縮回路311_Nの外に1つのみ設けられ、第一補助情報管理/データ圧縮回路311_1〜第N補助情報管理/データ圧縮回路311_Nが1つの補助情報キャッシュ304を共有する点が実施の形態1及び実施の形態2と相違する。補助情報キャッシュ304は、複数の演算回路におけるリードアクセス時の補助情報の制御を一元管理している。
図9は、実施の形態3に係る半導体システムの構成を示す図である。図9に示す半導体システム30は半導体装置300とメモリ308とにより構成されている。半導体装置300は、第一演算回路301_1、第二演算回路301_2、・・・、第N演算回路301_Nと、第一補助情報管理/データ圧縮回路311_1、第二補助情報管理/データ圧縮回路311_2、・・・、第N補助情報管理/データ圧縮回路311_Nと、バス優先度制御回路312を有するバス309と、伸長回路307を有するメモリコントローラ306と、を備える。実施の形態1及び実施の形態2では、補助情報キャッシュ204は第一補助情報管理/データ圧縮回路211_1〜第N補助情報管理/データ圧縮回路211_Nにそれぞれ1つ設けられていた。一方、本実施の形態では、補助情報キャッシュ304は第一補助情報管理/データ圧縮回路311_1〜第N補助情報管理/データ圧縮回路311_Nの外に1つのみ設けられ、第一補助情報管理/データ圧縮回路311_1〜第N補助情報管理/データ圧縮回路311_Nが1つの補助情報キャッシュ304を共有する点が実施の形態1及び実施の形態2と相違する。補助情報キャッシュ304は、複数の演算回路におけるリードアクセス時の補助情報の制御を一元管理している。
第一補助情報管理/データ圧縮回路311_1〜第N補助情報管理/データ圧縮回路311_Nのそれぞれは、管理単位メモリ空間判定回路302と補助情報アドレス生成回路303とコマンド変換/データ圧縮回路305とを備える。以下、第一補助情報管理/データ圧縮回路311_1について説明するが、第二補助情報管理/データ圧縮回路311_2、・・・、第N補助情報管理/データ圧縮回路311_Nについても同様である。
管理単位メモリ空間判定回路302は、例えばアドレスの上位ビットを用いてアクセス先の管理単位メモリ空間108Aを判定し、判定結果を補助情報アドレス生成回路303に出力する。
補助情報アドレス生成回路303は、管理単位メモリ空間判定回路302からの判定結果とアクセスアドレスから補助情報アドレスを生成し、リードアクセスの場合は補助情報キャッシュ304に、補助情報のリードリクエストを出力する。ライトアクセスの場合はコマンド変換/データ圧縮回路305に圧縮データへのアクセスアドレスと補助情報アドレスを出力する。
補助情報キャッシュ304は、リードアクセス時において、第一補助情報管理/データ圧縮回路311_1、第二補助情報管理/データ圧縮回路311_2、・・・、第N補助情報管理/データ圧縮回路311_Nが生成する全ての補助情報の管理を行う。補助情報アドレス生成回路303は補助情報キャッシュ304に補助情報アドレスを出力し、補助情報キャッシュ304内に当該補助情報アドレスに対応する補助情報があるか確認する。対応する補助情報が存在する場合、当該補助情報をコマンド変換/データ圧縮回路305に出力し、存在しない場合はバス309を経由して、メモリ308から補助情報をリードする。
コマンド変換/データ圧縮回路305は、コマンドの変換、データ圧縮処理およびライトアクセス時の補助情報の管理を行う。第一演算回路301_1は、データをコマンド変換/データ圧縮回路305に出力する。コマンド変換/データ圧縮回路305はメモリ308に対してライトリクエストを発行し、第一演算回路301_1が出力したデータを圧縮してメモリ308に格納する。また、補助情報アドレス生成回路303から出力された補助情報アドレスに、データを圧縮することによって得た補助情報を格納する。
また、コマンド変換/データ圧縮回路305は、補助情報である圧縮データ長をもとにコマンドのアクセス長を変換する。コマンド変換/データ圧縮回路305は、圧縮データと補助情報を、バス309を経由してメモリ308に格納する。
演算回路がリードリクエストを発行するためにはリードする圧縮データに対応する補助情報が必要なため、補助情報のリードアクセスは低レイテンシが要求される。レイテンシが大きい場合、リクエストの発行が遅れ、その遅れがリードデータのレイテンシにそのまま影響する。そのため、バス優先度制御回路312は第一補助情報管理/データ圧縮回路311_1〜第N補助情報管理/データ圧縮回路311_N及び補助情報キャッシュ304からのアクセスを受け取り、補助情報キャッシュ304からの補助情報のアクセスの優先度を上げて調停を行う。このように、補助情報アクセスのバスマスタを個別にすることで、バス調停におけるアクセス判定処理を削減でき、容易に優先度の制御をすることができる。
以上、本発明者らによってなされた発明を実施形態に基づき具体的に説明したが、本発明は、上記実施形態に限定されるものではなく、種々変更可能であることはいうまでもない。
10・・・半導体システム
100・・・半導体装置
101・・・演算回路
102・・・管理単位メモリ空間判定回路
103・・・補助情報アドレス生成回路
104・・・補助情報キャッシュ
105・・・コマンド変換/データ圧縮回路
106・・・メモリコントローラ
107・・・伸長回路
108・・・メモリ
108A・・・管理単位メモリ空間
108B・・・圧縮データ格納領域
108C・・・補助情報格納領域
109・・・バス
111・・・補助情報管理/データ圧縮回路
100・・・半導体装置
101・・・演算回路
102・・・管理単位メモリ空間判定回路
103・・・補助情報アドレス生成回路
104・・・補助情報キャッシュ
105・・・コマンド変換/データ圧縮回路
106・・・メモリコントローラ
107・・・伸長回路
108・・・メモリ
108A・・・管理単位メモリ空間
108B・・・圧縮データ格納領域
108C・・・補助情報格納領域
109・・・バス
111・・・補助情報管理/データ圧縮回路
Claims (20)
- 圧縮データと、前記圧縮データにアクセスするために必要な補助情報とにアクセスを行う演算回路と、
管理単位メモリ空間判定回路と、
前記補助情報のアドレスを算出する補助情報アドレス生成回路とを有し、
前記圧縮データ及び前記補助情報が格納されるメモリ空間上には、前記圧縮データを複数含む管理単位メモリ空間と、複数の前記圧縮データにアクセスするために必要な補助情報を複数含む補助情報格納領域とが少なくとも一つずつ設定され、
前記管理単位メモリ空間判定回路は、前記演算回路から複数の前記圧縮データの一つである第1の圧縮データへのアクセスアドレスを受け取り、前記アクセスアドレスがいずれの前記管理単位メモリ空間に格納されるかを判定し、
前記補助情報アドレス生成回路は、前記管理単位メモリ空間判定回路の判定結果と、前記第1の圧縮データへのアクセスアドレスとから、前記第1の圧縮データに対応する第1の補助情報が格納されるアドレスである第1の補助情報アドレスを生成し、
前記演算回路は前記生成した前記第1の補助情報アドレスを用いて前記第1の圧縮データへのアクセスを行う
半導体装置。 - 前記補助情報アドレス生成回路には、前記管理単位メモリ空間と、前記補助情報格納領域の対応関係を示す対応情報の組が少なくとも一つ設定され、
前記補助情報アドレス生成回路は、前記管理単位メモリ空間判定回路の判定結果から前記第1の補助情報が格納される補助情報格納領域を判定し、前記補助情報格納領域の判定と前記アクセスアドレスとを用いて前記第1の補助情報アドレスを生成する
請求項1記載の半導体装置。 - 前記対応情報の組は、前記管理単位メモリ空間のアドレスを示す情報と、前記補助情報格納領域のアドレスを示す情報との組である
請求項2記載の半導体装置。 - 前記管理単位メモリ空間のアドレスは、アドレスの上位数ビットを用いて表される
請求項3記載の半導体装置。 - 前記補助情報格納領域のアドレスは、前記補助情報格納領域の始点アドレスである
請求項3記載の半導体装置。 - 前記管理単位メモリ空間には、複数の前記圧縮データが格納される領域である圧縮データ格納領域が設定され、前記アクセスアドレスが前記圧縮データ格納領域へのアクセスであるときに、補助情報アドレスが生成される
請求項1から5のいずれか1項に記載の半導体装置。 - 前記管理単位メモリ空間内における複数の前記圧縮データの格納位置と、前記補助情報格納領域内における複数の前記圧縮データの各々に対応する複数の前記補助情報の格納位置とが、相対的に一致する
請求項1から5のいずれか1項に記載の半導体装置。 - 前記補助情報は、圧縮データのデータサイズの情報である
請求項1から5のいずれか1項に記載の半導体装置。 - コマンド変換/データ圧縮回路を更に有し、
前記コマンド変換/データ圧縮回路は前記演算回路から発行されたリクエストが前記第1の圧縮データへのリードリクエストである場合、前記第1の補助情報を読み出し、前記第1の補助情報を用いて前記リードリクエストの内容を変換する
請求項1から5のいずれか1項に記載の半導体装置。 - 前記演算回路から発行されたリクエストが圧縮データのライトリクエストである場合、前記コマンド変換/データ圧縮回路は、前記演算回路より出力されたデータを圧縮し、圧縮後のデータサイズを補助情報として生成し、前記生成した補助情報を用いて前記ライトリクエストの内容を変換する
請求項9記載の半導体装置。 - 補助情報キャッシュを更に有し、
前記補助情報キャッシュは、前記コマンド変換/データ圧縮回路が生成した補助情報を前記補助情報アドレス生成回路で生成される補助情報アドレスと関連付けて格納する
請求項9記載の半導体装置。 - 前記演算回路が複数設けられ、
複数の前記演算回路が出力するデータの圧縮または前記圧縮されたデータの補助情報を生成するコマンド変換/データ圧縮回路が、複数の前記演算回路に対してそれぞれ設けられ、
複数の前記コマンド変換/データ圧縮回路と、メモリとの間に補助情報アクセス判定回路とバス優先度制御回路とを含むバスが設けられ、
前記補助情報アクセス判定回路は、複数の前記コマンド変換/データ圧縮回路から発行されたアクセスが前記メモリに格納された補助情報へのアクセスか否かを判定し、
前記バス優先度制御回路は、前記補助情報アクセス判定回路が前記補助情報へのアクセスであると判定したとき、前記補助情報へのアクセスの優先度を上げて前記バスを制御する
請求項1から5のいずれか1項に記載の半導体装置。 - 前記演算回路が複数設けられ、
複数の前記演算回路が出力するデータの圧縮または前記圧縮されたデータの補助情報を生成するコマンド変換/データ圧縮回路が、複数の前記演算回路に対してそれぞれ設けられ、
複数の前記コマンド変換/データ圧縮回路によって生成されメモリに格納されている前記補助情報を前記メモリから読み出して格納する補助情報キャッシュが設けられ、
前記複数のコマンド変換/データ圧縮回路及び前記補助情報キャッシュと、前記メモリとの間にバス優先度制御回路を含むバスが設けられ、
前記バス優先度制御回路は、前記補助情報キャッシュからのアクセスの優先度を上げて前記バスを制御する
請求項1から5のいずれか1項に記載の半導体装置。 - 複数の前記コマンド変換/データ圧縮回路は、前記補助情報キャッシュより補助情報を受け取り、前記メモリに対してリードリクエストを発行する
請求項13記載の半導体装置。 - 前記管理単位メモリ空間は当該半導体装置の外部のメモリに割り当てられる
請求項1記載の半導体装置。 - メモリ上に、圧縮データを複数含む管理単位メモリ空間と、前記圧縮データを読み出しするために必要な補助情報を複数含む補助情報格納領域とをそれぞれ複数設定し、
複数の前記圧縮データの一つであり、アクセスされる第1の圧縮データが、いずれの管理単位メモリ空間に含まれるかを判定し、
前記管理単位メモリ空間の判定結果から、前記管理単位メモリ空間に格納される圧縮データの補助情報が格納される補助情報格納領域を判定し、
前記補助情報格納領域の判定の結果と、前記第1の圧縮データの格納アドレスとから、前記第1の圧縮データに対応する第1の補助情報が格納されるアドレスである補助情報アドレスを算出する
メモリアクセス方法。 - 前記補助情報アドレスは、前記補助情報格納領域の始点アドレスと、前記第1の圧縮データの格納アドレスとから算出される
請求項16記載のメモリアクセス方法。 - 前記第1の圧縮データを格納する管理単位メモリ空間のアドレスと、前記第1の補助情報を格納する補助情報格納領域の始点アドレスとは、対応づけられて管理される
請求項17記載のメモリアクセス方法。 - 前記管理単位メモリ空間内における複数の前記圧縮データの格納位置と、前記補助情報格納領域内における複数の前記圧縮データの各々に対応する複数の前記補助情報の格納位置とが、相対的に一致する
請求項16から18のいずれか1項に記載のメモリアクセス方法。 - 前記補助情報は圧縮後のデータサイズ情報である
請求項16から18のいずれか1項に記載のメモリアクセス方法。
Priority Applications (5)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2017187998A JP2019061631A (ja) | 2017-09-28 | 2017-09-28 | 半導体装置、及びメモリアクセス方法 |
US16/057,713 US10719440B2 (en) | 2017-09-28 | 2018-08-07 | Semiconductor device and memory access method |
EP18193010.8A EP3462322B1 (en) | 2017-09-28 | 2018-09-06 | Semiconductor device and memory access method |
TW107131244A TW201923590A (zh) | 2017-09-28 | 2018-09-06 | 半導體裝置及記憶體存取方法 |
CN201811124361.1A CN109582589B (zh) | 2017-09-28 | 2018-09-26 | 半导体设备及存储器访问方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2017187998A JP2019061631A (ja) | 2017-09-28 | 2017-09-28 | 半導体装置、及びメモリアクセス方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2019061631A true JP2019061631A (ja) | 2019-04-18 |
Family
ID=63524195
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2017187998A Pending JP2019061631A (ja) | 2017-09-28 | 2017-09-28 | 半導体装置、及びメモリアクセス方法 |
Country Status (5)
Country | Link |
---|---|
US (1) | US10719440B2 (ja) |
EP (1) | EP3462322B1 (ja) |
JP (1) | JP2019061631A (ja) |
CN (1) | CN109582589B (ja) |
TW (1) | TW201923590A (ja) |
Family Cites Families (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP3037144B2 (ja) | 1996-07-09 | 2000-04-24 | 神戸日本電気ソフトウェア株式会社 | データ圧縮記憶演算装置 |
US8700865B1 (en) | 2006-11-02 | 2014-04-15 | Nvidia Corporation | Compressed data access system and method |
US8392667B2 (en) | 2008-12-12 | 2013-03-05 | Nvidia Corporation | Deadlock avoidance by marking CPU traffic as special |
US10572378B2 (en) | 2014-03-20 | 2020-02-25 | Hewlett Packard Enterprise Development Lp | Dynamic memory expansion by data compression |
JP6679290B2 (ja) * | 2015-11-30 | 2020-04-15 | ルネサスエレクトロニクス株式会社 | 半導体装置 |
JP6605323B2 (ja) * | 2015-12-24 | 2019-11-13 | ルネサスエレクトロニクス株式会社 | 半導体装置、データ処理システム及び半導体装置の制御方法 |
-
2017
- 2017-09-28 JP JP2017187998A patent/JP2019061631A/ja active Pending
-
2018
- 2018-08-07 US US16/057,713 patent/US10719440B2/en active Active
- 2018-09-06 TW TW107131244A patent/TW201923590A/zh unknown
- 2018-09-06 EP EP18193010.8A patent/EP3462322B1/en active Active
- 2018-09-26 CN CN201811124361.1A patent/CN109582589B/zh active Active
Also Published As
Publication number | Publication date |
---|---|
TW201923590A (zh) | 2019-06-16 |
EP3462322A1 (en) | 2019-04-03 |
CN109582589A (zh) | 2019-04-05 |
US20190095324A1 (en) | 2019-03-28 |
CN109582589B (zh) | 2023-12-15 |
EP3462322B1 (en) | 2021-11-03 |
US10719440B2 (en) | 2020-07-21 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US7707328B2 (en) | Memory access control circuit | |
JP6768928B2 (ja) | アドレスを圧縮するための方法及び装置 | |
JP6945544B2 (ja) | プロセッサベースシステムにおけるメモリ内の圧縮メモリラインの優先度ベースのアクセス | |
US20060028880A1 (en) | Memory control device | |
JP2014170360A (ja) | 計算機及びメモリ管理方法 | |
US20230325333A1 (en) | Routing network using global address map with adaptive main memory expansion for a plurality of home agents | |
TW201737095A (zh) | 在以一中央處理單元(cpu)為基礎之系統中使用多個最後階層快取線提供記憶體帶寬壓縮 | |
US20050253858A1 (en) | Memory control system and method in which prefetch buffers are assigned uniquely to multiple burst streams | |
US20190258543A1 (en) | Memory device, semiconductor device, and semiconductor system | |
KR101086417B1 (ko) | 다이내믹 랜덤 액세스 메모리의 부분 액세스 장치 및 방법 | |
JP6159478B2 (ja) | データ書き込み方法及びメモリシステム | |
JP4855864B2 (ja) | ダイレクトメモリアクセスコントローラ | |
JP2001282704A (ja) | データ処理装置及びデータ処理方法とデータ処理システム | |
KR100463205B1 (ko) | 시퀀셜 버퍼를 내장하여 디에스피의 데이터 억세스 성능을향상시키는 컴퓨터 시스템 및 그 컴퓨터 시스템의 데이터억세스 방법 | |
JP2019061631A (ja) | 半導体装置、及びメモリアクセス方法 | |
JP2007164415A (ja) | データ転送制御装置 | |
US11687261B2 (en) | Semiconductor device and a method for controlling accessing data | |
JPWO2014002222A1 (ja) | リードリクエスト処理装置 | |
JP4431492B2 (ja) | 複数のコヒーレンシー・グラニュールをサポートするデータ転送ユニット | |
JP2001134496A (ja) | 不揮発性半導体メモリを用いた記憶装置 | |
JP2007310927A (ja) | 不揮発性メモリ、メモリコントローラ、不揮発性記憶装置、及び不揮発性記憶システム | |
JP2019200592A (ja) | メモリ制御回路、出力回路、メモリ制御回路の制御方法および出力回路の制御方法 | |
JP2008193146A (ja) | 復号回路 | |
JP3076199B2 (ja) | バッファアクセス制御回路 | |
CN113961487A (zh) | 加速存储器存取的电子装置及方法 |