JP3623379B2 - マイクロプロセッサ - Google Patents

マイクロプロセッサ Download PDF

Info

Publication number
JP3623379B2
JP3623379B2 JP34120598A JP34120598A JP3623379B2 JP 3623379 B2 JP3623379 B2 JP 3623379B2 JP 34120598 A JP34120598 A JP 34120598A JP 34120598 A JP34120598 A JP 34120598A JP 3623379 B2 JP3623379 B2 JP 3623379B2
Authority
JP
Japan
Prior art keywords
bus
instruction
data
address
princeton
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
Application number
JP34120598A
Other languages
English (en)
Other versions
JP2000163312A (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 JP34120598A priority Critical patent/JP3623379B2/ja
Priority to DE19950255A priority patent/DE19950255B4/de
Priority to US09/426,757 priority patent/US6516378B1/en
Publication of JP2000163312A publication Critical patent/JP2000163312A/ja
Application granted granted Critical
Publication of JP3623379B2 publication Critical patent/JP3623379B2/ja
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

Images

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/40Bus structure
    • G06F13/4004Coupling between buses
    • G06F13/4022Coupling between buses using switching circuits, e.g. switching matrix, connection or expansion network

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Mathematical Physics (AREA)
  • Computer Hardware Design (AREA)
  • General Physics & Mathematics (AREA)
  • Bus Control (AREA)
  • Microcomputers (AREA)
  • Memory System (AREA)

Description

【0001】
【発明の属する技術分野】
本発明は、複数のバスと複数のバスマスタを備えたマイクロプロセッサに関し、特にバスマスタからのアクセス要求に対してバスを効率的に制御するバス制御ユニットを備えたマイクロプロセッサに関する。近年の制御機器や携帯型電子機器に用いられるマイクロプロセッサにおいては、複雑な処理の実現と拡張性を高くするために、バス上に多数の装置(モジュール)を接続し、バスを介して各装置を制御する方式が一般的になっている。特に、高速な処理が必要とされるマイクロプロセッサでは、キャッシュメモリやDMA(Direct MemoryAccess)コントローラを搭載して、バスの使用効率を高めている。
【0002】
【従来の技術】
図11は、ハーバード・アーキテクチャを採用する従来のマイクロプロセッサの概略構成を示すブロック図である。ハーバード・アーキテクチャとは、レジスタレベルのアーキテクチャの1つであり、データアクセス用のバス(データバス)と命令アクセス用のバス(命令バス)とをそれぞれ独立して設けるとともに、データバスに接続されたメモリ(データメモリ)をデータ格納専用、命令バスに接続されたメモリ(命令メモリ)を命令格納専用とし、データメモリと命令メモリとをアドレス空間的に分離して使用するものである。マイクロプロセッサは、このハーバード・アーキテクチャを採用することで、命令の保護とアクセスの並列動作が可能となり、高速処理を実現している。
【0003】
図11において、従来のマイクロプロセッサ100は、プログラムのコードにしたがって命令を実行する命令実行部(CPU:Central Processing Unit)110と、複数のバスの使用状態を監視してバス調停をおこなうバス制御ユニット120と、命令格納専用メモリである命令メモリ131と、データ格納専用メモリであるデータメモリ132と、起動命令セットおよび基本命令セットを格納するプログラムROM141と、ユーザプログラムを格納するプログラムRAM142と、命令実行部110を介さずにバス接続したモジュールと種々のメモリ間で直接データのやりとり(DMA転送)をおこなうDMAコントローラ143と、外部装置を接続して機能拡張または外部との入出力を果たす外部バスI/F151、SDRAM(Synchronous Dynamic Random Access Memory)を拡張メモリとして増設可能にするSDRAMI/F152、内蔵周辺デバイスとのインターフェースとして機能するペリフェラルバスI/F153を備えている。
【0004】
また、命令実行部110とバス制御ユニット120との間には命令バスIBおよびデータバスDBが設けられ、上記したプログラムROM141、プログラムRAM142、DMAコントローラ143、外部バスI/F151、SDRAMI/F152およびペリフェラルバスI/F153は、バス制御ユニット120によって監視される共有バス(プリンストンバス)PBに接続される。
【0005】
ペリフェラルバスI/F153には、内蔵周辺デバイスとして、タイマ161、シリアル通信をサポートするUART(Universal Asynchronous Receiver Transmitter)162、アナログ/ディジタルコンバータ(ADC)163等が接続される。
【0006】
なお、上記した命令バスIB、データバスDBおよびプリンストンバスPBは、データを転送するデータ用バスとアドレスを転送するアドレス用バスを含み、さらに、これらのバスに接続される各モジュール(命令実行部110を含む)には、バス制御ユニット120との通信に必要なバス使用要求信号、読み出し/書き込み信号、アドレスストローブ、データストローブ、各種のアクノリッジ信号等の制御信号を転送する制御バス(図示せず)が設けられる。
【0007】
図11に示すようなハーバード・アーキテクチャを採用するマイクロプロセッサ100では、特に命令メモリ131およびデータメモリ132をキャッシュメモリとして使用することで、スループットの向上を図っている。以下に、マイクロプロセッサ100の基本動作について説明する。
【0008】
まず、マイクロプロセッサ100が起動されると、命令実行部110において、プログラムROM141に格納された起動命令ユニットがプリンストンバスPBおよび命令バスIBを介して読み込まれ、必要に応じてプログラムRAM142に格納されたユーザプログラムが実行される。
【0009】
ここで、命令実行部110は、プログラムROM141やプログラムRAM142へのアクセスに先だって、命令メモリ131に、該当する命令が格納されているかを調べる。命令メモリ131に、該当する命令が格納されている場合(キャッシュヒット)は、その命令を命令メモリ131から取り出して実行する(命令フェッチ)。
【0010】
一方、命令メモリ131に、該当する命令が格納されていない場合は、本来のアクセス先であるプログラムROM141やプログラムRAM142から命令を取り出して実行するとともに、取り出した命令を命令メモリ131に格納する。これにより、一度命令実行部110において実行された命令を再び実行する必要が生じた際に、該当する命令を命令メモリ131から取り出すことができる。
【0011】
このようにキャッシュヒットを得ることができた場合の命令フェッチは、プログラムROM141やプログラムRAM142にアクセスする場合と比較して、少ないクロックサイクルで実行されるので、システムの高速化が図れる。
【0012】
また、データメモリ132についても命令メモリ131と同様に、一度SDRAMI/F152等から取り出したデータをデータメモリ132に格納しておき、SDRAMI/F152等へのデータアクセスの際に、データメモリ132におけるキャッシュヒットを得ることでシステムの高速化を実現する。
【0013】
マイクロプロセッサ100においては、命令実行部110だけでなく、DMAコントローラ143もまたバスマスタとなり得るため、命令実行部110は、以上に説明した命令フェッチやデータアクセスをおこなう際に、バス制御ユニット120から、命令バスIB、データバスDBおよびプリンストンバスPBの使用許可を得る必要がある。
【0014】
すなわち、命令実行部110は、プログラムROM141やプログラムRAM142等にアクセスするために、上記した制御バスを介してバス制御ユニット120に対してプリンストンバスPBの使用要求を示すバス使用要求信号を送信する。
【0015】
バス制御ユニット120は、プリンストンバスPBが、他のバスマスタによって使用中であるかどうかを調べ、たとえばDMAコントローラ143がSDRAMI/F152から外部バスI/F151へのDMA転送をおこなうのにプリンストンバスPBを使用している場合は、DMAコントローラ143に対してバス使用要求信号を送信する。DMAコントローラ143は、このバス使用要求信号を受信すると、実行中のバス・サイクル終了後、直ちに停止状態になり、バス制御ユニット120に対してバス放棄信号を送信する。
【0016】
DMAコントローラ143がバス使用要求信号を受信してバス放棄信号を送信するまでの間、バス制御ユニット120は、命令実行部110に対してWAIT信号を送信して命令実行部110を待機させる。バス制御ユニット120は、DMAコントローラ143からバス放棄信号を受信すると、命令実行部110に対してバス権の獲得を示すバス獲得信号を送信する。これによりバス権を獲得した命令実行部110は、プリンストンバスPBに接続された各装置へのアクセスが可能になる。
【0017】
また、DMAコントローラ143のような命令実行部110以外のバスマスタがプリンストンバスPBを使用したい場合にも、上述したようにバス制御ユニット120に対してバス使用要求信号を送信し、バス権を獲得する必要がある。
【0018】
このように、図11に示すような従来のマイクロプロセッサ100は、バス制御ユニット120を設けることで、各バスマスタによる他のバスマスタからのバス権の取得を可能にし、バス上のアクセスの衝突を回避したバス調停を実現している。
【0019】
また、従来のマイクロプロセッサ100では、電池駆動や熱対策のために低消費電力化が要求され、不用期間においてマイクロプロセッサの動作または一部のモジュールの動作を停止させることができる。たとえば、命令実行部110やその他のモジュールに供給されるクロック信号を停止させることで消費電力を低減させる技術が提案されている。
【0020】
具体的には、クロック制御部(図示せず)によってクロック信号の供給が停止されるスタンバイモードと呼ばれる動作モードが設けられたり、スリープ(SLEEP)命令と称されている命令を実行することにより、対象となるモジュールのみへのクロックの供給を遮断してそのモジュールの動作を停止させることができる。
【0021】
【発明が解決しようとする課題】
しかしながら、マイクロプロセッサ100においては、命令バスIBとデータバスDBとを個別に設けてバスの負荷分散を図っているが、命令実行部110が、プログラムROM141やプログラムRAM142へアクセスするためには、プリンストンバスPBのバス権を獲得する必要があるため、必ずしも効率のよいバスアクセスがおこなわれていなかった。
【0022】
たとえば、命令バスIBおよびプリンストンバスPBを介して、プログラムROM141から命令メモリ131に命令コードの取り出しがおこなわれている際に、命令実行部110は、データバスDBを使用してデータの取り出しを可能とするが、この状態において、たとえば外部バスI/F151から入力されるデータを取り出したい場合には、プリンストンバスPBのバス権を獲得する必要があり、結果的に、プログラムROM141から命令メモリ131への命令コードの取り出しを終了するまで待機しなければならない。
【0023】
また、命令実行部110以外の代表的なバスマスタであるDMAコントローラ143は、命令実行部110内部の演算処理に対するスループットの向上に有効であるが、命令実行部110等の他のバスマスタがプリンストンバスPBのバス権を獲得している場合には、上述したように、DMAコントローラ143は、命令実行部110がバス制御ユニット120に対してバス放棄信号を送信するまでの間、WAIT信号によって待機しなければならない。これにより、DMAコントローラ143のバス権の取得までに時間を多く要してしまうという問題があった。
【0024】
また、従来のマイクロプロセッサにおいては、共有バスとなるプリンストンバスPBを複数設けて、各モジュールを異なるプリンストンバスPB間に分散させた方式も提案されているが、ハーバード・アーキテクチャを考慮して設計されたものでなく、命令実行部110のバス使用効率を大幅に高めることはできなかった。
【0025】
さらに、上述したように従来のマイクロプロセッサ100においては、クロック制御部によるクロック信号の供給停止をおこなうスタンバイ動作により、低消費電力化を実現するが、クロック信号の供給を停止するためには、命令実行部110によってクロック制御部内の制御レジスタを操作してストア動作をおこなう必要があり、このクロック信号停止を試験動作する場合にも最低限のプログラムを用意する必要があった。
【0026】
本発明は、上述問題点に鑑みてなされたものであって、バス使用効率を改善して命令実行部のスループットを向上させるとともに、より簡易にスタンバイ動作に移行できるマイクロプロセッサを提供することを目的とする。
【0027】
【課題を解決するための手段】
上述した課題を解決し、目的を達成するために、請求項1の発明において、命令実行部20と、命令を格納する命令メモリ41と、データを格納するデータメモリ42とを備え、命令メモリ41にアクセスするための命令バスIBと、データメモリ42にアクセスするためのデータバスDBをそれぞれ独立して有するハーバード・アーキテクチャを採用したマイクロプロセッサは、命令アクセスの対象となるモジュール(プログラムROM51、プログラムRAM52等)が接続される第1の共有バスである第1のプリンストンバスPB1と、データアクセスの対象となるモジュール(外部バスI/F61、SDRAMI/F62、ペリフェラルバスI/F63等)が接続される第2の共有バスである第2のプリンストンバスPB2と、命令実行部20のバス使用要求に応じて、命令バスIB、データバスDB、プリンストンバスPB1およびプリンストンバスPB2のバス調停をおこなうバス制御ユニット30と、を備え、バス制御ユニット30は、命令実行部20が命令アクセスを行うときは、命令実行部20からの指示に基づいて命令バスIBおよび第1のプリンストンバスPBのバス権を取得して前記命令バスIBと前記第1のプリンストンバスPBを接続し、命令実行部20がデータアクセスを行うときは、命令実行部20からの指示に基づいてデータバスDBおよび第2のプリンストンバスPBのバス権を取得してデータバスDBと第2のプリンストンバスPBを接続することを特徴とする。
【0028】
この請求項1の発明によれば、命令実行部20によって、命令アクセスの集中するプログラムROM51やプログラムRAM52等のモジュールを第1のプリンストンバスPB1に集約し、主にデータアクセスの集中する外部バスI/F61、SDRAMI/F62、ペリフェラルバスI/F63等のモジュールを第2のプリンストンバスPB2に集約しているので、バス制御ユニット31を介して命令アクセスとデータアクセスとをそれぞれ個別の専用バスである命令バスとデータバスとでおこなうハーバード・アーキテクチャを採用した構成の利点を最大限に活用できる。
【0029】
また、請求項2の発明において、請求項1に記載のマイクロプロセッサは、バス制御ユニット31が、データおよびアドレスの入出力制御をおこなうためのバスインターフェース部として、命令バスIBに対して命令バスインターフェース82を、データバスDBに対してデータバスインターフェース83を、第1のプリンストンバスPB1に対して第1のプリンストンバスインターフェース84を、第2のプリンストンバスPB2に対して第2のプリンストンバスインターフェース85を、それぞれ個別に備え、これらバスインターフェース部の各々は、データを保持するデータバッファ82a〜85aと、アドレスを保持するアドレスバッファ82b〜85bとを備えたことを特徴とする。
【0030】
また、請求項3の発明において、請求項1または2に記載のマイクロプロセッサは、データおよびアドレスの入出力制御をおこなうバスインターフェース部(命令バスインターフェース82、データバスDBデータバスインターフェース83、第1のプリンストンバスインターフェース84、第2のプリンストンバスインターフェース85)の各々が、入力されるアドレスをデコードして接続要求先であるバスを示すアドレス要求信号を出力するアドレスデコーダ82c〜85cを備えたことを特徴とする。
【0031】
また、請求項4の発明において、請求項1〜3に記載のマイクロプロセッサは、バス制御ユニット31が、命令バスIB、データバスDB、第1のプリンストンバスPB1、第2のプリンストンバスPB2の各バスに接続されたモジュールから出力される制御信号に応じてバスの使用状態を示す状態信号を生成する状態遷移制御手段(ステートマシン82d〜85d)を、各バスに対して個別に備え、ステートマシン82d〜85dの生成する状態信号に応じてバス接続をおこなうことを特徴とする。
【0032】
また、請求項5の発明において、請求項4に記載のマイクロプロセッサは、バス制御ユニット31が、状態遷移制御手段(ステートマシン82d〜85d)の生成する状態信号がバスアクセス中の状態であることを示す場合に、バスアクセス中の状態にあるバスに対して使用要求を発したモジュールに対して待機指示信号(WAIT信号)を出力する待機指示信号生成手段(WAIT生成回路82e〜85e)を、各バスに対して個別に備えたことを特徴とする。
【0033】
また、請求項6の発明において、請求項1〜5に記載のマイクロプロセッサは、バス制御ユニット31が、接続をおこなうバスの優先順位を設定するための優先順位信号を入力し、前記各バスにおいて異なるバスに対する接続要求が複数発せられた場合に、この優先順位信号によって設定された優先順位にしたがってバスを接続することを特徴とする。
【0034】
また、請求項7の発明において、請求項1〜6に記載のマイクロプロセッサは、バス制御ユニット32が、DMA転送を制御するDMAコントローラ53を接続してDMA転送時の入出力制御をおこなうDMAインターフェース86を備えたことを特徴とする。
【0035】
この請求項7の発明によれば、バスマスタとなるDMAコントローラ53をバス制御ユニット32に直接に接続して、バス調停回路81の管理下に置かれるので、従来のDMAコントローラの接続方式に比べてバスに与える負荷を低減できるとともに、DMA転送のための迅速なバス権の取得が可能となる。
【0036】
また、請求項8の発明において、請求項7に記載のマイクロプロセッサは、DMAインターフェース86が、DMA転送時に入出力されるデータを保持するデータバッファと、アドレスを保持するアドレスバッファとを備えたことを特徴とする。
【0037】
また、請求項9の発明において、請求項1〜8に記載のマイクロプロセッサは、バス制御ユニット33が、各バスに接続されたモジュールの動作を一時的に停止させるスタンバイ動作を要求するスタンバイ要求信号を入力し、このスタンバイ要求信号に応じて、命令バスインターフェース82、データバスDBデータバスインターフェース83、第1のプリンストンバスインターフェース84、第2のプリンストンバスインターフェース85の各々に対して各バスのバス使用権を取得した後に、バスに接続された各モジュールに対して、モジュールに供給されているクロックの遮断要求を示す動作停止要求信号を出力することを特徴とする。
【0038】
この請求項9の発明によれば、バス制御ユニット33に、たとえば試験モード時にアクティブとなるようなスタンバイ動作要求信号を入力し、命令バスIB、データバスDB、第1のプリンストンバスPB1、第2のプリンストンバスPB2の各バスのバス権を取得した後に、各バスに接続されたモジュールに対してクロック信号の供給を停止させる動作停止要求信号を出力することができるので、容易にマイクロプロセッサをスタンバイ動作に移行させることができる。
【0039】
また、請求項10の発明において、請求項1〜9のいずれか1つに記載のマイクロプロセッサは、各バスに接続されるモジュールとして、バス制御ユニット30〜33に対して独立してバス使用要求を発するバスマスタが接続されることを特徴とする。
【0040】
【発明の実施の形態】
以下に添付図面を参照して、この発明にかかるマイクロプロセッサの好適な実施の形態を詳細に説明する。なお、この実施の形態によりこの発明が限定されるものではない。ここでは、まず、本発明にかかるマイクロプロセッサの原理的な説明をおこなう。
【0041】
図1は、本発明にかかるマイクロプロセッサの原理説明図である。図1において、マイクロプロセッサ10は、プログラムのコードにしたがって命令を実行する命令実行部(CPU)20と、複数のバスの使用状態を監視してバス調停をおこなうバス制御ユニット30と、命令格納専用メモリである命令メモリ41と、データ格納専用メモリであるデータメモリ42と、起動命令セットおよび基本命令セットを格納するプログラムROM51と、ユーザプログラムを格納するプログラムRAM52と、DMA転送を制御するDMAコントローラ53と、外部装置を接続して機能拡張または外部との入出力を果たす外部バスI/F61と、SDRAMを拡張メモリとして増設可能にするSDRAMI/F62と、内蔵周辺デバイスとのインターフェースとして機能するペリフェラルバスI/F63とを備えている。
【0042】
命令実行部20とバス制御ユニット30との間には命令バスIBおよびデータバスDBが設けられ、上記したハーバード・アーキテクチャを採用した構成である。また、プログラムROM51およびプログラムRAM52は、バス制御ユニット30によって管理される第1のプリンストンバスPB1に接続され、外部バスI/F61、SDRAMI/F62およびペリフェラルバスI/F63は、バス制御ユニット30によって管理される第2のプリンストンバスPB2に接続される。そして、DMAコントローラ53は、バス制御ユニット30に直接接続される。
【0043】
ペリフェラルバスI/F63には、内蔵周辺デバイスとして、タイマ71、シリアル通信をサポートするUART72、アナログ/ディジタルコンバータ73等が接続される。これらの内容は、図11に示した従来のマイクロプロセッサと同様の内容であるのでその説明を省略する。
【0044】
なお、上記した命令バスIB、データバスDB、第1のプリンストンバスPB1および第2のプリンストンバスPB2は、データを転送するデータ用バスとアドレスを転送するアドレス用バスを含み、さらに、これらのバスに接続される各モジュール(命令実行部20を含む)には、バス制御ユニット30との通信に必要なバス使用要求信号、読み出し/書き込み信号、アドレスストローブ、データストローブ、各種のアクノリッジ信号等の制御信号を転送する制御バス(図示せず)が接続される。
【0045】
つぎに、このマイクロプロセッサ10のバスアクセスを中心とした動作について説明する。まず、命令実行部20が命令メモリ41においてキャッシュヒットを得ることができず、プログラムROM51に対して命令フェッチをおこなう場合、命令実行部20は、プログラムROM51の接続された第1のプリンストンバスPB1のバス権を取得するために、バス制御ユニット30に対してバス使用要求信号を送信する。
【0046】
ここで、第1のプリンストンバスには、プログラムROM51の他にもプログラムRAM52が接続されているが、いずれも命令コードの格納されたメモリであるため、命令フェッチ時にアクセスされるための命令アクセス専用バスとして機能する。
【0047】
よって、命令メモリ41にプログラムROM51からの命令が格納されている間に、命令実行部20は、データバスDBを介して第2のプリンストンバスPB2に接続されたモジュールへのデータアクセスが可能となる。これにより、マイクロプロセッサ10は、ハーバード・アーキテクチャの利点を有効に活用することが可能となり、命令実行部20のスループットを大きく向上させることができる。
【0048】
また、命令実行部20以外の代表的なバスマスタであるDMAコントローラ53がバスを介さずにバス制御ユニット30に直接に接続されているため、命令実行部20が使用しているバス以外のバスを介したDMA転送をおこなう場合に、迅速なバス権の取得が可能となり、バス制御ユニット30においても効率的なバス制御が実現される。
【0049】
さらに、バス制御ユニット30には、動作停止要求信号を入力することでき、上述したスタンバイ動作が必要とされる場合に、この動作停止要求信号を受信することで、バス制御ユニット30に接続された各バスに対して以下のように動作する。まず、バス制御ユニット30は、命令バスIBのバス権を取得するために、バスマスタである命令実行部20に対して命令バスIBのホールド要求を示すホールド要求信号を送信する。命令実行部20は、実行中の命令フェッチのバスサイクル終了後に、命令バスIBのバス開放を示すアクノリッジ信号を返信する。
【0050】
データバスDBにおいても同様に、バス制御ユニット30は、命令実行部20に対してデータバスDBのホールド要求を示すホールド要求信号を送信し、命令実行部20からデータバスDBのバス開放を示すアクノリッジ信号を受信することにより、データバスDBのバス権を取得する。
【0051】
バス制御ユニット30は、命令バスIBおよびデータバスDBのバス権を取得すると、命令バスIB、データバスDB、第1のプリンストンバスPB1、第2のプリンストンバスPB2のそれぞれに対して用意された動作停止指示フラグをアクティブにする。
【0052】
命令バスIB、データバスDB、第1のプリンストンバスPB1、第2のプリンストンバスPB2に接続された各モジュールは、バス制御ユニット30に設けられた動作停止指示フラグがアクティブにされることにより、動作停止指示信号を受信し、各モジュールに供給されているクロック信号の入力を遮断して動作を停止させる。これにより、命令実行部20のストア動作をおこなうことなくマイクロプロセッサのスタンバイ状態が得られ、試験動作の確認の際にスタンバイ動作に容易に移行することができる。
【0053】
つぎに、以上に説明した原理に基づいて動作する本発明のマイクロプロセッサについて、理解を深めるためにより具体的な実施の形態について説明する。
【0054】
(実施の形態1)
図2は、実施の形態1にかかるマイクロプロセッサの概略構成を示すブロック図である。なお、図1と共通する部分には同一符号を付して、その説明を省略する。図2において、バス制御ユニット31は、図1のバス制御ユニット30と同様に、命令バスIB、データバスDB、第1のプリンストンバスPB1、第2のプリンストンバスPB2のバス制御をおこなうデバイスである。
【0055】
なお、命令バスIBは、命令のフェッチ元のアドレスが転送されるアドレスバスIBAと、命令コードを示すデータが転送されるデータバスIBDからなる。同様に、データバスDBは、データの読み出し/書き込みをおこなうアクセス先となるアドレスが転送されるアドレスバスDBAと、読み出し/書き込みの対象となるデータが転送されるデータバスDBDからなる。第1のプリンストンバスPB1も同様に、アドレスバスPBA1とデータバスPBA1からなり、第2のプリンストンバスPB1についても、アドレスバスPBA2とデータバスPBA2からなる。
【0056】
また、バス制御ユニット31は、命令バスIBの接続インターフェースとなる命令バスインターフェース82と、データバスDBの接続インターフェースとなるデータバスインターフェース83と、第1のプリンストンバスPB1の接続インターフェースとなる第1のプリンストンバスインターフェース84と、第2のプリンストンバスPB2の接続インターフェースとなる第2のプリンストンバスインターフェース85と、これらのバスインターフェースと接続され、バス調停をおこなうバス調停回路81とを備える。
【0057】
つぎに、命令バスインターフェース82の構成および動作について説明する。図3は、命令バスインターフェース82の概略構成を示すブロック図である。図3において、命令バスインターフェース82は、データバスIBD上のデータを一時的に格納するデータバッファ82aと、アドレスバスIBA上のアドレスを一時的に格納するアドレスバッファ82bと、アドレスバッファ82bに格納されたアドレスをデコードしてアクセス先となるバスおよびモジュールを特定するアドレスデコーダ82cと、各モジュールからの制御信号(バス使用要求信号、読み出し/書き込み信号等)を入力して、バスの使用状態(ここでは命令バスIBのステート)を設定するステートマシン82dと、ステートマシン82dの示すバス状態に応じて、このバスを使用するモジュールに対してWAIT信号を出力するWAIT生成回路82eとを備える。
【0058】
ここで、ステートマシン82dについて説明する。一般に、マイクロコンピュータでおこなうほど複雑でない制御をおこなう場合や、高速の制御処理を必要とされる場合等に、ゲートとラッチを組み合わせて各種の制御をおこなうための回路を構成することがおこなわれている。
【0059】
たとえば、システム全体の処理は、マイクロコンピュータのCPUがおこない、一部の制御をこのような回路でおこなうといった具合に、マイクロコンピュータと組み合わせて使用する場合もある。一方、制御方式においては、制御の進行に応じて順次状態が遷移し、たとえ同一の信号が入力されてもその時の状態に応じておこなう制御内容が変化する。このような制御の進行に応じて順次状態が遷移する方式を状態遷移方式と呼んでおり、上記したゲートとラッチを組み合わせた構成からなり、状態が遷移する制御用回路をステートマシンと呼んでいる。
【0060】
ステートマシン82dにおいては、上記した制御信号やデータバッファ82aおよびアドレスバッファ82bにおける格納状態等によって、現在、バス(ここでは命令バスIB)が、アクセス無し状態、読み出し状態、連続読み出し状態、書き込み状態等の種々のバスアクセス状態のいずれかの状態を示しているかの状態信号を生成する。そして、これらの状態と、アドレスデコーダ82cから出力されるアドレス要求信号と、アクセス要求のあったモジュールからの制御信号とにより、バス選択をおこなうためのアドレス/データステート信号を出力する。
【0061】
WAIT生成回路82eは、ステートマシン82dによって生成されるバス状態を取得して、バスが使用中である場合に、このバスに対するバス使用要求信号を発したモジュールに対して、待機指示を示すWAIT信号を送信する回路である。
【0062】
データバッファ82aに格納されたデータと、アドレスデコーダ82cによって生成された物理アドレスと、ステートマシン82dによって設定されたバス状態を示すバス状態信号は、バス調停回路81に入力される。
【0063】
なお、ステートマシン82dにおいては、データおよびアドレスについてそれぞれ専用のステートマシンを設け、個別に状態を設定できるものとする。これにより、データバスIBDとアドレスバスIBA間の使用状態に注目したバスサイクルにおいて、バス調停回路81によって最適なバス調停をおこなうことができる。
【0064】
たとえば、アクセス先となるモジュールにおいてアドレスバス上のアドレスをラッチした直後に、データバスの開放に先だってアドレスバスを開放し、他のモジュールによってこのアドレスバスを使用できるようにすることで、バス全体の使用効率を高めることができる。
【0065】
他のバスインターフェースであるデータバスインターフェース83、第1のプリンストンバスインターフェース84、第2のプリンストンバスインターフェース85もまた、上述した命令バスインターフェース82と同様に、データバッファ、アドレスバッファ、アドレスデコーダ、ステートマシン、WAIT生成回路を備えた構成であり、ここではそれらの説明を省略する。
【0066】
なお、データバスインターフェース83の構成を、データバッファ83a、アドレスバッファ83b、アドレスデコーダ83c、ステートマシン83d、WAIT生成回路83eと表すこととする。同様に、第1のプリンストンバスインターフェース84と第2のプリンストンバスインターフェース85においても、それぞれデータバッファ84a、アドレスバッファ84b、アドレスデコーダ84c、ステートマシン84d、WAIT生成回路84eと、データバッファ85a、アドレスバッファ85b、アドレスデコーダ85c、ステートマシン85d、WAIT生成回路85eと表すこととする。
【0067】
よって、バス制御ユニット31は、命令バスIB、データバスDB、第1のプリンストンバスPB1、第2のプリンストンバスPB2のそれぞれに対して個別のデータバッファ(82a〜85a)およびアドレスバッファ(82b〜85b)を備えてデータおよびアドレスを保持することができるため、たとえばアクセス先のモジュールがBUSY状態である場合に、データおよびアドレスを再送する必要がなく、アクセス先のモジュールのBUSY状態が解除されると、バス制御ユニット31のデータバッファ(82a〜85a)およびアドレスバッファ(82b〜85b)から直ちにデータおよびアドレスを転送することができ、バスマスタおよびアクセス先のモジュールのスループット向上が図れる。
【0068】
また、バス毎にアドレスデコーダ(82c〜85c)を備え、バスインターフェース部においてアドレス要求信号を独自に出力することができるため、バス制御ユニット31において、アクセス先のバスを特定するデコード処理によりもたらされる負荷を分散することができるとともに、バスの利用効率を高めることができる。
【0069】
さらに、バス毎にステートマシン(82d〜85d)を備えていることで、バス単位で独自にバスの使用状態を設定でき、後述するバス調停回路81に対して個別にバス接続を要求できるので、バス調停回路81に1つのステートマシンを設けてすべてのバス使用状態を管理する場合に比べて負荷が低減され、設計の簡略化も図れる。
【0070】
そして、バス毎にWAIT生成回路(82e〜85e)を備えていることで、バス単位で独自にWAIT信号を生成でき、バスの使用要求を発するモジュールに対して個別に待機指示を発することができるので、バス調停回路81に1つのWAIT生成回路を設けてすべてのバスのそれぞれの使用状態に応じてWAIT信号をする場合に比べて負荷が低減でき、設計の簡略化も図れる。
【0071】
つぎに、命令実行部20が命令バスIBおよび第1のプリンストンバスPB1のバス権を取得して、プログラムROM51からの命令フェッチをおこなう場合を例に挙げて、バス調停回路81の構成および動作を説明する。図4は、バス調停回路81の概略構成を示すブロック図である。
【0072】
図4において、バス調停回路81は、バスインターフェース(ここでは、命令バスインターフェース82)から入力されるアドレスステート信号に基づいて、アクセス対象となるバス(ここでは第1のプリンストンバスPB1)を特定し、バスインターフェースから入力されるアドレスをアドレスバス(ここではアドレスバスPBA1)に送出するアドレス用バススイッチモジュール81aと、バスインターフェース(ここでは、命令バスインターフェース82)から入力されるデータステート信号に基づいて、アクセス対象となるバス(ここでは第1のプリンストンバスPB1)を特定し、バスインターフェースから入力されるアドレスをデータバス(ここではデータバスPBD1)に送出するデータ用バススイッチモジュール81bと、を備える。
【0073】
バス調停回路81から出力されるアドレスおよびデータは、実際にはバスインターフェース(ここでは第1のプリンストンバスインターフェース84)を介して、該当するアドレスバスおよびデータバスに転送される。
【0074】
つぎに、以上に説明した上記図2〜4を参照しつつ、命令実行部20がプログラムROM51からの命令フェッチにより命令コードを取得するまでのマイクロプロセッサ11の動作の流れを説明する。なお、ここでは、命令メモリ41におけるキャッシュヒットが得られなかったものとする。
【0075】
まず、命令実行部20は、制御バス(図示せず)を介して、バス制御ユニット31に対して、命令バスIBおよび第1のプリンストンバスPB1のバス使用要求信号をそれぞれ送信する。ここで、第1のプリンストンバスPB1には、命令実行部20による命令アクセスの対象となるモジュールのみを接続しているので、命令実行部20以外のバスマスタが接続されていない環境においては、直ちに第1のプリンストンバスPB1のバス権を取得できる。
【0076】
命令実行部20は、第1のプリンストンバスPB1のバス権を取得すると、命令バスIBのアドレスバスIBAに、命令実行部20のプログラムカウンタにより示されるアドレスを送出する。命令バスインターフェース82は、アドレスバッファ82bにこのアドレスを保持するとともに、アドレスデコーダ82cにこのアドレスを送信する。アドレスデコーダ82cは、アドレスバッファ82bを介して送信されたアドレスをデコードし、アドレス要求信号を出力する。
【0077】
そして、ステートマシン82dは、アドレスデコーダ82cから出力されたアドレス要求信号とともに、制御信号として、命令実行部20から読み出し信号を入力し、命令バスの状態がアクセス無し状態から読み出し状態に遷移したことを示すとともにアクセス先である第1のプリンストンバスPB1のバス識別コードを示すアドレス/データステート信号を出力する。
【0078】
この際、命令バスIBは、命令実行部20によって占有されるため、WAIT生成回路82eは、ステートマシン82dにおいて設定された読み出し状態を取得することで、WAIT信号をアクティブにする。このアクティブ状態のWAIT信号によって、他のモジュールに対して命令バスIBへのアクセスを待機させる。
【0079】
命令バスインターフェース82から出力されるデータ、アドレスおよびアドレス/データステート信号は、バス調停回路81に入力される。バス調停回路81においては、まず、アドレス用バススイッチモジュール81aにおいて、アドレスステート信号の入力により、第1のプリンストンバスPB1のアドレス用バススイッチが選択され、入力されたアドレスを第1のプリンストンバスPB1のアドレスバスPBA1に出力する。
【0080】
同様に、データ用バススイッチモジュール81aにおいて、データステート信号の入力により、第1のプリンストンバスPB1のデータ用バススイッチが選択され、命令バスのデータバスIBDと第1のプリンストンバスPB1のデータバスPBD1とを接続する。
【0081】
ここで、実際には、バス調停回路81から出力されたアドレスは、第1のプリンストンバスインターフェース84を介して、第1のプリンストンバスPB1のアドレスバスPBA1に出力される。命令バスのデータバスIBDと第1のプリンストンバスPB1のデータバスPBD1との接続もまた、同様に第1のプリンストンバスインターフェース84を介しておこなわれる。
【0082】
また、第1のプリンストンバスインターフェース84のステートマシン84dは、バス調停回路81において第1のプリンストンバスPB1の特定がおこなわれるとともに、制御信号として、命令実行部20から読み出し信号を入力し、第1のプリンストンバスPB1の状態がアクセス無し状態から読み出し状態に遷移したことを示す。
【0083】
この際、第1のプリンストンバスPB1は、命令実行部20によって占有されるため、WAIT生成回路84eは、ステートマシン84dにおいて設定された読み出し状態を取得することで、WAIT信号をアクティブにする。このアクティブ状態のWAIT信号によって、他のモジュールに対して第1のプリンストンバスPB1へのアクセスを待機させる。
【0084】
一方、プログラムROM51は、バス制御ユニット31から制御バス(図示せず)を介して、アドレスバスPBA1上に有効なアドレスが送出されていることを示すアドレスストローブ信号を受信することにより、第1のプリンストンバスPB1のアドレスバスPBA1に送出されているアドレスを取り込み、このアドレスの示すメモリ領域から該当する命令コードを取り出して、第1のプリンストンバスPB1のデータバスPBD1に送出する。
【0085】
つづいて、プログラムROM51は、バス制御ユニット31に対し、制御バス(図示せず)を介して、データの送出を完了したことを示すデータアクノリッジ信号を送信する。
【0086】
バス制御ユニット31(詳しくはバス調停回路81)は、このデータアクノリッジ信号を受信することにより、第1のプリンストンバスPB1のデータバスPBD1に送出されたデータを、命令バスインターフェース82のデータバッファ82aに送信する。
【0087】
ここで、仮に、命令実行部20が他の演算処理等によりBUSY状態を示し、即座にデータを受け取ることができない場合であっても、対象となるデータは、データバッファ82aに保持されており、命令実行部20は、BUSY状態が解除されると直ちに命令バスIBのデータバスIBDを介して、対象となるデータを受け取ることができる。
【0088】
その後は、バス制御ユニット31に対して、命令バスIBおよび第1のプリンストンバスPB1を開放するバス開放信号を送信するとともに、命令バスインターフェース82と第1のプリンストンバスインターフェース84におけるWAIT信号を非アクティブ状態にし、ステートマシンの遷移状態をアクセス無し状態に戻す。
【0089】
つぎに、以上に説明した命令実行部20によるプログラムROM51へのアクセス処理の開始と同時に、命令実行部20が第2のプリンストンバスPB2に接続されたSDRAMI/F62へのデータの書き込み処理をおこなう場合のマイクロプロセッサ11の動作の流れを説明する。なお、ここでは、データメモリ42におけるキャッシュヒットが得られなかったものとする。
【0090】
この場合、命令実行部20は、制御バス(図示せず)を介して、バス制御ユニット31に対して、データバスDBおよび第2のプリンストンバスPB2のバス使用要求信号をそれぞれ送信する。ここで、第1のプリンストンバスPB1には、命令実行部20による命令アクセスの対象となるモジュールのみを接続しているので、命令実行部20以外のバスマスタが接続されていない環境においては、直ちに第2のプリンストンバスPB2のバス権を取得できる。
【0091】
命令実行部20は、第2のプリンストンバスPB2のバス権を取得すると、データバスIBのアドレスバスDBAに、命令実行部20の命令レジスタにおいて示されるデータを格納するアドレスを送出する。データバスインターフェース83は、命令バスインターフェース82と同様に、アドレスバッファにこのアドレスを保持するとともに、アドレスデコーダ83cにこのアドレスを送信する。アドレスデコーダ83cは、アドレスバッファ83bを介して送信されたアドレスをデコードし、アドレス要求信号を出力する。
【0092】
また、命令実行部20は、データバスDBのデータバスDBDに、命令実行部20の命令レジスタにおいて示されるデータを送出する。データバスインターフェース83は、命令バスインターフェース82と同様に、アドレスバッファにアドレスバスDBA上のアドレスを保持するとともに、アドレスデコーダ83cにこのアドレスを送信する。アドレスデコーダ83cは、アドレスバッファ83bを介して送信されたアドレスをデコードし、アドレス要求信号を出力する。また、データバスDBD上のデータも同様に、データバッファ83aに保持される。
【0093】
そして、ステートマシン83dは、アドレスデコーダ83cから出力されたアドレス要求信号とともに、制御信号として、命令実行部20から書き込み信号を入力し、データバスDBの状態がアクセス無し状態から書き込み状態に遷移したことを示すとともにアクセス先である第2のプリンストンバスPB2のバス識別コードを示すアドレス/データステート信号を出力する。
【0094】
この際、データバスDBは、命令実行部20によって占有されるため、WAIT生成回路83eは、ステートマシン83dにおいて設定された書き込み状態を取得することで、WAIT信号をアクティブにする。このアクティブ状態のWAIT信号によって、他のモジュールに対してデータバスDBへのアクセスを待機させる。
【0095】
データバスインターフェース83から出力されるデータ、アドレスおよびアドレス/データステート信号は、バス調停回路81に入力される。バス調停回路81においては、まず、アドレス用バススイッチモジュール81aにおいて、アドレスステート信号の入力により、第2のプリンストンバスPB2のアドレス用バススイッチが選択され、入力されたアドレスを第2のプリンストンバスPB2のアドレスバスPBA2に出力する。
【0096】
同様に、データ用バススイッチモジュール81aにおいて、データステート信号の入力により、第2のプリンストンバスPB1のデータ用バススイッチが選択され、データバスのデータバスDBDと第2のプリンストンバスPB2のデータバスPBD1とを接続する。
【0097】
ここで、実際には、バス調停回路81から出力されたアドレスは、第2のプリンストンバスインターフェース85を介して、第2のプリンストンバスPB2のアドレスバスPBA2に出力される。データバスのデータバスDBDと第2のプリンストンバスPB2のデータバスPBD2との接続もまた、同様に第2のプリンストンバスインターフェース85を介しておこなわれる。
【0098】
また、第2のプリンストンバスインターフェース85のステートマシン85dは、バス調停回路81において第2のプリンストンバスPB2の特定がおこなわれるとともに、制御信号として、命令実行部20から書き込み信号を入力し、第2のプリンストンバスPB2の状態がアクセス無し状態から書き込み状態に遷移したことを示す。
【0099】
この際、第2のプリンストンバスPB2は、命令実行部20によって占有されるため、WAIT生成回路85eは、ステートマシン85dにおいて設定された書き込み状態を取得することで、WAIT信号をアクティブにする。このアクティブ状態のWAIT信号によって、他のモジュールに対して第2のプリンストンバスPB2へのアクセスを待機させる。
【0100】
一方、SDRAMI/F62は、バス制御ユニット31から制御バス(図示せず)を介して、アドレスバスPBA2上に有効なアドレスが送出されていることを示すアドレスストローブ信号を受信することにより、第2のプリンストンバスPB2のアドレスバスPBA2に送出されているアドレスを取り込み、データバスPDB2上に送出されているデータを、このアドレスの示すメモリ領域に格納する。
【0101】
つづいて、SDRAMI/F62は、バス制御ユニット31に対し、制御バス(図示せず)を介して、データの格納を完了したことを示すデータアクノリッジ信号を送信し、命令実行部20によるSDRAMI/F62へのアクセス処理を終了する。その後は、バス制御ユニット31に対して、データバスDBおよび第2のプリンストンバスPB2を開放するバス開放信号を送信するとともに、データバスインターフェース83と第2のプリンストンバスインターフェース85におけるWAIT信号を非アクティブ状態にし、ステートマシンの遷移状態をアクセス無し状態に戻す。
【0102】
以上に説明したように、命令実行部20は、命令アクセスとデータアクセスを並行におこなうことができ、ハーバード・アーキテクチャの利点を生かした効率の高いバス使用が実現できる。
【0103】
図5は、命令実行部20による第1のプリンストンバスPB1と第2のプリンストンバスPB2の同時アクセスの状態を説明するタイミングチャートである。図5に示すように、命令実行部20は、システムクロックCLKの2サイクル(c1、c2)において、命令バスIBのバス使用要求を発すると同時に、データバスDBのバス使用要求を発することが可能となり、つづく2サイクル(c2、c3)においても並行に第1のプリンストンバスPB1および第2のプリンストンバスPB2のバス使用要求を発することができる。
【0104】
また、バス調停回路81は、各バスインターフェースから同時にバス接続要求が発せられた場合におけるバス(命令バスIB、データバスDB、第1のプリンストンバスPB1、第2のプリンストンバスPB2)の優先順位を設定することができる。
【0105】
たとえば、命令実行部20から命令バスIBとデータバスDBへのバス接続要求が発せられた場合、データバスDBへの接続を優先的におこなうことができる。さらに、バス調停回路81が、この優先順位を設定する優先順位信号を命令実行部20から受け付けるように構成することで、必要に応じてバス接続の優先順位を変更できるようにしてもよい。
【0106】
よって、実施の形態1にかかるマイクロプロセッサ11によれば、命令実行部20によって、命令アクセスの集中するプログラムROM51やプログラムRAM52等のモジュールを第1のプリンストンバスPB1に集約し、主にデータアクセスの集中する外部バスI/F61、SDRAMI/F62、ペリフェラルバスI/F63等のモジュールを第2のプリンストンバスPB2に集約している。
【0107】
これにより、バス制御ユニット31を介して命令アクセスとデータアクセスとをそれぞれ個別の専用バスである命令バスとデータバスとでおこなうハーバード・アーキテクチャを採用した構成の利点を最大限に活用でき、命令アクセスとデータアクセスを並行におこなえるとともに、バスを効率的に使用することが可能となり、命令実行部20におけるスループットを大きく向上させることができる。
【0108】
なお、実施の形態1にかかるマイクロプロセッサ11において、ステートマシン(82d〜85d)およびWAIT生成回路(82e〜85e)を各バスインターフェース部(命令バスインターフェース82、データバスインターフェース83、第1のプリンストンバスインターフェース84、第2のプリンストンバスインターフェース85)にそれぞれ設けたが、これらステートマシン(82d〜85d)およびWAIT生成回路(82e〜85e)を各バスインターフェースに対応させてバス調停回路81の内部に設けるようにしてもよい。
【0109】
図6は、この場合における命令バスインターフェースの他の例となる命令バスインターフェース82’の概略構成を示すブロック図である。また、図7は、この場合におけるバス調停回路の他の例となるバス調停回路81’の概略構成を示すブロック図である。
【0110】
図6に示すように、命令バスインターフェース82’は、データバッファ82’a、アドレスバッファ82’bおよびアドレスデコーダ82’cを備えており、それぞれ図3に示したデータバッファ82a、アドレスバッファ82bおよびアドレスデコーダ82cと同じ機能を果たすため、ここではその説明を省略する。また、この場合の他のバスインターフェース(データインターフェース、第1のプリンストンバス、第2のプリンストンバス)においても同じ構成となる。
【0111】
一方、図7において、バス調停回路81’は、図4に示したアドレス用バススイッチモジュール81aおよびデータ用バススイッチモジュール81bにそれぞれ相当するアドレス用バススイッチモジュール81’aおよびデータ用バススイッチモジュール81’bに加えて、アドレス用のWAIT生成回路81’c、アドレス用ステートマシン81’d、データ用ステートマシン81’e、データ用のWAIT生成回路81’fを備えている。
【0112】
アドレス用ステートマシン81’dおよびデータ用ステートマシン81’eは、図3に示したステートマシン82dと同一の機能を果たし、アドレス用のWAIT生成回路81’cおよびデータ用のWAIT生成回路81’fは、図3に示したWAIT生成回路82eと同一の機能を果たすので、ここではその説明を省略する。
【0113】
(実施の形態2)
つぎに、実施の形態2にかかるマイクロプロセッサについて説明する。実施の形態1との相違点は、バス制御ユニット31にバス調停回路81に接続されるDMAインターフェース86を備え、DMAコントローラ53をバス制御ユニットに直接に接続した点である。図8は、実施の形態2にかかるマイクロプロセッサの概略構成を示すブロック図である。なお、図1と共通する部分には同一符号を付して、その説明を省略する。
【0114】
図8において、マイクロプロセッサ12は、バス制御ユニット32にDMAインターフェース86を備えており、命令実行部20以外の代表的なバスマスタであるDMAコントローラ53がバスを介さずにバス制御ユニット31に直接に接続することができる。
【0115】
これにより、従来のマイクロプロセッサ100のように、バスにDMAコントローラが接続されるために同一のバスに接続された他のモジュールの動作に応じてDMAコントローラ自体のバス権の取得に時間を要するような問題がなくなり、DMA転送におけるアクセス元のモジュールとアクセス先のモジュールがそれぞれ接続されたバスのバス権の取得をバス調停回路81に対して迅速に求めることができる。
【0116】
また、DMAインターフェース86には、バス制御ユニット32のバスインターフェース(命令バスインターフェース82、データバスインターフェース83、第1のプリンストンバスインターフェース84、第2のプリンストンバスインターフェース85)と同様に、データバッファおよびアドレスバッファを備えている。
【0117】
これにより、従来、DMAコントローラ内に設けられていたバッファをバス制御ユニット32に集約することができ、DMAインターフェース86の動作を、バス調停回路81によって上記したバスインターフェースと同様に管理できるため、DMAコントローラ53の構成を簡単にすることができるととともに、バス制御ユニット32の設計を有効に活用できる。
【0118】
よって、実施の形態2にかかるマイクロプロセッサ11によれば、バスマスタとなるDMAコントローラ53をバス制御ユニット32に直接に接続して、バス調停回路81の管理下に置かれるので、従来のDMAコントローラの接続方式に比べてバスに与える負荷を低減できるとともに、DMA転送のための迅速なバス権の取得が可能となり、バス制御ユニット32においても効率的なバス制御が実現される。
【0119】
また、このバスの負荷低減の実現にともなって、ハーバード・アーキテクチャを採用した構成の利点である命令アクセスとデータアクセスの並行動作がさらに有効となり、DMAコントローラの導入によって命令実行部20におけるスループットを大きく向上させることが可能となる。
【0120】
(実施の形態3)
つぎに、実施の形態3にかかるマイクロプロセッサについて説明する。実施の形態1または2との相違点は、バス制御ユニット31に外部端子を設け、この外部端子にスタンバイ動作要求信号が入力されることで、バス調停回路81が各バスインターフェースに対してバスホールド要求を発し、各バスのバス権を取得した状態において、各バスに接続されるモジュールに対して動作停止要求信号を送信できるバス制御ユニット33が備えられている点である。
【0121】
図9は、実施の形態3にかかるマイクロプロセッサの概略構成を示すブロック図である。なお、図1と共通する部分には同一符号を付して、その説明を省略する。また、各バスに接続されるモジュールの記載を省略し、バス制御ユニット33のみを示している。
【0122】
図9において、外部端子90は、バス制御ユニット33のバス調停回路81に接続されており、たとえばマイクロプロセッサのスタンバイ動作を確認したい場合等に、スタンバイ動作要求信号が入力される端子である。バス調停回路81は、外部端子90よりスタンバイ動作要求信号を入力すると、各バスインターフェース(命令バスインターフェース82、データバスインターフェース83、第1のプリンストンバスインターフェース84、第2のプリンストンバスインターフェース85)に対して、バスホールド要求信号を送信する。
【0123】
具体的には、上記したバスインターフェースが、各バスのバス権を取得しているモジュールに対して、バス使用要求信号を送信し、このバス使用要求信号を受信したモジュールのバスサイクルの終了後に送信されるバス開放信号を受信することでバス権を取得する。
【0124】
バス制御ユニット30は、命令バスIB、データバスDB、第1のプリンストンバスPB1、第2のプリンストンバスPB2のバス権を取得すると、命令バスIB、データバスDB、第1のプリンストンバスPB1、第2のプリンストンバスPB2のそれぞれに対して用意された動作停止指示フラグをアクティブにする。
【0125】
この動作停止指示フラグがアクティブにされることで、各モジュールに対して動作停止要求信号が送信され、各モジュールは、この動作停止指示信号を受信すると、各モジュールに供給されているクロック信号の入力を遮断して動作を停止させる。これにより、命令実行部20のストア動作をおこなうことなくマイクロプロセッサのスタンバイ状態が得られ、試験動作の確認の際にスタンバイ動作に容易に移行することができる。
【0126】
また、外部端子90に替えて、試験モードを示す信号の入力によりスタンバイ動作要求を示すフラグが書き込まれるスタンバイレジスタ91を設けることもできる。図10は、この場合における他の例のバス制御ユニットの概略構成を示すブロック図である。図10に示すように、図9の外部端子90がスタンバイレジスタ91に置き換えられた点以外は、上述した動作と同様に動作する。
【0127】
よって、実施の形態3にかかるマイクロプロセッサによれば、バス制御ユニット33に試験モード時にアクティブとなるスタンバイ動作要求信号を入力し、各バス(命令バスIB、データバスDB、第1のプリンストンバスPB1、第2のプリンストンバスPB2)のバス権を取得した後に、各モジュールのクロック信号の供給を停止させることができるので、試験動作の際に従来のように命令実行部20のストア動作をおこなう必要がなく、容易にマイクロプロセッサをスタンバイ動作に移行させることができる。
【0128】
なお、図9および図10に示すバス制御ユニット33を、実施の形態2において説明したバス制御ユニット32と同様に、DMAコントローラを直接に接続した構成にすることもできる。
【0129】
また、実施の形態1〜3において、命令バスIB、メモリバスDB、第1のプリンストンバスPB1、第2のプリンストンバスPB2の各バスに接続されるモジュールとして、バス制御ユニット30〜33に対して独立してバス使用要求を発するDMAコントローラ以外のバスマスタを接続してもよい。
【0130】
さらに、実施の形態1〜3において、命令メモリ41およびデータメモリ42がキャッシュメモリとして機能すると説明したが、キャッシュメモリとしてでなく、プログラムRAM52やSDRAMI/F62に接続されるSDRAMのような通常のメモリとして使用してもよく、たとえば、命令メモリ41をキャッシュメモリとして使用し、データメモリ42を通常のメモリとして使用することもできる。
【0131】
【発明の効果】
以上、説明したとおり、本発明のマイクロプロセッサによれば、従来のマイクロプロセッサが、命令実行部が、命令バスを介してプログラムROMからの命令フェッチの完了を待ってから、同じプリンストンバスに接続された外部バスI/F等からのデータの取り出しをおこなう必要があったのに対して、命令実行部によって、命令アクセスの集中するプログラムROMやプログラムRAM等のモジュールを第1のプリンストンバスに集約し、主にデータアクセスの集中する外部バスI/F、SDRAMI/F、ペリフェラルバスI/F等のモジュールを第2のプリンストンバスに集約しているので、バス制御ユニットを介して命令アクセスとデータアクセスをそれぞれ第1のプリンストンバスと第2のプリンストンバスに対して並行におこなえるとともに、バスを効率的に使用することが可能となり、命令実行部におけるスループットを大きく向上させることができる。
【0132】
また、従来のマイクロプロセッサは、バスマスタとなるDMAコントローラをバス上に接続しており、DMAコントローラがこのバスに対してバス権を取得するまでに時間を多く要してしまう傾向があった。
【0133】
これに対して本発明のマイクロプロセッサによれば、DMAコントローラをバス制御ユニット32に直接に接続して、DMAコントローラ自体のバス権の取得を不用とするので、迅速なバス権の取得が可能となり、これによるバスの負荷低減の実現にともなって、ハーバード・アーキテクチャを採用した構成の利点である命令アクセスとデータアクセスの並行動作がさらに有効となり、DMAコントローラの導入によって命令実行部におけるスループットを大きく向上させることが可能となる。
【0134】
さらに、従来のマイクロプロセッサは、スタンバイ動作をおこなうために命令実行部によってクロック制御部内の制御レジスタを操作してストア動作をおこない、この結果クロック信号の停止を実行させており、このクロック信号停止を試験動作する場合にも最低限のプログラムを用意する必要があった。
【0135】
これに対して、本発明のマイクロプロセッサによれば、バス制御ユニットに試験モード時にアクティブとなるスタンバイ動作要求信号を入力し、命令バス、データバス、第1のプリンストンバス、第2のプリンストンバスの各バスのバス権を取得した後に、各モジュールのクロック信号の供給を停止させることができるので、試験動作の際に従来のように命令実行部20のストア動作をおこなう必要がなく、容易にマイクロプロセッサをスタンバイ動作に移行させることができる。
【図面の簡単な説明】
【図1】本発明にかかるマイクロプロセッサの原理説明図である。
【図2】実施の形態1にかかるマイクロプロセッサの概略構成を示すブロック図である。
【図3】実施の形態1において命令バスインターフェースの概略構成を示すブロック図である。
【図4】実施の形態1においてバス調停回路の概略構成を示すブロック図である。
【図5】実施の形態1において、命令実行部による第1のプリンストンバスと第2のプリンストンバスの同時アクセスの状態を説明するタイミングチャートである。
【図6】実施の形態1において、命令バスインターフェースの他の例の概略構成を示すブロック図である。
【図7】実施の形態1において、バス調停回路の他の例の概略構成を示すブロック図である。
【図8】実施の形態2にかかるマイクロプロセッサの概略構成を示すブロック図である。
【図9】実施の形態3にかかるマイクロプロセッサの概略構成を示すブロック図である。
【図10】実施の形態3において、バス制御ユニットの他の例の概略構成を示すブロック図である。
【図11】ハーバード・アーキテクチャを採用する従来のマイクロプロセッサの概略構成を示すブロック図である。
【符号の説明】
10,11,12 マイクロプロセッサ
20 命令実行部
30,31,32,33 バス制御ユニット
41 命令メモリ
42 データメモリ
51 プログラムROM
52 プログラムRAM
53 DMAコントローラ
61 外部バスインターフェース
62 SDRAMI/F
63 ペリフェラルバスI/F
81 バス調停回路
82 命令バスインターフェース
83 データバスインターフェース
84 第1のプリンストンバスインターフェース
85 第2のプリンストンバスインターフェース
86 DMAインターフェース
IB 命令バス
DB データバス
PB1 第1のプリンストンバス
PB2 第2のプリンストンバス

Claims (9)

  1. 命令を実行する命令実行部と、命令を格納する命令メモリと、データを格納するデータメモリとを備え、前記命令メモリにアクセスするための命令バスと、前記データメモリにアクセスするためのデータバスをそれぞれ独立して有するマイクプロセッサにおいて、
    命令アクセスの対象となるモジュールが接続された第1の共有バスと、
    データアクセスの対象となるモジュールが接続された第2の共有バスと、
    前記命令実行部のバス使用要求に応じて、前記命令バス、前記データバス、前記第1の共有バスおよび前記第2の共有バスのバス調停を行うバス制御ユニットと、
    を備え、
    前記バス制御ユニットは、
    データおよびアドレスの入出力制御をおこなうバスインターフェース部を、前記命令バス、前記データバス、前記第1の共有バス、前記第2の共有バスの各バスに対して個別に備え、
    前記命令実行部が命令アクセスを行うときは、前記命令実行部からの指示に基づいて前記命令バスおよび前記第1の共有バスのバス権を取得して前記命令バスと前記第1の共有バスを接続し、前記命令実行部がデータアクセスを行うときは、前記命令実行部からの指示に基づいて前記データバスおよび前記第2の共有バスのバス権を取得して前記データバスと前記第2の共有バスを接続し、
    前記各バスに接続されたモジュールの動作を一時的に停止させるスタンバイ動作を要求するスタンバイ要求信号が入力されると、前記スタンバイ要求信号に応じて、前記バスインターフェースの各々に対して前記各バスのバス使用権を取得した後に、前記モジュールの各々に対して、前記モジュールに供給されているクロックの遮断要求を示す動作停止要求信号を出力することを特徴とするマイクロプロセッサ。
  2. 前記バスインターフェース部の各々は、データを保持するデータバッファと、アドレスを保持するアドレスバッファとを備えたことを特徴とする請求項1に記載のマイクロプロセッサ。
  3. 前記バスインターフェース部の各々は、前記アドレスをデコードして接続要求先であるバスを示すアドレス要求信号を出力するアドレスデコーダを備えたことを特徴とする請求項1または2に記載のマイクロプロセッサ。
  4. 前記バス制御ユニットは、前記命令バス、前記データバス、前記第1の共有バス、前記第2の共有バスの各バスに接続されたモジュールから出力される制御信号に応じてバスの使用状態を示す状態信号を生成する状態遷移制御手段を、前記命令バス、前記データバス、前記第1の共有バス、前記第2の共有バスの各バスに対して個別に備え、
    前記状態遷移制御手段の生成する状態信号に応じてバス接続をおこなうことを特徴とする請求項1〜3のいずれか一つに記載のマイクロプロセッサ。
  5. 前記バス制御ユニットは、前記状態遷移制御手段の生成する状態信号がバスアクセス中の状態であることを示す場合に、バスアクセス中の状態にあるバスへの使用要求を発したモジュールに対して待機指示信号を出力する待機指示信号生成手段を、前記命令バス、前記データバス、前記第1の共有バス、前記第2の共有バスの各バスに対して個別に備えたことを特徴とする請求項4に記載のマイクロプロセッサ。
  6. 前記バス制御ユニットは、接続されるバスの優先順位を設定するための優先順位信号を入力し、前記命令バス、前記データバス、前記第1の共有バス、前記第2の共有バスの各バスにおいて異なるバスに対する接続要求が複数発せられた場合に、前記優先順位信号によって設定された優先順位にしたがってバスを接続することを特徴とする請求項1〜5のいずれか一つに記載のマイクロプロセッサ。
  7. 前記バス制御ユニットは、DMA(Direct Memory Access)転送を制御するDMAコントローラを接続して前記DMA転送時の入出力制
    御をおこなうDMAインターフェース部を備えたことを特徴とする請求項1〜6のいずれか一つに記載のマイクロプロセッサ。
  8. 前記DMAインターフェース部は、前記DMA転送時に入出力されるデータを保持するデータバッファと、アドレスを保持するアドレスバッファとを備えたことを特徴とする請求項7に記載のマイクロプロセッサ。
  9. 前記各バスに接続されるモジュールとして、前記バス制御ユニットに対して独立してバス使用要求を発するバスマスタが接続されることを特徴とする請求項1〜8のいずれか一つに記載のマイクロプロセッサ。
JP34120598A 1998-12-01 1998-12-01 マイクロプロセッサ Expired - Lifetime JP3623379B2 (ja)

Priority Applications (3)

Application Number Priority Date Filing Date Title
JP34120598A JP3623379B2 (ja) 1998-12-01 1998-12-01 マイクロプロセッサ
DE19950255A DE19950255B4 (de) 1998-12-01 1999-10-18 Mikroprozessor
US09/426,757 US6516378B1 (en) 1998-12-01 1999-10-26 Microprocessor for controlling busses

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP34120598A JP3623379B2 (ja) 1998-12-01 1998-12-01 マイクロプロセッサ

Publications (2)

Publication Number Publication Date
JP2000163312A JP2000163312A (ja) 2000-06-16
JP3623379B2 true JP3623379B2 (ja) 2005-02-23

Family

ID=18344198

Family Applications (1)

Application Number Title Priority Date Filing Date
JP34120598A Expired - Lifetime JP3623379B2 (ja) 1998-12-01 1998-12-01 マイクロプロセッサ

Country Status (3)

Country Link
US (1) US6516378B1 (ja)
JP (1) JP3623379B2 (ja)
DE (1) DE19950255B4 (ja)

Families Citing this family (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1818894B (zh) 2001-01-31 2013-07-31 株式会社日立制作所 数据处理***和数据处理器
US6959354B2 (en) * 2001-03-08 2005-10-25 Sony Corporation Effective bus utilization using multiple bus interface circuits and arbitration logic circuit
US6871247B1 (en) * 2001-11-08 2005-03-22 Lsi Logic Corporation Mechanism for supporting self-modifying code in a harvard architecture digital signal processor and method of operation thereof
CN100465929C (zh) * 2003-02-24 2009-03-04 扬智科技股份有限公司 并行数据总线组、数据***及其组件联系方法
US7240144B2 (en) * 2004-04-02 2007-07-03 Arm Limited Arbitration of data transfer requests
JP4553622B2 (ja) * 2004-04-09 2010-09-29 ルネサスエレクトロニクス株式会社 データ処理装置
JP5062950B2 (ja) * 2004-10-20 2012-10-31 キヤノン株式会社 ダイレクトメモリアクセス装置及びその制御方法
JP4989872B2 (ja) * 2005-10-13 2012-08-01 ルネサスエレクトロニクス株式会社 半導体記憶装置および演算処理装置
JP4324810B2 (ja) * 2007-04-10 2009-09-02 セイコーエプソン株式会社 マイクロコンピュータ、電子機器及びフラッシュメモリのプロテクト方式
CN101676734A (zh) * 2008-09-16 2010-03-24 鸿富锦精密工业(深圳)有限公司 总线参数自动测量***及方法
DE102013005971B3 (de) * 2013-04-09 2014-08-28 Friedhelm Becker Schadsoftware-sicheres Datenverarbeitungssystem
CN114328311A (zh) * 2021-12-15 2022-04-12 珠海一微半导体股份有限公司 一种存储控制器架构、数据处理电路及数据处理方法

Family Cites Families (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CA1269176A (en) * 1985-02-22 1990-05-15 Fairchild Camera And Instrument Corporation Multiple bus system including a microprocessor having separate instruction and data interfaces and caches
JPS6414648A (en) * 1987-07-08 1989-01-18 Mitsubishi Electric Corp Arithmetic processor
JP2633900B2 (ja) * 1988-04-22 1997-07-23 株式会社日立製作所 共通バス制御方法
US5386537A (en) * 1991-03-28 1995-01-31 Minolta Camera Kabushiki Kaisha System with reduced instruction set processor accessing plural memories at different speeds using bank interleaving
US5577230A (en) * 1994-08-10 1996-11-19 At&T Corp. Apparatus and method for computer processing using an enhanced Harvard architecture utilizing dual memory buses and the arbitration for data/instruction fetch
JP3163984B2 (ja) * 1996-06-28 2001-05-08 ヤマハ株式会社 楽音発生装置

Also Published As

Publication number Publication date
JP2000163312A (ja) 2000-06-16
DE19950255A1 (de) 2000-06-15
US6516378B1 (en) 2003-02-04
DE19950255B4 (de) 2004-05-13

Similar Documents

Publication Publication Date Title
KR100255551B1 (ko) 프로세서가전용버스또는공유버스를통해외부구성요소를액세스할수있도록해주는방법및장치
KR100276475B1 (ko) 마이크로 컴퓨터 시스템
JP2597954B2 (ja) フルパイプライン共起メモリ制御器
KR101386128B1 (ko) 직접 메모리 액세스 컨트롤러
US7549024B2 (en) Multi-processing system with coherent and non-coherent modes
US6836829B2 (en) Peripheral device interface chip cache and data synchronization method
JP3623379B2 (ja) マイクロプロセッサ
JP2005025726A (ja) コヒーレント多重処理システムにおける電力制御
JPH06139189A (ja) 共有バス調停機構
EP1069509B1 (en) Improvements in or relating to microprocessors
US7415576B2 (en) Data processor with block transfer control
JP2002222163A (ja) グローバルdmaアクセス用の結合サブシステムメモリバスを有するマルチコアdspデバイス
JP2002215259A (ja) マルチコアdsp機器用の共有装置のクロック確保システム
JP4178268B2 (ja) マイクロコントローラ
JPH07129468A (ja) 主記憶制御装置
KR19990063248A (ko) 캐시 메모리로의 동시 액세스에 대해 정상 동작을 확보하는 캐시 메모리 시스템 및 캐시 메모리로의 액세스 방법
JP2001195242A (ja) データ処理システム
JP2000187616A (ja) キャッシュラインをクリーンな状態に保つメモリシステム
JP3820645B2 (ja) マルチプロセッサシステム
JP5094822B2 (ja) 多重プロセッサを含むメモリアクセス装置
JP3422308B2 (ja) データ処理装置
US20070234098A1 (en) Self-timed clock-controlled wait states
KR100258883B1 (ko) 멀티 프로세서 시스템의 캐시 메모리 제어방법 및 장치
JP3077807B2 (ja) マイクロコンピュータシステム
JPH1185673A (ja) 共有バスの制御方法とその装置

Legal Events

Date Code Title Description
A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20040128

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20040217

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20040419

RD02 Notification of acceptance of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7422

Effective date: 20040419

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20040706

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20040906

A911 Transfer to examiner for re-examination before appeal (zenchi)

Free format text: JAPANESE INTERMEDIATE CODE: A911

Effective date: 20040928

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20041116

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20041124

R150 Certificate of patent or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20071203

Year of fee payment: 3

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20081203

Year of fee payment: 4

S111 Request for change of ownership or part of ownership

Free format text: JAPANESE INTERMEDIATE CODE: R313111

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20081203

Year of fee payment: 4

R350 Written notification of registration of transfer

Free format text: JAPANESE INTERMEDIATE CODE: R350

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20091203

Year of fee payment: 5

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20091203

Year of fee payment: 5

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20101203

Year of fee payment: 6

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20111203

Year of fee payment: 7

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20111203

Year of fee payment: 7

S531 Written request for registration of change of domicile

Free format text: JAPANESE INTERMEDIATE CODE: R313531

S533 Written request for registration of change of name

Free format text: JAPANESE INTERMEDIATE CODE: R313533

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20111203

Year of fee payment: 7

R350 Written notification of registration of transfer

Free format text: JAPANESE INTERMEDIATE CODE: R350

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20111203

Year of fee payment: 7

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20121203

Year of fee payment: 8

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20121203

Year of fee payment: 8

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20131203

Year of fee payment: 9

S111 Request for change of ownership or part of ownership

Free format text: JAPANESE INTERMEDIATE CODE: R313113

R350 Written notification of registration of transfer

Free format text: JAPANESE INTERMEDIATE CODE: R350

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

S111 Request for change of ownership or part of ownership

Free format text: JAPANESE INTERMEDIATE CODE: R313111

R350 Written notification of registration of transfer

Free format text: JAPANESE INTERMEDIATE CODE: R350

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

EXPY Cancellation because of completion of term