JP2005346673A - 割り込みコントローラ及びシステムlsi - Google Patents

割り込みコントローラ及びシステムlsi Download PDF

Info

Publication number
JP2005346673A
JP2005346673A JP2004169158A JP2004169158A JP2005346673A JP 2005346673 A JP2005346673 A JP 2005346673A JP 2004169158 A JP2004169158 A JP 2004169158A JP 2004169158 A JP2004169158 A JP 2004169158A JP 2005346673 A JP2005346673 A JP 2005346673A
Authority
JP
Japan
Prior art keywords
processor
interrupt
processors
system lsi
controller
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.)
Pending
Application number
JP2004169158A
Other languages
English (en)
Inventor
Toshiaki Minami
利秋 南
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.)
Canon Inc
Original Assignee
Canon Inc
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 Canon Inc filed Critical Canon Inc
Priority to JP2004169158A priority Critical patent/JP2005346673A/ja
Publication of JP2005346673A publication Critical patent/JP2005346673A/ja
Pending legal-status Critical Current

Links

Images

Landscapes

  • Bus Control (AREA)

Abstract

【課題】 割り込み要求に対する応答性を向上し、システム全体の性能を高めることが可能な割り込みコントローラ及びシステムLSIを提供する。
【解決手段】 複数のデバイスと、入力ポートをそれぞれ有する複数のプロセッサとに接続され、前記複数のデバイスの少なくとも1つから割り込み要求を受けて、前記複数のプロセッサのいずれかの入力ポートに対し、該割り込み要求を通知する割り込みコントローラにおいて、前記複数のプロセッサのそれぞれの動作状態を保持するプロセッサ動作状態レジスタ501〜503と、上記割り込み要求を通知するプロセッサを該プロセッサ動作状態レジスタ501に保持された動作状態に応じて選択するプロセッサ選択回路610とを備える。
【選択図】 図2

Description

本発明は、1つのシステムLSI内に複数のプロセッサを内蔵する場合の割り込みコントローラ及びそのシステムLSIに関する。
近年における半導体の集積度の向上は、1つのLSI(Large Scale Integrated Circuit:大規模集積回路)内にシステムの大半の回路を集積することが可能なシステムLSIを実現した。さらに最近では製品開発期間の短縮へのさらなる要求とプロセッサ技術の進歩とにより、1つのシステムLSI内部に複数のプロセッサを内蔵し、従来、開発設計に時間のかかる専用ハードウェアで処理していた部分をソフトウェアによる処理に置き換えることにより、システムLSIの設計期間を短縮するようになってきた(例えば特許文献1参照)。
図4は、そのような従来のシステムLSIの全体構成を示す図である。
同図において、100〜102はシステムLSIに内蔵されるプロセッサである。
300,301はI/Oインターフェイスであり、たとえばUART(Universal Asynchronous Receiver Transmitter)やUSB(Universal Serial Bus)コントローラ、又はPCIバスブリッジコントローラ等である。400はそれぞれ特定のデータ処理専用に設計されたハードウェアエンジンであり、例えばMPEGコーデックやレンダリングエンジンである。200はプロセッサ100,102、I/Oインターフェース300,301、ハードウェアエンジン400を接続するシステムバスである。500は割り込みコントローラであり、I/Oインターフェース300,301からの割り込み要求310,311、ハードウェアエンジン400からの割り込み要求410を入力し、予め決められた設定に従って、プロセッサ100〜102に対しプロセッサ割り込み入力信号510,512のいずれかの信号をアサートすることにより、前記割り込み要求310,311,410をプロセッサ100〜102に伝達する機能を持つ。尚、プロセッサ、I/Oインターフェイス及びハードウェアエンジンの各個数は、複数あればよく、図示されるものに限定されない。
例えば、割り込みコントローラ500には、I/Oインターフェース300,301からの割り込み要求は全てプロセッサ100に伝達する、ハードウェアエンジン400からの割り込み要求は全てプロセッサ101に伝達する、というように設計時又はシステム初期化時に静的に設定される。
尚、従来のシステムLSIは、外部又は内部の記憶装置(メモリ)との間でデータ信号の通信をするメモリコントローラや割り込み要求を生じないその他のペリフェラルを有するが、本発明には直接関係しないため説明は省略する。
特開平7−93258号公報
上述のように、従来、システムLSI内部で生じるさまざまな割り込み要求については、そのそれぞれの割り込み要求について複数あるプロセッサのうちのどのプロセッサで処理するかはシステム設計時に予め決められていた。
したがって、1つのプロセッサに対し多重に割り込みが生じ得る一方で、同時に負荷が少なくアイドル状態にあるプロセッサが存在していた。このような状態がなるべく生じないように割り込み処理を各プロセッサに最適に割り当てることがシステム設計段階で重要になるが、動的に起こる各種割り込みを設計時に全て予測し最適化することは困難である。
本発明は、このような点に鑑みてなされたものであって、割り込み要求に対する応答性を向上し、システム全体の性能を高めることが可能な割り込みコントローラ及びシステムLSIを提供することを目的とする。
上記目的を達成するため、本発明の割り込みコントローラは、複数のデバイスと、入力ポートをそれぞれ有する複数のプロセッサとに接続され、前記複数のデバイスの少なくとも1つから割り込み要求を受けて、前記複数のプロセッサのいずれかの入力ポートに対し、該割り込み要求を通知する割り込みコントローラにおいて、前記複数のプロセッサのそれぞれの動作状態を保持する保持手段と、前記割り込み要求を通知するプロセッサを前記保持手段に保持された動作状態に応じて選択する選択手段とを備えることを特徴とする。
また、本発明のシステムLSIは、入力ポートをそれぞれ有する複数のプロセッサと、前記複数のプロセッサのそれぞれの動作状態を保持する保持手段と、外部デバイスからの割り込み要求を通知するプロセッサを前記保持手段に保持された動作状態に応じて選択する選択手段とを有する割り込みコントローラとを備えることを特徴とする。
本発明によれば、複数のプロセッサのそれぞれの動作状態が保持され、割り込み要求を通知するプロセッサが該保持された動作状態に応じて選択されるので、各プロセッサに対し割り込み処理を最適に分配することができ、割り込み要求に対する応答性を向上し、システム全体の性能を高めることが可能となる。
以下、図1〜図3を参照して本発明の実施の形態を説明する。
図1は、本発明の実施の形態に係る割り込みコントローラを含むシステムLSIの全体構成を示す図である。尚、システムLSIとは、多数の機能を1個のチップ上に集積した超多機能LSIであり、ポータブルオーディオやデジタルカメラなど、特定用途の電子機器に組み込まれている。
図4の従来のシステムLSIの全体構成との比較を容易にするため、図4と同一の構成要素については番号に符号「a」を付加している。図1において、図4と異なるのは割り込みコントローラ500a内にプロセッサ100a〜102aの動作状態を示すプロセッサ動作状態レジスタ501〜503を備える点である。該プロセッサ動作状態レジスタ501〜503は各々がプロセッサ100a〜102aの動作状態を保持し、システムバス200aを介して全てのプロセッサ100a〜102aからデータの書き込みやデータの読み出しを実行することができる。尚、プロセッサ、プロセッサ動作状態レジスタ、I/Oインターフェイス及びハードウェアエンジンの各個数は、複数あればよく、図示されるものに限定されない。
その他のシステムLSIの構成は図4の従来のシステムLSIの構成と同様なので、その説明は省略する。
図2は本発明の実施の形態に係る割り込みコントローラの構成を詳細に示す図である。
同図において、システムバス200aからのレジスタアクセスはレジスタインターフェース605を介して各プロセッサ動作状態レジスタ501〜503に伝達される。プロセッサ動作状態レジスタ500〜503は、それぞれプロセッサ100a〜102aの動作状態に応じた、「1(動作中)」、「0(待機中)」のいずれかの値が保持されている。
割り込み要求310a,311a,410aは、割り込み選択回路620〜622及びプロセッサ選択回路610に入力される。プロセッサ選択回路610には、前記プロセッサ動作状態レジスタ500〜503及び割り込み要求310a,311a,410aが入力され、後述の規則に従って割り込み選択信号611〜613が出力される。
割り込み選択回路620〜622には、それぞれ割り込み要求310a,311a,410aが入力され、割り込み選択回路620はプロセッサ割り込み信号510aを出力し、割り込み選択回路621はプロセッサ割り込み信号511aを出力し、割り込み選択回路622はプロセッサ割り込み信号512aを出力する。
割り込み選択回路620は、プロセッサ選択回路610からの割り込み選択信号611に基づいて、割り込み要求310a,311a,410aのいずれかをプロセッサ割り込み信号510aとして出力する。割り込み選択回路621は、割り込み選択回路620と同様の方法で、割り込み選択信号612に基づいて、割り込み要求310a,311a,410aのいずれかをプロセッサ割り込み信号511aとして出力し、割り込み選択回路622は、割り込み選択信号613に基づいて、割り込み要求310a,311a,410aのいずれかをプロセッサ割り込み信号512aとして出力する。
割り込み選択回路620〜622で選択された割り込み要求(即ち、割り込み要求310a,311a,410a)は、割り込みコントローラ500a内に設けられた割り込み要因レジスタ(不図示)をレジスタインターフェース605を介して読み出すことにより知ることができる。この割り込み要因レジスタ(不図示)は、各々のプロセッサ毎に備えられている。
次に、図1のシステムLSIの動作例を説明する。
なお、システムLSIの構成によっては特定のデバイスからの割り込み要求は特定のプロセッサで処理しなければならない場合もある。その場合は当該プロセッサの動作状態によらず、該割り込み要求はその特定のプロセッサにのみ伝達される。ここでは、それ以外の場合、すなわち、ある割り込み要求に対し、複数のプロセッサのいずれもが対処可能な場合に注目し、その場合のみについて説明する。
図3は、図1のシステムLSIの動作の一例を示すタイミングチャートであり、プロセッサ100a〜102aの動作状態、割り込み要求310a,311a,410aの状態、および割り込みコントローラ500aから各プロセッサへの出力であるプロセッサ割り込み信号510a,511a,512aが同じ時間軸上に示されている。
図3において、割り込み要求310a,311a,410aはプロセッサ100a〜102aのいずれによっても処理可能である。実際には、I/Oインターフェースからの割り込み要求に対する処理はOSによってハンドリングされるOS依存部分である。しかしドライバ層の実装方法によっては複数のプロセッサのうちいずれによっても割り込み処理の一部ないし全部を扱うことができる。この部分については公知の技術を用いるため、ここでは詳細には言及しない。
まず、初期状態(時刻T1)においては、プロセッサ100a〜102aの全てが待機状態にある。このとき、割り込みコントローラ500a内のプロセッサ動作状態レジスタ501〜503の内容は全て「0」である。
時刻T2において、プロセッサ100aにタスクが割り当てられ、動作状態に移る。このとき、プロセッサ100aは割り込みコントローラ500a内のプロセッサ動作状態レジスタ501の値を「1」に書き換えてからタスク処理に移る。
時刻T3において、割り込み要求311aが生じる。このとき、割り込みコントローラ500a内のプロセッサ選択回路610は、待機状態にあるプロセッサのうちプロセッサ101aを選択すると共に割り込み選択回路621が割り込み要求311aをプロセッサ101aに伝達するような割り込み選択信号612を割り込み選択回路621に出力する。これにより、プロセッサ割り込み信号511aがアサートされる。この割り込みに応答し、時刻T4においてプロセッサ101aが動作状態に移行する。このときもプロセッサ100aは割り込みコントローラ500a内のプロセッサ動作状態レジスタ502の値を「1」に書き換えてからタスク処理に移る。
次に、時刻T5において割り込み要求310aが生じる。このときプロセッサ100a,101aはまだ動作中であることから、割り込みコントローラ500a内のプロセッサ選択回路610は待機状態にあるプロセッサ102aを選択すると共に割り込み選択回路622が割り込み要求310aをプロセッサ102aに伝達するような割り込み選択信号613を割り込み選択回路622に出力する。これにより、プロセッサ割り込み信号512aがアサートされる。この割り込みに応答し、時刻T6においてプロセッサプロセッサ102aが動作状態に移行する。このときもプロセッサプロセッサ102aは割り込みコントローラ500a内のプロセッサ動作状態レジスタ503の値を「1」に書き換えてからタスク処理に移る。
それぞれのプロセッサは割り当てられたタスクが終了し、待機状態に戻るときには割り込みコントローラ500a内のプロセッサ動作状態レジスタ501〜503の値を「0」に書き換える。
以上説明したように、本実施の形態によれば、割り込みコントローラ内のプロセッサ動作状態レジスタに複数のプロセッサの動作状態を保持させ、割り込み要求が発生したときに、プロセッサ動作状態レジスタに保持された複数のプロセッサの動作状態に応じて、動作状態にないプロセッサが選択され、割り込み応答するため、各プロセッサに対し割り込み処理を最適に分配することができ、割り込み応答性を向上させその結果としてシステム全体の性能を高めることが可能となる。
本実施の形態においては、割り込みコントローラの内部に、複数のプロセッサの動作状態を保持するためのプロセッサ動作状態レジスタを備える場合について説明したが、この構成に限定するものではなく、外部に備えられるレジスタから、又は各プロセッサから直接入力される状態を参照するように構成してもよい。この場合、各プロセッサから直接入力される状態情報としては、例えば、プロセッサが割り込み待ち状態でスリープモードにあること等を示す、プロセッサ状態出力信号をそのまま用いることができる。
また、本実施の形態において、割り込みコントローラは、複数のプロセッサのそれぞれに対応して、複数のプロセッサ動作状態レジスタを備えているが、複数のプロセッサの動作状態を個別に保持することができれば、1つのプロセッサ動作状態レジスタを備えるようにしてもよい。
また、本実施の形態においては、プロセッサの動作状態として「1(動作中)」又は「0(待機中)」の2つの状態のみをとる場合を説明したが、もちろんこれに限定するものではなく、さらに「2(割り込み処理中)」、「3(OSタスク実行中)」等の任意の数の状態を区別するように構成しても良い。この場合には、例えば、待機中のプロセッサが1つもない場合には、動作状態が「1(動作中)」であるプロセッサから選択し、「2(割り込み処理中)」及び「3(OSタスク実行中)」のプロセッサからは選択しないように構成することができる。
本実施の形態においては、複数のプロセッサ、複数のI/Oインターフェース及び複数の専用ハードウェアエンジンが全て1つのシステムバスに接続されている場合を説明したが、この構成に限定するものではなく、これらがクロスバースイッチを介して接続されていてもよく、又は階層化(マルチレイヤー)バスによって接続されていてもよい。
本発明の実施の形態に係る割り込みコントローラを含むシステムLSIの全体構成を示す図である。 本発明の実施の形態に係る割り込みコントローラの構成を詳細に示す図である。 図1のシステムLSIの動作の一例を示すタイミングチャートである。 従来のシステムLSIの全体構成を示す図である。
符号の説明
100a〜102a プロセッサ
200a システムバス
300a,301a I/Oインターフェイス
310a,311a,410a 割り込み要求
400a ハードウェアエンジン
500a 割り込みコントローラ
501〜503 プロセッサ動作状態レジスタ
510a,511a,512a プロセッサ割り込み信号
610 プロセッサ選択回路
620〜622 割り込み選択回路

Claims (4)

  1. 複数のデバイスと、入力ポートをそれぞれ有する複数のプロセッサとに接続され、前記複数のデバイスの少なくとも1つから割り込み要求を受けて、前記複数のプロセッサのいずれかの入力ポートに対し、該割り込み要求を通知する割り込みコントローラにおいて、
    前記複数のプロセッサのそれぞれの動作状態を保持する保持手段と、
    前記割り込み要求を通知するプロセッサを前記保持手段に保持された動作状態に応じて選択する選択手段とを備えることを特徴とする割り込みコントローラ。
  2. 前記複数のプロセッサの動作状態のうちの1つが、前記複数のプロセッサの待機状態であることを特徴とする請求項1記載の割り込みコントローラ。
  3. 入力ポートをそれぞれ有する複数のプロセッサと、
    前記複数のプロセッサのそれぞれの動作状態を保持する保持手段と、外部デバイスからの割り込み要求を通知するプロセッサを前記保持手段に保持された動作状態に応じて選択する選択手段とを有する割り込みコントローラと
    を備えることを特徴とするシステムLSI。
  4. 前記複数のプロセッサの動作状態のうちの1つが、前記複数のプロセッサの待機状態であることを特徴とする請求項3記載のシステムLSI。
JP2004169158A 2004-06-07 2004-06-07 割り込みコントローラ及びシステムlsi Pending JP2005346673A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2004169158A JP2005346673A (ja) 2004-06-07 2004-06-07 割り込みコントローラ及びシステムlsi

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2004169158A JP2005346673A (ja) 2004-06-07 2004-06-07 割り込みコントローラ及びシステムlsi

Publications (1)

Publication Number Publication Date
JP2005346673A true JP2005346673A (ja) 2005-12-15

Family

ID=35498952

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2004169158A Pending JP2005346673A (ja) 2004-06-07 2004-06-07 割り込みコントローラ及びシステムlsi

Country Status (1)

Country Link
JP (1) JP2005346673A (ja)

Similar Documents

Publication Publication Date Title
JP7313381B2 (ja) ハードウェアアクセラレーションのためのハードウェアリソースの埋込みスケジューリング
US7590774B2 (en) Method and system for efficient context swapping
US20070094435A1 (en) Computer docking system and method
US8364862B2 (en) Delegating a poll operation to another device
JP5131188B2 (ja) データ処理装置
WO2008082455A1 (en) Reconfiguring a secure system
JP2008226236A (ja) 構成可能なマイクロプロセッサ
US7765250B2 (en) Data processor with internal memory structure for processing stream data
JP7470685B2 (ja) 集積回路中の算出ユニットをプログラムおよび制御すること
US7376777B2 (en) Performing an N-bit write access to an M×N-bit-only peripheral
US20080022052A1 (en) Bus Coupled Multiprocessor
US20140075176A1 (en) Information processing apparatus
JP2006244382A (ja) マイクロプロセッサ
JP2000322259A (ja) データ処理装置
KR20180091364A (ko) 디버그 호스트로서 동작하는 cpu를 포함하는 시스템 온 칩 및 이의 동작 방법
EP1652079A2 (en) Microcontroller with an interrupt structure having programmable priority levels with each priority level associated with a different register set
JP5322567B2 (ja) データ処理システム及び半導体集積回路
EP1387258A2 (en) Processor-processor synchronization
JP2005346673A (ja) 割り込みコントローラ及びシステムlsi
JP2003347930A (ja) プログラマブル論理回路及びコンピュータシステム並びにキャッシュ方法
US6604163B1 (en) Interconnection of digital signal processor with program memory and external devices using a shared bus interface
JP2007317232A (ja) データ処理装置
JPH0581040A (ja) コンピユータシステム
JP4758538B2 (ja) データ処理装置および制御方法
JPH10240607A (ja) メモリシステム

Legal Events

Date Code Title Description
RD03 Notification of appointment of power of attorney

Effective date: 20060419

Free format text: JAPANESE INTERMEDIATE CODE: A7423

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20070607

RD05 Notification of revocation of power of attorney

Effective date: 20070626

Free format text: JAPANESE INTERMEDIATE CODE: A7425

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20080904

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20080909

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20090120