JP2020149214A - 半導体装置及びデバッグシステム - Google Patents

半導体装置及びデバッグシステム Download PDF

Info

Publication number
JP2020149214A
JP2020149214A JP2019044877A JP2019044877A JP2020149214A JP 2020149214 A JP2020149214 A JP 2020149214A JP 2019044877 A JP2019044877 A JP 2019044877A JP 2019044877 A JP2019044877 A JP 2019044877A JP 2020149214 A JP2020149214 A JP 2020149214A
Authority
JP
Japan
Prior art keywords
state
selector
access
control unit
signal
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
JP2019044877A
Other languages
English (en)
Other versions
JP7202225B2 (ja
Inventor
高浩 西山
Takahiro Nishiyama
高浩 西山
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.)
Rohm Co Ltd
Original Assignee
Rohm Co 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 Rohm Co Ltd filed Critical Rohm Co Ltd
Priority to JP2019044877A priority Critical patent/JP7202225B2/ja
Priority to US16/811,237 priority patent/US11797421B2/en
Priority to CN202010171828.9A priority patent/CN111694697B/zh
Publication of JP2020149214A publication Critical patent/JP2020149214A/ja
Application granted granted Critical
Publication of JP7202225B2 publication Critical patent/JP7202225B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/22Detection or location of defective computer hardware by testing during standby operation or during idle time, e.g. start-up testing
    • G06F11/2205Detection or location of defective computer hardware by testing during standby operation or during idle time, e.g. start-up testing using arrangements specific to the hardware being tested
    • G06F11/2236Detection or location of defective computer hardware by testing during standby operation or during idle time, e.g. start-up testing using arrangements specific to the hardware being tested to test CPU or processors
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/36Preventing errors by testing or debugging software
    • G06F11/362Software debugging
    • G06F11/3648Software debugging using additional hardware
    • G06F11/3656Software debugging using additional hardware using a specific debug interface
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/22Detection or location of defective computer hardware by testing during standby operation or during idle time, e.g. start-up testing
    • G06F11/2205Detection or location of defective computer hardware by testing during standby operation or during idle time, e.g. start-up testing using arrangements specific to the hardware being tested
    • G06F11/221Detection or location of defective computer hardware by testing during standby operation or during idle time, e.g. start-up testing using arrangements specific to the hardware being tested to test buses, lines or interfaces, e.g. stuck-at or open line faults
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/22Detection or location of defective computer hardware by testing during standby operation or during idle time, e.g. start-up testing
    • G06F11/26Functional testing
    • G06F11/273Tester hardware, i.e. output processing circuits
    • G06F11/2733Test interface between tester and unit under test
    • 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/1605Handling requests for interconnection or transfer for access to memory bus based on arbitration
    • 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/32Handling requests for interconnection or transfer for access to input/output bus using combination of interrupt and burst mode transfer
    • 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/30181Instruction operation extension or modification
    • G06F9/30189Instruction operation extension or modification according to execution mode, e.g. mode flag
    • 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/38Concurrent instruction execution, e.g. pipeline or look ahead
    • G06F9/3802Instruction prefetching
    • 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/44Arrangements for executing specific programs
    • G06F9/4401Bootstrapping
    • G06F9/4418Suspend and resume; Hibernate and awake
    • 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/44Arrangements for executing specific programs
    • G06F9/448Execution paradigms, e.g. implementations of programming paradigms
    • G06F9/4498Finite state machines
    • 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/48Program initiating; Program switching, e.g. by interrupt
    • G06F9/4806Task transfer initiation or dispatching
    • G06F9/4843Task transfer initiation or dispatching by program, e.g. task dispatcher, supervisor, operating system
    • G06F9/485Task life-cycle, e.g. stopping, restarting, resuming execution
    • 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/5011Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resources being hardware resources other than CPUs, Servers and Terminals
    • G06F9/5016Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resources being hardware resources other than CPUs, Servers and Terminals the resource being the memory
    • 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/54Interprogram communication
    • G06F9/546Message passing systems or structures, e.g. queues

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Hardware Design (AREA)
  • Quality & Reliability (AREA)
  • Computer Security & Cryptography (AREA)
  • Debugging And Monitoring (AREA)
  • Microcomputers (AREA)

Abstract

【課題】外部からのアクセスを簡素な構成で且つ少ないオーバーヘッドで実現する半導体装置及びデバッグシステムを提供する。【解決手段】デバッグシステム10は、半導体装置11と、外部デバッグ装置12と、ホストコンピュータ13を備える。半導体装置は、CPU20、デバッグ制御部21、内部バス22、内部バスに接続された記憶部23、24、26、及び、セレクタ27を備える。セレクタは、CPUからの選択制御信号CNTに基づき、CPUからの信号を内部バスに伝達するCPU選択状態と、デバッグ制御部からの信号を内部バスに伝達するデバッガ選択状態の何れかとなる。原則はCPU選択状態とされる。デバッグ制御部にて外部装置12、13から所定コマンドが受信されたとき、それに対応する信号がデバッグ制御部からCPUに送られることを通じ、セレクタが一時的にデバッガ選択状態とされてデバッガ制御部による内部バスへのアクセスが行われる。【選択図】図1

Description

本発明は、半導体装置及びデバッグシステムに関する。
プログラムを実行するCPU等を備えた半導体装置において、実行されるプログラムを開発する際に、プログラムのデバッグ作業を支援するためのデバッグシステムが用いられることが多い。
デバッグ作業において、プログラムの動作中に外部から半導体装置内の記憶部(レジスタやレジスタに分類されないメモリ等であり、以下、内部資源と称する)へアクセスを行いたいという要望がある。この要望に応えるべく、多くのデバッグシステムは、LSI等にて構成された半導体装置の外部からシリアル通信などを利用して、内部資源へのアクセスを行い、必要な読み書きをできるような仕組みを有している。
その際、特定のアドレスの命令が実行されたときにCPUを停止(ブレーク)させて内部資源へのアクセスを行うこともある。但し、プログラム実行開始後のCPU停止が問題となる装置もある。例えば、モータ制御装置では、CPUが停止するとモータの回転制御が不能となって装置が破壊されることがあるため、プログラム実行開始後のCPU停止は回避されるべきである。故に、そのような装置に適用されるデバッグシステムでは、CPUを停止させることなく内部資源へアクセスすることが要求される。
特許第5400443号公報 特開2004−86447号公報
デバッグのために半導体装置に搭載される回路は、本来の半導体装置の動作に関係のないものであるため、なるだけ小規模の回路とされることが望まれる。
また、CPUを停止させずにプログラムを動作させながらデバッグ作業を行う場合には、プログラムの動作をなるだけ邪魔しないようにするべく、極力小さなオーバーヘッド(クロックオーバーヘッド)で外部から内部資源へのアクセスを完了させることが望ましい。
尚、特許文献1に係るデバッグシステムでは、半導体装置に設けられるデバッグ回路内にDMAコントローラが必要となるため、回路規模が大きくなる(特許文献1の図4参照)。また、CPUのメモリアクセスとデバッガのメモリアクセスを調停するためのバス調停回路を半導体装置内に設ける必要があり(特許文献1の図7参照)、これによっても回路規模が大きくなり、またアクセス権獲得のためのオーバーヘッド(クロックオーバーヘッド)も大きくなる。即ち、特許文献1に係るデバッグシステムにおいて、ブレーク処理に入ると、CPUはブレーク専用のアドレスへ分岐し、ブレーク専用のデバッグプログラムで制御されるように動作するため、デバッグ動作に要するクロック数(即ちオーバーヘッド)が大きくなる。
また、特許文献2に係るデータシステムでは、外部から内部資源へのアクセスのために、半導体装置(マイクロコンピュータ)に元々備えられたDMAコントローラに相当する構成要素を用いている。逆に言えば、特許文献2に係る方法は、DMAコントローラを有さない半導体装置には適用できない。また、特許文献2に係る方法では、デバッグ(エミュレーション)用のプログラムで内部資源へのアクセスを実施するため、半導体装置の内部にデバッグプログラム専用のRAM(ERAM)が必要となる。結果、半導体装置に設けられるデバッグ用の回路の規模が大きくなり、且つ、デバッグ動作に要するクロック数(即ちオーバーヘッド)も大きなものとなる。
本発明は、外部からのアクセスを簡素な構成で且つ少ないオーバーヘッドで実現する半導体装置及びデバッグシステムを提供することを目的とする。
本発明に係る半導体装置は、バスと、前記バスに接続された記憶部と、前記バスに接続されたセレクタと、プログラムを実行し且つ前記セレクタを介して前記バスにアクセス可能な処理部と、外部装置との間で双方向通信が可能に構成され且つ前記セレクタを介して前記バスにアクセス可能なデバッグ制御部と、を備えた半導体装置であって、前記セレクタは、前記処理部からの選択制御信号に基づき、前記処理部からの第1信号及び前記デバッグ制御部からの第2信号の内、前記第1信号を前記内部バスに伝達する第1選択状態、及び、前記第2信号を前記内部バスに伝達する第2選択状態の何れかの状態をとり、前記セレクタの状態が前記第1選択状態であるときにおいて前記デバッグ制御部にて前記外部装置から所定コマンドが受信されたとき、前記デバッグ制御部及び前記処理部の協働により前記セレクタの状態が一時的に前記第2選択状態に切り替えられ、前記セレクタの状態が前記第2選択状態とされているときにおいて前記デバッグ制御部が前記セレクタを介し前記所定コマンドに応じた前記バスへのアクセスを行う構成(第1の構成)である。
上記第1の構成に係る半導体装置において、前記セレクタの状態が前記第2選択状態とされているときにおいて前記プログラムの実行は停止される構成(第2の構成)であっても良い。
上記第1又は第2の構成に係る半導体装置において、前記プログラムの実行開始後、前記所定コマンドの受信に応答して前記セレクタの状態が一時的に前記第2選択状態とされるときを除き、前記セレクタの状態は前記第1選択状態とされる構成(第3の構成)であっても良い。
上記第1〜第3の構成の何れかに係る半導体装置において、前記デバッグ制御部は、前記所定コマンドの受信に応答して所定のアクセス開始信号を前記処理部に対して出力し、前記処理部は、前記アクセス開始信号の入力に応答して前記セレクタの状態を前記第1選択状態から前記第2選択状態に切り替え、その後、前記デバッグ制御部による前記所定コマンドに応じたアクセスが終了すると、前記デバッグ制御部は、所定のアクセス終了信号を前記処理部に対して出力し、前記処理部は、前記アクセス終了信号の入力に応答して前記セレクタの状態を前記第2選択状態から前記第1選択状態に戻す構成(第4の構成)であっても良い。
上記第4の構成に係る半導体装置において、前記処理部は、前記プログラムの実行状態を制御するステートマシンを有し、前記ステートマシンが、前記プログラムを構成する命令のフェッチ及び実行が行われるフェッチステートにあるときにおいて、前記処理部にて前記アクセス開始信号の入力を受けると、前記ステートマシンは前記命令のフェッチ及び実行が停止されるブレークステートに遷移し、前記処理部にて前記アクセス終了信号の入力を受けたことに応答して前記ステートマシンは前記フェッチステートへと戻り、前記ステートマシンは、前記ブレークステートにおいて前記セレクタを前記第2選択状態に制御する構成(第5の構成)であっても良い。
上記第1〜第5の構成の何れかに係る半導体装置において、前記セレクタの状態が前記第1選択状態であるときにおいて前記デバッグ制御部にてリードコマンドが前記所定コマンドとして受信されたとき、前記デバッグ制御部及び前記処理部の協働により前記セレクタの状態が一時的に前記第2選択状態に切り替えられ、前記セレクタの状態が前記第2選択状態とされているときにおいて前記デバッグ制御部は前記セレクタを介し前記リードコマンドに応じたリードアクセスを前記バスに対して行い、その後、前記リードアクセスにより前記記憶部から取得したリードデータを前記外部装置に対して送信する構成(第6の構成)であっても良い。
上記第6の構成に係る半導体装置において、前記記憶部は複数のアドレスが割り当てられた複数の記憶領域を有し、前記リードコマンドにて前記複数のアドレスの何れかが指定され、前記デバッグ制御部は、前記リードコマンドに応じた前記リードアクセスにおいて、前記リードコマンドにて指定されたアドレスの記憶領域内のデータを前記リードデータとして前記記憶部から取得するためのアクセスを前記セレクタを介し前記バスに対して行い、これによって得られた前記リードデータを前記外部装置に対して送信する構成(第7の構成)であっても良い。
上記第1〜第5の構成の何れかに係る半導体装置において、前記セレクタの状態が前記第1選択状態であるときにおいて前記デバッグ制御部にてライトコマンドが前記所定コマンドとして受信されたとき、前記デバッグ制御部及び前記処理部の協働により前記セレクタの状態が一時的に前記第2選択状態に切り替えられ、前記セレクタの状態が前記第2選択状態とされているときにおいて前記デバッグ制御部は前記セレクタを介し前記ライトコマンドに応じたライトアクセスを前記バスに対して行い、前記ライトアクセスにより、前記ライトコマンドに応じたデータの書き込みが前記記憶部にて行われる構成(第8の構成)であっても良い。
上記第8の構成に係る半導体装置において、前記記憶部は複数のアドレスが割り当てられた複数の記憶領域を有し、前記ライトコマンドにて前記複数のアドレスの何れかが指定されるとともにライトデータが指定され、前記デバッグ制御部は、前記ライトコマンドに応じた前記ライトアクセスにおいて、前記ライトコマンドにて指定されたアドレスの記憶領域に前記ライトデータを書き込むためのアクセスを前記セレクタを介し前記バスに対して行う構成(第9の構成)であっても良い。
本発明に係るデバッグシステムは、上記第1〜第9の構成の何れかに係る半導体装置と、前記半導体装置に接続され、前記半導体装置の前記デバッグ制御部に対して前記所定コマンドを送信可能な外部装置と、を備えた構成(第10の構成)である。
本発明によれば、外部からのアクセスを簡素な構成で且つ少ないオーバーヘッドで実現する半導体装置及びデバッグシステムを提供することが可能となる。
本発明の第1実施形態に係るデバッグシステムの概略構成図である。 LSI内に設けられる記憶部を示す図である。 本発明の第1実施形態に係り、リードアクセス及びリード動作の説明図である。 本発明の第1実施形態に係り、ライトアクセス及びライト動作の説明図である。 本発明の第1実施形態に係り、ステートマシンの状態遷移図である。 本発明の第1実施形態に係り、フェッチステートへの遷移後におけるLSIの動作フローチャートである。 本発明の第1実施形態に係り、リードコマンドの受信に応答したLSIのタイミングチャートである。 本発明の第2実施形態に係り、2つのCPU、デバッグ制御部、セレクタ及び内部バス間の関係を示す図である。 本発明の第2実施形態に係り、CPU内部レジスタへのアクセスに関わるデバッグ制御部及びCPUの構成図である。
以下、本発明の実施形態の例を、図面を参照して具体的に説明する。参照される各図において、同一の部分には同一の符号を付し、同一の部分に関する重複する説明を原則として省略する。尚、本明細書では、記述の簡略化上、情報、信号、物理量、素子又は部位等を参照する記号又は符号を記すことによって、該記号又は符号に対応する情報、信号、物理量、素子又は部位等の名称を省略又は略記することがある。例えば、後述の“RE”によって参照されるリードイネーブル信号は(図1参照)、リードイネーブル信号REと表記されることもあるし、信号REと略記されることもあり得るが、それらは全て同じものを指す。
<<第1実施形態>>
本発明の第1実施形態を説明する。図1は、本発明の第1実施形態に係るデバッグシステム10の概略構成図である。デバッグシステム10は、CPU(Central Processing Unit)を内蔵したLSI(Large Scale Integration)11と、外部デバッグ装置12と、ホストコンピュータ13(以下、ホストPC13と称され得る)と、を備える。
半導体装置としてのLSI11は、CPU(Central Processing Unit)20、デバッグ制御部21、内部バス22及びセレクタ27を備えると共に、内部バス22に接続される構成要素として、1以上のROM(Read only memory)と、1以上のRAM(Random access memory)と、1以上の周辺回路である1以上のペリフェラルと、を備える。図1には、1以上のROMに含まれる1つのROMとしてROM23が示され、1以上のRAMに含まれる1つのRAMとしてRAM24が示され、1以上のペリフェラルに含まれる1つのペリフェラルとしてペリフェラル25が示されている。以下では、ROM、RAM及びペリフェラルとしてROM23、RAM24及びペリフェラル25に注目する。ペリフェラル25にはレジスタ26が内蔵されている。
CPU20は、LSI11に設けられたプログラムメモリ(不図示)に格納されたプログラムを実行する。プログラムメモリはCPU20に内蔵されていても良い。CPU20は、プログラムの実行時に必要に応じセレクタ27を介して内部バス22にアクセスすることで、ROM23、RAM24又はレジスタ26の格納データを読み込んだり、RAM24又はレジスタ26にデータを書き込んだりすることができる。以下の説明において、単にプログラムと称した場合、それは、CPU20にて実行されるべきプログラム又はCPU20にて実行されているプログラムを指す。
外部デバッグ装置12は、LSI11に設けられた図示されない端子を介してデバッグ制御部21に接続され、デバッグ制御部21とホストPC13との間のインターフェースとして機能する。外部デバッグ装置12及びホストPC13は双方向通信が可能な態様で互いに接続される。ホストPC13ではデバッグソフトウェア14が実行されている。デバッグシステム10のユーザは、デバッグソフトウェア14が実行されているホストPC13を操作することで、CPU20が実行するプログラムのデバッグ作業を行うことができる。
図2を参照し、以下では、便宜上、LSI11に設けられた記憶回路であって、ROM23、RAM24及びレジスタ26を含む記憶回路を記憶部30と称する。記憶部30には、所定サイズのデータを格納可能な記憶領域が多数含まれる。記憶部30に対して所定のアドレス空間が定義されており、記憶部30を構成する各記憶領域には固有のアドレスが割り当てられる。
セレクタ27は、第1入力部27a、第2入力部27b及び出力部27cを有し、第1入力部27aはCPU20に接続され、第2入力部27bはデバッグ制御部21に接続され、出力部27cは内部バス22に接続される。これについて、詳細に説明する。
CPU20及びデバッグ制御部21は、夫々に、リードイネーブル信号、ライトイネーブル信号、アドレス信号及びライトデータを出力可能であり、CPU20から出力されるリードイネーブル信号、ライトイネーブル信号、アドレス信号及びライトデータを、特に、夫々、リードイネーブル信号RE1、ライトイネーブル信号WE1、アドレス信号ADD1及びライトデータWD1と称し、且つ、デバッグ制御部21から出力されるリードイネーブル信号、ライトイネーブル信号、アドレス信号及びライトデータを、特に、夫々、リードイネーブル信号RE2、ライトイネーブル信号WE2、アドレス信号ADD2及びライトデータWD2と称する。ライトデータは、換言すれば、ライトデータを示す信号であるとも言え、以下では、記述の便宜上、ライトデータWD1、WD2を、信号WD1、WD2と表記することもある(後述のライトデータWDについても同様)。
第1入力部27aは、CPU20及びセレクタ27間に設けられた、信号RE1、WE1、ADD1及びWD1を伝搬する配線に接続され、CPU20からの信号RE1、WE1、ADD1及びWD1の入力を受ける。第2入力部27bは、デバッグ制御部21及びセレクタ27間に設けられた、信号RE2、WE2、ADD2及びWD2を伝搬する配線に接続され、デバッグ制御部21からの信号RE2、WE2、ADD2及びWD2の入力を受ける。
また、セレクタ27に対してはCPU20から選択制御信号CNTが供給されており、セレクタ27は選択制御信号CNTに基づいて、第1入力部27a及び第2入力部27bの何れか一方を選択的に出力部27cに接続する。選択制御信号CNTは“1”又は“0”の値をとる1ビット信号であるものとし、選択制御信号CNTの値が“0”であるときにはセレクタ27の状態はCPU選択状態となり、選択制御信号CNTの値が“1”であるときにはセレクタ27の状態はデバッガ選択状態となるものとする。以下では、セレクタ27の状態がCPU選択状態であることを単に“CPU選択状態”と表現することがあり、同様に、セレクタ27の状態がデバッガ選択状態であることを単に“デバッガ選択状態”と表現することがある。尚、“デバッガ”とは、デバッグ作業に供される部位の総称であり、デバッグ制御部21、外部デバッグ装置12及びホストPC13の全部又は一部を含むと解釈することができる。
CPU選択状態においては、第1入力部27aが出力部27cに接続され、結果、信号RE1、WE1、ADD1及びWD1を伝搬する配線が出力部27cを通じ内部バス22に接続されて、それらの信号RE1、WE1、ADD1及びWD1が内部バス22に伝達される。デバッガ選択状態においては、第2入力部27bが出力部27cに接続され、結果、信号RE2、WE2、ADD2及びWD2を伝搬する配線が出力部27cを通じ内部バス22に接続されて、それらの信号RE2、WE2、ADD2及びWD2が内部バス22に伝達される。
出力部27cから出力されるリードイネーブル信号、ライトイネーブル信号、アドレス信号及びライトデータを、特に、夫々、リードイネーブル信号RE、ライトイネーブル信号WE、アドレス信号ADD及びライトデータWDと称する。尚、ライトデータ(WD、WD1、WD2)は、後述のライトアクセスの実行時においてのみ出力されるデータである。
CPU選択状態においては、第1入力部27aが出力部27cに接続されるため、CPU20からのリードイネーブル信号RE1、ライトイネーブル信号WE1、アドレス信号ADD1及びライトデータWD1が、リードイネーブル信号RE、ライトイネーブル信号WE、アドレス信号ADD及びライトデータWDとして出力部27cから内部バス22に出力される。デバッガ選択状態においては、第2入力部27bが出力部27cに接続されるため、デバッグ制御部21からのリードイネーブル信号RE2、ライトイネーブル信号WE2、アドレス信号ADD2及びライトデータWD2が、リードイネーブル信号RE、ライトイネーブル信号WE、アドレス信号ADD及びライトデータWDとして出力部27cから内部バス22に出力される。
このように、CPU20はセレクタ27がCPU選択状態にあるときに内部バス22へアクセスすることができ、デバッグ制御部21はセレクタ27がデバッガ選択状態にあるときに内部バス22へアクセスすることができる。内部バス22へのアクセスとして、リードアクセスとライトアクセスがある。内部バス22へのリードアクセス又はライトアクセスは、換言すれば、内部バス22を通じた記憶部30へのリードアクセス又はライトアクセスである。RAM24及びレジスタ26に対するアクセスはリードアクセス及びライトアクセスの何れかであるが、ROM23に対するアクセスはリードアクセスに限定される。
記憶部30(例えばRAM24)は、CPU20又はデバッグ制御部21からリードアクセスを受けたとき必要なリードデータRDを内部バス22に出力するリード動作を行い、CPU20又はデバッグ制御部21からライトアクセスを受けたとき内部バス22を通じて送られてきたライトデータWDに応じたデータを記憶するライト動作を行う。リードデータは、換言すれば、リードデータを示す信号であるとも言え、以下では、記述の便宜上、リードデータRDを信号RDと表記することもある。
内部バス22は、信号RE、WE、ADD、RD及びWD(即ち信号RE、WE及びADD並びにデータRD及びWD)を個別に伝送するための複数の配線から成る。内部バス22を構成する配線の内、リードデータRDを伝送するための配線は、CPU20及びデバッグ制御部21の夫々に接続されている。故に、リードアクセスに応答して記憶部30から内部バス22に対しリードデータRDが出力されているとき、CPU20及びデバッグ制御部21は当該リードデータRDを取得することができる。
ここでは、リードイネーブル信号(RE、RE1、RE2)は“1”又は“0”の値をとる1ビット信号であるものとし、“1”のリードイネーブル信号(RE、RE1、RE2)はリード動作を許可する信号として機能し、且つ、“0”のリードイネーブル信号(RE、RE1、RE2)はリード動作を禁止する信号として機能するものとする。また、ライトイネーブル信号(WE、WE1、WE2)も“1”又は“0”の値をとる1ビット信号であるものとし、“1”のライトイネーブル信号(WE、WE1、WE2)はライト動作を許可する信号として機能し、且つ、“0”のライトイネーブル信号(WE、WE1、WE2)はライト動作を禁止する信号として機能するものとする。アドレス信号(ADD、ADD1、ADD2)は、記憶部30内の何れかの記憶領域のアドレスを指定する信号であり、記憶部30に定義されたアドレス空間の大きさに応じたビット数を有する。リードデータ(RD)は、記憶部30内の何れかの記憶領域に格納されたデータを当該記憶領域から読み出したデータである。ライトデータ(WD、WD1、WD2)は、記憶部30内の何れかの記憶領域に書き込まれるべきデータである。リードデータ及びライトデータの夫々のビット数は任意である(例えば8ビットである)。
また、デバッグ制御部21はCPU20に対してデバッガアクセス開始信号Sacs及びデバッガアクセス終了信号Eacsを出力することができるが、これらの信号については後述される。
ホストPC13(換言すればデバッグソフトウェア14)は、デバッグシステム10のユーザによるホストPC13への操作に基づき所定コマンドを発行可能であり、発行された所定コマンドは外部デバッグ装置12を通じてデバッグ制御部21に送信される。
上記所定コマンドとして、デバッグ制御部21にリードアクセスを行わせることを要求するリードコマンドと、デバッグ制御部21にライトアクセスを行わせることを要求するライトコマンドと、がある。リードコマンドではアクセス対象アドレスが指定される。ライトコマンドではアクセス対象アドレスとライトデータが指定される。外部デバッグ装置12からデバッグ制御部21に対してリードコマンドが送信されるときに、アクセス対象アドレスを示す信号がリードコマンドに付加されて送信されると考えても良い。同様に、外部デバッグ装置12からデバッグ制御部21に対してライトコマンドが送信されるときに、アクセス対象アドレスを示す信号及びライトデータを示す信号がライトコマンドに付加されて送信されると考えても良い。
アクセス対象アドレスは、記憶部30のアドレス空間における何れかのアドレスを指す。リードコマンドで指定されるアクセス対象アドレスは、デバッグ制御部21によるリードアクセスの対象となるアドレスであり、ライトコマンドで指定されるアクセス対象アドレスは、デバッグ制御部21によるライトアクセスの対象となるアドレスである。ライトコマンドで指定されるライトデータは、アクセス対象アドレスに書き込まれるべきデータを表す。
リードコマンドが発行されたとき、デバッグ制御部21及びCPU20が協働することで一時的にセレクタ27のデバッガ選択状態が実現され、デバッガ選択状態にてデバッグ制御部21がリードコマンドに応じたリードアクセスを内部バス22に対して行うことでアクセス対象アドレスの記憶領域の格納データをリードデータRDとして取得する。取得されたリードデータRDは、デバッグ制御部21から外部デバッグ装置12に送信され、外部デバッグ装置12を通じてホストPC13に送られる。
ライトコマンドが発行されたとき、デバッグ制御部21及びCPU20が協働することで一時的にセレクタ27のデバッガ選択状態が実現され、デバッガ選択状態にてデバッグ制御部21がライトコマンドに応じたライトアクセスを内部バス22に対して行うことでアクセス対象アドレスの記憶領域にライトコマンドにて指定されるライトデータが書き込まれる。
図3(a)及び(b)を参照して、リードアクセス及びリード動作について更に説明を加える。CPU選択状態においてCPU20は自身が実行するプログラムに基づきリードアクセスを行うことができ、デバッガ選択状態においてデバッグ制御部21は受信したリードコマンドに基づきリードアクセスを行うことができる。
図3(a)に示す如く、CPU20は、CPU選択状態におけるリードアクセスにおいて、“1”のリードイネーブル信号RE1と、記憶部30に定義された複数のアドレスの何れかを指定するアドレス信号ADD1とをセレクタ27を介し、リードイネーブル信号RE及びアドレス信号ADDとして内部バス22に出力し、これによって記憶部30にリード動作を行わせる。
図3(b)に示す如く、デバッグ制御部21は、デバッガ選択状態におけるリードアクセスにおいて、“1”のリードイネーブル信号RE2と、記憶部30に定義された複数のアドレスの何れかを指定するアドレス信号ADD2とをセレクタ27を介し、リードイネーブル信号RE及びアドレス信号ADDとして内部バス22に出力し、これによって記憶部30にリード動作を行わせる。アドレス信号ADD2にて指定されるアドレスは、リードコマンドにて指定されるアクセス対象アドレスと一致する。
リードアクセスに応答するリード動作において、記憶部30(例えばRAM24)は、内部バス22を介しCPU20又はデバッグ制御部21から入力されたアドレス信号ADDにより指定されるアドレスの記憶領域の格納データを読み出し、読み出したデータをリードデータRDとして内部バス22に出力する。リード動作により内部バス22に出力されたリードデータRDは、内部バス22とCPU20及びデバッグ制御部21との間の配線を介してCPU20及びデバッグ制御部21に入力される。
図4(a)及び(b)を参照して、ライトアクセス及びライト動作について更に説明を加える。CPU選択状態においてCPU20は自身が実行するプログラムに基づきライトアクセスを行うことができ、デバッガ選択状態においてデバッグ制御部21は受信したライトコマンドに基づきライトアクセスを行うことができる。
図4(a)に示す如く、CPU20は、CPU選択状態におけるライトアクセスにおいて、“1”のライトイネーブル信号WE1と、記憶部30に定義された複数のアドレスの何れかを指定するアドレス信号ADD1と、アドレス信号ADD1により指定されるアドレスの記憶領域に書き込まれるべきライトデータWD1とを、セレクタ27を介し、ライトイネーブル信号WE、アドレス信号ADD及びライトデータWDとして、内部バス22に出力し、これによって記憶部30にライト動作を行わせる。
図4(b)に示す如く、デバッグ制御部21は、デバッガ選択状態におけるライトアクセスにおいて、“1”のライトイネーブル信号WE2と、記憶部30に定義された複数のアドレスの何れかを指定するアドレス信号ADD2と、アドレス信号ADD2により指定されるアドレスの記憶領域に書き込まれるべきライトデータWD2とを、セレクタ27を介し、ライトイネーブル信号WE、アドレス信号ADD及びライトデータWDとして、内部バス22に出力し、これによって記憶部30にライト動作を行わせる。アドレス信号ADD2にて指定されるアドレスは、ライトコマンドにて指定されるアクセス対象アドレスと一致する。ライトデータWD2は、ライトコマンドにて指定されるライトデータと一致する。
ライトアクセスに応答するライト動作において、記憶部30(例えばRAM24)は、内部バス22を介しCPU20又はデバッグ制御部21から入力されたアドレス信号ADDにより指定されるアドレスの記憶領域に対し、CPU20又はデバッグ制御部21からのライトデータWDに応じたデータを格納する。ライト動作後における対応する記憶領域の格納データはライトデータWDと一致することもあるし、仕様によっては、ライトデータWDに基づくデータではあるもののライトデータWDとは一致しないこともある。
CPU20は、原則としてセレクタ27の状態をCPU選択状態とし、デバッグ制御部21による内部バス22へのアクセスが必要な時に限りセレクタ27の状態をデバッガ選択状態とする。これを実現する制御を、CPU20が備えるステートマシンの動作との関係において詳細に説明する。
図5は、ステートマシンの状態遷移図である。ステートマシンはCPU20におけるプログラムの実行状態を制御する。ステートマシンは、4つの状態であるアイドルステート、プリフェッチステート、フェッチステート及びブレークステートの何れかのステート(状態)をとる。ステートマシンの実体は、CPU20におけるプログラムの実行状態が、それら4つの状態の何れかであるかを指し示す値を格納したレジスタである。アイドルステートは、CPU20によるプログラムの実行が開始される前の状態であり、ステートマシンの初期状態はアイドルステートである。LSI11に対する電源供給が開始されると、まずステートマシンの状態はアイドルステートとなる。
LSI11に対する電源供給の開始後、LSI11にて所定の初期化動作が実行され、プログラムの実行を開始する準備が整うと、ステートマシンはアイドルステートからプリフェッチステートに遷移し、その後、フェッチステートに遷移する。プリフェッチステートはフェッチステートへの遷移直前のステートであり、アイドルステート又はブレークステートからフェッチステートに遷移する際には、プリフェッチステートを介してからフェッチステートに遷移する。プリフェッチステートは、プログラムメモリへのアクセスを開始又は再開するためのステートである。
プログラムメモリに格納されるプログラムはCPU20が実行すべき命令(命令コード)の束から成り、CPU20は、CPU20の動作クロックに同期してプログラムメモリから必要な命令を順次読み出し、順次読み出した命令を、デコード等を経て順次実行することによりプログラムを実行してゆく。プログラムメモリから必要な命令を読み出して取得する動作はフェッチと称される。フェッチステートは、プログラムを構成する命令のフェッチ及び実行が行われるステートである。フェッチが行われてないアイドルステート又はブレークステートからフェッチステートに遷移する際には、プログラムメモリへのアクセスを開始又は再開するための区間が1クロック分の時間だけ存在し、その区間においてステートマシンはプリフェッチステートとなる。故に、アイドルステート又はブレークステートからプリフェッチステートへ遷移した後、1クロック分の時間が経過すればプリフェッチステートからフェッチステートに遷移することになる。1クロック分の時間とは、CPU20の動作クロックの1周期分の長さに相当する。
プリフェッチステート及びフェッチステートにおいてセレクタ27の状態はCPU選択状態とされる。即ち、CPU20は、プリフェッチステート及びフェッチステートにおいて“0”の選択制御信号CNTを出力することによりセレクタ27の状態をCPU選択状態とする。フェッチステートへの遷移が発生することでCPU20にてプログラムが実行開始された後は、デバッグ制御部21からのデバッガアクセス開始信号SacsがCPU20にて受信されない限り、ステートマシンの状態はフェッチステートに維持される。尚、アイドルステートにおいてもセレクタ27の状態はCPU選択状態である(但し、デバッガ選択状態とされても構わない)。
フェッチステートにて命令のフェッチ及び実行が繰り返されることでプログラムの実行が進行してゆく。フェッチステートではCPU選択状態とされているため、CPU20は、自身が実行するプログラムに従って内部バス22に対し自由にアクセスでき、記憶部30に必要なリード動作又はライト動作を行わせることができる。
フェッチステートへの遷移後におけるLSI11の動作フローチャートを図6に示す。図5及び図6を参照しつつ、フェッチステートへの遷移後のLSI11の動作を説明する。
LSI11の起動後、デバッグ制御部21は、外部デバッグ装置12からのコマンドの受信の有無を監視している。デバッグ制御部21は、ステップS11にて外部デバッグ装置12からリードコマンド又はライトコマンドを受信すると、その受信に応答して、ステップS12において、CPU20に対し(換言すればステートマシンに対し)所定のデバッガアクセス開始信号Sacsを出力し、更にリードアクセス用の信号又はライトアクセス用の信号をセレクタ27に対して出力する。デバッガアクセス開始信号Sacsは、デバッグ制御部21による内部バス22へのアクセスを開始することを通知する信号であるとも言えるし、内部バス22へのアクセスの権限をデバッグ制御部21に明け渡すことを要求する信号であるとも言える。
ステップS11にてリードコマンドを受信した場合にはステップS12にてリードアクセス用の信号がセレクタ27に対して出力される。リードアクセス用の信号は、“1”のリードイネーブル信号RE2と上述のアドレス信号ADD2と、から成る。アドレス信号ADD2にて指定されるアドレスは、リードコマンドにて指定されるアクセス対象アドレスと一致する。
ステップS11にてライトコマンドを受信した場合にはステップS12にてライトアクセス用の信号がセレクタ27に対して出力される。ライトアクセス用の信号は、“1”のライトイネーブル信号WE2と上述のアドレス信号ADD2及びライトデータWD2とから成る。アドレス信号ADD2にて指定されるアドレスは、ライトコマンドにて指定されるアクセス対象アドレスと一致する。ライトデータWD2は、ライトコマンドにて指定されるライトデータと一致する。
セレクタ27に対するリードアクセス用の信号又はライトアクセス用の信号の出力タイミングは、デバッガアクセス開始信号Sacsの出力タイミングと同時であっても良いし、同時でなくても良い。セレクタ27に対するリードアクセス用の信号又はライトアクセス用の信号の出力は、デバッグ制御部21による内部バス22への実際のアクセスが実行される段階で行われておれば良い。
尚、デバッグ作業では、CPU20によるプログラムの実行中に記憶部30へのアクセスを行うことが有益であり、故に、リードコマンド又はライトコマンドは基本的にステートマシンがフェッチステートにあるときに発行される。従ってここでは、ステートマシンがフェッチステートにあるときにデバッガアクセス開始信号Sacsが出力されることを考える。
CPU20にてデバッガアクセス開始信号Sacsの入力を受けると、ステップS13において、その入力に応答してステートマシンが直ちにフェッチステートからブレークステートに遷移すると共に、“1”の選択制御信号CNTがCPU20からセレクタ27に対して出力される。
ブレークステートではプログラムの実行は停止される(詳細には命令のフェッチ及び実行が停止される)。“1”の選択制御信号CNTは、ステートマシンがブレークステートにあることを示す信号として機能し、“1”の選択制御信号CNTを受けてセレクタ27の状態はCPU選択状態からデバッガ選択状態へと切り替わる。つまり、ブレークステートにおいてセレクタ27の状態はデバッガ選択状態とされる。逆に言えば、セレクタ27の状態がデバッガ選択状態とされているときにおいて、ステートマシンはブレークステートにあり、故に、プログラムの実行は停止されている(詳細には命令のフェッチ及び実行が停止されている)。
ステップS13に続くステップS14において、デバッグ制御部21は、セレクタ27を介し内部バス22に対して(換言すればセレクタ27及び内部バス22を介し記憶部30に対して)必要なアクセスを行う。ここにおけるアクセスは、ステップS11にてリードコマンドを受信している場合には上述のリードアクセス用の信号をセレクタ27を介し内部バス22に出力することを指し、ステップS11にてライトコマンドを受信している場合には上述のライトアクセス用の信号をセレクタ27を介し内部バス22に出力することを指す。内部バス22に出力されたリードアクセス用の信号又はライトアクセス用の信号は記憶部30に伝達される。リードアクセス用の信号の入力に基づき記憶部30にて上述のリード動作が行われる、又は、ライトアクセス用の信号の入力に基づき記憶部30にて上述のライト動作が行われる。
ステップS14におけるアクセスが終了すると、ステップS15においてデバッグ制御部21からCPU20(換言すればステートマシン)に対し所定のデバッガアクセス終了信号Eacsが出力される。
CPU20にてデバッガアクセス終了信号Eacsの入力を受けると、ステップS16において、その入力に応答してステートマシンが直ちにブレークステートからプリフェッチステートに遷移し、その後、フェッチステートに遷移する(即ち、ブレークステートからプリフェッチステートを介してフェッチステートに戻る)。また、デバッガアクセス終了信号Eacsの入力に応答して、ブレークステートからプリフェッチステートに遷移する際、CPU20は選択制御信号CNTの値を“1”から“0”に切り替えることによりセレクタ27の状態をCPU選択状態に戻す。フェッチステートに戻ることで、ブレークステートへの遷移で一時的に中断されていたプログラムの実行が再開されることになる。
ステップS11にて受信されたコマンドがライトコマンドであった場合には、ライトコマンドの受信に伴う一連の動作は、ステップS16の段階で終了する(後述のステップS17の処理は実行されない)。
ステップS11にて受信されたコマンドがリードコマンドであった場合には、ステップS17の動作も実行される。ステップS17において、デバッグ制御部21は、ステップS14でのアクセス(リードアクセス)に応答して記憶部30から内部バス22に出力されたリードデータRDをラッチし(保持し)、ラッチしたリードデータRDを外部デバッグ装置12に対して送信する。このリードデータRDは外部デバッグ装置12からホストPC13に送られ、ホストPC13の表示画面上に表示されるなどしてデバッグ作業に供される。
デバッグ制御部21は、上記ラッチを行うためのラッチ回路(不図示)を備えている。図6では、ステップS16の後にステップS17の処理が実行されるかのように図示されているが、上記ラッチのタイミングはステップS14でのアクセス(リードアクセス)に応答した記憶部30からのリードデータRDが内部バス22に表れている区間であれば任意である。ステップS17における外部デバッグ装置12へのリードデータRDの送信は、上記ラッチの後の任意のタイミングで行われて良い。例えば、ステップS16にてステートマシンがフェッチステートに戻ってプログラムの実行が再開された後、プログラムの実行に並行して、外部デバッグ装置12へのリードデータRDの送信が行われて良い。
上述の如く、デバッグシステム10では、原則としてセレクタ27の状態がCPU選択状態とされ、所定コマンド(リード又はライトコマンド)がデバッグ制御部21にて受信されると、デバッグ制御部21及びCPU20の協働によりセレクタ27の状態が一時的にデバッガ選択状態に切り替えられる(ステップS11〜S13)。そして、セレクタ27の状態がデバッガ選択状態とされているときにおいてデバッグ制御部21がセレクタ27を介し所定コマンドに応じた内部バス22へのアクセス(換言すれば、セレクタ27及び内部バス22を介した記憶部30へのアクセス)を行う(ステップS14)。
このような構成及び動作によれば、バス調停回路やDMAコントローラは不要であり(従って回路追加は小規模で済み)、デバッガが記憶部30にアクセスするために必要なオーバーヘッドを極めて小さくすることができる。ブレークステートへの遷移は1クロック分の時間で足り、ブレークステートからの復帰にも1クロック分の時間があれば足る。これに、記憶部30へのアクセスに必要な時間が加わるが、通常、LSI内蔵RAM等に対しては1クロック分の時間でアクセスが可能であるため、僅か3クロック分のオーバーヘッドでデバッガの記憶部30へのアクセスを実現でき、CPU20の通常動作を殆ど邪魔しない。
プログラムの実行開始後は(即ちアイドルステートからプリフェッチステートを経てフェッチステートに遷移した後は)、リードコマンド又はライトコマンドの受信に応答してセレクタ27の状態が一時的にデバッガ選択状態とされることを除き、セレクタ27の状態はCPU選択状態される。このため、プログラムの実行に伴うCPU20の内部バス22へのアクセスは、上記のオーバーヘッドの区間を除き、何ら阻害されない。
上述の説明から理解されるが、リードコマンドを受信した場合、デバッグ制御部21は、デバッガ選択状態においてリードアクセス用の信号の出力によりセレクタ27を介しリードコマンドに応じたリードアクセスを内部バス22に対して行う(換言すれば、リードコマンドに応じたリードアクセスをセレクタ27及び内部バス22を介し記憶部30に対して行う)。詳細には、このリードアクセスにおいて、デバッグ制御部21は、リードコマンドにより指定されたアドレス(アクセス対象アドレス)の記憶領域内のデータをリードデータRDとして記憶部30から取得するためのアクセスをセレクタ27を介し内部バス22に対して行い(換言すれば、セレクタ27及び内部バス22を介し記憶部30に対して行い)、これによって得られたリードデータRDを外部デバッグ装置12に対して送信する。
一方、ライトコマンドを受信した場合、デバッグ制御部21は、デバッガ選択状態においてライトアクセス用の信号の出力によりセレクタ27を介しライトコマンドに応じたライトアクセスを内部バス22に対して行う(換言すれば、ライトコマンドに応じたライトアクセスをセレクタ27及び内部バス22を介し記憶部30に対して行う)。詳細には、このライトアクセスにおいて、デバッグ制御部21は、ライトコマンドにより指定されたアドレス(アクセス対象アドレス)の記憶領域に対しライトコマンドにより指定されたライトデータを書き込むためのアクセスをセレクタ27を介し内部バス22に対して行う(換言すれば、セレクタ27及び内部バス22を介し記憶部30に対して行う)。
図7に、リードコマンドの受信に応答したLSI11のタイミングチャートを示す。図7において、波形y1はデバッガクロックの波形を示し、波形y4はCPUクロックの波形を示す。CPUクロックはCPU20の動作クロックを指す。デバッガクロックは、デバッグ制御部21の一部と外部デバッグ装置12の動作クロックである。デバッグ制御部21の残部はCPU20の動作クロックに同期して動作する。デバッガクロックは、例えば、外部デバッグ装置12内のクロック生成回路(不図示)にて生成されて、外部デバッグ装置12及びデバッグ制御部21間の通信線を介してデバッグ制御部21に提供される。CPUクロックとデバッガクロックは互いに非同期である。CPUクロック及びデバッガクロックの周波数の一致/不一致は問わない。通常、デバッガクロックの周波数がCPUクロックの周波数よりも低い。
デバッガクロック及びCPUクロックを含む任意のクロックは、ハイレベル及びローレベルを交互に且つ周期的にとる矩形波信号である。任意のクロック又は信号について、ハイレベルはローレベルよりも電位が高い。任意の信号において、ローレベルからハイレベルへの切り替わりをアップエッジと称し、ローレベルからハイレベルへの切り替わりのタイミングをアップエッジタイミングと称する。ここでは、デバッガクロックに基づいて動作するデバッグ制御部21の一部は、デバッガクロックのアップエッジを契機に、自身への入力信号を取り込んだり、出力すべき信号のレベルを変化させたり、自身の状態を変化させたりするものとし、CPUクロックに基づいて動作するデバッグ制御部21の残部及びCPU20(ステートマシンを含む)は、CPUクロックのアップエッジを契機に、自身への入力信号を取り込んだり、出力すべき信号のレベルを変化させたり、自身の状態を変化させたりするものとする。時間の経過につれて、タイミングt、t、t、t、t、t、t及びtが、この順番で訪れる。タイミングt、t、t、t、t、t及びtの夫々において、CPUクロックのアップエッジが生じる。タイミングt及びt間、タイミングt及びt間、タイミングt及びt間、タイミングt及びt間、タイミングt及びt間、タイミングt及びt間の時間長さは、全て、CPUクロックの1周期に等しい。
図7において、波形y2は、デバッガデータを表しており、外部デバッグ装置12からデバッグ制御部21へ送信される信号を模式的に示したものである。デバッガデータとしてリードコマンドやライトコマンドがデバッグ制御部21に送られる。図7の例では、タイミングt以前又はタイミングtにて外部デバッグ装置12からデバッグ制御部21へのリードコマンドの発行及び送信が完了しており、タイミングtにおいて、デバッグ制御部21は、自身の内部にて、波形y3に示されるデバッガアクセスパルスを発生させる。タイミングtはデバッガクロックにおける或る1つのアップエッジタイミングである。デバッガアクセスパルスはデバッガクロックに同期するパルス信号であり、デバッグ制御部21では、デバッガアクセスパルスをCPUクロックにて同期化することで波形y8に示されるアクセス開始パルスを生成する。アクセス開始パルスはタイミングt及びt間に生じる。アクセス開始パルスは上述のデバッガアクセス開始信号Sacsとしてデバッグ制御部21からCPU20に出力される。
アクセス開始パルス(信号Sacs)の入力に応答し、タイミングtにおいて、CPU20は、波形y6にて示されるプログラムメモリリードイネーブル信号をハイレベルからローレベルに切り替えると共に、ステートマシンをブレークステートに遷移させるためのブレークパルスを発生させる。
CPU20には、次にフェッチされるべき命令が格納された、プログラムメモリ上の番地(以下、プログラムメモリアドレスと称する)をカウント及び指定するプログラムカウンタが設けられており、プログラムメモリリードイネーブル信号がハイレベルであるときのみ、プログラムカウンタを利用してプログラムメモリアドレスがCPUクロックに同期し且つCPUクロックの周期にて順次更新されてゆく。図7において“y5”はプログラムメモリアドレスの時系列変化を表している。プログラムメモリリードイネーブル信号はタイミングt及びt間においてのみローレベルとされ、タイミングt及びt間においてプログラムメモリアドレスは有意な値を持たない(図7では、有意な値でないことを示すものとして“0”を図示している)。
図7において“y10”はステートマシンの状態の時系列変化を表している。ステートマシンがフェッチステートにあるとき、プログラムメモリアドレスに対してアクセスが行われ、次クロックに(即ちCPUクロックにおける1クロック分の時間経過の後に)、アクセスの対象となったプログラムメモリアドレスに格納された命令がフェッチされ且つラッチされる。即ち例えば、タイミングt及びt間におけるプログラムメモリアドレスが“24”である場合、タイミングtにおけるCPUクロックのアップエッジにて、“24”のプログラムメモリアドレスの記憶領域に格納された命令(図7では命令コード“24bb”に対応)がフェッチされ、フェッチされた命令がタイミングt及びt間でラッチされる。タイミングtまではステートマシンはフェッチステートにあって命令のフェッチ及び実行が行われている。
波形y9にて示されるブレークパルスがステートマシンに与えられることで、タイミングtを境にステートマシンがフェッチステートからブレークステートに遷移する。ブレークステートでは上述の如くセレクタ27の状態がデバッガ選択状態とされる。タイミングt及びt間でリードコマンドに応じたリードアクセス用の信号がセレクタ27を通じて内部バス22に伝達されるよう、デバッグ制御部21は、リードアクセス用の信号をセレクタ27に出力している。波形y11は内部バス22に加わるリードイネーブル信号REを表しており、タイミングt及びt間では、デバッグ制御部21からのリードアクセス用の信号によりリードイネーブル信号REが“1”となる(図7においてアドレス信号ADDは図示せず)。
デバッグ制御部21によるリードアクセスが完了すると、デバッグ制御部21は、波形y13に示されるアクセス終了パルスを生成する。アクセス終了パルスはタイミングt及びt間に生じる。アクセス終了パルスは上述のデバッガアクセス終了信号Eacsとしてデバッグ制御部21からCPU20に出力される。
アクセス終了パルス(信号Eacs)の入力に応答し、タイミングtにおいてCPU20によりプログラムメモリリードイネーブル信号はローレベルからハイレベルに切り替えられ、タイミングtを境にステートマシンはブレークステートからプリフェッチステートに遷移する。プログラムメモリリードイネーブル信号がハイレベルに戻ったことを受け、上述したようなプログラムメモリアドレスの更新動作が再開される。
ブレークステートからプリフェッチステートに遷移して1クロック分の時間が経過するとタイミングtに至り、タイミングtを境にステートマシンはプリフェッチステートからフェッチステートに遷移する。タイミングt及びt間では、タイミングt及びt間でラッチされていた命令(図7において命令コード“24bb”に対応)の次にフェッチされるべき命令(図7において命令コード“25bb”に対応)を格納したプログラムメモリアドレス(図7においてプログラムメモリアドレス“25”に対応)がプログラムカウンタにて指し示され、次のクロック周期であるタイミングt及びt間にて、上記次にフェッチされるべき命令(図7において命令コード“25bb”に対応)が実際にフェッチされ且つラッチされる。図7において、“y7”はフェッチを通じてラッチされた命令(命令コード)の時系列変化を表しており、その内、“ffff”が示された区間(即ちタイミングt及びt間の区間)は、プログラムの実行停止区間(命令のフェッチ及び実行の停止区間)を表している。上述したように、3クロック分のオーバーヘッドでデバッグ制御部21の記憶部30へのアクセスを実現できていることが分かる。
図7において、“y12”は内部バス22に表れるリードデータRDを表しており、内部バス22に表れたリードデータRDは、タイミングtにてデバッグ制御部21によりラッチされる。“y14”はラッチされたリードデータRDを表している。ラッチされたリードデータRDは、タイミングt以降において、デバッグ制御部21から外部デバッガ装置12へ送信される。
リードコマンドの受信に応答したLSI11のタイミングチャートを示したが、ライトコマンドの受信に応答したLSI11のタイミングチャートも同様となる。但し、ライトコマンドを受信した場合には、タイミングt及びt間において、デバッグ制御部21からライトアクセス用の信号がセレクタ27を介して内部バス22に出力され、当然、記憶部30から内部バス22へのリードデータRDの出力及びデバッグ制御部21によるリードデータRDのラッチは行われない。
<<第2実施形態>>
本発明の第2実施形態を説明する。第2実施形態では、上述の第1実施形態に対して適用可能な幾つかの応用技術、変形技術などを説明する。第2実施形態は以下の実施例EX2_1〜EX2_5を含む。
[実施例EX2_1]
実施例EX2_1を説明する。LSI11内に複数のCPU20が設けられていても良い。この場合、2以上のCPU20が同時に内部バス22に対してアクセスを行うことが無いように、各CPU20のアクセスタイミングを調整する調停回路(不図示)がLSI11に設けられる。説明の具体化のため、図8に示す如く、複数のCPU20としてCPU20[1]及び20[2]が設けられている場合を考えると、調停回路の構成要素として上述のセレクタ27の代わりにセレクタ27’が設けられる。セレクタ27’は、CPU20[1]からのアクセス用の信号が伝搬される信号線111、CPU20[2]からのアクセス用の信号が伝搬される信号線112、及び、デバッガ制御部21からのアクセス用の信号が伝搬される信号線113の内、何れか1つを選択的に内部バス22に接続する。信号線111〜113の各々は複数の配線から成る。CPU20[1]からのアクセス用の信号、CPU20[2]からのアクセス用の信号、及び、デバッガ制御部21からのアクセス用の信号は、夫々に、リードイネーブル信号、ライトイネーブル信号及びアドレス信号を含み、ライトアクセス時にはライトデータを更に含む。
外部デバッグ装置12からのリードコマンド又はライトコマンドが受信される前において、調停回路は、信号線111又は112が内部バス22に接続されるようセレクタ27’を制御する。デバッガ制御部21は、外部デバッグ装置12からリードコマンド又はライトコマンドを受信したとき、各CPU20に対してデバッガアクセス開始信号Sacsを出力し、各CPU20はデバッガアクセス開始信号Sacsの入力に応答して各々のステートマシンをブレークステートに遷移させる。調停回路は、全CPU20のステートマシンがブレークステートに遷移すると、信号線113が内部バス22に接続されるようセレクタ27’を制御すれば良い。
デバッガ制御部21によるアクセスが終了すると、デバッガ制御部21から各CPU20及び調停回路に対してデバッガアクセス終了信号Eacsが出力され、各CPU20はデバッガアクセス終了信号Eacsの入力に応答して各々のステートマシンをブレークステートからプリフェッチステートを介してフェッチステートに遷移させる。デバッガ制御部21からのデバッガアクセス終了信号Eacsの出力を受けて、調停回路は、信号線111又は112が内部バス22に接続される状態へとセレクタ27’の状態を戻せば良い。内部バス22へアクセスし得るCPU20が3つ以上ある場合も同様である。
[実施例EX2_2]
実施例EX2_2を説明する。第1実施形態で述べた方法を利用すれば、CPU20内に設けられたレジスタ(以下、CPU内部レジスタと称する)へのデバッガによるアクセスも可能である。
この場合、図9に示す如く、CPU20内に、CPU内部レジスタ131と、CPU内部バス132と、CPU内部セレクタ133と、CPU内部バスコントローラ134とを設けておき、CPU内部レジスタ131、CPU内部バス132、CPU内部セレクタ133、CPU内部バスコントローラ134を、夫々、第1実施形態における記憶部30、内部バス22、セレクタ27、CPU20と見立てて、第1実施形態と同様の接続関係及び動作を実現すれば良い。
[実施例EX2_3]
実施例EX2_3を説明する。図1の構成においてCPU20は内部バス22に対してアクセスを行う処理部の例であるが、本発明において、そのような処理部はCPUに限定されず、内部バス22に対してアクセスを行う任意の部位が処理部に成り得る。
[実施例EX2_4]
実施例EX2_4を説明する。LSI11を構成する各回路素子は半導体集積回路の形態で形成され、当該半導体集積回路を、樹脂にて構成された筐体(パッケージ)内に封入することで半導体装置が構成される。但し、複数のディスクリート部品を用いてLSI11内の回路と同等の回路を構成するようにしても良い。
[実施例EX2_5]
実施例EX2_5を説明する。本発明に係るデバッグシステムは、LSI11にて例示される半導体装置と、半導体装置に接続された外部装置と、を備える。ここにおける外部装置は、図1の構成においては、外部デバッグ装置12を指すと解しても良いし、外部デバッグ装置12及びホストPC13の双方を含むと解しても良い。
本発明の実施形態は、特許請求の範囲に示された技術的思想の範囲内において、適宜、種々の変更が可能である。以上の実施形態は、あくまでも、本発明の実施形態の例であって、本発明ないし各構成要件の用語の意義は、以上の実施形態に記載されたものに制限されるものではない。上述の説明文中に示した具体的な数値は、単なる例示であって、当然の如く、それらを様々な数値に変更することができる。
10 デバッグシステム
11 LSI
12 外部デバッグ装置
13 ホストコンピュータ
14 デバッグソフトウェア
20 CPU
21 デバッグ制御部
22 内部バス
23 ROM
24 RAM
25 ペリフェラル
26 レジスタ
27 セレクタ
30 記憶部

Claims (10)

  1. バスと、前記バスに接続された記憶部と、前記バスに接続されたセレクタと、プログラムを実行し且つ前記セレクタを介して前記バスにアクセス可能な処理部と、外部装置との間で双方向通信が可能に構成され且つ前記セレクタを介して前記バスにアクセス可能なデバッグ制御部と、を備えた半導体装置であって、
    前記セレクタは、前記処理部からの選択制御信号に基づき、前記処理部からの第1信号及び前記デバッグ制御部からの第2信号の内、前記第1信号を前記内部バスに伝達する第1選択状態、及び、前記第2信号を前記内部バスに伝達する第2選択状態の何れかの状態をとり、
    前記セレクタの状態が前記第1選択状態であるときにおいて前記デバッグ制御部にて前記外部装置から所定コマンドが受信されたとき、前記デバッグ制御部及び前記処理部の協働により前記セレクタの状態が一時的に前記第2選択状態に切り替えられ、前記セレクタの状態が前記第2選択状態とされているときにおいて前記デバッグ制御部が前記セレクタを介し前記所定コマンドに応じた前記バスへのアクセスを行う
    ことを特徴とする半導体装置。
  2. 前記セレクタの状態が前記第2選択状態とされているときにおいて前記プログラムの実行は停止される
    ことを特徴とする請求項1に記載の半導体装置。
  3. 前記プログラムの実行開始後、前記所定コマンドの受信に応答して前記セレクタの状態が一時的に前記第2選択状態とされるときを除き、前記セレクタの状態は前記第1選択状態とされる
    ことを特徴とする請求項1又は2に記載の半導体装置。
  4. 前記デバッグ制御部は、前記所定コマンドの受信に応答して所定のアクセス開始信号を前記処理部に対して出力し、前記処理部は、前記アクセス開始信号の入力に応答して前記セレクタの状態を前記第1選択状態から前記第2選択状態に切り替え、
    その後、前記デバッグ制御部による前記所定コマンドに応じたアクセスが終了すると、前記デバッグ制御部は、所定のアクセス終了信号を前記処理部に対して出力し、前記処理部は、前記アクセス終了信号の入力に応答して前記セレクタの状態を前記第2選択状態から前記第1選択状態に戻す
    ことを特徴とする請求項1〜3の何れかに記載の半導体装置。
  5. 前記処理部は、前記プログラムの実行状態を制御するステートマシンを有し、
    前記ステートマシンが、前記プログラムを構成する命令のフェッチ及び実行が行われるフェッチステートにあるときにおいて、前記処理部にて前記アクセス開始信号の入力を受けると、前記ステートマシンは前記命令のフェッチ及び実行が停止されるブレークステートに遷移し、前記処理部にて前記アクセス終了信号の入力を受けたことに応答して前記ステートマシンは前記フェッチステートへと戻り、
    前記ステートマシンは、前記ブレークステートにおいて前記セレクタを前記第2選択状態に制御する
    ことを特徴とする請求項4に記載の半導体装置。
  6. 前記セレクタの状態が前記第1選択状態であるときにおいて前記デバッグ制御部にてリードコマンドが前記所定コマンドとして受信されたとき、前記デバッグ制御部及び前記処理部の協働により前記セレクタの状態が一時的に前記第2選択状態に切り替えられ、前記セレクタの状態が前記第2選択状態とされているときにおいて前記デバッグ制御部は前記セレクタを介し前記リードコマンドに応じたリードアクセスを前記バスに対して行い、その後、前記リードアクセスにより前記記憶部から取得したリードデータを前記外部装置に対して送信する
    ことを特徴とする請求項1〜5の何れかに記載の半導体装置。
  7. 前記記憶部は複数のアドレスが割り当てられた複数の記憶領域を有し、
    前記リードコマンドにて前記複数のアドレスの何れかが指定され、
    前記デバッグ制御部は、前記リードコマンドに応じた前記リードアクセスにおいて、前記リードコマンドにて指定されたアドレスの記憶領域内のデータを前記リードデータとして前記記憶部から取得するためのアクセスを前記セレクタを介し前記バスに対して行い、これによって得られた前記リードデータを前記外部装置に対して送信する
    ことを特徴とする請求項6に記載の半導体装置。
  8. 前記セレクタの状態が前記第1選択状態であるときにおいて前記デバッグ制御部にてライトコマンドが前記所定コマンドとして受信されたとき、前記デバッグ制御部及び前記処理部の協働により前記セレクタの状態が一時的に前記第2選択状態に切り替えられ、前記セレクタの状態が前記第2選択状態とされているときにおいて前記デバッグ制御部は前記セレクタを介し前記ライトコマンドに応じたライトアクセスを前記バスに対して行い、
    前記ライトアクセスにより、前記ライトコマンドに応じたデータの書き込みが前記記憶部にて行われる
    ことを特徴とする請求項1〜5の何れかに記載の半導体装置。
  9. 前記記憶部は複数のアドレスが割り当てられた複数の記憶領域を有し、
    前記ライトコマンドにて前記複数のアドレスの何れかが指定されるとともにライトデータが指定され、
    前記デバッグ制御部は、前記ライトコマンドに応じた前記ライトアクセスにおいて、前記ライトコマンドにて指定されたアドレスの記憶領域に前記ライトデータを書き込むためのアクセスを前記セレクタを介し前記バスに対して行う
    ことを特徴とする請求項8に記載の半導体装置。
  10. 請求項1〜9の何れかに記載の半導体装置と、
    前記半導体装置に接続され、前記半導体装置の前記デバッグ制御部に対して前記所定コマンドを送信可能な外部装置と、を備えた
    ことを特徴とするデバッグシステム。
JP2019044877A 2019-03-12 2019-03-12 半導体装置及びデバッグシステム Active JP7202225B2 (ja)

Priority Applications (3)

Application Number Priority Date Filing Date Title
JP2019044877A JP7202225B2 (ja) 2019-03-12 2019-03-12 半導体装置及びデバッグシステム
US16/811,237 US11797421B2 (en) 2019-03-12 2020-03-06 Semiconductor apparatus and debug system
CN202010171828.9A CN111694697B (zh) 2019-03-12 2020-03-12 半导体装置及调试***

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2019044877A JP7202225B2 (ja) 2019-03-12 2019-03-12 半導体装置及びデバッグシステム

Publications (2)

Publication Number Publication Date
JP2020149214A true JP2020149214A (ja) 2020-09-17
JP7202225B2 JP7202225B2 (ja) 2023-01-11

Family

ID=72424104

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2019044877A Active JP7202225B2 (ja) 2019-03-12 2019-03-12 半導体装置及びデバッグシステム

Country Status (3)

Country Link
US (1) US11797421B2 (ja)
JP (1) JP7202225B2 (ja)
CN (1) CN111694697B (ja)

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH04123235A (ja) * 1990-09-14 1992-04-23 Fujitsu Ltd マイクロプログラムのデバッグ方式及び方法
JP2010049718A (ja) * 2009-12-03 2010-03-04 Hitachi Ltd 半導体装置
JP2010225094A (ja) * 2009-03-25 2010-10-07 Fujitsu Semiconductor Ltd 集積回路、デバッグ回路、デバッグコマンド制御方法
JP2015156196A (ja) * 2014-02-21 2015-08-27 株式会社デンソー マイクロコンピュータ

Family Cites Families (23)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS54443Y2 (ja) 1974-12-03 1979-01-11
US5132973A (en) * 1989-11-06 1992-07-21 Hewlett-Packard Company Testable embedded RAM arrays for bus transaction buffering
US6321369B1 (en) * 1996-10-28 2001-11-20 Altera Corporation Interface for compiling project variations in electronic design environments
GB2329049B (en) * 1997-09-09 2002-09-11 Advanced Risc Mach Ltd Apparatus and method for identifying exceptions when debugging software
EP0943996B1 (en) * 1998-03-20 2003-06-11 Texas Instruments Incorporated Processor having real-time execution control for debug functions without a debug monitor
JP2907808B1 (ja) * 1998-03-31 1999-06-21 三洋電機株式会社 フラッシュメモリエミュレーション装置及びそれを用いたデバッグシステム
JP2002082819A (ja) * 2000-09-11 2002-03-22 Hitachi Ltd 半導体集積回路装置
JP3913470B2 (ja) * 2000-12-28 2007-05-09 株式会社東芝 システムlsi
JP2004038464A (ja) * 2002-07-02 2004-02-05 Renesas Technology Corp デバッグ機能内蔵マイクロコンピュータ
JP2004086447A (ja) 2002-08-26 2004-03-18 Renesas Technology Corp マイクロコンピュータ
JP2004094451A (ja) * 2002-08-30 2004-03-25 Mitsubishi Electric Corp オンチップjtagインタフェース回路およびシステムlsi
JP2005070950A (ja) * 2003-08-21 2005-03-17 Sanyo Electric Co Ltd プログラム処理装置
JP4409349B2 (ja) * 2004-04-27 2010-02-03 Okiセミコンダクタ株式会社 デバッグ回路およびデバッグ制御方法
JP4833907B2 (ja) * 2007-04-23 2011-12-07 ルネサスエレクトロニクス株式会社 半導体装置
JP2010278255A (ja) * 2009-05-28 2010-12-09 Ricoh Co Ltd 半導体デバイス及びそのデバッグ方法
JP5471631B2 (ja) * 2010-03-10 2014-04-16 セイコーエプソン株式会社 電子機器
KR101992234B1 (ko) * 2012-05-22 2019-06-24 삼성전자주식회사 디버깅 회로를 위한 클럭 제어 회로를 구비하는 집적 회로 및 이를 포함하는 시스템-온-칩
US20140053036A1 (en) * 2012-08-15 2014-02-20 Scott P. Nixon Debugging multiple exclusive sequences using dsm context switches
US9110682B2 (en) * 2012-10-19 2015-08-18 Microsoft Technology Licensing Llc State machine control of a debugger
US9898229B1 (en) * 2016-07-29 2018-02-20 Sandisk Technologies Llc Systems and methods of memory reads
JP2018120449A (ja) * 2017-01-26 2018-08-02 ソニーセミコンダクタソリューションズ株式会社 演算処理装置および情報処理システム
US10235272B2 (en) * 2017-03-06 2019-03-19 Xilinx, Inc. Debugging system and method
US11144417B2 (en) * 2018-12-31 2021-10-12 Texas Instruments Incorporated Debug for multi-threaded processing

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH04123235A (ja) * 1990-09-14 1992-04-23 Fujitsu Ltd マイクロプログラムのデバッグ方式及び方法
JP2010225094A (ja) * 2009-03-25 2010-10-07 Fujitsu Semiconductor Ltd 集積回路、デバッグ回路、デバッグコマンド制御方法
JP2010049718A (ja) * 2009-12-03 2010-03-04 Hitachi Ltd 半導体装置
JP2015156196A (ja) * 2014-02-21 2015-08-27 株式会社デンソー マイクロコンピュータ

Also Published As

Publication number Publication date
CN111694697A (zh) 2020-09-22
JP7202225B2 (ja) 2023-01-11
US20200293429A1 (en) 2020-09-17
CN111694697B (zh) 2023-09-19
US11797421B2 (en) 2023-10-24

Similar Documents

Publication Publication Date Title
US4987537A (en) Computer capable of accessing a memory by supplying an address having a length shorter than that of a required address for the memory
JP4335999B2 (ja) プロセッサ内蔵半導体集積回路装置
CN114580344B (zh) 测试激励生成方法、验证方法、验证***及相关设备
JPH0863354A (ja) コンピュータプロセッシングを行うための装置及び方法
US20070038795A1 (en) Asynchronous bus interface and processing method thereof
JP7202225B2 (ja) 半導体装置及びデバッグシステム
JPH1078887A (ja) デバッグシステム及びデバッグ方法
WO2020209016A1 (ja) 半導体装置及びデバッグシステム
JP2010134789A (ja) 要求処理装置、要求処理システムおよびアクセス試験方法
CN111625411A (zh) 半导体装置及调试***
JP2004094945A (ja) ホストと、ホストよりも大きなレイテンシを有するスレーブデバイス間のインタフェース
JP3899784B2 (ja) クロック制御装置、半導体集積回路装置、マイクロコンピュータ及び電子機器
JP2004318877A (ja) 知的な待ち方法
JP5850732B2 (ja) 半導体装置及びその制御方法
JPH1185673A (ja) 共有バスの制御方法とその装置
JP2004013289A (ja) マイクロコントローラのオンチップデバッグ方法
JP2007094835A (ja) メモリ・コントローラ
JP2000029508A (ja) プログラマブルコントローラ
CN115658601A (zh) 多核处理器***及其控制方法
KR100257772B1 (ko) 수퍼스칼라 마이크로프로세서의 정지점 생성 장치
JP3615306B2 (ja) 記憶装置アクセスシステム
JP3006487B2 (ja) エミュレーション装置
JP5811544B2 (ja) 集積装置、情報処理システム、および、処理方法
JP2009193604A (ja) 半導体情報処理装置
JPH1139278A (ja) プロセッサおよびメモリアクセス方法

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20220209

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20221116

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20221122

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20221205

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20221223

R150 Certificate of patent or registration of utility model

Ref document number: 7202225

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150