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
Application number
JP3114960A
Other languages
English (en)
Other versions
JP2625277B2 (ja
Inventor
Hideyuki Iino
飯野 秀之
Hiromasa Takahashi
宏政 高橋
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Fujitsu Ltd
Original Assignee
Fujitsu Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Fujitsu Ltd filed Critical Fujitsu Ltd
Priority to JP3114960A priority Critical patent/JP2625277B2/ja
Priority to EP92304564A priority patent/EP0515165B1/en
Priority to DE69229763T priority patent/DE69229763T2/de
Priority to KR1019920008546A priority patent/KR970006025B1/ko
Publication of JPH04343151A publication Critical patent/JPH04343151A/ja
Priority to US08/635,568 priority patent/US5768559A/en
Application granted granted Critical
Publication of JP2625277B2 publication Critical patent/JP2625277B2/ja
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • G06F15/16Combinations 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
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/14Handling requests for interconnection or transfer
    • G06F13/16Handling requests for interconnection or transfer for access to memory bus
    • G06F13/1605Handling requests for interconnection or transfer for access to memory bus based on arbitration
    • G06F13/161Handling requests for interconnection or transfer for access to memory bus based on arbitration with latency improvement
    • G06F13/1615Handling requests for interconnection or transfer for access to memory bus based on arbitration with latency improvement using a concurrent pipeline structrure
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/06Addressing a physical block of locations, e.g. base addressing, module addressing, memory dedication
    • G06F12/0607Interleaved 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)を採用する、等が考えられる。
【0004】しかし、(1)はシステムコストの面から
限界があり(2)はミスヒットを少なくすることはでき
るものの絶無化は不可能(3)は主記憶の容量に比例し
てシステムコストが大幅に上昇する、等の問題があって
、何れも有効な対策とは言い難いものであった。ここで
、図23はマイクロプロセッサのバスサイクルの一例を
示すタイミングチャートであり、CLKはクロック信号
、ADDRESSはマイクロプロセッサからバス上に出
力されるリードまたはライト用のアドレスデータ、BS
#はバスサイクルの開始を示す制御信号(この信号とC
LKの論理が取られてアドレスデータがラッチされる)
、DATAはリード(またはライト)データ、DC#は
リードされたデータが有効であること(またはライトデ
ータの書き込み完了)を示す信号である。なお、#は負
論理を示す。
【0005】この例では、1サイクル(基本サイクル)
が2クロック(T1、T2)分の長さに設定されている
。 これは、リードサイクルのデータとライトサイクルのデ
ータが、バス上で衝突すること(バスコンフリクト)が
ないようにするためである。すなわち、リード(または
ライト)アドレスをバス上に送出し、BS#の変化のタ
イミングでリード(またはライト)アドレスをラッチし
た後、リード(またはライト)データを読み出す(また
は書き込む)といった一連の動作を、2クロック長の基
本サイクルで実行できる。
【0006】このような高速の基本サイクルで読み書き
できるメモリとしては、例えばキャッシュメモリがある
が、一般的な主記憶はこれよりも遅い。例えば、1つの
リード(またはライト)サイクルが4クロックで完結す
る主記憶を考えると、その構成は図24のようになる。 なお、説明の都合上、キャッシュメモリは省略してある
【0007】かかる構成によるリードまたはライト動作
は、図25のタイミングチャートに示すように、マイク
ロプロセッサ側の基本サイクルが2クロック(T1、T
2)で完了するにも拘わらず、主記憶側ではサイクル毎
に4クロックを要するので、2クロック分のウエイトサ
イクル(T2a、T2b)が発生し、その間マイクロプ
ロセッサの動作が中断する結果、速度向上を図ることが
できなくなる。
【0008】
【従来の技術】こうした問題を解決できる従来例として
、図26にその概念図を示すようなものが知られている
。この例では、主記憶のアドレス空間を複数に分割し、
その各々を「バンク(BANK)」と称して使用する。
【0009】ここで、1つのバンクは、W×Dのアドレ
ス空間を有しており、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以降は
、見掛け上、基本サイクル毎にリード(またはライト)
データを得ることができる。
【0011】したがって、基本サイクルCi(iは1、
2、……)のアドレスに対応したリードデータを、次の
基本サイクルCi+1で得ることができ、アドレスデー
タの出力動作とリードデータ(またはライトデータ)の
読み出し(または書き込み)動作とを並行的に実行する
ことができる。その結果、バンク数と同じ段数のパイプ
ライン動作を行うことができ、キャッシュメモリに比べ
て速度的に劣る主記憶を、キャッシュメモリ相当に高速
化して使用することができる。
【0012】
【発明が解決しようとする課題】しかしながら、かかる
従来のメモリアクセス装置にあっては、バンク数からア
ドレスの先出し数を決定し、その数と同じ段数のアドレ
スパイプラインを実行する(例えばバンク数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)となる。
【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、……というよう
に連続的にアクセスされる。
【0015】あるいは、α=n(但しn≠±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)に属している。
【0017】したがって、アドレス先出しにより、op
1、op2、op3の間でアドレス競合が発生するから
、図31及び図32(a)何れの場合も正常なパイプラ
イン動作を期待できないという欠点がある。なお、図3
2(b)は、同図(a)に対してオペランド単位だけが
異なる(64ビット→32ビット)場合の状態図である
。この場合、バンクを切換えながらop0、op2、o
p3をアクセスできるので、上記不都合を生じることは
ない。
【0018】そこで、本発明は、物理的なバンク数に拘
らず柔軟にパイプライン段数を設定でき、アドレス競合
を回避してパイプライン動作上の不都合発生を回避する
ことを目的としている。
【0019】
【課題を解決するための手段】本発明は、上記目的を達
成するためその原理図を図1に示すように、主記憶のア
ドレス空間を所定のデータ幅で等間隔に区切り、該区切
られたブロック毎にアドレス連結してn個のバンクを構
成すると共に、前記所定のデータ幅若しくは該データ幅
の半分の長さのオペランドを前記バンクに格納し、該オ
ペランド長の整数倍に相当する距離で、パイプライン的
なデータアクセスを実行するメモリアクセス装置におい
て、前記オペランド長、前記所定のデータ幅、前記倍数
の値及び前記バンク数に基づいて、前記パイプライン段
数を設定するパイプライン段数設定手段を備えたことを
特徴とする。
【0020】
【作用】本発明では、同一バンクを連続してアクセスす
るようなアドレスの生成時に、パイプライン段数が物理
的なバンク数に拘らず柔軟に設定され、アドレス競合を
回避してパイプライン動作上の不都合が排除される。
【0021】
【実施例】以下、本発明の実施例を図面に基づいて説明
する。 原理説明 まず、本実施例の原理を説明すると、図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=
リザーブとして確保)を表現する。
【0023】このような主記憶に対し、ベースアドレス
とストライド値によるアドレス生成方式を適用する場合
、前述の不具合が生ずることがある。そこで、本実施例
では、「主記憶のバンク数」「ストライド値」及び「オ
ペランド長」に基づいて、メモリアクセス装置側から見
た場合の見掛け上のバンク数(以下、論理バンク数と言
う)を導き、この論理バンク数に対応したパイプライン
段数を、アドレス生成方式ごとに設定する。 ■ストライド値によるアドレス生成方式図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」段に設定する。
【0025】次に、図7を参照しながら、32ビットオ
ペランドの場合の設定パイプライン段数を説明する。 (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ビットアク
セスが可能なので例外として扱う。
【0027】具体的には、ストライド値が±1以外で、
且つストライド値の下位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参照)に
対応する。なお、これらの図では、左下がりのハッチン
グで出力アドレスを、また、左下がりと右下がりのハッ
チングでアクセス対象のオペランドを表現している。
【0029】図8において、物理的なバンク数が1のと
き、設定パイプライン段数(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」に固定する。
【0031】以上のことから本実施例によれば、物理的
なバンク数に拘らず、適切なアドレスパイプライン段数
を柔軟に設定することができる。したがって、■ストラ
イド値を用いてアドレス生成を行う場合や、■間接アド
レスによってアドレス生成を行う場合のパイプライン段
数を最適化でき、その結果、キャッシュメモリに比べて
速度的に劣る主記憶を、あらゆる条件下でキャッシュメ
モリ相当に高速化して使用することができるという効果
を得ることができる。 実施例 図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」のパイプラ
イン段数を選択的に設定する。
【0033】図17は、本実施例におけるタイミングシ
ーケンサの概念図である。この図では、例えば1、2及
び4の各バンク数に対応した3つのパイプライン部21
、22、23を備え、それぞれのパイプライン部21、
22、23は、アドレス先出し部分(左下がりハッチン
グ)、アドレスとデータの処理部分(クロスハッチング
)、及び、パイプライン段数分のデータ処理部分(右下
がりハッチング)を備える。アドレス先出し部分とデー
タ処理部分は1個を含む複数のユニットからなり、ユニ
ットの数は、上記のアドレスパイプライン段数設定部1
4によって設定されたパイプライン段数「1」「2」「
4」に対応する。
【0034】例えば、設定パイプライン段数が「4」の
場合には、4つのアドレスを先出しするので、4つのア
ドレス先出し部分と、アドレスの先出しを終えた後でメ
モリアクセスの要求がある間にアドレスとデータの処理
を行うための1つのデータ処理部分と、要求が無くなっ
た後に先出ししている4つのデータを処理するための4
つのデータ処理部分と、を備える。
【0035】図18は「ストライド値によるアドレス生
成方式」と「間接値によるアドレス生成方式」の双方を
適用したアドレス生成のブロック図である。 ■「ストライド値によるアドレス生成方式」の場合セレ
クタによって「ストライド値」を選択する。通常はこの
ストライド値にオペランド長を乗算した値がベースアド
レスへの「加算値」となる。加算値はアドレス生成の間
一定の値である。しかし、連続オペランド配列で且つオ
ペランド長が外部データバスの半分であればデータバス
幅分のアクセスが可能であり、データバス幅を乗算した
値がベースアドレスへの「加算値」となる。なお、ベー
スアドレスの開始アドレスやオペランドの個数によって
はオペランドを1個しかアクセスできない場合もあるの
で、加算値は動的に変化する。
【0036】このように、出力アドレスは、ベースアド
レスと「加算値」とによって作られるが、1回目の出力
アドレスはベースアドレスそのものであり、加算器(略
号、ADD)では加算しない。2回目以降はADDから
の出力値をベースアドレスとし、ストライド値によって
作られる加算値を加えていく。 ■「間接値によるアドレス生成方式」の場合セレクタに
よって「間接値」を選択する。この間接値はアドレスの
生成数だけ格納されており、各々の間接値にオペランド
長を乗算した値がベースアドレスへの各々の「加算値」
となる。加算値はアドレス生成の間、常に変動する。
【0037】出力アドレスは、ベースアドレスに各々の
「加算値」を毎回加算することによって作られる。なお
、この方式ではストライド値のようにADDからの出力
を戻すことはしない。また、本実施例では、図19に示
すように、オペランド数を設定するレジスタの値をメモ
リアクセスの度に1だけデクリメントし、あるいは、連
続オペランドの場合には1回のメモリアクセスでアクセ
スした数だけまとめてデクリメントする。
【0038】図20は上記の2つのアドレス生成方式に
よって作られたアドレスの出力タイミングチャートであ
る。一般に、アドレス先出しを行わないシステムでは、
アドレスの切り替えタイミングを、その出力アドレスに
対するデータの処理完了通知DC#の受け付けを待って
規定するが、本実施例では、メモリアクセス装置から見
える主記憶のバンク数分のアドレスについては、アドレ
スのデータ処理を待たずに出力する。
【0039】これには、アドレスパイプライン段数設定
回路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の出力を真とする。
【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はデータ用バ
ッファである。
【0042】このような構成によると、パイプライン動
作の開始直後のアドレスデータが、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のときのアクセス概念図である。
【図9】一実施例の64ビットオペランドで且つバンク
数2のときのアクセス概念図である。
【図10】一実施例の64ビットオペランドで且つバン
ク数4のときのアクセス概念図である。
【図11】一実施例の32ビットオペランドで且つバン
ク数1のときのアクセス概念図である。
【図12】一実施例の32ビットオペランドで且つバン
ク数2のときのアクセス概念図である。
【図13】一実施例の32ビットオペランドで且つバン
ク数4のときのアクセス概念図である。
【図14】一実施例の間接アドレス生成の場合で且つ6
4ビットオペランドのときのアクセス概念図である。
【図15】一実施例の間接アドレス生成の場合で且つ3
2ビットオペランドのときのアクセス概念図である。
【図16】一実施例のアドレスパイプライン段数設定回
路の構成図である。
【図17】一実施例のタイミングシーケンサの概念図で
ある。
【図18】一実施例のアドレス生成のブロック図である
【図19】一実施例のオペランド数レジスタの更新概念
図である。
【図20】一実施例の出力切換えのタイミングチャート
である。
【図21】一実施例の出力切換えタイミング用擬似DC
#の発生概念図である。
【図22】一実施例を適用したシステム図である。
【図23】従来例の基本サイクルが2クロックの場合の
バスタイミング図である。
【図24】従来例の2クロックを基本サイクルとするマ
イクロプロセッサと4クロック動作の記憶装置との接続
図である。
【図25】図24のバスタイミング図である。
【図26】従来例のパイプラインの構成図である。
【図27】図26のバスタイミング図である。
【図28】従来例の連続オペランド配列の概念図である
【図29】従来例の等間隔オペランド配列の概念図であ
る。
【図30】従来例の間接オペランド配列の概念図である
【図31】従来例のオペランド単位とバンク幅が共に6
4ビットで且つバンク数とストライド値が共に「4」の
場合のアクセス状態図である。
【図32】従来例のオペランド単位とバンク幅が共に6
4ビットで且つバンク数とストライド値が共に「2」の
場合のアクセス状態図である。
【符号の説明】
14:アドレスパイプライン段数設定部(アドレスパイ
プライン段数設定手段)

Claims (1)

    【特許請求の範囲】
  1. 【請求項1】主記憶のアドレス空間を所定のデータ幅で
    等間隔に区切り、該区切られたブロック毎にアドレス連
    結してn個のバンクを構成すると共に、前記所定のデー
    タ幅若しくは該データ幅の半分の長さのオペランドを前
    記バンクに格納し、該オペランド長の整数倍に相当する
    距離で、パイプライン的なデータアクセスを実行するメ
    モリアクセス装置において、前記オペランド長、前記所
    定のデータ幅、前記倍数の値及び前記バンク数に基づい
    て、前記パイプライン段数を設定するパイプライン段数
    設定手段を備えたことを特徴とするメモリアクセス装置
JP3114960A 1991-05-20 1991-05-20 メモリアクセス装置 Expired - Fee Related JP2625277B2 (ja)

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)

* Cited by examiner, † Cited by third party
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)

* Cited by examiner, † Cited by third party
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)

* Cited by examiner, † Cited by third party
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

Cited By (2)

* Cited by examiner, † Cited by third party
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