JP2022188911A - 圧縮装置、圧縮伸張装置及びメモリシステム - Google Patents

圧縮装置、圧縮伸張装置及びメモリシステム Download PDF

Info

Publication number
JP2022188911A
JP2022188911A JP2021097195A JP2021097195A JP2022188911A JP 2022188911 A JP2022188911 A JP 2022188911A JP 2021097195 A JP2021097195 A JP 2021097195A JP 2021097195 A JP2021097195 A JP 2021097195A JP 2022188911 A JP2022188911 A JP 2022188911A
Authority
JP
Japan
Prior art keywords
data
compression
power consumption
mode information
compressor
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
Application number
JP2021097195A
Other languages
English (en)
Inventor
洋平 深澤
Yohei Fukazawa
翔 小玉
Sho Kodama
圭里 中西
Keiri Nakanishi
恒平 及川
Kohei Oikawa
貴 三浦
Takashi Miura
大亮 八島
Daisuke Yashima
正人 住吉
Masato Sumiyoshi
哲也 王
Zheye Wang
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.)
Kioxia Corp
Original Assignee
Kioxia 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 Kioxia Corp filed Critical Kioxia Corp
Priority to JP2021097195A priority Critical patent/JP2022188911A/ja
Priority to US17/686,246 priority patent/US11899934B2/en
Publication of JP2022188911A publication Critical patent/JP2022188911A/ja
Pending legal-status Critical Current

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/0608Saving storage space on storage systems
    • 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
    • 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]
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
    • Y02D10/00Energy efficient computing, e.g. low power processors, power management or thermal management

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Human Computer Interaction (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Compression, Expansion, Code Conversion, And Decoders (AREA)
  • Memory System (AREA)

Abstract

【課題】消費電力量を抑制することが可能な圧縮装置、圧縮伸張装置及びメモリシステムを提供することにある。【解決手段】実施形態に係る圧縮装置は、解析部と、制御部と、圧縮器と、選択部とを具備する。解析部は、第1データを解析する。制御部は、解析結果に基づいて、非圧縮モード情報または圧縮モード情報を出力する。圧縮器は、制御部から非圧縮モード情報が出力された場合に動作を停止し、制御部から圧縮モード情報が出力された場合に動作して第1データを圧縮した第2データを出力する。選択部は、制御部から非圧縮モード情報が出力された場合に第1データを出力し、制御部から圧縮モード情報が出力された場合に第2データを出力する。選択部から出力される第1データには、非圧縮モード情報が付加される。選択部から出力される第2データには、圧縮モード情報が付加される。【選択図】図2

Description

本発明の実施形態は、圧縮装置、圧縮伸張装置及びメモリシステムに関する。
例えばデータセンター等において大量の文書を保存する必要がある場合、当該データをそのままHDD(Hard Disk Drive)またはSSD(Solid State Drive)等のメモリシステムに備えられる不揮発性メモリに書き込むと、当該不揮発性メモリの容量を圧迫し、当該容量を確保するためのコストが増大する。
そこで、一般的にはデータを可逆圧縮することによって、不揮発性メモリに書き込まれるデータ量の削減するように動作するメモリシステムが知られている。これによれば、不揮発性メモリの記憶領域を有効に活用する(より多くのデータを書き込む)ことができるとともに、不揮発性メモリへの物理的な書き込み量及び当該不揮発性メモリからの物理的な読み込み量が削減されるため、書き込み速度及び読み込み速度の向上も期待できる。
ところで、近年では、データの圧縮性能に対する要求が高まっており、当該圧縮性能を向上させる圧縮アルゴリズムが開発されている。しかしながら、圧縮性能が高い圧縮アルゴリズムを採用する場合、当該圧縮アルゴリズムを実現するための回路規模が大きくなり、当該回路規模に応じてデータを圧縮する際の消費電力量も大きくなる。
このため、不揮発性メモリを制御するコントローラ(つまり、メモリシステム全体)の消費電力量に対して、データを圧縮及び伸張する圧縮伸張装置(圧縮装置及び伸張装置)の消費電力量を無視することができなくなっている。
特開2013-085071号公報
そこで、本発明が解決使用する課題は、消費電力量を抑制することが可能な圧縮装置、圧縮伸張装置及びメモリシステムを提供することにある。
実施形態に係る圧縮装置は、解析部と、制御部と、圧縮器と、選択部とを具備する。解析部は、入力された第1データを解析する。前記制御部は、前記解析結果に基づいて、非圧縮モード情報または圧縮モード情報を出力する。前記圧縮器は、前記制御部から前記非圧縮モード情報が出力された場合に動作を停止し、前記制御部から前記圧縮モード情報が出力された場合に動作して前記第1データを圧縮した第2データを出力する。前記選択部は、前記制御部から前記非圧縮モード情報が出力された場合に前記第1データを出力し、前記制御部から前記圧縮モード情報が出力された場合に前記圧縮器から出力された第2データを出力する。前記選択部から出力される第1データには、前記非圧縮モード情報が付加される。前記選択部から出力される第2データには、前記圧縮モード情報が付加される。
第1実施形態に係るメモリシステムのハードウェア構成の一例を概略的に示すブロック図。 第1実施形態に係る圧縮伸張装置の構成の一例を示す図。 予測モデル生成処理について説明するための図。 第1指標算出回路の一例を示す図。 第2指標算出回路の一例を示す図。 ホストから書き込みコマンド及び読み出しコマンドが発行された際の圧縮伸張装置の処理について説明するための図。 第2実施形態に係る圧縮装置の構成の一例を示す図。 第3実施形態に係る圧縮装置の構成の一例を示す図。 第4実施形態に係る圧縮伸張装置の構成の一例を示す図。 第5実施形態に係る圧縮伸張装置の構成の一例を示す図。 第6実施形態に係る圧縮装置の構成の一例を示す図。
以下、図面を参照して、各実施形態について説明する。
(第1実施形態)
まず、第1実施形態について説明する。図1は、本実施形態に係るメモリシステムのハードウェア構成の一例を概略的に示すブロック図である。
図1に示すメモリシステム1は、不揮発性メモリにデータを書き込み、当該不揮発性メモリからデータを読み出すように構成された半導体ストレージデバイスである。本実施形態においては、メモリシステム1が例えばソリッドステートドライブ(SSD:Solid State Drive)として実現されているものとして説明するが、当該メモリシステム1は他のストレージデバイスであってもよい。
メモリシステム1は、例えばPCI Expressバスのようなシステムバスを介してホストに接続可能に構成されている。図1に示すように、メモリシステム1は、コントローラ2、NAND型フラッシュメモリ3及びDRAM(Dynamic Random Access Memory)4を備える。
コントローラ2は、メモリシステム1の動作を司る機能を有し、NAND型フラッシュメモリ3及びDRAM4を制御する。コントローラ2は、ホストインタフェース(I/F)2a、CPU2b、NANDインタフェース(I/F)2c及びDRAMインタフェース(I/F)2d等を含む。なお、ホストインタフェース2a、CPU2b、NANDインタフェース2c及びDRAMインタフェース2dは、例えばバスを介して互いに接続されている。
ホストインタフェース2aは、メモリシステム1の外部に配置されるホストとの通信を実行するように構成されたホストインタフェース回路である。このホストインタフェース2aは、例えばPCI Expressコントローラ等であってもよい。ホストインタフェース2aは、ホストから様々なコマンド(要求)を受信する。
CPU2bは、ホストインタフェース2a、NANDインタフェース2c及びDRAMインタフェース2dを制御するように構成されたプロセッサである。CPU2bは、メモリシステム1の電源オンに応答してNAND型フラッシュメモリ3または図示しないROM(Read Only Memory)から制御プログラム(ファームウェア)をDRAM4にロードし、当該制御プログラムを実行することによって様々な処理を行う。具体的には、CPU2bは、ホストから発行される様々なコマンドに対する処理を実行する。なお、ホストから発行されるコマンドに対する処理の一部または全部は、コントローラ2内の専用のハードウェアによって実行されてもよい。
NANDインタフェース2cは、CPU2bの制御の下、NAND型フラッシュメモリ3を制御するように構成されたメモリ制御回路である。
更に、コントローラ2は、圧縮伸張装置2eを備える。図1には示されていないが、圧縮伸張装置2eは、圧縮装置及び伸張装置を備える。
圧縮装置は、例えばホストから書き込みコマンドが発行された場合に、当該書き込みコマンドにおいて指定されているデータ(書き込みデータ)を入力し、当該データを圧縮するために用いられる。なお、圧縮装置は、例えば辞書式符号化とエントロピー符号化(ハフマン符号化)とを組み合わせたdeflateと称される圧縮アルゴリズムでデータを圧縮する。圧縮装置において圧縮されたデータ(以下、圧縮データと表記)は、圧縮装置から出力された後、誤り訂正処理やランダマイズ処理等の所定の処理が実行される。CPU2bは、圧縮データに対して所定の処理が実行されたデータをNANDインタフェース2c経由でNAND型フラッシュメモリ3に書き込む。すなわち、CPU2bは、圧縮装置から出力された圧縮データに基づくデータをNAND型フラッシュメモリ3に書き込む。
CPU2bは、例えばホストからホストインタフェース2a経由で受信した読み出しコマンドに基づいてNAND型フラッシュメモリ3から圧縮データを読み出す際に、当該読み出しコマンドに基づくデータをNANDインタフェース2c経由でNAND型フラッシュメモリ3から読み出す。読み出されたデータは、当該データに対する誤り訂正処理、ランダマイズの解除処理等の所定の処理が実行された後、圧縮データとしてCPU2bにより伸張装置へ入力される。伸張装置は、入力された圧縮データを伸張するように構成されている。換言すれば、伸張装置は、NAND型フラッシュメモリ3から読み出されたデータに基づく圧縮データを伸張する。
NAND型フラッシュメモリ3は、不揮発性メモリであり、マトリクス状に配置された複数のメモリセルを含むメモリセルアレイを有する。NAND型フラッシュメモリ3は、2次元構造のNAND型フラッシュメモリであってもよいし、3次元構造のNAND型フラッシュメモリであってもよい。
NAND型フラッシュメモリ3のメモリセルアレイは、複数のブロックBLK0~BLKm-1を含む。ブロックBLK0~BLKm-1の各々は多数のページ(ここでは、ページP0~Pn-1)によって構成される。ブロックBLK0~BLKm-1は、消去単位として機能する。ページP0~Pn-1の各々は、同一ワード線に接続された複数のメモリセルを含む。ページP0~Pn-1は、データ書き込み動作及びデータ読み出し動作の単位である。
ここでは、メモリシステム1が不揮発性メモリとしてNAND型フラッシュメモリ3を備えるものとして説明したが、当該メモリシステム1は、不揮発性メモリとして例えばPCM(Phase Change Memory)またはMRAM(Magnetoresistive Random Access Memory)等を備える構成であってもよい。
DRAM4は、揮発性メモリであり、例えばコントローラ2(CPU2b)において実行されるソフトウェアの一時的なバッファまたはNAND型フラッシュメモリ3に対する一時的なバッファ等として機能する。
ここでは、メモリシステム1が揮発性メモリとしてDRAM4を備えるものとして説明したが、当該メモリシステム1は、揮発性メモリとして例えばSRAM(Static Random Access Memory)等を備える構成であってもよい。
なお、本実施形態においては圧縮伸張装置2e(圧縮装置及び伸張装置)がハードウェアによって実現されるものとして説明するが、当該圧縮伸張装置2eの一部または全ては、ソフトウェアによって実現されてもよいし、ソフトウェア及びハードウェアの組み合わせによって実現されてもよい。
以下、図2を参照して、図1に示す圧縮伸張装置2eの構成の一例について説明する。図2に示すように、圧縮伸張装置2eは、圧縮装置10及び伸張装置20を備える。
圧縮装置10は、圧縮器11、データバッファ12、解析部13、制御部14及び選択器15を含む。
圧縮器11は、圧縮装置10に入力されたデータ(以下、非圧縮データと表記)を圧縮し、当該圧縮されたデータ(以下、圧縮データと表記)を出力する機能を有する。なお、圧縮装置10に入力される非圧縮データは、例えばホストから発行された書き込みコマンドにおいてNAND型フラッシュメモリ3に書き込むべきデータ(書き込みデータ)として指定されているデータである。また、非圧縮データは、例えば圧縮装置10において処理される所定のサイズ(圧縮単位)の文字列データ(テキスト)である。
ここで、本実施形態に係る圧縮装置10(圧縮器11)においては、例えば辞書式符号化と称される符号化手法(圧縮方式)とエントロピー符号化と称される符号化手法(圧縮方式)とを組み合わせた圧縮アルゴリズム(deflate)により非圧縮データを圧縮するものとする。
辞書式符号化とは、辞書式符号化の対象となるデータ(以下、辞書式符号化対象データと表記)を、当該辞書式符号化対象データよりも過去のデータの相対参照に変換する符号化手法である。なお、辞書式符号化としては、例えばLZ77、LZSS、LZ78またはLZW等が用いられる。
具体的には、辞書式符号化においては、過去のデータを格納しておくバッファ(以下、ヒストリバッファと表記)を用意し、辞書式符号化対象データと一致する過去のデータが当該ヒストリバッファから検索される。
辞書式符号化対象データと一致する過去のデータがヒストリバッファ内に存在する場合には、当該辞書式符号化対象データが、当該過去のデータが格納されているヒストリバッファ内の位置を示すアドレス及び当該過去のデータと一致する長さ(以下、マッチ長と表記)の組(以下、一致データと表記)に置き換えられ、当該一致データが辞書式符号化の結果として出力される。
一方、辞書式符号化対象データと一致する過去のデータがヒストリバッファ内に存在しない場合には、辞書式符号化の結果として当該辞書式符号化対象データ(以下、不一致データと表記)が出力される。
エントロピー符号化とは、エントロピー符号化の対象となるデータ(以下、エントロピー符号化対象データと表記)を当該エントロピー符号化対象データの出現頻度に応じた符号長の符号に変換する符号化手法である。換言すれば、エントロピー符号化によれば、エントロピー符号化対象データの出現頻度の違いを利用して異なる符号長の符号を当該エントロピー符号化対象データに割り当てることで全体として符号量が削減される。
なお、エントロピー符号化としては、例えばハフマン符号化が用いられる。エントロピー符号化としてハフマン符号化が用いられる場合、当該ハフマン符号化は、予め構築された符号木を用いて符号化を行う静的ハフマン符号化であってもよいし、ハフマン符号化の対象となるデータにより符号木を変更する動的ハフマン符号化であってもよい。エントロピー符号化としては、例えば算術符号化等が用いられても構わない。
圧縮器11は、圧縮装置10に入力された非圧縮データから部分的に切り出されるデータの各々を辞書式対象符号化データとして辞書式符号化を行い、当該辞書式符号化の結果(一致データ及び不一致データ)をエントロピー符号化対象データとしてエントロピー符号化を行い、当該エントロピー符号化の結果を圧縮データとして出力するように動作する。
データバッファ12は、圧縮装置10に入力された非圧縮データを一時的に格納しておくバッファである。
解析部13は、非圧縮データを入力し、当該非圧縮データを解析(評価)する。具体的には、解析部13は、圧縮器11(圧縮装置10)の消費電力量を予測するための第1予測モデル及び後述する伸張器21(伸張装置20)の消費電力量を予測するための第2予測モデルを保持する。解析部13は、非圧縮データを第1予測モデルに適用することによって当該非圧縮データを圧縮器11で圧縮する場合における当該圧縮器11の消費電力量を予測する。また、解析部13は、非圧縮データを第2予測モデルに適用することによって当該非圧縮データを圧縮した圧縮データを伸張器21で伸張した場合における当該伸張器21の消費電力量を予測する。
制御部14は、解析部13による解析結果(圧縮器11の消費電力量及び伸張器21の消費電力量)に基づいて、圧縮器11を制御する。この場合、制御部14は、非圧縮データに対する非圧縮または圧縮を決定する。非圧縮データに対する非圧縮(つまり、非圧縮データを圧縮しないこと)が決定された場合、制御部14は、圧縮器11の動作を停止させることを示す非圧縮モード情報を圧縮器11及び選択器15に出力する。また、非圧縮データに対する圧縮(つまり、非圧縮データを圧縮すること)が決定された場合、制御部14は、当該圧縮器11を動作させることを示す圧縮モード情報を圧縮器11及び選択器15に出力する。
なお、非圧縮モード情報は非圧縮データを非圧縮とすることを指示するための情報であり、制御部14から非圧縮モード情報が出力された場合、圧縮器11(の動作)は、当該非圧縮モード情報に基づいて停止する。一方、圧縮モード情報は非圧縮データを圧縮することを指示するための情報であり、制御部14から圧縮モード情報が出力された場合、圧縮器11は、当該圧縮モード情報に基づいてデータバッファ12から非圧縮データを入力し、当該非圧縮データを圧縮した圧縮データを出力するように動作する。
選択器15は、制御部14によって非圧縮モード情報が出力された場合、当該非圧縮モード情報に基づいてデータバッファ12に格納された非圧縮データを選択して出力する。一方、選択器15は、制御部14によって圧縮モード情報が出力された場合、当該圧縮モード情報に基づいて圧縮器11から出力された圧縮データを選択して出力する。
なお、選択器15から出力される非圧縮データには、非圧縮モード情報が付加される。一方、選択器15から出力される圧縮データには、圧縮モード情報が付加される。
上記したように選択器15(圧縮装置10)から出力された非圧縮データまたは圧縮データは、NAND型フラッシュメモリ3に書き込まれる。なお、NAND型フラッシュメモリ3に書き込まれる非圧縮データまたは圧縮データは、上記した誤り訂正処理やランダマイズ処理等の処理が実行されていてもよい。
ここで、ホストから読み出しコマンドが発行された場合、当該読み出しコマンドにおいて指定されているデータ(以下、読み出しデータと表記)がNAND型フラッシュメモリ3から読み出され、当該読み出しデータが伸張装置20に入力される。本実施形態において伸張装置20に入力される読み出しデータは、非圧縮データである場合もあるし、圧縮データである場合もある。読み出しデータが非圧縮データである場合には当該読み出しデータには非圧縮モード情報が付加されており、読み出しデータが圧縮データである場合には当該読み出しデータには圧縮モード情報が付加されている。
なお、上記したようにNAND型フラッシュメモリに書き込まれる非圧縮データまたは圧縮データに対して誤り訂正処理やランダマイズ処理等の処理が実行されている場合、伸張装置20に入力される前に、当該読み出しデータに対して誤り訂正処理、ランダマイズの解除処理等の処理が実行される。
伸張装置20は、伸張器21及び選択器22を含む。上記したように読み出しデータが伸張装置20に入力された場合、当該読み出しデータに付加されている非圧縮モード情報または圧縮モード情報が伸張器21及び選択器22に出力される。
伸張器21は、伸張装置20に入力された圧縮データを伸張することによって得られる非圧縮データを出力する機能を有する。なお、上記したように圧縮器11が辞書式符号化とエントロピー符号化とを組み合わせた圧縮アルゴリズムを採用しているものとすると、伸張器21は、圧縮データに対してエントロピー復号化を行い、当該エントロピー復号化の結果に対して辞書式復号化を行うように動作する。
ここで、上記した非圧縮モード情報が出力された場合、伸張器21(の動作)は、当該非圧縮モード情報に基づいて停止する。一方、圧縮モード情報が出力された場合、伸張器21は、当該圧縮モード情報に基づいて読み出しデータ(圧縮データ)を入力し、当該圧縮データを伸張することによって得られる非圧縮データを出力する。
また、非圧縮モード情報が出力された場合、選択器22は、当該非圧縮モード情報に基づいて読み出しデータ(非圧縮データ)を選択して出力する。一方、圧縮モード情報が出力された場合、選択器22は、当該圧縮モード情報に基づいて伸張器21から出力された非圧縮データを選択して出力する。
以下、本実施形態に係る圧縮伸張装置2eの動作について説明する。ここで、本実施形態において、上記した圧縮装置10に含まれる解析部13は、圧縮器11の消費電力量を予測するための第1予測モデル及び伸張器21の消費電力量を予測するための第2予測モデルを保持している。
このため、まず、図3を参照して、解析部13に保持される第1予測モデル及び第2予測モデルを生成する処理(以下、予測モデル生成処理と表記)について説明する。
本実施形態において、圧縮装置10に含まれる圧縮器11は、上記したように辞書式符号化及びエントロピー符号化を行うように構成されているものとする。この場合、圧縮器11は、図3に示すように、辞書式符号化を行う辞書式符号化部11a及びエントロピー符号化を行うエントロピー符号化部11bを含む。
このような圧縮器11によれば、当該圧縮器11に入力された非圧縮データに対して辞書式符号化部11aによる辞書式符号化が行われ、当該辞書式符号化の結果に対してエントロピー符号化部11bによるエントロピー符号化が行われることにより、当該圧縮器11から圧縮データが出力される。このように圧縮器11から出力された圧縮データは、NAND型フラッシュメモリ3に書き込まれる。
一方、上記したように圧縮器11が辞書式符号化及びエントロピー符号化を行う場合、伸張装置20に含まれる伸張器21は、圧縮器11から出力された圧縮データに対してエントロピー復号化及び辞書式復号化を行うように構成されている。この場合、伸張器21は、図3に示すように、エントロピー復号化を行うエントロピー復号化部21a及び辞書式復号化を行う辞書式復号化部21bを含む。
このような伸張器21によれば、当該伸張器21に入力された圧縮データ(つまり、ホストから発行された読み出しコマンドに応じてNAND型フラッシュメモリ3から読み出された読み出しデータ)に対してエントロピー復号化部21aによるエントロピー復号化が行われ、当該エントロピー復号化の結果に対して辞書式復号化が行われることにより、伸張器21から非圧縮データが出力される。このように伸張器21から出力された非圧縮データは、読み出しコマンドに対する応答としてホストに返される。
次に、上記した圧縮器11の消費電力量について説明する。圧縮器11の消費電力量は、当該消費電力量に関する指標に応じて変化すると考える。この場合において、上記したように圧縮器11が辞書式符号化部11a及びエントロピー符号化部11bを含む(つまり、辞書式符号化及びエントロピー符号化を行う)ものとすると、圧縮器11の消費電力量に関する指標は、例えば非圧縮データに対して辞書式符号化を行う際のマッチ頻度(以下、文字列のマッチ頻度と表記)及び当該辞書式符号化の後に行われるエントロピー符号化の対象となる不一致データの発生回数(以下、不一致文字列発生回数と表記)を含む。
なお、上記したように圧縮装置10に入力される非圧縮データは圧縮単位のデータであり、辞書式符号化においては、当該非圧縮データから部分的に切り出されるデータの各々を辞書式符号化データとして順次処理することにより、当該非圧縮データ全体を一致データ及び不一致データに置き換えることができる。この場合、上記した文字列のマッチ頻度とは、非圧縮データから部分的に切り出されたデータ(文字列)の各々に対して辞書式符号化が行われた際に一致データが出力された(つまり、ヒストリバッファに格納されている過去のデータと一致した)回数をいう。
本実施形態においては、上記した文字列のマッチ頻度が辞書式符号化部11aの消費電力量に大きく寄与するとの観点から、当該文字列のマッチ頻度(以下、第1指標PEと表記)を、圧縮器11の消費電力量に関係する指標として用いる。
また、エントロピー符号化部11bには辞書式符号化の結果である一致データまたは不一致データ(以下、シンボルと表記)が入力されるところ、上記した不一致文字列発生回数とは、当該エントロピー符号化部11bに入力される不一致データ(不一致文字列)の数をいう。
本実施形態においては、上記した不一致文字列発生回数がエントロピー符号化部11bの消費電力量に大きく寄与するとの観点から、当該不一致文字列発生回数(以下、第1指標PEと表記)を、圧縮器11の消費電力量に関係する指標として用いる。
ここで、上記した圧縮器11の消費電力量を予測するための第1予測モデルを生成するために、非圧縮データが圧縮器11に入力された際の第1指標PE及び第1指標PEを求める簡易な回路(以下、第1指標算出回路と表記)を用意する。この第1指標算出回路は、圧縮器11の一部と同等な回路であるが、非圧縮データを実際に圧縮する必要はなく、圧縮器11と比較して小さく、低消費電力量で動作可能である。
図4は、第1指標算出回路の一例を示している。図4に示すように、第1指標算出回路100は、第1算出器101及び第2算出器102を含む。
第1算出器101は、非圧縮データ(入力データ)Aが圧縮器11に入力された際の第1指標PE(A)を算出する。すなわち、第1算出器101によれば、非圧縮データAから第1指標PE(A)を得ることができる。
第2算出器102は、非圧縮データ(入力データ)Aが圧縮器11に入力された際の第1指標PE(A)を算出する。すなわち、第2算出器102によれば、非圧縮データAから第1指標PE(A)を得ることができる。
また、第1予測モデルを生成するために、圧縮器11に非圧縮データAが入力された場合における当該圧縮器11の消費電力量を例えばRTL(Resister Transfer Level)シミュレーション等により測定する。これによれば、非圧縮データAから圧縮器11の消費電力量W(A)を得ることができる。
ここでは、非圧縮データAから第1指標PE(A)、第1指標PE(A)及び消費電力量W(A)(以下、データセットと表記)が得られるものとして説明したが、このようなデータセットを、例えば予め用意されたM個の非圧縮データA~Aの各々から得るものとする。これによれば、M個のデータセットが得られる。
ここで、本実施形態において非圧縮データAが入力された際の圧縮器11の消費電力量WE(A)を予測する第1予測モデルが以下の式(1)のように表現されるものとする。
WE(A)=PE(A)×CE+PE(A)×CE+E 式(1)
なお、式(1)中のCE及びCEは相関係数であり、Eは線形回帰分析による切片である。
上記した式(1)のように表現される第1予測モデルによれば、相関係数CE及びCEと切片Eとを求めることができれば、非圧縮データAに基づく第1指標PE(A)及び第1指標PE(A)から当該非圧縮データAを圧縮する際の圧縮器11の消費電力量WE(A)を予測することができる。
このため、本実施形態においては、上記したM個のデータセットに対する回帰分析を行うことにより、式(1)における相関係数CE及びCEと切片Eとを算出する。
これによれば、上記したように算出された相関係数CE及びCEと切片Eとを上記した式(1)に反映することによって第1予測モデルが生成される。
次に、伸張器21の消費電力量について説明する。伸張器21の消費電力量は、当該消費電力量に関する指標に応じて変化すると考える。この場合において、上記したように伸張器21がエントロピー復号化部21a及び辞書式復号化部21bを含む(つまり、エントロピー復号化及び辞書式復号化を行う)ものとすると、伸張器21の消費電力量に関する指標は、例えばエントロピー復号化において復号化すべきシンボルの発生回数(以下、復号シンボルの発生回数と表記)及び辞書式復号化において復号化すべきマッチ長の発生回数(以下、復号マッチ長の発生回数と表記)を含む。
なお、エントロピー符号化においてはシンボル(辞書式符号化の結果である一致データ及び不一致データ)に対して符号が割り当てられるところ、上記した復号シンボルの発生回数とは、エントロピー復号化部21aに入力される圧縮データに含まれる符号(シンボルに割り当てられた符号)の数であり、非圧縮データを圧縮する際に圧縮器11に含まれるエントロピー符号化部11bに入力される全シンボルの数に相当する。
本実施形態においては、上記した復号シンボルの発生回数がエントロピー復号化部21aの消費電力量に大きく寄与するとの観点から、当該復号シンボルの発生回数(以下、第2指標PDと表記)を、伸張器21の消費電力量に関係する指標として用いる。
また、圧縮器11に含まれる辞書式符号化部11aにおいて非圧縮データから部分的に切り出されたデータが一致データに置き換えられている(つまり、当該データが過去のデータと一致した)場合、辞書式復号化においては当該一致データを非圧縮データから切り出されたデータ(文字列)に変換(復号化)する必要がある。このため、上記した復号マッチ長の発生回数とは、エントロピー復号化の結果として辞書式復号化部21bに入力される一致データの数であり、上記した辞書式符号化における文字列のマッチ頻度に相当する。
本実施形態においては、上記した復号マッチ長の発生回数が辞書式復号化部21bの消費電力量に大きく寄与するとの観点から、当該復号マッチ長の発生回数(以下、第2指標PD)と表記)を、伸張器21の消費電力量に関する指標として用いる。
ここで、上記した伸張器21の消費電力量を予測するための第2予測モデルを生成するために、圧縮データ(NAND型フラッシュメモリ3から読み出された読み出しデータ)が伸張器21に入力された際の第2指標PD及び第2指標PDを求める簡易な回路(以下、第2指標算出回路と表記)を用意する。なお、第2指標PDは圧縮器11に含まれるエントロピー符号化部11bに入力される全シンボルの数に相当し、第2指標PDは辞書式符号化における文字列のマッチ頻度に相当するため、第2指標算出回路は、例えば圧縮器11の一部と同等な回路により実現することができる。ただし、第2指標算出回路は、圧縮器11(の一部)とは異なる回路により実現される構成であってもよい。
図5は、第2指標算出回路の一例を示している。図5に示すように、第2指標算出回路200は、第1算出器201及び第2算出器202を含む。
第1算出器201は、非圧縮データAを圧縮した圧縮データ(入力データ)A´が伸張器21に入力された際の第2指標PD(A´)を算出する。
第2算出器202は、非圧縮データAを圧縮した圧縮データ(入力データ)A´が伸張器21に入力された際の第2指標PD(A´)を算出する。
なお、ここでは非圧縮データAを圧縮した圧縮データA´が伸張器21に入力されることを想定して説明しているが、予測モデル生成処理において圧縮器11は非圧縮データAを実際には圧縮していないため、第1算出器201は、非圧縮データAを入力として第2指標PD(A)を算出するように構成されているものする。すなわち、第1算出器201によれば、非圧縮データAから第2指標PD(A)を得ることができる。
同様に、第2算出器202は、非圧縮データAを入力として第2指標PD(A)を算出するように構成されているものとする。すなわち、第2算出器202によれば、非圧縮データAから第2指標PD(A)を得ることができる。
また、第2予測モデルを生成するために、非圧縮データAを圧縮した圧縮データA´が伸張器21に入力された場合における当該伸張器21の消費電力量を例えばRTLシミュレーション等により測定する。これによれば、非圧縮データAから伸張器21の消費電力量W(A)を得ることができる。まあ
ここでは、非圧縮データAから第2指標PD(A)、第2指標PD(A)及び消費電力量W(A)(データセット)が得られるものとして説明したが、このようなデータセットを、上記したM個の非圧縮データA~Aの各々から得るものとする。これによれば、M個のデータセットが得られる。
ここで、本実施形態において非圧縮データAが圧縮器11に入力され、当該圧縮器11から出力された圧縮データA´が伸張器21に入力された際の伸張器21の消費電力量WD(A)を予測する第2予測モデルが以下の式(2)のように表現されるものとする。
WD(A)=PD(A)×CD+PD(A)×CD+D 式(2)
なお、式(2)中のCD及びCDは相関係数であり、Dは線形回帰分析による切片である。
上記した式(2)のように表現される第2予測モデルによれば、相関係数CD及びCDと切片Dとを求めることができれば、非圧縮データAに基づく第2指標PD(A)及び第2指標PD(A)から伸張器21の消費電力量WD(A)を予測することができる。
このため、本実施形態においては、上記したM個のデータセットに対する回帰分析を行うことにより、式(2)における相関係数CD及びCDと切片Dとを算出する。
これによれば、上記したように算出された相関係数CD及びCDと切片Dとを上記した式(2)に反映することによって第2予測モデルが生成される。
上記した予測モデル生成処理においては、圧縮器11及び伸張器21の消費電力量と相関関係のある指標と測定された消費電力量とを含む大量のデータセットを用いてオフラインで回帰分析を行うことにより、圧縮器11の消費電力量を予測するための第1予測モデル及び伸張器21の消費電力量を予測するための第2予測モデルを生成することができる。
なお、上記した予測モデル生成処理は例えば圧縮伸張装置2eにおいて実行されてもよいし、当該圧縮伸張装置2e(またはメモリシステム1)の外部で実行されてもよいが、当該予測モデル生成処理によって生成された第1予測モデル及び第2予測モデルは、圧縮装置10に含まれる解析部13において保持される。
次に、図6を参照して、ホストから書き込みコマンド及び読み出しコマンドが発行された際の圧縮伸張装置2eの処理(圧縮伸張処理)について説明する。
まず、ホストから書き込みコマンドが発行された場合について説明する。この場合、ホストから発行された書き込みコマンドにおいて指定されている非圧縮データ(書き込みデータ)Bが圧縮伸張装置2eに備えられる圧縮装置10に入力される。
この場合、圧縮装置10に入力された非圧縮データBは、データバッファ12に格納されるとともに、解析部13に入力される。
ここで、解析部13は、上記した予測モデル生成処理において生成された第1予測モデル及び第2予測モデルを保持しているとともに、上記した図4に示す第1指標算出回路100及び図5に示す第2指標算出回路200を備えているものとする。
この場合、第1指標算出回路100に含まれる第1算出器101は、非圧縮データBから第1指標PE(B)を算出する。第1指標算出回路100に含まれる第2算出器102は、非圧縮データBから第1指標PE(B)を算出する。
次に、解析部13は、当該解析部13において保持されている第1予測モデルに第1算出器101によって算出された第1指標PE(B)及び第2算出器102によって算出された第1指標PE(B)を適用することによって、圧縮器11に非圧縮データBが入力された場合における当該圧縮器11の消費電力量を予測する。なお、図6においては便宜的に簡易に示されているが、解析部13によって予測される圧縮器11の消費電力量WE(B)は、上記したようにPE(B)×CE+PE(B)×CE+Eである。
また、第2指標算出回路200に含まれる第1算出器201は、非圧縮データBから第2指標PD(B)を算出する。第2指標算出回路200に含まれる第2算出器202は、非圧縮データBから第2指標PD(B)を算出する。
次に、解析部13は、当該解析部13において保持されている第2予測モデルに第1算出器201によって算出された第2指標PD(B)及び第2算出器202によって算出された第2指標PD(B)を適用することによって、非圧縮データBが圧縮器11に入力されることによって当該圧縮器11から出力された圧縮データB´が伸張器21に入力された際の伸張器21の消費電力量を予測する。なお、図6においては便宜的に簡易に示されているが、解析部13によって予測される伸張器21の消費電力量WD(B)は、上記したようにPD(B)×CD+PD(B)×CD+Dである。
制御部14は、閾値を保持しており、上記したように予測された圧縮器11の消費電力量(WE(B))及び伸張器21の消費電力量(WD(B))の合計値(以下、予測消費電力量と表記)と当該閾値とを比較する。制御部14は、予測消費電力量と閾値との比較結果に基づいて、圧縮器11を制御する。この場合、制御部14は、非圧縮データに対する非圧縮または圧縮を決定(つまり、圧縮器11を動作させるか否かを判定)し、モード情報を圧縮器11及び選択器15に出力する。
ここで、制御部14から出力されるモード情報は、非圧縮モード情報または圧縮モード情報である。非圧縮モード情報は圧縮器11の動作を停止させることを示す情報であり、制御部14は、予測消費電力量が閾値以上である場合に非圧縮モード情報を出力する。一方、圧縮モード情報は圧縮器11を動作させることを示す情報であり、制御部14は、予測消費電力量が閾値未満である場合に圧縮モード情報を出力する。制御部14から出力されるモード情報(非圧縮モード情報及び圧縮モード情報)は、例えばフラグのような情報であればよい。
制御部14から非圧縮モード情報が出力された場合、圧縮器11の動作は、当該非圧縮モードに基づいて停止する。
この場合、圧縮器11からは圧縮データB´が出力されないため、選択器15は、制御部14から出力された非圧縮モード情報に基づいて、データバッファ12に格納された非圧縮データBを選択し、当該非圧縮データBを出力する。
選択器15から出力された非圧縮データBは、上記した非圧縮モード情報が付加された状態でNAND型フラッシュメモリ3に書き込まれる。
一方、制御部14から圧縮モード情報が出力された場合、圧縮器11は、データバッファ12に格納された非圧縮データBを圧縮するように動作する。これにより、圧縮器11は、非圧縮データBを圧縮した圧縮データB´を選択器15に出力する。
この場合、選択器15は、制御部14から出力された圧縮モード情報に基づいて、圧縮器11から出力された圧縮データB´を選択し、当該圧縮データB´を出力する。
選択器15から出力された圧縮データB´は、上記した圧縮モード情報が付加された状態でNAND型フラッシュメモリ3に書き込まれる。
次に、非圧縮データBが指定された読み出しコマンドがホストから発行された場合について説明する。この場合、ホストから発行された読み出しコマンドに基づいて読み出しデータがNAND型フラッシュメモリ3から読み出され、当該読み出しデータは、伸張装置20に入力される。
ここで、伸張装置20に入力される読み出しデータは、非圧縮データBまたは圧縮データB´である。なお、上記したように非圧縮データBには非圧縮モード情報が付加されており、圧縮データB´には圧縮モード情報が付加されている。
まず、伸張装置20に入力された読み出しデータに非圧縮モード情報が付加されている場合を想定する。
この場合、非圧縮モード情報が伸張器21及び選択器22に出力され、当該伸張器21の動作は、当該非圧縮モード情報に基づいて停止する。
また、非圧縮モード情報が付加されている読み出しデータは非圧縮データBであり、この非圧縮データBは、選択器15に出力される。選択器15は、非圧縮モード情報に基づいて非圧縮データBを選択し、当該非圧縮データBを出力する。
一方、伸張装置20に入力された読み出しデータに圧縮モード情報が付加されている場合を想定する。
この場合、圧縮モード情報が伸張器21及び選択器22に出力され、伸張器21は、当該圧縮モード情報に基づいて動作する。具体的には、圧縮モード情報が付加されている読み出しデータは圧縮データB´であり、伸張器21は、当該圧縮データB´を入力し、当該圧縮データB´を伸張した非圧縮データBを出力する。
選択器15は、非圧縮モード情報に基づいて伸張器21から出力された非圧縮データBを選択し、当該非圧縮データBを出力する。
なお、上記したように選択器15から出力された非圧縮データBは、上記したホストから発行された読み出しコマンドに対する応答として当該ホストに返される。
上記したように本実施形態に係る圧縮装置10は、非圧縮データ(第1データ)に対する解析結果に基づいて、圧縮器11の動作を停止させることを示す非圧縮モード情報または当該圧縮器11を動作させることを示す圧縮モード情報を出力し、非圧縮モード情報が出力された場合に非圧縮データを出力し、圧縮モード情報が出力された場合に圧縮器11から出力された圧縮データ(第2データ)を出力する。また、圧縮装置10(選択器15)から非圧縮データが出力される場合、当該非圧縮データには非圧縮モード情報が付加される。一方、圧縮装置10(選択器15)から圧縮データが出力される場合、当該圧縮データには圧縮モード情報が付加される。
本実施形態においては、このような構成により、圧縮伸張装置2e(圧縮装置10)に入力される非圧縮データの解析結果に応じて圧縮器11の動作を停止し、当該圧縮伸張装置2e(圧縮装置10)の消費電力量を抑制することが可能となる。
なお、本実施形態においては、圧縮器11の消費電力量(第1消費電力量)及び伸張器21の消費電力量(第2消費電力量)を非圧縮データから予測し、当該予測された消費電力量の合計値(予測消費電力量)が閾値以上である場合に非圧縮モード情報を出力し、当該予測消費電力量が閾値未満である場合に圧縮モード情報を出力する。ここでは、予測消費電力量が圧縮器11の消費電力量及び伸張器21の消費電力量の合計値であるものとして説明したが、当該予測消費電力量は、圧縮器11の消費電力量及び伸張器21の消費電力量の一方であってもよい。
これによれば、非圧縮データに基づいて消費される電力量が高いと予測される場合に圧縮伸張装置2eの消費電力量を抑制することができる。
また、例えば圧縮伸張装置2eの消費電力量が高い場合、当該圧縮伸張装置2e内の回路全体の発熱量も高くなり、サーマルスロット状態(つまり、温度を抑制するために性能を低下させた状態)となる場合がある。この場合、圧縮器11及び伸張器21を動作させた(つまり、非圧縮データを圧縮した)ために、NAND型フラッシュメモリ3へのデータの書き込み及び読み出し速度の低下を招くことになる。よって、本実施形態のように非圧縮データに応じて当該非圧縮データに対する非圧縮及び圧縮を決定することは、NAND型フラッシュメモリ3へのデータの書き込み及び読み出し速度の低下を抑制する観点からも有用である。
ここで、例えば過去に入力された非圧縮データを圧縮した結果(実績)から次に入力される非圧縮データを圧縮する際の圧縮器11の動作を停止するような構成が考えられるが、このような構成の場合、過去に入力された非圧縮データと相関関係がない非圧縮データが入力されると、当該圧縮器11の動作の停止が適切であるという保証はない。
具体的には、例えば圧縮器11が同一のデータが所定の間隔で繰り返し出現する場合に圧縮効果が高い辞書式符号化と、同一のデータが連続して出現する場合に圧縮効果が高いランレングス符号化を行う場合を想定する。このような場合に、過去に入力された非圧縮データにおいて同一のデータが連続して出現したことにより辞書式符号化(モジュール)の動作を停止した後に、同一のデータが繰り返し出現する非圧縮データが入力された場合、ランレングス符号化では当該非圧縮データを適切に圧縮(符号化)することができないため、圧縮効率が低下する。
これに対して、本実施形態によれば、圧縮の対象として入力される非圧縮データを解析(評価)することで当該非圧縮データに対する非圧縮または圧縮を決定する構成であるため、圧縮効率の低下を抑制することができる。
なお、本実施形態に係る伸張装置20は、非圧縮モード情報が付加された読み出しデータ(非圧縮データ)が入力された場合、当該非圧縮モード情報に基づいて伸張器21の動作を停止して非圧縮データを出力する。一方、伸張装置20は、圧縮モード情報が付加された読み出しデータ(圧縮データ)が入力された場合、当該圧縮モード情報に基づいて伸張器21を動作させて圧縮データを伸張した非圧縮データを出力するように動作すればよい。
これによれば、圧縮装置10において圧縮器11の動作が停止された場合には、伸張装置20においても伸張器21の動作が停止されるため、当該伸張装置20の消費電力量を抑制することが可能である。
また、本実施形態において、圧縮器11の消費電力量を予測するための第1予測モデル及び伸張器21の消費電力量を予測するための第2予測モデルが保持され、当該第1予測モデルは、例えばM個の非圧縮データ(複数の第3データ)から算出された圧縮器11の消費電力量に関する指標(第1指標)と、当該非圧縮データを圧縮データに圧縮するシミュレーションにより測定された圧縮器11の消費電力量とに対して回帰分析を行うことにより生成される。また、第2予測モデルは、例えばM個の非圧縮データから算出された伸張器21の消費電力量に関する指標(第2指標)と、圧縮データを非圧縮データに伸張するシミュレーションにより測定された伸張器21の消費電力量とに対して回帰分析を行うことにより生成される。
本実施形態においては、上記した第1予測モデル及び第2予測モデルを用いることによって精度の高い圧縮器11の消費電力量及び伸張器21の消費電力量を予測することができる。具体的には、非圧縮データが圧縮装置10に入力された場合、当該非圧縮データから指標(第1及び第2指標)を算出し、当該指標を第1予測モデル及び第2予測モデルに適用することによって圧縮器11の消費電力量及び伸張器21の消費電力量を予測することができる。
なお、本実施形態においては、圧縮器11が辞書式符号化とエントロピー符号化とを組み合わせた圧縮アルゴリズムにより非圧縮データを圧縮するものとして説明したが、圧縮器11においては他の圧縮アルゴリズムが採用されていてもよい。
また、本実施形態においては、圧縮伸張装置2eがコントローラ2に組み込まれているものとして説明したが、当該圧縮伸張装置2eは、コントローラ2の外部に設けられていてもよい。更に、圧縮伸張装置2eは、メモリシステム1の外部に設けられていてもよい。また、本実施形態においては、圧縮伸張装置2eが圧縮装置10及び伸張装置20を含む1つの装置である場合を想定しているが、当該圧縮装置10及び伸張装置20はそれぞれ独立した装置として実現されていてもよい。
更に、本実施形態においては非圧縮データが文字列データ(テキスト)であるものとして主として説明したが、当該非圧縮データは、例えば画像データ等の他の形式のデータであってもよい。
(第2実施形態)
次に、第2実施形態について説明する。なお、本実施形態に係るメモリシステムのハードウェア構成については、前述した第1実施形態と同様であるため、便宜的に、図1を用いて説明する。
本実施形態は、非圧縮データを圧縮した場合に想定される圧縮比を考慮して圧縮器11を制御する(つまり、非圧縮データの非圧縮及び圧縮を切り替える)点で、前述した第1実施形態とは異なる。
まず、図7を参照して、本実施形態に係る圧縮装置10の構成の一例について説明する。図7においては、前述した図2に示す圧縮装置10と同様の部分には同一参照符号を付して、その詳しい説明を省略する。ここでは、図2に示す圧縮装置10と異なる部分について主に述べる。なお、本実施形態に係る伸張装置20の構成は前述した第1実施形態と同様であるため、図7においては省略されている。
圧縮装置10は前述した第1実施形態と同様に解析部13を含むが、本実施形態における解析部13は、図7に示すように、消費電力予測部13a及び圧縮比予測部13bを含む。
消費電力予測部13aは、前述した第1実施形態において説明したように、解析部13に入力された非圧縮データから圧縮器11の消費電力量及び伸張器21の消費電力量を予測する。なお、本実施形態にける消費電力予測部13aは、前述した第1実施形態における解析部13に相当する。
圧縮比予測部13bは、解析部13に入力された非圧縮データを解析(評価)し、非圧縮データを圧縮した際の圧縮比を予測する。なお、本実施形態において、圧縮比とは、非圧縮データのサイズに対する圧縮データ(当該非圧縮データを圧縮した圧縮データ)のサイズの割合をいう。
圧縮比予測部13bは、例えば非圧縮データから当該非圧縮データの一次エントロピーを算出し、当該一次エントロピーに基づいて非圧縮データが圧縮される程度を予測する。なお、非圧縮データの一次エントロピーは例えば当該非圧縮データにおける文字列の出現頻度等に基づくものであり、当該非圧縮データを圧縮した際の圧縮比は、当該非圧縮データから算出される一次エントロピーに対応づけて予め定義されているものとする。これによれば、非圧縮データの一次エントロピーを算出することにより当該非圧縮データを圧縮した際の圧縮比を予測することができる。
なお、本実施形態における圧縮比は、例えば非圧縮データを効率的に圧縮することができるか否かに関する指標であればよく、他の手法によって予測されても構わない。この場合、圧縮比は、例えば第1算出器101によって算出される第1指標(マッチ頻度)と上記した一次エントロピーに基づいて予測されてもよい。
制御部14は、消費電力予測部13aによって予測された圧縮器11の消費電力量及び伸張器21の消費電力量の合計値(つまり、予測消費電力量)と圧縮比予測部13bによって予測された圧縮比とに基づいて、圧縮器11を制御する。
次に、本実施形態においてホストから書き込みコマンドが発行された際の圧縮装置10の動作について説明する。
ホストから書き込みコマンドが発行された場合、当該書き込みコマンドにおいて指定されている非圧縮データ(書き込みデータ)が圧縮装置10に入力される。
この場合、圧縮装置10に入力された非圧縮データは、データバッファ12に格納されるとともに、解析部13に入力される。
次に、解析部13に含まれる消費電力予測部13aは、第1予測モデルを用いて非圧縮データから圧縮器11の消費電力量を予測するとともに、第2予測モデルを用いて当該非圧縮データから伸張器21の消費電力量を予測する。なお、消費電力予測部13aが圧縮器11の消費電力量及び伸張器21の消費電力量を予測する処理については、前述した第1実施形態において説明した解析部13の処理と同様であるため、ここではその詳しい説明を省略する。消費電力予測部13aによって予測された圧縮器11の消費電力量及び伸張器21の消費電力量は、制御部14に出力される。
また、解析部13に含まれる圧縮比予測部13bは、非圧縮データから当該非圧縮データを圧縮した際の圧縮比を予測する。なお、圧縮比予測部13bによって予測される圧縮比については上記した通りであるため、ここではその詳しい説明を省略する。圧縮比予測部13bによって予測された圧縮比は、制御部14に出力される。
ここで、制御部14は、消費電力予測部13aから出力された圧縮器11の消費電力量及び伸張器21の消費電力量の合計値(つまり、予測消費電力量)と比較される閾値(以下、第1閾値と表記)と、圧縮比予測部13bから出力された圧縮比(以下、予測圧縮比と表記)と比較される閾値(以下、第2閾値と表記)とを保持している。
制御部14は、予測消費電力量と第1閾値との比較結果と、予測圧縮比と第2閾値との比較結果とに基づいて、非圧縮データに対する非圧縮または圧縮を決定し、モード情報(非圧縮モード情報または圧縮モード情報)を圧縮器11及び選択器15に出力する。
前述した第1実施形態においては予測消費電力量が閾値(第1閾値)以上である場合には非圧縮モード情報が出力され、当該予測消費電力量が閾値未満である場合には圧縮モード情報が出力されるものとして説明したが、本実施形態においては、例えば予測圧縮比が高ければ予測消費電力量が高くても圧縮器11を動作させる、または予測消費電力量が低くても予測圧縮比が低いような場合には圧縮器11の動作を停止させるような制御が行われる。
具体的には、例えば予測消費電力量が第1閾値以上であり、予測圧縮比が第2閾値以上である場合、制御部14は、非圧縮データに対する圧縮を決定し、圧縮モード情報を出力する。
また、例えば予測消費電力量が第1閾値未満であり、予測圧縮比が第2閾値未満である場合、制御部14は、非圧縮データに対する非圧縮を決定し、非圧縮モード情報を出力する。
なお、例えば予測消費電力量が第1閾値以上であり、予測圧縮比が第2閾値未満である場合、制御部14は、非圧縮データに対する非圧縮を決定し、非圧縮モード情報を出力する。また、例えば予測消費電力量が第1閾値未満であり、予測圧縮比が第2閾値以上である場合、制御部14は、非圧縮データに対する圧縮を決定し、圧縮モード情報を出力する。
上記した制御部14の動作は一例であり、本実施形態においては、予測消費電力量及び予測圧縮比に基づいて非圧縮モード情報または圧縮モード情報が出力される構成であればよい。
上記したように制御部14から非圧縮モード情報または圧縮モード情報が出力された後の圧縮装置10の動作は前述した第1実施形態と同様であるため、ここではその詳しい説明を省略する。
また、本実施形態における伸張装置20の動作は前述した第1実施形態と同様であるため、ここではその詳しい説明を省略する。
上記したように本実施形態においては、非圧縮データを圧縮した際の圧縮比を当該非圧縮データから予測し、前述した第1実施形態における予測消費電力量に加えて当該予測された圧縮比に基づいて、非圧縮モード情報または圧縮モード情報を出力する。
本実施形態においては、このような構成により、単に予測消費電力量に基づいて圧縮器11を制御する場合と比較して、予測消費電力量と予測圧縮比とを考慮したより効率的な圧縮器11(及び伸張器21)の制御を実現することができる。
なお、本実施形態においては一次エントロピーに基づいて圧縮比を予測する例について説明したが、当該圧縮比は、前述した第1実施形態において説明したような回帰分析を行うことにより生成される予測モデルを用いて予測されてもよい。このような予測モデルは、例えば前述した第1指標PE及び第1指標PEを用いて生成され得る。具体的には、圧縮比を予測するための予測モデルは、第1指標PE、第1指標PE及びシミュレーションにより測定される圧縮比を含む大量のデータセットに対する回帰分析を用いて相関係数等を算出することにより生成されればよい。
更に、本実施形態においては予測消費電力量及び予測圧縮比の両方に基づいて圧縮器11を制御するものとして説明したが、本実施形態においては、例えば予測圧縮比(つまり、解析部13による解析結果)のみに基づいて圧縮器11を制御する構成であっても圧縮伸張装置2e(圧縮装置10)の消費電力量を抑制することが可能である。
(第3実施形態)
次に、第3実施形態について説明する。なお、本実施形態に係るメモリシステムのハードウェア構成については、前述した第1実施形態と同様であるため、便宜的に、図1を用いて説明する。
本実施形態は、予測消費電力量の累積値を考慮して圧縮器を制御する(つまり、非圧縮データに対する非圧縮及び圧縮を切り替える)点で、前述した第1実施形態とは異なる。
まず、図8を参照して、本実施形態に係る圧縮装置10の構成の一例について説明する。図8においては、前述した図2に示す圧縮装置10と同様の部分には同一参照符号を付して、その詳しい説明を省略する。ここでは、図2に示す圧縮装置10と異なる部分について主に述べる。なお、本実施形態に係る伸張装置20の構成は前述した第1実施形態と同様であるため、図8においては省略されている。
圧縮装置10は前述した第1実施形態と同様に制御部14を含むが、本実施形態における制御部14は、図8に示すように予測消費電力累積部14aを含む。
圧縮装置10には圧縮単位の非圧縮データが順次入力されるが、予測消費電力累積部14aは、バッファを有し、当該非圧縮データ毎に解析部13から出力される圧縮器11の消費電力量及び伸張器21の消費電力量の合計値(つまり、予測消費電力量)の累積値を当該バッファに格納する。
制御部14は、前述した第1実施形態において説明したように予測消費電力量に基づいて圧縮器11を制御するとともに、予測消費電力累積部14aが有するバッファに格納されている予測消費電力量の累積値に基づいて当該圧縮器11を制御する。
次に、本実施形態においてホストから書き込みコマンドが発行された際の圧縮装置10の動作について説明する。
ホストからの書き込みコマンドが発行された場合、当該書き込みコマンドにおいて指定されている非圧縮データ(書き込みデータ)が圧縮装置10に入力される。
この場合、圧縮装置10に入力された非圧縮データは、データバッファ12に格納されるとともに、解析部13に入力される。
次に、解析部13は、第1予測モデルを用いて非圧縮データから圧縮器11の消費電力量を予測するとともに、第2予測モデルを用いて当該非圧縮データから伸張器21の消費電力量を予測する。なお、解析部13が圧縮器11の消費電力量及び伸張器21の消費電力量を予測する処理については前述した第1実施形態と同様であるため、ここではその詳しい説明を省略する。解析部13によって予測された圧縮器11の消費電力量及び伸張器21の消費電力量は、制御部14に出力される。
ここで、制御部14に含まれる予測消費電力累積部14aはバッファを有し、当該バッファには上記した非圧縮データが圧縮装置10に入力されるまでの過去の非圧縮データに基づいて予測された消費電力量(つまり、予測消費電力量)の累積値が格納されている。このため、予測消費電力累積部14aは、バッファに格納されている予測消費電力量の累積値に上記した予測消費電力量を加算し、当該予測消費電力量の累積値を更新する。
次に、制御部14は、解析部13から出力された圧縮器11の消費電力量及び伸張器21の消費電力量の合計値(つまり、予測消費電力量)と比較される閾値(第1閾値)を保持しており、当該予測消費電力量と当該第1閾値とを比較する。
また、制御部14は、予測消費電力累積部14aによって更新された予測消費電力量の累積値と比較される閾値(以下、第3閾値と表記)を保持しており、当該予測消費電力量の累積値と当該第3閾値とを比較する。
制御部14は、上記した予測消費電力量と第1閾値との比較結果と、予測消費電力量の累積値と第3閾値との比較結果とに基づいて、圧縮器11を制御する(つまり、非圧縮データに対する非圧縮及び圧縮を切り替える)。
具体的には、例えば予測消費電力量が第1閾値以上であり、予測消費電力量の累積値が第3閾値以上である場合、制御部14は、圧縮器11の動作を停止させる(つまり、非圧縮データを非圧縮とする)ことを示す非圧縮モード情報を圧縮器11及び選択器15に出力する。また、予測消費電力量が第1閾値以上であり、予測消費電力量の累積値が第3閾値未満である場合、制御部14は、同様に非圧縮モード情報を圧縮器11及び選択器15に出力する。更に、予測消費電力量が第1閾値未満であり、予測消費電力量の累積値が第3閾値以上である場合、制御部14は、同様に非圧縮モード情報を圧縮器11及び選択器15に出力する。一方、予測消費電力量が第1閾値未満であり、予測消費電力量の累積値が第3閾値未満である場合、制御部14は、圧縮器11を動作させる(つまり、非圧縮データを圧縮する)ことを示す圧縮モード情報を圧縮器11及び選択器15に出力する。
これによれば、例えば個々の予測消費電力量が第1閾値未満であっても、予測消費電力量の累積値が第3閾値以上であるような場合や、予測消費電力量の累積値が第3閾値未満であっても、特定の予測消費電力量が第1閾値以上であるような場合に、圧縮器11の動作を停止させるような制御が可能となる。
なお、上記した予測消費電力累積部14aが有するバッファに格納される予測消費電力量の累積値は、例えば一定の期間が経過した後または一定の数の非圧縮データについて予測消費電力量が加算(累積)された後等にリセットされる。これによれば、予測消費電力量の累積値が第3閾値以上となった後に、圧縮器11の動作が継続的に停止されるような状況を回避することができる。
上記したように制御部14から非圧縮モード情報または圧縮モード情報が出力された後の圧縮装置10の動作は前述した第1実施形態と同様であるため、ここではその詳しい説明を省略する。
また、本実施形態における伸張装置20の動作は前述した第1実施形態と同様であるため、ここではその詳しい説明を省略する。
上記したように本実施形態においては、圧縮装置10に複数の非圧縮データが順次入力される場合、当該非圧縮データ毎に圧縮器11の消費電力量及び伸張器21の消費電力量を予測し、当該非圧縮データ毎に予測された圧縮器11の消費電力量及び伸張器21の消費電力量(つまり、予測消費電力量)の累積値に基づいて、非圧縮モード情報または圧縮モード情報が出力される(つまり、圧縮器11が制御される)。
本実施形態においては、このような構成により、一時的な消費電力量のみではなく、一定の期間の消費電力量が高い場合にも圧縮器11の動作を停止させるような制御が可能となる。
なお、本実施形態においては予測消費電力量及び予測消費電力量の累積値の両方に基づいて圧縮器11を制御するものとして説明したが、例えば予測消費電力量の累積値のみに基づいて圧縮器11を制御する構成とすることも可能である。
また、例えば予測消費電力量の累積値のみに基づいて圧縮器11を制御する構成の場合には、例えば複数の非圧縮データをデータバッファ12に格納しておき、当該複数の非圧縮データの各々から予測された消費電力量の累積値に基づいて、当該複数の非圧縮データに対する非圧縮及び圧縮を一括して切り替えるようにしても構わない。
また、本実施形態においては一定の期間が経過した後等に予測消費電力量の累積値がリセットされるものとして説明したが、例えば予測消費電力量を格納するバッファを非圧縮データ毎に用意し、当該バッファに格納されている予測消費電力量が一定の期間が経過した後にリセットされてもよい。このような構成によれば、非圧縮データから予測された消費電力量単位でリセットされるため、例えば常に直近の所定の数の非圧縮データから予測された消費電力量の累積値に基づいて圧縮器11を制御することが可能となる。
また、本実施形態においては、圧縮器11の消費電力量及び伸張器21の消費電力量の合計値の累積値を用いるものとして説明したが、圧縮器11の消費電力量の累積値のみを用いる構成であってもよい。
本実施形態においては前述した第1実施形態において説明した構成において更に予測消費電力量の累積値を考慮して圧縮器11を制御するものとして説明したが、本実施形態は、前述した第2実施形態と組み合わせた構成としてもよい。
(第4実施形態)
次に、第4実施形態について説明する。なお、本実施形態に係るメモリシステムのハードウェア構成については、前述した第1実施形態と同様であるため、便宜的に、図1を用いて説明する。
本実施形態は、制御部14から出力されるモード情報に従って圧縮器が部分的に制御される点で、前述した第1実施形態等とは異なる。
まず、図9を参照して、本実施形態に係る圧縮伸張装置2eの構成の一例について説明する。図9においては、前述した図2と同様の部分には同一参照符号を付して、その詳しい説明を省略する。ここでは、図2と異なる部分について主に述べる。
圧縮装置10は前述した第1実施形態と同様に圧縮器11を含むが、本実施形態における圧縮器11は、複数の処理部(第1処理部及び第2処理部)を含むように構成されている。
第1処理部は、データを第1圧縮方式で圧縮する。なお、図9に示す例では、第1処理部は、辞書式符号化を行う辞書式符号化部11aである。辞書式符号化部11aについては前述した通りであるため、ここではその詳しい説明を省略する。
第2処理部は、データを第2圧縮方式で圧縮する。なお、図9に示す例では、第2処理部は、エントロピー符号化を行うエントロピー符号化部11bである。エントロピー符号化部11bについては前述した通りであるため、ここではその詳しい説明を省略する。
なお、図9においては2つの処理部(辞書式符号化部11a及びエントロピー符号化部11b)が示されているが、圧縮器11は、3つ以上の処理部を含む構成であってもよい。
本実施形態において制御部14は前述した第1実施形態において説明したように予測消費電力量に基づいてモード情報(非圧縮モード情報または圧縮モード情報)を出力するが、本実施形態における圧縮モード情報は、圧縮器11に含まれる辞書式符号化部11a及びエントロピー符号化部11bのうちの少なくとも1つを動作させることを示す情報である。なお、本実施形態における非圧縮モード情報は、圧縮器11に含まれる辞書式符号化部11a及びエントロピー符号化部11bの両方(つまり、複数の処理部の全て)の動作を停止させることを示す情報である。
本実施形態における圧縮器11は、上記した制御部14から出力されるモード情報に基づいて制御される。
なお、上記したように圧縮器11が複数の処理部を含む構成である場合、本実施形態における伸張装置20に備えられる伸張器21は、当該複数の処理部に対応する複数の処理部を含むように構成される。
すなわち、圧縮器11がデータを第1圧縮方式で圧縮する第1処理部及びデータを第2圧縮方式で圧縮する第2処理部を含む場合、伸張器21は、第2圧縮方式で圧縮したデータを伸張する第3処理部及び第1圧縮方式で圧縮したデータを伸張する第4処理部を含む。
具体的には、図9に示すように、圧縮器11が辞書式符号化部11a及びエントロピー符号化部11bを含む場合には、伸張器21は、エントロピー符号化部11bによってエントロピー符号化が行われたデータを復号化するエントロピー復号化部21a(第3処理部)及び辞書式符号化部11aによって辞書式符号化が行われたデータを復号化する辞書式復号化部21b(第4処理部)を含む。
次に、本実施形態においてホストから書き込みコマンド及び読み出しコマンドが発行された際の圧縮伸張装置2eの処理について説明する。
まず、ホストから書き込みコマンドが発行された場合について説明する。この場合、ホストから発行された書き込みコマンドにおいて指定されている非圧縮データ(書き込みデータ)が圧縮装置10に入力される。
圧縮装置10に入力された非圧縮データは、データバッファ12に格納されるとともに、解析部13に入力される。
次に、解析部13は、第1予測モデルを用いて非圧縮データから圧縮器11の消費電力量を予測するととともに、第2予測モデルを用いて当該非圧縮データから伸張器21の消費電力量を予測する。なお、解析部13が圧縮器11の消費電力量及び伸張器21の消費電力量を予測する処理については前述した第1実施形態と同様であるため、ここではその詳しい説明を省略する。解析部13によって予測された圧縮器11の消費電力量及び伸張器21の消費電力量は、制御部14に出力される。
制御部14は、解析部13から出力された圧縮器11の消費電力量及び伸張器21の消費電力量に基づいて、圧縮器11(に含まれる辞書式符号化部11a及びエントロピー符号化部11b)を制御する。
前述した第1実施形態においては、例えば予測消費電力量(圧縮器11の消費電力量及び伸張器21の消費電力量の合計値)が閾値以上である場合に当該圧縮器11全体の動作を停止することを示す非圧縮モード情報を制御部14が出力し、当該予測消費電力量が閾値未満である場合に圧縮器11全体を動作させることを示す圧縮モード情報を制御部14が出力するものとして説明したが、本実施形態においては、圧縮器11に含まれる辞書式符号化部11a及びエントロピー符号化部11bを個別に制御する。
具体的には、制御部14は、例えば第4閾値及び当該第4閾値よりも値が低い第5閾値を保持しているものとする。
この場合、本実施形態における制御部14は、例えば上記した予測消費電力量が第4閾値以上である場合、圧縮器11に含まれる辞書式符号化部11a及びエントロピー符号化部11bの両方の動作を停止させることを示す非圧縮モード情報を出力する。
また、制御部14は、予測消費電力量が第5閾値未満である場合、圧縮器11に含まれる辞書式符号化部11a及びエントロピー符号化部11bの両方を動作させることを示す圧縮モード情報(以下、第1圧縮モード情報と表記)を出力する。
一方、制御部14は、予測消費電力量が第4閾値未満であり、かつ、第5閾値以上である場合、圧縮器11に含まれる辞書式符号化部11a及びエントロピー符号化部11bの一方のみを動作させる(つまり、一方のみの動作を停止させる)ことを示す圧縮モード情報(以下、第2圧縮モード情報と表記)を出力する。この場合には、例えばエントロピー符号化を行わないことにより圧縮伸張装置2e(圧縮器11)の消費電力量を抑制するとともに、辞書式符号化を行うことによりNAND型フラッシュメモリ3に書き込まれるデータ量を削減するような制御を実現することができる。すなわち、第2圧縮モード情報が制御部14から出力された場合には、非圧縮モード情報が出力されたときと比較して消費電力量の抑制効果は低く、第1圧縮モード情報が出力されたときと比較してNAND型フラッシュメモリ3に書き込まれるデータ量の削減効果は低いが、当該消費電力量の抑制とデータ量の削減とを両立することができる。なお、予測消費電力量が第4閾値未満であり、かつ、第5閾値以上である場合に辞書式符号化部11a及びエントロピー符号化部11bのいずれを動作させるかは予め定められていればよいが、当該予測消費電力量等に応じて動的に決定されてもよい。
上記したように制御部14から非圧縮モード情報が出力された場合には、当該非圧縮モード情報が付加された非圧縮データが選択器15を介してNAND型フラッシュメモリ3に書き込まれる。一方、制御部14から第1または第2圧縮モード情報が出力された場合には、当該第1または第2圧縮モード情報が付加された圧縮データ(圧縮器11から出力された圧縮データ)が選択器15を介してNAND型フラッシュメモリ3に書き込まれる。
次に、ホストから読み出しコマンドが発行された場合について説明する。この場合、ホストから発行された読み出しコマンドに基づいて読み出しデータがNAND型フラッシュメモリ3から読み出され、当該読み出しデータは、伸張装置20に入力される。
ここで、伸張装置20に入力される読み出しデータには非圧縮モード情報、第1圧縮モード情報または第2圧縮モード情報が付加されており、伸張装置20においては、当該非圧縮モード情報、第1圧縮モード情報または第2圧縮モード情報に基づいて圧縮装置10に対応する動作が行われる。
具体的には、伸張装置20に入力された読み出しデータに非圧縮モード情報が付加されている場合、当該読み出しデータは非圧縮データであるため、伸張器21の動作は停止され、当該非圧縮データが選択器22を介して出力される。
また、伸張装置20に入力された読み出しデータに第1圧縮モード情報が付加されている場合、当該読み出しデータは圧縮器11に含まれる辞書式符号化部11a及びエントロピー符号化部11bの両方を動作させることによって圧縮器11から出力された圧縮データであるため、伸張器21に含まれるエントロピー復号化部21a及び辞書式復号化部21bの両方を動作させることによって伸張器21から出力された非圧縮データ(つまり、当該圧縮データを伸張した非圧縮データ)が選択器22を介して出力される。
一方、伸張装置20に入力された読み出しデータに第2圧縮モード情報が付加されている場合、当該読み出しデータは圧縮器11に含まれる辞書式符号化部11a及びエントロピー符号化部11bの一方を動作させることによって圧縮器11から出力された圧縮データであるため、伸張器21に含まれるエントロピー復号化部21a及び辞書式復号化部21bの一方を動作させることによって伸張器21から出力された非圧縮データ(つまり、当該圧縮データを伸張した非圧縮データ)が選択器22を介して出力される。なお、圧縮器11において辞書式符号化部11aのみが動作している場合には、伸張器21においても同様に、当該辞書式符号化部11aに対応する辞書式復号化部21bが動作する。また、圧縮器11においてエントロピー符号化部11bのみが動作している場合には、伸張器21においても同様に、当該エントロピー符号化部11bに対応するエントロピー復号化部21aのみが動作する。
上記したように本実施形態においては圧縮器11がデータを第1圧縮方式で圧縮する第1処理部(例えば、辞書式符号化部11a)及びデータを第2圧縮方式で圧縮する第2処理部(例えば、エントロピー符号化部11b)を含み、本実施形態における圧縮モード情報は第1処理部及び第2処理部のうちの少なくとも1つを動作させることを示す情報である。
また、本実施形態において伸張器21は第2圧縮方式で圧縮したデータを伸張(復号)する第3処理部(例えば、エントロピー復号化部21a)及び第1圧縮方式で圧縮したデータを伸張(復号)する第4処理部(例えば、辞書式復号化部21b)を含み、当該伸張装置20は、非圧縮モード情報が付加された読み出しデータ(非圧縮データ)が入力された場合、当該非圧縮モード情報に基づいて伸張器21(第3処理部及び第4処理部)の動作を停止させて当該非圧縮データを出力する。また、伸張装置20は、圧縮モード情報が付加された読み出しデータ(圧縮データ)が入力された場合、当該圧縮モード情報に基づいて第3処理部及び第4処理部のうちの少なくとも1つを動作させて当該圧縮データを伸張(復号)した非圧縮データを出力する。
本実施形態においては、上記した構成により、前述した第1実施形態と比較して、圧縮器11及び伸張器21の動作を部分的に細かく制御(設定)することができるため、例えば消費電力量を抑制しながら非圧縮データを圧縮するような動作を行うことが可能となる。
なお、本実施形態においては、例えば圧縮器11に含まれる辞書式符号化部11a(第1処理部)及びエントロピー符号化部11b(第2処理部)のうちの少なくとも一方の動作を停止させることにより消費電力量を抑制するが、例えば辞書式符号化部11aまたはエントロピー符号化部11bの動作を制御するためのパラメータを変更することによっても圧縮伸張装置2e(圧縮器11)の消費電力量を抑制することができる場合がある。
具体的には、上記したように辞書式符号化においてはヒストリバッファから非圧縮データから部分的に切り出されるデータと一致する過去のデータを検索する処理が実行されるが、このようなヒストリバッファに対する検索(探索)範囲を狭くすることにより、当該辞書式符号化における処理量を低減させ、圧縮伸張装置2e(圧縮器11)の消費電力量を抑制することができる。
このため、本実施形態における圧縮モード情報は、例えば辞書式符号化部11a及びエントロピー符号化部11bのうちの少なくとも1つの動作を制御するためのパラメータを含む情報であってもよい。なお、圧縮モード情報に含まれるパラメータは、上記した辞書式符号化におけるヒストリバッファに対する検索範囲を指定するパラメータ等を想定しているが、圧縮伸張装置2eの消費電力量を抑制するために辞書式符号化部11a及びエントロピー符号化部11bによって実行される処理を制限するものであればよい。この場合、伸張装置20(伸張器21)は、読み出しデータに付加されている圧縮モード情報に含まれるパラメータに従って、圧縮装置10(圧縮器11)に対応する動作を行う(つまり、エントロピー復号化部21a及び辞書式復号化部21bのうちの少なくとも1つの動作を制御する)ように動作すればよい。
また、本実施形態においては圧縮器11の消費電力量及び伸張器21の消費電力量の合計値(予測消費電力量)に基づいて圧縮器11を制御するものとして説明したが、圧縮器11に含まれる辞書式符号化部11aの消費電力量、圧縮器11に含まれるエントロピー符号化部11bの消費電力量、伸張器21に含まれるエントロピー復号化部21aの消費電力量及び伸張器21に含まれる辞書式復号化部21bの消費電力量を解析部13が予測する構成の場合には、例えば辞書式符号化部11aの消費電力量及び辞書式復号化部21bの消費電力量の合計値に基づいて辞書式符号化部11aを制御し、エントロピー符号化部11bの消費電力量及びエントロピー復号化部21aの消費電力量の合計値に基づいてエントロピー符号化部11bを制御する構成としてもよい。
なお、圧縮器11に含まれる辞書式符号化部11aの消費電力量は例えば前述した第1指標PE等に基づいて予測することができ、圧縮器11に含まれるエントロピー符号化部11bの消費電力量は例えば前述した第1指標PE等に基づいて予測することができる。また、伸張器21に含まれるエントロピー復号化部21aの消費電力量は例えば前述した第2指標PD等に基づいて予測することができ、伸張器21に含まれる辞書式復号化部21bの消費電力量は例えば前述した第2指標PD等に基づいて予測することができる。
本実施形態においては前述した第1実施形態において説明した構成において圧縮器11(及び伸張器21)が部分的に制御されるものとして説明したが、本実施形態は、前述した第2実施形態または第3実施形態と組み合わせた構成としてもよい。
(第5実施形態)
次に、第5実施形態について説明する。なお、本実施形態に係るメモリシステムのハードウェア構成については、前述した第1実施形態と同様であるため、便宜的に、図1を用いて説明する。
本実施形態は、制御部から出力されるモード情報に従って複数の圧縮器が制御される点で、前述した第1実施形態等とは異なる。
まず、図10を参照して、本実施形態に係る圧縮伸張装置2eの構成の一例について説明する。図10においては、前述した図2と同様の部分には同一参照符号を付して、その詳しい説明を省略する。ここでは、図2と異なる部分について主に述べる。
本実施形態において、圧縮装置10は、複数の圧縮器111~113を含む。複数の圧縮器111~113は、それぞれ異なる圧縮アルゴリズムでデータを圧縮可能な圧縮器であるものとする。具体的には、例えば圧縮器111が辞書式符号化及びエントロピー符号化を組み合わせた圧縮アルゴリズム(以下、第1圧縮アルゴリズムと表記)を採用する圧縮器である場合、圧縮器112は例えばランレングス符号化に基づく圧縮アルゴリズム(以下、第2圧縮アルゴリズムと表記)を採用する圧縮器であり、圧縮器113は第1及び第2圧縮アルゴリズム以外の圧縮アルゴリズムを採用する圧縮である。なお、第1及び第2圧縮アルゴリズム以外の圧縮アルゴリズムとしては、例えばBPE(Byte Pair Encoding)またはPPM(Prediction by Partial Matching)等が考えられる。
ここでは、複数の圧縮器111~113がそれぞれ異なる圧縮アルゴリズムを採用する圧縮器であるものとして説明したが、当該複数の圧縮器111~113は、同一の圧縮アルゴリズムを採用するが、それぞれ圧縮性能が異なる(すなわち、消費電力量が異なる)圧縮器であってもよい。
また、図10においては、便宜的に3つの圧縮器111~113が示されているが、当該圧縮器の数は2以上であればよい。
なお、上記したように圧縮装置10が複数の圧縮器111~113を含む場合、本実施形態に係る伸張装置20は、当該圧縮器111~113と同数の伸張器211~213を含む。この場合、伸張器211は、圧縮器111において採用されている第1圧縮アルゴリズムで圧縮された圧縮データを伸張する伸張器である。また、伸張器212は、圧縮器112において採用されている第2圧縮アルゴリズムで圧縮された圧縮データを伸張する伸張器である。更に、伸張器213は、圧縮器113において採用されている第3圧縮アルゴリズムで圧縮された圧縮データを伸張する伸張器である。
また、前述した第1実施形態においては解析部13が1つの圧縮器11の消費電力量及び1つの伸張器21の消費電力量を予測するものとして説明したが、本実施形態において、圧縮装置10は複数の圧縮器111~113(及び複数の伸張器211~213)に対応する複数の解析部131~133を含む。
本実施形態において制御部14は上記した解析部131~133によって予測された消費電力量に基づいてモード情報(非圧縮モード情報または圧縮モード情報)を出力するが、本実施形態における圧縮モード情報は、例えば複数の圧縮器111~113のうちの1つを動作させることを示す情報である。なお、本実施形態における非圧縮モード情報は、複数の圧縮器111~113の全ての動作を停止させることを示す情報である。
次に、本実施形態においてホストから書き込みコマンド及び読み出しコマンドが発行された際の圧縮伸張装置2eの処理について説明する。
まず、ホストから書き込みコマンドが発行された場合について説明する。この場合、ホストから発行された書き込みコマンドにおいて指定されている非圧縮データ(書き込みデータ)が圧縮装置10に入力される。
圧縮装置10に入力された非圧縮データは、データバッファ12に格納されるとともに、複数の解析部131~133に入力される。
この場合、解析部131は、第1予測モデルを用いて非圧縮データから圧縮器111の消費電力量を予測するとともに、第2予測モデルを用いて当該非圧縮データから伸張器211の消費電力量を予測する。また、解析部132は、第1予測モデルを用いて非圧縮データから圧縮器112の消費電力量を予測するとともに、第2予測モデルを用いて当該非圧縮データから伸張器212の消費電力量を予測する。同様に、解析部133は、第1予測モデルを用いて非圧縮データから圧縮器113の消費電力量を予測するとともに、第2予測モデルを用いて当該非圧縮データから伸張器213の消費電力量を予測する。なお、複数の解析部131~133の各々の処理については前述した第1実施形態において説明した解析部13の処理と同様であるため、ここではその詳しい説明を省略する。複数の解析部131~133によって予測された複数の圧縮器111~113の消費電力量及び複数の伸張器211~213の消費電力量は、制御部14に出力される。
制御部14は、複数の解析部131~133から出力された複数の圧縮器111~113の消費電力量及び複数の伸張器211~213の消費電力量に基づいて、複数の圧縮器111~113を制御する。
前述した第1実施形態においては、例えば予測消費電力量(圧縮器11の消費電力量及び伸張器21の消費電力量の合計値)が閾値以上である場合に当該圧縮器11の動作を停止することを示す非圧縮モード情報を制御部14が出力し、当該予測消費電力量が閾値未満である場合に当該圧縮器11を動作させることを示す圧縮モード情報を出力するものとして説明したが、本実施形態においては、複数の圧縮器111~113の各々を個別に制御する。
具体的には、制御部14は、圧縮器111(及び伸張器211)用の閾値、圧縮器112(及び伸張器212)用の閾値及び圧縮器113(及び伸張器213)用の閾値を保持しているものとする。
この場合、本実施形態における制御部14は、圧縮器111の消費電力量及び伸張器211の消費電力量の合計値(以下、第1予測消費電力量と表記)が圧縮器111用の閾値以上であり、圧縮器112の消費電力量及び伸張器212の消費電力量の合計値(以下、第2予測消費電力量と表記)が圧縮器112用の閾値以上であり、圧縮器113の消費電力量及び伸張器213の消費電力量の合計値(以下、第3予測消費電力量と表記)が圧縮器113用の閾値以上である場合に、複数の圧縮器111~113の全ての動作を停止させることを示す非圧縮モード情報を出力する。
一方、制御部14は、第1予測消費電力量が圧縮器111用の閾値未満である場合には、当該圧縮器111を動作させることを示す圧縮モード情報(以下、第1圧縮モード情報と表記)を出力する。また、制御部14は、第2予測消費電力量が圧縮器112用の閾値未満である場合には、当該圧縮器112を動作させることを示す圧縮モード情報(以下、第2圧縮モード情報と表記)を出力する。更に、制御部14は、第3予測消費電力量が圧縮器113用の閾値未満である場合には、当該圧縮器113を動作させることを示す圧縮モード情報(以下、第3圧縮モード情報と表記)を出力する。
なお、本実施形態においては、複数の圧縮器111~113の全ての動作を停止させる場合を除いて、複数の圧縮器111~113のうちの1つの圧縮器を動作させるものとする。
このため、複数の圧縮器111~113の各々には、例えば圧縮アルゴリズム(圧縮性能)または消費電力量等の観点に基づいて予め優先度が設定されているものとする。
これによれば、例えば第1予測消費電力量が圧縮器111用の閾値未満であり、第2予測消費電力量が圧縮器112用の閾値未満であり、第3予測消費電力量が圧縮器113用の閾値未満であるような場合には、制御部14は、複数の圧縮器111~113のうち最も高い優先度が設定されている圧縮器を動作させることを示す圧縮モード情報を出力すればよい。ここでは3つの予測消費電力量(第1~第3予測消費電力量)が閾値未満である場合について説明したが、2つの予測消費電力量が閾値未満である場合についても同様である。
なお、2つ以上の予測消費電力量が閾値未満である場合において動作させる圧縮器は、例えば非圧縮データの種類等の情報に基づいて動的に決定(選択)されてもよい。
また、上記した圧縮器111~113用の閾値は、同じ値であってもよいし、異なる値であってもよい。
上記したように制御部14から非圧縮モード情報が出力された場合には、当該非圧縮モード情報が付加された非圧縮データが選択器15を介してNAND型フラッシュメモリ3に書き込まれる。
また、制御部14から第1圧縮モード情報が出力された場合には、当該第1圧縮モード情報に基づいて動作した圧縮器111から出力された圧縮データが選択器15を介してNAND型フラッシュメモリ3に書き込まれる。この場合、圧縮データには、第1圧縮モード情報が付加される。
また、制御部14から第2圧縮モード情報が出力された場合には、当該第2圧縮モード情報に基づいて動作した圧縮器112から出力された圧縮データが選択器15を介してNAND型フラッシュメモリ3に書き込まれる。この場合、圧縮データには、第2圧縮モード情報が付加される。
また、制御部14から第3圧縮モード情報が出力された場合には、当該第3圧縮モード情報に基づいて動作した圧縮器113から出力された圧縮データが選択器15を介してNAND型フラッシュメモリ3に書き込まれる。この場合、圧縮データには、第3圧縮モード情報が付加される。
次に、ホストから読み出しコマンドが発行された場合について説明する。この場合、ホストから発行された読み出しコマンドに基づいて読み出しデータがNAND型フラッシュメモリ3から読み出され、当該読み出しデータは、伸張装置20に入力される。
ここで、伸張装置20に入力される読み出しデータには非圧縮モード情報、第1圧縮モード情報、第2圧縮モード情報または第3圧縮モード情報が付加されており、伸張装置20においては、当該非圧縮モード情報、第1圧縮モード情報、第2圧縮モード情報または第3圧縮モード情報に基づいて圧縮装置10に対応する動作が行われる。
具体的には、伸張装置20に入力された読み出しデータに非圧縮モード情報が付加されている場合、当該読み出しデータは非圧縮データであるため、複数の伸張器211~213の動作は停止され、当該非圧縮データが選択器22を介して出力される。
伸張装置20に入力された読み出しデータに第1圧縮モード情報が付加されている場合、当該読み出しデータは圧縮器111から出力された圧縮データである。この場合、伸張器211を動作させる(伸張器212及び213の動作を停止させる)ことによって当該伸張器211から出力された非圧縮データ(つまり、当該圧縮データを伸張した非圧縮データ)が選択器22を介して出力される。
伸張装置20に入力された読み出しデータに第2圧縮モード情報が付加されている場合、当該読み出しデータは圧縮器112から出力された圧縮データである。この場合、伸張器212を動作させる(伸張器211及び213の動作を停止させる)ことによって当該伸張器212から出力された非圧縮データ(つまり、当該圧縮データを伸張した非圧縮データ)が選択器22を介して出力される。
伸張装置20に入力された読み出しデータに第3圧縮モード情報が付加されている場合、当該読み出しデータは圧縮器113から出力された圧縮データである。この場合、伸張器213を動作させる(伸張器211及び212の動作を停止させる)ことによって当該伸張器213から出力された非圧縮データ(つまり、当該圧縮データを伸張した非圧縮データ)が選択器22を介して出力される。
上記したように本実施形態においては、圧縮装置10が複数の圧縮器111~113(例えば、第1及び第2圧縮器)を含み、伸張装置20が複数の伸張器211~213(例えば、第1及び第2伸張器)を含む。本実施形態に係る圧縮装置10に含まれる複数の解析部131~133(例えば、第1及び第2解析部)は、当該複数の圧縮器111~113の消費電力量及び複数の伸張器211~213の消費電力量を予測する。また、本実施形態に係る圧縮装置10に含まれる制御部14は、圧縮器111~113及び伸張器211~213の組毎に予測された複数の予測消費電力量(第1圧縮器の消費電力量及び第1伸張器の消費電力量の合計値、第2圧縮器の消費電力量及び第2伸張器の消費電力量の合計値等)に基づいて、非圧縮モード情報または圧縮モード情報を出力する。更に、本実施形態における非圧縮モード情報は複数の圧縮器の全ての動作を停止させることを示す情報であり、圧縮モード情報は複数の圧縮器のうちの1つを動作させることを示す情報である。
また、本実施形態において伸張装置20は、非圧縮モード情報が付加された読み出しデータ(非圧縮データ)が入力された場合、当該非圧縮モード情報に基づいて複数の伸張器の動作を停止して非圧縮データを出力する。一方、圧縮モード情報が付加された読み出しデータ(圧縮データ)が入力された場合、伸張装置20は、当該圧縮モード情報に基づいて複数の伸張器のうちの1つを動作させて当該圧縮データを伸張した非圧縮データを出力する。
本実施形態においては、上記したように例えばそれぞれ異なる圧縮アルゴリズムが採用された複数の圧縮器111~113を用意し、当該圧縮アルゴリズム(つまり、圧縮器111~113)毎の消費電力量を予測することにより、非圧縮データを圧縮する場合であっても例えば消費電力量の観点から適切な圧縮アルゴリズムで圧縮し、圧縮装置10の消費電力量を抑制することができる。
本実施形態においては前述した第1実施形態において説明した構成において複数の圧縮器111~113(及び複数の伸張器211~213)を制御するものとして説明したが、本実施形態は、前述した第2~第4実施形態と組み合わせた構成としてもよい。
(第6実施形態)
次に、第6実施形態について説明する。なお、本実施形態に係るメモリシステムのハードウェア構成については、前述した第1実施形態と同様であるため、便宜的に、図1を用いて説明する。
本実施形態は、圧縮器を制御するために予測消費電力量と比較される閾値を外部情報に基づいて調整する点で、前述した第1実施形態等とは異なる。
まず、図11を参照して、本実施形態に係る圧縮装置10の構成の一例について説明する。図11においては、前述した図2に示す圧縮装置10と同様の部分には同一参照符号を付して、その詳しい説明を省略する。ここでは、図2に示す圧縮装置10と異なる部分について主に述べる。なお、本実施形態に係る伸張装置20の構成は前述した第1実施形態と同様であるため、図11においては省略されている。
圧縮装置10は前述した第1実施形態と同様に制御部14を含むが、本実施形態における制御部14は、圧縮装置10の外部から例えば圧縮伸張装置2eの消費電量力に関する情報(以下、外部情報と表記)を入力(取得)する。
制御部14は、入力された外部情報に基づいて、前述した予測消費電力量と比較される閾値を調整する。制御部14は、予測消費電力量と調整された閾値との比較結果に基づいて、圧縮器11を制御する。
次に、本実施形態においてホストから書き込みコマンドが発行された際の圧縮装置10の動作について説明する。
ホストからの書き込みコマンドが発行された場合、当該書き込みコマンドにおいて指定されている非圧縮データ(書き込みデータ)が圧縮装置10に入力される。
この場合、圧縮装置10に入力された非圧縮データは、データバッファ12に格納されるとともに、解析部13に入力される。
次に、解析部13は、第1予測モデルを用いて非圧縮データから圧縮器11の消費電力量を予測するとともに、第2予測モデルを用いて当該非圧縮データから伸張器21の消費電力量を予測する。なお、解析部13が圧縮器11の消費電力量及び伸張器21の消費電力量を予測する処理については前述した第1実施形態と同様であるため、ここではその詳しい説明を省略する。解析部13によって予測された圧縮器11の消費電力量及び伸張器21の消費電力量は、制御部14に出力される。
ここで、例えばコントローラ2(SSDコントローラ)の回路全体が発熱した場合、メモリシステム1がサーマルスロット状態となり、NAND型フラッシュメモリ3へのデータの書き込み及び読み込み速度が低下する。この場合、制御部14は、メモリシステム1におけるサーマルスロット状態を解消するための目標消費電力量を外部情報として外部から入力し、当該目標消費電力量に基づいて閾値を下げる(または閾値を当該目標消費電力量に設定する)ように調整する。
これによれば、予測消費電力量が通常よりも低い場合であっても、圧縮器11の動作を停止させる(つまり、非圧縮モード情報が出力される)ため、上記したサーマルスロット状態の解消に寄与することができる。
なお、ここでは外部情報(目標消費電力量)に基づいて閾値を下げるように調整するものとして説明したが、例えば比較的圧縮器11を動作させることが好ましい状態に関する外部情報が入力された場合には、当該外部情報に基づいて閾値を上げるように調整してもよい。
また、ここでは外部情報に基づいて閾値を調整するものとして説明したが、解析部13から出力された圧縮器11の消費電力量及び伸張器21の消費電力量の合計値(予測消費電力量)を当該外部情報に基づいて調整するようにしてもよい。
なお、予測消費電力量が閾値以上である場合に非圧縮モード情報が出力され、当該予測消費電力量が閾値未満である場合に圧縮モード情報が出力される点については、前述した第1実施形態と同様である。
また、制御部14から非圧縮モード情報または圧縮モード情報が出力された後の圧縮装置10の動作は前述した第1実施形態と同様であるため、ここではその詳しい説明を省略する。
また、本実施形態における伸張装置20の動作は前述した第1実施形態と同様であるため、ここではその詳しい説明を省略する。
上記したように本実施形態においては、外部から入力された外部情報に基づいて閾値を調整する構成により、圧縮伸張装置2eの外部(例えば、メモリシステム1等)の状態を考慮して当該圧縮伸張装置2eの消費電力量を抑制することができる。
なお、本実施形態における外部情報は、例えば圧縮器11の動作を停止させるまたは当該圧縮器11を動作させることを指示する情報であっても構わない。この場合、制御部14は、外部情報に従って非圧縮モード情報または圧縮モード情報を出力すればよい。
本実施形態においては前述した第1実施形態において説明した構成において外部情報に基づいて閾値を調整するものとして説明したが、本実施形態は、前述した第2~第5実施形態と組み合わせた構成としてもよい。
以上述べた少なくとも1つの実施形態によれば、消費電力量を抑制することが可能な圧縮装置、圧縮伸張装置及びメモリシステムを提供することができる。
本発明のいくつかの実施形態を説明したが、これらの実施形態は、例として提示したものであり、発明の範囲を限定することは意図していない。これら実施形態は、その他の様々な形態で実施されることが可能であり、発明の要旨を逸脱しない範囲で、種々の省略、置き換え、変更を行うことができる。これら実施形態やその変形は、発明の範囲や要旨に含まれると同様に、特許請求の範囲に記載された発明とその均等の範囲に含まれるものである。
1…メモリシステム、2…コントローラ、2a…ホストインタフェース、2b…CPU、2c…NANDインタフェース、2d…DRAMインタフェース、2e…圧縮伸張装置、3…NAND型フラッシュメモリ(不揮発性メモリ)、4…DRAM、10…圧縮装置、11,111~113…圧縮器、11a…辞書式符号化部(第1処理部)、11b…エントロピー符号化部(第2処理部)、12…データバッファ、13…解析部、13a…消費電力予測部、13b…圧縮比予測部、14…制御部、14a…予測消費電力累積部、15…選択器(選択部)、20…伸張装置、21,211~213…伸張器、21a…エントロピー復号化部(第3処理部)、21b…辞書式復号化部(第4処理部)、22…選択器、100…第1指標算出回路(第1回路)、101…第1算出器、102…第2算出器、200…第2指標算出回路(第2回路)、201…第1算出器、202…第2算出器。

Claims (13)

  1. 入力された第1データを解析する解析部と、
    前記解析結果に基づいて、非圧縮モード情報または圧縮モード情報を出力する制御部と、
    前記制御部から前記非圧縮モード情報が出力された場合に動作を停止し、前記制御部から前記圧縮モード情報が出力された場合に動作して前記第1データを圧縮した第2データを出力する圧縮器と、
    前記制御部から前記非圧縮モード情報が出力された場合に前記第1データを出力し、前記制御部から前記圧縮モード情報が出力された場合に前記圧縮器から出力された第2データを出力する選択部と
    を具備し、
    前記選択部から出力される第1データには、前記非圧縮モード情報が付加され、
    前記選択部から出力される第2データには、前記圧縮モード情報が付加される
    圧縮装置。
  2. 前記解析部は、前記圧縮器の第1消費電力量及び前記第2データを伸張することによって得られる第1データを出力する伸張器の第2消費電力量を前記第1データから予測し、
    前記制御部は、前記予測された第1及び第2消費電力量の合計値が閾値以上である場合に前記非圧縮モード情報を出力し、前記予測された第1及び第2消費電力量の合計値が前記閾値未満である場合に前記圧縮モード情報を出力する
    請求項1記載の圧縮装置。
  3. 前記解析部は、前記第1データを適用することによって前記第1消費電力量を予測するための第1予測モデル及び前記第1データを適用することによって前記第2消費電力量を予測するための第2予測モデルを保持し、
    前記第1予測モデルは、複数の第3データから算出された前記圧縮器の消費電力量に関する第1指標と、当該複数の第3データを複数の第4データに圧縮するシミュレーションにより測定された前記圧縮器の消費電力量とに対して回帰分析を行うことにより生成され、
    第2予測モデルは、複数の第3データから算出された前記伸張器の消費電力量に関する第2指標と、前記複数の第4データを前記第3データに伸張するシミュレーションにより測定された前記伸張器の消費電力量とに対して回帰分析を行うことにより生成される
    請求項2記載の圧縮装置。
  4. 前記解析部は、
    前記第1データから前記第1指標を算出する第1回路と、前記第1データから前記第2指標を算出する第2回路とを含み、
    前記第1データから算出された第1指標を前記第1予測モデルに適用することによって前記第1消費電力量を予測し、
    前記第1データから算出された第2指標を前記第2予測モデルに適用することによって前記第2消費電力量を予測する
    請求項3記載の圧縮装置。
  5. 前記解析部は、前記第1データを圧縮した際の圧縮比を前記第1データから予測し、
    前記制御部は、前記予測された圧縮比に更に基づいて、前記非圧縮モード情報または前記圧縮モード情報を出力する
    請求項2~4のいずれか一項に記載の圧縮装置。
  6. 前記解析部は、複数の第1データが順次入力される場合、前記第1及び前記第2消費電力量を前記第1データ毎に予測し、
    前記制御部は、前記第1データ毎に予測された第1及び第2消費電力量の累積値に更に基づいて、前記非圧縮モード情報または前記圧縮モード情報を出力する
    請求項2~5のいずれか一項に記載の圧縮装置。
  7. 前記制御部は、外部から入力された外部情報に基づいて前記閾値を調整する請求項2~6のいずれか一項に記載の圧縮装置。
  8. 前記圧縮器は、データを第1圧縮方式で圧縮する第1処理部及びデータを第2圧縮方式で圧縮する第2処理部を含み、
    前記圧縮モード情報は、前記第1及び第2処理部のうちの少なくとも1つを動作させることを示す情報、または前記第1及び第2処理部のうちの少なくとも1つの動作を制御するためのパラメータを含む情報である
    請求項2~7のいずれか一項に記載の圧縮装置。
  9. 前記圧縮器は、第1及び第2圧縮器を含み、
    前記伸張器は、前記第1圧縮器が圧縮したデータを伸張する第1伸張器及び前記第2圧縮器が圧縮したデータを伸張する第2伸張器を含み、
    前記解析部は、前記第1圧縮器の第1消費電力量及び前記第2圧縮器の第1消費電力量を前記第1データから予測する第1解析部と、前記第1伸張器の第2消費電力量及び前記第2伸張器の第2消費電力量を前記第1データから予測する第2解析部と、
    前記制御部は、前記第1圧縮器の第1消費電力量及び前記第1伸張器の第2消費電力量の合計値と、前記第2圧縮器の第1消費電力量及び前記第2伸張器の第2消費電力量の合計値とに基づいて前記非圧縮モード情報または前記圧縮モード情報を出力し、
    前記非圧縮モード情報は、前記第1及び第2圧縮器の全ての動作を停止させることを示す情報であり、
    前記圧縮モード情報は、前記第1及び第2圧縮器のうちの1つを動作させることを示す情報である
    請求項2~8のいずれか一項に記載の圧縮装置。
  10. 請求項1~7のいずれか一項に記載の圧縮装置と、
    前記第2データを伸張した第1データを出力する伸張器を備える伸張装置と
    を具備し、
    前記伸張装置は、前記非圧縮モード情報が付加された第1データが入力された場合、前記非圧縮モード情報に基づいて前記伸張器の動作を停止させて前記第1データを出力し、前記圧縮モード情報が付加された第2データが入力された場合、前記圧縮モード情報に基づいて前記伸張器を動作させて前記第2データを伸張した第1データを出力する
    圧縮伸張装置。
  11. 請求項8記載の圧縮装置と、
    前記第2データを伸張した第1データを出力する伸張器を備える伸張装置と
    を具備し、
    前記伸張器は、前記第2圧縮方式で圧縮したデータを伸張する第3処理部と、前記第1圧縮方式で圧縮したデータを伸張する第4処理部とを含み、
    前記伸張装置は、
    前記非圧縮モード情報が付加された第1データが入力された場合、前記非圧縮モード情報に基づいて前記伸張器の動作を停止させて前記第1データを出力し、
    前記圧縮モード情報が付加された第2データが入力された場合、前記圧縮モード情報に基づいて前記第3及び第4処理部のうちの少なくとも1つを動作させ、または前記パラメータに基づいて前記第1及び第2処理部のうちの少なくとも1つの動作を制御して前記第2データを伸張した第1データを出力する
    圧縮伸張装置。
  12. 請求項9記載の圧縮装置と、
    前記第2データを伸張した第1データを出力する伸張器を備える伸張装置と
    を具備し、
    前記伸張装置は、
    前記非圧縮モード情報が付加された第1データが入力された場合、前記非圧縮モード情報に基づいて前記第1及び第2伸張器の動作を停止させて前記第1データを出力し、
    前記圧縮モード情報が付加された第2データが入力された場合、前記圧縮モード情報に基づいて前記第1及び第2伸張器のうちの1つを動作させて前記第2データを伸張した第1データを出力する
    圧縮伸張装置。
  13. 請求項10~12のいずれか一項に記載の圧縮伸張装置と、
    前記圧縮伸張装置に備えられる圧縮装置から出力された第1または第2データに基づく第3データが書き込まれる不揮発性メモリと、
    前記不揮発性メモリを制御するコントローラと
    を具備し、
    前記不揮発性メモリに書き込まれた第3データに基づく第1または第2データは、前記圧縮伸張装置に備えられる伸張装置に入力される
    メモリシステム。
JP2021097195A 2021-06-10 2021-06-10 圧縮装置、圧縮伸張装置及びメモリシステム Pending JP2022188911A (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2021097195A JP2022188911A (ja) 2021-06-10 2021-06-10 圧縮装置、圧縮伸張装置及びメモリシステム
US17/686,246 US11899934B2 (en) 2021-06-10 2022-03-03 Compression device, compression and decompression device, and memory system

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2021097195A JP2022188911A (ja) 2021-06-10 2021-06-10 圧縮装置、圧縮伸張装置及びメモリシステム

Publications (1)

Publication Number Publication Date
JP2022188911A true JP2022188911A (ja) 2022-12-22

Family

ID=84389818

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2021097195A Pending JP2022188911A (ja) 2021-06-10 2021-06-10 圧縮装置、圧縮伸張装置及びメモリシステム

Country Status (2)

Country Link
US (1) US11899934B2 (ja)
JP (1) JP2022188911A (ja)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20210135685A1 (en) * 2020-12-11 2021-05-06 Intel Corporation Compression engine with configurable search depths and window sizes

Family Cites Families (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8260989B2 (en) 2010-08-18 2012-09-04 Hewlett-Packard Development Company, L.P. Method and system for low-powered data transmission
JP5712609B2 (ja) 2010-12-24 2015-05-07 富士通株式会社 データ処理装置及びデータ記録方法
JP2013085071A (ja) 2011-10-07 2013-05-09 Fujitsu Ltd データ圧縮装置、及び方法
US9569454B2 (en) * 2014-09-15 2017-02-14 Seagate Technology Llc Selective compression of objects in a storage compute device
SE540178C2 (en) * 2016-01-29 2018-04-24 Zeropoint Tech Ab Methods, devices and systems for compressing and decompressing data
US11113113B2 (en) 2017-09-08 2021-09-07 Apple Inc. Systems and methods for scheduling virtual memory compressors
CN111126589B (zh) * 2019-12-31 2022-05-20 昆仑芯(北京)科技有限公司 神经网络数据处理装置、方法和电子设备
WO2021140275A1 (en) * 2020-01-07 2021-07-15 Nokia Technologies Oy High level syntax for compressed representation of neural networks
US20210135685A1 (en) * 2020-12-11 2021-05-06 Intel Corporation Compression engine with configurable search depths and window sizes
US11728826B2 (en) * 2021-05-24 2023-08-15 Google Llc Compression and decompression in hardware for data processing

Also Published As

Publication number Publication date
US20220398019A1 (en) 2022-12-15
US11899934B2 (en) 2024-02-13

Similar Documents

Publication Publication Date Title
US5870036A (en) Adaptive multiple dictionary data compression
US9041567B2 (en) Using variable encodings to compress an input data stream to a compressed output data stream
JP6692448B2 (ja) ストレージ装置及びストレージ装置の制御方法
US8937563B2 (en) Using variable length encoding to compress an input data stream to a compressed output data stream
EP3154202B1 (en) Encoding program, encoding method, encoding device, decoding program, decoding method, and decoding device
US10686468B2 (en) Data processing apparatus, memory system, and method of processing data
US10193579B2 (en) Storage control device, storage system, and storage control method
US20180039426A1 (en) Data compression using partial statistics
US11899934B2 (en) Compression device, compression and decompression device, and memory system
US11714552B2 (en) Memory system
JPWO2014030189A1 (ja) 圧縮プログラム、圧縮方法、圧縮装置、伸張プログラム、伸張方法、伸張装置およびデータ転送システム
JP2016052046A (ja) 圧縮装置、伸長装置およびストレージ装置
JP7305609B2 (ja) 受信したデータを処理する装置
JP2021174472A (ja) ストレージシステム
US20240106459A1 (en) Compression device and compression method
US11431995B2 (en) Memory system
US11461008B2 (en) Memory system for improving compression performance of a dictionary coder circuit
JP2022121983A (ja) 文字列検索装置及びメモリシステム
US11909423B2 (en) Compression circuit, storage system, and compression method
Vasanthi et al. Implementation of Robust Compression Technique Using LZ77 Algorithm on Tensilica's Xtensa Processor
JP2023132713A (ja) データ伸張装置、メモリシステム、およびデータ伸張方法
US20240004549A1 (en) Memory system
US20230283295A1 (en) Code table generation device, memory system, and code table generation method
JP2022139227A (ja) 圧縮装置および制御方法
JP2023128936A (ja) 情報処理装置及び初期辞書作成方法