JP2017102702A - 半導体装置及び半導体装置の制御方法 - Google Patents

半導体装置及び半導体装置の制御方法 Download PDF

Info

Publication number
JP2017102702A
JP2017102702A JP2015235387A JP2015235387A JP2017102702A JP 2017102702 A JP2017102702 A JP 2017102702A JP 2015235387 A JP2015235387 A JP 2015235387A JP 2015235387 A JP2015235387 A JP 2015235387A JP 2017102702 A JP2017102702 A JP 2017102702A
Authority
JP
Japan
Prior art keywords
unit
semiconductor device
control
control reception
operation request
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
JP2015235387A
Other languages
English (en)
Other versions
JP6608688B2 (ja
Inventor
昌 長谷
Akira Hase
昌 長谷
哲治 津田
Tetsuji Tsuda
哲治 津田
西川 直宏
Naohiro Nishikawa
直宏 西川
由紀 井上
Yuki Inoue
由紀 井上
誠二 望月
Seiji Mochizuki
誠二 望月
勝重 松原
Katsushige Matsubara
勝重 松原
連 今岡
Ren Imaoka
連 今岡
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 JP2015235387A priority Critical patent/JP6608688B2/ja
Priority to EP16194438.4A priority patent/EP3176702B1/en
Priority to CN201610973476.2A priority patent/CN107066329B/zh
Priority to US15/357,212 priority patent/US10191872B2/en
Publication of JP2017102702A publication Critical patent/JP2017102702A/ja
Priority to US16/253,802 priority patent/US10642768B2/en
Application granted granted Critical
Publication of JP6608688B2 publication Critical patent/JP6608688B2/ja
Active 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/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5005Allocation of resources, e.g. of the central processing unit [CPU] to service a request
    • G06F9/5027Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals
    • G06F9/5044Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals considering hardware capabilities
    • 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/36Handling requests for interconnection or transfer for access to common bus or bus system
    • G06F13/362Handling requests for interconnection or transfer for access to common bus or bus system with centralised access control
    • 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
    • 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/173Interprocessor communication using an interconnection network, e.g. matrix, shuffle, pyramid, star, snowflake
    • G06F15/17306Intercommunication techniques
    • G06F15/17312Routing techniques specific to parallel machines, e.g. wormhole, store and forward, shortest path problem congestion
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • G06F15/76Architectures of general purpose stored program computers
    • G06F15/78Architectures of general purpose stored program computers comprising a single central processing unit
    • G06F15/7807System on chip, i.e. computer system on a single chip; System in package, i.e. computer system on one or more chips in a single package
    • 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/46Multiprogramming arrangements
    • G06F9/52Program synchronisation; Mutual exclusion, e.g. by means of semaphores
    • G06F9/526Mutual exclusion algorithms

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Hardware Design (AREA)
  • Software Systems (AREA)
  • Mathematical Physics (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Computing Systems (AREA)
  • Microelectronics & Electronic Packaging (AREA)
  • Microcomputers (AREA)
  • Advance Control (AREA)
  • Logic Circuits (AREA)

Abstract

【課題】半導体装置において共有リソースを使用する際の調停に必要なCPUの負荷を軽減すること。【解決手段】半導体装置100は、CPU部10及びハードウェアIP11とを有する。CPU部10は、ソフトウェアS1〜S4が実行される。ハードウェアIP11は、記憶部1、調停部2及び演算部3を有する。記憶部1は、ソフトウェアS1〜S4のそれぞれが送出する動作要求OR1〜OR4を受け付ける制御受付部CR1〜CR4を有する。演算部3制御受付部から送出される動作要求に基づいて処理を行う。調停部2は、演算部3が、制御受付部CR1〜CR4のいずれかからの動作要求のみを受け取るように、制御受付部CR1〜CR4と演算部3との間の情報伝達を制御する。【選択図】図2

Description

本発明は、半導体装置及び半導体装置の制御方法に関する。
SoC(System-on-a-chip)は、1つの半導体チップに複数の機能が集積されたものであり、複数のCPUを有し、かつ、複数のアプリケーションが同時に実行される。近年では、SoCが搭載されるシステムの高性能化によってSoCの大規模化が進展している。
SoCでは、半導体チップのハードウェアIP(Intellectual Property)に対して、複数のアプリケーションから同時に動作要求を受けることが有る。ハードウェアIPとは、半導体チップを構成するための機能単位でまとめられた部分的な回路情報であり、ハードウェアによって実装されたものを言う。この場合、誤動作などを避けるため、競合する動作要求を調停する必要が有る。
このような調停方法として、ソフトウェア処理により競合する動作要求を調停する手法が提案されている(特許文献1)。この手法では、複数のCPUの間で通信を行うことで優先権の調整が行われ、その結果に基づいて共有リソースが使用される。
他にも、ソフトウェア処理により競合する動作要求を調停する手法が提案されている(特許文献2)。この手法では、オペレーティングシステムやアプリケーション(ソフトウェア)によるセマフォ管理を行うことで、共有リソースの使用権を獲得する。
特開2010−140290号公報 特開2011−232956号公報
ところが、発明者らは、上記のような調停方法には以下に示す問題点が有ることを見出した。上記の調停方法においては、共有リソースを使用する権利を獲得するために、CPU間での通信、オペレーティングシステムやアプリケーション(ソフトウェア)間での通信による調停処理を行う必要が有る。そのため、調停処理の応答はCPUの処理能力、オペレーティングシステムやアプリケーション(ソフトウェア)に依存することとなる。半導体装置のハードウェアIPの高速化が進展する中でソフトウェアの応答頻度は増大しており、CPUにかかる負荷も増大している。そのため、ソフトウェアによる調停処理の応答性能を実現することは困難である。
その他の課題と新規な特徴は、本明細書の記述および添付図面から明らかになるであろう。
一実施の形態によれば、半導体装置は、複数のソフトウェアが実行されるCPU部と、
ハードウェアIPと、を有する。前記ハードウェアIPは、前記複数のソフトウェアの動作要求を受け付ける複数の制御受付部を有する第1の記憶部と、動作要求に基づいて処理を行う演算部と、前記演算部が、1つの動作要求のみを受け取るように、前記複数の制御受付部と前記演算部との間の情報伝達を制御する調停部と、を有する。
一実施の形態によれば、半導体装置の制御方法は、複数のソフトウェアが実行されるCPU部と、ハードウェアIPと、を有する半導体装置において、前記ハードウェアIPの演算部が、前記ハードウェアIPの第1の記憶部が有する前記複数のソフトウェアの動作要求を受け付ける複数の制御受付部のいずれかからの動作要求のみを受け取るように、前記複数の制御受付部と前記演算部との間の情報伝達を制御する。
一実施の形態によれば、半導体装置において共有リソースを使用する際の調停に必要なCPUの負荷を軽減することができる。
実施の形態1にかかる半導体装置のハードウェア構成を模式的に示すブロック図である。 実施の形態1にかかる半導体装置の構成を模式的に示すブロック図である。 実施の形態1にかかる半導体装置での調停動作を示すブロック図である。 実施の形態1にかかる半導体装置の演算部の応答動作を示すブロック図である。 実施の形態2にかかる半導体装置の構成を模式的に示すブロック図である。 実施の形態3にかかる半導体装置の構成を模式的に示すブロック図である。 実施の形態4にかかる半導体装置の構成を模式的に示すブロック図である。 実施の形態4にかかる半導体装置の動作を示すブロック図である。
以下、図面を参照して本発明の実施の形態について説明する。各図面においては、同一要素には同一の符号が付されており、必要に応じて重複説明は省略される。
実施の形態1
実施の形態1にかかる半導体装置100について説明する。図1は、実施の形態1にかかる半導体装置100のハードウェア構成を模式的に示すブロック図である。半導体装置100は、CPU(Central Processing Unit)10_1〜CPU10_N(Nは、2以上の整数)、及び、ハードウェアIP(Intellectual Property)11を有する。CPU10_1〜CPU10_NとハードウェアIP11とは、バス20により、相互に情報伝達が可能である。
CPU10_1〜CPU10_Nは、所定のオペレーティングシステムを実行可能に構成される。オペレーティングシステムは、CPU10_1〜CPU10_Nのいずれか1つで実行されてもよいし、複数のCPUにまたがって実行されてもよい。この例では、CPU10_1〜CPU10_Nでは、それぞれオペレーティングシステムOS_1〜OS_Nが実行されるものとして示している。なお、以下では、説明の簡略化のため、CPU10_1〜CPU10_NをCPU部10とも称する。
各オペレーティングシステムでは、1又は複数のソフトウェアが実行される。ここでは、CPU10_1〜CPU10_N(すなわち、オペレーティングシステムOS_1〜OS_N)において、ソフトウェアS1〜Snが実行されるものとする。
ハードウェアIP11は記憶部1、調停部2及び演算部3を有する。記憶部1は、実行されるソフトウェアS1〜Snのそれぞれに対応するように、制御受付部CR1〜CRnが設けられる。制御受付部CR1〜CRnは、例えば、それぞれ独立したレジスタで構成される。つまり、制御受付部CR1〜CRnは、それぞれソフトウェアS1〜Snに対して、重複することなく1対1の対応関係を有する。すなわち、制御受付部CRi(iは、1≦i≦nを満たす整数)は、ソフトウェアSiのみからの動作要求を受け付け、かつ、ソフトウェアSiのみへ制御受付部CRi内の情報を送出する。
調停部2は、制御受付部CR1〜CRnのいずれか1つからの動作要求のみが演算部3に送出されるように、制御受付部CR1〜CRnと演算部3との間の情報のやりとり(情報伝達)を制御する。また、調停部2は、演算部3が受とった動作要求に応じた動作を行った結果生じた情報(応答情報)が、当該動作要求を出力した制御受付部に送出されるように、制御受付部CR1〜CRnと演算部3との間の情報のやりとり(情報伝達)を制御する。
演算部3は、CPU10_1〜CPU10_Nが共有する共有リソースであり、ソフトウェアからの動作要求に応じた処理を実行する。
以下、半導体装置100における動作要求の調停動作について具体的に説明する。ここでは、説明の簡略化のため、半導体装置100では、4つのソフトウェアS1〜S4が動作し、これらに対応する4つの制御受付部CR1〜CR4が設けられている例について説明する。図2は、実施の形態1にかかる半導体装置100の構成を模式的に示すブロック図である。図2では、図面の簡略化のため、オペレーティングシステム及びバスの表示を省略している。
まず、ソフトウェアS1〜S4が、同時に、ないしは近接したタイミングで、それぞれ動作要求OR1〜OR4を制御受付部CR1〜CR4へ送出する。制御受付部CR1〜CR4は、それぞれ受け取った動作要求OR1〜OR4を保持する。
調停部2は、設定された調停方式に従って、制御受付部CR1〜CR4に保持された動作要求のいずれを演算部3に受け渡すかを選択する。例えば、調停部2は、調停方式としてラウンドロビン(Round Robin)やLRU(Least Recently Used)などの調停方式を適用することができる。また、調停部2は、ランダムに制御受付部を選択してもよい。
調停部2は、設定された調停方式に従って、選択した制御受付部に保持される動作要求が演算部3に送出されるように動作する。
図2に示すように、調停部2は、スイッチング回路2A(第1のスイッチング回路とも称する)及び制御部2Bを有する。スイッチング回路2Aは、スイッチング素子Q1〜Q4を有する。スイッチング素子Q1は、MOSFET(Metal-Oxide-Semiconductor Field-Effect Transistor)やバイポーラトランジスタなどのトランジスタで構成してもよい。この例では、スイッチング素子Q1〜Q4は、それぞれ制御受付部CR1〜CR4と演算部3との間に挿入される。
制御部2Bは、制御信号CON1〜CON4により、スイッチング素子Q1〜Q4の開閉(オン/オフ)を制御する。例えば、スイッチング素子Q1〜Q4がMOSFETである場合には、制御部2Bはスイッチング素子Q1〜Q4のゲート(制御端子)にゲート電圧(すなわち、制御信号CON1〜CON4)を与えることで、スイッチング素子Q1〜Q4の開閉(オン/オフ)を制御する。本実施の形態では、制御部2Bは、スイッチング素子Q1〜Q4のいずれかのみが閉じる(オンになる)ように、スイッチング素子Q1〜Q4を制御する。
制御部2Bは、上述の設定された調停方式に従って、動作要求を送出する制御受付部を選択する。ここでは、動作要求を送出する制御受付部として、制御受付部CR2が選択された場合について説明する。図3は、実施の形態1にかかる半導体装置100での調停動作を示すブロック図である。図3では、図面の簡略化のため、オペレーティングシステム及びバスの表示を省略している。この場合、図3に示すように、制御部2Bは、スイッチング素子Q2を閉じ(スイッチング素子Q2をオンに)、スイッチング素子Q1、O3及びQ4を開放(スイッチング素子Q1、O3及びQ4をオフに)する。これにより、制御受付部CR2と演算部3とが接続される。
この状態で、制御受付部CR2は、保持している動作要求OR2を演算部3に出力する。演算部3は、受け取った動作要求OR2に応じた処理を実行する。この際、スイッチング素子Q1、O3及びQ4は、演算部3と物理的に分離されているので、演算部3は、確実に動作要求OR2に応じた処理を実行することができる。以上、本構成によれば、制御受付部CR1〜CR4からの動作要求を調停し、いずれか1つの動作要求のみを演算部3に送出することができる。
また、演算部3は、受け取った動作要求OR2に応じた処理を実行した後、当該実行の結果生じた情報を、動作要求OR2を送出した制御受付部CR2に送出してもよい(以下、演算部の応答動作と称する。)。図4は、実施の形態1にかかる半導体装置100の演算部3の応答動作を示すブロック図である。図4では、図面の簡略化のため、オペレーティングシステム及びバスの表示を省略している。例えば、演算部3は、応答動作において、処理完了通知や、演算部3の負荷を示す情報などを処理実行の結果生じた情報を、応答情報INFとして送出してもよい。
以上、本構成によれば、動作要求の調停がハードウェアIPで行われるので、CPUは調停にかかるソフトウェア処理を行う必要がなく、CPUの負荷を軽減することができる。また、CPUで実行されるソフトウェアに対応する制御受付部がハードウェアIPに設けられているので、CPUはソフトウェアからの動作要求を逐次送出することができる。その結果、CPUに送出待ちの動作要求が滞留することもなく、CPUの負荷を更に低減できることが理解できる。
また、本構成は、機能安全の観点から有利である。以下、その理由について説明する。ソフトウェアS1〜Snの動作要求OR1〜ORnは、それぞれ専用に設けられた制御受付部CR1〜CRn送出されるので、各動作要求は他の動作要求と干渉ないしは交錯することなく演算部3に到達することができる。したがって、ソフトウェアS1〜Snの機能安全を確保する観点から、各ソフトウェアに専属的に対応する制御受付部を設けることで、ソフトウェアの機能安全を確保することができる。
上記の半導体装置100は、カーナビゲーションシステムなどの車載端末に搭載することができる。例えば、カーナビゲーションシステムでは、地上波デジタル放送再生アプリケーション及びDVD/BD(Digital Versatile Disc/Blue-ray Disc)(登録商標)再生アプリケーションがそれぞれ独立して、ビデオ/オーディオデコーダIP(Intellectual Property)に動作要求を発行する。このとき、両アプリケーションから同時に動作要求が発行される場合でも、半導体装置100のハードウェアIP11において調停処理を行うことができる。また、カーナビゲーションシステムの運転支援機能などを利用して運転制御などが行われる場合を想定すると、車両運行の安全確保の観点から運転制御にかかるアプリケーションには高い機能安全が求められる。この場合でも、上述の通り、半導体装置100では高い機能安全を実現できる。
また、上記の半導体装置100は、スマートフォンなどの携帯端末に搭載することができる。例えば、スマートフォンでは、WiFi経由でTVに動画データを送信するためのアプリケーションや、スマートフォンのパネル上で動画を再生するためのアプリケーションがそれぞれ独立して、ビデオ/オーディオコーデックIP(Intellectual Property)に動作要求を発行する。このとき、両アプリケーションから同時に動作要求が発行される場合でも、半導体装置100のハードウェアIP11において調停処理を行うことができる。
実施の形態2
上述の実施の形態1では、実行されるソフトウェアと同じ個数の制御受付部が設けられる半導体装置について説明した。しかしながら、上記構成においては、ソフトウェアの数が多くなると、設けられる制御受付部の数も多くなってしまい、半導体装置(すなわち、SoC)の大型化を招いてしまう。これに対し、本実施の形態では、実施の形態1にかかる半導体装置100の変形例として、制御受付部の数を抑制しつつハードウェアIPで調停処理を行う半導体装置について説明する。
図5は、実施の形態2にかかる半導体装置200の構成を模式的に示すブロック図である。図5では、図面の簡略化のため、オペレーティングシステム及びバスの表示を省略している。半導体装置200のハードウェアIP12は、実施の形態1にかかる半導体装置100のハードウェアIP11に対応する。ハードウェアIP12は、実施の形態1にかかるハードウェアIP11の記憶部1を記憶部4に置換し、調停部2を調停部5に置換し、更に記憶部6を追加した構成を有する。なお、説明の明確化のため、記憶部1及び4を第1の記憶部とも称し、記憶部6を第2の記憶部とも称する。半導体装置200のその他の構成は、半導体装置100と同様であるので、説明を省略する。
記憶部4は、実行されるソフトウェアS1〜Snから送出される動作要求を受け付ける制御受付部CR1〜CRm(mは、2<m<nを満たす整数)が設けられる。すなわち、本実施の形態では、制御受付部は複数個設けられるものの、その個数はソフトウェアの数よりも少ない。制御受付部CR1〜CRmは、対応するソフトウェアからの動作要求を受け付け、かつ、対応するソフトウェアへ当該制御受付部内の情報を送出する。
記憶部6は、外部メモリ(DRAM:Dynamic Random Access Memory)キャッシュメモリなどの各種の記憶装置とすることができる。記憶部6は、制御受付部CR1〜CRmの一部又は全部から転送される動作要求を逐次格納し、制御部2Bの要求に応じて格納した動作要求を制御部2Bに送出する。
調停部5は、調停部2のスイッチング回路2Aをスイッチング回路5A(第1のスイッチング回路とも称する)に置換した構成を有する。スイッチング回路5Aは、スイッチング回路2Aのスイッチング素子Q3及びQ4を削除し、新たにスイッチング素子QMを追加した構成を有する。スイッチング素子QMは、MOSFET(Metal-Oxide-Semiconductor Field-Effect Transistor)やバイポーラトランジスタなどのトランジスタで構成してもよい。スイッチング素子QMは、記憶部6と演算部3との間に挿入される。
制御部2Bは、制御信号CON1、CON2及びCON_Mにより、スイッチング素子Q1、Q2及びQMの開閉(オン/オフ)を制御する。スイッチング素子QMがMOSFETである場合には、制御部2Bはスイッチング素子QMのゲート(制御端子)にゲート電圧(すなわち、制御信号CON_M)を与えることで、スイッチング素子QMの開閉(オン/オフ)を制御する。本実施の形態では、制御部2Bは、スイッチング素子Q1、Q2及びQMのいずれかのみが閉じる(オンになる)ように、スイッチング素子Q1、Q2及びQMを制御する。
また、上述のスイッチング素子QMを用いない構成とすることも可能である。この場合、記憶部6は制御部2Bの要求に応じて格納した動作要求を記憶部4に送出する。制御部2Bはスイッチング素子Q1及びスイッチング素子Q2のいずれかのみが閉じる(オンにする)ように制御する。記憶部4は、格納した動作要求を出力する場合、出力対象の動作要求に対応するレジスタに動作要求を送出する。制御部2Bが動作要求を受け取ったレジスタに接続されるスイッチング素子(スイッチング素子Q1又はQ2)を閉じる(オンにする)ことで、当該レジスタから演算部3への動作要求の送出が可能となる。
以下、半導体装置200の動作について説明する。ここでは、説明の簡略化のため、半導体装置200では、4つのソフトウェアS1〜S4が動作し、2つの制御受付部CR1及びCR2が設けられている例について説明する。
まず、ソフトウェアS1〜S4が、同時に、ないしは近接したタイミングで、それぞれ動作要求OR1〜OR4を送出する。この例では、制御受付部CR1は、ソフトウェアS1からの動作要求OR1のみを受け付ける。すなわち、制御受付部CR1とソフトウェアS1とは、1対1の対応関係を有する。一方で、制御受付部CR2は、ソフトウェアS2〜S4からの動作要求OR2〜OR4を受け付ける。そして、受け付けた動作要求を記憶部6に転送する。転送された動作要求は記憶部4に格納される。図5では、記憶部6に格納された動作要求を、OR2_1、OR2_2、・・・、OR3_1、OR3_2、・・・、OR4_1、OR4_2、・・・と表示している。記憶部に格納された動作要求は、例えば、送出元のソフトウェアに応じてラベル付け(ソフトウェア間で優先順位を設定)してもよいし、転送された順番に応じてラベル付け(転送された時期が早い順に優先順位を設定)してもよい。
制御受付部CR2は、受け付けた動作要求を記憶部6に格納したのち、格納済み動作要求を制御受付部CR2から消去し、ソフトウェアから送出される他の動作要求を受け付けることができる状態に復帰する。
これにより、制御受付部CR2が動作要求を保持する時間を抑制し、複数のソフトウェアから連続的に送出される動作要求を滞りなく受け付けることができる。その結果、ソフトウェアS2〜S4の動作要求の送出待ちを回避できるので、CPUの利用効率を高めることが可能となる。
調停部5は、設定された調停方式に従って、制御受付部CR1及びCR2、記憶部6に保持された動作要求のいずれを演算部3に受け渡すかを決定する。例えば、調停方式としてラウンドロビン(Round Robin)を用いる場合には、調停部5は、制御受付部CR1、制御受付部CR2、記憶部6を順番に参照し、動作要求の送出元を選択する。調停部5は、記憶部6を参照する場合には、最も優先順位の高いラベルが付された動作要求を参照する。
調停部5は、選択した送出元からの動作要求が演算部3に送出されるように、実施の形態1と同様に制御動作を行う。
なお、上記では、制御受付部CR1は、受け取った動作要求を逐次記憶部6に格納する構成としてもよい。これにより、制御受付部CR1が動作要求を保持する時間を抑制し、ソフトウェアS1から連続的に動作要求が送出される場合でも、滞りなく動作要求を受け付けることができる。その結果、ソフトウェアS1の動作要求の送出待ちを回避できるので、CPUの利用効率を高めることが可能となる。
また、制御受付部CR1がソフトウェアS1のみに対応するものとして説明したが、制御受付部CR1が複数のソフトウェアに対応する構成としてもよい。
以上、本構成によれば、制御受付部の一部又は全部が複数のソフトウェアから送出される動作要求を受け付ける構成とすることで、制御受付部の個数を削減することができる。これにより、半導体装置の小型化を実現できる点で有利である。
上記では、制御受付部CR1がソフトウェアS1のみに対応するものとして説明したが、1つの制御受付部と1つのソフトウェアを1対1に対応させることにより、機能安全の観点からはメリットがある。換言すれば、ソフトウェアS1が高い機能安全の確保が求められている場合には、専用の制御受付部CR1を割り当てることが望ましい。これにより、ソフトウェアS1と演算部3との間の情報伝達経路に他のソフトウェアが関係することはない。よって、ソフトウェアS1以外のソフトウェアからの動作要求によって、ソフトウェアS1からの動作要求が妨害される、又は干渉するといった事態を未然に回避することができる。その結果、機能安全の保持要求が高いソフトウェアS1からの動作要求を、確実に演算部3に送出することができる。
実施の形態3
実施の形態3にかかる半導体装置について説明する。実施の形態3にかかる半導体装置300は、実施の形態1にかかる半導体装置100の変形例であり、演算部3から送出される情報に基づいて調停部の動作を制御するものである。図6は、実施の形態3にかかる半導体装置300の構成を模式的に示すブロック図である。図6では、図面の簡略化のため、オペレーティングシステム及びバスの表示を省略している。半導体装置300のハードウェアIP13は、実施の形態1にかかる半導体装置100のハードウェアIP11に対応する。ハードウェアIP13は、実施の形態1にかかるハードウェアIP11の調停部2を、調停部7に置換した構成を有する。
調停部7は、実施の形態1にかかる調停部2に調停方式設定部7Cを追加した構成を有する。調停方式設定部7Cには、制御部2Bが動作要求の調停に用いる調停方式(図6におけるAR1、AR2、・・・)が複数格納されている。調停方式設定部7Cに格納される調停方式は、予め与えられていてもよいし、調停方式設定部7Cの外部から書き換え可能であってもよい。制御部2Bは、例えば、CPU10(CPU10_1〜CPU10_N)からの指令ORDにより指定された調停方式を調停方式設定部7Cから読み出し、読み出した特定の調停方式に従って、動作要求の調停を行う。
以下、半導体装置300の調停動作について具体的に説明する。半導体装置300は、実施の形態1にかかる半導体装置100と同様に、動作要求の調停動作を行う。動作要求を受け取った演算部3は、当該動作要求の応じた処理を行い、処理の結果生じた情報(例えば、演算部3の負荷率、演算部3での処理完了通知)を、実施の形態1と同様に、動作要求の送出元であるソフトウェア(すなわち、CPU部10)に送出する。
この例では、ソフトウェアS2が動作要求の送出元であるものとして説明する。この場合、ソフトウェアS2は、演算部3から受け取った情報に基づいて、制御部2Bが用いる調停方式を指定する。例えば、ソフトウェアS2が演算部3の負荷率を示す情報を受け取る場合において、負荷率が所定の値よりも小さいときには調停方式としてラウンドロビンを用い、負荷率が所定の値よりも大きいときにはリアルタイム要求が高いものとしてラベリングされている制御受付部を選択してもよい。
また、例えば、演算部3からの情報が所定時間以内に送出元のソフトウェアに返送されない場合には演算部3での処理を中止し、CPUが制御部に命令を発行することで、他のソフトウェアからの動作要求を実行するように動作してもよい。これにより、所定時間内にハードウェアIPでの動作が確実に完了するため、より精度の高い調停動作が可能となる。
例えば、特定のソフトウェアからの動作要求を対応する制御受付部が受け付けた場合、演算部3で実行中の処理を中止し、当該特定のソフトウェアからの動作要求を実行してもよい。この場合、演算部3は自発的にリセットを行った後に、中止した処理にかかる動作要求を送出した制御受付部に、リセット完了を通知する。その後、当該特定のソフトウェアからの動作要求が実行される。また、演算部3で実行中の処理の中止から特定のソフトウェアからの動作要求を開始するまでの時間を、制御受付部により設定することもできる。これにより、特定のソフトウェアが高い機能安全の確保が求められている場合などにおいて、特定のソフトウェアを優先的に実行することができ、より細かな調停動作が可能となる。
更に、演算部3で実行中の処理を完了して次の処理を開始できるようになるまでの時間を、演算部3が制御受付部に設定してもよい。この場合、設定された情報をソフトウェアに送出することで、ソフトウェアは演算部3の状態を把握することができる。これにより、ソフトウェアは自らの処理の順番や調停方式設定部に設定する調停方式を変更するなどして、より柔軟なハードウェアIPの制御が可能となる。
以上のように、演算部での処理の結果に応じてフィードバックされる情報を用いることで、演算部の処理状況に適した調停方式を選択することができる。これは、半導体装置のハードウェア構成の大規模な変更を有することなく実現可能であり、演算部の処理リソースを有効に活用することができる。
実施の形態4
実施の形態4にかかる半導体装置について説明する。実施の形態4にかかる半導体装置400は、実施の形態1にかかる半導体装置100の変形例であり、特定のソフトウェアの機能安全の確保するための構成を有するものである。図7は、実施の形態4にかかる半導体装置400の構成を模式的に示すブロック図である。図7では、図面の簡略化のため、オペレーティングシステム及びバスの表示を省略している。半導体装置400のハードウェアIP14は、実施の形態1にかかる半導体装置100のハードウェアIP11に対応する。ハードウェアIP14は、実施の形態1にかかるハードウェアIP11にスイッチング回路8(第2のスイッチング回路とも称する)を追加した構成を有する。
スイッチング回路8は、スイッチング素子SW1〜SWnを有し、記憶部1と調停部2との間に挿入される。スイッチング素子SW1〜SWnは、それぞれ制御受付部CR1〜CRnと調停部2との間に挿入される。
スイッチング素子SW1〜SWnは、1又は複数の制御受付部からの制御信号により開閉(オン/オフ)される。本実施の形態では、機能安全の確保が要求されるソフトウェアに対応する制御受付部が、スイッチング素子SW1〜SWnの開閉(オン/オフ)を制御する制御受付部として設定される。
以下、半導体装置400の動作について説明する。ここでは、実施の形態1と同様に、4つのソフトウェアと4つの制御受付部が存在し、かつ、制御受付部CR1に対応するソフトウェアS1が機能安全の確保が求められるものとして説明する。この場合、制御受付部CR1がスイッチング回路8のスイッチング素子SW1〜SW4の開閉(オン/オフ)を制御する。通常時は、図7に示すように、各制御受付部から動作要求を送出できるように、スイッチング素子SW1〜SW4は閉じている。
この状態において、動作要求OR1がソフトウェアS1から制御受付部CR1へ送出されると、制御受付部CR1は動作要求OR1を受け取ると同時に、スイッチング素子SW2〜SW4を開放する。図8は、実施の形態4にかかる半導体装置400の動作を示すブロック図である。図8では、図面の簡略化のため、オペレーティングシステム及びバスの表示を省略している。図8に示すように、制御受付部CR1以外の制御受付部CR2〜CR4からの動作要求の送出が禁止されることとなる。なお、図8に示す状態では、動作要求OR1が演算部3に送出されることとなるので、スイッチング素子Q1は閉じた状態となっている。これにより、ソフトウェアS1から動作要求CR1が、他の動作要求に妨害されることなく、確実にかつ優先的に実行されることとなり、ソフトウェアS1に対する機能安全要求を満たすことができる。
なお、スイッチング回路8は、ソフトウェアS1〜S4と制御受付部CR1〜CR4とのそれぞれの間に挿入された4つのスイッチング素子(第2のスイッチング素子)を更に有してもよい。そして、制御受付部CR1は、動作要求OR1を受け取ると同時に、4つのスイッチング素子のうち、制御受付部CR1に接続されるものを閉じ、制御受付部CR2〜CR4に接続されるものを開放してもよい。
その他の実施の形態
なお、本発明は上記実施の形態に限られたものではなく、趣旨を逸脱しない範囲で適宜変更することが可能である。例えば、上述の実施の形態では、説明の簡略化のため、4つのソフトウェアが動作する具体例について説明した。しかし、言うまでもないことながら、2つ、3つ、又は5つ以上のソフトウェアが動作し、かつ、これらに対応する制御受付部が設けられた半導体装置を構成できることはいうまでもない。
上述の実施の形態3にかかる半導体装置300においても、実施の形態2にかかる半導体装置200と同様に、制御受付部の個数をソフトウェアの数よりも少なくし、かつ、記憶部6を設けて制御受付部からの動作要求を逐次格納する構成とできることは言うまでもない。
上述の実施の形態4にかかる半導体装置400においても、実施の形態2にかかる半導体装置200と同様に、制御受付部の個数をソフトウェアの数よりも少なくし、かつ、記憶部6を設けて制御受付部からの動作要求を逐次格納する構成としてもよいことは言うまでもない。また、上述の実施の形態4にかかる半導体装置400においても、実施の形態3にかかる半導体装置300と同様に、調停方式設定部を設けて、演算部3から送出される情報に基づいて制御部2Bが用いる調停方式を変更する構成としてもよいことは言うまでもない。更に、上述の実施の形態4にかかる半導体装置400において、実施の形態2にかかる半導体装置200と同様に、制御受付部の個数をソフトウェアの数よりも少なくし、記憶部6を設けて制御受付部からの動作要求を逐次格納し、かつ、実施の形態3にかかる半導体装置300と同様に、調停方式設定部を設けて、演算部3から送出される情報に基づいて制御部2Bが用いる調停方式を変更する構成としてもよいことは言うまでもない。
説明の明確化のため、以下の記載及び図面は、適宜、省略、及び簡略化がなされている。また、様々な処理を行う機能ブロックとして図面に記載される各要素は、ハードウェア的には、CPU、メモリ、その他の回路で構成することができ、ソフトウェア的には、メモリにロードされたプログラムなどによって実現される。したがって、これらの機能ブロックがハードウェアのみ、ソフトウェアのみ、またはそれらの組合せによっていろいろな形で実現できることは当業者には理解されるところであり、いずれかに限定されるものではない。なお、各図面において、同一の要素には同一の符号が付されており、必要に応じて重複説明は省略されている。
また、上述したプログラムは、様々なタイプの非一時的なコンピュータ可読媒体(non−transitory computer readable medium)を用いて格納され、コンピュータに供給することができる。非一時的なコンピュータ可読媒体は、様々なタイプの実体のある記録媒体(tangible storage medium)を含む。非一時的なコンピュータ可読媒体の例は、磁気記録媒体(例えばフレキシブルディスク、磁気テープ、ハードディスクドライブ)、光磁気記録媒体(例えば光磁気ディスク)、CD−ROM(Read Only Memory)CD−R、CD−R/W、半導体メモリ(例えば、マスクROM、PROM(Programmable ROM)、EPROM(Erasable PROM)、フラッシュROM、RAM(Random Access Memory))を含む。また、プログラムは、様々なタイプの一時的なコンピュータ可読媒体(transitory computer readable medium)によってコンピュータに供給されてもよい。一時的なコンピュータ可読媒体の例は、電気信号、光信号、及び電磁波を含む。一時的なコンピュータ可読媒体は、電線及び光ファイバ等の有線通信路、又は無線通信路を介して、プログラムをコンピュータに供給できる。
上述の実施の形態では、スイッチング回路(第1及び第2のスイッチング回路)は、MOSFETなどで実現される単一のスイッチング素子で構成される回路であるものとして説明したが、これは例示に過ぎない。上述の実施の形態と同様に記憶部(第1及び第2の記憶部)と演算部との間の情報のやり取りを制御できるならば、スイッチング回路は他の構成とできることは言うまでもない。この場合、スイッチング回路に設けられるスイッチング素子の数は上述の実施の形態の例に限られないし、スイッチング素子以外の素子が含まれていてもよい。また、1又は複数の論理回路を用いてスイッチング回路を構成してもよい。
以上、本発明者によってなされた発明を実施の形態に基づき具体的に説明したが、本発明は既に述べた実施の形態に限定されるものではなく、その要旨を逸脱しない範囲において種々の変更が可能であることはいうまでもない。
1、4、6 記憶部
2、5、7 調停部
3 演算部
2A、5A、8 スイッチング回路
2B 制御部
7C 調停方式設定部
10 CPU部
10_1〜10_N CPU
11〜14 ハードウェアIP
100、200、300、400 半導体装置
CON1〜CON4、CON_M 制御信号
CR1〜CRn 制御受付部
INF 応答情報
OS_1〜OS_N オペレーティングシステム
OR1〜ORn 動作要求
Q1〜Q4、SW1〜SW4 スイッチング素子

Claims (14)

  1. 複数のソフトウェアが実行されるCPU部と、
    前記CPU部が送出する動作要求に基づいて処理を行うハードウェアIPと、を備え、
    前記ハードウェアIPは、
    前記複数のソフトウェアのそれぞれが送出する動作要求を受け付ける複数の制御受付部を有する第1の記憶部と、
    前記制御受付部から送出される動作要求に基づいて処理を行う演算部と、
    前記演算部が、前記複数の制御受付部のいずれかからの動作要求のみを受け取るように、前記複数の制御受付部と前記演算部との間の情報伝達を制御する調停部と、を備える、
    半導体装置。
  2. 前記調停部は、設定された調停方式に従って、前記演算部が受け取る動作要求の送出元となる制御受付部を選択する、
    請求項1に記載の半導体装置。
  3. 前記調停部は、
    複数の制御受付部のそれぞれと前記演算部との間に並列に挿入された複数のスイッチング素子を有する第1のスイッチング回路と、
    前記複数のスイッチの開閉を制御する制御部と、を備え、
    前記調停部は、前記選択された制御受付部に接続されるスイッチング素子を閉じ、前記選択された制御部受付部以外の制御部受付部に接続されるスイッチング素子を開放する、
    請求項2に記載の半導体装置。
  4. 前記複数の制御受付部は、前記複数のソフトウェアと同じ数だけ設けられ、
    前記複数の制御受付部は、それぞれ異なるソフトウェアからの動作要求を受け付ける、
    請求項1に記載の半導体装置。
  5. 1又は複数の動作要求を格納可能に構成される第2の記憶部を更に備え、
    前記複数の制御受付部の数は、前記複数のソフトウェアの数よりも少なく、
    前記複数の制御受付部の一部又は全部は、2以上のソフトウェアからの動作要求を受け付け、
    2以上のソフトウェアからの動作要求を受け付ける制御受付部は、受け付けた動作要求を逐次前記第2の記憶部に格納し、
    前記調停部は、前記演算部が、前記複数の制御受付部及び前記第2の記憶部のいずれかからの動作要求のみを受け取るように、前記複数の制御受付部及び前記第2の記憶部と前記演算部との間の情報伝達を制御する、
    請求項1に記載の半導体装置。
  6. 前記複数の制御受付部の一部は、前記複数のソフトウェアのいずれかからの動作要求のみを受け付け、
    前記複数のソフトウェアのいずれかからの動作要求のみを受け付ける制御受付部は、受け付けた動作要求を逐次前記第2の記憶部に格納する、
    請求項5に記載の半導体装置。
  7. 前記第2の記憶部に動作要求を格納した制御受付部は、前記格納した受付要求を当該制御受付部から消去し、他の動作要求を受付可能な状態に復帰する、
    請求項5に記載の半導体装置。
  8. 前記演算部は、受け取った動作要求に基づいて処理を行ったことで生じた情報である応答情報を、当該動作要求を送出した制御受付部を介して、当該動作要求を送出した制御受付部に送出する、
    請求項1に記載の半導体装置。
  9. 前記調停部は、複数の調停方式が格納された調停方式設定部を有し、
    前記CPU部は、前記応答情報に基づいて、前記調停部が用いる調停方式を指定し、
    前記調停部は、前記指定に対応する調停方式を前記調停方式設定部から取得する、
    請求項8に記載の半導体装置。
  10. 前記複数の制御受付部のうちの特定の制御受付部以外の制御受付部のそれぞれと、前記調停部と、の間に並列に挿入された複数の第1のスイッチング素子を有する第2のスイッチング回路を更に備え、
    前記特定の制御受付部が動作要求を受け付けた場合に、前記複数の第1のスイッチング素子が開放される、
    請求項1に記載の半導体装置。
  11. 前記第2のスイッチング回路の複数のスイッチング素子の開閉は、前記特定の制御受付部により制御され、
    前記特定の制御受付部が動作要求を受け付けた場合に、前記特定の制御受付部は、前記複数の第1のスイッチング素子を開放する、
    請求項10に記載の半導体装置。
  12. 前記第2のスイッチング回路は、前記特定の制御受付部以外の制御受付部のそれぞれと、前記CPU部と、の間に並列に挿入された複数の第2のスイッチング素子を更に備え、
    前記特定の制御受付部が動作要求を受け付けた場合に、前記複数の第2のスイッチング素子が開放される、
    請求項10に記載の半導体装置。
  13. 前記第2のスイッチング素子の開閉は、前記特定の制御受付部により制御され、
    前記特定の制御受付部が動作要求を受け付けた場合に、前記特定の制御受付部は、前記複数の第2のスイッチング素子を開放する、
    請求項12に記載の半導体装置。
  14. 複数のソフトウェアが実行されるCPU部と、前記CPU部が送出する動作要求に基づいて処理を行うハードウェアIPと、を有する半導体装置において、
    前記ハードウェアIPの演算部が、前記ハードウェアIPの第1の記憶部が有する前記複数のソフトウェアのそれぞれが送出する動作要求を受け付ける複数の制御受付部のいずれかからの動作要求のみを受け取るように、前記複数の制御受付部と前記演算部との間の情報伝達を制御する、
    半導体装置の制御方法。
JP2015235387A 2015-12-02 2015-12-02 半導体装置 Active JP6608688B2 (ja)

Priority Applications (5)

Application Number Priority Date Filing Date Title
JP2015235387A JP6608688B2 (ja) 2015-12-02 2015-12-02 半導体装置
EP16194438.4A EP3176702B1 (en) 2015-12-02 2016-10-18 Semiconductor device and control method of semiconductor device
CN201610973476.2A CN107066329B (zh) 2015-12-02 2016-10-28 半导体装置以及半导体装置的控制方法
US15/357,212 US10191872B2 (en) 2015-12-02 2016-11-21 Semiconductor device and control method of semiconductor device
US16/253,802 US10642768B2 (en) 2015-12-02 2019-01-22 Semiconductor device and control method of semiconductor device

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2015235387A JP6608688B2 (ja) 2015-12-02 2015-12-02 半導体装置

Publications (2)

Publication Number Publication Date
JP2017102702A true JP2017102702A (ja) 2017-06-08
JP6608688B2 JP6608688B2 (ja) 2019-11-20

Family

ID=57394324

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2015235387A Active JP6608688B2 (ja) 2015-12-02 2015-12-02 半導体装置

Country Status (4)

Country Link
US (2) US10191872B2 (ja)
EP (1) EP3176702B1 (ja)
JP (1) JP6608688B2 (ja)
CN (1) CN107066329B (ja)

Family Cites Families (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5671365A (en) * 1995-10-20 1997-09-23 Symbios Logic Inc. I/O system for reducing main processor overhead in initiating I/O requests and servicing I/O completion events
US5872939A (en) * 1996-06-05 1999-02-16 Compaq Computer Corporation Bus arbitration
US6415392B1 (en) * 1997-12-08 2002-07-02 Ricoh Company, Ltd. Remote diagnosis system and method
US20030120878A1 (en) * 2001-12-21 2003-06-26 Andreassen Jens Kloster Resource sharing using a locking mechanism in a multiprocessor environment
US20050044321A1 (en) * 2003-08-18 2005-02-24 Jan Bialkowski Method and system for multiprocess cache management
KR100812225B1 (ko) * 2005-12-07 2008-03-13 한국전자통신연구원 멀티프로세서 SoC 플랫폼에 적합한 크로스바 스위치구조
CN101136841B (zh) * 2006-08-28 2011-08-24 中兴通讯股份有限公司 基于现场可编程门阵列的隧道实现装置及方法
US20080109587A1 (en) * 2006-11-02 2008-05-08 Motorola, Inc. Switch control of usb transceiver between a plurality of processors
JP2009003633A (ja) * 2007-06-20 2009-01-08 Panasonic Corp 情報処理装置
US20090144480A1 (en) * 2007-12-03 2009-06-04 Jun-Dong Cho Multi-processor system on chip platform and dvb-t baseband receiver using the same
JP2010140290A (ja) 2008-12-12 2010-06-24 Panasonic Corp マルチプロセッサシステム及びその排他制御の調停方法
US7940110B2 (en) * 2009-06-04 2011-05-10 Apple Inc. Cascode switching circuit
JP2011232956A (ja) 2010-04-27 2011-11-17 Clarion Co Ltd コンピュータシステムとプログラム
JP5578713B2 (ja) * 2010-06-28 2014-08-27 ルネサスエレクトロニクス株式会社 情報処理装置
US8527684B2 (en) * 2010-11-12 2013-09-03 Lsi Corporation Closed loop dynamic interconnect bus allocation method and architecture for a multi layer SoC

Also Published As

Publication number Publication date
EP3176702A1 (en) 2017-06-07
US20170161219A1 (en) 2017-06-08
US20190171596A1 (en) 2019-06-06
CN107066329B (zh) 2022-06-14
US10642768B2 (en) 2020-05-05
US10191872B2 (en) 2019-01-29
JP6608688B2 (ja) 2019-11-20
EP3176702B1 (en) 2020-12-09
CN107066329A (zh) 2017-08-18

Similar Documents

Publication Publication Date Title
US11809360B2 (en) Network-on-chip data processing method and device
US20190220199A1 (en) Digital Signal Processing Data Transfer
JP2011048838A (ja) スイッチマトリックス経由のデータ転送を改善するフロー制御方法
US20180329841A1 (en) Memory access control device and control method of memory access
JP2007133456A (ja) 半導体装置
US20080024163A1 (en) Programmable logic device
JP2016173798A (ja) 半導体装置
KR101875171B1 (ko) 칩 선택을 감소하는 디바이스들, 시스템들, 및 방법들
JP6608688B2 (ja) 半導体装置
WO2007099659A1 (ja) データ転送装置及びデータ転送方法
US7949860B2 (en) Multi thread processor having dynamic reconfiguration logic circuit
WO2013022943A2 (en) Method and apparatus for dynamic channel access and loading in multichannel dma
CN110825671A (zh) 一种多晶片系统
US10073810B2 (en) Parallel processing device and parallel processing method
US20050135402A1 (en) Data transfer apparatus
WO2013062109A1 (ja) I/oデバイス制御システムおよびi/oデバイス制御方法
JP4584324B2 (ja) データ処理システム、及びコンポーネント管理方法
JP6115564B2 (ja) データ処理システム、半導体集積回路およびその制御方法
US8764874B2 (en) Arrangement, method, integrated circuit and device for routing requests
US20230042247A1 (en) Shared unit instruction execution
JP3959407B2 (ja) 画像処理装置及び画像処理システム
JP2008181524A (ja) ハンドシェークインターフェース方式を利用したデジタル信号プロセッサ及びその駆動方法
JP6535516B2 (ja) マルチ・プログラマブルデバイス・システムとその制御方法
KR20120066999A (ko) 다이렉트 메모리 액세스 컨트롤러 및 그것의 동작 방법
KR20140077689A (ko) 클라우드 개념을 이용한 다중 무선전송용 mac 구조의 구현 방법

Legal Events

Date Code Title Description
A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20160803

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20180508

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20190313

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20190409

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20190603

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20191024

R150 Certificate of patent or registration of utility model

Ref document number: 6608688

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150