JP2003271551A - マイクロコンピュータ、バス制御回路およびマイクロコンピュータにおけるデータアクセス方法 - Google Patents

マイクロコンピュータ、バス制御回路およびマイクロコンピュータにおけるデータアクセス方法

Info

Publication number
JP2003271551A
JP2003271551A JP2002073919A JP2002073919A JP2003271551A JP 2003271551 A JP2003271551 A JP 2003271551A JP 2002073919 A JP2002073919 A JP 2002073919A JP 2002073919 A JP2002073919 A JP 2002073919A JP 2003271551 A JP2003271551 A JP 2003271551A
Authority
JP
Japan
Prior art keywords
access
bus
processing
time
access request
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
JP2002073919A
Other languages
English (en)
Inventor
Nobuhiko Akasaka
伸彦 赤坂
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 JP2002073919A priority Critical patent/JP2003271551A/ja
Priority to US10/369,524 priority patent/US20030177229A1/en
Publication of JP2003271551A publication Critical patent/JP2003271551A/ja
Withdrawn legal-status Critical Current

Links

Classifications

    • 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/38Information transfer, e.g. on bus
    • G06F13/42Bus transfer protocol, e.g. handshake; Synchronisation
    • G06F13/4204Bus transfer protocol, e.g. handshake; Synchronisation on a parallel bus
    • G06F13/4234Bus transfer protocol, e.g. handshake; Synchronisation on a parallel bus being a memory bus
    • G06F13/4243Bus transfer protocol, e.g. handshake; Synchronisation on a parallel bus being a memory bus with synchronous protocol

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Bus Control (AREA)
  • Microcomputers (AREA)
  • Information Transfer Systems (AREA)
  • Memory System (AREA)

Abstract

(57)【要約】 【課題】 アクセス速度の異なる複数の装置へ、共通バ
スを用いて効率よくアクセスできるようにする。 【解決手段】 第1の装置3への第1のアクセス要求に
応じたアクセス処理中に、CPU2から第2の装置4へ
の第2のアクセス要求が発生すると、アクセス完了時刻
判定部5aにより、第1の装置3へのアクセス処理完了
時刻と、第2の装置4へのアクセス処理が完了可能な最
先の時刻との先後関係が判定される。そして、アクセス
完了時刻判定部5aにおいて、第1の装置3へのアクセ
ス処理完了時刻よりも先に第2の装置4へのアクセス処
理が完了可能と判定された場合、バスアクセス部5bに
より、第2のアクセス要求に応じた第2の装置4へのア
クセスが、第1の装置3への第1のアクセス要求に応じ
たアクセス処理サイクル中に実行される。

Description

【発明の詳細な説明】
【0001】
【発明の属する技術分野】本発明はマイクロコンピュー
タ、バス制御回路およびマイクロコンピュータにおける
データアクセス方法に関し、特に共有バスを介して複数
の装置にアクセス可能なマイクロコンピュータ、そのマ
イクロコンピュータに内蔵されるバス制御回路およびそ
のマイクロコンピュータにおけるデータアクセス方法に
関する。
【0002】
【従来の技術】現在、様々な電子機器にマイクロコンピ
ュータが実装されている。これらの電子機器は、マイク
ロコンピュータによって動作が制御される。特に、デジ
タルカメラやプリンタなどのコンピュータ制御電子機器
は、内部でマイクロコンピュータによる高度なデータ処
理が行われている。たとえば、デジタルカメラでは、オ
ートフォーカスなどの光学系の制御機能に加え、CCD
(Charge-Coupled Devices)によって取得した画像データ
を所定のデータ形式(たとえば、JPEG(Joint Phot
ographic Expert Group))に変換する。
【0003】コンピュータ制御電子機器の機能の高度化
に伴って、電子機器内部に実装されるマイクロコンピュ
ータに求められる処理能力も高くなっている。一般に、
マイクロコンピュータの処理能力には、メモリのアクセ
ス速度が大きく影響する。すなわち、CPU(Central P
rocessing Unit)の演算能力と比べて、相対的にメモリ
のアクセス速度が遅いと、命令やデータを読み出すまで
の待ち時間が長くなる。その結果、マイクロコンピュー
タの処理能力が低くなってしまう。
【0004】CPUからメモリへのアクセスは、バス制
御回路を介して行われる。バス制御回路は、連続する第
1、第2のアクセス要求があると、まず、第1のアクセ
ス要求に応じたメモリアクセスを行う。そのアクセス処
理の終了後、バス制御回路は、第2のアクセス要求に応
じたメモリアクセスを行う。また、第1、第2のアクセ
ス要求が同時期に発生した場合、バス制御回路は、アク
セス要求に予め設定されている優先順位に従って、優先
順位の高いアクセス要求から先にアクセス処理を実行す
る。優先順位の高いアクセス要求に応じたアクセス処理
終了後、バス制御回路は、優先順位が低い方のアクセス
要求に応じたアクセス処理を実行する。なお、アクセス
要求の優先順位は、固定または可変である。
【0005】図15は、従来のメモリアクセス例を示す
タイミングチャートである。バス制御回路は、CPUに
対して命令バスとデータバスとで接続されている。ま
た、バス制御回路は、ROM(Read Only Memory)とRA
M(Random Access Memory)などの半導体メモリに対して
メモリバスで接続されている。
【0006】命令バスは、CPUからのアクセス要求に
応じて、メモリ内に格納された命令を、CPUに渡すた
めのバスである。命令バスでは、アドレス、ウェイト信
号、データなどが転送される。ウェイト信号は、ハイレ
ベルの時に有効な信号である(Hアクティブ)。
【0007】データバスは、CPUからのアクセス要求
に応じて、メモリ内に格納されたデータを、CPUに渡
すためのバスである。データバスでは、アドレス、ウェ
イト信号、データなどが転送される。ウェイト信号は、
ハイレベルの時に有効な信号である(Hアクティブ)。
【0008】メモリバスは、CPUからのアクセス要求
に応じて、メモリ内の命令やデータを読み出したり、メ
モリ内に命令やデータを格納するためのバスである。メ
モリバスでは、アドレス、ROM選択信号(ROMCS
X)、RAM選択信号(RAMCSX)、リードストロ
ーブ信号(READX)、データなどが転送される。R
OM選択信号(ROMCSX)、RAM選択信号(RA
MCSX)、およびリードストローブ信号(READ
X)は、ローレベルの時に有効な信号である(Lアクテ
ィブ)。
【0009】図15の例では、命令フェッチ#1、デー
タリード#2、データリード#3の順番で、CPUから
メモリへのアクセス要求が出された場合を想定してい
る。なお、命令は、ROMに格納され、データはRAM
に格納されているものとする。このようにプログラム
(命令)用のメモリ(ROM)とデータ用のメモリ(R
AM)とが独立して存在し、各メモリ用のアドレスバス
とデータバスとが分離しているアーキテクチャ(構造)
は、ハーバードバスアーキテクチャと呼ばれている。
【0010】CPUの命令バスおよびデータバスを介し
たアクセス要求は、最短で同期信号2サイクル分の時間
で完結する。2サイクルで完結できない場合は、バス制
御回路によってウェイト信号が出さる。ウェイト信号を
受けたCPUは、アクセスの延長処理を行う。図15の
例では、ROMからの命令の取得(命令フェッチ)に
は、同期信号で4サイクルの時間が必要である。また、
RAMからのデータリードには、同期信号で2サイクル
の時間が必要である。
【0011】まず、周期T1の同期信号の立ち上がり
で、CPUから命令バスに対して、命令フェッチ#1の
アドレスが出力される。すると、バス制御回路からメモ
リバスへ、命令フェッチ#1のアドレスが出力される。
このとき、バス制御回路により、メモリバスのROM選
択信号(ROMCSX)とリードストローブ信号(RE
ADX)とがアサート(有効状態にすること)される。
【0012】周期T2の同期信号の立ち上がりで、バス
制御回路により、命令バスのウェイト信号がアサートさ
れる。このとき、CPUからは、データバスに対して、
データリード#2のアドレスが出力される。なお、この
時点では、メモリバスが命令フェッチに使用されてい
る。そこで、周期T3の同期信号の立ち上がりで、バス
制御回路により、データバスのウェイト信号がアサート
される。これにより、データリード#2のアクセス要求
は、命令フェッチが完了するまで待たされることとな
る。
【0013】周期T4の同期信号の立ち上がりで、バス
制御回路により、命令バスのウェイト信号がネゲート
(無効状態にすること)される。その後、周期T4の時
間内に、ROMからメモリバスへ、命令フェッチ#1の
アクセス要求に応じた有効命令VD#1が出力される。
その有効命令VD#1は、バス制御回路により、命令バ
スへ出力される。
【0014】周期T5の同期信号の立ち上がりで、命令
フェッチ#1のアクセス要求に応じた有効命令VD#1
の転送が終了する(命令フェッチが完了する)。これに
より、CPUによる命令バスへの命令フェッチ#1のア
ドレス出力が終了する。また、バス制御回路によるメモ
リバスへの命令フェッチ#1のアドレス出力が終了し、
代わりにバス制御回路により、メモリバスへデータリー
ド#2のアドレスが出力される。同時に、バス制御回路
により、ROM選択信号(ROMCSX)がネゲートさ
れ、RAM選択信号(RAMCSX)がアサートされ
る。リードストローブ信号(READX)は、バス制御
回路によって、命令フェッチ#1のアクセス要求に応じ
た有効命令VD#1の転送終了と同時にネゲートされる
が、すぐに、データリード#2のアクセスのためにアサ
ートされる。
【0015】周期T6の同期信号の立ち上がりで、バス
制御回路により、データバスのウェイト信号がネゲート
される。その後、周期T6の時間内に、RAMからメモ
リバスへ、データリード#2のアクセス要求に応じた有
効データVD#2が出力される。その有効データVD#
2は、バス制御回路により、命令バスへ出力される。
【0016】周期T7の同期信号の立ち上がりで、デー
タリード#2のアクセス要求に応じた有効データVD#
2の転送が終了する。これにより、CPUによるデータ
バスへのデータリード#2のアドレス出力が終了し、次
のアクセス要求であるデータリード#3のアドレスが出
力される。すると、バス制御回路によるメモリバスへの
データリード#2のアドレス出力が終了し、代わりにバ
ス制御回路により、メモリバスへデータリード#3のア
ドレスが出力される。なお、RAM選択信号(RAMC
SX)とリードストローブ信号(READX)とは、バ
ス制御回路により、アサートの状態が維持される。
【0017】周期T8の時間内に、RAMからメモリバ
スへ、データリード#3のアクセス要求に応じた有効デ
ータVD#3が出力される。その有効データVD#3
は、バス制御回路により、命令バスへ出力される。
【0018】周期T9の同期信号の立ち上がりで、デー
タリード#3のアクセス要求に応じた有効データVD#
3の転送が終了する。これにより、CPUによるデータ
バスへのデータリード#3のアドレス出力が終了する。
同時に、バス制御回路によるメモリバスへのデータリー
ド#3のアドレス出力が終了する。また、RAM選択信
号(RAMCSX)とリードストローブ信号(READ
X)とは、バス制御回路により、ネゲートされる。
【0019】以上のようにして、ROMからの命令フェ
ッチとRAMからのデータリードとが続けて行われる。
この例では、命令フェッチ#1に4サイクル、データリ
ード#2に2サイクル、データリード#3に2サイクル
を要して、各アクセス要求が完了する。すなわち、1つ
の命令フェッチと2つのデータリードとのアクセス要求
に応じた処理を完了するのに、合計8サイクルの時間を
要している。
【0020】
【発明が解決しようとする課題】しかし、図15に示し
たように、データアクセス速度の異なる複数のメモリが
混在すると、データアクセス効率が悪くなってしまう。
【0021】すなわち、低速のメモリ(たとえば、RO
M)へのアクセス中に高速のメモリ(たとえばRAM)
へのアクセス要求が出されると、低速メモリへのアクセ
スが完了するまで、高速のメモリへのアクセスが待たさ
れてしまう。図15の例では、データリード#2は、命
令フェッチによるROMへのアクセス中にアクセス要求
が出されたため、3サイクル分(周期T3〜T5)のア
クセス待ちが発生している。その結果、2サイクルで処
理完了可能なRAMへのアクセスであるにも拘わらず、
データリード#2では5サイクルの時間を要している。
【0022】このようなアクセス待ちを少なくして、ア
クセス効率を上げる手法として、たとえばクロスバス方
式がある。クロスバス方式は、アクセス要求の同時発生
が予め予想される場合に、メモリバスそのものをメモリ
毎に個別に設けるメモリアクセス方式である。このよう
な方式により、データアクセス速度の異なる複数のメモ
リへ同時期にアクセスすることが可能となるが、バスが
増加することによりハードウェアの回路が複雑化し、マ
イクロコンピュータが高価になってしまう。
【0023】また、複数のCPUを有するシステムの場
合、共有メモリ以外に、各CPUに専用のメモリを接続
することにより、アクセスの競合を防ぐことができる。
しかし、この場合にもクロスバス方式と同様に、ハード
ウェアの回路が複雑化し、マイクロコンピュータが高価
になるという問題がある。
【0024】そこで、メモリバスを増加させずに、メモ
リアクセスの効率化を図り、マイクロコンピュータの処
理能力を向上させることが望まれている。本発明はこの
ような点に鑑みてなされたものであり、アクセス速度の
異なる複数の装置へ、共通バスを用いて効率よくアクセ
スすることができるマイクロコンピュータ、バス制御回
路およびマイクロコンピュータにおけるデータアクセス
方法を提供することを目的とする。
【0025】
【課題を解決するための手段】本発明の第1の態様で
は、上記課題を解決するために、図1に示すようなマイ
クロコンピュータが提供される。本発明の第1の態様に
係るマイクロコンピュータは、共有バスを介して複数の
装置にアクセス可能なマイクロコンピュータであり、ア
クセス完了時刻判定部5aとバスアクセス部5bとを有
している。
【0026】アクセス完了時刻判定部5aは、第1の装
置3への第1のアクセス要求に応じたアクセス処理中
に、CPU2から第2の装置4への第2のアクセス要求
が発生すると、第1と第2の装置3,4へのアクセス所
要時間5cに基づいて、第1の装置3へのアクセス処理
完了時刻と、第2の装置4へのアクセス処理が完了可能
な最先の時刻との先後関係を判定する。
【0027】バスアクセス部5bは、アクセス完了時刻
判定部5aにおいて、第1の装置3へのアクセス処理完
了時刻よりも先に第2の装置4へのアクセス処理が完了
可能と判定された場合、第2のアクセス要求に応じた第
2の装置4へのアクセスを、第1の装置3への第1のア
クセス要求に応じたアクセス処理サイクル中に実行す
る。
【0028】このようなマクロコンピュータによれば、
第1の装置3への第1のアクセス要求に応じたアクセス
処理中に、CPU2から第2の装置4への第2のアクセ
ス要求が発生すると、アクセス完了時刻判定部5aによ
り、第1と第2の装置3,4へのアクセス所要時間5c
に基づいて、第1の装置3へのアクセス処理完了時刻
と、第2の装置4へのアクセス処理が完了可能な最先の
時刻との先後関係が判定される。そして、アクセス完了
時刻判定部5aにおいて、第1の装置3へのアクセス処
理完了時刻よりも先に第2の装置4へのアクセス処理が
完了可能と判定された場合、バスアクセス部5bによ
り、第2のアクセス要求に応じた第2の装置4へのアク
セスが、第1の装置3への第1のアクセス要求に応じた
アクセス処理サイクル中に実行される。
【0029】本発明の第2の態様では、上記課題を解決
するために、共有バスを介して複数の装置にアクセス可
能なマイクロコンピュータにおいて、CPUから異なる
装置への複数のアクセス要求が同時期に発生すると、各
装置のアクセス所要時間に基づいて、先にアクセスする
第1の装置と後にアクセスする第2の装置とのそれぞれ
へのアクセス処理が完了可能な最先の時刻の先後関係を
判定するアクセス完了時刻判定部と、前記アクセス完了
時刻判定部において、前記第1の装置へのアクセス処理
完了時刻よりも先に前記第2の装置へのアクセス処理が
完了可能と判定された場合、前記第1の装置へのアクセ
スを開始後、前記第2の装置へのアクセスを、前記第1
の装置へのアクセス処理サイクル中に実行するバスアク
セス部と、を有することを特徴とするマイクロコンピュ
ータが提供される。
【0030】このようなマイクロコンピュータによれ
ば、CPUから異なる装置への複数のアクセス要求が同
時期に発生すると、アクセス完了時刻判定部により、第
1と第2の装置のアクセス所要時間に基づいて、アクセ
ス所要時間の長い装置から順にアクセスを開始した場合
に先にアクセスする第1の装置と後にアクセスする第2
の装置とのそれぞれへのアクセス処理が完了可能な最先
の時刻の先後関係が判定される。そして、バスアクセス
部により、アクセス完了時刻判定部において、前記第1
の装置へのアクセス処理完了時刻よりも先に前記第2の
装置へのアクセス処理が完了可能と判定された場合、前
記第1の装置へのアクセスを開始後、前記第2の装置へ
のアクセスを、前記第1の装置へのアクセス処理サイク
ル中に実行するバスアクセス部と、を有することを特徴
とするマイクロコンピュータが提供される。
【0031】本発明の第3の態様では、上記課題を解決
するために、CPUからの要求に応答して、共有バスを
介して複数の装置にアクセスするバス制御回路におい
て、第1の装置への第1のアクセス要求に応じたアクセ
ス処理中に、前記CPUから第2の装置への第2のアク
セス要求が発生すると、前記第1と第2の装置へのアク
セス所要時間に基づいて、前記第1の装置へのアクセス
処理完了時刻と、前記第2の装置へのアクセス処理が完
了可能な最先の時刻との先後関係を判定するアクセス完
了時刻判定部と、前記アクセス完了時刻判定部におい
て、前記第1の装置へのアクセス処理完了時刻よりも先
に前記第2の装置へのアクセス処理が完了可能と判定さ
れた場合、前記第2のアクセス要求に応じた前記第2の
装置へのアクセスを、前記第1の装置への第1のアクセ
ス要求に応じたアクセス処理サイクル中に実行するバス
アクセス部と、を有することを特徴とするバス制御回路
が提供される。
【0032】このようなバス制御回路によれば、上記の
本発明の第1の態様に係るマイクロコンピュータと同様
のバスアクセス処理が、CPUからの要求に応答して実
行される。
【0033】本発明の第4の態様では、上記課題を解決
するために、CPUからの要求に応答して、共有バスを
介して複数の装置にアクセスするバス制御回路におい
て、前記CPUから異なる装置への複数のアクセス要求
が同時期に発生すると、第1と第2の装置のアクセス所
要時間に基づいて、アクセス所要時間の長い装置から順
にアクセスを開始した場合に先にアクセスする前記第1
の装置と後にアクセスする前記第2の装置とのそれぞれ
へのアクセス処理が完了可能な最先の時刻の先後関係を
判定するアクセス完了時刻判定部と、前記第1の装置へ
のアクセス処理完了時刻よりも先に前記第2の装置への
アクセス処理が完了可能と判定された場合、前記第1の
装置へのアクセスを開始後、前記第2の装置へのアクセ
スを、前記第1の装置へのアクセス処理サイクル中に実
行するバスアクセス部と、を有することを特徴とするバ
ス制御回路が提供される。
【0034】このようなバス制御回路によれば、上記の
本発明の第2の態様に係るマイクロコンピュータと同様
のバスアクセス処理が、CPUからの要求に応答して実
行される。
【0035】本発明の第5の態様では、共有バスを介し
て複数の装置にアクセス可能なマイクロコンピュータに
おけるデータアクセス方法であって、第1の装置への第
1のアクセス要求に応じたアクセス処理中に、CPUか
ら第2の装置への第2のアクセス要求が発生すると、前
記第1と第2の装置へのアクセス所要時間に基づいて、
前記第1の装置へのアクセス処理完了時刻と、前記第2
の装置へのアクセス処理が完了可能な最先の時刻との先
後関係を判定し、前記第1の装置へのアクセス処理完了
時刻よりも先に前記第2の装置へのアクセス処理が完了
可能と判定された場合、前記第2のアクセス要求に応じ
た前記第2の装置へのアクセスを、前記第1の装置への
第1のアクセス要求に応じたアクセス処理サイクル中に
実行する、ことを特徴とするマイクロコンピュータにお
けるデータアクセス方法が提供される。
【0036】このようなデータアクセス方法によれば、
上記の本発明の第1の態様に係るマイクロコンピュータ
と同様のバスアクセス処理が実行される。本発明の第6
の態様では、共有バスを介して複数の装置にアクセス可
能なマイクロコンピュータにおけるデータアクセス方法
において、CPUから異なる装置への複数のアクセス要
求が同時期に発生すると、各装置のアクセス所要時間に
基づいて、先にアクセスする第1の装置と後にアクセス
する第2の装置とのそれぞれへのアクセス処理が完了可
能な最先の時刻の先後関係を判定し、前記第1の装置へ
のアクセス処理完了時刻よりも先に前記第2の装置への
アクセス処理が完了可能と判定された場合、前記第1の
装置へのアクセスを開始後、前記第2の装置へのアクセ
スを、前記第1の装置へのアクセス処理サイクル中に実
行する、ことを特徴とするマイクロコンピュータにおけ
るデータアクセス方法が提供される。
【0037】このようなデータアクセス方法によれば、
上記の本発明の第2の態様に係るマイクロコンピュータ
と同様のバスアクセス処理が実行される。
【0038】
【発明の実施の形態】以下、本発明の実施の形態を図面
を参照して説明する。まず、本発明の実施の形態に適用
される発明の概要について説明し、その後、本発明の実
施の形態の具体的な内容を説明する。
【0039】図1は、本発明の実施の形態に適用される
発明の概念図である。本発明が提供されるコンピュータ
制御電子機器は、たとえば、共有バス1、CPU2、第
1の装置3、第2の装置4、およびバス制御回路5で構
成される。ここで、CPU2とバス制御回路5とが、マ
イクロコンピュータを構成する。
【0040】共有バス1は、CPU2からのアクセスの
対象となる複数の装置が接続されるバスである。図1の
例では、第1の装置3と第2の装置4とが、共有バス1
に接続されている。
【0041】CPU2は、プログラムに記述された命令
に従って、コンピュータ制御電子機器全体を制御する。
命令に応じた処理に必要なデータは、バス制御回路5を
介して第1の装置3や第2の装置4から取得する。
【0042】第1の装置3は、CPU2からアクセス可
能な装置である。第1の装置3は、たとえばROMであ
る。図1の例では、第1の装置3には、プログラム3a
が格納されている。プログラム3aは、CPU2に実行
させるべき命令コードの配列である。
【0043】第2の装置4は、CPU2からアクセス可
能な装置である。なお、第2の装置4は、第1の装置3
よりも高速にアクセス可能な装置である。第2の装置4
は、たとえばRAMである。図1の例では、第2の装置
4には、データ4aが格納されている。
【0044】バス制御回路5は、CPU2からのアクセ
ス要求に応答して、共有バス1を介して、第1の装置3
や第2の装置4にアクセスする。バス制御回路5は、ア
クセス完了時刻判定部5aとバスアクセス部5bとを有
している。また、各装置(第1の装置3と第2の装置
4)へのアクセス所要時間5cを予め認識している。図
1の例では、第1の装置3へのアクセスは、4サイクル
の時間が必要であり、第2の装置4へのアクセスは、2
サイクルの時間が必要である。ここでサイクルとは、共
有バス1の同期信号の発生周期を指す。
【0045】アクセス完了時刻判定部5aは、第1の装
置3への第1のアクセス要求に応じたアクセス処理中
に、CPU2から第2の装置4への第2のアクセス要求
が発生すると、第1と第2の装置3,4へのアクセス所
要時間5cに基づいて、第1の装置3へのアクセス処理
完了時刻と、第2の装置4へのアクセス処理が完了可能
な最先の時刻との先後関係を判定する。また、アクセス
完了時刻判定部5aは、CPU2から第1の装置3と第
2の装置4への複数のアクセス要求が同時期(1サイク
ル内)に発生すると、第1と第2の装置3,4のアクセ
ス所要時間5cに基づいて、先にアクセスする第1の装
置3と後にアクセスする第2の装置4とのそれぞれへの
アクセス処理が完了可能な最先の時刻の先後関係を判定
する。なお、同時期に複数のアクセスが有った場合のア
クセスの優先順は、たとえば、アクセス所要時間5cの
長い装置の優先度を高くする。
【0046】バスアクセス部5bは、アクセス完了時刻
判定部5aにおいて、第1の装置3へのアクセス処理完
了時刻よりも先に第2の装置4へのアクセス処理が完了
可能と判定された場合、第2のアクセス要求に応じた第
2の装置4へのアクセスを、第1の装置3への第1のア
クセス要求に応じたアクセス処理サイクル中に実行す
る。
【0047】このようなコンピュータ制御電子機器よれ
ば、共有バス1を介した第1の装置3や第2の装置4へ
のアクセスを効率よく行うことができる。図2は、第1
のアクセス要求に応じたアクセス処理中に第2のアクセ
ス要求が発生した場合の処理手順を示すフローチャート
である。
【0048】第2のアクセス要求がCPU2から出力さ
れると、アクセス完了時刻判定部5aは、第1のアクセ
ス要求に応じたアクセスの完了時刻と、第2のアクセス
要求に応じたアクセスの完了可能な最先の時刻とを比較
する(ステップS101)。アクセス完了時刻判定部5
aは、比較結果をバスアクセス部5bに渡す。
【0049】第2のアクセス要求を先に完了可能な場合
(ステップS102:YES)、バスアクセス部5b
は、第1のアクセス要求に応じたアクセスのデータ出力
を禁止する(ステップS103)。たとえば、バスアク
セス部5bは、メモリなどのアクセス対象の装置に対す
る出力許可信号(リードストローブ信号)を禁止状態に
する(ネゲートする)。次に、バスアクセス部5bは、
第2のアクセ要求に応じたアクセス処理の実行を開始す
る(ステップS104)。
【0050】第2のアクセス要求に応じたアクセスが未
完了の間(ステップS105:NO)は、処理は先に進
まない。第2のアクセス要求に応じたアクセスが完了す
る(ステップS105:YES)と、バスアクセス部5
bは、第1のアクセス要求に応じたアクセスのデータ出
力を許可する(ステップS106)。たとえば、バスア
クセス部5bは、メモリなどのアクセス対象の装置に対
する出力許可信号(リードストローブ信号)を許可状態
にする(アサートする)。
【0051】第1のアクセス要求に応じたアクセスが未
完了の間(ステップS107:NO)は、処理は先に進
まない。第1のアクセス要求に応じたアクセスが完了す
る(ステップS107:YES)とバスアクセス処理が
終了する。
【0052】一方、第2のアクセス要求を先に完了でき
ない場合(ステップS102:NO)、第1のアクセス
要求に応じたアクセスが未完了の間(ステップS10
8:NO)は、処理は先に進まない。第1のアクセス要
求に応じたアクセスが完了する(ステップS108:Y
ES)と、バスアクセス部5bは、第2のアクセ要求に
応じたアクセス処理の実行を開始する(ステップS10
9)。
【0053】第2のアクセス要求に応じたアクセスが未
完了の間(ステップS110:NO)は、処理は先に進
まない。第2のアクセス要求に応じたアクセスが完了す
る(ステップS110:YES)とバスアクセス処理が
終了する。
【0054】このようにして、連続して発生した異なる
装置へのアクセス要求を同時(アクセスに要する時間帯
を重複させて)に処理することが可能となり、バスアク
セスの高効率化を図ることができる。
【0055】図3は、第1のアクセス要求と第2のアク
セス要求とが同時に発生した場合の処理手順を示すフロ
ーチャートである。第1のアクセス要求と第2のアクセ
ス要求とがCPU2から出力されると、アクセス完了時
刻判定部5aは、アクセスに時間のかかる装置(アクセ
ス所要時間が長い装置)へのアクセスを先に実行するこ
とを決定する。そして、アクセス完了時刻判定部5a
は、先に実行する第1のアクセス要求に応じたアクセス
の完了可能な最先の時刻と、第2のアクセス要求に応じ
たアクセスを1サイクル後に実行したときの完了可能な
最先の時刻とを比較する(ステップS201)。アクセ
ス完了時刻判定部5aは、比較結果をバスアクセス部5
bに渡す。
【0056】第2のアクセス要求を先に完了可能な場合
(ステップS202:YES)、バスアクセス部5b
は、第1のアクセス要求に応じたアクセス処理の実行を
開始する。この際、第1のアクセス要求に応じたアクセ
スに関してデータ出力禁止の状態を保つ(ステップS2
03)。次に、バスアクセス部5bは、第2のアクセ要
求に応じたアクセス処理の実行を開始する(ステップS
204)。
【0057】第2のアクセス要求に応じたアクセスが未
完了の間(ステップS205:NO)は、処理は先に進
まない。第2のアクセス要求に応じたアクセスが完了す
る(ステップS205:YES)と、バスアクセス部5
bは、第1のアクセス要求に応じたアクセスのデータ出
力を許可する(ステップS206)。
【0058】第1のアクセス要求に応じたアクセスが未
完了の間(ステップS207:NO)は、処理は先に進
まない。第1のアクセス要求に応じたアクセスが完了す
る(ステップS207:YES)とバスアクセス処理が
終了する。
【0059】一方、第2のアクセス要求を先に完了でき
ない場合(ステップS202:NO)、バスアクセス部
5bは、第1のアクセス要求に応じたアクセス処理の実
行を開始する(ステップS208)。この際、第1のア
クセス要求に応じたアクセスのデータ出力を許可する。
第1のアクセス要求に応じたアクセスが未完了の間(ス
テップS209:NO)は、処理は先に進まない。第1
のアクセス要求に応じたアクセスが完了する(ステップ
S209:YES)と、バスアクセス部5bは、第2の
アクセ要求に応じたアクセス処理の実行を開始する(ス
テップS210)。
【0060】第2のアクセス要求に応じたアクセスが未
完了の間(ステップS211:NO)は、処理は先に進
まない。第2のアクセス要求に応じたアクセスが完了す
る(ステップS211:YES)とバスアクセス処理が
終了する。
【0061】このようにして、同時期に発生した異なる
装置へのアクセスを同時(アクセスに要する時間帯を重
複させて)に処理することが可能となり、バスアクセス
の高効率化を図ることができる。
【0062】以下、本発明の実施の形態を具体的に説明
する。 [第1の実施の形態]図4は、本発明の第1の実施の形
態に係る電子機器のハードウェア構成例を示すブロック
図である。本発明の第1の実施の形態に係る電子機器
は、CPU10、バス制御回路20、ROM30および
RAM40を有している。第1の実施の形態では、ハー
バードバスアーキテクチャを採用している。すなわち、
CPU10は、命令バス51とデータバス52とを介し
て、バス制御回路20に接続されている。バス制御回路
20、ROM30およびRAM40は、互いにメモリバ
ス60で接続されている。
【0063】CPU10は、電子機器全体の動作を制御
している。具体的には、CPU10は、バス制御回路2
0を経由してROM30やRAM40にアクセスし、R
OM30に格納された命令に従って、ROM30やRA
M40に格納されたデータを用いたデータ処理を行う。
CPU10は、命令フェッチ(命令コードの取得)をす
る場合には、命令バス51を介してバス制御回路20に
アクセス要求を出力する。また、CPU10は、データ
アクセスをする場合、データバス52を介してバス制御
回路20にアクセス要求を出力する。なお、CPU10
からの命令フェッチは、主にROM30に対して行われ
る。また、CPU10からのデータアクセスは、主にR
AM40に対して行われる。
【0064】バス制御回路20は、CPU10からのア
クセス要求に応答して、ROM30やRAM40から命
令コードやデータを取得する。バス制御回路20は、取
得した命令コードやデータを、CPU10に渡す。な
お、命令コードは命令バス51を介してCPU10に転
送され、データはデータバス52を介してCPU10に
転送される。
【0065】なお、バス制御回路20は、CPU10か
らROM30やRAM40へのアクセス要求が出される
と、命令フェッチとデータアクセスとの競合判定を行
う。競合判定により、同時期にCPU10から複数のア
クセス要求が出されと判断した場合、バス制御回路20
は、各アクセス要求に応じたアクセス処理の完了時刻に
応じて、アクセス要求の処理を開始するタイミングを決
定する。そして、バス制御回路20は、決定したタイミ
ングに従って、ROM30やRAM40にアクセスす
る。
【0066】ROM30は、アクセス速度が比較的低速
(RAM40より低速)な半導体メモリである。ROM
30には、主にCPU10に実行させる処理が記述され
たプログラムが格納される。プログラムは、CPU10
で実行可能な命令コードで記述されている。ROM30
は、メモリバス60のアドレス信号線、ROM30用の
選択信号線、リードストローブ信号線、データ信号線な
どに接続されている。ROM30は、ROM30用の選
択信号とリードストローブ信号とがアサートされている
ときに、アドレス信号線で指定されたアドレスの命令コ
ード(またはデータ)を読み出し、データ信号線に出力
する。
【0067】なお、ROM30は、メモリバス60のア
ドレス信号線に出力されたアドレスをラッチ(データを
一時的に保持すること)する回路を内蔵している。すな
わち、ROM30用の選択信号が有効となったときは、
ROM30は、アドレス信号線に出力されたアドレスを
ラッチして、そのアドレスのデータへのアクセス動作を
行う。アクセス動作が完了する前に、メモリバス60の
アドレス信号線に出力されるアドレスが変わっても、R
OM30はラッチしたアドレスに基づいて、データアク
セスを継続することができる。
【0068】RAM40は、アクセス速度が比較的高速
(ROM30より高速)な半導体メモリである。RAM
40は、CPU10が処理を実行する際のワーク領域と
して使用され、各種データが格納される。RAM40
は、メモリバス60のアドレス信号線、RAM40用の
選択信号線、リードストローブ信号線、データ信号線な
どに接続されている。RAM40は、RAM40用の選
択信号とリードストローブ信号とがアサートされている
ときに、アドレス信号線で指定されたアドレスのデータ
を読み出し、データ信号線に出力する。
【0069】命令バス51は、CPU10に命令コード
を取り込むためのバスである。命令バス51は、アドレ
ス信号線、ウェイト信号線、データ信号線などで、CP
U10とバス制御回路20との間を接続している。アド
レス信号線とデータ信号線とは、それぞれ複数の信号線
で構成される。
【0070】データバス52は、CPU10にデータを
取り込んだり、CPU10の演算結果を出力したりする
ためのバスである。データバス52は、アドレス信号
線、ウェイト信号線、データ信号線などで、CPU10
とバス制御回路20との間を接続している。アドレス信
号線とデータ信号線とは、それぞれ複数の信号線で構成
される。
【0071】メモリバス60は、バス制御回路20、R
OM30およびRAM40それぞれの間で、命令コード
やデータの受け渡しを行うための共有バスである。メモ
リバス60は、アドレス信号線、ROM30用の選択信
号線、ROM用のリードストローブ信号線、データ信号
線などで、バス制御回路20とROM30とを接続して
いる。
【0072】次に、バス制御回路20の内部構成につい
て詳しく説明する。図5は、バス制御回路の内部構成を
示すブロック図である。バス制御回路20は、内部バス
シーケンサ21、外部バスシーケンサ22、ウェイト設
定レジスタ群23、領域判定部24、バスサイクル長判
定部25、および完了時刻判定部26を有している。
【0073】バス制御回路20内の各構成要素は、情報
の交換が必要な要素同士が互いに接続されている。具体
的には、内部バスシーケンサ21は、命令バス51とデ
ータバス52とに接続されている。外部バスシーケンサ
22は、メモリバス60に接続されている。内部バスシ
ーケンサ21と外部バスシーケンサ22とは、バス制御
回路20内でバス接続されている。ウェイト設定レジス
タ群23は、外部バスシーケンサ22とバスサイクル長
判定部25とに接続されている。領域判定部24は、内
部バスシーケンサ21、外部バスシーケンサ22および
バスサイクル長判定部25に接続されている。バスサイ
クル長判定部25は、既に説明した接続関係以外に、完
了時刻判定部26に接続されている。完了時刻判定部2
6は、既に説明した接続関係以外に、外部バスシーケン
サ22に接続されている。
【0074】なお、図5では、バス制御回路20内の要
素間の接続関係を、端部が矢印の線で示している。矢印
の向きが情報の転送方向である。内部バスシーケンサ2
1は、命令バス51やデータバス52を介して、CPU
10との間で命令コードやデータの送受信を行う。たと
えば、内部バスシーケンサ21は、CPU10からRO
M30やRAM40へのアクセス要求を受け取ると、そ
のアクセス要求を外部バスシーケンサ22に渡す。な
お、アクセス要求には、アクセス先のアドレスが含まれ
ている。また、CPU10からのアクセス要求を受け取
ったとき、内部バスシーケンサ21は、アクセス先のア
ドレスを領域判定部24に渡す。
【0075】さらに、内部バスシーケンサ21は、外部
バスシーケンサ22から、命令フェッチにより取得した
命令コードを受け取ると、その命令コードを、命令バス
51を介してCPU10に転送する。また、内部バスシ
ーケンサ21は、外部バスシーケンサ22から、データ
アクセスにより取得したデータを受け取ると、そのデー
タを、データバス52を介してCPU10に転送する。
【0076】外部バスシーケンサ22は、メモリバス6
0を介してROM30やRAM40との間で命令コード
やデータの送受信を行う。たとえば、外部バスシーケン
サ22は、内部バスシーケンサ21からアクセス要求を
受け取ると、領域判定部24からの領域情報によって、
アクセス先がROM30なのかRAM40なのかを判別
する。そして、外部バスシーケンサ22は、判別したア
クセス先のメモリに対して、アクセス要求に応じたアク
セスを行う。
【0077】また、外部バスシーケンサ22は、メモリ
バス60を介したメモリアクセス中に他のメモリへのア
クセス要求を受け取った場合、完了時刻判定部26から
完了時刻の判定結果を受け取る。後に出されたアクセス
要求の方が先に完了可能と判定された場合には、外部バ
スシーケンサ22は、実行中のアクセス処理の完了を待
たずに、後に出されたアクセス要求の処理を実行する。
【0078】さらに、外部バスシーケンサ22は、メモ
リバス60を介して命令コードやデータを受け取ると、
それらを内部バスシーケンサ21に渡す。また、外部バ
スシーケンサ22は、アクセス要求に応じたメモリアク
セスの状況を示す情報を、随時完了時刻判定部26に通
知している。
【0079】ウェイト設定レジスタ群23は、メモリ毎
のウェイト設定レジスタの集合である。ウェイト設定レ
ジスタは、対応するメモリへのアクセス時にどの程度の
時間ウェイト信号を発生させるかが予め設定されたレジ
スタである。ウェイトを発生させる時間は、たとえば、
バスの同期信号のサイクル数で設定される。ウェイト設
定レジスタの内容は、ユーザの操作入力などにより変更
可能である。
【0080】領域判定部24は、アクセス要求に含まれ
るアドレスに基づいて、そのアクセス要求のアクセス対
象となるメモリを判定する。具体的には、領域判定部2
4は、メモリ領域情報24aを有しており、このメモリ
領域情報24aを参照して、メモリの判定を行う。メモ
リ領域情報24aには、ROM30やRAM40のメモ
リ空間の範囲が定義されている。領域判定部24は、ア
クセス要求で指定されたアドレスがどのメモリのメモリ
空間に含まれるかにより、アクセス対象のメモリを判定
することができる。領域判定部24は、判定結果を、外
部バスシーケンサ22とバスサイクル長判定部25とに
渡す。
【0081】バスサイクル長判定部25は、アクセス要
求毎のバスサイクル長を判定する。ここで、バスサイク
ル長とは、アクセス要求に応じたアクセス処理に要する
時間を、バスの同期信号のサイクル数で表したものであ
る。具体的には、バスサイクル長判定部25は、領域判
定部24からアクセス対象のメモリを示す情報を受け取
ると、そのメモリに対応するウェイト設定レジスタの内
容を取得する。次に、バスサイクル長判定部25は、ウ
ェイト設定レジスタに示されているウェイト発生時間に
基づいて、バスサイクル長を判定する。詳細には、バス
サイクル長判定部25は、CPU10による命令バス5
1やデータバス52を介した命令コードやデータの読み
取り時間にウェイト発生時間を加えた値を、バスサイク
ル長とする。たとえば、CPU10の命令コードやデー
タの読み取り時間が、バスの同期信号で2サイクルであ
り、ウェイト発生時間が2サイクルであれば、バスサイ
クル長は4サイクルとなる。バスサイクル長判定部25
は、判定結果を完了時刻判定部26に通知する。
【0082】完了時刻判定部26は、アクセスする時間
帯が重複する複数のアクセス要求の処理完了時刻を判定
する。具体的には、完了時刻判定部26は、バスサイク
ル長判定部25から、アクセス要求のバスサイクル長の
判定結果を受け取ると、外部バスシーケンサ22による
メモリのアクセス処理中か否かを判断する。
【0083】アクセス処理中でなければ、バスサイクル
長の値をアクセス完了時間情報26aとして保持する。
アクセス完了時間情報26aの値は、完了時刻判定部2
6により、バスの同期信号の1サイクル毎にカウントダ
ウンされる。これにより、アクセス完了時間情報26a
において、現在処理中のアクセスが完了するまでのクロ
ック数が示される。
【0084】アクセス処理中であれば、完了時刻判定部
26は、バスサイクル長判定部25から新たに受け取っ
たバスサイクル長と、アクセス完了時間情報26aに設
定されているアクセス完了時間(現在からアクセス処理
完了までのクロック数)とを比較する。そして、完了時
刻判定部26は、現在実行中のアクセス処理と、新たに
出されたアクセス要求に応じたアクセス処理とで、どち
らが先に完了可能であるかを判定する。完了時刻判定部
26は、判定結果を外部バスシーケンサ22に渡す。
【0085】次に、バス制御回路20内に保持される各
種情報のデータ構造例について説明する。図6は、ウェ
イト設定レジスタ群のデータ構造例を示す図である。ウ
ェイト設定レジスタ群23は、複数のウェイト設定レジ
スタ23a,23bで構成されている。第1の実施の形
態では、メモリバス60にROM30とRAM40とが
接続されているため、ROM30用のウェイト設定レジ
スタ23aとRAM40用のウェイト設定レジスタ23
bとが設けられている。
【0086】図6の例では、ROM30用のウェイト設
定レジスタ23aに「2」が設定され、RAM40用の
ウェイト設定レジスタ23bに「0」が設定されてい
る。すなわち、ROM30にアクセスする場合には、最
低でも2サイクル分のウェイト信号がCPU10に対し
て出力される。RAM30にアクセスする場合には、他
のアクセス処理実行中でなければ、ウェイト信号は出力
されない。すなわち、RAM40に対するアクセス処理
は、CPU10の命令バス51やデータバス52を介し
たアクセスと同じ時間で完了することができる。
【0087】図7は、領域判定部内に保持されるメモリ
領域情報のデータ構造例を示す図である。メモリ領域情
報24aでは、メモリバス60に接続された各メモリに
関連づけて、そのシステム上で各メモリに設定されてい
るメモリ空間(メモリ領域)が定義されている。すなわ
ち、メモリ領域情報24aには、各メモリにアクセスす
る際のアドレスの範囲が設定されている。図7の例で
は、ROM30のメモリ領域として、「000000〜0FFFF
F」のアドレスの範囲が設定されている。また、RAM
40のメモリ領域として、「100000〜5FFFFF」のアドレ
スの範囲が設定されている。
【0088】図8は、完了時刻判定部内に保持されるア
クセス完了時間情報のデータ構造例を示す図である。図
8に示すように、アクセス完了時間情報26aには、現
在実行しているアクセス処理が完了するまでの時間が設
定されている。図8の例では、同期信号で4サイクル分
の時間が設定されている。アクセス完了時間情報26a
は、同期信号が出力される毎にカウントダウンされる。
また、アクセス完了時間情報26aが0になった時点
で、カウントダウン処理は終了する。アクセス完了時間
情報26aが0であることは、現在中のアクセス処理が
ないことを意味する。
【0089】以上のような構成のバス制御回路20を用
いることで、複数のメモリへの時間的に重複した複数の
アクセス要求を、効率よく処理することができる。アク
セス要求が時間的に重複する場合としては、あるアクセ
ス要求に応じたアクセス処理の実行中に別のアクセス要
求が出力される場合と、同時に複数のアクセス要求が出
力される場合とがある。以下、アクセス要求の時間的な
重複状態の発生状況毎に、バス制御回路20の処理の詳
細を説明する。
【0090】[アクセス処理の実行中に別のアクセス要
求が出力される場合]第1の実施の形態では、新たに受
け取った別のアクセス要求が、現在実行中のアクセス処
理より先に完了可能な場合、現在実行中のアクセス完了
を待たずに、後から出されたアクセス要求の処理を割り
込ませることができる。以下に、後から出されたアクセ
ス要求の処理を割り込ませる場合の処理手順を説明す
る。
【0091】図9は、アクセス処理中に他のアクセス要
求が出された場合の処理手順を示すフローチャートであ
る。以下、図9に示す処理をステップ番号に沿って説明
する。なお、先にCPU10より出力されたアクセス要
求を「アクセス要求A」とし、後にCPU10より出力
されたアクセス要求を「アクセス要求B」とする。
【0092】[ステップS11]内部バスシーケンサ2
1は、アクセス要求の有無を常時判断している。アクセ
ス要求がなければ、ステップS11の処理が繰り返され
る。アクセス要求Aが命令バス51またはデータバス5
2を介して入力されると、内部バスシーケンサ21は、
アクセス要求有りと判断し、処理をステップS12に進
める。
【0093】[ステップS12]内部バスシーケンサ2
1は、外部バスシーケンサ22に対してアクセス要求A
を発行する。同時に、内部バスシーケンサ21は、アク
セス要求で示されたアドレスを領域判定部24に通知す
る。
【0094】[ステップS13]領域判定部24は、内
部バスシーケンサ21から渡されたアドレスに基づい
て、アクセス要求Aのアクセス領域がどのメモリの領域
かを判定する。領域判定部24は、判定結果を外部バス
シーケンサ22とバスサイクル長判定部25とに通知す
る。
【0095】[ステップS14]バスサイクル長判定部
25は、ウェイト設定レジスタ群23より、アクセス要
求Aのアクセス対象となるメモリ用のウェイト設定レジ
スタの値を取得する。そして、バスサイクル長判定部2
5は、アクセス要求Aに応じたアクセスに要する時間を
判定する。判定結果は、バス同期信号のサイクル数で表
される。バスサイクル長判定部25は、判定結果を、完
了時刻判定部26に通知する。
【0096】[ステップS15]完了時刻判定部26
は、アクセス要求Aの処理完了までの時間を、アクセス
完了時間情報26aとして記憶する。以後、完了時刻判
定部26は、アクセス完了時間情報26aに記憶した値
(サイクル数)を、バスの同期信号が出力される毎にカ
ウントダウンする。
【0097】[ステップS16]外部バスシーケンサ2
2は、アクセス要求Aに応じたメモリアクセスを開始す
る。以後、アクセス要求Bが出力されることで、アクセ
ス要求Aに関する処理は、アクセス要求Bに関する処理
との相互関係に応じて実行される。そこで、アクセス要
求Aに関する処理はステップS31に進められる。
【0098】以上がアクセス要求AがCPU10から出
力された時に実行される処理である。次に、アクセス要
求Aの処理実行中にアクセス要求Bが出力されたときの
処理を説明する。
【0099】[ステップS21]内部バスシーケンサ2
1は、アクセス要求の有無を常時判断している。アクセ
ス要求がなければ、ステップS21の処理が繰り返され
る。アクセス要求Bが命令バス51またはデータバス5
2を介して入力されると、内部バスシーケンサ21は、
アクセス要求有りと判断し、処理をステップS22に進
める。
【0100】[ステップS22]内部バスシーケンサ2
1は、外部バスシーケンサ22に対してアクセス要求B
を発行する。同時に、内部バスシーケンサ21は、アク
セス要求で示されたアドレスを領域判定部24に通知す
る。
【0101】[ステップS23]領域判定部24は、内
部バスシーケンサ21から渡されたアドレスに基づい
て、アクセス要求Bのアクセス領域がどのメモリの領域
かを判定する。領域判定部24は、判定結果を外部バス
シーケンサ22とバスサイクル長判定部25とに通知す
る。
【0102】[ステップS24]バスサイクル長判定部
25は、ウェイト設定レジスタ群23より、アクセス要
求Bのアクセス対象となるメモリ用のウェイト設定レジ
スタの値を取得する。そして、バスサイクル長判定部2
5は、アクセス要求Bに応じたアクセスに要する時間を
判定する。判定結果は、バス同期信号のサイクル数で表
される。バスサイクル長判定部25は、判定結果を完了
時刻判定部26に通知する。
【0103】[ステップS25]完了時刻判定部26
は、アクセス完了時間情報26aが設定されていること
から、現在実行中のアクセス処理が存在することを認識
している。そこで、完了時刻判定部26は、バスサイク
ル長判定部25から受け取ったアクセス要求Bのバスサ
イクル長とアクセス完了時間情報26aとを比較する。
完了時刻判定部26は、比較結果から、アクセス要求A
とアクセス要求Bとのそれぞれの完了時刻の先後関係を
判定する。そして、完了時刻判定部26は、判定の結果
を外部バスシーケンサ22に渡す。
【0104】なお、判定結果としては、「アクセス要求
Aの処理が先に完了する」、「アクセス要求Bが先に完
了する」、「アクセス要求Aとアクセス要求Bとの完了
時期が同時である」の3通りがあり得る。第1の実施の
形態では、アクセス要求Bが先に完了するか否かのみを
判定する。
【0105】[ステップS31]外部バスシーケンサ2
2は、アクセス要求Bが先に完了するという判定結果を
受け取ったか否かを判断する。アクセス要求Bが先に完
了すると判定された場合には、処理がステップS32に
進められる。アクセス要求Bが先に完了することができ
ないと判定された場合には、処理がステップS35に進
められる。
【0106】[ステップS32]外部バスシーケンサ2
2は、アクセス要求Bに応じたメモリアクセスを開始す
る。 [ステップS33]外部バスシーケンサ22は、アクセ
ス要求Bのメモリアクセスを完了する。すると、外部バ
スシーケンサ22から命令コードまたはデータが内部バ
スシーケンサ21に渡される。そして、内部バスシーケ
ンサ21からCPUへ、命令バス51またはデータバス
52を介して、命令コードまたはデータが転送される。
【0107】[ステップS34]外部バスシーケンサ2
2は、アクセス要求Aのメモリアクセスを完了する。取
得した命令コードやデータのCPU10への転送処理
は、ステップS33で説明した処理と同様である。
【0108】[ステップS35]外部バスシーケンサ2
2は、アクセス要求Aのメモリアクセスを完了する。取
得した命令コードやデータのCPU10への転送処理
は、ステップS33で説明した処理と同様である。
【0109】[ステップS36]外部バスシーケンサ2
2は、アクセス要求Bのメモリアクセスを開始する。 [ステップS37]外部バスシーケンサ22は、アクセ
ス要求Bのメモリアクセスを完了する。取得した命令コ
ードやデータのCPU10への転送処理は、ステップS
33で説明した処理と同様である。その後、処理が終了
する。
【0110】以上のようにして、アクセス要求Aに応じ
たアクセス処理実行中にアクセス要求Bが出力され、ア
クセス要求Bの処理の方が先に完了可能な場合には、ア
クセス要求Bの処理を割り込み実行させることができ
る。
【0111】図10は、アクセス処理中に他のアクセス
要求が出された場合のタイミングチャートである。な
お、命令バス51では、アドレス、ウェイト信号、デー
タなどが転送される。ウェイト信号は、ハイレベルの時
に有効な信号である(Hアクティブ)。データバス52
では、アドレス、ウェイト信号、データなどが転送され
る。ウェイト信号は、ハイレベルの時に有効な信号であ
る(Hアクティブ)。メモリバス60では、ROMアド
レス、RAMアドレス、ROM選択信号(ROMCS
X)、RAM選択信号(RAMCSX)、ROMリード
ストローブ信号(ROMREADX)、RAMリードス
トローブ信号(RAMREADX)、データなどが転送
される。ROM選択信号(ROMCSX)、RAM選択
信号(RAMCSX)、ROMリードストローブ信号
(ROMREADX)、およびRAMリードストローブ
信号(RAMREADX)は、ローレベルの時に有効な
信号である(Lアクティブ)。
【0112】図10の例では、命令フェッチ#1、デー
タリード#2、データリード#3の順番で、CPU10
からメモリ(ROM30およびRAM40)へのアクセ
ス要求が出された場合を想定している。また、CPU1
0の命令バス51およびデータバス52を介したアクセ
ス要求は、最短で同期信号2サイクル分の時間で完結す
る。2サイクルで完結できない場合は、バス制御回路2
0によってウェイト信号が出さる。ウェイト信号を受け
たCPU10は、アクセスの延長処理を行う。図10の
例では、ROM30からの命令の取得(命令フェッチ)
には、同期信号で4サイクルの時間が必要である。ま
た、RAM40からのデータリードには、同期信号で2
サイクルの時間が必要である。
【0113】まず、周期T1の同期信号の立ち上がり
で、CPU10から命令バス51に対して、命令フェッ
チ#1(ROM30へのアクセス要求)のアドレスが出
力される。すると、バス制御回路20からメモリバス6
0へ、命令フェッチ#1のアドレス(ROMアドレス)
が出力される。このとき、バス制御回路20により、メ
モリバス60のROM選択信号(ROMCSX)とRO
Mリードストローブ信号(ROMREADX)とがアサ
ートされる。
【0114】周期T2の同期信号の立ち上がりで、バス
制御回路20により、命令バスのウェイト信号がアサー
トされる。このとき、CPU10からは、データバス5
2に対して、データリード#2(RAM40へのアクセ
ス要求)のアドレスが出力される。
【0115】この時点では、メモリバス60が命令フェ
ッチに使用されている。すなわち、命令フェッチ#1の
アクセス要求に応じたアクセス処理の実行中である。そ
こで、命令フェッチ#1のアクセス完了時間と、データ
リード#2のアクセス完了時間とが比較される。
【0116】命令フェッチ#1処理には、4クロック必
要であるため、残り3クロック分の時間が必要である。
すなわち、命令フェッチ#1のアクセス処理完了時刻
は、周期T5の同期信号の立ち上がり時である。一方、
データリード処理#2には、2クロック必要である。す
なわち、データリード処理完了時刻は、周期T4の同期
信号立ち上がり時である。
【0117】従って、完了時刻判定部26によるアクセ
ス完了時刻比較の結果、データリード#2の方が先に完
了可能であることが判定される。そこで、周期T2の同
期信号の立ち上がりの際には、バス制御回路20によ
り、メモリバス60のRAM選択信号(RAMCSX)
とRAMリードストローブ信号(RAMREADX)と
がアサートされる。このとき、バス制御回路20によ
り、ROMリードストローブ信号がネゲートされる。そ
して、バス制御回路20により、メモリバス60に対し
てデータリード#2のアドレス(RAMアドレス)が出
力される。
【0118】周期T3の時間内に、RAM40からメモ
リバス60へ、データリード#2のアクセス要求に応じ
た有効データVD#2が出力される。その有効データV
D#2は、バス制御回路20により、データバス52へ
出力される。
【0119】周期T4の同期信号の立ち上がりで、デー
タリード#2のアクセス要求に応じた有効データVD#
2の転送が終了する(データリードが完了する)。これ
により、CPU10によるデータバス52へのデータリ
ード#2のアドレス(RAMアドレス)出力が終了す
る。また、バス制御回路20によるメモリバス60への
データリード#2のアドレス(RAMアドレス)出力が
終了する。さらに、命令フェッチ#1に応じたROM3
0のウェイト時間が終了したため、バス制御回路20
は、命令バス51に対するウェイト信号をネゲートす
る。
【0120】周期T4の時間内に、ROM30からメモ
リバス60へ、命令フェッチ#1のアクセス要求に応じ
た有効命令VD#1が出力される。その有効命令VD#
1は、バス制御回路20により、命令バス51へ出力さ
れる。
【0121】また、周期T4の同期信号の立ち上がりで
は、CPU10からデータバス52に対して、データリ
ード#3(RAM40へのアクセス要求)のアドレスが
出力される。この時点では、メモリバス60が命令フェ
ッチに使用されている。すなわち、命令フェッチ#1の
アクセス要求に応じたアクセス処理の実行中である。そ
こで、命令フェッチ#1のアクセス完了時間と、データ
リード#3のアクセス完了時間とが比較される。
【0122】命令フェッチ#1処理には、4クロック必
要であるため、残り1クロック分の時間が必要である。
すなわち、命令フェッチ#1のアクセス処理完了時刻
は、周期T5の同期信号の立ち上がり時である。一方、
データリード#3処理には、2クロック必要である。す
なわち、データリード処理完了時刻は、最短でも周期T
6の同期信号立ち上がり時である。
【0123】従って、完了時刻判定部26によるアクセ
ス完了時刻比較の結果、データリード#3の方を先に完
了することができないと判定される。そこで、周期T5
の同期信号の立ち上がりの際には、バス制御回路20に
より、データバス52のウェイト信号がアサートされ
る。
【0124】また、周期T5の同期信号の立ち上がり
で、命令フェッチ#1のアクセス要求に応じた有効命令
VD#1の転送が終了する(命令フェッチが完了す
る)。これにより、CPU10による命令バス51への
命令フェッチ#1のアドレス(ROMアドレス)出力が
終了する。また、バス制御回路20によるメモリバス6
0への命令フェッチ#1のアドレス(ROMアドレス)
出力が終了し、代わりに、メモリバス60へデータリー
ド#3のアドレス(RAMアドレス)が出力される。さ
らに、バス制御回路20により、メモリバス60のRO
M選択信号(ROMCSX)とROMリードストローブ
信号(ROMREADX)とがネゲートされ、RAM選
択信号(RAMCSX)とRAMリードストローブ信号
(RAMREADX)とがアサートされる。
【0125】周期T6の時間内に、RAM40からメモ
リバス60へ、データリード#3のアクセス要求に応じ
た有効データVD#3が出力される。その有効データV
D#3は、バス制御回路20により、データバスへ出力
される。
【0126】周期T7の同期信号の立ち上がりで、デー
タリード#3のアクセス要求に応じた有効データVD#
3の転送が終了する。これにより、CPU10によるデ
ータバス52へのデータリード#3のアドレス出力が終
了する。同時に、バス制御回路20によるメモリバス6
0へのデータリード#3のアドレス出力が終了する。ま
た、RAM選択信号(RAMCSX)とRAMリードス
トローブ信号(RAMREADX)とは、バス制御回路
20によりネゲートされる。
【0127】以上の処理を簡単に纏めると、次のように
なる。すなわち、命令フェッチ#1の処理中にデータリ
ード#2のアクセス要求が出力されると、バス制御回路
20は、データリード#2のアクセス要求を先に完了可
能であると判断する。そこで、バス制御回路20は、R
OMリードストローブ信号(ROMREADX)をいった
ん取り下げる。バス制御回路20は、続けてRAM40
へのデータリード#2に応じたアクセスを開始する。R
AM40へのアクセスが完了すると、バス制御回路20
は、いったん取り下げたROMリードストローブ信号
(ROMREADX)を再び有効にする。その後、周期
T4の終わりで有効データVD#1を取り込む。
【0128】データリード#3は周期T4から開始され
るが、命令フェッチの完了時刻のほうが早いため、アク
セスは保留され、ウェイトが1サイクル分発生する。命
令フェッチ#1の処理完了後、データリード#3の処置
が実行され、2サイクルで完了する。
【0129】このようにして、1回の命令フェッチと2
回のデータリードとが6サイクルで完了する。従来技術
で示した図15の例と比べると、2サイクル分の時間短
縮が図られている。
【0130】[同時に複数のアクセス要求が出力される
場合]第1の実施の形態では、同時に複数のアクセス要
求が出力された場合、バス制御回路20は、アクセスに
要する時間の長いアクセス要求から優先的に処理を開始
する。そして、先に開始されたアクセス処理が完了する
前に、別のアクセス処理が完了可能であれば、バス制御
回路20は、先に開始されたアクセス処理の完了を待た
ずに、別のアクセス処理を割り込ませる。なお、ここで
同時とは、「同一周期内で」という意味である。
【0131】以下に、同時に複数のアクセス要求が出力
された場合の、バス制御回路20における処理手順を説
明する。図11は、同時に複数のアクセス要求が出力さ
れた場合の処理手順を示すフローチャートである。以
下、図11に示す処理をステップ番号に沿って説明す
る。なお、CPU10から出力される複数のアクセス要
求を「アクセス要求A」、「アクセス要求B」とする。
【0132】ステップS41〜ステップS44の処理
は、図9に示すステップS11〜ステップS14の処理
と同様である。また、ステップS51〜ステップS54
の処理は、図9に示すステップS21〜ステップS24
の処理と同様である。そこで、ステップS61以降の処
理について説明する。
【0133】[ステップS61]完了時刻判定部26
は、1サイクル内で複数のバスサイクル長を受け取った
ことから、複数のアクセス要求が同時に出力されたこと
を認識する。そこで、完了時刻判定部26は、アクセス
要求Aとアクセス要求Bとのバスサイクル長を比較す
る。完了時刻判定部26は、比較結果から、アクセス要
求Aとアクセス要求Bとのそれぞれの完了時刻の先後関
係を判定する。さらに、完了時刻判定部26は、完了時
刻が遅いアクセス要求の処理を開始した次の周期で、完
了時刻が速いアクセス要求の処理を開始した場合、どち
らのアクセス要求が先に完了するかを判定する。すなわ
ち、完了時刻判定部26は、バスサイクル長の短いアク
セス要求の処理を、他方のアクセス要求より1周期遅れ
て開始させても、その他方のアクセス要求より先に処理
を完了できるかどうかを判定する。そして、完了時刻判
定部26は、判定の結果を外部バスシーケンサ22に渡
す。
【0134】なお、判定結果としては、 ・アクセス要求Aの方がバスサイクル長が長く、アクセ
ス要求Aの処理を開始後にアクセス要求Bの処理を開始
してもアクセス要求Bの処理が先に完了する(アクセス
要求Aの処理サイクル中にアクセス要求Bの処理を完了
可能)。 ・アクセス要求Bの方がバスサイクル長が長く、アクセ
ス要求Bの処理開始後にアクセス要求Aの処理を開始し
てもアクセス要求Aの処理が先に完了する(アクセス要
求Bの処理サイクル中にアクセス要求Aの処理を完了可
能)。 ・一方のアクセス要求の処理を開始後に他方のアクセス
要求の処理を開始させ、他方のアクセス要求の処理を先
に完了させることはできない。
【0135】以上の3通りがあり得る。 [ステップS62]外部バスシーケンサ22は、アクセ
ス要求Bの処理中にアクセス要求Aの処理を完了可能と
いう判定結果を受け取ったか否かを判断する。このよう
な判定結果を受け取った場合には、処理がステップS6
3に進められる。そうでない場合には処理がステップS
67に進められる。
【0136】[ステップS63]外部バスシーケンサ2
2は、アクセス要求Bに応じたメモリアクセスを開始す
る。 [ステップS64]外部バスシーケンサ22は、アクセ
ス要求Aに応じたメモリアクセスを開始する。
【0137】[ステップS65]外部バスシーケンサ2
2は、アクセス要求Aのメモリアクセスを完了する。す
ると、外部バスシーケンサ22から命令コードまたはデ
ータが内部バスシーケンサ21に渡される。そして、内
部バスシーケンサ21からCPU10へ、命令バス51
またはデータバス52を介して、命令コードまたはデー
タが転送される。
【0138】[ステップS66]外部バスシーケンサ2
2は、アクセス要求Bのメモリアクセスを完了する。取
得した命令コードやデータのCPU10への転送処理
は、ステップS65で説明した処理と同様である。
【0139】[ステップS67]外部バスシーケンサ2
2は、アクセス要求Aの処理中にアクセス要求Bの処理
を完了可能という判定結果を受け取ったか否かを判断す
る。このような判定結果を受け取った場合には、処理が
ステップS68に進められる。そうでない場合には処理
がステップS72に進められる。
【0140】[ステップS68]外部バスシーケンサ2
2は、アクセス要求Aに応じたメモリアクセスを開始す
る。 [ステップS69]外部バスシーケンサ22は、アクセ
ス要求Bに応じたメモリアクセスを開始する。
【0141】[ステップS70]外部バスシーケンサ2
2は、アクセス要求Bのメモリアクセスを完了する。取
得した命令コードやデータのCPU10への転送処理
は、ステップS65で説明した処理と同様である。その
後、処理が終了する。
【0142】[ステップS71]外部バスシーケンサ2
2は、アクセス要求Aのメモリアクセスを完了する。取
得した命令コードやデータのCPU10への転送処理
は、ステップS65で説明した処理と同様である。その
後、処理が終了する。
【0143】[ステップS72]外部バスシーケンサ2
2は、アクセス要求Aに応じたメモリアクセスを開始す
る。 [ステップS73]外部バスシーケンサ22は、アクセ
ス要求Aのメモリアクセスを完了する。取得した命令コ
ードやデータのCPU10への転送処理は、ステップS
65で説明した処理と同様である。
【0144】[ステップS74]外部バスシーケンサ2
2は、アクセス要求Bに応じたメモリアクセスを開始す
る。 [ステップS75]外部バスシーケンサ22は、アクセ
ス要求Bのメモリアクセスを完了する。取得した命令コ
ードやデータのCPU10への転送処理は、ステップS
65で説明した処理と同様である。その後、処理が終了
する。
【0145】このようにして、バスサイクル長の長い
(メモリアクセスに時間がかかる)アクセス要求の処理
を実行している間に、他方のアクセス要求の処理を完了
させることができるときは、バスサイクル長の長いアク
セス要求の処理中に、バスサイクル長の短いアクセス要
求の処理を割り込ませることができる。
【0146】図12は、同時に複数のアクセス要求が出
力された場合のタイミングチャートである。図12の例
では、ROM30への命令フェッチ#1とRAM40へ
のデータリード#2とのアクセス要求が同時(同じ周期
内)にCPU10から出力され、その後、RAM40へ
のデータリード#3のアクセス要求がCPU10から出
力される場合を想定している。
【0147】まず、周期T1の同期信号の立ち上がり
で、CPU10から命令バス51に対して、命令フェッ
チ#1(ROM30へのアクセス要求)のアドレスが出
力される。同時に、CPU10からデータバス52に対
して、データリード#1(RAM40へのアクセス要
求)のアドレスが出力される。
【0148】すると、バス制御回路20では、2つのア
クセス要求のバスサイクル長を比較する。そして、バス
制御回路20は、バスサイクル長が長い(4サイクル)
命令フェッチ#1の処理を先に開始することが決定され
る。
【0149】さらに、バス制御回路20により、命令フ
ェッチ#1のアクセス完了時間と、データリード#2の
アクセス処理を次の周期T2に開始した場合のアクセス
完了時間とが比較される。命令フェッチ#1処理には、
4クロック必要であるため、命令フェッチ#1のアクセ
ス処理完了時刻は、周期T5の同期信号の立ち上がり時
である。一方、データリード処理#2には、2クロック
必要であるため、データリード処理完了時刻は、周期T
4の同期信号立ち上がり時である。従って、完了時刻判
定部26によるアクセス完了時刻比較の結果、データリ
ード#2の方が先に完了可能であることが判定される。
すなわち、周期T2〜T4の間に、データリード#2に
応じたアクセスを実行することが決定される。
【0150】そこで、周期T1では、バス制御回路20
からメモリバス60へ、命令フェッチ#1のアドレス
(ROMアドレス)が出力される。このとき、バス制御
回路20により、メモリバス60のROM選択信号(R
OMCSX)がアサートされる。ただし、データリード
#2のアクセス処理を割り込ませることが分かっている
ため、ROMリードストローブ信号(ROMREAD
X)はネゲートされたままである。
【0151】周期T2の同期信号の立ち上がりで、バス
制御回路20により、命令バス51のウェイト信号がア
サートされる。また、データリード#2のアクセスを割
り込ませるため、バス制御回路20により、メモリバス
60のRAM選択信号(RAMCSX)とRAMリード
ストローブ信号(RAMREADX)とがアサートされ
る。また、データリード#2の処理が1サイクル分遅れ
て開始されるため、バス制御回路20により、データバ
ス52のウェイト信号がアサートされる。そして、バス
制御回路20により、メモリバス60に対してデータリ
ード#2のアドレス(RAMアドレス)が出力される。
【0152】周期T3以降の処理は、図10に示したタ
イミングチャートの周期T3以降の処理と同様である。
このように、周期T1において、CPU10から命令フ
ェッチ#1とデータリード#2とが同時に要求される
と、バス制御回路20は、命令フェッチ#1の完了時刻
がデータリード#2の完了時刻より遅いと判断する。そ
して、バス制御回路20は、周期T1において命令フェ
ッチ#1に応じたメモリアクセスを開始し、周期T2に
おいてデータリード#2に応じたアクセス処理を開始す
る。すると、周期T4の同期信号立ち上がり時に、デー
タリード#2のアクセス処理が完了し、周期T5の同期
信号立ち上がり時に、命令フェッチ#1のアクセス処理
が完了する。
【0153】その結果、1回の命令フェッチと2回のデ
ータリードとが6サイクルで完了する。従来技術では、
アクセス要求が同時に発生しても順番にアクセスするだ
けであるため、図15に示した例と同様の時間が必要と
なる。従って、図12の例と図15の例と比べると、2
サイクル分の時間短縮が図られていることが分かる。
【0154】以上のように、本発明の第1の実施の形態
によれば、先に開始したメモリアクセス処理が完了する
前に、他のメモリアクセスの処理を完了させることが可
能であれば、先に開始したメモリアクセス処理中に他の
メモリアクセス処理を実行するようにした。これによ
り、アクセス速度の異なる複数のメモリを対象としたメ
モリアクセスを、効率よく行うことができる。
【0155】[第2の実施の形態]次に、第2の実施の
形態について説明する。第2の実施の形態は、マルチC
PU構成の電子機器に本発明を適用したものである。
【0156】図13は、第2の実施の形態に係る電子機
器のハードウェア構成例を示す図である。図13に示す
ように、第2の実施の形態では、複数のCPU111,
112、バス制御回路120、ROM130、RAM1
40、複数の内部バス151,152、およびメモリバ
ス160で構成されている。
【0157】CPU111は、内部バス151を介して
バス制御回路120に接続されている。CPU112
は、内部バス152を介してバス制御回路120に接続
されている。CPU111とCPU112とには、それ
ぞれデータ処理上の役割が分担されている。各CPU1
11,112は、分担された役割に応じたデータ処理を
実行する。CPU111は、内部バス151、バス制御
回路120およびメモリバス160を介して、ROM1
30やRAM140にアクセスし、命令フェッチやデー
タリードなどを行う。CPU112は、内部バス15
2、バス制御回路120およびメモリバス160を介し
て、ROM130やRAM140にアクセスし、命令フ
ェッチやデータリードなどを行う。
【0158】バス制御回路120は、CPU111,1
12からのアクセス要求に応答して、ROM130やR
AM140から命令コードやデータを取得する。バス制
御回路120は、取得した命令コードやデータを、アク
セス要求を出力したCPUに渡す。
【0159】バス制御回路120は、CPU111とC
PU112とのそれぞれから、重複した時間帯に、RO
M130やRAM140へのアクセス要求が出される
と、それぞれのアクセス命令の競合判定を行う。競合判
定により、同時期にCPU111とCPU112とから
アクセス要求が出されたと判断した場合、バス制御回路
120は、各アクセス要求に応じたアクセス処理の完了
時刻に応じて、アクセス要求の処理を開始するタイミン
グを決定する。そして、バス制御回路120は、決定し
たタイミングに従って、ROM130やRAM140に
アクセスする。
【0160】バス制御回路120の内部構成は、図5に
示した第1の実施の形態のバス制御回路20とほぼ同様
である。ただし、バス制御回路120の内部バスシーケ
ンサには、内部バス151と内部バス152とが接続さ
れる。
【0161】図13のROM130、RAM140およ
びメモリバス160は、図4に示した第1の実施の形態
の同名の構成要素(ROM30,RAM40,メモリバ
ス60)と同じ機能を有している。
【0162】このようなハードウェア構成にすること
で、マルチCPU構成の電子機器においても、メモリア
クセスの効率化を図ることができる。たとえば、CPU
111がROM130に対する命令フェッチを行ってい
る間(アクセス処理サイクル中)に、CPU112によ
るRAM140へのデータリード処理を実行させること
ができる。
【0163】[第3の実施の形態]次に、第3の実施の
形態について説明する。第3の実施の形態は、アドレス
ラッチ回路を内蔵していないメモリを使用する場合の例
である。第1、第2の実施の形態では、比較的アクセス
速度が遅い方のメモリ(ROM30,103)は、アド
レスラッチ回路を内蔵している。しかし、必ずしも全て
のタイプのROMがアドレスラッチ回路を内蔵している
わけではない。そこで、アドレスラッチ回路を内蔵して
いないROMを用いたシステムの場合、ROMとメモリ
バスとの間に、アドレスラッチ回路を設ける。
【0164】図14は、第3の実施の形態に係る電子機
器のハードウェア構成例を示す図である。図14に示す
ように、第3の実施の形態では、CPU211、バス制
御回路220、ROM230、アドレスラッチ回路23
1、RAM240、命令バス251、データバス25
2、およびメモリバス260で構成されている。ROM
230とアドレスラッチ回路231以外の各要素は、図
4に示した第1の実施の形態の同名の構成要素と同じ機
能を有している。
【0165】ROM230は、基本的には、図4に示し
た第1の実施の形態のROM30と同様の機能を有して
いるが、アドレスをラッチする機能が欠けている。そこ
で、第3の実施の形態では、ROM230とメモリバス
260との間に、アドレスラッチ回路231が設けられ
ている。
【0166】アドレスラッチ回路231は、メモリバス
260のアドレス信号線に出力されたアドレスをラッチ
(データを一時的に保持すること)する回路を内蔵して
いる。すなわち、ROM230用の選択信号が有効とな
ったときは、アドレスラッチ回路231は、アドレス信
号線に出力されたアドレスをラッチする。ROM230
は、アドレスラッチ回路231にラッチされたアドレス
のデータへのアクセス動作を行う。アクセス動作が完了
する前に、メモリバス260のアドレス信号線の出力ア
ドレスが変わっても、ROM230は、アドレスラッチ
回路231にラッチされたアドレスに基づいて、データ
アクセスを継続することができる。
【0167】[その他の実施の形態]上記各実施の形態
では、CPUからのアクセス対象をROMやRAMなど
の半導体メモリとして説明しているが、アクセス対象は
ROMやRAMに限定されない。たとえば、I/O(Inp
ut/Output)デバイスをアクセス対象とすることができ
る。I/Oデバイスとは、データの入力や出力を行う装
置である。入力装置にはマウスやキーボードなど、出力
装置にはプリンタやディスプレイなどがある。
【0168】(付記1) 共有バスを介して複数の装置
にアクセス可能なマイクロコンピュータにおいて、第1
の装置への第1のアクセス要求に応じたアクセス処理中
に、CPUから第2の装置への第2のアクセス要求が発
生すると、前記第1と第2の装置へのアクセス所要時間
に基づいて、前記第1の装置へのアクセス処理完了時刻
と、前記第2の装置へのアクセス処理が完了可能な最先
の時刻との先後関係を判定するアクセス完了時刻判定部
と、前記アクセス完了時刻判定部において、前記第1の
装置へのアクセス処理完了時刻よりも先に前記第2の装
置へのアクセス処理が完了可能と判定された場合、前記
第2のアクセス要求に応じた前記第2の装置へのアクセ
スを、前記第1の装置への第1のアクセス要求に応じた
アクセス処理サイクル中に実行するバスアクセス部と、
を有することを特徴とするマイクロコンピュータ。
【0169】(付記2) 前記複数の装置は、アクセス
所要時間が異なる複数の半導体メモリであることを特徴
とする付記1記載のマイクロコンピュータ。 (付記3) 前記複数の機器は、アクセス所要時間が異
なる複数のI/Oデバイスであることを特徴とする付記
1記載のマイクロコンピュータ。
【0170】(付記4) 前記第1と第2の装置へのア
クセスを行う際にCPUへ出力するべきウェイト信号の
出力時間が予め設定されたウェイト設定レジスタと、前
記ウェイト設定レジスタに設定された前記ウェイト信号
の出力時間に基づいて、前記第1と第2のアクセス要求
の前記アクセス所要時間を判定するアクセス時間判定部
と、をさらに有することを特徴とする付記1記載のマイ
クロコンピュータ。
【0171】(付記5) 前記アクセス完了時刻判定部
は、前記第1の装置への前記第1のアクセス要求に応じ
たアクセス完了までの残り時間を示すアクセス完了時間
情報を保持しており、前記アクセス時間判定部において
判定された前記第2のアクセス要求の前記アクセス所要
時間と前記アクセス完了時間情報とを比較することで、
前記第1の装置へのアクセス処理完了時刻と、前記第2
の装置へのアクセス処理が完了可能な最先の時刻との先
後関係を判定することを特徴とする付記4記載のマイク
ロコンピュータ。
【0172】(付記6) 前記第1のアクセス要求は、
前記CPUから命令バスを介して出力される命令フェッ
チ要求であり、前記第2のアクセス要求は、前記CPU
からデータバスを介して出力されるデータリード要求で
あることを特徴とする付記1記載のマイクロコンピュー
タ。
【0173】(付記7) 前記第1と第2のアクセス要
求は、複数のCPUそれぞれから出力されることを特徴
とする付記1記載のマイクロコンピュータ。 (付記8) 共有バスを介して複数の装置にアクセス可
能なマイクロコンピュータにおいて、CPUから異なる
装置への複数のアクセス要求が同時期に発生すると、各
装置のアクセス所要時間に基づいて、先にアクセスする
第1の装置と後にアクセスする第2の装置とのそれぞれ
へのアクセス処理が完了可能な最先の時刻の先後関係を
判定するアクセス完了時刻判定部と、前記アクセス完了
時刻判定部において、前記第1の装置へのアクセス処理
完了時刻よりも先に前記第2の装置へのアクセス処理が
完了可能と判定された場合、前記第1の装置へのアクセ
スを開始後、前記第2の装置へのアクセスを、前記第1
の装置へのアクセス処理サイクル中に実行するバスアク
セス部と、を有することを特徴とするマイクロコンピュ
ータ。
【0174】(付記9) 前記アクセス完了時刻判定部
は、複数のアクセス要求が同時期に発生すると、アクセ
ス所要時間の長い装置を先にアクセス処理を開始するよ
うにアクセス順を決定することを特徴とする付記8記載
のマイクロコンピュータ。
【0175】(付記10) CPUからの要求に応答し
て、共有バスを介して複数の装置にアクセスするバス制
御回路において、第1の装置への第1のアクセス要求に
応じたアクセス処理中に、前記CPUから第2の装置へ
の第2のアクセス要求が発生すると、前記第1と第2の
装置へのアクセス所要時間に基づいて、前記第1の装置
へのアクセス処理完了時刻と、前記第2の装置へのアク
セス処理が完了可能な最先の時刻との先後関係を判定す
るアクセス完了時刻判定部と、前記アクセス完了時刻判
定部において、前記第1の装置へのアクセス処理完了時
刻よりも先に前記第2の装置へのアクセス処理が完了可
能と判定された場合、前記第2のアクセス要求に応じた
前記第2の装置へのアクセスを、前記第1の装置への第
1のアクセス要求に応じたアクセス処理サイクル中に実
行するバスアクセス部と、を有することを特徴とするバ
ス制御回路。
【0176】(付記11) CPUからの要求に応答し
て、共有バスを介して複数の装置にアクセスするバス制
御回路において、前記CPUから異なる装置への複数の
アクセス要求が同時期に発生すると、第1と第2の装置
のアクセス所要時間に基づいて、アクセス所要時間の長
い装置から順にアクセスを開始した場合に先にアクセス
する前記第1の装置と後にアクセスする前記第2の装置
とのそれぞれへのアクセス処理が完了可能な最先の時刻
の先後関係を判定するアクセス完了時刻判定部と、前記
第1の装置へのアクセス処理完了時刻よりも先に前記第
2の装置へのアクセス処理が完了可能と判定された場
合、前記第1の装置へのアクセスを開始後、前記第2の
装置へのアクセスを、前記第1の装置へのアクセス処理
サイクル中に実行するバスアクセス部と、を有すること
を特徴とするバス制御回路。
【0177】(付記12) 共有バスを介して複数の装
置にアクセス可能なマイクロコンピュータにおけるデー
タアクセス方法であって、第1の装置への第1のアクセ
ス要求に応じたアクセス処理中に、CPUから第2の装
置への第2のアクセス要求が発生すると、前記第1と第
2の装置へのアクセス所要時間に基づいて、前記第1の
装置へのアクセス処理完了時刻と、前記第2の装置への
アクセス処理が完了可能な最先の時刻との先後関係を判
定し、前記第1の装置へのアクセス処理完了時刻よりも
先に前記第2の装置へのアクセス処理が完了可能と判定
された場合、前記第2のアクセス要求に応じた前記第2
の装置へのアクセスを、前記第1の装置への第1のアク
セス要求に応じたアクセス処理サイクル中に実行する、
ことを特徴とするマイクロコンピュータにおけるデータ
アクセス方法。
【0178】(付記13) 共有バスを介して複数の装
置にアクセス可能なマイクロコンピュータにおけるデー
タアクセス方法において、CPUから異なる装置への複
数のアクセス要求が同時期に発生すると、各装置のアク
セス所要時間に基づいて、先にアクセスする第1の装置
と後にアクセスする第2の装置とのそれぞれへのアクセ
ス処理が完了可能な最先の時刻の先後関係を判定し、前
記第1の装置へのアクセス処理完了時刻よりも先に前記
第2の装置へのアクセス処理が完了可能と判定された場
合、前記第1の装置へのアクセスを開始後、前記第2の
装置へのアクセスを、前記第1の装置へのアクセス処理
サイクル中に実行する、ことを特徴とするマイクロコン
ピュータにおけるデータアクセス方法。
【0179】
【発明の効果】以上説明したように本発明の第1、第
3、第5の態様では、第1のアクセス要求に応じたアク
セス処理中に、第2のアクセス要求が発生すると、アク
セス完了時刻の先後関係を判定する。そして、実行中の
アクセスよりも、第2のアクセス要求に応じたアクセス
処理が先に完了可能と判定された場合、第2のアクセス
要求に応じたアクセスを第1のアクセス要求に応じたア
クセス処理サイクル中に実行するようにした。そのた
め、複数のアクセス要求に応じた処理が時間的に重複し
て実行され、バスアクセス処理の効率化が図れる。
【0180】また、本発明の第2、第4、第6の態様で
は、複数のアクセス要求が同時期に発生すると、先に実
行するアクセス処理の完了時刻と、後に実行するアクセ
ス処理の完了時刻との先後関係を判定する。そして、先
に実行するアクセス処理の完了時刻よりも先に、後に実
行するアクセス処理が完了可能と判定された場合、後に
実行開始する第2のアクセス要求に応じたアクセスを、
先に実行開始する第1のアクセス要求に応じたアクセス
処理サイクル中に実行するようにした。そのため、同時
期に発生した複数のアクセス要求に応じた処理が時間的
に重複して実行され、バスアクセス処理の効率化が図れ
る。
【図面の簡単な説明】
【図1】本発明の実施の形態に適用される発明の概念図
である。
【図2】第1のアクセス要求に応じたアクセス処理中に
第2のアクセス要求が発生した場合の処理手順を示すフ
ローチャートである。
【図3】第1のアクセス要求と第2のアクセス要求とが
同時に発生した場合の処理手順を示すフローチャートで
ある。
【図4】本発明の第1の実施の形態に係る電子機器のハ
ードウェア構成例を示すブロック図である。
【図5】バス制御回路の内部構成を示すブロック図であ
る。
【図6】ウェイト設定レジスタ群のデータ構造例を示す
図である。
【図7】領域判定部内に保持されるメモリ領域情報のデ
ータ構造例を示す図である。
【図8】完了時刻判定部内に保持されるアクセス完了時
間情報のデータ構造例を示す図である。
【図9】アクセス処理中に他のアクセス要求が出された
場合の処理手順を示すフローチャートである。
【図10】アクセス処理中に他のアクセス要求が出され
た場合のタイミングチャートである。
【図11】同時に複数のアクセス要求が出力された場合
の処理手順を示すフローチャートである。
【図12】同時に複数のアクセス要求が出力された場合
のタイミングチャートである。
【図13】第2の実施の形態に係る電子機器のハードウ
ェア構成例を示す図である。
【図14】第3の実施の形態に係る電子機器のハードウ
ェア構成例を示す図である。
【図15】図15は、従来のメモリアクセス例を示すタ
イミングチャートである。
【符号の説明】
1 共有バス 2 CPU 3 第1の装置 4 第2の装置 5 バス制御回路 5a アクセス完了時刻判定部 5b バスアクセス部 5c アクセス所要時間 10 CPU 20 バス制御回路 30 ROM 40 RAM 51 命令バス 52 データバス 60 メモリバス

Claims (10)

    【特許請求の範囲】
  1. 【請求項1】 共有バスを介して複数の装置にアクセス
    可能なマイクロコンピュータにおいて、 第1の装置への第1のアクセス要求に応じたアクセス処
    理中に、CPUから第2の装置への第2のアクセス要求
    が発生すると、前記第1と第2の装置へのアクセス所要
    時間に基づいて、前記第1の装置へのアクセス処理完了
    時刻と、前記第2の装置へのアクセス処理が完了可能な
    最先の時刻との先後関係を判定するアクセス完了時刻判
    定部と、 前記アクセス完了時刻判定部において、前記第1の装置
    へのアクセス処理完了時刻よりも先に前記第2の装置へ
    のアクセス処理が完了可能と判定された場合、前記第2
    のアクセス要求に応じた前記第2の装置へのアクセス
    を、前記第1の装置への第1のアクセス要求に応じたア
    クセス処理サイクル中に実行するバスアクセス部と、 を有することを特徴とするマイクロコンピュータ。
  2. 【請求項2】 前記第1と第2の装置へのアクセスを行
    う際にCPUへ出力するべきウェイト信号の出力時間が
    予め設定されたウェイト設定レジスタと、 前記ウェイト設定レジスタに設定された前記ウェイト信
    号の出力時間に基づいて、前記第1と第2のアクセス要
    求の前記アクセス所要時間を判定するアクセス時間判定
    部と、 をさらに有することを特徴とする請求項1記載のマイク
    ロコンピュータ。
  3. 【請求項3】 前記アクセス完了時刻判定部は、前記第
    1の装置への前記第1のアクセス要求に応じたアクセス
    完了までの残り時間を示すアクセス完了時間情報を保持
    しており、前記アクセス時間判定部において判定された
    前記第2のアクセス要求の前記アクセス所要時間と前記
    アクセス完了時間情報とを比較することで、前記第1の
    装置へのアクセス処理完了時刻と、前記第2の装置への
    アクセス処理が完了可能な最先の時刻との先後関係を判
    定することを特徴とする請求項2記載のマイクロコンピ
    ュータ。
  4. 【請求項4】 前記第1のアクセス要求は、前記CPU
    から命令バスを介して出力される命令フェッチ要求であ
    り、前記第2のアクセス要求は、前記CPUからデータ
    バスを介して出力されるデータリード要求であることを
    特徴とする請求項1記載のマイクロコンピュータ。
  5. 【請求項5】 前記第1と第2のアクセス要求は、複数
    のCPUそれぞれから出力されることを特徴とする請求
    項1記載のマイクロコンピュータ。
  6. 【請求項6】 共有バスを介して複数の装置にアクセス
    可能なマイクロコンピュータにおいて、 CPUから異なる装置への複数のアクセス要求が同時期
    に発生すると、各装置のアクセス所要時間に基づいて、
    先にアクセスする第1の装置と後にアクセスする第2の
    装置とのそれぞれへのアクセス処理が完了可能な最先の
    時刻の先後関係を判定するアクセス完了時刻判定部と、 前記アクセス完了時刻判定部において、前記第1の装置
    へのアクセス処理完了時刻よりも先に前記第2の装置へ
    のアクセス処理が完了可能と判定された場合、前記第1
    の装置へのアクセスを開始後、前記第2の装置へのアク
    セスを、前記第1の装置へのアクセス処理サイクル中に
    実行するバスアクセス部と、 を有することを特徴とするマイクロコンピュータ。
  7. 【請求項7】 CPUからの要求に応答して、共有バス
    を介して複数の装置にアクセスするバス制御回路におい
    て、 第1の装置への第1のアクセス要求に応じたアクセス処
    理中に、前記CPUから第2の装置への第2のアクセス
    要求が発生すると、前記第1と第2の装置へのアクセス
    所要時間に基づいて、前記第1の装置へのアクセス処理
    完了時刻と、前記第2の装置へのアクセス処理が完了可
    能な最先の時刻との先後関係を判定するアクセス完了時
    刻判定部と、 前記アクセス完了時刻判定部において、前記第1の装置
    へのアクセス処理完了時刻よりも先に前記第2の装置へ
    のアクセス処理が完了可能と判定された場合、前記第2
    のアクセス要求に応じた前記第2の装置へのアクセス
    を、前記第1の装置への第1のアクセス要求に応じたア
    クセス処理サイクル中に実行するバスアクセス部と、 を有することを特徴とするバス制御回路。
  8. 【請求項8】 CPUからの要求に応答して、共有バス
    を介して複数の装置にアクセスするバス制御回路におい
    て、 前記CPUから異なる装置への複数のアクセス要求が同
    時期に発生すると、第1と第2の装置のアクセス所要時
    間に基づいて、アクセス所要時間の長い装置から順にア
    クセスを開始した場合に先にアクセスする前記第1の装
    置と後にアクセスする前記第2の装置とのそれぞれへの
    アクセス処理が完了可能な最先の時刻の先後関係を判定
    するアクセス完了時刻判定部と、 前記第1の装置へのアクセス処理完了時刻よりも先に前
    記第2の装置へのアクセス処理が完了可能と判定された
    場合、前記第1の装置へのアクセスを開始後、前記第2
    の装置へのアクセスを、前記第1の装置へのアクセス処
    理サイクル中に実行するバスアクセス部と、 を有することを特徴とするバス制御回路。
  9. 【請求項9】 共有バスを介して複数の装置にアクセス
    可能なマイクロコンピュータにおけるデータアクセス方
    法であって、 第1の装置への第1のアクセス要求に応じたアクセス処
    理中に、CPUから第2の装置への第2のアクセス要求
    が発生すると、前記第1と第2の装置へのアクセス所要
    時間に基づいて、前記第1の装置へのアクセス処理完了
    時刻と、前記第2の装置へのアクセス処理が完了可能な
    最先の時刻との先後関係を判定し、 前記第1の装置へのアクセス処理完了時刻よりも先に前
    記第2の装置へのアクセス処理が完了可能と判定された
    場合、前記第2のアクセス要求に応じた前記第2の装置
    へのアクセスを、前記第1の装置への第1のアクセス要
    求に応じたアクセス処理サイクル中に実行する、 ことを特徴とするマイクロコンピュータにおけるデータ
    アクセス方法。
  10. 【請求項10】 共有バスを介して複数の装置にアクセ
    ス可能なマイクロコンピュータにおけるデータアクセス
    方法において、 CPUから異なる装置への複数のアクセス要求が同時期
    に発生すると、各装置のアクセス所要時間に基づいて、
    先にアクセスする第1の装置と後にアクセスする第2の
    装置とのそれぞれへのアクセス処理が完了可能な最先の
    時刻の先後関係を判定し、 前記第1の装置へのアクセス処理完了時刻よりも先に前
    記第2の装置へのアクセス処理が完了可能と判定された
    場合、前記第1の装置へのアクセスを開始後、前記第2
    の装置へのアクセスを、前記第1の装置へのアクセス処
    理サイクル中に実行する、 ことを特徴とするマイクロコンピュータにおけるデータ
    アクセス方法。
JP2002073919A 2002-03-18 2002-03-18 マイクロコンピュータ、バス制御回路およびマイクロコンピュータにおけるデータアクセス方法 Withdrawn JP2003271551A (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2002073919A JP2003271551A (ja) 2002-03-18 2002-03-18 マイクロコンピュータ、バス制御回路およびマイクロコンピュータにおけるデータアクセス方法
US10/369,524 US20030177229A1 (en) 2002-03-18 2003-02-21 Microcomputer, bus control circuit, and data access method for a microcomputer

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2002073919A JP2003271551A (ja) 2002-03-18 2002-03-18 マイクロコンピュータ、バス制御回路およびマイクロコンピュータにおけるデータアクセス方法

Publications (1)

Publication Number Publication Date
JP2003271551A true JP2003271551A (ja) 2003-09-26

Family

ID=28035274

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2002073919A Withdrawn JP2003271551A (ja) 2002-03-18 2002-03-18 マイクロコンピュータ、バス制御回路およびマイクロコンピュータにおけるデータアクセス方法

Country Status (2)

Country Link
US (1) US20030177229A1 (ja)
JP (1) JP2003271551A (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2011233006A (ja) * 2010-04-28 2011-11-17 Brother Ind Ltd 電子回路、画像形成装置およびddr−sdramの初期化方法

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8099564B1 (en) * 2007-08-10 2012-01-17 Xilinx, Inc. Programmable memory controller
JP5296373B2 (ja) * 2007-12-26 2013-09-25 インターナショナル・ビジネス・マシーンズ・コーポレーション 処理の所要時間を予め提供する技術

Family Cites Families (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH096633A (ja) * 1995-06-07 1997-01-10 Internatl Business Mach Corp <Ibm> データ処理システムに於ける高性能多重論理経路の動作用の方法とシステム
KR0160193B1 (ko) * 1995-12-30 1998-12-15 김광호 직접메모리접근 제어장치
US6697935B1 (en) * 1997-10-23 2004-02-24 International Business Machines Corporation Method and apparatus for selecting thread switch events in a multithreaded processor
KR100716950B1 (ko) * 2000-08-11 2007-05-10 삼성전자주식회사 버스 시스템
US6418510B1 (en) * 2000-09-14 2002-07-09 International Business Machines Corporation Cooperative cache and rotational positioning optimization (RPO) scheme for a direct access storage device (DASD)
US20030005252A1 (en) * 2001-06-28 2003-01-02 Wilson Kenneth M. Managing latencies in accessing memory of computer systems
US6804751B2 (en) * 2002-03-20 2004-10-12 Hitachi Global Storage Technologies Netherlands B.V. Method and apparatus for improving efficiency of operation of a hard disk drive by deferring command execution

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2011233006A (ja) * 2010-04-28 2011-11-17 Brother Ind Ltd 電子回路、画像形成装置およびddr−sdramの初期化方法

Also Published As

Publication number Publication date
US20030177229A1 (en) 2003-09-18

Similar Documents

Publication Publication Date Title
JP3573614B2 (ja) 画像処理装置及び画像処理システム
US20060059489A1 (en) Parallel processing system, interconnection network, node and network control method, and program therefor
JP2003271551A (ja) マイクロコンピュータ、バス制御回路およびマイクロコンピュータにおけるデータアクセス方法
JP5322567B2 (ja) データ処理システム及び半導体集積回路
JP7468112B2 (ja) インタフェース回路およびインタフェース回路の制御方法
JPH07295947A (ja) データ転送管理装置及び方法
JP2000330928A (ja) 高速転送を行う並列処理システム
JP2010092101A (ja) 情報処理装置
KR0135927B1 (ko) 다중 프로세서 시스템에서 아토믹 명령어 수행시 데이타 버퍼를 사용한 메인 메모리 액세스 장치
JP4437386B2 (ja) 信号処理システム
JPH05307516A (ja) データ転送制御装置、及び半導体集積回路装置
JP2002278753A (ja) データ処理システム
JPS6336543B2 (ja)
JPH09305530A (ja) Dmaコントローラ
JP2007026367A (ja) システムlsi用マルチタスクos
JP2005032019A (ja) Ambaにおけるバス調停システム
JPS63298555A (ja) 共有メモリ制御方式
JP2006023808A (ja) データ転送装置及びデータ転送方法
JPH09138780A (ja) バス調停回路
JP2007026368A (ja) システムlsi用マルチタスクos
JP2004258880A (ja) メモリアービタ及びメモリ制御装置
JPH10154124A (ja) マイクロプロセッサ及びマルチプロセッサシステム
JPS5856057A (ja) 割込信号発生装置
JP2003162497A (ja) 半導体集積回路装置
JPH02181243A (ja) 処理装置

Legal Events

Date Code Title Description
A300 Application deemed to be withdrawn because no request for examination was validly filed

Free format text: JAPANESE INTERMEDIATE CODE: A300

Effective date: 20050607