JPH0736166B2 - データ転送方式 - Google Patents
データ転送方式Info
- Publication number
- JPH0736166B2 JPH0736166B2 JP63164018A JP16401888A JPH0736166B2 JP H0736166 B2 JPH0736166 B2 JP H0736166B2 JP 63164018 A JP63164018 A JP 63164018A JP 16401888 A JP16401888 A JP 16401888A JP H0736166 B2 JPH0736166 B2 JP H0736166B2
- Authority
- JP
- Japan
- Prior art keywords
- address
- bus
- data
- memory
- cpu
- 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 - Lifetime
Links
Landscapes
- Information Transfer Systems (AREA)
Description
【発明の詳細な説明】 〔産業上の利用分野〕 本発明は、CPUとメモリの間のデータ転送方式におい
て、特にデータ・バスとは独立なアドレス・バスをCPU
−メモリ間で接続した場合のデータ転送方式に関する。
て、特にデータ・バスとは独立なアドレス・バスをCPU
−メモリ間で接続した場合のデータ転送方式に関する。
情報処理装置の制御装置および演算装置(以下総称して
CPUと呼ぶ)と、記憶装置(以下メモリと呼ぶ)の間
は、メモリに格納されている命令コードやオペランド・
データをCPU内部へリードしたり、あるいは逆にCPUから
データをメモリにライトするために、オペランド・デー
タを転送するためのデータ・バスだけでなく、メモリの
アドレスを指定するためのアドレス・バスで結ばれてい
る。
CPUと呼ぶ)と、記憶装置(以下メモリと呼ぶ)の間
は、メモリに格納されている命令コードやオペランド・
データをCPU内部へリードしたり、あるいは逆にCPUから
データをメモリにライトするために、オペランド・デー
タを転送するためのデータ・バスだけでなく、メモリの
アドレスを指定するためのアドレス・バスで結ばれてい
る。
第3図に、従来の並列データ転送方式を用いたCPUとメ
モリ間の構成を示す。CPU301とメモリ302の間は、双方
向性データ・バスD、CPUよりアドレスを通知するアド
レス・バスA、データの転送方式(CPU→メモリ:ライ
ト、orCPU←メモリ:リード)を示すR/W(−)信号、デ
ータの転送期間を示す有効信号DS(−)、転送の開始タ
イミングを示すタイミング信号BCYST(−)が接続され
ている。
モリ間の構成を示す。CPU301とメモリ302の間は、双方
向性データ・バスD、CPUよりアドレスを通知するアド
レス・バスA、データの転送方式(CPU→メモリ:ライ
ト、orCPU←メモリ:リード)を示すR/W(−)信号、デ
ータの転送期間を示す有効信号DS(−)、転送の開始タ
イミングを示すタイミング信号BCYST(−)が接続され
ている。
CPU301がメモリ302内のデータに対してリードまたはラ
イトするためには、バス・サイクル中の所定のタイミン
グで、前記アドレス・バスA、R/W(−)信号、およびD
S(−)信号を駆動してやる必要がある。
イトするためには、バス・サイクル中の所定のタイミン
グで、前記アドレス・バスA、R/W(−)信号、およびD
S(−)信号を駆動してやる必要がある。
以下、(−)を付した信号は負論理であることを意味す
る。
る。
以下、具体的にバス・サイクルのタイミングを説明す
る。
る。
第4図は、バス・サイクルのタイミングを示す図面であ
り、第4図(a)はリード・バス・サイクル、第4図
(b)はライト・バス・サイクルを示している。それぞ
れのバス・サイクルは、1クロック(クロック信号CLK
の一周期)毎に変化するTステートなる状態(State)
で分割されており、基本的にはT1ステート、およびT2ス
テートの2つのステート(2クロック)で構成される。
メモリ装置302のアクセス速度がCPU301が発行するバス
・サイクルに比べ遅い場合は、バス・サイクルが終了す
るまでT2ステートに引き続きTWステートが必要なだけ挿
入される。
り、第4図(a)はリード・バス・サイクル、第4図
(b)はライト・バス・サイクルを示している。それぞ
れのバス・サイクルは、1クロック(クロック信号CLK
の一周期)毎に変化するTステートなる状態(State)
で分割されており、基本的にはT1ステート、およびT2ス
テートの2つのステート(2クロック)で構成される。
メモリ装置302のアクセス速度がCPU301が発行するバス
・サイクルに比べ遅い場合は、バス・サイクルが終了す
るまでT2ステートに引き続きTWステートが必要なだけ挿
入される。
また、常にCPU301がデータ転送を必要とするわけではな
いので、バス・サイクルが連続しないこのもあり、この
場合T2ステートあるいは最後のTWステートと次のバス・
サイクルのT1ステートの間にはTiステートが挿入される
ことがある。
いので、バス・サイクルが連続しないこのもあり、この
場合T2ステートあるいは最後のTWステートと次のバス・
サイクルのT1ステートの間にはTiステートが挿入される
ことがある。
アドレス・バスA、およびR/W(−)信号はT1ステート
で出力され(“0"ならばライト、“1"ならばリードであ
ることを示す)、次のバス・サイクルのT1まで保持され
る。BCYST(−)信号は、T1ステートのみ(1クロック
期間)アクティブ(“0")になる。
で出力され(“0"ならばライト、“1"ならばリードであ
ることを示す)、次のバス・サイクルのT1まで保持され
る。BCYST(−)信号は、T1ステートのみ(1クロック
期間)アクティブ(“0")になる。
リード・バス・サイクルの場合、DS(−)信号はT1ステ
ートの中途(CLK信号の立上がり)から、バス・サイク
ルが終了するまで、すなわちT2ステートあるいは最後の
TWステートが終了するまでの期間アクティブ(“0")に
なる(最小1.5クロック)。メモリ302はアドレス・バス
Aによって指定されるアドレスに対してR/W(−)信号
“1"であるためリード・アクセスを開始し、DS(−)信
号がアクティブ(“0")になったことで指定されたアド
レスのデータをデータ・バスDに出力する。
ートの中途(CLK信号の立上がり)から、バス・サイク
ルが終了するまで、すなわちT2ステートあるいは最後の
TWステートが終了するまでの期間アクティブ(“0")に
なる(最小1.5クロック)。メモリ302はアドレス・バス
Aによって指定されるアドレスに対してR/W(−)信号
“1"であるためリード・アクセスを開始し、DS(−)信
号がアクティブ(“0")になったことで指定されたアド
レスのデータをデータ・バスDに出力する。
CPU301がバス・サイクル終了時に安定してデータ・バス
D上のデータを取り込むために、最後のバス・サイクル
に対してセット・アップ・タイムtSR、およびホールド
・タイムtHRを保証する必要があり、バス・サイクル終
了時までアドレス・バスA上のアドレスを固定しておく
必要がある。
D上のデータを取り込むために、最後のバス・サイクル
に対してセット・アップ・タイムtSR、およびホールド
・タイムtHRを保証する必要があり、バス・サイクル終
了時までアドレス・バスA上のアドレスを固定しておく
必要がある。
一方、ライト・バス・サイクルの場合、DS(−)信号は
T2ステートから、バス・サイクルの終了ステート、すな
わちT2ステートあるいは最後のTWステートまでの期間ア
クティブ(“0")になる(最小1クロック期間)。メモ
リ302はアドレス・バスAによって指定されるアドレス
に対してR/W(−)信号が“0"であるためライト・アク
セスを開始し、DS(−)信号がアクティブ(“0")にな
ったことで指定されたアドレスのに対してデータ・バス
D上のデータをライトする。
T2ステートから、バス・サイクルの終了ステート、すな
わちT2ステートあるいは最後のTWステートまでの期間ア
クティブ(“0")になる(最小1クロック期間)。メモ
リ302はアドレス・バスAによって指定されるアドレス
に対してR/W(−)信号が“0"であるためライト・アク
セスを開始し、DS(−)信号がアクティブ(“0")にな
ったことで指定されたアドレスのに対してデータ・バス
D上のデータをライトする。
メモリ302内の指定したアドレスにライトするために
は、DS(−)信号のアクティブ(“0")に対するセット
・アップ・タイムtSW、インアクティブ(“1")に対す
るホールド・タイムtHW(通常0)を保証する必要があ
り、バス・サイクル終了時までアドレス・バスA上のア
ドレスを固定しておく必要がある。
は、DS(−)信号のアクティブ(“0")に対するセット
・アップ・タイムtSW、インアクティブ(“1")に対す
るホールド・タイムtHW(通常0)を保証する必要があ
り、バス・サイクル終了時までアドレス・バスA上のア
ドレスを固定しておく必要がある。
以上説明したように、従来の並列データ転送方式では、
リード・バス・サイクルおよびライト・バス・サイクル
の双方に対して、バス・サイクルの期間中アドレスを固
定する必要があるため、アドレスを通知するアドレス・
バスをデータ・バスと独立に必要とし、CPUとメモリの
間に多くの信号線を接続しなければならないという欠点
を有していた。
リード・バス・サイクルおよびライト・バス・サイクル
の双方に対して、バス・サイクルの期間中アドレスを固
定する必要があるため、アドレスを通知するアドレス・
バスをデータ・バスと独立に必要とし、CPUとメモリの
間に多くの信号線を接続しなければならないという欠点
を有していた。
また、CPUの能力の尺度の一つにアドレス空間の広さが
あげられ、高性能なCPUほど一般に広いアドレス空間を
持っている。顕著な例として、マイクロプロセッサにお
ける処理ビット幅とアドレス空間の関係があげられる。
安価ではあるが性能の低い8ビット処理のマイクロプロ
セッサでは、64KB(216バイト)のアドレス空間をアク
セスするために16本のアドレス・バスを、16ビット処理
のマイクロプロセッサでは、16MB(224バイト)のアド
レス空間をアクセスするためには24本のアドレス・バス
を、非常に性能の高い32ビット処理のマイクロプロセッ
サでは、4.3GB(232バイト)のアドレス空間をアクセス
するために32本のアドレス・バスを持っている。
あげられ、高性能なCPUほど一般に広いアドレス空間を
持っている。顕著な例として、マイクロプロセッサにお
ける処理ビット幅とアドレス空間の関係があげられる。
安価ではあるが性能の低い8ビット処理のマイクロプロ
セッサでは、64KB(216バイト)のアドレス空間をアク
セスするために16本のアドレス・バスを、16ビット処理
のマイクロプロセッサでは、16MB(224バイト)のアド
レス空間をアクセスするためには24本のアドレス・バス
を、非常に性能の高い32ビット処理のマイクロプロセッ
サでは、4.3GB(232バイト)のアドレス空間をアクセス
するために32本のアドレス・バスを持っている。
上記マイクロプロセッサの場合、アドレス・バスはデー
タ・バスの幅と等しいか、より大きく(8ビットCPU:16
=16、16ビットCPU:24>16、32ビットCPU:32=32)、大
量の信号線が必要であることになる。また、パッケージ
における端子数もそれだけ増加することになる。
タ・バスの幅と等しいか、より大きく(8ビットCPU:16
=16、16ビットCPU:24>16、32ビットCPU:32=32)、大
量の信号線が必要であることになる。また、パッケージ
における端子数もそれだけ増加することになる。
パッケージ端子数を減少させる方法として、データ・バ
スを時分割し、バス・サイクルの前半(あるいは最初の
Tステート)にアドレスを出力する方式が考えられた
が、Tステートを少なくとも1つは消費してしまうた
め、前記従来例で述べた2クロックで1バス・サイクル
を構成するような、高速なデータ転送においては採用す
ることができないという欠点を有している。
スを時分割し、バス・サイクルの前半(あるいは最初の
Tステート)にアドレスを出力する方式が考えられた
が、Tステートを少なくとも1つは消費してしまうた
め、前記従来例で述べた2クロックで1バス・サイクル
を構成するような、高速なデータ転送においては採用す
ることができないという欠点を有している。
従来、アドレス・バスはCPUからメモリや周辺I/Oにアド
レスを通知するために接続するが、本発明では従来の目
的に加えて、CPUからメモリへライトする場合にはCPUか
らライト・データを転送し、CPUからメモリへリードす
る場合にはメモリからリード・データを転送する補助的
なデータ・バスとして使用するという相違点がある。
レスを通知するために接続するが、本発明では従来の目
的に加えて、CPUからメモリへライトする場合にはCPUか
らライト・データを転送し、CPUからメモリへリードす
る場合にはメモリからリード・データを転送する補助的
なデータ・バスとして使用するという相違点がある。
一般にメモリへのアクセスは連続したアドレスに対して
行われることが多い。メモリへのアケセスは大別して命
令コードに対するものと、オペランド・データに対する
ものに分類できる。
行われることが多い。メモリへのアケセスは大別して命
令コードに対するものと、オペランド・データに対する
ものに分類できる。
命令コードの場合、ジャンプ、コール、リターン等の分
岐命令を実行しない限り、アドレスの増加方向へ順々に
アクセスが進む。これら分岐命令の出現頻度と、CPUの
アーキテクチャや実行するソフトウェアの性質により左
右されるが、連続したアドレスに対して命令コードのア
クセスが行われる確率が高いと言える。
岐命令を実行しない限り、アドレスの増加方向へ順々に
アクセスが進む。これら分岐命令の出現頻度と、CPUの
アーキテクチャや実行するソフトウェアの性質により左
右されるが、連続したアドレスに対して命令コードのア
クセスが行われる確率が高いと言える。
また、オペランド・データに対するアクセスの場合、特
に最近の高性能マイクロプロセッサて採用されている浮
動小数点データ(32〜80ビット長)や、文字列データの
場合にはデータが連続したアドレスに対して割り当てら
れ、このようなデータを操作するよう命令では、必ず連
続したアドレスに対して複数回のアクセスが続く。
に最近の高性能マイクロプロセッサて採用されている浮
動小数点データ(32〜80ビット長)や、文字列データの
場合にはデータが連続したアドレスに対して割り当てら
れ、このようなデータを操作するよう命令では、必ず連
続したアドレスに対して複数回のアクセスが続く。
このように連続したアドレスをアクセスするためには、
アクセスの度にバス・サイクルをアドレスを出力する必
要はなく、前回アクセスに使用されたアドレスを更新す
るだけで良いことが簡単に理解できる。前回アクセスに
使用したアドレスを更新するためには、CPUからメモリ
に対してアドレスを更新することを指定する信号を接続
するだけで済むため、連続アドレスのアクセス時にはア
ドレス・バスにアドレスを出力する必要はない。言い換
えれば、連続アドレスのアクセスに対応するバス・サイ
クルでは、アドレス・バスを自由に使用することができ
る。
アクセスの度にバス・サイクルをアドレスを出力する必
要はなく、前回アクセスに使用されたアドレスを更新す
るだけで良いことが簡単に理解できる。前回アクセスに
使用したアドレスを更新するためには、CPUからメモリ
に対してアドレスを更新することを指定する信号を接続
するだけで済むため、連続アドレスのアクセス時にはア
ドレス・バスにアドレスを出力する必要はない。言い換
えれば、連続アドレスのアクセスに対応するバス・サイ
クルでは、アドレス・バスを自由に使用することができ
る。
前述したよにアドレス・バスのビット幅は、一般にデー
タ・バスのビット幅と同等かあるいはそれ以上であるた
め、アドレス・バス経由でデータを転送しようとする
と、データ・バスと合わせて従来のデータ・バスのビッ
ト幅の少なくとも2倍のデータ転送を1回のバス・サイ
クルで行うことができ、すなわち2倍の転送レートを得
ることができる。とだし、バス・サイクルに対するアド
レスが直前のバス・サイクルに対して連続でない場合に
は、従来の方式と同様にアドレス・バスを用いてCPUか
らメモリにアドレスを出力する必要があり、アドレス・
バスを補助的データ・バスとして使用することはできな
いが、前述したように連続したアドレスに格納されてい
るデータ(命令コード、オペランド・データ)をアクセ
スする頻度が高いと考えられるので、十分な効果があ
る。
タ・バスのビット幅と同等かあるいはそれ以上であるた
め、アドレス・バス経由でデータを転送しようとする
と、データ・バスと合わせて従来のデータ・バスのビッ
ト幅の少なくとも2倍のデータ転送を1回のバス・サイ
クルで行うことができ、すなわち2倍の転送レートを得
ることができる。とだし、バス・サイクルに対するアド
レスが直前のバス・サイクルに対して連続でない場合に
は、従来の方式と同様にアドレス・バスを用いてCPUか
らメモリにアドレスを出力する必要があり、アドレス・
バスを補助的データ・バスとして使用することはできな
いが、前述したように連続したアドレスに格納されてい
るデータ(命令コード、オペランド・データ)をアクセ
スする頻度が高いと考えられるので、十分な効果があ
る。
本発明のデータ転送装置は、アドレスバスとデータバス
とで接続されたCPUとメモリとの間でデータ転送するデ
ータ転送装置において、前記CPUから前記メモリに対す
るアクセスが連続したアドレスに対して行われることを
検出する検出手段と、前記CPUの内部データバスを前記
アドレスバスに接続する手段と、前記データバスに接続
される前記メモリ内の第1のメモリバンクと、前記デー
タバスまたは前記アドレスバスに選択的に接続される前
記メモリ内の第2のメモリバンクと、前記検出手段によ
って検出された結果によって前記2つのメモリバンクに
対するアドレスを生成する手段とを有し、前記CPUが連
続したアドレスに対するアクセスを行うことを前記検出
手段が検出した場合に、前記アドレス生成手段によって
生成されたアドレスによって前記2つのメモリバンクを
アクセスし、前記2つのメモリバンクに対し複数のデー
タを同時に読み出しあるいは書き込みすると共に、前記
アドレスバス及び前記データバスの双方を介して前記複
数のデータを同時に転送することを特徴とする。
とで接続されたCPUとメモリとの間でデータ転送するデ
ータ転送装置において、前記CPUから前記メモリに対す
るアクセスが連続したアドレスに対して行われることを
検出する検出手段と、前記CPUの内部データバスを前記
アドレスバスに接続する手段と、前記データバスに接続
される前記メモリ内の第1のメモリバンクと、前記デー
タバスまたは前記アドレスバスに選択的に接続される前
記メモリ内の第2のメモリバンクと、前記検出手段によ
って検出された結果によって前記2つのメモリバンクに
対するアドレスを生成する手段とを有し、前記CPUが連
続したアドレスに対するアクセスを行うことを前記検出
手段が検出した場合に、前記アドレス生成手段によって
生成されたアドレスによって前記2つのメモリバンクを
アクセスし、前記2つのメモリバンクに対し複数のデー
タを同時に読み出しあるいは書き込みすると共に、前記
アドレスバス及び前記データバスの双方を介して前記複
数のデータを同時に転送することを特徴とする。
〔実施例1〕 以下図面を参照して、本発明の構成および動作を詳細に
説明する。
説明する。
第1図は、本発明の一実施例を示す図であり、32ビット
処理のCPU101、命令コードおよびオペランド・データを
格納し偶数アドレス・バンク103、および奇数アドレス
・バンク104を持つメモリ102、前記CPU101とメモリ102
の間を接続する32ビットの双方向性データ・バスD、32
ビットの双方向性アドレス・バスA、データの転送方向
を示すR/W(−)信号、データの転送期間を示す有効信
号DS(−)、転送の開始タイミングを示すタイミング信
号BCYST(−)、転送の終了タンミングを示すタイミン
グ信号BCYEND(−)、アドレス・バスAの使用状態を示
す制御信号ADREN(−)が接続されている。
処理のCPU101、命令コードおよびオペランド・データを
格納し偶数アドレス・バンク103、および奇数アドレス
・バンク104を持つメモリ102、前記CPU101とメモリ102
の間を接続する32ビットの双方向性データ・バスD、32
ビットの双方向性アドレス・バスA、データの転送方向
を示すR/W(−)信号、データの転送期間を示す有効信
号DS(−)、転送の開始タイミングを示すタイミング信
号BCYST(−)、転送の終了タンミングを示すタイミン
グ信号BCYEND(−)、アドレス・バスAの使用状態を示
す制御信号ADREN(−)が接続されている。
さらにメモリ102の内部において、偶数アドレス・バン
ク103は、32ビット・バッファ105を介してデータ・バス
Dと接続される。また、奇数アドレス・バンク104は、3
2ビット・バッファ106を介してデータ・バスD、あるい
は32ビット・バッファ107を介してアドレス・バスAと
接続される。
ク103は、32ビット・バッファ105を介してデータ・バス
Dと接続される。また、奇数アドレス・バンク104は、3
2ビット・バッファ106を介してデータ・バスD、あるい
は32ビット・バッファ107を介してアドレス・バスAと
接続される。
アドレス生成器108は、偶数アドレス・バンク103、およ
び奇数アドレス104に対して実際にアクセスの対象とな
るアドレスAmを生成する演算器(+1,+2または保
持)、制御回路109は、バッファ105,106,107およびアド
レス生成器108を制御する回路である。
び奇数アドレス104に対して実際にアクセスの対象とな
るアドレスAmを生成する演算器(+1,+2または保
持)、制御回路109は、バッファ105,106,107およびアド
レス生成器108を制御する回路である。
またCPU101の内部には、アドレス比較器111、アドレス
・バッファ112、データ・ラッチ113,114および制御回路
115を持つ。アドレス比較器111は、CPU101がアクセスし
たい(ワード・)アドレスaと直前にアクセスした(ワ
ード・)アドレスとを比較し、これらが連続である(差
が1である)ことを検出する。アドレス・バッファ112
は、アドレス比較器111が連続アクセスを検出しなかっ
た際に、CPU101がアクセスしたいアドレスaをアドレス
・バスAに接続する32ビットのバッファである。
・バッファ112、データ・ラッチ113,114および制御回路
115を持つ。アドレス比較器111は、CPU101がアクセスし
たい(ワード・)アドレスaと直前にアクセスした(ワ
ード・)アドレスとを比較し、これらが連続である(差
が1である)ことを検出する。アドレス・バッファ112
は、アドレス比較器111が連続アクセスを検出しなかっ
た際に、CPU101がアクセスしたいアドレスaをアドレス
・バスAに接続する32ビットのバッファである。
データ・ラッチ113は、アドレス比較器111が連続アクセ
スを検出した際にアドレス・バスAとCPU101内部のデー
タ・バスdを接続するバッファ機能付きの32ビット・レ
ジスタである。また、データ・ラッチ114はデータ・バ
スDとCPU内部のデータ・バスdを接続するバッファ機
能付きの32ビット・レジスタである。
スを検出した際にアドレス・バスAとCPU101内部のデー
タ・バスdを接続するバッファ機能付きの32ビット・レ
ジスタである。また、データ・ラッチ114はデータ・バ
スDとCPU内部のデータ・バスdを接続するバッファ機
能付きの32ビット・レジスタである。
制御回路115は、アドレス比較器111、アドレス・バッフ
ァ112、データ・ラッチ113,114を制御する回路である。
ァ112、データ・ラッチ113,114を制御する回路である。
前述した従来のデータ転送方式を接続信号の面で比較す
ると、アドレス・バスAがCPUからメモリへの単一方向
性であってたものが双方性であること、タイミング信号
BCYEND(−)、および制御信号ADREN(−)が加わった
点が構成上の相違である。このうちタイミング信号BCYE
ND(−)は、本発明の本質ではなく、バス・サイクルの
最後のTステート期間アクティブ(“0")になる信号で
ある。
ると、アドレス・バスAがCPUからメモリへの単一方向
性であってたものが双方性であること、タイミング信号
BCYEND(−)、および制御信号ADREN(−)が加わった
点が構成上の相違である。このうちタイミング信号BCYE
ND(−)は、本発明の本質ではなく、バス・サイクルの
最後のTステート期間アクティブ(“0")になる信号で
ある。
CPU101とメモリ102の間で発生するバス・サイクルは従
来例と同様に、基本的にT1,T2ステートの2クロックで
行われる。したがってBCYEND(−)信号は、T2ステート
あるいは最後のTWステート期間(1クロック)アクティ
ブ(“0")になる。
来例と同様に、基本的にT1,T2ステートの2クロックで
行われる。したがってBCYEND(−)信号は、T2ステート
あるいは最後のTWステート期間(1クロック)アクティ
ブ(“0")になる。
以下メモリ102を中心に本実施例の動作について説明す
る。
る。
ADREN(−)信号は、1バス・サイクル期間(T1ステー
トから、T2あるいは最後のTWステートまで)有効な信号
であり、“0"ならばアドレス・バスAにCPU101からメモ
リ102に対して32ビット幅のアドレスが出力されること
を示し、“1"ならばアドレス・バスAに32ビット・デー
タが出力される(R/W(−)信号が“0"の場合はCPU101
からメモリ102へのライト・データ、“1"の場合はメモ
リ102からCPU101へのリード・データ)を示す。
トから、T2あるいは最後のTWステートまで)有効な信号
であり、“0"ならばアドレス・バスAにCPU101からメモ
リ102に対して32ビット幅のアドレスが出力されること
を示し、“1"ならばアドレス・バスAに32ビット・デー
タが出力される(R/W(−)信号が“0"の場合はCPU101
からメモリ102へのライト・データ、“1"の場合はメモ
リ102からCPU101へのリード・データ)を示す。
ADREN(−)信号が“0"であるバス・サイクルでは、従
来方式と同様にアドレス・バスAに出力されたアドレス
Anに対応するメモリ102の32ビット・データがデータ・
バスDにリード(R/W(−)信号が“1"の場合)、ある
いはデータ・バスD上の32ビット・データがアドレスAn
に対応するメモリ102にライトされる。
来方式と同様にアドレス・バスAに出力されたアドレス
Anに対応するメモリ102の32ビット・データがデータ・
バスDにリード(R/W(−)信号が“1"の場合)、ある
いはデータ・バスD上の32ビット・データがアドレスAn
に対応するメモリ102にライトされる。
アドレス・バスAに出力されたアドレスAnは、アドレス
生成器108に転送され、この際アドレスAnが偶数であれ
ば偶数アドレス・バンク103が選択され、バッファ105を
介してデータ・バスDと接続される。また、Anが奇数で
あれば奇数アドレス・バンク104が選択され、バッファ1
06を介してデータ・バスDと接続される。
生成器108に転送され、この際アドレスAnが偶数であれ
ば偶数アドレス・バンク103が選択され、バッファ105を
介してデータ・バスDと接続される。また、Anが奇数で
あれば奇数アドレス・バンク104が選択され、バッファ1
06を介してデータ・バスDと接続される。
ADREN(−)信号が“1"であるバス・サイクルでは、前
回アクセスされたアドレス生成器108に保持されている
アドレスAnに対して1あるいは2を加えたアドレスAm
(An+1あるいはAn+2)を生成し、メモリ102の内部
てはアドレスAmに対してアクセスが行われる。新たに生
成されたアドレスAmは、アドレス生成器108に保持され
る。アドレスAmの生成条件は、以下のとうりであり、制
御回路109によって制御される。
回アクセスされたアドレス生成器108に保持されている
アドレスAnに対して1あるいは2を加えたアドレスAm
(An+1あるいはAn+2)を生成し、メモリ102の内部
てはアドレスAmに対してアクセスが行われる。新たに生
成されたアドレスAmは、アドレス生成器108に保持され
る。アドレスAmの生成条件は、以下のとうりであり、制
御回路109によって制御される。
An+1:直前のアクセスCPUからアドレスAnが転送された
(ADREN(−)が“0")時、直前のアクセスで使用され
たアドレスAnが奇数の時 An+2:直前のアクセスで使用されたアドレスAnが偶数の
時 さらに、2つのアドレス・バンク103,104は、制御回路1
09によって生成されたアドレスAmに対して以下のように
データ・バスD、またはアドレス・バスAに接続され
る。
(ADREN(−)が“0")時、直前のアクセスで使用され
たアドレスAnが奇数の時 An+2:直前のアクセスで使用されたアドレスAnが偶数の
時 さらに、2つのアドレス・バンク103,104は、制御回路1
09によって生成されたアドレスAmに対して以下のように
データ・バスD、またはアドレス・バスAに接続され
る。
Amが偶数:偶数アドレス・バンク103はバッファ105を介
してデータ・バスDに、奇数アドレス・バンク104はバ
ッファ107を介してアドレス・バスAに接続される。
してデータ・バスDに、奇数アドレス・バンク104はバ
ッファ107を介してアドレス・バスAに接続される。
Amが奇数:奇数アドレス・バンク104はバッファ106を介
してデータ・バスDに接続される。
してデータ・バスDに接続される。
次に本発明の動作について具体的な値を用いて説明す
る。
る。
第5図は0番地から連続して63番地までのバイト・デー
タを連続してリードする場合のタイミングを示す図面で
ある。本実施例ではデータ・バスDのビット幅が32ビッ
トであるため、1回のバス・サイクルで4バイト分の転
送が行えるので、従来の方式では8回のバス・サイクル
を必要とする。
タを連続してリードする場合のタイミングを示す図面で
ある。本実施例ではデータ・バスDのビット幅が32ビッ
トであるため、1回のバス・サイクルで4バイト分の転
送が行えるので、従来の方式では8回のバス・サイクル
を必要とする。
まず、最初のバス・サイクルB1ではADREN(−)信号は
“0"であり、アドレス・バスAには0が出力され、アド
レス生成器108にはワード・アドレス0がラッチされ、
偶数アドレス・バンク103に格納されている0,1,2,3番地
のバイト・データ(1番目ワード・データW0)がバッフ
ァ105を介してデータ・バスDにリードされる。
“0"であり、アドレス・バスAには0が出力され、アド
レス生成器108にはワード・アドレス0がラッチされ、
偶数アドレス・バンク103に格納されている0,1,2,3番地
のバイト・データ(1番目ワード・データW0)がバッフ
ァ105を介してデータ・バスDにリードされる。
次のバス・サイクルB2ではADREN(−)信号は“1"であ
り、直前のアクセスがADREN(−)信号が“0"で行われ
たため、アドレス生成器108は直前の内容に1を加えた
ワード・アドレス1(バイト・アドレス4)を生成し、
奇数アドレス・バンク103に格納されている4,5,6,7番地
のバイト・データ(2番目のワード・データW1)がバッ
ファ106を介してデータ・バスDにリードされる。
り、直前のアクセスがADREN(−)信号が“0"で行われ
たため、アドレス生成器108は直前の内容に1を加えた
ワード・アドレス1(バイト・アドレス4)を生成し、
奇数アドレス・バンク103に格納されている4,5,6,7番地
のバイト・データ(2番目のワード・データW1)がバッ
ファ106を介してデータ・バスDにリードされる。
3番目のバス・サイクルB3ではADREN(−)信号は“1"
であり、直前のアクセスがADREN(−)信号が“1"で行
われ、かつアドレス生成器108の内容が奇数(1)であ
るため、アドレス生成器108は直前の内容に1を加えた
ワード・アドレス2(バイト・アドレス8)を生成し、
偶数アドレス・バンク103に格納されている8,9,10,11番
地のバイト・データ(3番目のワード・データW2)がバ
ッファ105を介してデータ・バスDにリードされ、同時
に奇数アドレス・バンク103に格納されている11,12,13,
14番地のバイト・データ(4番目のワード・データW3)
がバッファ107を介してアドレス・バスAにリードされ
る。
であり、直前のアクセスがADREN(−)信号が“1"で行
われ、かつアドレス生成器108の内容が奇数(1)であ
るため、アドレス生成器108は直前の内容に1を加えた
ワード・アドレス2(バイト・アドレス8)を生成し、
偶数アドレス・バンク103に格納されている8,9,10,11番
地のバイト・データ(3番目のワード・データW2)がバ
ッファ105を介してデータ・バスDにリードされ、同時
に奇数アドレス・バンク103に格納されている11,12,13,
14番地のバイト・データ(4番目のワード・データW3)
がバッファ107を介してアドレス・バスAにリードされ
る。
4番目のバス・サイクルB4ではADREN(−)信号は“1"
であり、直前のアクセスがADREN(−)信号が“1"で行
われ、かつアドレス生成器108の内容が偶数(2)であ
るため、アドレス生成器108は直前の内容に2を加えた
ワード・アドレス4(バイト・アドレス16)を生成し、
5番目のワード・データW4と6番目のワード・データW5
が、それぞれデータ・バスDならびにアドレス・バスA
にリードされる。
であり、直前のアクセスがADREN(−)信号が“1"で行
われ、かつアドレス生成器108の内容が偶数(2)であ
るため、アドレス生成器108は直前の内容に2を加えた
ワード・アドレス4(バイト・アドレス16)を生成し、
5番目のワード・データW4と6番目のワード・データW5
が、それぞれデータ・バスDならびにアドレス・バスA
にリードされる。
5番目のバス・サイクルB5では、4番目のバス・サイク
ルと同様の動作によって、7番目のワード・データW6と
8番目のワード・データW7がそれぞれデータ・バスDな
らびにアドレス・バスAにリードされる。
ルと同様の動作によって、7番目のワード・データW6と
8番目のワード・データW7がそれぞれデータ・バスDな
らびにアドレス・バスAにリードされる。
以上説明したように、本発明を用いれことで従来8回の
バス・サイクルを必要としたデータ転送を5回のバス・
サイクルで実現することができ、バス・サイクルの数は
約63%へ低減できる。
バス・サイクルを必要としたデータ転送を5回のバス・
サイクルで実現することができ、バス・サイクルの数は
約63%へ低減できる。
本動作例では8ワード分のデータ転送を例にとったが、
16ワード分のデータ転送では9回のバス・サイクルで約
56%へ低減、32ワード分のデータ転送ては17回のバス・
サイクルで約53%へ低減と、連続したアドレスに対する
アクセス回数が続くほど、従来に対してバス・サイクル
の数を最小1/2(50%)に低減するこてができる。
16ワード分のデータ転送では9回のバス・サイクルで約
56%へ低減、32ワード分のデータ転送ては17回のバス・
サイクルで約53%へ低減と、連続したアドレスに対する
アクセス回数が続くほど、従来に対してバス・サイクル
の数を最小1/2(50%)に低減するこてができる。
また、本動作例では偶数(ワード・)アドレスから始ま
る連続アクセスを例にとって説明したが、奇数(ワード
・)アドレスから始まる連続アクセスの場合は、2番目
のバス・サイクルにおいて、アドレス生成器108の値が
偶数になっているため、このバス・サイクルから、デー
タ・バスD、およびアドレス・バスAの双方を用いた64
ビット・(2ワード・)データ転送を開始することがで
きる。
る連続アクセスを例にとって説明したが、奇数(ワード
・)アドレスから始まる連続アクセスの場合は、2番目
のバス・サイクルにおいて、アドレス生成器108の値が
偶数になっているため、このバス・サイクルから、デー
タ・バスD、およびアドレス・バスAの双方を用いた64
ビット・(2ワード・)データ転送を開始することがで
きる。
〔実施例2〕 次に本発明の別の一実施例について説明する。
第2図に本実施例の構成を示す。前記第一の実施例の構
成に対して、バス・サイクル判別器220、アドレス・バ
スAを介したデータ転送を行うことのできない従来のメ
モリ202、およびアドレス・バスAを介したデータ転送
を行うことのできる命令キャッシュ・メモリ203を持つ
ことが特徴である。
成に対して、バス・サイクル判別器220、アドレス・バ
スAを介したデータ転送を行うことのできない従来のメ
モリ202、およびアドレス・バスAを介したデータ転送
を行うことのできる命令キャッシュ・メモリ203を持つ
ことが特徴である。
バス・サイクル判別器220がCPU201が命令コードに対す
るアクセスであることを検出すると、前記第一の実施例
で述べたように連続アドレスに対するアクセスに関する
制御を行う。バス・サイクル判別器220が命令コード以
外のアクセスであることを検出すると、制御回路215は
連続アドレスに対するアクセスであってもアドレス・バ
スAを用いたデータ転送を行わないよに制御する。
るアクセスであることを検出すると、前記第一の実施例
で述べたように連続アドレスに対するアクセスに関する
制御を行う。バス・サイクル判別器220が命令コード以
外のアクセスであることを検出すると、制御回路215は
連続アドレスに対するアクセスであってもアドレス・バ
スAを用いたデータ転送を行わないよに制御する。
このような制御によって、命令キャッシュ・メモリ203
に命令コードに対するアクセスのみ、アドレス・バスA
を用いてデータを転送することができる。
に命令コードに対するアクセスのみ、アドレス・バスA
を用いてデータを転送することができる。
命令キャッシュ・メモリは、一般のメイン・メモリに対
して記憶容量が大きくないのて、本発明に関するハード
ウェアを含めて集積(LSI)化することが可能である。
しかも命令コードに関しては、アクセスの連続性がオペ
ランド・データに対するものよりも大きいため、メモリ
全体に本発明を適用する場合と比較して、性能低下は小
さい。
して記憶容量が大きくないのて、本発明に関するハード
ウェアを含めて集積(LSI)化することが可能である。
しかも命令コードに関しては、アクセスの連続性がオペ
ランド・データに対するものよりも大きいため、メモリ
全体に本発明を適用する場合と比較して、性能低下は小
さい。
以上説明したように、本発明を用い連続したアドレスに
対してアクセスする際に、CPUとメモリの間に接続され
たアドレス・バスを補助的なデータ・バスとして用いる
ことで、バス・サイクルを延長することなしに、従来よ
りも最大2倍の転送ルートを得ることができる。
対してアクセスする際に、CPUとメモリの間に接続され
たアドレス・バスを補助的なデータ・バスとして用いる
ことで、バス・サイクルを延長することなしに、従来よ
りも最大2倍の転送ルートを得ることができる。
特にCPUの命令コードのアクセスや、文字ストリングや
浮動小数点データのようにビット数の長いオペランド・
データを頻繁にアクセスする場合にこの効果が増す。
浮動小数点データのようにビット数の長いオペランド・
データを頻繁にアクセスする場合にこの効果が増す。
第1図は本発明の一実施例の構成を示す図面、第2図は
本発明の別の実施例の構成を示す図面、第3図は従来の
並列データ転送方式の構成を示す図面、第4図は基本的
なバス・サイクルのタイミングを示す図面、第5図は本
発明の第一の実施例における動作タイミングを示す図面
である。 101,201,301……CPU、102,202,302……メモリ、103……
偶数アドレス・バンク、104……奇数アドレス・バン
ク、105,106,107……バッファ、108……アドレス生成
器、109……制御回路、111……アドレス比較器、112…
…アドレス・バッファ、113,114……データ・ラッチ、1
15,215……制御回路、220……バス・サイクル判定器。
本発明の別の実施例の構成を示す図面、第3図は従来の
並列データ転送方式の構成を示す図面、第4図は基本的
なバス・サイクルのタイミングを示す図面、第5図は本
発明の第一の実施例における動作タイミングを示す図面
である。 101,201,301……CPU、102,202,302……メモリ、103……
偶数アドレス・バンク、104……奇数アドレス・バン
ク、105,106,107……バッファ、108……アドレス生成
器、109……制御回路、111……アドレス比較器、112…
…アドレス・バッファ、113,114……データ・ラッチ、1
15,215……制御回路、220……バス・サイクル判定器。
Claims (1)
- 【請求項1】アドレスバスとデータバスとで接続された
CPUとメモリとの間でデータ転送するデータ転送装置に
おいて、前記CPUから前記メモリに対するアクセスが連
続したアドレスに対して行われることを検出する検出手
段と、前記CPUの内部データバスを前記アドレスバスに
接続する手段と、前記データバスに接続される前記メモ
リ内の第1のメモリバンクと、前記データバスまたは前
記アドレスバスに選択的に接続される前記メモリ内の第
2のメモリバンクと、前記検出手段によって検出された
結果によって前記2つのメモリバンクに対するアドレス
を生成する手段とを有し、前記CPUが連続したアドレス
に対するアクセスを行うことを前記検出手段が検出した
場合に、前記アドレス生成手段によって生成されたアド
レスによって前記2つのメモリバンクをアクセスし、前
記2つのメモリバンクに対し複数のデータを同時に読み
出しあるいは書き込みすると共に、前記アドレスバス及
び前記データバスの双方を介して前記複数のデータを同
時に転送することを特徴とするデータ転送方式。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP63164018A JPH0736166B2 (ja) | 1988-06-29 | 1988-06-29 | データ転送方式 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP63164018A JPH0736166B2 (ja) | 1988-06-29 | 1988-06-29 | データ転送方式 |
Publications (2)
Publication Number | Publication Date |
---|---|
JPH0212358A JPH0212358A (ja) | 1990-01-17 |
JPH0736166B2 true JPH0736166B2 (ja) | 1995-04-19 |
Family
ID=15785223
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP63164018A Expired - Lifetime JPH0736166B2 (ja) | 1988-06-29 | 1988-06-29 | データ転送方式 |
Country Status (1)
Country | Link |
---|---|
JP (1) | JPH0736166B2 (ja) |
Families Citing this family (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO1998019245A1 (fr) * | 1996-10-28 | 1998-05-07 | I-O Data Device Inc. | Procede de transfert de donnees |
US8108563B2 (en) | 2006-02-24 | 2012-01-31 | Qualcomm Incorporated | Auxiliary writes over address channel |
US8107492B2 (en) * | 2006-02-24 | 2012-01-31 | Qualcomm Incorporated | Cooperative writes over the address channel of a bus |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPS62231365A (ja) * | 1986-04-01 | 1987-10-09 | Mitsubishi Electric Corp | 情報処理方式 |
-
1988
- 1988-06-29 JP JP63164018A patent/JPH0736166B2/ja not_active Expired - Lifetime
Also Published As
Publication number | Publication date |
---|---|
JPH0212358A (ja) | 1990-01-17 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
KR900004006B1 (ko) | 마이크로 프로세서 시스템 | |
US5768559A (en) | Multiple bank structured memory access device having flexible setting of a pipeline stage number | |
US5347636A (en) | Data processor which efficiently accesses main memory and input/output devices | |
US20060195650A1 (en) | Method to detect NAND-flash parameters by hardware automatically | |
JPS6338794B2 (ja) | ||
JPS6297036A (ja) | 計算機システム | |
JPH0527971A (ja) | 情報処理装置 | |
US5463760A (en) | Break function in-circuit emulator for a microprocessor with a cache memory | |
JPS61118850A (ja) | マイクロプロセツサ | |
US5742842A (en) | Data processing apparatus for executing a vector operation under control of a master processor | |
JPH0736166B2 (ja) | データ転送方式 | |
JP3096576B2 (ja) | メモリ制御回路とその回路を内蔵した集積回路素子 | |
JPH05225122A (ja) | Dmaにおけるバースト転送方式 | |
JP3242474B2 (ja) | データ処理装置 | |
JP3043341B2 (ja) | マイクロコンピュータシステム | |
JP2924004B2 (ja) | 命令コード転送方式 | |
JPS6383844A (ja) | マイクロプロセツサシステム | |
JPS61237145A (ja) | ストアバツフアの制御方式 | |
JPS6235142B2 (ja) | ||
JP2721611B2 (ja) | プログラマブルコントローラ | |
JPS63103342A (ja) | 主記憶制御装置 | |
JPS6391756A (ja) | 記憶装置の部分書き込み命令処理方式 | |
JPH05173778A (ja) | データ処理装置 | |
JPS635432A (ja) | マイクロプロセツサ | |
JP3355057B2 (ja) | Dmaコントローラ |