(57)【要約】  集積回路マイクロプロセッサ装置は、中央処理装置（ＣＰＵ）と、複数の外部接続（４）を有する汎用入出力モジュール（２）とを備える。外部接続は、汎用入出力モジュールによって当該装置にそれぞれの入力を供給するように構成される。当該装置は、さらに、外部接続の各々に対応する記憶場所（６）をそれぞれ備える。該記憶場所は、中央処理装置が低電力状態であるか状態変化に反応できない場合に、一つ以上の外部接続の状態変化を記録するように構成される。  【選択図】  図１
2018520433.tif 000002
【特許請求の範囲】
【請求項１】
中央処理装置（ＣＰＵ）と、複数の外部接続を有する汎用入出力モジュールと、を備える集積回路マイクロプロセッサ装置であって、
前記複数の外部接続は、汎用入出力モジュールによって前記集積回路マイクロプロセッサ装置にそれぞれの入力を提供するように構成され、前記集積回路マイクロプロセッサ装置は、前記複数の外部接続の各々に対応して、一つ以上の前記外部接続に状態変化が発生したが前記中央処理装置が低電力状態であるか前記状態変化に反応できない場合に前記状態変化を記録するように構成された個々の記憶場所をさらに備える
ことを特徴とする集積回路マイクロプロセッサ装置。
装置。
【請求項２】
前記状態変化は、前記ＣＰＵを覚醒させるように構成される
ことを特徴とする、請求項１に記載の集積回路マイクロプロセッサ装置。
【請求項３】
一つ以上の前記外部接続の状態変化は前記ＣＰＵを覚醒させない
ことを特徴とする、請求項１に記載の集積回路マイクロプロセッサ装置。
【請求項４】
前記外部接続のいずれが、状態が変化した場合に、前記ＣＰＵを覚醒させられるかを決定するように構成された有効化レジスタを備える
ことを特徴とする、請求項３に記載の集積回路マイクロプロセッサ装置。
【請求項５】
前記有効化レジスタは、前記記憶場所に対応付けられた複数のフラッグを有する
ことを特徴とする、請求項４に記載の集積回路マイクロプロセッサ装置。
【請求項６】
前記ＣＰＵは、高電力状態に移ると前記記憶場所を読み取るように構成される
ことを特徴とする、請求項１乃至請求項５のいずれかに記載の集積回路マイクロプロセッサ装置。
【請求項７】
前記ＣＰＵは、前記状態変化を示す値を読み取った場合、前記記憶場所の一つをクリアするように構成される
ことを特徴とする、請求項６に記載の集積回路マイクロプロセッサ装置。
【請求項８】
前記汎用入出力モジュールは、前記記憶場所のうちの別の一つが、別の外部接続の前記状態変化を示す値を含む場合、所定の事象を生成するように構成される
ことを特徴とする、請求項７に記載の集積回路マイクロプロセッサ装置。
【請求項９】
前記記憶場所は、前記外部接続の各々に対応する一つ以上のビットを有するレジスタによって提供される
ことを特徴とする、請求項１乃至請求項８のいずれかに記載の集積回路マイクロプロセッサ装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は集積回路の入出力、特に、マイクロプロセッサまたはシステムオンチップ（ＳｏＣ）用の汎用入出力ピンに関する。
【背景技術】
【０００２】
最近のマイクロプロセッサおよびＳｏＣはますます複雑化しているので、種々の機能に対応付けられた入出力を供給する需要も増大している。しかし、これらは装置の外部ケースから突出するピンを必要とするので、供給可能な数は、多少相反する、増え続ける小型化への要求がもたらす物理的サイズの制約によって制限される。
【０００３】
この葛藤に対処する一つの方法は、動作中のタスクごとにソフトウェアで機能を動的に割当て可能な多数の汎用入出力（ＧＰＩＯ）ピンを提供することである。こうすれば、一部のアプリケーションまたは一部の顧客によってはあまり、あるいは、全く使用されない数多くの専用ピンを用いる代わりに、ピンを効率的に使用することが可能となる。
【発明の概要】
【発明が解決しようとする課題】
【０００４】
ＧＰＩＯピンがオフチップ構成要素からの入力を受け取るように構成される場合、このような入力は、ＣＰＵを低電力の休止状態から覚醒させて当該入力を処理するよう促すタイプのものである場合が多い。これらは、例えば、無線キーボード、マウス等のコンピュータ入力装置から入力される。しかし、本出願人は、複数のこのような入力がある場合に発生し得る潜在的問題を認識するに至った。すなわち、ＣＰＵが休止状態から起動するのに掛かる有限時間中に、ＣＰＵを覚醒させるように促した入力はもはや存在しなくなるのでＣＰＵはどのように応答すべきかを決定できない可能性があるという問題である。
【課題を解決するための手段】
【０００５】
本発明は、この問題に対処することを目的として、中央処理装置（ＣＰＵ）と、複数の外部接続を有する汎用入出力モジュールと、を備える集積回路マイクロプロセッサ装置を提供するものであって、前記複数の外部接続は、前記汎用入出力モジュールによって前記集積回路マイクロプロセッサ装置にそれぞれの入力を供給するように構成され、前記集積回路マイクロプロセッサ装置は、前記複数の外部接続の各々に対応して、一つ以上の前記外部接続に状態変化が発生したが前記中央処理装置が低電力状態であるか前記状態変化に反応できない場合に前記状態変化を記録するように構成された個々の記憶場所をさらに備える。
【０００６】
したがって、本発明によれば、前記ＣＰＵが休眠中であるか、例えば前記ＣＰＵが休眠しようとしているかまだ休眠状態から覚醒している最中であるなどの理由で反応できない場合に、例えばローからハイになるかその逆のことが起こるなど外部接続に状態変化があった場合、この状態変化が記憶場所に記録されることが、当業者であれば理解できるであろう。その結果、前記ＣＰＵは、覚醒した後、当該入力がもはや存在していなくても、どの入力を受け取ったかを決定できる。また、例えば、「休眠」信号が出された後に、前記ＣＰＵの遮断処理を中止するには遅すぎるタイミングで当該入力を受け取るときなど、前記ＣＰＵの処理ができない他の時点で発生する入力を捉えることもできる。
【０００７】
一連の実施形態において、前記状態変化は前記中央処理装置（ＣＰＵ）を覚醒させる、すなわち、前記ＣＰＵを低電力状態から高電力状態に移す、ように構成される。これは全ての外部接続に該当し得る。しかし、これは必須ではなく、一連の実施形態において、一つ以上の外部接続の状態変化は前記ＣＰＵを覚醒させない。このやり方は、ある種の入力は前記ＣＰＵを即座に覚醒させないように構成できるので、電力節約の面で有利であるが、前記ＣＰＵが覚醒してから読み取れるように、対応する記憶場所に前記状態変化が記録されるので好都合である。一連の実施形態において、前記集積回路マイクロプロセッサ装置は、前記外部接続のうち、状態変化すると前記ＣＰＵを覚醒できるのはどれかを決定するように構成された有効化レジスタを備える。このレジスタは、例えば、前記記憶場所に対応付けられた複数のフラッグから成っていてもよい。
【０００８】
前記ＣＰＵは、覚醒したら（前記高電力状態に移ったら）前記記憶場所を読み取るように構成されているのが好都合である。一連の実施形態において、前記ＣＰＵは、前記状態変化を示す値を読み取った場合、前記記憶場所のうちの一つをクリアするように構成される。別の同様の一連の実施形態において、前記汎用入出力モジュールは、前記記憶場所のうちの別の一つが、別の外部接続の前記状態変化を示す値を含む場合、所定の事象を生成するように構成される。こうすれば、前記外部接続上の入力信号が競合状態に起因して失われることはないということが確実になり得る。同時に受け取る複数の入力同士、あるいは、少なくとも前記ＣＰＵが覚醒する前の全ての入力を区別できることは、重要な利点である。
【０００９】
一連の実施形態において、前記記憶場所は、前記外部接続の各々に対応する一つ以上のビット（一つが好ましい）を有するレジスタによって提供される。
【００１０】
次に、ほんの一例として、添付の図面を参照しながら本発明の実施形態を説明する。
【図面の簡単な説明】
【００１１】
【図１】本発明に係るＧＰＩＯモジュールの概略図である。
【図２】ＧＰＩＯモジュールの動作を示すタイミング図である。
【図３】本発明の別の実施形態の概略図である。
【発明を実施するための形態】
【００１２】
図１は集積回路マイクロプロセッサの一部として含まれるＧＰＩＯモジュール２を示す。ＧＰＩＯモジュール２は、ＰＩＮ０からＰＩＮ３１の番号を付したピン４の形式で三十二個の外部接続をサポートしているが、図１にはそれらのうち最初と最後だけが示してある。各ピン４にはＧＰＩＯモジュール内のチャネル６が対応付けられ、当該チャネルは、ＰＩＮ[ｎ].ＯＵＴ、ＰＩＮ[ｎ].ＩＮおよびＰＩＮ[ｎ].ＣＮＦのラベルが付いた三つのレジスタを備える。
【００１３】
ＰＩＮ０に対応するチャネル６が図１の左側部分に詳細に示してある。これによれば、ピン４はスイッチ８に接続されて、このスイッチは、集積回路マイクロプロセッサの他の部分にアナログ入力を供給するためにピン４がアナログ入力線１０に選択的に接続できるようにしている。上記の代わりに、スイッチ８は、以下に詳細に説明するように、デジタル入出力装置のためにピン４を接続部１２に接続してもよい。このスイッチは、集積回路マイクロプロセッサがアナログ入力を受け取ることを期待するとハイになる「アナログ有効化」制御線１４によって制御される。
【００１４】
デジタル入出力装置接続部１２は、二つのスイッチ１６、１８に接続されている。両スイッチのうち最初のスイッチ１６は、ピン４が出力バッファ２０に接続できるようにする。スイッチ１６は「方向上書き」線２２によって制御されている。出力バッファ２０への入力は別のスイッチ２４によって制御されており、このスイッチによって、バッファ２０が、集積回路マイクロプロセッサの特定のモジュールから通常の出力を供給するための出力線２６か、ＰＩＮ[０].ＯＵＴレジスタ２８のいずれかに接続できるようになる。このレジスタ２８には、出力をタスクに変換し入力を事象に変換する汎用入出力タスク・事象（ＧＰＩＯＴＥ）モジュールとして知られる別のモジュール（図示せず）からのＳＥＴタスクおよびＣＬＲタスクによって決定される値が書き込まれる。スイッチ２４は、「出力上書き」線３０によって制御されるので、この線によって、ピン４がＰＩＮ[０].ＯＵＴレジスタ２８の値になるよう強制できる。
【００１５】
デジタル入力側において、スイッチ１８は、「入力上書き」線３４の制御の下、ピン４を入力バッファ３２に選択的に接続する。こうすれば、ＧＰＩＯピンの制御を引き継ぐ周辺機器が、この線を出力として使用し入力バッファ３２を切断できるようになり、入力バッファは使用されないときでも一般的にエネルギーを消費するので有益である。入力バッファ３２は、入力線、ＣＰＵが使用してピン４の状態を見出すＰＩＮ[０].ＩＮレジスタ３８、および入力がハイになったのを感知するとＰＩＮ０.ＤＥＴＥＣＴ信号４２を生成する感知モジュール４０に接続されている。感知モジュール４０は、反対に、入力がローになったときにＰＩＮ０.ＤＥＴＥＣＴ信号４２を生成するように構成することもできる。
【００１６】
その他のピンＰＩＮ１〜ＰＩＮ３１に対しても、上記と同様の構成が提供される。これらは詳細には示していないが、対応するＰＩＮｎ.ＤＥＴＥＣＴ信号が各々に存在する。中間の信号を省き、ＰＩＮ１.ＤＥＴＥＣＴ４４およびＰＩＮ３１.ＤＥＴＥＣＴ信号４６が示してある。
【００１７】
ＰＩＮｎ.ＤＥＴＥＣＴ信号４２、４４、４６は、ＰＩＮｎ.ＤＥＴＥＣＴ線４２、４４、４６等の各々に対応する三十二ビットを有するラッチレジスタ４８にコピーされる。ＯＲ機能５０はラッチされたＤＥＴＥＣＴ（ＬＤＥＴＥＣＴ）信号５１を出力するが、該信号は、ラッチレジスタ４８のビットのいずれかが記録されるとハイになる。これはＤＥＴＥＣＴ出力スイッチ５２の一方側に供給される。ＤＥＴＥＣＴ出力スイッチ５２の他方側は、ＰＩＮｎ.ＤＥＴＥＣＴ線から直接に従来の共有ＤＥＴＥＣＴ信号５５を供給する別のＯＲ機能５４に接続されている。
【００１８】
使用時に、ＧＰＩＯモジュール２は、従来の汎用入出力モジュールのように機能する。したがって、ピン４は、アナログ有効化制御線１４をハイに設定してアナログ入力を受け取るのに使用できる。該ピンは、アナログ有効化制御線１４をローに設定し、入力上書き線３５をローに設定しスイッチ１８を開けて、方向上書き線２２をハイに設定しスイッチ１６を閉じることによって、デジタル出力ピンとしても使用できる。ほとんどの場合スイッチ１６、１８のいずれかを開けてもう一方を閉じるのが望ましいが、両方を閉じる場合もあり得る。
【００１９】
ピン４をデジタル出力として使用する場合、通常、出力線２６から出力を供給する。しかし、出力線２６をハイに駆動してピン４をＳＥＴするか、出力線２６をローに駆動してピン４をＣＬＲする必要がある場合、出力上書き線３０をハイにすれば出力バッファ２０がＰＩＮ[０].ＯＵＴレジスタ２８に接続され、そこに記憶された値が何であれその値になる。
【００２０】
ピン４は、さらに、アナログ有効化線１４をローに設定し、入力上書き線３５をハイに設定しスイッチ１８を閉じて、方向上書き線２２をローに設定しスイッチ１６を開けることによって、デジタル入力ピンとして使用できる。
【００２１】
ピン４は、例えば、外部周辺機器のボタンに接続するのに使用してもよい。電力を節約するため、ユーザがボタンの一つを押すまで中央処理装置（ＣＰＵ）（図示せず）を低電力の休眠状態にしておくのが望ましい。しかし、例えばＰＩＮ０に接続されたボタンを押すと、割り込みがＣＰＵへ送られてＣＰＵを覚醒させ、次に説明するように、入力への応答が行われる。
【００２２】
ピン４の電圧レベルがハイになると、入力バッファ３２を通って入力線３６および感知モジュール４０に渡される。感知モジュール４０はローからハイへの遷移を検出するとその出力４２がハイとなって、従来のＯＲ機能５４をトリガするとともに、ラッチレジスタ４８の相応するビットに１としてコピーされる（通常は全てのビットがゼロである）。その結果、ラッチＯＲ機能５０がトリガされる。こうして、スイッチ５２がいずれの位置にあっても、ＤＥＴＥＣＴ信号出力５６がハイとなって、電力モジュール（図示せず）に割り込みが発生し、その結果ＣＰＵが覚醒される。しかし、実際には、ＣＰＵが覚醒して十分に機能するまでには時間が掛かることが理解されるであろう。その期間にボタンが解放されてピン４がローになり、対応する入力線３６もローになると、ＣＰＵは、覚醒するようトリガしたのは何かを入力線３６（および他のピンに対応する入力線３６）から決定することはできなくなる。
【００２３】
しかし、図１に示される本発明の実施形態によれば、覚醒するようトリガした入力は、ＣＰＵがラッチレジスタ４８から簡単に読み取ることができる。なぜなら、このレジスタのビットはＣＰＵによってしか明示的にクリアできないからである。こうして、入力がたとえ瞬間的であっても、失われることなく捉えられることになる。ＣＰＵが休眠手順を中断するには遅すぎるタイミングで休止状態に入りつつあるときに入力が受け取られた場合も、同様の利点が得られる。
【００２４】
スイッチ５２によって、ＤＥＴＥＣＴ出力５６は、特定の応用例の要求に基づいて、従来の共有ＤＥＴＥＣＴ信号５５かＬＤＥＴＥＣＴ信号５１のうちいずれかとして選択される。しかし、いずれのモードでも、ラッチレジスタ４８を読み取ることによってどの入力が受け取られたかを決定できる。
【００２５】
ＣＰＵはラッチレジスタ４８の所定ビットの１を読み取ったら、当該ビットはクリアされる。ＬＤＥＴＥＣＴ信号５１の特長の一つは、ラッチレジスタ４８で１に設定された他のビットが存在する場合、新しい事象をトリガするのに十分な長さの過渡的な負パルスがＬＤＥＴＥＣＴ信号５１に生成されても、ＬＤＥＴＥＣＴ信号５１はハイのままであることである。こうすれば、ＣＰＵは、休眠中または覚醒開始時に受け取る複数の入力を区別できる。全ビットが成功裏にクリアされたら、ＬＤＥＴＥＣＴ信号５５は再びローになる。
【００２６】
図２は、個々のＰＩＮｎ.ＤＥＴＥＣＴ信号４２、４４、４６が潜在的に同時にハイになった場合における、従来の共有ＤＥＴＥＣＴ信号５５とＬＤＥＴＥＣＴ信号５１との動作との違いを示している。
【００２７】
まず、時間６０において、（例えばボタンが押されて）ＰＩＮ０がハイになるので、ＰＩＮ０.ＤＥＴＥＣＴ線４２もハイになる。その結果、共有ＤＥＴＥＣＴ信号５５がハイになるとともに、ラッチレジスタ４８内のＰＩＮ０に対応するビット（ＬＡＴＣＨ.０）もハイになる。その結果、ＬＤＥＴＥＣＴ信号５１もハイになる。
【００２８】
時間６２において、ＰＩＮ０に接続されているボタンが解放されるので、ＰＩＮ０.ＤＥＴＥＣＴ線がローになり、他のＰＩＮｎ.ＤＥＴＥＣＴ線のうちハイであるのはないので、共有ＤＥＴＥＣＴ信号５５も再びローになる。しかし、ＬＡＴＣＨ.０信号はハイのままなので、ＬＤＥＴＥＣＴ信号５１もハイのままである。実際には、ＣＰＵが覚醒してラッチレジスタ４８からＬＡＴＣＨ.０信号を読み取りそれをクリアする時間６４まで、これらはハイのままである。このことから、ＣＰＵが覚醒する前に共有ＤＥＴＥＣＴ信号５５は既にローになっているので、ラッチレジスタ４８がなかったら、ＣＰＵはどのピンによって覚醒されたのかを決定できないことが理解されるであろう。
【００２９】
その後の時間６６において、ＰＩＮ１.ＤＥＴＥＣＴ信号４４がハイになるので、ＤＥＴＥＣＴ信号５５、ラッチレジスタ４８のＬＡＴＣＨ.１ビット、およびＬＤＥＴＥＣＴ信号５１もハイになる。時間６８でＣＰＵがラッチレジスタ４８を読み取ると、負のパルスがＬＤＥＴＥＣＴ信号５１で生成されるが、この時点ではＰＩＮ１.ＤＥＴＥＣＴ線４４がまだハイなので、該信号はその後もハイのままである。
【００３０】
時間７０において、ＰＩＮ３１に接続されているボタンも押されるので、ＰＩＮ３１.ＤＥＴＥＣＴ線４６がハイになる。ラッチレジスタ４８のＬＡＴＣＨ.３１もハイになるが、共有ＤＥＴＥＣＴ信号５５は既にハイなのでその状態を維持する。時間７２において、その時点までにＰＩＮ１.ＤＥＴＥＣＴ線４４は再びローになっているので、ＣＰＵは再びラッチレジスタ４８を読み取りＬＡＴＣＨ.１ビットをクリアする。しかし、ＬＤＥＴＥＣＴ信号５１は、負のパルスを有するものの、ＬＡＴＣＨ.３１ビットがまだハイなので、ハイのままである。最後に、時間７４において、ＰＩＮ３１.ＤＥＴＥＣＴ信号４６がローになっているので、ＣＰＵがラッチレジスタ４８のＬＡＴＣＨ.３１ビットを読み取ると、ＬＡＴＣＨ.３１ビットはクリアされ、ＬＤＥＴＥＣＴ信号５１も再びローになる。
【００３１】
図３は、図１の実施形態に類似した第二実施形態を示しており、同じ特徴には同じ符号が使用されている。しかし、図３の実施形態は、ラッチレジスタ４８と、ＬＤＥＴＥＣＴ信号５１を生成するＯＲゲート５０との間に追加の「ラッチ有効化」レジスタ７６を備える。ラッチ有効化レジスタ７６もピン４ごとに１ビットを有しており、使用時には、ＬＡＴＣＨビットのうちどれが（したがって、実際にはピン遷移のうちどれが）ＯＲゲート５０に導かれることになるかを決定する。ＯＲゲート５０に導かれるＬＡＴＣＨビットだけが、ＬＤＥＴＥＣＴ信号５１をトリガしてＣＰＵを覚醒させる。こうすれば、ＧＰＩＯモジュール２は一部の、または、全てのピン４の遷移を記録できるが、ＣＰＵを覚醒できるのは、そのうちのいくつかもしくはそのうちの一つだけか、あるいは一つもない。こうすれば、遷移を記録するのは重要だが遷移が発生した時点で当該システムを覚醒させるのは重要でない、もっと言えば、望ましくないという状況下において、これは有用であり得る。このような設定においては、ＣＰＵが他の何らかの理由で覚醒するとき当該の遷移を処理して応答するのがより望ましい場合もある。
【００３２】
ラッチ有効化レジスタ７６は、もちろん、どのピン４がＣＰＵを覚醒させられるかを変更するよう構成可能であってもよい。
【００３３】
このように、上述の実施形態によれば、入力は、ＣＰＵが完全に覚醒してそれらを処理できるようになるまで、如何なる情報も失うことなく記録されることが理解されるであろう。しかし、特定の実施形態は代表的なものに過ぎず、本発明の範囲内で多くの変形例および変異形が可能であることも理解されるであろう。
【図１】
2018520433.tif 000003
【図２】
2018520433.tif 000004
【図３】
2018520433.tif 000005
【国際調査報告】
2018520433.tif 000006
2018520433.tif 000007