(57)【要約】方法、装置、及びシステムは、データ値が複数の意味論的に意味のあるデータフィールドを備える場合、データ値の圧縮及び解凍を向上させる。本発明の開示の第１の発明概念によれば、圧縮は、各データ値全体に適用されるのではなく、各データ値の意味論的に意味のあるデータフィールドの少なくとも１つに、且つ他のものから切り離されて適用される。第２の発明概念は、複数のコンプレッサ及びデコンプレッサを並列に使用することができるように同じ意味論的意味を共有するデータフィールドを一緒に編成し、圧縮及び解凍を加速することである。第３の発明概念は、方法及び装置が、値の局所性の程度を高め、浮動小数点値の圧縮率を向上するために、最初に前記データフィールドの少なくとも１つを２つ又は複数のサブフィールドに更に分割した後に、浮動小数点数の意味論的に意味のあるデータフィールドの圧縮及び解凍を実行するように適合されるシステムである。【選択図】図２２Ａ
2018520576.tif 000002
【特許請求の範囲】
【請求項１】
非圧縮データセット（２２１０）を圧縮データセット（２２９０）に圧縮するデータ圧縮デバイス（２２００）であって、前記非圧縮データセット（２２１０）は複数のデータ値（２２１２ａ〜ｍ）を備え、
前記データセット内の各データ値を複数の意味論的に意味のあるデータフィールド（２２１４ａ〜ｎ）に分割するように構成されるセパレータ（２２２０）と、
１つ以上の圧縮ユニット（２２３０ａ、２２３０ｂ）を備えるコンプレッサ（２２３０）であって、前記圧縮ユニットのうちの第１の圧縮ユニット（２２３０ａ）は、各データ値の前記意味論的に意味のあるデータフィールドのうちの少なくとも１つ（２２１４ａ）に対して、第１のデータ圧縮スキームを前記データフィールド（２２１４ａ）に、圧縮データフィールド（２２３２ａ）を生成するために、前記データ値の前記意味論的に意味のあるデータフィールドの他のもの（２２１４ｂ、２２１４ｎ）から切り離して、適用するように構成される、コンプレッサ（２２３０）と、
前記圧縮データセット（２２９０）を生成するために、帰着集約圧縮データセットに前記圧縮データフィールドを含めるように構成されるアグリゲータ（２２４０）と、を備えるデータ圧縮デバイス（２２００）。
【請求項２】
前記コンプレッサ（２２３０）は、前記第１の圧縮ユニット（２２３０ａ）の前記第１のデータ圧縮スキームとは異なる第２のデータ圧縮スキームを適用するように構成される第２の圧縮ユニット（２２３０ｂ）を備える、請求項１に記載のデータ圧縮デバイス（２２００）。
【請求項３】
前記第１及び第２のデータ圧縮スキームのうちの少なくとも１つはロスレスデータ圧縮スキームである、請求項２に記載のデータ圧縮デバイス（２２００）。
【請求項４】
前記第１及び第２のデータ圧縮スキームのうちの少なくとも１つはロッシーデータ圧縮スキームである、請求項２又は３に記載のデータ圧縮デバイス（２２００）。
【請求項５】
前記第１の圧縮ユニット（２２３０ａ）の前記第１のデータ圧縮スキームは、前記第１のデータ圧縮スキームが前記全データ値（２２１２ａ）全体に適用された場合よりもより良好な圧縮率を得るために、前記意味論的に意味のあるデータフィールド（２２１４ａ〜ｎ）の前記少なくとも１つ（２２１４ａ）の値の局所性を利用するように適合される、請求項１〜４の何れか一項に記載のデータ圧縮デバイス（２２００）。
【請求項６】
前記意味論的に意味のあるデータフィールド（２２１４ａ〜ｎ）のうちの少なくとも１つは、前記圧縮ユニット（２２３０ａ、２２３０ｂ）の何れによっても圧縮されず、非圧縮のままにされ、前記生成された圧縮データセット（２２９０）内に前記アグリゲータ（２２４０）によって非圧縮形式で含められる、請求項１〜５の何れか一項に記載のデータ圧縮デバイス（２２００）。
【請求項７】
前記アグリゲータ（２２４０）は、前記生成された圧縮データセット（２２９０）において前記非圧縮データセット（２２１０）からのデータフィールド（２２１４ａ〜ｎ）の元の順序を維持するように構成される、請求項１〜６の何れか一項に記載のデータ圧縮デバイス（２２００）。
【請求項８】
前記セパレータ（２２２０、１５２０）は、前記データ値（２２１２ａ〜ｍ）からのそれぞれの第１の意味論的に意味のあるデータフィールド（２２１４ａ）を第１のデータフィールドグループ（１５２５ａ）に一緒にグループ化し、前記第１のデータフィールドグループを前記第１の圧縮ユニット（２２３０ａ、１５３０ａ）に提供するように構成され、
前記セパレータ（２２２０、１５２０）は、前記データ値（２２１２ａ〜ｍ）からのそれぞれの第２の意味論的に意味のあるデータフィールド（２２１４ｂ）を第２のデータフィールドグループ（１５２５ｂ）に一緒にグループ化し、前記第２のデータフィールドグループを前記第２の圧縮ユニット（２２３０ｂ、１５３０ｂ）に提供するように構成され、
前記アグリゲータ（２２４０、１５４０）は、前記第１の圧縮ユニットからの圧縮データフィールド（２２３２ａ）の第１のグループ（１５４２ａ）を形成し、前記第２の圧縮ユニットからの圧縮データフィールド（２２３２ｂ）の第２のグループ（１５４２ｂ）を形成し、前記生成された圧縮データセット（２２９０）において前記第１及び第２のグループを連結するように構成される、請求項２〜６の何れか一項に記載のデータ圧縮デバイス（２２００、１５００）。
【請求項９】
前記第１及び第２のデータフィールドグループ（１５２５ａ、１５２５ｂ）内の前記データフィールドを圧縮する場合、前記第１及び第２の圧縮ユニット（２２３０ａ〜ｂ、１５３０ａ〜ｃ）はそれぞれ並列に動作するように構成される、請求項８に記載のデータ圧縮デバイス（２２００）。
【請求項１０】
前記第１のデータフィールドグループ（１５２５ａ）内の前記それぞれの第１の意味論的に意味のあるデータフィールド（２２１４ａ）は、同じ意味論的意味を共有し、前記第２のデータフィールドグループ（１５２５ｂ）内の前記それぞれの第２の意味論的に意味のあるデータフィールド（２２１４ｂ）は、同じ意味論的意味を共有する、請求項８又は９に記載のデータ圧縮デバイス（２２００）。
【請求項１１】
前記非圧縮データセット（２２１０）の前記データ値（２２１２ａ〜ｍ）は、標準データ型である、請求項１〜１０の何れか一項に記載のデータ圧縮デバイス（２２００）。
【請求項１２】
前記非圧縮データセット（２２１０）の前記データ値（２２１２ａ〜ｍ）は、抽象データ型である、請求項２〜１１の何れか一項に記載のデータ圧縮デバイス（２２００）。
【請求項１３】
前記第１及び第２の圧縮ユニット（２２３０ａ〜ｂ、１５３２ａ〜ｃ）は、
前記それぞれの圧縮ユニットが前記それぞれの圧縮ユニットのそれぞれのデータ圧縮スキームを適用することによってデータ圧縮を実行すべきであるか否かと、
前記それぞれのデータ圧縮スキーム用の、複数のデータ圧縮アルゴリズムから選択可能なデータ圧縮アルゴリズムと、のうちの少なくとも１つを決定するように制御可能である（２２３０ａ〜ｂ、１５３２ａ〜ｃ）、請求項２〜１２の何れか一項に記載のデータ圧縮デバイス（２２００、１５００）。
【請求項１４】
前記第１及び第２の圧縮ユニット（２２３０ａ〜ｂ、１５３２ａ〜ｃ）は、前記意味論的に意味のあるデータフィールド（２２１４ａ〜ｎ）のそれぞれのデータ型に基づいて、制御可能である（２２３０ａ〜ｂ、１５３２ａ〜ｃ）、請求項１３に記載のデータ圧縮デバイス（２２００、１５００）。
【請求項１５】
前記セパレータ（２２２０、１５２０）は、前記意味論的に意味のあるデータフィールド（２２１４ａ〜ｎ）の数とサイズについての構造データフィールド情報（２２２２、１５２２、１５２３）を受け取るように構成される、請求項１〜１４の何れか一項に記載のデータ圧縮デバイス（２２００、１５００）。
【請求項１６】
前記セパレータ（２２２０、２０２０）は、前記意味論的に意味のあるデータフィールド（２２１４ａ〜ｎ）のうちの少なくとも１つを２つ以上のサブフィールド（ｍＨ、ｍＬ）に更に分割するように構成され、
前記コンプレッサユニット（２２３０ａ〜ｂ、２０３０ａ〜ｃ）の少なくとも１つ（２０３０ａ、２０３０ｂ）は、前記サブフィールドの少なくとも１つ（ｍＬ）に対して、データ圧縮スキームを前記サブフィールド（ｍＬ）に、圧縮サブフィールドを生成するために、前記サブフィールドの他のサブフィールド（ｍＨ）から切り離して、適用するように構成され、
前記アグリゲータ（２２４０、２０４０）は、前記圧縮データセット（２２９０、２０９０）を生成するために、帰着集約圧縮データセットに前記圧縮サブフィールドを含めるように構成される、請求項１〜１５の何れか一項に記載のデータ圧縮デバイス（２２００、２０００）。
【請求項１７】
前記非圧縮データセット（２２１０、２０１０）の前記データ値（２２１２ａ〜ｍ）は浮動小数点数であり、前記意味論的に意味のあるデータフィールド（２２１４ａ〜ｎ）は、符号（ｓ）、指数（ｅ）、及び仮数（ｍＨ、ｍＬ）である、請求項１〜１６の何れか一項に記載のデータ圧縮デバイス（２２００、２０００）。
【請求項１８】
前記指数（ｅ）及び仮数（ｍＨ、ｍＬ）データフィールドは、前記コンプレッサ（２２３０、２０３０）のそれぞれの圧縮ユニット（２２３０ａ〜ｃ、２０３０ａ〜ｃ）によって圧縮される、請求項１７に記載のデータ圧縮デバイス２２００、２０００）。
【請求項１９】
前記符号（ｓ）データフィールドは非圧縮のままにされ、前記コンプレッサ（２２３０、２０３０）の前記圧縮ユニット（２２３０ａ〜ｃ、２０３０ａ〜ｃ）の何れによっても圧縮されない、請求項１８に記載のデータ圧縮デバイス（２２００、２０００）。
【請求項２０】
前記サブフィールドは仮数上位（ｍＨ）及び仮数下位（ｍＬ）であり、前記仮数上位（ｍＨ）及び仮数下位（ｍＬ）サブフィールドの少なくとも１つは、前記仮数上位及び仮数下位サブフィールドの他のものから切り離されて圧縮される、請求項１７〜１９の何れかと組み合わされた請求項１６に記載のデータ圧縮デバイス（２２００、２０００）。
【請求項２１】
前記仮数データフィールドの少なくとも前記仮数上位（ｍＨ）サブフィールドは、統計的圧縮によって圧縮され、前記指数（ｅ）データフィールドは、統計的圧縮、デルタ符号化、又は他の圧縮スキームのうちの１つによって圧縮される、請求項２０に記載のデータ圧縮デバイス（２２００、２０００）。
【請求項２２】
前記仮数データフィールドの前記仮数上位（ｍＨ）及び仮数下位（ｍＬ）サブフィールドと前記指数（ｅ）データフィールドは、前記コンプレッサ（２２３０、２０３０）のそれぞれの圧縮ユニット（２０３０ｃ、２０３０ｂ、２０３０）によって圧縮され、前記アグリゲータ（２２４０、２０４０）は、
符号（ｓ）データフィールドを備える第１のグループ（２０４２‐１）、
次に、前記仮数データフィールドの圧縮仮数下位（ｍＬ）サブフィールドを備える第２のグループ（２０４２‐２）、
次に、圧縮指数（ｅ）データフィールドを備える第３のグループ（２０４２‐３）、
次に、前記非圧縮データセット（２０１０）とは逆の順序で前記仮数データフィールドの圧縮仮数上位（ｍＨ）サブフィールドを備える第４のグループ（２０４２‐４）、の順序で、前記圧縮データセット（２２９０、２０９０）を、その中に保存することによって、生成するように構成される、請求項２１に記載のデータ圧縮デバイス（２２００、２０００）。
【請求項２３】
非圧縮データセット（２２１０）を圧縮データセット（２２９０）に圧縮するデータ圧縮方法であって、前記非圧縮データセット（２２１０）は複数のデータ値（２２１２ａ〜ｍ）を備え、
前記データセット内の各データ値に対して、前記データ値を複数の意味論的に意味のあるデータフィールド（２２１４ａ〜ｎ）に分割するステップ（２３１０）と、
各データ値の前記意味論的に意味のあるデータフィールドのうちの少なくとも１つ（２２１４ａ）に対して、第１のデータ圧縮スキームを前記データフィールド（２２１４ａ）に、圧縮データフィールド（２２３２ａ）を生成するために、前記データ値の前記意味論的に意味のあるデータフィールドの他のもの（２２１４ｂ、２２１４ｎ）から切り離して、適用するステップ（２３２０）と、
前記圧縮データセット（２２９０）を生成する（２３３０）ために、帰着集約圧縮データセットに前記圧縮データフィールドを含めるステップと、を備えるデータ圧縮方法。
【請求項２４】
処理装置によってロードされ実行されると、請求項２３に記載の方法の実行を引き起こすコード命令を備えるコンピュータプログラム製品。
【請求項２５】
請求項２３に記載の方法を実行するように構成される論理回路を備える装置。
【請求項２６】
圧縮データセット（２４１０）を解凍データセット（２４９０）に解凍するデータ解凍デバイス（２４００）であって、前記圧縮データセット（２４１０）はデータ値（２４８２）を表し、前記データ値（２４８２）の各々は複数の意味論的に意味のあるデータフィールド（２４８４）を有し、前記データ値（２４８２）のうちの少なくとも１つ（２４３２ａ）は、前記意味論的に意味のあるデータフィールドの他のものから切り離されて圧縮され、
１つ又は複数の解凍ユニット（２４３０ａ、２４３０ｂ）を備えるデコンプレッサ（２４３０）であって、前記解凍ユニットのうちの第１の解凍ユニット（２４３０ａ）は、各データ値の前記少なくとも１つの圧縮データフィールド（２４３２ａ）に対して、解凍データフィールド（２４８４ａ）を生成するために第１のデータ解凍スキームを前記圧縮データフィールド（２４３２ａ）に適用するように構成される、デコンプレッサ（２４３０）と、
前記解凍データセットの帰着データ値（２４８２ａ）内に各解凍データフィールド（２４８４ａ）を含めることによって、前記解凍データセット（２４９０）を生成するように構成される機構（２４４０）と、を備えるデータ解凍デバイス（２４００）。
【請求項２７】
前記デコンプレッサ（２４３０）は、前記第１の解凍ユニット（２４３０ａ）の前記第１のデータ解凍スキームとは異なる第２のデータ解凍スキームを適用するように構成される第２の解凍ユニット（２４３０ｂ）を備える、請求項２６に記載のデータ解凍デバイス（２４００）。
【請求項２８】
前記第１及び第２のデータ解凍スキームのうちの少なくとも１つは、ロスレスデータ解凍スキームである、請求項２７に記載のデータ解凍デバイス（２４００）。
【請求項２９】
前記第１及び第２のデータ解凍スキームのうちの少なくとも１つは、ロッシーデータ解凍スキームである、請求項２６又は２７に記載のデータ解凍デバイス（２４００）。
【請求項３０】
前記圧縮データセット（２４１０）の前記データフィールド（２４８４）の少なくとも１つは、圧縮されず、前記解凍データセットを生成するように構成される前記機構（２４４０）によって前記解凍データセット（２４９０）の帰着データ値（２４８２）に非圧縮形式で含められる、請求項２６〜２９の何れか一項に記載のデータ解凍デバイス（２４００）。
【請求項３１】
前記機構（２４４０）は、前記生成された解凍データセット（２４９０）において前記圧縮データセット（２４１０）からの圧縮データフィールド（２４３２ａ、２４３２ｂ）の順序を維持するように構成される、請求項２６〜３０の何れか一項に記載のデータ解凍デバイス（２４００）。
【請求項３２】
前記デコンプレッサ（２４３０、１７３０）の前記解凍ユニット（２４３０ａ、２４３０ｂ、１７３０ａ〜１７３０ｃ）は、前記圧縮データセット（２４１０、１７１０）から圧縮データフィールドのそれぞれのグループ（１７１２ａ〜１７１２ｃ）を受け取り、前記それぞれのグループの前記圧縮データフィールドを解凍し、前記機構（２４４０、１７４０）に解凍データフィールドのそれぞれのグループ（１７３５ａ〜１７３５ｃ）を提供し、
前記機構（２４４０、１７４０）は、前記それぞれの解凍ユニット（２４３０ａ、２４３０ｂ、１７３０ａ〜１７３０ｃ）によって解凍された解凍データフィールドの前記グループ（１７３５ａ〜１７３５ｃ）に対して、前記生成された解凍データセット（２４９０）において、圧縮前の元のデータセットの前記データ値の前記データフィールドの元の順序を再構築するように構成される、請求項２６〜３０の何れか一項に記載のデータ圧縮デバイス（２４００、１７００）。
【請求項３３】
前記デコンプレッサ（２４３０、１７３０）の前記解凍ユニット（２４３０ａ、２４３０ｂ、１７３０ａ〜１７３０ｃ）は並列に動作するように構成される、請求項２６〜３２の何れか一項に記載のデータ解凍デバイス（２４００、１７００）。
【請求項３４】
前記解凍データセット（２４９０）の前記データ値（２４８２）は標準データ型である、請求項２６〜３３の何れか一項に記載のデータ解凍デバイス（２４００）。
【請求項３５】
前記解凍データセット（２４９０）の前記データ値（２４８２）は抽象データ型である、請求項２６〜３３の何れか一項に記載のデータ解凍デバイス（２４００）。
【請求項３６】
前記デコンプレッサ（２４３０、１７３０）の前記解凍ユニット（２４３０ａ、２４３０ｂ、１７３０ａ〜１７３０ｃ）は、
前記それぞれの解凍ユニットが前記それぞれの解凍ユニットのそれぞれのデータ解凍スキームを適用することによってデータ解凍を実行すべきか否かと、
前記それぞれのデータ解凍スキーム用の、複数のデータ解凍アルゴリズムから選択可能であるデータ解凍アルゴリズムと、のうち少なくとも１つを決定するように制御可能である（１７３２ａ〜ｃ）、請求項２６〜３５の何れか一項に記載のデータ解凍デバイス（２４００、１７００）。
【請求項３７】
前記解凍ユニット（２４３０ａ、２４３０ｂ、１７３０ａ〜１７３０ｃ）は、前記意味論的に意味のあるデータフィールド（２４８４）のそれぞれのデータ型に基づいて制御可能である（１７３２ａ〜ｃ）、請求項３６に記載のデータ解凍デバイス（２４００、１７００）。
【請求項３８】
前記機構（２４４０）は、前記意味論的に意味のあるデータフィールド（２４８４）の数及びサイズに関する構造データフィールド情報（１７４２、１７４３）を受け取るように構成される、請求項２６〜３７の何れか一項に記載のデータ解凍デバイス（２４００、１７００）。
【請求項３９】
前記圧縮データセット（２４１０、２１１０）は、意味論的に意味のあるデータフィールドの少なくとも１つの圧縮サブフィールド（ｍＨ、ｍＬ）を備え、
前記解凍ユニット（２４００、２１３０ａ、２１３０ｂ）の少なくとも１つ（２１３０ａ）は、解凍サブフィールドを生成するためにデータ解凍スキームを前記少なくとも１つのサブフィールド（ｍＬ）に適用するように構成され、
前記機構（２４４０、２１３０ａ）は、前記解凍データセット（２４９０）の帰着データ値に前記解凍サブフィールドを含めるように構成される、請求項２６〜３８の何れか一項に記載のデータ解凍デバイス（２４００、２１００）。
【請求項４０】
前記解凍データセット（２４９０）の前記データ値（２４８２）は浮動小数点数であり、前記意味論的に意味のあるデータフィールド（２４８４）は符号（ｓ）、指数（ｅ）、及び仮数（ｍＨ、ｍＬ）である、請求項２６〜３９の何れか一項に記載のデータ解凍デバイス（２４００、２１００）。
【請求項４１】
前記圧縮データセット（２４１０、２１１０）の圧縮指数（ｅ）及び仮数（ｍＨ、ｍＬ）データフィールド（２４３２ａ、２４３２ｂ）は、前記デコンプレッサ（２４３０）のそれぞれの解凍ユニット（２４３０ａ、２４３０ｂ、２１３０ａ〜２１３０ｃ）によって解凍される、請求項４０に記載のデータ解凍デバイス（２４００、２１００）。
【請求項４２】
前記圧縮データセット（２４１０、２１１０）の符号（ｓ）データフィールドは非圧縮であり、前記デコンプレッサ（２４３０）の前記解凍ユニット（２４３０ａ、２４３０ｂ、２１３０ａ〜２１３０ｃ）の何れによっても解凍されない、請求項４１に記載のデータ解凍デバイス（２４００、２１００）。
【請求項４３】
前記サブフィールドは仮数上位（ｍＨ）及び仮数下位（ｍＬ）であり、前記仮数上位（ｍＨ）及び仮数下位（ｍＬ）サブフィールドのうちの少なくとも１つは、前記仮数上位及び仮数下位サブフィールドのうちの他方のサブフィールドから切り離されて解凍される、請求項４０〜４２の何れかと組み合わされた請求項３９に記載のデータ解凍デバイス（２４００、２１００）。
【請求項４４】
前記仮数データフィールドの少なくとも前記仮数上位（ｍＨ）サブフィールドは統計的解凍によって解凍され、前記指数（ｅ）データフィールドは統計的解凍、デルタ復号化、又は別の解凍スキームの１つによって解凍される、請求項４３に記載のデータ解凍デバイス（２４００、２１００）。
【請求項４５】
前記圧縮データセット（２２１０、２１１０）は、以下の順序で、
ｉ）符号（ｓ）データフィールドを備える第１のグループと、
ｉｉ）次に、前記仮数データフィールドの圧縮仮数下位（ｍＬ）サブフィールドを備える第２のグループと、
ｉｉｉ）次に、圧縮指数（ｅ）データフィールドを備える第３のグループと、
ｉｖ）次に、圧縮前の元のデータセットの前記データ値における元の順序とは逆の順序で、前記仮数データフィールドの圧縮仮数上位（ｍＨ）サブフィールドを備える第４のグループと、を備え、
前記デコンプレッサ（２４３０）は２フェーズ動作アーキテクチャを有し、ここで、
・第１フェーズにおいて、前記仮数データフィールドの前記仮数上位（ｍＨ）及び仮数下位（ｍＬ）サブフィールドは、前記デコンプレッサ（２４３０）の第１及び第２解凍ユニット（２１３０ａ、２１３０ｂ）によって統計的解凍によって並列に解凍され、
・第２のフェーズにおいて、前記指数（ｅ）データフィールドは、統計的解凍、デルタ復号化、又は別の解凍スキームによって、前記デコンプレッサ（２４３０）の第３の解凍ユニット（２１３０ｃ）によって解凍される、請求項４４に記載のデータ解凍デバイス（２４００、２１００）。
【請求項４６】
前記第１、第２、及び第３の解凍ユニット（２１３０ａ、２１３０ｂ、２１３０ｃ）は、前記それぞれの解凍仮数上位（ｍＨ）及び仮数下位（ｍＬ）サブフィールドと前記解凍指数（ｅ）データフィールドとを、前記解凍データセット（２４９０、２１９０）内に直接配置し、それにより前記機構（２４４０）を実装するように構成される、請求項４５に記載のデータ解凍デバイス（２４００、２１００）。
【請求項４７】
圧縮データセット（２４１０）を解凍データセット（２４９０）に解凍するデータ解凍方法であって、前記圧縮データセット（２４１０）はデータ値（２４８２）を表し、前記データ値（２４８２）の各々は複数の意味論的に意味のあるデータフィールド（２４８４）を有し、前記データ値（２４８２）のうちの少なくとも１つ（２４３２ａ）は、前記意味論的に意味のあるデータフィールドの他のものから切り離されて圧縮されており、
各データ値の前記少なくとも１つの圧縮データフィールド（２４３２ａ）に対して、解凍データフィールド（２４８４ａ）を生成するために、第１のデータ解凍スキームを前記圧縮データフィールド（２４３２ａ）に適用するステップ（２５２０）と、
前記解凍データセットの帰着データ値（２４８２ａ）に各解凍データフィールド（２４８４ａ）を含めることによって、前記解凍データセット（２４９０）を生成するステップ（２５３０）と、を備えるデータ解凍方法。
【請求項４８】
処理装置によってロードされ実行されると、請求項４７に記載の方法の実行を引き起こすコード命令を備えるコンピュータプログラム製品。
【請求項４９】
請求項４７に記載の方法を実行するように構成される論理回路を備える装置。
【請求項５０】
１つ以上のメモリ（２６１０）と、請求項１〜２２の何れか一項に記載のデータ圧縮デバイス（１５００、２０００、２２００）と、請求項２６〜４６の何れか一項に記載のデータ解凍デバイス（１７００、２１００、２４００）と、を備えるシステム（２６００）。
【請求項５１】
前記システムはコンピュータシステム（１００、２００、３００、４００、５００）であり、前記１つ以上のメモリ（２６１０）は、
キャッシュメモリ（Ｌ１〜Ｌ３）と、
ランダムアクセスメモリ（１３０、２３０、３３０、４３０、５３０）と、
二次記憶装置からなる群からのものである、請求項５０に記載のシステム（２６００）。
【請求項５２】
前記システムはデータ通信システム（６００、７００）であり、前記１つ以上のメモリ（２６１０）はデータバッファである、請求項５０に記載のシステム（２６００）。
【発明の詳細な説明】
【技術分野】
【０００１】
関連出願との相互参照
本特許出願は、２０１５年５月２１日に提出され、「ＭＥＴＨＯＤＳ，  ＤＥＶＩＣＥＳ  ＡＮＤ  ＳＹＳＴＥＭＳ  ＦＯＲ  ＤＡＴＡ  ＣＯＭＰＲＥＳＳＩＯＮ  ＡＮＤ  ＤＥＣＯＭＰＲＥＳＳＩＯＮ」という名称を有するスウェーデン特許出願第１５５０６４４−７号の優先権を主張し、その内容全体が参照により本明細書に組み込まれる。
【０００２】
本特許出願の開示は、概ね、例えばコンピュータシステムのキャッシュ／メモリサブシステム及び／もしくはデータ転送サブシステムにおける又はデータ通信システムにおけるデータ圧縮及び解凍の分野に関する。
【背景技術】
【０００３】
データ圧縮はデータのサイズを縮小するために使用される確立された技術である。これは、メモリ容量を増加させるためにコンピュータシステムのメモリサブシステムに保存されるデータに適用される。これはまた、データがコンピュータシステム内の様々なサブシステム間で転送される場合、又は一般に転送が、通信ネットワークを備えるデータ通信システムにおいて２つの点間で行われる場合、の何れでも使用される。
【０００４】
データ圧縮は、１）非圧縮データを入力として受け取り、データ値をそれぞれの符号語（文献では符号化物、暗号化物、又は記号としても記載されている）で置き換えることによって非圧縮データを圧縮データに変換する圧縮（符号化とも呼ばれる）、及び２）圧縮データを入力として受け取り、符号語をそれぞれのデータ値で置き換えることによって、圧縮データを非圧縮に変換する解凍（復号化とも呼ばれる）という２つの基本的な動作を必要とする。データ圧縮は、圧縮後の実際のデータ値が圧縮される前の元のデータ値と正確に同じ（ロスレス）であるかどうか、又は解凍後のデータ値が元の値と異なり、元の値を読み出すことができない（ロッシー）かどうか、に応じて、ロスレス又はロッシーとすることができる。圧縮及び解凍は、それぞれの方法、装置、及びシステムを実現するソフトウェアもしくはハードウェア又はソフトウェア及びハードウェアの組み合わせで実装されることができる。
【０００５】
コンピュータシステム１００の一例が図１に示されている。コンピュータシステム１００は、例えば相互接続ネットワークなどの通信手段を使用してメモリ階層１１０に接続されている１つ又は複数の処理ユニットＰ１…Ｐｎを備える。各処理ユニットは、プロセッサ（又はコア）を備え、ＣＰＵ（中央処理装置：Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）、ＧＰＵ（グラフィック処理装置：Ｇｒａｐｈｉｃｓ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）、又は一般に計算を実行するブロックとすることができる。一方、メモリ階層１１０は、コンピュータシステム１００の記憶サブシステムを構成し、１つ又は複数のレベルＬ１〜Ｌ３に編成されることができるキャッシュメモリ１２０及びメモリ１３０（別称、一次メモリ）を備える。メモリ１３０は、二次記憶装置（例えば、ハードディスクドライブ、ソリッドステートドライブ、又はフラッシュメモリ）に接続されることもできる。メモリ１３０は、幾つかのレベル、例えば、高速メインメモリ（例えば、ＤＤＲ）及びフラッシュメモリに編成されることができる。この例のキャッシュメモリ１２０は３つのレベルを備え、ここで処理ユニットＰ１〜Ｐｎの各々が専用のＬ１／Ｌ２キャッシュに接続されているので、Ｌ１及びＬ２はプライベートキャッシュであり、一方Ｌ３は全ての処理ユニットＰ１〜Ｐｎの間で共有されている。代替的な例は、全てが当業者によって容易に実現されるように、より多くのキャッシュレベル、より少ないキャッシュレベル、又はゼロキャッシュレベル及びプライベートもしくは共有の専用キャッシュを有する又は有さないキャッシュ階層、様々な数の処理ユニットを有する様々なメモリレベル、並びに、一般的に、処理ユニットとメモリサブシステムとの間の様々な組み合わせを実現することができる。
【０００６】
データ圧縮は様々な方法でコンピュータシステムに適用されることができる。図２は、例えば図１のシステム１００のようなコンピュータシステムの例２００を示し、データはそのようなコンピュータシステムのメモリ、例えばメインメモリ内で圧縮される。これは、データが上述したようなそれぞれの圧縮動作によってメモリに保存される前に圧縮され、データがメモリから去る場合に解凍されることを意味する。
【０００７】
図３に示されているコンピュータシステムの代替例３００では、データ圧縮はキャッシュシステムのＬ３キャッシュに適用されることができる。前の例と同様に、圧縮は、データがキャッシュに保存される前に必要とされ、解凍は、データがキャッシュを去る（例えば、データが圧縮されていない他のキャッシュレベル（Ｌ２）へ又はメモリ３３０へ行く）前に必要とされる。代替例では、データはキャッシュ階層の任意のレベルで圧縮されて保存されることができる。
【０００８】
データは、コンピュータシステム内の様々なサブシステム間で転送される場合にのみ圧縮されることもできる。図４に示されているコンピュータシステムの代替例４００では、データは、それぞれの通信手段を使用してＬ３キャッシュとメモリ４３０との間で転送される場合に圧縮される。前の例と同様に、圧縮及び解凍は、データが転送される前に圧縮され、他方の端部で受信される場合に解凍されるように、通信手段の両端部に存在する必要がある。
【０００９】
コンピュータシステムの代替例５００では、図５に示すように、データ圧縮は、サブシステムの結合において適用されることができる。この例では、データはメモリ５３０に保存される場合に、及びメモリ５３０とキャッシュ階層５２０との間で転送される場合に圧縮される。このように、データがキャッシュ階層５２０からメモリ５３０に移動される場合に、データはＬ３キャッシュから転送される前にのみ圧縮される必要がある可能性がある。代替的に、メモリ５３０を去りキャッシュ階層５２０に行く圧縮データは、メモリ５３０をキャッシュ階層５２０に接続する通信手段の他端部で受信される場合にのみ、解凍される必要がある可能性がある。コンピュータシステムにおける様々なサブシステムへ圧縮を適用する組み合わせに関しては、任意の例が可能であり、当業者によって実現されることができる。
【００１０】
データの転送は、通信ネットワーク内の２つの任意の点の間で行われることもできる。図６は、データが送信機６１０によって転送され、受信機６２０によって受信される２点間の通信ネットワーク６０５を備えるデータ通信システム６００の例を示す。このような例では、これらの点は、ネットワーク内の２つの中間ノードもしくは通信リンクのソースノード及びデスティネーションノード、又はこれらの場合の組み合わせとすることができる。データ圧縮は、図７の例示的なシステム７００に示されているように、このようなデータ通信システムに適用されることができる。圧縮は、データが送信機７１０によって通信ネットワーク７０５に送信される前に適用される必要があり、一方、解凍は受信機７２０によって受信された後に適用される必要がある。
【００１１】
データ圧縮を実現するための様々な異なるアルゴリズムがある。データ圧縮アルゴリズムの１つのファミリは統計的圧縮アルゴリズムであり、それは、データに依存し、データ値の統計的特性に基づいて可変長（可変幅とも呼ばれる）コードを割り当てるため、エントロピーに近い圧縮効率を提供することができる。短い符号語は頻繁に出現するデータ値を符号化するために使用され、より長い符号語はより少ない頻度で出現するデータ値を符号化する。ハフマン符号化は既知の統計的圧縮アルゴリズムである。
【００１２】
解凍を加速するために使用されるハフマン符号化の既知の変形は、標準ハフマン符号化である。これに基づいて、符号語は、同じ長さの符号語が連続する整数であることを意味する数列特性を有する。
【００１３】
標準ハフマンベースの圧縮及び解凍機構の例は、従来技術で提示されている。そのような圧縮及び解凍機構は、ハフマンベースの圧縮及び解凍を実現するために、前述の例で使用されることができる。
【００１４】
ハフマン符号化、例えば標準ハフマン符号化を実装する従来技術によるコンプレッサ９００の一例が図９に示されている。それは、データ値のストリームであり、本開示を通して、一般にｖ１、ｖ２、…、ｖｎで示される１つ又は複数のデータ値を備える非圧縮ブロックを入力として取る。非圧縮ブロックからのデータ値の記憶ユニット又は抽出器とすることができるユニット９１０は、可変長符号化ユニット９２０にデータ値を供給する。可変長符号化ユニット９２０は、コードテーブル（ＣＴ：Ｃｏｄｅ  Ｔａｂｌｅ）９２２及び符号語（ＣＷ：ｃｏｄｅｗｏｒｄ）セレクタ９２８を備える。ＣＴ９２２は、ルックアップテーブル（ＬＵＴ：Ｌｏｏｋ  Ｕｐ  Ｔａｂｌｅ）又は（任意の関連性の）コンピュータキャッシュメモリとして実装されることができ、且つ１つ又は複数のエントリを含むテーブルである。各エントリは、符号語を使用して圧縮されることができる値９２３、ＣＷ９２５、及び符号語長（ｃＬ：ｃｏｄｅｗｏｒｄ−ｌｅｎｇｔｈ）９２７を備える。統計的圧縮アルゴリズムによって使用される一組の様々な符号語は可変長であるので、各エントリが固定サイズの幅（符号語９２５）を有するＣＴ９２２に保存される場合に、それらはゼロで埋められる必要がある。符号語長９２７は、可変長符号化の実際の長さを（例えば、ビット単位で）保持する。ＣＷセレクタ９２８は、実際のＣＷを識別し、埋められたゼロを破棄するためにｃＬを使用する。次に、符号化値は、圧縮ブロックを一緒に形成する圧縮値の他の部分に連結される。前述したような圧縮ステップに続く圧縮方法の例示的なフローチャートが図１１に示される。
【００１５】
先行技術からのデコンプレッサ１０００の一例が図１０に示されている。標準ハフマン解凍は、符号語検出及び値読み出しの２つのステップに分けられることができる。これらのステップの各々は、（１）符号語検出ユニット（ＣＤＵ：Ｃｏｄｅｗｏｒｄ  Ｄｅｔｅｃｔｉｏｎ  Ｕｎｉｔ）１０２０及び（２）値読み出しユニット（ＶＲＵ：Ｖａｌｕｅ  Ｒｅｔｒｉｅｖｅ  Ｕｎｉｔ）１０３０によって実装される。ＣＤＵ１０２０の目的は、圧縮列（圧縮データ値の符号語の列）内に有効な符号語を見つけることである。ＣＤＵ１０２０は、一組の比較器１０２２及び優先順位符号器１０２４を備える。各比較器１０２２ａ、ｂ、ｃは、各出現する可能性のあるビット列を既知の符号語と比較し、この符号語は、この例では特定の長さに対する（コード生成時に）最初に割り当てられた標準ハフマン符号語（ＦＣＷ：Ｈｕｆｆｍａｎ  ｃｏｄｅｗｏｒｄ）である。別の実装形態では、最後に割り当てられた標準ハフマン符号語も使用することができるであろうが、その場合、行われた比較は厳密には異なるであろう。（例えば、ＦＩＦＯ又はフリップフロップとして実装される）記憶ユニット１０１０に保存されることができ、且つ比較器の数及びそれらのうちの最も広いものの最大幅を決定する、上述の比較されるべきビット列の最大サイズは、コード生成時に決定される有効なハフマン符号語の最大長（ｍＣＬ：ｍａｘｉｍｕｍ  ｌｅｎｇｔｈ  ｏｆ  ａ  ｖａｌｉｄ  Ｈｕｆｆｍａｎ  ｃｏｄｅｗｏｒｄ）に依存する。しかしながら、この最大長さは、そのようなデコンプレッサの選択された（例えば、ソフトウェア又はハードウェアでの）実装に応じて、設計時、コンパイル時、構成時、又は実行時における特定の値に限定されることができる。比較器１０２２の出力は、一致符号語の長さ（図１０において「一致長」と呼ばれている）を出力する優先順位符号器のような構造体１０２４に挿入される。これに基づいて、検出された有効符号語（一致符号語）は、記憶ユニット１０１０に保存されているビット列から抽出され、ＣＤＵ１０２０が次の有効な符号語を決定することができるように、ビット列は、「一致長」が定義する数の位置だけシフトされ、空の部分は圧縮列の次のビットでロードされる。
【００１６】
一方、値読み出しユニット（ＶＲＵ）１０３０は、オフセットテーブル１０３４、減算器ユニット１０３６、及び解凍ルックアップテーブル（ＤｅＬＵＴ：Ｄｅｃｏｍｐｒｅｓｓｉｏｎ  Ｌｏｏｋ  Ｕｐ  Ｔａｂｌｅ）１０３８を備える。前のステップからの「一致長」は、ＤｅＬＵＴ１０３８のアドレスを取得するために、前のステップでも決定された、一致符号語の算術値から減算（１０３６）される必要がある（オフセットテーブル１０３４に保存されている）オフセット値を決定するために使用され、検出された符号語に対応する元のデータ値がそこから読み出され、解凍ブロック１０４０に保持されている解凍値の他の部分に添付されることができる。デコンプレッサの動作は、（図１０の圧縮ブロックとして言及されている）入力圧縮列の中に圧縮されて保存されている全ての値が非圧縮データ値ｖ１、ｖ２、…、ｖｎとして読み出されるまで繰り返される。
【００１７】
前述の解凍ステップに従う解凍方法の例示的なフローチャートが図１２に示されている。
【００１８】
前述のコンプレッサ及びデコンプレッサは、データのブロックを可変長ハフマン符号化を用いて迅速且つ効果的に圧縮し、可変長ハフマン符号化を用いて圧縮されているデータブロックを解凍することができる。デルタベース、パターンベースなどのような他の圧縮及び解凍アルゴリズムを実装するコンプレッサ及びデコンプレッサを備える他の圧縮スキームも使用されることができる。前記方式の共通の特徴は、それらが圧縮又は／及び解凍待ち時間を短縮するために値の局所性について設計時に仮定をしていることである。共通の仮定は、値の局所性が固定サイズのデータ型（例えば、３２ビット整数）によって最も有効に利用されるということである。しかしながら、前記方式は、圧縮すべき値が意味論的に意味のあるデータフィールドを備える場合、効果的に圧縮することができない。本発明者らは、データの圧縮及び解凍の技術分野において改良の余地があることを認識した。
【発明の概要】
【００１９】
本発明の目的は、データ圧縮及び解凍の技術分野において改良を提供することである。
【００２０】
この開示は、圧縮が、例えばコンピュータシステム及び／又はデータ通信システムにおけるキャッシュサブシステム及び／又はメモリサブシステム及び／又はデータ転送サブシステムに適用される場合、データ値のデータセットを圧縮し、且つデータ値の圧縮データセットを解凍する方法、装置、及びシステムを一般に開示する。例えば、エントロピーベースの可変長符号化を使用して前記サブシステムでデータを効果的に圧縮する様々な方法、装置、及びシステムが存在し、１つのそのような方法はハフマン符号化を用いることである。しかしながら、前記方法、装置、及びシステムは、前記データセットのデータ値が複数の意味論的に意味のあるデータフィールドを備える場合、効果的に圧縮しない。従って、本発明の開示の第１の概念によれば、圧縮は、各データ値全体に適用されるのではなく、その代わりに、各データ値の意味論的に意味のあるデータフィールドの少なくとも１つに、圧縮データフィールドを生成するために、前記データ値の他の意味論的に意味のあるデータフィールドから切り離されて、適用され、圧縮データフィールドは、帰着集約圧縮データセットに含まれる。第２の概念によれば、同じ意味論的意味を共有するデータフィールドは一緒にグループ化される。これは、様々な圧縮アルゴリズムが様々なグループを圧縮するのに使用されるので、複数のコンプレッサ及びデコンプレッサが並列に使用され且つ圧縮効率を向上させることができる故に、圧縮及び解凍を加速することができる。本発明の開示の第３の概念はシステムであり、そのシステムにおいて、方法及び装置は、値の局所性を高め、圧縮率を向上させるために最初に前記少なくとも１つのフィールド（例えば、仮数）を２つ又は複数のサブフィールドに更に分割することを考慮した後に、浮動小数点数の意味論的に意味のあるデータフィールドの圧縮及び解凍を実行する。前記浮動小数点特定圧縮及び解凍方法並びに装置は、浮動小数点値のサブフィールドを効果的に圧縮し、圧縮及び解凍待ち時間を更に低減するように調整され、前記浮動小数点特定圧縮及び解凍方法及び装置は、メタデータによる領域オーバヘッドの追加を回避しながら、コンピュータシステム及び／又は通信ネットワークにおけるキャッシュサブシステム及び／又はメモリサブシステム及び／又はデータ転送サブシステムの性能のために重要である。
【００２１】
本発明の第１の態様は、非圧縮データセットを圧縮データセットに圧縮するデータ圧縮デバイスであり、非圧縮データセットは複数のデータ値を備える。データ圧縮デバイスは、データセット内の各データ値を複数の意味論的に意味のあるデータフィールドに分割するように構成されるセパレータを備える。データ圧縮デバイスはまた、１つ又は複数の圧縮ユニットを備えるコンプレッサを備え、前記圧縮ユニットのうちの第１の圧縮ユニットは、各データ値の意味論的に意味のあるデータフィールドの少なくとも１つに対して、第１のデータ圧縮スキームをそのデータフィールドに、圧縮データフィールドを生成するために、データ値の意味論的に意味のあるデータフィールドのうちの他のものから切り離して、適用するように構成される。データ圧縮デバイスはまた、圧縮データセットを生成するために、帰着集約圧縮データセットに圧縮データフィールドを含めるように構成されるアグリゲータを備える。データ圧縮デバイスは、データ値レベルではなくデータフィールドレベルで値の局所性の利用を可能にすることによって、改善されたデータ圧縮を提供する。
【００２２】
本発明の第２の態様は、非圧縮データセットを圧縮データセットに圧縮するデータ圧縮方法であり、非圧縮データセットは複数のデータ値を含む。データ圧縮方法は、データセット内の各データ値に対して、データ値を複数の意味論的に意味のあるデータフィールドに分割するステップと、各データ値の意味論的に意味のあるデータフィールドの少なくとも１つに対して、第１データ圧縮スキームをそのデータフィールドに、圧縮データフィールドを生成するために、データ値の意味論的に意味のあるデータフィールドのうちの他のものから分離して、適用するステップと、圧縮データセットを生成するために、帰着集約圧縮データセット内に圧縮データフィールドを含めるステップを備える。データ圧縮方法は、データ値レベルではなくデータフィールドレベルで値の局所性の利用を可能にすることによって、改善されたデータ圧縮を提供する。
【００２３】
本発明の第３の態様は、処理装置によってロードされ実行されると、上記の第２の態様による方法の実行を引き起こすコード命令を備えるコンピュータプログラム製品である。
【００２４】
本発明の第４の態様は、上記の第２の態様による方法を実行するように構成される論理回路を備える装置である。
【００２５】
本発明の第５の態様は圧縮データセットを解凍データセットに解凍するデータ解凍デバイスであり、圧縮データセットは、それらのうちの各々が複数の意味論的に意味のあるデータフィールドを有するデータ値を表し、それらのうちの少なくとも１つは意味論的に意味のあるデータフィールドの他のものから切り離されて圧縮されている。データ解凍デバイスは、１つ以上の解凍ユニットを備えるデコンプレッサを備え、前記解凍ユニットのうちの第１の解凍ユニットは、各データ値の前記少なくとも１つの圧縮データフィールドに対して、解凍データフィールドを生成するために、第１のデータ解凍スキームをその圧縮データフィールドに適用するように構成される。データ解凍デバイスは、解凍データセットの帰着データ値に各解凍データフィールドを含めることによって、解凍データセットを生成するように構成される機構を備える。
【００２６】
本発明の第６の態様は、圧縮データセットを解凍データセットに解凍するデータ解凍方法であり、圧縮データセットは、それらのうちの各々が複数の意味論的に意味のあるデータフィールドを有するデータ値を表し、それらのうちの少なくとも１つが意味論的に意味のあるデータフィールドの他のものから切り離されて圧縮されている。データ解凍方法は、各データ値の前記少なくとも１つの圧縮データフィールドに対して、解凍データフィールドを生成するために第１データ解凍スキームをその圧縮データフィールドに適用するステップと、解凍データセットの帰着データ値に各解凍データフィールドを含めることによって解凍データセットを生成するステップと、を備える。
【００２７】
本発明の第７の態様は、処理装置によってロードされ実行されると、上記の第６の態様による方法の実行を引き起こすコード命令を備えるコンピュータプログラム製品である。
【００２８】
本発明の第８の態様は、上記の第６の態様による方法を実行するように構成される論理回路を備える装置である。
【００２９】
本発明の第９の態様は、１つ以上のメモリと、上記の第１の態様によるデータ圧縮デバイスと、上記の第５の態様によるデータ解凍デバイスと、を備えるシステムである。
【００３０】
開示された実施形態の他の態様、目的、特徴、及び利点は、以下の詳細な開示から、添付の従属請求項から、並びに図面から現れるであろう。一般に、特許請求の範囲で使用される全ての用語は、本明細書で明示的に定義されない限り、技術分野における通常の意味に従って解釈されるべきである。
【００３１】
不定冠詞／定冠詞（ａ／ａｎ／ｔｈｅ）を伴う「要素、装置、構成要素、手段、ステップ等」への全ての言及は、特に明記しない限り、要素、装置、構成要素、手段、ステップ等のうちの少なくとも１つの例を参照するものとして公然と解釈されるべきである。本明細書に開示されている任意の方法のステップは、明示的に述べられていない限り、開示されているものと全く同じ順序で実行される必要はない。
【００３２】
以下の図面に関して、背景技術からの例及び本発明の態様の実施形態が説明される。
【図面の簡単な説明】
【００３３】
【図１】それぞれが３レベルのキャッシュ階層及びメインメモリに接続されるｎ個の処理コアを備えるコンピュータシステムのブロック図を示す。
【図２】メインメモリがデータを圧縮形式で保存する図１のブロック図を示す。
【図３】Ｌ３キャッシュが圧縮形式でデータを保存する図１のブロック図を示す。他のキャッシュレベルも、データを圧縮形式で保存することができる。
【図４】データが通信手段で例えばメモリとキャッシュ階層との間で転送される場合に圧縮される図１のブロック図を示す。
【図５】圧縮が、メインメモリ及びメインメモリをキャッシュ階層に接続するリンクに適用されることができる図１のブロック図を示す。一般に、圧縮は、キャッシュ階層、転送手段（例えば、メモリをキャッシュサブシステムに接続するリンク）、及びメインメモリのような要素の任意の組み合わせに適用されることができる。
【図６】通信ネットワーク内の２つの点を接続するデータ伝送リンクのブロック図を示す。これらの点は、ネットワーク内の２つの中間ノード又は通信リンクのソースノード及びデスティネーションノードあるいはこれらの場合の組み合わせとすることができる。
【図７】図６のデータ伝送リンクのブロック図を示し、転送されるデータは、圧縮された形態であるために、送信機で圧縮され、受信機で解凍される必要がある可能性がある。
【図８】左側にデータ値の非圧縮ブロックを示し、右側に同じブロックを、ハフマン符号化を使用して生成された可変長符号化を使用して圧縮形式で示す。非圧縮ブロックの全てのデータ値は、それぞれのハフマン符号語で置き換えられる。
【図９】図８に示すようにハフマン符号化を使用してブロックを圧縮（又は符号化）するために使用されるコンプレッサを示す。
【図１０】標準ハフマン符号化を使用して圧縮されたブロックを復号化（又は解凍）するために使用されるデコンプレッサを示す。
【図１１】可変長符号化（例えば、ハフマン）を使用してブロックを圧縮する圧縮方法の例示的なフローチャートを示す。
【図１２】可変長符号化（例えば、標準ハフマン）を使用して圧縮されている圧縮ブロックを解凍する解凍方法の例示的なフローチャートを示す。
【図１３】複数の６４ビット倍精度浮動小数点値を備えるデータセットを示し、各値は、ＩＥＥＥ−７５４規格による３つの意味論的ビットフィールド（符号、指数、及び仮数）を更に備える。
【図１４】或るデータ型の複数の値を備えるデータセットを示し、各値は、データ構造フォーマットに従って、既知の型の３つの意味論的ビットフィールドを更に備える。
【図１５】最初に前記ビットフィールドを３つのグループに分類することによって、図１４のデータセットの全ての値の３つの意味論的ビットフィールドを圧縮する例示的なデータ圧縮デバイスのブロック図を示す。
【図１６】図１５におけるデータ圧縮デバイスの実施形態によって使用されることができる意味論的ビットフィールド分離器方法の例示的なフローチャートを示す。
【図１７】図１４のデータセットの全ての値の圧縮された意味論的ビットフィールドを解凍し、次いで、初期データセットを再構築する例示的なデータ解凍デバイスのブロック図を示す。
【図１８】図１７におけるデータ解凍デバイスの実施形態によって使用されることができる初期データセット再構築方法の例示的なフローチャートを示す。
【図１９】様々なデータ型の複数の値を備えるデータ値のブロックを示す。
【図２０】データセットの浮動小数点値を４つのサブフィールドに分割する例示的なデータ圧縮デバイスのブロック図を示し、３つはＩＥＥＥ−７５４規格による意味論的ビットフィールドに基づいており、その３つのうちの１つ（すなわち、仮数）は、より高い程度の値の局所性が現れるように、更に２つのサブフィールド、仮数上位及び仮数下位、に更に分割される。このデータ圧縮デバイスは、指数、仮数上位、及び仮数下位を圧縮する。
【図２１】解凍を加速するような方法で圧縮サブフィールドの４つのグループのうちの３つを解凍する例示的なデータ解凍デバイスのブロック図を示す。
【図２２Ａ】本発明による一般的なデータ圧縮デバイスを示す。
【図２２Ｂ】図２２Ａにおける一般的なデータ圧縮デバイスの変形を示す。
【図２３】本発明による一般的なデータ圧縮方法を示す。
【図２４】本発明による一般的なデータ解凍デバイスを示す。
【図２５】本発明による一般的なデータ解凍方法を示す。
【図２６】本発明によるデータ圧縮デバイス及びデータ解凍デバイスを備える一般的なシステムを示す。
【発明を実施するための形態】
【００３４】
本開示は、圧縮がコンピュータシステム及び／又はデータ通信システムにおけるキャッシュサブシステム及び／又はメモリサブシステム及び／又はデータ転送サブシステムに適用される場合、データ値の１つ又は複数のデータセットを圧縮し、データ値の１つ又は複数の圧縮データセットを解凍する方法、装置、及びシステムを開示する。各前記データセットは、或るデータ型の１つ又は複数のデータ値を含み、任意のサイズとすることができる。データセット内の各データ値に対して、データ値は複数の意味論的に意味のあるデータフィールドを備える。これらの開示された方法、装置、及びシステムでは、圧縮は、データ値全体に適用されるのではなく、各データ値の意味論的に意味のあるデータフィールドの少なくとも１つに対して、圧縮データフィールドを生成するためにデータ値の意味論的に意味のあるデータフィールドの他のものから切り離されて、適用され、その後圧縮データフィールドは帰着集約圧縮データセットに含まれる。適用される圧縮はロスレス又はロッシーとすることができるが、一方様々な圧縮方法、装置、及びシステムが様々な意味論的に意味のあるデータフィールドを圧縮するのに使用されることができる。
【００３５】
意味論的に意味のあるデータフィールドの全てがデータ圧縮の対象となる必要はない可能性がある。有利にも、意味論的に意味のあるデータフィールドの値の局所性が考慮され、高い程度の値の局所性を示す意味論的に意味のあるデータフィールドのうちの１つ（複数）が、値の局所性に基づいて良好な圧縮率を得るのに適するデータ圧縮を受ける。
【００３６】
データ型は、整数、浮動小数点、文字、文字列などとすることができ、又はコード命令とすることができるが、データ構造型、オブジェクト型などの抽象データ型とすることもできる。幾つかのデータ型のデータは、ビデオフォーマット、オーディオフォーマットなどの特定のフォーマット、又はＡＳＣＩＩフォーマットに従う文字、ＩＥＥＥ−７５４規格に従う浮動小数点データなどの特定の規格に従うことができる。図１３の例示的なデータセットは、ＩＥＥＥ−７５４規格に準拠するフォーマットに従う倍精度の４つの浮動小数点値を備える。前記規格によれば、浮動小数点データ値は、符号、指数、及び仮数（仮数：ｓｉｇｎｉｆｉｃａｎｄ）の３つのデータフィールドを備える。前記ビットフィールドの幅は選択された精度に応じて変化する。選択された精度が２倍（６４ビット）である図１３の例示的な実施形態では、符号ビットフィールドは１ビットであり、指数ビットフィールドは１１ビットであり、仮数ビットフィールドは５２ビットである。圧縮は、例えば、データセットの値の符号及び指数ビットフィールドに、それらが仮数ビットフィールドとは対照的に、典型的には高い値の局所性を示すので、適用されると決定されることができる。他の規格に従う浮動小数点値の代替データセットも考慮されることができる。或る規格に従う或る型の値を備える更に別の代替データセットは、Ｕｎｉｃｏｄｅ規格（例えば、ＵＴＦ−８、ＵＴＦ−１６）によって定義されるテキスト型である。
【００３７】
別の代替データセットが図１４に示され、８つの値を備える。これらの値の各々は、データ構造（すなわち、抽象データ型）であり、短整数型のビットフィールド（１６ビット）、文字ビットフィールド（８ビット）、及びブール型のビットフィールドの３つのフィールドを備える。前の実施形態と同様に、圧縮は、示されている値の局所性に応じて、全てのフィールド又はそれらのサブセットに適用されるように選択されることができる。
【００３８】
帰着集約圧縮データセットは、圧縮データフィールドが集約圧縮データセット内で互いに隣接して現れるように、様々なデータ値から同じ意味論的意味を共有する圧縮データフィールドを一緒にグループ化することによって有利に生成されることができる。これは、様々なデータフィールドは様々な方法、装置、システムで圧縮されることができ、それ故に様々な符号化を使用することができ、従って様々なコンプレッサ及びデコンプレッサを必要とするので、圧縮効率を向上させ、圧縮及び特に解凍を加速させ、且つメタデータ及び全体的な複雑性を大幅に削減することができる。具体的には、同じデータフィールドの圧縮データが互いに隣接して現れる場合、それらは全て、様々なデコンプレッサを切り替える必要なく、又は１つのデコンプレッサが複数のビットフィールドを解凍することができるように設計を複雑にする必要なく、同じデコンプレッサを利用するであろう。更に、様々な圧縮フィールドのデコンプレッサは並列に使用されることができ、解凍スループットを上げることができる。
【００３９】
本開示において、これから続くものは、上記に従って動作するように構成されるデータ圧縮デバイス及びデータ解凍デバイスの或る実施形態の説明である。この説明は、図１５〜図２１を参照して行われるであろう。次に、本開示は、図１５〜図２１に示される特定の実施形態にわたって一般化されている一般的な発明の態様を提示するであろう。これら一般的な発明の態様は、図２２〜図２６を参照して説明されるであろう。
【００４０】
同じ意味論的意味を共有する非圧縮データセット１５１０のデータフィールドを一緒にグループ化し、続いて、幾つかのグループの各々を切り離して圧縮することによって、図１４の例示的なデータセットを圧縮するデータ圧縮デバイス１５００の実施形態のブロック図が、図１５に示されている。データ圧縮デバイス１５００は、意味論的ビットフィールド分類器１５２０の形態でのセパレータ、幾つかグループ用の記憶ユニット１５２５、１つ又は複数のデータ圧縮ユニット１５３０（本開示ではコンプレッサ又はコンプレッサエンジンとも呼ばれる）、及び連結ユニット１５４０の形態でのアグリゲータを備える。初期データセットは、最初に意味論的ビットフィールド分離器１５２０に挿入される。分類器１５２０はまた、入力１５２２、１５２３として、データセットの値が構成する意味論的ビットフィールドの数及び様々な意味論的ビットフィールドのサイズを受け取る。分類器１５２０の動作は図１６の例示的な方法で更に説明される。分類器１５２０の出力は、記憶ユニット（複数）１５２５に保存される非圧縮ビットフィールドの複数のグループである。この特定の実施形態では、ビットフィールドの３つのグループ、１）（記憶ユニット１５２５ａに保存されている）短（整数）フィールドのグループ、２）（記憶ユニット１５２５ｂに保存されている）文字フィールドのグループ、及び３）（記憶ユニット１５２５ｃに保存されている）ブール型フィールドのグループ、が存在する。ビットフィールドの幾つかグループは、複数のコンプレッサ１５３０によって圧縮されることになる。これらのコンプレッサの各々は特定のグループを符号化し、前記グループに適した特定の圧縮アルゴリズム（すなわちスキーム（方式））を実装することができる。従って、コンプレッサＳ  １５３０ａは、短整数ビットフィールドのグループを圧縮し、コンプレッサＣ  １５３０ｂは、文字フィールドのグループを圧縮し、コンプレッサＢ  １５３０ｃはブール型フィールドのグループを圧縮する。前記コンプレッサは、ロスレス又はロッシー圧縮アルゴリズム（方式）を実行する又は前記コンプレッサは、後述するように型を推測すること又は前記型に関する情報を提供することの何れかによって、前記ビットフィールドの目標の全く同一の型に基づいて幾つか圧縮アルゴリズムの中から適宜に構成されることができる。
【００４１】
幾つかの実施形態では、コンプレッサ１５３０ａ、１５３０ｂ、１５３０ｃは、意味論的に意味のあるデータフィールドの値の局所性が、このビットフィールドのグループに対して効率的な圧縮をもたらすのに又は他の理由で不適切であると考えられる場合、（図１５の「Ｃｍｐ？」として示されている）入力パラメータ１５３２ａ、１５３２ｂ、１５３２ｃを適宜に設定することによって特定のグループを全く圧縮しないように構成されることができる。最後に、ビットフィールドの圧縮されたグループは、図１５の下部に示されるように、圧縮データセット１５９０を形成する連結ユニット１５４０によって連結される。従って、圧縮データセット１５９０は、それぞれの圧縮ユニット（コンプレッサ）１５３０ａ、１５３０ｂ、１５３０ｃによって適用される圧縮スキームからの結果として、データ型短整数のデータフィールドの圧縮グループ１５４２ａ、次のデータ型文字のデータフィールドの圧縮グループ１５４２ｂ、及び最後のデータ型ブール型のデータフィールドの圧縮グループ１５４２ｃを備える。
【００４２】
図１５のデータ圧縮デバイス１５００の実施形態の分類器ユニット１５２０によって実装される意味論的ビットフィールド分類器方法の例示的なフローチャートが図１６に示されている。この方法は、入力として、Ｂ値を備えるデータセット、（ビット単位で測定される）意味論的ビットフィールドのサイズ、及び各値が構成する意味論的ビットフィールドの数、これはＡである、とを備える。この方法の出力は、サイズＡ×Ｂの２次元配列として編成される意味論的ビットフィールドのグループである。データセットｉの各値に対して、ビットフィールドｊの各々が前記値から反復的に抽出される。意味論的ビットフィールドのサイズが事前に知られているので、各値に対するビットフィールド抽出は逐次的とする又は並列されるとすることができる。同様に、データセットの複数の値に対するビットフィールド抽出も、逐次的とする又は並列されるとすることができる。前記分類器方法が、図１４のデータセットの値の意味論的ビットフィールドをグループ化するために使用されると仮定すると、意味論的ビットフィールドＡの数は３（短整数、文字、及びブール型）、データセット値Ｂの数は８である。目標の実装に応じて、前記分類器方法は、当業者によってソフトウェア又は論理回路で実装されることができる。前記方法の代替実施形態はまた、当業者によって実現されることができる。
【００４３】
意味論的ビットフィールドの数及びサイズを備え、分類器（例えば、図１５における１５２０）によって必要とされる情報（例えば、図１５における１５２２、１５２３）は１つの例示的な実施形態において抽出されることができ、意味論的ビットフィールドを備えるデータセットは、アプリケーションバイナリ又はプログラミング言語プリミティブからのデータ構造である。次に、前記例示的な実施形態が、コンピュータシステム内のキャッシュサブシステム及び／又はメモリサブシステム及び／又はデータ転送サブシステムに適用されるコンプレッサである場合、前記抽出された情報は、システムソフトウェアによる下線のハードウェアへの特殊化されたコマンド（ただしこれに限定されない）を介して分類器に提供される。コンプレッサがメディアデータ（例えば、例示的なビデオフォーマットに従うデータ）に対応するデータに適用される代替的な実施形態では、前記情報はメディアセンターによって提供されることができる。前記コンプレッサが特定の規格又はフォーマット、例えばＩＥＥＥ−７５４規格による浮動小数点データに従うデータに適用される更に別の代替的な実施形態では、前記情報は前記使用された規格に基づいて生成されることができる。前記意味論的ビットフィールドのデータ型に関する情報は、意味論的ビットフィールドの数及びサイズに対して行われたのと同様の方法で、コンプレッサエンジンが複数の圧縮アルゴリズムの中の１つで構成されることができる実施形態の場合、ビットフィールドの様々なグループに対して前記コンプレッサエンジン（例えば、図１５における１５３０）を適宜に構成するために、コンプレッサに提供されることができる。当業者は、このような前記情報を他の実施形態用に提供又は生成する代替的な方法を実現することができる。
【００４４】
例示的な圧縮データセット１７１０を解凍するデータ解凍デバイス１７００の実施形態のブロック図が図１７に示されている。図１５のデータ圧縮デバイス１５００によって生成された可能性がある圧縮データセット１７１０は、データ型短整数のデータフィールドの圧縮グループ１７１２ａ、続いてデータ型文字のデータフィールドの圧縮グループ１７１２ｂ、及び最後にデータ型ブール型のデータフィールドの圧縮グループ１７１２ｃを備える。データ解凍デバイス１７００は、複数の解凍ユニット１７３０（本開示ではデコンプレッサ又は解凍エンジンとも呼ばれる）、ビットフィールドの解凍グループ用の記憶ユニット１７３５、及び解凍データセット１７９０を生成するように構成される再構築器ユニット１７４０の形態での機構を備える。最初に、圧縮データフィールドの様々なグループ１７１２ａ、１７１２ｂ、１７１２ｃの各々はそれぞれの解凍ユニット１７３０ａ、１７３０ｂ、１７３０ｃによって解凍され、それらの各々は、グループ１７１２ａ、１７１２ｂ、１７１２ｃのそれぞれを解凍するように構成される。様々なグループの解凍は、逐次的に又は並列に行われることができる。しかしながら、並列解凍では、圧縮フィールドの様々なグループの境界、は、メタデータとして保存されているか又は符号化サイズが固定されているという理由によるかの何れかにより既知である必要がある。それ以後、解凍フィールドの各グループは記憶ユニット１７３５に保存され、その後、全てのグループは、図１７の下部に示されているように、データ値の解凍されたデータセット１７９０を生成する再構築ユニット１７４０によって処理される。
【００４５】
図１７のデータ解凍デバイス１７００の再構築ユニット１７４０によって実装される初期データセット再構築方法の例示的なフローチャートが図１８に示されている。この方法は、入力として、図１７のデコンプレッサ１７３０によって解凍され、サイズＡ×Ｂの２次元配列として編成される意味論的ビットフィールドのグループ及び（ビット単位で測定された）意味論的ビットフィールドのサイズと各値が構成する意味論的ビットフィールドの数、これはＡである、を受け取る。この方法の出力はＢ値を備えるデータセットである。各ビットフィールドグループの最初のエントリから開始し、全てのビットフィールドグループの２番目、３番目などのエントリに繰り返して続けると、各値は、ビットフィールドの集約されたサイズによって示されるように、値からフォームへそれぞれのビット位置に配置することによって様々なグループの意味論的ビットフィールドを組み合わせることで形成される。例えば、再構築法が図１４のデータセットを解凍するために使用されると仮定すると、データセットの各データ値は、ビット位置０が値の始め（左）に対応し、３１が値の終わり（右）に対応すると仮定して、左から右にビットフィールド「短整数」、「文字」、及び「ブール値」を一緒に結合し、それらをビット位置０〜１５、１６〜２３、及び２４〜３１にそれぞれ置くことによって形成される。各値は、データセット内の再構築値の他の部分に連結される。意味論的ビットフィールドのサイズは事前に知られているので、各値に対するビットフィールドの結合は逐次的又は並列とすることができる。同様に、データセットの複数の値に対する値再構築は、逐次的とすることができるし又は並列とすることもできる。目標の実装に応じて、前記再構築方法は当業者によってソフトウェア又は論理回路で実装されることができる。前記方法の代替的な実施形態はまた、当業者によって実現されることができる。
【００４６】
図１５のコンプレッサ及び図１７のデコンプレッサの前述の実施形態は、それぞれ３つのコンプレッサユニット１５３０及び３つのデコンプレッサユニット１７３０を有する。従って、それらは、最大３つの異なるフィールドのグループの圧縮をサポートすることができるが、代替の実施形態は、当業者によって、構成されることができるより多くの利用可能なコンプレッサ／デコンプレッサを有するように実現されることができる。前記コンプレッサの数は、ターゲットシステムが再構築可能なロジック、例えばＦＰＧＡ、を含むシステムでない限り、従って、可変数のコンプレッサ／デコンプレッサが実行時に構成されることができない限り、前記コンプレッサ及びデコンプレッサによってサポートされるビットフィールドの最大数に限定される必要がある。
【００４７】
図１９は、図１３及び図１４のデータセットとは異なり、様々な型の１つ又は複数のデータ値を備えるデータ値のブロックを示し、各データ値は必ずしも複数の意味論的に意味のあるデータフィールド又は同じ意味論的意味を共有する複数のデータフィールドを備えていない。図１９に示される前記ブロックの例は、６つの値を備え、３つは整数型であり、１つの値は、図１４の実施形態のようなデータ構造であり、他の２つの値は、各々がＩＥＥＥ−７５４規格に従って３つの意味論的ビットフィールド（符号、指数、及び仮数）を備える倍精度浮動小数点値（６４ビット）である。データ値の前記ブロックは、データ値のブロックをデータ値の特定のデータセットとして扱うこと又は同じ意味論的ビットフィールドを備えるデータ値を各データセットに含めることで前記データ値のブロック内に１つ又は複数のデータ値のデータセットを形成することの何れかによって、本開示の方法、装置、及びシステムによって圧縮されることができる。データ値の他の部分は、圧縮されないままにするか又は従来の圧縮方法、装置、及びシステムを使用して圧縮されることもできる。
【００４８】
コンピュータシステムの実施形態では、図１に示すように、データ値のブロックは、１）データのブロックがキャッシュ階層に保存される場合、キャッシュライン、キャッシュセット、キャッシュセクタなど、２）データのブロックがメモリに保存されるか又はそのようなコンピュータシステム内の通信手段で転送される場合、キャッシュライン、メモリページ、メモリセクタなどと代替的に呼ばれることができる。一方、図６に示されるようなデータ通信システム内の伝送リンクの実施形態では、データのブロックはまた、パケット、フリット、ペイロード、ヘッダなどを指すこともできる。
【００４９】
データセットの値の或るデータ型が有利にも任意の利用可能な規格に準じる浮動小数点数であり、意味論的に意味のあるデータフィールドがそのような浮動小数点数の符号、指数、及び仮数を含む可能性がある場合、１つ以上のデータフィールドは、例えば、仮数を２つのサブフィールド、仮数上位及び仮数下位、に分割することによってのように、更に細分割されることができる。仮数を圧縮するのが難しいのは、仮数の最下位ビットが、図１３で観察されることができるように、提示された実数の少しの変化でも急激に変化するので、高い不規則性（すなわち、仮数の最下位ビットのビットが１（又は０）である確率は５０％である）を示すからである。一方、仮数を圧縮することは、それが浮動小数点数の主要部分であるので、最終的には浮動小数点圧縮率を大幅に向上させるであろう。このため、仮数を２又は複数のサブフィールドに分割することは、一部のサブフィールドが値の局所性を示し、従って仮数が部分的に圧縮可能となる可能性があることを明らかにすることができる。例えば、図１３のデータセットの実施形態では、仮数の２０個の最上位ビット（すなわち、ｘ４Ｄ８６Ｅ）は、前記データセットの４個の仮数ビットフィールドのうちの３個に対して同じであり、同様に、仮数の１６個の最上位ビット（すなわち、ｘ４Ｄ８６）は、前記データセットの全ての仮数ビットフィールドに対して同じである。従って、例えば、仮数を２つのサブフィールドに分割することによって仮数部からこれらの１６又は２０ビットを抽出することは、仮数の全体の圧縮率を向上させることができる。
【００５０】
浮動小数点数の意味論的に意味のあるデータフィールドの圧縮及び解凍を実行し、更に仮数を２つ又は複数のサブフィールドに分割することを考慮する例示的なシステムのデータ圧縮デバイス２０００及びデータ解凍デバイス２１００の実施形態が図２０及び図２１にそれぞれ示されている。前記例示的なシステムはＦＰ−Ｈと呼ばれる。
【００５１】
ＦＰ−Ｈのデータ圧縮デバイス２０００の実施形態のブロック図が図２０に示されている。データ圧縮デバイス２０００は、記憶ユニット及び／又は抽出ユニット２０１５、意味論的ビットフィールド分類器２０２０の形態のセパレータ、意味論的ビットフィールドのグループ用の記憶ユニット２０２５、前記様々な意味論的に意味のあるデータフィールドを圧縮するように構成される圧縮ユニット（コンプレッサ）２０３０、及び連結ユニット２０４０の形態でのアグリゲータを備える。記憶／抽出ユニット２０１５は、非圧縮データセット２０１０の浮動小数点値を、図１６の例示的な分類器と同様の方法で構築される分類器２０２０の中に保持及び／又は抽出するために使用される。この例示的なコンプレッサのデータセットは、ＩＥＥＥ−７５４規格に従ってフォーマットされる複数の８つの倍精度浮動小数点値を備える。代替的なコンプレッサの実施形態は、他の浮動小数点精度、他の浮動小数点表現（例えば、１０進数）、又は他の規格をサポートすることができ、一方データセットは如何なる任意のサイズとすることができる。
【００５２】
圧縮は以下のステップで実行される。
【００５３】
（ステップ１）入力された非圧縮データセット２０１０の浮動小数点値の各々は、分類器２０２０によって４つのサブフィールドに分割され、これらは一緒に編成され、記憶ユニット２０２５に格納される。４つのサブフィールドは、符号（複数）、指数（ｅ又はｅｘｐと呼ばれる）、仮数上位（ｍＨ）、及び仮数下位（ｍＬ）であり、仮数を分割する際に現れる値の局所性の程度に基づいて、仮数フィールドが分割されたｍＨ及びｍＬサブフィールドのサイズは、静的又は動的に決定されることができる。
【００５４】
（ステップ２）各サブフィールドは、それぞれのコンプレッサ２０３０によってサブフィールドの他の部分と独立に且つ並列に圧縮される。他のロスレス又はロッシー圧縮アルゴリズムが使用されることができるが、例示的なＦＰ−Ｈシステムは、提示される高い値の局所性を積極的に利用することができるので、ハフマン符号化のような可変長統計圧縮を採用する。従って、図９の例示的なコンプレッサはコンプレッサ２０３０の各々を実装するために使用されることができる。
【００５５】
（ステップ３）ＦＰ−Ｈデータ圧縮デバイス２０００は、符号が浮動小数点値の小さいほんの一部しか構成しないので、符号を除く全てのデータサブフィールドの圧縮を試みることを選択する。しかしながら、代替の実施形態は、符号の圧縮も対象とすることもできる。グループに編成された圧縮サブフィールドは、図２０の下部に示すように、圧縮データセット２０９０を形成するように連結ユニット２０４０によって或る順序（すなわち、符号、圧縮ｍＬ、圧縮ｅｘｐ、圧縮ｍＨ）で一緒に連結される。様々な可変長符号化が使用されるので、フィールドのグループ化は必要ではないが有益であり、圧縮データセット２０９０のデータを再構築するこの方法は、様々な圧縮サブフィールドの境界を定義するためにメタデータを保持する必要がなく、解凍を劇的に加速することができる。可変長統計的圧縮が仮数サブフィールドの圧縮に対して及び指数に対して使用されるので、各サブフィールドの値−周波数統計値は、サンプリング（又はトレーニング）フェーズ中に、例示的な値頻度表（ＶＦＴ：Ｖａｌｕｅ  Ｆｒｅｑｕｅｎｃｙ  Ｔａｂｌｅ）構造（又は値テーブル）、ｅ−ＶＦＴ２０３４ａ、ｍＨ−ＶＦＴ２０３４ｂ、ｍＬ−ＶＦＴ２０３４ｃ、を使用して監視される。共通に所有されている米国特許出願第１３／８９７，３８５号は、前記ＶＴ及び前記トレーニングフェーズの例示的な実施形態を記載している。
【００５６】
ＦＰ−Ｈのデータ解凍デバイス２１００の実施形態のブロック図が図２１に示されている。データ解凍デバイス２１００は、入力圧縮データセット２１１０を保持する記憶ユニット２１０５、仮数サブフィールドデコンプレッサ２１３０ａ及び２１３０ｂと指数デコンプレッサ２１３０ｃを含む複数の解凍ユニット、並びに解凍及び再構築データセット２１９０を保持する記憶ユニット２１４５を備える。圧縮データセットの境界は公知であり、図２１に示されているように開始が「Ｘ」で終わりが「Ｙ」で表されている。コンプレッサ実施形態で前に説明したように、メタデータは領域オーバヘッドを増加させ、従って圧縮の利点を減少させるので、可変長圧縮ｍＨ及び指数（ｅ）サブフィールドの境界及び正確なオフセット／サイズに関する情報を保持するメタデータは存在しない。従って、これらのサブフィールドの各々に対しての解凍は、前のサブフィールドの解凍が完了するのを待つ必要があり、最初にｍＬを解凍し、次いでｅ及び最終的にｍＨを解凍する。圧縮ｍＬサブフィールドのグループは、非圧縮符号ビットのグループが圧縮データセットの先頭（すなわち、Ｘ）に置かれるので、圧縮データセット２１１０の第８番目のビット位置に置かれる。可変長ハフマン符号化の解凍は本質的に逐次的であるので、これは解凍待ち時間を大幅に増加させるであろう。
【００５７】
図２１のＦＰ−Ｈデータ解凍デバイス２１００は、代わりに、２フェーズ解凍プロセスを使用する。フェーズＩでは、圧縮ｍＨ及びｍＬサブフィールドのグループは並列に解凍され、次に、フェーズＩＩにおいて、圧縮指数のグループが解凍される。ｍＨ及びｍＬの並列解凍は、圧縮データセットの最後に圧縮ｍＨサブフィールドのグループを逆順に保存することによって可能となる（「Ｙ」は圧縮ｍＨのグループの最初のビットを指す）。デコンプレッサ２１３０ａ及び２１３０ｂが各々８個の値を解凍した後に、ｍＨ及びｍＬに対する解凍が完了される。その時点で、圧縮指数サブフィールドの境界が既知となるので、解凍はデコンプレッサ２１３０ｃによって直ちに開始することができる（フェーズＩＩ）。図１０のハフマンベースの標準デコンプレッサは、デコンプレッサ２１３０ａ、２１３０ｂ、及び２１３０ｃの各々を実装するために使用されることができる。図２１のデータ解凍デバイス２１００は、解凍データセット２１９０が、最後の指数フィールドが解凍されたときに準備完了であるように、記憶ユニット２１４５に保持されている完全に解凍されているデータセットのそれぞれのビット位置に、解凍サブフィールド（ｍＬ、ｍＨ）及び解凍データフィールド（ｅ）を直接配置する。従って、デコンプレッサ２１３０ａ、２１３０ｂ、及び２１３０ｃは、解凍データセット２１９０を生成する機構を、これに対して如何なる個別の機構もなしに、実装している。その代わりに、代替の実施形態が、当業者によって容易に実現されるように、解凍データセット２１９０を生成する機構を実装するために別個の再構築器ユニットを使用して、図１７のものと同様に設計されることができるであろう。
【００５８】
ＦＰ−Ｈシステムの代替の実施形態では、ｍＬグループは、仮数の最下位ビットの不規則性に起因する期待される値の局所性の低さのために非圧縮のままにするように選択されることができる。これは、フェーズＩ（ｍＨ及び指数の並列解凍）のみが必要とされることによって、解凍を加速することができる。
【００５９】
データセットの値の指数フィールドは、高い値の局所性、時間的局所性（すなわち、同じ値が頻繁に出現する）、それだけではなく空間的局所性（すなわち、値は空間的に近い、つまり、値がお互いに比較された場合値の差は小さい）、を示すことが観察される。これにより、より軽量の圧縮アルゴリズム、例えば、デルタ符号化、を使用して指数を圧縮しようとするＦＰ−Ｈシステムの代替の実施形態が実現されることができる。ＦＰ−Ｈシステムの前述の実施形態と比較して、これは圧縮効率に僅かな悪影響を及ぼすことがあるが、しかしながら、解凍は、第２フェーズにおけるハフマンベースの圧縮指数の本質的に逐次的な解凍とは対照的に、大幅に加速されることができる。
【００６０】
ＦＰ−Ｈシステムの代替の実施形態では、指数は、データセットの値の指数フィールドが通常クラスタリングされることができるので、デルタベースのコンプレッサを使用して圧縮されることができる（仮数サブフィールドは前のように圧縮され、解凍される）。興味深いことに、デルタベースの解凍はほんの数サイクルしか必要としない。これは、代替のＦＰ−Ｈデコンプレッサの実施形態における第２の解凍フェーズの待ち時間を低減することができるであろう。この代替の実施形態のシステムはＦＰ−Ｈ−デルタと呼ばれる。特に前記データセットが例示的なコンピュータシステム及び／又はデータ通信システムにおける例示的なキャッシュサブシステム及び／又は例示的なメモリサブシステム及び／又は例示的なデータ転送サブシステム内のブロックである場合、２つの指数クラスタが前記データセットごとに頻繁に現れる。従って、２つのベースが、２つの指数クラスタを表すことができるために必要となる。従って、圧縮指数のグループは、２つのベース（各々１１ビット、倍精度浮動小数点値の非圧縮指数の幅に類似している）、（２ビットの幅の）８つのデルタ、及びマスク（８×１ビット）の３つの部分を備える。マスクは、解凍中にどのベースが使用されるかを定義するが、デルタ幅は、指数クラスタによってカバーされる範囲目標に応じて任意のサイズとすることができる。図２０のＦＰ−Ｈデータ圧縮デバイス２０００のコンプレッサ２０３０ａ及び図２１のＦＰ−Ｈデータ解凍デバイス２１００のデコンプレッサ２１３０ａは、公開された論文、Ｇｅｎｎａｄｙ  Ｐｅｋｈｉｍｅｎｋｏ，  Ｖｉｖｅｋ  Ｓｅｓｈａｄｒｉ，  Ｏｎｕｒ  Ｍｕｔｌｕ，  Ｐｈｉｌｌｉｐ  Ｂ．  Ｇｉｂｂｏｎｓ，  Ｍｉｃｈａｅｌ  Ａ．  Ｋｏｚｕｃｈ，  ａｎｄ  Ｔｏｄｄ  Ｃ．  Ｍｏｗｒｙ，  ２０１２，  Ｂａｓｅ−ｄｅｌｔａ−ｉｍｍｅｄｉａｔｅ  ｃｏｍｐｒｅｓｓｉｏｎ：  ｐｒａｃｔｉｃａｌ  ｄａｔａ  ｃｏｍｐｒｅｓｓｉｏｎ  ｆｏｒ  ｏｎ−ｃｈｉｐ  ｃａｃｈｅｓ，  ｉｎ  Ｐｒｏｃｅｅｄｉｎｇｓ  ｏｆ  ｔｈｅ  ２１ｓｔ  ｉｎｔｅｒｎａｔｉｏｎａｌ  ｃｏｎｆｅｒｅｎｃｅ  ｏｎ  Ｐａｒａｌｌｅｌ  ａｒｃｈｉｔｅｃｔｕｒｅｓ  ａｎｄ  ｃｏｍｐｉｌａｔｉｏｎ  ｔｅｃｈｎｉｑｕｅｓ  （ＰＡＣＴ  ’１２）、に開示されているように、当業者によって、それぞれのコンプレッサ及びデコンプレッサを調整することによって実装されることができる。
【００６１】
本明細書で開示されるデータ圧縮及び解凍装置の圧縮及び解凍ユニット（すなわち、コンプレッサ及びデコンプレッサ）は、処理スループットを増加させ、及び／又は圧縮及び解凍待ち時間を短縮するために、当業者によってパイプライン化及び／又は並列化されることができる。
【００６２】
開示された発明及びその実施形態の方法及びブロック図は、好ましくは、プロセッサ装置／プロセッサチップ又はメモリ装置／メモリチップに含まれる、又は関連する任意の論理回路によって実行時に実行されることができる。従って、更なる本発明の態様は、上述の方法及びブロック図を実行するように構成される論理回路、プロセッサ装置／プロセッサチップ、及びメモリ装置／メモリチップを含む。
【００６３】
明示的に開示されたもの以外の他の実施形態が、それぞれの発明の範囲内で同様に可能であることに留意されるべきである。
【００６４】
この開示で言及されているエンティティ（例えば、データセット、データ型、データ値、データフィールド、データブロック、キャッシュブロック、キャッシュライン、データチャンクなど）のうちの何れかのデータサイズにも一般的に特別な制限は存在しない。
【００６５】
図２２〜図２６を参照して、図１５〜図２１に示される特定の実施形態にわたって一般化された一般的な発明の態様がこれから説明されるであろう。同様の参照番号が使用される。図２２Ａ〜図２６の図面のうちの１つにおけるＸＸｎｎのフォーマットを有する参照番号は、一般に、図２２〜図２６又は図１５〜図２１の他の図面の何れかにおける同じ又は少なくとも対応する要素ＹＹｎｎを表す。
【００６６】
図２２Ａは、非圧縮データセット２２１０を圧縮データセット２２９０に圧縮するデータ圧縮デバイス２２００を開示する。非圧縮データセット２２１０は、複数のデータ値２２１２ａ〜ｍを備える。データ圧縮デバイス２２００は、データセット内の各データ値を複数の意味論的に意味のあるデータフィールド２２１４ａ〜ｎに分割するように構成されるセパレータ２２２０を備える。セパレータ２２２０は、例えば、前述の分類器ユニット１５２０、２０２０の何れかとすることができる。
【００６７】
データ圧縮デバイス２２００はまた、１つ又は複数の圧縮ユニット２２３０ａ、２２３０ｂを備えるコンプレッサ２２３０を備え、圧縮ユニットのうちの第１の圧縮ユニット２２３０ａは、各データ値の意味論的に意味のあるデータフィールドの少なくとも１つ、２２１４ａ、に対して、第１のデータ圧縮スキームをそのデータフィールド２２１４ａに、圧縮データフィールド２２３２ａを生成するために、データ値の意味論的に意味のあるデータフィールドのうちの他のデータフィールド２２１４ｂ、２２１４ｎから切り離して、適用するように構成される。データ圧縮ユニット２２３０は、例えば、前述のデータ圧縮ユニット又はコンプレッサ１５３０、２０３０の何れかとすることができる。
【００６８】
更に、データ圧縮デバイス２２００は、圧縮データセット２２９０を生成するために、帰着集約圧縮データセットに圧縮データフィールドを含めるように構成されるアグリゲータ２２４０を備える。アグリゲータ２２４０は、例えば、前述の連結ユニット１５４０、２０４０の何れかとすることができる。
【００６９】
データ圧縮デバイス２２００は、データ値レベルではなく、データフィールドレベルでの値の局所性の利用を可能にすることによって、改善されたデータ圧縮を提供する。
【００７０】
有利にも、データ圧縮デバイス２２００のコンプレッサ２２３０は、第１の圧縮ユニット２２３０ａの第１のデータ圧縮スキームとは異なる第２のデータ圧縮スキームを適用するように構成される第２の圧縮ユニット２２３０ｂを備える（コンプレッサ２２３０は、第３のデータ圧縮スキームを適用するように構成される第３の圧縮ユニット２２３０ｃを備えても良い可能性がある、など）。
【００７１】
有利にも、図１５〜図２１における上記の実施形態の説明から明らかなように、第１及び第２のデータ圧縮スキームのうちの少なくとも１つは、例えば、以下のロスレスデータ圧縮スキーム、統計的圧縮（例えば、ハフマン圧縮、標準ハフマン圧縮、算術符号化など）、デルタ符号化、辞書ベースの圧縮、パターンベースの圧縮、有意性ベースの圧縮、ヌルデータセット圧縮、の何れかのロスレスデータ圧縮スキームである。
【００７２】
しかしながら、代替の実施形態では、第１及び第２のデータ圧縮スキームのうちの少なくとも１つは、その代わりに、ロッシーデータ圧縮スキームである。
【００７３】
第１の圧縮ユニット２２３０ａの第１のデータ圧縮スキームは、第１のデータ圧縮スキームが全データ値２２１２ａ全体に適用された場合よりも良好な圧縮率が得られるように、意味論的に意味のあるデータフィールド２２１４ａ〜ｎの少なくとも１つ、２２１４ａ、の値の局所性を利用するように適合されることができる。
【００７４】
データ圧縮デバイス２２００の幾つかの実施形態では、意味論的に意味のあるデータフィールド２２１４ａ〜ｎのうちの少なくとも１つは、圧縮ユニット２２３０ａ、２２３０ｂの何れによっても圧縮されないで、非圧縮のままにされ、生成された圧縮データセット２２９０内に非圧縮形式でアグリゲータ２２４０によって含められる。これは、例えば、図２０の実施形態における符号データフィールドの場合である。
【００７５】
データ圧縮デバイス２２００の幾つかの実施形態では、アグリゲータ２２４０は、生成された圧縮データセット２２９０において非圧縮データセット２２１０からのデータフィールド２２１４ａ〜ｎの元の順序を維持するように構成される。
【００７６】
しかしながら、好ましくは、例えば、図１５の実施形態の場合のように、データ圧縮デバイス２２００のセパレータ２２２０は、データ値２２１２ａ〜ｍからのそれぞれの第１の意味論的に意味のあるデータフィールド２２１４ａを第１のデータフィールドグループ（例えば、図１５のグループ１５２５ａ）に一緒にグループ化し、第１のデータフィールドグループを第１の圧縮ユニット２２３０ａ（例えば、コンプレッサＳ  １５３０ａ）に提供するように構成され、一方、セパレータ２２２０は、データ値２２１２ａ〜ｍからのそれぞれの第２の意味論的に意味のあるデータフィールド２２１４ｂを第２のデータフィールドグループ（例えば、グループ１５２５ｂ）に一緒にグループ化し、第２のデータフィールドグループを第２の圧縮ユニット２２３０ｂ（例えば、コンプレッサＣ  １５３０ｂ）に提供するように構成される。アグリゲータ２２４０（例えば、連結ユニット１５４０）は、第１圧縮ユニットからの圧縮データフィールド２２３２ａの第１グループ（例えば１５４２ａ）を形成し、第２圧縮ユニットからの圧縮データフィールド２２３２ｂの第２グループ（例えば、１５４２ｂ）を形成し、生成された圧縮データセット２２９０において第１のグループ及び第２のグループを連結するように構成される。第１のデータフィールドグループ（例えば、１５２５ａ）内のそれぞれの第１の意味論的に意味のあるデータフィールド２２１４ａは、同じ意味論的意味を共有することができ、第２のデータフィールドグループ（例えば、１５２５ｂ）内のそれぞれの第２の意味的データフィールド２２１４ｂは、同じ意味論的意味を共有することができる。そのような同じ意味論的意味は、例えば、第１又は第２のデータフィールドグループ（例えば、１５２５ａ、１５２５ｂ）内のそれぞれの第１又は第２の意味論的に意味のあるデータフィールド２２１４ａ、２２１４ｂが、同じデータ型であるか又は共通データ型の同じサブフィールドであるということとすることができる。
【００７７】
このような実施形態は、複数のコンプレッサ（及びデコンプレッサ）を並列に使用することができ、様々なグループを様々な圧縮アルゴリズムを使用して圧縮することによって圧縮効率を向上させることができるので、圧縮（及び解凍）を加速することができる故に、特に有利である。従って、第１及び第２圧縮部２２３０ａ〜ｂ（例えば、１５３０ａ、１５３０ｂ）は、それぞれ第１及び第２データフィールドグループ（例えば、１５２５ａ、１５２５ｂ）のデータフィールドを圧縮する場合に並列に動作するように構成されることができる。
【００７８】
データ圧縮デバイス２２００の実施形態では、非圧縮データセット２２１０のデータ値２２１２ａ〜ｍは、例えば、次の標準データ型：整数、浮動小数点、文字、文字列、の何れかのような標準データ型である。それはまた、コード命令又は特定の規格に従うデータとすることもできる。
【００７９】
代替的に、データ圧縮デバイス２２００の実施形態では、非圧縮データセット２２１０のデータ値２２１２ａ〜ｍは、例えばデータ構造型もしくはオブジェクト型、又は、ビデオフォーマット、オーディオフォーマットなどの特定のフォーマットに従うデータなどの抽象データ型である。抽象データ型がデータ構造型である場合、それは、例えば、上述の標準データ型並びにブール値及びポインタのうちの１つ以上の組み合わせを備えることができる。
【００８０】
図２２Ｂの２２３０ａ〜ｂに見られるように、データ圧縮デバイス２２００の第１及び第２圧縮ユニット２２３０ａ〜ｂは、それぞれの圧縮ユニットがそれぞれのデータ圧縮スキームを適用することによってデータ圧縮を実行すべきか否か及びそれぞれのデータ圧縮スキーム用の、複数のデータ圧縮アルゴリズムから選択可能であるデータ圧縮アルゴリズムのうちの少なくとも１つを決定するように制御可能とすることができる。このような制御の例は、図１５の１５３２ａ〜１５３２ｃで見られる。第１及び第２の圧縮ユニット２２３０ａ〜ｂの制御は、意味論的に意味のあるデータフィールド２２１４ａ〜ｎのそれぞれのデータ型に基づくことができる。
【００８１】
図２２Ｂの２２２２で見られるように、データ圧縮デバイス２２００のセパレータ２２２０は、意味論的に意味のあるデータフィールド２２１４ａ〜ｎの数及びサイズに関する構造データフィールド情報を受け取るように構成されることができる。そのような構造データフィールド情報は、例えば、図１５の実施形態用の情報１５２２、１５２３の形態とすることができる。
【００８２】
幾つかの有利な実施形態では、データ圧縮デバイス２２００は浮動小数点数を圧縮するのに使用される。これは、例えば図２０の実施例の場合である。従って、非圧縮データセット２２１０（例えば２０１０）のデータ値２２１２ａ〜ｍは浮動小数点数であり、意味論的に意味のあるデータフィールド２２１４ａ〜ｎは符号（ｓ）、指数（ｅ）、及び仮数（ｍＨ、ｍＬ）とすることができる。指数（ｅ）及び仮数（ｍＨ、ｍＬ）データフィールドは、コンプレッサ２２３０（例えば、２０３０）のそれぞれの圧縮ユニット２２３０ａ〜ｃ（例えば、２０３０ａ〜ｃ）によって圧縮されることができる。幾つかの代替では、図２０と同様に、符号（ｓ）データフィールドは非圧縮のままであり、コンプレッサ２２３０（例えば、２０３０）の圧縮ユニット２２３０ａ〜ｃ（例えば２０３０ａ〜ｃ）の何れによっても圧縮されない。
【００８３】
データの局所性を更に利用するために、データ圧縮デバイス２２００のセパレータ２２２０は、意味論的に意味のあるデータフィールド２２１４ａ〜ｎのうちの少なくとも１つを２つ以上のサブフィールドに更に分割するように構成されることができ、コンプレッサユニットの少なくとも１つは、サブフィールドのうちの少なくとも１つに対して、データ圧縮スキームをそのサブフィールドに、圧縮サブフィールドを生成するためにサブフィールドのうちの他のサブフィールドから切り離して、適用するように構成され、アグリゲータ２２４０は、圧縮データセット２２９０を生成するために、帰着集約圧縮データセット内に圧縮サブフィールドを含めるように構成される。
【００８４】
これは、再び、例えば図２０の実施形態の場合である。サブフィールドは仮数上位（ｍＨ）及び仮数下位（ｍＬ）であり、仮数上位（ｍＨ）及び仮数下位（ｍＬ）サブフィールドのうちの少なくとも１つは、仮数上位及び仮数下位サブフィールドの他のものから切り離されて圧縮される。有利にも、仮数データフィールドの少なくとも仮数上位（ｍＨ）サブフィールドは統計的圧縮によって圧縮され、指数（ｅ）データフィールドは、統計的圧縮、デルタ符号化、又は他の圧縮スキームのうちの１つによって圧縮される。
【００８５】
例えば、図２０などの有益な実施形態では、仮数データフィールドの仮数上位（ｍＨ）及び仮数下位（ｍＬ）サブフィールドと指数（ｅ）データフィールドは全て、コンプレッサ２２３０（２０３０）のそれぞれの圧縮ユニット（２０３０ｃ、２０３０ｂ、２０３０）によって圧縮され、アグリゲータ２２４０（例えば、２０４０）は、次の順序で圧縮データセット２２９０（２０９０）に保存することによって、圧縮データセット２２９０（２０９０）を生成するように構成される。
ｉ）  符号（ｓ）データフィールドを備える第１のグループ（２０４２〜１）、
ｉｉ）  次に、仮数データフィールドの圧縮仮数下位（ｍＬ）サブフィールドを備える第２のグループ（２０４２〜２）、
ｉｉｉ）  次に、圧縮指数（ｅ）データフィールドを備える第３のグループ（２０４２〜３）、
ｉｖ）  次に、非圧縮データセット（２０１０）とは逆の順序での仮数データフィールドの圧縮仮数上位（ｍＨ）サブフィールドを備える第４のグループ（２０４２〜４）。
【００８６】
この配置は効率的な解凍を可能にするであろう。
【００８７】
一般的な本発明のデータ圧縮方法が図２３に示されている。図２３の２３１０〜２３３０に開示されている機能に加えて及び／又は機能の改良として、この一般的な本発明のデータ圧縮方法は、上述したようなデータ圧縮デバイス２２００の様々な実施形態の機能的特徴の何れか又は全てを有することができる。
【００８８】
図２４は、圧縮データセット２４１０を解凍データセット２４９０に解凍するデータ解凍デバイス２４００を開示する。圧縮データセット２４１０はデータ値２４８２を表し、それらの各々は、複数の意味論的に意味のあるデータフィールド２４８４を有し、それらのうちの少なくとも１つ２４３２ａは、意味論的に意味のあるデータフィールドの他のものから分離されて圧縮されている。解凍データセット２４９０は、例えば、上記のデータ圧縮デバイス２２００、１５００、２０００の何れかによって生成された可能性がある。データ解凍デバイス２４００は、１つ又は複数の解凍ユニット２４３０ａ、２４３０ｂを備えるデコンプレッサ２４３０を備える。解凍ユニットの中の第１の解凍ユニット２４３０ａは、解凍データフィールド（２４８４ａ）を生成するために、各データ値の少なくとも１つの圧縮データフィールド２４３２ａに対して、第１のデータ解凍スキームをその圧縮データフィールド２４３２ａに適用するように構成される。データ解凍ユニット２４３０は、例えば、前述のデータ解凍ユニット又はデコンプレッサ１７３０、２１３０ａ〜２１３０ｃの何れかとすることができる。
【００８９】
データ解凍デバイス２４００は、解凍データセット２４９０の帰着データ値（２４８２ａ）に各解凍データフィールド２４８４ａを含めることによって解凍データセット２４９０を生成するように構成される機構２４４０を備える。
【００９０】
有利にも、データ解凍デバイス２４００のデコンプレッサ２４３０は、第１の解凍ユニット２４３０ａの第１のデータ解凍スキームとは異なる第２のデータ解凍スキームを適用するように構成される第２の圧縮ユニット２４３０ｂを備える（デコンプレッサ２４３０はまた、第３のデータ解凍スキームを適用するように構成される第３の圧縮ユニット２４３０ｃを備えても良い可能性がある、など）。
【００９１】
有利にも、上記の説明から明らかなように、前記第１及び第２のデータ解凍スキームのうちの少なくとも１つは、ロスレスデータ解凍スキームである。しかしながら、代替の実施形態では、前記第１及び第２のデータ解凍スキームのうちの少なくとも１つは、その代わりに、ロッシーデータ解凍スキームである。
【００９２】
データ解凍デバイス２４００の幾つかの実施形態では、圧縮データセット２４１０のデータフィールド２４８４のうちの少なくとも１つは圧縮されず、解凍データセットを生成するように構成される機構２４４０によって解凍データセット２４９０の帰着データ値２４８２の中に非圧縮形式で含められる。
【００９３】
データ解凍デバイス２４００の幾つかの実施形態では、機構２４４０は、生成された解凍データセット２４９０内に圧縮データセット２４１０からの圧縮データフィールド２４３２ａ、２４３２ｂの順序を維持するように構成される。
【００９４】
有利にも、例えば図１７の実施形態の場合のように、解凍デバイス２４３０（例えば１７３０）の解凍ユニット２４３０ａ（例えば１７３０ａ〜１７３０ｃ）は、圧縮データセット２４１０（例えば、１７１０）から圧縮データフィールドのそれぞれのグループ（例えば１７１２ａ〜１７１２ｃ）を受け取り、それぞれのグループの圧縮データフィールドを解凍し、解凍データフィールドのそれぞれのグループ（例えば１７３５ａ〜１７３５ｃ）を機構２４４０（例えば１７４０）に提供するように構成される。機構２４４０（例えば、１７４０）は、それぞれの解凍ユニット２４３０ａ、２４３０ｂ（例えば、１７３０ａ〜１７３０ｃ）によって解凍された解凍データフィールドのグループ（例えば、１７３５ａ〜１７３５ｃ）に対して、圧縮前に、生成された解凍データセット２４９０の中に、元のデータセットのデータ値における元の順序のデータフィールドを再構築するように構成される。
【００９５】
このような実施形態は、複数のデコンプレッサが並列に使用されることができ、様々なグループを解凍するために様々な解凍アルゴリズムを使用することによって解凍効率を向上させることができるので、解凍を加速することができる故に、特に有利である。従って、デコンプレッサ２４３０（例えば、１７３０）の解凍ユニット２４３０ａ、２４３０ｂ（例えば、１７３０ａ〜１７３０ｃ）は、並列に動作するように構成されることができる。
【００９６】
データ解凍デバイス２４００の実施形態では、解凍データセット２４９０のデータ値２４８２は標準データ型である。代替的に、解凍データセット２４９０のデータ値２４８２は抽象データ型とすることができる。
【００９７】
デコンプレッサ２４３０（例えば、１７３０）の解凍ユニット２４３０ａ、２４３０ｂ（例えば、１７３０ａ〜１７３０ｃ）は、それぞれの解凍ユニットがそれぞれのデータ解凍スキームを適用することによってデータ解凍を実行すべきか否かと、それぞれのデータ解凍スキーム用の、複数のデータ解凍アルゴリズムから選択可能であるデータ解凍アルゴリズムと、のうちの少なくとも１つを決定するように制御可能とすることができる。このような制御の例は、図１７の１７３２ａ〜１７３２ｃに見られる。第１及び第２の解凍ユニット２４３０ａ〜ｂ（例えば、１７３０ａ〜１７３０ｃ）の制御は、意味論的に意味のあるデータフィールド２４８４のそれぞれのデータ型に基づくとすることができる。
【００９８】
データ解凍デバイス２４００の機構２４４０は、意味論的に意味のあるデータフィールド２４８４の数及びサイズについての構造データフィールド情報（例えば、図１７の１７４２、１７４３）を受け取るように構成されることができる。
【００９９】
幾つかの有利な実施形態では、データ解凍デバイス２４００は浮動小数点数を圧縮するために使用される。これは、例えば図２１の実施形態の場合である。従って、解凍データセット２４９０のデータ値２４８２は浮動小数点数であり、意味論的に意味のあるデータフィールド２４８４は符号（ｓ）、指数（ｅ）、及び仮数（ｍＨ、ｍＬ）とすることができる。圧縮データセット２４１０（例えば、２１１０）の圧縮指数（ｅ）及び仮数（ｍＨ、ｍＬ）データフィールド２４３２ａ、２４３２ｂは、デコンプレッサ２４３０のそれぞれの解凍ユニット２４３０ａ、２４３０ｂ（例えば２１３０ａ〜２１３０ｃ）によって解凍されることができる。幾つかの代替では、図２１と同様に、圧縮データセット２４１０（例えば、２１１０）の符号（ｓ）データフィールドは非圧縮であり、デコンプレッサ２４３０の解凍ユニット２４３０ａ、２４３０ｂ（例えば、２１３０ａ〜２１３０ｃ）の何れによっても解凍されない。
【０１００】
図２０のデータ圧縮デバイスについて説明したように、圧縮データセット２４１０は、意味論的に意味のあるデータフィールドの少なくとも１つの圧縮サブフィールド（ｍＨ、ｍＬ）を備えることができる。従って、図２１のデータ解凍デバイス２１００の場合のように、解凍デバイス２４００（例えば、２１３０ａ、２１３０ｂ）のうちの少なくとも１つ（例えば２１３０ａ）は、解凍サブフィールドを生成するために、データ解凍スキームを前記少なくとも１つのサブフィールド（ｍＬ）に適用するように構成され、機構２４４０（例えば、２１３０ａ）は、解凍データセット２４９０の帰着データ値に解凍サブフィールドを含めるように構成されることができる。
【０１０１】
先と同様に、これも、例えば図２１の実施形態の場合である。サブフィールドは仮数上位（ｍＨ）及び仮数下位（ｍＬ）とすることができ、仮数上位（ｍＨ）及び仮数下位（ｍＬ）のサブフィールドのうちの少なくとも１つは、仮数上位及び仮数下位サブフィールドのうちの他方のサブフィールドから切り離されて解凍される。有利にも、仮数データフィールドうちの少なくとも仮数上位（ｍＨ）サブフィールドは、統計的解凍によって解凍され、指数（ｅ）データフィールドは統計的解凍、デルタ復号化、又は別の解凍スキームのうちの１つによって解凍される。
【０１０２】
例えば、図２１などの有益な実施形態では、圧縮データセット２２１０（例えば、２１１０）は、次の順序で、
ｉ）  符号（ｓ）データフィールドを備える第１のグループ、
ｉｉ）  次に、仮数データフィールドの圧縮仮数下位（ｍＬ）サブフィールドを備える第２のグループ、
ｉｉｉ）  次に、圧縮指数（ｅ）データフィールドを備える第３のグループ、及び
ｉｖ）  次に、圧縮前の元のデータセットのデータ値における元の順序とは逆の順序で、仮数データフィールドの圧縮仮数上位（ｍＨ）サブフィールドを備える第４のグループ、を備える。
【０１０３】
この実施形態では、デコンプレッサ２４３０は、２フェーズ動作アーキテクチャを有することができ、
・  第１のフェーズにおいて、仮数データフィールドの仮数上位（ｍＨ）及び仮数下位（ｍＬ）サブフィールドは、デコンプレッサ２４３０の第１及び第２の解凍ユニット（例えば、２１３０ａ、２１３０ｂ）によって統計的解凍で並列に解凍され、
・  第２のフェーズにおいて、指数（ｅ）データフィールドは、デコンプレッサ２４３０の第３の解凍ユニット（例えば、２１３０ｃ）によって統計的解凍、デルタ復号化、又は別の解凍スキームで解凍される。
【０１０４】
この配置は効率的な解凍を可能にするであろう。
【０１０５】
有利にも、第１、第２及び第３の解凍ユニット（例えば、２１３０ａ、２１３０ｂ、２１３０ｃ）は、それぞれの解凍仮数上位（ｍＨ）及び仮数下位（ｍＬ）サブフィールドと解凍指数（ｅ）データフィールドを、解凍データセット２４９０（例えば２１９０）に直接配置するように構成され、それにより前記機構２４４０を実装し、（図１７の再構築器ユニット１７４０のような）別個の機構の必要性を排除する。
【０１０６】
一般的な本発明のデータ解凍方法が図２５に示されている。図２５の２５１０〜２５３０に開示されている機能に加えて及び／又は機能の改良として、この一般的な本発明のデータ解凍方法は、上述したデータ解凍デバイス２４００の様々な実施形態の機能的特徴の何れか又は全てを有することができる。
【０１０７】
本明細書で開示されているそれぞれのデータ圧縮デバイスは、例えば、ハードウェアで、例えば、集積回路内のデジタル回路として、専用装置（例えば、メモリコントローラ）として、プログラム可能処理装置（例えば、中央処理装置（ＣＰＵ：ｃｅｎｔｒａｌ  ｐｒｏｃｅｓｓｉｎｇ  ｕｎｉｔ）又はデジタル信号プロセッサ（ＤＳＰ：ｄｉｇｉｔａｌ  ｓｉｇｎａｌ  ｐｒｏｃｅｓｓｏｒ）として、フィールドプログラマブルゲートアレイ（ＦＰＧＡ：ｆｉｅｌｄ−ｐｒｏｇｒａｍｍａｂｌｅ  ｇａｔｅ  ａｒｒａｙ）、又は他の論理回路などとして実装されることができる。本明細書に記載されているそれぞれのデータ圧縮方法の機能は、例えば、適切に構成されているそれぞれのデータ圧縮デバイスの何れかによって、又は、一般的に、それぞれのデータ圧縮方法を実行するように構成される（例えば、プロセッサ装置／プロセッサチップ又はメモリ装置／メモリチップに含まれるか、又はそれに関連付けられる）論理回路を備える装置によって、あるいは、代替的に、ＣＰＵ又はＤＳＰ（例えば、図１〜図５の処理ユニットＰ１…Ｐｎの何れか）などの汎用処理装置によってロードされ且つ実行されると、それぞれの方法の実行を引き起こすコード命令を備えるそれぞれのコンピュータプログラム製品によって、実行されることができる。
【０１０８】
本明細書で開示されているそれぞれのデータ解凍デバイスは、例えば、ハードウェアで、例えば、集積回路内のデジタル回路として、専用装置（例えば、メモリコントローラ）として、プログラム可能処理装置（例えば、中央処理装置（ＣＰＵ）又はデジタル信号プロセッサ（ＤＳＰ））として、フィールドプログラマブルゲートアレイ（ＦＰＧＡ）、又は他の論理回路などとして実装されることができる。本明細書に記載されているそれぞれのデータ解凍方法の機能は、例えば、適切に構成されているそれぞれのデータ解凍デバイスの何れかによって、又は、一般的に、それぞれのデータ解凍方法を実行するように構成される（例えば、プロセッサ装置／プロセッサチップ又はメモリ装置／メモリチップに含まれるか、又はそれに関連付けられる）論理回路を備える装置によって、あるいは、代替的に、ＣＰＵ又はＤＳＰ（例えば、図１〜図５の処理ユニットＰ１…Ｐｎの何れか）などの汎用処理装置によってロードされ且つ実行されると、それぞれの方法の実行を引き起こすコード命令を備えるそれぞれのコンピュータプログラム製品によって、実行されることができる。
【０１０９】
図２６は本発明による一般的なシステム２６００を示す。このシステムは、１つ以上のメモリ２６１０、データ圧縮デバイス２６２０（例えば、データ圧縮デバイス１５００、２０００、２２００の何れか）、及びデータ解凍デバイス２６３０（例えば、データ解凍デバイス１７００、２１００、２４００の何れか）を備える。有利にも、システム２６００は、コンピュータシステム（例えば、図１〜図５のコンピュータシステム１００〜５００の何れか）であり、前記１つ以上のメモリ２６１０は、キャッシュメモリ／メモリ（複数）（例えば、図１〜図５のキャッシュメモリＬ１〜Ｌ３の何れか）、ランダムアクセスメモリ／メモリ（複数）（例えば、図１〜図５のメモリ１３０〜５３０の何れか）、又は二次記憶装置／記憶装置（複数）である。代替的に、システム２６００は、データ通信システム（例えば、図６〜７の通信ネットワーク６００、７００など）であり、前記１つ又は複数のメモリ２６１０は、データ通信システム（例えば、図６〜７の送信機６１０、７１０及び受信機６２０、７２０）の送信ノード及び受信ノードに関連するデータバッファとすることができる。
【図１】
2018520576.tif 000003
【図２】
2018520576.tif 000004
【図３】
2018520576.tif 000005
【図４】
2018520576.tif 000006
【図５】
2018520576.tif 000007
【図６】
2018520576.tif 000008
【図７】
2018520576.tif 000009
【図８】
2018520576.tif 000010
【図９】
2018520576.tif 000011
【図１０】
2018520576.tif 000012
【図１１】
2018520576.tif 000013
【図１２】
2018520576.tif 000014
【図１３】
2018520576.tif 000015
【図１４】
2018520576.tif 000016
【図１５】
2018520576.tif 000017
【図１６】
2018520576.tif 000018
【図１７】
2018520576.tif 000019
【図１８】
2018520576.tif 000020
【図１９】
2018520576.tif 000021
【図２０】
2018520576.tif 000022
【図２１】
2018520576.tif 000023
【図２２Ａ】
2018520576.tif 000024
【図２２Ｂ】
2018520576.tif 000025
【図２３】
2018520576.tif 000026
【図２４】
2018520576.tif 000027
【図２５】
2018520576.tif 000028
【図２６】
2018520576.tif 000029
【手続補正書】
【提出日】平成30年1月18日(2018.1.18)
【手続補正１】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
非圧縮データセット（２２１０）を圧縮データセット（２２９０）に圧縮するデータ圧縮デバイス（２２００）であって、前記非圧縮データセット（２２１０）は複数のデータ値（２２１２ａ〜ｍ）を備え、
前記データセット内の各データ値を複数の意味論的に意味のあるデータフィールド（２２１４ａ〜ｎ）に分割するように構成されるセパレータ（２２２０）と、
１つ以上の圧縮ユニット（２２３０ａ、２２３０ｂ）を備えるコンプレッサ（２２３０）であって、前記圧縮ユニットのうちの第１の圧縮ユニット（２２３０ａ）は、各データ値の前記意味論的に意味のあるデータフィールドのうちの少なくとも１つ（２２１４ａ）に対して、第１のデータ圧縮スキームを前記データフィールド（２２１４ａ）に、圧縮データフィールド（２２３２ａ）を生成するために、前記データ値の前記意味論的に意味のあるデータフィールドの他のもの（２２１４ｂ、２２１４ｎ）から切り離して、適用するように構成される、コンプレッサ（２２３０）と、
前記圧縮データセット（２２９０）を生成するために、帰着集約圧縮データセットに前記圧縮データフィールドを含めるように構成されるアグリゲータ（２２４０）と、を備えるデータ圧縮デバイス（２２００）。
【請求項２】
前記コンプレッサ（２２３０）は、前記第１の圧縮ユニット（２２３０ａ）の前記第１のデータ圧縮スキームとは異なる第２のデータ圧縮スキームを適用するように構成される第２の圧縮ユニット（２２３０ｂ）を備える、請求項１に記載のデータ圧縮デバイス（２２００）。
【請求項３】
前記第１の圧縮ユニット（２２３０ａ）の前記第１のデータ圧縮スキームは、前記第１のデータ圧縮スキームが前記全データ値（２２１２ａ）全体に適用された場合よりもより良好な圧縮率を得るために、前記意味論的に意味のあるデータフィールド（２２１４ａ〜ｎ）の前記少なくとも１つ（２２１４ａ）の値の局所性を利用するように適合される、請求項１又は２に記載のデータ圧縮デバイス（２２００）。
【請求項４】
前記意味論的に意味のあるデータフィールド（２２１４ａ〜ｎ）のうちの少なくとも１つは、前記圧縮ユニット（２２３０ａ、２２３０ｂ）の何れによっても圧縮されず、非圧縮のままにされ、前記生成された圧縮データセット（２２９０）内に前記アグリゲータ（２２４０）によって非圧縮形式で含められる、請求項１〜３の何れか一項に記載のデータ圧縮デバイス（２２００）。
【請求項５】
前記アグリゲータ（２２４０）は、前記生成された圧縮データセット（２２９０）において前記非圧縮データセット（２２１０）からのデータフィールド（２２１４ａ〜ｎ）の元の順序を維持するように構成される、請求項１〜４の何れか一項に記載のデータ圧縮デバイス（２２００）。
【請求項６】
前記セパレータ（２２２０、１５２０）は、前記データ値（２２１２ａ〜ｍ）からのそれぞれの第１の意味論的に意味のあるデータフィールド（２２１４ａ）を第１のデータフィールドグループ（１５２５ａ）に一緒にグループ化し、前記第１のデータフィールドグループを前記第１の圧縮ユニット（２２３０ａ、１５３０ａ）に提供するように構成され、
前記セパレータ（２２２０、１５２０）は、前記データ値（２２１２ａ〜ｍ）からのそれぞれの第２の意味論的に意味のあるデータフィールド（２２１４ｂ）を第２のデータフィールドグループ（１５２５ｂ）に一緒にグループ化し、前記第２のデータフィールドグループを前記第２の圧縮ユニット（２２３０ｂ、１５３０ｂ）に提供するように構成され、
前記アグリゲータ（２２４０、１５４０）は、前記第１の圧縮ユニットからの圧縮データフィールド（２２３２ａ）の第１のグループ（１５４２ａ）を形成し、前記第２の圧縮ユニットからの圧縮データフィールド（２２３２ｂ）の第２のグループ（１５４２ｂ）を形成し、前記生成された圧縮データセット（２２９０）において前記第１及び第２のグループを連結するように構成される、請求項２〜４の何れか一項に記載のデータ圧縮デバイス（２２００、１５００）。
【請求項７】
前記第１及び第２のデータフィールドグループ（１５２５ａ、１５２５ｂ）内の前記データフィールドを圧縮する場合、前記第１及び第２の圧縮ユニット（２２３０ａ〜ｂ、１５３０ａ〜ｃ）はそれぞれ並列に動作するように構成され、
前記第１のデータフィールドグループ（１５２５ａ）内の前記それぞれの第１の意味論的に意味のあるデータフィールド（２２１４ａ）は、同じ意味論的意味を共有し、前記第２のデータフィールドグループ（１５２５ｂ）内の前記それぞれの第２の意味論的に意味のあるデータフィールド（２２１４ｂ）は、同じ意味論的意味を共有する、
請求項６に記載のデータ圧縮デバイス（２２００）。
【請求項８】
前記非圧縮データセット（２２１０）の前記データ値（２２１２ａ〜ｍ）は、標準データ型又は抽象データ型である、請求項１〜７の何れか一項に記載のデータ圧縮デバイス（２２００）。
【請求項９】
前記第１及び第２の圧縮ユニット（２２３０ａ〜ｂ、１５３２ａ〜ｃ）は、前記意味論的に意味のあるデータフィールド（２２１４ａ〜ｎ）のそれぞれのデータ型に基づいて、
前記それぞれの圧縮ユニットが前記それぞれの圧縮ユニットのそれぞれのデータ圧縮スキームを適用することによってデータ圧縮を実行すべきであるか否かと、
前記それぞれのデータ圧縮スキーム用の、複数のデータ圧縮アルゴリズムから選択可能なデータ圧縮アルゴリズムと、のうちの少なくとも１つを決定するように制御可能である（２２３０ａ〜ｂ、１５３２ａ〜ｃ）、請求項２〜８の何れか一項に記載のデータ圧縮デバイス（２２００、１５００）。
【請求項１０】
前記セパレータ（２２２０、１５２０）は、前記意味論的に意味のあるデータフィールド（２２１４ａ〜ｎ）の数とサイズについての構造データフィールド情報（２２２２、１５２２、１５２３）を受け取るように構成される、請求項１〜９の何れか一項に記載のデータ圧縮デバイス（２２００、１５００）。
【請求項１１】
前記セパレータ（２２２０、２０２０）は、前記意味論的に意味のあるデータフィールド（２２１４ａ〜ｎ）のうちの少なくとも１つを２つ以上のサブフィールド（ｍＨ、ｍＬ）に更に分割するように構成され、
前記コンプレッサユニット（２２３０ａ〜ｂ、２０３０ａ〜ｃ）の少なくとも１つ（２０３０ａ、２０３０ｂ）は、前記サブフィールドの少なくとも１つ（ｍＬ）に対して、データ圧縮スキームを前記サブフィールド（ｍＬ）に、圧縮サブフィールドを生成するために、前記サブフィールドの他のサブフィールド（ｍＨ）から切り離して、適用するように構成され、
前記アグリゲータ（２２４０、２０４０）は、前記圧縮データセット（２２９０、２０９０）を生成するために、帰着集約圧縮データセットに前記圧縮サブフィールドを含めるように構成される、請求項１〜１０の何れか一項に記載のデータ圧縮デバイス（２２００、２０００）。
【請求項１２】
前記非圧縮データセット（２２１０、２０１０）の前記データ値（２２１２ａ〜ｍ）は浮動小数点数であり、前記意味論的に意味のあるデータフィールド（２２１４ａ〜ｎ）は、符号（ｓ）、指数（ｅ）、及び仮数（ｍＨ、ｍＬ）である、請求項１〜１１の何れか一項に記載のデータ圧縮デバイス（２２００、２０００）。
【請求項１３】
前記指数（ｅ）及び仮数（ｍＨ、ｍＬ）データフィールドは、前記コンプレッサ（２２３０、２０３０）のそれぞれの圧縮ユニット（２２３０ａ〜ｃ、２０３０ａ〜ｃ）によって圧縮される、請求項１２に記載のデータ圧縮デバイス２２００、２０００）。
【請求項１４】
前記サブフィールドは仮数上位（ｍＨ）及び仮数下位（ｍＬ）であり、前記仮数上位（ｍＨ）及び仮数下位（ｍＬ）サブフィールドの少なくとも１つは、前記仮数上位及び仮数下位サブフィールドの他のものから切り離されて圧縮される、請求項１２〜１３の何れかと組み合わされた請求項１１に記載のデータ圧縮デバイス（２２００、２０００）。
【請求項１５】
前記仮数データフィールドの少なくとも前記仮数上位（ｍＨ）サブフィールドは、統計的圧縮によって圧縮され、前記指数（ｅ）データフィールドは、統計的圧縮、デルタ符号化、又は他の圧縮スキームのうちの１つによって圧縮され、
前記仮数データフィールドの前記仮数上位（ｍＨ）及び仮数下位（ｍＬ）サブフィールドと前記指数（ｅ）データフィールドは、前記コンプレッサ（２２３０、２０３０）のそれぞれの圧縮ユニット（２０３０ｃ、２０３０ｂ、２０３０）によって圧縮され、前記アグリゲータ（２２４０、２０４０）は、
符号（ｓ）データフィールドを備える第１のグループ（２０４２‐１）、
次に、前記仮数データフィールドの圧縮仮数下位（ｍＬ）サブフィールドを備える第２のグループ（２０４２‐２）、
次に、圧縮指数（ｅ）データフィールドを備える第３のグループ（２０４２‐３）、
次に、前記非圧縮データセット（２０１０）とは逆の順序で前記仮数データフィールドの圧縮仮数上位（ｍＨ）サブフィールドを備える第４のグループ（２０４２‐４）、の順序で、前記圧縮データセット（２２９０、２０９０）を、その中に保存することによって、生成するように構成される、
請求項１４に記載のデータ圧縮デバイス（２２００、２０００）。
【請求項１６】
非圧縮データセット（２２１０）を圧縮データセット（２２９０）に圧縮するデータ圧縮方法であって、前記非圧縮データセット（２２１０）は複数のデータ値（２２１２ａ〜ｍ）を備え、
前記データセット内の各データ値に対して、前記データ値を複数の意味論的に意味のあるデータフィールド（２２１４ａ〜ｎ）に分割するステップ（２３１０）と、
各データ値の前記意味論的に意味のあるデータフィールドのうちの少なくとも１つ（２２１４ａ）に対して、第１のデータ圧縮スキームを前記データフィールド（２２１４ａ）に、圧縮データフィールド（２２３２ａ）を生成するために、前記データ値の前記意味論的に意味のあるデータフィールドの他のもの（２２１４ｂ、２２１４ｎ）から切り離して、適用するステップ（２３２０）と、
前記圧縮データセット（２２９０）を生成する（２３３０）ために、帰着集約圧縮データセットに前記圧縮データフィールドを含めるステップと、を備えるデータ圧縮方法。
【請求項１７】
処理装置によってロードされ実行されると、請求項１６に記載の方法の実行を引き起こすコード命令を備えるコンピュータプログラム製品。
【請求項１８】
請求項１６に記載の方法を実行するように構成される論理回路を備える装置。
【請求項１９】
圧縮データセット（２４１０）を解凍データセット（２４９０）に解凍するデータ解凍デバイス（２４００）であって、前記圧縮データセット（２４１０）はデータ値（２４８２）を表し、前記データ値（２４８２）の各々は複数の意味論的に意味のあるデータフィールド（２４８４）を有し、前記データ値（２４８２）のうちの少なくとも１つ（２４３２ａ）は、前記意味論的に意味のあるデータフィールドの他のものから切り離されて圧縮され、
１つ又は複数の解凍ユニット（２４３０ａ、２４３０ｂ）を備えるデコンプレッサ（２４３０）であって、前記解凍ユニットのうちの第１の解凍ユニット（２４３０ａ）は、各データ値の前記少なくとも１つの圧縮データフィールド（２４３２ａ）に対して、解凍データフィールド（２４８４ａ）を生成するために第１のデータ解凍スキームを前記圧縮データフィールド（２４３２ａ）に適用するように構成される、デコンプレッサ（２４３０）と、
前記解凍データセットの帰着データ値（２４８２ａ）内に各解凍データフィールド（２４８４ａ）を含めることによって、前記解凍データセット（２４９０）を生成するように構成される機構（２４４０）と、を備えるデータ解凍デバイス（２４００）。
【請求項２０】
前記デコンプレッサ（２４３０）は、前記第１の解凍ユニット（２４３０ａ）の前記第１のデータ解凍スキームとは異なる第２のデータ解凍スキームを適用するように構成される第２の解凍ユニット（２４３０ｂ）を備える、請求項１９に記載のデータ解凍デバイス（２４００）。
【請求項２１】
前記圧縮データセット（２４１０）の前記データフィールド（２４８４）の少なくとも１つは、圧縮されず、前記解凍データセットを生成するように構成される前記機構（２４４０）によって前記解凍データセット（２４９０）の帰着データ値（２４８２）に非圧縮形式で含められる、請求項１９〜２０の何れか一項に記載のデータ解凍デバイス（２４００）。
【請求項２２】
前記機構（２４４０）は、前記生成された解凍データセット（２４９０）において前記圧縮データセット（２４１０）からの圧縮データフィールド（２４３２ａ、２４３２ｂ）の順序を維持するように構成される、請求項１９〜２１の何れか一項に記載のデータ解凍デバイス（２４００）。
【請求項２３】
前記デコンプレッサ（２４３０、１７３０）の前記解凍ユニット（２４３０ａ、２４３０ｂ、１７３０ａ〜１７３０ｃ）は、前記圧縮データセット（２４１０、１７１０）から圧縮データフィールドのそれぞれのグループ（１７１２ａ〜１７１２ｃ）を受け取り、前記それぞれのグループの前記圧縮データフィールドを解凍し、前記機構（２４４０、１７４０）に解凍データフィールドのそれぞれのグループ（１７３５ａ〜１７３５ｃ）を提供し、
前記機構（２４４０、１７４０）は、前記それぞれの解凍ユニット（２４３０ａ、２４３０ｂ、１７３０ａ〜１７３０ｃ）によって解凍された解凍データフィールドの前記グループ（１７３５ａ〜１７３５ｃ）に対して、前記生成された解凍データセット（２４９０）において、圧縮前の元のデータセットの前記データ値の前記データフィールドの元の順序を再構築するように構成される、請求項１９〜２１の何れか一項に記載のデータ解凍デバイス（２４００、１７００）。
【請求項２４】
前記デコンプレッサ（２４３０、１７３０）の前記解凍ユニット（２４３０ａ、２４３０ｂ、１７３０ａ〜１７３０ｃ）は並列に動作するように構成される、請求項１９〜２３の何れか一項に記載のデータ解凍デバイス（２４００、１７００）。
【請求項２５】
前記解凍データセット（２４９０）の前記データ値（２４８２）は標準データ型又は抽象データ型である、請求項１９〜２４の何れか一項に記載のデータ解凍デバイス（２４００）。
【請求項２６】
前記デコンプレッサ（２４３０、１７３０）の前記解凍ユニット（２４３０ａ、２４３０ｂ、１７３０ａ〜１７３０ｃ）は、前記意味論的に意味のあるデータフィールド（２４８４）のそれぞれのデータ型に基づいて、
前記それぞれの解凍ユニットが前記それぞれの解凍ユニットのそれぞれのデータ解凍スキームを適用することによってデータ解凍を実行すべきか否かと、
前記それぞれのデータ解凍スキーム用の、複数のデータ解凍アルゴリズムから選択可能であるデータ解凍アルゴリズムと、のうち少なくとも１つを決定するように制御可能である（１７３２ａ〜ｃ）、請求項１９〜２５の何れか一項に記載のデータ解凍デバイス（２４００、１７００）。
【請求項２７】
前記機構（２４４０）は、前記意味論的に意味のあるデータフィールド（２４８４）の数及びサイズに関する構造データフィールド情報（１７４２、１７４３）を受け取るように構成される、請求項１９〜２６の何れか一項に記載のデータ解凍デバイス（２４００、１７００）。
【請求項２８】
前記圧縮データセット（２４１０、２１１０）は、意味論的に意味のあるデータフィールドの少なくとも１つの圧縮サブフィールド（ｍＨ、ｍＬ）を備え、
前記解凍ユニット（２４００、２１３０ａ、２１３０ｂ）の少なくとも１つ（２１３０ａ）は、解凍サブフィールドを生成するためにデータ解凍スキームを前記少なくとも１つのサブフィールド（ｍＬ）に適用するように構成され、
前記機構（２４４０、２１３０ａ）は、前記解凍データセット（２４９０）の帰着データ値に前記解凍サブフィールドを含めるように構成される、請求項１９〜２７の何れか一項に記載のデータ解凍デバイス（２４００、２１００）。
【請求項２９】
前記解凍データセット（２４９０）の前記データ値（２４８２）は浮動小数点数であり、前記意味論的に意味のあるデータフィールド（２４８４）は符号（ｓ）、指数（ｅ）、及び仮数（ｍＨ、ｍＬ）である、請求項１９〜２８の何れか一項に記載のデータ解凍デバイス（２４００、２１００）。
【請求項３０】
前記圧縮データセット（２４１０、２１１０）の圧縮指数（ｅ）及び仮数（ｍＨ、ｍＬ）データフィールド（２４３２ａ、２４３２ｂ）は、前記デコンプレッサ（２４３０）のそれぞれの解凍ユニット（２４３０ａ、２４３０ｂ、２１３０ａ〜２１３０ｃ）によって解凍される、請求項２９に記載のデータ解凍デバイス（２４００、２１００）。
【請求項３１】
前記サブフィールドは仮数上位（ｍＨ）及び仮数下位（ｍＬ）であり、前記仮数上位（ｍＨ）及び仮数下位（ｍＬ）サブフィールドのうちの少なくとも１つは、前記仮数上位及び仮数下位サブフィールドのうちの他方のサブフィールドから切り離されて解凍される、請求項２９〜３０の何れかと組み合わされた請求項２８に記載のデータ解凍デバイス（２４００、２１００）。
【請求項３２】
前記仮数データフィールドの少なくとも前記仮数上位（ｍＨ）サブフィールドは統計的解凍によって解凍され、前記指数（ｅ）データフィールドは統計的解凍、デルタ復号化、又は別の解凍スキームの１つによって解凍され、
前記圧縮データセット（２２１０、２１１０）は、以下の順序で、
ｉ）符号（ｓ）データフィールドを備える第１のグループと、
ｉｉ）次に、前記仮数データフィールドの圧縮仮数下位（ｍＬ）サブフィールドを備える第２のグループと、
ｉｉｉ）次に、圧縮指数（ｅ）データフィールドを備える第３のグループと、
ｉｖ）次に、圧縮前の元のデータセットの前記データ値における元の順序とは逆の順序で、前記仮数データフィールドの圧縮仮数上位（ｍＨ）サブフィールドを備える第４のグループと、を備え、
前記デコンプレッサ（２４３０）は２フェーズ動作アーキテクチャを有し、ここで、
・第１フェーズにおいて、前記仮数データフィールドの前記仮数上位（ｍＨ）及び仮数下位（ｍＬ）サブフィールドは、前記デコンプレッサ（２４３０）の第１及び第２解凍ユニット（２１３０ａ、２１３０ｂ）によって統計的解凍によって並列に解凍され、
・第２のフェーズにおいて、前記指数（ｅ）データフィールドは、統計的解凍、デルタ復号化、又は別の解凍スキームによって、前記デコンプレッサ（２４３０）の第３の解凍ユニット（２１３０ｃ）によって解凍される、
請求項３１に記載のデータ解凍デバイス（２４００、２１００）。
【請求項３３】
前記第１、第２、及び第３の解凍ユニット（２１３０ａ、２１３０ｂ、２１３０ｃ）は、前記それぞれの解凍仮数上位（ｍＨ）及び仮数下位（ｍＬ）サブフィールドと前記解凍指数（ｅ）データフィールドとを、前記解凍データセット（２４９０、２１９０）内に直接配置し、それにより前記機構（２４４０）を実装するように構成される、請求項３２に記載のデータ解凍デバイス（２４００、２１００）。
【請求項３４】
圧縮データセット（２４１０）を解凍データセット（２４９０）に解凍するデータ解凍方法であって、前記圧縮データセット（２４１０）はデータ値（２４８２）を表し、前記データ値（２４８２）の各々は複数の意味論的に意味のあるデータフィールド（２４８４）を有し、前記データ値（２４８２）のうちの少なくとも１つ（２４３２ａ）は、前記意味論的に意味のあるデータフィールドの他のものから切り離されて圧縮されており、
各データ値の前記少なくとも１つの圧縮データフィールド（２４３２ａ）に対して、解凍データフィールド（２４８４ａ）を生成するために、第１のデータ解凍スキームを前記圧縮データフィールド（２４３２ａ）に適用するステップ（２５２０）と、
前記解凍データセットの帰着データ値（２４８２ａ）に各解凍データフィールド（２４８４ａ）を含めることによって、前記解凍データセット（２４９０）を生成するステップ（２５３０）と、を備えるデータ解凍方法。
【請求項３５】
処理装置によってロードされ実行されると、請求項３４に記載の方法の実行を引き起こすコード命令を備えるコンピュータプログラム製品。
【請求項３６】
請求項３４に記載の方法を実行するように構成される論理回路を備える装置。
【請求項３７】
１つ以上のメモリ（２６１０）と、請求項１〜１５の何れか一項に記載のデータ圧縮デバイス（１５００、２０００、２２００）と、請求項１９〜３３の何れか一項に記載のデータ解凍デバイス（１７００、２１００、２４００）と、を備えるシステム（２６００）。
【請求項３８】
前記システムはコンピュータシステム（１００、２００、３００、４００、５００）であり、前記１つ以上のメモリ（２６１０）は、
キャッシュメモリ（Ｌ１〜Ｌ３）と、
ランダムアクセスメモリ（１３０、２３０、３３０、４３０、５３０）と、
二次記憶装置からなる群からのものである、請求項３７に記載のシステム（２６００）。
【請求項３９】
前記システムはデータ通信システム（６００、７００）であり、前記１つ以上のメモリ（２６１０）はデータバッファである、請求項３７に記載のシステム（２６００）。

【国際調査報告】
2018520576.tif 000030
2018520576.tif 000031
2018520576.tif 000032
2018520576.tif 000033