JP4226085B2 - マイクロプロセッサ及びマルチプロセッサシステム - Google Patents

マイクロプロセッサ及びマルチプロセッサシステム Download PDF

Info

Publication number
JP4226085B2
JP4226085B2 JP02276297A JP2276297A JP4226085B2 JP 4226085 B2 JP4226085 B2 JP 4226085B2 JP 02276297 A JP02276297 A JP 02276297A JP 2276297 A JP2276297 A JP 2276297A JP 4226085 B2 JP4226085 B2 JP 4226085B2
Authority
JP
Japan
Prior art keywords
reset
instruction
processing unit
processing
microprocessor
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Fee Related
Application number
JP02276297A
Other languages
English (en)
Other versions
JPH10187642A (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.)
Renesas Technology Corp
Original Assignee
Renesas Technology Corp
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 Renesas Technology Corp filed Critical Renesas Technology Corp
Priority to JP02276297A priority Critical patent/JP4226085B2/ja
Priority to KR1019970016937A priority patent/KR100272937B1/ko
Priority to US08/867,853 priority patent/US6401197B1/en
Priority to CN97113851A priority patent/CN1117315C/zh
Priority to DE19729618A priority patent/DE19729618C2/de
Publication of JPH10187642A publication Critical patent/JPH10187642A/ja
Application granted granted Critical
Publication of JP4226085B2 publication Critical patent/JP4226085B2/ja
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • G06F15/16Combinations of two or more digital computers each having at least an arithmetic unit, a program unit and a register, e.g. for a simultaneous processing of several programs
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • G06F15/16Combinations of two or more digital computers each having at least an arithmetic unit, a program unit and a register, e.g. for a simultaneous processing of several programs
    • G06F15/177Initialisation or configuration control
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F1/00Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
    • G06F1/24Resetting means
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/4401Bootstrapping
    • G06F9/4405Initialisation of multiprocessor systems

Description

【0001】
【発明の属する技術分野】
この発明は、リセット機能を有するマイクロプロセッサに関し、特にマルチプロセッサシステムで用いる場合に、システム全体を簡単な機構でもって初期化させるために必須な構成を有するマイクロプロセッサに関するものである。
また、この発明は、簡単な機構でもってシステム全体の初期化を行うマルチプロセッサシステムに関するものである。
【0002】
【従来の技術】
マイクロプロセッサは、例えばユーザプログラムを実行処理するにあたり、電源投入とともに外部からリセット信号がアサートされることによりプロセッサ内部を初期化するリセット動作を行う。このリセット動作では、マイクロプロセッサ外部からリセット信号がアサートされると、プロセッサ内部の記憶素子にリセット信号が入力されてその記憶内容をリセットするハードウェア的なリセット処理、および外部のメモリからリセット処理用のプログラムをフェッチし、プロセッサ内でこのリセット処理用のプログラムを実行することによりユーザプログラムが処理できる状態にしてしておくソフトウェア的なリセット処理がなされる。特に、上記のソフトウェア的なリセット処理では、リセット信号がアサートされると、外部のメモリからリセットベクタエントリをフェッチし、このエントリに含まれる情報を参照することにより、上記のリセット処理用のプログラムがフェッチされる。
【0003】
このリセット動作を行うプロセッサを複数個設け、そのうちの一つをマスタープロセッサ、その他をスレーブプロセッサとして機能させるマルチプロセッサを構成するシステムにおいて、システム全体をリセットするために各プロセッサをすべて初期化しなければならない。そのためにまず、すべてのプロセッサにリセット信号がアサートされる。システム上のリード・オンリー・メモリ(以下、ROM)には予めリセット処理用の命令が格納されており、各プロセッサはリセット信号のアサート後にこのROMにアクセスしてリセット処理用のプログラムを実行することにより初期化がなされる。ただし、各プロセッサは同時にROMへアクセスすることはできないために、マルチプロセッサシステムでは各プロセッサがROMに順次アクセスするように構成されている。
【0004】
【発明が解決しようとする課題】
このように構成されたマルチプロセッサシステムでは、各プロセッサにリセット信号が同時にアサートされても、リセットベクタエントリを参照するためにそのリセットベクタエントリを格納するROMを同時にアクセスすることはできないので、複数のプロセッサがROMを順次アクセスするためのバス調停回路といった複雑な機構が新たに必要になる。しかも、マスタープロセッサ、スレーブプロセッサでは、リセット処理の内容が異なるため、各々のプロセッサでリセット処理用のプログラム内の異なるルーチンプログラムを実行することが通常であり、この場合、どのプロセッサがどのプログラムルーチンを実行するかを識別するための機構もさらに必要となる。
これ以外にも、マルチプロセッサシステム上で各プロセッサに対応するようにローカルなROMを複数個設け、各プロセッサは対応のROMに格納されたリセット処理用の命令を実行することによりリセット動作を行う方法が考えられる。しかし、リセット信号のアサート後、各プロセッサが複数個のROMのうちのいずれのROMにアクセスするかを指定するためのアドレス情報をプロセッサ毎に与えなければならない。そのために各プロセッサに別々のリセットベクタエントリを設定することも考えられるが、マスタープロセッサおよびスレーブプロセッサをそれぞれ同一のプロセッサでもって構成しようとした場合、リセットベクタエントリにプロセッサがアクセスすべきROMを指定するアドレス情報を外部から設定できるようにしなければならない。いずれにしてもアドレス情報を外部から設定するための機構を追加しなければならない。また、各プロセッサに対応してROMを複数個設けること自体、ハードウェア的な増加をもたらす。
【0005】
マルチプロセッサシステムでは、マスタープロセッサ、スレーブプロセッサ等の各ユニット間での処理を調停するための複雑な機構を要するため、上述のような新たな機構を設けることは、システムの構成をさらに複雑化させる。また、マルチプロセッサシステムを機能させるためには多数のメモリが必要となるため、不要にもメモリを増加させたくない。
【0006】
この発明は上記問題点を解決するためになされたものであり、マルチプロセッサシステムで使用するマイクロプロセッサであって、マルチプロセッサシステムを簡単な機構でもって初期化するために必須な構成を備えたマイクロプロセッサを提供することを技術課題とする。
また、このようなマイクロプロセッサを用いて、簡単な機構でもってシステム全体のリセットすることのできるマルチプロセッサシステムを提供することを技術課題とする。
【0007】
【課題を解決するための手段】
第1の発明によるマイクロプロセッサは、命令をデコードする命令デコーダを含み、この命令デコーダからのデコード結果に従って種々の処理を行うことにより当該命令を実行する処理部、および、この処理部に制御され、記憶領域を指定するアドレスを出力し、その記憶領域に格納された命令を前記処理部の命令デコーダに与えるアクセス制御部を備え、前記処理部は、外部から入力されるリセット信号に応答してプロセッサ内部の記憶素子がリセットされる、ハードウェア的なリセット処理を行うとともに、前記アクセス制御部がソフトウェア的なリセット処理を行うリセット処理プログラムを起動するための命令が格納されたリセットベクタエントリの先頭アドレスを出力しないように制御し、割り込み信号が前記処理部に入力されたことに応答して、前記処理部は割り込み処理プログラムを構成する命令が前記処理部の命令デコーダに与えられるように前記アクセス制御部を制御し、前記処理部が前記命令デコーダに与えられた前記割り込み処理プログラムとして格納されているソフトウェア的なリセット処理を行うための命令を実行することにより、プロセッサの初期化がなされ、前記リセット信号が入力されてから、前記割り込み信号が入力されるまでの間、前記ソフトウェア的なリセット処理は、行わないものである。
【0008】
第2の発明によるマイクロプロセッサは、第1の発明にさらに、リセット信号が入力された後、少なくとも割り込み信号が入力されるまではアドレス端子をハイインピーダンス状態にするものである。
【0009】
第3の発明によるマイクロプロセッサは、第2の発明にさらに、アドレス端子がハイインピーダンス状態となった場合、処理部が外部に対するアクセスをアクセス制御部に要求したことに応答してアクセス制御部は処理部へアクセス禁止を通知する通知信号を出力するものである。
【0010】
第4の発明によるマイクロプロセッサは、第1の発明にさらに、内蔵メモリ、および、この内蔵メモリと処理部とを接続する内部データバスを有し、内蔵メモリに記憶された割り込み処理プログラムが内部データバスを介して内蔵メモリから処理部の命令デコーダに与えられるようにアクセス制御部は内蔵メモリへアドレスを出力するものである。
【0011】
第5の発明によるマイクロプロセッサは、命令をデコードする命令デコーダを含み、この命令デコーダからのデコード結果に従って種々の処理を行うことにより当該命令を実行する処理部、この処理部に制御され、記憶領域を指定するアドレスを出力し、その記憶領域に格納された命令を前記処理部の命令デコーダに与えるアクセス制御部、および、第1のモード及び第2のモードのいずれかに設定されるためのモード設定手段を備え、外部から入力されるリセット信号に応答して、プロセッサ内部の記憶素子がリセットされる、ハードウェア的なリセット処理を行い、前記モード設定手段により第1のモードが設定された場合、前記リセット信号が前記処理部に入力されたことに応答して、前記処理部はリセット処理プログラムを構成する命令が前記処理部の命令デコーダに与えられるように前記アクセス制御部を制御し、前記処理部が前記命令デコーダに与えられたリセット処理プログラムの命令を実行することによりプロセッサの初期化がなされ、前記モード設定手段により第2のモードが設定された場合、前記リセット信号が前記処理部に入力されたことに応答して、前記処理部は前記アクセス制御部が前記リセット処理プログラムが格納されたアドレスを出力しないように制御すると共に、前記リセット信号が入力された後に割り込み信号が前記処理部に入力されたことに応答して、前記処理部は割り込み処理プログラムを構成する命令が前記命令デコーダに与えられるように前記アクセス制御部を制御し、前記処理部が前記命令デコーダに与えられた前記割り込み処理プログラムとして格納されているソフトウェア的なリセット処理を行うための命令を実行することにより、プロセッサの初期化がなされ、前記リセット信号が入力されてから、前記割り込み信号が入力されるまでの間、前記ソフトウェア的なリセット処理は、行わないものである。
【0012】
第6の発明によるマイクロプロセッサは、第5の発明にさらに、モード設定手段により第2のモードが設定された場合、リセット信号が入力された後、少なくとも割り込み信号が入力されるまではアドレス端子をハイインピーダンス状態にするものである。
【0013】
第7の発明によるマイクロプロセッサは、第6の発明にさらに、アドレス端子がハイインピーダンス状態となった場合、処理部が外部に対するアクセスをアクセス制御部に要求したことに応答してアクセス制御部が処理部へアクセス禁止を通知する通知信号を出力するものである。
【0014】
第8の発明によるマイクロプロセッサは、第5の発明にさらに、内蔵メモリ、および、この内蔵メモリと処理部とを接続する内部データバスを有し、第1のモードが設定された場合、外部の記憶手段に記憶されたリセット処理プログラムがフェッチされ命令デコーダに与えられるようにアクセス制御部は外部の記憶手段へアドレスを出力し、第2のモードが設定された場合、内部メモリに記憶された割り込み処理プログラムが内部データバスを介して内蔵メモリから命令デコーダに与えられるようにアクセス制御部は内蔵メモリへアドレスを出力するものである。
【0015】
第9の発明によるマイクロプロセッサは、各々は、命令をデコードする命令デコーダを含み、この命令デコーダからのデコード結果に従って種々の処理を行うことにより当該命令を実行する第1および第2の処理部、および、前記第1および第2の処理部に制御され、記憶領域を指定するアドレスを出力し、その記憶領域に格納された命令を前記第1および第2の処理部のそれぞれ命令デコーダのいずれかに与えるアクセス制御部を備え、外部から入力されるリセット信号に応答して、前記第1および第2の処理部を含むプロセッサ内部の記憶素子がリセットされる、ハードウェア的なリセット処理を行い、前記リセット信号が前記第1の処理部に入力されたことに応答して、前記第1の処理部はリセット処理プログラムを構成する命令が前記第1の処理部の命令デコーダに与えられるように前記アクセス制御部を制御し、前記第1の処理部がその命令デコードに与えられたリセット処理プログラムを実行することにより前記第1の処理部内の初期化がなされ、前記リセット信号が前記第1の処理部に入力されたことに応答して、前記アクセス制御部が前記リセット処理プログラムが格納されたアドレスを出力しないように制御されると共に、前記リセット信号が入力された後に前記第2の処理部に割り込み信号が入力されたことに応答して、前記第2の処理部は割り込み処理プログラムを構成する命令が前記第2の処理部の命令デコーダに与えられるように前記アクセス制御部を制御し、前記第2の処理部がその命令デコーダに与えられた前記割り込み処理プログラムとして格納されているソフトウェア的なリセット処理を行うための命令を実行することにより、前記第2の処理部内の初期化がなされ、前記リセット信号が入力されてから、前記割り込み信号が入力されるまでの間、前記ソフトウェア的なリセット処理は、行わないものである。
【0016】
第10の発明によるマイクロプロセッサは、第9の発明にさらに、第2の処理部に入力される割り込み信号は、第1の処理部がリセット処理プログラムを実行することにより生成されて第2の処理部に入力されるものである。
【0017】
第11の発明によるマイクロプロセッサは、第9の発明にさらに、第1の処理部がリセット処理プログラムの命令を実行することにより、外部の記憶手段から割り込み処理プログラムを内蔵メモリに転送し記憶させる処理がなされ、この処理により内蔵メモリに記憶された割り込み処理プログラムが内部データバスを介して第2の処理部の命令デコーダに与えられるようにしたものである。
【0018】
第12の発明によるマイクロプロセッサは、第11の発明にさらに、第1の処理部がリセット処理プログラムの命令を実行することにより、外部の記憶手段から割り込み処理プログラムを内蔵メモリに転送し記憶させる処理がなされ、この処理により前記内蔵メモリに記憶された割り込み処理プログラムが内部データバスを介して第2の処理部の命令デコーダに与えられるようにしたものである。
【0019】
第13の発明によるマルチプロセッサシステムは、命令をデコードする命令デコーダを含み、この命令デコーダからのデコード結果に従って種々の処理を行うことにより当該命令を実行する第1の処理部と、この第1の処理部に制御され、記憶領域を指定するアドレスを出力し、その記憶領域に格納された命令を前記第1の処理部の命令デコーダに与える第1のアクセス制御部とを有する第1のマイクロプロセッサ、および命令をデコードする第2の命令デコーダを含み、この命令デコーダからのデコード結果に従って種々の処理を行うことにより当該命令を実行する第2の処理部と、この第2の処理部に制御され、記憶領域を指定するアドレスを出力し、その記憶領域に格納された命令を前記第2の処理部の命令デコーダに与える第2のアクセス制御部とを有する第2のマイクロプロセッサを備え、前記第1のマイクロプロセッサにリセット信号が入力されたことに応答して、第1のマイクロプロセッサの内部の記憶素子がリセットされるとともに、前記第1の処理部はリセット処理プログラムを構成する命令が前記第1の処理部の命令デコーダに与えられるように前記第1のアクセス制御部を制御し、前記第1の処理部がその命令デコーダに与えられたリセット処理プログラムの命令を実行することにより前記第1のマイクロプロセッサの初期化がなされ、前記第2のマイクロプロセッサに前記リセット信号が入力されたことに応答して、第2のマイクロプロセッサの内部の記憶素子がリセットされる、ハードウェア的なリセット処理を行うと共に前記第2のアクセス制御部が前記リセット処理プログラムが格納されたアドレスを出力しないよう制御を行い、前記第2のマイクロプロセッサに割り込み信号が入力されたことに応答して、前記第2の処理部は割り込み処理プログラムを構成する命令が前記第2の処理部の命令デコーダに与えられるように前記第2のアクセス制御部を制御し、前記第2の処理部がその命令デコーダに与えられ前記割り込み処理プログラムとして格納されているソフトウェア的なリセット処理を行うための命令を実行することにより、前記第2のマイクロプロセッサの初期化がなされ、前記リセット信号が入力されてから、前記割り込み信号が入力されるまでの間、前記ソフトウェア的なリセット処理は行わない、ものである。
【0020】
第14の発明によるマルチプロセッサシステムは、第13の発明にさらに、第1のマイクロプロセッサの第1の処理部がリセット処理プログラムを実行することにより割り込み信号が生成され、当該割り込み信号が第2のマイクロプロセッサに入力されることにより第2のマイクロプロセッサの初期化がなされるものである。
【0021】
第15の発明によるマルチプロセッサシステムは、第13の発明にさらに、リセット処理プログラムを格納する記憶手段を備え、第1のマイクロプロセッサは、記憶手段からリセット処理プログラムをフェッチして実行するように第1のアクセス制御部が記憶手段へアドレスを出力し、第2のマイクロプロセッサは、割り込み処理プログラムが格納する内蔵メモリを有し、割り込み処理プログラムが内蔵メモリから第2のマイクロプロセッサの命令デコーダへ与えられるように第2のアクセス制御部が内蔵メモリへアドレスを出力するものである。
【0022】
第16の発明によるマルチプロセッサシステムは、第15の発明にさらに、第1のマイクロプロセッサがリセット処理プログラムを実行することにより、割り込み処理プログラムを記憶する記憶手段から第2のマイクロプロセッサの内蔵メモリに前記割り込み処理プログラムを転送して記憶させる処理を行い、この処理により内蔵メモリに記憶された割り込み処理プログラムが内部データバスを介して第2の処理部の命令デコーダに与えられるようにしたものである。
【0023】
第17の発明によるマルチプロセッサシステムは、第13の発明にさらに、第2のマイクロプロセッサは、リセット信号が入力された後、少なくとも割り込み信号が入力されるまではアドレス端子をハイインピーダンス状態にするものである。
【0024】
【発明の実施の形態】
実施の形態1.
図1は、この発明の実施の形態1におけるマイクロプロセッサを示す構成図である。マイクロプロセッサ10は、16ビット幅の外部データバス25に接続されるデータバス端子Dを有し、その内部には128ビットのデータが転送できる128ビット幅の内部データバス20を有する。
そして、プロセッサ本体10は、中央処理装置(以下、CPU)11と、内部データバス20から取り込んだ命令セット(以下、単に命令と呼ぶ)をCPU11へ与える命令キュー12と、内部データバス20に対して128ビットのデータを入出力するとともに、外部に対しては16ビットのデータを入出力する外部バスインターフェース部(以下、外部バスI/F部)13と、内部データバス20に対してデータが入出力する、それぞれキャッシュメモリ14、内蔵ダイナミック・ランダムアクセスメモリ(以下、内蔵DRAM)15、汎用入出力ポート16、データセレクタ17と、メモリへのアクセス制御とともに、外部データバス25のバス制御を行うバスコントローラ18を含み、単一チップの半導体集積回路で構成されている。
【0025】
CPU11は、制御部30と実行部40にて構成されている。
制御部30は命令デコーダ31を含み、命令デコーダ31は、32ビット幅の信号線を介して命令キュー12から複数の命令を順次入力してデコードする。制御部30は命令のデコード内容に応じて種々の制御信号を出力する。デコードされる命令は32ビットで構成されたものと16ビットで構成されたものがある。
【0026】
実行部40は、各々32ビットのデータを保持する複数のレジスタを有するレジスタ群41と、入力する2つの値に関する算術演算等を行う算術演算部(以下、ALU)42、および命令の格納番地を示すアドレスを保持するプログラムカウンタ(以下、PC)43、各々32ビット幅のデータバス44a 、44b 、44c を有する。
【0027】
レジスタ群41は、データやアドレスの一時保持等に使用される16本の汎用レジスタ、及びプロセッサ状態語レジスタ(PSW)、スタックポインタ、PC43のバックアップ用レジスタ等に使用される5本の制御レジスタを含む。すべて32ビットのデータを保持するレジスタである。
ALU42は、その一方に、データバス44a を介してレジスタ群41内の選択されたレジスタの内容、あるいは制御部30から出力されるデータ(例えば、命令のオペランド指定部にある即値データ)を入力し、他方に、データバス44b を介してレジスタ群41内の選択されたレジスタの内容を入力する。そしてALU42はデータバス44c を介して、その算術演算結果をレジスタ群41の選択されたレジスタあるいはPC43に出力する。
PC43は、保持する値を順次カウントして命令キュー12に与えるべき命令の格納先アドレスをバスコントローラ18に出力する。また分岐先命令のフェッチでは、ALU42で計算されたアドレス値、あるいは命令デコーダ31でデコードされている命令にある即値アドレスをセットし、命令キュー12に与えるべき分岐先命令のアドレス値をバスコントローラ18に出力する。
【0028】
実行部40は、制御部30からの制御信号を受け、命令デコーダ31でデコードされた命令を実行する。例えば、算術演算命令に対してはALU42がレジスタ群41から入力する値を演算し、演算結果をレジスタ群41へ転送する。またレジスタ群41の保持データを転送する転送命令では、転送されるデータがレジスタ群41からALU42、データセレクタ17を介して内部データバス20へ出力され、さらに内蔵DRAM15、あるいは外部記憶装置等に転送される。さらに分岐命令に対しては、上記のように分岐先アドレスをPC43にセットする。
【0029】
バスコントローラ18は、CPU11で生成されたアドレス及びその他の制御信号を受け取り、その受け取ったアドレスの指定する記憶領域をアクセスするように、その記憶領域である内蔵DRAM14、キャッシュメモリ13あるいは外部の記憶装置へ対してアドレスを出力する。外部の記憶装置へのアクセスは、バスコントローラ18が外部バスIF部13を制御することにより行われる。
【0030】
命令キュー12は、内部データバス20から128ビット単位で命令を構成するデータを入力し保持し、制御部30の制御に従って実行されるべき命令を32ビット単位で命令デコーダ31へ出力する。また、命令デコーダ31でデコードされている命令が分岐命令である場合には、命令キュー12に保持している命令をキャンセルする。
【0031】
内蔵DRAM15は、1Mバイトの記憶容量を有し、内部データバス20と128ビット単位でデータを入出力する。内蔵DRAM15は、バスコントローラ18から出力されるアドレス、その他の制御信号を受け、そのアドレスの指定する領域に対して命令またはデータの読み出しまたは書き込みがなされる。
キャッシュメモリ14は、4Kバイトのスタティック・ランダムアクセスメモリで構成され、内部データバス20と128ビット単位でデータを入出力する。特にキャッシュメモリ14は、内蔵DRAM15の命令及びデータの共通キャッシュとして機能するモード、または外部の記憶領域に対して命令キャッシュとして機能するモードを有する。このモード切り替えはバスコントローラ18により制御される。
【0032】
汎用入出力ポート16は内部データバス20と接続するデータレジスタを有する。内部データバス20を介してプロセッサ内部からデータがこのデータレジスタにセットされ、さらに1ビットの端子Pから外部に出力される。また、端子Pから入力されるデータは、このデータレジスタに一時セットされ、内部データバス20を介してプロセッサ内部に転送される。そして汎用入出力ポート16のデータレジスタは、バスコントローラ18から出力されるアドレス、その他の制御信号によりアクセスされる。
【0033】
データセレクタ17は、内部データバス20から入力する128ビットデータのうち、32ビット単位で選択したデータをCPU11内のデータバス44c に出力し、レジスタ群41、PC43に転送する。またALU42からデータバス44c に順次送出された4つの32ビットデータを結合して、データセレクタ17で128ビット単位のデータとして内部データバス20に出力することができる。そしてこのデータセレクタ17の動作は制御部30の制御により行われる。
【0034】
外部バスI/F部13は、外部に対して16ビットの外部データを入出力する16個のデータバス端子Dと、24ビットのアドレスを入出力する24個のアドレス端子Aとに接続されている。外部バスI/F部13は、外部の記憶装置(例えばROM、RAM)、あるいはIOデバイスに対するアクセスを行う。プロセッサ10が例えば外部の記憶装置にアクセスする場合には、外部バスI/F部13は、バスコントローラ18からアクセス先のアドレスを受け取り、さらに、アドレス端子Aを介してそのアドレスを外部の記憶装置に出力する。外部の記憶装置では、マイクロプロセッサ10から転送されたデータをその受け取ったアドレスの示す記憶場所へ書き込んだり、またはその記憶場所に記憶されたデータを読み出してマイクロプロセッサ10へ転送する。
【0035】
マイクロプロセッサ10が外部バスに対してバス権を放棄していても(つまり、マイクロプロセッサ10自身が外部の記憶装置に対してアクセスすることができない)、図1のように外部バスI/F部13にチップセレクト信号CSが入力されることにより、外部バスマスターが、マイクロプロセッサ10の内蔵DRAM15へのアクセスを行うことができる。この場合、外部バスI/F部13は、そのアクセス先のアドレスをアドレス端子Aを介して外部バスマスターから入力する。バスコントローラ18は、外部バスI/F部13からそのアドレスを受け取り、さらに内蔵DRAM15へ出力することにより、内蔵DRAM15がアクセスされる。これにより、外部データバス25から転送されたデータは、外部バスI/F部13、内部データバス20を介して内蔵DRAM15に書き込まれ、または、内蔵DRAM15の記憶データを読み出して、内部データバス20、外部バスI/F部13を介して外部データバス25へ転送される。
【0036】
マイクロプロセッサ10は、外部からリセット信号RST を入力し、リセット信号RST がアサートされるとその内部の素子がリセットされる。すなわち、リセット信号RST が図示しない信号線を介してCPU11を含むプロセッサ10内の必要な記憶素子に入力され、アサートされたことに応答してその素子の記憶内容をすべてリセットする。これをハードウェア的なリセット処理と呼ぶこととする。
特に、制御部31がリセット信号RST を入力し、リセット信号RST が解除されたことに従い制御部30は外部のROMに格納されたリセットベクタエントリをCPU11内にフェッチするように、実行部40を制御する。このフェッチされたリセットベクタエントリ内の示す情報を参照することによりリセット処理プログラムが起動する。そしてリセット処理プログラムが実行されることにより、プロセッサ10全体のリセット処理がなされる。これをソフトウェア的なリセット処理と呼ぶこととする。これについては後述する。
【0037】
また、マイクロプロセッサ10は、外部から割り込み信号INT を入力する。制御部30が割り込み信号INT を受けることにより、制御部30が内蔵DRAM15に格納されている外部割り込みベクタエントリをCPU11内にフェッチするように、実行部40を制御する。そして外部割り込みベクタエントリ内の命令が実行されることにより、プロセッサ10内の割り込み処理が開始される。これについても後述する。
【0038】
マイクロプロセッサ10は、図2に示す物理アドレス空間を有する。H’00 0000番地〜H’0F FFFF番地の領域は、内蔵DRAM15に割り当てられた内蔵DRAM領域である。H’10 0000番地〜H’FF FFFF番地の領域は、ROM等の外部記憶装置に対して割り当てられた外部領域である。
【0039】
内蔵DRAM領域において、特にH’00 0080番地〜H’00 008F番地には、外部割り込みベクタエントリの格納領域が割り当てられている。
また、外部領域において、特にH’FF FFF0番地〜H’FF FFFF番地には、リセットベクタエントリの格納領域が割り当てられている。
【0040】
マイクロプロセッサ10は、マルチプロセッサシステムを構成する上で、マスタープロセッサ、スレーブプロセッサのいずれにも使用することができる。制御部30はモード切り替え信号M/S を入力する。信号M/S がHレベルの場合は、マスタープロセッサとして使用されるマスターモードが設定され、信号M/S がLレベルの場合は、スレーブプロセッサとして使用されるスレーブモードが設定される。プロセッサ10は、マスターモード、スレーブモードのいずれであっても、図2に示す物理アドレス空間に従い各領域に割り当てられた対象へのアクセスを行う。
【0041】
次に、マスターモードが設定された場合のマイクロプロセッサ10におけるリセット動作について説明する。
リセット信号RST がLレベルにアサートされるとともに、プロセッサ10内の素子がリセットされ、ハードウェア的なリセット処理がなされる。またリセット信号RST のアサートに応答してPC43にリセットベクタエントリの先頭アドレスであるH’FF FFF0番地がセットされるようになっている。
その後、リセット信号RST がHレベルにネゲートされたことに応答して、制御部30は、外部からリセットベクタエントリをフェッチするように、実行部40を制御する。そのためにまず、PC43は、すでに保持しているリセットベクタエントリの先頭アドレスであるH’FF FFF0番地をバスコントローラ18に出力する。バスコントローラ18は、H’FF FFF0番地が外部領域に対するアクセスであることを認識し、外部バスI/F部13に対してH’FF FFF0番地にあるデータ、すなわちリセットベクタエントリを外部からフェッチするよう要求する。外部バスI/F部13は、H’FF FFF0番地を外部アドレスバスへ出力する。
【0042】
図3はマスターモードが設定される場合のプロセッサ10から見た外部のROMが割り当てらた領域の詳細を示す。また図4はマスターモードが設定される場合のプロセッサ10から見た内蔵DRAM15が割り当てらた領域の詳細を示す。
【0043】
外部領域の一部が外部ROMに対して割り当てられ、リセットベクタエントリは外部ROMに格納されている。外部ROMは外部アドレスバスを介してH’FF FFF0番地が入力されることに応答して、その番地に格納された情報を外部データバス25を介して外部バスI/F部13へ出力する。
リセットベクタエントリは、リセット処理プログラム50を起動させるための情報が含まれている。この実施の形態では、図3に示すとおり、リセットベクタエントリ内のH’FF FFF0番地には分岐命令が記憶されており、マイクロプロセッサ10は、リセットベクタエントリとして分岐命令を外部からフェッチすることになる。このフェッチした分岐命令は内部データバス20を介して命令キュー12に入力され、CPU11は分岐命令をデコードして実行する。そしてH’FF FFF1番地〜H’FF FFFF番地になにも情報が格納されていないものとする。
【0044】
分岐命令は、オペコードJMP と分岐先アドレス情報とで構成され、この分岐先アドレス情報は、複数の命令からなるリセット処理プログラム50が格納されている領域の先頭アドレスであるH’FF 0000番地を示している。従ってマイクロプロセッサ10は、その分岐命令の実行によりH’FF 0000番地がPC43にセットされ、H’FF 0000番地に格納されたリセット処理プログラム50の先頭命令を外部データバス25を介して外部からフェッチする。この先頭命令は命令デコーダ31でデコードされ、実行部40にて実行される。以降、マイクロプロセッサ10は、PC43が保持アドレスを順次カウントして、リセット処理プログラム50内にある複数の命令を順次フェッチし実行し、最終的にメインプログラムに実行を復帰させることにより、マスターモードにおけるマイクロプロセッサ10のソフトウェア的なリセット処理が完了する。
【0045】
この実施の形態では図3に示すように、リセット処理プログラムは、外部ROMに格納されている。しかしこれに限ることなくリセット処理プログラムが図3に示された外部RAMに格納されてあってもよい。
【0046】
また、この実施の形態では、リセットベクタエントリには、リセット処理プログラムの先頭命令へ分岐する分岐命令のみを格納していたが、例えば、リセットベクタエントリ内にリセット処理プログラムの先頭アドレスを格納し、CPU11がその先頭アドレスをPC43にセットするように構成されてもよい。
【0047】
このリセット処理プログラムの実行により、マイクロプロセッサ10がマスタープロセッサとして使用するために必要なリセット処理が行われ、特に図4に示された外部割り込みベクタエントリ、および外部割り込み処理プログラム51がROMあるいはRAM等の外部の記憶装置から内蔵RAM15へダウンロードされる処理がなされる。
【0048】
マスターモードにおいて、マイクロプロセッサ10が例えばメインプログラムの実行中に外部から外部割り込み信号INT がアサートされた場合における割り込み処理は次のように開始される。
外部割り込み信号INT がLレベルでアサートされることにより、制御部30はPC43に外部割り込みベクタエントリの先頭アドレスであるH’00 0080番地をセットする。そして制御部30はリセット処理時に外部からダウンロードされた外部割り込みベクタエントリを内蔵DRAM15からCPU11内に転送するように実行部40を制御する。PC43は、H’00 0080番地をバスコントローラ18に出力する。バスコントローラ18は、H’00 0080番地が内蔵DRAM領域に対するアクセスであることを認識し、内蔵DRAM15に対してH’00 0080番地のアドレスを出力する。内蔵DRAM15は、H’00 0080番地にある情報を内部データバス20を介してCPU11に出力する。
【0049】
外部割り込みベクタエントリは、内蔵DRAM15に記憶された外部割り込み処理プログラム51を起動させるための情報が含まれている。この実施の形態では、図4に示したとおり、その先頭アドレスであるH’00 0080番地には、オペコードJMP と分岐先アドレス情報とで構成された分岐命令が格納されており、H’00 0081番地〜H’00 008F番地にはなにも情報が格納されていない。
この分岐命令の分岐先アドレス情報は、複数の命令からなる外部割り込み処理プログラム51の先頭アドレスであるH’00 1000番地を示している。従ってマイクロプロセッサ10では、その分岐命令の実行によりH’00 1000番地がPC43にセットされ、内蔵DRAM15のH’00 1000番地に格納された外部割り込み処理プログラムの先頭命令が内部データバス20を介してCPU11に送られる。この先頭命令は命令デコーダ31でデコードされ、実行部40にて実行される。以降、マイクロプロセッサ10は、PC43が保持アドレスを順次カウントして、外部割り込み処理プログラム51内にある複数の命令を順次フェッチし実行する。
【0050】
通常、外部割り込み処理プログラムには、複数の割り込み要因のうちのどの割り込み要因が原因となって外部割り込み信号INT がアサートされたかを解析する要因解析プログラム、外部割り込み信号INT の発生原因となった割り込み要因に対応した割り込み処理を行う要因処理プログラムが含まれ、この外部割り込み処理プログラムが実行されることにより、マイクロプロセッサ11内で外部割り込みの発生した要因に応じた処理がなされる。
【0051】
次いで、スレーブモードが設定された場合のマイクロプロセッサ10におけるリセット動作について説明する。
リセット信号RST がLレベルにアサートされるとともに、マスターモードの場合と同様にプロセッサ10内の素子がリセットされ、ハードウェア的なリセット処理がなされる。また、リセット信号RST のアサートに応答してPC43にリセットベクタエントリの先頭アドレスであるH’FF FFF0番地がセットされる。しかし、その後にリセット信号RST がHレベルにネゲートされても、制御部30はPC43がその先頭アドレスであるH’FF FFF0番地がバスコントローラ18に転送されないようにし、外部からリセットベクタエントリをフェッチしないように実行部40を制御している。
【0052】
図5は、スレーブモードが設定された場合のプロセッサ10から見た内蔵DRAMが割り当てられた領域の詳細を示す。
スレーブモードにおいて、ソフトウェア的なリセット処理は、外部から外部割り込み信号INT がアサートされることにより開始される。
なお、外部割り込み信号INT がアサートされる前に、マスタープロセッサ等の外部バスマスターにより、図5に示す外部割り込みベクタエントリ及び外部割り込み処理プログラム52が内蔵DRAM15に書き込まれたものとする。
【0053】
外部割り込み信号INT がLレベルでアサートされることにより、制御部30はPC43に外部割り込みベクタエントリの先頭アドレスであるH’00 0080番地をセットし、外部割り込みベクタエントリが内蔵DRAM15からCPU11内に取り込まれるように実行部40を制御する。PC43は、H’00 0080番地をバスコントローラ18に出力する。バスコントローラ18は、H’00 0080番地が内蔵DRAM領域に対するアクセスであることを認識し、内蔵DRAM15に対してH’00 0080番地のアドレスを出力する。内蔵DRAM15は、H’00 0080番地にある情報を内部データバス20を介してCPU11に出力する。
【0054】
マスターモードと同様に、外部割り込みベクタエントリの先頭アドレスであるH’00 0080番地には、オペコードJMP と分岐先アドレス情報とで構成された分岐命令が格納されており、H’00 0081番地〜H’00 008F番地にはなにも情報が格納されていない。この分岐命令の分岐先アドレス情報は、複数の命令からなる外部割り込み処理プログラム52の先頭アドレスであるH’00 1000番地を示している。従ってマイクロプロセッサ10では、その分岐命令の実行によりH’00 1000番地がPC43にセットされ、内蔵DRAM15のH’00 1000番地に格納された外部割り込み処理プログラム52の先頭命令が内部データバス20を介してCPU11に送られる。この先頭命令は命令デコーダ31でデコードされ、実行部40にて実行される。以降、マイクロプロセッサ10は、PC43が保持アドレスを順次カウントして、外部割り込み処理プログラム52内にある複数の命令を順次フェッチし実行する。
【0055】
外部割り込み処理プログラム52はリセット処理を行うための命令からなり、このリセット処理を行うための命令がCPU11で実行されることによりマイクロプロセッサ10がスレーブプロセッサとして使用されるために必要なリセット処理がなされる。
なお、このスレーブモードにおける外部割り込み処理プログラムは、マルチプロセッサシステムにおけるスレーブプロセッサの使用形態によってユーザにより自由に設定される。この実施の形態においては、外部割り込み信号INT がスレーブプロセッサのリセット処理以外の要因に対して使用されないスレーブプロセッサを想定しているため、外部割り込み処理プログラムはリセット処理を行うための命令のみで構成されている。
しかし、外部割り込み信号INT がスレーブプロセッサの初期化処理以外の要因に対する割り込みにも用いられるならば、リセット処理を行うための命令の他に、その要因に応じた処理を行うための割り込み要因処理プログラム、及び要因を解析するための要因解析プログラムを構成する命令を外部割り込み処理プログラムに追加してもよい。
【0056】
マイクロプロセッサ10がスレーブモードに設定されている場合、少なくともリセット処理が行われている間は外部バスに対するバス権を放棄しており、特に16個のデータバス端子D、および24個のアドレス端子Aをすべてハイインピーダンス状態にしている。
【0057】
外部バスI/F部13は、16個の外部データバス端子D、24個のアドレス端子Aの合計40個の端子の各々に接続する入出力バッファを有し、その入出力バッファの回路構成を図6に示す。
この入出力バッファは、その入力側が外部端子に接続される入力バッファ60、その出力側が外部端子に接続される出力バッファ61で構成され、また入力バッファ60、出力バッファ61にはそれぞれ信号R、Wが入力される。
【0058】
外部端子からデータあるいはアドレスを入力する場合、信号R、WをともにHにして、入力バッファ60が動作することにより外部端子から入力される信号を入力バッファ60の出力線からプロセッサ内部に送る。一方、出力バッファ61は外部端子が電源電圧VCC 、接地電圧GND のいずれにも電気的に接続されないようにし、外部端子をハイインピーダンス状態にする。
外部端子にデータあるいはアドレスを出力する場合には、信号R、WをともにLにして、出力バッファ61が動作することによりプロセッサ内部から出力バッファ61の入力線に伝搬された信号を外部端子に送る。一方、入力バッファ60は、その出力が電源電圧VCC 、接地電圧GND のいずれにも電気的に接続されないようにし、プロセッサ内部への出力線をハイインピーダンス状態にする。
【0059】
つまり、スレーブモードにおいては、データバス端子D、アドレス端子Aに接続するすべての出力バッファ61にHレベルの信号Wが入力され、各々の端子をすべてハイインピーダンスとしている。これは、マイクロプロセッサ10がデータバス端子D、アドレス端子Aから外部に信号を不用意に発生させないようにするためである。
【0060】
なお、アドレス端子Aがハイインピーダンス状態であっても、アドレス端子Aを介してアドレスをプロセッサ10に与えることができ、外部バスマスターがプロセッサ10の内蔵DRAM15に対するデータの書き込みまたは読み出しを行える。この場合、データバス端子Dがハイインピーダンス状態であっても、外部バスI/F部13はチップセレクト信号CSが入力されたことに応答して、データバス端子Dのハイインピーダンス状態が解除されるように構成されている。
【0061】
また、この実施の形態のマイクロプロセッサ10においては、アドレス端子Aがハイインピーダンス状態となって外部データバスのバス権を放棄している間に、CPU11が記憶装置、IOデバイス等の外部の装置に対するアクセスを要求し、バスコントローラ18が、その要求信号もしくは外部装置を指定するアドレスをCPU11から受け取った場合、CPU11に外部へのアクセスの禁止を知らせ、CPU11に例外処理を行わせることを通知する例外発生通知信号を出力する。CPU11はこの例外発生通知信号を受け取ると例外処理を開始し、例外処理ハンドラを起動させる。
【0062】
図7は、このマイクロプロセッサ10を用いたマルチプロセッサシステムのシステム構成図である。
このマルチプロセッサシステムにおいては、図1にあるマイクロプロセッサ10をマスターモードに設定して用いるマスタープロセッサMP、図1にあるマイクロプロセッサ10をスレーブモードに設定して用いるスレーブプロセッサSPを有し、各々のデータバス端子Dは、共通の16ビット幅のシステムバス100 に接続されている。
さらに、このマルチプロセッサシステムは、システムバス100 に接続され、種々の命令を格納する外部ROM105 、およびシステムバス100 に接続され、スレーブプロセッサSPに対して外部割り込み信号を出力する割り込みコントローラ110 を有する。
【0063】
図7におけるマルチプロセッサシステムに対するシステム初期化の動作を図8に示すタイミングチャート図を用いて説明する。図8は、リセット信号RST と外部割り込み信号INT の波形、マイクロプロセッサMP、スレーブプロセッサSPの各内部の処理、及びスレーブプロセッサSPにおけるデータバス端子D、アドレス端子Aの状態をそれぞれ示している。
【0064】
特に図8に付された(1)〜(6)の各処理について説明する。
(1):ハードウェア的なリセット処理
マルチプロセッサシステムにおいて、マスタープロセッサMP、スレーブプロセッサSPには共通してリセット信号RST が入力される。リセット信号RST がLレベルにアサートされると、マスタープロセッサMP及びスレーブプロセッサSPの双方では、リセット信号RST のLレベルに応答して、各プロセッサ内の記憶素子がすべてリセットされる。
【0065】
リセット信号RST がアサートされた後、ネゲートされたことに応答して、マスタープロセッサMPでは、外部ROM105 に格納されたリセットベクタエントリがシステムバス100 を介してフェッチされる。そしてCPU11はリセットベクタエントリにある分岐命令を実行することにより、リセット処理プログラム50の先頭命令に分岐し、マスタープロセッサMPはリセット処理プログラム50の複数の命令を順次フェッチし、実行する。一方、スレーブプロセッサSPでは、リセット信号RST がアサートされ、その後ネゲートされても、リセットベクタエントリは外部からフェッチしない。従ってリセット処理を行うための命令で構成されたリセット処理プログラム50は命令デコーダ31に与えられず、実行されない。
【0066】
(2):マスタープロセッサMPの内蔵DRAM15への命令のダウンロード
リセット処理プログラム50の実行により、マスタープロセッサMPでは、CPU11が外部ROM105 (あるいは図示しない他の外部記憶装置)からシステムバス100 、内部データバス20を介して種々のプログラムを取り込み、これを内蔵DRAM15の所定の格納先に転送する。この内蔵DRAM15に転送されるプログラムには、図4に示す外部割り込みベクタエントリと外部割り込み処理プログラム51とが含まれている。
【0067】
(3):スレーブプロセッサSPの内蔵DRAM15への命令のダウンロード
リセット処理プログラム50の実行により、マスタープロセッサMPは、外部ROM105 あるいは図示しない他の外部記憶装置からシステムバス100 、内部データバス20を介して種々のプログラムを取り込む。この取り込んだプログラムをスレーブプロセッサSPの内蔵DRAM15の所定領域へ転送するために、マスタープロセッサMPはスレーブプロセッサSPへチップセレクト信号CSと共に転送先のアドレスを入力する。これによりスレーブプロセッサSPはシステムバス100 を介してマスタープロセッサMPから転送されるプログラムを入力して自身の内蔵DRAM15へ記憶する。このスレーブプロセッサSPの内蔵DRAM15に記憶されたプログラムには、図5に示す外部割り込みベクタエントリとリセット処理を行うための命令を含む外部割り込み処理プログラム52とが含まれている。
【0068】
(4):スレーブプロセッサSPへの外部割り込み信号INT の発生
スレーブプロセッサSPの内蔵DRAM15への命令のダウンロードを終了した後に、リセット処理プログラム50の実行により、マスタープロセッサMPは、システムバス100 を介して割り込みコントローラ110 に割り込みデータを転送する。割り込みコントローラ110 は16ビットデータを格納する割り込みレジスタ111 を有し、システムバス100 からの割り込みデータをセットする。
割り込みコントローラ110 の制御部112 はフリップ・フロップ回路を有し、割り込みレジスタ111 の所定のビット111aが「1」 を保持している場合にフロップ回路を「0」 にセットし、外部割り込み信号INT をLレベルにする。そして外部割り込み信号INT は、スレーブプロセッサSPに入力される。
【0069】
以上の(2)〜(4)の処理を含むリセット処理プログラム50の実行が終了することにより、マスタープロセッサの初期化が完了する。
【0070】
(5):スレーブプロセッサSPの外部割り込み処理プログラム52の実行
スレーブプロセッサSPにおいて、外部割り込み信号INT がアサートされたことにより、スレーブプロセッサSPのCPU11は(3)でスレーブプロセッサの内蔵DRAM15にダウンロードされ記憶された図6に示す外部割り込みベクタエントリを取り込み、その外部割り込みベクタエントリの分岐命令を実行する。この分岐命令の実行により、外部割り込み処理プログラム52の先頭命令に分岐し、その先頭命令が実行される。そしてスレーブプロセッサSPのCPU11は、内蔵DRAM15から外部割り込み処理プログラム52の複数の命令を順次取り込み、実行する。
図5に示したように、外部割り込み処理プログラム52には、リセット処理を行うための命令が含まれており、スレーブプロセッサSPのCPU11においてこのリセット処理を行うための命令の実行が終了することにより、スレーブプロセッサSPの初期化が完了する。
【0071】
(6):外部割り込み信号INT のネゲート
スレーブプロセッサSPの汎用入出力ポートに接続する端子Pから出力される信号PP0 が、割り込みコントローラ110 の制御部112 に入力される。制御部112 は信号PP0 が入力されたことにより、制御部112 のフリップフロップ回路が「1」 にリセットされるように構成されている。
スレーブプロセッサSPのCPU11がこの外部割り込み処理プログラム52を実行することにより、スレーブプロセッサSPにおける汎用入出力ポート16のデータレジスタにデータがセットされ、このデータのセットにより端子Pから信号PP0 を出力する。そして信号PP0 が割り込みコントローラ110 に入力されて、制御部112 のフリップフロップ回路をリセットする。その結果、割り込みコントローラ110 が外部割り込み信号INT をHレベルにネゲートする。
【0072】
以上の(5)、(6)の処理を含む外部割り込み処理プログラム52の実行が終了することにより、マルチプロセッサシステムの初期化が完了する。
【0073】
スレーブプロセッサSPのデータバス端子D、およびアドレス端子Aは、このマルチプロセッサシステムの初期化の動作において、(1)のハードウェア的なリセット処理からシステムの処理化が終了するまで、常にハイインピーダンス状態を保持している。これにより、スレーブプロセッサSPがシステムバス100 に対してバス権を放棄している。つまり、システム初期化が行われている間は、スレーブプロセッサSPが外部ROM105 、マスタープロセッサMPの内蔵DRAM15、さらには図示しない外部記憶装置、外部IOデバイスに対するアクセスを行わない。
【0074】
この実施の形態1におけるマイクロプロセッサ10には、次の特徴がある。
(a)マイクロプロセッサ10は、外部からリセット信号RST が入力されても、その内部の記憶素子の記憶内容はリセットされるもののリセットベクタエントリをフェッチしないようにしたため外部の記憶装置に格納されたリセット処理プログラムを実行しない。そして割り込み信号INT が入力されたことに応答して外部割り込みベクタエントリを参照し、CPU11が外部割り込み処理プログラム52に含まれるリセット処理を行うための命令を実行することによりプロセッサ10の初期化がなされるので、リセット信号の入力信号とは別に割り込み処理のためにプロセッサに通常備えられている既存の外部割り込み信号の入力機構及びその割り込み処理機構を用いて初期化することができる。
従って、リセット信号に応答してリセット処理のプログラムルーチンを実行することにより初期化されるマスタープロセッサとマルチプロセッサシステムを構成する場合に、マイクロプロセッサ10は、外部割り込み処理プログラムにリセット処理を行うための命令を設定しておく以外、既存のハードウェア機構をそのまま利用するだけで、マスタープロセッサが実行するものとは別の初期化用のプログラムルーチンを実行することができる。
従来考えられていたように、マルチプロセッサシステムに使用される複数のプロセッサのいずれもがリセット信号に応答してリセット処理用の別々のプログラムルーチンを実行する場合に必要とされる、どのプロセッサがどのプログラムルーチンをアクセスして実行するかを識別する種々の機構も不要となる。
【0075】
(b)このマイクロプロセッサ10では、スレーブモードが設定されている場合、リセット信号が入力された後に、その内部が初期化が終了するまでは少なくともアドレス端子Aをハイインピーダンス状態(すなわち、図6の出力バッファ61の出力側をハイインピーダンス状態にする)にしているので、プロセッサ10がアドレス端子から不用意にHまたはLの信号が出力されることを防ぐ。特に、プロセッサ10がリセット信号が入力された後その内部が初期化が終了するまでの間に他の外部バスマスターがその初期化のために外部データバスを使用する場合(例えば、この実施の形態における図7におけるマスタープロセッサMPの初期化)、システムのアドレスバス上に伝搬しているアドレスに影響を与えないため、外部バスマスターの外部に対するアクセスが確実に行える。
また、割り込み処理プログラムの実行時に外部のメモリにアクセスできるようにするために、アドレス端子Aは、割り込み信号INT がアサートされるまでハイインピーダンス状態にしておき、アサート後にハイインピーダンス状態を解除するようにしてもよい。
この実施の形態では、マスタープロセッサの初期化時に、その内蔵DRAMからデータが読み出されることがないため、データバス端子Dもハイインピーダンス状態としている。
【0076】
(c)このマイクロプロセッサ10では、アドレス端子Aがハイインピーダンス状態である場合に、外部バスI/F部13がCPU11から外部に対するアクセスを要求されても、CPU11に例外発生通知信号を出力するので、CPU11はこの例外発生通知信号により外部バス権も有さずに外部にアクセスしたことに対する例外処理を速やかに行える。
【0077】
(d)このマイクロプロセッサ10では、内蔵DRAM15に格納された外部割り込み処理プログラムを内部データバス20を介してCPU11が取り込み、この外部割り込み処理プログラム52にあるリセット処理を行うための命令を実行することにより、プロセッサの初期化がなされるので、マルチプロセッサシステムにおける他のプロセッサとは独立して初期化が行える。例えば、図8にある、マスタープロセッサMPのリセット処理プログラムの実行期間と、スレーブプロセッサとして機能するマイクロプロセッサ10の外部割り込み処理プログラムの実行期間とが一部オーバーラップして行われていることからわかるように、マイクロプロセッサ10を他のマイクロプロセッサと並列にリセット処理することもでき、システム全体の初期化を迅速に終了させることができる。
また、CPU11は外部データバス25を使用することなくリセット処理を行うための命令を取り込み実行するので、マルチプロセッサシステムにおいて初期化の際に、外部データバス25を介して外部記憶装置からリセット処理プログラムを取り込み実行するマイクロプロセッサとの間に外部データバス25の利用を調整するバス調停回路を設ける必要もなくなる。
【0078】
この実施の形態ではマスタープロセッサのリセット処理プログラム50の実行において、マイクロプロセッサ10の内蔵DRAM15にリセット処理を行うための命令を含んだ外部割り込み処理プログラム52を外部から書き込むようにしている。しかし、マイクロプロセッサ10内に内部データバス20に接続する内蔵ROMを設け、予めこの内蔵ROMに、外部割り込みベクタエントリとリセット処理を行うための命令を含んだ外部割り込み処理プログラム52とを格納し、CPU11は内蔵ROMから命令を取り込み実行することによっても同一の効果を得る。しかも、マスタープロセッサMPのリセット処理プログラム50の実行において、スレーブプロセッサSP側の内蔵DRAM15へのプログラムの書き込み動作が不要になり、さらにシステム全体の初期化を素早く終了させることができる。
このように、内蔵ROMに格納する形態を採用する場合は、図5にある外部割り込みベクタエントリの分岐命令で、CPU11が内蔵ROMへアクセスするようにその分岐先アドレス情報を変更する必要がある。
【0079】
(e)このマイクロプロセッサ10では、外部からリセット信号RST が入力されたことに応答して、リセット処理プログラム50が実行されることにより初期化がなされるマスターモードと、外部からリセット信号RST が入力されても、リセット処理プログラムを外部のROM等からフェッチせず、そして割り込み信号INTが入力されたことに応答して、CPU11が外部割り込み処理プログラムを構成する命令が命令デコードされ、この外部割り込み処理プログラムに含まれるリセット処理を行うための命令を実行することにより初期化がなされるスレーブモードが設定できるように構成されている。マイクロプロセッサ10をマスタプロセッサ、スレーブプロセッサのいずれで使用しても、図2のように同一のアドレス空間を構成することができる。そして、マイクロプロセッサがいずれのモードであっても、リセットベクタエントリの内容、及び外部割り込みベクタエントリの内容を変更させる必要はない。従って、マルチプロセッサシステムにおいてスレーブプロセッサを増やしたい場合には、同一のプロセッサを単に追加してモードを設定するだけの簡単な構成で実現でき、かつ各プロセッサの初期化がスムーズに行える。
【0080】
この実施の形態におけるマルチプロセッサシステムでは、次の特徴がある。
(f)マスタープロセッサMP、スレーブプロセッサSPにはともにリセット信号RST が入力される。マスタープロセッサMPでは、リセット信号RST が入力されたことに応答してリセットベクタエントリを参照し、リセット処理プログラム50が実行されることによりマスタープロセッサMPの初期化がなされる。スレーブプロセッサSPでは、リセット信号RST が入力されても、外部ROMに書き込まれたリセットベクタエントリを参照しないため、リセット処理プログラムを実行せず、マスタープロセッサMPが割り込みコントローラ110 を介して外部割り込み信号INT を入力したことに応答して外部割り込みベクタエントリを参照し、CPU11が外部割り込み処理プログラム52を取り込み、その中のリセット処理を行うための命令を実行することにより、初期化がなされる。
その結果、各プロセッサが外部ROMにあるリセットベクタエントリを同時にアクセスすることはない。そしてシステムの初期化の際には2つのマイクロプロセッサは、それぞれ異なるベクタエントリを参照してプログラムルーチンを実行するように構成されているので、同一のリセットベクタエントリを参照してプログラムルーチンを実行する構成を採用した場合に必要とするプロセッサの識別機構も不要である。
【0081】
また、各プロセッサを初期化するために、リセット処理プログラムを格納した記憶装置をプロセッサ毎に対応して設け、各プロセッサは対応の記憶装置からプログラムをフェッチし実行する必要もなくなる。よって、プロセッサがどの記憶装置にアクセスすべきかを設定するための機構も不要となる。また、記憶装置の増加も防ぐことができる。
【0082】
実施の形態2.
図7のマルチプロセッサシステムにおいて、マルチプロセッサMP、スレーブプロセッサSP、割り込みコントローラ110 、これらを共通に接続するデータバスをワンチップ化したマルチプロセッサ機能を有するマイクロプロセッサで構成してもよい。そしてこのマルチプロセッサ機能を有するマイクロプロセッサと、図7に示すものと同一の外部ROMとをシステムバスで接続することにより、マルチプロセッサシステム全体を構成してもよい。
【0083】
図9は、この実施の形態におけるマルチプロセッサシステムを有したマイクロプロセッサを示す構成図である。このマルチプロセッサシステムは、マイクロプロセッサ200 、ROM201 及びマイクロプロセッサ200 とROM201 あるいは図示しないユニットとの間でデータを転送するシステムバス202 を有する。
マイクロプロセッサ200 は、128ビット幅の内部データバス210 、この内部データバス210 に接続されるそれぞれCPU211a、211b、内蔵DRAM212 、外部バスIF部213 、割り込みコントローラ214 、さらにはCPU211a、211bの各々の制御を受けて、内蔵DRAM212 と外部バスIF部213 を制御するバスコントローラ215 を含み、これらが単一チップの半導体集積回路で構成されている。
【0084】
CPU211a、211bの各々は、基本的には図1にあるCPU11と同一に構成され、内部データバス210 から命令を取り込んでデコードする命令デコーダを含みそのデコード内容に応じた制御信号を出力する制御部、32ビット単位でデータを処理し、この制御信号に従いデコードされた命令を実行し、内部データバス210に対してデータを入出力を行う実行部を有する。そしてCPU211a、211bの制御部には、それぞれ割り込み信号INTa、INTbが入力され、そしてリセット信号RST が共通して入力される。またCPU211a、211bの各々は、図1に示される命令キュー12、データセレクタ17と同一の機能を有するものを含んでいる。
【0085】
バスコントローラ215 は、CPU211a、211bの各々により制御され、各々で生成されたアドレス及びその他の制御信号を受け取り、その受け取ったアドレスの指定する記憶領域をアクセスするように、その記憶領域である内蔵DRAM214あるいは外部の記憶装置へ対してアドレスを出力する。外部の記憶装置へのアクセスは、バスコントローラ215 が外部バスIF部13を制御することにより行われる。そしてCPU211a、211bの各々は、内部データバス210 を介してバスコントローラ215 より出力されたアドレスの指定する記憶領域から命令あるいはデータを取り込む。
【0086】
内蔵DRAM212 は、内部データバス210 と128ビット単位でデータを入出力し、バスコントローラ215 から出力されるアドレス、その他の制御信号を受け、そのアドレスの指定する領域に対して命令またはデータの読み出しまたは書き込みがなされる。CPU211a、211bの双方は、バスコントローラ215 を制御することにより内蔵DRAM212 に対して命令またはデータのやり取りができる。
【0087】
外部バスI/F部213 は、16個の入出力端を有するデータバス端子Dに接続され、システムバス202 を介してROM201 あるいは図示しない装置に対して16ビットのデータを入出力する。マイクロプロセッサ200 が外部の記憶装置にアクセスする場合には、外部バスI/F部13は、バスコントローラ215 からアクセス先のアドレスを受け取り、さらにそのアドレスを外部の記憶装置に出力する。外部の記憶装置では、マイクロプロセッサ200 から転送されたデータをその受け取ったアドレスの示す記憶場所へ書き込み、またはその記憶場所に記憶されたデータを読み出してマイクロプロセッサ200に転送する。
【0088】
マイクロプロセッサ200 は、外部から外部割り込み信号EINTを入力する。外部割り込み信号EINTは割り込みコントローラ214 に与えられる。割り込みコントローラ214 は、CPU211a、211bにそれぞれ割り込み信号INTa、INTbを与える。特に割り込みコントローラ214 は、外部割り込み信号EINTがCPU211a、211bのどちらに対する割り込みかを判定し、割り込み信号INTa、INTbのいずれか一方を出力する。CPU211a、211bは、それぞれ割り込み信号INTa、INTbに応答して割り込み処理プログラムを起動実行し、割り込み要因に対する割り込み処理を行う。また割り込みコントローラ214 は、CPU211aから内部データバス210 を介してデータが転送され、この転送されたデータに基づき、外部割り込み信号EINTに拘わらずCPU21b に対して割り込み信号INTbを出力する機能を有する。
【0089】
マイクロプロセッサ200 は、外部からリセット信号RST を入力しCPU211a、211b内を含むプロセッサ200 内の各記憶素子に与える。リセット信号RST がアサートされることに応答して各記憶素子の記憶内容をリセットするというハードウェア的なリセット処理を行う。またマイクロプロセッサ200 は、リセット信号RST がネゲートされると、ROM201 に格納されているリセット処理プログラムが起動してCPU211aで実行されるように構成されている。詳細は後述する。
【0090】
マイクロプロセッサ200 は、CPU211a、CPU211bのうちの一方をマスタープロセッサ、その他方をスレーブプロセッサとして動作するマルチプロセッサを構成する。この実施の形態ではCPU211aをマスタープロセッサ、CPU211bをスレーブプロセッサとしている。
【0091】
図10は、マイクロプロセッサ200 の物理アドレス空間を説明するための説明図である。実施の形態1にあるプロセッサ10と同様、H’00 0000番地〜H’0F FFFF番地の領域は、内蔵DRAM15に割り当てられた内蔵DRAM領域であり、H’10 0000番地〜H’FF FFFF番地の領域は、ROM201 、その他の外部記憶装置に対して割り当てられた外部領域である。内蔵DRAM領域において、H’00 0080番地〜H’00 008F番地にはCPU211aが参照する割り込みベクタエントリ241の格納領域、H’00 0090番地〜H’00 009F番地にはCPU211bが参照する割り込みベクタエントリ242 の格納領域がそれぞれ割り当てられている。外部領域においては、H’FF FFF0番地〜H’FF FFFF番地には、リセットベクタエントリ240の格納領域が割り当てられている。
CPU211a、211bの各々から見たアドレス空間は、図10に示すもので表現される。
【0092】
図11は、アドレス空間の外部領域の詳細を説明するための説明図である。
外部領域には、図9に示されているROM201 が割り当てられる。さらにそのROM201 への割り当て領域には、リセットベクタエントリ240 とその先頭命令がH’FF 0000番地に格納されたリセット処理プログラム250 とが割り当てられている。リセットベクタエントリにおいて、H’FF 0000番地にはリセット処理プログラム250 の先頭命令に分岐する分岐命令0が格納され、その他の番地にはなにも情報は格納されていない。分岐命令0にはH’FF 0000番地を示す情報が含まれている。
【0093】
また、図12は、アドレス空間の内蔵DRAM領域の詳細を説明するための説明図である。
その先頭命令がH’00 1000番地に格納された割り込み処理プログラム251 、その先頭命令がH’00 2000番地に格納された割り込み処理プログラム252 が内蔵DRAM領域に割り当てられている。割り込みベクタエントリ241 において、H’00 0080番地には割り込み処理プログラム251 の先頭命令に分岐する分岐命令1が格納され、その他の番地にはなにも情報は格納されていない。分岐命令1にはH’00 1000番地を指す情報が含まれている。割り込みベクタエントリ242 において、H’00 0090番地には割り込み処理プログラム252 の先頭命令に分岐する分岐命令2が格納され、その他の番地にはなにも情報は格納されていない。分岐命令2にはH’00 2000番地を示す情報が含まれている。
【0094】
次に図9のマイクロプロセッサ200 の初期化動作について、図13のフローチャート図を参照しながら説明する。
ステップST1 において、リセット信号RST がLレベルにアサートされたことにより、CPU211a、211bを含むマイクロプロセッサ200 内の各記憶素子はそのLレベルのリセット信号RST を入力し、その記憶内容がリセットされる(マイクロプロセッサ200 のハードウェア的なリセット処理)。
【0095】
次いで、ステップST2 において、リセット信号RST がHレベルにネゲートされることに応答し、CPU211aがリセット処理プログラム250 を実行する。
まず、リセット信号RST がネゲートされることにより、CPU211aがリセットベクタエントリ240 の内容を参照すべく、システムバス202 を介してROM201からリセットベクタエントリ240 がプロセッサ200 にフェッチされ、内部データバス210 を介してCPU211a内に取り込まれる。CPU211aはリセットベクタエントリ240 に含まれる分岐命令0を実行することにより、ROM201 に格納されたリセット処理プログラム250 の実行へ分岐する。そしてリセット処理プログラム250 を構成する複数の命令がH’FF 0000番地の先頭命令から順次フェッチされ、CPU211aにより実行される。リセット処理プログラム250 の実行が終了することにより、CPU211a内の初期化が完了する。
【0096】
一方、リセット信号RST がネゲートされても、CPU211bは、リセットベクタエントリ240 をROM201 から取り込まないように構成されている。従ってCPU211bは、リセット処理プログラム250 を実行しない。
なお、ステップST2 において、CPU211aはROM201 に格納されている割り込みベクタエントリ241 、242 、及び割り込み処理プログラム251 、252 をROM201 から取り込み、内蔵DRAM212 にダウンロードする処理を行う(ステップST2a)。割り込みベクタエントリ241 、242 、及び割り込み処理プログラム251 、252 は、図12のアドレス空間で指定されたとおりに内蔵DRAM212 の所定の領域にそれぞれ格納される。
【0097】
また、ステップST2 はリセット処理プログラム250 の実行におけるCPU211a自身bの初期化が完了した後に行われる最後の処理として、CPU211aが割り込みコントローラ214 を用いてCPU211bに割り込み信号INTbを発生させる処理を行う(ステップST2b)。
ステップST2bにおいては、CPU211aは内部データバス210 を介して割り込みコントローラ214 にデータを転送する。割り込みコントローラ214 はこの転送されたデータに基づいて、CPU211bに割り込み信号INTbを出力する。
【0098】
ステップST3 において、CPU211bはこの割り込み信号INTbがアサートされたことに応答して、割り込み処理プログラム252 を実行する。
CPU211aは、割り込みコントローラ214 へデータを転送したことを最後に、内部データバス210 のバス権を放棄し、CPU211bに内部データバス210 のバス権が移る。
割り込み信号INT がアサートされて、CPU211bは、ステップST2aの処理ですでに内蔵DRAM212 に格納されている割り込みベクタエントリ242 を、内部データバス210 を介して取り込む。CPU211bは割り込み処理ベクタエントリ242を参照し、その中に含まれる分岐命令2を実行することにより、同じくステップST2aの処理ですでに内蔵DRAM212 に格納されている割り込み処理プログラム252 の実行へ分岐する。そして割り込み処理プログラム252 を構成する複数の命令がH’00 2000番地の先頭命令から順次フェッチされ、CPU211bにより実行される。
【0099】
この割り込み処理プログラム252 には、CPU211b内のリセット処理を行うための命令が含まれている。割り込み処理プログラム252 の実行することにより、CPU211bは、割り込み処理プログラム252 内の要因解析プログラムの実行により、入力された割り込み信号INTbがリセット処理という要因に対してアサートされたことを解析し、その結果、割り込み処理プログラム252 に含まれるリセット処理を行うための命令を実行する。この割り込み処理プログラム252 の実行が終了することにより、CPU211b内の初期化が完了する。
【0100】
この割り込み処理プログラムにあるリセット処理を行うための命令には、CPU211bから内部データバス210 を介して割り込みコントローラ214 へデータを転送する命令が含まれている。割り込みコントローラ214 は、この転送されたデータを受け取ることにより、割り込み信号INTbをネゲートする。
【0101】
なお、CPU211bに入力される割り込み信号INTbは、CPU211aのリセット処理プログラム250 の実行により発生させる場合に限らず、CPU211aの初期化が終了した後に、外部から割り込み信号INTに応答して発生させてもよい。
【0102】
この実施の形態2におけるマイクロプロセッサ200 には次の特徴がある。
内蔵メモリ212 は、CPU211a、211bの共有メモリとして、128ビットの内部データバス210 を介してデータのやり取りが行われるので、共有メモリへのアクセス効率が著しく向上する。
このようなマイクロプロセッサ200 においてソフトウェア的なリセット処理を行う場合に、リセット信号RST が入力されても、CPU211aだけがリセット処理プログラムを実行してCPU211a内の初期化を行い、CPU211bは、割り込み信号INTbに応答してリセット処理を行うための命令を含む外部割り込み処理プログラムを実行することによりCPU211b内の初期化を行うので、リセットベクタエントリ240 はCPU211aのみが参照し、CPU211a、211bがリセットベクタエントリ240 を格納するROM201 を順次アクセスするためのバス調停回路をチップ内に設ける必要はない。
【0103】
特に、CPU211bは、外部の記憶装置からではなく内蔵DRAM211aから割り込みベクタエントリ、及びリセット処理を行うための命令を取り込み実行するので、命令の取り込みが高速に行える。しかも内部データバス幅が外部バスより大きいため、一層の高速な命令取り込みが期待できる。
【0104】
なお、リセット処理プログラムを格納するものとして、外部ROM201 以外にRAMあるいは磁気ディスク等のデータバス202 に接続する記憶装置であれば何でもよい。
【0105】
【発明の効果】
以上説明したように、この発明に係るマイクロプロセッサによると、外部から入力されるリセット信号に応答してプロセッサ内部の記憶素子がリセットされる、ハードウェア的なリセット処理を行い、割り込み信号が前記処理部に入力されたことに応答して、前記処理部は割り込み処理プログラムを構成する命令が前記処理部の命令デコーダに与えられるように前記アクセス制御部を制御し、前記処理部が前記命令デコーダに与えられた割り込み処理プログラムに含まれるリセット処理である、ソフトウェア的なリセット処理を行うための命令を実行することにより、プロセッサの初期化がなされ、前記リセット信号が入力されてから、前記割り込み信号が入力されるまでの間、前記ソフトウェア的なリセット処理は、行わないものであるので、リセット信号に応答して命令を実行することにより初期化される別のプロセッサとともにマルチプロセッサシステムを構成する場合、本来割り込み処理のために設けられた通常の機構を利用することにより初期化のための命令実行が可能になる。従って、共通のリセット信号に応答してプログラムを実行させたときに比べ、各プロセッサの実行すべきプログラムルーチンの格納されたどの記憶領域をアクセスするかを識別するためのハードウェア機構を各々のプロセッサに追加する必要がなく、マルチプロセッサシステムのシステム設計が容易になる。
【0106】
また、この発明に係るマイクロプロセッサによると、第1のモード及び第2のモードのいずれかに設定されるためのモード設定手段を備え、外部から入力されるリセット信号に応答して、プロセッサ内部の記憶素子がリセットされる、ハードウェア的なリセット処理を行い、前記モード設定手段により第1のモードが設定された場合、前記リセット信号が前記処理部に入力されたことに応答して、前記処理部はリセット処理プログラムを構成する命令が前記処理部の命令デコーダに与えられるように前記アクセス制御部を制御し、前記処理部が前記命令デコーダに与えられたリセット処理プログラムの命令を実行することによりプロセッサの初期化がなされ、前記モード設定手段により第2のモードが設定された場合、割り込み信号が前記処理部に入力されたことに応答して、前記処理部は割り込み処理プログラムを構成する命令が前記命令デコーダに与えられるように前記アクセス制御部を制御し、前記処理部が前記命令デコーダに与えられた割り込み処理プログラムに含まれるリセット処理である、ソフトウェア的なリセット処理を行うための命令を実行することにより、プロセッサの初期化がなされ、前記リセット信号が入力されてから、前記割り込み信号が入力されるまでの間、前記ソフトウェア的なリセット処理は、行わないものであるので、第1のモードに設定されたもの、第2のモードに設定されたものを用意してマルチプロセッサシステムを構成した場合、各々のプロセッサが共通のリセット信号に応答してプログラムを実行させたときに比べ、各々の実行すべきプログラムルーチンの格納されたどの記憶領域をアクセスするかを識別するためのハードウェア機構を各々のプロセッサに設けることなくシステム全体の初期化ができる。この場合、モードを変更する以外は全く同一のプロセッサを用意すればよい。
【0107】
また、この発明に係るマイクロプロセッサによると、外部から入力されるリセット信号に応答して、前記第1および第2の処理部を含むプロセッサ内部の記憶素子がリセットされる、ハードウェア的なリセット処理を行い、前記リセット信号が前記第1の処理部に入力されたことに応答して、前記第1の処理部はリセット処理プログラムを構成する命令が前記第1の処理部の命令デコーダに与えられるように前記アクセス制御部を制御し、前記第1の処理部がその命令デコードに与えられたリセット処理プログラムを実行することにより前記第1の処理部内の初期化がなされ、前記第2の処理部に割り込み信号が入力されたことに応答して、前記第2の処理部は割り込み処理プログラムを構成する命令が前記第2の処理部の命令デコーダに与えられるように前記アクセス制御部を制御し、前記第2の処理部がその命令デコーダに与えられた割り込み処理プログラムに含まれるリセット処理である、ソフトウェア的なリセット処理を行うための命令を実行することにより、前記第2の処理部内の初期化がなされ、前記リセット信号が入力されてから、前記割り込み信号が入力されるまでの間、前記ソフトウェア的なリセット処理は、行わないものであるので、各々の処理部が共通のリセット信号に応答してプログラムを実行する場合に比べ、各々の処理部の実行すべきプログラムルーチンの格納されたどの記憶領域をアクセスするかを識別するためのハードウェア機構をプロセッサに搭載する必要がなくなり、マイクロプロセッサの設計が容易になる。
【0108】
また、この発明に係るマルチプロセッサシステムによると、第1のマイクロプロセッサにリセット信号が入力されたことに応答して、第1のマイクロプロセッサの内部の記憶素子がリセットされるとともに、前記第1の処理部はリセット処理プログラムを構成する命令が前記第1の処理部の命令デコーダに与えられるように前記第1のアクセス制御部を制御し、前記第1の処理部がその命令デコーダに与えられたリセット処理プログラムの命令を実行することにより前記第1のマイクロプロセッサの初期化がなされ、前記第2のマイクロプロセッサに前記リセット信号が入力されたことに応答して、第2のマイクロプロセッサの内部の記憶素子がリセットされる、ハードウェア的なリセット処理を行い、前記第2のマイクロプロセッサに割り込み信号が入力されたことに応答して、前記第2の処理部は割り込み処理プログラムを構成する命令が前記第2の処理部の命令デコーダに与えられるように前記第2のアクセス制御部を制御し、前記第2の処理部がその命令デコーダに与えれらた割り込み処理プログラムに含まれるリセット処理である、ソフトウェア的なリセット処理を行うための命令を実行することにより、前記第2のマイクロプロセッサの初期化がなされ、前記リセット信号が入力されてから、前記割り込み信号が入力されるまでの間、前記ソフトウェア的なリセット処理は、行わないものである。これによると、第2のマイクロプロセッサ側では、本来割り込み処理のために設けられた通常の機構を利用することにより初期化のための命令実行が可能になる。従って、第1および第2のマイクロプロセッサはともに共通のリセット信号に応答してプログラムを実行する場合に比べ、各プロセッサの実行すべきプログラムルーチンの格納されたどの記憶領域をアクセスするかを識別するためのハードウェア機構を各々のプロセッサに追加する必要がなく、マルチプロセッサシステムのシステム設計が容易になる。
【図面の簡単な説明】
【図1】 この発明の実施の形態1によるマイクロプロセッサを示す構成図である。
【図2】 図1のマイクロプロセッサに設定されているアドレス空間を説明するための説明図である。
【図3】 図1のマイクロプロセッサにおいて、マスターモードが設定されている場合のプロセッサから見た外部ROMが割り当てられた領域の詳細を説明するための説明図である。
【図4】 図1のマイクロプロセッサにおいて、マスターモードが設定されている場合のプロセッサから見た内蔵DRAMが割り当てられた領域の詳細を説明するための説明図である。
【図5】 図1のマイクロプロセッサにおいて、スレーブモードが設定されている場合のプロセッサから見た内蔵DRAMが割り当てられた領域の詳細を説明するための説明図である。
【図6】 図1のマイクロプロセッサにおいて、データバス端子D、アドレス端子Aに接続されている入出力バッファを示す構成図である。
【図7】 図1のマイクロプロセッサを用いたマルチプロセッサシステムを示すシステム構成図である。
【図8】 図7のマルチプロセッサシステムにおいて、マスタープロセッサMP及びスレーブプロセッサSPのそれぞれ初期化の動作を示すタイミングチャート図である。
【図9】 この発明の実施の形態2によるマルチプロセッサシステムを示す構成図である。
【図10】 図9に示されたマイクロプロセッサ200 に設定されているアドレス空間を説明するための説明図である。
【図11】 図9に示されたマイクロプロセッサ200 から見た外部ROMが割り当てられた領域の詳細を説明するための説明図である。
【図12】 図9に示されたマイクロプロセッサ200 から見たから見た内蔵DRAMが割り当てられた領域の詳細を説明するための説明図である。
【図13】 図9のマルチプロセッサシステムにおける初期化の動作を示すタイミングチャート図である。
【符号の説明】
11…中央処理装置(CPU)、13…外部バスI/F部、15…内蔵DRAM、18…バスコントローラ、50…リセット処理プログラム、52…外部割り込み処理プログラム、100 …システムバス、105 …外部ROM、110 …割り込みコントローラ、MP…マスタープロセッサ、SP…スレーブプロセッサ

Claims (17)

  1. 命令をデコードする命令デコーダを含み、この命令デコーダからのデコード結果に従って種々の処理を行うことにより当該命令を実行する処理部、および、
    この処理部に制御され、記憶領域を指定するアドレスを出力し、その記憶領域に格納された命令を前記処理部の命令デコーダに与えるアクセス制御部を備え、
    前記処理部は、外部から入力されるリセット信号に応答してプロセッサ内部の記憶素子がリセットされる、ハードウェア的なリセット処理を行うとともに、前記アクセス制御部がソフトウェア的なリセット処理を行うリセット処理プログラムを起動するための命令が格納されたリセットベクタエントリの先頭アドレスを出力しないように制御し
    割り込み信号が前記処理部に入力されたことに応答して、前記処理部は割り込み処理プログラムを構成する命令が前記処理部の命令デコーダに与えられるように前記アクセス制御部を制御し、前記処理部が前記命令デコーダに与えられた前記割り込み処理プログラムとして格納されているソフトウェア的なリセット処理を行うための命令を実行することにより、
    プロセッサの初期化がなされ、
    前記リセット信号が入力されてから、前記割り込み信号が入力されるまでの間、前記ソフトウェア的なリセット処理は、行わない、マイクロプロセッサ。
  2. 外部に対してアドレスを出力するアドレス端子を有し、
    リセット信号が入力された後、少なくとも割り込み信号が入力されるまでは前記アドレス端子をハイインピーダンス状態にする、請求項1に記載のマイクロプロセッサ。
  3. アドレス端子がハイインピーダンス状態となった場合、処理部が外部に対するアクセスをアクセス制御部に要求したことに応答して前記アクセス制御部は前記処理部へアクセス禁止を通知する通知信号を出力する、請求項2に記載のマイクロプロセッサ。
  4. 内蔵メモリ、および、
    この内蔵メモリと処理部とを接続する内部データバスを有し、
    前記内部メモリに記憶された割り込み処理プログラムが前記内部データバスを介して前記内蔵メモリから前記命令デコーダに与えられるようにアクセス制御部は前記内蔵メモリへアドレスを出力する、請求項1に記載のマイクロプロセッサ。
  5. 命令をデコードする命令デコーダを含み、この命令デコーダからのデコード結果に従って種々の処理を行うことにより当該命令を実行する処理部、
    この処理部に制御され、記憶領域を指定するアドレスを出力し、その記憶領域に格納された命令を前記処理部の命令デコーダに与えるアクセス制御部、および、
    第1のモード及び第2のモードのいずれかに設定されるためのモード設定手段を備え、
    外部から入力されるリセット信号に応答して、プロセッサ内部の記憶素子がリセットされる、ハードウェア的なリセット処理を行い、
    前記モード設定手段により第1のモードが設定された場合、
    前記リセット信号が前記処理部に入力されたことに応答して、前記処理部はリセット処理プログラムを構成する命令が前記処理部の命令デコーダに与えられるように前記アクセス制御部を制御し、前記処理部が前記命令デコーダに与えられたリセット処理プログラムの命令を実行することによりプロセッサの初期化がなされ、
    前記モード設定手段により第2のモードが設定された場合、
    前記リセット信号が前記処理部に入力されたことに応答して、前記処理部は前記アクセス制御部が前記リセット処理プログラムが格納されたアドレスを出力しないように制御すると共に、
    前記リセット信号が入力された後に割り込み信号が前記処理部に入力されたことに応答して、前記処理部は割り込み処理プログラムを構成する命令が前記命令デコーダに与えられるように前記アクセス制御部を制御し、前記処理部が前記命令デコーダに与えられた前記割り込み処理プログラムとして格納されているソフトウェア的なリセット処理を行うための命令を実行することにより、
    プロセッサの初期化がなされ、
    前記リセット信号が入力されてから、前記割り込み信号が入力されるまでの間、前記ソフトウェア的なリセット処理は、行わない、マイクロプロセッサ。
  6. 外部に対してアドレスを出力するアドレス端子を有し、
    モード設定手段により第2のモードが設定された場合、リセット信号が入力された後、少なくとも割り込み信号が入力されるまでは前記アドレス端子をハイインピーダンス状態にする、請求項5に記載のマイクロプロセッサ。
  7. アドレス端子がハイインピーダンス状態となった場合、処理部が外部に対するアクセスをアクセス制御部に要求したことに応答して前記アクセス制御部は前記処理部へアクセス禁止を通知する通知信号を出力する、請求項6に記載のマイクロプロセッサ。
  8. 内蔵メモリ、および、
    この内蔵メモリと処理部とを接続する内部データバスを有し、
    モード設定手段により第1のモードが設定された場合、外部の記憶手段に記憶されたリセット処理プログラムがフェッチされ命令デコーダに与えられるようにアクセス制御部は当該外部の記憶手段へアドレスを出力し、
    モード設定手段により第2のモードが設定された場合、前記内部メモリに記憶された割り込み処理プログラムが前記内部データバスを介して前記内蔵メモリから前記命令デコーダに与えられるように前記アクセス制御部は前記内蔵メモリへアドレスを出力する、請求項5に記載のマイクロプロセッサ。
  9. 各々は、命令をデコードする命令デコーダを含み、この命令デコーダからのデコード結果に従って種々の処理を行うことにより当該命令を実行する第1および第2の処理部、および、
    前記第1および第2の処理部に制御され、記憶領域を指定するアドレスを出力し、その記憶領域に格納された命令を前記第1および第2の処理部のそれぞれ命令デコーダのいずれかに与えるアクセス制御部を備え、
    外部から入力されるリセット信号に応答して、前記第1および第2の処理部を含むプロセッサ内部の記憶素子がリセットされる、ハードウェア的なリセット処理を行い、
    前記リセット信号が前記第1の処理部に入力されたことに応答して、前記第1の処理部はリセット処理プログラムを構成する命令が前記第1の処理部の命令デコーダに与えられるように前記アクセス制御部を制御し、前記第1の処理部がその命令デコードに与えられたリセット処理プログラムを実行することにより前記第1の処理部内の初期化がなされ、
    前記リセット信号が前記第1の処理部に入力されたことに応答して、前記アクセス制御部が前記リセット処理プログラムが格納されたアドレスを出力しないように制御されると共に、
    前記リセット信号が入力された後に前記第2の処理部に割り込み信号が入力されたことに応答して、前記第2の処理部は割り込み処理プログラムを構成する命令が前記第2の処理部の命令デコーダに与えられるように前記アクセス制御部を制御し、前記第2の処理部がその命令デコーダに与えられた前記割り込み処理プログラムとして格納されているソフトウェア的なリセット処理を行うための命令を実行することにより、前記第2の処理部内の初期化がなされ、
    前記リセット信号が入力されてから、前記割り込み信号が入力されるまでの間、前記ソフトウェア的なリセット処理は、行わない、マイクロプロセッサ。
  10. 第2の処理部に入力される割り込み信号は、第1の処理部がリセット処理プログラムを実行することにより生成されて当該第2の処理部に入力される、請求項9に記載のマイクロプロセッサ。
  11. 内蔵メモリ、および、
    この内蔵メモリと第1および第2の処理部の各々とを接続する内部データバスを有し、
    外部の記憶手段に記憶されたリセット処理プログラムがフェッチされ第1の処理部の命令デコーダに与えられるようにアクセス制御部はアドレスを当該外部の記憶手段へ出力し、
    前記内蔵メモリに記憶された割り込み処理プログラムが前記内部データバスを介して前記第2の処理部の命令デコーダに与えられるようにアクセス制御部はアドレスを前記内蔵メモリへ出力する、請求項9に記載のマイクロプロセッサ。
  12. 第1の処理部がリセット処理プログラムの命令を実行することにより、外部の記憶手段から割り込み処理プログラムを内蔵メモリに転送し記憶させる処理がなされ、
    この処理により前記内蔵メモリに記憶された割り込み処理プログラムが内部データバスを介して第2の処理部の命令デコーダに与えられるようにした、請求項11に記載のマイクロプロセッサ。
  13. 命令をデコードする命令デコーダを含み、この命令デコーダからのデコード結果に従って種々の処理を行うことにより当該命令を実行する第1の処理部と、
    この第1の処理部に制御され、記憶領域を指定するアドレスを出力し、その記憶領域に格納された命令を前記第1の処理部の命令デコーダに与える第1のアクセス制御部とを有する第1のマイクロプロセッサ、および
    命令をデコードする第2の命令デコーダを含み、この命令デコーダからのデコード結果に従って種々の処理を行うことにより当該命令を実行する第2の処理部と、この第2の処理部に制御され、記憶領域を指定するアドレスを出力し、その記憶領域に格納された命令を前記第2の処理部の命令デコーダに与える第2のアクセス制御部とを有する第2のマイクロプロセッサを備え、
    前記第1のマイクロプロセッサにリセット信号が入力されたことに応答して、第1のマイクロプロセッサの内部の記憶素子がリセットされるとともに、前記第1の処理部はリセット処理プログラムを構成する命令が前記第1の処理部の命令デコーダに与えられるように前記第1のアクセス制御部を制御し、前記第1の処理部がその命令デコーダに与えられたリセット処理プログラムの命令を実行することにより前記第1のマイクロプロセッサの初期化がなされ、
    前記第2のマイクロプロセッサに前記リセット信号が入力されたことに応答して、第2のマイクロプロセッサの内部の記憶素子がリセットされる、ハードウェア的なリセット処理を行うと共に前記第2のアクセス制御部が前記リセット処理プログラムが格納されたアドレスを出力しないよう制御を行い、前記第2のマイクロプロセッサに割り込み信号が入力されたことに応答して、前記第2の処理部は割り込み処理プログラムを構成する命令が前記第2の処理部の命令デコーダに与えられるように前記第2のアクセス制御部を制御し、前記第2の処理部がその命令デコーダに与えられ前記割り込み処理プログラムとして格納されているソフトウェア的なリセット処理を行うための命令を実行することにより、前記第2のマイクロプロセッサの初期化がなされ、
    前記リセット信号が入力されてから、前記割り込み信号が入力されるまでの間、前記ソフトウェア的なリセット処理は、行わない、マルチプロセッサシステム。
  14. 第1のマイクロプロセッサの第1の処理部がリセット処理プログラムを実行することにより割り込み信号が生成され、当該割り込み信号が第2のマイクロプロセッサに入力されることにより第2のマイクロプロセッサの初期化がなされる、請求項13に記載のマルチプロセッサシステム。
  15. リセット処理プログラムを格納する記憶手段を備え、
    第1のマイクロプロセッサは、前記記憶手段から前記リセット処理プログラムをフェッチして実行するように第1のアクセス制御部が前記記憶手段へアドレスを出力し、
    第2のマイクロプロセッサは、割り込み処理プログラムが格納する内蔵メモリを有し、前記割り込み処理プログラムが前記内蔵メモリから前記第2のマイクロプロセッサの命令デコーダへ与えられるように前記第2のアクセス制御部が前記内蔵メモリへアドレスを出力する、請求項13に記載のマルチプロセッサシステム。
  16. 第1のマイクロプロセッサがリセット処理プログラムを実行することにより、割り込み処理プログラムを記憶する記憶手段から第2のマイクロプロセッサの内蔵メモリに前記割り込み処理プログラムを転送して記憶させる処理がなされ、
    この処理により前記内蔵メモリに記憶された割り込み処理プログラムが内部データバスを介して第2の処理部の命令デコーダに与えられるようにした、請求項15に記載のマルチプロセッサシステム。
  17. 第2のマイクロプロセッサは、アドレスを出力するアドレス端子を有し、リセット信号が入力された後、少なくとも割り込み信号が入力されるまでは前記アドレス端子をハイインピーダンス状態にする、請求項13に記載のマルチプロセッサシステム。
JP02276297A 1996-10-31 1997-02-05 マイクロプロセッサ及びマルチプロセッサシステム Expired - Fee Related JP4226085B2 (ja)

Priority Applications (5)

Application Number Priority Date Filing Date Title
JP02276297A JP4226085B2 (ja) 1996-10-31 1997-02-05 マイクロプロセッサ及びマルチプロセッサシステム
KR1019970016937A KR100272937B1 (ko) 1996-10-31 1997-04-28 마이크로프로세서및멀티프로세서시스템
US08/867,853 US6401197B1 (en) 1996-10-31 1997-06-03 Microprocessor and multiprocessor system
CN97113851A CN1117315C (zh) 1996-10-31 1997-06-27 微处理机及多处理机系统
DE19729618A DE19729618C2 (de) 1996-10-31 1997-07-10 Mikroprozessor und Mehrprozessorsystem

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
JP28998496 1996-10-31
JP8-289984 1996-10-31
JP02276297A JP4226085B2 (ja) 1996-10-31 1997-02-05 マイクロプロセッサ及びマルチプロセッサシステム

Publications (2)

Publication Number Publication Date
JPH10187642A JPH10187642A (ja) 1998-07-21
JP4226085B2 true JP4226085B2 (ja) 2009-02-18

Family

ID=26360026

Family Applications (1)

Application Number Title Priority Date Filing Date
JP02276297A Expired - Fee Related JP4226085B2 (ja) 1996-10-31 1997-02-05 マイクロプロセッサ及びマルチプロセッサシステム

Country Status (5)

Country Link
US (1) US6401197B1 (ja)
JP (1) JP4226085B2 (ja)
KR (1) KR100272937B1 (ja)
CN (1) CN1117315C (ja)
DE (1) DE19729618C2 (ja)

Families Citing this family (20)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2000339177A (ja) * 1999-05-31 2000-12-08 Mitsubishi Electric Corp Eit処理機能を備えるマイクロプロセッサ及びeit処理方法
US6708231B1 (en) * 1999-08-12 2004-03-16 Mitsumi Electric Co., Ltd. Method and system for performing a peripheral firmware update
JP4144990B2 (ja) * 2000-01-14 2008-09-03 富士通株式会社 データ処理システム及び初期化方法
US6601122B1 (en) * 2000-04-17 2003-07-29 International Business Machines Corporation Exceptions and interrupts with dynamic priority and vector routing
US6789187B2 (en) * 2000-12-15 2004-09-07 Intel Corporation Processor reset and instruction fetches
JP2003196253A (ja) * 2001-12-27 2003-07-11 Denso Corp シングルチップマイクロコンピュータ
US6990537B2 (en) * 2002-08-03 2006-01-24 Ess Technology, Inc. System and method for controlling multi-component communications via a bus by causing components to enter and exit a high-impedance state
KR100453821B1 (ko) * 2002-10-09 2004-10-20 한국전자통신연구원 마이크로 컨트롤러를 위한 데이터 버스 시스템
KR100506366B1 (ko) * 2003-11-20 2005-08-10 현대모비스 주식회사 복합마이컴형 제품 및 슬레이브 리셋 방법
CN100336033C (zh) * 2005-02-25 2007-09-05 清华大学 单芯片多处理器结构模拟系统
JP4569368B2 (ja) * 2005-04-26 2010-10-27 日本電気株式会社 計算機システム、メモリ初期化方法、および計算機システムのプログラム
US7734903B2 (en) * 2005-12-08 2010-06-08 Electronics And Telecommunications Research Institute Multi-processor system and method for controlling reset and processor ID thereof
JP4605053B2 (ja) * 2006-03-06 2011-01-05 富士ゼロックス株式会社 データ処理装置
EP2430528A1 (en) * 2009-05-15 2012-03-21 Thomson Licensing System and method for sharing memory
US10394730B2 (en) * 2014-11-14 2019-08-27 Cavium, Llc Distributed interrupt scheme in a multi-processor system
JP6838234B2 (ja) * 2017-03-24 2021-03-03 日立Astemo株式会社 車両制御装置
CN112041258A (zh) 2018-03-22 2020-12-04 贝德福德系统有限责任公司 独立饮料流的冲调
USD982382S1 (en) 2020-03-20 2023-04-04 Bedford Systems Llc Nozzle for a beverage machine
CN111478708B (zh) * 2020-03-31 2023-08-11 Oppo广东移动通信有限公司 电子设备、芯片、系统总线、译码模块、译码器及方法
CN113608602A (zh) * 2021-06-20 2021-11-05 山东云海国创云计算装备产业创新中心有限公司 一种片上系统的复位方法和装置

Family Cites Families (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4034349A (en) 1976-01-29 1977-07-05 Sperry Rand Corporation Apparatus for processing interrupts in microprocessing systems
JPS61180352A (ja) 1984-12-30 1986-08-13 Fujitsu Ltd プログラムダウンロ−ド方式
JPS62267853A (ja) 1986-05-15 1987-11-20 Pfu Ltd サブプロセツサの初期起動方式
JPS6375869A (ja) 1986-09-18 1988-04-06 Fujitsu Ltd プロセツサの初期起動方式
GB2263565B (en) * 1992-01-23 1995-08-30 Intel Corp Microprocessor with apparatus for parallel execution of instructions
US5448716A (en) 1992-10-30 1995-09-05 International Business Machines Corporation Apparatus and method for booting a multiple processor system having a global/local memory architecture
US5564060A (en) * 1994-05-31 1996-10-08 Advanced Micro Devices Interrupt handling mechanism to prevent spurious interrupts in a symmetrical multiprocessing system
GB2290891B (en) * 1994-06-29 1999-02-17 Mitsubishi Electric Corp Multiprocessor system
US5642506A (en) * 1994-12-14 1997-06-24 International Business Machines Corporation Method and apparatus for initializing a multiprocessor system
US5724527A (en) * 1995-12-28 1998-03-03 Intel Corporation Fault-tolerant boot strap mechanism for a multiprocessor system

Also Published As

Publication number Publication date
KR100272937B1 (ko) 2000-11-15
JPH10187642A (ja) 1998-07-21
CN1181550A (zh) 1998-05-13
DE19729618A1 (de) 1998-05-07
CN1117315C (zh) 2003-08-06
DE19729618C2 (de) 2000-11-23
US6401197B1 (en) 2002-06-04
KR19980069757A (ko) 1998-10-26

Similar Documents

Publication Publication Date Title
JP4226085B2 (ja) マイクロプロセッサ及びマルチプロセッサシステム
US5212795A (en) Programmable DMA controller
US7590774B2 (en) Method and system for efficient context swapping
US6058474A (en) Method and apparatus for DMA boot loading a microprocessor without an internal ROM
US4729094A (en) Method and apparatus for coordinating execution of an instruction by a coprocessor
JP3136257B2 (ja) コンピュータメモリインタフェース装置
US20080270707A1 (en) Data processor
AU681604B2 (en) High speed programmable logic controller
JP2002140289A (ja) 調整可能ワード・サイズ転送とアドレス配列/増加を備えたマイクロコントローラdmaオペレーション
JPH05173837A (ja) オペランド内の情報のスタティックおよびダイナミック・マスキングを兼ね備えるデータ処理システム
US4731736A (en) Method and apparatus for coordinating execution of an instruction by a selected coprocessor
US20020138156A1 (en) System of connecting multiple processors in cascade
US4926318A (en) Micro processor capable of being connected with a coprocessor
WO1996008769A1 (en) Computer instruction prefetch system
US5680632A (en) Method for providing an extensible register in the first and second data processing systems
JPH07120338B2 (ja) 共同プロセッサによる命令の実行をデータプロセッサが調整する方法および該データプロセッサ
EP0729604B1 (en) Register status protection during read-modify-write operation
JP2568017B2 (ja) マイクロプロセッサ及びそれを使用したデータ処理システム
US4758978A (en) Method and apparatus for selectively evaluating an effective address for a coprocessor
JP3323341B2 (ja) エミュレーション用プロセッサおよびそれを搭載したエミュレータ
JP3839068B2 (ja) 半導体集積回路装置
US20020004877A1 (en) Method and system for updating user memory in emulator systems
JP3077807B2 (ja) マイクロコンピュータシステム
JPH05165641A (ja) シングルチップマイクロコンピュータ
JP4322284B2 (ja) シングルチップマイクロコンピュータ

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20040119

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20050106

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20050524

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20050722

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20060207

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20060327

A911 Transfer of reconsideration by examiner before appeal (zenchi)

Free format text: JAPANESE INTERMEDIATE CODE: A911

Effective date: 20060418

A912 Removal of reconsideration by examiner before appeal (zenchi)

Free format text: JAPANESE INTERMEDIATE CODE: A912

Effective date: 20060519

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20081023

RD04 Notification of resignation of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7424

Effective date: 20081023

A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20081126

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

Free format text: PAYMENT UNTIL: 20111205

Year of fee payment: 3

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: 20111205

Year of fee payment: 3

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: 20111205

Year of fee payment: 3

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: 20111205

Year of fee payment: 3

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

Free format text: PAYMENT UNTIL: 20121205

Year of fee payment: 4

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

Free format text: PAYMENT UNTIL: 20121205

Year of fee payment: 4

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

Free format text: PAYMENT UNTIL: 20131205

Year of fee payment: 5

LAPS Cancellation because of no payment of annual fees