JPH04343151A - メモリアクセス装置 - Google Patents
メモリアクセス装置Info
- Publication number
- JPH04343151A JPH04343151A JP3114960A JP11496091A JPH04343151A JP H04343151 A JPH04343151 A JP H04343151A JP 3114960 A JP3114960 A JP 3114960A JP 11496091 A JP11496091 A JP 11496091A JP H04343151 A JPH04343151 A JP H04343151A
- Authority
- JP
- Japan
- Prior art keywords
- address
- banks
- operand
- bank
- value
- 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.)
- Granted
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F15/00—Digital computers in general; Data processing equipment in general
- G06F15/16—Combinations of two or more digital computers each having at least an arithmetic unit, a program unit and a register, e.g. for a simultaneous processing of several programs
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/14—Handling requests for interconnection or transfer
- G06F13/16—Handling requests for interconnection or transfer for access to memory bus
- G06F13/1605—Handling requests for interconnection or transfer for access to memory bus based on arbitration
- G06F13/161—Handling requests for interconnection or transfer for access to memory bus based on arbitration with latency improvement
- G06F13/1615—Handling requests for interconnection or transfer for access to memory bus based on arbitration with latency improvement using a concurrent pipeline structrure
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; 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)
- Computer Hardware Design (AREA)
- Software Systems (AREA)
- Complex Calculations (AREA)
- Memory System (AREA)
- Advance Control (AREA)
- Memory System Of A Hierarchy Structure (AREA)
Abstract
(57)【要約】本公報は電子出願前の出願データであるた
め要約のデータは記録されません。
め要約のデータは記録されません。
Description
【0001】
【産業上の利用分野】本発明は、メモリアクセス装置、
特にアドレス空間を複数領域(バンク)に分割して、各
領域を並列的にアクセスするアクセス装置に関する。コ
ンピュータシステムの処理速度を向上するには、主記憶
とコンピュータとの間に、超高速動作するメモリいわゆ
るキャッシュメモリを介在させるのが効果的である。コ
ンピュータの平均アクセス時間を、キャッシュメモリの
アクセス時間に相当して高速化することができる。
特にアドレス空間を複数領域(バンク)に分割して、各
領域を並列的にアクセスするアクセス装置に関する。コ
ンピュータシステムの処理速度を向上するには、主記憶
とコンピュータとの間に、超高速動作するメモリいわゆ
るキャッシュメモリを介在させるのが効果的である。コ
ンピュータの平均アクセス時間を、キャッシュメモリの
アクセス時間に相当して高速化することができる。
【0002】ところで、キャッシュメモリの容量は主記
憶に比べて小さいため、目的とするデータがキャッシュ
メモリ内に存在しない場合(ミスヒット)がしばしば起
こり得る。ミスヒットが発生すると、その都度、キャッ
シュメモリの内容が主記憶の内容で更新されることとな
り、コンピュータの動作速度が主記憶のアクセス速度に
依存して遅くなる不都合がある。
憶に比べて小さいため、目的とするデータがキャッシュ
メモリ内に存在しない場合(ミスヒット)がしばしば起
こり得る。ミスヒットが発生すると、その都度、キャッ
シュメモリの内容が主記憶の内容で更新されることとな
り、コンピュータの動作速度が主記憶のアクセス速度に
依存して遅くなる不都合がある。
【0003】かかる不都合の対策として、(1)キャッ
シュメモリの容量を大きくする、(2)キャッシングの
アルゴリズムを改善してヒット率を高める、(3)主記
憶にキャッシュメモリのような高速/高性能素子(例え
ばSRAM)を採用する、等が考えられる。
シュメモリの容量を大きくする、(2)キャッシングの
アルゴリズムを改善してヒット率を高める、(3)主記
憶にキャッシュメモリのような高速/高性能素子(例え
ばSRAM)を採用する、等が考えられる。
【0004】しかし、(1)はシステムコストの面から
限界があり(2)はミスヒットを少なくすることはでき
るものの絶無化は不可能(3)は主記憶の容量に比例し
てシステムコストが大幅に上昇する、等の問題があって
、何れも有効な対策とは言い難いものであった。ここで
、図23はマイクロプロセッサのバスサイクルの一例を
示すタイミングチャートであり、CLKはクロック信号
、ADDRESSはマイクロプロセッサからバス上に出
力されるリードまたはライト用のアドレスデータ、BS
#はバスサイクルの開始を示す制御信号(この信号とC
LKの論理が取られてアドレスデータがラッチされる)
、DATAはリード(またはライト)データ、DC#は
リードされたデータが有効であること(またはライトデ
ータの書き込み完了)を示す信号である。なお、#は負
論理を示す。
限界があり(2)はミスヒットを少なくすることはでき
るものの絶無化は不可能(3)は主記憶の容量に比例し
てシステムコストが大幅に上昇する、等の問題があって
、何れも有効な対策とは言い難いものであった。ここで
、図23はマイクロプロセッサのバスサイクルの一例を
示すタイミングチャートであり、CLKはクロック信号
、ADDRESSはマイクロプロセッサからバス上に出
力されるリードまたはライト用のアドレスデータ、BS
#はバスサイクルの開始を示す制御信号(この信号とC
LKの論理が取られてアドレスデータがラッチされる)
、DATAはリード(またはライト)データ、DC#は
リードされたデータが有効であること(またはライトデ
ータの書き込み完了)を示す信号である。なお、#は負
論理を示す。
【0005】この例では、1サイクル(基本サイクル)
が2クロック(T1、T2)分の長さに設定されている
。 これは、リードサイクルのデータとライトサイクルのデ
ータが、バス上で衝突すること(バスコンフリクト)が
ないようにするためである。すなわち、リード(または
ライト)アドレスをバス上に送出し、BS#の変化のタ
イミングでリード(またはライト)アドレスをラッチし
た後、リード(またはライト)データを読み出す(また
は書き込む)といった一連の動作を、2クロック長の基
本サイクルで実行できる。
が2クロック(T1、T2)分の長さに設定されている
。 これは、リードサイクルのデータとライトサイクルのデ
ータが、バス上で衝突すること(バスコンフリクト)が
ないようにするためである。すなわち、リード(または
ライト)アドレスをバス上に送出し、BS#の変化のタ
イミングでリード(またはライト)アドレスをラッチし
た後、リード(またはライト)データを読み出す(また
は書き込む)といった一連の動作を、2クロック長の基
本サイクルで実行できる。
【0006】このような高速の基本サイクルで読み書き
できるメモリとしては、例えばキャッシュメモリがある
が、一般的な主記憶はこれよりも遅い。例えば、1つの
リード(またはライト)サイクルが4クロックで完結す
る主記憶を考えると、その構成は図24のようになる。 なお、説明の都合上、キャッシュメモリは省略してある
。
できるメモリとしては、例えばキャッシュメモリがある
が、一般的な主記憶はこれよりも遅い。例えば、1つの
リード(またはライト)サイクルが4クロックで完結す
る主記憶を考えると、その構成は図24のようになる。 なお、説明の都合上、キャッシュメモリは省略してある
。
【0007】かかる構成によるリードまたはライト動作
は、図25のタイミングチャートに示すように、マイク
ロプロセッサ側の基本サイクルが2クロック(T1、T
2)で完了するにも拘わらず、主記憶側ではサイクル毎
に4クロックを要するので、2クロック分のウエイトサ
イクル(T2a、T2b)が発生し、その間マイクロプ
ロセッサの動作が中断する結果、速度向上を図ることが
できなくなる。
は、図25のタイミングチャートに示すように、マイク
ロプロセッサ側の基本サイクルが2クロック(T1、T
2)で完了するにも拘わらず、主記憶側ではサイクル毎
に4クロックを要するので、2クロック分のウエイトサ
イクル(T2a、T2b)が発生し、その間マイクロプ
ロセッサの動作が中断する結果、速度向上を図ることが
できなくなる。
【0008】
【従来の技術】こうした問題を解決できる従来例として
、図26にその概念図を示すようなものが知られている
。この例では、主記憶のアドレス空間を複数に分割し、
その各々を「バンク(BANK)」と称して使用する。
、図26にその概念図を示すようなものが知られている
。この例では、主記憶のアドレス空間を複数に分割し、
その各々を「バンク(BANK)」と称して使用する。
【0009】ここで、1つのバンクは、W×Dのアドレ
ス空間を有しており、Wが所定のデータ幅(例えば64
ビットまたは32ビット)を有するブロック長に相当し
、Dがブロック数に相当すると共に、隣接バンクの同じ
高さに位置するブロック同士のアドレスが連続している
。すなわち、当該2つのバンクの主記憶に対して、最下
位アドレスから最上位アドレスまでを連続すると、バン
ク0の最下位ブロック→バンク1の最下位ブロック→バ
ンク0の次位ブロック→バンク1の次位ブロック→バン
ク0の次次位ブロック→バンク1の次次位ブロック→…
…バンク0の最上位ブロック→バンク1の最上位ブロッ
クの順に連続してアクセスされることになる。
ス空間を有しており、Wが所定のデータ幅(例えば64
ビットまたは32ビット)を有するブロック長に相当し
、Dがブロック数に相当すると共に、隣接バンクの同じ
高さに位置するブロック同士のアドレスが連続している
。すなわち、当該2つのバンクの主記憶に対して、最下
位アドレスから最上位アドレスまでを連続すると、バン
ク0の最下位ブロック→バンク1の最下位ブロック→バ
ンク0の次位ブロック→バンク1の次位ブロック→バン
ク0の次次位ブロック→バンク1の次次位ブロック→…
…バンク0の最上位ブロック→バンク1の最上位ブロッ
クの順に連続してアクセスされることになる。
【0010】このようにバンク分けした主記憶を用いる
と、以下に述べるような「パイプライン」動作が可能に
なる。図27において、バンク0内の任意アドレスを指
定するアドレスデータ(BANK0アドレス)とバンク
1内の任意アドレスを指定するアドレスデータ(BAN
K1アドレス)とを、基本サイクルC1、C2、C3、
……毎に交互に繰り返して出力することにより、総バン
ク数から1基本サイクルを引いたサイクル数(アドレス
先出し数)の経過後、すなわち基本サイクルC2以降は
、見掛け上、基本サイクル毎にリード(またはライト)
データを得ることができる。
と、以下に述べるような「パイプライン」動作が可能に
なる。図27において、バンク0内の任意アドレスを指
定するアドレスデータ(BANK0アドレス)とバンク
1内の任意アドレスを指定するアドレスデータ(BAN
K1アドレス)とを、基本サイクルC1、C2、C3、
……毎に交互に繰り返して出力することにより、総バン
ク数から1基本サイクルを引いたサイクル数(アドレス
先出し数)の経過後、すなわち基本サイクルC2以降は
、見掛け上、基本サイクル毎にリード(またはライト)
データを得ることができる。
【0011】したがって、基本サイクルCi(iは1、
2、……)のアドレスに対応したリードデータを、次の
基本サイクルCi+1で得ることができ、アドレスデー
タの出力動作とリードデータ(またはライトデータ)の
読み出し(または書き込み)動作とを並行的に実行する
ことができる。その結果、バンク数と同じ段数のパイプ
ライン動作を行うことができ、キャッシュメモリに比べ
て速度的に劣る主記憶を、キャッシュメモリ相当に高速
化して使用することができる。
2、……)のアドレスに対応したリードデータを、次の
基本サイクルCi+1で得ることができ、アドレスデー
タの出力動作とリードデータ(またはライトデータ)の
読み出し(または書き込み)動作とを並行的に実行する
ことができる。その結果、バンク数と同じ段数のパイプ
ライン動作を行うことができ、キャッシュメモリに比べ
て速度的に劣る主記憶を、キャッシュメモリ相当に高速
化して使用することができる。
【0012】
【発明が解決しようとする課題】しかしながら、かかる
従来のメモリアクセス装置にあっては、バンク数からア
ドレスの先出し数を決定し、その数と同じ段数のアドレ
スパイプラインを実行する(例えばバンク数4の場合は
4段のパイプラインとする)構成となっていたため、■
ストライド値を用いてアドレス生成を行う場合や、■間
接アドレスによってアドレス生成を行う場合に、同一バ
ンクに対する連続アクセスが発生することがあり、アド
レスパイプラインを実行できないといった問題点があっ
た。
従来のメモリアクセス装置にあっては、バンク数からア
ドレスの先出し数を決定し、その数と同じ段数のアドレ
スパイプラインを実行する(例えばバンク数4の場合は
4段のパイプラインとする)構成となっていたため、■
ストライド値を用いてアドレス生成を行う場合や、■間
接アドレスによってアドレス生成を行う場合に、同一バ
ンクに対する連続アクセスが発生することがあり、アド
レスパイプラインを実行できないといった問題点があっ
た。
【0013】一般に、科学技術計算プログラムなどでは
、多数のデータ要素に対して同一の演算内容を繰り返す
演算処理を行うことが多く、次に示すベクトル処理ルー
チンはその代表的な例である。なお、例はフォートラン
表記である。 ステップ001 DO LABEL I=1,1
00ステップ002 C(I)=A(I)+
B(I)ステップ003 F(I)=D(I
)*E(I)ステップ004 LABEL CON
TINUEステップ001からステップ004までのD
Oループを、Iの範囲(1〜100)だけ繰り返すと共
に、それぞれの処理回ごとにIの値を更新しながら、C
(I)=A(I)+B(I) F(I)=D(I)*E(I) の演算を実行する。例えば1回目の演算は、C(1)=
A(1)+B(1) F(1)=D(1)*E(1) となり、また、100回目の演算は、 C(100)=A(100)+B(100)F(100
)=D(100)*E(100)となる。
、多数のデータ要素に対して同一の演算内容を繰り返す
演算処理を行うことが多く、次に示すベクトル処理ルー
チンはその代表的な例である。なお、例はフォートラン
表記である。 ステップ001 DO LABEL I=1,1
00ステップ002 C(I)=A(I)+
B(I)ステップ003 F(I)=D(I
)*E(I)ステップ004 LABEL CON
TINUEステップ001からステップ004までのD
Oループを、Iの範囲(1〜100)だけ繰り返すと共
に、それぞれの処理回ごとにIの値を更新しながら、C
(I)=A(I)+B(I) F(I)=D(I)*E(I) の演算を実行する。例えば1回目の演算は、C(1)=
A(1)+B(1) F(1)=D(1)*E(1) となり、また、100回目の演算は、 C(100)=A(100)+B(100)F(100
)=D(100)*E(100)となる。
【0014】ここで、上記例示のDOループを完結する
には、A(1)からA(100)、B(1)からB(1
00)、D(1)からD(100)及びE(1)からE
(100)といったきわめて多くのオペランドを必要と
する。このためオペランドをアクセスするための効率的
なアドレス生成が求められる。前記■または■のアドレ
ス生成方式はかかる多数のオペランドアクセスに好適な
技術である。 ■ストライド値によるアドレス生成方式1つ前に出力さ
れたアドレスからの距離を、オペランド長L(Lは所定
アドレス幅で例えば32ビットまたは64ビットであり
オペランド単位と言うこともある)の整数倍の値α(α
をストライド値と呼ぶ)で表す生成方式である。例えば
α=1とした場合には、図28に示す「連続オペランド
配列」に対応する。すなわち、ベースアドレスを基準と
して連続する複数のオペランド0〜4は、「1」をスト
ライド値として順次に発生するアドレスによって、まず
、オペランド0、次いでオペランド1、……というよう
に連続的にアクセスされる。
には、A(1)からA(100)、B(1)からB(1
00)、D(1)からD(100)及びE(1)からE
(100)といったきわめて多くのオペランドを必要と
する。このためオペランドをアクセスするための効率的
なアドレス生成が求められる。前記■または■のアドレ
ス生成方式はかかる多数のオペランドアクセスに好適な
技術である。 ■ストライド値によるアドレス生成方式1つ前に出力さ
れたアドレスからの距離を、オペランド長L(Lは所定
アドレス幅で例えば32ビットまたは64ビットであり
オペランド単位と言うこともある)の整数倍の値α(α
をストライド値と呼ぶ)で表す生成方式である。例えば
α=1とした場合には、図28に示す「連続オペランド
配列」に対応する。すなわち、ベースアドレスを基準と
して連続する複数のオペランド0〜4は、「1」をスト
ライド値として順次に発生するアドレスによって、まず
、オペランド0、次いでオペランド1、……というよう
に連続的にアクセスされる。
【0015】あるいは、α=n(但しn≠±1)とした
場合には、図29に示す「等間隔オペランド配列」に対
応する。すなわち、ベースアドレスを基準として等間隔
に連続する複数のオペランド0〜2は、「n」をストラ
イド値として順次に発生するアドレスによって、まず、
オペランド0、次いでオペランド1、……というように
連続的にアクセスされる。 ■間接アドレスによるアドレス生成方式ベースアドレス
からの距離(この方式ではオフセット値と言う)をオペ
ランド長Lの整数倍で表す生成方式である。前者の方式
では全てのオペランドに対して共通のストライド値を持
つが、この方式ではオペランド毎に固有のオフセット値
を持つ。図30において、VRはオフセットレジスタで
ある。このVRには、アクセスすべきオペランド毎のオ
フセット値0〜3が格納されており、オフセット0の内
容に基づいてオペランド0をアクセスし、次いでオフセ
ット1の内容に基づいてオペランド1をアクセスし、…
…という動作を繰返すことにより「間接アドレス配列」
のメモリアクセスを行う。オフセット値はアドレス生成
中、動的に変化する。
場合には、図29に示す「等間隔オペランド配列」に対
応する。すなわち、ベースアドレスを基準として等間隔
に連続する複数のオペランド0〜2は、「n」をストラ
イド値として順次に発生するアドレスによって、まず、
オペランド0、次いでオペランド1、……というように
連続的にアクセスされる。 ■間接アドレスによるアドレス生成方式ベースアドレス
からの距離(この方式ではオフセット値と言う)をオペ
ランド長Lの整数倍で表す生成方式である。前者の方式
では全てのオペランドに対して共通のストライド値を持
つが、この方式ではオペランド毎に固有のオフセット値
を持つ。図30において、VRはオフセットレジスタで
ある。このVRには、アクセスすべきオペランド毎のオ
フセット値0〜3が格納されており、オフセット0の内
容に基づいてオペランド0をアクセスし、次いでオフセ
ット1の内容に基づいてオペランド1をアクセスし、…
…という動作を繰返すことにより「間接アドレス配列」
のメモリアクセスを行う。オフセット値はアドレス生成
中、動的に変化する。
【0016】ところが、これらの各方式によりアドレス
を生成して、バンク数分のアドレス先出し処理を行う際
、次の条件を満足するとパイプライン上の不都合(同一
バンクに対する連続アクセス)を生ずることがある。 例えば、バンク幅とオペランド単位が等しく、しかもバ
ンク数とストライド値が一致する場合である。図31は
オペランド単位とバンク幅が共に64ビットで、且つ、
バンク数とストライド値が共に「4」の場合のアクセス
状態図である。また、図32(a)はオペランド単位と
バンク幅が共に64ビットで、且つ、バンク数とストラ
イド値が共に「2」の場合のアクセス状態図である。ハ
ッチングで示す部分がアクセスすべきオペランド(op
1、op2、op3)であり、これらのオペランドは同
一バンク(BANK0)に属している。
を生成して、バンク数分のアドレス先出し処理を行う際
、次の条件を満足するとパイプライン上の不都合(同一
バンクに対する連続アクセス)を生ずることがある。 例えば、バンク幅とオペランド単位が等しく、しかもバ
ンク数とストライド値が一致する場合である。図31は
オペランド単位とバンク幅が共に64ビットで、且つ、
バンク数とストライド値が共に「4」の場合のアクセス
状態図である。また、図32(a)はオペランド単位と
バンク幅が共に64ビットで、且つ、バンク数とストラ
イド値が共に「2」の場合のアクセス状態図である。ハ
ッチングで示す部分がアクセスすべきオペランド(op
1、op2、op3)であり、これらのオペランドは同
一バンク(BANK0)に属している。
【0017】したがって、アドレス先出しにより、op
1、op2、op3の間でアドレス競合が発生するから
、図31及び図32(a)何れの場合も正常なパイプラ
イン動作を期待できないという欠点がある。なお、図3
2(b)は、同図(a)に対してオペランド単位だけが
異なる(64ビット→32ビット)場合の状態図である
。この場合、バンクを切換えながらop0、op2、o
p3をアクセスできるので、上記不都合を生じることは
ない。
1、op2、op3の間でアドレス競合が発生するから
、図31及び図32(a)何れの場合も正常なパイプラ
イン動作を期待できないという欠点がある。なお、図3
2(b)は、同図(a)に対してオペランド単位だけが
異なる(64ビット→32ビット)場合の状態図である
。この場合、バンクを切換えながらop0、op2、o
p3をアクセスできるので、上記不都合を生じることは
ない。
【0018】そこで、本発明は、物理的なバンク数に拘
らず柔軟にパイプライン段数を設定でき、アドレス競合
を回避してパイプライン動作上の不都合発生を回避する
ことを目的としている。
らず柔軟にパイプライン段数を設定でき、アドレス競合
を回避してパイプライン動作上の不都合発生を回避する
ことを目的としている。
【0019】
【課題を解決するための手段】本発明は、上記目的を達
成するためその原理図を図1に示すように、主記憶のア
ドレス空間を所定のデータ幅で等間隔に区切り、該区切
られたブロック毎にアドレス連結してn個のバンクを構
成すると共に、前記所定のデータ幅若しくは該データ幅
の半分の長さのオペランドを前記バンクに格納し、該オ
ペランド長の整数倍に相当する距離で、パイプライン的
なデータアクセスを実行するメモリアクセス装置におい
て、前記オペランド長、前記所定のデータ幅、前記倍数
の値及び前記バンク数に基づいて、前記パイプライン段
数を設定するパイプライン段数設定手段を備えたことを
特徴とする。
成するためその原理図を図1に示すように、主記憶のア
ドレス空間を所定のデータ幅で等間隔に区切り、該区切
られたブロック毎にアドレス連結してn個のバンクを構
成すると共に、前記所定のデータ幅若しくは該データ幅
の半分の長さのオペランドを前記バンクに格納し、該オ
ペランド長の整数倍に相当する距離で、パイプライン的
なデータアクセスを実行するメモリアクセス装置におい
て、前記オペランド長、前記所定のデータ幅、前記倍数
の値及び前記バンク数に基づいて、前記パイプライン段
数を設定するパイプライン段数設定手段を備えたことを
特徴とする。
【0020】
【作用】本発明では、同一バンクを連続してアクセスす
るようなアドレスの生成時に、パイプライン段数が物理
的なバンク数に拘らず柔軟に設定され、アドレス競合を
回避してパイプライン動作上の不都合が排除される。
るようなアドレスの生成時に、パイプライン段数が物理
的なバンク数に拘らず柔軟に設定され、アドレス競合を
回避してパイプライン動作上の不都合が排除される。
【0021】
【実施例】以下、本発明の実施例を図面に基づいて説明
する。 原理説明 まず、本実施例の原理を説明すると、図2〜図4は「物
理的」なパイプライン段数をそれぞれ1段、2段、4段
とする各種パイプラインの構成例であり、各図のバンク
数は、所定の条件満足時を除き物理的パイプライン数に
対応している。すなわち図2の構成では1つのバンク(
BANK0)からなる主記憶を有し、図3の構成では2
つのバンク(BANK0、BANK1)からなる主記憶
を有し、また、図4の構成では4つのバンク(BANK
0、BANK1、BANK2、BANK3)からなる主
記憶を有している。
する。 原理説明 まず、本実施例の原理を説明すると、図2〜図4は「物
理的」なパイプライン段数をそれぞれ1段、2段、4段
とする各種パイプラインの構成例であり、各図のバンク
数は、所定の条件満足時を除き物理的パイプライン数に
対応している。すなわち図2の構成では1つのバンク(
BANK0)からなる主記憶を有し、図3の構成では2
つのバンク(BANK0、BANK1)からなる主記憶
を有し、また、図4の構成では4つのバンク(BANK
0、BANK1、BANK2、BANK3)からなる主
記憶を有している。
【0022】これらの主記憶は、メモリ制御回路やアド
レスバス及びデータバスを介してマイクロコントローラ
等のメモリアクセス装置に接続しており、メモリアクセ
ス装置には、例えばバンク数通知用の外部端子T0、T
1(バンク数設定用のレジスタでもよい)が設けられ、
主記憶のバンク数が外部から通知できるようになってい
る。図5はバンク数と外部端子T0、T1の設定との関
係を示す図であり、T0、T1をそれぞれ高電位側電源
VH(VHは論理1に相当する電位)または低電位側電
源VL(VLは論理0に相当する電位)に選択的に接続
し、2ビット分の情報で4通りのバンク数(20=バン
ク数1、21=バンク数2、22=バンク数4、23=
リザーブとして確保)を表現する。
レスバス及びデータバスを介してマイクロコントローラ
等のメモリアクセス装置に接続しており、メモリアクセ
ス装置には、例えばバンク数通知用の外部端子T0、T
1(バンク数設定用のレジスタでもよい)が設けられ、
主記憶のバンク数が外部から通知できるようになってい
る。図5はバンク数と外部端子T0、T1の設定との関
係を示す図であり、T0、T1をそれぞれ高電位側電源
VH(VHは論理1に相当する電位)または低電位側電
源VL(VLは論理0に相当する電位)に選択的に接続
し、2ビット分の情報で4通りのバンク数(20=バン
ク数1、21=バンク数2、22=バンク数4、23=
リザーブとして確保)を表現する。
【0023】このような主記憶に対し、ベースアドレス
とストライド値によるアドレス生成方式を適用する場合
、前述の不具合が生ずることがある。そこで、本実施例
では、「主記憶のバンク数」「ストライド値」及び「オ
ペランド長」に基づいて、メモリアクセス装置側から見
た場合の見掛け上のバンク数(以下、論理バンク数と言
う)を導き、この論理バンク数に対応したパイプライン
段数を、アドレス生成方式ごとに設定する。 ■ストライド値によるアドレス生成方式図6、図7はそ
れぞれオペランド長が64ビットの場合と32ビットの
場合の設定パイプライン数を示す図である。図中のバン
ク数(1、2及び4)は主記憶上の「物理的」なバンク
数であり、設定されたパイプライン段数は論理バンク数
に対応する。
とストライド値によるアドレス生成方式を適用する場合
、前述の不具合が生ずることがある。そこで、本実施例
では、「主記憶のバンク数」「ストライド値」及び「オ
ペランド長」に基づいて、メモリアクセス装置側から見
た場合の見掛け上のバンク数(以下、論理バンク数と言
う)を導き、この論理バンク数に対応したパイプライン
段数を、アドレス生成方式ごとに設定する。 ■ストライド値によるアドレス生成方式図6、図7はそ
れぞれオペランド長が64ビットの場合と32ビットの
場合の設定パイプライン数を示す図である。図中のバン
ク数(1、2及び4)は主記憶上の「物理的」なバンク
数であり、設定されたパイプライン段数は論理バンク数
に対応する。
【0024】まず、図6を参照しながら、64ビットオ
ペランドの場合の設定パイプライン段数を説明する。 (1a) 物理的なバンク数が「1」の場合には、仮
想バンク数も「1」である。したがって、この場合パイ
プラインの段数を全て「1」に設定する。 (1b) 物理的なバンク数が「2」の場合には、ス
トライド値の下位1ビットに応じてパイプラインの段数
を「1」または「2」に設定する。具体的には、当該ビ
ットが”0”であれば「1」段に、または、当該ビット
が”1”であれば「2」段に設定する。すなわち、スト
ライド値が偶数であれば「1」段に、奇数であれば「2
」段に設定する。 (1c) 物理的なバンク数が「4」の場合には、ス
トライド値の下位2ビットに応じてパイプラインの段数
を「1」「2」または「4」段に設定する。具体的には
、当該ビットが”00”であれば「1」段に、”10”
であれば「2」段に、それ以外、すなわち”01”また
は”11”であれば「4」段に設定する。
ペランドの場合の設定パイプライン段数を説明する。 (1a) 物理的なバンク数が「1」の場合には、仮
想バンク数も「1」である。したがって、この場合パイ
プラインの段数を全て「1」に設定する。 (1b) 物理的なバンク数が「2」の場合には、ス
トライド値の下位1ビットに応じてパイプラインの段数
を「1」または「2」に設定する。具体的には、当該ビ
ットが”0”であれば「1」段に、または、当該ビット
が”1”であれば「2」段に設定する。すなわち、スト
ライド値が偶数であれば「1」段に、奇数であれば「2
」段に設定する。 (1c) 物理的なバンク数が「4」の場合には、ス
トライド値の下位2ビットに応じてパイプラインの段数
を「1」「2」または「4」段に設定する。具体的には
、当該ビットが”00”であれば「1」段に、”10”
であれば「2」段に、それ以外、すなわち”01”また
は”11”であれば「4」段に設定する。
【0025】次に、図7を参照しながら、32ビットオ
ペランドの場合の設定パイプライン段数を説明する。 (2a) 物理的なバンク数が「1」の場合には、仮
想バンク数も「1」である。したがって、この場合パイ
プラインの段数を全て「1」に設定する。 (2b) 物理的なバンク数が「2」の場合には、ス
トライド値の下位2ビットに応じてパイプラインの段数
を「1」または「2」に設定することを基本とする。但
し、連続オペランド配列(ストライド値=±1)の場合
は、32ビットオペランド×2で64ビットアクセスが
可能なので例外として扱う。
ペランドの場合の設定パイプライン段数を説明する。 (2a) 物理的なバンク数が「1」の場合には、仮
想バンク数も「1」である。したがって、この場合パイ
プラインの段数を全て「1」に設定する。 (2b) 物理的なバンク数が「2」の場合には、ス
トライド値の下位2ビットに応じてパイプラインの段数
を「1」または「2」に設定することを基本とする。但
し、連続オペランド配列(ストライド値=±1)の場合
は、32ビットオペランド×2で64ビットアクセスが
可能なので例外として扱う。
【0026】具体的には、ストライド値が±1以外で、
且つストライド値の下位2ビットが”00”または下位
1ビットが”1”であれば「1」段に、または、ストラ
イド値が+1あるいは−1で、且つストライド値の下位
2ビットが”10”であれば「2」段に設定する。 (2c) 物理的なバンク数が「4」の場合には、ス
トライド値の下位3ビットに応じてパイプラインの段数
を「1」「2」または「4」に設定することを基本とす
る。但し、連続オペランド配列(ストライド値=±1)
の場合は、32ビットオペランド×2で64ビットアク
セスが可能なので例外として扱う。
且つストライド値の下位2ビットが”00”または下位
1ビットが”1”であれば「1」段に、または、ストラ
イド値が+1あるいは−1で、且つストライド値の下位
2ビットが”10”であれば「2」段に設定する。 (2c) 物理的なバンク数が「4」の場合には、ス
トライド値の下位3ビットに応じてパイプラインの段数
を「1」「2」または「4」に設定することを基本とす
る。但し、連続オペランド配列(ストライド値=±1)
の場合は、32ビットオペランド×2で64ビットアク
セスが可能なので例外として扱う。
【0027】具体的には、ストライド値が±1以外で、
且つストライド値の下位3ビットが”000”または下
位1ビットが”1”であれば「1」段に、または、スト
ライド値が±1以外で、且つストライド値の下位3ビッ
トが”100”であれば「2」段に、または、ストライ
ド値が+1あるいは−1で、且つストライド値の下位2
ビットが”10”であれば「4」段に設定する。
且つストライド値の下位3ビットが”000”または下
位1ビットが”1”であれば「1」段に、または、スト
ライド値が±1以外で、且つストライド値の下位3ビッ
トが”100”であれば「2」段に、または、ストライ
ド値が+1あるいは−1で、且つストライド値の下位2
ビットが”10”であれば「4」段に設定する。
【0028】図8〜図13は上記の条件によって設定さ
れたアドレスパイプラインの摸式図であり、図8〜図1
0は64ビットオペランド時(図6参照)に対応し、図
11〜図13は32ビットオペランド時(図7参照)に
対応する。なお、これらの図では、左下がりのハッチン
グで出力アドレスを、また、左下がりと右下がりのハッ
チングでアクセス対象のオペランドを表現している。
れたアドレスパイプラインの摸式図であり、図8〜図1
0は64ビットオペランド時(図6参照)に対応し、図
11〜図13は32ビットオペランド時(図7参照)に
対応する。なお、これらの図では、左下がりのハッチン
グで出力アドレスを、また、左下がりと右下がりのハッ
チングでアクセス対象のオペランドを表現している。
【0029】図8において、物理的なバンク数が1のと
き、設定パイプライン段数(Pipline)が「1」
固定となる。図9において、物理的なバンク数が2のと
き、ストライド値によって「1」または「2」段が選択
される。図10において、物理的なバンク数が4のとき
、ストライド値によって「1」「2」または「4」段が
選択される。以上は、64ビットオペランドの場合であ
る。
き、設定パイプライン段数(Pipline)が「1」
固定となる。図9において、物理的なバンク数が2のと
き、ストライド値によって「1」または「2」段が選択
される。図10において、物理的なバンク数が4のとき
、ストライド値によって「1」「2」または「4」段が
選択される。以上は、64ビットオペランドの場合であ
る。
【0030】図11において、物理的なバンク数が1の
とき、ストライド値1で且つ64ビットアクセスの場合
と、ストライド値2で且つ32ビットアクセスの場合の
双方で、パイプライン段数が「1」固定となる。図12
において、物理的なバンク数が2のとき、ストライド値
1で且つ64ビットアクセスの場合と、ストライド値2
で且つ32ビットアクセスの場合の双方で、パイプライ
ン段数が「2」固定となり、または、ストライド値3で
且つ32ビットアクセスの場合に「1」固定となる。図
13において、物理的なバンク数が4のとき、ストライ
ド値1で且つ64ビットアクセスの場合と、ストライド
値2で且つ32ビットアクセスの場合の双方で、パイプ
ライン段数が「4」固定となり、または、ストライド値
3あるいは4で且つ32ビットアクセスの場合に「1」
(ストライド値3のとき)または「2」(ストライド値
4のとき)固定となる。以上は、32ビットオペランド
の場合である。 ■間接アドレスによるアドレス生成方式図14、図15
はベースアドレス及び間接値によるアドレス生成の一例
を示す摸式図である。図からも明らかなように、この生
成方式ではオペランド配列(op1、op2、……)に
規則性が見られない。したがって、かかる生成方式にお
いては、バンク制御回路でのアドレスのラッチを可能と
するために、アドレスの先出し数、すなわちパイプライ
ン段数を「1」に固定する。
とき、ストライド値1で且つ64ビットアクセスの場合
と、ストライド値2で且つ32ビットアクセスの場合の
双方で、パイプライン段数が「1」固定となる。図12
において、物理的なバンク数が2のとき、ストライド値
1で且つ64ビットアクセスの場合と、ストライド値2
で且つ32ビットアクセスの場合の双方で、パイプライ
ン段数が「2」固定となり、または、ストライド値3で
且つ32ビットアクセスの場合に「1」固定となる。図
13において、物理的なバンク数が4のとき、ストライ
ド値1で且つ64ビットアクセスの場合と、ストライド
値2で且つ32ビットアクセスの場合の双方で、パイプ
ライン段数が「4」固定となり、または、ストライド値
3あるいは4で且つ32ビットアクセスの場合に「1」
(ストライド値3のとき)または「2」(ストライド値
4のとき)固定となる。以上は、32ビットオペランド
の場合である。 ■間接アドレスによるアドレス生成方式図14、図15
はベースアドレス及び間接値によるアドレス生成の一例
を示す摸式図である。図からも明らかなように、この生
成方式ではオペランド配列(op1、op2、……)に
規則性が見られない。したがって、かかる生成方式にお
いては、バンク制御回路でのアドレスのラッチを可能と
するために、アドレスの先出し数、すなわちパイプライ
ン段数を「1」に固定する。
【0031】以上のことから本実施例によれば、物理的
なバンク数に拘らず、適切なアドレスパイプライン段数
を柔軟に設定することができる。したがって、■ストラ
イド値を用いてアドレス生成を行う場合や、■間接アド
レスによってアドレス生成を行う場合のパイプライン段
数を最適化でき、その結果、キャッシュメモリに比べて
速度的に劣る主記憶を、あらゆる条件下でキャッシュメ
モリ相当に高速化して使用することができるという効果
を得ることができる。 実施例 図16〜図22は本発明に係るメモリアクセス装置の一
実施例を示す図である。
なバンク数に拘らず、適切なアドレスパイプライン段数
を柔軟に設定することができる。したがって、■ストラ
イド値を用いてアドレス生成を行う場合や、■間接アド
レスによってアドレス生成を行う場合のパイプライン段
数を最適化でき、その結果、キャッシュメモリに比べて
速度的に劣る主記憶を、あらゆる条件下でキャッシュメ
モリ相当に高速化して使用することができるという効果
を得ることができる。 実施例 図16〜図22は本発明に係るメモリアクセス装置の一
実施例を示す図である。
【0032】まず、構成を説明する。図16はアドレス
パイプライン決定回路の構成図であり、この回路は、ア
ドレスレジスタ10、比較器11、命令デコーダ12、
外部端子13及びアドレスパイプライン段数設定部(ア
ドレスパイプライン段数設定手段)14を含む。アドレ
スレジスタ10は、ストライド値の下位nビットを通知
し、比較器11は、アドレス生成用レジスタ10からの
ストライド値と連続オペランド配列を示す基準ストライ
ド値(±1)との一致/不一致を判定し、命令デコーダ
12は、メモリアクセスの命令をデコードして、オペラ
ンド長の区別(例えば64ビットか32ビットかの区別
)を通知すると共に、アドレス生成方式の区別(ストラ
イド値による生成方式か間接値による生成方式かの区別
)を通知し、外部端子13は、物理的なバンク数(BA
NK0、BANK1、……、BANKm−1)を通知し
、アドレスパイプライン段数設定部14は、これらの各
通知情報、すなわち、アドレス生成方式を示す情報(D
1)、オペランド長を示す情報(D2)、連続オペラン
ド配列であるか否かを示す情報(D3)、物理的なバン
ク数を示す情報(D4)、ストライド値の下位nビット
の情報(D5)、に基づいて「1」〜「k」のパイプラ
イン段数を選択的に設定する。
パイプライン決定回路の構成図であり、この回路は、ア
ドレスレジスタ10、比較器11、命令デコーダ12、
外部端子13及びアドレスパイプライン段数設定部(ア
ドレスパイプライン段数設定手段)14を含む。アドレ
スレジスタ10は、ストライド値の下位nビットを通知
し、比較器11は、アドレス生成用レジスタ10からの
ストライド値と連続オペランド配列を示す基準ストライ
ド値(±1)との一致/不一致を判定し、命令デコーダ
12は、メモリアクセスの命令をデコードして、オペラ
ンド長の区別(例えば64ビットか32ビットかの区別
)を通知すると共に、アドレス生成方式の区別(ストラ
イド値による生成方式か間接値による生成方式かの区別
)を通知し、外部端子13は、物理的なバンク数(BA
NK0、BANK1、……、BANKm−1)を通知し
、アドレスパイプライン段数設定部14は、これらの各
通知情報、すなわち、アドレス生成方式を示す情報(D
1)、オペランド長を示す情報(D2)、連続オペラン
ド配列であるか否かを示す情報(D3)、物理的なバン
ク数を示す情報(D4)、ストライド値の下位nビット
の情報(D5)、に基づいて「1」〜「k」のパイプラ
イン段数を選択的に設定する。
【0033】図17は、本実施例におけるタイミングシ
ーケンサの概念図である。この図では、例えば1、2及
び4の各バンク数に対応した3つのパイプライン部21
、22、23を備え、それぞれのパイプライン部21、
22、23は、アドレス先出し部分(左下がりハッチン
グ)、アドレスとデータの処理部分(クロスハッチング
)、及び、パイプライン段数分のデータ処理部分(右下
がりハッチング)を備える。アドレス先出し部分とデー
タ処理部分は1個を含む複数のユニットからなり、ユニ
ットの数は、上記のアドレスパイプライン段数設定部1
4によって設定されたパイプライン段数「1」「2」「
4」に対応する。
ーケンサの概念図である。この図では、例えば1、2及
び4の各バンク数に対応した3つのパイプライン部21
、22、23を備え、それぞれのパイプライン部21、
22、23は、アドレス先出し部分(左下がりハッチン
グ)、アドレスとデータの処理部分(クロスハッチング
)、及び、パイプライン段数分のデータ処理部分(右下
がりハッチング)を備える。アドレス先出し部分とデー
タ処理部分は1個を含む複数のユニットからなり、ユニ
ットの数は、上記のアドレスパイプライン段数設定部1
4によって設定されたパイプライン段数「1」「2」「
4」に対応する。
【0034】例えば、設定パイプライン段数が「4」の
場合には、4つのアドレスを先出しするので、4つのア
ドレス先出し部分と、アドレスの先出しを終えた後でメ
モリアクセスの要求がある間にアドレスとデータの処理
を行うための1つのデータ処理部分と、要求が無くなっ
た後に先出ししている4つのデータを処理するための4
つのデータ処理部分と、を備える。
場合には、4つのアドレスを先出しするので、4つのア
ドレス先出し部分と、アドレスの先出しを終えた後でメ
モリアクセスの要求がある間にアドレスとデータの処理
を行うための1つのデータ処理部分と、要求が無くなっ
た後に先出ししている4つのデータを処理するための4
つのデータ処理部分と、を備える。
【0035】図18は「ストライド値によるアドレス生
成方式」と「間接値によるアドレス生成方式」の双方を
適用したアドレス生成のブロック図である。 ■「ストライド値によるアドレス生成方式」の場合セレ
クタによって「ストライド値」を選択する。通常はこの
ストライド値にオペランド長を乗算した値がベースアド
レスへの「加算値」となる。加算値はアドレス生成の間
一定の値である。しかし、連続オペランド配列で且つオ
ペランド長が外部データバスの半分であればデータバス
幅分のアクセスが可能であり、データバス幅を乗算した
値がベースアドレスへの「加算値」となる。なお、ベー
スアドレスの開始アドレスやオペランドの個数によって
はオペランドを1個しかアクセスできない場合もあるの
で、加算値は動的に変化する。
成方式」と「間接値によるアドレス生成方式」の双方を
適用したアドレス生成のブロック図である。 ■「ストライド値によるアドレス生成方式」の場合セレ
クタによって「ストライド値」を選択する。通常はこの
ストライド値にオペランド長を乗算した値がベースアド
レスへの「加算値」となる。加算値はアドレス生成の間
一定の値である。しかし、連続オペランド配列で且つオ
ペランド長が外部データバスの半分であればデータバス
幅分のアクセスが可能であり、データバス幅を乗算した
値がベースアドレスへの「加算値」となる。なお、ベー
スアドレスの開始アドレスやオペランドの個数によって
はオペランドを1個しかアクセスできない場合もあるの
で、加算値は動的に変化する。
【0036】このように、出力アドレスは、ベースアド
レスと「加算値」とによって作られるが、1回目の出力
アドレスはベースアドレスそのものであり、加算器(略
号、ADD)では加算しない。2回目以降はADDから
の出力値をベースアドレスとし、ストライド値によって
作られる加算値を加えていく。 ■「間接値によるアドレス生成方式」の場合セレクタに
よって「間接値」を選択する。この間接値はアドレスの
生成数だけ格納されており、各々の間接値にオペランド
長を乗算した値がベースアドレスへの各々の「加算値」
となる。加算値はアドレス生成の間、常に変動する。
レスと「加算値」とによって作られるが、1回目の出力
アドレスはベースアドレスそのものであり、加算器(略
号、ADD)では加算しない。2回目以降はADDから
の出力値をベースアドレスとし、ストライド値によって
作られる加算値を加えていく。 ■「間接値によるアドレス生成方式」の場合セレクタに
よって「間接値」を選択する。この間接値はアドレスの
生成数だけ格納されており、各々の間接値にオペランド
長を乗算した値がベースアドレスへの各々の「加算値」
となる。加算値はアドレス生成の間、常に変動する。
【0037】出力アドレスは、ベースアドレスに各々の
「加算値」を毎回加算することによって作られる。なお
、この方式ではストライド値のようにADDからの出力
を戻すことはしない。また、本実施例では、図19に示
すように、オペランド数を設定するレジスタの値をメモ
リアクセスの度に1だけデクリメントし、あるいは、連
続オペランドの場合には1回のメモリアクセスでアクセ
スした数だけまとめてデクリメントする。
「加算値」を毎回加算することによって作られる。なお
、この方式ではストライド値のようにADDからの出力
を戻すことはしない。また、本実施例では、図19に示
すように、オペランド数を設定するレジスタの値をメモ
リアクセスの度に1だけデクリメントし、あるいは、連
続オペランドの場合には1回のメモリアクセスでアクセ
スした数だけまとめてデクリメントする。
【0038】図20は上記の2つのアドレス生成方式に
よって作られたアドレスの出力タイミングチャートであ
る。一般に、アドレス先出しを行わないシステムでは、
アドレスの切り替えタイミングを、その出力アドレスに
対するデータの処理完了通知DC#の受け付けを待って
規定するが、本実施例では、メモリアクセス装置から見
える主記憶のバンク数分のアドレスについては、アドレ
スのデータ処理を待たずに出力する。
よって作られたアドレスの出力タイミングチャートであ
る。一般に、アドレス先出しを行わないシステムでは、
アドレスの切り替えタイミングを、その出力アドレスに
対するデータの処理完了通知DC#の受け付けを待って
規定するが、本実施例では、メモリアクセス装置から見
える主記憶のバンク数分のアドレスについては、アドレ
スのデータ処理を待たずに出力する。
【0039】これには、アドレスパイプライン段数設定
回路14によって決められたパイプライン段数、すなわ
ち先出しアドレス数分だけ、アドレスの切換えタイミン
グに擬似DC#を与えて予めアドレスを出力し、その後
、実際のDC#に応答してアドレスを切り換えればよい
。例えば、図21に示すように、選択タイミングシーケ
ンサの各アドレス先出し部分ごとに擬似DC#を発生す
ればよい。
回路14によって決められたパイプライン段数、すなわ
ち先出しアドレス数分だけ、アドレスの切換えタイミン
グに擬似DC#を与えて予めアドレスを出力し、その後
、実際のDC#に応答してアドレスを切り換えればよい
。例えば、図21に示すように、選択タイミングシーケ
ンサの各アドレス先出し部分ごとに擬似DC#を発生す
ればよい。
【0040】図22は本実施例を適用したシステム構成
例であり、バンク数が2の場合の例である。この図にお
いて、30はマイクロプロセッサ(メモリアクセス装置
)、31はマイクロプロセッサ30にバンク数を通知す
る入力端子であり、マイクロプロセッサ30からのアド
レスデータA0〜A31は、マスタラッチ32を介して
バンク数分の二つのスレーブラッチ33、34の一方に
取り込まれる。二つのスレーブラッチ33、34には、
ラッチ信号発生回路35からのバンク0ラッチ信号BL
0、バンク1ラッチ信号BL1が各々与えられており、
ラッチ信号発生回路35は、AV#とDC#が共に負論
理またはBS#が負論理のときに、アドレスデータの下
位4ビット目(A28)の論理に従って何れか一方の出
力が正論理となる複合論理回路36、37と、この正論
理出力をクロック信号CLKに同期させるフリップフロ
ップ38、39とを備え、アドレスデータの下位4ビッ
ト目が負論理のときにバンク0側の複合論理回路36の
出力を真、下位4ビット目が正論理のときにバンク1側
の複合論理回路37の出力を真とする。
例であり、バンク数が2の場合の例である。この図にお
いて、30はマイクロプロセッサ(メモリアクセス装置
)、31はマイクロプロセッサ30にバンク数を通知す
る入力端子であり、マイクロプロセッサ30からのアド
レスデータA0〜A31は、マスタラッチ32を介して
バンク数分の二つのスレーブラッチ33、34の一方に
取り込まれる。二つのスレーブラッチ33、34には、
ラッチ信号発生回路35からのバンク0ラッチ信号BL
0、バンク1ラッチ信号BL1が各々与えられており、
ラッチ信号発生回路35は、AV#とDC#が共に負論
理またはBS#が負論理のときに、アドレスデータの下
位4ビット目(A28)の論理に従って何れか一方の出
力が正論理となる複合論理回路36、37と、この正論
理出力をクロック信号CLKに同期させるフリップフロ
ップ38、39とを備え、アドレスデータの下位4ビッ
ト目が負論理のときにバンク0側の複合論理回路36の
出力を真、下位4ビット目が正論理のときにバンク1側
の複合論理回路37の出力を真とする。
【0041】すなわち、アドレスデータがバンク0指定
の場合で、AV#とDC#が共に負論理またはBS#が
負論理であれば、バンク0側のスレーブラッチ33にア
ドレスデータが取り込まれて主記憶のバンク0(#0)
がアクセスされる一方、アドレスデータがバンク1指定
の場合で、AV#とDC#が共に負論理またはBS#が
負論理であれば、バンク1側のスレーブラッチ34にア
ドレスデータが取り込まれて主記憶のバンク1(#1)
がアクセスされる。なお、40はDC#を発生するため
のノアゲート、45はデータ用マスタラッチ、46、4
7はデータ用スレーブラッチ、48、49はデータ用バ
ッファである。
の場合で、AV#とDC#が共に負論理またはBS#が
負論理であれば、バンク0側のスレーブラッチ33にア
ドレスデータが取り込まれて主記憶のバンク0(#0)
がアクセスされる一方、アドレスデータがバンク1指定
の場合で、AV#とDC#が共に負論理またはBS#が
負論理であれば、バンク1側のスレーブラッチ34にア
ドレスデータが取り込まれて主記憶のバンク1(#1)
がアクセスされる。なお、40はDC#を発生するため
のノアゲート、45はデータ用マスタラッチ、46、4
7はデータ用スレーブラッチ、48、49はデータ用バ
ッファである。
【0042】このような構成によると、パイプライン動
作の開始直後のアドレスデータが、BS#のアサート状
態におけるマスタラッチクロックのタイミングで確定さ
れ、そのときのアドレス下位4ビット目の論理状態に従
ってバンク0(#0)とバンク1(#1)側のスレーブ
ラッチに順次に取り込まれると共に、続くアドレスデー
タが、AV#とDC#の双方のアサート状態におけるマ
スタラッチクロックのタイミングで確定され、そのとき
のアドレス下位4ビット目の論理状態に従ってバンク0
(#0)とバンク1(#1)側のスレーブラッチに順次
に取り込まれる。
作の開始直後のアドレスデータが、BS#のアサート状
態におけるマスタラッチクロックのタイミングで確定さ
れ、そのときのアドレス下位4ビット目の論理状態に従
ってバンク0(#0)とバンク1(#1)側のスレーブ
ラッチに順次に取り込まれると共に、続くアドレスデー
タが、AV#とDC#の双方のアサート状態におけるマ
スタラッチクロックのタイミングで確定され、そのとき
のアドレス下位4ビット目の論理状態に従ってバンク0
(#0)とバンク1(#1)側のスレーブラッチに順次
に取り込まれる。
【0043】
【発明の効果】本発明によれば、物理的なバンク数に拘
らず柔軟にパイプライン段数を設定でき、アドレス競合
を回避してパイプライン動作上の不都合発生を回避する
ことができる。
らず柔軟にパイプライン段数を設定でき、アドレス競合
を回避してパイプライン動作上の不都合発生を回避する
ことができる。
【図1】本発明の原理図である。
【図2】一実施例のバンク数1の概念構成図である。
【図3】一実施例のバンク数2の概念構成図である。
【図4】一実施例のバンク数4の概念構成図である。
【図5】一実施例のバンク数通知を示す図である。
【図6】一実施例の64ビットオペランドのときのパイ
プライン段数組み合せを示す図である。
プライン段数組み合せを示す図である。
【図7】一実施例の32ビットオペランドのときのパイ
プライン段数組み合せを示す図である。
プライン段数組み合せを示す図である。
【図8】一実施例の64ビットオペランドで且つバンク
数1のときのアクセス概念図である。
数1のときのアクセス概念図である。
【図9】一実施例の64ビットオペランドで且つバンク
数2のときのアクセス概念図である。
数2のときのアクセス概念図である。
【図10】一実施例の64ビットオペランドで且つバン
ク数4のときのアクセス概念図である。
ク数4のときのアクセス概念図である。
【図11】一実施例の32ビットオペランドで且つバン
ク数1のときのアクセス概念図である。
ク数1のときのアクセス概念図である。
【図12】一実施例の32ビットオペランドで且つバン
ク数2のときのアクセス概念図である。
ク数2のときのアクセス概念図である。
【図13】一実施例の32ビットオペランドで且つバン
ク数4のときのアクセス概念図である。
ク数4のときのアクセス概念図である。
【図14】一実施例の間接アドレス生成の場合で且つ6
4ビットオペランドのときのアクセス概念図である。
4ビットオペランドのときのアクセス概念図である。
【図15】一実施例の間接アドレス生成の場合で且つ3
2ビットオペランドのときのアクセス概念図である。
2ビットオペランドのときのアクセス概念図である。
【図16】一実施例のアドレスパイプライン段数設定回
路の構成図である。
路の構成図である。
【図17】一実施例のタイミングシーケンサの概念図で
ある。
ある。
【図18】一実施例のアドレス生成のブロック図である
。
。
【図19】一実施例のオペランド数レジスタの更新概念
図である。
図である。
【図20】一実施例の出力切換えのタイミングチャート
である。
である。
【図21】一実施例の出力切換えタイミング用擬似DC
#の発生概念図である。
#の発生概念図である。
【図22】一実施例を適用したシステム図である。
【図23】従来例の基本サイクルが2クロックの場合の
バスタイミング図である。
バスタイミング図である。
【図24】従来例の2クロックを基本サイクルとするマ
イクロプロセッサと4クロック動作の記憶装置との接続
図である。
イクロプロセッサと4クロック動作の記憶装置との接続
図である。
【図25】図24のバスタイミング図である。
【図26】従来例のパイプラインの構成図である。
【図27】図26のバスタイミング図である。
【図28】従来例の連続オペランド配列の概念図である
。
。
【図29】従来例の等間隔オペランド配列の概念図であ
る。
る。
【図30】従来例の間接オペランド配列の概念図である
。
。
【図31】従来例のオペランド単位とバンク幅が共に6
4ビットで且つバンク数とストライド値が共に「4」の
場合のアクセス状態図である。
4ビットで且つバンク数とストライド値が共に「4」の
場合のアクセス状態図である。
【図32】従来例のオペランド単位とバンク幅が共に6
4ビットで且つバンク数とストライド値が共に「2」の
場合のアクセス状態図である。
4ビットで且つバンク数とストライド値が共に「2」の
場合のアクセス状態図である。
14:アドレスパイプライン段数設定部(アドレスパイ
プライン段数設定手段)
プライン段数設定手段)
Claims (1)
- 【請求項1】主記憶のアドレス空間を所定のデータ幅で
等間隔に区切り、該区切られたブロック毎にアドレス連
結してn個のバンクを構成すると共に、前記所定のデー
タ幅若しくは該データ幅の半分の長さのオペランドを前
記バンクに格納し、該オペランド長の整数倍に相当する
距離で、パイプライン的なデータアクセスを実行するメ
モリアクセス装置において、前記オペランド長、前記所
定のデータ幅、前記倍数の値及び前記バンク数に基づい
て、前記パイプライン段数を設定するパイプライン段数
設定手段を備えたことを特徴とするメモリアクセス装置
。
Priority Applications (5)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| JP3114960A JP2625277B2 (ja) | 1991-05-20 | 1991-05-20 | メモリアクセス装置 |
| EP92304564A EP0515165B1 (en) | 1991-05-20 | 1992-05-20 | A Memory access device |
| DE69229763T DE69229763T2 (de) | 1991-05-20 | 1992-05-20 | Speicherzugriffsvorrichtung |
| KR1019920008546A KR970006025B1 (ko) | 1991-05-20 | 1992-05-20 | 메모리 억세스장치 |
| US08/635,568 US5768559A (en) | 1991-05-20 | 1996-04-22 | Multiple bank structured memory access device having flexible setting of a pipeline stage number |
Applications Claiming Priority (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| JP3114960A JP2625277B2 (ja) | 1991-05-20 | 1991-05-20 | メモリアクセス装置 |
Publications (2)
| Publication Number | Publication Date |
|---|---|
| JPH04343151A true JPH04343151A (ja) | 1992-11-30 |
| JP2625277B2 JP2625277B2 (ja) | 1997-07-02 |
Family
ID=14650900
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| JP3114960A Expired - Fee Related JP2625277B2 (ja) | 1991-05-20 | 1991-05-20 | メモリアクセス装置 |
Country Status (5)
| Country | Link |
|---|---|
| US (1) | US5768559A (ja) |
| EP (1) | EP0515165B1 (ja) |
| JP (1) | JP2625277B2 (ja) |
| KR (1) | KR970006025B1 (ja) |
| DE (1) | DE69229763T2 (ja) |
Cited By (2)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| WO2004081946A1 (ja) * | 2003-03-11 | 2004-09-23 | Fujitsu Limited | メモリ装置 |
| US7093103B2 (en) | 2003-03-28 | 2006-08-15 | Seiko Epson Corporation | Method for referring to address of vector data and vector processor |
Families Citing this family (27)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| JP4084428B2 (ja) * | 1996-02-02 | 2008-04-30 | 富士通株式会社 | 半導体記憶装置 |
| US5950219A (en) * | 1996-05-02 | 1999-09-07 | Cirrus Logic, Inc. | Memory banks with pipelined addressing and priority acknowledging and systems and methods using the same |
| EP1327991A3 (en) * | 1997-10-10 | 2005-05-11 | Rambus Inc. | Apparatus and method for pipelined memory operations |
| EP1019912A2 (en) | 1997-10-10 | 2000-07-19 | Rambus Incorporated | Apparatus and method for pipelined memory operations |
| KR100270959B1 (ko) * | 1998-07-07 | 2000-11-01 | 윤종용 | 반도체 메모리 장치 |
| US6272609B1 (en) * | 1998-07-31 | 2001-08-07 | Micron Electronics, Inc. | Pipelined memory controller |
| US6772254B2 (en) * | 2000-06-21 | 2004-08-03 | International Business Machines Corporation | Multi-master computer system with overlapped read and write operations and scalable address pipelining |
| US20050185465A1 (en) * | 2003-03-11 | 2005-08-25 | Fujitsu Limited | Memory device |
| US6829191B1 (en) | 2003-12-03 | 2004-12-07 | Hewlett-Packard Development Company, L.P. | Magnetic memory equipped with a read control circuit and an output control circuit |
| US8982649B2 (en) | 2011-08-12 | 2015-03-17 | Gsi Technology, Inc. | Systems and methods involving multi-bank, dual- or multi-pipe SRAMs |
| US9268571B2 (en) * | 2012-10-18 | 2016-02-23 | Qualcomm Incorporated | Selective coupling of an address line to an element bank of a vector register file |
| US9037835B1 (en) * | 2013-10-24 | 2015-05-19 | Arm Limited | Data processing method and apparatus for prefetching |
| US10249362B2 (en) | 2016-12-06 | 2019-04-02 | Gsi Technology, Inc. | Computational memory cell and processing array device using the memory cells for XOR and XNOR computations |
| US10860320B1 (en) | 2016-12-06 | 2020-12-08 | Gsi Technology, Inc. | Orthogonal data transposition system and method during data transfers to/from a processing array |
| US10891076B1 (en) | 2016-12-06 | 2021-01-12 | Gsi Technology, Inc. | Results processing circuits and methods associated with computational memory cells |
| US10847213B1 (en) | 2016-12-06 | 2020-11-24 | Gsi Technology, Inc. | Write data processing circuits and methods associated with computational memory cells |
| US10777262B1 (en) | 2016-12-06 | 2020-09-15 | Gsi Technology, Inc. | Read data processing circuits and methods associated memory cells |
| US11227653B1 (en) | 2016-12-06 | 2022-01-18 | Gsi Technology, Inc. | Storage array circuits and methods for computational memory cells |
| US10847212B1 (en) | 2016-12-06 | 2020-11-24 | Gsi Technology, Inc. | Read and write data processing circuits and methods associated with computational memory cells using two read multiplexers |
| US10860318B2 (en) | 2016-12-06 | 2020-12-08 | Gsi Technology, Inc. | Computational memory cell and processing array device using memory cells |
| US10943648B1 (en) | 2016-12-06 | 2021-03-09 | Gsi Technology, Inc. | Ultra low VDD memory cell with ratioless write port |
| US10854284B1 (en) | 2016-12-06 | 2020-12-01 | Gsi Technology, Inc. | Computational memory cell and processing array device with ratioless write port |
| US10770133B1 (en) | 2016-12-06 | 2020-09-08 | Gsi Technology, Inc. | Read and write data processing circuits and methods associated with computational memory cells that provides write inhibits and read bit line pre-charge inhibits |
| KR102664213B1 (ko) | 2018-10-08 | 2024-05-08 | 삼성전자주식회사 | 인-메모리 프리페칭을 수행하는 메모리 장치 및 이를 포함하는 시스템 |
| US10958272B2 (en) | 2019-06-18 | 2021-03-23 | Gsi Technology, Inc. | Computational memory cell and processing array device using complementary exclusive or memory cells |
| US10930341B1 (en) | 2019-06-18 | 2021-02-23 | Gsi Technology, Inc. | Processing array device that performs one cycle full adder operation and bit line read/write logic features |
| US10877731B1 (en) | 2019-06-18 | 2020-12-29 | Gsi Technology, Inc. | Processing array device that performs one cycle full adder operation and bit line read/write logic features |
Family Cites Families (9)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US3833889A (en) * | 1973-03-08 | 1974-09-03 | Control Data Corp | Multi-mode data processing system |
| US4128880A (en) * | 1976-06-30 | 1978-12-05 | Cray Research, Inc. | Computer vector register processing |
| JPS6015771A (ja) * | 1983-07-08 | 1985-01-26 | Hitachi Ltd | ベクトルプロセッサ |
| US4633434A (en) * | 1984-04-02 | 1986-12-30 | Sperry Corporation | High performance storage unit |
| JPS63225837A (ja) * | 1987-03-13 | 1988-09-20 | Fujitsu Ltd | 距離付きベクトルアクセス方式 |
| US5148536A (en) * | 1988-07-25 | 1992-09-15 | Digital Equipment Corporation | Pipeline having an integral cache which processes cache misses and loads data in parallel |
| US4918600A (en) * | 1988-08-01 | 1990-04-17 | Board Of Regents, University Of Texas System | Dynamic address mapping for conflict-free vector access |
| US5063533A (en) * | 1989-04-10 | 1991-11-05 | Motorola, Inc. | Reconfigurable deinterleaver/interleaver for block oriented data |
| US5060145A (en) * | 1989-09-06 | 1991-10-22 | Unisys Corporation | Memory access system for pipelined data paths to and from storage |
-
1991
- 1991-05-20 JP JP3114960A patent/JP2625277B2/ja not_active Expired - Fee Related
-
1992
- 1992-05-20 EP EP92304564A patent/EP0515165B1/en not_active Expired - Lifetime
- 1992-05-20 KR KR1019920008546A patent/KR970006025B1/ko not_active Expired - Fee Related
- 1992-05-20 DE DE69229763T patent/DE69229763T2/de not_active Expired - Fee Related
-
1996
- 1996-04-22 US US08/635,568 patent/US5768559A/en not_active Expired - Fee Related
Cited By (2)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| WO2004081946A1 (ja) * | 2003-03-11 | 2004-09-23 | Fujitsu Limited | メモリ装置 |
| US7093103B2 (en) | 2003-03-28 | 2006-08-15 | Seiko Epson Corporation | Method for referring to address of vector data and vector processor |
Also Published As
| Publication number | Publication date |
|---|---|
| DE69229763T2 (de) | 1999-12-02 |
| KR920022117A (ko) | 1992-12-19 |
| US5768559A (en) | 1998-06-16 |
| JP2625277B2 (ja) | 1997-07-02 |
| KR970006025B1 (ko) | 1997-04-23 |
| EP0515165A1 (en) | 1992-11-25 |
| DE69229763D1 (de) | 1999-09-16 |
| EP0515165B1 (en) | 1999-08-11 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| JPH04343151A (ja) | メモリアクセス装置 | |
| US5367494A (en) | Randomly accessible memory having time overlapping memory accesses | |
| US4467419A (en) | Data processing system with access to a buffer store during data block transfers | |
| US6779102B2 (en) | Data processor capable of executing an instruction that makes a cache memory ineffective | |
| US5710913A (en) | Method and apparatus for executing nested loops in a digital signal processor | |
| JPS63150731A (ja) | コンピュータシステムおよびその実行方法 | |
| US6041393A (en) | Array padding for higher memory throughput in the presence of dirty misses | |
| US5860101A (en) | Scalable symmetric multiprocessor data-processing system with data allocation among private caches and segments of system memory | |
| US20020026545A1 (en) | Data processing apparatus of high speed process using memory of low speed and low power consumption | |
| JPH11203192A (ja) | 並列プロセッサおよび演算処理方法 | |
| US5710914A (en) | Digital signal processing method and system implementing pipelined read and write operations | |
| US5333291A (en) | Stride enhancer for high speed memory accesses with line fetching mode and normal mode employing boundary crossing determination | |
| EP1269323A2 (en) | Multi-tiered memory bank having different data buffer sizes with a programmable bank select | |
| WO2020135209A1 (zh) | 减少存储体冲突的方法 | |
| US5909588A (en) | Processor architecture with divisional signal in instruction decode for parallel storing of variable bit-width results in separate memory locations | |
| US20030196072A1 (en) | Digital signal processor architecture for high computation speed | |
| JP3215105B2 (ja) | メモリアクセス装置 | |
| JP3961371B2 (ja) | 情報処理装置 | |
| JP5380102B2 (ja) | マイクロプロセッサ | |
| KR100334298B1 (ko) | 기억 소자 | |
| JP2004152292A (ja) | 予測アドレス値を生成するための計算回路、および計算回路で次アドレスを予測する方法 | |
| KR100236530B1 (ko) | 디지탈 신호 처리장치의 어드레스 발생회로 | |
| JPS6027967A (ja) | バツフア記憶装置のブロツク転送制御方式 | |
| JP4498705B2 (ja) | キャッシュシステム | |
| JP2647092B2 (ja) | マルチプロセツサシステム |
Legal Events
| Date | Code | Title | Description |
|---|---|---|---|
| A01 | Written decision to grant a patent or to grant a registration (utility model) |
Free format text: JAPANESE INTERMEDIATE CODE: A01 Effective date: 19970218 |
|
| LAPS | Cancellation because of no payment of annual fees |