JP2625277B2 - メモリアクセス装置 - Google Patents

メモリアクセス装置

Info

Publication number
JP2625277B2
JP2625277B2 JP3114960A JP11496091A JP2625277B2 JP 2625277 B2 JP2625277 B2 JP 2625277B2 JP 3114960 A JP3114960 A JP 3114960A JP 11496091 A JP11496091 A JP 11496091A JP 2625277 B2 JP2625277 B2 JP 2625277B2
Authority
JP
Japan
Prior art keywords
address
value
banks
operand
bits
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
Application number
JP3114960A
Other languages
English (en)
Other versions
JPH04343151A (ja
Inventor
秀之 飯野
宏政 高橋
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 KR1019920008546A priority patent/KR970006025B1/ko
Priority to DE69229763T priority patent/DE69229763T2/de
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; CALCULATING OR 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; CALCULATING OR 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; CALCULATING OR 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)

Description

【発明の詳細な説明】
【0001】
【産業上の利用分野】本発明は、メモリアクセス装置、
特にアドレス空間を複数領域(バンク)に分割して、各
領域を並列的にアクセスするアクセス装置に関する。コ
ンピュータシステムの処理速度を向上するには、主記憶
とコンピュータとの間に、超高速動作するメモリいわゆ
るキャッシュメモリを介在させるのが効果的である。コ
ンピュータの平均アクセス時間を、キャッシュメモリの
アクセス時間に相当して高速化することができる。
【0002】ところで、キャッシュメモリの容量は主記
憶に比べて小さいため、目的とするデータがキャッシュ
メモリ内に存在しない場合(ミスヒット)がしばしば起
こり得る。ミスヒットが発生すると、その都度、キャッ
シュメモリの内容が主記憶の内容で更新されることとな
り、コンピュータの動作速度が主記憶のアクセス速度に
依存して遅くなる不都合がある。
【0003】かかる不都合の対策として、(1)キャッ
シュメモリの容量を大きくする、(2)キャッシングの
アルゴリズムを改善してヒット率を高める、(3)主記
憶にキャッシュメモリのような高速/高性能素子(例え
ばSRAM)を採用する、等が考えられる。
【0004】しかし、(1)はシステムコストの面から
限界があり(2)はミスヒットを少なくすることはでき
るものの絶無化は不可能(3)は主記憶の容量に比例し
てシステムコストが大幅に上昇する、等の問題があっ
て、何れも有効な対策とは言い難いものであった。ここ
で、図23はマイクロプロセッサのバスサイクルの一例
を示すタイミングチャートであり、CLKはクロック信
号、ADDRESSはマイクロプロセッサからバス上に
出力されるリードまたはライト用のアドレスデータ、B
S#はバスサイクルの開始を示す制御信号(この信号と
CLKの論理が取られてアドレスデータがラッチされ
る)、DATAはリード(またはライト)データ、DC
#はリードされたデータが有効であること(またはライ
トデータの書き込み完了)を示す信号である。なお、#
は負論理を示す。
【0005】この例では、1サイクル(基本サイクル)
が2クロック(T1、T2)分の長さに設定されている。
これは、リードサイクルのデータとライトサイクルのデ
ータが、バス上で衝突すること(バスコンフリクト)が
ないようにするためである。すなわち、リード(または
ライト)アドレスをバス上に送出し、BS#の変化のタ
イミングでリード(またはライト)アドレスをラッチし
た後、リード(またはライト)データを読み出す(また
は書き込む)といった一連の動作を、2クロック長の基
本サイクルで実行できる。
【0006】このような高速の基本サイクルで読み書き
できるメモリとしては、例えばキャッシュメモリがある
が、一般的な主記憶はこれよりも遅い。例えば、1つの
リード(またはライト)サイクルが4クロックで完結す
る主記憶を考えると、その構成は図24のようになる。
なお、説明の都合上、キャッシュメモリは省略してあ
る。
【0007】かかる構成によるリードまたはライト動作
は、図25のタイミングチャートに示すように、マイク
ロプロセッサ側の基本サイクルが2クロック(T1
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
内の任意アドレスを指定するアドレスデータ(BANK
1アドレス)とを、基本サイクルC1、C2、C3、……毎
に交互に繰り返して出力することにより、総バンク数か
ら1基本サイクルを引いたサイクル数(アドレス先出し
数)の経過後、すなわち基本サイクルC2以降は、見掛
け上、基本サイクル毎にリード(またはライト)データ
を得ることができる。
【0011】したがって、基本サイクルCi(iは1、
2、……)のアドレスに対応したリードデータを、次の
基本サイクルCi+1で得ることができ、アドレスデータ
の出力動作とリードデータ(またはライトデータ)の読
み出し(または書き込み)動作とを並行的に実行するこ
とができる。その結果、バンク数と同じ段数のパイプラ
イン動作を行うことができ、キャッシュメモリに比べて
速度的に劣る主記憶を、キャッシュメモリ相当に高速化
して使用することができる。
【0012】
【発明が解決しようとする課題】しかしながら、かかる
従来のメモリアクセス装置にあっては、バンク数からア
ドレスの先出し数を決定し、その数と同じ段数のアドレ
スパイプラインを実行する(例えばバンク数4の場合は
4段のパイプラインとする)構成となっていたため、
ストライド値を用いてアドレス生成を行う場合や、間
接アドレスによってアドレス生成を行う場合に、同一バ
ンクに対する連続アクセスが発生することがあり、アド
レスパイプラインを実行できないといった問題点があっ
た。
【0013】一般に、科学技術計算プログラムなどで
は、多数のデータ要素に対して同一の演算内容を繰り返
す演算処理を行うことが多く、次に示すベクトル処理ル
ーチンはその代表的な例である。なお、例はフォートラ
ン表記である。 ステップ001 DO LABEL I=1,100 ステップ002 C(I)=A(I)+B(I) ステップ003 F(I)=D(I)*E(I) ステップ004 LABEL CONTINUE ステップ001からステップ004までのDOループ
を、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ビットまたは6
4ビットでありオペランド単位と言うこともある)の整
数倍の値α(αをストライド値と呼ぶ)で表す生成方式
である。例えばα=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)何れの場合も正常なパイプ
ライン動作を期待できないという欠点がある。なお、図
32(b)は、同図(a)に対してオペランド単位だけ
が異なる(64ビット→32ビット)場合の状態図であ
る。この場合、バンクを切換えながらop0、op2、
op3をアクセスできるので、上記不都合を生じること
はない。
【0018】そこで、本発明は、物理的なバンク数に拘
らず柔軟にパイプライン段数を設定でき、アドレス競合
を回避してパイプライン動作上の不都合発生を回避する
ことを目的としている。
【0019】
【課題を解決するための手段】本発明は、上記目的を達
成するためその原理図を図1に示すように、主記憶のア
ドレス空間を所定のデータ幅でアドレス順に等間隔に区
切り、該区切られたブロックをグループ化してn個のバ
ンクを構成すると共に、前記所定のデータ幅若しくは該
データ幅の半分の長さのオペランドを前記ブロックに格
納し、該オペランド長にストライド値を乗じた距離で、
パイプライン的なデータアクセスを実行するメモリアク
セス装置において、前記オペランド長が64ビットの場
合で、前記n=2の場合には、前記ストライド値の2進
化コードの下位1ビットの値に応じて、前記パイプライ
ン段数を1段、2段のいずれかに設定するパイプライン
段数設定手段を備えたことを特徴とする。または、主記
憶のアドレス空間を所定のデータ幅でアドレス順に等間
隔に区切り、該区切られたブロックをグループ化してn
個のバンクを構成すると共に、前記所定のデータ幅若し
くは該データ幅の半分の長さのオペランドを前記ブロッ
クに格納し、該オペランド長にストライド値を乗じた距
離で、パイプライン的なデータアクセスを実行するメモ
リアクセス装置において、前記オペランド長が64ビッ
トの場合で、前記n=4の場合には、前記ストライド値
の2進化コードの下位2ビットの値に応じて、前記パイ
プライン段数を1段、2段、4段のいずれかに設定する
パイプライン段数設定手段を備えたことを特徴とする。
または、主記憶のアドレス空間を所定のデータ幅でアド
レス順に等間隔に区切り、該区切られたブロックをグル
ープ化してn個のバンクを構成すると共に、前記所定の
データ幅若しくは該データ幅の半分の長さのオペランド
を前記ブロックに格納し、該オペランド長にストライド
値を乗じた距離で、パイプライン的なデータアクセスを
実行するメモリアクセス装置において、前記オペランド
長が32ビットの場合で、前記n=2の場合には、前記
ストライド値の2進化コードの下位2ビットの値に応じ
て、前記パイプライン段数を1段、2段のいずれかに設
定するパイプライン段数設定手段を備えたことを特徴と
する。 または、主記憶のアドレス空間を所定のデータ幅
でアドレス順に等間隔に区切り、該区切られたブロック
をグループ化してn個のバンクを構成すると共に、前
所定のデータ幅若しくは該データ幅の半分の長さのオペ
ランドを前記ブロックに格納し、該オペランド長にスト
ライド値を乗じた距離で、パイプライン的なデータアク
セスを実行するメモリアクセス装置において、前記オペ
ランド長が32ビットの場合で、前記n=4の場合に
は、前記ストライド値の2進化コードの下位3ビットの
値に応じて、前記パイプライン段数を1段、2段、4段
のいずれかに設定するパイプライン段数設定手段を備え
たことを特徴とする。
【0020】
【作用】本発明では、同一バンクを連続してアクセスす
るようなアドレスの生成時に、パイプライン段数が物理
的なバンク数に拘らず柔軟に設定され、アドレス競合を
回避してパイプライン動作上の不都合が排除される。
【0021】
【実施例】以下、本発明の実施例を図面に基づいて説明
する。原理説明 まず、本実施例の原理を説明すると、図2〜図4は「物
理的」なパイプライン段数をそれぞれ1段、2段、4段
とする各種パイプラインの構成例であり、各図のバンク
数は、所定の条件満足時を除き物理的パイプライン数に
対応している。すなわち図2の構成では1つのバンク
(BANK0)からなる主記憶を有し、図3の構成では
2つのバンク(BANK0、BANK1)からなる主記憶
を有し、また、図4の構成では4つのバンク(BANK
0、BANK1、BANK2、BANK3)からなる主記憶
を有している。
【0022】これらの主記憶は、メモリ制御回路やアド
レスバス及びデータバスを介してマイクロコントローラ
等のメモリアクセス装置に接続しており、メモリアクセ
ス装置には、例えばバンク数通知用の外部端子T0、T1
(バンク数設定用のレジスタでもよい)が設けられ、主
記憶のバンク数が外部から通知できるようになってい
る。図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、o
p2、……)に規則性が見られない。したがって、かか
る生成方式においては、バンク制御回路でのアドレスの
ラッチを可能とするために、アドレスの先出し数、すな
わちパイプライン段数を「1」に固定する。
【0031】以上のことから本実施例によれば、物理的
なバンク数に拘らず、適切なアドレスパイプライン段数
を柔軟に設定することができる。したがって、ストラ
イド値を用いてアドレス生成を行う場合や、間接アド
レスによってアドレス生成を行う場合のパイプライン段
数を最適化でき、その結果、キャッシュメモリに比べて
速度的に劣る主記憶を、あらゆる条件下でキャッシュメ
モリ相当に高速化して使用することができるという効果
を得ることができる。実施例 図16〜図22は本発明に係るメモリアクセス装置の一
実施例を示す図である。
【0032】まず、構成を説明する。図16はアドレス
パイプライン決定回路の構成図であり、この回路は、ア
ドレスレジスタ10、比較器11、命令デコーダ12、
外部端子13及びアドレスパイプライン段数設定部(ア
ドレスパイプライン段数設定手段)14を含む。アドレ
スレジスタ10は、ストライド値の下位nビットを通知
し、比較器11は、アドレス生成用レジスタ10からの
ストライド値と連続オペランド配列を示す基準ストライ
ド値(±1)との一致/不一致を判定し、命令デコーダ
12は、メモリアクセスの命令をデコードして、オペラ
ンド長の区別(例えば64ビットか32ビットかの区
別)を通知すると共に、アドレス生成方式の区別(スト
ライド値による生成方式か間接値による生成方式かの区
別)を通知し、外部端子13は、物理的なバンク数(B
ANK0、BANK1、……、BANKm-1)を通知し、
アドレスパイプライン段数設定部14は、これらの各通
知情報、すなわち、アドレス生成方式を示す情報
(D1)、オペランド長を示す情報(D2)、連続オペラ
ンド配列であるか否かを示す情報(D3)、物理的なバ
ンク数を示す情報(D4)、ストライド値の下位nビッ
トの情報(D5)、に基づいて「1」〜「k」のパイプ
ライン段数を選択的に設定する。
【0033】図17は、本実施例におけるタイミングシ
ーケンサの概念図である。この図では、例えば1、2及
び4の各バンク数に対応した3つのパイプライン部2
1、22、23を備え、それぞれのパイプライン部2
1、22、23は、アドレス先出し部分(左下がりハッ
チング)、アドレスとデータの処理部分(クロスハッチ
ング)、及び、パイプライン段数分のデータ処理部分
(右下がりハッチング)を備える。アドレス先出し部分
とデータ処理部分は1個を含む複数のユニットからな
り、ユニットの数は、上記のアドレスパイプライン段数
設定部14によって設定されたパイプライン段数「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 (4)

    (57)【特許請求の範囲】
  1. 【請求項1】主記憶のアドレス空間を所定のデータ幅で
    アドレス順に等間隔に区切り、該区切られたブロック
    グループ化してn個のバンクを構成すると共に、前記所
    定のデータ幅若しくは該データ幅の半分の長さのオペラ
    ンドを前記ブロックに格納し、該オペランド長にストラ
    イド値を乗じた距離で、パイプライン的なデータアクセ
    スを実行するメモリアクセス装置において、前記オペラ
    ンド長が64ビットの場合で、前記n=2の場合には、
    前記ストライド値の2進化コードの下位1ビットの値に
    応じて、前記パイプライン段数を1段、2段のいずれか
    に設定するパイプライン段数設定手段を備えたことを特
    徴とするメモリアクセス装置。
  2. 【請求項2】主記憶のアドレス空間を所定のデータ幅で
    アドレス順に等間隔に区切り、該区切られたブロックを
    グループ化してn個のバンクを構成すると共に、前記所
    定のデータ幅若しくは該データ幅の半分の長さのオペラ
    ンドを前記ブロックに格納し、該オペランド長にストラ
    イド値を乗じた距離で、パイプライン的なデータアクセ
    スを実行するメモリアクセス装置において、前記オペラ
    ンド長が64ビットの場合で、前記n=4の場合には、
    前記ストライド値の2進化コードの下位2ビットの値に
    応じて、前記パイプライン段数を1段、2段、4段のい
    ずれかに設定するパイプライン段数設定手段を備えたこ
    とを特徴とするメモリアクセス装置。
  3. 【請求項3】主記憶のアドレス空間を所定のデータ幅で
    アドレス順に等間隔に区切り、該区切られたブロックを
    グループ化してn個のバンクを構成すると共に、前記所
    定のデータ幅若しくは該データ幅の半分の長さのオペラ
    ンドを前記ブロックに格納し、該オペランド長にストラ
    イド値を乗じた距離で、パイプライン的なデータアクセ
    スを実行するメモリアクセス装置において、前記オペラ
    ンド長が32ビットの場合で、前記n=2の場合には、
    前記ストライド値の2進化コードの下位2ビットの値に
    応じて、前記パイプライン段数を1段、2段のいずれか
    に設定するパイプライン段数設定手段を備えたことを特
    徴とするメモリアクセス装置。
  4. 【請求項4】主記憶のアドレス空間を所定のデータ幅で
    アドレス順に等間隔に区切り、該区切られたブロックを
    グループ化してn個のバンクを構成すると共に、前記所
    定のデータ幅若しくは該データ幅の半分の長さのオペラ
    ンドを前記ブロックに格納し、該オペランド長にストラ
    イド値を乗じた距離で、パイプライン的なデータアクセ
    スを実行するメモリアクセス装置において、前記オペラ
    ンド長が32ビットの場合で、前記n=4の場合には、
    前記ストライド値の2進化コードの下位3ビットの値に
    応じて、前記パイプライン段数を1段、2段、4段のい
    ずれかに設定するパイプライン段数設定手段を備えたこ
    とを特徴とするメモリアクセス装置。
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
KR1019920008546A KR970006025B1 (ko) 1991-05-20 1992-05-20 메모리 억세스장치
DE69229763T DE69229763T2 (de) 1991-05-20 1992-05-20 Speicherzugriffsvorrichtung
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 JPH04343151A (ja) 1992-11-30
JP2625277B2 true 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)

Families Citing this family (29)

* 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
AU9693398A (en) 1997-10-10 1999-05-03 Rambus Incorporated Apparatus and method for pipelined memory operations
EP1327991A3 (en) * 1997-10-10 2005-05-11 Rambus Inc. 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
WO2004081946A1 (ja) * 2003-03-11 2004-09-23 Fujitsu Limited メモリ装置
US20050185465A1 (en) * 2003-03-11 2005-08-25 Fujitsu Limited Memory device
JP3659252B2 (ja) 2003-03-28 2005-06-15 セイコーエプソン株式会社 ベクトルデータのアドレス参照方法およびベクトルプロセッサ
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
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
US10777262B1 (en) 2016-12-06 2020-09-15 Gsi Technology, Inc. Read data processing circuits and methods associated memory cells
US10847213B1 (en) 2016-12-06 2020-11-24 Gsi Technology, Inc. Write data processing circuits and methods associated with computational memory cells
US10891076B1 (en) 2016-12-06 2021-01-12 Gsi Technology, Inc. Results processing circuits and methods associated with computational memory cells
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
US10854284B1 (en) 2016-12-06 2020-12-01 Gsi Technology, Inc. Computational memory cell and processing array device with ratioless write port
US11227653B1 (en) 2016-12-06 2022-01-18 Gsi Technology, Inc. Storage array circuits and methods for computational memory cells
US10998040B2 (en) 2016-12-06 2021-05-04 Gsi Technology, Inc. Computational memory cell and processing array device using the memory cells for XOR and XNOR computations
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
US10943648B1 (en) 2016-12-06 2021-03-09 Gsi Technology, Inc. Ultra low VDD memory cell with ratioless write port
US10860318B2 (en) 2016-12-06 2020-12-08 Gsi Technology, Inc. Computational memory cell and processing array device using memory cells
KR102664213B1 (ko) 2018-10-08 2024-05-08 삼성전자주식회사 인-메모리 프리페칭을 수행하는 메모리 장치 및 이를 포함하는 시스템
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
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
US10958272B2 (en) 2019-06-18 2021-03-23 Gsi Technology, Inc. Computational memory cell and processing array device using complementary exclusive or memory cells

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

Also Published As

Publication number Publication date
EP0515165B1 (en) 1999-08-11
KR970006025B1 (ko) 1997-04-23
JPH04343151A (ja) 1992-11-30
EP0515165A1 (en) 1992-11-25
US5768559A (en) 1998-06-16
DE69229763T2 (de) 1999-12-02
DE69229763D1 (de) 1999-09-16
KR920022117A (ko) 1992-12-19

Similar Documents

Publication Publication Date Title
JP2625277B2 (ja) メモリアクセス装置
US4086629A (en) Hierarchical data store with look-ahead action
JP3598589B2 (ja) プロセッサ
US5381360A (en) Modulo arithmetic addressing circuit
US5214765A (en) Method and apparatus for executing floating point instructions utilizing complimentary floating point pipeline and multi-level caches
US4980819A (en) Mechanism for automatically updating multiple unit register file memories in successive cycles for a pipelined processing system
JPS63150731A (ja) コンピュータシステムおよびその実行方法
KR970011207B1 (ko) 원자 억세스를 제공하는 레지스터가 소프트웨어 인터록 없이 공유된 레지스터의 개별 비트를 세트하고 클리어하기 위한 방법 및 장치
US20040177231A1 (en) Data processor
US20020026545A1 (en) Data processing apparatus of high speed process using memory of low speed and low power consumption
US5713001A (en) Circuit for converting address operands supplied by a program to hashed virtual address
US5787025A (en) Method and system for performing arithmetic operations with single or double precision
US5467460A (en) M&A for minimizing data transfer to main memory from a writeback cache during a cache miss
US5333291A (en) Stride enhancer for high speed memory accesses with line fetching mode and normal mode employing boundary crossing determination
JPH0827715B2 (ja) 記憶装置
EP0267628B1 (en) Microprocessor with a cache memory
JPH06242953A (ja) データ・プロセッサ
JPH06236353A (ja) マルチプロセッサ・コンピュータ・システムのシステム・メモリの並行性を増大する方法およびシステム
US4958274A (en) System with a N stages timing silo and P stages information silo for soloing information
JP3935871B2 (ja) パイプラインを有する計算回路のためのメモリ・システムおよびパイプラインの機能ユニットにデータを提供する方法
JP3215105B2 (ja) メモリアクセス装置
US4691282A (en) 16-bit microprocessor system
US5765221A (en) Method and system of addressing which minimize memory utilized to store logical addresses by storing high order bits within a register
EP1318450A2 (en) Address range checking circuit and method of operation
US6363469B1 (en) Address generation apparatus

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