JP4305400B2 - マイクロコンピュータ - Google Patents

マイクロコンピュータ Download PDF

Info

Publication number
JP4305400B2
JP4305400B2 JP2005053050A JP2005053050A JP4305400B2 JP 4305400 B2 JP4305400 B2 JP 4305400B2 JP 2005053050 A JP2005053050 A JP 2005053050A JP 2005053050 A JP2005053050 A JP 2005053050A JP 4305400 B2 JP4305400 B2 JP 4305400B2
Authority
JP
Japan
Prior art keywords
interrupt
instruction
execution
program
cpu
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Fee Related
Application number
JP2005053050A
Other languages
English (en)
Other versions
JP2006236215A (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.)
Denso Corp
Original Assignee
Denso 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 Denso Corp filed Critical Denso Corp
Priority to JP2005053050A priority Critical patent/JP4305400B2/ja
Priority to US11/312,830 priority patent/US7725694B2/en
Publication of JP2006236215A publication Critical patent/JP2006236215A/ja
Application granted granted Critical
Publication of JP4305400B2 publication Critical patent/JP4305400B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Description

本発明は、制御プログラムが記憶されているメモリと、このメモリよりフェッチした命令をデコードして実行するCPUとで構成されるマイクロコンピュータに関する。
マイクロコンピュータにおいては、割込み処理を利用して定時的(タイムコンスタント)な処理を行なうアプリケーションがある。例えば、通信処理などでは通信速度の定時制を確保するため専用の通信制御ブロックを実装している。ここで、本発明の発明者らは、通信制御ブロックの変わりに、タイマ割込み処理とソフト処理により通信を実現することを想定した。このようにすれば、通信制御ブロックを実装する必要が無く、マイコンを低コストで構成することができる。
しかし、この場合、上述した定時処理をどのように実現するかが問題となる。即ち、タイマ割込みを1サイクルのずれも無く実行する必要がある。1サイクルでもずれると、通信速度誤差として影響がでることになる。ところが、CPUが実行する様々な命令には実行時間が異なるものがあるため、実行時間がより長い命令を実行している途中で割込み要求が発生すると、割り込み処理の開始が保留される場合がある。
即ち、図(a)に示すように、例えば全ての命令が1サイクルで実行されており、プログラムカウンタの値(命令フェッチアドレス)が「1」ずつ増加している場合に割込み要求が発生すると、その割込みは保留されずに直ちに割込み処理がその先頭アドレス「200」より開始される。これに対して、図(b)に示すように、実行時間が2サイクルの命令が実行されている途中に割込み要求が発生すると、その割込みは1サイクル分保留されるため割込み処理の開始タイミングが遅れてしまう。
例えば、特許文献1には、通常処理(ユーザプログラム実行処理,I/Oリフレッシュ処理)をサイクリックに実行すると共に予め定められた周期で割込みトリガを発生させ、その割込みトリガの発生タイミングでユーザプログラム実行処理を中断して、周辺サービス処理を規定の分量だけ実行するようにしたプログラマブルコントローラが開示されている。
特開2001−265412号公報
しかしながら、特許文献1に開示されている技術では、割込み処理が保留されている場合には周辺サービス処理の実行開始タイミングがずれることは避けられない。即ち、特許文献1では、実行開始タイミングが1サイクルずれることを防止するというような厳密な時間管理を行うことは想定していないと思われる。
本発明は上記事情に鑑みてなされたものであり、その目的は、タイマの割込み処理を1サイクルもずれることなく行なうことが可能なマイクロコンピュータを提供することにある。
請求項1記載のマイクロコンピュータによれば、CPUによって実行される割込み処理プログラムを、その先頭から実質的な割込み処理を開始する命令の直前までに、1つ以上のnop命令を配置するように記述しておく。そして、CPUの実行部は、特殊命令を実行した場合に、その実行時間が一般命令の実行時間を上回る時間に応じて割込み保留信号を外部に出力する。すると、割込み制御部は、割込み要求が発生した時点でCPUの実行部より割込み保留信号が出力されていると、その信号の出力期間に応じて、割込み処理プログラムに対する命令のフェッチアドレス値を増加させる。
即ち、発生した割込み要求の処理が保留されなかった場合、割込み要求が発生した時点から割込み処理が開始されるまでの時間は、割込み処理プログラムの先頭からnop命令が配置されている数に応じて決定される。そして、CPUが特殊命令を実行している場合に割込み要求が発生してその処理が保留された場合は、割込み制御部が保留された期間に応じて命令フェッチアドレスを増加させるので、その増加分だけnop命令の実行がパスされる。
その結果、割込み要求の発生時点から割込み処理の開始時点までの時間は、当該処理が保留されなかった場合と保留された場合とで同一になる。従って、割り込み処理の定時性がサイクルベースで確保されるようになる。
請求項2記載のマイクロコンピュータによれば、割込み制御部は、割込み保留信号の出力期間をカウンタによってカウントし、そのカウント値に応じて、フェッチアドレスの増分値を設定する。従って、割り込み処理の定時性を容易に確保することができる。
(第1実施例)
以下、本発明の第1実施例について図1乃至図を参照して説明する。図1は、本発明のマイクロコンピュータ(マイコン)1の構成を、要旨にかかる部分のみ概略的に示す機能ブロック図である。マイコン1は、CPU2,プログラムメモリ3,データメモリ4,周辺回路5や割込みコントローラ11などによって構成されている。
CPU2は、その内部に、プログラムカウンタ(PC)6,プログラムメモリ3よりフェッチした命令をデコードする命令デコード部(IDEC)7,デコードされた命令を実行する実行部(EXE)8,レジスタファイル9,割込み制御部10等を備えている。実行部8は、命令の実行において分岐条件が成立した場合に、CPU2内部の他の機能部が参照可能な分岐条件成立信号をアクティブにすると共に、分岐先のアドレス(分岐アドレス)を出力する。また、実行部8は、実行している命令の長さが2サイクル以上となる特殊命令の場合は、同様に他の機能部が参照可能な割込み保留信号をアクティブ(ハイ)にするようになっている。
割込み制御部10は、マルチプレクサ12,加算器13,マルチプレクサ14,加算器15,マルチプレクサ16,割込み保留カウンタ17で構成される。割込みコントローラ11は、CPU2の外部の周辺回路5が発生する割込み要求を受付けてCPU2に割込み信号を出力する。そして、CPU2側より割込み許可信号が与えられると、割込み要因に応じた割込みベクタ(アドレス)を発生させてCPU2に出力する。即ち、ここでの周辺回路5とは、例えばタイマ等の割込み要求の発生元を示している。マルチプレクサ12は、通常はその割込みベクタを選択して出力しており、分岐条件成立信号がアクティブになった場合は実行部8より与えられる分岐アドレスを選択して出力する。
加算器13は、プログラムカウンタ6を「1」ずつインクリメントするために使用されている。即ち、CPU2が実行する一般命令のサイズは1ワード=1バイトであるものとする。マルチプレクサ14は、通常はプログラムカウンタ6の出力アドレスを選択して出力し、分岐条件が成立した場合(ここでは割込み要求の発生を含む)マルチプレクサ12を介して出力される分岐アドレス(割込みベクタを含む)を選択して出力する。
加算器15は、マルチプレクサ14を介して出力されるアドレスに、割込み保留カウンタ17によってカウントされるカウント値を加算してマルチプレクサ16に出力する。マルチプレクサ16は、通常はマルチプレクサ14側を選択しており、割込み保留信号がアクティブになると加算器15側を選択し、プログラムメモリ3に対する命令フェッチアドレスとして出力する。また、割込み保留カウンタ17は、実行部8によって出力される割込み保留信号がアクティブになっている期間を、CPU2の命令実行基本サイクルを決定するクロック信号によって(但し、その位相を90度以内で遅延させたもの)カウントするようになっている。
プログラムメモリ3には、制御プログラムとしての初期処理プログラム(INITIAL)18,メインプログラム(MAIN)19,割込み処理プログラム(INT)20などが記憶されている。ここで、割込み処理プログラム20は、例えば図2(b)に示すように記述されている。即ち、割込み処理プログラム20の先頭アドレスが「200」であるとすると、割込み処理が実質的に開始される(スタック処理の開始)アドレスは「204」となっている。そして、アドレス「200」〜「203」には、nop(No Operation)命令が配置されている。
次に、本実施例の作用について図2も参照して説明する。図2(a)は、CPU2が制御プログラムを実行する流れを概略的に示すフローチャートである。CPU2は、リセットが解除されて起動すると先ず初期処理プログラム18を実行し、それから、メインプログラム19を実行する。そして、メインプログラム19の実行中に割込み要求が発生すると、割込み処理プログラム20に分岐して当該プログラム20を実行し、その実行が終了するとメインプログラム19にリターンする。
図3(a)は、図(a)相当図である。メインプログラム19の大部分は、実行時間が1サイクルである一般命令によって記述されている。そして、一般命令の実行中に割込み要求が発生し、CPU2が割込み処理を許可すると、割込みコントローラ11は割込みベクタ「200」を出力する。そのベクタアドレスはマルチプレクサ12を介してマルチプレクサ14に与えられる。マルチプレクサ14はマルチプレクサ12側を選択し、マルチプレクサ16はマルチプレクサ14側を選択する。従って、マルチプレクサ16は、フェッチアドレスとして「200」を出力する。
この場合、割込み要求は保留されることなく、直ちにメインプログラム19から割込み処理プログラム20に分岐して割込み処理が実行される。すると、割込み要求の発生から、割込み処理が実質的に開始される(アドレス「204」)までの期間は4サイクルとなる。その4サイクルの間はnop命令が実行される。尚、CPU2に対して出力される割込み信号はクロック同期化されており、割込み要求はCPU2によりサイクルの開始時点で認識されるようになっている。
一方、図3(b)は、図(b)相当図である。メインプログラム19の一部には、実行時間が2サイクルとなる特殊命令も記述されている。例えば、実行時間が1サイクルの命令が1ワード命令であるとすると、実行時間が2サイクルの特殊命令は2ワード命令である。そして、本実施例では、実行部8において実行時間が2サイクルの特殊命令が実行された場合、実行部8は、割込み保留信号を1サイクルに相当する期間だけアクティブにする。すると、割込み保留カウンタ17は、そのアクティブ期間に応じた「1」をカウントして加算器15に出力する。
この特殊命令の実行中に割込み要求が発生すると、割込みコントローラ11は図3(a)のケースと同様に割込みベクタ「200」を出力し、マルチプレクサ16は加算器15側を選択しているので、マルチプレクサ16は、フェッチアドレスとして「200+1=201」を出力する。そして、特殊命令が2サイクルに亘って実行されたため割込み処理は1サイクル保留されることになり、メインプログラム19から割込み処理プログラム20に分岐する。すると、この場合も、割込み要求の発生から割込み処理が実質的に開始されるまでの期間は4サイクルとなり、図3(a)のケースと同様になる。
以上のように本実施例によれば、CPU2によって実行される割込み処理プログラム20を、その先頭から実質的な割込み処理を開始する命令の直前までに、複数のnop命令を配置するように記述しておき、CPU2の実行部8は、特殊命令を実行した場合に、その実行時間が一般命令の実行時間を上回る時間に応じて割込み保留信号を外部に出力する。割込み制御部10は、割込み要求が発生した時点で実行部8より割込み保留信号が出力されていると、その信号の出力期間に応じて、割込み処理プログラム20に対する命令のフェッチアドレス値を増加させるようにした。従って、割り込み処理の定時性が確保されるようになり、1サイクルのずれもなく実行することが可能となり、通信制御ブロックを使わずともタイマ割込みとソフト処理によって通信機能を実現することができるためマイクロコンピュータ1のサイズを小型化することができる。
また、割込み制御部10は、割込み保留信号の出力期間を保留カウンタ17によってカウントし、そのカウント値に応じてフェッチアドレスの増分値を設定するので、割り込み処理の定時性を容易に確保することができる。
(第2実施例)
乃至図は本発明の第2実施例を示すものであり、第1実施例と同一部分には同一符号を付して説明を省略し、以下異なる部分についてのみ説明する。第2実施例のマイコン1Aでは、使用される特殊命令は実行時間が2サイクルのものに限定されている場合に対応した構成であり、第1実施例のマイコン1より割り込み保留カウンタ17が取り除かれている。そして、加算器15の一方には、割込みベクタのアドレス増分「1」が固定的に与えられている。
また、割込み処理プログラム19Aは、図に示すように、先頭アドレス「200」にのみnop命令が配置されており、次のアドレス「201」より実質的な割込み処理が開始されるように記述されている。
次に、第2実施例の作用について図も参照して説明する。第2実施例では、図(a)に示すように、一般命令の実行中に割込み要求が発生しその要求処理がCPU2Aにより許可されると、割込みコントローラ11は第1実施例と同様に割込みベクタ「200」を出力し、マルチプレクサ16は、フェッチアドレスとして「200」を出力する。この場合、割込み要求は保留されず、直ちにメインプログラム19から割込み処理プログラム20Aに分岐して割込み処理が実行される。すると、割込み要求の発生から、割込み処理が実質的に開始される(アドレス「201」)までの期間は1サイクルとなる。
一方、図(b)に示すように、実行部8において実行時間が2サイクルの特殊命令が実行された場合、実行部8は、割込み保留信号を1サイクルに相当する期間だけアクティブにする。すると、マルチプレクサ16は加算器15側を選択するので、マルチプレクサ16は、フェッチアドレスとして「200+1=201」を出力する。そして、割込み処理は1サイクル保留されて、メインプログラム19から割込み処理プログラム20Aに分岐する。すると、この場合も割込み要求の発生から割込み処理が実質的に開始されるまでの期間は1サイクルとなり、図(a)のケースと同様になる。
以上のように第2実施例によれば、一般命令と特殊命令との実行時間差が固定的(この場合、1サイクル)である場合、第1実施例で使用した保留カウンタ17は不要となるので、マイコン1Aの構成をより簡単にすることができる。
本発明は上記し又は図面に記載した実施例にのみ限定されるものではなく、以下のような変形が可能である。
PUが実行する命令のサイズは、1バイトに限ることなく2バイトや4バイト、或いはそれ以上であっても良い。例えば、命令サイズが4バイトの場合は、加算器13に与えるアドレスの増分を「4」とする。また、割込み保留カウンタ17のカウント増分も、4バイトの一般命令の実行時間が1サイクルであれば「4」に設定すれば良い。
本発明の第1実施例であり、マイクロコンピュータの構成を要旨にかかる部分のみ概略的に示す機能ブロック図 (a)はCPUが制御プログラムを実行する流れを概略的に示すフローチャート、(b)は割込み処理プログラムの記述例を示す図 (a)は一般命令の実行中に割込み要求が発生した場合、(b)は実行時間が2サイクルの特殊命令の実行中に割込み要求が発生した場合を示すタイミングチャー 本発明の第2実施例を示す図1相当図 図2(b)相当図 図3相当図 従来技術を示す図3相当図
符号の説明
図面中、1,1Aはマイクロコンピュータ、2,2AはCPU、3,3Aはプログラムメモリ、6はプログラムカウンタ、7は命令デコード部、8は実行部、10,10Aは割込み制御部、17は割込み保留カウンタを示す。

Claims (2)

  1. 制御プログラムが記憶されているメモリと、
    このメモリよりフェッチした命令をデコードするデコード部と、このデコード部によってデコードされた命令を実行する実行部と、割込みを制御する割込み制御部とを備えるCPUとで構成され、
    前記制御プログラムの一部である割込み処理プログラムは、その先頭から実質的な割込み処理を開始する命令の直前までに1つ以上のnop命令を配置するように記述されており、
    前記CPUの実行部は、実行時間が1サイクルである一般命令に対して実行時間が2サイクルである特殊命令を実行した場合に、後者の実行時間が前者を上回る時間に応じて割込み保留信号を外部に出力するように構成され、
    前記割込み制御部は、割込み要求が発生した時点で前記割込み保留信号が出力されていると、当該信号の出力期間に応じて、前記割込み処理プログラムに対する命令のフェッチアドレス値を増加させるように構成されていることを特徴とするマイクロコンピュータ。
  2. 前記割込み制御部は、前記割込み保留信号の出力期間をカウントするカウンタを備え、前記カウンタのカウント値に応じて、前記フェッチアドレスの増分値を設定するように構成されていることを特徴とする請求項1記載のマイクロコンピュータ。

JP2005053050A 2004-12-21 2005-02-28 マイクロコンピュータ Expired - Fee Related JP4305400B2 (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2005053050A JP4305400B2 (ja) 2005-02-28 2005-02-28 マイクロコンピュータ
US11/312,830 US7725694B2 (en) 2004-12-21 2005-12-21 Processor, microcomputer and method for controlling program of microcomputer

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2005053050A JP4305400B2 (ja) 2005-02-28 2005-02-28 マイクロコンピュータ

Publications (2)

Publication Number Publication Date
JP2006236215A JP2006236215A (ja) 2006-09-07
JP4305400B2 true JP4305400B2 (ja) 2009-07-29

Family

ID=37043765

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2005053050A Expired - Fee Related JP4305400B2 (ja) 2004-12-21 2005-02-28 マイクロコンピュータ

Country Status (1)

Country Link
JP (1) JP4305400B2 (ja)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP5370115B2 (ja) 2009-12-14 2013-12-18 株式会社デンソー 車載装置

Also Published As

Publication number Publication date
JP2006236215A (ja) 2006-09-07

Similar Documents

Publication Publication Date Title
JP4770664B2 (ja) マイクロプロセッサおよびそれを用いたマイクロコンピュータ
JP2008047145A (ja) デュアルスレッドプロセッサ
JP2007249323A (ja) マイクロコンピュータ
EP2996034B1 (en) Execution flow protection in microcontrollers
KR20070107814A (ko) 의존성 명령을 패킷으로 그룹핑하여 실행하는 프로세서 및방법
JP3202497B2 (ja) 情報処理装置
JP4893427B2 (ja) マイクロコンピュータシステム
US6968410B2 (en) Multi-threaded processing of system management interrupts
JP4305400B2 (ja) マイクロコンピュータ
JP2008262437A (ja) プロセッサシステムおよび例外処理方法
US6985986B2 (en) Variable cycle interrupt disabling
JP5644380B2 (ja) 情報処理装置
JP7276755B2 (ja) 処理速度整合回路およびマイクロプロセッサ
US20080126753A1 (en) Embedded system and operating method thereof
JP3755168B2 (ja) プログラマブルコントローラ
US20050216704A1 (en) Device and method for managing a microprocessor instruction set
JP7069870B2 (ja) 情報処理装置
JP2814800B2 (ja) マイクロコンピュータ
JP4702004B2 (ja) マイクロコンピュータ
US20100153688A1 (en) Apparatus and method for data process
JP2014119953A (ja) コンピュータ及び割り込みサービスルーチンの実行方法
JP2004062319A (ja) データ処理装置
JP2009199424A (ja) マイクロコンピュータ
JP2689894B2 (ja) マイクロプログラム制御型情報処理装置
JP2001125610A (ja) 制御装置,およびこの制御装置が実行するためのプログラムを生成するプログラミングツール

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20070308

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20080919

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20081007

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20081113

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

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

R150 Certificate of patent or registration of utility model

Ref document number: 4305400

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

Free format text: JAPANESE INTERMEDIATE CODE: R150

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

Free format text: PAYMENT UNTIL: 20120515

Year of fee payment: 3

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

Free format text: PAYMENT UNTIL: 20120515

Year of fee payment: 3

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

Free format text: PAYMENT UNTIL: 20130515

Year of fee payment: 4

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

Free format text: PAYMENT UNTIL: 20140515

Year of fee payment: 5

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

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

LAPS Cancellation because of no payment of annual fees