JPH08171510A - メモリアクセス方式 - Google Patents

メモリアクセス方式

Info

Publication number
JPH08171510A
JPH08171510A JP31515494A JP31515494A JPH08171510A JP H08171510 A JPH08171510 A JP H08171510A JP 31515494 A JP31515494 A JP 31515494A JP 31515494 A JP31515494 A JP 31515494A JP H08171510 A JPH08171510 A JP H08171510A
Authority
JP
Japan
Prior art keywords
address
read
data
control unit
loaded
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.)
Withdrawn
Application number
JP31515494A
Other languages
English (en)
Inventor
Hidetoshi Shirasawa
英俊 白沢
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 JP31515494A priority Critical patent/JPH08171510A/ja
Publication of JPH08171510A publication Critical patent/JPH08171510A/ja
Withdrawn legal-status Critical Current

Links

Landscapes

  • Advance Control (AREA)

Abstract

(57)【要約】 (修正有) 【目的】相対的に低速なメモリを高速にアクセスする。 【構成】制御部1の連続したメモリ空間に対応する各デ
ータを1アドレス毎に振り分けて記憶している複数のメ
モリ21 ,22 、制御部1のある時点の読出アドレスA
をロードしてメモリ21 ,22 に読出アクセスを行うと
共に、以後は独自に自己の読出アドレスPAを更新して
データの先読を行う先読制御部3、及びメモリ21 ,2
2 の読出データD1 ,D2 を制御部1の読出アドレスA
に従って出力するデータ選択部4を備える。好ましく
は、制御部の読出アドレスAと先読制御部の読出アドレ
スPAとを比較するアドレス比較部5を備え、不一致を
検出した場合は、制御部の読出アドレスAを先読制御部
3にロードする。また、先読データより分岐命令コード
を検出するオペコード処理部6を備え、無条件分岐命令
コードを検出した場合は、そのオペランド部にあるジャ
ンプ先の先読データを先読制御部3にロードする。

Description

【発明の詳細な説明】
【0001】
【産業上の利用分野】本発明はメモリアクセス方式に関
し、更に詳しくは制御部(CPU等)が相対的に低速な
メモリをアクセスする場合のメモリアクセス方式に関す
る。CPUの動作速度は年々高速になっており、1バス
サイクルのクロックステート数も減少の傾向にある。ま
た、近年は低消費電力化の傾向が強く、3V動作のCP
Uが登場している。これに対してメインプログラムやデ
ータ等を格納しているROMの動作速度はCPUに追い
つかない状況にある。この状況はROMを低消費電力化
するほど顕著に表れる。そこで、相対的に低速なメモリ
を高速にアクセスできるメモリアクセス方式の提供が望
まれる。
【0002】
【従来の技術】図19は従来のメモリアクセス方式を説
明する図である。図19(A)は従来のメモリアクセス
方式のブロック図で、図において300は汎用のCP
U、301は64Kbyte のROM、310はチップセレ
クト生成部、307はWAIT制御部である。
【0003】このCPU300は、例えば不図示の高速
RAMにアクセスする時は、2つのクロックステートT
1,T2でメモリアクセスを終了する。しかし、低速の
ROM301をアクセスする時は、以下のようになる。
図19(B)は従来のメモリアクセス方式のタイミング
チャートである。チップセレクト生成部310は、CP
U300のメモリアクセス要求信号XMRQ=L(アク
ティブ)の時に、そのアドレス信号A[15:0]がR
OMアドレス空間(例えば0000H 〜CFFFH )を
指す時は、ROMチップセレクト信号ROMCS=L
(アクティブ)を出力する。WAIT制御部307は、
ROM301が低速であることにより、この例では2ク
ロックステート分のWAIT(RDY)信号を生成す
る。
【0004】
【発明が解決しようとする課題】従って、ROM301
のアクセス時間はRAMの場合の2倍になってしまう。
このため、従来はCPUのパフォーマンスを活かせない
という欠点があった。なお、高速ROMを使用すること
も考えられるが、非常に高価となり、現実的とは言えな
い。
【0005】本発明の目的は、相対的に低速なメモリを
高速にアクセス可能なメモリアクセス方式を提供するこ
とにある。
【0006】
【課題を解決するための手段】上記の課題は図1の構成
により解決される。即ち、本発明のメモリアクセス方式
は、制御部の連続したメモリ空間に対応する各データを
1アドレス毎に振り分けて記憶している複数のメモリ
と、制御部のある時点の読出アドレスをロードして前記
複数のメモリに読出アクセスを行うと共に、以後は独自
に自己の読出アドレスを更新して先行するデータの先読
を行う先読制御部と、複数のメモリの読出データを制御
部の読出アドレスに従って選択し、該制御部に出力する
データ選択部とを備えるものである。
【0007】
【作用】説明の簡単のため制御部(例えばCPU)1と
2つのメモリ21 ,22 の場合について説明する。メモ
リ21 ,22 は制御部1の連続したメモリ空間(アドレ
ス0,1,2,3,…)に対応する各データを1アドレ
ス毎に交互に振り分けて記憶している。
【0008】即ち、例えば制御部1の0番地のデータは
メモリ21 の0番地に、制御部1の1番地のデータはメ
モリ22 の0番地に、制御部1の2番地のデータはメモ
リ2 1 の1番地に、制御部1の3番地のデータはメモリ
2 の1番地に、夫々記憶している。先読制御部3は、
制御部1のある時点の読出アドレスAをロードしてその
出力アドレスPA(例えばPA=A/2)によりメモリ
1 ,22 に同時に読出アクセスを行うと共に、以後は
独自に自己の読出アドレスPAを更新して先行するデー
タの先読を行う。そして、データ選択部4はメモリ
1 ,22 の読出データD 1 ,D2 を制御部1の読出ア
ドレスA(例えば、その最下位ビットLSBの0/1)
に従って選択し、該制御部1に出力する。
【0009】具体的に言うと、例えば制御部1のある時
点の読出アドレスA=0番地とする。先読制御部3は、
そのロードアドレスPA=0を使用してメモリ21 ,2
2 の0番地から制御部1の0,1番地のデータD1 ,D
2 を同時に読み出す。メモリ21 ,22 は相対的に低速
なので、制御部1は最初に要求した0番地のデータD 1
を受け取るまでに、例えば制御部1の定格の待ち時間T
の2倍の時間2Tを待つことになる。
【0010】最初の待ち時間2Tを経過すると、制御部
1は読出アドレスA=0に従ってデータ選択部4より0
番地のデータD1 を受け取る。次いで、制御部1は読出
アドレスA=1により次のメモリアクセスを行う。しか
るに、この時点では制御部1の1番地のデータD2 は既
に先読されているので、制御部1は引き続きアドレスA
=1に従ってデータ選択部4より1番地のデータD2
待ち時間Tで受け取れる。
【0011】一方、先読制御部3は最初のPA=0の読
出アクセスを完了したことにより、その後は独自に自己
の読出アドレスPAを更新(例えば+1)して先行する
PA=1番地のデータの先読を行う。従って、次の時間
2Tを経過した時は、メモリ21 ,22 の1番地から制
御部1の2,3番地のデータD1 ,D2 が同時に読み出
される。これにより、制御部1は引き続き2番地のデー
タD1 を時間Tで受け取り、更に3番地のデータD2
時間Tで受け取れる。
【0012】以下、同様にしてこの先読関係が継続し、
よって制御部1は最初の読出アクセスの場合のみ時間2
Tを待たされるが、以後は定格の待ち時間Tで連続して
データを受け取れる。好ましくは、制御部1の読出アド
レスAと先読制御部3の読出アドレスPAとを比較する
アドレス比較部5を備え、該アドレス比較部5がアドレ
ス不一致を検出した場合は、制御部1の読出アドレスA
を先読制御部3にロードする。
【0013】例えば制御部1がCPUである場合は、ジ
ャンプ命令等の実行によりCPU1の読出アドレスAが
ジャンプする場合がある。また、それ以外の理由でも、
A≠PAと成り得る場合がある。係る場合でも、制御部
1の読出アドレスAを先読制御部3に再ロードすれば、
新たな先読関係が再開される。また好ましくは、任意の
先読データD1 ,D2 の中よりジャンプ又はサブルーチ
ンコールの命令コードを検出するオペコード処理部6を
備え、該オペコード処理部6がジャンプ又はサブルーチ
ンコールの命令コードを検出した場合は、そのオペラン
ド部にあるジャンプ先の先読データD1 ,D2 を先読制
御部3にロードする。
【0014】例えば、CPU1の10〜13番地の連続
する先読データD1 〜D4 が、D1=ジャンプオペコー
ド、D2 =1stオペランド(ジャンプ先アドレスの上位
ビット=10H )、D3 =2ndオペランド(ジャンプ先
アドレスの下位ビット=00 H )、D4 =他のオペコー
ドとする。これに対するCPU1の動きは、10番地の
ジャンプオペコードをフェッチ・実行したことにより、
続く11,12番地のオペランド=1000H を内部に
取り込み、1000H 番地のオペコードのフェッチ・実
行に移行する。
【0015】かかる場合でも、本発明によれば、オペコ
ード処理部6が先読データD1 の中よりジャンプオペコ
ードを検出した場合は、続く11,12番地の先読オペ
ランドデータD2 ,D3 =1000H をCPU1に提供
後、該先読オペランドデータD2 ,D3 =1000H
独自に先読制御部3にロードするので、既に成立してい
る先読関係はそのまま継続される。なお、サブルーチン
コールの場合も同様である。
【0016】また好ましくは、任意の先読データD1
2 の中より条件分岐の命令コードを検出するオペコー
ド処理部6を備え、該オペコード処理部6が条件分岐の
命令コードを検出した場合は、前記条件分岐の飛び先が
確定した時点の制御部1の読出アドレスAを先読制御部
3にロードする。例えば、CPU1の10〜13番地の
連続する先読データD1 〜D4 が、D1=条件分岐オペ
コード、D2 =1stオペランド(条件マッチした場合の
ジャンプ先アドレスの上位ビット=10H )、D3 =2
ndオペランド(条件マッチした場合のジャンプ先アドレ
スの下位ビット=00H )、D4 =条件マッチしない場
合にフェッチ・実行される他のオペコードとする。
【0017】これに対するCPU1の動きは、10番地
の条件分岐オペコードをフェッチ・実行したことによ
り、条件マッチした場合は続く11,12番地のオペラ
ンド=1000H を内部に取り込み、1000H 番地の
オペコードのフェッチ・実行に移行する。また、条件マ
ッチしない場合は13番地のオペコードのフェッチ・実
行に移行する。
【0018】係る場合でも、本発明によれば、オペコー
ド処理部6が先読データD1 の中より条件分岐の命令コ
ードを検出した場合は、条件分岐の飛び先が確定した時
点(この例ではCPU1が条件分岐オペコードをフェッ
チ・実行した次の時点)の制御部1の読出アドレスAを
先読制御部3にロードするので、既に成立している先読
関係を効率良く利用できる。
【0019】即ち、条件マッチした場合はCPU1の次
アドレスAをロードしても、A=PAとなるので、上記
無条件ジャンプの場合と同様にすることで、既に成立し
ている先読関係をそのまま継続できる。また、条件マッ
チしなかった場合はA≠PAとなるので、新たな先読関
係を形成する。また好ましくは、制御部1による割込許
可信号IAKの発生によりその時点の制御部1の読出ア
ドレスAをアドレス記憶部7に記憶すると共に、制御部
1の次の読出アドレスAを先読制御部3にロードする。
【0020】また好ましくは、任意の先読データD1
2 の中から割込リターンの命令コードを検出するオペ
コード処理部6を備え、該オペコード処理部6が割込リ
ターン命令を検出した場合は、アドレス記憶部7のアド
レスに所定数(例えば1)を加えたものを先読制御部1
にロードする。
【0021】
【実施例】以下、添付図面に従って本発明による実施例
を詳細に説明する。なお、全図を通して同一符号は同一
又は相当部分を示すものとする。図2,図3は実施例の
メモリアクセス方式のブロック図(1),(2)で、図
2において、200は汎用のCPU、201,202は
ROM、204はラッチ回路(LTH)、205は外部
アドレスカウンタ(図1の先読制御部3に相当)、20
6はROMアウトプットイネーブル(OE)タイミング
生成部、207はWAIT制御部、209はアドレス比
較部、210はチップセレクト生成部、211はデータ
セレクタ(SEL)、214はデータマルチプレクサ
(MUX)部、217〜219はラッチ回路(LTH)
である。
【0022】また図3において、208はオペコード処
理部、215は16ビット幅のレジスタ(REG)、2
16はANDゲート回路(A)、224はラッチ回路
(LTH)、225は加算器(ADD)、223はデー
タセレクタ(SEL)、228はアドレスカウンタイネ
ーブル生成部、229はアドレスカウンタロード生成
部、230は遅延回路(D)である。
【0023】図2において、CPU200の連続したメ
モリ空間に対応する各データの内、ROM201は偶数
アドレスのデータを記憶し、ROM202は奇数アドレ
スのデータを記憶している。チップセレクト生成部21
0は、CPU200のメモリアクセス要求信号XMRQ
=L(アクティブ)の時に、そのアドレス信号A[1
5:0]がROM201,202のメモリ空間(例えば
0000H 〜DFFFH )を指す時は、ROMチップセ
レクト信号ROMCS=L(アクティブ)を出力する。
【0024】ラッチ回路204は、CPUのアドレス信
号A[15:0]をアドレススタート信号ADSの各立
ち下がりでラッチし、CPUアドレスラッチ信号AL
[15:1]を形成する。外部アドレスカウンタ205
は、最初はCPUアドレスラッチ信号AL[15:1]
をロードしてROM201,202のリードアクセスを
行う。しかし、その後はCPU200のプログラムカウ
ンタ(不図示)が通常は+1されること予測して、独自
に自己のアドレスカウント信号AC[15:1]を+1
し、ROMデータの先読を行う。またCPU200の読
出アドレスAが不連続に変化した場合は、新たなCPU
アドレスラッチ信号AL[15:1]がロードされる。
【0025】図4に外部アドレスカウンタ205の回路
図を示す。データセレクタSELはアドレスカウンタC
TRにロードするアドレスデータを選択する。即ち、カ
ウンタイネーブル信号CNEN=L(ノンアクティブ)
の時はCPUアドレスラッチ信号AL[15:1]の側
を選択し、またCNEN=H(アクティブ)の時は後述
のロードアドレス信号LDAD[15:1]の側を選択
する。
【0026】アドレスカウンタCTRは、非同期ロード
型のカウンタであり、カウンタロード信号CNLD=L
(アクティブ)の時は入力端子Dのアドレスデータをロ
ードする。またCNLD=H(ノンアクティブ)で、か
つCNEN=H(アクティブ)の時は、アドレススター
ト信号ADSの2回に1回の割合で発生するクロック信
号CKによりアドレスカウント信号AC[15:1]を
+1する。
【0027】図2に戻り、データセレクタ211は、C
NEN=L(ノンアクティブ)の時はCPUアドレスラ
ッチ信号AL[15:1]の側を選択してROMアドレ
ス信号RA[15:1]となし、またCNEN=H(ア
クティブ)の時はアドレスカウント信号AC[15:
1]の側を選択してROMアドレス信号RA[15:
1]となす。なお、このデータセレクタ211を削除
し、RA[15:1]=AC[15:1]としても良
い。
【0028】このROMアドレス信号RA[15:1]
は実際にROM201及び202に供給され、各ROM
よりROM読出データ信号ROM1D[7:0],RO
M2D[7:0]が同時に読み出される。ラッチ回路2
18,219はROM出力イネーブル信号XROMOE
=L(アクティブ)の区間に発生したROM読出データ
信号ROM1D[7:0],ROM2D[7:0]をラ
ッチし、ROMデータラッチ信号ROM1LD[7:
0],ROM2LD[7:0]を形成する。
【0029】このROMアドレス信号RA[15:1]
は、通常はアドレスカウント信号AC[15:1]に従
ってROMデータの先読制御に使用される。しかし、何
らかの理由でCPU200の読出アドレスAが不連続な
値に飛ぶと、先読データを提供できなくなる。そこで、
ラッチ回路217を設け、ROMアドレス信号RA[1
5:1]を後述のタイミング信号DTIMの各立ち上が
りでラッチすると共に、その出力のROMアドレスラッ
チ信号RAL[15:1]をアドレス比較部209に提
供する。
【0030】アドレス比較部209は、CPUアドレス
ラッチ信号AL[15:1]とROMアドレスラッチ信
号RAL[15:1]とを比較し、一致する場合はCP
Uアドレスラッチ信号のLSBビットAL[0]の0又
は1(偶数又は奇数)に応じてROMデータ選択信号R
OM1EN又はROM2ENを生成する。また、CPU
アドレスラッチ信号AL[15:1]とROMアドレス
信号RA[15:1]とを比較し、不一致の場合はRO
Mディセーブル信号ROMDS=H(アクティブ)を出
力する。
【0031】図5にアドレス比較部209の回路図を示
す。コンパレータCMP1 はXROMCS=L(アクテ
ィブ)の時に付勢され、AL[15:1]とRAL[1
5:1]とを比較する。AL[15:1]=RAL[1
5:1]の時は比較結果信号A=BがH(アクティブ)
となり、ANDゲート回路A1 ,A2 を付勢する。そし
て、AL[0]=0(偶数)の場合はROM1EN=1
(アクティブ)となり、またAL[1]=1(奇数)の
場合はROM2EN=1(アクティブ)となる。
【0032】コンパレータCMP2 は、XROMCS=
L(アクティブ)で、かつCPU200のROM出力イ
ネーブル信号XOE=L(アクティブ)の時に付勢さ
れ、AL[15:1]とRA[15:1]とを比較す
る。AL[15:1]≠RA[15:1]の時はROM
ディセーブル信号ROMDS=H(アクティブ)を出力
する。この信号の発生は、外部アドレスカウンタ205
にAL[15:1]を強制ロードする原因となる。
【0033】図2に戻り、OEタイミング生成部206
は、ROMアウトプットイネーブル信号XROMOE及
びタイミング信号DTIMを生成する。図6にOEタイ
ミング生成部206の回路図を示す。また図11にOE
タイミング生成部206の動作タイミングチャートを示
す。図2に戻り、WAIT制御部207は、CPU20
0へのROMデータの提供に4クロックステート分が必
要となるような時に2クロックステート分のレディー信
号RDYを生成する。
【0034】図7にWAIT制御部207の回路図を示
す。XROMCS=L(アクティブ)の時に、CNLD
=L(アクティブ)で、かつCNEN=L(ノンアクテ
ィブ)の状態になると、2クロックステート分のレディ
ー信号RDY(即ち、WAIT信号)=H(アクティ
ブ)を生成する。図2に戻り、データMUX部214
は、ROM1EN=1(アクティブ)の時にROMラッ
チデータ信号ROM1LD[7:0]を選択してCPU
200に提供し、またROM2EN=1(アクティブ)
の時にROMラッチデータ信号ROM2LD[7:0]
を選択してCPU200に提供する。
【0035】本来、ROMデータの読出には4クロック
ステート分の時間を要するのであるが、1回のROMア
クセスでCPU200の2アドレス分のROMデータを
読み出すことで、見かけ上のROM高速読出を可能にし
ている。更に、本実施例においては、CPU200がジ
ャンプ、サブルーチンコール、条件分岐、割込処理等を
行うことを考慮し、これらの場合でもCPU200がR
OMアクセスを迅速、有効に行えるように、各種回路が
設けられている。
【0036】図3において、ラッチ回路224は、CP
U200への割込要求信号IRQ=H(アクティブ)に
なって後、割込許可信号IAK=H(アクティブ)にな
った時のCPUアドレスラッチ信号AL[15:0]を
ラッチする。このラッチしたアドレスに加算器225で
+1したアドレスが、割込処理からの戻り先アドレス信
号RETADである。
【0037】オペコード処理部208は、先読されたR
OMデータラッチ信号ROM1LD[7:0],ROM
2LD[7:0]に基づきジャンプ、サブルーチンコー
ル、条件分岐及び割込リターンの各オペコードの検出を
行うと共に、該オペコードを検出した時はジャンプ・サ
ブルーチンコール検出信号JPCALOP、条件分岐検
出信号IFOP又は割込リターン検出信号RETIOP
を出力する。
【0038】図8にオペコード処理部208の回路図を
示す。例えばROM201の0番地に最初のオペコード
が格納されているとする。最初は、CPU200のリセ
ット信号XRESET=L(アクティブ)によりFF 5
が強制セットされ、OPコード検出イネーブル信号OP
1=H(アクティブ)となる。これにより、図の上半分
の側のデコーダDEC1 〜DEC3 がイネーブルされ、
夫々は分岐命令、ジャンプ・コール命令及びそのオペラ
ンド数の検出を行う。
【0039】例えばROM201の0番地のオペコード
がジャンプ(又はサブルーチンコール)のオペコードと
すると、これはデコーダDEC2 を満足し、XROMO
Eの立ち上がりでFF2 がセットされる。即ち、JPC
AL1 =H(アクティブ)になる。また、同時に該ジャ
ンプオペコードの一部に格納されているオペランド数
(バイト数)のデータがデコーダDEC3 で対応するカ
ウント値X1 に変換され、更にその上位ビットの内容が
ダウンカウンタDCTR1 にロードされる。
【0040】カウント値X1 の上位ビットの内容は、例
えばオペランド数=1,2の場合は「0」であり、これ
は次のROM読出サイクルで次のオペコードが読み出さ
れることを表す。またオペランド数=3,4の場合は
「1」であり、これは次の次のROM読出サイクルで次
のオペコードが読み出されることを表す。また、カウン
ト値X1 の下位ビットLSBはANDゲート回路A2
3 に加えられる。この下位ビットLSBの内容は、オ
ペランド数が奇数の時は「H」で、偶数の時は「L」で
ある。また通常はDEC4 の出力は「L」である。
【0041】例えば上記ジャンプオペコードに続くオペ
ランド数=2とする。この場合はDCTR1 にロードさ
れるカウント値は「0」であり、X1 の下位ビットの内
容は「L」である。DCTR1 はカウント値=0により
そのボロー信号BO=H(アクティブ)を出力し、これ
により次のROM読出サイクルでもカウント値のロード
がイネーブルされる。即ち、次のROM読出サイクルで
もオペコードの検出が行われる。但し、前のROM読出
サイクルにおけるX1 の下位ビットの内容=Lにより、
ANDゲート回路A3 を満足し、これにより次のROM
読出サイクルではOP2=H(アクティブ)である。
【0042】一方、図3において、上記ジャンプオペコ
ードに引き続きROM201,202から読み出される
各オペランドデータROM2LD[7:0],ROM1
LD[7:0]は、JPCALOP=H(アクティブ)
により、レジスタ215に所定の方法でセットされる。
即ち、CPU200の若い側の1番地に対応する1st
ペランドデータROM2LD[7:0]はレジスタ21
5のMSB側にセットされ、CPU200の2番地に対
応する2ndオペランドデータROM1LD[7:0]は
LSB側にセットされる。
【0043】図8に戻り、デコーダDEC3 は、OP1
=L(ノンアクティブ)の時には、通常ではあり得ない
特定のカウント値X1 を出力する。この場合は、デコー
ダDEC4 の出力=H(ノンアクティブ)となり、図8
の上半分の回路の動作は消勢される。同様にして、OP
2=H(アクティブ)の場合は、図8の下半分の回路が
付勢され、上記と同様の動作を行う。かくして、ROM
201,202のいずれにオペコードが含まれていて
も、正しくオペコードの検出が行われる。
【0044】なお、図示しないが、オペコード処理部2
08には割込リターン命令RETIOPの検出回路も含
まれる。図3に戻り、アドレスカウンタイネーブル生成
部228はカウンタイネーブル信号CNENの生成を行
う。またアドレスカウンタロード生成部229はカウン
タロード信号CNLDの生成を行う。図9にアドレスカ
ウンタイネーブル生成部228の回路図を示す。また図
10にアドレスカウンタロード生成部229の回路図を
示す。いずれも、所定の入力信号により付勢され、必要
なタイミングに必要な時間幅の信号CNEN又はCNL
Dを出力するものである。
【0045】図12は実施例の基本アクセス時のタイミ
ングチャートである。この例のCPU200は、最初に
0番地のROMリードアクセス要求を発生している。そ
こで、外部アドレスカウンタ205に0番地をロード
し、ROM201,202の0番地にROMリードアク
セスをかける。この最初のROMリードアクセスには4
クロックステート分の時間がかかるので、RDY信号に
よりCPU200に2クロック分のウエイトサイクルT
Wを挿入する。やがて、最初の4クロックステート分の
時間を経過すると、ROM201,202からCPU2
00の0,1番地のデータが同時に読み出される。この
うちの1番地のデータは先読データである。
【0046】従って、CPU200の最初の0番地のR
OMリードアクセス要求に対しては4クロックステート
目に0番地のデータを提供できる。そして、CPU20
0の続く1番地のROMリードアクセス要求に対しては
その2クロックステート目に1番地のデータを提供でき
る。更に、この区間では外部アドレスカウンタ205は
独自に+1を行い、ROM201,202の1番地に引
き続きROMリードアクセスをかけている。従って、C
PU200が引き続き2番地のROMリードアクセス要
求をかけた場合はその2クロックステート目に2番地の
データを提供できる。更にCPU200が3番地のRO
Mリードアクセス要求をかけた場合はその2クロックス
テート目に3番地のデータを提供できる。以下同様であ
り、かくして、最初の4クロックステートの後は、常に
2クロックステートでCPU200にデータを提供で
き、相対的に低速なROMの高速アクセスが実現され
る。
【0047】図13は実施例のROM以外にアクセス時
のタイミングチャートである。この例のCPU200
は、例えば0,1番地のROMリードアクセス要求を行
った後、RAM領域(又はI/O空間領域)に対するア
クセスを行っている。これに対して、図9のアドレスカ
ウンタイネーブル生成部228では、XROMCS=H
(ノンアクティブ)により、ADSで2クロックステー
ト分の間CNEN=H(ノンアクティブ)とする。これ
により、外部アドレスカウンタ205はカウントディセ
ーブルとされ、その時点のカウント値を保持する。従っ
て、その後にCPU200のROMリードアクセス要求
が再開された時は、引き続き2クロックステート分の待
ち時間で2,3番地のデータを提供できる。
【0048】図14は実施例のアドレス不一致検出時の
タイミングチャートである。この例のCPU200は、
例えば5番地のジャンプオペコードのフェッチ・実行、
及び続く6,7番地のオペランドデータ(ジャンプ先ア
ドレス=1000)の読出により、無条件で1000番
地にある次のオペコードの読出に移行している。その結
果、CPU200のアドレスラッチ信号AL[15:
1]とROM先読アドレス信号RA[15:1]との間
に不一致が生じる。
【0049】これに対して、図5のアドレス比較部20
9では、XROMCS=L(アクティブ)で、かつXO
E=L(アクティブ)の時に、AL[15:1]≠RA
[15:1]を検出したことにより、ROMDS=H
(アクティブ)を出力する。更に、図8のアドレスカウ
ンタイネーブル生成部228では、ROMDS=Hによ
り3クロックステート分のCNEN=L(ノンアクティ
ブ)が形成され、また図10のアドレスカウンタロード
生成部229では、3クロックステート分のROMDS
F=Lにより、同じ時間幅のCNLD=L(アクティ
ブ)が形成される。これらにより、外部アドレスカウン
タ205にはAL[15:1]=「800」がロードさ
れ、新たな先読サイクルが起動される。これはCPU2
00のアドレスで言うと「1000」,「1001」に
対応する。
【0050】一方、図7のWAIT制御部207では、
ROMDSの立ち下がりによってウエイト信号RDYが
付勢され、これによりCPU200の1000番地に対
するROMリードアクセス要求は4クロックステート分
待たされる。しかし、1001番地以降の各アクセス要
求は2クロックステート分で満たされる。なお、以上の
処理は、図3のオペコード処理部208を備えない場
合、又は不測の事態でAL[15:1]≠RA[15:
1]が発生した場合等に、先読処理の一致化が図れ、有
効である。
【0051】但し、本実施例ではオペコード処理部20
8を備えるので、CPU200がJMP,CALL等の
分岐処理を行っても、これに対する先読制御を一層能率
良く行える。図15は実施例のJMP,CALL処理の
タイミングチャートである。この例のCPU200は、
例えば7番地のJPオペオペコードの読出、及び続く
8,9番地のオペランドデータ(ジャンプ先アドレス=
100)の読出により、100番地にある次のオペコー
ドの読出に移行する。
【0052】これに対して、図8のオペコード処理部2
08では、OP2=H(アクティブ)の時に先読データ
ROM2LD[7:0]のJPオペコードを検出するこ
とにより、JPCAL2 =H(アクティブ)を出力す
る。これにより、図3のレジスタ215には、続く8,
9番地の先読(オペランド)データROM1LD[7:
0],ROM2LD[7:0]が夫々MSB側、LSB
側にセットされる。
【0053】一方、図10のアドレスカウンタロード生
成部229では、JPCALOP=H(アクティブ)の
立ち下がりエッジを検出して1クロックステート分のC
NLD=L(アクティブ)を発生する。これにより、外
部アドレスカウンタ205には図3のセレクタ223の
出力のLDAD[15:1]=「80」がロードされ、
これによりCPUアドレスの100,101番地の先読
サイクルが継続される。このように、CPU200の飛
び先アドレスが事前に検出できるので、RDY信号は発
生せず、CPU200は2クロックステートで処理を継
続できる。
【0054】なお、図3の遅延回路230は、JPCA
LOP=L(ノンアクティブ)となった時の時間を引き
延ばし、これによりレジスタ215の側のデータ選択を
可能にしている。図16は実施例の条件分岐処理のタイ
ミングチャートである。この例のCPU200は、例え
ば7番地の条件分岐オペコードのフェッチ・実行によ
り、分岐条件を判定する。分岐条件を満足した場合の飛
び先アドレスは続く8,9番地のオペランドデータ(条
件マッチの場合のジャンプ先アドレス=100)にあ
り、この場合は100番地にある次のオペコードの読出
に移行する。しかし、この例は条件を満足しない場合を
示しており、この場合は続く10番地にある次のオペコ
ードの読出に移行する。
【0055】これに対して、図8のオペコード処理部2
08では、OP2=H(アクティブ)の時に先読データ
ROM2LD[7:0]の条件分岐オペコードを検出す
ることにより、IF2 =H(アクティブ)を出力する。
一方、図9のアドレスカウンタイネーブル生成部228
では、IFOP=H(アクティブ)により、その立ち上
がりエッジを検出して所定時間経過後に所定クロックス
テート分の間CNEN=L(ノンアクティブ)とする。
また図10のアドレスカウンタロード生成部229で
は、IFOP=H(アクティブ)の立ち上がりエッジを
検出して所定時間経過後に所定クロックステート分のC
NLD=L(アクティブ)を発生する。
【0056】この時点では、CPU200は既に条件判
定を終了しており、該判定結果に応じて、続く8,9番
地のオペランドデータの読出、又は10番地の次のオペ
コードの読出に移行する。もし、条件マッチし、CPU
200が続く8,9番地のオペランドデータの読出に移
行した場合は、該8,9番地のアクセスに関しては引き
続きAL[15:1]=RA[15:1]の関係を満足
できるので、図示しないが、この関係を検出することで
上記無条件ジャンプの場合と同様の処理を行い、先読関
係をそのまま継続できる。
【0057】また、条件マッチせず、CPU200が1
0番地の次のオペコードの読出に移行した場合は、引き
続きAL[15:1]=RA[15:1]の関係を満足
できないので、この関係を検出することで、図示の如く
ロードされたRA[15:1]に従って、新たに先読関
係を確立する。なお、上記条件分岐命令を検出した場合
は、その後の所定区間のROMアクセス制御をCPU2
00からの制御下に置くように構成しても良い。この場
合は、例えば条件分岐命令検出後のCPU200の3ア
ドレス区間分はROMアクセスをAL[15:1]のル
ートで行い、その後の、飛び先アドレスが確定した時点
のAL[15:1]を外部アドレスカウンタ205にロ
ードする。
【0058】図17は実施例の割込処理のタイミングチ
ャートである。この例のCPU200は、7番地の処理
実行中に外部からの割込要求IRQを受け、そのマシン
ステートT2の終わりに該割込要求IRQを受け付けた
ことにより割込許可信号IAKを発生している。ハード
ウエアにより決められた割込ジャンプ先は例えば6FE
番地であり、CPU200は割込許可信号IAKの出力
と同時に6FE番地のデータ読出を行うことになる。
【0059】これに対して、図3では、IRQ=H、か
つIAK=Hにより、ラッチ回路224にその時点のA
L[15:0]=「7」をラッチする。これに加算器2
25で+1したものが割込処理からの戻り先番地RET
AD[15:0]=「8」である。また図9のアドレス
カウンタイネーブル生成部228では、IAKの発生に
より、その後の4クロックステート分の間、CNEN=
L(ノンアクティブ)とする。また図10のアドレスカ
ウンタロード生成部229でも、IAKF=Lにより、
CNLD=L(アクティブ)を発生する。これにより、
外部アドレスカウンタ205にはAL[15:1]=
「37F」がロードされ、これによりCPUアドレスの
6FE,6FF番地からの先読サイクルが起動される。
【0060】図18は実施例の割込リターン処理のタイ
ミングチャートである。この例のCPU200は、70
3番地で割込リターンオペコードRETIのフェッチ・
実行を行い、割込前の次の処理番地8の読出に移行す
る。これに対して、同様にしてオペコード処理部208
はRETIOP=Hを生成し、これに基づきアドレスカ
ウンタロード生成部229はCNLD=L(アクティ
ブ)を生成する。そして、これによりラッチ回路224
にラッチされていた戻り先アドレスRETADが外部ア
ドレスカウンタ205にロードされ、新たな先読サイク
ルが起動される。
【0061】なお、上記実施例ではCPU200による
メモリアクセス方式を述べたが、本方式はCPU以外の
各種ハードウエア制御部によるメモリアクセスにも適用
できる。例えば相対的に低速なメモリ(ROM,RAM
等)からデータをシーケンシャルに読み出すような場合
でも、本発明方式によりデータを先読すれば、見かけ上
データを高速に読み出せる。
【0062】また、上記実施例は2つのメモリの場合を
述べたが、3つ以上のメモリに適用しても良いことは明
らかである。また、上記本発明に好適なる実施例を述べ
たが、本発明思想を逸脱しない範囲内で、構成及び制御
の様々な変更が行えることは言うまでも無い。
【0063】
【発明の効果】以上述べた如く本発明のメモリアクセス
方式は、上記構成であるので、制御部は相対的に低速な
メモリを見かけ上高速にアクセスできる。
【図面の簡単な説明】
【図1】図1は本発明の原理を説明する図である。
【図2】図2は実施例のメモリアクセス方式のブロック
図(1)である。
【図3】図3は実施例のメモリアクセス方式のブロック
図(2)である。
【図4】図4は外部アドレスカウンタ205の回路図で
ある。
【図5】図5はアドレス比較部209の回路図である。
【図6】図6はOEタイミング生成部206の回路図で
ある。
【図7】図7はWAIT制御部207の回路図である。
【図8】図8はオペコード処理部208の回路図であ
る。
【図9】図9はアドレスカウンタイネーブル生成部22
8の回路図である。
【図10】図10はアドレスカウンタロード生成部22
9の回路図である。
【図11】図11はOEタイミング生成部のタイミング
チャートである。
【図12】図12は実施例の基本アクセス時のタイミン
グチャートである。
【図13】図13は実施例のROM以外にアクセス時の
タイミングチャートである。
【図14】図14は実施例のアドレス不一致検出時のタ
イミングチャートである。
【図15】図15は実施例のJMP,CALL処理のタ
イミングチャートである。
【図16】図16は実施例の条件分岐処理のタイミング
チャートである。
【図17】図17は実施例の割込処理のタイミングチャ
ートである。
【図18】図18は実施例の割込リターン処理のタイミ
ングチャートである。
【図19】図19は従来のメモリアクセス方式を説明す
る図である。
【符号の説明】
1 制御部 21 ,22 メモリ 3 先読制御部 4 データ選択部 5 アドレス比較部 6 オペコード処理部 7 アドレス記憶部

Claims (6)

    【特許請求の範囲】
  1. 【請求項1】 制御部の連続したメモリ空間に対応する
    各データを1アドレス毎に振り分けて記憶している複数
    のメモリと、 制御部のある時点の読出アドレスをロードして前記複数
    のメモリに読出アクセスを行うと共に、以後は独自に自
    己の読出アドレスを更新して先行するデータの先読を行
    う先読制御部と、 複数のメモリの読出データを制御部の読出アドレスに従
    って選択し、該制御部に出力するデータ選択部とを備え
    ることを特徴とするメモリアクセス方式。
  2. 【請求項2】 制御部の読出アドレスと先読制御部の読
    出アドレスとを比較するアドレス比較部を備え、該アド
    レス比較部がアドレス不一致を検出した場合は、制御部
    の読出アドレスを先読制御部にロードすることを特徴と
    する請求項1のメモリアクセス方式。
  3. 【請求項3】 先読データの中よりジャンプ又はサブル
    ーチンコールの命令コードを検出するオペコード処理部
    を備え、該オペコード処理部がジャンプ又はサブルーチ
    ンコールの命令コードを検出した場合は、そのオペラン
    ド部にあるジャンプ先の先読データを先読制御部にロー
    ドすることを特徴とする請求項1のメモリアクセス方
    式。
  4. 【請求項4】 先読データの中より条件分岐の命令コー
    ドを検出するオペコード処理部を備え、該オペコード処
    理部が条件分岐の命令コードを検出した場合は、前記条
    件分岐の飛び先が確定した時点の制御部の読出アドレス
    を先読制御部にロードすることを特徴とする請求項1の
    メモリアクセス方式。
  5. 【請求項5】 制御部による割込許可信号の発生により
    その時点の制御部の読出アドレスをアドレス記憶部に記
    憶すると共に、制御部の次の読出アドレスを先読制御部
    にロードすることを特徴とする請求項1のメモリアクセ
    ス方式。
  6. 【請求項6】 先読データの中から割込リターンの命令
    コードを検出するオペコード処理部を備え、該オペコー
    ド処理部が割込リターン命令を検出した場合は、アドレ
    ス記憶部のアドレスに所定数を加えたものを先読制御部
    にロードすることを特徴とする請求項5のメモリアクセ
    ス方式。
JP31515494A 1994-12-19 1994-12-19 メモリアクセス方式 Withdrawn JPH08171510A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP31515494A JPH08171510A (ja) 1994-12-19 1994-12-19 メモリアクセス方式

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP31515494A JPH08171510A (ja) 1994-12-19 1994-12-19 メモリアクセス方式

Publications (1)

Publication Number Publication Date
JPH08171510A true JPH08171510A (ja) 1996-07-02

Family

ID=18062073

Family Applications (1)

Application Number Title Priority Date Filing Date
JP31515494A Withdrawn JPH08171510A (ja) 1994-12-19 1994-12-19 メモリアクセス方式

Country Status (1)

Country Link
JP (1) JPH08171510A (ja)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20020025793A (ko) * 2000-09-29 2002-04-04 이데이 노부유끼 메모리 장치 및 메모리 액세스 제한 방법
JP2008117414A (ja) * 2007-12-13 2008-05-22 Denso Corp メモリインターフェイス回路装置

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20020025793A (ko) * 2000-09-29 2002-04-04 이데이 노부유끼 메모리 장치 및 메모리 액세스 제한 방법
JP2008117414A (ja) * 2007-12-13 2008-05-22 Denso Corp メモリインターフェイス回路装置

Similar Documents

Publication Publication Date Title
US5461722A (en) Parallel processing apparatus suitable for executing in parallel a plurality of instructions including at least two branch instructions
US5027270A (en) Processor controlled interface with instruction streaming
EP2519874B1 (en) Branching processing method and system
US5509137A (en) Store processing method in a pipelined cache memory
JP3242508B2 (ja) マイクロコンピュータ
JPH02130634A (ja) プロセッサシステム、コンピュータシステム及び命令処理方法
JP2834292B2 (ja) データ・プロセッサ
JP2001092662A (ja) プロセッサコア及びこれを用いたプロセッサ
US5710914A (en) Digital signal processing method and system implementing pipelined read and write operations
JPH0527971A (ja) 情報処理装置
US5434986A (en) Interdependency control of pipelined instruction processor using comparing result of two index registers of skip instruction and next sequential instruction
US20060095746A1 (en) Branch predictor, processor and branch prediction method
JP3790626B2 (ja) デュアルワードまたは複数命令をフェッチしかつ発行する方法および装置
US20120173850A1 (en) Information processing apparatus
JPH07239780A (ja) 1クロック可変長命令実行処理型命令読み込み電子計 算機
JP4110137B2 (ja) アドレスレジスタの内容をスワップするための方法および装置
JP4613168B2 (ja) 命令整列の方法および装置
JPH08171510A (ja) メモリアクセス方式
US5724548A (en) System including processor and cache memory and method of controlling the cache memory
US20080065870A1 (en) Information processing apparatus
KR100457478B1 (ko) 메모리액세스방법및데이터처리시스템
JP3462245B2 (ja) 中央演算処理装置
US5421026A (en) Data processor for processing instruction after conditional branch instruction at high speed
US6425047B1 (en) Process containing address decoders suited to improvements in clock speed
US20030172259A1 (en) Branch prediction circuit of instruction

Legal Events

Date Code Title Description
A300 Withdrawal of application because of no request for examination

Free format text: JAPANESE INTERMEDIATE CODE: A300

Effective date: 20020305