JP2009163531A - 割り込み管理機構およびマイクロコンピュータ - Google Patents
割り込み管理機構およびマイクロコンピュータ Download PDFInfo
- Publication number
- JP2009163531A JP2009163531A JP2008000990A JP2008000990A JP2009163531A JP 2009163531 A JP2009163531 A JP 2009163531A JP 2008000990 A JP2008000990 A JP 2008000990A JP 2008000990 A JP2008000990 A JP 2008000990A JP 2009163531 A JP2009163531 A JP 2009163531A
- Authority
- JP
- Japan
- Prior art keywords
- register
- interrupt
- transmission
- cpu
- spi
- 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.)
- Withdrawn
Links
Images
Landscapes
- Bus Control (AREA)
- Information Transfer Systems (AREA)
Abstract
【課題】 CPUの割り込み処理の実施回数を低減してCPUの処理効率を向上させる。
【解決手段】 CPU(20)およびメモリ(60)間のデータ転送がシリアルインタフェース(50)を介して実施されるマイクロコンピュータ(10)においてシリアルインタフェース(50)の割り込み要求を管理する割り込み管理機構(40)は、状態遷移回路(42f、42g)と、割り込み要求発行回路(42)とを備える。状態遷移回路(42f、42g)は、シリアルインタフェース(50)が割り込み要求を発行するのに伴って、その割り込み要求の種類および発行回数に応じて状態が遷移する。割り込み要求発行回路(42)は、状態遷移回路(42f、42g)が所定の状態に遷移するのに伴って、CPU(20)に割り込み要求を発行する。
【選択図】 図1
【解決手段】 CPU(20)およびメモリ(60)間のデータ転送がシリアルインタフェース(50)を介して実施されるマイクロコンピュータ(10)においてシリアルインタフェース(50)の割り込み要求を管理する割り込み管理機構(40)は、状態遷移回路(42f、42g)と、割り込み要求発行回路(42)とを備える。状態遷移回路(42f、42g)は、シリアルインタフェース(50)が割り込み要求を発行するのに伴って、その割り込み要求の種類および発行回数に応じて状態が遷移する。割り込み要求発行回路(42)は、状態遷移回路(42f、42g)が所定の状態に遷移するのに伴って、CPU(20)に割り込み要求を発行する。
【選択図】 図1
Description
本発明は、割り込み管理機構およびマイクロコンピュータに関する。
シリアルインタフェース対応型メモリ(1ビットのデータ入出力部を有するメモリ)を搭載したマイクロコンピュータにおいては、メモリに対してライトアクセス/リードアクセスを実施するための回路としてシリアル通信回路(シリアルインタフェース)が搭載されており、シリアル通信回路を介してCPU(Central Processing Unit)およびメモリ間のデータ転送が実施される。シリアル通信回路は、メモリに対するアクセスの際に、「コマンド送信動作」、「アドレス送信動作」、「データ送信動作/データ受信動作」の順序で動作状態を遷移させるシーケンス動作を実施し、動作状態を遷移させる度にCPUに対して割り込み要求を発行する。従って、シリアルインタフェース対応型メモリを搭載したマイクロコンピュータにおいては、CPUおよびメモリ間のデータ転送の際に、CPUにより割り込み処理が何度も実行されることになる。
なお、本発明に関連する先行技術文献としては、例えば、特許文献1、2が挙げられる。特許文献1には、マイクロコンピュータに関して、マイクロコンピュータ間のデータ転送を高速に且つ効率よく実施するための技術が開示されている。また、特許文献2には、DMA(Direct Memory Access)コントローラに関して、転送情報の設定回数を低減し、DMA転送を効率よく実施するための技術が開示されている。
特開平4−169955号公報
特開2003−256356号公報
シリアルインタフェース対応型メモリを搭載したマイクロコンピュータでは、CPUおよびメモリ間のデータ転送の際に、シリアル通信回路により割り込み要求が発行される度にCPUが割り込み処理を実施する必要があるため、CPUが本来実行すべき処理に専念できずにCPUの処理効率が低下するという問題があった。
本発明は、このような問題点に鑑みてなされたものであり、CPUおよびメモリ間のデータ転送がシリアルインタフェースを介して実施されるマイクロコンピュータにおいてCPUの割り込み処理の実施回数を低減してCPUの処理効率を向上させることを目的とする。
割り込み管理機構は、CPUおよびメモリ間のデータ転送がシリアルインタフェースを介して実施されるマイクロコンピュータにおいてシリアルインタフェースの割り込み要求を管理する割り込み管理機構であって、状態遷移回路と、割り込み要求発行回路とを備える。状態遷移回路は、シリアルインタフェースが割り込み要求を発行するのに伴って、その割り込み要求の種類および発行回数に応じて状態が遷移する。割り込み要求発行回路は、状態遷移回路が所定の状態に遷移するのに伴って、CPUに割り込み要求を発行する。
例えば、状態遷移回路は、第1および第2レジスタと、第1および第2カウンタとを備える。第1レジスタは、シリアルインタフェースにおけるメモリへのアクセス時の状態遷移回数を示す情報を保持する。第2レジスタは、シリアルインタフェースにおけるメモリへのアクセス時のデータ転送回数を示す情報を保持する。第1カウンタは、シリアルインタフェースの状態遷移に伴う割り込み要求の発行回数をカウントする。第2カウンタは、第1カウンタのカウント動作が第1レジスタの情報に対応する回数実施された後、シリアルインタフェースのデータ転送に伴う割り込み要求の発行回数をカウントする。割り込み要求発行回路は、第2カウンタのカウント動作が第2レジスタの情報に対応する回数実施されるのに伴って、CPUに割り込み要求を発行する。
CPUおよびメモリ間のデータ転送がシリアルインタフェースを介して実施されるマイクロコンピュータにおいて、CPUの割り込み処理の実施回数を低減することができ、CPUの処理効率の向上を実現できる。
以下、本発明の実施形態について図面を用いて説明する。
図1は、本発明の一実施形態を示している。マイクロコンピュータ10は、CPU20、割り込みコントローラ30、ISU(Interrupt Scheduling Unit)40、SPI(Serial Peripheral Interface)50およびSPI対応型メモリ60を備えて構成されている。
CPU20は、プログラムメモリ(図示せず)に格納されたプログラムに従って各種処理を実行する。割り込みコントローラ30は、割り込み信号IRQT、IRQRを含む複数の割り込み信号のいずれかが活性化されると、活性化された割り込み信号に対して予め割り当てられた割り込み番号をCPU20に通知するとともに、割り込み処理の実行をCPU20に要求する。これにより、CPU20において、割り込みコントローラ30から通知された割り込み番号に対応する割り込み処理が実行される。
ISU40は、送受信部41および制御部42を備えて構成されている。送受信部41は、送信バッファ41aおよび受信バッファ41bを備えて構成されている。送受信部41は、CPU20による送信バッファ41aへのライトアクセスに伴って、CPU20からシステムバスBUSを介して供給されるデータを送信バッファ41aに格納する。送受信部41は、CPU20による受信バッファ41bへのリードアクセスに伴って、受信バッファ41bに格納されているデータをCPU20にシステムバスBUSを介して供給する。また、送受信部41は、制御部42の指示に従って、SPI50内のレジスタに対してライトアクセス/リードアクセスを実施する。送受信部41は、SPI50内のレジスタに対するライトアクセスの際に、送信バッファ41aに格納されているデータをライトデータとしてSPI50に供給する。送受信部41は、SPI50内のレジスタに対するリードアクセスの際に、SPI50から供給されるリードデータを受信バッファ41bに格納する。なお、送受信部41は、送信バッファ41aに格納されているデータがSPI50内のレジスタ(モード設定レジスタ52aなど)を設定するためのデータであることを認識すると、SPI50内のレジスタを設定すべくライトアクセスを実施する。
制御部42は、転送設定レジスタ42a、ステート管理カウンタ42fおよび転送回数カウンタ42gを備えて構成されている。転送設定レジスタ32aは、CPU20によりアクセス可能なレジスタであり、転送開始ビット42b、割り込み設定ビット42c、転送シーケンス設定ビット42dおよび転送データ長設定ビット42eを有している。転送開始ビット42bは、ISU40の動作開始を指示するためのビットである。例えば、転送開始ビット42bは、ISU40の動作を開始させる場合に“1”に設定される。割り込み設定ビット42cは、転送回数カウンタ42gのカウント要因として割り込み信号IRQTS、IRQRSのいずれかを設定するためのビットである。例えば、割り込み設定ビット42cは、転送回数カウンタ42gのカウント要因として割り込み信号IRQTSを設定する場合に“0”に設定され、転送回数カウンタ42gのカウント要因として割り込み信号IRQRSを設定する場合に“1”に設定される。転送シーケンス設定ビット42dは、SPI50におけるメモリ60へのアクセス時の状態遷移回数を設定するためのビットである。例えば、転送シーケンス設定ビット42dは、SPI50においてメモリ60に対するアクセスの際に「コマンド送信動作」、「上位アドレス送信動作」、「データ送信動作/データ受信動作」の順序で動作状態を遷移させるシーケンス動作が実施される場合に(SPI50におけるメモリ60へのアクセス時の状態遷移回数が2である場合に)“0”に設定される。また、転送シーケンス設定ビット42dは、SPI50においてメモリ60に対するアクセスの際に「コマンド送信動作」、「上位アドレス送信動作」、「下位アドレス送信動作」、「データ送信動作/データ受信動作」の順序で動作状態を遷移させるシーケンス動作が実施される場合に(SPI50におけるメモリ60へのアクセス時の状態遷移回数が3である場合に)“1”に設定される。転送データ長設定ビット42eは、SPI50のデータ送信動作/データ受信動作におけるSPI50およびメモリ60間の転送データ長(SPI50およびメモリ60間のデータ転送回数に相当)を設定するためのビットである。例えば、転送データ長設定ビット42eは、SPI50のデータ送信動作/データ受信動作におけるSPI50およびメモリ60間の転送データ長が1バイトである場合に“0”に設定され、SPI50のデータ送信動作/データ受信動作におけるSPI50およびメモリ60間の転送データ長が2バイトである場合に“1”に設定される。
ステート管理カウンタ42fは、転送開始ビット42bが“1”に設定されるのに伴って転送シーケンス設定ビット42dの設定値に対応するSPI50の状態遷移回数をカウンタ値として設定する。具体的には、ステート管理カウンタ42fは、転送シーケンス設定ビット42dが“0”に設定されている場合には、転送開始ビット42bが“1”に設定されるのに伴ってカウンタ値を2に設定し、転送シーケンス設定ビット42dが“1”に設定されている場合には、転送開始ビット42bが“1”に設定されるのに伴ってカウンタ値を3に設定する。そして、ステート管理カウンタ42fは、割り込み信号IRQTSが活性化される度にダウンカウント動作を実施し、カウンタ値が0になった時点でダウンカウント動作を停止する。
転送回数カウンタ42gは、転送開始ビット42bが“1”に設定されるのに伴って転送データ長設定ビット32eの設定値に対応するSPI50およびメモリ間60間の転送データ長(バイト数)をカウンタ値として設定する。具体的には、転送回数カウンタ42gは、転送データ長設定ビット42eが“0”に設定されている場合には、転送開始ビット42bが“1”に設定されるのに伴ってカウント値を1に設定し、転送データ長設定ビット42eが“1”に設定されている場合には、転送開始ビット42bが“1”に設定されるのに伴ってカウント値を2に設定する。そして、転送回数カウンタ42gは、ステート管理カウンタ42fがダウンカウント動作を停止した後、割り込み信号IRQTS、IRQRSの中で割り込み設定ビット42cにより設定されている方が活性化される度にダウンカウント動作を実施し、カウンタ値が0になった時点でダウンカウント動作を停止する。
制御部42は、転送開始ビット42bが“1”に設定されるのに伴って、SPI50内の送信レジスタ51aに対するライトアクセスを送受信部41に指示する。制御部42は、割り込み設定ビット42cにより転送回数カウンタ42gのカウント要因として割り込み信号IRQTSが設定されている場合、ステート管理カウンタ42fあるいは転送回数カウンタ42gがダウンカウント動作を実施するのに伴って、SPI50内の送信レジスタ51aに対するライトアクセスを送受信部41に指示する。また、制御部42は、割り込み設定ビット42cにより転送回数カウンタ42gのカウント要因として割り込み信号IRQRSが設定されている場合、ステート管理カウンタ42fがダウンカウント動作を実施するのに伴って、ステート管理カウンタ42fのカウンタ値が0でなければSPI50内の送信レジスタ51aに対するライトアクセスを送受信部41に指示し、ステート管理カウンタ42fのカウンタ値が0であればSPI50の動作モードを切り替えるべくSPI50内のモード設定レジスタ52aに対するライトアクセスを指示する。制御部42は、割り込み設定ビット42cにより転送回数カウンタ42gのカウント要因として割り込み信号IRQRSが設定されている場合、転送回数カウンタ42gがダウンカウント動作を実施するのに伴って、SPI50内の受信レジスタ51bに対するリードアクセスを送受信部41に指示する。更に、制御部42は、転送回数カウンタ42gがダウンカウント動作を停止するのに伴って(転送回数カウンタ42gのカウンタ値が0になるのに伴って)、割り込み設定ビット42cにより転送回数カウンタ42gのカウント要因として割り込み信号IRQTSが設定されていれば割り込み信号IRQTを活性化させ、割り込み設定ビット42cにより転送回数カウンタ42gのカウント要因として割り込み信号IRQRSが設定されていれば割り込み信号IRQRを活性化させる。
SPI50は、送受信部51および制御部52を備えて構成されている。送受信部51は、送信レジスタ51a、受信レジスタ51bおよびシフトレジスタ51cを備えて構成されている。ここでは、送信レジスタ51a、受信レジスタ51bおよびシフトレジスタ51cが8ビットレジスタとして構成されているものとする。送受信部51は、ISU40による送信レジスタ51aへのライトアクセスに伴って、ISU40から供給されるデータを送信レジスタ51aに格納する。送受信部51は、制御部52の指示に従って、送信レジスタ51aに格納されているデータをシフトレジスタ51cに転送してシフトレジスタ51cのシフト動作によりシリアルデータSOとしてメモリ60に順次供給する。また、送受信部51は、制御部52の指示に従って、シフトレジスタ51cのシフト動作によりシリアルデータSIを順次取り込み、シフトレジスタ51に8ビット分のデータを取り込んだ時点でシフトレジスタ51cに格納されているデータを受信レジスタ51bに転送する。送受信部51は、ISU40による受信レジスタ51bへのリードアクセスに伴って、受信レジスタ51bに格納されているデータをISU40に供給する。
制御部52は、モード設定レジスタ52a、クロック発生部52bおよび割り込み発生部52cを備えて構成されている。モード設定レジスタ52aは、ISU40によりアクセス可能であり、SPI50の動作モード(送信モード/受信モード)を設定するためのレジスタである。例えば、モード設定レジスタ52aは、SPI50を送信モードに設定する場合に“0”に設定され、SPI50を受信モードに設定する場合に“1”に設定される。クロック発生部52bは、シリアルデータSO、SIの遷移タイミングを規定するクロックSCKを発生させる。割り込み発生部52cは、送受信部51において送信レジスタ51aからシフトレジスタ51cにデータが転送されるのに伴って割り込み信号IRQTSを活性化させ、送受信部51においてシフトレジスタ51cから受信レジスタ51bにデータが転送されるのに伴って割り込み信号IRQRSを活性化させる。なお、制御部52は、モード設定レジスタ52aによりSPI50が送信モードに設定されている場合に送信レジスタ51aからシフトレジスタ51cへのデータ転送を送受信部51に指示し、モード設定レジスタ52aによりSPI50が受信モードに設定されている場合にシフトレジスタ51cから受信レジスタ51bへのデータ転送を送受信部51に指示する。
メモリ60は、シリアルデータSOにおける先頭の8ビットコマンドがライトコマンドであると判断すると、後続の16ビットアドレスに対応する16個のメモリセルに後続の16ビットデータを順次ライトする。また、メモリ60は、シリアルデータSOにおける先頭の8ビットコマンドがリードコマンドであると判断すると、後続の16ビットアドレスに対応する16個のメモリセルの保持データをリードしてシリアルデータSIとしてSPI50に順次供給する。
図2は、図1のマイクロコンピュータにおけるCPUからメモリへのデータ転送動作を示している。なお、図2の動作では、SPI50におけるメモリ60へのアクセス時の状態遷移回数が3であり、SPI50のデータ送信動作におけるSPI50およびメモリ60間の転送データ長が2バイトであるものとする。
まず、CPU20は、システムバスBUSを介したライトアクセスにより、ISU40内のレジスタ(転送設定レジスタ42aなど)を設定する(ステップ101)。このとき、ISU40の制御部42において、割り込み設定ビット42cが“0”に設定され、転送シーケンス設定ビット42dが“1”に設定され、転送データ長設定ビット42eが“1”に設定される。
次に、CPU20は、システムバスBUSを介したライトアクセスにより、SPI50内のレジスタ(モード設定レジスタ52aなど)を設定するためのデータをISU40内の送信バッファ41aに格納する(ステップ102)。ISU40の送受信部41は、送信バッファ41aに格納されたデータがSPI50内のレジスタを設定するためのデータであることを認識すると、そのデータを用いたライトアクセスにより、SPI50内のレジスタを設定する(ステップ111)。このとき、SPI50内のモード設定レジスタ52aが“0”に設定される。
続いて、CPU20は、システムバスBUSを介したライトアクセスにより、コマンド(ライトコマンド)、上位アドレス、下位アドレス、1番目のデータおよび2番目のデータをISU40内の送信バッファ41aに順次格納する(ステップ103)。
そして、CPU20は、システムバスBUSを介したライトアクセスにより、ISU40内の転送開始ビット42bを“1”に設定する(ステップ104)。これにより、ISU40の制御部42は、ステート管理カウンタ42fのカウンタ値CNTAを3に設定するとともに、転送回数カウンタ42gのカウンタ値CNTBを2に設定し、ISU40の送受信部41は、ライトアクセスにより、送信バッファ41aに格納されたコマンドをSPI50内の送信レジスタ51aに格納する(ステップ112)。SPI50の送受信部51は、送信レジスタ51aに格納されたコマンドをシフトレジスタ51cに転送してシフトレジスタ51cのシフト動作によりシリアルデータSOとしてメモリ60に順次送信し、SPI50の制御部52は、送受信部51において送信レジスタ51aからシフトレジスタ51cにコマンドが転送されるのに伴って割り込み信号IRQTSを活性化させる(ステップ121)。
割り込み信号IRQTSが活性化されると、ISU40内のステート管理カウンタ42fは、ダウンカウント動作を実施し、ISU40の送受信部41は、ライトアクセスにより、送信バッファ41aに格納された上位アドレスをSPI50内の送信レジスタ51aに格納する(ステップ113)。SPI50の送受信部51は、送信レジスタ51aに格納された上位アドレスをシフトレジスタ51cに転送してシフトレジスタ51cのシフト動作によりシリアルデータSOとしてメモリ60に順次送信し、SPI50の制御部52は、送受信部51において送信レジスタ51aからシフトレジスタ51cに上位アドレスが転送されるのに伴って割り込み信号IRQTSを再度活性化させる(ステップ122)。
割り込み信号IRQTSが再度活性化されると、ISU40内のステート管理カウンタ42fは、ダウンカウント動作を実施し、ISU40の送受信部41は、ライトアクセスにより、送信バッファ41aに格納された下位アドレスをSPI50内の送信レジスタ51aに格納する(ステップ114)。SPI50の送受信部51は、送信レジスタ51aに格納された下位アドレスをシフトレジスタ51cに転送してシフトレジスタ51cのシフト動作によりシリアルデータSOとしてメモリ60に順次送信し、SPI50の制御部52は、送受信部51において送信レジスタ51aからシフトレジスタ51cに下位アドレスが転送されるのに伴って割り込み信号IRQTSを再度活性化させる(ステップ123)。
割り込み信号IRQTSが再度活性化されると、ISU40内のステート管理カウンタ42fは、ダウンカウント動作を実施し、ISU40の送受信部41は、ライトアクセスにより、送信バッファ41aに格納された1番目のデータをSPI50内の送信レジスタ51aに格納する(ステップ115)。このとき、ISU40内のステート管理カウンタ42fは、カウンタ値CNTAが0であるため、ダウンカウント動作を停止する。SPI50の送受信部51は、送信レジスタ51aに格納された1番目のデータをシフトレジスタ51cに転送してシフトレジスタ51cのシフト動作によりシリアルデータSOとしてメモリ60に順次送信し、SPI50の制御部52は、送受信部51において送信レジスタ51aからシフトレジスタ51cに1番目のデータが転送されるのに伴って割り込み信号IRQTSを再度活性化させる(ステップ124)。
割り込み信号IRQTSが再度活性化されると、ISU40内のステート管理カウンタ42fがダウンカウント動作を停止しているため、ISU40内の転送回数カウンタ42gがダウンカウント動作を実施し、ISU40の送受信部41は、ライトアクセスにより、送信バッファ41aに格納された2番目のデータをSPI50内の送信レジスタ51aに格納する(ステップ116)。SPI50の送受信部51は、送信レジスタ51aに格納されている2番目のデータをシフトレジスタ51cに転送してシフトレジスタ51cのシフト動作によりシリアルデータSOとしてメモリ60に順次送信し、SPI50の制御部52は、送受信部51において送信レジスタ51aからシフトレジスタ51cに2番目のデータが転送されるのに伴って割り込み信号IRQTSを再度活性化させる(ステップ125)。
割り込み信号IRQTSが再度活性化されると、ISU40内の転送回数カウンタ42gは、ダウンカウント動作を実施する(ステップ117)。このとき、ISU40内の転送回数カウンタ42gは、カウンタ値CNTBが0であるため、ダウンカウント動作を停止する。ISU40の制御部42は、転送回数カウンタ42gがダウンカウント動作を停止するのに伴って割り込み信号IRQTを活性化させる(ステップ117)。割り込み信号IRQTが活性化されると、CPU20は、割り込み処理において、割り込みフラグをリセットする処理などを実行する(ステップ105)。これにより、CPU20からメモリ60へのデータ転送が完了する。
図3は、図1のマイクロコンピュータにおけるメモリからCPUへのデータ転送動作を示している。なお、図3の動作では、SPI50におけるメモリ60へのアクセス時の状態遷移回数が3であり、SPI50のデータ受信動作におけるSPI50およびメモリ60間の転送データ長が2バイトであるものとする。
まず、CPU20は、システムバスBUSを介したライトアクセスにより、ISU40内のレジスタ(転送設定レジスタ42aなど)を設定する(ステップ201)。このとき、ISU40の制御部42において、割り込み設定ビット42cが“1”に設定され、転送シーケンス設定ビット42dが“1”に設定され、転送データ長設定ビット42eが“1”に設定される。
次に、CPU20は、システムバスBUSを介したライトアクセスにより、SPI50内のレジスタ(モード設定レジスタ52aなど)を設定するためのデータをISU40内の送信バッファ41aに格納する(ステップ202)。ISU40の送受信部41は、送信バッファ41aに格納されたデータがSPI50内のレジスタを設定するためのデータであることを認識すると、そのデータを用いたライトアクセスにより、SPI50内のレジスタを設定する(ステップ211)。このとき、SPI50内のモード設定レジスタ52aが“0”に設定される。
続いて、CPU20は、システムバスBUSを介したライトアクセスにより、コマンド(リードコマンド)、上位アドレスおよび下位アドレスをISU40内の送信バッファ41aに順次格納する(ステップ203)。
そして、CPU20は、システムバスBUSを介したライトアクセスにより、ISU40内の転送開始ビット42bを“1”に設定する(ステップ204)。これにより、ISU40の制御部42は、ステート管理カウンタ42fのカウンタ値CNTAを3に設定するとともに、転送回数カウンタ42gのカウンタ値CNTBを2に設定し、ISU40の送受信部41は、ライトアクセスにより、送信バッファ41aに格納されたコマンドをSPI50内の送信レジスタ51aに格納する(ステップ212)。SPI50の送受信部51は、送信レジスタ51aに格納されたコマンドをシフトレジスタ51cに転送してシフトレジスタ51cのシフト動作によりシリアルデータSOとしてメモリ60に順次送信し、SPI50の制御部52は、送受信部51において送信レジスタ51aからシフトレジスタ51cにコマンドが転送されるのに伴って割り込み信号IRQTSを活性化させる(ステップ221)。
割り込み信号IRQTSが活性化されると、ISU40内のステート管理カウンタ42fは、ダウンカウント動作を実施し、ISU40の送受信部41は、ライトアクセスにより、送信バッファ41aに格納された上位アドレスをSPI50内の送信レジスタ51aに格納する(ステップ213)。SPI50の送受信部51は、送信レジスタ51aに格納された上位アドレスをシフトレジスタ51cに転送してシフトレジスタ51cのシフト動作によりシリアルデータSOとしてメモリ60に順次送信し、SPI50の制御部52は、送受信部51において送信レジスタ51aからシフトレジスタ51cに上位アドレスが転送されるのに伴って割り込み信号IRQTSを再度活性化させる(ステップ222)。
割り込み信号IRQTSが再度活性化されると、ISU40内のステート管理カウンタ42fは、ダウンカウント動作を実施し、ISU40の送受信部41は、ライトアクセスにより、送信バッファ41aに格納された下位アドレスをSPI50内の送信レジスタ51aに格納する(ステップ214)。SPI50の送受信部51は、送信レジスタ51aに格納された下位アドレスをシフトレジスタ51cに転送してシフトレジスタ51cのシフト動作によりシリアルデータSOとしてメモリ60に順次送信し、SPI50の制御部52は、送受信部51において送信レジスタ51aからシフトレジスタ51cに下位アドレスが転送されるのに伴って割り込み信号IRQTSを再度活性化させる(ステップ223)。
割り込み信号IRQTSが再度活性化されると、ISU40内のステート管理カウンタ42fは、ダウンカウント動作を実施する(ステップ215)。このとき、ISU40内のステート管理カウンタ42fは、カウンタ値CNTAが0であるため、ダウンカウント動作を停止する。ISU40の送受信部41は、ステート管理カウンタ42fのカウンタ値CNTAが0であるため、SPI50の動作モードを送信モードから受信モードに切り替えるために、ライトアクセスにより、SPI50内のモード設定レジスタ52aを“1”に設定する(ステップ215)。
この後、SPI50の送受信部51は、シフトレジスタ51cのシフト動作によりメモリ60から供給されるシリアルデータSIを順次取り込み、シフトレジスタ51cに8ビット分のデータを取り込んだ時点で送信レジスタ51aに格納されている受信データを1番目のデータとして受信レジスタ51bに転送し、SPI50の制御部52は、送受信部51においてシフトレジスタ51cから受信レジスタ51bに1番目のデータが転送されるのに伴って割り込み信号IRQRSを活性化させる(ステップ224)。
割り込み信号IRQRSが活性化されると、ISU40内の転送回数カウンタ42gは、ダウンカウント動作を実施し、ISU40の送受信部41は、リードアクセスにより、SPI50内の受信レジスタ51bに格納された1番目のデータを受信バッファ41bに格納する(ステップ216)。
そして、SPI50の送受信部51は、シフトレジスタ51cのシフト動作によりメモリ60から供給されるシリアルデータSIを順次取り込み、シフトレジスタ51cに8ビット分のデータを取り込んだ時点で送信レジスタ51aに格納されている受信データを2番目のデータとして受信レジスタ51bに転送し、SPI50の制御部52は、送受信部51においてシフトレジスタ51cから受信レジスタ51bに2番目のデータが転送されるのに伴って割り込み信号IRQRSを再度活性化させる(ステップ225)。
割り込み信号IRQRSが再度活性化されると、ISU40内の転送回数カウンタ42gは、ダウンカウント動作を実施し、ISU40の送受信部41は、リードアクセスにより、SPI50内の受信レジスタ51bに格納された2番目のデータを受信バッファ41bに格納する(ステップ217)。このとき、ISU40内の転送回数カウンタ42gは、カウンタ値CNTBが0であるため、ダウンカウント動作を停止する。ISU40の制御部42は、転送回数カウンタ42gがダウンカウント動作を停止するのに伴って割り込み信号IRQRを活性化させる(ステップ217)。
割り込み信号IRQRが活性化されると、CPU20は、割り込み処理において、割り込みフラグをリセットする処理などを実行した後、システムバスBUSを介したリードアクセスにより、ISU40内の受信バッファ41bに格納された1番目のデータおよび2番目のデータを順次取得する(ステップ205)。これにより、メモリ60からCPU20へのデータ転送が完了する。
図4は、従来のマイクロコンピュータにおけるCPUからメモリのデータ転送動作を示している。なお、従来のマイクロコンピュータとは、図1のマイクロコンピュータ10において、ISU40を取り除き、割り込み信号IRQT、IRQRに代えて割り込み信号IRQTS、IRQRSを割り込みコントローラ30に供給するとともに、SPI50をシステムバスBUSに接続して構成されたものである。また、図4の動作では、SPI50におけるメモリ60へのアクセス時の状態遷移回数が3であり、SPI50のデータ送信動作におけるSPI50およびメモリ60間の転送データ長が2バイトであるものとする。
まず、CPU20は、システムバスBUSを介したライトアクセスにより、SPI50内のレジスタ(モード設定レジスタ52aなど)を設定する(ステップ301)。このとき、SPI50内のモード設定レジスタ52aが“0”に設定される。
そして、CPU20は、システムバスBUSを介したライトアクセスにより、コマンド(ライトコマンド)をSPI50内の送信レジスタ51aに格納する(ステップ302)。SPI50の送受信部51は、送信レジスタ51aに格納されたコマンドをシフトレジスタ51cに転送してシフトレジスタ51cのシフト動作によりシリアルデータSOとしてメモリ60に順次送信し、SPI50の制御部52は、送受信部51において送信レジスタ51aからシフトレジスタ51cにコマンドが転送されるのに伴って割り込み信号IRQTSを活性化させる(ステップ321)。
割り込み信号IRQTSが活性化されると、CPU20は、割り込み処理において、割り込みフラグをリセットする処理などを実行した後、システムバスBUSを介したライトアクセスにより、上位アドレスをSPI50内の送信レジスタ51aに格納する(ステップ303)。SPI50の送受信部51は、送信レジスタ51aに格納された上位アドレスをシフトレジスタ51cに転送してシフトレジスタ51cのシフト動作によりシリアルデータSOとしてメモリ60に順次送信し、SPI50の制御部52は、送受信部51において送信レジスタ51aからシフトレジスタ51cに上位アドレスが転送されるのに伴って割り込み信号IRQTSを再度活性化させる(ステップ322)。
割り込み信号IRQTSが再度活性化されると、CPU20は、割り込み処理において、割り込みフラグをリセットする処理などを実行した後、システムバスBUSを介したライトアクセスにより、下位アドレスをSPI50内の送信レジスタ51aに格納する(ステップ304)。SPI50の送受信部51は、送信レジスタ51aに格納された下位アドレスをシフトレジスタ51cに転送してシフトレジスタ51cのシフト動作によりシリアルデータSOとしてメモリ60に順次送信し、SPI50の制御部52は、送受信部51において送信レジスタ51aからシフトレジスタ51cに下位アドレスが転送されるのに伴って割り込み信号IRQTSを再度活性化させる(ステップ323)。
割り込み信号IRQTSが再度活性化されると、CPU20は、割り込み処理において、割り込みフラグをリセットする処理などを実行した後、システムバスBUSを介したライトアクセスにより、1番目のデータをSPI50内の送信レジスタ51aに格納する(ステップ305)。SPI50の送受信部51は、送信レジスタ51aに格納された1番目のデータをシフトレジスタ51cに転送してシフトレジスタ51cのシフト動作によりシリアルデータSOとしてメモリ60に順次送信し、SPI50の制御部52は、送受信部51において送信レジスタ51aからシフトレジスタ51cに1番目のデータが転送されるのに伴って割り込み信号IRQTSを再度活性化させる(ステップ324)。
割り込み信号IRQTSが再度活性化されると、CPU20は、割り込み処理において、割り込みフラグをリセットする処理などを実行した後、システムバスBUSを介したライトアクセスにより、2番目のデータをSPI50内の送信レジスタ51aに格納する(ステップ306)。SPI50の送受信部51は、送信レジスタ51aに格納された2番目のデータをシフトレジスタ51cに転送してシフトレジスタ51cのシフト動作によりシリアルデータSOとしてメモリ60に順次送信し、SPI50の制御部52は、送受信部51において送信レジスタ51aからシフトレジスタ51cに2番目のデータが転送されるのに伴って割り込み信号IRQTSを再度活性化させる(ステップ325)。
割り込み信号IRQTSが再度活性化されると、CPU20は、割り込み処理において、割り込みフラグをリセットする処理などを実行する(ステップ307)。これにより、CPU20からメモリ60へのデータ転送が完了する。
図5は、従来のマイクロコンピュータにおけるCPUからメモリのデータ転送動作を示している。なお、図5の動作では、SPI50におけるメモリ60へのアクセス時の状態遷移回数が3であり、SPI50のデータ受信動作におけるSPI50およびメモリ60間の転送データ長が2バイトであるものとする。
まず、CPU20は、システムバスBUSを介したライトアクセスにより、SPI50内のレジスタ(モード設定レジスタ52aなど)を設定する(ステップ401)。このとき、SPI50内のモード設定レジスタ52aが“0”に設定される。
そして、CPU20は、システムバスBUSを介したライトアクセスにより、コマンド(リードコマンド)をSPI50内の送信レジスタ51aに格納する(ステップ402)。SPI50の送受信部51は、送信レジスタ51aに格納されたコマンドをシフトレジスタ51cに転送してシフトレジスタ51cのシフト動作によりシリアルデータSOとしてメモリ60に順次送信し、SPI50の制御部52は、送受信部51において送信レジスタ51aからシフトレジスタ51cにコマンドが転送されるのに伴って割り込み信号IRQTSを活性化させる(ステップ421)。
割り込み信号IRQTSが活性化されると、CPU20は、割り込み処理において、割り込みフラグをリセットする処理などを実行した後、システムバスBUSを介したライトアクセスにより、上位アドレスをSPI50内の送信レジスタ51aに格納する(ステップ403)。SPI50の送受信部51は、送信レジスタ51aに格納された上位アドレスをシフトレジスタ51cに転送してシフトレジスタ51cのシフト動作によりシリアルデータSOとしてメモリ60に順次送信し、SPI50の制御部52は、送受信部51において送信レジスタ51aからシフトレジスタ51cに上位アドレスが転送されるのに伴って割り込み信号IRQTSを再度活性化させる(ステップ422)。
割り込み信号IRQTSが再度活性化されると、CPU20は、割り込み処理において、割り込みフラグをリセットする処理などを実行した後、システムバスBUSを介したライトアクセスにより、下位アドレスをSPI50内の送信レジスタ51aに格納する(ステップ404)。SPI50の送受信部51は、送信レジスタ51aに格納された下位アドレスをシフトレジスタ51cに転送してシフトレジスタ51cのシフト動作によりシリアルデータSOとしてメモリ60に順次送信し、SPI50の制御部52は、送受信部51において送信レジスタ51aからシフトレジスタ51cに下位アドレスが転送されるのに伴って割り込み信号IRQTSを再度活性化させる(ステップ423)。
割り込み信号IRQTSが再度活性化されると、CPU20は、割り込み処理において、割り込みフラグをリセットする処理などを実行した後、SPI50の動作モードを送信モードから受信モードに切り替えるために、システムバスBUSを介したライトアクセスにより、SPI50内のモード設定レジスタ52aを“1”に設定する(ステップ405)。
この後、SPI50の送受信部51は、シフトレジスタ51cのシフト動作によりメモリ60から供給されるシリアルデータSIを順次取り込み、シフトレジスタ51cに8ビット分のデータを取り込んだ時点で送信レジスタ51aに格納されている受信データを1番目のデータとして受信レジスタ51bに転送し、SPI50の制御部52は、送受信部51においてシフトレジスタ51cから受信レジスタ51bに1番目のデータが転送されるのに伴って割り込み信号IRQRSを活性化させる(ステップ424)。
割り込み信号IRQRSが活性化されると、CPU20は、割り込み処理において、割り込みフラグをリセットする処理などを実行した後、システムバスBUSを介したリードアクセスにより、SPI50内の受信レジスタ51bに格納された1番目のデータを取得する(ステップ406)。
そして、SPI50の送受信部51は、シフトレジスタ51cのシフト動作によりメモリ60から供給されるシリアルデータSIを順次取り込み、シフトレジスタ51cに8ビット分のデータを取り込んだ時点で送信レジスタ51aに格納されている受信データを2番目のデータとして受信レジスタ51bに転送し、SPI50の制御部52は、送受信部51においてシフトレジスタ51cから受信レジスタ51bに2番目のデータが転送されるのに伴って割り込み信号IRQRSを再度活性化させる(ステップ425)。
割り込み信号IRQRSが再度活性化されると、CPU20は、割り込み処理において、割り込みフラグをリセットする処理などを実行した後、システムバスBUSを介したリードアクセスにより、SPI50内の受信レジスタ51bに格納された2番目のデータを取得する(ステップ407)。これにより、メモリ60からCPU20へのデータ転送が完了する。
以上のように、従来のマイクロコンピュータでは、CPU20およびメモリ60間のデータ転送の際に、SPI50により発行される全ての割り込み要求がCPU20(割り込みコントローラ30)に通知されるため、CPU20は割り込み処理を5回も実施しなければならない。このため、CPU20が本来実行すべき処理に専念できずにCPU20の処理効率が著しく低下してしまう。これに対して、本発明の一実施形態におけるマイクロコンピュータ10(図1)では、CPU20およびメモリ60間のデータ転送の際に、SPI50により発行される割り込み要求がISU40にて管理され、SPI50により最後に発行される割り込み要求のみがCPU20(割り込みコントローラ30)に通知されるため、CPU20は割り込み処理を1回だけ実施すればよい。このため、CPU20を本来実行すべき処理に専念させることができ、CPU20の処理効率を大幅に向上させることが可能である。また、ISU40を設置するのに伴ってCPU20、割り込みコントローラ30およびSPI50におけるインタフェース部分を変更する必要はないため、CPU20の処理効率の向上を容易に実現することができる。
以上、本発明について詳細に説明してきたが、前述の実施形態は発明の一例に過ぎず、本発明はこれに限定されるものではない。本発明を逸脱しない範囲で変形可能であることは明らかである。
10‥マイクロコンピュータ;20‥CPU;30‥割り込みコントローラ;40‥ISU;41‥送受信部;41a‥送信バッファ;41b‥受信バッファ;42‥制御部;42a‥転送設定レジスタ;42b‥転送開始ビット;42c‥割り込み設定ビット;42d‥転送シーケンス設定ビット;42e‥転送データ長設定ビット;42f‥ステート管理カウンタ;42g‥転送回数カウンタ;50‥SPI;51‥送受信部;51a‥送信レジスタ;51b‥受信レジスタ;51c‥シフトレジスタ;52‥制御部;52a‥モード設定レジスタ;52b‥クロック発生部;52c‥割り込み発生部;60‥メモリ;BUS‥システムバス;IRQR、IRQRS、IRQT、IRQTS‥割り込み信号;SCK‥クロック;SI、SO‥シリアルデータ
Claims (5)
- CPUおよびメモリ間のデータ転送がシリアルインタフェースを介して実施されるマイクロコンピュータにおいて前記シリアルインタフェースの割り込み要求を管理する割り込み管理機構であって、
前記シリアルインタフェースが割り込み要求を発行するのに伴って、その割り込み要求の種類および発行回数に応じて状態が遷移する状態遷移回路と、
前記状態遷移回路が所定の状態に遷移するのに伴って、前記CPUに割り込み要求を発行する割り込み要求発行回路とを備えることを特徴とする割り込み管理機構。 - 請求項1に記載の割り込み管理機構において、
前記状態遷移回路は、
前記シリアルインタフェースにおける前記メモリへのアクセス時の状態遷移回数を示す情報を保持する第1レジスタと、
前記シリアルインタフェースにおける前記メモリへのアクセス時のデータ転送回数を示す情報を保持する第2レジスタと、
前記シリアルインタフェースの状態遷移に伴う割り込み要求の発行回数をカウントする第1カウンタと、
前記第1カウンタのカウント動作が前記第1レジスタの情報に対応する回数実施された後、前記シリアルインタフェースのデータ転送に伴う割り込み要求の発行回数をカウントする第2カウンタとを備え、
前記割り込み要求発行回路は、前記第2カウンタのカウント動作が前記第2レジスタの情報に対応する回数実施されるのに伴って、前記CPUに割り込み要求を発行することを特徴とする割り込み管理機構。 - 請求項2に記載の割り込み管理機構において、
前記シリアルインタフェースのデータ転送に伴う割り込み要求は、前記シリアルインタフェースから前記メモリへのデータ転送に伴う第1割り込み要求と、前記メモリから前記シリアルインタフェースへのデータ転送に伴う第2割り込み要求とを含み、
前記状態遷移回路は、前記第1割り込み要求および前記第2割り込み要求のいずれかを示す情報を保持する第3レジスタを備え、
前記第2カウンタは、前記第1割り込み要求および前記第2割り込み要求の中で前記第3レジスタの情報に対応する割り込み要求の発行回数をカウントすることを特徴とする割り込み管理機構。 - 請求項1に記載の割り込み管理機構において、
前記CPUの書き込み要求に応答して前記CPUの出力データを格納し、前記状態遷移回路の状態に応じて格納データを前記シリアルインタフェースに出力する第1バッファと、
前記状態遷移回路の状態に応じて前記シリアルインタフェースの出力データを格納し、前記CPUの読み出し要求に応答して格納データを前記CPUに出力する第2バッファとを備えることを特徴とする割り込み管理機構。 - CPUおよびメモリ間のデータ転送がシリアルインタフェースを介して実施されるマイクロコンピュータであって、
請求項1〜請求項4のいずれかに記載の割り込み管理機構を備えることを特徴とするマイクロコンピュータ。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2008000990A JP2009163531A (ja) | 2008-01-08 | 2008-01-08 | 割り込み管理機構およびマイクロコンピュータ |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2008000990A JP2009163531A (ja) | 2008-01-08 | 2008-01-08 | 割り込み管理機構およびマイクロコンピュータ |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2009163531A true JP2009163531A (ja) | 2009-07-23 |
Family
ID=40966072
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2008000990A Withdrawn JP2009163531A (ja) | 2008-01-08 | 2008-01-08 | 割り込み管理機構およびマイクロコンピュータ |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP2009163531A (ja) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2012003325A (ja) * | 2010-06-14 | 2012-01-05 | Fujitsu Ltd | コンピュータシステムおよび割込要求処理方法 |
JP2016528588A (ja) * | 2013-06-12 | 2016-09-15 | クアルコム,インコーポレイテッド | カメラ制御インターフェース拡張バス |
US20230097776A1 (en) * | 2021-09-28 | 2023-03-30 | Canon Kabushiki Kaisha | Image forming apparatus and control method of image forming apparatus |
-
2008
- 2008-01-08 JP JP2008000990A patent/JP2009163531A/ja not_active Withdrawn
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2012003325A (ja) * | 2010-06-14 | 2012-01-05 | Fujitsu Ltd | コンピュータシステムおよび割込要求処理方法 |
JP2016528588A (ja) * | 2013-06-12 | 2016-09-15 | クアルコム,インコーポレイテッド | カメラ制御インターフェース拡張バス |
US20230097776A1 (en) * | 2021-09-28 | 2023-03-30 | Canon Kabushiki Kaisha | Image forming apparatus and control method of image forming apparatus |
US11838477B2 (en) * | 2021-09-28 | 2023-12-05 | Canon Kabushiki Kaisha | Image forming apparatus and control method of image forming apparatus |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP4182801B2 (ja) | マルチプロセサシステム | |
EP2165254A1 (en) | Synchronisation in a multithreaded processor | |
US10409749B2 (en) | Semiconductor device and system provided with a communication interface | |
KR20220028120A (ko) | 하드웨어 가속 기반의 spi 인터페이스의 자동 판독 제어 시스템 및 방법 | |
JP2012043031A (ja) | 共有キャッシュメモリ装置 | |
US9015272B2 (en) | Microcomputer | |
JP2009163531A (ja) | 割り込み管理機構およびマイクロコンピュータ | |
US20130311699A1 (en) | Operations using direct memory access | |
US20090320034A1 (en) | Data processing apparatus | |
WO2017036101A1 (zh) | 一种更新寄存器的方法及装置 | |
WO2009098737A1 (ja) | 外部デバイスアクセス装置、その制御方法及びシステムlsi | |
US7130946B2 (en) | Configuration and method having a first device and a second device connected to the first device through a cross bar | |
JP6070600B2 (ja) | マイクロコンピュータ | |
KR100606163B1 (ko) | 디렉트 메모리 엑세스 장치, 디렉트 메모리 엑세스 장치를통한 데이터를 송수신하는 시스템 및 방법 | |
JP2009116445A (ja) | 複数本のシーケンスプログラムを並列して実行可能なプログラマブルコントローラ | |
JP6416488B2 (ja) | 半導体装置 | |
JPH0876876A (ja) | マイクロプロセッサのクロック供給制御回路 | |
JP4609540B2 (ja) | マルチプロセサシステム | |
JP2009289232A (ja) | 半導体集積回路 | |
JP2002373145A (ja) | ダイレクトメモリアクセス装置 | |
CN115658601A (zh) | 多核处理器***及其控制方法 | |
JP5387155B2 (ja) | Dma転送制御装置およびdma転送制御方法 | |
JP2020149214A (ja) | 半導体装置及びデバッグシステム | |
JPH06332842A (ja) | ダイレクト・メモリ・アクセス・制御回路 | |
JP2004362176A (ja) | 集積回路 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A300 | Withdrawal of application because of no request for examination |
Free format text: JAPANESE INTERMEDIATE CODE: A300 Effective date: 20110405 |