JP4461669B2 - Arithmetic system - Google Patents
Arithmetic system Download PDFInfo
- Publication number
- JP4461669B2 JP4461669B2 JP2002263402A JP2002263402A JP4461669B2 JP 4461669 B2 JP4461669 B2 JP 4461669B2 JP 2002263402 A JP2002263402 A JP 2002263402A JP 2002263402 A JP2002263402 A JP 2002263402A JP 4461669 B2 JP4461669 B2 JP 4461669B2
- Authority
- JP
- Japan
- Prior art keywords
- address
- parameter
- register
- memory
- processor
- 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.)
- Expired - Fee Related
Links
Images
Description
【0001】
【発明の属する技術分野】
本発明は、演算に関するデータを記憶する複数のメモリバンクと、プロセッサと、プロセッサと各メモリバンクを相互に接続するアドレス相互接続網を備えた演算システムに関するものである。
【0002】
【従来の技術】
プロセッサとアドレス生成装置をメモリと結合するアドレス相互接続網とプロセッサと演算装置をメモリと結合するデータ相互接続網を備える演算システムにおいて、たとえばメモリが、アドレスadr0〜7に割り当てたバンクBNK0, アドレスadr8〜15に割り当てたバンクBNK1, アドレスadr16〜23に割り当てたバンクBNK2, アドレスadr24〜31に割り当てたバンクBNK3から構成される。
この場合、プロセッサからメモリにアクセスする場合のアドレスがadr0,8,16,24,1,9,17,25,…,7,15,23,31である場合、たとえば特許文献1に記述されるようなメモリインタリーブ方式を用いることで所望のアクセス用アドレスを生成することができる。
【0003】
【特許文献1】
特開2000−163316号公報
【0004】
【発明が解決しようとする課題】
しかし、この方法ではアドレス変換のみが行われ、アドレスに対応したデータの選択は別の手段で行う必要があった。
さらに、プロセッサからメモリにアクセスする場合のアドレスが、たとえばadr0,8,16,24,1,9,17,25,…,7,15,23,31である場合、特許文献1に示す方式では所望のアドレス変換が行われないため、プロセッサでアドレス計算を行う必要がある。
この場合、0,8,16,24,1,9,17,25,…,7,15,23,31のようなアドレスは、プロセッサが持つ単純なアドレス自動生成機能を使っただけでは生成できない。
そのためプロセッサを使って演算とは別にアドレス計算を行う必要があり、処理サイクル数が演算に必要なサイクル数よりアドレス生成の分だけ余計にかかるという不利益がある。
【0005】
この他にも、特許文献1に示す方式ではアドレス変換装置を2段設ける必要があるため、ハードウエア規模が大きくなり、コスト削減の観点からしても好ましいものではない。
【0006】
本発明は、かかる事情に鑑みてなされたものであり、その目的は、余計な処理サイクル数を削減でき、メモリアクセス性能を向上させることができ、また、ハードウェア規模の低減を図れ、ひいてはコスト削減を図ることができる演算システムを提供することにある。
【0007】
【課題を解決するための手段】
上記目的を達成するため、本発明の第1の観点に係る演算システムは、アドレス空間の所定範囲のアドレスが割り当てられ、演算に関するデータを記憶する複数のメモリバンクと、連続するアドレスを生成する機能を有するプロセッサと、少なくとも上記プロセッサと上記複数のメモリバンクとを相互に接続するアドレス相互接続網とを有し、上記アドレス相互接続網は、上記プロセッサにより生成されたアドレスを、当該アドレスと少なくとも上記メモリバンクの数に応じたパラメータに基づいて所定の規則性を持つアドレスに変換するアドレス変換装置を有し、上記アドレス変換装置による変換アドレスを、当該変換アドレスを含む上記メモリバンクに供給し、上記アドレス変換装置は、上記プロセッサにより生成されたアドレスと、上記メモリバンクの数に応じた第1のパラメータおよび上記メモリバンクのアドレスの数に基づいた第2のパラメータに基づいてアドレス変換を行うことが可能で、かつ、アドレス変換方式が上記第1のパラメータおよび上記第2のパラメータの設定に応じて変更可能であり、少なくとも上記第1のパラメータがセットされる第1のレジスタと、少なくとも上記第2のパラメータがセットされる第2のレジスタと、上記第1のレジスタにセットされた第1のパラメータ、上記第2のレジスタにセットされた第2のパラメータ、および上記プロセッサで生成されたアドレスに基づいて変換アドレスを計算するアドレス計算回路と、を含み、上記アドレス計算回路が、上記第1のレジスタに設定される第1のパラメータの値をx、上記第2のレジスタに設定される第2のパラメータの値をyとし、%がモジュロ演算、/が整数の除算を表すときに、変換アドレスAdrnを下記数6式に従って計算する。
【数6】
Adrn = y * (Adr % x) + x*y* (Adr / (x*y)) + (Adr % (x*y)) / x
【0008】
本発明では、上記複数のメモリバンクは、1または複数のメモリバンクを含む少なくとも複数のメモリセットに分割され、上記アドレス変換装置は、上記プロセッサにより生成されたアドレスと、上記メモリセット内のメモリバンクの数に応じたパラメータに基づいてアドレス変換を行う。
【0010】
好適には、少なくとも上記プロセッサと上記複数のメモリバンクとのデータ経路をバンク選択信号に基づいて選択的に接続するデータ相互接続網を有し、アドレス変換装置は、上記変換アドレスおよび上記メモリバンクのアドレスの数に基づいた第3のパラメータに基づいて上記バンク選択信号を生成し、上記データ相互接続網に出力する。
【0012】
好適には、上記アドレス変換装置は、少なくとも上記第1のパラメータがセットされる第1のレジスタと、少なくとも上記第2のパラメータがセットされる第2のレジスタと、上記第3のパラメータがセットされる第3のレジスタと、上記第1のレジスタにセットされた第1のパラメータ、上記第2のレジスタにセットされた第2のパラメータ、および上記プロセッサで生成されたアドレスに基づいて変換アドレスを計算するアドレス計算回路と、上記アドレス計算回路による変換アドレスおよび上記メモリバンクのアドレスの数に基づいた第3のパラメータに基づいて上記バンク選択信号を生成し、上記データ相互接続網に出力するバンク選択計算回路とを有する。
【0013】
本発明では、上記アドレス計算回路が、上記第1のレジスタに設定される第1のパラメータの値をx、上記第2のレジスタに設定される第2のパラメータの値をyとし、%がモジュロ演算、/が整数の除算を表すときに、上記変換アドレスAdrnを下記数7式に従って計算し、上記バンク選択計算回路が、上記第3のレジスタに設定される第3のパラメータ3の値をzとし、/が整数の除算を表すときに、上記バンク選択信号Selを下記数8式に従って計算する。
【0014】
【数7】
Adrn = y * (Adr % x) + x*y* (Adr / (x*y)) + (Adr % (x*y)) / x
【0015】
【数8】
Sel = Adrn / z
【0016】
また、上記アドレス計算回路は、上記第1のレジスタおよび第2のレジスタに上記アドレス空間に対して設定されるアドレス数に関するパラメータが設定されると、入力アドレスをそのまま出力する。
【0017】
好適には、上記アドレス相互接続網は、制御信号に応じて上記アドレス変換装置による変換アドレスまたは外部から供給されたアドレスのうちのいずれかを選択して、選択したアドレスを含む上記メモリバンクに供給する選択装置を有する。
【0018】
また、上記データ相互接続網は、制御信号に応じて外部装置と上記複数のメモリバンクとのデータ経路を選択的に接続する選択装置を有する。
【0019】
本発明の第2の観点は、アドレス空間の所定範囲のアドレスが割り当てられ、演算に関するデータを記憶する複数のメモリバンクと、連続するアドレスを生成する機能を有するプロセッサと、少なくとも一つのアドレス生成装置と、少なくとも一つの演算装置と、上記プロセッサと上記複数のメモリバンクと上記アドレス生成装置を相互に接続するアドレス相互接続網と、上記プロセッサと上記複数のメモリバンクと上記演算装置を相互に接続するデータ相互接続網とを有し、上記アドレス相互接続網は、少なくとも上記プロセッサにより生成されたアドレスを、当該アドレスと少なくとも上記メモリバンクの数に応じたパラメータに基づいて所定の規則性を持つアドレスに変換し、上記変換アドレスおよび上記メモリバンクのアドレスの数に基づいたパラメータに基づいてバンク選択信号を生成し、上記データ相互接続網に出力するアドレス変換装置と、第1の制御信号に応じて上記アドレス変換装置による変換アドレスまたは上記アドレス生成装置から供給されたアドレスのうちのいずれかを選択して、選択したアドレスを含む上記メモリバンクに供給する第1の選択装置とを有し、上記アドレス変換装置は、上記プロセッサにより生成されたアドレスと、上記メモリバンクの数に応じた第1のパラメータおよび上記メモリバンクのアドレスの数に基づいた第2のパラメータに基づいてアドレス変換を行うことが可能で、かつ、アドレス変換方式が上記第1のパラメータおよび上記第2のパラメータの設定に応じて変更可能であり、上記データ相互接続網は、上記プロセッサと上記複数のメモリバンクとのデータ経路をバンク選択信号に基づいて選択的に接続する第2の選択装置と、第2の制御信号に応じて上記演算装置と上記複数のメモリバンクとのデータ経路を選択的に接続する第3の選択装置と、を有し、上記アドレス変換装置は、少なくとも上記第1のパラメータがセットされる第1のレジスタと、少なくとも上記第2のパラメータがセットされる第2のレジスタと、第3のパラメータがセットされる第3のレジスタと、上記第1のレジスタにセットされた第1のパラメータ、上記第2のレジスタにセットされた第2のパラメータ、および上記プロセッサで生成されたアドレスに基づいて変換アドレスを計算するアドレス計算回路と、上記アドレス計算回路による変換アドレスおよび上記メモリバンクのアドレスの数に基づいた第3のパラメータに基づいて上記バンク選択信号を生成し、上記データ相互接続網に出力するバンク選択計算回路と、を含み、上記アドレス計算回路が、上記第1のレジスタに設定される第1のパラメータの値をx、上記第2のレジスタに設定される第2のパラメータの値をyとし、%がモジュロ演算、/が整数の除算を表すときに、上記変換アドレスAdrnを下記数9式に従って計算し、上記バンク選択計算回路が、上記第3のレジスタに設定される第3のパラメータの値をzとし、/が整数の除算を表すときに、上記バンク選択信号Selを下記数10式に従って計算する。
【数9】
Adrn = y * (Adr % x) + x*y* (Adr / (x*y)) + (Adr % (x*y)) / x
【数10】
Sel = Adrn / z
【0020】
本発明によれば、たとえばプロセッサにおいて連続するアドレスが生成され、アドレス相互接続網のアドレス変換装置に入力される。
アドレス変換装置においては、プロセッサにより生成されたアドレスが、当該アドレスと少なくともメモリバンクの数に応じたパラメータに基づいて、所定の規則性を持つアドレスに変換される。
この変換後のアドレスがアドレス相互接続網の接続網を介して、変換アドレスを含むメモリバンクに供給される。
たとえばアドレス変換装置においては、第1のレジスタにメモリバンクの数に応じた第1のパラメータが設定され、第2のレジスタにメモリバンクのアドレスの数に基づいた第2のパラメータが設定される。
そして、アドレス計算回路において、プロセッサにより生成されたアドレスが、当該アドレスと第1のレジスタに設定された第1のパラメータおよび第2のレジスタに設定された第2のパラメータを用いた所定の演算式に従って求められる。
また、アドレス変換装置においては、第3のレジスタにメモリバンクのアドレスの数に基づいた第3のパラメータが設定される。そして、バンク選択回路において、アドレス計算回路による変換アドレスおよび第3のレジスタに設定された第3のパラメータに基づいてバンク選択信号が生成されて、データ相互接続網に出力される。
データ相互接続網においては、バンク選択信号に基づいて、プロセッサと複数のメモリバンクとのデータ経路が選択的に接続される。
【0021】
【発明の実施の形態】
第1実施形態
図1は、本発明に係る演算システムの第1の実施形態を示す構成図である。
【0022】
本演算システム10は、図1に示すように、複数(本第1の実施形態では6)のメモリバンク(MBNK)11−0〜11−5、複数(本実施形態では6)のアドレス生成装置(ADRG)12−0〜12−5、複数(本実施形態では6)の演算装置(OP)13−0〜13−5、プロセッサ(PRC)14、アドレス変換装置(ACNV)151を含むアドレス相互接続網(ACNCT)15、およびデータ相互接続網(DCNCT)16を有している。
【0023】
メモリバンク11−0〜11−5は、演算に関するデータを記憶し、たとえば本第1の実施形態においてアドレス空間がadr0〜adr47の48個のアドレスを有するものであるとすると、それぞれ6等分した8アドレスずつ割り当てられて8アドレスを持ち、たとえば2個のメモリバンクで一つのメモリセットを構成し、全体で3個のメモリセットを構成している。
【0024】
メモリバンク11−0は、メモリアドレスAdrc0としてadr0〜adr7の8アドレスが割り当てられている。
メモリバンク11−1は、メモリアドレスAdrc1としてadr8〜adr15の8アドレスが割り当てられている。
メモリバンク11−2は、メモリアドレスAdrc2としてadr16〜adr23の8アドレスが割り当てられている。
メモリバンク11−3は、メモリアドレスAdrc3としてadr24〜adr31の8アドレスが割り当てられている。
メモリバンク11−4は、メモリアドレスAdrc4としてadr32〜adr39の8アドレスが割り当てられている。
メモリバンク11−5は、メモリアドレスAdrc5としてadr40〜adr47の8アドレスが割り当てられている。
【0025】
アドレス生成装置12−0は、たとえば図示しない制御系の指示に従ってメモリバンク11−0のメモリアドレスAdrc0(adr0〜adr7)に対応するアドレスAdr0を生成して、アドレス相互接続網15に出力する。
アドレス生成装置12−1は、たとえば図示しない制御系の指示に従ってメモリバンク11−1のメモリアドレスAdrc1(adr8〜adr15)に対応するアドレスAdr1を生成して、アドレス相互接続網15に出力する。
アドレス生成装置12−2は、たとえば図示しない制御系の指示に従ってメモリバンク11−2のメモリアドレスAdrc2(adr16〜adr23)に対応するアドレスAdr2を生成して、アドレス相互接続網15に出力する。
アドレス生成装置12−3は、たとえば図示しない制御系の指示に従ってメモリバンク11−3のメモリアドレスAdrc3(adr24〜adr31)に対応するアドレスAdr3を生成して、アドレス相互接続網15に出力する。
アドレス生成装置12−4は、たとえば図示しない制御系の指示に従ってメモリバンク11−4のメモリアドレスAdrc4(adr32〜adr39)に対応するアドレスAdr4を生成して、アドレス相互接続網15に出力する。
アドレス生成装置12−5は、たとえば図示しない制御系の指示に従ってメモリバンク11−5のメモリアドレスAdrc5(adr40〜adr47)に対応するアドレスAdr5を生成して、アドレス相互接続網15に出力する。
【0026】
演算装置13−0〜13−5は、データ相互接続網16を介して転送されたデータに対して、たとえば図示しない制御系の指示に従った演算を行い、演算結果をデータ相互接続網16に出力する。
【0027】
プロセッサ14は、連続するアドレス、たとえばアドレス空間に対応したアドレスAdr(0,1,2,〜46,47)を生成して、アドレス相互接続網15に出力する。
プロセッサ14は、データ相互接続網16を介して所望のメモリバンク13−0〜13−5から読み出したデータ、あるいは演算装置13−0〜13−5の演算結果を入力して所定の処理を行い、また、データ相互接続網16を介して所定のデータを所望のメモリバンク13−0〜13−5、あるいは所望のデータを演算装置13−0〜13−5に転送する。
【0028】
アドレス相互接続網15は、プロセッサ14によるアドレスadrを所定の演算式に従って所定の規則性を有するアドレスに変換するアドレス変換装置151を含み、プロセッサ14とアドレス生成装置12−0〜12−5をメモリバンク11−0〜11−5に相互に接続する。
【0029】
図2は、本第1の実施形態に係るアドレス相互接続網の要部の具体的な構成例を示す図である。
【0030】
このアドレス相互接続網15は、図2に示すように、アドレス変換装置(ACNV)151および第1の選択装置(SEL)152を有している。
【0031】
アドレス変換装置151は、プロセッサ14により生成されたアドレスAdrを、このアドレスAdrと、メモリバンクの数(本第1の実施形態では6)に応じたあるいはメモリセット内のメモリバンクの数(本第1の実施形態では2)に応じた第1のパラメータX、並びにメモリバンクのアドレスの数に応じた第2のパラメータYに基づいて所定の規則性を持つアドレスAdrnに変換し、かつ変換アドレスおよびメモリバンクのアドレスの数に基づいた第3のパラメータZに基づいてバンク選択信号Selを生成し、データ相互接続網16に出力する。
【0032】
また、アドレス変換装置151は、アドレス変換を行わないときは、第1のパラメータXおよび第2パラメータYとしてアドレス空間に対して設定されるアドレス数に関するパラメータ、具体的には、アドレス空間に設定される最小のアドレス数1が第1のパラメータXとして設定され、アドレス空間に設定される最大のアドレス数48が第2のパラメータYとして設定され、入力アドレスAdrをそのままAdrnとして出力する。
【0033】
図3は、本実施形態に係るアドレス変換装置の具体的に構成例を示すブロック図である。
【0034】
アドレス変換装置151は、図3に示すように、第1のパラメータXがセットされる第1のレジスタ(REG1)1511と、第2のパラメータYがセットされる第2のレジスタ(REG2)1512と、第3のパラメータZがセットされる第3のレジスタ(REG3)1513と、第1のレジスタ1511にセットされた第1のパラメータX、第2のレジスタ1512にセットされた第2のパラメータY、およびプロセッサ14で生成されたアドレスAdrに基づいて変換アドレスを計算するアドレス計算回路(ADRC)1514と、アドレス計算回路1514による変換アドレスおよび第3のレジスタ1513に設定された第3のパラメータZに基づいてバンク選択信号Selを生成し、データ相互接続網16に出力するバンク選択計算回路(BNKC)1515とを有する。
なお、第1のレジスタ1511、第2のレジスタ1512、および第3のレジスタ1513は、第1のパラメータX、第2のパラメータY、および第3のパラメータZを、外部からあるいはプロセッサ14を介して任意に設定可能である。
【0035】
アドレス計算回路1514は、上述した第1のレジスタ1511に設定される第1のパラメータXの値をx、第2のレジスタに設定される第2のパラメータYの値をyとし、%がモジュロ演算、/が整数の除算を表すときに、変換アドレスAdrnを下記数8式に従って計算する。
【0036】
【数8】
Adrn = y * (Adr % x) + x*y* (Adr / (x*y)) + (Adr % (x*y)) / x
【0037】
図4(A)および(B)は、上記式に基づくアドレス計算回路1514のアドレス変換例を示す図であって、図4(A)は変換前のプロセッサ14が生成した連続するアドレAdrを示し、図4(B)はアドレス計算回路1514の変換後のアドレスAdrnを示している。
【0038】
図4(A)に示すように、プロセッサ14は、0〜47までの48個のアドレスAdrを順番に連続して生成する。
この連続したアドレスAdrは、アドレス計算回路1514により所定の規則性をもって図4(B)に示すようなアドレスAdrnに変換される。
この規則性は、各メモリセットMS0,MS1,MS2を構成するメモリバンク11−0と11−1により構成されるメモリセットMS0、メモリバンク11−2と11−3により構成されるメモリセットMS1、メモリバンク11−4と11−5により構成されるメモリセットMS2の各メモリセットにおいて、互いのメモリバンクの持つアドレスの小さい方からアドレスが交互に並ぶような関係をもつように規定されている。
【0039】
具体的には、メモリセットMS0においては、図4(A),(B)に示すように、生成アドレスAdr0は変換後もアドレスAdrn0となり、生成アドレスAdr1は変換後はアドレスAdrn8となり、生成アドレスAdr2は変換後はアドレスAdrn1となり、生成アドレスAdr3は変換後はアドレスAdrn9となり、生成アドレスAdr4は変換後はアドレスAdrn2となり、生成アドレスAdr5は変換後はアドレスAdrn10となり、生成アドレスAdr6は変換後はアドレスAdrn3となり、生成アドレスAdr7は変換後はアドレスAdrn11となり、生成アドレスAdr8は変換後はアドレスAdrn4となり、生成アドレスAdr9は変換後はアドレスAdrn12となり、生成アドレスAdr10は変換後はアドレスAdrn5となり、生成アドレスAdr11は変換後はアドレスAdrn13となり、生成アドレスAdr12は変換後はアドレスAdrn6となり、生成アドレスAdr13は変換後はアドレスAdrn14となり、生成アドレスAdr14は変換後はアドレスAdrn7となり、生成アドレスAdr15は変換後もアドレスAdrn15となる。
【0040】
メモリセットMS1においては、図4(A),(B)に示すように、生成アドレスAdr16は変換後もアドレスAdrn16となり、生成アドレスAdr17は変換後はアドレスAdrn24となり、生成アドレスAdr18は変換後はアドレスAdrn17となり、生成アドレスAdr19は変換後はアドレスAdrn25となり、生成アドレスAdr20は変換後はアドレスAdrn18となり、生成アドレスAdr21は変換後はアドレスAdrn26となり、生成アドレスAdr22は変換後はアドレスAdrn19となり、生成アドレスAdr23は変換後はアドレスAdrn27となり、生成アドレスAdr24は変換後はアドレスAdrn20となり、生成アドレスAdr25は変換後はアドレスAdrn28となり、生成アドレスAdr26は変換後はアドレスAdrn21となり、生成アドレスAdr27は変換後はアドレスAdrn29となり、生成アドレスAdr28は変換後はアドレスAdrn22となり、生成アドレスAdr29は変換後はアドレスAdrn30となり、生成アドレスAdr30は変換後はアドレスAdrn23となり、生成アドレスAdr31は変換後もアドレスAdrn31となる。
【0041】
メモリセットMS2においては、図4(A),(B)に示すように、生成アドレスAdr32は変換後もアドレスAdrn32となり、生成アドレスAdr33は変換後はアドレスAdrn40となり、生成アドレスAdr34は変換後はアドレスAdrn33となり、生成アドレスAdr35は変換後はアドレスAdrn41となり、生成アドレスAdr36は変換後はアドレスAdrn34となり、生成アドレスAdr37は変換後はアドレスAdrn42となり、生成アドレスAdr38は変換後はアドレスAdrn35となり、生成アドレスAdr39は変換後はアドレスAdrn43となり、生成アドレスAdr40は変換後はアドレスAdrn36となり、生成アドレスAdr41は変換後はアドレスAdrn44となり、生成アドレスAdr42は変換後はアドレスAdrn37となり、生成アドレスAdr43は変換後はアドレスAdrn45となり、生成アドレスAdr44は変換後はアドレスAdrn38となり、生成アドレスAdr45は変換後はアドレスAdrn46となり、生成アドレスAdr46は変換後はアドレスAdrn39となり、生成アドレスAdr47は変換後もアドレスAdrn47となる。
【0042】
バンク選択計算回路1515は、第3のレジスタ1513に設定される第3のパラメータZの値をz、/が整数の除算を表すときに、バンク選択信号Selを下記数9式に従って計算する
【0043】
【数9】
Sel = Adrn / z
【0044】
第1の選択装置152は、第1の制御信号ctrl1に応じてアドレス変換装置151による変換アドレスAdrまたはアドレス生成装置12−0〜12−5から供給されたアドレスAdr0〜Adr5のうちのいずれかを選択して、選択したアドレスをAdrc0〜Adrc5のいずれかに設定して、設定したアドレスを含むメモリバンク11−0〜11−5に供給する。
【0045】
データ相互接続網16は、所望のメモリバンク13−0〜13−5から読み出したデータDatc0〜Datc5、あるいは演算装置13−0〜13−5の演算結果データDat0〜Dat5のプロセッサ14へのデータ経路を選択的に接続し、また、プロセッサ14によるデータDatの所望のメモリバンク13−0〜13−5、あるいは所望のデータを演算装置13−0〜13−5へのデータ経路を選択的に接続する。
【0046】
図5は、本第1の実施形態に係るデータ相互接続網の具体的な構成例を示すブロック図である。
【0047】
データ相互接続網16は、図5に示すように、第2の選択装置(SEL)161および第3の選択装置(SEL)162を有している。
第1の選択装置161は、プロセッサ14の入出力データDatと第2の選択装置162(複数のメモリバンク11−0〜11−5の入出力データDatc0〜Datc5、演算装置13−0〜13−5の入出力データDat0〜Dat5)とのデータ経路をアドレス変換装置151によるバンク選択信号Selに基づいて選択的に接続する。
第2の選択装置162は、第2の制御信号ctrlに応じて演算装置13−0〜13−5の入出力データDat0〜Dat5とメモリバンク11−0〜11−5の入出力データDatc0〜Datc5および/または第2の選択装置161(プロセッサ14の入出力データDat)とのデータ経路を選択的に接続する。
【0048】
次に、上記構成による動作をプロセッサ14がアドレスAdrを生成する場合を例に、アドレス変換装置の上記構成による動作を中心に説明する。
【0049】
まず、アドレス変換を行わない場合のアドレス生成について説明する。
この場合、外部の制御系により、あるいはプロセッサ14により、第1パラメータXが値x=1、第2パラメータYが値y=48、第3のパラメータZが値z=8に設定されてアドレス変換装置151に供給される。
これにより、第1のレジスタ1511に1が設定され、第2のレジスタ1512に48が設定され、第3のレジスタ1513に8が設定される。
第1のレジスタ1511に設定された第1のパラメータX(値x=1)および第2のレジスタ1512に設定された第2のパラメータY(値y=48)がアドレス計算回路1514に供給される。また、第3のレジスタ1513に設定された第3のパラメータZ(値z=8)がバンク選択計算回路1515に供給される。
【0050】
アドレス計算回路1514においては、次式に従って変換後のアドレスが計算される。
【0051】
【数10】
Adrn = 48 * (Adr % 1) + (Adr % 48) / 1+ 48 * (Adr / 48) = Adr
【0052】
プロセッサ14からメモリへアクセスを行うために、アドレスAdrが生成されてアドレス相互接続網15に出力され、アドレス変換回路151に入力される。
このとき、たとえば生成Adrが0の場合、上式を使って計算するとAdrn=0となる。
そして、第1の制御信号ctrl1で変換アドレスAdrnを選択するよう第1の選択装置152に指定される。これにより、第1の選択装置151でこの値が選択され、メモリバンク11−0のアドレスAdrc0=0にアクセスを行うことができる。
【0053】
アドレス変換装置151は同時に、バンク選択計算回路1515において、次式に従って、バンク選択信号Selが計算され、データ相互接続網16の第2の選択装置161に出力される。
【0054】
【数11】
Sel = Adrn / 8
【0055】
このとき、バンク選択信号SelはアドレスAdrnが0であることから0になる。データ相互接続網16の第2の選択装置161においては、バンク選択信号Selに従い、メモリバンク11−0とのデータ経路が選択される。
このとき、第2の制御信号ctrl2でメモリバンクとのデータ経路を選択するように第3の選択装置162に指定される。これにより、プロセッサ14からメモリバンク11−0のAdrc0=0に該当するデータにアクセスできる。
【0056】
上記の例のほかに、たとえばプロセッサ14で生成され転送されるアドレスAdrが8の場合、アドレス変換装置151のアドレス計算回路1514においてAdrn=8が計算される。
そして、第1の制御信号ctrl1で変換アドレスAdrnを選択するよう第1の選択装置152に指定される。これにより、第1の選択装置151でこの値が選択され、メモリバンク11−1のアドレスAdrc1=8にアクセスできる。
バンク選択計算回路1515において計算されるバンク選択信号Sel=1となり、データ相互接続網16の第2の選択装置161においては、バンク選択信号Selに従い、メモリバンク11−1とのデータ経路が選択される。
このとき、第2の制御信号ctrl2でメモリバンクとのデータ経路を選択するように第3の選択装置162に指定される。これにより、プロセッサ14からメモリバンク11−1のAdrc1=8に該当するデータにアクセスできる。
【0057】
次に、アドレス変換を行う場合のアクセスについて説明する。
ここでは、プロセッサ14が連続アドレスAdr0,1,2,3,…,47を生成するだけで、メモリへアクセスするアドレスAdrc0,8,1,9,…,16,24,17,25,…,31,32,…,39,47にできるためのアドレス変換について説明する。
【0058】
この場合、外部の制御系により、あるいはプロセッサ14により、第1パラメータXが値x=2、第2パラメータYが値y=8、第3のパラメータZが値z=8に設定されてアドレス変換装置151に供給される。
これにより、第1のレジスタ1511に2が設定され、第2のレジスタ1512に8が設定され、第3のレジスタ1513に8が設定される。
第1のレジスタ1511に設定された第1のパラメータX(値x=1)および第2のレジスタ1512に設定された第2のパラメータY(値y=8)がアドレス計算回路1514に供給される。また、第3のレジスタ1513に設定された第3のパラメータZ(値z=8)がバンク選択計算回路1515に供給される。
【0059】
アドレス計算回路1514においては、次式に従って変換後のアドレスが計算される。
【0060】
【数12】
Adrn = 8 * (Adr % 2) + (Adr % 16) / 2+ 16 * (Adr / 16)
【0061】
その結果、アドレス計算回路1514では、たとえばAdr=0のときAdrn=0、Adr=1のときAdrn=8、Adr=16のときAdrn=16、Adr=17のときAdrn=24などといった変換が行われる。
すなわち、プロセッサ14がAdrとして連続アドレス0,1,2,3,…,47を生成するだけで、メモリへアクセスするアドレスを0,8,1,9,…,16,24,17,25,…,31,32,…,39,47に変換することができる。
そして、第1の制御信号ctrl1で変換アドレスAdrnを選択するよう第1の選択装置152に指定される。これにより、第1の選択装置151でこの値が選択され、メモリバンク11−0のアドレスAdrc0=0、メモリバンク11−1のアドレスAdrc1=8、メモリバンク11−0のアドレスAdrc0=1、メモリバンク11−1のアドレスAdrc1=9、以下同様にして、メモリバンク11−4のアドレスAdrc4=39、メモリバンク11−5のアドレスAdrc5=47にアクセスできる。
【0062】
アドレス変換装置151は同時に、バンク選択計算回路1515において、次式に従って、バンク選択信号Selが計算され、データ相互接続網16の第2の選択装置161に出力される。
【0063】
【数13】
Sel = Adrn / 8
【0064】
このとき、たとえば生成アドレスAdrが1のとき変換アドレスAdrnは8となり、バンク選択信号Selは1となる。
そのため、データ相互接続網16の第2の選択装置161においては、バンク選択信号Selに従い、メモリバンク11−1とのデータ経路が選択される。
このとき、第2の制御信号ctrl2でメモリバンクとのデータ経路を選択するように第3の選択装置162に指定される。これにより、プロセッサ14からメモリバンク11−1のAdrc1=8に該当するデータにアクセスできる。
【0065】
なお、アドレス生成装置12−0〜12−5がアドレス生成を行う場合、Adr0〜Adr5がアドレス生成装置12−0〜12−5で生成される。
そして、第1の制御信号ctrl1でアドレスAdr0〜Adr5を選択するよう第1の選択装置152に指定される。これにより、第1の選択装置151でこの値が選択され、所望のメモリバンク11−0〜11−5の所望のアドレスAdrc0=0〜Adrc5=47にアクセスを行うことができる。
【0066】
以上説明したように、本第1の実施形態によれば、プロセッサ14とアドレス生成装置12−0〜12−5を、メモリバンク11−0〜11−5を選択的に接続するアドレス相互接続網15に、プロセッサ14により生成されたアドレスAdrを、このアドレスAdrと、メモリバンクの数に応じたあるいはメモリセット内のメモリバンクの数に応じた第1のパラメータX、並びにメモリバンクのアドレスの数に応じた第2のパラメータYに基づいて所定の規則性を持つアドレスAdrnに変換し、かつ変換アドレスおよびメモリバンクのアドレスの数に基づいた第3のパラメータZに基づいてバンク選択信号Selを生成し、データ相互接続網16に出力するアドレス変換装置151を設け、データ相互接続網16において、バンク選択信号Selに基づいてプロセッサ14とメモリバンク11−0〜11−5とのデータ経路を選択的に設定するようにしたので、以下の効果を得ることができる。
【0067】
すなわち、本第1の実施形態によれば、演算システムにおけるメモリアクセス性能を向上させることができる。
たとえば、プロセッサ14からメモリバンク11−0〜11−5にアクセスする場合のアドレスが、0,8,16,24,1,9,17,25,…,7,15,23,31である場合、アドレス変換装置151を用いることで所望のアクセス用アドレスを生成することができ、アドレス変換に加えてさらにアドレスに対応したデータの選択を行うことができる。
さらに、プロセッサ14からメモリバンク11−0〜11−5にアクセスする場合のアドレスが、たとえば0,8,1,9,2,10,…,7,15,16,24,17,25,…,23,31である場合、アドレス変換装置151が所望のアドレス変換を行うことができるため、プロセッサ14でアドレス変換を行う必要がない。そのため、プロセッサを使った演算とは別にアドレス計算を行っていた余計なサイクルを削減することが可能になる。
さらに、アドレス変換装置を1段設けるだけですむため、ハードウェア規模を削減することができ、コストを削減することも可能になる。
【0068】
第2実施形態
図6は、本発明に係る演算システムの第2の実施形態を示す構成図である。
【0069】
本第2の実施形態が上述第1の実施形態と異なる点は、メモリバンク11の要素数、アドレス生成装置12の要素数、演算装置13の要素数を6個ではなく、l×mに一般化した構成を有する点にある。
【0070】
本第2の実施形態においては、メモリバンク11−0〜11−l×m−1はnアドレスを持ち、m個のバンクでメモリセットMSを構成し、全部でl個のメモリセットから構成される。アドレス空間は0〜l×m×n−1 となる。
【0071】
アドレス相互接続網15Aは、図7に示すように、基本的には、図2と同様に、アドレス変換装置151および第1の選択装置152を有する。
すなわち、アドレス相互接続網15Aは、プロセッサ14からのアドレスAdr、アドレス生成装置12−0〜12−l×m−1からのアドレスAdr0〜Adr(l×m−1)を入力アドレスとし、第1の選択装置151で選択されるAdrc0〜Adrc(l×m−1)を出力アドレスとし、アドレス変換装置151で生成されたバンク選択信号Selをデータ相互接続網16に出力する。
アドレス相互接続網15Aは、プロセッサ14の生成アドレスAdrをアドレス変換装置151で変換し、その結果を第1の選択装置152に出力する。
そして、第1の制御信号ctrl1に従って変換アドレスAdrnまたはアドレス生成装置12−0〜12−l×m−1からのアドレスAdr0〜Adr(m*n-1) を選択して、各メモリバンク11−0〜11−l×m−1への出力アドレスAdrc0〜Adrc(l×m−1)を得る。
アドレス変換装置151は、図3と同様の構成、機能を有する。
【0072】
データ相互接続網16Aは、図8に示すように、基本的には、図5と同様に、第2の選択装置161および第3の選択装置162を有する。
すなわち、アドレス相互接続網15Aの第1の選択装置161は、プロセッサ14の入出力データDatと第2の選択装置162(複数のメモリバンク11−0〜11−l×m−1の入出力データDatc0〜Datcl×m−1、演算装置13−0〜13−l×m−1の入出力データDat0〜Datl×m−1)とのデータ経路をアドレス変換装置151によるバンク選択信号Selに基づいて選択的に接続する。
第2の選択装置162は、第2の制御信号ctrlに応じて演算装置13−0〜13−l×m−1の入出力データDat0〜Datl×m−1とメモリバンク11−0〜11−l×m−1の入出力データDatc0〜Datcl×m−1および/または第2の選択装置161(プロセッサ14の入出力データDat)とのデータ経路を選択的に接続する。
【0073】
次に、上記構成による動作をプロセッサ14がアドレスAdrを生成する場合を例に、アドレス変換装置の上記構成による動作を中心に説明する。
【0074】
まず、アドレス変換を行わない場合のアドレス生成について説明する。
この場合、外部の制御系により、あるいはプロセッサ14により、第1パラメータXが値x=1、第2パラメータYが値y=l*m*n、第3のパラメータZが値z=nに設定されてアドレス変換装置151に供給される。
これにより、第1のレジスタ1511に1が設定され、第2のレジスタ1512に(l*m*n)が設定され、第3のレジスタ1513にnが設定される。
第1のレジスタ1511に設定された第1のパラメータX(値x=1)および第2のレジスタ1512に設定された第2のパラメータY(値y=l*m*n)がアドレス計算回路1514に供給される。また、第3のレジスタ1513に設定された第3のパラメータZ(値z=n)がバンク選択計算回路1515に供給される。
【0075】
アドレス計算回路1514においては、次式に従ってアドレス計算が行われるが、この式によりアドレス変換は行われないことが分かる。
【0076】
【数14】
Adrn = l*m*n*(Adr % 1) + l*m*n*(Adr/(l*m*n)) + (Adr % (l*m*n))/1 = Adr
【0077】
プロセッサ14からメモリへアクセスを行うために、アドレスAdrが生成されてアドレス相互接続網15Aに出力され、アドレス変換回路151に入力される。
このとき、たとえば生成Adrが0の場合、上式を使って計算するとAdrn=0となる。
そして、第1の制御信号ctrl1で変換アドレスAdrnを選択するよう第1の選択装置152に指定される。これにより、第1の選択装置151でこの値が選択され、メモリバンク11−0のアドレスAdrc0=0にアクセスを行うことができる。
【0078】
アドレス変換装置151は同時に、バンク選択計算回路1515において、次式に従って、バンク選択信号Selが計算され、データ相互接続網16の第2の選択装置161に出力される。
【0079】
【数15】
Sel = Adrn / n
【0080】
このとき、バンク選択信号SelはアドレスAdrnが0であることから0になる。データ相互接続網16の第2の選択装置161においては、バンク選択信号Selに従い、メモリバンク11−0とのデータ経路が選択される。
このとき、第2の制御信号ctrl2でメモリバンクとのデータ経路を選択するように第3の選択装置162に指定される。これにより、プロセッサ14からメモリバンク11−0のAdrc0=0に該当するデータにアクセスできる。
【0081】
次にアドレス変換を行う場合について説明する。
ここでは、プロセッサ14が、
連続アドレス〔0,1,…n-1, n, …, (m-1)*n, (m-1)*n+1, …(m-1)*n+n-1,…,(l-1)*m*n,1+(l-1)*m*n,…n-1+(l-1)*m*n,…(m-1)*n+(l-1)*m*n,(m-1)*n+1+(l-1)*m*n,…(m-1)*n+n-1+(l-1)*m*n 〕
を生成するだけで、メモリへアクセスするアドレスを
〔0,…(m-1)*n, 1, …(m-1)*n+1,…n-1,…(m-1)*n+n-1 ,…,(l-1)*m*n,…(m-1)*n+(l-1)*m*n, 1+(l-1)*m*n, …(m-1)*n+1+(l-1)*m*n,…n-1+(l-1)*m*n,…(m-1)*n+n-1+(l-1)*m*n 〕
にできるためのアドレス変換について説明する。
【0082】
この場合、外部の制御系により、あるいはプロセッサ14により、第1パラメータXが値x=m、第2パラメータYが値y=n、第3のパラメータZが値z=nに設定されてアドレス変換装置151に供給される。
これにより、第1のレジスタ1511にmが設定され、第2のレジスタ1512にnが設定され、第3のレジスタ1513にnが設定される。
第1のレジスタ1511に設定された第1のパラメータX(値x=m)および第2のレジスタ1512に設定された第2のパラメータY(値y=n)がアドレス計算回路1514に供給される。また、第3のレジスタ1513に設定された第3のパラメータZ(値z=n)がバンク選択計算回路1515に供給される。
【0083】
アドレス計算回路1514においては、次式に従ってアドレス計算が行われる。
【0084】
【数16】
Adrn = n * (Adr % m) + (Adr % (m*n)) / m+ (m*n) * (Adr / (m*n))
【0085】
その結果、たとえばAdr=0のときAdrn=0、Adr=1のときAdrn=nn 、Adr=m*nのときAdrn=m*n 、Adr=m*n+1のときAdrn=n+m*n 、Adr=(l-1)*m*nのときAdrn=(l-1)*m*n 、Adr=(l-1)*m*n+1のときAdrn=n+(l-1)*m*n などといった変換が行われる。
まとめると連続アドレス
0,1,…n-1, n, …, (m-1)*n, (m-1)*n+1, …(m-1)*n+n-1,…, (l-1)*m*n,1+(l-1)*m*n,…n-1+(l-1)*m*n,…(m-1)*n+(l-1)*m*n,(m-1)*n+1+(l-1)*m*n,…(m-1)*n+n-1+(l-1)*m*n
を生成するだけで、メモリへアクセスするアドレスAdrnを
0,…(m-1)*n, 1, …(m-1)*n+1,…n-1,…(m-1)*n+n-1 ,…,(l-1)*m*n,…(m-1)*n+(l-1)*m*n, 1+(l-1)*m*n, …(m-1)*n+1+(l-1)*m*n,…n-1+(l-1)*m*n,…(m-1)*n+n-1+(l-1)*m*n
に変換できる。
【0086】
そして、第1の制御信号ctrl1で変換アドレスAdrnを選択するよう第1の選択装置152に指定される。これにより、第1の選択装置151でこの値が選択され、該当するメモリのアドレスAdrc0 〜Adrc(l*m-1) を生成できる。
【0087】
アドレス変換装置151は同時に、バンク選択計算回路1515において、次式に従って、バンク選択信号Selが計算され、データ相互接続網16の第2の選択装置161に出力される。
【0088】
【数17】
Sel = Adrn / n
【0089】
このとき、Adr=1のときAdrn=nとなりバンク選択信号Selは1となる。データ相互接続網16の第2の選択装置161においては、バンク選択信号Selに従い、メモリバンク11−1とのデータ経路が選択される。
このとき、第2の制御信号ctrl2でメモリバンクとのデータ経路を選択するように第3の選択装置162に指定される。これにより、プロセッサ14からメモリバンク11−1のAdrc=nに該当するデータにアクセスできる。
【0090】
なお、アドレス生成装置12−0〜12−l×m−1がアドレス生成を行う場合、Adr0〜Adr5がアドレス生成装置12−0〜12−l×m−1で生成される。
そして、第1の制御信号ctrl1でアドレスAdr0〜Adrl×m−15を選択するよう第1の選択装置152に指定される。これにより、第1の選択装置151でこの値が選択される。
たとえばAdr0=0のときAdrc0=0であり、Adr1=8のときAdrc8=8となる。
【0091】
本第2の実施形態によれば、上述した第1の実施形態の効果と同様の効果を得ることができる。
【0092】
なお、第1および第2の実施形態においては、プロセッサ数が1で、プロセッサ14の生成するアドレスを変換する場合について説明しているが、アドレス生成装置の生成するアドレスを変換する場合や、プロセッサ数が複数の場合についても相互接続網の構成を変更するだけで、本発明を適用できることは明らかである。
【0093】
【発明の効果】
以上説明したように、本発明によれば、余計な処理サイクル数を削減でき、メモリアクセス性能を向上させることができる。
また、ハードウェア規模の低減を図れ、ひいてはコスト削減を図ることができる利点がある。
【図面の簡単な説明】
【図1】 本発明に係る演算システムの第1の実施形態を示す構成図である。
【図2】 本第1の実施形態に係るアドレス相互接続網の要部の具体的な構成例を示す図である。
【図3】 本実施形態に係るアドレス変換装置の具体的に構成例を示すブロック図である。
【図4】 演算式に基づくアドレス計算回路のアドレス変換例を示す図である。
【図5】 本第1の実施形態に係るデータ相互接続網の具体的な構成例を示すブロック図である。
【図6】 本発明に係る演算システムの第2の実施形態を示す構成図である。
【図7】 本第2の実施形態に係るアドレス相互接続網の要部の具体的な構成例を示す図である。
【図8】 本第2の実施形態に係るデータ相互接続網の具体的に構成例を示すブロック図である。
【符号の説明】
10,10A…演算システム、11−0〜11−5…メモリバンク(MBNK)、12−0〜12−5…アドレス生成装置(ADRG)、13−0〜13−5…演算装置(OP)、14…プロセッサ(PRC)、15,15A…アドレス相互接続網(ACNCT)、151…アドレス変換装置(ACNV)、152…第1の選択装置(SEL)、16,16A…データ相互接続網(DCNCT)、161…第2の選択装置(SEL)、162…第3の選択装置(SEL)[0001]
BACKGROUND OF THE INVENTION
The present invention relates to an arithmetic system including a plurality of memory banks that store data related to arithmetic operations, a processor, and an address interconnection network that interconnects the processor and each memory bank.
[0002]
[Prior art]
In an arithmetic system including an address interconnection network that couples a processor and an address generation device to a memory and a data interconnection network that couples a processor and an arithmetic unit to a memory, for example, the memory has a bank BNK0, an address adr8 assigned to addresses adr0-7. Bank BNK1 assigned to .about.15, bank BNK2 assigned to addresses adr16 to 23, and bank BNK3 assigned to addresses adr24 to 31.
In this case, when the address for accessing the memory from the processor is adr0, 8, 16, 24, 1, 9, 17, 25,..., 7, 15, 23, 31, this is described in
[0003]
[Patent Document 1]
Japanese Patent Laid-Open No. 2000-163316
[Problems to be solved by the invention]
However, in this method, only address conversion is performed, and data corresponding to the address must be selected by another means.
Further, when the address when accessing the memory from the processor is, for example, adr0, 8, 16, 24, 1, 9, 17, 25,..., 7, 15, 23, 31, Since desired address translation is not performed, it is necessary to perform address calculation by the processor.
In this case, addresses such as 0, 8, 16, 24, 1, 9, 17, 25,..., 7, 15, 23, 31 cannot be generated only by using the simple address automatic generation function of the processor. .
Therefore, it is necessary to perform address calculation separately from the calculation using the processor, and there is a disadvantage that the number of processing cycles is extra for the generation of addresses than the number of cycles required for the calculation.
[0005]
In addition, the method disclosed in
[0006]
The present invention has been made in view of such circumstances, and its object is to reduce the number of extra processing cycles, improve memory access performance, reduce the hardware scale, and thus cost. An object of the present invention is to provide an arithmetic system capable of reducing the amount.
[0007]
[Means for Solving the Problems]
In order to achieve the above object, an arithmetic system according to the first aspect of the present invention has a function of generating a plurality of memory banks to which a predetermined range of addresses in an address space is assigned, storing data related to the arithmetic operation, and consecutive addresses. And an address interconnection network that interconnects at least the processor and the plurality of memory banks, and the address interconnection network transmits the address generated by the processor to the address and at least the based on the parameter according to the number of memory banks includes an address converter for converting the address with a predetermined regularity, the translated address by the address translator, and supplied to the memory bank including the translated address, the The address translation device includes an address generated by the processor and an upper Address conversion can be performed based on a first parameter according to the number of memory banks and a second parameter based on the number of addresses in the memory bank, and the address conversion method is the first parameter and It can be changed according to the setting of the second parameter, and at least the first register in which the first parameter is set, the second register in which at least the second parameter is set, and the first An address calculation circuit for calculating a translation address based on a first parameter set in the second register, a second parameter set in the second register, and an address generated by the processor, and The address calculation circuit sets the value of the first parameter set in the first register to x and the second register. The value of the second parameter set is y, the percent modulo operation / is to represent the integer division, calculates the conversion address Adrn according to the following equation (6).
[Formula 6]
Adrn = y * (Adr% x) + x * y * (Adr / (x * y)) + (Adr% (x * y)) / x
[0008]
In the present invention, the plurality of memory banks are divided into at least a plurality of memory sets including one or a plurality of memory banks, and the address conversion device includes an address generated by the processor and a memory bank in the memory set. The address conversion is performed based on a parameter corresponding to the number of.
[0010]
Preferably, a data interconnection network for selectively connecting at least data paths between the processor and the plurality of memory banks based on a bank selection signal is provided, and the address translation device includes the translation address and the memory bank. The bank selection signal is generated based on a third parameter based on the number of addresses and output to the data interconnection network.
[0012]
Preferably, in the address translation device, at least a first register in which the first parameter is set, a second register in which at least the second parameter is set, and the third parameter are set. The conversion address is calculated based on the third register, the first parameter set in the first register, the second parameter set in the second register, and the address generated by the processor. Bank selection calculation for generating the bank selection signal on the basis of a third parameter based on the number of addresses calculated by the address calculation circuit and the conversion address by the address calculation circuit and the number of addresses in the memory bank, and outputting to the data interconnection network Circuit.
[0013]
In the present invention, the address calculation circuit sets x as the value of the first parameter set in the first register, y as the value of the second parameter set in the second register, and% is modulo. When the operation / represents integer division, the conversion address Adrn is calculated according to the following equation ( 7) , and the bank selection calculation circuit sets the value of the
[0014]
[ Expression 7 ]
Adrn = y * (Adr% x) + x * y * (Adr / (x * y)) + (Adr% (x * y)) / x
[0015]
[ Equation 8 ]
Sel = Adrn / z
[0016]
The address calculation circuit outputs the input address as it is when a parameter relating to the number of addresses set for the address space is set in the first register and the second register.
[0017]
Preferably, the address interconnection network selects either a translation address by the address translation device or an externally supplied address according to a control signal and supplies the selected address to the memory bank including the selected address. Having a selection device.
[0018]
The data interconnection network includes a selection device that selectively connects data paths between the external device and the plurality of memory banks according to a control signal.
[0019]
According to a second aspect of the present invention, there are provided a plurality of memory banks to which a predetermined range of addresses in an address space are assigned and storing data relating to operations, a processor having a function of generating consecutive addresses, and at least one address generation device At least one arithmetic unit, an address interconnection network for interconnecting the processor, the plurality of memory banks, and the address generation unit, and the processor, the plurality of memory banks, and the arithmetic unit are interconnected. A data interconnection network, wherein the address interconnection network converts the address generated by at least the processor into an address having a predetermined regularity based on the address and at least a parameter corresponding to the number of the memory banks. Convert, the number of the converted address and the address of the memory bank An address translation device that generates a bank selection signal based on the parameter based on the parameter and outputs the bank selection signal to the data interconnection network; A first selection device that selects any one of the addresses and supplies the selected memory bank to the memory bank including the selected address, wherein the address conversion device includes the address generated by the processor and the memory bank Address conversion can be performed based on a first parameter corresponding to the number of addresses and a second parameter based on the number of addresses in the memory bank, and the address conversion method is the first parameter and the second parameter. 2 can be changed according to the setting of two parameters, and the data interconnection network is connected to the processor. A second selection device that selectively connects data paths with a plurality of memory banks based on a bank selection signal, and a data path between the arithmetic device and the plurality of memory banks according to a second control signal. possess a third selection device for selectively connecting the said address translator includes a first register in which at least the first parameter is set, the second at least the second parameter is set A register, a third register in which a third parameter is set, a first parameter set in the first register, a second parameter set in the second register, and the processor An address calculation circuit for calculating a conversion address based on the generated address, a conversion address by the address calculation circuit, and an address of the memory bank A bank selection calculation circuit for generating the bank selection signal based on a third parameter based on the number of memory cells and outputting the bank selection signal to the data interconnection network. The address calculation circuit is connected to the first register. When the value of the first parameter to be set is x, the value of the second parameter set to the second register is y,% is a modulo operation, and / is an integer division, the conversion address Adrn When the bank selection calculation circuit sets z as the value of the third parameter set in the third register and / indicates integer division, the bank selection signal Sel Is calculated according to the following equation (10).
[Equation 9]
Adrn = y * (Adr% x) + x * y * (Adr / (x * y)) + (Adr% (x * y)) / x
[Expression 10]
Sel = Adrn / z
[0020]
According to the present invention, for example, continuous addresses are generated in a processor and input to an address translation device of an address interconnection network.
In the address conversion device, the address generated by the processor is converted into an address having a predetermined regularity based on the address and at least a parameter corresponding to the number of memory banks.
The converted address is supplied to the memory bank including the converted address via the connection network of the address interconnection network.
For example, in the address conversion device, a first parameter corresponding to the number of memory banks is set in the first register, and a second parameter based on the number of addresses in the memory bank is set in the second register.
In the address calculation circuit, an address generated by the processor is a predetermined arithmetic expression using the address, the first parameter set in the first register, and the second parameter set in the second register. As required.
In the address translation device, a third parameter based on the number of addresses in the memory bank is set in the third register. Then, in the bank selection circuit, a bank selection signal is generated based on the conversion address by the address calculation circuit and the third parameter set in the third register, and is output to the data interconnection network.
In the data interconnection network, data paths between a processor and a plurality of memory banks are selectively connected based on a bank selection signal.
[0021]
DETAILED DESCRIPTION OF THE INVENTION
First Embodiment FIG. 1 is a configuration diagram showing a first embodiment of an arithmetic system according to the present invention.
[0022]
As shown in FIG. 1, the
[0023]
The memory banks 11-0 to 11-5 store data related to operations. For example, in the first embodiment, assuming that the address space has 48 addresses adr0 to adr47, each is divided into 6 equal parts. For example, two memory banks constitute one memory set, and three memory sets are constituted as a whole.
[0024]
The memory bank 11-0 is assigned eight addresses adr0 to adr7 as the memory address Adrc0.
The memory bank 11-1 is assigned eight addresses adr8 to adr15 as the memory address Adrc1.
The memory bank 11-2 is assigned eight addresses adr16 to adr23 as the memory address Adrc2.
The memory bank 11-3 is assigned eight addresses adr24 to adr31 as the memory address Adrc3.
The memory bank 11-4 is assigned eight addresses adr32 to adr39 as the memory address Adrc4.
The memory bank 11-5 is assigned eight addresses adr40 to adr47 as the memory address Adrc5.
[0025]
The address generator 12-0 generates an address Adr0 corresponding to the memory address Adrc0 (adr0 to adr7) of the memory bank 11-0, for example, according to an instruction from a control system (not shown), and outputs it to the
The address generation device 12-1 generates an address Adr1 corresponding to the memory address Adr1 (adr8 to adr15) of the memory bank 11-1 according to an instruction of a control system (not shown), for example, and outputs it to the
The address generation device 12-2 generates an address Adr2 corresponding to the memory address Adr2 (adr16 to adr23) of the memory bank 11-2, for example, according to an instruction of a control system (not shown), and outputs it to the
The address generation device 12-3 generates an address Adr3 corresponding to the memory address Adr3 (adr24 to adr31) of the memory bank 11-3, for example, according to an instruction from a control system (not shown), and outputs it to the
The address generation device 12-4 generates an address Adr4 corresponding to the memory address Adr4 (adr32 to adr39) of the memory bank 11-4, for example, according to an instruction from a control system (not shown), and outputs it to the
The address generation device 12-5 generates an address Adr5 corresponding to the memory address Adr5 (adr40 to adr47) of the memory bank 11-5, for example, according to an instruction of a control system (not shown), and outputs it to the
[0026]
The arithmetic devices 13-0 to 13-5 perform, for example, an operation according to an instruction of a control system (not shown) on the data transferred via the
[0027]
The
The
[0028]
The
[0029]
FIG. 2 is a diagram showing a specific configuration example of a main part of the address interconnection network according to the first embodiment.
[0030]
As shown in FIG. 2, the
[0031]
The
[0032]
Further, when address translation is not performed, the
[0033]
FIG. 3 is a block diagram showing a specific configuration example of the address translation apparatus according to the present embodiment.
[0034]
As shown in FIG. 3, the
Note that the
[0035]
The
[0036]
[Equation 8]
Adrn = y * (Adr% x) + x * y * (Adr / (x * y)) + (Adr% (x * y)) / x
[0037]
FIGS. 4A and 4B are diagrams showing an example of address conversion of the
[0038]
As shown in FIG. 4A, the
The continuous address Adr is converted into an address Adrn as shown in FIG. 4B by the
This regularity is determined by the memory set MS0 constituted by the memory banks 11-0 and 11-1 constituting the memory sets MS0, MS1 and MS2, the memory set MS1 constituted by the memory banks 11-2 and 11-3, In each memory set of the memory set MS2 constituted by the memory banks 11-4 and 11-5, it is defined so that the addresses are alternately arranged from the smaller address of the memory banks.
[0039]
Specifically, in the memory set MS0, as shown in FIGS. 4A and 4B, the generated address Adr0 becomes the address Adrn0 after conversion, the generated address Adr1 becomes the address Adrn8 after conversion, and the generated address Adr2 Becomes the address Adrn1 after conversion, the generation address Adr3 becomes the address Adrn9 after conversion, the generation address Adr4 becomes the address Adrn2 after conversion, the generation address Adr5 becomes the address Adrn10 after conversion, and the generation address Adr6 becomes the address Adrn3 after conversion The generated address Adr7 is converted to the address Adrn11, the generated address Adr8 is converted to the address Adrn4, the generated address Adr9 is converted to the address Adrn12, and the generated address Adr10 is changed. After that, the address Adrn5 is generated, the generated address Adr11 is converted to the address Adrn13, the generated address Adr12 is converted to the address Adrn6, the generated address Adr13 is converted to the address Adrn14, and the generated address Adr14 is converted to the address Adrn7. The generated address Adr15 becomes the address Adrn15 even after conversion.
[0040]
In the memory set MS1, as shown in FIGS. 4A and 4B, the generated address Adr16 becomes the address Adrn16 after conversion, the generated address Adr17 becomes the address Adrn24 after conversion, and the generated address Adr18 becomes the address after conversion. The generated address Adr19 is converted to the address Adrn25, the generated address Adr20 is converted to the address Adrn18, the generated address Adr21 is converted to the address Adrn26, the generated address Adr22 is converted to the address Adrn19, and the generated address Adr23 is generated. Is converted to address Adrn27, generated address Adr24 is converted to address Adrn20, and generated address Adr25 is converted to address Adrn28. The address Adr26 becomes the address Adrn21 after conversion, the generation address Adr27 becomes the address Adrn29 after conversion, the generation address Adr28 becomes the address Adrn22 after conversion, the generation address Adr29 becomes the address Adrn30 after conversion, and the generation address Adr30 becomes after the conversion The address Adrn23 is generated, and the generated address Adr31 becomes the address Adrn31 after conversion.
[0041]
In the memory set MS2, as shown in FIGS. 4A and 4B, the generated address Adr32 becomes the address Adrn32 after conversion, the generated address Adr33 becomes the address Adrn40 after conversion, and the generated address Adr34 becomes the address after conversion. The generated address Adr35 is converted to the address Adrn41, the generated address Adr36 is converted to the address Adrn34, the generated address Adr37 is converted to the address Adrn42, the generated address Adr38 is converted to the address Adrn35, and the generated address Adr39 is generated. Becomes the address Adrn43 after conversion, the generation address Adr40 becomes the address Adrn36 after conversion, and the generation address Adr41 becomes the address Adrn44 after conversion. The address Adr42 is converted to an address Adrn37, the generated address Adr43 is converted to an address Adrn45, the generated address Adr44 is converted to an address Adrn38, the generated address Adr45 is converted to an address Adrn46, and the generated address Adr46 is converted to a converted address Adr46. The address Adrn39 is generated, and the generated address Adr47 becomes the address Adrn47 even after conversion.
[0042]
The bank
[Equation 9]
Sel = Adrn / z
[0044]
The
[0045]
The
[0046]
Figure 5 is a block diagram showing a specific configuration example of a data interconnect network according to the first embodiment.
[0047]
As shown in FIG. 5, the
The
The
[0048]
Next, the operation of the above-described configuration will be described focusing on the operation of the above-described configuration of the address translation device, taking as an example the case where the
[0049]
First, address generation when no address translation is performed will be described.
In this case, the address conversion is performed by setting the first parameter X to the value x = 1, the second parameter Y to the value y = 48, and the third parameter Z to the value z = 8 by an external control system or by the
As a result, 1 is set in the
The first parameter X (value x = 1) set in the
[0050]
The
[0051]
[Expression 10]
Adrn = 48 * (Adr% 1) + (Adr% 48) / 1+ 48 * (Adr / 48) = Adr
[0052]
In order to access the memory from the
At this time, for example, when the generated Adr is 0, Adrn = 0 when calculated using the above equation.
Then, the
[0053]
At the same time, the
[0054]
## EQU11 ##
Sel = Adrn / 8
[0055]
At this time, the bank selection signal Sel becomes 0 because the address Adrn is 0. In the
At this time, the
[0056]
In addition to the above example, when the address Adr generated and transferred by the
Then, the
The bank selection signal Sel = 1 calculated by the bank
At this time, the
[0057]
Next, access when address conversion is performed will be described.
Here, the
[0058]
In this case, the address conversion is performed by setting the first parameter X to the value x = 2, the second parameter Y to the value y = 8, and the third parameter Z to the value z = 8 by the external control system or by the
As a result, 2 is set in the
The first parameter X (value x = 1) set in the
[0059]
The
[0060]
[Expression 12]
Adrn = 8 * (Adr% 2) + (Adr% 16) / 2+ 16 * (Adr / 16)
[0061]
As a result, the
That is, the
Then, the
[0062]
At the same time, the
[0063]
[Formula 13]
Sel = Adrn / 8
[0064]
At this time, for example, when the generation address Adr is 1, the conversion address Adrn is 8, and the bank selection signal Sel is 1.
Therefore, in the
At this time, the
[0065]
When the address generation devices 12-0 to 12-5 generate addresses, Adr0 to Adr5 are generated by the address generation devices 12-0 to 12-5.
Then, the
[0066]
As described above, according to the first embodiment, the
[0067]
That is, according to the first embodiment, the memory access performance in the arithmetic system can be improved.
For example, when the addresses when accessing the memory banks 11-0 to 11-5 from the
Further, the addresses when the
Furthermore, since only one address translation device is required, the hardware scale can be reduced and the cost can be reduced.
[0068]
Second Embodiment FIG. 6 is a configuration diagram showing a second embodiment of the arithmetic system according to the present invention.
[0069]
The difference between the second embodiment and the first embodiment is that the number of elements in the
[0070]
In the second embodiment, the memory banks 11-0 to 11-1 × m−1 have n addresses, and m banks constitute a memory set MS, which is composed of l memory sets in total. The The address space is 0 to l × m × n−1.
[0071]
As shown in FIG. 7, the
That is, the
The
Then, according to the first control signal ctrl1, the translation address Adrn or the addresses Adr0 to Adr (m * n-1) from the address generators 12-0 to 12-l × m-1 are selected, and each memory bank 11- Output addresses Adrc0 to Adrc (l × m−1) to 0 to 11−1 × m−1 are obtained.
The
[0072]
As shown in FIG. 8, the
That is, the
The
[0073]
Next, the operation of the above-described configuration will be described focusing on the operation of the above-described configuration of the address translation device, taking as an example the case where the
[0074]
First, address generation when no address translation is performed will be described.
In this case, the first parameter X is set to the value x = 1, the second parameter Y is set to the value y = 1 * m * n, and the third parameter Z is set to the value z = n by the external control system or the
As a result, 1 is set in the
The first parameter X (value x = 1) set in the
[0075]
In the
[0076]
[Expression 14]
Adrn = l * m * n * (Adr% 1) + l * m * n * (Adr / (l * m * n)) + (Adr% (l * m * n)) / 1 = Adr
[0077]
In order to access the memory from the
At this time, for example, when the generated Adr is 0, Adrn = 0 when calculated using the above equation.
Then, the
[0078]
At the same time, the
[0079]
[Expression 15]
Sel = Adrn / n
[0080]
At this time, the bank selection signal Sel becomes 0 because the address Adrn is 0. In the
At this time, the
[0081]
Next, a case where address conversion is performed will be described.
Here, the
Consecutive addresses [0,1,… n-1, n,…, (m-1) * n, (m-1) * n + 1,… (m-1) * n + n-1,…, ( l-1) * m * n, 1 + (l-1) * m * n, ... n-1 + (l-1) * m * n, ... (m-1) * n + (l-1) * m * n, (m-1) * n + 1 + (l-1) * m * n, ... (m-1) * n + n-1 + (l-1) * m * n]
To generate the address to access the memory [0, ... (m-1) * n, 1, ... (m-1) * n + 1, ... n-1, ... (m-1) * n + n-1, ..., (l-1) * m * n, ... (m-1) * n + (l-1) * m * n, 1+ (l-1) * m * n, ... (m -1) * n + 1 + (l-1) * m * n, ... n-1 + (l-1) * m * n, ... (m-1) * n + n-1 + (l-1 ) * m * n]
The address conversion that can be performed will be described.
[0082]
In this case, the first parameter X is set to the value x = m, the second parameter Y is set to the value y = n, and the third parameter Z is set to the value z = n by the external control system or the
Thus, m is set in the
The first parameter X (value x = m) set in the
[0083]
The
[0084]
[Expression 16]
Adrn = n * (Adr% m) + (Adr% (m * n)) / m + (m * n) * (Adr / (m * n))
[0085]
As a result, for example, when Adr = 0, Adrn = 0, when Adr = 1, Adrn = nn, when Adr = m * n, Adrn = m * n, when Adr = m * n + 1, Adrn = n + m * n, Adr = (l-1) * m * n, Adrn = (l-1) * m * n, Adr = (l-1) * m * n + 1, Adrn = n + (l-1) Conversions such as * m * n are performed.
To summarize, continuous address
0,1,… n-1, n,…, (m-1) * n, (m-1) * n + 1,… (m-1) * n + n-1,…, (l-1 ) * m * n, 1 + (l-1) * m * n, ... n-1 + (l-1) * m * n, ... (m-1) * n + (l-1) * m * n , (m-1) * n + 1 + (l-1) * m * n, ... (m-1) * n + n-1 + (l-1) * m * n
Simply generate the address Adrn to access the memory.
0, ... (m-1) * n, 1, ... (m-1) * n + 1, ... n-1, ... (m-1) * n + n-1, ..., (l-1) * m * n,… (m-1) * n + (l-1) * m * n, 1+ (l-1) * m * n,… (m-1) * n + 1 + (l-1) * m * n, ... n-1 + (l-1) * m * n, ... (m-1) * n + n-1 + (l-1) * m * n
Can be converted to
[0086]
Then, the
[0087]
At the same time, the
[0088]
[Expression 17]
Sel = Adrn / n
[0089]
At this time, when Adr = 1, Adrn = n and the bank selection signal Sel becomes 1. In the
At this time, the
[0090]
When the address generation devices 12-0 to 12-l × m−1 perform address generation, Adr0 to Adr5 are generated by the address generation devices 12-0 to 12-l × m−1.
Then, the
For example, when Adr0 = 0, Adrc0 = 0, and when Adr1 = 8, Adrc8 = 8.
[0091]
According to the second embodiment, the same effect as that of the first embodiment described above can be obtained.
[0092]
In the first and second embodiments, the case where the number of processors is 1 and the address generated by the
[0093]
【The invention's effect】
As described above, according to the present invention, the number of unnecessary processing cycles can be reduced, and the memory access performance can be improved.
Further, there is an advantage that the hardware scale can be reduced and the cost can be reduced.
[Brief description of the drawings]
FIG. 1 is a configuration diagram showing a first embodiment of an arithmetic system according to the present invention.
FIG. 2 is a diagram showing a specific configuration example of a main part of the address interconnection network according to the first embodiment.
FIG. 3 is a block diagram illustrating a specific configuration example of an address translation device according to the present embodiment.
FIG. 4 is a diagram illustrating an example of address conversion of an address calculation circuit based on an arithmetic expression.
5 is a block diagram showing a specific configuration example of a data interconnect network according to the first embodiment.
FIG. 6 is a block diagram showing a second embodiment of the arithmetic system according to the present invention.
FIG. 7 is a diagram illustrating a specific configuration example of a main part of an address interconnection network according to the second embodiment.
FIG. 8 is a block diagram showing a specific configuration example of a data interconnection network according to the second embodiment.
[Explanation of symbols]
DESCRIPTION OF
Claims (11)
連続するアドレスを生成する機能を有するプロセッサと、
少なくとも上記プロセッサと上記複数のメモリバンクとを相互に接続するアドレス相互接続網と
を有し、
上記アドレス相互接続網は、
上記プロセッサにより生成されたアドレスを、当該アドレスと少なくとも上記メモリバンクの数に応じたパラメータに基づいて所定の規則性を持つアドレスに変換するアドレス変換装置を有し、
上記アドレス変換装置による変換アドレスを、当該変換アドレスを含む上記メモリバンクに供給し、
上記アドレス変換装置は、
上記プロセッサにより生成されたアドレスと、上記メモリバンクの数に応じた第1のパラメータおよび上記メモリバンクのアドレスの数に基づいた第2のパラメータに基づいてアドレス変換を行うことが可能で、かつ、アドレス変換方式が上記第1のパラメータおよび上記第2のパラメータの設定に応じて変更可能であり、
少なくとも上記第1のパラメータがセットされる第1のレジスタと、
少なくとも上記第2のパラメータがセットされる第2のレジスタと、
上記第1のレジスタにセットされた第1のパラメータ、上記第2のレジスタにセットされた第2のパラメータ、および上記プロセッサで生成されたアドレスに基づいて変換アドレスを計算するアドレス計算回路と、を含み、
上記アドレス計算回路が、
上記第1のレジスタに設定される第1のパラメータの値をx、上記第2のレジスタに設定される第2のパラメータの値をyとし、%がモジュロ演算、/が整数の除算を表すときに、変換アドレスAdrnを下記数1式に従って計算する
【数1】
Adrn = y * (Adr % x) + x*y* (Adr / (x*y)) + (Adr % (x*y)) / x
演算システム。A plurality of memory banks that are assigned a predetermined range of addresses in the address space and store data related to operations;
A processor having a function of generating consecutive addresses;
An address interconnection network for interconnecting at least the processor and the plurality of memory banks;
The address interconnection network is
An address conversion device that converts the address generated by the processor into an address having a predetermined regularity based on the address and at least a parameter corresponding to the number of the memory banks;
Supplying a translation address by the address translation device to the memory bank including the translation address;
The address translation device
It is possible to perform address conversion based on an address generated by the processor, a first parameter according to the number of memory banks, and a second parameter based on the number of addresses in the memory bank, and The address translation method can be changed according to the setting of the first parameter and the second parameter ,
A first register in which at least the first parameter is set;
A second register in which at least the second parameter is set;
An address calculation circuit for calculating a translation address based on a first parameter set in the first register, a second parameter set in the second register, and an address generated by the processor; Including
The address calculation circuit is
When the value of the first parameter set in the first register is x, the value of the second parameter set in the second register is y,% indicates a modulo operation, and / indicates an integer division Next, the conversion address Adrn is calculated according to the following equation (1).
Adrn = y * (Adr% x) + x * y * (Adr / (x * y)) + (Adr% (x * y)) / x
Arithmetic system.
上記アドレス変換装置は、上記プロセッサにより生成されたアドレスと、上記メモリセット内のメモリバンクの数に応じたパラメータに基づいてアドレス変換を行う
請求項1記載の演算システム。The plurality of memory banks are divided into at least a plurality of memory sets including one or more memory banks,
The arithmetic system according to claim 1, wherein the address conversion device performs address conversion based on an address generated by the processor and a parameter corresponding to the number of memory banks in the memory set.
アドレス変換装置は、上記変換アドレスおよび上記メモリバンクのアドレスの数に基づいた第3のパラメータに基づいて上記バンク選択信号を生成し、上記データ相互接続網に出力する
請求項1または2記載の演算システム。A data interconnection network for selectively connecting data paths between at least the processor and the plurality of memory banks based on a bank selection signal;
Address converting apparatus generates the bank selection signal based on the third parameter based on the number of addresses of the translated address and the memory banks, the calculation of claim 1, wherein output to the data interconnect network system.
アドレス変換装置は、
上記変換アドレスおよび上記メモリバンクのアドレスの数に基づいた第3のパラメータがセットされる第3のレジスタと、
上記アドレス計算回路による変換アドレスおよび上記メモリバンクのアドレスの数に基づいた第3のパラメータに基づいて上記バンク選択信号を生成し、上記データ相互接続網に出力するバンク選択計算回路と、をさらに有する
請求項3記載の演算システム。A data interconnection network for selectively connecting data paths between at least the processor and the plurality of memory banks based on a bank selection signal;
Address translation device
A third register in which a third parameter based on the translation address and the number of addresses in the memory bank is set;
A bank selection calculation circuit that generates the bank selection signal based on a third parameter based on the conversion address by the address calculation circuit and the number of addresses in the memory bank, and outputs the bank selection signal to the data interconnection network; The arithmetic system according to claim 3.
上記第1のレジスタに設定される第1のパラメータの値をx、上記第2のレジスタに設定される第2のパラメータの値をyとし、%がモジュロ演算、/が整数の除算を表すときに、上記変換アドレスAdrnを下記数2式に従って計算し、
上記バンク選択計算回路が、
上記第3のレジスタに設定される第3のパラメータ3の値をzとし、/が整数の除算を表すときに、上記バンク選択信号Selを下記数3式に従って計算する
【数2】
Adrn = y * (Adr % x) + x*y* (Adr / (x*y)) + (Adr % (x*y)) / x
【数3】
Sel = Adrn / z
請求項4記載の演算システム。The address calculation circuit is
When the value of the first parameter set in the first register is x, the value of the second parameter set in the second register is y,% indicates a modulo operation, and / indicates an integer division Then, the conversion address Adrn is calculated according to the following equation (2):
The bank selection calculation circuit is
When the value of the third parameter 3 set in the third register is z and / represents an integer division, the bank selection signal Sel is calculated according to the following equation (3).
Adrn = y * (Adr% x) + x * y * (Adr / (x * y)) + (Adr% (x * y)) / x
[Equation 3]
Sel = Adrn / z
The arithmetic system according to claim 4 .
請求項3から5のいずれか一に記載の演算システム。The arithmetic system according to any one of claims 3 to 5, wherein the data interconnection network includes a selection device that selectively connects data paths between an external device and the plurality of memory banks in accordance with a control signal.
請求項1から6のいずれか一に記載の演算システム。The address calculation circuit outputs an input address as it is when a parameter relating to the number of addresses set for the address space is set in the first register and the second register . The arithmetic system described in 1 .
請求項1から7のいずれか一に記載の演算システム。The address interconnection network selects either a translation address by the address translation device or an externally supplied address according to a control signal, and supplies a selection device that supplies the selected memory bank to the memory bank. The arithmetic system according to any one of claims 1 to 7 .
連続するアドレスを生成する機能を有するプロセッサと、
少なくとも一つのアドレス生成装置と、
少なくとも一つの演算装置と、
上記プロセッサと上記複数のメモリバンクと上記アドレス生成装置を相互に接続するアドレス相互接続網と、
上記プロセッサと上記複数のメモリバンクと上記演算装置を相互に接続するデータ相互接続網と
を有し、
上記アドレス相互接続網は、
少なくとも上記プロセッサにより生成されたアドレスを、当該アドレスと少なくとも上記メモリバンクの数に応じたパラメータに基づいて所定の規則性を持つアドレスに変換し、上記変換アドレスおよび上記メモリバンクのアドレスの数に基づいたパラメータに基づいてバンク選択信号を生成し、上記データ相互接続網に出力するアドレス変換装置と、
第1の制御信号に応じて上記アドレス変換装置による変換アドレスまたは上記アドレス生成装置から供給されたアドレスのうちのいずれかを選択して、選択したアドレスを含む上記メモリバンクに供給する第1の選択装置と
を有し、
上記アドレス変換装置は、
上記プロセッサにより生成されたアドレスと、上記メモリバンクの数に応じた第1のパラメータおよび上記メモリバンクのアドレスの数に基づいた第2のパラメータに基づいてアドレス変換を行うことが可能で、かつ、アドレス変換方式が上記第1のパラメータおよび上記第2のパラメータの設定に応じて変更可能であり、
上記データ相互接続網は、
上記プロセッサと上記複数のメモリバンクとのデータ経路をバンク選択信号に基づいて選択的に接続する第2の選択装置と、
第2の制御信号に応じて上記演算装置と上記複数のメモリバンクとのデータ経路を選択的に接続する第3の選択装置と、を有し、
上記アドレス変換装置は、
少なくとも上記第1のパラメータがセットされる第1のレジスタと、
少なくとも上記第2のパラメータがセットされる第2のレジスタと、
第3のパラメータがセットされる第3のレジスタと、
上記第1のレジスタにセットされた第1のパラメータ、上記第2のレジスタにセットされた第2のパラメータ、および上記プロセッサで生成されたアドレスに基づいて変換アドレスを計算するアドレス計算回路と、
上記アドレス計算回路による変換アドレスおよび上記メモリバンクのアドレスの数に基づいた第3のパラメータに基づいて上記バンク選択信号を生成し、上記データ相互接続網に出力するバンク選択計算回路と、を含み、
上記アドレス計算回路が、
上記第1のレジスタに設定される第1のパラメータの値をx、上記第2のレジスタに設定される第2のパラメータの値をyとし、%がモジュロ演算、/が整数の除算を表すときに、上記変換アドレスAdrnを下記数4式に従って計算し、
上記バンク選択計算回路が、
上記第3のレジスタに設定される第3のパラメータの値をzとし、/が整数の除算を表すときに、上記バンク選択信号Selを下記数5式に従って計算する
【数4】
Adrn = y * (Adr % x) + x*y* (Adr / (x*y)) + (Adr % (x*y)) / x
【数5】
Sel = Adrn / z
演算システム。A plurality of memory banks that are assigned a predetermined range of addresses in the address space and store data related to operations;
A processor having a function of generating consecutive addresses;
At least one address generation device;
At least one computing device;
An address interconnection network interconnecting the processor, the plurality of memory banks, and the address generator;
A data interconnection network interconnecting the processor, the plurality of memory banks, and the arithmetic unit;
The address interconnection network is
At least an address generated by the processor is converted into an address having a predetermined regularity based on the address and at least a parameter corresponding to the number of memory banks, and based on the converted address and the number of addresses in the memory bank An address translation device that generates a bank selection signal based on the parameters and outputs to the data interconnection network;
A first selection for selecting either a translation address by the address translation device or an address supplied from the address generation device according to a first control signal and supplying the selected address to the memory bank including the selected address And the device
The address translation device
It is possible to perform address conversion based on an address generated by the processor, a first parameter according to the number of memory banks, and a second parameter based on the number of addresses in the memory bank, and The address translation method can be changed according to the setting of the first parameter and the second parameter,
The data interconnection network is
A second selection device for selectively connecting data paths between the processor and the plurality of memory banks based on a bank selection signal;
Third and selection device for selectively connecting the data path between the computing device and the plurality of memory banks in response to a second control signal, the possess,
The address translation device
A first register in which at least the first parameter is set;
A second register in which at least the second parameter is set;
A third register in which a third parameter is set;
An address calculation circuit for calculating a translation address based on a first parameter set in the first register, a second parameter set in the second register, and an address generated by the processor;
A bank selection calculation circuit that generates the bank selection signal based on a third parameter based on the conversion address by the address calculation circuit and the number of addresses in the memory bank, and outputs the bank selection signal to the data interconnection network,
The address calculation circuit is
When the value of the first parameter set in the first register is x, the value of the second parameter set in the second register is y,% indicates a modulo operation, and / indicates an integer division Further, the conversion address Adrn is calculated according to the following equation (4):
The bank selection calculation circuit is
When the value of the third parameter set in the third register is z and / represents an integer division, the bank selection signal Sel is calculated according to the following equation (5 ).
Adrn = y * (Adr% x) + x * y * (Adr / (x * y)) + (Adr% (x * y)) / x
[Equation 5]
Sel = Adrn / z
Arithmetic system.
上記アドレス変換装置は、少なくとも上記プロセッサにより生成されたアドレスと、上記メモリセット内のメモリバンクの数に応じたパラメータに基づいてアドレス変換を行う
請求項9記載の演算システム。The plurality of memory banks are divided into at least a plurality of memory sets including one or more memory banks,
The arithmetic system according to claim 9, wherein the address conversion device performs address conversion based on at least an address generated by the processor and a parameter corresponding to the number of memory banks in the memory set.
請求項9または10記載の演算システム。11. The operation according to claim 9 , wherein the address calculation circuit outputs the input address as it is when a parameter relating to the number of addresses set for the address space is set in the first register and the second register. system.
Priority Applications (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| JP2002263402A JP4461669B2 (en) | 2002-09-09 | 2002-09-09 | Arithmetic system |
Applications Claiming Priority (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| JP2002263402A JP4461669B2 (en) | 2002-09-09 | 2002-09-09 | Arithmetic system |
Related Child Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| JP2009298307A Division JP5051215B2 (en) | 2009-12-28 | 2009-12-28 | Arithmetic system |
Publications (2)
| Publication Number | Publication Date |
|---|---|
| JP2004102633A JP2004102633A (en) | 2004-04-02 |
| JP4461669B2 true JP4461669B2 (en) | 2010-05-12 |
Family
ID=32263131
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| JP2002263402A Expired - Fee Related JP4461669B2 (en) | 2002-09-09 | 2002-09-09 | Arithmetic system |
Country Status (1)
| Country | Link |
|---|---|
| JP (1) | JP4461669B2 (en) |
Families Citing this family (3)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| JP5428862B2 (en) * | 2007-12-06 | 2014-02-26 | 日本電気株式会社 | Address generating apparatus and method for array processor, and array processor |
| JP4992114B2 (en) * | 2008-02-19 | 2012-08-08 | エヌイーシーコンピュータテクノ株式会社 | Main storage device and address control method for main storage device |
| CN113704171B (en) * | 2021-08-20 | 2023-05-16 | 北京计算机技术及应用研究所 | Software-defined data storage system |
-
2002
- 2002-09-09 JP JP2002263402A patent/JP4461669B2/en not_active Expired - Fee Related
Also Published As
| Publication number | Publication date |
|---|---|
| JP2004102633A (en) | 2004-04-02 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| US20200150958A1 (en) | Processor and control method for processor | |
| JP3027970B2 (en) | Digital signal processor memory management unit and method | |
| WO2018139196A1 (en) | Processor, information processing device, and processor operation method | |
| JPS61139866A (en) | Microprocessor | |
| CN113743599A (en) | Operation device and server of convolutional neural network | |
| JPS5927944B2 (en) | Matrix data parallel processing system | |
| US12282844B2 (en) | Artificial intelligence accelerators | |
| JP7435602B2 (en) | Computing equipment and computing systems | |
| JP4461669B2 (en) | Arithmetic system | |
| JP3172352B2 (en) | Neural network circuit | |
| CN110531954A (en) | Multiplier, data processing method, chip and electronic device | |
| JP5051215B2 (en) | Arithmetic system | |
| CN120179608B (en) | FPGA (field programmable Gate array) superposition processor acceleration system and method based on state space duality | |
| JP2781550B2 (en) | Parallel processing computer | |
| JP2851804B2 (en) | 2D orthogonal transform device | |
| CN115826862A (en) | On-chip cache data scheduling method and system | |
| CN111260070B (en) | Operation method, device and related product | |
| JP4791172B2 (en) | FFT operation circuit | |
| JPH09120371A (en) | Memory controller | |
| US20240152322A1 (en) | Artificial intelligence accelerators | |
| JP5072558B2 (en) | Data processing device | |
| JP3313362B2 (en) | Memory address generator for voice processing unit | |
| CN118708153A (en) | A hardware accelerator and hardware acceleration method based on three-dimensional number theory transformation | |
| JPH03204695A (en) | Musical sound synthesizing device | |
| JP3180351B2 (en) | Effect device |
Legal Events
| Date | Code | Title | Description |
|---|---|---|---|
| A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20050721 |
|
| A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20080903 |
|
| A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20080909 |
|
| A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20081110 |
|
| A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20091027 |
|
| A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20091228 |
|
| TRDD | Decision of grant or rejection written | ||
| A01 | Written decision to grant a patent or to grant a registration (utility model) |
Free format text: JAPANESE INTERMEDIATE CODE: A01 Effective date: 20100126 |
|
| A01 | Written decision to grant a patent or to grant a registration (utility model) |
Free format text: JAPANESE INTERMEDIATE CODE: A01 |
|
| A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20100208 |
|
| FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20130226 Year of fee payment: 3 |
|
| LAPS | Cancellation because of no payment of annual fees |