JPWO2013145282A1 - データ処理装置 - Google Patents

データ処理装置 Download PDF

Info

Publication number
JPWO2013145282A1
JPWO2013145282A1 JP2014507243A JP2014507243A JPWO2013145282A1 JP WO2013145282 A1 JPWO2013145282 A1 JP WO2013145282A1 JP 2014507243 A JP2014507243 A JP 2014507243A JP 2014507243 A JP2014507243 A JP 2014507243A JP WO2013145282 A1 JPWO2013145282 A1 JP WO2013145282A1
Authority
JP
Japan
Prior art keywords
data processing
execution start
instruction
mcu
start address
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.)
Granted
Application number
JP2014507243A
Other languages
English (en)
Other versions
JP5900606B2 (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.)
Fujitsu Ltd
Original Assignee
Fujitsu Ltd
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 Fujitsu Ltd filed Critical Fujitsu Ltd
Publication of JPWO2013145282A1 publication Critical patent/JPWO2013145282A1/ja
Application granted granted Critical
Publication of JP5900606B2 publication Critical patent/JP5900606B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/30003Arrangements for executing specific machine instructions
    • G06F9/3004Arrangements for executing specific machine instructions to perform operations on memory
    • G06F9/30043LOAD or STORE instructions; Clear instruction
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • G06F15/16Combinations of two or more digital computers each having at least an arithmetic unit, a program unit and a register, e.g. for a simultaneous processing of several programs
    • G06F15/163Interprocessor communication
    • G06F15/167Interprocessor communication using a common memory, e.g. mailbox
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/30003Arrangements for executing specific machine instructions
    • G06F9/30007Arrangements for executing specific machine instructions to perform operations on data operands
    • G06F9/30036Instructions to perform operations on packed data, e.g. vector, tile or matrix operations
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/34Addressing or accessing the instruction operand or the result ; Formation of operand address; Addressing modes

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Hardware Design (AREA)
  • Mathematical Physics (AREA)
  • Debugging And Monitoring (AREA)
  • Multi Processors (AREA)
  • Advance Control (AREA)

Abstract

データ処理装置は、データ処理する複数のコントローラ(201〜203)と、複数のアドレスにそれぞれ待機命令及びデータ処理命令を記憶するプログラムメモリ(212)と、前記複数のコントローラの異なる実行開始アドレスを記憶するキュー(213)とを有し、前記複数のコントローラは、前記キューに順次アクセスすると、前記順次アクセスした順番により前記キューから異なる実行開始アドレスを入力し、前記プログラムメモリ内の前記入力した異なる実行開始アドレスから命令の実行を開始し、前記データ処理命令及び前記待機命令を繰り返し実行し、前記複数のコントローラは、相互に前記データ処理命令を実行するタイミングが異なる。

Description

本発明は、データ処理装置に関する。
ハードウェアをリセットし所定のアドレスからブートアクセスを開始することを指示するために操作される外部ピンを少なくとも2個有し、その外部ピンを選択操作することにより、その外部ピンに相当するリセットベクタアドレスをリードし、そのアドレスからブートアクセスを開始するリセットベクタ切替え方法が知られている(例えば、特許文献1参照)。
特開平11−31068号公報
サンプリング処理を、マルチプロセッサを用いてリアルタイムに並列処理する場合、各プロセッサの処理開始タイミングをサンプリング周期だけずらす必要がある。この場合、オペレーティングシステム(OS:Operating System)のような高機能なハードウェア管理機構を用いて、プロセッサ間の同期をとり、サンプリング周期の時間だけ待機してから処理を開始することにより、上記の処理の実現が可能である。しかし、そのような実現方法は、OSが動作する程度のハードウェア資源を想定している。
本発明の目的は、簡単な構成で複数のコントローラがデータ処理することができるデータ処理装置を提供することである。
データ処理装置は、データ処理する複数のコントローラと、複数のアドレスにそれぞれ待機命令及びデータ処理命令を記憶するプログラムメモリと、前記複数のコントローラの異なる実行開始アドレスを記憶するキューとを有し、前記複数のコントローラは、前記キューに順次アクセスすると、前記順次アクセスした順番により前記キューから異なる実行開始アドレスを入力し、前記プログラムメモリ内の前記入力した異なる実行開始アドレスから命令の実行を開始し、前記データ処理命令及び前記待機命令を繰り返し実行し、前記複数のコントローラは、相互に前記データ処理命令を実行するタイミングが異なる。
簡単な構成で、複数のコントローラがデータ処理命令を実行するタイミングを異ならせることができる。
図1は、第1の実施形態によるデータ処理装置の構成例を示す図である。 図2は、図1のMCU群の構成例を示す図である。 図3は、図2の第1のMCU、第2のMCU及び第3のMCUの処理例を示すタイミングチャートである。 図4は、図2のキューの構成例を示す図である。 図5は、図2のMCUの構成例を示す図である。 図6は、第1のMCU〜第NのMCU及びキューの処理例を示すフローチャートである。 図7は、第2の実施形態によるMCU群の構成例を示す図である。
(第1の実施形態)
図1は、第1の実施形態によるデータ処理装置101の構成例を示す図である。データ処理装置102は親機のデータ処理装置(携帯端末)であり、データ処理装置101は子機のデータ処理装置(センサノード)である。データ処理装置101は、センサ112を有し、データ処理装置102に対してセンシングデータを無線送信することができる。
データ処理装置101は、発電ユニット111、センサ112、電力管理ユニット(PMU:Power Management Unit)113、マイクロコントローラユニット(MCU:Micro Controller Unit)群114及び高周波(RF:Radio Frequency)回路115を有する。
発電ユニット111は、例えば環境発電(エネルギーハーベスタ)ユニットであり、自然エネルギーを電力P1に変換し、電力P1をPMU113に出力する。ここで、自然エネルギーは、太陽光エネルギー、携帯電話等の無線電波エネルギー、又は温度差エネルギー等である。発電ユニット111は、自然エネルギーを用いるので、小さな電力P1しか生成することができず、例えば、ピーク・トゥ・ピークで2〜3Vの電圧かつ数十μWの電力を発電可能である。
センサ112は、種々のセンシングデータD1を検出し、センシングデータD1をMCU群114に出力する。例えば、センサ112は、温度を検出、又は電波の成分等を検出する。なお、センサ112は、発電ユニット111と一体化したものでもよいし、発電ユニット111と別個のものでもよい。
PMU113は、発電ユニット111から供給された電力P1を入力し、MCU群114に供給する電力P2及びRF回路115に供給する電力P3を管理する。例えば、MPU113は、所定条件を満たすと、電力P2及びP3をそれぞれMCU群114及びRF回路115に供給する。
MCU群114は、複数のMCUを有し、センシングデータD1を処理し、送信データD2をRF回路115に出力する。例えば、MCU群114は、アナログのセンシングデータD1をサンプリング処理し、デジタルの送信データD2を生成する。
RF回路115は、送信データD2を高周波信号に変換し、データ処理装置102に無線送信する。
図2は、図1のMCU群114の構成例を示す図である。MCU群114は、第1のMCU201、第2のMCU202、第3のMCU203、バス211、プログラムメモリ212及びキュー213を有する。上記のように、発電ユニット111が発電可能な電力は限られた電力である。データ処理装置101は、そのような状況で目標の処理性能を実現するため、電力性能比の高いマルチプロセッサ構成を有する。マルチプロセッサ構成は、複数のMCU201〜203を有する。
図3は、図2の第1のMCU201、第2のMCU202及び第3のMCU203の処理例を示すタイミングチャートである。第1のMCU201、第2のMCU202及び第3のMCU203の並列処理により、アナログのセンシングデータD1を所望のサンプリング周期Tでサンプリング処理し、送信データD2を生成する。
第1のMCU201は、アナログのセンシングデータD1のサンプリングポイントSP0からサンプリング処理を開始する。第2のMCU202は、アナログのセンシングデータD1のサンプリングポイントSP1からサンプリング処理を開始する。サンプリングポイントSP1は、サンプリングポイントSP0に対して、時間Tだけ遅延したタイミングのサンプリングポイントである。第3のMCU203は、アナログのセンシングデータD1のサンプリングポイントSP2からサンプリング処理を開始する。サンプリングポイントSP2は、サンプリングポイントSP1に対して、時間Tだけ遅延したタイミングのサンプリングポイントである。
第1のMCU201は、アナログのセンシングデータD1に対して、3×Tのサンプリング周期で、サンプリングポイントSP0、SP3、SP6、SP9、SP12、SP15及びSP18でサンプリング処理する。
第2のMCU202は、アナログのセンシングデータD1に対して、3×Tのサンプリング周期で、サンプリングポイントSP1、SP4、SP7、SP10、SP13、SP16及びSP19でサンプリング処理する。
第3のMCU203は、アナログのセンシングデータD1に対して、3×Tのサンプリング周期で、サンプリングポイントSP2、SP5、SP8、SP11、SP14及びSP17でサンプリング処理する。
その結果、MCU群114は、20個のサンプリングポイントSP0〜SP19のデータを送信データD2として生成することができる。20個のサンプリングポイントSP0〜SP19のサンプリング周期はTである。
以上のように、第1のMCU201、第2のMCU202及び第3のMCU203の並列処理により、アナログのセンシングデータD1を所望のサンプリング周期Tでサンプリング処理し、送信データD2を生成することができる。
第1のMCU201、第2のMCU202及び第3のMCU203は、相互にサンプリング処理のタイミングが時間Tずつずれている。この時間Tずつずらす方法を以下、説明する。
時間を計測するためのハードウェア、又は同期処理を行うソフトウェアを用いれば、時間Tずつずらすことが可能である。しかし、この方法では、ハードウェアの構成が複雑になったり、複雑なソフトウェアを記憶するためのメモリの記憶容量が大きくなってしまう。この方法は、スマートフォン等のように、動作周波数が1GHz以上、消費電力が約1W、半導体チップのダイサイズが百〜数百mmの比較的大型のデータ処理装置であれば実現可能である。
しかし、図1のデータ処理装置101は、自然エネルギーの発電ユニット111を用いるため、動作周波数が数十MHz、消費電力が数十μW、半導体チップのダイサイズが数十mmの比較的超小型のデータ処理装置である。このようなデータ処理装置101では、上記のような複雑なハードウェア又は複雑なソフトウェアを用いる方法を採用することができない。以下、簡単な構成で、第1のMCU201、第2のMCU202及び第3のMCU203の処理をサンプリング周期Tずつずらす方法を説明する。
図2において、プログラムメモリ212は、0番地(16進数)のアドレスにキュー読込み命令を記憶し、その次のアドレスにジャンプ命令を記憶し、20番地(16進数)のアドレスに待機命令を記憶し、その次の30番地のアドレスに待機命令を記憶し、その次の40番地(16進数)のアドレスにサンプリング処理(データ処理)命令を記憶し、その次のアドレスに待機命令を記憶し、その次のアドレスに「40番地(16進数)へのジャンプ命令」を記憶する。第1のMCU201、第2のMCU202及び第3のMCU203が1個のプログラムメモリ212を共有することにより、プログラムメモリ212の容量を削減することができる。
図4は、図2のキュー213の構成例を示す図である。キュー213は、制御部401、記憶部402及びオフセットレジスタ403を有する。記憶部402は、不揮発性メモリであり、複数のエントリ番号「0」〜「2」に複数のMCU201〜203の異なる実行開始アドレスを記憶する。MCU201〜203は、キュー213へのアクセス順で、エントリ番号「0」〜「2」のうちのどのエントリ番号の実行開始アドレスが割り当てられるのかが決まる。例えば、エントリ番号「0」には、第1の実行開始アドレス「40」番地(16進数)が記憶され、エントリ番号「1」には、第2の実行開始アドレス「30」番地(16進数)が記憶され、エントリ番号「2」には、第3の実行開始アドレス「20」番地(16進数)が記憶されている。オフセットレジスタ403は、揮発性メモリであり、記憶部402のエントリ番号「0」〜「2」のうちの1個のエントリ番号を記憶する。
図5は、図2のMCU201〜203の構成例を示す図である。MCU201〜203は、それぞれ、入出力(I/O:Input/Output)回路501、中央処理装置(CPU:Central Processing Unit)502及びスタックメモリ503を有する。入出力回路501は、センサ112から供給されるセンシングデータD1を入力し、中央処理装置502に出力する。スタックメモリ503は、中央処理装置502の作業用メモリ領域である。中央処理装置502は、スタックメモリ503を用いて、プログラムメモリ212に記憶されている命令を実行し、図3のサンプリング処理(データ処理)等の処理を行う。
図6は、第1のMCU〜第NのMCU及びキュー213の処理例を示すフローチャートである。以下、Nが3の場合を例に説明する。PMU113は、所定条件を満たすと、MCU群114に電力P2を供給し、RF回路115に電力P3を供給する。所定条件は、例えば、発電ユニット111の発電電力P1が閾値以上になる条件、又はセンサ112が出力するセンシングデータD1が所定範囲内になる条件等である。
各MCU201〜203は、電源オン時に初期化され、プログラムメモリ212の先頭アドレスから命令を読み出し、実行する。すなわち、MCU群114に電力P2の供給が開始されると、第1のMCU201、第2のMCU202及び第3のMCU203は、それぞれ、ステップS601、S611、S621で、プログラムメモリ212の0番地(16進数)のアドレスに記憶されているキュー読込み命令を読み出し、そのキュー読込み命令を実行する。具体的には、第1のMCU201、第2のMCU202及び第3のMCU203は、キュー213に記憶されている実行開始アドレスを読み出す。ただし、キュー213は1個しかないため、第1のMCU201、第2のMCU202及び第3のMCU203は、同時に、キュー213から実行開始アドレスを読み出すことができず、アクセス順に、順次、キュー213から実行開始アドレスを読み出す。すなわち、各MCU201〜203は、電源オン時に、ほぼ同時に、キュー213に対してアクセスを行い、キュー213は、MCU201〜203からのアクセスに対して逐次的に応答する。
第1のMCU201は、ステップS601で、キュー213から実行開始アドレスをロードするため、0番地のアドレスのキュー読込み命令を実行し、キュー213にアクセスする。第2のMCU202も、ステップS611で、キュー213から実行開始アドレスをロードするため、0番地のアドレスのキュー読込み命令を実行し、キュー213にアクセスする。第3のMCU203も、ステップS621で、キュー213から実行開始アドレスをロードするため、0番地のアドレスのキュー読込み命令を実行し、キュー213にアクセスする。
例えば、キュー213内の制御部401が最初に第1のMCU201のアクセスを受け付け、2番目に第2のMCU202のアクセスを受け付け、3番目に第3のMCU203のアクセスを受け付ける場合を例に説明する。
その場合、キュー213の制御部401は、最初に、上記の第1のMCU201のアクセスを受け付ける。すると、キュー213の制御部401は、ステップS631で、オフセットレジスタ403に記憶されているエントリ番号をロードする。オフセットレジスタ403は、電力P2の供給が開始されると、記憶するエントリ番号がエントリ番号「0」に初期化される。したがって、制御部401は、オフセットレジスタ403からエントリ番号「0」をロードし、記憶部402において、そのロードしたエントリ番号「0」に記憶されている第1の実行開始アドレス「40」番地(16進数)を記憶部402からロードし、その第1の実行開始アドレス「40」番地(16進数)を第1のMCU201に送信する。第1のMCU201は、ステップS601で、キュー213から第1の実行開始アドレス「40」番地(16進数)を受信する。次に、キュー213の制御部401は、ステップS633で、オフセットレジスタ403のエントリ番号を「0」から「1」にインクリメントする。
次に、キュー213の制御部401は、上記の第2のMCU202のアクセスを受け付ける。すると、キュー213の制御部401は、ステップS631で、オフセットレジスタ403に記憶されているエントリ番号「1」をロードし、記憶部402において、そのロードしたエントリ番号「1」に記憶されている第2の実行開始アドレス「30」番地(16進数)を記憶部402からロードし、その第2の実行開始アドレス「30」番地(16進数)を第2のMCU202に送信する。第2のMCU202は、ステップS611で、キュー213から第2の実行開始アドレス「30」番地(16進数)を受信する。次に、キュー213の制御部401は、ステップS633で、オフセットレジスタ403のエントリ番号を「1」から「2」にインクリメントする。
次に、キュー213の制御部401は、上記の第3のMCU203のアクセスを受け付ける。すると、キュー213の制御部401は、ステップS631で、オフセットレジスタ403に記憶されているエントリ番号「2」をロードし、記憶部402において、そのロードしたエントリ番号「2」に記憶されている第3の実行開始アドレス「20」番地(16進数)を記憶部402からロードし、その第3の実行開始アドレス「20」番地(16進数)を第3のMCU203に送信する。第3のMCU203は、ステップS621で、キュー213から第3の実行開始アドレス「20」番地(16進数)を受信する。次に、キュー213の制御部401は、ステップS633で、オフセットレジスタ403のエントリ番号を「2」から「3」にインクリメントする。
MUC201〜203がN個ある場合には、第NのMCUまで、上記と同様の処理を繰り返す。以上のように、制御部401は、複数のMCU201〜203から順次アクセスされると、記憶部402内のオフセットレジスタ403に記憶されているエントリ番号から実行開始アドレスを読み出し、その読み出した実行開始アドレスをアクセスしたMCU201〜203のうちのいずれかのMCUに出力し、オフセットレジスタ403に記憶されているエントリ番号を次のエントリ番号に書き換える。具体的には、制御部401は、MCU201〜203のうちのいずれかのMCUからアクセスされると、オフセットレジスタ403に記憶されているエントリ番号をインクリメントする。
第1のMCU201は、ステップS602で、プログラムメモリ212の「キュー読込み命令」の次のアドレスのジャンプ命令を実行し、ステップS601でロード(受信)した第1の実行開始アドレス「40」番地(16進数)にジャンプする。プログラムメモリ212の第1の実行開始アドレス「40」番地(16進数)は、サンプリング処理命令であり、待機命令ではないので、ステップS603を省略し、ステップS602からステップS604に進む。なお、ステップS603は、第1のMUC201がキュー213へアクセスする順番が2番目以降である場合に行う処理である。第1のMCU201は、ステップS604で、第1の実行開始アドレス「40」番地(16進数)のサンプリング処理(データ処理)命令を実行することにより、センシングデータD1のサンプリングポイントSP0(図3)のサンプリング処理(データ処理)を行い、送信データD2をRF回路115に出力する。次に、第1のMCU201は、ステップS605で、プログラムメモリ212の次のアドレスの待機命令を実行し、図3の約3×Tの時間だけ待機する。その後、第1のMCU201は、プログラムメモリ212の次のアドレスの「40番地(16進数)へのジャンプ命令」を実行し、40番地(16進数)にジャンプする。次に、第1のMCU201は、ステップS604に戻り、「40」番地(16進数)のサンプリング処理(データ処理)命令を実行することにより、センシングデータD1のサンプリングポイントSP3(図3)のサンプリング処理(データ処理)を行い、送信データD2をRF回路115に出力する。次に、第1のMCU201は、ステップS605で、プログラムメモリ212の次のアドレスの待機命令を実行し、図3の約3×Tの時間だけ待機する。その後、第1のMCU201は、プログラムメモリ212の次のアドレスの「40番地(16進数)へのジャンプ命令」を実行し、40番地(16進数)にジャンプする。次に、第1のMCU201は、ステップS604に戻り、「40」番地(16進数)のサンプリング処理(データ処理)命令を実行することにより、センシングデータD1のサンプリングポイントSP6(図3)のサンプリング処理(データ処理)を行い、送信データD2をRF回路115に出力する。以下、上記と同様の処理を繰り返し、第1のMCU201は、センシングデータD1のサンプリングポイントSP9、SP12、SP15及びSP18等(図3)のサンプリング処理(データ処理)を行い、送信データD2をRF回路115に出力する。以上のように、第1のMCU201は、3×Tのサンプリング周期で、サンプリングポイントSP0、SP3、SP6、SP9、SP12、SP15及びSP18等のサンプリング処理を行うことができる。
第2のMCU202は、ステップS612で、プログラムメモリ212の「キュー読込み命令」の次のアドレスのジャンプ命令を実行し、ステップS611でロード(受信)した第2の実行開始アドレス「30」番地(16進数)にジャンプする。次に、第2のMCU202は、ステップS613で、第2の実行開始アドレス「30」番地(16進数)の待機命令を実行することにより、図3の約Tの時間だけ待機する。次に、第2のMCU202は、ステップS614で、次のアドレスの「40」番地(16進数)のサンプリング処理(データ処理)命令を実行することにより、センシングデータD1のサンプリングポイントSP1(図3)のサンプリング処理(データ処理)を行い、送信データD2をRF回路115に出力する。次に、第2のMCU202は、ステップS615で、プログラムメモリ212の次のアドレスの待機命令を実行し、図3の約3×Tの時間だけ待機する。その後、第2のMCU202は、プログラムメモリ212の次のアドレスの「40番地(16進数)へのジャンプ命令」を実行し、40番地(16進数)にジャンプする。次に、第2のMCU202は、ステップS614に戻り、「40」番地(16進数)のサンプリング処理(データ処理)命令を実行することにより、センシングデータD1のサンプリングポイントSP4(図3)のサンプリング処理(データ処理)を行い、送信データD2をRF回路115に出力する。次に、第2のMCU202は、ステップS615で、プログラムメモリ212の次のアドレスの待機命令を実行し、図3の約3×Tの時間だけ待機する。その後、第2のMCU202は、プログラムメモリ212の次のアドレスの「40番地(16進数)へのジャンプ命令」を実行し、40番地(16進数)にジャンプする。次に、第2のMCU202は、ステップS614に戻り、「40」番地(16進数)のサンプリング処理(データ処理)命令を実行することにより、センシングデータD1のサンプリングポイントSP7(図3)のサンプリング処理(データ処理)を行い、送信データD2をRF回路115に出力する。以下、上記と同様の処理を繰り返し、第2のMCU202は、センシングデータD1のサンプリングポイントSP10、SP13、SP16及びSP19等(図3)のサンプリング処理(データ処理)を行い、送信データD2をRF回路115に出力する。以上のように、第2のMCU202は、3×Tのサンプリング周期で、サンプリングポイントSP1、SP4、SP7、SP10、SP13、SP16及びSP19等のサンプリング処理を行うことができる。
第3のMCU203は、ステップS622で、プログラムメモリ212の「キュー読込み命令」の次のアドレスのジャンプ命令を実行し、ステップS621でロード(受信)した第3の実行開始アドレス「20」番地(16進数)にジャンプする。次に、第3のMCU203は、ステップS623で、第3の実行開始アドレス「20」番地(16進数)の待機命令を実行することにより図3の約Tの時間だけ待機し、その次のアドレスの「30」番地(16進数)の待機命令を実行することにより図3の約Tの時間だけ待機する。すなわち、第3のMCU203は、ステップS623で、図3の約2×Tの時間だけ待機する。次に、第3のMCU203は、ステップS624で、次のアドレスの「40」番地(16進数)のサンプリング処理(データ処理)命令を実行することにより、センシングデータD1のサンプリングポイントSP2(図3)のサンプリング処理(データ処理)を行い、送信データD2をRF回路115に出力する。次に、第3のMCU203は、ステップS625で、プログラムメモリ212の次のアドレスの待機命令を実行し、図3の約3×Tの時間だけ待機する。その後、第3のMCU203は、プログラムメモリ212の次のアドレスの「40番地(16進数)へのジャンプ命令」を実行し、40番地(16進数)にジャンプする。次に、第3のMCU203は、ステップS624に戻り、「40」番地(16進数)のサンプリング処理(データ処理)命令を実行することにより、センシングデータD1のサンプリングポイントSP5(図3)のサンプリング処理(データ処理)を行い、送信データD2をRF回路115に出力する。次に、第3のMCU203は、ステップS625で、プログラムメモリ212の次のアドレスの待機命令を実行し、図3の約3×Tの時間だけ待機する。その後、第3のMCU203は、プログラムメモリ212の次のアドレスの「40番地(16進数)へのジャンプ命令」を実行し、40番地(16進数)にジャンプする。次に、第3のMCU203は、ステップS624に戻り、「40」番地(16進数)のサンプリング処理(データ処理)命令を実行することにより、センシングデータD1のサンプリングポイントSP8(図3)のサンプリング処理(データ処理)を行い、送信データD2をRF回路115に出力する。以下、上記と同様の処理を繰り返し、第3のMCU203は、センシングデータD1のサンプリングポイントSP11、SP14及びSP17等(図3)のサンプリング処理(データ処理)を行い、送信データD2をRF回路115に出力する。以上のように、第3のMCU203は、3×Tのサンプリング周期で、サンプリングポイントSP2、SP5、SP8、SP11、SP14及びSP17等のサンプリング処理を行うことができる。
以上のように、MCU群114は、複数のMCU201〜203の並列処理により、サンプリング周期Tで、サンプリングポイントSP0〜SP19等のサンプリング処理を行うことができる。複数のMCU201〜203は、相互に、サンプリング処理(データ処理)命令を繰り返し実行する周期3×Tが同じである。MCU群114は、電力P2の供給が終了するまで、上記の処理を繰り返す。なお、MCU201〜203の数Nは、3個に限定されず、2個以上であればよい。
複数のMCU201〜203は、キュー213に順次アクセスすると、順次アクセスした順番によりキュー213から異なる実行開始アドレスを入力し、プログラムメモリ212内の上記の入力した異なる実行開始アドレスから命令の実行を開始し、サンプリング処理(データ処理)命令及び待機命令を繰り返し実行する。複数のMCU201〜203は、相互にサンプリング処理(データ処理)命令を実行するタイミングが異なり、時間Tずつずれている。
複数のMCU201〜203は、相互に、上記の異なる実行開始アドレスの命令からサンプリング処理(データ処理)命令までの間にある待機命令の数が異なる。例えば、第1のMUC201の待機命令の数は0個、第2のMUC202の待機命令の数は1個、第3のMUC203の待機命令の数は2個である。
第1のMCU201は、第1の実行開始アドレス「40」番地に記憶されているサンプリング処理(データ処理)命令から実行を開始する。
第2のMCU202は、第2の実行開始アドレス「30」番地に記憶されている待機命令から実行を開始し、その後に、第2の実行開始アドレス「30」番地の次のアドレスである第1の実行開始アドレス「40」番地に記憶されているサンプリング処理(データ処理)命令を実行する。
第3のMCU203は、第3の実行開始アドレス「20」番地に記憶されている待機命令から実行を開始し、その後に、第3の実行開始アドレス「20」番地の次のアドレスである第2の実行開始アドレス「30」番地に記憶されている待機命令を実行し、その後に、第2の実行開始アドレス「30」番地の次のアドレスである第1の実行開始アドレス「40」番地に記憶されているサンプリング処理(データ処理)命令を実行する。
本実施形態によれば、複雑なハードウェア又は複雑なソフトウェアを用いずに、簡単な構成で、MCU201〜203の処理を時間Tずつずらし、MCU201〜203がサンプリング処理(データ処理)命令を実行するタイミングを異ならせることができる。
これにより、ハードウェア資源を少なくし、プログラムメモリ212に記憶させる命令数を少なくし、各MCU201〜203のサンプリング処理(データ処理)を所望のタイミングだけずらすことができる。
また、キュー213は、起動時にしかアクセスされないため、すべてのMCU201〜203からアクセスされた後に、電源を切ることで、消費電力を抑えることができる。
(第2の実施形態)
図7は、第2の実施形態によるMCU群114の構成例を示す図である。以下、本実施形態が第1の実施形態と異なる点を説明する。第4のMCU204は、MCU201〜203と同様の構成を有し、バス211に接続される。本実施形態では、必要なMCUの数は3個であるが、耐故障性を考慮して4個のMCU201〜204を設ける。プログラムメモリ212は、第4の実行開始アドレス「FF」番地(16進数)に停止命令を記憶する。キュー213内の記憶部402は、エントリ番号「3」に第4の実行開始アドレス「FF」番地(16進数)を記憶する。例えば、MCU201〜204は、第1の実施形態と同様に、電力P2の供給が開始されると、ほぼ同時にキュー213にアクセスする。例えば、キュー213内の制御部401は、最初に第1のMCU201のアクセスを受け付け、2番目に第2のMCU202のアクセスを受け付け、3番目に第3のMCU203のアクセスを受け付け、4番目に第4のMCU204のアクセスを受け付ける。この場合、MCU201〜203の処理は、第1の実施形態と同じである。以下、第4のMCU204の処理を説明する。
第4のMCU204がキュー213にアクセスすると、キュー213内の制御部401は、オフセットレジスタ403に記憶されているエントリ番号「3」をロードする。次に、キュー213内の制御部401は、記憶部402において、上記のロードしたエントリ番号「3」に記憶されている第4の実行開始アドレス「FF」番地(16進数)を記憶部402からロードし、その第4の実行開始アドレス「FF」番地(16進数)を第4のMCU204に送信する。第4のMCU204は、その第4のMCU204を受信すると、プログラムメモリ212の「キュー読込み命令」の次のジャンプ命令を実行することにより、上記の受信した第4の実行開始アドレス「FF」番地(16進数)にジャンプする。次に、第4のMCU204は、第4の実行開始アドレス「FF」番地(16進数)の停止命令を実行することにより、処理を停止し、何もしない。以上のように、4個のMCU201〜204がすべて正常である場合には、第4のMCU204は、何もしないので、データ処理装置は、第1の実施形態と同じサンプリング処理(データ処理)を行うことができる。
これに対し、4個のMCU201〜204のうちの1個が故障した場合、3個の正常なMCUはキュー213にアクセスし、1個の故障したMCUはキュー213にアクセスしない。その結果、1個の故障したMCUは何もせず、3個の正常なMCUは、第1の実施形態のMCU201〜203と同様のサンプリング処理(データ処理)を行うことができる。なお、本実施形態では、必要なMCU数に対して1個の冗長なMCU204を設ける場合を例に説明したが、2個以上の冗長なMCUを設けるようにしてもよい。
本実施形態によれば、複数のMCUのうちで故障したMCUが発生した場合でも、残りの正常なMCUが正常なサンプリング処理(データ処理)を行うことができる。MCUを必要数以上設けることにより、耐故障性を高めることができる。
なお、上記実施形態は、何れも本発明を実施するにあたっての具体化の例を示したものに過ぎず、これらによって本発明の技術的範囲が限定的に解釈されてはならないものである。すなわち、本発明はその技術思想、又はその主要な特徴から逸脱することなく、様々な形で実施することができる。
簡単な構成で、複数のコントローラがデータ処理命令を実行するタイミングを異ならせることができる。
データ処理装置は、データ処理する複数のコントローラと、複数のアドレスにそれぞれ待機命令及びデータ処理命令を記憶するプログラムメモリと、前記複数のコントローラの異なる実行開始アドレスを記憶するキューとを有し、前記複数のコントローラは、前記キューに順次アクセスすると、前記順次アクセスした順番により前記キューから異なる実行開始アドレスを取得し、前記プログラムメモリ内の前記取得した異なる実行開始アドレスから命令の実行を開始し、前記データ処理命令及び前記コントローラごとに異なる回数で前記待機命令を実行する
CU201〜203がN個ある場合には、第NのMCUまで、上記と同様の処理を繰り返す。以上のように、制御部401は、複数のMCU201〜203から順次アクセスされると、記憶部402内のオフセットレジスタ403に記憶されているエントリ番号から実行開始アドレスを読み出し、その読み出した実行開始アドレスをアクセスしたMCU201〜203のうちのいずれかのMCUに出力し、オフセットレジスタ403に記憶されているエントリ番号を次のエントリ番号に書き換える。具体的には、制御部401は、MCU201〜203のうちのいずれかのMCUからアクセスされると、オフセットレジスタ403に記憶されているエントリ番号をインクリメントする。
第1のMCU201は、ステップS602で、プログラムメモリ212の「キュー読込み命令」の次のアドレスのジャンプ命令を実行し、ステップS601でロード(受信)した第1の実行開始アドレス「40」番地(16進数)にジャンプする。プログラムメモリ212の第1の実行開始アドレス「40」番地(16進数)は、サンプリング処理命令であり、待機命令ではないので、ステップS603を省略し、ステップS602からステップS604に進む。なお、ステップS603は、第1のMCU201がキュー213へアクセスする順番が2番目以降である場合に行う処理である。第1のMCU201は、ステップS604で、第1の実行開始アドレス「40」番地(16進数)のサンプリング処理(データ処理)命令を実行することにより、センシングデータD1のサンプリングポイントSP0(図3)のサンプリング処理(データ処理)を行い、送信データD2をRF回路115に出力する。次に、第1のMCU201は、ステップS605で、プログラムメモリ212の次のアドレスの待機命令を実行し、図3の約3×Tの時間だけ待機する。その後、第1のMCU201は、プログラムメモリ212の次のアドレスの「40番地(16進数)へのジャンプ命令」を実行し、40番地(16進数)にジャンプする。次に、第1のMCU201は、ステップS604に戻り、「40」番地(16進数)のサンプリング処理(データ処理)命令を実行することにより、センシングデータD1のサンプリングポイントSP3(図3)のサンプリング処理(データ処理)を行い、送信データD2をRF回路115に出力する。次に、第1のMCU201は、ステップS605で、プログラムメモリ212の次のアドレスの待機命令を実行し、図3の約3×Tの時間だけ待機する。その後、第1のMCU201は、プログラムメモリ212の次のアドレスの「40番地(16進数)へのジャンプ命令」を実行し、40番地(16進数)にジャンプする。次に、第1のMCU201は、ステップS604に戻り、「40」番地(16進数)のサンプリング処理(データ処理)命令を実行することにより、センシングデータD1のサンプリングポイントSP6(図3)のサンプリング処理(データ処理)を行い、送信データD2をRF回路115に出力する。以下、上記と同様の処理を繰り返し、第1のMCU201は、センシングデータD1のサンプリングポイントSP9、SP12、SP15及びSP18等(図3)のサンプリング処理(データ処理)を行い、送信データD2をRF回路115に出力する。以上のように、第1のMCU201は、3×Tのサンプリング周期で、サンプリングポイントSP0、SP3、SP6、SP9、SP12、SP15及びSP18等のサンプリング処理を行うことができる。
複数のMCU201〜203は、相互に、上記の異なる実行開始アドレスの命令からサンプリング処理(データ処理)命令までの間にある待機命令の数が異なる。例えば、第1のMCU201の待機命令の数は0個、第2のMCU202の待機命令の数は1個、第3のMCU203の待機命令の数は2個である。
第4のMCU204がキュー213にアクセスすると、キュー213内の制御部401は、オフセットレジスタ403に記憶されているエントリ番号「3」をロードする。次に、キュー213内の制御部401は、記憶部402において、上記のロードしたエントリ番号「3」に記憶されている第4の実行開始アドレス「FF」番地(16進数)を記憶部402からロードし、その第4の実行開始アドレス「FF」番地(16進数)を第4のMCU204に送信する。第4のMCU204は、そを受信すると、プログラムメモリ212の「キュー読込み命令」の次のジャンプ命令を実行することにより、上記の受信した第4の実行開始アドレス「FF」番地(16進数)にジャンプする。次に、第4のMCU204は、第4の実行開始アドレス「FF」番地(16進数)の停止命令を実行することにより、処理を停止し、何もしない。以上のように、4個のMCU201〜204がすべて正常である場合には、第4のMCU204は、何もしないので、データ処理装置は、第1の実施形態と同じサンプリング処理(データ処理)を行うことができる。

Claims (9)

  1. データ処理する複数のコントローラと、
    複数のアドレスにそれぞれ待機命令及びデータ処理命令を記憶するプログラムメモリと、
    前記複数のコントローラの異なる実行開始アドレスを記憶するキューとを有し、
    前記複数のコントローラは、前記キューに順次アクセスすると、前記順次アクセスした順番により前記キューから異なる実行開始アドレスを入力し、前記プログラムメモリ内の前記入力した異なる実行開始アドレスから命令の実行を開始し、前記データ処理命令及び前記待機命令を繰り返し実行し、
    前記複数のコントローラは、相互に前記データ処理命令を実行するタイミングが異なることを特徴とするデータ処理装置。
  2. 前記複数のコントローラは、相互に、前記異なる実行開始アドレスの命令から前記データ処理命令までの間にある前記待機命令の数が異なることを特徴とする請求項1記載のデータ処理装置。
  3. 前記複数のコントローラは、相互に、前記データ処理命令を繰り返し実行する周期が同じであることを特徴とする請求項1記載のデータ処理装置。
  4. 前記キューは、
    複数のエントリ番号に前記複数のコントローラの異なる実行開始アドレスを記憶する記憶部と、
    前記記憶部のエントリ番号を記憶するオフセットレジスタと、
    前記複数のコントローラから順次アクセスされると、前記記憶部内の前記オフセットレジスタに記憶されているエントリ番号から前記実行開始アドレスを読み出し、前記読み出した実行開始アドレスを前記アクセスしたコントローラに出力し、前記オフセットレジスタに記憶されているエントリ番号を次のエントリ番号に書き換える制御部と
    を有することを特徴とする請求項1記載のデータ処理装置。
  5. 前記制御部は、前記コントローラからアクセスされると、前記オフセットレジスタに記憶されているエントリ番号をインクリメントすることを特徴とする請求項4記載のデータ処理装置。
  6. 前記プログラムメモリは、第1の実行開始アドレスに前記データ処理命令を記憶し、第2の実行開始アドレスに前記待機命令を記憶し、
    前記複数のコントローラのうちの第1のコントローラは、前記第1の実行開始アドレスに記憶されているデータ処理命令から実行を開始し、
    前記複数のコントローラのうちの第2のコントローラは、前記第2の実行開始アドレスに記憶されている待機命令から実行を開始し、その後に、前記第2の実行開始アドレスの次のアドレスである前記第1の実行開始アドレスに記憶されているデータ処理命令を実行することを特徴とする請求項1記載のデータ処理装置。
  7. 前記プログラムメモリは、第3の実行開始アドレスに前記待機命令を記憶し、
    前記複数のコントローラのうちの第3のコントローラは、前記第3の実行開始アドレスに記憶されている待機命令から実行を開始し、その後に、前記第3の実行開始アドレスの次のアドレスである前記第2の実行開始アドレスに記憶されている待機命令を実行し、その後に、前記第2の実行開始アドレスの次のアドレスである前記第1の実行開始アドレスに記憶されているデータ処理命令を実行することを特徴とする請求項6記載のデータ処理装置。
  8. 前記プログラムメモリは、前記第1の実行開始アドレスの次のアドレスに待機命令を記憶し、その次のアドレスに前記第1の実行開始アドレスへのジャンプ命令を記憶することを特徴とする請求項6記載のデータ処理装置。
  9. 前記プログラムメモリは、第4の実行開始アドレスに停止命令を記憶し、
    前記複数のコントローラのうちの第4のコントローラは、前記第4の実行開始アドレスに記憶されている停止命令を実行することを特徴とする請求項6記載のデータ処理装置。
JP2014507243A 2012-03-30 2012-03-30 データ処理装置 Expired - Fee Related JP5900606B2 (ja)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/JP2012/058652 WO2013145282A1 (ja) 2012-03-30 2012-03-30 データ処理装置

Publications (2)

Publication Number Publication Date
JPWO2013145282A1 true JPWO2013145282A1 (ja) 2015-08-03
JP5900606B2 JP5900606B2 (ja) 2016-04-06

Family

ID=49258645

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2014507243A Expired - Fee Related JP5900606B2 (ja) 2012-03-30 2012-03-30 データ処理装置

Country Status (3)

Country Link
US (1) US9459870B2 (ja)
JP (1) JP5900606B2 (ja)
WO (1) WO2013145282A1 (ja)

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0328957A (ja) * 1989-06-27 1991-02-07 Mitsubishi Electric Corp マイクロコンピュータシステム
JPH05189247A (ja) * 1992-01-09 1993-07-30 Oki Electric Ind Co Ltd 周期処理のスケジューリング方式
JPH1145209A (ja) * 1997-07-29 1999-02-16 Saitama Nippon Denki Kk プログラム転送システム
JP2000163119A (ja) * 1998-11-30 2000-06-16 Toshiba Corp 組込用ネットワーク情報処理装置および制御監視システム
JP2010271930A (ja) * 2009-05-21 2010-12-02 Toshiba Corp マルチコアプロセッサシステム
JP2011233071A (ja) * 2010-04-30 2011-11-17 Fujitsu Ltd 動作制御方法、インタラクティブデバイス及びプログラム

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH1131068A (ja) 1997-07-11 1999-02-02 Toshiba Corp リセットベクタ切替え方法ならびに同方法を用いた情報処理装置
JP2000132529A (ja) * 1998-10-23 2000-05-12 Sony Corp 並列処理装置、並列処理方法および記録媒体
US8464035B2 (en) * 2009-12-18 2013-06-11 Intel Corporation Instruction for enabling a processor wait state
US8688883B2 (en) * 2011-09-08 2014-04-01 Intel Corporation Increasing turbo mode residency of a processor

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0328957A (ja) * 1989-06-27 1991-02-07 Mitsubishi Electric Corp マイクロコンピュータシステム
JPH05189247A (ja) * 1992-01-09 1993-07-30 Oki Electric Ind Co Ltd 周期処理のスケジューリング方式
JPH1145209A (ja) * 1997-07-29 1999-02-16 Saitama Nippon Denki Kk プログラム転送システム
JP2000163119A (ja) * 1998-11-30 2000-06-16 Toshiba Corp 組込用ネットワーク情報処理装置および制御監視システム
JP2010271930A (ja) * 2009-05-21 2010-12-02 Toshiba Corp マルチコアプロセッサシステム
JP2011233071A (ja) * 2010-04-30 2011-11-17 Fujitsu Ltd 動作制御方法、インタラクティブデバイス及びプログラム

Also Published As

Publication number Publication date
US20150019837A1 (en) 2015-01-15
WO2013145282A1 (ja) 2013-10-03
JP5900606B2 (ja) 2016-04-06
US9459870B2 (en) 2016-10-04

Similar Documents

Publication Publication Date Title
EP3404587B1 (en) Cnn processing method and device
US20190172516A1 (en) Electronic device performing training on memory device by rank unit and training method thereof
US9632798B2 (en) Method and device for optimizing loading and booting of an operating system in a computer system via a communication network
CN107885517B (zh) 嵌入式系统处理器程序加载电路
US9218201B2 (en) Multicore system and activating method
KR102601902B1 (ko) 음성 칩 및 전자 기기
TW201339837A (zh) 工作負荷可調適位址映射
JPWO2007114059A1 (ja) データ処理装置
Chandra et al. Improving application performance with hardware data structures
KR20170012254A (ko) 캐시 액세스 모드 선택을 위한 방법 및 장치
JP5900606B2 (ja) データ処理装置
US8325609B2 (en) Data processing device
KR102154080B1 (ko) 전력 관리 시스템, 이를 포함하는 시스템 온 칩 및 모바일 기기
US9766946B2 (en) Selecting processor micro-threading mode
WO2014202825A1 (en) Microprocessor apparatus
US8402260B2 (en) Data processing apparatus having address conversion circuit
US20170102954A1 (en) Parallel processing device and parallel processing method
US11699470B2 (en) Efficient memory activation at runtime
JP2013222372A (ja) 電子機器
KR20130091113A (ko) 재구성 기반 컴퓨팅 장치의 제1메모리 제어기 및 제2메모리 제어기와, 디버깅용 트레이스 데이터 처리가 가능한 재구성 기반 컴퓨팅 장치
TWI752068B (zh) 一種運算裝置及其操作方法
US9748954B2 (en) Calculation device and calculation method
JP6259361B2 (ja) プログラマブルデバイスおよびその制御方法
CN115437603B (zh) 用于生成随机数的方法及其相关产品
CN107861791A (zh) 处理计算机壳层Shell命令的方法和装置

Legal Events

Date Code Title Description
A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20151006

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20151201

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20160222

R150 Certificate of patent or registration of utility model

Ref document number: 5900606

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

LAPS Cancellation because of no payment of annual fees