JP2020102102A - 半導体装置、および、データのアクセスを制御するための方法 - Google Patents

半導体装置、および、データのアクセスを制御するための方法 Download PDF

Info

Publication number
JP2020102102A
JP2020102102A JP2018241052A JP2018241052A JP2020102102A JP 2020102102 A JP2020102102 A JP 2020102102A JP 2018241052 A JP2018241052 A JP 2018241052A JP 2018241052 A JP2018241052 A JP 2018241052A JP 2020102102 A JP2020102102 A JP 2020102102A
Authority
JP
Japan
Prior art keywords
compression
data
module
memory
address space
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.)
Granted
Application number
JP2018241052A
Other languages
English (en)
Other versions
JP7142562B2 (ja
Inventor
勝重 松原
Katsushige Matsubara
勝重 松原
誠二 望月
Seiji Mochizuki
誠二 望月
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.)
Renesas Electronics Corp
Original Assignee
Renesas Electronics Corp
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 Renesas Electronics Corp filed Critical Renesas Electronics Corp
Priority to JP2018241052A priority Critical patent/JP7142562B2/ja
Priority to US16/683,934 priority patent/US11194491B2/en
Priority to CN201911282355.3A priority patent/CN111382088B/zh
Publication of JP2020102102A publication Critical patent/JP2020102102A/ja
Priority to US17/517,929 priority patent/US11687261B2/en
Application granted granted Critical
Publication of JP7142562B2 publication Critical patent/JP7142562B2/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/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
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/04Addressing variable-length words or parts of words
    • 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/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0638Organizing or formatting or addressing of data
    • 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/0656Data buffering arrangements
    • 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/0673Single storage device
    • G06F3/0679Non-volatile semiconductor memory device, e.g. flash memory, one time programmable memory [OTP]
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M7/00Conversion 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/30Compression; Expansion; Suppression of unnecessary data, e.g. redundancy reduction
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M7/00Conversion 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/30Compression; Expansion; Suppression of unnecessary data, e.g. redundancy reduction
    • H03M7/60General implementation details not specific to a particular type of compression
    • H03M7/6017Methods or arrangements to increase the throughput
    • H03M7/6029Pipelining

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)
  • Memory System (AREA)

Abstract

【課題】データの一貫性が実現される半導体装置を提供する。【解決手段】半導体装置が実行する処理は、データを圧縮して圧縮データおよびその情報量を表す圧縮情報を生成するステップ(S1210)と、メモリ領域へのアクセスを制御する管理データにアクセスするステップ(S1220)と、アクセスされる領域が他の圧縮伸長モジュールに専有されていないことが当該管理データに示されていることに基づいて、所定のデータサイズ単位でメモリ領域への書き込みを許可するステップ(S1230)と、データを書き込んで管理データを更新するステップ(S1240)と、アクセスされる領域が他の圧縮伸長モジュールに専有されていないことが管理データに示されていることに基づいて、当該データサイズ単位で当該領域からの読み出しを許可するステップ(1250)と、当該領域から圧縮データおよび圧縮情報を読み出すステップ(S1260)とを含む。【選択図】図12

Description

本開示は半導体装置に関し、例示的には、半導体装置におけるデータのアクセスの排他制御に関する。
半導体装置におけるデータ処理に関し、各モジュールによる処理が高度化するにつれて要求されるメモリ帯域が増大している。これに対応するために、例えば、特開平10−27127号公報(特許文献1)は、「データを圧縮して記憶装置に格納し、演算時に伸張して使用することにより、記憶装置に占めるデータの容量を削減する」技術、および、「記憶装置と演算器の間のデータの転送量を減らしてコンピュータの処理速度を向上させる」技術を開示している。当該技術は、「演算器1と演算結果を記憶装置に書き込むためのバス制御回路4の間に、データの圧縮回路5及び伸張回路6を設け、演算結果の圧縮と記憶装置からの入力データの伸張を行なう。圧縮されたデータは、アドレス生成器2で求められた論理アドレス7をページング制御回路3で変換した物理アドレス8に格納されるとともに、ページング変換の過程において、圧縮方法の情報をページテーブルに格納する。記憶装置から圧縮されたデータを参照する際は、前記ページテーブル内の情報を元に伸張処理が行なわれ、演算器1で演算される」というものである(以上、[要約]参照)。
また、特開2017−102524号公報(特許文献2)は、「より適切に圧縮及び伸張を行うことが可能な半導体装置」を開示している。当該半導体装置は、「半導体装置100は、演算モジュール110とメモリ制御モジュール120とを備え、演算モジュール110は、演算処理を実行する演算器111と、演算処理結果のデータを圧縮する圧縮回路11と、を備え、メモリ制御モジュール120は、圧縮されたデータをメモリに書き込み、書き込まれたデータをメモリから読み出すアクセス回路121と、メモリから読み出されたデータを伸張し、伸張されたデータを演算モジュール110へ出力する伸張回路21と、を備える。」というものである(以上[要約]参照)。
特開平10−27127号公報 特開2017−102524号公報
特許文献2に開示された技術によると、データを効率よく圧縮するために、演算モジュールはバッファを備える。バッファは、圧縮で必要とされるデータ量が蓄積されるまでデータを保持する。演算モジュールが処理を終了した時点でバッファ内のデータ量が圧縮に必要な量に満たない時、終端のデータがバッファ内に留まり続ける。例えば、ある信号処理モジュールの処理結果を他の信号処理モジュールが利用する場合、当該他の信号処理モジュールは、正しい終端を有するデータを利用できなくなり、データの一貫性が実現されなくなる。
また、ロスレス圧縮方式が用いられる場合、圧縮後のデータ量が可変となることから、圧縮が必要とするデータ量単位ごとに圧縮後のデータ量を示す情報(以下「圧縮情報」ともいう。)が存在する。圧縮情報を格納するバッファも圧縮伸長を行なう処理モジュールの中に存在するので、終端のデータに対応する圧縮情報も当該バッファにとどまり続ける。
従って、ロスレス圧縮伸長が行なわれてもデータの一貫性が担保される技術が必要とされている。また、信号処理モジュールや圧縮伸長を実行するモジュールの構成を変更することなく、あるいは、各モジュール間におけるデータの入出力のタイミングを確認するための制御を組み入れることなく、データの一貫性が担保される技術が必要とされている。さらに別の局面において、信号処理モジュールの処理単位が明確でない場合の処理の場合、すなわち、バッファからデータの押し出しをするタイミングとなる処理の終端が明確でない場合においてもバッファの押し出しが可能となる技術が必要とされている。
本開示は上述のような背景に鑑みてなされたものであって、ある局面において、ロスレス圧縮処理が実行された場合でもデータの一貫性が担保される技術が開示される。
ある実施の形態に従う半導体装置は、データを圧縮または伸長するための第1の圧縮伸長モジュールと、データを圧縮または伸長するための第2の圧縮伸長モジュールと、第1の圧縮伸長モジュールによって生成された圧縮データまたは第2の圧縮伸長モジュールによって生成された圧縮データを格納するためのメモリと、定められたデータサイズ単位で、第1の圧縮伸長モジュールおよび第2の圧縮伸長モジュールによるメモリへのアクセスを排他的に制御するための管理モジュールとを備える。第1の圧縮伸長モジュールは、データを圧縮して、圧縮データと圧縮データのデータ量を示す圧縮情報とを出力するためのロスレス圧縮処理部と、圧縮データを伸長して圧縮前のデータを出力するためのロスレス伸長処理部と、アクセスを管理するためのデータに基づいて、定められたデータサイズ単位でメモリにおける圧縮データの書き込みまたは読み出しを制御するための圧縮情報管理部とを含む。圧縮情報管理部は、メモリへのライトアクセスが行なわれる場合に、ライトアクセスによりアクセスされる領域が他の圧縮伸長モジュールに専有されていないことが管理モジュールによって示されている時、定められたデータサイズ単位で領域への書き込みを許可し、メモリへのリードアクセスが行なわれる場合に、リードアクセスによりアクセスされる領域が他の圧縮伸長モジュールに専有されていないことが管理モジュールによって示されている時、定められたデータサイズ単位で領域からの読み出しを許可する。
ある局面において、ロスレス圧縮処理が実行された場合でもデータの一貫性が担保される。
その他の課題と新規な特徴は、本明細書の記述および添付図面から明らかになるであろう。
二つの信号処理モジュールがメモリ領域を共有する半導体装置100の一例を表すブロック図である。 二つの信号処理モジュールにおける一貫性を実現するために実行される制御のタイミングを表すフローチャートである。 半導体装置300のハードウェア構成を表すブロック図である。 他の局面において二つの信号処理モジュールにおける一貫性を実現するために実行される制御のタイミングを表すフローチャートである。 半導体装置300の他の制御構造を説明する図である。 半導体装置300の他の動作が実行されるタイミングを表すタイミングチャートである。 ある実施の形態に従う半導体装置700のハードウェア構成を表すブロック図である。 ある局面におけるメモリ150において格納されるデータの一例を表す図である。 第2の実施の形態に従う半導体装置900のハードウェア構成を表すブロック図である。 ある実施の形態に従う半導体装置1000のハードウェア構成を表すブロック図である。 半導体装置1100のハードウェア構成を表すブロック図である。 ある実施の形態に従う半導体装置700において実行される処理の一部を表わすフローチャートである。
以下、図面を参照しつつ、本明細書に開示される技術思想に係る実施の形態について説明する。以下の説明では、同一の部品には同一の符号を付してある。それらの名称および機能も同じである。したがって、それらについての詳細な説明は繰り返さない。
図1および図2を参照して、ある局面に従うメモリアーキテクチャについて説明する。図1は、二つの信号処理モジュールがメモリ領域を共有する半導体装置100の一例を表すブロック図である。図2は、二つの信号処理モジュールにおける一貫性を実現するために実行される制御のタイミングを表すフローチャートである。
図1に示されるように、半導体装置100は、CPU(Central Processing Unit)110と、信号処理モジュール120,130と、メモリコントローラ140と、メモリ150とを備える。CPU110と、信号処理モジュール120、130と、メモリコントローラ140とは、それぞれ、バス160に接続されている。メモリ150は、メモリコントローラ140に接続されている。メモリ150は、例えば、DDR(Double Data Rate)−SDRAM(Synchronous Dynamic Random Access Memory)であるが、これに限られない。
図2に示されるように、タイミングt(1)において、CPU110は、信号処理モジュール120に対して、処理の実行命令を送信する。その実行命令に応答して、信号処理モジュール120は、タイミングt(2)において処理の実行を開始する。信号処理モジュール120は、ある処理単位を完了し、全てのデータがメモリ150に格納されたことを確認すると、タイミングt(3)において、CPU110に処理が終了したことを終了割り込みとして通知する。その後、タイミングt(4)において、CPU110は、信号処理モジュール130に対して、処理の実行命令を送信する。その実行命令に応答して、信号処理モジュール130は、タイミングt(5)において処理の実行を開始する。信号処理モジュール130は、ある処理単位を完了し、全てのデータがメモリ150に格納されたことを確認すると、タイミングt(6)において、CPU110に処理が終了したことを終了割り込みとして通知する。
ある局面において、各信号処理モジュールが要求するメモリの帯域の合計値がメモリ150の帯域を上回る場合があり得る。そこで、データを圧縮することが考えられる。データの圧縮として、各信号処理モジュールのデータ入出力部に圧縮伸張モジュール(CDM:Compression/Decompression Module)を設けることが考えられる。データを効率よく圧縮するためには、ある程度のデータ量の単位で処理する必要があり、CDMはバッファを有する。
そこで、図3および図4を参照して、ある局面に従う半導体装置300の構成について説明する。図3は、半導体装置300のハードウェア構成を表すブロック図である。図4は、他の局面において二つの信号処理モジュールにおける一貫性を実現するために実行される制御のタイミングを表すフローチャートである。
図3に示されるように、半導体装置300は、CPU110と、信号処理モジュール120,130と、CDM320,330と、メモリコントローラ140と、メモリ150とを備える。CDM320は、バッファ321を含む。CDM330は、バッファ331を含む。CPU110と、CDM320,330と、メモリコントローラ140とは、バス160に接続されている。メモリ150は、メモリコントローラ140に接続されている。CDM320は、信号処理モジュール120に接続されている。CDM330は、信号処理モジュール130に接続されている。
図4に示されるように、タイミングt(1)において、CPU110は、信号処理モジュール120に対して、処理の実行命令を送信する。その実行命令に応答して、信号処理モジュール120は、タイミングt(2)において処理の実行を開始する。タイミングt(3)から、処理後のデータがCDM320のバッファ321に蓄積される。信号処理モジュール120は、ある処理単位を完了すると、タイミングt(4)において、バッファに蓄積されているデータを出力する指示(以下「バッファフラッシュ要求」ともいう。)をCDM320に送信する。CDM320は、バッファフラッシュ要求に応答して、バッファ321に蓄積されたデータを外部のメモリ150に出力する。タイミングt(5)において、CDM320は、バッファ321に蓄積されていた全てのデータがメモリ150に格納されたことを示す通知(バッファ・フラッシュ・アクノリッジ)を信号処理モジュール120に送信する。信号処理モジュール120は、その通知を受信すると、タイミングt(6)において、終了割り込みをCPU110に出力する。
その後、タイミングt(7)において、CPU110は、信号処理モジュール130に対して、処理の実行命令を送信する。その実行命令に応答して、信号処理モジュール130は、タイミングt(8)において処理の実行を開始する。タイミングt(9)から、処理後のデータがCDM330のバッファ331に蓄積される。信号処理モジュール130は、ある処理単位を完了すると、タイミングt(10)において、バッファフラッシュ要求をCDM330に送信する。CDM330は、バッファフラッシュ要求に応答して、バッファ331に蓄積されたデータを外部のメモリ150に出力する。タイミングt(11)において、CDM330は、バッファ331に蓄積されていた全てのデータがメモリ150に格納されたことを示す通知(バッファ・フラッシュ・アクノリッジ)を信号処理モジュール130に送信する。信号処理モジュール130は、その通知を受信すると、タイミングt(12)において、終了割り込みをCPU110に出力する。
図5および図6を参照して、ある局面に従う半導体装置300の他の制御構造について説明する。図5は、半導体装置300の他の制御構造を説明する図である。図6は、半導体装置300の他の動作が実行されるタイミングを表すタイミングチャートである。
図5に示されるように、半導体装置300では、信号処理モジュール120,130のモジュール終了割り込みがCPU110に対して出力されると、そのタイミングで、信号処理モジュール120,130は、CDM320,330に対する、バッファ321,331からメモリ150への押し出し指示として、バッファフラッシュ要求を出力する。バッファ321,331に蓄積されている全てのデータがメモリ150に格納されると、CDM320,330は、圧縮伸長処理終了割り込みをCPU110に対して出力する。
図6を参照して、タイミングt(1)において、CPU110は、信号処理モジュール120に対して、処理の実行命令を送信する。その実行命令に応答して、信号処理モジュール120は、タイミングt(2)において処理の実行を開始する。タイミングt(3)から、処理後のデータがCDM320のバッファ321に蓄積される。信号処理モジュール120は、ある処理単位を完了すると、タイミングt(4)において、モジュール終了割り込みをCPU110に対して出力すると共に、バッファフラッシュ要求をCDM320に送信する。CDM320は、バッファフラッシュ要求に応答して、バッファ321に蓄積されたデータを外部のメモリ150に出力する。タイミングt(5)において、CDM320は、バッファ321に蓄積されていた全てのデータがメモリ150に格納されたことを示す通知(バッファ・フラッシュ・アクノリッジ)として、圧縮伸長処理終了割り込みをCPU110に送信する。
その後、タイミングt(6)において、CPU110は、信号処理モジュール130に対して、処理の実行命令を送信する。その実行命令に応答して、信号処理モジュール130は、タイミングt(7)において処理の実行を開始する。タイミングt(8)から、処理後のデータがCDM330のバッファ331に蓄積される。信号処理モジュール130は、ある処理単位を完了すると、タイミングt(9)において、モジュール終了割り込みをCPU110に対して出力すると共に、バッファフラッシュ要求をCDM330に送信する。CDM330は、バッファフラッシュ要求に応答して、バッファ331に蓄積されたデータを外部のメモリ150に出力する。タイミングt(10)において、CDM330は、バッファ331に蓄積されていた全てのデータがメモリ150に格納されたことを示す通知(バッファ・フラッシュ・アクノリッジ)として、圧縮伸長処理終了割り込みをCPU110に送信する。
[第1の実施の形態]
そこで、図7を参照して、処理の終端が明確でない場合においてもデータの一貫性を実現するための技術について説明する。当該技術は、共有メモリへのアクセスを自動で排他制御することにより、圧縮伸長処理が適用されても、信号処理モジュールの構成を変更することなく、あるいは、CPU110等によるソフトウェアの制御を追加することなく、データの一貫性が実現され得る。
図7は、ある実施の形態に従う半導体装置700のハードウェア構成を表すブロック図である。半導体装置700は、信号処理モジュール120,130と、メモリコントローラ140と、メモリ150と、排他制御用フラグ管理モジュール710と、圧縮伸長モジュール720,730とを備える。信号処理モジュール120と信号処理モジュール130とは相互に通信可能に構成されており、ある局面において、いずれかの信号処理モジュールが他の信号処理モジュールにより処理されたデータを使用するように構成される。メモリ150は、例えば、DDR SDRAM(Double-Data-Rate Synchronous Dynamic Random Access Memory)であるがその他のメモリであってもよい。
圧縮伸長モジュール720,730と、メモリコントローラ140とは、バス160にそれぞれ接続されている。排他制御用フラグ管理モジュール710は、圧縮伸長モジュール720、730に接続されている。圧縮伸長モジュール720は、信号処理モジュール120にさらに接続されている。圧縮伸長モジュール730は、信号処理モジュール130にさらに接続されている。
ある局面において、信号処理モジュール120,130は、トランザクションに対してデータのロスレス圧縮を指示する。信号処理モジュール120,130は、命令を実行するCPUその他の演算処理装置としてソフトウェアとハードウェアとを組み合わせた態様により実現される。他の局面において、信号処理モジュール120,130は、ASIC(Application Specific Integrated Circuit)その他のハードウェアとしても構成され得る。
ある局面において、排他制御用フラグ管理モジュール710は、メモリ150への圧縮データおよび圧縮情報の書き込みと、メモリ150からの圧縮データおよび圧縮情報の読み出しとを管理するための演算処理を実行するように構成された複数の回路素子の組み合わせとして実現され得る。他の局面において、排他制御用フラグ管理モジュール710は、当該演算処理を実行するプロセッサによって構成されてもよい。
ある局面において、圧縮伸長モジュール720は、信号処理モジュール120によって出力されるデータをロスレスで圧縮して圧縮データを生成する処理および圧縮データをロスレスで伸長して圧縮前のデータを復元する処理を実行するように構成された回路として実現される。別の局面において、圧縮伸長モジュール720は、これらの処理を実現する命令と、当該命令を実行する演算装置との組み合わせとして実現されてもよい。圧縮伸長モジュール730も同様である。また、図7には2つの圧縮伸長モジュールが使用される態様が例示されているが、別の局面において、3つ以上の圧縮伸長モジュールが使用されてもよい。
圧縮伸長モジュール720は、ロスレス圧縮処理部721と、ロスレス伸長処理部722と、圧縮情報管理部723とを含む。圧縮伸長モジュール730は、ロスレス圧縮処理部731と、ロスレス伸長処理部732と、圧縮情報管理部733とを含む。
ロスレス圧縮処理部721は、信号処理モジュール120のトランザクションに対して、データの圧縮処理を実行し、圧縮後のデータ(圧縮データ)と圧縮情報とを生成する。圧縮情報は、当該圧縮データのデータ量を示す。圧縮データと圧縮情報とは、メモリコントローラ140によってメモリ150に格納される。例えば、ロスレス圧縮処理部721は、メモリ150に対するデータの書き込みが可能であることを確認すると、書き込みコマンド(wcmd)と書き込み対象となる圧縮データ(wdata)をメモリコントローラ140に送信する。
他方、圧縮伸長モジュール720は、信号処理モジュール120からの読み出しの命令を受信すると、ロスレス伸長処理部722は読出コマンド(rcmd)をメモリコントローラ140に送る。メモリコントローラ140は、読出コマンドに応答して、メモリ150から圧縮データを読み出して、圧縮伸長モジュール720に読み出した圧縮データ(read data)を送る。ロスレス伸長処理部722は、当該圧縮データの伸長処理を行ない、復元されたデータを信号処理モジュール120に送信する。信号処理モジュール120は、その復元されたデータを用いて所定の処理を実行する。
圧縮情報管理部723は、ロスレス圧縮処理部721と、ロスレス伸長処理部722と、メモリコントローラ140とそれぞれ通信可能に構成されている。さらに、圧縮情報管理部723は、排他制御用フラグ管理モジュール710と通信可能に構成されている。ある局面において、圧縮情報管理部723は、メモリコントローラ140との間で圧縮情報を通信する。他の局面において、圧縮情報管理部723は、アドレス空間に対する最初のアクセスに基づいて、当該アドレス空間のロックを要求する。
ロスレス圧縮処理部731は、ロスレス圧縮処理部721と同様の処理を実行する。より具体的には、ロスレス圧縮処理部731は、信号処理モジュール130のトランザクションに対して、データのロスレス圧縮処理を実行する。排他制御の確認の結果、メモリ150への書き込みが可能である場合には、圧縮処理により生成された圧縮データは、圧縮伸長モジュール730が書き込みコマンド(wcmd)および書き込み対象となる圧縮データをメモリコントローラ140に送信し、圧縮データは、メモリコントローラ140によってメモリ150に格納される。
他方、圧縮伸長モジュール730が信号処理モジュール130から命令を受信すると、圧縮伸長モジュール730は、メモリ150へのアクセスが可能であることを確認する。メモリコントローラ140がメモリ150から圧縮データを圧縮伸長モジュール730に読み出すと、ロスレス伸長処理部732は、当該データの伸長処理を行なう。圧縮情報管理部733は、排他制御用フラグ管理モジュール710と通信可能に構成されている。圧縮情報管理部733は、メモリコントローラ140との間で圧縮情報を通信する。
ある実施の形態において、排他的な制御の対象となるアドレス空間のサイズは、圧縮データを生成するための圧縮処理の単位と、圧縮情報とに基づいて規定されている。例えば、ある局面において、メモリ150において共有されるメモリ領域へのアクセスの排他制御は、圧縮伸長モジュール720,730が管理するデータサイズ単位で管理され得る。一例として、圧縮処理単位が256バイトで、圧縮情報の管理単位が64の場合、排他制御は、16k(=256×64=16,384)バイト単位で実行される。このような構成により、バッファからデータの押し出しをするタイミングとなる処理の終端が明確でない場合においてもバッファの押し出しが可能となる。排他制御は、圧縮情報管理部723と排他制御用フラグ管理モジュール710との間で行なわれる。
排他制御用フラグ管理モジュール710は、当該排他制御用のフラグを管理する。ある局面において、排他制御用フラグ管理モジュール710は、フラグ711,712を含む。ある局面において、フラグは、圧縮伸長モジュールの数だけ用意される。図7に示される例では、2つの圧縮伸長モジュールが例示されているため、2つのフラグが排他制御用フラグ管理モジュール710に準備されているが、別の局面において、3つ以上の圧縮伸長モジュールおよびフラグが使用されてもよい。一例として、フラグ711,712は、それぞれ、圧縮データを格納するためのメモリ空間が、複数の信号処理モジュールのうちのいずれかの信号処理モジュールに割り当てられているか否かを表す。より具体的には、ある局面において、メモリ150においてロックしたい領域の先頭アドレスが、フラグ711,712として使用される。当該先頭アドレスは、圧縮情報管理部723,733によって、排他制御用フラグ管理モジュール710に送信され、排他制御用フラグ管理モジュール710に確保された領域に格納される。
ある局面において、メモリ150における16kバイトの空間に対する最初のアクセスがロスレス圧縮処理部721によって行なわれると、当該アクセスを示す情報は、圧縮情報管理部723に送られる。圧縮情報管理部723は、当該情報の受信に応答して、排他制御用フラグ管理モジュール710に対して当該空間のロックを要求する。排他制御用フラグ管理モジュール710は、当該空間のロックを試み、当該空間がロックできたか否かを示す情報を圧縮情報管理部723に返す。排他制御用フラグ管理モジュール710が当該空間をロックできなかった場合には、当該空間のロックを排他制御用フラグ管理モジュール710に再度要求するリトライを実行する。このリトライの頻度は、半導体装置700の製造事業者によって適宜設定され得る。
ある局面において、圧縮伸長モジュール720がメモリ150に対してライトアクセスを試みる場合、圧縮伸長モジュール720が有する16kバイト空間に対する全ての圧縮データおよび圧縮情報がメモリ150に格納された時、圧縮伸長モジュール720は、当該16kバイトの空間のロックを解放する。圧縮伸長モジュール720が当該空間のロックを解放すると、排他制御用フラグ管理モジュール710のフラグの内容を、その旨に更新する。
別の局面において、リードアクセスが行なわれる場合、圧縮伸長モジュール720が一時的に保持する、16kバイト空間に対する圧縮情報が、圧縮情報管理部723から読み込まれた圧縮情報によって上書きされた時に、圧縮伸長モジュール720は、当該空間のロックを解放する。
予め定められた時間、信号処理モジュール120からロックした16kバイト空間に対するアクセスがない時、圧縮伸長モジュール720は、ライトアクセスの時に、該当する16kバイト空間に対する全てのデータおよび圧縮情報をメモリ150に押し出し、当該空間のロックを解放する。
一方、リードアクセスの時、圧縮伸長モジュール720は、該当する16kバイト空間に対する圧縮情報を無効(invalid)にし、当該空間のロックを解放する。
次に、図8を参照して、本実施の形態に係るメモリ150におけるデータの格納の一態様について説明する。図8は、ある局面におけるメモリ150において格納されるデータの一例を表す図である。
あるタイミングにおいて、メモリ150は、領域811〜814,821〜824を含み、各領域の大きさは予め定められている。圧縮データ810と、圧縮情報820とを格納している。圧縮データ810は、圧縮データ(A)と、圧縮データ(B)と、圧縮データ(C)と、圧縮データ(D)等を含む。圧縮情報820は、圧縮情報(A)と、圧縮情報(B)と、圧縮情報(C)と、圧縮情報(D)とを含む。
圧縮データ810は、ロスレス圧縮処理部721またはロスレス圧縮処理部731による圧縮処理によって生成されたデータである。圧縮情報820は、圧縮データ810のデータ量を含む。例えば、圧縮情報(A)は、圧縮データ(A)のデータ量を示している。圧縮情報(B)、圧縮情報(C)、および圧縮情報(D)も同様である。
例えば、ロスレス圧縮処理部721が、信号処理モジュール120による処理によって生成されたデータを圧縮して、当該データを圧縮データ(A)として領域811に書き込もうとする場合、まず、圧縮伸長モジュール720は、圧縮情報管理部723を介して、排他制御用フラグ管理モジュール710にアクセスする。
一例として、ロスレス圧縮処理部721は、圧縮情報管理部723を介して、排他制御用フラグ管理モジュール710にアクセスして、排他制御管理フラグの内容を確認する。最初の圧縮データを書き込む局面では、メモリ150におけるメモリ空間は、いずれの信号処理モジュールにも専有されていないので、当該排他制御管理フラグ(例えば、フラグ711)は、メモリ空間(例えば、領域811)がいずれの信号処理モジュールにも専有されていないことを示している。
そこで、圧縮情報管理部723は、フラグ711の内容を、確保したい領域811の先頭アドレスに書き換えると共に、当該フラグの内容(領域811の先頭アドレス)をロスレス圧縮処理部721に送信する。ロスレス圧縮処理部721は、当該内容を受信すると、圧縮データ(A)を領域811に書き込む指示、および、圧縮情報(A)を領域821に書き込む指示を含む命令(例えば、wcmd)と、圧縮データ(A)および圧縮情報(A)とをメモリコントローラ140に送る。
メモリコントローラ140は、当該命令に基づき、圧縮データ(A)を領域811に書き込み、圧縮情報(A)を領域821に書き込む。メモリコントローラ140は、圧縮データ(A)および圧縮情報(A)の書き込みを終了すると、当該書き込みが終了したことを表す信号をロスレス圧縮処理部721に送る。
ロスレス圧縮処理部721は、その信号を受信すると、圧縮情報管理部723に、領域811が信号処理モジュール120の専有から解放されたことを通知する。圧縮情報管理部723は、領域811がいずれの信号処理モジュールにも専有されていないことを示すために、フラグ711の内容をクリアする。したがって、その後は、他の信号処理モジュール(例えば、信号処理モジュール130)が領域811にアクセス可能となり、例えば、領域811に格納されている圧縮データの読み出しが可能となる。
次に、リードアクセスの場合、圧縮伸長モジュール730が一時的に有する16kバイト空間に対する圧縮情報が新たに読み込んだ圧縮情報で上書きされた場合に、圧縮情報管理部723は、当該16kバイト空間のロックを解放する。
より詳しくは、一例として、信号処理モジュール130が、メモリ150に格納されているデータを用いた処理を実行しようとする場合、圧縮伸長モジュール730に対してメモリ150からの圧縮データの読み出しを指示する。圧縮伸長モジュール730において、圧縮情報管理部733は、排他制御用フラグ管理モジュール710にアクセスして、読み出そうとする圧縮データへのアクセスが可能か否かを確認する。例えば、信号処理モジュール130が領域811に格納されている圧縮データ(A)を利用しようとする場合、圧縮情報管理部733は、排他制御用フラグ管理モジュール710に含まれる全てのフラグの内容を確認する。図7の構成例では、圧縮情報管理部733は、フラグ711,712の内容を確認する。フラグ711,712の内容が、領域811はいずれの信号処理モジュールにも専有されていないことを示している(例えば、フラグ711,712のいずれにも領域811の先頭アドレスが書き込まれていない)場合には、圧縮情報管理部733は、領域811が信号処理モジュール130によって専有されていることを示す内容に変更する指示を、排他制御用フラグ管理モジュール710に送信する。排他制御用フラグ管理モジュール710は、その指示に応じて、フラグ711またはフラグ712の内容を変更する。例えば、排他制御用フラグ管理モジュール710は、フラグ712に領域811の先頭アドレスを書き込む。
排他制御用フラグ管理モジュール710は、フラグ712の内容の変更を終了すると、当該変更が終了したことを表す通知を圧縮伸長モジュール730に送る。ロスレス伸長処理部732は、その通知の受信に応答して、メモリコントローラ140を介して、メモリ150にアクセスする。メモリコントローラ140は、領域811に格納されている圧縮データ(A)と、領域821に格納されている圧縮情報(A)とを読み出し、圧縮データ(A)と圧縮情報(A)とを圧縮伸長モジュール730に送信する。ロスレス伸長処理部732は、読み出された圧縮情報(A)を用いて圧縮データ(A)を伸長し、元のデータを信号処理モジュール130に送る。信号処理モジュール130は、そのデータを用いて処理を実行する。
以上のようにして、第1の実施の形態に従う半導体装置700によれば、データの圧縮を適用しても、信号処理モジュール等の信号処理モジュールの機能を変更することなく、また、信号処理モジュールを制御するプロセッサが実行するソフトウェアの制御を追加することなく、データの一貫性を実現することができる。また、信号処理モジュールにおいてデータ処理の開始または終了が明確に存在しない場合であっても、データの一貫性を実現することができる。たとえば、信号処理モジュールの処理単位が明確でない場合の処理が行なわれる場合、すなわち、バッファ押し出しを行なうタイミングとなる処理の終端が明確でない場合であっても、処理単位が所定のデータサイズで規定されていることから、バッファの押し出しを行なうことが可能となる。
[第2の実施の形態]
図9を参照して、第2の実施の形態について説明する。図9は、第2の実施の形態に従う半導体装置900のハードウェア構成を表すブロック図である。本実施の形態に係る半導体装置900は、あるアドレス空間を専有している圧縮伸長モジュールに対して、そのアドレス空間を強制的に解放させる機能を有する点で、前述の半導体装置700と異なる。
半導体装置900は、半導体装置700が備える排他制御用フラグ管理モジュール710に代えて、排他制御用フラグ管理モジュール910を備える。排他制御用フラグ管理モジュール910は、半導体装置700が保持するフラグ(例えば、フラグ711,712)に加えて、強制解放指示部911を含む。その他の構成は、半導体装置700が備える構成と同じである。同一の構成には同一の符号を付してある。したがって、同一の構成の説明は繰り返さない。
強制解放指示部911は、各圧縮伸長モジュール720,730に接続され、メモリ150のあるアドレス空間を専有している圧縮伸長モジュールに対して、当該アドレス空間の解放を指示する。
ある局面において、ある信号処理モジュールによるアドレス空間のロックの試みが設定された回数失敗すると、排他制御用フラグ管理モジュール910は、当該アドレス空間をロックしている圧縮伸長モジュールに対して、当該アドレス空間を強制的に解放する指示を出力する。なお、当該設定された回数は、半導体装置900の製造事業者によって信号処理モジュール毎に適宜設定可能である。当該解放する指示を受信した圧縮伸長モジュールは、当該アドレス空間を直ちに解放する。
例えば、ライトアクセスが行なわれる場合、当該解放する指示を受信した圧縮伸長モジュールは、当該アドレス空間に対応する16kバイト空間に対する全ての圧縮データおよび圧縮情報をメモリ150に書き込み、当該書き込みが完了すると、その16kバイト空間のロックを解放する。
他方、リードアクセスが行なわれる場合、当該解放する指示を受信した圧縮伸長モジュールは、当該アドレス空間に対応する16kバイト空間に対する圧縮情報を無効にし、当該空間のロックを解放する。
以上のようにして、本実施の形態に係る半導体装置900は、アドレス空間の専有に対して、信号処理モジュール毎に優先順位をつけることができる。これにより、例えば、即時応答性が求められる信号処理モジュールには高優先度を設け、ロバスト性が高い信号処理モジュールには低優先度を設ける等の、個別の設定が可能となる。その結果、用途に応じた動作特性を有する半導体装置900を提供することができる。
[第3の実施の形態]
以下、第3の実施の形態について説明する。本実施の形態に係る半導体装置1000は、ロスレス圧縮処理部と、ロスレス伸長処理部と、排他制御用フラグ管理モジュールとがメモリコントローラに実装される構成を有する点で、前述の実施の形態に係る半導体装置700や半導体装置900と異なる。なお、前述の実施の形態に係る半導体装置が備える構成と同じ構成には同一の符号を付してある。これらの機能も同じである。したがって、同じ構成の説明は、繰り返さない。
図10を参照して、半導体装置1000の構成について説明する。図10は、ある実施の形態に従う半導体装置1000のハードウェア構成を表すブロック図である。半導体装置1000は、信号処理モジュール120,130と、圧縮伸長モジュール1020,1030と、メモリコントローラ1040と、メモリ150とを備える。圧縮伸長モジュール1020は、ライトアクセス解析部1021と、リードアクセス解析部1022と、圧縮情報管理部723とを含む。圧縮伸長モジュール1030は、ライトアクセス解析部1031と、リードアクセス解析部1032と、圧縮情報管理部733とを含む。メモリコントローラ1040は、ロスレス圧縮処理部721と、ロスレス伸長処理部722と、排他制御用フラグ管理モジュール710とを含む。本実施の形態においても、排他的な制御の対象となるアドレス空間のサイズは、圧縮データを生成するための圧縮処理の単位と、圧縮情報とに基づいて規定されている。したがって、ロスレス圧縮方式が使用されて圧縮データのデータ量が可変となっても、データの一貫性が担保され得る。
ライトアクセス解析部1021は、信号処理モジュール120のトランザクションを解析し、当該解析の結果と圧縮情報管理部723からのデータとに基づき、メモリ150に対する書き込みのための圧縮処理を実行可能か否かを判断する。ライトアクセス解析部1021による結果が圧縮処理を実行可能であることを示している場合には、圧縮伸長モジュール1020は、圧縮対象のデータと、当該圧縮処理を実行する指示とを、メモリコントローラ1040に送る。ロスレス圧縮処理部721は、当該指示に応答して、当該データに対して圧縮処理を実行し、所定の領域に圧縮データと圧縮情報とを格納する。
他方、リードアクセス解析部1022は、信号処理モジュール120のトランザクションを解析し、当該解析の結果と圧縮情報管理部723からのデータとに基づき、メモリ150に蓄積されている圧縮データの伸長処理を実行可能か否かを判断する。リードアクセス解析部1022による結果が伸長処理を実行可能であることを示している場合には、圧縮伸長モジュール1020は、伸長対象の圧縮データが蓄積されている領域を特定して、メモリ150から当該圧縮データを読み出す指示をロスレス伸長処理部722に送る。ロスレス伸長処理部722は、当該指示に応答して、特定された領域にアクセスして、当該圧縮データに対して伸長処理を実行し、伸長されたデータをリードアクセス解析部1022に送る。リードアクセス解析部1022は、伸長されたデータを信号処理モジュール120に送る。
なお、信号処理モジュール120が実行する圧縮伸長処理の一態様を例示したが、信号処理モジュール130が圧縮伸長処理を実行する場合も同様である。
以上のようにして、本実施の形態に従う半導体装置1000によると、排他制御用フラグ管理モジュール710と、ロスレス圧縮処理部721と、ロスレス伸長処理部722とは、メモリコントローラ1040に実装されている。このような構成により、規模の大きい(専有面積の大きい)ロスレス圧縮処理部721およびロスレス伸長処理部722が一カ所にまとめられるので、半導体装置1000の全体の規模(サイズ)を抑制することができる。また、メモリコントローラ1040が排他制御用フラグ管理モジュール710を備えるので、メモリコントローラ1040は、全ての信号処理モジュールのトランザクションを管理することができるので、全ての信号処理モジュール間でのデータの一貫性を実現することができる。
[第4の実施の形態]
以下、第4の実施の形態について説明する。本実施の形態に係る半導体装置1100は、アドレス空間の強制解放機能を有する点で、第3の実施の形態に係る半導体装置1000と異なる。
図11を参照して、第4の実施の形態にかかる半導体装置1100の構成について説明する。図11は、半導体装置1100のハードウェア構成を表すブロック図である。なお、前述の構成と同じ構成には同一の符号を付してある。当該構成の機能も同じである。したがって、同じ構成の説明は繰り返さない。
半導体装置1100は、図10に示される半導体装置1000の構成に対して、メモリコントローラ1040に代えて、メモリコントローラ1140を備える。メモリコントローラ1040は、ロスレス圧縮処理部721と、ロスレス伸長処理部722と、排他制御用フラグ管理モジュール910とを含む。排他制御用フラグ管理モジュール910は、半導体装置700が保持するフラグ(例えば、フラグ711,712,713,714)に加えて、強制解放指示部911を含む。
図11に示される半導体装置1100によれば、第2の実施の形態に従う半導体装置900と同様に、メモリ150においてアドレス空間のロックの試みが所定回数失敗した場合には、当該アドレス空間を専有している圧縮伸長モジュールに対して、当該アドレス空間の解放を指示することができる。当該指示に応答して当該アドレス空間が解放されると、当該アドレス空間のロックを要求している圧縮伸長モジュールが、ロックを行なうことができる。このようにすると、アドレス空間の専有について優先順位を各信号処理モジュール毎に設けることができる。
図12を参照して、以上詳述した半導体装置の制御構造の概略を説明する。図12は、ある実施の形態に従う半導体装置700において実行される処理の一部を表わすフローチャートである。他の半導体装置900,1000,1100についても同様である。
ステップS1210にて、圧縮伸長モジュール720のロスレス圧縮処理部721は、信号処理モジュール120から受信したデータを圧縮して圧縮データおよび前記圧縮データの情報量を表す圧縮情報を生成する。
ステップS1220にて、ロスレス圧縮処理部721は、圧縮情報管理部723を介して、定められたデータサイズ単位でメモリ150への圧縮データの書き込みを制御する管理データ(例えばフラグ711,712)にアクセスする。
ステップS1230にて、圧縮情報管理部723は、メモリ150へのライトアクセスが行なわれる場合に、ライトアクセスによりアクセスされる領域が他の圧縮伸長モジュール(例えば、圧縮伸長モジュール730)に専有されていないことが当該管理データ(いずれかのフラグ)によって示されていることに基づいて、定められたデータサイズ単位でメモリ領域への書き込みを許可する。例えば、アクセスを要求する領域の先頭アドレスが他の信号処理モジュール130によって使用されていないことが、排他制御用フラグ管理モジュール710のフラグによって示される場合には、圧縮情報管理部723は、ロスレス圧縮処理部721による書き込みを許可する。他方、当該先頭アドレスが他の信号処理モジュール130によって使用されていることが、排他制御用フラグ管理モジュール710のフラグによって示される場合には、圧縮情報管理部723は、ロスレス圧縮処理部721による書き込みを禁止する。
ステップS1240にて、ロスレス圧縮処理部721は、圧縮情報管理部723から当該許可を受信すると、圧縮データを許可されたメモリ領域に書き込む。圧縮情報管理部723は、書き込みの完了を検知すると、当該メモリ領域を解放するために、フラグ711の内容を圧縮伸長モジュール720による専有がなくなった内容に変更する。
その後、別の局面において、メモリ150に格納されている圧縮データを使用するトランザクションが信号処理モジュール130で実行され得る。そこで、信号処理モジュール130は、圧縮伸長モジュール730に対して、圧縮データのリクエストを送信する。
ステップS1250にて、当該リクエストに応答して、メモリ150へのリードアクセスが行なわれる場合に、リードアクセスによりアクセスされる領域が他の圧縮伸長モジュール(例えば、圧縮伸長モジュール720)に専有されていないことが管理データ(上記フラグ)によって示されていることに基づいて、当該定められたデータサイズ単位で当該領域からの読み出しを許可する。
ステップS1260にて、ロスレス伸長処理部732は、読み出しの許可に基づいて、当該領域から圧縮データおよび圧縮情報を読み出す。ロスレス伸長処理部732は、圧縮情報を用いて圧縮データの伸長処理を実行し、圧縮前のデータを復元する。復元されたデータは、信号処理モジュール130に送信される。
以上、本発明者によってなされた発明を実施形態に基づき具体的に説明したが、本発明は上記実施形態に限定されるものではなく、その要旨を逸脱しない範囲で種々変更可能であることはいうまでもない。
100,300,700,900,1000,1100 半導体装置、140,1040,1140 メモリコントローラ、150 メモリ、160 バス、321,331 バッファ、710,910 排他制御用フラグ管理モジュール、711,712,713,714 フラグ、720,730,1020,1030 圧縮伸長モジュール、721,731 ロスレス圧縮処理部、722,732 ロスレス伸長処理部、723,733 圧縮情報管理部、810 圧縮データ、811,812,813,814,821,822,823,824 領域、820 圧縮情報、911 強制解放指示部、1021,1031 ライトアクセス解析部、1022,1032 リードアクセス解析部。

Claims (20)

  1. データを圧縮または伸長するための第1の圧縮伸長モジュールと、
    データを圧縮または伸長するための第2の圧縮伸長モジュールと、
    前記第1の圧縮伸長モジュールによって生成された圧縮データまたは前記第2の圧縮伸長モジュールによって生成された圧縮データを格納するためのメモリと、
    定められたデータサイズ単位で、前記第1の圧縮伸長モジュールおよび前記第2の圧縮伸長モジュールによる前記メモリへのアクセスを排他的に制御するための管理モジュールとを備え、
    前記第1の圧縮伸長モジュールは、
    データを圧縮して、前記圧縮データと前記圧縮データのデータ量を示す圧縮情報とを出力するためのロスレス圧縮処理部と、
    前記圧縮データを伸長して圧縮前のデータを出力するためのロスレス伸長処理部と、
    前記アクセスを管理するためのデータに基づいて、前記定められたデータサイズ単位で前記メモリにおける圧縮データの書き込みまたは読み出しを制御するための圧縮情報管理部とを含み、
    前記圧縮情報管理部は、
    前記メモリへのライトアクセスが行なわれる場合に、前記ライトアクセスによりアクセスされる領域が他の圧縮伸長モジュールに専有されていないことが前記管理モジュールによって示されている時、前記定められたデータサイズ単位で前記領域への書き込みを許可し、
    前記メモリへのリードアクセスが行なわれる場合に、前記リードアクセスによりアクセスされる領域が他の圧縮伸長モジュールに専有されていないことが前記管理モジュールによって示されている時、前記定められたデータサイズ単位で前記領域からの読み出しを許可する、半導体装置。
  2. 前記排他的な制御の対象となるアドレス空間のサイズは、前記圧縮データを生成するための圧縮処理の単位と、前記圧縮情報とに基づいて規定されている、請求項1に記載の半導体装置。
  3. 前記圧縮情報管理部は、前記アドレス空間に対する最初のアクセスに基づいて、前記アドレス空間のロックを要求する、請求項2に記載の半導体装置。
  4. 前記ロックを要求することは、前記アドレス空間がロックされるまで、再度ロックを要求することを含む、請求項3に記載の半導体装置。
  5. 前記メモリにおいてアドレス空間を専有している圧縮伸長モジュールに対して、前記アドレス空間の解放を指示するための強制解放指示部をさらに備える、請求項1に記載の半導体装置。
  6. 前記第1の圧縮伸長モジュールは、第1の信号処理モジュールに接続されており、
    前記第2の圧縮伸長モジュールは、第2の信号処理モジュールに接続されており、
    前記強制解放指示部は、
    前記第1の圧縮伸長モジュールによるアドレス空間のロックの試みが設定された回数失敗したことに基づいて、前記アドレス空間をロックしている他の圧縮伸長モジュールに対して、前記アドレス空間を解放する指示を出力するように構成されている、請求項5に記載の半導体装置。
  7. データを圧縮または伸長するための第1の圧縮伸長モジュールと、
    データを圧縮または伸長するための第2の圧縮伸長モジュールと、
    前記第1の圧縮伸長モジュールによって生成された圧縮データまたは前記第2の圧縮伸長モジュールによって生成された圧縮データを格納するためのメモリと、
    前記メモリへのデータの格納を制御するためのメモリコントローラとを備え、
    前記第1の圧縮伸長モジュールは、前記メモリへのアクセスを管理するためのデータに基づいて、前記メモリにおける前記定められたデータサイズ単位での圧縮データの書き込みまたは読み出しを制御するための圧縮情報管理部を含み、
    前記メモリコントローラは、
    データを圧縮して圧縮データと圧縮情報とを出力するためのロスレス圧縮処理部と、
    前記圧縮データを伸長して圧縮前のデータを出力するためのロスレス伸長処理部と、
    定められたデータサイズ単位で、前記第1の圧縮伸長モジュールおよび前記第2の圧縮伸長モジュールによる前記メモリへのアクセスを排他的に制御するための管理モジュールとを含み、
    前記圧縮情報管理部は、
    前記メモリへのライトアクセスが行なわれる場合に、前記ライトアクセスによりアクセスされる領域が他の圧縮伸長モジュールに専有されていないことが前記管理モジュールによって示されている時、前記定められたデータサイズ単位で前記領域への書き込みを許可し、
    前記メモリへのリードアクセスが行なわれる場合に、前記リードアクセスによりアクセスされる領域が他の圧縮伸長モジュールに専有されていないことが前記管理モジュールによって示されている時、前記定められたデータサイズ単位で前記領域からの読み出しを許可する、半導体装置。
  8. 前記排他的な制御の対象となるアドレス空間のサイズは、圧縮データを生成するための圧縮処理の単位と、前記圧縮データのデータ量を示す圧縮情報とに基づいて規定されている、請求項7に記載の半導体装置。
  9. 前記圧縮情報管理部は、前記アドレス空間に対する最初のアクセスに基づいて、前記アドレス空間のロックを要求する、請求項8に記載の半導体装置。
  10. 前記ロックを要求することは、前記アドレス空間がロックされるまで、再度ロックを要求することを含む、請求項9に記載の半導体装置。
  11. 前記メモリにおいてアドレス空間を専有している圧縮伸長モジュールに対して、前記アドレス空間の解放を指示するための強制解放指示部をさらに備える、請求項7に記載の半導体装置。
  12. 前記第1の圧縮伸長モジュールは、第1の信号処理モジュールに接続されており、
    前記第2の圧縮伸長モジュールは、第2の信号処理モジュールに接続されており、
    前記強制解放指示部は、
    前記第1の圧縮伸長モジュールによるアドレス空間のロックの試みが設定された回数失敗したことに基づいて、前記アドレス空間をロックしている他の圧縮伸長モジュールに対して、前記アドレス空間を解放する指示を出力するように構成されている、請求項11に記載の半導体装置。
  13. 半導体装置においてデータのアクセスを制御するための方法であって、
    データを圧縮して圧縮データおよび前記圧縮データの情報量を表す圧縮情報を生成するロスレス圧縮処理を実行するステップと、
    定められたデータサイズ単位で前記半導体装置のメモリへの圧縮データの書き込みを制御する管理データにアクセスするステップと、
    前記メモリへのライトアクセスが行なわれる場合に、前記ライトアクセスによりアクセスされる領域が他の圧縮伸長モジュールに専有されていないことが前記管理データによって示されていることに基づいて、前記定められたデータサイズ単位で前記領域への書き込みを許可するステップと、
    前記許可に基づいて、前記圧縮データを前記領域に書き込むステップと、
    前記メモリへのリードアクセスが行なわれる場合に、前記リードアクセスによりアクセスされる領域が他の圧縮伸長モジュールに専有されていないことが前記管理データによって示されていることに基づいて、前記定められたデータサイズ単位で前記領域からの読み出しを許可するステップと、
    前記読み出しの許可に基づいて、前記領域から圧縮データを読み出すステップとを含む、方法。
  14. 前記排他的な制御の対象となるアドレス空間のサイズは、圧縮データを生成するための圧縮処理の単位と、前記圧縮情報とに基づいて規定されている、請求項13に記載の方法。
  15. 前記アドレス空間に対する最初のアクセスに基づいて、前記アドレス空間のロックを要求するステップをさらに含む、請求項14に記載の方法。
  16. 前記ロックを要求するステップは、前記アドレス空間がロックされるまで、再度ロックを要求することを含む、請求項15に記載の方法。
  17. 前記メモリにおいてアドレス空間を専有している圧縮伸長モジュールに対して、前記アドレス空間の解放を指示するステップをさらに含む、請求項13に記載の方法。
  18. 前記解放を指示するステップは、複数の圧縮伸長モジュールのうちの一つの圧縮伸長モジュールによるアドレス空間のロックの試みが設定された回数失敗したことに基づいて、前記アドレス空間をロックしている他の圧縮伸長モジュールに対して、前記アドレス空間を解放する指示を出力することを含む、請求項17に記載の方法。
  19. 前記解放を指示するステップは、メモリコントローラが前記圧縮伸長モジュールに対して前記アドレス空間の解放を指示することを含む、請求項17に記載の方法。
  20. 前記圧縮データおよび前記圧縮情報を生成するステップは、メモリコントローラが、前記圧縮データおよび前記圧縮情報を生成することを含む、請求項13に記載の方法。
JP2018241052A 2018-12-25 2018-12-25 半導体装置、および、データのアクセスを制御するための方法 Active JP7142562B2 (ja)

Priority Applications (4)

Application Number Priority Date Filing Date Title
JP2018241052A JP7142562B2 (ja) 2018-12-25 2018-12-25 半導体装置、および、データのアクセスを制御するための方法
US16/683,934 US11194491B2 (en) 2018-12-25 2019-11-14 Semiconductor device and a method for controlling accessing data
CN201911282355.3A CN111382088B (zh) 2018-12-25 2019-12-13 半导体器件及用于控制数据访问的方法
US17/517,929 US11687261B2 (en) 2018-12-25 2021-11-03 Semiconductor device and a method for controlling accessing data

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2018241052A JP7142562B2 (ja) 2018-12-25 2018-12-25 半導体装置、および、データのアクセスを制御するための方法

Publications (2)

Publication Number Publication Date
JP2020102102A true JP2020102102A (ja) 2020-07-02
JP7142562B2 JP7142562B2 (ja) 2022-09-27

Family

ID=71096840

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2018241052A Active JP7142562B2 (ja) 2018-12-25 2018-12-25 半導体装置、および、データのアクセスを制御するための方法

Country Status (3)

Country Link
US (2) US11194491B2 (ja)
JP (1) JP7142562B2 (ja)
CN (1) CN111382088B (ja)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11853593B2 (en) * 2022-04-18 2023-12-26 Dell Products L.P. Shared memory protection method for securing MMIO commands

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2000105839A (ja) * 1998-07-31 2000-04-11 Hewlett Packard Co <Hp> 圧縮テクスチャ・デ―タ構造
WO2004092960A2 (en) * 2003-04-16 2004-10-28 Koninklijke Philips Electronics N.V. Selectable procession / decompression for data stored in memory
US20060069879A1 (en) * 2004-09-28 2006-03-30 Sony Computer Entertainment Inc. Methods and apparatus for providing a compressed network in a multi-processing system
JP2011034370A (ja) * 2009-08-03 2011-02-17 Fujitsu Ltd メモリコントローラ
JP2016181212A (ja) * 2015-03-25 2016-10-13 株式会社メガチップス 半導体メモリ、メモリ制御装置、記憶装置、上位装置、データ処理システム、データ書き込み装置、データ書き込みプログラム、制御プログラム及びデータ書き込み方法

Family Cites Families (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP3037144B2 (ja) 1996-07-09 2000-04-24 神戸日本電気ソフトウェア株式会社 データ圧縮記憶演算装置
JPH10136299A (ja) * 1996-10-30 1998-05-22 Sony Corp 画像データ書込装置および方法、画像データ読出装置および方法、画像データ書込読出装置および方法、メモリカードシステム、データ処理システム、並びにメモリカード
US9063663B2 (en) * 2010-09-21 2015-06-23 Hitachi, Ltd. Semiconductor storage device and data control method thereof
CN102012794A (zh) * 2010-11-19 2011-04-13 北京兆易创新科技有限公司 一种固态硬盘及其访问控制方法、一种固态硬盘控制器
WO2012070319A1 (ja) * 2010-11-25 2012-05-31 インターナショナル・ビジネス・マシーンズ・コーポレーション 複数のプロセッサのメモリ共有化のためのメモリアクセス装置、及びそのアクセス方法
US9235590B1 (en) * 2011-12-30 2016-01-12 Teradata Us, Inc. Selective data compression in a database system
WO2014061055A1 (en) * 2012-10-15 2014-04-24 Hitachi, Ltd. Storage sysyem which includes non-volatile semiconductor storage medium, and storage control method of storage system
CN103136109B (zh) * 2013-02-07 2016-06-15 中国科学院苏州纳米技术与纳米仿生研究所 一种具有压缩功能的固态存储系统ftl写入及读取方法
CN105229592B (zh) * 2013-03-15 2018-04-10 马维尔国际贸易有限公司 用于生成用以由于错误而重新访问存储驱动器的非易失性半导体存储器的描述符的装置和方法
US9921986B2 (en) * 2015-10-27 2018-03-20 International Business Machines Corporation Suspend and resume in a time shared coprocessor
JP6679290B2 (ja) 2015-11-30 2020-04-15 ルネサスエレクトロニクス株式会社 半導体装置
CN106911907A (zh) * 2017-02-09 2017-06-30 聊城大学 一种伴飞光电跟踪测量吊舱高清压缩与存储装置
JP6756280B2 (ja) * 2017-03-03 2020-09-16 富士通株式会社 情報処理装置,情報処理プログラムおよび情報処理方法

Patent Citations (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2000105839A (ja) * 1998-07-31 2000-04-11 Hewlett Packard Co <Hp> 圧縮テクスチャ・デ―タ構造
US6243081B1 (en) * 1998-07-31 2001-06-05 Hewlett-Packard Company Data structure for efficient retrieval of compressed texture data from a memory system
WO2004092960A2 (en) * 2003-04-16 2004-10-28 Koninklijke Philips Electronics N.V. Selectable procession / decompression for data stored in memory
JP2006524858A (ja) * 2003-04-16 2006-11-02 コーニンクレッカ フィリップス エレクトロニクス エヌ ヴィ メモリに記憶されたデータに圧縮を使用するデータ処理装置
US20060271761A1 (en) * 2003-04-16 2006-11-30 Riemens Abraham K Data processing apparatus that uses compression or data stored in memory
US20060069879A1 (en) * 2004-09-28 2006-03-30 Sony Computer Entertainment Inc. Methods and apparatus for providing a compressed network in a multi-processing system
WO2006035989A2 (en) * 2004-09-28 2006-04-06 Sony Computer Entertainment Inc. Methods and apparatus for compressing data in a multi-processing system
JP2006099774A (ja) * 2004-09-28 2006-04-13 Sony Computer Entertainment Inc データ処理方法および装置、処理システム、コンピュータ処理システム、コンピュータのネットワーク
JP2011034370A (ja) * 2009-08-03 2011-02-17 Fujitsu Ltd メモリコントローラ
JP2016181212A (ja) * 2015-03-25 2016-10-13 株式会社メガチップス 半導体メモリ、メモリ制御装置、記憶装置、上位装置、データ処理システム、データ書き込み装置、データ書き込みプログラム、制御プログラム及びデータ書き込み方法

Also Published As

Publication number Publication date
US11194491B2 (en) 2021-12-07
US20220057950A1 (en) 2022-02-24
CN111382088A (zh) 2020-07-07
JP7142562B2 (ja) 2022-09-27
US20200201552A1 (en) 2020-06-25
US11687261B2 (en) 2023-06-27
CN111382088B (zh) 2023-11-21

Similar Documents

Publication Publication Date Title
JP6046216B2 (ja) ホストシステム及びホストコントローラ
KR20090028518A (ko) 고속 비휘발성 메모리 장치 및 방법, 컴퓨터 판독가능 매체
CN114051611B (zh) 用于非连续存储器的dma分散和聚集操作
US11231868B2 (en) System and method for performing computational storage utilizing a hardware accelerator
US11687261B2 (en) Semiconductor device and a method for controlling accessing data
US10795825B2 (en) Compressing data for storage in cache memories in a hierarchy of cache memories
US6567908B1 (en) Method of and apparatus for processing information, and providing medium
JP6080492B2 (ja) 情報処理装置、起動方法およびプログラム
GB2306714A (en) Data transmitting using FIFO memory
JP7493001B2 (ja) 圧縮伸長装置、ストレージシステム、および圧縮伸長方法
JP7363344B2 (ja) メモリ制御装置、および制御方法
EP4109278B1 (en) Technology for early abort of compression acceleration
JPH09212311A (ja) ディスクアレイ装置
US20240134521A1 (en) Data reduction device, data reduction method, and system including data reduction device
JP7535048B2 (ja) キャッシュメモリの階層内のキャッシュメモリに記憶するデータの圧縮
EP3462322B1 (en) Semiconductor device and memory access method
JP3146197B2 (ja) データ転送装置及び記憶装置
JPH06161842A (ja) 外部記憶装置およびこれを用いたコンピュータ
JP6080490B2 (ja) 情報処理装置、起動方法およびプログラム
JP6080491B2 (ja) 情報処理装置、起動方法およびプログラム
JP2000285019A (ja) キャッシュ制御回路
JP2008083772A (ja) データ処理装置
CN113961487A (zh) 加速存储器存取的电子装置及方法
JP2005196426A (ja) 制御装置
JPH04195444A (ja) ダウンロード方法

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20210607

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20220309

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20220315

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20220427

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: 20220830

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20220913

R150 Certificate of patent or registration of utility model

Ref document number: 7142562

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150