JPH05210579A - メモリ・インターリーブ装置及び方法 - Google Patents
メモリ・インターリーブ装置及び方法Info
- Publication number
- JPH05210579A JPH05210579A JP4184608A JP18460892A JPH05210579A JP H05210579 A JPH05210579 A JP H05210579A JP 4184608 A JP4184608 A JP 4184608A JP 18460892 A JP18460892 A JP 18460892A JP H05210579 A JPH05210579 A JP H05210579A
- Authority
- JP
- Japan
- Prior art keywords
- memory
- address
- matrix
- bits
- mapping
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
- 238000000034 method Methods 0.000 title claims description 27
- 239000011159 matrix material Substances 0.000 claims abstract description 83
- 238000013507 mapping Methods 0.000 claims abstract description 74
- 238000012545 processing Methods 0.000 description 14
- 238000004364 calculation method Methods 0.000 description 10
- 238000010586 diagram Methods 0.000 description 10
- 230000001575 pathological effect Effects 0.000 description 5
- 230000008901 benefit Effects 0.000 description 3
- 238000013461 design Methods 0.000 description 3
- 230000008569 process Effects 0.000 description 3
- 230000004044 response Effects 0.000 description 3
- 241000238876 Acari Species 0.000 description 2
- 230000015556 catabolic process Effects 0.000 description 2
- 238000006243 chemical reaction Methods 0.000 description 2
- 238000004590 computer program Methods 0.000 description 2
- 238000006731 degradation reaction Methods 0.000 description 2
- 230000003111 delayed effect Effects 0.000 description 2
- 230000008707 rearrangement Effects 0.000 description 2
- XUIMIQQOPSSXEZ-UHFFFAOYSA-N Silicon Chemical compound [Si] XUIMIQQOPSSXEZ-UHFFFAOYSA-N 0.000 description 1
- 238000005263 ab initio calculation Methods 0.000 description 1
- 230000002159 abnormal effect Effects 0.000 description 1
- 239000000872 buffer Substances 0.000 description 1
- OSGAYBCDTDRGGQ-UHFFFAOYSA-L calcium sulfate Chemical compound [Ca+2].[O-]S([O-])(=O)=O OSGAYBCDTDRGGQ-UHFFFAOYSA-L 0.000 description 1
- 239000013256 coordination polymer Substances 0.000 description 1
- 238000012937 correction Methods 0.000 description 1
- 230000001934 delay Effects 0.000 description 1
- 230000006870 function Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 239000004065 semiconductor Substances 0.000 description 1
- 229910052710 silicon Inorganic materials 0.000 description 1
- 239000010703 silicon Substances 0.000 description 1
- 238000012546 transfer Methods 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/06—Addressing a physical block of locations, e.g. base addressing, module addressing, memory dedication
- G06F12/0607—Interleaved addressing
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Complex Calculations (AREA)
- Memory System (AREA)
Abstract
(57)【要約】
【目的】M(=2m)個のメモリ・モジュール(バン
ク)を使用するインターリーブ方式のメモリで、配列の
要素に順番にアクセスする場合のように、A,A+b,
A+2b,A+3b,・・・という周期的なアドレス
(ただし、bは予め定めたある定数以下の任意の整数)
を与えてアクセスを行っても、同一バンクへの連続的な
アクセスが起こらないようにする。 【構成】P=2n−1(P>S、n≧m、nはメモリ・
システムのアドレス長未満、ここでPは素数である方が
よい)とする。アドレスAが与えられたとき、そのバン
ク・アドレスBを、A mod Pの上位mビットで表さ
れる数とする。
ク)を使用するインターリーブ方式のメモリで、配列の
要素に順番にアクセスする場合のように、A,A+b,
A+2b,A+3b,・・・という周期的なアドレス
(ただし、bは予め定めたある定数以下の任意の整数)
を与えてアクセスを行っても、同一バンクへの連続的な
アクセスが起こらないようにする。 【構成】P=2n−1(P>S、n≧m、nはメモリ・
システムのアドレス長未満、ここでPは素数である方が
よい)とする。アドレスAが与えられたとき、そのバン
ク・アドレスBを、A mod Pの上位mビットで表さ
れる数とする。
Description
【0001】
【産業上の利用分野】本発明は、コンピュータのメモリ
・システムに関するものであり、とりわけ、メモリ・モ
ジュールをインターリーブして更に高速のメモリ・アク
セスが行えるようにする装置及び方法に関するものであ
る。
・システムに関するものであり、とりわけ、メモリ・モ
ジュールをインターリーブして更に高速のメモリ・アク
セスが行えるようにする装置及び方法に関するものであ
る。
【0002】
【従来技術及びその問題点】半導体技術及びアーキテク
チャの設計が進歩を続けるにつれて、コンピュータの中
央演算処理装置(CPU)のクロック速度は、近年にお
いて劇的な上昇を示したが、この傾向は近い将来におい
ても継続するものと予測される。一方、メモリ・チップ
の速度は、かなりのものではあるが、劇的な上昇という
わけにはゆかなかった。強力なCPUを充分に利用する
ため、コンピュータ・メモリ・システムは、CPUの処
理能力に対するデータ転送速度の整合を持続できなけれ
ばならない。この問題に対する解決策の1つがメモリ・
インターリーブによって与えられる。インターリーブさ
れたメモリにはいくつかのメモリ・モジュールが含まれ
る。各メモリ・モジュールは他のモジュールからは独立
にメモリ要求にサービスを行うことができる。これによ
って、任意の時刻に複数のモジュールが要求の処理を行
える。この並列処理能力を使用することにより、どの1
つのメモリ・モジュールのスピードよりも速い実効メモ
リ・スピードが得られる。
チャの設計が進歩を続けるにつれて、コンピュータの中
央演算処理装置(CPU)のクロック速度は、近年にお
いて劇的な上昇を示したが、この傾向は近い将来におい
ても継続するものと予測される。一方、メモリ・チップ
の速度は、かなりのものではあるが、劇的な上昇という
わけにはゆかなかった。強力なCPUを充分に利用する
ため、コンピュータ・メモリ・システムは、CPUの処
理能力に対するデータ転送速度の整合を持続できなけれ
ばならない。この問題に対する解決策の1つがメモリ・
インターリーブによって与えられる。インターリーブさ
れたメモリにはいくつかのメモリ・モジュールが含まれ
る。各メモリ・モジュールは他のモジュールからは独立
にメモリ要求にサービスを行うことができる。これによ
って、任意の時刻に複数のモジュールが要求の処理を行
える。この並列処理能力を使用することにより、どの1
つのメモリ・モジュールのスピードよりも速い実効メモ
リ・スピードが得られる。
【0003】この方法が有効であるようにするために
は、このようなメモリ・モジュール・システムは、CP
Uで実行されるプログラムによって発生する連続したメ
モリ要求が、平均すれば、異なるメモリ・モジュールに
よって処理される環境で動作する必要がある。同じメモ
リ・モジュールで2つの連続した要求を処理しなければ
ならない場合、第1の要求の処理が完了するまで第2の
要求の処理の開始が遅れる。しかし、異なるメモリ・モ
ジュールで連続した要求の処理を行う場合には、第1の
要求の処理が終了する前に第2の要求の処理を開始する
ことができる。
は、このようなメモリ・モジュール・システムは、CP
Uで実行されるプログラムによって発生する連続したメ
モリ要求が、平均すれば、異なるメモリ・モジュールに
よって処理される環境で動作する必要がある。同じメモ
リ・モジュールで2つの連続した要求を処理しなければ
ならない場合、第1の要求の処理が完了するまで第2の
要求の処理の開始が遅れる。しかし、異なるメモリ・モ
ジュールで連続した要求の処理を行う場合には、第1の
要求の処理が終了する前に第2の要求の処理を開始する
ことができる。
【0004】原理上は、プログラムが実行される特定の
コンピュータに関する知識をプログラマが持っていれ
ば、連続したメモリ要求が別々のメモリ・モジュールに
よって処理されるように、そのプログラムに対して記憶
割当を行うことができる。あいにく、このような案は、
少なくとも2つの理由から実際的ではない。まず、この
ような割当の調整に必要な労力が過大なものになる。第
2に、特定の記憶割当は、全く同じメモリ・モジュール
構造を持つコンピュータにしか有効ではない。プログラ
ムを実行される各コンピュータ毎に異なる記憶割当を行
われなければならない。
コンピュータに関する知識をプログラマが持っていれ
ば、連続したメモリ要求が別々のメモリ・モジュールに
よって処理されるように、そのプログラムに対して記憶
割当を行うことができる。あいにく、このような案は、
少なくとも2つの理由から実際的ではない。まず、この
ような割当の調整に必要な労力が過大なものになる。第
2に、特定の記憶割当は、全く同じメモリ・モジュール
構造を持つコンピュータにしか有効ではない。プログラ
ムを実行される各コンピュータ毎に異なる記憶割当を行
われなければならない。
【0005】この結果、ハッシュ方式と呼ばれるハード
ウエア方式を採用して、このようなシステムにおける記
憶割当が行われた。ハッシュ・システムでは、プログラ
マは、メイン・メモリを連続したメモリ・アドレスによ
る単一の大ブロックからなるものとして取り扱う。実際
のメモリは、M個のメモリ・モジュールから構成され
る。ここでMは正の整数(通常は2の累乗)である。コ
ンピュータのメモリに結合された特殊目的のハードウエ
アによって、各メイン・メモリ・アドレスは、1つのモ
ジュール、及びそのモジュール内のアドレスにマッピン
グされる。原理上、各クロック・サイクル毎に1つずつ
のメモリ要求が到着する可能性があり、従ってハッシュ
・ハードウエアは、CPUの各サイクル毎に1度ずつ、
必要なマッピングを行うことができなければならない。
ウエア方式を採用して、このようなシステムにおける記
憶割当が行われた。ハッシュ・システムでは、プログラ
マは、メイン・メモリを連続したメモリ・アドレスによ
る単一の大ブロックからなるものとして取り扱う。実際
のメモリは、M個のメモリ・モジュールから構成され
る。ここでMは正の整数(通常は2の累乗)である。コ
ンピュータのメモリに結合された特殊目的のハードウエ
アによって、各メイン・メモリ・アドレスは、1つのモ
ジュール、及びそのモジュール内のアドレスにマッピン
グされる。原理上、各クロック・サイクル毎に1つずつ
のメモリ要求が到着する可能性があり、従ってハッシュ
・ハードウエアは、CPUの各サイクル毎に1度ずつ、
必要なマッピングを行うことができなければならない。
【0006】さらに、ハードウエア中での待ち時間をで
きるだけ短くするのが有利である。原理的には、各サイ
クル毎に変換されるべきメモリ・アドレスを1つ受け取
り、各サイクル毎に1つの変換アドレスを計算するパイ
プ・ライン式ハッシュ・プロセッサを用いることによっ
て、この速度要件を満たすことができる。計算されたア
ドレスは、一般に数サイクル前に受信したメイン・メモ
リ・アドレスに対応している。問題となる遅延はプロセ
ッサの時間待ちと呼ばれる。CPUは、結果が必要とさ
れる時刻より前にアドレスを送ることによって、この待
ち時間を補償することができる。しかし、CPUはメイ
ン・メモリが必要とするシーケンスを常に充分に前もっ
て予測できるわけではない。予測が誤っていると、その
処理に遅延が生じる。問題となる遅延は、一般にパイプ
・ラインの待ち時間に等しい長さである。従って、待ち
時間が最短のパイプ・ラインが有利である。
きるだけ短くするのが有利である。原理的には、各サイ
クル毎に変換されるべきメモリ・アドレスを1つ受け取
り、各サイクル毎に1つの変換アドレスを計算するパイ
プ・ライン式ハッシュ・プロセッサを用いることによっ
て、この速度要件を満たすことができる。計算されたア
ドレスは、一般に数サイクル前に受信したメイン・メモ
リ・アドレスに対応している。問題となる遅延はプロセ
ッサの時間待ちと呼ばれる。CPUは、結果が必要とさ
れる時刻より前にアドレスを送ることによって、この待
ち時間を補償することができる。しかし、CPUはメイ
ン・メモリが必要とするシーケンスを常に充分に前もっ
て予測できるわけではない。予測が誤っていると、その
処理に遅延が生じる。問題となる遅延は、一般にパイプ
・ラインの待ち時間に等しい長さである。従って、待ち
時間が最短のパイプ・ラインが有利である。
【0007】先行技術によるハッシュ・システムの1つ
では、メイン・メモリ・アドレスの下位側の何ビットに
よってどのメモリ・モジュールがそのアドレスに対応し
ているかを判定するマッピングが用いられている。例え
ば、8つのメモリ・モジュールを持つコンピュータ・メ
モリを考えてみる。メイン・メモリ・アドレスの3つの
下位側ビットがモジュール・アドレスであると解釈され
るならば、連続したメモリ・アドレスが異なるメモリ・
モジュールにマッピングされる。000で終わるアドレ
スが1番目のメモリ・モジュールにマッピングされ、0
01で終わるアドレスが2番目のメモリ・モジュールに
マッピングされる、等々。従って、プログラムがメイン
・メモリ・アドレスのブロック内の各ロケーションを順
番にアドレス指定すると、連続した要求は必ず異なるメ
モリ・モジュールによって処理される。
では、メイン・メモリ・アドレスの下位側の何ビットに
よってどのメモリ・モジュールがそのアドレスに対応し
ているかを判定するマッピングが用いられている。例え
ば、8つのメモリ・モジュールを持つコンピュータ・メ
モリを考えてみる。メイン・メモリ・アドレスの3つの
下位側ビットがモジュール・アドレスであると解釈され
るならば、連続したメモリ・アドレスが異なるメモリ・
モジュールにマッピングされる。000で終わるアドレ
スが1番目のメモリ・モジュールにマッピングされ、0
01で終わるアドレスが2番目のメモリ・モジュールに
マッピングされる、等々。従って、プログラムがメイン
・メモリ・アドレスのブロック内の各ロケーションを順
番にアドレス指定すると、連続した要求は必ず異なるメ
モリ・モジュールによって処理される。
【0008】実際に、コンピュータ・プログラムによっ
てアクセスされるメモリ・アドレスのシーケンスは、コ
ンピュータの設計時点では予測がつかず、さまざまなコ
ンピュータ・プログラム間で多種多様である。同じメモ
リ・モジュールが処理しなければならないメモリ要求の
シーケンスがいつでも存在する。従って、ハッシュ方式
でなし得るのは、高々最も一般的なメモリ要求のシーケ
ンスを同じメモリ・モジュールで処理する必要のないよ
うに、記憶割当が行われることを保証するぐらいのもの
である。最も一般的なメモリ・アドレス要求シーケンス
の1つは、a,a+s,a+2s...の形をとる等差
数列である。このような要求は、一般に一定サイズのデ
ータ・オブジェクトの配列の項目に順次アクセスするプ
ログラムによって生成される。ベース・アドレスaはア
レイの先頭アドレスであり、刻みsはデータ・オブジェ
クトのサイズである。
てアクセスされるメモリ・アドレスのシーケンスは、コ
ンピュータの設計時点では予測がつかず、さまざまなコ
ンピュータ・プログラム間で多種多様である。同じメモ
リ・モジュールが処理しなければならないメモリ要求の
シーケンスがいつでも存在する。従って、ハッシュ方式
でなし得るのは、高々最も一般的なメモリ要求のシーケ
ンスを同じメモリ・モジュールで処理する必要のないよ
うに、記憶割当が行われることを保証するぐらいのもの
である。最も一般的なメモリ・アドレス要求シーケンス
の1つは、a,a+s,a+2s...の形をとる等差
数列である。このような要求は、一般に一定サイズのデ
ータ・オブジェクトの配列の項目に順次アクセスするプ
ログラムによって生成される。ベース・アドレスaはア
レイの先頭アドレスであり、刻みsはデータ・オブジェ
クトのサイズである。
【0009】上述の先行技術による単純なハッシュ方式
では、メモリ・モジュールの個数が刻みsのトリビアル
ではない約数の整数倍でなければ、この環境で充分に機
能する。例えば、メモリ・モジュールの数がsに等しけ
れば、連続した要求は同じメモリ・モジュールで処理し
なければならず、このハッシュ方式は役に立たない。刻
みはプログラムが異なれば違ってくるので、刻みがメモ
リ・モジュールの数に等しくなり、ハッシュ方式がうま
く機能しない病的な事態が必ず存在する。これに関して
やはり留意すべきは、刻みがメモリ・モジュール数の約
数でも、メモリ速度の低下が起こるということである。
各モジュールが必要とする処理時間が8クロック・サイ
クルで、各クロック・サイクル毎にCPUが要求を送り
出す、8つのモジュールを持つメモリについて考えてみ
ることにする。刻みが4に等しく、最初の要求が最初の
メモリ・モジュールによってなされるものと仮定する。
2番目の要求は5番目のメモリ・モジュールに対して行
われ、3番目の要求は1番目のメモリ・モジュールにつ
いて行われる。しかし、1番目のメモリ・モジュールは
まだ前の要求の処理中である。このため、3番目の要求
は6クロック・サイクルだけ遅延する。さらに、この遅
延は要求が出てくる毎に累積される。
では、メモリ・モジュールの個数が刻みsのトリビアル
ではない約数の整数倍でなければ、この環境で充分に機
能する。例えば、メモリ・モジュールの数がsに等しけ
れば、連続した要求は同じメモリ・モジュールで処理し
なければならず、このハッシュ方式は役に立たない。刻
みはプログラムが異なれば違ってくるので、刻みがメモ
リ・モジュールの数に等しくなり、ハッシュ方式がうま
く機能しない病的な事態が必ず存在する。これに関して
やはり留意すべきは、刻みがメモリ・モジュール数の約
数でも、メモリ速度の低下が起こるということである。
各モジュールが必要とする処理時間が8クロック・サイ
クルで、各クロック・サイクル毎にCPUが要求を送り
出す、8つのモジュールを持つメモリについて考えてみ
ることにする。刻みが4に等しく、最初の要求が最初の
メモリ・モジュールによってなされるものと仮定する。
2番目の要求は5番目のメモリ・モジュールに対して行
われ、3番目の要求は1番目のメモリ・モジュールにつ
いて行われる。しかし、1番目のメモリ・モジュールは
まだ前の要求の処理中である。このため、3番目の要求
は6クロック・サイクルだけ遅延する。さらに、この遅
延は要求が出てくる毎に累積される。
【0010】データ・オブジェクトは、2の累乗のサイ
ズで割当がなされる傾向があり、メモリのメモリ・モジ
ュール数も2の累乗になることが多いので、速度低下は
頻繁に生じる。従って、病的な事態は上述の先行技術に
よるハッシュ方式の性能劣化を招くのに充分なほどあり
ふれたものになる。
ズで割当がなされる傾向があり、メモリのメモリ・モジ
ュール数も2の累乗になることが多いので、速度低下は
頻繁に生じる。従って、病的な事態は上述の先行技術に
よるハッシュ方式の性能劣化を招くのに充分なほどあり
ふれたものになる。
【0011】この議論のため、異なるモジュールに対す
るメモリ・アクセスの分散が、予め定められた最大刻み
未満の刻みに関して、平均してほとんど一様であれば、
ハッシュ方式は「病状常がない」と呼ぶことにする。こ
の条件が満たされれば、各メモリ・モジュールは、長い
アクセス・シーケンスにおいてほぼ同じ回数だけアクセ
スを受ける。
るメモリ・アクセスの分散が、予め定められた最大刻み
未満の刻みに関して、平均してほとんど一様であれば、
ハッシュ方式は「病状常がない」と呼ぶことにする。こ
の条件が満たされれば、各メモリ・モジュールは、長い
アクセス・シーケンスにおいてほぼ同じ回数だけアクセ
スを受ける。
【0012】
【目的】本発明の目的は、一般的に言えば、改良された
ハッシュ方式を提供することにある。
ハッシュ方式を提供することにある。
【0013】本発明のもう1つの目的は、予め定められ
た刻み値未満の全ての刻み値に関して病的事態のないハ
ッシュ方式を提供することにある。
た刻み値未満の全ての刻み値に関して病的事態のないハ
ッシュ方式を提供することにある。
【0014】本発明のさらにもう1つの目的は、待ち時
間の短いパイプ・ライン式アーキテクチャによって実現
可能なハッシュ方式を提供することにある。
間の短いパイプ・ライン式アーキテクチャによって実現
可能なハッシュ方式を提供することにある。
【0015】本発明のこれらの目的及びその他の目的
は、当業者には、本発明に関する詳細説明及び図面から
明らかになるであろう。
は、当業者には、本発明に関する詳細説明及び図面から
明らかになるであろう。
【0016】
【概要】本発明の一実施例によれば、メモリ・アドレス
Aをインターリーブ・メモリ内の2m個のメモリ・モジ
ュールの1つを構成するメモリ・モジュールMに割り当
てるための装置が与えられる。本発明では予め定められ
た値未満の刻み値に関する上述の病的事態は生じないと
いうことを数学的に示すことができる。この装置には、
Aのlビット長の2進表現を受け取る入力ポートと、
(A mod p)に等しい簡約化アドレス値(reduced
address value)rを計算する回路が含まれる。ここ
で、p=2n−1(m≦n≦l)であり、nは正の整数
である。計算された簡約化アドレス値に応答して、本発
明ではp行とn列からなる2進マッピング・アドレス・
マトリクスのr番目の行を生成する。次に、生成された
r番目の行の予め定められたm個のビットからMの2進
表現が生成される。本発明の望ましい実施例には、前述
のメモリ・モジュールM内でのオフセット・アドレスを
計算するための回路要素も含まれている。オフセット・
アドレスの2進表現のビットは、Mの2進表現の生成に
用いられなかった2進マッピング・マトリクスの前述の
r番目の行のn−mビット、及びA/pの整数部の2進
表現のビットから生成される。
Aをインターリーブ・メモリ内の2m個のメモリ・モジ
ュールの1つを構成するメモリ・モジュールMに割り当
てるための装置が与えられる。本発明では予め定められ
た値未満の刻み値に関する上述の病的事態は生じないと
いうことを数学的に示すことができる。この装置には、
Aのlビット長の2進表現を受け取る入力ポートと、
(A mod p)に等しい簡約化アドレス値(reduced
address value)rを計算する回路が含まれる。ここ
で、p=2n−1(m≦n≦l)であり、nは正の整数
である。計算された簡約化アドレス値に応答して、本発
明ではp行とn列からなる2進マッピング・アドレス・
マトリクスのr番目の行を生成する。次に、生成された
r番目の行の予め定められたm個のビットからMの2進
表現が生成される。本発明の望ましい実施例には、前述
のメモリ・モジュールM内でのオフセット・アドレスを
計算するための回路要素も含まれている。オフセット・
アドレスの2進表現のビットは、Mの2進表現の生成に
用いられなかった2進マッピング・マトリクスの前述の
r番目の行のn−mビット、及びA/pの整数部の2進
表現のビットから生成される。
【0017】
【実施例】図1は、CPU14からのメモリ要求の処理
にハッシュ回路18を使用するメモリ12のブロック図
である。メモリ12には、複数のメモリ・モジュール1
6が含まれている。以下の議論では、メモリ・モジュー
ルの個数をMで表す。以下の説明を分かりやすくするた
め、Mは2の累乗、すなわちM=2mであると仮定す
る。CPU14は、アドレス・バス22上にハッシュ回
路18へのアドレスAを送ることによって、メモリ14
に記憶されたデータを要求する。ハッシュ回路18は、
アドレスAを、Aが指定するデータの記憶に使用されて
いるのがM個のメモリ・モジュールのうちのどれである
かを指定するモジュール・アドレスB、及びデータが記
憶されている当該メモリ・モジュール内のメモリ・セル
のロケーションを指定する当該メモリ・モジュール内の
オフセットCに変換する。次に、オフセットCがメモリ
・モジュールBに送られ、当該メモリ・モジュールはこ
こでバス20からデータを読み取ってこのデータをメモ
リ・ロケーションCに記憶するか、あるいはメモリ・ロ
ケーションCに記憶されたデータをバス20に送り出
す。簡略化のため、Aを(B,C)にマッピングする際
の遅延を克服するために必要な読み取り/書き込み制御
線及び各種バッファは図面から省略している。
にハッシュ回路18を使用するメモリ12のブロック図
である。メモリ12には、複数のメモリ・モジュール1
6が含まれている。以下の議論では、メモリ・モジュー
ルの個数をMで表す。以下の説明を分かりやすくするた
め、Mは2の累乗、すなわちM=2mであると仮定す
る。CPU14は、アドレス・バス22上にハッシュ回
路18へのアドレスAを送ることによって、メモリ14
に記憶されたデータを要求する。ハッシュ回路18は、
アドレスAを、Aが指定するデータの記憶に使用されて
いるのがM個のメモリ・モジュールのうちのどれである
かを指定するモジュール・アドレスB、及びデータが記
憶されている当該メモリ・モジュール内のメモリ・セル
のロケーションを指定する当該メモリ・モジュール内の
オフセットCに変換する。次に、オフセットCがメモリ
・モジュールBに送られ、当該メモリ・モジュールはこ
こでバス20からデータを読み取ってこのデータをメモ
リ・ロケーションCに記憶するか、あるいはメモリ・ロ
ケーションCに記憶されたデータをバス20に送り出
す。簡略化のため、Aを(B,C)にマッピングする際
の遅延を克服するために必要な読み取り/書き込み制御
線及び各種バッファは図面から省略している。
【0018】問題としているマッピングをハッシュ回路
18が行う方法は、2つの部分に分割することができ
る。以下でもっと詳細に論ずるように、本発明の最も重
要な部分はメモリ・モジュールのアドレスが計算される
態様に関するものである。ハッシュ方式は、主としてA
をBにマッピングすることに関するものである。AをB
にマッピングする方式を与えれば、それで利点のほぼ全
てが得られる。アドレスAを、所与のアドレスAに割り
当てられたメモリ・モジュールBの高々1つのセルに導
くCへマッピングする方法は、メモリ12に対して同じ
ハッシュの利点を提供する。本発明の望ましい実施例で
は、オフセットの計算はハードウエア・コストと遅延時
間を最小にするように選択される。
18が行う方法は、2つの部分に分割することができ
る。以下でもっと詳細に論ずるように、本発明の最も重
要な部分はメモリ・モジュールのアドレスが計算される
態様に関するものである。ハッシュ方式は、主としてA
をBにマッピングすることに関するものである。AをB
にマッピングする方式を与えれば、それで利点のほぼ全
てが得られる。アドレスAを、所与のアドレスAに割り
当てられたメモリ・モジュールBの高々1つのセルに導
くCへマッピングする方法は、メモリ12に対して同じ
ハッシュの利点を提供する。本発明の望ましい実施例で
は、オフセットの計算はハードウエア・コストと遅延時
間を最小にするように選択される。
【0019】本発明で使用されるAからBへのマッピン
グは、以下のパラメータによって決まる。lが全メモリ
・アドレスの長さを表すものとする。従って、出現し得
るメモリ・アドレスAは0〜2l−1の範囲である。イ
ンターリーブされるメモリ・モジュールの個数は2の累
乗であるものと仮定する。M=2mをインターリーブさ
れるメモリ・モジュールの個数を表すものとする。Sは
予測される最大刻み値(すなわち、ハッシュ方式の性能
について病的事態の生じないことが保証される選択され
た最大の刻み値)を表すものとする。nを、 m≦n≦l, S<2n−1, 及びp=2n−1であるような正の整数であるとする。
こきで、pは素数であることが望ましい。lの実際の値
に対して、nをリスト{3,5,7,13,17,1
9,31}から選択することができる。
グは、以下のパラメータによって決まる。lが全メモリ
・アドレスの長さを表すものとする。従って、出現し得
るメモリ・アドレスAは0〜2l−1の範囲である。イ
ンターリーブされるメモリ・モジュールの個数は2の累
乗であるものと仮定する。M=2mをインターリーブさ
れるメモリ・モジュールの個数を表すものとする。Sは
予測される最大刻み値(すなわち、ハッシュ方式の性能
について病的事態の生じないことが保証される選択され
た最大の刻み値)を表すものとする。nを、 m≦n≦l, S<2n−1, 及びp=2n−1であるような正の整数であるとする。
こきで、pは素数であることが望ましい。lの実際の値
に対して、nをリスト{3,5,7,13,17,1
9,31}から選択することができる。
【0020】pが素数の場合、本発明のハッシュ方式に
は病的事態は生じないことが証明できる。しかしなが
ら、本発明の方法はpが素数でない場合であっても先行
技術による方法よりは有利である。
は病的事態は生じないことが証明できる。しかしなが
ら、本発明の方法はpが素数でない場合であっても先行
技術による方法よりは有利である。
【0021】さらに、AからBへのマッピングは、次数
nの原始多項式(primitive polynomial)f(x)によ
って決まる。原始多項式は数学分野の熟練者にとっては
周知のところである。nの値の上掲リストに関するこの
ような多項式のリストについては、1973年10月の
Mathematics of Computation, 27, No.124 に掲載の、
Wayne Stahnke による "Primitive Binary Polynomial
s" に見受けられる。原始多項式を使用することによっ
てn列×p行のマトリクスが生成される。このマトリク
スについては、以下の解説では正準マトリクス(canoni
cal matrix)と呼ぶことにする。正準マトリクスを生成
する方法については以下で詳述する。正準マトリクスの
右側にn×nの非特異2進マトリクス(non-singular b
iray matrix)を乗算して、もう1つのn×pのマトリ
クスを求めることによって得られるn×pのマトリクス
をマッピング・マトリクスと呼ぶことにする。単位マト
リクス(identity matrix)は非特異2進マトリクスで
あるため、正準マトリクスもマッピング・マトリクスで
ある。さらに、正準マトリクス中の列の再配置はこのよ
うなマトリクス乗算によって実現することができる。
nの原始多項式(primitive polynomial)f(x)によ
って決まる。原始多項式は数学分野の熟練者にとっては
周知のところである。nの値の上掲リストに関するこの
ような多項式のリストについては、1973年10月の
Mathematics of Computation, 27, No.124 に掲載の、
Wayne Stahnke による "Primitive Binary Polynomial
s" に見受けられる。原始多項式を使用することによっ
てn列×p行のマトリクスが生成される。このマトリク
スについては、以下の解説では正準マトリクス(canoni
cal matrix)と呼ぶことにする。正準マトリクスを生成
する方法については以下で詳述する。正準マトリクスの
右側にn×nの非特異2進マトリクス(non-singular b
iray matrix)を乗算して、もう1つのn×pのマトリ
クスを求めることによって得られるn×pのマトリクス
をマッピング・マトリクスと呼ぶことにする。単位マト
リクス(identity matrix)は非特異2進マトリクスで
あるため、正準マトリクスもマッピング・マトリクスで
ある。さらに、正準マトリクス中の列の再配置はこのよ
うなマトリクス乗算によって実現することができる。
【0022】Bのmビットの2進表現は、問題とされて
いるアドレスAに対応するマッピング・マトリクスの行
から得られる。マッピング・マトリクスの行には、0〜
p−1の番号が付けられている。アドレスAに対応する
マッピング・マトリクスの行番号は、以下に論じる(A
modulo p)である。
いるアドレスAに対応するマッピング・マトリクスの行
から得られる。マッピング・マトリクスの行には、0〜
p−1の番号が付けられている。アドレスAに対応する
マッピング・マトリクスの行番号は、以下に論じる(A
modulo p)である。
【0023】一般に、同じm個の列が全てのアドレスに
対して使用されるならば、マッピング・マトリクスの任
意のm個の列をこのために用いることができる。マトリ
クスの列の再配置は前述のマトリクスに非特異2進マト
リクスを乗算することに相当するので、下記の議論にお
いては、マッピング・マトリクスの最初のm列を使用し
てBのmビットの2進表現を定義するものと仮定する。
対して使用されるならば、マッピング・マトリクスの任
意のm個の列をこのために用いることができる。マトリ
クスの列の再配置は前述のマトリクスに非特異2進マト
リクスを乗算することに相当するので、下記の議論にお
いては、マッピング・マトリクスの最初のm列を使用し
てBのmビットの2進表現を定義するものと仮定する。
【0024】ここで、正準マトリクスを生成する方法に
ついて説明する。以下の説明を分かりやすくするため、
正準マトリクスの計算ルールを、l=20、M=8、及
びS=30の事例に適用される。これは、0から1,0
48,575の間のアドレスを持つメモリに対応する。
この例では、n=5、p=31、及びm=3である。こ
の例に用いられる原始多項式を以下に示す: f(x)=x5+x2+1 (1) 問題としている例に以下の手続を適用することによって
得られる正準マトリクス(canonical matrix)を図2に
示す。
ついて説明する。以下の説明を分かりやすくするため、
正準マトリクスの計算ルールを、l=20、M=8、及
びS=30の事例に適用される。これは、0から1,0
48,575の間のアドレスを持つメモリに対応する。
この例では、n=5、p=31、及びm=3である。こ
の例に用いられる原始多項式を以下に示す: f(x)=x5+x2+1 (1) 問題としている例に以下の手続を適用することによって
得られる正準マトリクス(canonical matrix)を図2に
示す。
【0025】正準マトリクスの計算に当たって、全ての
演算はmodulo 2で行われる。正準マトリクスの
j番目の行中の項目(entry)はxjの展開式におけるx
jの係数である。ここで、n以上のxの累乗がn未満の
次数の多項式に関連づけられる。問題とされている関係
は原始多項式=0と置くことによって得られる。一般
に、原始多項式は以下の形で書くことができる:
演算はmodulo 2で行われる。正準マトリクスの
j番目の行中の項目(entry)はxjの展開式におけるx
jの係数である。ここで、n以上のxの累乗がn未満の
次数の多項式に関連づけられる。問題とされている関係
は原始多項式=0と置くことによって得られる。一般
に、原始多項式は以下の形で書くことができる:
【0026】
【数1】
【0027】この多項式の次数はnであるため、anは
常に非ゼロである。全ての演算がモジュロ2で行われる
ので、各akは0と1のいずれかになる。f(x)=0
の式を解くとxnについての式が得られる、すなわち以
下に示すようになる:
常に非ゼロである。全ての演算がモジュロ2で行われる
ので、各akは0と1のいずれかになる。f(x)=0
の式を解くとxnについての式が得られる、すなわち以
下に示すようになる:
【0028】
【数2】
【0029】全ての演算がモジュロ2で行われるので、
−ak=akになる。従って、式(3)は次の形に書き直
すことができる:
−ak=akになる。従って、式(3)は次の形に書き直
すことができる:
【0030】
【数3】
【0031】正準マトリクス中の項目が式(4)及び以
前に計算した項目を使用して行毎に順番に生成される。
行0〜n−1の項目は、k=0〜n−1についてのxk
を表す多項式の係数である。xkはn−1未満の指数を
持つ単一の項で表すことができるので、この項目は行番
号に等しい番号の列に1がひとつ入っている。ここで、
列には0〜n−1の番号が付けられる。n番目の行の項
目は係数akである。図2を参照すると、行5の項目は
10100であって、これらは式(1)のk=0〜4に
ついてのxkの係数に対応する。行n+1に関する項目
は以下のように計算される:
前に計算した項目を使用して行毎に順番に生成される。
行0〜n−1の項目は、k=0〜n−1についてのxk
を表す多項式の係数である。xkはn−1未満の指数を
持つ単一の項で表すことができるので、この項目は行番
号に等しい番号の列に1がひとつ入っている。ここで、
列には0〜n−1の番号が付けられる。n番目の行の項
目は係数akである。図2を参照すると、行5の項目は
10100であって、これらは式(1)のk=0〜4に
ついてのxkの係数に対応する。行n+1に関する項目
は以下のように計算される:
【0032】
【数4】
【0033】ここで、nckは正準マトリクスの行n中の
k番目の項目である。式(4)を用いてxnを置き換え
ると以下のようになる:
k番目の項目である。式(4)を用いてxnを置き換え
ると以下のようになる:
【0034】
【数5】
【0035】従って、正準マトリクスの(n+1)番目
の行中のk番目の項目は、k=0〜n−1及び n+1c0
=ncn-1a0に関して、n+1 ck=nck-1+ak ncn-1 (7) で表される。演算がmodulo 2で行われているこ
とを想起しなければならない。
の行中のk番目の項目は、k=0〜n−1及び n+1c0
=ncn-1a0に関して、n+1 ck=nck-1+ak ncn-1 (7) で表される。演算がmodulo 2で行われているこ
とを想起しなければならない。
【0036】上の例について言えば、a0=1、a1=
0、a2=1、a3=0、a4=0、5c0=1、5c0=
1、5c2=1、5c3=0、及び5c4=0になる。従っ
て、6c0=5c4 a0=0、6c1=5c4 a1 5c0=0+1
*1=1、等々。
0、a2=1、a3=0、a4=0、5c0=1、5c0=
1、5c2=1、5c3=0、及び5c4=0になる。従っ
て、6c0=5c4 a0=0、6c1=5c4 a1 5c0=0+1
*1=1、等々。
【0037】上述のように、アドレスAからメモリ・モ
ジュールBへのマッピングは、マッピング・マトリクス
中の行番号r=(A modulo p)を計算すること
によって行われる。行rの最初のm列中のビットは、ア
ドレスAに対応するモジュール番号の2進表現である。
例えば、図2にマッピング・マトリクスとして示す正準
マトリクスをマッピング・マトリクスとしたときのアド
レス1248を上の例で考えてみることにする。対応す
る行番号は(1248 modulo 31)=8であ
る。この行中の先頭の3つの項目は1、0、1である。
従って、アドレス1248にはメモリ・モジュール5が
割当られる。
ジュールBへのマッピングは、マッピング・マトリクス
中の行番号r=(A modulo p)を計算すること
によって行われる。行rの最初のm列中のビットは、ア
ドレスAに対応するモジュール番号の2進表現である。
例えば、図2にマッピング・マトリクスとして示す正準
マトリクスをマッピング・マトリクスとしたときのアド
レス1248を上の例で考えてみることにする。対応す
る行番号は(1248 modulo 31)=8であ
る。この行中の先頭の3つの項目は1、0、1である。
従って、アドレス1248にはメモリ・モジュール5が
割当られる。
【0038】アドレスにモジュール番号を割り当てる方
法について解説したが、次にそのモジュール内のロケー
ションをアドレスにマッピングする方法について解説す
る。上述のように、メモリ・モジュール内の高々1つの
ロケーションしか任意の所与のアドレスに対して割り当
てられないという方法でうまく動作する。アドレスAに
対応するメモリ・モジュール内のロケーションは、その
メモリ・モジュール内のオフセットと呼ばれる。本発明
の望ましい実施例では、オフセットの2進表示はl−m
個のビットから構成される。オフセットの上位側のn−
mビットは、マッピング・マトリクスの対応する行にお
ける残りのn−mビットから導き出される。これらのビ
ットは、マッピング・マトリクスの(m+1)番目の列
からn番目の列中の項目である。従って、上述の例で
は、メモリ・アドレス1248に関するオフセットの最
上位2ビットは1と0である。
法について解説したが、次にそのモジュール内のロケー
ションをアドレスにマッピングする方法について解説す
る。上述のように、メモリ・モジュール内の高々1つの
ロケーションしか任意の所与のアドレスに対して割り当
てられないという方法でうまく動作する。アドレスAに
対応するメモリ・モジュール内のロケーションは、その
メモリ・モジュール内のオフセットと呼ばれる。本発明
の望ましい実施例では、オフセットの2進表示はl−m
個のビットから構成される。オフセットの上位側のn−
mビットは、マッピング・マトリクスの対応する行にお
ける残りのn−mビットから導き出される。これらのビ
ットは、マッピング・マトリクスの(m+1)番目の列
からn番目の列中の項目である。従って、上述の例で
は、メモリ・アドレス1248に関するオフセットの最
上位2ビットは1と0である。
【0039】下位側のビットは、アドレスをpで割った
ものの整数部から求められる。上の例では、1248/
pの整数部は40である。この数を15ビットの2進表
現、すなわち0000000000101000に変換
しなければならない。従って、オフセット全体の2進表
現は10000000000101000=65576
になる。すなわち、メモリ・アドレス1248がメモリ
・モジュール5のオフセット65576にマッピングさ
れる。
ものの整数部から求められる。上の例では、1248/
pの整数部は40である。この数を15ビットの2進表
現、すなわち0000000000101000に変換
しなければならない。従って、オフセット全体の2進表
現は10000000000101000=65576
になる。すなわち、メモリ・アドレス1248がメモリ
・モジュール5のオフセット65576にマッピングさ
れる。
【0040】留意すべきは、このオフセットの計算方法
によれば、少数の「違法な」メモリ・アドレスが導かれ
るという点である。これらのアドレスはメモリ・モジュ
ールの1つにおいて実現可能なオフセットには割り当て
られない。違法アドレスとはA>2l−2l-n−1となる
アドレスである。上の例では、可能性のある1,04
8,576の全アドレス範囲のうち、このようなアドレ
スは32,768個存在する。本発明の望ましい実施例
では、ハッシュ・メモリはわずかにサイズが小さいもの
として取り扱われるだけである。すなわち、上の例では
コンピュータは、1,048,576のアドレスの代わ
りに1,015,807のアドレスを持つメモリに接続
されているかのようにプログラムされる。留意すべき
は、このハッシュ方式を使用しないハードウエアから
は、違法アドレスにもアクセスできるということであ
る。例えば、「違法」アドレスは本発明のハッシュ方式
で与えられるマッピングでは未使用のメモリ空間の始端
に再マッピングすることができる。
によれば、少数の「違法な」メモリ・アドレスが導かれ
るという点である。これらのアドレスはメモリ・モジュ
ールの1つにおいて実現可能なオフセットには割り当て
られない。違法アドレスとはA>2l−2l-n−1となる
アドレスである。上の例では、可能性のある1,04
8,576の全アドレス範囲のうち、このようなアドレ
スは32,768個存在する。本発明の望ましい実施例
では、ハッシュ・メモリはわずかにサイズが小さいもの
として取り扱われるだけである。すなわち、上の例では
コンピュータは、1,048,576のアドレスの代わ
りに1,015,807のアドレスを持つメモリに接続
されているかのようにプログラムされる。留意すべき
は、このハッシュ方式を使用しないハードウエアから
は、違法アドレスにもアクセスできるということであ
る。例えば、「違法」アドレスは本発明のハッシュ方式
で与えられるマッピングでは未使用のメモリ空間の始端
に再マッピングすることができる。
【0041】本発明によるアドレスAをモジュール・ア
ドレス及びオフセットに変換する回路に関するブロック
図を、図3の30で示す。アドレスAは、A modu
lopの各ビットを計算する回路32に入力される。こ
れらのビットは、その下位側mビット36がモジュール
・アドレス40になるnビット・ワードを生成する、マ
ッピング・マトリクス回路に入力される。残りのビット
は、オフセット46の上位側ビット42になる。アドレ
スAは、A/pの整数部を計算する割算回路43にも入
力される。これらのビットが、オフセット46の下位側
ビット44になる。
ドレス及びオフセットに変換する回路に関するブロック
図を、図3の30で示す。アドレスAは、A modu
lopの各ビットを計算する回路32に入力される。こ
れらのビットは、その下位側mビット36がモジュール
・アドレス40になるnビット・ワードを生成する、マ
ッピング・マトリクス回路に入力される。残りのビット
は、オフセット46の上位側ビット42になる。アドレ
スAは、A/pの整数部を計算する割算回路43にも入
力される。これらのビットが、オフセット46の下位側
ビット44になる。
【0042】留意すべきは、上述のオフセットを生成す
るためのビットの特定の割当は可能性のある多数のオフ
セット・アドレス生成法のうちの1つにすぎないという
ことである。例えば、上述のオフセット・ビットを生成
した後で1つあるいはもっと多くの交換操作を行うこと
に等価なオフセットの生成規則も、この交換操作が全て
のアドレスについて同じであれば、満足のゆくアドレス
生成が行える。この場合、交換操作は次のように定義さ
れる。O1,...,Os,...Ot,...Oqを最初
のマッピングによって生成されるオフセット・アドレス
のビットとする。次に、最初のマッピングによって生成
されたアドレスのビット、OtとOsに相当するオフセッ
ト・アドレスのビットを交換することに等価な規則に従
ってオフセット・アドレスのビットを生成する任意のマ
ッピングも、正しいオフセット・アドレスのマッピング
である。
るためのビットの特定の割当は可能性のある多数のオフ
セット・アドレス生成法のうちの1つにすぎないという
ことである。例えば、上述のオフセット・ビットを生成
した後で1つあるいはもっと多くの交換操作を行うこと
に等価なオフセットの生成規則も、この交換操作が全て
のアドレスについて同じであれば、満足のゆくアドレス
生成が行える。この場合、交換操作は次のように定義さ
れる。O1,...,Os,...Ot,...Oqを最初
のマッピングによって生成されるオフセット・アドレス
のビットとする。次に、最初のマッピングによって生成
されたアドレスのビット、OtとOsに相当するオフセッ
ト・アドレスのビットを交換することに等価な規則に従
ってオフセット・アドレスのビットを生成する任意のマ
ッピングも、正しいオフセット・アドレスのマッピング
である。
【0043】小さい刻み値については、マッピング・マ
トリクスは、メモリ・アドレス・ハードウエアにテーブ
ルとして記憶することができる。従って、アドレスAに
対応するマッピング項目は単純なテーブル索引によって
得られる。刻み値が大きくなると、マッピング・マトリ
クスの項目は特殊目的のハードウエアによって計算する
のが望ましい。一般に、特殊目的のハードウエアは、大
きい刻み値に合わせて設計されたシステムにおけるルッ
ク・アップ・テーブルに比べると、必要とするシリコン
の面積が小さい。
トリクスは、メモリ・アドレス・ハードウエアにテーブ
ルとして記憶することができる。従って、アドレスAに
対応するマッピング項目は単純なテーブル索引によって
得られる。刻み値が大きくなると、マッピング・マトリ
クスの項目は特殊目的のハードウエアによって計算する
のが望ましい。一般に、特殊目的のハードウエアは、大
きい刻み値に合わせて設計されたシステムにおけるルッ
ク・アップ・テーブルに比べると、必要とするシリコン
の面積が小さい。
【0044】エラー訂正コード技術の熟練者には、正準
マトリクスの生成法は周知のところである(F. J. MacW
illiams and N. J. A. Sloane, The Theory of Error C
orrecting Codes, North-Holland, Amsterdam, 1977 を
参照されたい)。正準マトリクスの行計算を一度に1行
づつ行う回路例を図4に400で示す。回路400は、
シフト・レジスタの各セルの間に2進加算器403が設
けられた、nセル・フィードバック2進シフト・レジス
タ402から構成される。各2進加算器に対する入力
は、直前のセルの出力と、最後のセル405の出力と上
述の原始多項式の係数akによって決まる値との和であ
る。各スイッチ404について、問題となる値は、ak
が1ならば最後のセル405の出力に等しく、akが0
ならばそれとは異なる値となる。この加算はモジュロ2
で行われる。シフト・レジスタ402の各セルは同期し
て刻時される。これらのセルに、当初、値1,
0,...0がロードしておけば、j番目のクロック・
サイクル後には、シフト・レジスタ402には正準マト
リクスの(j+1)番目の行が入っている。従って、回
路400が(p−1)回刻時されると、正準マトリクス
全体が生成される。この回路は正準マトリクスの計算手
段としては有用であるが、必要とするクロック・サイク
ルが多すぎるので、ハッシュ方式には有用でない。
マトリクスの生成法は周知のところである(F. J. MacW
illiams and N. J. A. Sloane, The Theory of Error C
orrecting Codes, North-Holland, Amsterdam, 1977 を
参照されたい)。正準マトリクスの行計算を一度に1行
づつ行う回路例を図4に400で示す。回路400は、
シフト・レジスタの各セルの間に2進加算器403が設
けられた、nセル・フィードバック2進シフト・レジス
タ402から構成される。各2進加算器に対する入力
は、直前のセルの出力と、最後のセル405の出力と上
述の原始多項式の係数akによって決まる値との和であ
る。各スイッチ404について、問題となる値は、ak
が1ならば最後のセル405の出力に等しく、akが0
ならばそれとは異なる値となる。この加算はモジュロ2
で行われる。シフト・レジスタ402の各セルは同期し
て刻時される。これらのセルに、当初、値1,
0,...0がロードしておけば、j番目のクロック・
サイクル後には、シフト・レジスタ402には正準マト
リクスの(j+1)番目の行が入っている。従って、回
路400が(p−1)回刻時されると、正準マトリクス
全体が生成される。この回路は正準マトリクスの計算手
段としては有用であるが、必要とするクロック・サイク
ルが多すぎるので、ハッシュ方式には有用でない。
【0045】マトリクス項目計算回路の実施例の1つ
を、図5に50で示す。マッピング回路50はn段から
構成される。マッピング回路50で生成されるマッピン
グ項目はアドレスのmodulo p演算の結果のビッ
トによって決まる。これらのビットをA(0)...A
(n−1)で表す。アドレスをmodulo p演算し
た結果を以下の説明においては簡約化アドレス(reduce
d address)と呼ぶことにする。初段には2入力マルチ
プレクサ52及びnビット記憶レジスタ54が設けられ
ている。マルチプレクサ52に対する入力はnビットの
数である。マルチプレクサ52への2つの入力は、1
と、マッピング・マトリクスの第2行の内容C(1)で
ある。どちらの入力を選択するかの選択は、簡約化アド
レスAの最下位ビットによって決まる。このビットが1
であればC(1)が選択され、そうでなければ1が選択
されて、レジスタ54に送られる。
を、図5に50で示す。マッピング回路50はn段から
構成される。マッピング回路50で生成されるマッピン
グ項目はアドレスのmodulo p演算の結果のビッ
トによって決まる。これらのビットをA(0)...A
(n−1)で表す。アドレスをmodulo p演算し
た結果を以下の説明においては簡約化アドレス(reduce
d address)と呼ぶことにする。初段には2入力マルチ
プレクサ52及びnビット記憶レジスタ54が設けられ
ている。マルチプレクサ52に対する入力はnビットの
数である。マルチプレクサ52への2つの入力は、1
と、マッピング・マトリクスの第2行の内容C(1)で
ある。どちらの入力を選択するかの選択は、簡約化アド
レスAの最下位ビットによって決まる。このビットが1
であればC(1)が選択され、そうでなければ1が選択
されて、レジスタ54に送られる。
【0046】マッピング回路50の残りの段の各々は、
その出力がnビットの記憶レジスタに記憶される2入力
マルチプレクサを有している。このマルチプレクサへの
入力は、前段の記憶レジスタの内容と、前段の記憶レジ
スタの内容にマッピング・マトリクスの行から選択され
た行の内容を乗算した値である。ここで、乗算は有限体
GF(2n)における乗算を意味している。マッピング
・マトリクスが正準マトリクスであれば、これは上述の
2進多項式モジュロf(x)の乗算と等価である。
その出力がnビットの記憶レジスタに記憶される2入力
マルチプレクサを有している。このマルチプレクサへの
入力は、前段の記憶レジスタの内容と、前段の記憶レジ
スタの内容にマッピング・マトリクスの行から選択され
た行の内容を乗算した値である。ここで、乗算は有限体
GF(2n)における乗算を意味している。マッピング
・マトリクスが正準マトリクスであれば、これは上述の
2進多項式モジュロf(x)の乗算と等価である。
【0047】これらの段には、問題となる段におけるマ
ルチプレクサの制御に用いられる簡約化アドレスのビッ
トによって番号をつけることができる。k番目の段に用
いられる乗算器62はマッピング・マトリクスの行2k
の内容である。いずれのメモリ設計においても、各段で
のこの乗算は定数による乗算である。従って、乗算回路
62は複数のXORゲートから構成することができる。
必要なゲート数はn2未満である。最終段68の出力
は、メモリ・モジュール及びオフセットの上位側ビット
を指定するマッピング・マトリクス項目である。
ルチプレクサの制御に用いられる簡約化アドレスのビッ
トによって番号をつけることができる。k番目の段に用
いられる乗算器62はマッピング・マトリクスの行2k
の内容である。いずれのメモリ設計においても、各段で
のこの乗算は定数による乗算である。従って、乗算回路
62は複数のXORゲートから構成することができる。
必要なゲート数はn2未満である。最終段68の出力
は、メモリ・モジュール及びオフセットの上位側ビット
を指定するマッピング・マトリクス項目である。
【0048】マッピング回路50によって行われる計算
はパイプライン式に実行される。計算は上から下へ進め
られ、完了までnクロック・サイクルを要する。しか
し、各段は各アドレス計算では1クロック・サイクルの
間だけしか使用されない。従って、このパイプラインは
所与のクロック・サイクルにおいてn個の異なる演算を
処理することができる。これを実現するため、マッピン
グ回路50を修正して、これらのアドレス・ビットのた
めの記憶レジスタを用意しなければならない。
はパイプライン式に実行される。計算は上から下へ進め
られ、完了までnクロック・サイクルを要する。しか
し、各段は各アドレス計算では1クロック・サイクルの
間だけしか使用されない。従って、このパイプラインは
所与のクロック・サイクルにおいてn個の異なる演算を
処理することができる。これを実現するため、マッピン
グ回路50を修正して、これらのアドレス・ビットのた
めの記憶レジスタを用意しなければならない。
【0049】図6には、このようなレジスタを有するマ
ッピング回路100が示されている。マッピング回路1
00は、複数の段から構成されているという点でマッピ
ング回路50と似ている。初段を除く各段には、マルチ
プレクサ、乗算回路及び記憶レジスタが含まれている。
回路100のk番目の段には、その入力が、前段の記憶
レジスタの出力、及びこの出力にマッピング・マトリク
スの行2kの内容をかけた値であるマルチプレクサ16
4が含まれている。マルチプレクサ164の出力はレジ
スタ166に記憶される。初段はマルチプレクサ152
及び記憶レジスタ154を含んでいるが、他の段には設
けられている乗算回路を欠いている。
ッピング回路100が示されている。マッピング回路1
00は、複数の段から構成されているという点でマッピ
ング回路50と似ている。初段を除く各段には、マルチ
プレクサ、乗算回路及び記憶レジスタが含まれている。
回路100のk番目の段には、その入力が、前段の記憶
レジスタの出力、及びこの出力にマッピング・マトリク
スの行2kの内容をかけた値であるマルチプレクサ16
4が含まれている。マルチプレクサ164の出力はレジ
スタ166に記憶される。初段はマルチプレクサ152
及び記憶レジスタ154を含んでいるが、他の段には設
けられている乗算回路を欠いている。
【0050】各段のマルチプレクサは、簡約化アドレス
からのアドレス・ビットによって制御を受ける。各段は
クロック信号に応答して動作する。図面を簡略化するた
め、各要素に関するクロック及び接続は図面から省略し
ている。しかし、各回路要素がクロック信号の受信に応
答してその機能を果たすことを理解しなければならな
い。各クロック・サイクルの間、マッピング回路100
には1つの簡約化アドレスが与えられる。このアドレス
の最初のビットは直ちに乗算器152の制御に使用され
る。このアドレスの第2のビットは次のクロック・サイ
クルで乗算器155の制御に使用される。一般に、簡約
化アドレスのk番目のビットは、最初のビットが初段の
乗算器によって使用されたkクロック・サイクル後に、
k番目の段のマルチプレクサの制御に使用される。アド
レス・ビットをこのようにずらして与えるため、初段以
外の各段にはその段のマルチプレクサの制御に使用され
るアドレス・ビットを受信するシフト・レジスタが含ま
れている。シフト・レジスタのセル数は段数に等しい。
従って、シフト・レジスタ169には1つのセルが含ま
れ、シフト・レジスタ170にはk個のセルが含まれ、
シフト・レジスタ172には(n−1)k個のセルが含
まれている。各シフト・レジスタの出力は対応するマル
チプレクサの制御線に印加される。
からのアドレス・ビットによって制御を受ける。各段は
クロック信号に応答して動作する。図面を簡略化するた
め、各要素に関するクロック及び接続は図面から省略し
ている。しかし、各回路要素がクロック信号の受信に応
答してその機能を果たすことを理解しなければならな
い。各クロック・サイクルの間、マッピング回路100
には1つの簡約化アドレスが与えられる。このアドレス
の最初のビットは直ちに乗算器152の制御に使用され
る。このアドレスの第2のビットは次のクロック・サイ
クルで乗算器155の制御に使用される。一般に、簡約
化アドレスのk番目のビットは、最初のビットが初段の
乗算器によって使用されたkクロック・サイクル後に、
k番目の段のマルチプレクサの制御に使用される。アド
レス・ビットをこのようにずらして与えるため、初段以
外の各段にはその段のマルチプレクサの制御に使用され
るアドレス・ビットを受信するシフト・レジスタが含ま
れている。シフト・レジスタのセル数は段数に等しい。
従って、シフト・レジスタ169には1つのセルが含ま
れ、シフト・レジスタ170にはk個のセルが含まれ、
シフト・レジスタ172には(n−1)k個のセルが含
まれている。各シフト・レジスタの出力は対応するマル
チプレクサの制御線に印加される。
【0051】マッピング回路100は遅延時間がnクロ
ック・サイクルである。この遅延は、各段毎にアドレス
のQ個のビットを処理することによって短縮することが
できる。各段毎に2ビットの処理を行うマッピング回路
200の実施例を図7に示す。マッピング回路200は
4ビットの簡約化アドレス、すなわちn=4,を処理す
る。マッピング回路は、4入力マルチプレクサ202及
び記憶レジスタ204を設けた初段を含んでいる。マル
チプレクサ202へのこれらの入力は1及びマッピング
・マトリクスからの最初の3項目である。選択される特
定の入力は簡約化アドレスの最初の2ビットによって指
定される。マッピング回路200の第2段はマルチプレ
クサ208及びレジスタ209から構成される。マルチ
プレクサ208への入力は、初段のレジスタの出力とこ
の出力に205〜207で示すマッピング・マトリクス
の適切な項目を乗算した値である。レジスタ209に記
憶されるマルチプレクサ208に対する入力の選択は、
簡約化アドレスの2番目の2ビットによって決定され
る。第2段は、これらのアドレス・ビットの演算を、初
段で最初の2つのアドレス・ビットについて演算を行っ
た後のクロック・サイクルで行わなければならないの
で、1セル・シフト・レジスタ210及び212を使用
して、2番目の2ビットの到着を1クロック・サイクル
だけ遅延させる。
ック・サイクルである。この遅延は、各段毎にアドレス
のQ個のビットを処理することによって短縮することが
できる。各段毎に2ビットの処理を行うマッピング回路
200の実施例を図7に示す。マッピング回路200は
4ビットの簡約化アドレス、すなわちn=4,を処理す
る。マッピング回路は、4入力マルチプレクサ202及
び記憶レジスタ204を設けた初段を含んでいる。マル
チプレクサ202へのこれらの入力は1及びマッピング
・マトリクスからの最初の3項目である。選択される特
定の入力は簡約化アドレスの最初の2ビットによって指
定される。マッピング回路200の第2段はマルチプレ
クサ208及びレジスタ209から構成される。マルチ
プレクサ208への入力は、初段のレジスタの出力とこ
の出力に205〜207で示すマッピング・マトリクス
の適切な項目を乗算した値である。レジスタ209に記
憶されるマルチプレクサ208に対する入力の選択は、
簡約化アドレスの2番目の2ビットによって決定され
る。第2段は、これらのアドレス・ビットの演算を、初
段で最初の2つのアドレス・ビットについて演算を行っ
た後のクロック・サイクルで行わなければならないの
で、1セル・シフト・レジスタ210及び212を使用
して、2番目の2ビットの到着を1クロック・サイクル
だけ遅延させる。
【0052】本発明のハッシュ方法には、A'=A mo
dulo p及びA/pの整数部の計算も必要になる。
特別な形態の素数p=2n−1を使用するため、この計
算は一般の整数除算よりはるかに簡単である。l≦2n
の場合について考えてみることにする。A[0]がAの
nの最下位ビットを表し、A[1]が上位のl−nビッ
トを表すものとする。すると、 A mod p=(A[0]+A[1]) mod p (8)
dulo p及びA/pの整数部の計算も必要になる。
特別な形態の素数p=2n−1を使用するため、この計
算は一般の整数除算よりはるかに簡単である。l≦2n
の場合について考えてみることにする。A[0]がAの
nの最下位ビットを表し、A[1]が上位のl−nビッ
トを表すものとする。すると、 A mod p=(A[0]+A[1]) mod p (8)
【0053】
【数6】
【0054】ここで、上述の操作は通常の整数演算を使
用している。式(8)の右側におけるモジュロ換算は、
n+1ビットの結果の最上位ビットが1の場合、または
下位nビットが全て1の場合に限って起こる。同じ条件
によって、式(9)の右側の第2の被加数も1に等しく
なる。上記公式はl>2nの場合に対して簡単に一般化
することができる。
用している。式(8)の右側におけるモジュロ換算は、
n+1ビットの結果の最上位ビットが1の場合、または
下位nビットが全て1の場合に限って起こる。同じ条件
によって、式(9)の右側の第2の被加数も1に等しく
なる。上記公式はl>2nの場合に対して簡単に一般化
することができる。
【0055】上述の観察を用いてA modulo p及
びEの計算を行う回路を図8に300で示す。アドレス
Aはレジスタ302及び304に記憶されるが、ここで
その上位l−nビットがレジスタ302に記憶され、下
位nビットがレジスタ304に記憶される。レジスタ3
02及び304の内容が全加算器306で加算されてn
+1ビットの出力が生じ、レジスタ308及び309に
記憶される。ここで、全加算器の出力の最上位ビットが
レジスタ309に記憶される。上述のように、Eの2進
表現はアドレスの上位l−nビットあるいはこの数+1
である。同様に、A modulo pは全加算器306
によって計算された合計から導き出される。A mod
ulo pは、レジスタ308の全てのビットが1の場
合、またはレジスタ309に1が入っている場合を除け
ば、レジスタ308の内容に等しい。前者の場合はAN
D回路309によって検知され、後者の場合はレジスタ
309の内容によって検知される。加算器312によっ
て、アドレスの上位l−nビットに1が加えられる。同
様に、加算器314によって(A[1]+A[0])の
下位nビットに1が加算され、実効的にmodulo
pの換算が行われる。
びEの計算を行う回路を図8に300で示す。アドレス
Aはレジスタ302及び304に記憶されるが、ここで
その上位l−nビットがレジスタ302に記憶され、下
位nビットがレジスタ304に記憶される。レジスタ3
02及び304の内容が全加算器306で加算されてn
+1ビットの出力が生じ、レジスタ308及び309に
記憶される。ここで、全加算器の出力の最上位ビットが
レジスタ309に記憶される。上述のように、Eの2進
表現はアドレスの上位l−nビットあるいはこの数+1
である。同様に、A modulo pは全加算器306
によって計算された合計から導き出される。A mod
ulo pは、レジスタ308の全てのビットが1の場
合、またはレジスタ309に1が入っている場合を除け
ば、レジスタ308の内容に等しい。前者の場合はAN
D回路309によって検知され、後者の場合はレジスタ
309の内容によって検知される。加算器312によっ
て、アドレスの上位l−nビットに1が加えられる。同
様に、加算器314によって(A[1]+A[0])の
下位nビットに1が加算され、実効的にmodulo
pの換算が行われる。
【0056】本発明は、適切なマッピング・マトリクス
項目の下位mビットを用いてモジュール・アドレスを生
成する実施例に関連して説明してきたが、当業者には明
らかなように、マッピング・マトリクスの同じm列が全
てのアドレスについて使用されるならば、マッピング・
マトリクス項目のどのmビットを用いることもできる。
上述のように、正準マトリクスにn×nの非特異マトリ
クスを右側から乗算することによって得られるマトリク
スは、有効なマッピング・マトリクスである。マッピン
グ・マトリクスの列の再配置は、このようなマトリクス
乗算によって行うことができる。従って、別のm列の選
択を使用してモジュール・アドレスのビットを得るハッ
シュ方式は、別のマッピング・マトリクスの下位mビッ
トを使用するハッシュ方式と等価なものであり、新しい
マッピング・マトリクスは、このようなマトリクス乗算
によって元のマッピング・マトリクスと関連づけられ
る。
項目の下位mビットを用いてモジュール・アドレスを生
成する実施例に関連して説明してきたが、当業者には明
らかなように、マッピング・マトリクスの同じm列が全
てのアドレスについて使用されるならば、マッピング・
マトリクス項目のどのmビットを用いることもできる。
上述のように、正準マトリクスにn×nの非特異マトリ
クスを右側から乗算することによって得られるマトリク
スは、有効なマッピング・マトリクスである。マッピン
グ・マトリクスの列の再配置は、このようなマトリクス
乗算によって行うことができる。従って、別のm列の選
択を使用してモジュール・アドレスのビットを得るハッ
シュ方式は、別のマッピング・マトリクスの下位mビッ
トを使用するハッシュ方式と等価なものであり、新しい
マッピング・マトリクスは、このようなマトリクス乗算
によって元のマッピング・マトリクスと関連づけられ
る。
【0057】インターリーブ・メモリの各種モジュール
にメモリ・アドレスを割り当てるための新規な方法及び
装置について解説を行った。当業者であれば、以上の説
明及び添付の図面から、本発明に対するさまざまな修正
が明らかになるであろう。従って、本発明を制限するの
は特許請求の範囲だけである。
にメモリ・アドレスを割り当てるための新規な方法及び
装置について解説を行った。当業者であれば、以上の説
明及び添付の図面から、本発明に対するさまざまな修正
が明らかになるであろう。従って、本発明を制限するの
は特許請求の範囲だけである。
【0058】
【効果】以上詳細に説明したように、本発明によれば、
一定のアドレス刻み毎のメモリ・アクセスを行っても病
的事態が起こらないようにすることができる。
一定のアドレス刻み毎のメモリ・アクセスを行っても病
的事態が起こらないようにすることができる。
【図面の簡単な説明】
【図1】CPUからのメモリ要求を処理するためのハッ
シュ回路を用いたメモリのブロック図。
シュ回路を用いたメモリのブロック図。
【図2】本発明の方法を適用することによって得られる
正準マトリクスの例を表す図。
正準マトリクスの例を表す図。
【図3】本発明に従ってアドレスAをモジュール・アド
レス及びオフセットに変換する回路のブロック図。
レス及びオフセットに変換する回路のブロック図。
【図4】正準マトリクスの行を計算する回路のブロック
図。
図。
【図5】本発明に従ってマトリクス項目を計算する回路
の第1の実施例のブロック図。
の第1の実施例のブロック図。
【図6】本発明に従ってマトリクス項目を計算する回路
の第2の実施例のブロック図。
の第2の実施例のブロック図。
【図7】本発明に従ってマトリクス項目を計算する回路
の第3の実施例のブロック図。
の第3の実施例のブロック図。
【図8】本発明の一実施例に従って、簡約化アドレス及
びオフセットの上位側ビットを計算する回路のブロック
図。
びオフセットの上位側ビットを計算する回路のブロック
図。
12:メモリ 14:CPU 16:メモリ・モジュール 18:ハッシュ回路 20:バス 22:アドレス・バス 40:モジュール・アドレス 42:上位側ビット 43:割算回路 44:下位側ビット 46:オフセット 402:2進シフト・レジスタ 403:2進加算器 404:スイッチ 50:マッピング回路 52:マルチプレクサ 54:レジスタ 62:乗算器 100:マッピング回路 152、155、164:マルチプレクサ 154、166:レジスタ 169、170、172:シフトレジスタ 200:マッピング回路 202、208:マルチプレクサ 204、209:レジスタ 302、304、308、309:レジスタ 306:全加算器
Claims (2)
- 【請求項1】インターリーブされたメモリ中の2m個の
メモリ・モジュールのうちの1つのメモリ・モジュール
Mにメモリ・アドレスAを割り当てる装置であって、 前記メモリ・アドレスAのlビットの2進表現を受信す
る手段と、 p=2n−1(nはm≦n≦lである正の整数)とする
とき、(A mod p)に等しい簡約化アドレス値rを
計算する手段と、 p行n列からなる2進マッピング・マトリクスの項目を
生成する手段と、 前記2進マッピング・マトリクスのr番目の行のm個の
予め定められたビットを含むMの2進表現を生成する手
段とを設けたことを特徴とするメモリ・インターリーブ
装置。 - 【請求項2】インターリーブされたメモリ中の2m個の
メモリ・モジュールのうちの1つのメモリ・モジュール
Mにメモリ・アドレスAを割り当てる方法であって、 前記メモリ・アドレスAのlビットの2進表現を受信
し、 p=2n−1(nはm≦n≦lである正の整数)とする
とき、(A mod p)に等しい簡約化アドレス値rを
計算し、 p行n列からなる2進マッピング・マトリクスの項目を
生成し、 前記2進マッピング・マトリクスのr番目の行のm個の
予め定められたビットを含むMの2進表現を生成するこ
とを特徴とするメモリ・インターリーブ方法。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US717,231 | 1991-06-18 | ||
US07/717,231 US5377340A (en) | 1991-06-18 | 1991-06-18 | Method and apparatus for memory interleaving using an improved hashing scheme |
Publications (1)
Publication Number | Publication Date |
---|---|
JPH05210579A true JPH05210579A (ja) | 1993-08-20 |
Family
ID=24881222
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP4184608A Pending JPH05210579A (ja) | 1991-06-18 | 1992-06-18 | メモリ・インターリーブ装置及び方法 |
Country Status (2)
Country | Link |
---|---|
US (1) | US5377340A (ja) |
JP (1) | JPH05210579A (ja) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2004164641A (ja) * | 2002-11-12 | 2004-06-10 | Hewlett-Packard Development Co Lp | メモリバンクへのアドレスのマッピングをするメモリコントローラ |
JP2013101617A (ja) * | 2011-11-09 | 2013-05-23 | Imagination Technologies Ltd | デジタル信号処理用のメモリアクセス |
Families Citing this family (15)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5592392A (en) * | 1994-11-22 | 1997-01-07 | Mentor Graphics Corporation | Integrated circuit design apparatus with extensible circuit elements |
US5765219A (en) * | 1995-02-23 | 1998-06-09 | Sony Corporation | Apparatus and method for incrementally accessing a system memory |
US5860133A (en) * | 1995-12-01 | 1999-01-12 | Digital Equipment Corporation | Method for altering memory configuration and sizing memory modules while maintaining software code stream coherence |
JPH10153851A (ja) * | 1996-11-22 | 1998-06-09 | Sony Corp | 露光データの補正方法,露光方法,フォトマスク,半導体装置,露光データの補正装置,露光装置及び半導体装置の製造装置 |
US6014733A (en) * | 1997-06-05 | 2000-01-11 | Microsoft Corporation | Method and system for creating a perfect hash using an offset table |
US6427214B1 (en) * | 1998-09-29 | 2002-07-30 | Nortel Networks Limited | Interleaver using co-set partitioning |
US6789218B1 (en) * | 2000-01-03 | 2004-09-07 | Icoding Technology, Inc. | High spread highly randomized generatable interleavers |
US7302621B2 (en) * | 2000-01-03 | 2007-11-27 | Icoding Technology, Inc. | High spread highly randomized generatable interleavers |
WO2001050614A2 (en) * | 2000-01-03 | 2001-07-12 | Icoding Technology, Inc. | System and method for high speed processing of turbo codes |
US7468985B2 (en) * | 2001-12-31 | 2008-12-23 | Stmicroelectronics, Inc. | System independent and scalable packet buffer management architecture for network processors |
US7126948B2 (en) * | 2002-03-21 | 2006-10-24 | Hewlett-Packard Development Company, L.P. | Method and system for performing a hash transformation to generate a hash pointer for an address input by using rotation |
US7051184B2 (en) | 2003-05-06 | 2006-05-23 | Sun Microsystems, Inc. | Method and apparatus for mapping memory addresses to corresponding cache entries |
FR2857475B1 (fr) * | 2003-07-10 | 2007-02-02 | Commissariat Energie Atomique | Dispositif comportant une matrice de microsystemes adressables individuellement par transmission electromagnetique et procede d'adressage d'un tel dispositif |
US8990505B1 (en) | 2007-09-21 | 2015-03-24 | Marvell International Ltd. | Cache memory bank selection |
US11403217B2 (en) * | 2019-10-30 | 2022-08-02 | Qualcomm Incorporated | Memory bank group interleaving |
Family Cites Families (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPS63225837A (ja) * | 1987-03-13 | 1988-09-20 | Fujitsu Ltd | 距離付きベクトルアクセス方式 |
US5111389A (en) * | 1987-10-29 | 1992-05-05 | International Business Machines Corporation | Aperiodic mapping system using power-of-two stride access to interleaved devices |
US5133061A (en) * | 1987-10-29 | 1992-07-21 | International Business Machines Corporation | Mechanism for improving the randomization of cache accesses utilizing abit-matrix multiplication permutation of cache addresses |
US5247645A (en) * | 1991-03-12 | 1993-09-21 | International Business Machines Corporation | Dynamic memory mapper which supports interleaving across 2N +1, 2.sup.NN -1 number of banks for reducing contention during nonunit stride accesses |
-
1991
- 1991-06-18 US US07/717,231 patent/US5377340A/en not_active Expired - Lifetime
-
1992
- 1992-06-18 JP JP4184608A patent/JPH05210579A/ja active Pending
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2004164641A (ja) * | 2002-11-12 | 2004-06-10 | Hewlett-Packard Development Co Lp | メモリバンクへのアドレスのマッピングをするメモリコントローラ |
JP2013101617A (ja) * | 2011-11-09 | 2013-05-23 | Imagination Technologies Ltd | デジタル信号処理用のメモリアクセス |
Also Published As
Publication number | Publication date |
---|---|
US5377340A (en) | 1994-12-27 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JPH05210579A (ja) | メモリ・インターリーブ装置及び方法 | |
US6691143B2 (en) | Accelerated montgomery multiplication using plural multipliers | |
EP0313788B1 (en) | An aperiodic mapping method to enhance power-of-two stride access to interleaved devices | |
US4189767A (en) | Accessing arrangement for interleaved modular memories | |
US6209017B1 (en) | High speed digital signal processor | |
US5276826A (en) | Apparatus for transforming addresses to provide pseudo-random access to memory modules | |
US5479624A (en) | High-performance interleaved memory system comprising a prime number of memory modules | |
EP0507577B1 (en) | Flexible N-way memory interleaving | |
US5745398A (en) | Method for the implementation of modular multiplication according to the Montgomery method | |
KR920010914B1 (ko) | 집적 데이타 처리기 | |
US5247645A (en) | Dynamic memory mapper which supports interleaving across 2N +1, 2.sup.NN -1 number of banks for reducing contention during nonunit stride accesses | |
US5381360A (en) | Modulo arithmetic addressing circuit | |
JPH061438B2 (ja) | 倍精度乗算器 | |
JP4302640B2 (ja) | 被乗数のシフトを用いて乗算を計算するための装置およびその方法、上記装置を実行するためのプログラムコードを格納した記録媒体 | |
Vassiliadis et al. | A general proof for overlapped multiple-bit scanning multiplications | |
US3730425A (en) | Binary two{40 s complement multiplier processing two multiplier bits per cycle | |
US5402368A (en) | Computing unit and digital signal processor using the same | |
US5224063A (en) | Address translation in fft numerical data processor | |
US6609142B1 (en) | Method of performing multiplication with accumulation in a Galois body | |
US20030182343A1 (en) | Fast multiplication circuits | |
KR20050057010A (ko) | 유사한 효율을 갖는 무작위 키 비트 길이 암호화 조작의 프로세싱을 위한 장치 및 방법 | |
US5948051A (en) | Device improving the processing speed of a modular arithmetic coprocessor | |
US7167885B2 (en) | Emod a fast modulus calculation for computer systems | |
WO2023186809A1 (en) | Dynamic buffers and method for dynamic buffer allocation | |
JPH01116744A (ja) | アドレス置換装置 |