JP2019103013A - 半導体装置及びその再構成制御方法 - Google Patents

半導体装置及びその再構成制御方法 Download PDF

Info

Publication number
JP2019103013A
JP2019103013A JP2017233116A JP2017233116A JP2019103013A JP 2019103013 A JP2019103013 A JP 2019103013A JP 2017233116 A JP2017233116 A JP 2017233116A JP 2017233116 A JP2017233116 A JP 2017233116A JP 2019103013 A JP2019103013 A JP 2019103013A
Authority
JP
Japan
Prior art keywords
circuit
circuits
information
semiconductor device
buffers
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
JP2017233116A
Other languages
English (en)
Inventor
恭成 渡邊
Yasunari Watanabe
恭成 渡邊
光博 小野
Mitsuhiro Ono
光博 小野
敏朗 藤崎
Toshiro Fujisaki
敏朗 藤崎
木村 建二
Kenji Kimura
建二 木村
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.)
Renesas Electronics Corp
Original Assignee
Renesas Electronics Corp
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 Renesas Electronics Corp filed Critical Renesas Electronics Corp
Priority to JP2017233116A priority Critical patent/JP2019103013A/ja
Priority to US16/152,207 priority patent/US10802730B2/en
Priority to EP18201272.4A priority patent/EP3495919A1/en
Priority to CN201811341923.8A priority patent/CN109872753A/zh
Priority to KR1020180148167A priority patent/KR20190066551A/ko
Publication of JP2019103013A publication Critical patent/JP2019103013A/ja
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/38Information transfer, e.g. on bus
    • G06F13/40Bus structure
    • G06F13/4004Coupling between buses
    • G06F13/4022Coupling between buses using switching circuits, e.g. switching matrix, connection or expansion network
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/0625Power saving in storage systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F1/00Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
    • G06F1/26Power supply means, e.g. regulation thereof
    • G06F1/32Means for saving power
    • G06F1/3203Power management, i.e. event-based initiation of a power-saving mode
    • G06F1/3234Power saving characterised by the action undertaken
    • G06F1/3237Power saving characterised by the action undertaken by disabling clock generation or distribution
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F1/00Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
    • G06F1/26Power supply means, e.g. regulation thereof
    • G06F1/32Means for saving power
    • G06F1/3203Power management, i.e. event-based initiation of a power-saving mode
    • G06F1/3234Power saving characterised by the action undertaken
    • G06F1/325Power saving in peripheral device
    • G06F1/3253Power saving in bus
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/14Handling requests for interconnection or transfer
    • G06F13/16Handling requests for interconnection or transfer for access to memory bus
    • G06F13/1668Details of memory controller
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/14Handling requests for interconnection or transfer
    • G06F13/20Handling requests for interconnection or transfer for access to input/output bus
    • G06F13/24Handling requests for interconnection or transfer for access to input/output bus using interrupt
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/14Handling requests for interconnection or transfer
    • G06F13/20Handling requests for interconnection or transfer for access to input/output bus
    • G06F13/28Handling requests for interconnection or transfer for access to input/output bus using burst mode transfer, e.g. direct memory access DMA, cycle steal
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/38Information transfer, e.g. on bus
    • G06F13/40Bus structure
    • G06F13/4063Device-to-bus coupling
    • G06F13/4068Electrical coupling
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0629Configuration or reconfiguration of storage systems
    • G06F3/0634Configuration or reconfiguration of storage systems by changing the state or mode of one or more devices
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0655Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
    • G06F3/0659Command handling arrangements, e.g. command buffers, queues, command scheduling
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/0671In-line storage system
    • G06F3/0673Single storage device
    • G06F3/0679Non-volatile semiconductor memory device, e.g. flash memory, one time programmable memory [OTP]
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
    • Y02D10/00Energy efficient computing, e.g. low power processors, power management or thermal management

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Human Computer Interaction (AREA)
  • Computer Hardware Design (AREA)
  • Mathematical Physics (AREA)
  • Logic Circuits (AREA)
  • Bus Control (AREA)
  • Microcomputers (AREA)

Abstract

【課題】半導体装置の消費電力を低減すること。【解決手段】本実施形態にかかる半導体装置は、複数の回路と、複数の回路の間の通信データを一時的に保存する複数のバッファ及び複数の回路と複数のバッファとの間のアクセスを調停する複数の調停回路とを有するバス回路と、複数の回路の間の通信における複数のバッファの使用状況に基づく情報と複数の回路のうち通信に使用されない不使用回路の指定を含む構成情報を記憶する記憶部と、構成情報に基づいて、複数のバッファのうち通信において使用されない不使用バッファ及び複数の調停回路のうち不使用回路に対応する調停回路内の少なくとも一部の構成の使用を停止するように、バス回路を制御する制御回路と、を備える。【選択図】図1

Description

本発明は半導体装置及びその再構成制御方法に関し、例えば、構成情報に基づき再構成を行う半導体装置及びその再構成制御方法に関する。
近年、MCU(Micro Control Unit)等を含む半導体装置は、搭載される周辺モジュール数が増加している。そして、周辺モジュール数の増加に伴い、各モジュール間の通信経路を網羅するためにバス回路の規模も増加している。また、半導体装置の論理構成を動的に再構成する技術として、例えば、特許文献1や2が挙げられる。
特許文献1にかかる技術では、まず、マイコンの初期化時に第1の通信処理方式のコンフィギュレーションデータによりプログラマブルロジックを第1の通信処理回路として構成する。そして、第1の通信処理回路による通信に対する応答がなかった場合に、第2の通信処理方式のコンフィギュレーションデータによりプログラマブルロジックを第2の通信処理回路として再構成する。一方、第1の通信処理回路による通信に対する応答があった場合には、第2の通信処理方式のコンフィギュレーションデータを用いず、マイコンは通常処理へ進む。このように、複数のコンフィギュレーションデータのうち必要のないものの使用を回避することで、プログラマブルロジックの資源の消費を抑制することができる。
また、特許文献2にかかる技術は、アクセスコマンドの監視により算出されたメモリバンド幅等に応じて、再構成回路内の論理部とバッファ部とを再構成するものである。
特開2008−219806号公報 国際公開第2009/060567号
近年の半導体装置には、周辺モジュール数の増加やバス回路の規模の増加に伴い、消費電力が増加しているという問題点がある。ここで、特許文献1にかかる技術は、特定の論理回路を構成するためのコンフィギュレーションデータが必要か否かを判別できるが、必要なコンフィギュレーションデータにより再構成されたプログラマブルロジックの消費電力を低減するものではない。また、特許文献2にかかる技術は、再構成回路における論理部とバッファ部との構成比率を調整するものであり、再構成回路自体の消費電力を低減するためのものではない。
その他の課題と新規な特徴は、本明細書の記述および添付図面から明らかになるであろう。
一実施の形態によれば、半導体装置は、複数の回路の間の通信における複数のバッファの使用状況に基づく情報と不使用回路の指定とを含む構成情報を記憶する記憶部と、前記構成情報に基づいて、前記複数のバッファのうち前記通信において使用されない不使用バッファ及び不使用回路に対応する調停回路内の少なくとも一部の構成の使用を停止するように、前記バス回路を制御する制御回路と、を備えるものである。
前記一実施の形態によれば、半導体装置の消費電力を低減することができる。
本実施形態1にかかる半導体装置の構成を示すブロック図である。 本実施形態1にかかる半導体装置の再構成制御システムの構成を示すブロック図である。 本実施形態1にかかるエミュレーションデバイスの構成を示すブロック図である。 本実施形態1にかかる動作情報と構成情報の関係を示す図である。 本実施形態1にかかるMCUの構成を示すブロック図である。 本実施形態1にかかるバス回路を含む構成を示すブロック図である。 本実施形態1にかかる調停回路の構成を示すブロック図である。 本実施形態1にかかる調停回路内のFF群の構成を示すブロック図である。 本実施形態1にかかるポインタ回路の構成を示すブロック図である。 本実施形態1にかかるバッファ回路の構成を示すブロック図である。 本実施形態1にかかる動作情報取得処理の流れを示すフローチャートである。 本実施形態1にかかる変換処理の流れを示すフローチャートである。 本実施形態1にかかる再構成処理の流れを示すフローチャートである。 本実施形態2にかかる半導体装置の再構成制御システムの構成を示すブロック図である。 本実施形態2にかかるエミュレーションデバイスの構成を示すブロック図である。 本実施形態2にかかる動作情報と構成情報の関係を示す図である。 本実施形態2にかかるMCUの構成を示すブロック図である。 本実施形態3にかかる半導体装置の再構成制御システムの構成を示すブロック図である。 本実施形態3にかかるエミュレーションデバイスの構成を示すブロック図である。 本実施形態3にかかる動作情報と構成情報の関係を示す図である。 本実施形態3にかかるMCUの構成を示すブロック図である。 本実施形態3にかかる動作情報取得処理の流れを示すフローチャートである。 本実施形態3にかかる再構成処理の流れを示すフローチャートである。
説明の明確化のため、以下の記載及び図面は、適宜、省略、及び簡略化がなされている。また、様々な処理を行う機能ブロックとして図面に記載される各要素は、ハードウェア的には、CPU(Central Processing Unit)、メモリ、その他の回路で構成することができ、ソフトウェア的には、メモリにロードされたプログラムなどによって実現される。したがって、これらの機能ブロックがハードウェアのみ、ソフトウェアのみ、またはそれらの組合せによっていろいろな形で実現できることは当業者には理解されるところであり、いずれかに限定されるものではない。なお、各図面において、同一の要素には同一の符号が付されており、必要に応じて重複説明は省略されている。
また、上述したプログラムは、様々なタイプの非一時的なコンピュータ可読媒体を用いて格納され、コンピュータに供給することができる。非一時的なコンピュータ可読媒体は、様々なタイプの実体のある記録媒体を含む。非一時的なコンピュータ可読媒体の例は、磁気記録媒体(例えばフレキシブルディスク、磁気テープ、ハードディスクドライブ)、光磁気記録媒体(例えば光磁気ディスク)、CD−ROM(Read Only Memory)CD−R、CD−R/W、半導体メモリ(例えば、マスクROM、PROM(Programmable ROM)、EPROM(Erasable PROM)、フラッシュROM、RAM(Random Access Memory))を含む。また、プログラムは、様々なタイプの一時的なコンピュータ可読媒体によってコンピュータに供給されてもよい。一時的なコンピュータ可読媒体の例は、電気信号、光信号、及び電磁波を含む。一時的なコンピュータ可読媒体は、電線及び光ファイバ等の有線通信路、又は無線通信路を介して、プログラムをコンピュータに供給できる。
<実施形態1>
図1は、本実施形態1にかかる半導体装置1000の構成を示すブロック図である。半導体装置1000は、複数の回路1101〜110n(nは2以上の自然数。)と、バス回路1200と、記憶部1300と、制御回路1400とを備える。半導体装置1000は、例えば、プロセッサ等を搭載し、特定のソフトウェアを実行するものである。回路1101等は、周辺モジュール、プロセッサ、メモリ、又は、通信モジュール等の回路ブロックである。
バス回路1200は、回路1101〜110nと、記憶部1300と、制御回路1400とを接続し、それらの間の通信データを中継する信号経路である。バス回路1200は、複数のバッファ1201、1202、・・・120m(mは2以上の自然数。)と、複数の調停回路1211、1212、・・・121p(pは2以上の自然数。)を有する。バッファ1201等は、回路1101等の間の通信データを一時的に保存する記憶領域である。調停回路1211等は、回路1101等とバッファ1201等との間のアクセスを調停する。
記憶部1300は、構成情報1310を記憶する記憶回路である。構成情報1310は、回路1101等の間の通信におけるバッファ1201等の使用状況に基づく情報と、回路1101等のうち前記通信に使用されない不使用回路の指定とを含む。制御回路1400は、構成情報1310に基づいて、バッファ1201等のうち前記通信において使用されない不使用バッファ及び調停回路1211等のうち不使用回路に対応する調停回路内の少なくとも一部の構成の使用を停止するように、バス回路1200を制御する。
このように、本実施形態では、回路間の通信で使用されないバッファ及び通信に使用されない回路に対応する調停回路に供給されるクロック信号を停止することで、半導体装置1000の消費電力を低減することができる。
ここで、半導体装置1000は、次のような構成を有することが望ましい。すなわち、前記バス回路は、前記複数のバッファの中からアクセス対象のバッファを選択する選択回路をさらに有する。そして、前記制御回路は、前記複数のバッファのうち前記不使用バッファに対して、クロック信号の供給を停止するように指示し、前記選択回路に対して、前記不使用バッファを選択の対象外とするように指示する。これにより、バス回路内の不使用バッファのクロック供給の停止と当該不使用バッファの選択を除外することで、確実に不使用バッファの使用を停止できる。
さらに、前記構成情報は、前記複数のバッファのうち前記通信におけるバッファの最大使用数を含むとよい。そして、前記制御回路は、前記選択回路に対して、前記複数のバッファのうち前記最大使用数以下のバッファを選択するように指示するとよい。これにより、クロック供給を停止したバッファが選択回路により選択されないようにして、不要なアクセスを抑制できる。
さらに、前記構成情報は、前記複数のバッファの総数から前記最大使用数を除いた数のバッファを前記不使用バッファとしてさらに含むとよい。これにより、クロック供給を停止するバッファを的確に指示できる。
また、半導体装置1000は、次のような構成を有することが望ましい。すなわち、前記不使用回路は、前記複数の回路のうち前記通信におけるマスタ回路又はスレーブ回路として使用されないものである。そして、前記バス回路は、前記複数の調停回路のうち前記マスタ回路又は前記スレーブ回路からの複数のアクセスを調停する第1の調停回路をさらに含む。そして、前記制御回路は、前記指定された不使用回路に対応する前記第1の調停回路内の少なくとも一部の構成に対するクロック信号の供給を停止するように、前記バス回路を制御する。これにより、ある回路が回路間の通信の送信元(マスタ回路)又は送信先(スレーブ回路)となり得ない場合に、当該回路からのリクエスト又はレスポンスを調停する調停回路へのクロック供給を停止できる。そして、クロック供給の停止によりCMOS(Complementary MOS (metal−oxide−semiconductor) )の充放電を抑制し、動的消費電力を低減できる。
さらに、前記バス回路は、前記複数の調停回路のうち前記マスタ回路又は前記スレーブ回路に対する複数のアクセスを調停する第2の調停回路をさらに含むとよい。そして、前記制御回路は、前記指定された不使用回路に対応する前記第2の調停回路に対するクロック信号の供給を停止するように、前記バス回路を制御するとよい。これにより、不使用回路へのリクエスト又はレスポンスを調停する調停回路へのクロックを停止できる。そして、動的消費電力を低減できる。
また、前記構成情報は、特定のソフトウェアの実行時における前記使用状況に基づく情報であることが望ましい。これにより、ソフトウェアごとに特有の回路間の通信に対応させて、バス回路を最適化することができる。
さらに、前記構成情報は、前記複数の回路及び前記バス回路と同等の構成を少なくとも搭載した他の半導体装置において前記特定のソフトウェアを実行した場合に取得された動作情報に基づき導出されたものであることが望ましい。このように、特定のソフトウェアのエミュレーションにより得られた動作情報を用いることで、より実際の動作に近付けて、バス回路を最適化できる。
続いて、上述した半導体装置1000の具体的な適用例について以下に説明する。
図2は、本実施形態1にかかる半導体装置の再構成制御システム2000の構成を示すブロック図である。再構成制御システム2000は、エミュレーションデバイス100と、MCU(Micro Control Unit)200と、情報処理装置300とを備える。MCU200は、上述した半導体装置1000の一実施例であり、特定のソフトウェアを実行するものである。MCU200は、例えば、量産版の半導体装置に相当する。エミュレーションデバイス100は、MCU200に搭載する特定のソフトウェアをエミュレートして、当該ソフトウェアの開発を進めるための半導体装置である。ここで、エミュレーションデバイス100とMCU200とは、後述するように、多くの回路構成が共通する。但し、エミュレーションデバイス100は、MCU200と比べて後述する動作モニタを有する。また、MCU200は、エミュレーションデバイス100と比べて後述する再構成制御回路を有する。
図3は、本実施形態1にかかるエミュレーションデバイス100の構成を示すブロック図である。エミュレーションデバイス100は、動作モニタ110と、FLASH120と、RAM130と、通信モジュール140と、バス回路150と、周辺モジュール161〜16nと、CPU171〜17x(xは、2以上の自然数。)とを備える。FLASH120は、MCU200に搭載される予定である開発対象のソフトウェア121を記憶する不揮発性記憶装置の一例であるフラッシュメモリである。RAM130は、各種データを一時的に記憶する揮発性記憶装置である。通信モジュール140は、外部との通信を行う回路である。バス回路150は、動作モニタ110、FLASH120、RAM130、通信モジュール140、周辺モジュール161〜16n、並びに、CPU171〜17xを接続し、これらの間の通信データを中継する信号経路である。また、バス回路150は、後述するように通信データを一時的に保存する複数のバッファを有する。周辺モジュール161〜16nは、各種処理を行う回路ブロックである。CPU171〜17xのうち少なくとも一つは、FLASH120からソフトウェア121を読み込み、実行することにより、所定の処理を実現する。
動作モニタ110は、ソフトウェア121の実行時における各回路の動作状態を観測し、動作情報111を取得し、内部に保存する。特に、動作モニタ110は、ソフトウェア121の実行時における回路間の通信を監視し、通信時におけるバス回路150の動作から動作情報111を取得する。そして、動作モニタ110は、ソフトウェア121の実行後に、動作情報111を通信モジュール140を介して、情報処理装置300へ送信する。動作情報111は、例えば、バスルーティング情報やバッファの最大エントリ使用数等を含む。バスルーティング情報は、送信元であるマスタ回路から送信先であるスレーブ回路へバス回路150を介してリクエスト信号が送信される際のマスタ回路とスレーブ回路の組合せを示す情報である。また、バッファの最大エントリ使用数は、ソフトウェア121の実行を通じて、バス回路150内のバッファが同時に使用された際の最大数を示す情報である。
図2に戻り説明を続ける。情報処理装置300は、エミュレーションデバイス100から受信した動作情報を、MCU200を再構成するための構成情報に変換する変換ツールとして動作するものである。情報処理装置300は、情報変換処理部310と、記憶部320とを備える。尚、情報処理装置300は、汎用的なコンピュータ装置であり、一般的な構成の図示及び動作の説明を省略する。記憶部320は、不揮発性又は揮発性の記憶装置である。記憶部320は、動作情報321と、回路情報322と、構成情報323とを記憶する。動作情報321は、上述した動作情報111が格納されたものである。回路情報322は、MCU200内の回路構成を示す情報である。例えば、回路情報322は、マスタ回路のリスト、スレーブ回路のリスト、及び、バス回路内のバッファの総数等である。構成情報323は、MCU200内のバス回路を再構成するための情報である。
情報変換処理部310は、エミュレーションデバイス100から動作情報111を受信した場合に、記憶部320へ動作情報321として保存する。また、情報変換処理部310は、動作情報321と回路情報322とに基づいて、所定の変換を行い、構成情報323を生成し、記憶部320に保存する。そして、情報変換処理部310は、変換後に、構成情報323をMCU200へ送信する。
図4は、本実施形態1にかかる動作情報と構成情報の関係を示す図である。例えば、動作情報Aがバス回路の使用時のルーティング情報である場合、情報変換処理部310は、回路情報322のマスタ回路及びスレーブ回路のリストのうち、動作情報Aに出現しないマスタ回路及びスレーブ回路を不使用回路として特定し、構成情報Aとする。また、動作情報Bがバッファの最大エントリ使用数である場合、情報変換処理部310は、当該使用数をバッファの使用上限数とする。また、情報変換処理部310は、回路情報322内のバッファ総数から最大エントリ使用数を減算して未使用数を算出する。そして、情報変換処理部310は、バッファエントリ番号の最大値から未使用数分の各番号を不使用のバッファエントリ番号とする。つまり、情報変換処理部310は、バッファの使用上限数と不使用のバッファエントリ番号とを構成情報Bとする。または、情報変換処理部310は、各バッファエントリについて使用又は不使用を示す情報を構成情報Bとしてもよい。その場合、最大エントリ使用数未満の番号に対応するバッファエントリについて使用とし、最大エントリ使用数以上の番号に対応するバッファエントリについて不使用とする。尚、動作情報及び構成情報の例は、これらに限定されない。
図5は、本実施形態1にかかるMCU200の構成を示すブロック図である。MCU200は、再構成制御回路210と、FLASH220と、RAM230と、通信モジュール240と、バス回路250と、周辺モジュール261〜26nと、CPU271〜27xとを備える。尚、FLASH220と、RAM230と、通信モジュール240と、バス回路250と、周辺モジュール261〜26nと、CPU271〜27xとは、上述したFLASH120と、RAM130と、通信モジュール140と、バス回路150と、周辺モジュール161〜16nと、CPU171〜17xと同等の構成である。
FLASH220は、情報処理装置300から受信した構成情報221を記憶する。また、FLASH220は、上述したソフトウェア121と同等の機能を有するソフトウェア222を記憶する。RAM230は、各種データを一時的に記憶する揮発性記憶装置である。再構成制御回路210は、MCU200の起動時に、FLASH220から構成情報221を読み出す。そして、再構成制御回路210は、読み出した構成情報221に基づいて、バス回路250内の構成に対して指示を行う。
図6は、本実施形態1にかかるバス回路250を含む構成を示すブロック図である。ここで、マスタ401〜406は、ソフトウェア222の実行時に、通信モジュール240、バス回路250、周辺モジュール261〜26n、並びに、CPU271〜27xの一部又は全てに対応する構成がマスタ回路として動作する場合を示す。ここでは、説明の便宜上、マスタ401〜403と、マスタ404〜406の2グループに分けているが、グループ数及び各グループ内のマスタ回路数はこれらに限定されない。
また、スレーブ411〜413は、FLASH220、RAM230、通信モジュール240、バス回路250、周辺モジュール261〜26n、並びに、CPU271〜27xの一部又は全てに対応する構成がスレーブ回路として動作する場合を示す。ここでは、説明の便宜上、スレーブ411〜413の3つを1グループとして記載しているが、グループ数及び各グループ内のスレーブ回路数はこれらに限定されない。以上を踏まえ、図6では、FLASH220はスレーブ411等に含まれる可能性もあるが、説明の便宜上、別途、記載している。
また、図6では、バス回路250のうち、マスタ回路からスレーブ回路へのリクエストである通信データを中継する構成を示すものである。これとは別に、バス回路250は、スレーブ回路からマスタ回路へのレスポンスである通信データを中継する構成を有するが、図6と対応するものであるため、図示及び説明を省略する。
再構成制御回路210は、FLASH220から読み出した構成情報221に基づいて、バス回路250に対して各種指示を行う。マスタ401〜406の少なくとも一部は、バス回路250を介してスレーブ411〜413のいずれかに対して通信データを送信するためにリクエストを送信する。また、スレーブ411〜413の少なくとも一部は、バス回路250を介してマスタ401〜406のいずれかからリクエストを受信する。
バス回路250は、クロスバスイッチ511及び512と、調停回路521及び522と、バッファ回路531及び532と、クロスバスイッチ540と、調停回路551〜553とを有する。クロスバスイッチ511は、マスタ401〜403から送信先情報を含む通信データを受け付け、通信データを同時に受け付けたマスタのリストを示すリクエスト信号を調停回路521へ出力する。また、クロスバスイッチ511は、調停回路521からの調停結果を受け付け、調停結果で指定されたマスタからの通信データをバッファ回路531へ出力する。同様に、クロスバスイッチ512は、マスタ404〜406から送信先情報を含む通信データを受け付け、リクエスト信号を調停回路522へ出力する。また、クロスバスイッチ512は、調停回路522からの調停結果を受け付け、調停結果で指定されたマスタからの通信データをバッファ回路532へ出力する。
調停回路521は、再構成制御回路210から、マスタ401〜403のうち不使用回路の指定を示す活性信号A0〜Anを受け付け、マスタ401〜403に対応するフリップフロップ(FF)へのクロック信号の供給を停止する。また、調停回路521は、クロスバスイッチ511からのリクエスト信号と、アービトレーション選択信号とに基づいて、マスタの調停を行い、調停されたマスタを指定した調停結果信号をクロスバスイッチ511へ出力する。
図7は、本実施形態1にかかる調停回路521の構成を示すブロック図である。尚、調停回路522の構成及び動作も同様であるため、図示及び説明を省略する。ここでは、マスタ401〜403の個数がn+1個であるものとする。
調停回路521は、一部の構成として、FF群5211と、ラウンドロビン式優先度判定回路5212と、固定優先度式優先度判定回路5213と、FF群5214とを備える。尚、ラウンドロビン式優先度判定回路5212及び固定優先度式優先度判定回路5213は、公知の技術で実現可能である。調停回路521は、n+1ビットのリクエスト信号REQと、アービトレーション選択信号ARBSELとを受け付ける。そして、アービトレーション選択信号ARBSELに応じて、ラウンドロビン式優先度判定回路5212及び固定優先度式優先度判定回路5213のいずれかが選択され、リクエスト信号REQのうちいずれかの優先度判定回路により優先度が高いとして選択された信号値を調停結果として出力する。その際、FF群5211は、ラウンドロビン方式で調停を行うために、ラウンドロビン方式で最後に選択されたリクエスト信号の情報を保持する。また、FF群5214は、最終的に選択されたリクエスト信号の情報を保持する。ここで、FF群5211及びFF群5214は、それぞれ、n+1個、すなわち、マスタ401〜403に対応するFFを有する。FF群5211及びFF群5214内の各FFは、クロック信号CLK_Gに応じて動作する。
ここで、図8は、本実施形態1にかかる調停回路521内のFF群5211の構成を示すブロック図である。尚、FF群5214の構成及び動作も同様であるため、図示及び説明を省略する。FF群5211内の各FFには、対応するAND回路が接続されている。各AND回路は、活性信号A0〜Anとクロック信号CLKの論理積をクロック信号CLK_Gとして出力する。例えば、再構成制御回路210は、構成情報221において不使用回路として指定されたマスタ回路に対応する活性信号を0とし、それ以外(使用される回路)のマスタ回路に対応する活性信号を1とする。そのため、FF群5211内の各FFのうち不使用回路に対応するFFは、クロック信号CLK_Gにより不活性となり、消費電力が抑制される。そして、不活性とされたFFは、リクエスト信号の値が0となり、ラウンドロビン式優先度判定回路5212は、当該不活性とされたFFに対応するマスタ回路を選択することはない。ここで、不活性とされたFFに対応するマスタ回路は、ソフトウェア222の実行時にマスタ回路として使用されないため、調停の対象とされなくとも影響がない。また、不活性とされたFFに対応するリクエスト信号が常に0となるため、後段のFF群5214における対応するFFも不活性として問題がない。
図6に戻り説明を続ける。バッファ回路531は、セレクタ5311及び5312と、ライトポインタ制御回路5313と、リードポインタ制御回路5314と、バッファ群5315とを備える。尚、バッファ回路532の構成及び動作は、バッファ回路531と同様であるため、図示及び説明を省略する。
セレクタ5311は、クロスバスイッチ511から通信データを受け付け、ライトポインタ制御回路5313から格納先のバッファの指定を受け付ける。そして、セレクタ5311は、バッファ群5315のうち指定されたバッファへ通信データを出力する。
バッファ群5315は、複数のバッファエントリを有する。ここでは、バッファ群5315は、4つのバッファエントリを有するが、2以上であればよい。各バッファエントリは、セレクタ5311からの通信データを一時的に保存する。また、各バッファエントリは、セレクタ5312からの読み出しに応じて通信データを出力する。但し、バッファ回路531は、再構成制御回路210から、バッファ群5315内のバッファ0〜3のうち不使用バッファの指定を示す活性信号A0〜A3を受け付け、活性信号で指定されたバッファへのクロック信号の供給を停止する。
セレクタ5312は、リードポインタ制御回路5314から読み出し元のバッファの指定を受け付ける。そして、セレクタ5312は、バッファ群5315のうち指定された読み出し元のバッファから通信データを読み出して、クロスバスイッチ540へ出力する。
ライトポインタ制御回路5313は、再構成制御回路210から、バッファの使用上限数を示す信号を受け付け、使用上限数未満のエントリ番号を選択して、格納先のバッファの指定としてセレクタ5311へ出力する。また、リードポインタ制御回路5314は、再構成制御回路210から、バッファの使用上限数を示す信号を受け付け、使用上限数未満のエントリ番号を選択して、読み出し元のバッファの指定としてセレクタ5312へ出力する。
図9は、本実施形態1にかかるライトポインタ制御回路5313の構成を示すブロック図である。尚、リードポインタ制御回路5314の構成及び動作は、これと対応するものであるため、図示及び説明を省略する。
ライトポインタ制御回路5313は、加算器561と、FF562と、比較器563と、セレクタ564と、セレクタ565と、FF566と、デコーダ567とを備える。Valid信号は、書込み要求有効信号を示す。尚、リードポインタ制御回路5314の場合、Valid信号は、リード完了信号を示す。セレクタ565は、Valid信号が0の場合、前回選択されたエントリ番号(ポインタ)を選択してFF566へ出力する。FF566は、選択されたポインタを保持する。デコーダ567は、ポインタをデコードし、バッファ0〜バッファ3のうちポインタに対応する信号を1にし、他を0にしてセレクタ5311へ出力する。加算器561は、FF566に保持されたポインタに1を加算する。FF562は、再構成制御回路210から受け付けたバッファの使用上限数を示す信号、つまり、使用可能エントリ数を保持する。比較器563は、加算器561による加算結果のポインタと、FF562に保持された使用可能エントリ数とを比較し、一致した場合に1を選択信号としてセレクタ564へ出力する。セレクタ564は、選択信号が0の場合、加算器561による加算結果であるポインタを選択し、選択信号が1の場合、ポインタの初期値である2b‘00を選択し、セレクタ565へ出力する。例えば、使用可能エントリ数が2b‘10である場合、加算器561によりポインタが2b‘00、2b‘01と加算された後、2b‘10となった時に、セレクタ564は、2b‘00を選択する。
このように、ライトポインタ制御回路5313は、Valid信号の1が通知される度にポインタをインクリメントする。そして、インクリメントされたポインタが使用可能エントリ数と一致した場合には、ポインタが0に初期化される。そのため、ライトポインタ制御回路5313は、常に使用可能エントリ数未満の値のポインタを出力する。よって、不活性とされたバッファがセレクタ5311により選択されることがなく、誤動作を防ぐことができる。
使用可能エントリ数がバッファ群5315のバッファ総数の半数である場合、図9において、加算器561による加算結果のポインタの上位ビットを0にマスクしてもよい。これにより、ライトポインタ制御回路5313は、図9の構成と比べて簡略化できる。
図10は、本実施形態1にかかるバッファ回路531の構成を示すブロック図である。まず、上述した通り、ライトポインタ制御回路5313及びリードポインタ制御回路5314は、MCU200の起動時に、再構成制御回路210から使用可能エントリ数を示す信号を受け付ける。これに応じて、ライトポインタ制御回路5313及びリードポインタ制御回路5314は、対応するポインタをセレクタ5311及び5312へ出力する。
また、バッファ群5315は、バッファ0_53150、バッファ1_53151、バッファ2_53152、及び、バッファ3_53153を有する。そして、バッファ0_53150からバッファ3_53153には、対応するAND回路が接続されている。各AND回路は、活性信号A0〜A3とクロック信号CLKの論理積をクロック信号CLK_Gとして出力する。例えば、再構成制御回路210は、構成情報221において不使用バッファとして指定されたエントリ番号に対応する活性信号を0とし、それ以外(使用される)のバッファに対応する活性信号を1とする。そのため、バッファ群5315内の各バッファのうち不使用バッファは、クロック信号CLK_Gにより不活性となり、消費電力が抑制される。ここで、不活性とされたバッファは、ソフトウェア222の実行時には使用されないバッファであるため、実行には影響がない。
図6に戻り説明を続ける。調停回路551〜553のそれぞれは、スレーブ411〜413のそれぞれに対応する。クロスバスイッチ540は、バッファ回路531及び532から通信データを受け付け、通信データを同時に受け付けたバッファ回路のリストを示すリクエスト信号を、送信先のスレーブに対応する調停回路551〜553へ出力する。クロスバスイッチ540は、調停回路551〜553のいずれかからの調停結果を受け付け、調停結果で指定されたバッファ回路からの通信データを、送信先であるスレーブ411〜413のいずれかへ出力する。
調停回路551は、再構成制御回路210から、対応するスレーブ411の不使用回路の指定を示す活性信号を受け付け、活性信号が不活性を示す場合、つまり、スレーブ411が不使用回路である場合、スレーブ411に対応する調停回路551へのクロック信号の供給は停止され、消費電力が抑制される。尚、調停回路552及び553についても同様である。ここで、不使用回路と指定されたスレーブ回路は、ソフトウェア222の実行時にスレーブ回路として使用されないため、不使用回路と指定されたスレーブ回路に対応する調停回路の調停の必要はない。そして、クロスバスイッチ540が受け付けた通信データの送信先とはならないため、クロスバスイッチ540は、不使用回路と指定されたスレーブ回路に対応する調停回路へはリクエスト信号を出力しない。よって、ソフトウェア222の実行時に問題が生じない。
続いて、本実施の形態にかかる半導体装置の再構成制御方法を説明する。当該半導体装置は、少なくとも複数の回路と、前記複数の回路の間の通信データを一時的に保存する複数のバッファ及び前記複数の回路と前記複数のバッファとの間のアクセスを調停する複数の調停回路を有するバス回路と、前記複数の回路の間の通信における前記複数のバッファの使用状況に基づく情報及び前記複数の回路のうち前記通信に使用されない不使用回路の指定を含む構成情報を記憶する記憶部と、制御回路とを備えるものである。そして、当該再構成制御方法は、少なくとも、半導体装置の制御回路が、構成情報を記憶部から読み出し、前記構成情報に基づいて、前記複数のバッファのうち前記通信において使用されない不使用バッファ及び前記複数の調停回路のうち前記不使用回路に対応する調停回路内の少なくとも一部の構成の使用を停止するように、前記複数のバッファを有するバス回路を制御する。
さらに、次のようにすることが望ましい。すなわち、前記複数の回路及び前記バス回路と同等の構成を少なくとも搭載した他の半導体装置において、特定のソフトウェアを実行した際に、前記複数の回路の間の前記通信に関する動作情報を取得する。そして、前記動作情報に基づき前記構成情報を導出する。そして、前記構成情報を前記記憶部に格納する。その後、前記半導体装置における前記特定のソフトウェアの実行時に、前記記憶部から前記構成情報を読み出す。
以下では、本実施の形態にかかる半導体装置の再構成制御方法の具体的な実施例について説明する。図11は、本実施形態1にかかる動作情報取得処理の流れを示すフローチャートである。まず、エミュレーションデバイス100は起動する。そして、CPU171〜17xのうちいずれかは、FLASH120から開発対象のソフトウェア121を読み込み、実行する(S101)。そして、ソフトウェア121の実行中の各処理において、動作モニタ110は、バス回路150へのアクセスを監視する。そして、動作モニタ110は、バスアクセスが発生したか否かを判定する(S102)。バスアクセスが発生しなければ、ステップS104へ進む。一方、バスアクセスが発生した場合、動作モニタ110は、バス回路150の動作情報111の取得及び保存を行う(S103)。例えば、動作モニタ110は、マスタ回路からスレーブ回路へのアクセスについてバス回路150におけるバスルーティング情報を取得する。また、動作モニタ110は、複数のアクセス時におけるバス回路150内のバッファの使用数を取得し、最大値であれば、バッファの最大エントリ使用数として保存する。
その後、エミュレーションデバイス100は、ソフトウェア121の実行が終了したか否かを判定する(S104)。ソフトウェア121の実行が終了していなければ、ステップS102へ戻る。一方、ソフトウェア121の実行が終了していれば、動作モニタ110は、動作情報111を通信モジュール140を介して情報処理装置300へ出力する(S105)。そして、情報処理装置300は、動作情報111を受信し、動作情報321として記憶部320に保存する。
次に、図12は、本実施形態1にかかる変換処理の流れを示すフローチャートである。まず、情報変換処理部310は、記憶部320から動作情報321及び回路情報322を読み出す(S111)。次に、情報変換処理部310は、動作情報321を構成情報323へ変換する(S112)。例えば、上述した図4のように変換する。動作情報Bの具体例としては、バッファの最大エントリ使用数が2個(3b’010)の場合、情報変換処理部310は、構成情報Bを6b’100011へ変換する。この場合、上位2ビット(2b’10)をバッファの使用上限数とし、下位4ビット(4b’0011)を不使用のバッファエントリに対応する活性信号A3、A2、A1及びA0とする。その後、情報変換処理部310は、変換された構成情報323を記憶部320に格納する。そして、情報変換処理部310は、構成情報323をMCU200へ送信し、MCU200内のFLASH220に構成情報323を格納する(S113)。
図13は、本実施形態1にかかる再構成処理の流れを示すフローチャートである。まず、MCU200は起動する。そして、再構成制御回路210は、FLASH220から構成情報221を読み出す(S121)。次に、再構成制御回路210は、構成情報221に基づいてバス回路250へ各種設定を指示する(S122)。例えば、上述したように、再構成制御回路210は、構成情報221に含まれる不使用回路が示すマスタ回路及びスレーブ回路に対応する活性信号を0に設定し、調停回路521等へ出力する。また、再構成制御回路210は、構成情報221に含まれるバッファ使用上限数をライトポインタ制御回路5313及びリードポインタ制御回路5314へ出力する。また、再構成制御回路210は、構成情報221に含まれる不使用バッファのエントリ番号に対応する活性信号を0に設定し、不使用バッファ以外のエントリ番号に対応する活性信号を1に設定し、バッファ群5315へ出力する。これにより、バス回路250は再構成される。
その後、CPU271〜27xのうちいずれかは、FLASH220からソフトウェア222を読み込み、実行する。これにより、ソフトウェア222の実行時に最低限使用されるバス回路250の構成に対してクロック信号が供給され、不使用の構成へのクロック信号供給を抑制できる。そのため、同一のMCU200に対して様々なソフトウェアに対応した最適な回路構成を自動的に実現でき、かつ、消費電力を低減できる。特に、エミュレーションデバイス100を用いてソフトウェア121の動作を観測するため、ソフトウェア解析等だけでは困難な情報の取得を可能とし、回路構成をより最適に近付けることができる。
<実施形態2>
本実施形態2は、上述した実施形態1の改良例である。すなわち、前記構成情報は、前記特定のソフトウェアの実行時において使用された、前記半導体装置が備える割込みコントローラによる割込み通知、DMA(Direct Memory Access)の使用チャネル、又は、通信ポートのポートに基づいて特定される不使用回路の指定を含むものとする。そして、前記制御回路は、前記特定のソフトウェアの実行時において、前記指定された不使用回路に対応する構成に対するクロック信号の供給を停止するように、前記割込みコントローラ、前記DMA、又は、前記通信ポートを制御する。これにより、バス回路に加えて、割込みコントローラ、DMA、又は、通信ポートに対する不使用回路への消費電力を低減できる。
図14は、本実施形態2にかかる半導体装置の再構成制御システム2000aの構成を示すブロック図である。再構成制御システム2000aは、エミュレーションデバイス100aと、MCU200aと、情報処理装置300aとを備える。
図15は、本実施形態2にかかるエミュレーションデバイス100aの構成を示すブロック図である。エミュレーションデバイス100aは、上述したエミュレーションデバイス100を改良したものであり、動作モニタ110が動作モニタ110aに置き換わり、DMA181、割込みコントローラ182、ポート183が追加されたものである。DMA181は、CPU171〜17xを介さずにモジュール間のデータ転送を可能とする回路である。割込みコントローラ182は、ソフトウェア121の実行時の割込み要求を受信し、優先度やマスク制御、割込み通知などを行う。ポート183は、外部との入出力制御を行う。
動作モニタ110aは、ソフトウェア121の実行時における各回路の動作状態を観測し、動作情報111aを取得し、内部に保存する。特に、動作モニタ110aは、ソフトウェア121の実行時におけるDMA181の動作から、使用DMAチャネルを取得する。また、動作モニタ110aは、割込みコントローラ182からの割込み要求時の割込みIDを取得する。また、動作モニタ110aは、外部との入出力時に使用されたポート経路における使用ポート番号を取得する。つまり、動作モニタ110aは、上述した動作情報111に加えて、使用DMAチャネル、割込みID、及び、使用ポート番号の少なくともいずれかを含めて動作情報111aとして保存する。
情報処理装置300aは、上述した情報処理装置300を改良したものであり、情報変換処理部310aと、記憶部320とを備える。記憶部320は、動作情報321aと、回路情報322aと、構成情報323aとを記憶する。動作情報321aは、上述した動作情報111aが格納されたものである。回路情報322aは、回路情報322に加え、MCU200aが有するDMA281、割込みコントローラ282、ポート283の構成を含む。構成情報323aは、構成情報323に加え、DMA281、割込みコントローラ282、ポート283を再構成するための情報を含む。情報変換処理部310aは、動作情報321aと回路情報322aとに基づいて、所定の変換を行い、構成情報323aを生成し、記憶部320に保存し、構成情報323aをMCU200aへ送信する。
図16は、本実施形態2にかかる動作情報と構成情報の関係を示す図である。例えば、動作情報Cが使用DMAチャネルである場合、情報変換処理部310aは、回路情報322aのDMAのチャネル情報のうち動作情報Cに含まれない不使用DMAチャネルを特定し、特定した不使用DMAチャネルに対応するDMA内の不使用回路に変換し、構成情報Cとする。また、動作情報Dが発生した割込みIDである場合、情報変換処理部310aは、回路情報322aの割込みコントローラが発生し得る割込みIDのうち、動作情報Dに含まれない不使用の割込みIDを特定し、特定した不使用割込みIDに対応する割込みコントローラ内の不使用回路に変換し、構成情報Dとする。また、動作情報Eが発生した使用ポート番号である場合、情報変換処理部310aは、回路情報322aのポートのポート番号のうち、動作情報Eに含まれない不使用のポート番号を特定し、特定した不使用ポート番号に対応するポート内の不使用回路に変換し、構成情報Eとする。
図17は、本実施形態2にかかるMCU200aの構成を示すブロック図である。MCU200aは、上述したMCU200を改良したものであり、再構成制御回路210が再構成制御回路210aに置き換わり、DMA281、割込みコントローラ282、ポート283が追加されたものである。DMA281、割込みコントローラ282、及び、ポート283は、上述したDMA181、割込みコントローラ182、及び、ポート183と同等の構成である。FLASH220は、情報処理装置300aから受信した構成情報221aを記憶する。再構成制御回路210aは、MCU200aの起動時に、FLASH220から構成情報221aを読み出す。そして、再構成制御回路210aは、読み出した構成情報221aに基づいて、バス回路250、並びに、DMA281、割込みコントローラ282、及び、ポート283内の構成に対して指示を行う。
再構成制御回路210aは、例えば、構成情報C,D及びEに基づいて、対応する各構成の不使用回路を不活性にする。これにより、実施形態1と比べてさらなる消費電力を抑制することができる。
<実施形態3>
本実施形態3は、上述した実施形態1の改良例である。すなわち、前記構成情報は、前記特定のソフトウェアの実行時において発生する割込み処理ごとに対応付けられた情報である。そして、前記制御回路は、前記特定のソフトウェアの実行時において前記割込み処理が発生した場合に、前記記憶部の中から当該割込み処理に対応する前記構成情報を特定する。そして、前記制御回路は、当該特定した構成情報に基づいて、前記バス回路を制御する。前記制御回路は、前記割込み処理の終了後に、当該割込み処理の発生前の構成情報に基づいて、前記バス回路を制御する。これにより、割込み処理ごとにきめ細かい消費電力の低減を行うことができる。
図18は、本実施形態3にかかる半導体装置の再構成制御システム2000bの構成を示すブロック図である。再構成制御システム2000bは、エミュレーションデバイス100bと、MCU200bと、情報処理装置300bとを備える。
図19は、本実施形態3にかかるエミュレーションデバイス100bの構成を示すブロック図である。エミュレーションデバイス100bは、上述したエミュレーションデバイス100を改良したものであり、動作モニタ110が動作モニタ110bに置き換わり、割込みコントローラ182が追加されたものである。
動作モニタ110bは、ソフトウェア121の実行時における各回路の動作状態を観測し、動作情報111bを取得し、内部に保存する。特に、動作モニタ110bは、割込みコントローラ182からの割込み要求時の割込みIDを取得する。そして、動作モニタ110bは、割込み処理時に取得された動作情報に、取得した割込みIDを対応付けて保存する。動作モニタ110bは、割込み要求が発生する度に、これを繰り返す。
情報処理装置300bは、上述した情報処理装置300を改良したものであり、情報変換処理部310bと、記憶部320とを備える。記憶部320は、動作情報321bと、回路情報322bと、構成情報323bとを記憶する。動作情報321bは、上述した動作情報111bが格納されたものである。回路情報322bは、回路情報322に加え、MCU200bが有する割込みコントローラ282の割込みIDのリストを含む。構成情報323bは、構成情報323を割込みIDごとに対応付けた情報である。情報変換処理部310bは、動作情報321bと回路情報322bとに基づいて、所定の変換を行い、構成情報323bを生成し、記憶部320に保存し、構成情報323bをMCU200bへ送信する。
図20は、本実施形態3にかかる動作情報と構成情報の関係を示す図である。ここでは、図4の動作情報A及びBのそれぞれについて、割込みID0、割込みID1及び割込みID2が対応付けられている。そのため、構成情報A及びBのそれぞれについても、割込みID0、割込みID1及び割込みID2が対応付けられている。
図21は、本実施形態3にかかるMCU200bの構成を示すブロック図である。MCU200bは、上述したMCU200を改良したものであり、再構成制御回路210が再構成制御回路210bに置き換わり、割込みコントローラ282が追加されたものである。FLASH220は、情報処理装置300bから受信した構成情報221bを記憶する。再構成制御回路210bは、MCU200bの起動時に、FLASH220から構成情報221bを読み出す。そして、再構成制御回路210bは、ソフトウェア222の実行中に、割込みが発生又は終了するごとに、読み出した構成情報221bに基づいて、バス回路250内の構成に対して指示を行う。
図22は、本実施形態3にかかる動作情報取得処理の流れを示すフローチャートである
まず、エミュレーションデバイス100bは起動する。そして、CPU171〜17xのうちいずれかは、FLASH120から開発対象のソフトウェア121を読み込み、実行する(S201)。動作モニタ110bは、割込みIDを0に設定する(S202)。つまり、動作モニタ110bは、メインプログラム実行時の割込みIDを0として設定する。
続いて、動作モニタ110bは、バス回路150へのアクセスと共に、割込みコントローラ182からの割込み信号を監視する。動作モニタ110bは、割込みが発生したか、又は、終了したかを判定する(S203)。割込みが発生及び終了のいずれでもない場合、ステップS205へ進む。一方、割込みが発生又は終了のいずれかであった場合、動作モニタ110bは、割込みIDを変更する(S204)。例えば、割込みが発生した場合、動作モニタ110bは、割込みコントローラ182から割込み要求の通知を受け付け、割込みIDを発生した割込み要求が示すIDへ変更する。また、割込みが終了した場合、動作モニタ110bは、割込みIDを戻り先の処理に対応した値に変更する。
そして、動作モニタ110bは、バスアクセスが発生したか否かを判定する(S205)。バスアクセスが発生しなければ、ステップS207へ進む。一方、バスアクセスが発生した場合、動作モニタ110bは、バス回路150の動作情報111bを取得し、割込みIDと取得した動作情報とを対応付けて動作情報111bとして保存を行う(S206)。
その後、エミュレーションデバイス100bは、ソフトウェア121の実行が終了したか否かを判定する(S207)。ソフトウェア121の実行が終了していなければ、ステップS203へ戻る。一方、ソフトウェア121の実行が終了していれば、動作モニタ110bは、動作情報111bを通信モジュール140を介して情報処理装置300bへ出力する(S208)。そして、情報処理装置300bは、動作情報111bを受信し、動作情報321bとして記憶部320に保存する。
図23は、本実施形態3にかかる再構成処理の流れを示すフローチャートである。まず、MCU200bは起動する。そして、再構成制御回路210bは、割込みIDを0に設定する(S221)。そして、再構成制御回路210bは、FLASH220から構成情報221bを読み出す(S222)。次に、再構成制御回路210bは、構成情報221bに基づいてバス回路250へ各種設定を指示する(S223)。具体的には、再構成制御回路210bは、割込みID0に対応付けられた構成情報を特定し、特定した構成情報に基づいてバス回路250へ各種設定を指示する。これにより、割込みID0におけるバス回路250の再構成ができる。
その後、CPU271〜27xのうちいずれかは、FLASH220からソフトウェア222を読み込み、実行する(S224)。そして、再構成制御回路210bは、割込みコントローラ282からの割込み信号を監視する。再構成制御回路210bは、割込みが発生したか、又は、終了したかを判定する(S225)。割込みが発生及び終了のいずれでもない場合、ステップS225へ戻る。一方、割込みが発生又は終了のいずれかであった場合、再構成制御回路210bは、割込みIDを変更する(S226)。例えば、割込みが発生した場合、再構成制御回路210bは、割込みコントローラ282から割込み要求の通知を受け付け、割込みIDを発生した割込み要求が示すIDへ変更する。また、割込みが終了した場合、再構成制御回路210bは、割込みIDを戻り先の処理に対応した値に変更する。
その後、再構成制御回路210bは、FLASH220から構成情報221bを読み出す(S227)。次に、再構成制御回路210bは、現在の割込みIDに対応付けられた構成情報を特定し、特定した構成情報に基づいてバス回路250へ各種設定を指示する(S228)。これにより、現在の割込みIDにおけるバス回路250の再構成ができる。そして、ステップS225へ戻る。
このように、本実施形態により、割込み処理ごとに回路構成が最適化できる。よって、実施形態1と比べてさらに消費電力を低減させることができる。
以上、本発明者によってなされた発明を実施の形態に基づき具体的に説明したが、本発明は既に述べた実施の形態に限定されるものではなく、その要旨を逸脱しない範囲において種々の変更が可能であることはいうまでもない。
1000 半導体装置
1101 回路
110n 回路
1200 バス回路
1201 バッファ
1202 バッファ
120m バッファ
1211 調停回路
1212 調停回路
121p 調停回路
1300 記憶部
1310 構成情報
1400 制御回路
2000 再構成制御システム
2000a 再構成制御システム
2000b 再構成制御システム
100 エミュレーションデバイス
100a エミュレーションデバイス
100b エミュレーションデバイス
110 動作モニタ
110a 動作モニタ
110b 動作モニタ
111 動作情報
111a 動作情報
111b 動作情報
120 FLASH
121 ソフトウェア
130 RAM
140 通信モジュール
150 バス回路
161 周辺モジュール
16n 周辺モジュール
171 CPU
17x CPU
181 DMA
182 割込みコントローラ
183 ポート
200 MCU
200a MCU
200b MCU
210 再構成制御回路
210a 再構成制御回路
210b 再構成制御回路
220 FLASH
221 構成情報
221a 構成情報
221b 構成情報
222 ソフトウェア
230 RAM
240 通信モジュール
250 バス回路
261 周辺モジュール
26n 周辺モジュール
271 CPU
27x CPU
281 DMA
282 割込みコントローラ
283 ポート
300 情報処理装置
310 情報変換処理部
320 記憶部
321 動作情報
322 回路情報
323 構成情報
300a 情報処理装置
310a 情報変換処理部
321a 動作情報
322a 回路情報
323a 構成情報
300b 情報処理装置
310b 情報変換処理部
321b 動作情報
322b 回路情報
323b 構成情報
401 マスタ
402 マスタ
403 マスタ
404 マスタ
405 マスタ
406 マスタ
411 スレーブ
412 スレーブ
413 スレーブ
511 クロスバスイッチ
512 クロスバスイッチ
521 調停回路
5211 FF群
5212 ラウンドロビン式優先度判定回路
5213 固定優先度式優先度判定回路
5214 FF群
522 調停回路
531 バッファ回路
5311 セレクタ
5312 セレクタ
5313 ライトポインタ制御回路
5314 リードポインタ制御回路
5315 バッファ群
53150 バッファエントリ0
53151 バッファエントリ1
53152 バッファエントリ2
53153 バッファエントリ3
532 バッファ回路
540 クロスバスイッチ
551 調停回路
552 調停回路
553 調停回路
561 加算器
562 FF
563 比較器
564 セレクタ
565 セレクタ
566 FF
567 デコーダ
REQ リクエスト信号
ARBSEL アービトレーション選択信号
A0〜An 活性信号

Claims (12)

  1. 複数の回路と、
    前記複数の回路の間の通信データを一時的に保存する複数のバッファと、前記複数の回路と前記複数のバッファとの間のアクセスを調停する複数の調停回路とを有するバス回路と、
    前記複数の回路の間の通信における前記複数のバッファの使用状況に基づく情報と前記複数の回路のうち前記通信に使用されない不使用回路の指定とを含む構成情報を記憶する記憶部と、
    前記構成情報に基づいて、前記複数のバッファのうち前記通信において使用されない不使用バッファ及び前記複数の調停回路のうち前記不使用回路に対応する調停回路内の少なくとも一部の構成の使用を停止するように、前記バス回路を制御する制御回路と、
    を備える半導体装置。
  2. 前記バス回路は、
    前記複数のバッファの中からアクセス対象のバッファを選択する選択回路をさらに有し、
    前記制御回路は、
    前記複数のバッファのうち前記不使用バッファに対して、クロック信号の供給を停止するように指示し、
    前記選択回路に対して、前記不使用バッファを選択の対象外とするように指示する
    請求項1に記載の半導体装置。
  3. 前記構成情報は、
    前記複数のバッファのうち前記通信におけるバッファの最大使用数を含み、
    前記制御回路は、
    前記選択回路に対して、前記複数のバッファのうち前記最大使用数以下のバッファを選択するように指示する
    請求項2に記載の半導体装置。
  4. 前記構成情報は、
    前記複数のバッファの総数から前記最大使用数を除いた数のバッファを前記不使用バッファとしてさらに含む
    請求項3に記載の半導体装置。
  5. 前記不使用回路は、前記複数の回路のうち前記通信におけるマスタ回路又はスレーブ回路として使用されないものであり、
    前記バス回路は、
    前記複数の調停回路のうち前記マスタ回路又は前記スレーブ回路からの複数のアクセスを調停する第1の調停回路をさらに含み、
    前記制御回路は、
    前記指定された不使用回路に対応する前記第1の調停回路内の少なくとも一部の構成に対するクロック信号の供給を停止するように、前記バス回路を制御する
    請求項1に記載の半導体装置。
  6. 前記バス回路は、
    前記複数の調停回路のうち前記マスタ回路又は前記スレーブ回路に対する複数のアクセスを調停する第2の調停回路をさらに含み、
    前記制御回路は、
    前記指定された不使用回路に対応する前記第2の調停回路に対するクロック信号の供給を停止するように、前記バス回路を制御する
    請求項5に記載の半導体装置。
  7. 前記構成情報は、
    特定のソフトウェアの実行時における前記使用状況に基づく情報である、
    請求項1に記載の半導体装置。
  8. 前記構成情報は、
    前記複数の回路及び前記バス回路と同等の構成を少なくとも搭載した他の半導体装置において前記特定のソフトウェアを実行した場合に取得された動作情報に基づき導出されたものである、
    請求項7に記載の半導体装置。
  9. 前記構成情報は、
    前記特定のソフトウェアの実行時において発生する割込み処理ごとに対応付けられた情報であり、
    前記制御回路は、
    前記特定のソフトウェアの実行時において前記割込み処理が発生した場合に、前記記憶部の中から当該割込み処理に対応する前記構成情報を特定し、
    当該特定した構成情報に基づいて、前記バス回路を制御し、
    前記割込み処理の終了後に、当該割込み処理の発生前の構成情報に基づいて、前記バス回路を制御する
    請求項7に記載の半導体装置。
  10. 前記構成情報は、
    前記特定のソフトウェアの実行時において使用された、前記半導体装置が備える割込みコントローラによる割込み通知、DMA(Direct Memory Access)の使用チャネル、又は、通信ポートのポートに基づいて特定される不使用回路の指定を含み、
    前記制御回路は、
    前記特定のソフトウェアの実行時において、前記指定された不使用回路に対応する構成に対するクロック信号の供給を停止するように、前記割込みコントローラ、前記DMA、又は、前記通信ポートを制御する
    請求項7に記載の半導体装置。
  11. 複数の回路と、前記複数の回路の間の通信データを一時的に保存する複数のバッファ及び前記複数の回路と前記複数のバッファとの間のアクセスを調停する複数の調停回路を有するバス回路と、前記複数の回路の間の通信における前記複数のバッファの使用状況に基づく情報及び前記複数の回路のうち前記通信に使用されない不使用回路の指定を含む構成情報を記憶する記憶部と、制御回路とを備える半導体装置の再構成制御方法であって、
    前記制御回路が、
    前記構成情報を前記記憶部から読み出し、
    前記構成情報に基づいて、前記複数のバッファのうち前記通信において使用されない不使用バッファ及び前記複数の調停回路のうち前記不使用回路に対応する調停回路内の少なくとも一部の構成の使用を停止するように、前記複数のバッファを有するバス回路を制御する
    半導体装置の再構成制御方法。
  12. 前記複数の回路及び前記バス回路と同等の構成を少なくとも搭載した他の半導体装置において、特定のソフトウェアを実行した際に、前記複数の回路の間の前記通信に関する動作情報を取得し、
    前記動作情報に基づき前記構成情報を導出し、
    前記構成情報を前記記憶部に格納し、
    前記半導体装置における前記特定のソフトウェアの実行時に、前記記憶部から前記構成情報を読み出す、
    請求項11に記載の半導体装置の再構成制御方法。
JP2017233116A 2017-12-05 2017-12-05 半導体装置及びその再構成制御方法 Pending JP2019103013A (ja)

Priority Applications (5)

Application Number Priority Date Filing Date Title
JP2017233116A JP2019103013A (ja) 2017-12-05 2017-12-05 半導体装置及びその再構成制御方法
US16/152,207 US10802730B2 (en) 2017-12-05 2018-10-04 Semiconductor device and reconfiguration control method of the same
EP18201272.4A EP3495919A1 (en) 2017-12-05 2018-10-18 Semiconductor device and reconfiguration control method of the same
CN201811341923.8A CN109872753A (zh) 2017-12-05 2018-11-12 半导体器件及其重新配置控制方法
KR1020180148167A KR20190066551A (ko) 2017-12-05 2018-11-27 반도체 장치 및 그 재구성 제어 방법

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2017233116A JP2019103013A (ja) 2017-12-05 2017-12-05 半導体装置及びその再構成制御方法

Publications (1)

Publication Number Publication Date
JP2019103013A true JP2019103013A (ja) 2019-06-24

Family

ID=63914896

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2017233116A Pending JP2019103013A (ja) 2017-12-05 2017-12-05 半導体装置及びその再構成制御方法

Country Status (5)

Country Link
US (1) US10802730B2 (ja)
EP (1) EP3495919A1 (ja)
JP (1) JP2019103013A (ja)
KR (1) KR20190066551A (ja)
CN (1) CN109872753A (ja)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110928816B (zh) * 2019-10-28 2021-06-08 北京时代民芯科技有限公司 一种片上可配置中断控制系统电路

Family Cites Families (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2001273711A (ja) * 2000-03-28 2001-10-05 Sanyo Electric Co Ltd Cd−romデコーダ
KR100585116B1 (ko) * 2003-12-13 2006-06-01 삼성전자주식회사 멀티 뱅크 메모리의 억세스 효율을 개선한 아비터, 이를구비한 메모리 억세스 중재 시스템 및 그 방법
JP5051448B2 (ja) 2007-08-07 2012-10-17 ソニー株式会社 情報処理装置および方法、並びにプログラム
JP4659774B2 (ja) 2007-03-07 2011-03-30 三菱電機株式会社 電気機器
WO2009060567A1 (ja) 2007-11-09 2009-05-14 Panasonic Corporation データ転送制御装置、データ転送装置、データ転送制御方法及び再構成回路を用いた半導体集積回路
US8030982B2 (en) 2008-10-30 2011-10-04 Qualcomm Incorporated Systems and methods using improved clock gating cells
KR101842245B1 (ko) * 2011-07-25 2018-03-26 삼성전자주식회사 시스템 온 칩 버스 장치 및 그에 따른 루트 클럭 게이팅 방법
KR102090677B1 (ko) * 2013-09-16 2020-03-18 삼성전자주식회사 비휘발성 메모리 장치 및 그것의 동작 방법
JP2016173798A (ja) * 2015-03-18 2016-09-29 ルネサスエレクトロニクス株式会社 半導体装置

Also Published As

Publication number Publication date
US10802730B2 (en) 2020-10-13
EP3495919A1 (en) 2019-06-12
KR20190066551A (ko) 2019-06-13
CN109872753A (zh) 2019-06-11
US20190171377A1 (en) 2019-06-06

Similar Documents

Publication Publication Date Title
US7062615B2 (en) Multi-channel memory access arbitration method and system
KR100899951B1 (ko) 캐시 메모리 버스트 싸이클 동안 버스 중재를 제어하는시스템 및 방법
KR102444201B1 (ko) 플랫폼 마지닝 및 디버그를 위한 소프트웨어 모드 레지스터 액세스
US11029746B2 (en) Dynamic power management network for memory devices
WO2021026095A1 (en) Memory controller for non-interfering accesses to nonvolatile memory by different masters, and related systems and methods
JP2007508607A (ja) 複数のプロセッサと1つのメモリシステムを有するシステムのためのメモリインタフェース
JP2008009817A (ja) 半導体装置及びデータ転送方法
US20040153596A1 (en) Method and apparatus for dynamic prioritization of interrupts
US9047264B2 (en) Low pin count controller
JP2019103013A (ja) 半導体装置及びその再構成制御方法
US11288223B2 (en) Bridge chip with function of expanding external devices and associated expansion method
EP3959620B1 (en) Processor/endpoint communication coupling configuration system
US8244994B1 (en) Cooperating memory controllers that share data bus terminals for accessing wide external devices
JP5775398B2 (ja) 半導体集積回路装置
TW201437814A (zh) 記憶體存取方法、記憶體存取控制方法、spi快閃記憶體裝置以及spi控制器
US20140359187A1 (en) Control apparatus and control method
US20060136642A1 (en) Interrupt distribution for multiprocessor system
KR102034660B1 (ko) 이종 시스템의 가속기 제어 방법 및 이를 수행하기 위한 이종 시스템
CN112100002A (zh) 半导体装置和操作半导体装置的方法
WO2013046548A1 (ja) メモリ制御システム及び電力制御方法
US9645830B2 (en) On-chip circuitry for configuring peripherals of a system on a chip
JP6535516B2 (ja) マルチ・プログラマブルデバイス・システムとその制御方法
CN117743235A (zh) I2c设备的访问方法及装置
JP2007128196A (ja) 情報処理システム及び情報処理システムの制御方法
Jolley Sensible software etiquette using a universal serial bus to MIL-STD-1553 interface bridge