(57)【特許請求の範囲】
【請求項１】
エラー・プロテクション・スキームに応じた、入力されたデータ値に対するエラー・プロテクション・コードを計算するのに用いるキーを生成するコンピュータで実装された方法であって、
複数のデータ値サイズを入力するステップと、
前記複数のデータ値サイズの中の最大データ値サイズに対する前記エラー・プロテクション・コードを計算するのに用いるキーを生成するために、キー生成アルゴリズムを適用するステップであって、前記キー生成アルゴリズムが、複数のサブ・キーを含むように前記キーを生成し、各サブ・キーが、前記入力されたデータ値サイズのうちの１つと関連付けられ、前記エラー・プロテクション・スキームのキー要件に準拠する、適用するステップと
を含み、
前記キー生成アルゴリズムを適用する前記ステップが、
サブ・キーのシーケンスを計算するステップであって、それにより、前記シーケンス内の第１のサブ・キーを除く各サブ・キーが、前記シーケンス内の直前のサブ・キーを含み、残余部分が、前記キー要件に準拠することを保証するように計算され、最後のサブ・キーが、前記最大データ値サイズに対する前記エラー・プロテクション・コードを計算するのに用いられる前記キーを形成する、計算するステップ
を含む、コンピュータで実装された方法。
【請求項２】
前記エラー・プロテクション・スキームに準拠するエラー・プロテクション回路機構を生成するのに用いる前記キーを出力するステップを更に含む、請求項１に記載のコンピュータで実装された方法。
【請求項３】
前記キー生成アルゴリズムを適用する前記ステップが、
前記複数のデータ値サイズをサイズの小さいものから順に処理するステップであって、それにより、計算された前記第１のサブ・キーが、前記複数のデータ値サイズの中の最小データ値サイズに対するサブ・キーとなる、処理するステップと、
前記シーケンス内の各後続サブ・キーについて、前記シーケンス内の前記直前のサブ・キーを組み込み、前記関連付けられたデータ値サイズに即した前記サブ・キーの前記残余部分を判断し、前記キー要件に準拠するように前記サブ・キーの前記残余部分についての値を計算することにより、当該サブ・キーを計算するステップと
を含む、請求項１又は２に記載のコンピュータで実装された方法。
【請求項４】
前記サブ・キーの各々が、行と列に配置された値の行列を含み、前記シーケンス内の各後続サブ・キーについて、前記直前のサブ・キーが、当該後続サブ・キーの前記列のサブセットを占め、前記サブ・キーの前記残余部分を計算する前記ステップが、前記列のサブセット内の残りの列値を所定の値で満たすステップと、前記列の前記サブセットは計算せずに残りの列についての値を計算するステップとを含む、請求項３に記載のコンピュータで実装された方法。
【請求項５】
前記所定の値が０値である、請求項４に記載のコンピュータで実装された方法。
【請求項６】
前記列の前記サブセットは計算せずに前記残りの列についての前記値を計算する際、前記キー生成アルゴリズムが、前記列の前記サブセット内に既存のあらゆる値のシーケンスを除外する、請求項４又は５に記載のコンピュータで実装された方法。
【請求項７】
前記複数のデータ値サイズが個別に指定される、請求項１から６のいずれかに記載のコンピュータで実装された方法。
【請求項８】
前記複数のデータ値サイズが、最小データ値サイズと最大データ値サイズを特定する範囲の入力によって判断される、請求項１から６のいずれかに記載のコンピュータで実装された方法。
【請求項９】
コンピュータ上で実行されると、請求項１から８のいずれかに記載した通り、エラー・プロテクション・スキームに応じた、入力されたデータ値に対するエラー・プロテクション・コードを計算するのに用いるキーを生成する方法を実行するコンピュータ・プログラムを記録した、非一時的コンピュータ・プログラム記録媒体。
【請求項１０】
少なくとも、第１のデータ値サイズのデータ値を取り扱うための第１のエラー・プロテクション回路と、前記第１のデータ値サイズとは異なる第２のデータ値サイズのデータ値を取り扱うための第２のエラー・プロテクション回路とを含む、複数のエラー・プロテクション回路を備えるデータ処理システムであって、
前記第１及び第２のエラー・プロテクション回路が、請求項１のコンピュータで実装された方法に従って生成されたキーから選択されたサブ・キーを利用する計算を実行するための計算回路機構を備え、前記第１及び第２のエラー・プロテクション回路の各々に対して、前記サブ・キーが、当該エラー・プロテクション回路によって取り扱われる前記関連付けられたデータ値サイズに基づいて選択される、データ処理システム。
【請求項１１】
前記第１及び第２のエラー・プロテクション回路の各々における前記計算回路機構が、当該エラー・プロテクション回路に対する前記選択されたサブ・キーの全体を利用した機能を実装する、請求項１０に記載のデータ処理システム。
【請求項１２】
前記第１のエラー・プロテクション回路における前記計算回路機構が、前記第１のエラー・プロテクション回路に対する前記選択されたサブ・キーの全体を利用した機能を実装し、
前記第２のエラー・プロテクション回路における前記計算回路機構が、前記第２のエラー・プロテクション回路に対する前記選択されたサブ・キーの判断された部分を利用する第１の機能と、前記第１のエラー・プロテクション回路における前記計算回路機構によって実装される前記機能の出力を利用する第２の機能とを実装する、請求項１０に記載のデータ処理システム。
【請求項１３】
前記第１のデータ値サイズが、前記第２のデータ値サイズよりも小さい、請求項１２に記載のデータ処理システム。
【請求項１４】
前記第１のデータ値サイズが、前記第２のデータ値サイズよりも大きい、請求項１２に記載のデータ処理システム。
【請求項１５】
前記第１及び第２のエラー・プロテクション回路が、前記選択されたサブ・キー及び入力されたデータ値を用いてエラー・プロテクション・コードを生成するためのエラー・プロテクション・コード生成回路である、請求項１０から１４のいずれかに記載のデータ処理システム。
【請求項１６】
前記第２のエラー・プロテクション回路における前記第２の機能が、前記第１の機能からの出力と、前記第１のエラー・プロテクション回路における計算回路機構によって実装される前記機能の前記出力から導出されるデータとを、入力として使用する動作を適用するように配置される、請求項１２に従属する場合の請求項１５に記載のデータ処理システム。
【請求項１７】
前記第１及び第２のエラー・プロテクション回路が、前記選択されたサブ・キー、入力されたデータ値、及び関連付けられたエラー・プロテクション・コードを使用して、シンドローム情報を生成するために用いられるエラー・チェック回路である、請求項１０から１４のいずれかに記載のデータ処理システム。
【請求項１８】
少なくとも、第１のデータ値サイズのデータ値を取り扱うための第１のエラー・プロテクション手段と、前記第１のデータ値サイズとは異なる第２のデータ値サイズのデータ値を取り扱うための第２のエラー・プロテクション手段とを含む、複数のエラー・プロテクション手段を備えるデータ処理システムであって、
前記第１及び第２のエラー・プロテクション手段が、請求項１のコンピュータで実装された方法に従って生成されたキーから選択されたサブ・キーを利用する計算を実行するための計算手段を備え、前記第１及び第２のエラー・プロテクション手段の各々に対して、前記サブ・キーが、当該エラー・プロテクション手段によって取り扱われる前記関連付けられたデータ値サイズに基づいて選択される、データ処理システム。
【発明の詳細な説明】
【技術分野】
【０００１】
本技術は、入力されたデータ値に対するエラー・プロテクション・コードを計算する際に使用するキーを生成するための方法及びシステムに関すると共に、このキーを用いた計算を実行するためのエラー・プロテクション回路を組み込んだ、データ処理システムに関する。
【背景技術】
【０００２】
データ処理システムには、その内部で伝達される多様なデータ値のエラーに対する堅牢性の向上を目的とした、エラー・プロテクション機構を設けることが知られている。具体的に述べると、データ値と関連付けるためのエラー・プロテクション・コードを生成することが可能であり、このエラー・プロテクション・コードを、後に当該データ値と併用することで、例えばソフト又はハードのエラーにより、そのデータ値が破損しているといった状況を検出することができる。エラー・プロテクション・コードは、データにエラーがあることを単に見出すだけで十分なものとされる場合もあれば、エラーの存在を検出できるだけでなく、そのエラーの訂正までできることを以て十分なものとされる場合もある。両タイプのエラー・プロテクション・コードは、一般的にエラー・コレクション・コード（ＥＣＣ）と呼ばれるため、本明細書では、エラー・プロテクション・コードをＥＣＣとも表記する。
【０００３】
このようなデータ処理システムでは、エラー・プロテクション・コード生成回路（データ値と関連付けられるエラー・プロテクション・コードを生成する）の形を採るエラー・プロテクション回路と、エラー・チェック回路（データ値がエラーとなっている状況を検出し、エラー・プロテクション・スキームが許可した場合に当該エラーを訂正するために、データ値及びそのデータ値に関連付けられたエラー・プロテクション・コードを分析する）の形を採るエラー・プロテクション回路とを設けるのが一般的である。
【０００４】
典型的なエラー・プロテクション・スキームによれば、キーが生成され、このキーは、入力されたデータ値に対するエラー・プロテクション・コードを生成するために、エラー・プロテクション・コード生成回路によって使用されると共に、エラーを特定し訂正することを可能とするために、データ値及び関連付けられたエラー・プロテクション・コードと併用する形で、エラー・チェック回路機構によっても使用される。
【発明の概要】
【発明が解決しようとする課題】
【０００５】
どのエラー・プロテクション・スキームでも、キー（本明細書ではマスクとも呼ぶ）のサイズは、保護するデータ値のサイズに応じたものとなるのが通例である。多くの場合、データ処理システム内では多種多様なサイズのデータ値が伝達されるため、こうした多種多様なデータ値に対して適切な保護を施すためには、様々なキーが必要となる。
【０００６】
通常、入力された特定のデータ値サイズごとに、エラー・プロテクション・スキームに即した一意のキーを生成するのが標準的な方法である。しかし、この方法では、データ処理システム内で処理される、サイズの異なるデータ値（これら全てが一意に生成された関連キーを持っている）の数が激増した場合に、このデータ処理システム内で用いるのに必要なエラー・プロテクション回路の生成に関連した、著しい設計及び検証コストが生じてしまっている。こうした設計及び検証コストを削減可能な機構の実現が望まれよう。
【課題を解決するための手段】
【０００７】
ある例示的構成では、エラー・プロテクション・スキームに応じた、入力されたデータ値に対するエラー・プロテクション・コードを計算するのに用いるキーを生成する、コンピュータによって実施される方法が提供される。このコンピュータで実装された方法は、複数のデータ値サイズを入力するステップと、前記複数のデータ値サイズの中の最大データ値サイズに対するエラー・プロテクション・コードを計算するのに用いるキーを生成するために、キー生成アルゴリズムを適用するステップであって、キー生成アルゴリズムが複数のサブ・キーを含むようにキーを生成し、各サブ・キーが、入力されたデータ値サイズのうちの１つと関連付けられると共にエラー・プロテクション・スキームのキー要件に準拠する、適用するステップとを含んでいる。
【０００８】
別の例示的構成では、コンピュータ上で実行されると、上述の例示的構成に従って、エラー・プロテクション・スキームに応じた、入力されたデータ値に対するエラー・プロテクション・コードを計算するのに用いるキーを生成する方法を実行するコンピュータ・プログラムを提供する、非一時的コンピュータ・プログラム製品が提供される。
【０００９】
更に別の例示的構成では、少なくとも、第１のデータ値サイズのデータ値を取り扱うための第１のエラー・プロテクション回路と、前記第１のデータ値サイズとは異なる第２のデータ値サイズのデータ値を取り扱う第２のエラー・プロテクション回路とを含む、複数のエラー・プロテクション回路を備えるデータ処理システムであって、前記第１及び第２のエラー・プロテクション回路が、上記方法に従って生成されたキーから選択されるサブ・キーを利用する計算を実行するための計算回路機構を備え、第１及び第２のエラー・プロテクション回路の各々に対して、サブ・キーが当該エラー・プロテクション回路によって取り扱われる関連付けられたデータ値サイズに基づいて選択される、データ処理システムが提供される。
【００１０】
更に別の例示的構成では、少なくとも、第１のデータ値サイズのデータ値を取り扱うための第１のエラー・プロテクション手段と、前記第１のデータ値サイズとは異なる第２のデータ値サイズのデータ値を取り扱う第２のエラー・プロテクション手段とを含む、複数のエラー・プロテクション手段を備えるデータ処理システムであって、前記第１及び第２のエラー・プロテクション手段が、上記方法に従って生成されたキーから選択されるサブ・キーを利用する計算を実行するための計算手段を備え、第１及び第２のエラー・プロテクション手段の各々に対して、サブ・キーが当該エラー・プロテクション手段によって取り扱われる関連付けられたデータ値サイズに基づいて選択される、データ処理システムが提供される。
【００１１】
本技術は、添付図面に示すその実施例を参照しながら、単なる例証として更に説明される。
【図面の簡単な説明】
【００１２】
【図１】一実施例によるデータ処理システムのブロック図である。
【図２】一実施例で使用されるマスクと、受信したデータ値に対するエラー・コレクション・コードを計算するための関連計算とを概略的に示す図である。
【図３】一実施例によるマスク生成技術を示すフロー図である。
【図４】図３の手法を採用して一実施例によって生成されたサブ・マスクのシーケンスを示す図である。
【図５】一実施例による、様々なデータ値サイズに対し、２つの異なるエラー・プロテクション・スキーム向けに生成された、エラー・コレクション・コードのサイズを概略的に示す図である。
【図６】一実施例によりエラー・プロテクション回路を生成する際に実行されるステップを示すフロー図である。
【図７】一実施例の機構を用いて生成されたときの、サイズｄｗ＿ｘ＋１を持つデータ値に対するマスクの各種部分を示す図である。
【図８】一実施例のアップスケーリング機構により、サイズｄｗ＿ｘ＋１を持つデータ値に対するエラー・コレクション・コードが、サイズｄｗ＿ｘを持つデータ値に対するエラー・コレクション・コードから、どのようにして生成可能かを示すフロー図である。
【図９】一実施例による、図８の方法に従って動作するように配置された、エラー・コレクション・コード生成回路機構を示すブロック図である。
【図１０】一実施例による、ダウンスケーリング演算を実行して、サイズｄｗ＿ｘ＋１を持つデータ値に対して生成されたエラー・コレクション・コードから、サイズｄｗ＿ｘを持つデータ値に対するエラー・コレクション・コードを生成するように配置された、エラー・コレクション・コード生成回路機構を示すブロック図である。
【図１１Ａ】異なる実施例による、図７のマスクの代替形態を示す図である。
【図１１Ｂ】異なる実施例による、図７のマスクの代替形態を示す図である。
【図１１Ｃ】異なる実施例による、図７のマスクの代替形態を示す図である。
【図１２】本技術を実装するために使用可能なタイプの汎用コンピュータを概略的に示す図である。
【発明を実施するための形態】
【００１３】
添付図面を参照しながら実施例を論じるに先立ち、実施例の説明を以下に設ける。
【００１４】
ある例示的構成では、選択されたエラー・プロテクション・スキームに応じた、入力されたデータ値に対するエラー・プロテクション・コードを計算するのに用いるキーを生成するために、コンピュータによって実施される方法が提供される。具体的には、複数のデータ値サイズの入力後にキー生成アルゴリズムが適用されて、これら複数のデータ値サイズのうち、最大のデータ値サイズに対するエラー・プロテクション・コードを計算するのに用いるキーが生成される。キーの生成に際し、キー生成アルゴリズムは、複数のサブ・キーを含む形でこのキーを生成する。このとき、各サブ・キーは、入力されたデータ値サイズのうちの１つと関連付けられており、且つ選択されたエラー・プロテクション・スキームのキー要件に準拠したものとなっている。
【００１５】
結果として、生成されたキーは事実上、サブ・キーの包括的セットを形成する。各サブ・キーは、そのエラー・プロテクション・スキーム用となるキーの要件に準拠したものであり、且つ入力されたデータ値サイズのうちの特定の１つに関連付けられている。したがって、入力された複数のデータ値サイズのうちの特定のデータ値サイズに対して、上記方法で生成されたキーから選択された関連サブ・キーを利用する計算を実行するように、エラー・プロテクション回路機構を配置することができる。これにより、多種多様なデータ値サイズを取り扱うようにエラー・プロテクション回路を設計する場合、設計及び検証コストの大幅な削減が実現される。具体的には、生成されたキーによって提供されるサブ・キーからなる同一の包括的セットを各段階で参照することができ、このとき、抽出された関連サブ・キーは、必要なデータ値サイズに即したものとなる。
【００１６】
キー生成アルゴリズムは、選択されたエラー・プロテクション・スキームに応じたものとなる。例えば、特定サイズのデータ値に対するエラー・プロテクション・コードに必要なビット数は、選択されたエラー・プロテクション・スキームに応じて変化するということ、また、エラー・プロテクション・スキームに依存するデータ値から、どのようにしてキーを生成すべきかを指定する規則が、通常は存在するということが理解されよう。本技術によれば、キー生成アルゴリズムは、最大データ値サイズに関連付けられたキーを生成するだけではなく（このとき、当該キーはエラー・プロテクション・スキームのキー要件に準拠している）、個々のサブ・キーもまた、当該サブ・キー用に関連付けられたデータ値サイズに即して、エラー・プロテクション・スキームのキー要件に準拠していることを保証もする。このことにより、個々のサブ・キーの独立的な使用が可能となる。
【００１７】
一実施例では、コンピュータによって実施される方法によりキーが出力されるが（先に述べたように、このキーは事実上、様々なデータ値サイズに対するサブ・キーの包括的セットである）、それにより、次いでその出力されたキーを、エラー・プロテクション・スキームに準拠するエラー・プロテクション回路の生成時に、入力として使用することができる。エラー・プロテクション回路は多様な形態を採り得るため、例えば、入力された特定サイズのデータ値に対するエラー・プロテクション・コードを生成するためのエラー・プロテクション・コード生成回路（本明細書では、ＥＣＣ生成回路とも表記される）とすることや、データ値内で特定されたエラーを、そのデータ値及び関連付けられたＥＣＣの分析に基づいて検出し、潜在的には訂正するのに使用されるエラー・チェック回路とすることができる。どちらの場合も、処理中のデータのサイズに関連付けられた関連サブ・キーが、エラー・プロテクション回路によって実行される計算において使用される。
【００１８】
複数のサブ・キーを含む形でキーを生成するために、キー生成アルゴリズムは、幾つかの方法で配置されてよい。但し、一実施例では、キー生成アルゴリズムを適用するステップが、サブ・キーのシーケンスを計算するステップであって、それにより、シーケンス内の第１のサブ・キーを除く各サブ・キーがシーケンス内の直前のサブ・キーを含み、残余部分がキー要件に準拠することを保証するように計算され、最後のサブ・キーが最大データ値サイズに対するエラー・プロテクション・コードを計算するのに用いられるキーを形成する、計算するステップを含む。
【００１９】
よって、サブ・キーのシーケンスは事実上、ネスト化されたシーケンスを形成し、このとき、サブ・キーの一部分が直前のサブ・キーによって形成される。
【００２０】
一実施例では、キー生成アルゴリズムを適用するステップが、複数のデータ・サイズをサイズの小さいものから順に処理するステップであって、それにより、計算された第１のサブ・キーが、前記複数のデータ・サイズの中の最小データ値サイズに対するサブ・キーとなる、処理するステップを含む。次いで、シーケンス内の各後続サブ・キーについて、シーケンス内の直前のサブ・キーを組み込み、関連付けられたデータ値サイズに即したサブ・キーの残余部分を判断し、キー要件に準拠するようにサブ・キーの残余部分についての値を計算することにより、当該サブ・キーが計算される。
【００２１】
一実施例では、サブ・キーの各々が、行と列に配置された値の行列を含む。そうした配置の１つでは、シーケンス内の各後続サブ・キーについて、直前のサブ・キーが、当該後続サブ・キーの列のサブセットを占め、サブ・キーの残余部分を計算するステップが、列のサブセット内の残りの列値を所定の値で満たすステップと、前記列のサブセットは計算せずに残りの列についての値を計算するステップとを含む。
【００２２】
生成中の現行サブ・キーにおける、直前のサブ・キーが位置する正確な場所は、実施例に応じて変化し得る。一実施例では、直前のサブ・キーは、その角の１つが生成中の現行サブ・キーの角と同じ場所に来るように位置決めされる。上述したように、直前のサブ・キーが占める列のサブセットについては、生成中の現行サブ・キー向けとなる列の当該サブセット内の残りの列値を、所定の値で満たすことができる（一実施例では、この所定の値は０値である）。したがって、このとき要求されるのは、直前のサブ・キーによって占められている列のサブセットを含まない、残りの列についての値を生成することのみである。これらの値は、選択されたエラー・プロテクション・スキームに適用可能な規則に即したキー生成アルゴリズムを用いて生成することができる。このキー生成アルゴリズムは、それらの列に当てはめることのできる値のシーケンスを記述させることが可能である。
【００２３】
一実施例では、前記列のサブセットは計算せずに残りの列についての値を計算する際、キー生成アルゴリズムが、列のサブセット内に既存のあらゆる値のシーケンスを除外する。多数のエラー・プロテクション・スキームに対して、特定のサブ・キー内のどの列も値の同一シーケンスを持たないことを保証する必要がある。
【００２４】
キー生成方法への入力として使用される複数のデータ値サイズは、幾つかの方法で指定することができる。ある実施例では一例として、複数のデータ・サイズが、例えば必要なデータ値サイズのリストとして、個別に指定される。しかし、別の実施例では、最小データ値サイズと最大データ値サイズを特定する範囲の入力によって、複数のデータ・サイズが判断されてもよい。その場合、実際のデータ値サイズは、その範囲から、様々な方法によって判断することができる（例えば、範囲内全ての整数値を組み込む、範囲内で必要なデータ値サイズを選択する際に所定の間隔を適用する、など）。
【００２５】
一実施例では、コンピュータ上での実行時に上で概説したキー生成方法を実行するコンピュータ・プログラムを含む、非一時的コンピュータ・プログラム製品を提供することができる。それにより、例えば汎用コンピュータが、指定された様々なデータ値サイズに対するサブ・キーの包括的セットを含むキーの生成に必要な必須ステップを、実行することが可能となる。或いは、入力されたデータ値サイズに基づいてキーを生成するための、専用装置が提供され得る。
【００２６】
上記技術で生成されたキーは、様々な状況において幅広く使用することができる。但し、このキーは、複数のエラー・プロテクション回路を有するデータ処理システムにおいて、多種多様なデータ値サイズのデータが処理される形で（したがって、幾つかのエラー・プロテクション回路が、他のエラー・プロテクション回路とは異なるデータ値サイズに対して演算を行う必要がある状態で）適用されると、特に有益なものとなり得る。
【００２７】
例えば、一実施例では、少なくとも、第１のデータ値サイズのデータ値を取り扱うための第１のエラー・プロテクション回路と、前記第１のデータ値サイズとは異なる第２のデータ値サイズのデータ値を取り扱うための第２のエラー・プロテクション回路とを含んだ複数のエラー・プロテクション回路を備える、データ処理システムを提供することができる。第１及び第２のエラー・プロテクション回路は、上述したコンピュータによって実施される方法に従って生成されたキーから、選択されたサブ・キーを利用する計算を実行するための計算回路機構を備えており、第１及び第２のエラー・プロテクション回路の各々に対し、当該エラー・プロテクション回路によって取り扱われる関連付けられたデータ値サイズに基づいて、サブ・キーが選択される。
【００２８】
こうしたデータ処理システムの設計時に、先に説明した方法によって生成されたキーを使用することで、データ処理システムに関連する設計及び検証コストの大幅な削減が可能となる。具体的には、様々なデータ値サイズに対して一意のキーが生成され、それらのキー全てが別個に文書化される必要があり、それに応じて関連付けられたエラー・プロテクション回路の設計が要求されるといった、公知の従来技術による手法の代わりに、先に説明した、キー生成のための本技術の機構を使用すると、キーが事実上、様々なデータ値サイズに関連付けられたサブ・キーの包括的セットを提供するため、当該の包括的キーを毎回参照することができ（関連サブ・キーはそこから抽出される）、データ処理システム内のエラー・プロテクション回路の提供に関連した設計及び検証コストが大幅に削減される。
【００２９】
一実施例では、様々なエラー・プロテクション回路の全てを、適切なサブ・キーに即して構成された計算回路機構を含む自己完結型とすることができる。よって、そのような配置では、先述した第１及び第２のエラー・プロテクション回路の各々における計算回路機構は、当該エラー・プロテクション回路に対する選択されたサブ・キーの全体を利用した機能を実装する。
【００３０】
但し、別の実施例では、様々なデータ値サイズを取り扱うエラー・プロテクション回路に関連付けられた、計算回路からの出力を再利用することにより、幾つかのエラー・プロテクション回路内で、計算回路機構のサイズ及び複雑性を低減することが可能である。具体的には、一実施例において、第１のエラー・プロテクション回路内の計算回路機構が、第１のエラー・プロテクション回路に対して選択されたサブ・キーの全体を利用する機能を実装し、第２のエラー・プロテクション回路内の計算回路機構が、第２のエラー・プロテクション回路に対して選択されたサブ・キーの判断された部分を利用する第１の機能と、第１のエラー・プロテクション回路内の計算回路機構によって実装される機能の出力を利用する第２の機能とを実装する。よって、この実施例では、第２のエラー・プロテクション回路内の計算回路機構は、当該エラー・プロテクション回路に対して選択されたサブ・キーの判断された部分を利用するだけでよく、第１のエラー・プロテクション回路内の計算回路機構からの出力を再利用することができる。
【００３１】
ある特定の例示的配置では、第１のデータ値サイズは第２のデータ値サイズよりも小さい。本明細書では、このような配置をアップスケーリングの実施例と呼ぶ。具体的には、この例の場合、第２のエラー・プロテクション回路は、第１のエラー・プロテクション回路によって処理されるデータ値サイズよりも大きいデータ値サイズに対して演算を行っているが、第２のエラー・プロテクション回路に必要な出力を計算するときには、第１のエラー・プロテクション回路からの出力を利用する。したがって、第２のエラー・プロテクション回路内の計算回路機構のサイズを低減することが可能となる。
【００３２】
別の実施例では、第１のデータ値サイズは第２のデータ値サイズよりも大きい。本明細書では、このような実施例をダウンスケーリングの実施例と呼ぶ。こうしたダウンスケーリングの実施例において、第１のエラー・プロテクション回路からの出力は、第２のエラー・プロテクション回路内の計算回路機構の複雑性を低減するためにも使用することができる。
【００３３】
したがって、これらのアップスケーリング及びダウンスケーリングの実施例を通じて、必要な計算回路機構全体のサイズを低減することができ、それにより、パフォーマンスとエネルギーの双方を節約することが可能となる。
【００３４】
先述の通り、エラー・プロテクション回路は、様々な形態を採り得る。一実施例では、第１及び第２のエラー・プロテクション回路が、選択されたサブ・キー及び入力されたデータ値を用いてエラー・プロテクション・コードを生成するためのエラー・プロテクション・コード生成回路となる。
【００３５】
特定の一実施例では、第２のエラー・プロテクション回路における第２の機能が、第１の機能からの出力と、第１のエラー・プロテクション回路における計算回路機構によって実装される機能の出力から導出されるデータとを、入力として使用する動作を適用するように配置される。
【００３６】
別の実施例では、第１及び第２のエラー・プロテクション回路が、選択されたサブ・キー、入力されたデータ値、及び関連付けられたエラー・プロテクション・コードを使用して、シンドローム情報を生成するために用いられるエラー・チェック回路となる。第１及び第２のエラー・プロテクション回路がエラー・チェック回路となる特定の一実施例では、これら第１及び第２のエラー・プロテクション回路が、当該エラー・プロテクション回路に対して選択されたサブ・キーの全体を利用する機能を実装する。
【００３７】
図面を参照しながら、特定の実施例について以下に説明する。
【００３８】
図１は、説明する実施例の技術を実装可能な、データ処理システム１０のブロック図である。この例示的システムでは、処理回路１５（例えば中央処理ユニット（ＣＰＵ）となり得る）は、他の様々なコンポーネント２５、３５、４５、５５、及びオン・チップ・メモリ７０と通信するように配置されている。これらのコンポーネント２５、３５、４５、５５は様々な形態を採り得るため、例えばメモリ・インタフェースやキャッシュ制御インタフェースなどとすることができる。図に示すように、様々なサイズのデータ値が、ＣＰＵ１５とこれら様々なコンポーネントとの間で転送されている。描画のために、通信の特定チャネルのみが示されており、とりわけコンポーネント２５、３５、及び４５に関しては、ＣＰＵ１５からこれらのコンポーネントへとデータを転送する通信チャネルが示されている。コンポーネント２５、３５、４５へと転送するデータに関連付けられるＥＣＣコードを生成するために、ＣＰＵ内には、それぞれのコンポーネントに関連付けられたＥＣＣジェネレータ回路機構２０、３０、４０が設けられている。また、これらのコンポーネントの各々は、データ及び関連付けられたＥＣＣの分析によって判断されたデータ内エラーを検出し、潜在的には訂正するために、関連付けられたＥＣＣチェック回路２２、３２、４２を備えている。
【００３９】
更に、図示した実例では、コンポーネント５５がＣＰＵ１５へとデータを送信しており、それに応じて関連付けられたＥＣＣジェネレータ回路機構５０がコンポーネント５５内に設けられると共に、ＥＣＣチェック回路機構５２がＣＰＵ１５内に設けられるものと仮定する。
【００４０】
ＣＰＵ１５とメモリ７０の間の通信に関しては、このメモリはエラー・コレクション・コードの生成やチェックを一切行わず、ただ提供されたデータ及び関連付けられたＥＣＣを自身の中に記憶して、これらのデータが後に取得される場合にエラー・チェックが実行可能となるようにするだけのものと仮定する。よって、この実施例では、バス・インタフェース６５を介してメモリ７０と通信するために、結合型のＥＣＣジェネレータ及びチェック回路機構６０が設けられてよい。データ値がメモリに書き込まれると、このデータ値と関連付けてメモリに記憶するための関連ＥＣＣデータが生成されることになる。その後、このデータ値が取得されるときには、ＣＰＵ内のチェック回路機構が、データ値及び関連付けられたＥＣＣの分析に基づいてデータ内のエラーを検出する。
【００４１】
十分理解されたように、幾つかの異なるエラー・プロテクション・スキームが存在し、特定のデータ値サイズに必要なＥＣＣデータのサイズは、このエラー・プロテクション・スキームに応じて変化することになる。例えば、エラー・プロテクション・スキームの一種としてＳＥＤＤＥＤ（Ｓｉｎｇｌｅ  Ｅｒｒｏｒ  Ｄｅｔｅｃｔ，Ｄｏｕｂｌｅ  Ｅｒｒｏｒ  Ｄｅｔｅｃｔ：１ビット・エラー検出、２ビット・エラー検出）スキームがあり、別のエラー・プロテクション・スキームとしてはＳＥＣＤＥＤ（Ｓｉｎｇｌｅ  Ｅｒｒｏｒ  Ｃｏｒｒｅｃｔ，Ｄｏｕｂｌｅ  Ｅｒｒｏｒ  Ｄｅｔｅｃｔ：１ビット・エラー訂正、２ビット・エラー検出）スキームが知られている。どのサイズのデータ値に対しても、ＳＥＣＤＥＤスキームは、ＳＥＤＤＥＤスキームよりも多くのＥＣＣビットを必要とするのが普通である。図１に描かれた実例では、示されている例示的ＥＣＣサイズは、ＳＥＣＤＥＤスキームについてのものである。よって、ＣＰＵ１５からコンポーネント２５へと受け渡される８ビットのデータ値には５ビットのＥＣＣが付随し、ＣＰＵ１５からコンポーネント３５へと転送される３２ビットのデータ値には７ビットのＥＣＣが付随し、ＣＰＵ１５からコンポーネント４５へと受け渡される１６ビットのデータ値には６ビットのＥＣＣが付随し、コンポーネント５５からＣＰＵ１５へと転送される６４ビットのデータ値には８ビットのＥＣＣが付随する。
【００４２】
エラー・コレクション・コードＥを、入力されたデータ値Ｄから生成する場合、計算は当該データ値に対して適切なサイズのキーを使用して行われる。キーはマスクとしても説明することができ、図２は例示的マスクＭを示している。このマスクは、行と列に配列された値の行列を形成するものとみなすことができる。図２に示すように、マスク９０は、行数がエラー・コードＥ内のＥＣＣビット数と等しくなり、列数がＥＣＣによって保護されるデータ値Ｄ内のビット数と等しくなるように構成される。よって、先の例である、５ビットのＥＣＣによって保護される８ビットのデータ値で考えると、マスクＭは５行８列であって、マスク内の各行列領域に設けられる論理１値又は論理０値を備えたものとなる。
【００４３】
通常、ＥＣＣの生成は、スキームが施す保護の種類にかかわらず同様の方法で行われるものであり、以下の式で表すことができる。
【００４４】
Ｅ＝Ｍ＊Ｄ
【００４５】
上式のアスタリスク記号は、ＥＣＣの各ビットが、行列の対応行とベクトルＤとのビット単位ＡＮＤのＸＯＲ圧縮値に等しくなるような、行列ＭとベクトルＤのベクトル積を表している。
【００４６】
マスクの実際の形は、選択されたエラー・プロテクション・スキームに応じたものとなり、具体的にはアルゴリズムを使用して、選択されたエラー・プロテクション・スキームに即したマスク内の列ごとに適切な値を選択することができる。知られている先行技術のシステムでは、通常、特定サイズのデータ値向けにマスクが必要とされるたびに、そのマスクはこのようなアルゴリズムの適用に基づいて一意に生成される。したがって、選択されたエラー・プロテクション・スキームに関して、ある特定のデータ値サイズ向けに生成されたマスクは、別のデータ値サイズ向けに生成されたマスクとは相関性を持たないものとなる。こうしたことは、１つのデータ処理システム内に複数のエラー・プロテクション回路を組み込む際、大幅な設計及び検証コストの増加を招きかねない。この場合では、これらのエラー・プロテクション回路は、図１を参照しながら先に論じたシステムの実例と同様、様々なサイズのデータを処理している。
【００４７】
しかし、一実施例の技術によれば、サブ・マスクのシーケンスを自身の中に組み込む包括的マスクを生成する方法が提供され、このとき、各サブ・マスクは入力された特定のデータ値サイズと関連付けられていると共に、各々が独自にエラー・プロテクション・スキームのマスク要件に準拠するものとなっている。図３を参照しながら、この処理を更に説明する。
【００４８】
ステップ１００では、保護すべき所望のデータ幅が入力される。これらのデータ幅は、個別に指定することも、その所望データ幅を定める範囲を参照して指定することもできる。図３に示すように、これらのデータ幅はｄｗ＿１、ｄｗ＿２、…ｄｗ＿ｍａｘとラベル付けされる。
【００４９】
ステップ１０５では、保護のタイプが特定される。この保護タイプは、各データ幅に必要なＥＣＣビット数や、マスクの様々な列を配置するのに用いるアルゴリズムなどと関連を持つことになる。
【００５０】
ステップ１１０では、ステップ１０５で入力された保護タイプに即した所望データ幅の各々に対して、対応するエラー・コード幅ｅｗ＿１、ｅｗ＿２、…ｅｗ＿ｍａｘが決定される。その後、パラメータｄｗ及びｅｗは、ステップ１１５でそれぞれｄｗ＿１及びｅｗ＿１に設定される。
【００５１】
ステップ１２０では、ｅｗ行ｄｗ列のサブ・マスクを生成するために、特定の保護タイプに適用可能なコラム・ジェネレータ・アルゴリズムが適用される。この処理に、先行するサブ・マスク向けに計算された列についての計算は含まれない。初回の反復の間には先行するサブ・マスクが存在しないため、コラム・ジェネレータ・アルゴリズムは各列を生成する。
【００５２】
ステップ１２５では、ステップ１００で入力された全てのデータ幅が考慮されているかどうかが判断される。考慮されているのであれば、この処理は完了となってステップ１４０へと分岐し、そこで最後のサブ・マスクが最終マスクＭＭＡＸ，Ｐとなる。但し、少なくとも初回の反復ではこのようにはならず、処理はステップ１３０へと進み、そこでｄｗ及びｅｗは次の所望データ幅のために更新される。その後、ステップ１３５では、既存の列内の追加された行に論理０値を加えることにより、これらの列をｅｗビット長く拡張する。そして、処理はステップ１２０へと戻る。
【００５３】
この処理の結果、複数のサブ・マスクを含むような包括的マスクＭＭＡＸ，Ｐが生成される。各サブ・マスクは特定の入力データ幅と関連付けられており、且つエラー・プロテクション・スキームのマスク要件に準拠している（つまり、そのサブ・マスクを個別に使用することが可能となる）。このことは、図４に概略的に示されている。この図では、最大の入力データ幅に関連付けられた最大サイズのマスクＭＭＡＸはサブ・マスク１５０によって構成されており、このサブ・マスクは最後に生成されたサブ・マスクである。但し、このマスクを生成する処理は、指定された最小データ幅に対するマスク１６０の生成を以て開始され、その後、指定された他の各データ幅に関連付けられた、後続のサブ・マスク１７０、１８０などの各々について、反復的に繰り返される。複数のデータ・サイズ幅は、サイズが小さいものから順に処理される。
【００５４】
図４に示す実例では、指定される最小のデータ幅が４ビット、指定される２番目のデータ幅が８ビット、その後も更なるデータ・サイズが幾つか指定されるものと仮定する。先に述べたように、各サブ・マスク内の行数は、使用するプロテクション・スキームのタイプに依存するが、上述のＳＥＣＤＥＤスキームの場合は、４というデータ幅サイズのために４行が、また８というデータ幅サイズのために５行が必要となる。このことは、マスク１６０、１７０が概略的に示している。初回の反復でコラム・ジェネレータ・アルゴリズムは、サブ・マスク１６０内に示す４列の値を生成する。その後、次のサブ・マスク１７０を指定するために、元のｄｗ及びｅｗ値である４と４は、８と５に更新される。この実例では、サブ・マスク１６０がサブ・マスク１７０の左上部分を占め、サブ・マスク１６０を含む全ての列が、論理０値によって拡張されている。この拡張は、図３のステップ１３５で実行されたものである。ステップ１２０の次回反復の間、サブ・マスク１７０内に示す５つの値を持つ追加の４列が、選択されたエラー・プロテクション・スキームの規則に即して計算される。次のサブ・マスク１８０について考えると、図４に概略的に示すように、サブ・マスク１７０に関連付けられた８列全てが、サブ・マスク１８０内で追加された行のための論理０値で再度拡張され、そしてサブ・マスクの残部が計算される。この処理は、指定された最大データ幅サイズに関連付けられた最終サブ・マスク１５０が計算されるまで続き、この計算が行われた時点で、当該サブ・マスクが最終マスクＭＭＡＸ，Ｐとなる。
【００５５】
図５は、ＳＥＣＤＥＤスキームとＳＥＤＤＥＤスキームの両方について、異なる様々なデータ幅ｄｗに対するＥＣＣ幅ｅｗを示す表である。表１９０から見て取れるように、ある特定のデータ幅に対するＥＣＣビット数は、ＳＥＤＤＥＤスキームに比べ、ＳＥＣＤＥＤスキームを用いたときの方が多くなる。これは、エラーをただ検出するだけではなく、訂正まですることを可能にするのに必要な追加情報に起因する。
【００５６】
関連サブ・マスクを生成する必要のある多様な指定データ・サイズは、任意の形を採ることができる。図５の実例では、殆どの値が先行する値の２倍となっているが、こうである必要はなく、実際、例のうちの１つはデータ幅が４７であり、先行する指定データ幅とは特定の関連性を持たないことが見て取れよう。
【００５７】
これまでの図面を参照しながら論じた方法で、サブ・マスクのセットを含む包括的マスクを生成した場合、この包括的マスクを使用することにより（具体的には、この包括的マスク内の関連サブ・マスクを使用することにより）、エラー・プロテクション回路を個別に設計することが可能となる。この処理を、図６において概略的に示す。ステップ２００では、最大サイズのマスクＭＭＡＸ，Ｐが入力される。これは、選択された保護タイプｐに適用可能なマスクである。ステップ２０５では、エラー・プロテクション回路が取り扱う所望データ幅ｄｗ＿ｘが入力され、続くステップ２１０では、関連サブ・マスクが入力されたマスクから抽出される。この関連サブ・マスクは、指定されたデータ幅ｄｗ＿ｘに適用可能なサブ・マスクである。その後、ステップ２１５では、選択されたサブ・マスクを使用して、エラー・プロテクション回路が構成される。
【００５８】
エラー・プロテクション回路は多様な形態を採ることができるため、例えば、選択されたサブ・マスクＭを用いて、対応する入力データＤからＥＣＣコードＥを生成するのに使用される、ＥＣＣジェネレータ回路の形を採ることもできる。具体的には、先に論じたように、ＥＣＣジェネレータ回路は、以下の計算を実行するように配置される。
【００５９】
ＥＸ＝ＭＸ，Ｐ＊ＤＸ
【００６０】
上式のアスタリスクは、行列ＭＸとベクトルＤＸのベクトル積（即ち、先に定義されたベクトル積）を表す。
【００６１】
しかし、別の実施例では、エラー・プロテクション回路は、ＥＣＣチェック回路の形を採ることもできる。このＥＣＣチェック回路は、データ値にエラーが存在するかどうかを、そのデータ値及びそれに関連付けられたＥＣＣの分析に基づいて判断し、潜在的にはその後、検出したエラーを、エラー・プロテクション・スキーム（即ち、保護タイプＰ）に応じて訂正するために使用される。具体的に述べると、このような実施例では、ＥＣＣチェック回路は、以下の計算を実行することによってシンドローム情報ＳＸを生成するように配置される。
【００６２】
ＳＸ＝（ＭＸ，Ｐ，Ｉ）＊｛ＤＸ，ＥＸ｝
【００６３】
上式において、Ｉは単位行列
【数１】
0006756514.tif 000002
である。
【００６４】
見て取れるように、この単位行列は斜め方向に論理１値を含んでおり、それ以外の値は全て０に設定されている。計算値ＭＸ，Ｐ，Ｉは、マスクＭと単位行列Ｉとで形成された２つの行列の水平結合である。上式のアスタリスクは、得られた行列と、ＤＸとＥＸを結合することによって与えられたベクトルとの、ベクトル積を表す。
【００６５】
十分理解されたように、一度シンドローム・データが生成されると、どういったエラーが発生しているのかを把握するのにシンドローム情報を使用することが可能となり、潜在的にはこの情報が、使用されるエラー・プロテクション・スキームに応じたエラー訂正のために用いられる。
【００６６】
ステップ２００、２０５、２１０、及び２１５で概説した処理は、データ処理システム内で要求されるエラー・プロテクション回路ごとに、必要なだけ繰り返すことができる。全てのエラー・プロテクション回路が、入力マスク内のサブ・マスクのうちの１つと関連付けられたサイズのデータ値に対して演算を行う場合、同一の包括的入力マスクを全ての段階において使用することができるため、設計及び検証コストが大幅に削減される。要求されたエラー・プロテクション回路の各々に対してステップ２００から２１５を繰り返す処理は、図６では点線の囲い２２０によって、概略的に示されている。
【００６７】
要求されたエラー・プロテクション回路が全て設計されると、点線の囲い２２５が示すように、様々なエラー・プロテクション回路を組み込むことにより、統合回路を製造することができる。統合回路の製造は、ステップ２００から２２０の処理を用いて生成された様々なエラー・プロテクション回路の設計を統合回路の全体設計に組み込んだ後に統合回路を製造するといった統合回路の設計機能を有する完全に独立したエンティティによって、完全に独立した処理として実行可能であるということが理解されよう。それどころか、様々なエンティティが、統合回路の設計と、それに続く当該設計による統合回路の製造とを担い得るということも理解されよう。
【００６８】
図７は、あるサブ・マスクＭＸ＋１，Ｐと、その先行サブ・マスクＭＸ，Ｐとの関係を概略的に示している。この実例では、ｄｗ＿ｘはマスクＭＸ，Ｐに関連付けられたデータ幅であり、ｄｗ＿ｘ＋１は次のサブ・マスクＭＸ＋１，Ｐに関連付けられたデータ幅であると仮定する。これら２つのデータ幅の差異は、図７においてａｗ＿ｘ＋１として示されている。
【００６９】
先に図３で論じたことから想起されるように、一度マスクＭＸ，Ｐ  ２５５が生成されると、その後、マスク２５５を組み込み、マスク２５５が組み込まれた全ての列を、その残りの行２６５に論理０値を追加することによって拡張し、そして残りの列については適切な列値を計算することによって、マスクＭＸ＋１，Ｐ  ２５０が生成される。残りの列について得られた行列は、図７ではＡＭＸ＋１，Ｐ  ２６０と表す。
【００７０】
ＥＣＣ生成回路機構の設計を実例として参照し、図８及び図９を参照しながら以下に説明するように、ＥＣＣコードＥＸ＋１（つまり、データ幅ｄｗ＿ｘ＋１のデータ値ＤＸ＋１に関連付けられたＥＣＣ）を生成するのに使用される、ＥＣＣ生成回路機構を設計する場合、ＥＣＣジェネレータによって提供されるＥＣＣコードＥＸを利用することが可能となる（ＥＣＣジェネレータは、データ幅ｄｗ＿ｘのデータ値ＤＸから、この値を計算するのに使用される）。
【００７１】
具体的には、図８に示すように、ステップ３００でＥＣＣコードＥＸを入力することができ、その後、ステップ３０５で包括的マスクＭＭＡＸ，Ｐを入力することができる。
【００７２】
ステップ３１０では、追加された列に関連付けられたサブ・マスクＭＸ＋１，Ｐの関連部分（即ち、図７に示すＡＭＸ＋１，Ｐ  ２６０の部分）を、入力されたマスクから抽出することができる。その後、ステップ３１５では、内部値Ｑを生成するために、回路機構を以下の計算を実行するように構成することができる。
【００７３】
ＡＭＸ＋１，Ｐ＊ＡＤＸ＋１
【００７４】
やはり上式のアスタリスクは、マスクの特定された部分と、関連データ・ビット（この場合ではデータ・ビットＡＤＸ＋１、つまりデータ値ＤＸをデータ値ＤＸ＋１へと変換する追加のデータ・ビット）を表すベクトルとのベクトル積を表すものである。
【００７５】
ステップ３２０では、回路機構は次いで、Ｑと、幅が拡張されたＥＣＣ  ＥＸとのＸＯＲを、ＥＣＣ  ＥＸ＋１として計算するように構成される。
【００７６】
図９を参照しながら、これについて更に記述する。具体的には、コンポーネント３５０が、入力データＤＸに対するＥＣＣ  ＥＸを生成するために必要なＥＣＣ計算を実行する。この計算は、関連サブ・マスクＭＸ，Ｐを用いた標準的方法で行われる。
【００７７】
そして、関連付けられた入力データＤＸ＋１からＥＣＣ  ＥＸ＋１を生成するために、ＥＣＣ生成回路機構３５５が更に設けられる。一実施例では、このようなＥＣＣ生成回路機構は、関連マスクＭＸ＋１，Ｐの全体を使用することでコンポーネント３５０とほぼ同様に構成することができる一方、図９に示す配置を用いると、コンポーネント３５０によって既に生成されているＥＣＣ  ＥＸを利用して、ＥＣＣ生成回路機構のサイズ及び複雑性を低減することが可能となる。具体的には、追加データ部分ＡＤＸ＋１が入力データＤＸ＋１から抽出され、パス３６２を介してＱ計算回路機構３６０へと入力される。これにより、図８のステップ３１５を参照して先に論じた計算が、関連マスク部分ＡＭＸ＋１，Ｐ及びパス３６２経由の入力データを用いて実行される。
【００７８】
回路機構３７０は、パス３６４を介して入力されたＥＣＣ  ＥＸの幅拡張を行う。これは、連続する論理０値を付加して、ＥＸの幅がＥＸ＋１の幅と同一になるように拡張することによってなされる。そして、ＥＣＣ  ＥＸ＋１をパス３８０経由の出力として生成するために、コンポーネント３７５は、Ｑ及び幅拡張回路３７０からの出力を用いたＸＯＲ演算を実行する。
【００７９】
ブロック３６０によって実行される計算は、図７に示したマスクのサブ・セクション２６０に関して実行されるだけでよいという事実から、ＥＣＣ生成回路機構のサイズ及び複雑性の大幅な低減が可能となる。
【００８０】
図９に示した全てのコンポーネントは、データ処理システムの同一コンポーネント内に設けることができる一方、別の実施例では、ＥＣＣ生成回路機構３５５を備えるコンポーネントとは完全に独立したコンポーネント内に、ＥＣＣ計算回路機構３５０を存在させることもできる。例えば、図１の具体的な実例について考えると、８ビットのデータ値に対するエラー・コレクション・コードＥＸを生成するために、ＥＣＣジェネレータ回路機構２０がコンポーネント３５０を備えてよく、また得られたＥＣＣ  ＥＸが、入力としてＥＣＣジェネレータ回路機構４０に提供されてもよい。このＥＣＣジェネレータ回路機構４０は、１６ビットのデータ値に対するＥＣＣ  ＥＸ＋１を生成するために、ブロック３５５が示す機能を組み込んでいる。
【００８１】
図８及び図９を参照しながら上で説明した処理を、本出願では、アップスケーリング配置と呼ぶものとする。
【００８２】
別の実施例では、ダウンスケーリングの実施例をサポートすることができ、その場合、データ値ＤＸ＋１に対して生成されたＥＣＣ  ＥＸ＋１が、サイズが縮小されたデータ値ＤＸに対するＥＣＣ  ＥＸの生成を支援するためにも使用される。そのような実施例の１つが、図１０に示されている。
【００８３】
図１０に示すように、関連付けられたデータ値ＤＸ＋１に対するＥＣＣ  ＥＸ＋１を、図７に示した関連サブ・マスクＭＸ＋１，Ｐを用いて計算するために、ＥＣＣ計算回路機構４５０が設けられる。そして、データ値ＤＸに関連付けられたＥＣＣ  ＥＸを計算するために、ＥＣＣ生成回路機構４５５が更に設けられる。ここでもＤＸとＤＸ＋１は、図７及び図８の上部に示した関係性にある。追加のデータ・セクションＡＤＸ＋１が抽出され、パス４６２を介してＱ計算回路機構４６０へと入力される。Ｑ計算回路機構４６０も、図９のＱ計算回路機構３６０について論じたのと同じ方法で演算を行う。
【００８４】
回路機構４７０は、Ｑ計算回路機構４６０からの出力Ｑ、及び回路機構４５０からパス４６４経由で入力されたＥＣＣ  ＥＸ＋１に対してＸＯＲ演算を行うことにより、内部値Ｒを生成する。図１０に示す幅縮小回路４８０を使用して、ＲからＥＣＣ  ＥＸを求めることができる。幅縮小回路４８０は、値Ｒから、必要な最下位ビット数を抽出する。このとき、抽出されたビット数は、ＥＣＣ  ＥＸの幅に等しい。ＥＸについて得られた値は、次いでパス４８２を介して出力される。
【００８５】
図１１Ａから図１１Ｃは、様々なサブ・マスクを配置する別法を示しているが、上述したアップスケーリング及びダウンスケーリングの実施例を実行することは依然可能である。図１１Ａを図７と比較すると、マスクＭＸ，Ｐ  ４０５は、図７で示したような次のサブ・マスクＭＸ＋１，Ｐの左上ではなく、その左下に位置していることがわかる。参照記号４１５が示すように、サブ・マスクＭＸ，Ｐを含む列の残りの行に対して、ここでも論理０値が加えられている。更に、追加の行列セクションＡＭＸ＋１，Ｐ  ４１０も与えられていることが見て取れる。これは図７のセクション２６０に相当する。図８及び図９のアップスケーリング処理が、先に説明した通りに続けて適用されてよい。但し、幅拡張回路３７０の演算は、付加される論理０値が、図７の実例のように拡張されたＥＣＣ  ＥＸの最下位ビット位置ではなく、（図１１Ａの式が示すように）その最上位ビット位置を形成するという点において僅かに異なる。同様に、図１０のダウンスケーリングの実施例を採用する場合、幅縮小回路４８０の演算は、図１１Ａに記載の式が示すように、Ｒの最下位ビット数ではなく、最上位ビット数が、ＥＸを形成するために選択されるという点において僅かに異なる。
【００８６】
図１１Ｂは、考えられる別のサブ・マスク配置を示している。ここでは、サブ・マスク４２５は、次のサブ・マスクＭＸ＋１，Ｐの右上隅に位置している。先と同じく、サブ・マスク４２５に含まれる列を拡張するために論理０値４３５が使用されており、追加のマスク・セクションＡＭＸ＋１，Ｐ  ４３０が標準的方法で作成されている。アップスケーリングする場合の幅拡張回路３７０の演算、及びダウンスケーリングする場合の幅縮小回路４８０の演算は、図１１Ｂに記載の式が示している。
【００８７】
図１１Ｃは、図１１Ｂに示したものとは別のサブ・マスク配置を示しており、これもまた、上述したアップスケーリング及びダウンスケーリングの実施例を容易なものとすることができる。ここでは、サブ・マスクＭＸ，Ｐ  ９０５は次のサブ・マスクＭＸ＋１，Ｐ  ９００の右下に位置し、論理０値９１５がサブ・マスク９０５に関連付けられた列を拡張するために加えられ、そして追加のマスク・セクションＡＭＸ＋１，Ｐ  ９１０（図１１Ｂに示したセクション４３０に相当）が計算される。アップスケーリングする場合の幅拡張回路３７０の演算、及びダウンスケーリングする場合の幅縮小回路４８０の演算は、図１１Ｃに記載の式が示している。
【００８８】
上述したアップスケーリング及びダウンスケーリングの実施例により、エネルギー及び／又はエリアを大幅に節約することができ、またパフォーマンスも向上する。
【００８９】
原則的に、アップスケーリング及びダウンスケーリング配置もまた、受信したデータ及びＥＣＣ情報からシンドローム情報を生成するのに使用される、ＥＣＣチェック回路に関連した幾つかの実施例において利用することが可能である。しかし、一実施例では、そうした技術をＥＣＣチェック回路に用いず、その代わり、図６を参照しながら先に論じた手法を使用して（具体的には、包括的マスクから抽出された関連サブ・マスク全体を利用して）、各ＥＣＣチェック回路が生成される。
【００９０】
図１２は、上記の技術（具体的には、入力されたデータ値に対するエラー・プロテクション・コードを計算する際に用いる、連続したサブ・キーを含むキーの生成）を実装するのに使用可能なタイプである、汎用コンピュータ１０００を概略的に示している。この汎用コンピュータ１０００は、中央処理ユニット１００２、ランダム・アクセス・メモリ１００４、リード・オンリ・メモリ１００６、ネットワーク・インタフェース・カード１００８、ハード・ディスク・ドライブ１０１０、ディスプレイ・ドライバ１０１２及びモニタ１０１４、並びにキーボード１０１８及びマウス１０２０を伴うユーザ入出力回路１０１６を備え、これら全てが共通バス１０２２を介して接続されている。動作中、中央処理ユニット１００２は、コンピュータ・プログラム命令を実行することになる。このコンピュータ・プログラム命令は、ランダム・アクセス・メモリ１００４、リード・オンリ・メモリ１００６、及びハード・ディスク・ドライブ１０１０のうちの１つ以上に記憶したり、ネットワーク・インタフェース・カード１００８を介して、動的にダウンロードすることができる。実行された処理の結果は、ディスプレイ・ドライバ１０１２やモニタ１０１４により、ユーザに向けて表示することができる。汎用コンピュータ１０００の動作を制御するためのユーザ入力は、キーボード１０１８又はマウス１０２０から、ユーザ入出力回路１０１６を介して受信することができる。コンピュータ・プログラムは、様々な異なるコンピュータ言語で記述され得ることが理解されよう。コンピュータ・プログラムは、記録媒体に記憶及び配布されても、汎用コンピュータ１０００に動的にダウンロードされてもよい。適切なコンピュータ・プログラムの制御下で動作する場合、汎用コンピュータ１０００は、上で説明したキー生成技術を実行することが可能であり、また上記技術を実行するための装置を形成するものとみなすことができる。この汎用コンピュータの構成は大幅に変わり得るものであって、図１２は、単なる一例にすぎない。
【００９１】
上記の実施例から、このような実施例は、サブ・マスクのセットを含む包括的マスクを生成するための機構を提供するものであることが見て取れよう。こうした実施例では、各サブ・マスクが特定のデータ幅に関連付けられ、また各サブ・マスク自体が、選択されたエラー・プロテクション・スキームのマスク要件を満たす。こうしたことにより、データ処理システム内で使用するためのエラー・プロテクション回路を生成する場合、それらの回路がＥＣＣ生成回路かエラー・チェック回路かを問わず、多種多様な幅を持つデータ値を処理することをデータ処理システムが要求され、したがって多種多様なデータ幅サイズを取り扱うことを、これらのエラー・プロテクション回路が要求されるような状況において特に、著しい利益が提供される。上述のアップスケーリング及びダウンスケーリングの実施例を利用して、エラー・プロテクション回路内に設けられた幾つかのコンポーネントの複雑性を一層低減することにより、幾つかの実施例では、更なるパフォーマンス及び効率性の増進が達成可能である。
【００９２】
本出願における「構成される」という言葉は、定義された動作を実行可能な構成を装置の要素が持つ、ということを意味するために使用される。この文脈では、「構成」とは、ハードウェア又はソフトウェアの相互接続に関する配置又は方法を意味している。例えば、定義された動作を実現する専用ハードウェアを装置が備えてもよく、或いは機能を実行するようにプロセッサ又は他の処理デバイスがプログラムされてもよい。「構成される」とは、定義された動作を実現するためには、装置の要素が何らかの方法で変更される必要がある、ということを暗示するものではない。
【００９３】
添付図面を参照しながら、本発明の例示的実施例を本明細書に詳述したが、本発明はそれら通りの実施例に限定されるものではなく、添付の特許請求の範囲によって定義される本発明の範囲及び趣旨から逸脱することなしに、当業者による様々な変更、追加、及び修正が、その実施例の中で有効となり得るということを理解されたい。例えば、本発明の範囲から逸脱することなく、従属請求項が持つ特徴の多様な組合せが、独立請求項が持つ特徴を伴って形成され得る。
【図１】
0006756514.tif 000003
【図２】
0006756514.tif 000004
【図３】
0006756514.tif 000005
【図４】
0006756514.tif 000006
【図５】
0006756514.tif 000007
【図６】
0006756514.tif 000008
【図７】
0006756514.tif 000009
【図８】
0006756514.tif 000010
【図９】
0006756514.tif 000011
【図１０】
0006756514.tif 000012
【図１１Ａ】
0006756514.tif 000013
【図１１Ｂ】
0006756514.tif 000014
【図１１Ｃ】
0006756514.tif 000015
【図１２】
0006756514.tif 000016