JP2005044124A - Mpu - Google Patents
Mpu Download PDFInfo
- Publication number
- JP2005044124A JP2005044124A JP2003277540A JP2003277540A JP2005044124A JP 2005044124 A JP2005044124 A JP 2005044124A JP 2003277540 A JP2003277540 A JP 2003277540A JP 2003277540 A JP2003277540 A JP 2003277540A JP 2005044124 A JP2005044124 A JP 2005044124A
- Authority
- JP
- Japan
- Prior art keywords
- register
- bus
- mpu
- mmu
- save
- 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
Links
Images
Abstract
【課題】 簡単かつ低コストな構成で、MPUのレジスタやMMUレジスタを、外部バスにアクセスすることなく、高速に退避および復元できるMPUを提供する。
【解決手段】 レジスタ20aを用いて処理および演算を行うMPUコア20と、外部バス12と前記レジスタ20a間でデータの授受が可能な外部バスインタフェース24と、アドレスバスとデータバスとを有するレジスタ退避専用バス26と、該レジスタ退避専用バス26に接続されたRAM28とを備え、前記MPUコア20が、前記レジスタ20aを退避するレジスタ退避命令を読み取った際には、該レジスタ20aの値を、前記レジスタ退避専用バス26を介して前記RAM28に退避し、前記MPUコア20が、前記レジスタ20aを復元するレジスタ復元命令を読み取った際には、前記RAM28に退避した前記レジスタの値を、前記レジスタ退避専用バス26を介して読み出して、前記レジスタ20aに復元する。
【選択図】 図1
【解決手段】 レジスタ20aを用いて処理および演算を行うMPUコア20と、外部バス12と前記レジスタ20a間でデータの授受が可能な外部バスインタフェース24と、アドレスバスとデータバスとを有するレジスタ退避専用バス26と、該レジスタ退避専用バス26に接続されたRAM28とを備え、前記MPUコア20が、前記レジスタ20aを退避するレジスタ退避命令を読み取った際には、該レジスタ20aの値を、前記レジスタ退避専用バス26を介して前記RAM28に退避し、前記MPUコア20が、前記レジスタ20aを復元するレジスタ復元命令を読み取った際には、前記RAM28に退避した前記レジスタの値を、前記レジスタ退避専用バス26を介して読み出して、前記レジスタ20aに復元する。
【選択図】 図1
Description
本発明は、複数のレジスタを有し、レジスタを用いて処理および演算を行うMPUコアを備えるMPU(Micro Processing Unit、マイクロプロセッサ)に関するものである。
従来より、MPUを備えた処理システムにおいて、割り込み発生時やOSによるタスク切り換え時等(いわゆるコンテキストスイッチ時)には、MPUの処理中のルーチン(タスク等)が使用しているMPUの各レジスタを外部RAM上のスタックに退避してから、発生した割り込みの処理や切り換え先のタスクの処理をMPUが実行する技術が、一般的に行われている。こうすることにより、割り込み処理や切り換え先のタスクの処理が終了して、割り込み発生時点やタスク切り換え時点で実行されていた元の処理に戻る際、前記スタックに退避した各レジスタの値を、各レジスタに復元して、その元の処理を継続することが可能となる。
しかしながら、従来のMPUが、複数のレジスタを退避および復元する技術には、以下のような課題がある。すなわち、レジスタの退避および復元時には、退避/復元すべき全てのレジスタの値を、外部RAMに書き込み/読み出しするため、外部RAMのアクセスに時間が掛かり、コンテキストスイッチに時間が掛かって、割り込み処理や切り換え先のタスクの処理の実行が待たされて遅延してしまうという課題がある。
特に、最近のMPUは、例えば128個や256個といったように多数のレジスタを持っているものが多いため、その退避/復元時の外部RAMへのアクセス時間は、無視できるものではない。
特に、最近のMPUは、例えば128個や256個といったように多数のレジスタを持っているものが多いため、その退避/復元時の外部RAMへのアクセス時間は、無視できるものではない。
レジスタの退避/復元のために外部RAMにアクセスすることによる、コンテキストスイッチの遅延の課題を解決するためのプロセッサの構成が、特許文献1に開示されている。
特許文献1記載のプロセッサは、ALU2(演算手段)と、複数のレジスタから成るレジスタ群3と、複数のレジスタから成り、レジスタ群3と専用のバスpath1で接続されるとともに、外部バス5ともバスpath2を介して接続されたレジスタ群3’とを備える(第1図、段落0014)。
特許文献1記載のプロセッサでは、ALU2がある処理aを行っている最中に、コンテキストスイッチリクエストがあった場合には、レジスタ群3の記憶内容が、専用のバスpath1を介して、レジスタ群3’に転送されることで退避される。そして、その転送が終了すると、ALU2は、他の処理bを開始して、コンテキストスイッチが完了する(第2図(A)、段落0015)。コンテキストスイッチの終了後は、処理bの実行と並列して、レジスタ群3’に退避されたデータが、専用のバスpath2および外部バス5を介して、メインメモリ4に転送されて記憶される(第2図、段落0017)。
特許文献1記載のプロセッサでは、ALU2がある処理aを行っている最中に、コンテキストスイッチリクエストがあった場合には、レジスタ群3の記憶内容が、専用のバスpath1を介して、レジスタ群3’に転送されることで退避される。そして、その転送が終了すると、ALU2は、他の処理bを開始して、コンテキストスイッチが完了する(第2図(A)、段落0015)。コンテキストスイッチの終了後は、処理bの実行と並列して、レジスタ群3’に退避されたデータが、専用のバスpath2および外部バス5を介して、メインメモリ4に転送されて記憶される(第2図、段落0017)。
特許文献1のプロセッサによれば、レジスタ群3の記憶内容をレジスタ群3’に転送することで、レジスタ群3の記憶内容の退避を短時間で行うことができ、コンテキストスイッチを高速に行うことができるものとしている(段落0016)。
また、近年、メモリのマッピング管理のためにMMU(Memory Management Unit、メモリ管理ユニット)を備えたMPUが増えている。コンテキストスイッチ時には、メモリマッピングも切り換える必要が生じるため、メモリマッピングを管理するためのエントリテーブル等のエントリ情報が記憶される、MMUのMMUレジスタも、退避および復元する必要がある。
特開2000−207227号公報
特許文献1のプロセッサは、ALU2が演算等を行うために用いるレジスタを、レジスタ群3とレジスタ群3’の二組備えるため、プロセッサの構成が複雑かつコスト高になるという課題がある。
特に、例えば128個や256個といったように多数のレジスタ群を持っている最近のMPUにおいては、そのレジスタ群を二組持つ構成は、容易に実現できるものではない。
特に、例えば128個や256個といったように多数のレジスタ群を持っている最近のMPUにおいては、そのレジスタ群を二組持つ構成は、容易に実現できるものではない。
また、多重割り込みが発生したり、多タスクにまたがってタスク切り換えが発生したりするなど、コンテキストスイッチが多重に発生することのある処理システムでは、レジスタ群の値を同時に複数組退避しておく必要が生じる。しかし、特許文献1のプロセッサは、退避用のレジスタ群3’を一組しか備えておらず、従って、特許文献1の第2図および段落0017に記載されている通り、コンテキストスイッチの終了後に、処理bの実行と並列して、レジスタ群3’に退避されたデータを外部バス5を介してメインメモリ4に転送して、次のコンテキストスイッチに備えてレジスタ群3’を空けておく必要が生じている。
これでは、専用のpath2が外部バス5を使用している間、プロセッサ以外の装置やALU2が外部バス5を使用できず、処理システムの性能が低下するばかりか、レジスタ群3’の値をメインメモリ4に転送している最中にさらに別のコンテキストスイッチが発生しても、まだ空いていないレジスタ群3’にはレジスタ群3の値を退避できないという課題がある。
ここで、この課題を解決するためには、レジスタ群3’をさらに多数組用意する方法が容易に考え付くが、ALU2が演算を行うためのレジスタ群を多数組設けるのは、プロセッサの構成の更なる複雑化と高コスト化を招き、現実的ではない。
これでは、専用のpath2が外部バス5を使用している間、プロセッサ以外の装置やALU2が外部バス5を使用できず、処理システムの性能が低下するばかりか、レジスタ群3’の値をメインメモリ4に転送している最中にさらに別のコンテキストスイッチが発生しても、まだ空いていないレジスタ群3’にはレジスタ群3の値を退避できないという課題がある。
ここで、この課題を解決するためには、レジスタ群3’をさらに多数組用意する方法が容易に考え付くが、ALU2が演算を行うためのレジスタ群を多数組設けるのは、プロセッサの構成の更なる複雑化と高コスト化を招き、現実的ではない。
さらに、従来のMPUや特許文献1のプロセッサにおいて、レジスタの退避および復元時には、退避/復元すべき全てのレジスタについて、レジスタ退避命令(例えばpush)やレジスタ復元命令(例えばpop)を行う必要があるため、ROM等の外部メモリに保存されたレジスタ退避/復元命令(プログラム)の読み取り(フェッチ)や、MPUコアの命令実行に時間が掛かり、その結果コンテキストスイッチに時間が掛かって、処理システムの性能が低下するという課題がある。
また、従来のMMUを備えるMPUにおいては、前記MMUレジスタの退避/復元も、外部RAMにアクセスする必要があるなど、その処理時間が長いという課題がある。
(なお、ここまで、符号は特許文献1中で付されているものを用いた)
(なお、ここまで、符号は特許文献1中で付されているものを用いた)
本発明に係るMPUは、上記課題を解決するために、以下の構成を備える。すなわち、複数のレジスタを有し、該レジスタを用いて処理および演算を行うMPUコアと、外部バスに接続可能に設けられ、該外部バスと前記レジスタ間でデータの授受が可能な外部バスインタフェースと、アドレスバスとデータバスとを有するレジスタ退避専用バスと、該レジスタ退避専用バスに接続されたRAMとを備え、前記MPUコアが、前記レジスタを退避するレジスタ退避命令を読み取った際には、該レジスタの値を、前記レジスタ退避専用バスを介して前記RAMに退避し、前記MPUコアが、前記レジスタを復元するレジスタ復元命令を読み取った際には、前記RAMに退避した前記レジスタの値を、前記レジスタ退避専用バスを介して読み出して、前記レジスタに復元することを特徴とする。
これによれば、レジスタの退避および復元は、レジスタ退避専用バスを介して行うため、高速に行うことができる。また、レジスタの退避および復元に外部バスを使用しないため、他の装置やMPUコアは、レジスタの退避/復元中にも外部バスを使用することができ、処理システムの性能を向上させることができる。また、アドレスバスとデータバスとを有するレジスタ退避専用バスと、RAMとを備えるといった簡単かつ低コストな構成で、レジスタの高速な退避/復元を実現できる。
これによれば、レジスタの退避および復元は、レジスタ退避専用バスを介して行うため、高速に行うことができる。また、レジスタの退避および復元に外部バスを使用しないため、他の装置やMPUコアは、レジスタの退避/復元中にも外部バスを使用することができ、処理システムの性能を向上させることができる。また、アドレスバスとデータバスとを有するレジスタ退避専用バスと、RAMとを備えるといった簡単かつ低コストな構成で、レジスタの高速な退避/復元を実現できる。
さらに、前記アドレスバスによる退避先のアドレスの指定をそれぞれ異ならせることで、前記RAMに、前記複数のレジスタの値を複数組退避可能であることを特徴とする。
これによれば、前記複数のレジスタの値を複数組退避可能であるため、コンテキストスイッチが多重に発生した場合にも、常にレジスタの高速な退避/復元を実現できる。
これによれば、前記複数のレジスタの値を複数組退避可能であるため、コンテキストスイッチが多重に発生した場合にも、常にレジスタの高速な退避/復元を実現できる。
また、前記データバスのバス幅は、全ての前記レジスタの合計ビット数以上であることを特徴とする。
これによれば、全てのレジスタの値を一度にRAMに保存することができ、高速な退避/復元を実現できる。
これによれば、全てのレジスタの値を一度にRAMに保存することができ、高速な退避/復元を実現できる。
また、前記MPUコアは、一つの前記レジスタ退避命令で、全ての前記レジスタを退避することを特徴とする。
また、前記MPUコアは、一つの前記レジスタ復元命令で、全ての前記レジスタを復元することを特徴とする。
これによれば、一つのレジスタ退避/復元命令で全てのレジスタの退避/復元を実行するため、レジスタの数分のレジスタ退避/復元命令を実行する必要のある従来のMPUに比較して、ROM等の外部メモリに保存されたレジスタ退避/復元命令(プログラム)の読み取り(フェッチ)や、MPUコアの命令実行回数を大幅に減らすことができ、レジスタの退避/復元をより短時間で行うことができる。
また、前記MPUコアは、一つの前記レジスタ復元命令で、全ての前記レジスタを復元することを特徴とする。
これによれば、一つのレジスタ退避/復元命令で全てのレジスタの退避/復元を実行するため、レジスタの数分のレジスタ退避/復元命令を実行する必要のある従来のMPUに比較して、ROM等の外部メモリに保存されたレジスタ退避/復元命令(プログラム)の読み取り(フェッチ)や、MPUコアの命令実行回数を大幅に減らすことができ、レジスタの退避/復元をより短時間で行うことができる。
また、エントリ情報が記憶されるMMUレジスタを有し、該エントリ情報に基づいてメモリ空間を管理するMMUを備え、前記MPUコアが、前記MMUレジスタを退避するMMUレジスタ退避命令を実行した際には、該MMUレジスタの値を、前記レジスタ退避専用バスを介して前記RAMに退避し、前記MPUコアが、前記MMUレジスタを復元するMMUレジスタ復元命令を実行した際には、前記RAMに退避した前記MMUレジスタの値を、前記レジスタ退避専用バスを介して読み出して、前記MMUレジスタに復元することを特徴とする。
これによれば、MMUレジスタの退避および復元は、レジスタ退避専用バスを介して行うため、高速に行うことができる。また、MMUレジスタの退避および復元に外部バスを使用しないため、他の装置やMPUコアは、MMUレジスタの退避/復元中にも外部バスを使用することができ、処理システムの性能を向上させることができる。
これによれば、MMUレジスタの退避および復元は、レジスタ退避専用バスを介して行うため、高速に行うことができる。また、MMUレジスタの退避および復元に外部バスを使用しないため、他の装置やMPUコアは、MMUレジスタの退避/復元中にも外部バスを使用することができ、処理システムの性能を向上させることができる。
本発明のMPUは、簡単かつ低コストな構成で、MPUのレジスタやMMUレジスタを、外部バスにアクセスすることなく、高速に退避および復元できるという利点がある。
以下、本発明に係るMPUを実施するための最良の形態を、添付図面に基づいて詳細に説明する。
図1は、本発明の一実施形態に係るMPU4を搭載した、処理システムとしての通信機器Aのブロック図である。また、図1には、MPU4の内部ブロック図も同時に示してある。
通信機器Aは、外部バス12と、外部バス12に接続されたMPU4と、外部バス12に接続された外部RAM6と、外部バス12に接続され、MPU4が実行するコンピュータプログラム等が記憶されたROM8と、外部バス12に接続され、図示しない他の機器とデータを送受信できる通信装置10とを備える。
通信機器Aは、通信装置10によって他の機器から受信したデータを、MPU4によってデータ変換処理して、処理したデータを、通信装置10により同一または別の機器に送信することができる。
通信機器Aは、通信装置10によって他の機器から受信したデータを、MPU4によってデータ変換処理して、処理したデータを、通信装置10により同一または別の機器に送信することができる。
通信機器Aの通信機能およびデータ変換処理機能を実現するための内部的な動作の概略を説明する。
通信装置10は、図示しない受信バッファを備え、他の機器からデータを受信すると、受信データを受信バッファに蓄えると共に、MPU4に対して受信割り込み信号を発生させる。MPU4は、この受信割り込み信号によって、内蔵した図示しないDMAC(Direct Memory Access Controller)を起動させ、受信バッファの受信データを外部バス12を介して外部RAM6にDMA転送させる。DMA転送が終了すると、DMACはMPU4にDMA転送終了の内部割り込みを発生させる。MPU4は、このDMA転送終了割り込みをトリガに、ROM8に記憶されたプログラムに基づいてデータ変換タスクを起動させ、外部RAM6上の受信データをデータ変換処理し、変換データを外部RAM6の他の領域に保存する。MPU4が実行する前記データ変換タスクは、続いて変換データ転送タスクを起動させる。MPU4が実行するこの変換データ転送タスクは、外部RAM6上に未送信(未転送)の変換データがある場合には、前記受信データのDMAとは別チャンネルのDMAを起動して、外部RAM6上の変換データを、通信装置10の図示しない送信バッファに転送する。この変換データのDMA転送終了割り込みが発生すると、MPU4はROM8に記憶されたプログラムに基づいて、MPU4の所定の出力ポートから通信装置10にデータ送信信号を出力し、通信装置10はこのデータ送信信号をトリガに、送信バッファの変換データを、他の機器に送信する。通信装置10は、送信終了時には、MPU4に対して送信終了割り込み信号を発生させ、MPU4は、この送信終了割り込み信号によって、変換データ転送タスクを再起動して、未送信(未転送)の変換データがあれば、それを送信バッファにDMA転送させる。
通信装置10は、図示しない受信バッファを備え、他の機器からデータを受信すると、受信データを受信バッファに蓄えると共に、MPU4に対して受信割り込み信号を発生させる。MPU4は、この受信割り込み信号によって、内蔵した図示しないDMAC(Direct Memory Access Controller)を起動させ、受信バッファの受信データを外部バス12を介して外部RAM6にDMA転送させる。DMA転送が終了すると、DMACはMPU4にDMA転送終了の内部割り込みを発生させる。MPU4は、このDMA転送終了割り込みをトリガに、ROM8に記憶されたプログラムに基づいてデータ変換タスクを起動させ、外部RAM6上の受信データをデータ変換処理し、変換データを外部RAM6の他の領域に保存する。MPU4が実行する前記データ変換タスクは、続いて変換データ転送タスクを起動させる。MPU4が実行するこの変換データ転送タスクは、外部RAM6上に未送信(未転送)の変換データがある場合には、前記受信データのDMAとは別チャンネルのDMAを起動して、外部RAM6上の変換データを、通信装置10の図示しない送信バッファに転送する。この変換データのDMA転送終了割り込みが発生すると、MPU4はROM8に記憶されたプログラムに基づいて、MPU4の所定の出力ポートから通信装置10にデータ送信信号を出力し、通信装置10はこのデータ送信信号をトリガに、送信バッファの変換データを、他の機器に送信する。通信装置10は、送信終了時には、MPU4に対して送信終了割り込み信号を発生させ、MPU4は、この送信終了割り込み信号によって、変換データ転送タスクを再起動して、未送信(未転送)の変換データがあれば、それを送信バッファにDMA転送させる。
なお、前記受信バッファが満杯となって受信データの取りこぼしが発生するのを防ぐため、前記受信割り込みは、DAM転送終了割り込みや送信終了割り込み等の他の割り込みよりも高い優先順位で発生するよう、MPU4内の図示しない割り込みコントローラを設定する。
また、外部RAM6がデータ変換タスクが保存した変換データで一杯にならないように、変換データ転送タスクは、データ変換タスクより高い実行優先順位となるよう、ROM8のプログラム中のOSを構成する。
また、外部RAM6がデータ変換タスクが保存した変換データで一杯にならないように、変換データ転送タスクは、データ変換タスクより高い実行優先順位となるよう、ROM8のプログラム中のOSを構成する。
通信機器Aにおいては、割り込みが発生した場合や、割り込み発生中により高優先順位の割り込みが発生した場合や、データ変換タスクの実行中に、より実行優先順位の高い変換データ転送タスクが起動された場合等、高優先順位の処理を行うコンテキストスイッチが発生した際に、レジスタ20aを退避すると共に、メモリマッピングを切り換えるためにMMUレジスタ22aを退避する必要が生じる。高優先順位の処理は、多重に発生しうるため、全レジスタ20aおよびMMUレジスタ22aの値を、複数組退避する必要もある。
そして、それらの高優先順位の処理が終了した際には、退避したレジスタおよびMMUレジスタの値を、レジスタ20aおよびMMUレジスタ22aに復元する必要が生じる。
そして、それらの高優先順位の処理が終了した際には、退避したレジスタおよびMMUレジスタの値を、レジスタ20aおよびMMUレジスタ22aに復元する必要が生じる。
次に、MPU4の内部構成について説明する。
MPU4は、64bitMPUであり、128個の64bitレジスタ20aを有し、レジスタ20aを用いて処理および演算を行うMPUコア20と、エントリ情報が記憶されるMMUレジスタ22aを有し、MMUレジスタ22aのエントリ情報に基づいてメモリ空間を管理するMMU22と、外部バス12に接続可能に設けられ、外部バス12と前記レジスタ20a間でデータの授受が可能な外部バスインタフェース24と、アドレスバスとデータバスとを有するレジスタ退避専用バス26と、レジスタ退避専用バス26に接続されたRAM28とを備える。
MPU4は、64bitMPUであり、128個の64bitレジスタ20aを有し、レジスタ20aを用いて処理および演算を行うMPUコア20と、エントリ情報が記憶されるMMUレジスタ22aを有し、MMUレジスタ22aのエントリ情報に基づいてメモリ空間を管理するMMU22と、外部バス12に接続可能に設けられ、外部バス12と前記レジスタ20a間でデータの授受が可能な外部バスインタフェース24と、アドレスバスとデータバスとを有するレジスタ退避専用バス26と、レジスタ退避専用バス26に接続されたRAM28とを備える。
そして、MPUコア20が、ROM8のプログラム中の、レジスタ20aを退避するレジスタ退避命令pushallを読み取った際には、全てのレジスタ20aの値を、レジスタ退避専用バス26を介してRAM28に退避する。また、MPUコア20が、レジスタ20aを復元するレジスタ復元命令popallを読み取った際には、RAM28に退避したレジスタの値を、レジスタ退避専用バス26を介して読み出して、全てのレジスタ20aに復元する。
なお、RAM28およびレジスタ退避専用バス26は、レジスタ20aおよびMMUレジスタ22a(後述)の退避および復元にのみ使用され、その他のデータの保存等には使用されない。
なお、RAM28およびレジスタ退避専用バス26は、レジスタ20aおよびMMUレジスタ22a(後述)の退避および復元にのみ使用され、その他のデータの保存等には使用されない。
なお、図2の説明図に示すように、レジスタ退避専用バス26のデータバスは、全て(128個)のレジスタ20aの合計ビット数に等しい、64bit×128個=8192bitのバス幅を有する。そして、全てのレジスタ20aの前記退避および復元は、RAM28への一回のアクセスで行われる。
なお、レジスタ退避専用バス26のデータバスのバス幅は、全てのレジスタ20aの合計ビット数より大きく構成してもよい。
なお、レジスタ退避専用バス26のデータバスのバス幅は、全てのレジスタ20aの合計ビット数より大きく構成してもよい。
また、MPUコア20は、MMUレジスタ22aを退避するMMUレジスタ退避命令を実行した際には、MMUレジスタ22aの値を、レジスタ退避専用バス26を介してRAM28に退避する。そして、MPUコア20は、MMUレジスタ22aを復元するMMUレジスタ復元命令を実行した際には、RAM28に退避したMMUレジスタの値を、レジスタ退避専用バス26を介して読み出して、MMUレジスタ22aに復元する。
なお、一つの包括レジスタ退避命令および一つの包括レジスタ復元命令で、MPUコア20のレジスタ20aとMMU22のMMUレジスタ22aとの両方を退避および復元できるよう構成してもよい。
さらに、レジスタ退避専用バス26のアドレスバスによる退避先のアドレスの指定をそれぞれ異ならせることで、RAM28に、全てのレジスタ20aおよびMMUレジスタ22aの値を、それぞれ複数組ずつ退避できるよう構成する。
これは、例えば以下の構成で実現できる。
これは、例えば以下の構成で実現できる。
すなわち、MPUコア20のレジスタ20aの中に、外部RAM6上のスタックをアクセスするための通常のスタックポインタ(SP)の他に、内部のRAM28にレジスタ20aを退避させるための、レジスタ退避用スタックポインタ(以下、RSPと呼ぶ)を設ける。RSPの初期値は、例えばRAM28の最終アドレスに設定しておく。
そして、MPUコア20は、レジスタ20aを退避する際には、アドレスバスによる退避(書き込み)先のアドレスの指定をRSPの指し示すアドレスに基づいて行って、データバスに全レジスタ20aの値を出力することで、レジスタ20aをRAM28に退避する。そして、退避後にはRSPの値を、退避した全レジスタ20aのサイズ分繰り上げて更新する。
また、MPUコア20は、レジスタ20aの復元の際には、アドレスバスによる復元(読み出し)先のアドレスの指定をRSPの指し示すアドレスに基づいて行って、RSPの指し示すRAM28のアドレスから、データバスを介して退避したレジスタの値を読み出して、レジスタ20aに復元させ、復元後にはRSPの値を、復元した全レジスタ20aのサイズ分繰り下げて更新する。
そして、MPUコア20は、レジスタ20aを退避する際には、アドレスバスによる退避(書き込み)先のアドレスの指定をRSPの指し示すアドレスに基づいて行って、データバスに全レジスタ20aの値を出力することで、レジスタ20aをRAM28に退避する。そして、退避後にはRSPの値を、退避した全レジスタ20aのサイズ分繰り上げて更新する。
また、MPUコア20は、レジスタ20aの復元の際には、アドレスバスによる復元(読み出し)先のアドレスの指定をRSPの指し示すアドレスに基づいて行って、RSPの指し示すRAM28のアドレスから、データバスを介して退避したレジスタの値を読み出して、レジスタ20aに復元させ、復元後にはRSPの値を、復元した全レジスタ20aのサイズ分繰り下げて更新する。
なお、全MMUレジスタ22aを複数組退避できるようにするには、同様に、MMUレジスタ退避用スタックポインタを設けて、RSPと同様の管理を行えばよい。
なお、レジスタ20aとMMUレジスタ22aとを常に同時に退避/復元するよう構成した場合には、両者に共通の退避用スタックポインタを用いて、レジスタ20aの値とMMUレジスタ22aの値とを、連続するアドレスに保存するようにしてもよい。
なお、レジスタ20aとMMUレジスタ22aとを常に同時に退避/復元するよう構成した場合には、両者に共通の退避用スタックポインタを用いて、レジスタ20aの値とMMUレジスタ22aの値とを、連続するアドレスに保存するようにしてもよい。
上記構成をもつMPU4を備えた通信機器Aにおいては、コンテキストスイッチが発生した際、外部バス12を介することなく、レジスタ退避専用バス26を介してレジスタ20aおよびMMUレジスタ22aを退避および復元できる。従って、MPUコア20やDMACや通信装置10が外部バス12を使用している最中でも退避および復元が遅延されることがなく、また、退避および復元中にもMPUコア20や前記DMACや通信装置10が外部バス12を使用することができるため、コンテキストスイッチを高速に短時間で完了できると共に、処理システム全体の処理性能を向上させることができる。
また、一つのレジスタ退避命令および一つのレジスタ復元命令で全てのレジスタ20aおよびMMUレジスタ22aを退避および復元できるため、レジスタ20aおよびMMUレジスタ22aの数分のレジスタ退避および復元命令を実行する必要のある従来のMPUに比較して、退避および復元処理を短時間で完了することができる。
さらに、レジスタ退避専用バス26のデータバスは全てのレジスタ20aのサイズ分のバス幅を有しているため、レジスタ20aの退避および復元は、RAM28への一回のRAMアクセスで実現でき、退避および復元処理をより短時間で完了することができる。
さらに、レジスタ退避専用バス26のデータバスは全てのレジスタ20aのサイズ分のバス幅を有しているため、レジスタ20aの退避および復元は、RAM28への一回のRAMアクセスで実現でき、退避および復元処理をより短時間で完了することができる。
また、本MPU4は、レジスタ退避専用バスとRAMとRSPを設けるといった簡単な構成で実現でき、簡単かつ低コストに構成および製造できるという利点がある。
上記実施形態は、本発明を通信機器に応用する例であるが、本発明に係るMPUは、通信機器に限らず、例えばパソコン等、MPUを搭載するあらゆる処理システムに応用できることは言うまでもない。
なお、本実施形態は、あくまで説明の簡単のために、非常に単純な処理システム(通信機器)の構成としたが、本発明に係るMPUは、割り込みやタスク切り換え等のコンテキストスイッチが、より多重かつ頻繁に発生する処理システムに採用するほど、より大きな処理性能の向上効果を得ることができる。
なお、本実施形態は、あくまで説明の簡単のために、非常に単純な処理システム(通信機器)の構成としたが、本発明に係るMPUは、割り込みやタスク切り換え等のコンテキストスイッチが、より多重かつ頻繁に発生する処理システムに採用するほど、より大きな処理性能の向上効果を得ることができる。
A 通信機器(処理システム)
4 MPU
6 外部RAM
8 ROM
10 通信装置(他の装置)
12 外部バス
20 MPUコア
20a レジスタ
22 MMU
22a MMUレジスタ
24 外部バスインタフェース
26 レジスタ退避専用バス
28 RAM
4 MPU
6 外部RAM
8 ROM
10 通信装置(他の装置)
12 外部バス
20 MPUコア
20a レジスタ
22 MMU
22a MMUレジスタ
24 外部バスインタフェース
26 レジスタ退避専用バス
28 RAM
Claims (6)
- 複数のレジスタを有し、該レジスタを用いて処理および演算を行うMPUコアと、
外部バスに接続可能に設けられ、該外部バスと前記レジスタ間でデータの授受が可能な外部バスインタフェースと、
アドレスバスとデータバスとを有するレジスタ退避専用バスと、
該レジスタ退避専用バスに接続されたRAMとを備え、
前記MPUコアが、前記レジスタを退避するレジスタ退避命令を読み取った際には、該レジスタの値を、前記レジスタ退避専用バスを介して前記RAMに退避し、
前記MPUコアが、前記レジスタを復元するレジスタ復元命令を読み取った際には、前記RAMに退避した前記レジスタの値を、前記レジスタ退避専用バスを介して読み出して、前記レジスタに復元することを特徴とするMPU。 - 前記アドレスバスによる退避先のアドレスの指定をそれぞれ異ならせることで、前記RAMに、前記複数のレジスタの値を複数組退避可能であることを特徴とする請求項1記載のMPU。
- 前記データバスのバス幅は、全ての前記レジスタの合計ビット数以上であることを特徴とする請求項1または2記載のMPU。
- 前記MPUコアは、一つの前記レジスタ退避命令で、全ての前記レジスタを退避することを特徴とする請求項1〜3のうちのいずれか一項記載のMPU。
- 前記MPUコアは、一つの前記レジスタ復元命令で、全ての前記レジスタを復元することを特徴とする請求項1〜4のうちのいずれか一項記載のMPU。
- エントリ情報が記憶されるMMUレジスタを有し、該エントリ情報に基づいてメモリ空間を管理するMMUを備え、
前記MPUコアが、前記MMUレジスタを退避するMMUレジスタ退避命令を実行した際には、該MMUレジスタの値を、前記レジスタ退避専用バスを介して前記RAMに退避し、
前記MPUコアが、前記MMUレジスタを復元するMMUレジスタ復元命令を実行した際には、前記RAMに退避した前記MMUレジスタの値を、前記レジスタ退避専用バスを介して読み出して、前記MMUレジスタに復元することを特徴とする請求項1〜5のうちのいずれか一項記載のMPU。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2003277540A JP2005044124A (ja) | 2003-07-22 | 2003-07-22 | Mpu |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2003277540A JP2005044124A (ja) | 2003-07-22 | 2003-07-22 | Mpu |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2005044124A true JP2005044124A (ja) | 2005-02-17 |
Family
ID=34264239
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2003277540A Pending JP2005044124A (ja) | 2003-07-22 | 2003-07-22 | Mpu |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP2005044124A (ja) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2012234556A (ja) * | 2005-10-20 | 2012-11-29 | Qualcomm Inc | スタックド・レジスタ・ファイルのレジスタ・セーブ・エンジンのためのバッキング記憶装置バッファ |
-
2003
- 2003-07-22 JP JP2003277540A patent/JP2005044124A/ja active Pending
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2012234556A (ja) * | 2005-10-20 | 2012-11-29 | Qualcomm Inc | スタックド・レジスタ・ファイルのレジスタ・セーブ・エンジンのためのバッキング記憶装置バッファ |
JP2014130606A (ja) * | 2005-10-20 | 2014-07-10 | Qualcomm Incorporated | スタックド・レジスタ・ファイルのレジスタ・セーブ・エンジンのためのバッキング記憶装置バッファ |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110647480B (zh) | 数据处理方法、远程直接访存网卡和设备 | |
US7844752B2 (en) | Method, apparatus and program storage device for enabling multiple asynchronous direct memory access task executions | |
US7096296B2 (en) | Supercharge message exchanger | |
CN109726163B (zh) | 一种基于spi的通信系统、方法、设备和储存介质 | |
CN110297797B (zh) | 异构协议转换装置和方法 | |
US11341087B2 (en) | Single-chip multi-processor communication | |
JP2006338538A (ja) | ストリームプロセッサ | |
US10114774B2 (en) | Data transfer method, parallel processing device, and recording medium | |
JPWO2012081085A1 (ja) | 割込み要因管理装置及び割込み処理システム | |
JP6954535B2 (ja) | 通信装置 | |
US8706923B2 (en) | Methods and systems for direct memory access (DMA) in-flight status | |
JP2006243811A (ja) | Dma転送システム及びdma転送方法 | |
US8909823B2 (en) | Data processing device, chain and method, and corresponding recording medium for dividing a main buffer memory into used space and free space | |
US8996772B1 (en) | Host communication device and method with data transfer scheduler | |
US20140195746A1 (en) | Dma channels | |
JP2005044124A (ja) | Mpu | |
US10733127B2 (en) | Data transmission apparatus and data transmission method | |
KR102206313B1 (ko) | 시스템 인터커넥트 및 시스템 인터커넥트의 동작 방법 | |
JP2009048298A (ja) | 情報処理装置、情報処理方法、当該情報処理方法を実行するためのプログラム及び当該プログラムを記録した媒体、並びにdmaコントローラ、dma転送方法、当該dma転送方法を実行するためのプログラム及び当該プログラムを記録した媒体 | |
JP2009157731A (ja) | 仮想計算機システムおよび仮想計算機システムの制御方法 | |
JP5093986B2 (ja) | プロセッサ間通信方法及びプロセッサ間通信装置 | |
US20240168894A1 (en) | Data transmission device and method | |
US10853287B2 (en) | Information processing system, semiconductor integrated circuit, and information processing method | |
JP5587530B2 (ja) | エンジン・プロセッサ連携システム及び連携方法 | |
KR100849531B1 (ko) | 디지털 신호 처리 장치에서의 직접 메모리 액세스 방법 및이를 이용한 디지털 신호 처리 장치 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20060621 |
|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20080627 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20080715 |
|
A02 | Decision of refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A02 Effective date: 20081209 |