実施の形態の半導体回路装置、及び、電子装置について説明する前に、前提技術による半導体回路装置、及び、電子装置について説明する。
図1は、前提技術の電子装置1にオシロスコープ30を接続している状態を示す図である。
電子装置1は、基板2、デバイス10、20を含む。電子装置1は、例えば、サーバの一部である。また、デバイス10、20は、例えば、半導体製造技術によって製造される。より具体的には、例えば、デバイス10は、制御処理を行う制御部であり、デバイス20は、データを格納するメモリである。
ここでは、制御処理部として機能するデバイス10が、メモリとして用いられるデバイス20に対して、データの書き込み又は読み出しを行う場合について説明する。
基板2は、例えば、FR−4(Flame Retardant type 4)規格の多層プリント基板であり、デバイス10及び20が実装されている。基板2は、所謂マザーボードである。基板2の表面、裏面、及び内層には、例えば、デバイス10と20を接続するバス及び配線と、デバイス10、20に電力を供給する電源用の配線とが形成されるとともに、内層には、電源層及びグランド層が含まれている。
デバイス10は、読み書き制御部(Read/Write制御)11とトリガ生成部12とを含み、デバイス20へのデータの書き込み、及び、デバイス20に書き込まれたデータの読み出しを行う。
また、デバイス10は、端子10A、10B、10C、10D、10Eを含む。端子10A、10B、10C、10D、10Eは、それぞれ、基板2のバス2A、2B、2C、2D、トリガ信号端子2Eに接続される。
読み書き制御部11は、例えば、CPU(Central Processing Unit:中央演算処理装置)チップによって実現される。読み書き制御部11としてのCPUチップは、内部メモリを含む。
読み書き制御部11は、基板2のバス2A、2B、2Cを介して、クロック(Clock)、コマンド(Command)信号、アドレス(Address)信号をデバイス20に入力する。
クロックは、電子装置1のシステムクロックである。コマンドは、デバイス20へのデータの書き込み、又は、デバイス20からのデータの読み出しを行うための指令である。アドレス信号は、データの書き込み、又は、データの読み出しを行うデバイス20内のメモリセルのアドレスを指定するための信号である。
読み書き制御部11は、クロック、コマンド信号、アドレス信号をデバイス20に入力し、アドレス信号によって特定されるデバイス20の内部のメモリセルに対して、コマンド信号に応じてデータ(Data)の書き込み又は読み出しを行う。データの書き込み又は読み出しは、基板2のバス2Dを介して行われる。
トリガ生成部12は、オシロスコープ30を用いてデバイス10の出力信号の波形を観測する際に、オシロスコープ30に観測処理を開始させるためのトリガ信号を生成する。
トリガ生成部12は、読み書き制御部11から内部制御信号が入力されると、読み書き制御部が出力するクロック、コマンド信号、アドレス信号に基づいて、トリガ信号(Trigger)を出力する。トリガ信号は、デバイス10から基板2のトリガ信号端子2Eに出力される。
このような電子装置1のデバイス10がバス2B、2Cを介して出力するコマンド信号、アドレス信号、又は、デバイス10と20との間のバス2Dで伝送されるデータを観測するときは、オシロスコープ30を用いる。
例えば、オシロスコープ30は4つのプローブP1、P2、P3、P4を有する場合に、プローブP1、P2、P3、P4を、それぞれ、バス2B、2C、2D、トリガ信号端子2Eに接続する。プローブP1、P2、P3は、バス2B、2C、2Dに存在するビア又はピン等に接続すればよい。また、バス2B、2C、2Dには、プローブP1、P2、P3を接続するための端子を設けてもよい。
オシロスコープ30のプローブP4でトリガ信号端子2Eに出力されるトリガ信号を検出したときに、オシロスコープ30でプローブP1、P2、P3に入力される信号波形を観測すれば、プローブP1、P2、P3を介して、コマンド信号、アドレス信号、データの波形を観測することができる。
図2は、前提技術の電子装置1における各信号の波形を示す図である。図2には、クロックCLK、2つのコマンド信号Cmd#0, Cmd#1、4つのアドレス信号Addr#0-3、8つのデータData#0-7、トリガ信号Triggerを示す。
図2に示す例では、アドレス0x9に対して、コマンド信号Cmd#0がL(Low)レベルの状態で、コマンド信号Cmd#1がLレベルからH(High)レベルに遷移するときに、トリガ生成部12がトリガ信号TriggerのHレベルのパルスを生成するようになっていることとする。トリガ信号Triggerは、トリガ信号端子2Eに出力される。
従って、オシロスコープ30のプローブP4でトリガ信号Triggerを検出したときに、観測を開始すれば、プローブP1、P2、P3を介して取り込んだコマンド信号、アドレス信号、データの波形をオシロスコープ30で観測することができる。
ところで、電子装置1のデバイス10のトリガ信号端子2Eは、オシロスコープ30でバス2B、2C、2Dを伝送されるクロック(Clock)、コマンド(Command)信号、アドレス(Address)信号を観測するときにのみ用いられる。
すなわち、電子装置1のデバイス10は、通常動作時には用いないトリガ信号端子2Eを含む。ここで、通常動作時とは、電子装置1が演算処理等の通常の動作を行うときをいう。
従って、前提技術のデバイス10は、資源の利用効率が低いという問題点がある。
そこで、以下で説明する実施の形態では、資源の利用効率を改善した半導体回路装置及び電子装置を提供することを目的とする。
以下、本発明の半導体回路装置、及び、電子装置を適用した実施の形態について説明する。
<実施の形態1>
図3は、実施の形態1の半導体回路装置及び電子装置を含むサーバ500の構成を示す図である。サーバ500は、情報処理装置の一例である。
サーバ500は、CPU510A、510B、メモリ520A、520B、I/Oハブ(I/O Hub)530、ストレージ(Storage)540、及びI/O550を含む。
CPU510A、510Bには、それぞれ、メモリ520A、520Bが接続されている。また、CPU510A、510Bには、I/Oハブ530を介して、ストレージ540とI/O550が接続されている。
CPU510A、510Bは、所謂CPUチップである。また、メモリ520A、520Bは、例えば、NANDフラッシュメモリである。I/Oハブ530は、CPU510A、510Bと、ストレージ540及びI/O550との間を接続する集積回路である。I/Oハブ530は、CPU510A、510Bに含まれていてもよい。
ストレージ540は、例えば、HDD(Hard Disk Drive)又はSSD(Solid State Drive)である。I/O550は、LAN(Local Area Network)に接続されるI/Oである。
このようなサーバ500において、実施の形態1の電子装置は、例えば、CPU510Aとメモリ520Aとによって実現される。この場合に、実施の形態1の半導体回路装置は、CPU510Aである。
同様に、実施の形態1の電子装置は、例えば、CPU510Bとメモリ520Bとによって実現されてもよい。この場合に、実施の形態1の半導体回路装置は、CPU510Bである。
また、実施の形態1の電子装置は、例えば、CPU510AとCPU510Bとによって実現されてもよい。この場合に、実施の形態1の半導体回路装置は、CPU510A又は510Bである。
また、実施の形態1の電子装置は、例えば、CPU510AとI/Oハブ530とによって実現されてもよい。この場合に、実施の形態1の半導体回路装置は、CPU510Aである。同様に、実施の形態1の電子装置は、例えば、CPU510BとI/Oハブ530とによって実現される。
また、実施の形態1の電子装置は、例えば、I/Oハブ530とストレージ540とによって実現されてもよい。この場合に、実施の形態1の半導体回路装置は、I/Oハブ530である。
また、実施の形態1の電子装置は、例えば、I/Oハブ530とI/O550とによって実現されてもよい。この場合に、実施の形態1の半導体回路装置は、I/Oハブ530である。
このように、実施の形態1の半導体回路装置及び電子装置は、サーバ500の様々な部分に適用することができる。なお、ここでは、実施の形態1の半導体回路装置及び電子装置をサーバ500に適用する形態について説明するが、実施の形態1の半導体回路装置及び電子装置は、内部でデータが伝送される装置であれば、サーバ500以外の装置に適用することもできる。
次に、図4を用いて実施の形態1のデバイス100を含む電子装置400Aについて説明する。
図4は、実施の形態1のデバイス100を含む電子装置400Aを示す図である。
電子装置400Aは、デバイス100、20、及び基板40を含む。また、図4には、電子装置400Aにオシロスコープ30Aを接続している状態を示す。
デバイス100は、サーバ500の一部である。また、デバイス100、20は、例えば、半導体製造技術によって製造される。
より具体的には、例えば、デバイス100は、サーバ500のCPU510A又は510B(図3参照)の全部又は一部であり、サーバ500の動作に必要な制御処理を行う。また、この場合に、デバイス20は、例えば、データを格納するメモリ520A又は520B(図3参照)である。
デバイス100は、半導体回路装置の一例である。なお、ここでは、デバイス100が制御処理を行う形態について説明するが、デバイス100は、演算処理等のデータ処理を行う回路であってもよい。また、デバイス100は、制御処理又は演算処理等のデータ処理を行わない半導体回路装置であってもよい。例えば、デバイス100は、サーバ500のI/Oハブ530(図3参照)のようにデータを転送する半導体回路装置であってもよい。
また、デバイス20は、前提技術のデバイス20と同様であり、他の半導体回路装置の一例である。なお、ここでは、デバイス20がメモリである形態について説明するが、デバイス20は、メモリ以外の回路であってもよい。例えば、デバイス20は、データを格納する回路ではなく、I/Oハブ530のようにデバイス100との間でデータの転送を行う回路であってもよく、また、演算処理又は制御処理等のデータ処理を行う回路であってもよい。
以下、実施の形態1では、図3に示すCPU510Aの全部又は一部に対応するデバイス100が、図3に示すメモリ520Aに対応するデバイス20に対して、データの書き込み又は読み出しを行う場合について説明する。
基板40は、例えば、FR−4(Flame Retardant type 4)規格の多層プリント基板であり、デバイス100及び20が実装されている。基板40は、所謂マザーボードである。基板40は、バス40A、40B、40C、40Dを含む。また、基板40は、バス40A、40B、40C、40D以外に、他のバス、配線、電源層、及びグランド層等を、基板40の表面、裏面、及び内層に含む。
ここで、バス40Cにプローブ端子40C1を示すが、バス40A、40B、40Dにもプローブ端子が設けられていてもよい。
デバイス100は、読み書き制御部(Read/Write制御)110、トリガ生成部120、遅延制御部130、出力先制御部140、信号選択部150、条件保持部160、及び端子101A、101B、101C、101Dを含む。
デバイス100は、デバイス20へのデータの書き込み、及び、デバイス20に書き込まれたデータの読み出しを行う。
端子101A、101B、101C、101Dは、それぞれ、基板40のバス40A、40B、40C、40Dに接続される。端子101A、101B、101Cは、それぞれ、クロック(Clock)、コマンド(Command)信号、アドレス(Address)信号を出力する。端子101A、101B、101Cは、出力部の一例である。
また、端子101Dは、データ(Data)を入力又は出力する。
図4には、説明の便宜上、端子101A、101B、101C、101Dを1つずつ示す。
しかしながら、デバイス100が複数のクロックを出力する場合は、デバイス100は、クロックの数に応じた複数の端子101Aを含む。また、デバイス100が複数のコマンド信号を出力する場合は、デバイス100は、コマンド信号の数に応じた複数の端子101Bを含む。
また、デバイス100が複数のアドレス信号を出力する場合は、デバイス100は、アドレス信号の数に応じた複数の端子101Cを含む。同様に、デバイス100が複数のデータを入力又は出力する場合は、デバイス100は、データの数に応じた複数の端子101Dを含む。
また、同様に、基板40は、端子101A、101B、101C、101Dの数に応じた数のバス40A、40B、40C、40Dをそれぞれ有する。
なお、図4では、オシロスコープ30AのプローブP1、P2は、それぞれ、バス40B、40Cに接続されている。また、バス40Dは2本あり、オシロスコープ30AのプローブP3、P4は、それぞれ、2本のバス40Dに接続されている。
読み書き制御部110は、デバイス20に対するデータの書き込み、又は、データの読み出しを行うために、クロック(Clock)、コマンド(Command)信号、アドレス(Address)信号を出力する。読み書き制御部110は、制御部の一例である。
読み書き制御部110が出力するクロック、コマンド信号、アドレス信号は、通常動作時は、信号選択部150を介して基板40のバス40A、40B、40Cに出力される。
読み書き制御部110は、通常動作時は、基板40のバス40A、40B、40Cを介して、クロック、コマンド信号、アドレス信号をデバイス20に入力し、デバイス20に対するデータの書き込み、又は、データの読み出しを行う。デバイス100と20との間では、データは基板40のバス40Dを介して伝送される。
ここで、通常動作時とは、デバイス100がデータ処理等の通常の動作を行うときをいう。より具体的には、通常動作時とは、デバイス100が動作する状態のうち、波形観測用の動作を行う観測動作時以外の動作時をいう。観測動作時とは、オシロスコープ30Aが観測するための信号をデバイス100が出力する動作時をいう。
なお、デバイス100が通常動作を行うときは、電子装置400Aも通常動作を行うことになり、デバイス100が観測用の動作を行うときは、電子装置400Aも観測用の動作を行うことになる。
また、読み書き制御部110が出力するクロック、コマンド信号、アドレス信号は、通常動作時及び観測動作時に、トリガ生成部120に入力される。
クロックは、電子装置400Aのシステムクロックである。コマンドは、デバイス20へのデータの書き込み、又は、デバイス20からのデータの読み出しを行うための指令である。アドレス信号は、データの書き込み、又は、データの読み出しを行うデバイス20内のメモリセルのアドレスを指定するための信号である。
読み書き制御部110は、クロック、コマンド信号、アドレス信号をデバイス20に入力し、アドレス信号によって特定されるデバイス20の内部のメモリセルに対して、コマンド信号に応じてデータ(Data)の書き込み又は読み出しを行う。データの書き込み又は読み出しは、基板40のバス40Dを介して行われる。
トリガ生成部120は、読み書き制御部110から内部制御信号が入力されると、条件保持部160から入力される生成条件と、読み書き制御部110が出力するクロック、コマンド信号、アドレス信号とに基づき、トリガ信号(Trigger)を生成する。トリガ生成部120は、トリガ信号生成部の一例である。
トリガ生成部120は、読み書き制御部110が出力するクロック、コマンド信号、アドレス信号が、条件保持部160から入力される生成条件を満たしたと判定したときに、トリガ信号を生成する。
なお、内部制御信号は、観測用の動作を開始する際に、読み書き制御部110からトリガ生成部120に入力される。内部制御信号は、例えば、サーバ500(図3参照)の立ち上げ時に、リクエスト送信処理のタイムアウトを監視するためのタイムアウトタイマーのカウント値が、タイムアウトになる場合のカウント値の半分を超えた場合に、読み書き制御部110が出力するようにすればよい。
なお、ここでは、読み書き制御部110からトリガ生成部120に内部制御信号が入力され、トリガ生成部120が生成条件を満たしたと判定したときに、トリガ生成部120がトリガ信号(Trigger)を生成する形態について説明する。
しかしながら、実施の形態1のデバイス100では、内部制御信号を用いなくてもよいし、また、内部制御信号を上述とは異なる手法で用いてもよい。例えば、内部制御信号が入力される前にトリガ生成部120が生成条件を満たしているかどうか判定し、生成条件を満たしていると判定した場合であっても、内部制御信号が入力されるまではトリガ信号を出力できないようにしてもよい。
トリガ信号は、オシロスコープ30Aを用いてデバイス100の出力信号の波形を観測する際に、観測用の動作を開始させるためのトリガになる信号である。トリガ生成部120が生成するトリガ信号は、遅延制御部130に入力される。
詳細は後述するが、トリガ信号は、観測動作時に、遅延制御部130と信号選択部150を経て、デバイス100の端子101A、101B、又は101Cから基板40のバス40A、40B、又は40Cに出力される。
遅延制御部130は、トリガ生成部120から入力されるトリガ信号に、条件保持部160から入力される遅延条件に基づく遅延時間を与えて信号選択部150に出力する。また、遅延制御部130は、遅延したトリガ信号を出力する際に、遅延したトリガ信号を出力することを表す通知信号を出力先制御部140に出力する。
出力先制御部140は、観測動作時に遅延制御部130から通知信号が入力されると、条件保持部160から入力される出力条件に基づいて選択信号を生成し、信号選択部150に入力する。
選択信号は、読み書き制御部110から入力されるクロック、コマンド信号、又はアドレス信号のうちの少なくともいずれか1つの代わりに、信号選択部150にトリガ信号を選択させるための信号である。
信号選択部150は、マルチプレクサ151、152、153を含む。マルチプレクサ151、152、153の一方の入力端子には、それぞれ、読み書き制御部110から入力されるクロック、コマンド信号、アドレス信号が入力される。また、マルチプレクサ151、152、153の他方の入力端子には、それぞれ、遅延制御部130によって遅延されたトリガ信号が入力される。
マルチプレクサ151、152、153の選択信号入力端子には、出力先制御部140から選択信号が入力される。マルチプレクサ151、152、153は、それぞれ、選択信号に従って、読み書き制御部110から入力されるクロック、コマンド信号、又はアドレス信号と、トリガ信号とのいずれかを選択して出力する。
なお、端子101A、101B、101Cのいずれかが複数ある場合は、信号選択部150は、対応するマルチプレクサ151、152、153を同一数だけ含む。
また、出力先制御部140及び信号選択部150は、選択部の一例である。出力先制御部140は、選択部のうちの選択制御部の一例であり、信号選択部150は、選択部のうちの選択回路の一例である。
条件保持部160は、トリガ信号の生成条件、遅延条件、及び出力条件を保持する。条件保持部160は、例えば、レジスタのような揮発性のメモリであればよい。
生成条件、遅延条件、及び出力条件は、デバイス100の電源を立ち上げる際に、利用者によって設定される。
生成条件は、トリガ信号を生成する条件である。実施の形態1のデバイス100は、クロック、コマンド信号、又はアドレス信号のいずれかが出力されていないときに、クロック、コマンド信号、又はアドレス信号のいずれかの代わりにトリガ信号を生成し、端子101A、101B、又は101Cから出力する。
生成条件は、クロック、コマンド信号、又はアドレス信号の信号レベルに基づいて、トリガ信号の生成を開始する条件を表す。この生成条件については、図5を用いて後述する。
遅延条件は、トリガ生成部120によって生成されたトリガ信号に与える遅延時間を表す条件である。実施の形態1のデバイス100は、クロック、コマンド信号、又はアドレス信号のいずれかが出力されていないときに、クロック、コマンド信号、又はアドレス信号のいずれかの代わりにトリガ信号を端子101A、101B、又は101Cから出力する。
このため、遅延条件は、クロック、コマンド信号、又はアドレス信号のいずれかが出力されていないときまで、トリガ生成部120によって生成されたトリガ信号を遅延させる遅延時間を表す。
出力条件は、遅延制御部130で遅延されたトリガ信号をクロック、コマンド信号、又はアドレス信号のいずれかの代わりに出力するかを決める条件である。
出力条件がクロックの代わりに遅延制御部130で遅延されたトリガ信号を出力することを表す場合は、信号選択部150のマルチプレクサ151に遅延制御部130で遅延されたトリガ信号を選択させるための選択信号が入力される。
また、出力条件がコマンド信号の代わりに遅延制御部130で遅延されたトリガ信号を出力することを表す場合は、信号選択部150のマルチプレクサ152に遅延制御部130で遅延されたトリガ信号を選択させるための選択信号が入力される。
また、出力条件がアドレス信号の代わりに遅延制御部130で遅延されたトリガ信号を出力することを表す場合は、信号選択部150のマルチプレクサ153に遅延制御部130で遅延されたトリガ信号を選択させるための選択信号が入力される。
また、出力条件がクロック、コマンド信号、又はアドレス信号のうちのいずれか2つ以上の信号の代わりに遅延制御部130で遅延されたトリガ信号を出力することを表す場合は、対応する(マルチプレクサ151〜153のうちのいずれか2つ以上)に遅延制御部130で遅延されたトリガ信号を選択させるための選択信号が入力される。
なお、ここでは、条件保持部160が生成条件、遅延条件、及び出力条件を保持する形態について説明するが、遅延条件は、出力条件に含まれていてもよい。この場合は、条件保持部160が、生成条件と、遅延条件を含む出力条件との2つの条件を保持することになる。
次に、図5を用いて、実施の形態1のデバイス100の観測動作時における動作について説明する。
図5は、実施の形態1のデバイス100から出力される信号の波形を示すタイミングチャートである。
図5には、端子101A、101B、101C、101Dからバス40A、40B、40C、40Dに出力される信号を示す。デバイス100は、通常動作時には、端子101A、101B、101C、101Dからバス40A、40B、40C、40Dに、クロックCLK、2つのコマンド信号Cmd#0, Cmd#1、4つのアドレス信号Addr#0-3を出力し、8つのデータData#0-7を入力又は出力する。
これは、図4で言えば、端子101B、マルチプレクサ152、及びバス40Bは2つずつあり、端子101C、マルチプレクサ153、及びバス40Cは4つずつあることになる。また、データを伝送するバス40Dは8本あることになる。
図5には、2つの端子101Bから出力される信号については、別々に示すこととする。
また、図5には、通常動作時に端子101A、101B、101C、101Dからバス40A、40B、40C、40Dに出力される信号の名称を併記する。
ここでは、一例として、アドレス0x9に対して、コマンド信号Cmd#0がL(Low)レベルの状態で、コマンド信号Cmd#1がLレベルからH(High)レベルに遷移するときに、トリガ信号を生成する生成条件が満たされることとする。
生成条件が満たされたか否かは、トリガ生成部120が、読み書き制御部110から出力されるクロック、コマンド信号、及びアドレス信号に基づいて判定する。
トリガ生成部120は、読み書き制御部110から内部制御信号が入力され、かつ、生成条件が満たされたと判定すると、信号選択部150のマルチプレクサ152がコマンド信号Cmd#0, Cmd#1の代わりにトリガ信号を2本のバス40Bに出力することとする。
トリガ生成部120は、条件保持部160に保持される生成条件に基づき、2つのコマンド信号Cmd#0, Cmd#1の代わりに出力される、同時に立ち上がる2つの1クロックサイクル分のHレベルのパルスをトリガ信号として生成する。同時に立ち上がる2つの1クロックサイクル分のHレベルのパルスで構築されるトリガ信号は、遅延制御部130で遅延され、マルチプレクサ152で選択されると、2つの端子101Bから、それぞれ、2本のバス40Bに出力される。
ここで、コマンド信号Cmd#0, Cmd#1を用いる伝送プロトコルには、コマンド信号Cmd#0, Cmd#1の両方が同時に1クロックサイクルにわたってHレベルになることはないこととする。
実施の形態1では、このように、デバイス100で用いる伝送プロトコルに存在しない信号パターンのトリガ信号を生成し、2本のバス40Bに出力する。
実施の形態1のデバイス100のトリガ生成部120が条件保持部160に保持される生成条件に基づいて生成するトリガ信号は、デバイス100で用いる伝送プロトコルに存在しない信号パターンである。換言すれば、このトリガ信号は、デバイス100で用いる伝送プロトコルでは無効な信号パターンである。
デバイス100で用いる伝送プロトコルでは無効な信号パターンをトリガ信号として用いれば、トリガ信号と等しいパターンの信号は他に存在しないため、オシロスコープ30Aで波形を観測する際に、トリガ信号を正確に見分けることができる。
この結果、オシロスコープ30AのプローブP1、P2、P3、P4で、バス40B、40C、及び、2本のバス40Dを伝送される4種類の信号を観測することができる。
また、遅延制御部130が条件保持部160に保持される遅延条件に基づいてトリガ信号に与える遅延時間は、トリガ生成部120が生成条件が成立したことを判定してから、トリガ信号の出力を遅延させる時間である。
これは、トリガ信号を端子101Bからバス40Bに出力する際に、トリガ信号がコマンド信号とかち合わないようにするために、バス40Bにコマンド信号が存在しなくなるタイミングまで待つために、トリガ信号に遅延を与えることとしたものである。
伝送プロトコルによって、クロック、コマンド信号、及びアドレス信号等が出力されるタイミングは決まっており、既知であるため、ここでは、コマンド信号が存在しないタイミングまでトリガ信号を遅延させてから、バス40Bにトリガ信号を出力することとしている。
すなわち、図5には、アドレス0x9に対して、コマンド信号Cmd#0がL(Low)レベルの状態で、コマンド信号Cmd#1がLレベルからH(High)レベルに遷移する時刻t1から、トリガ信号をバス40Bに出力する時刻t2までの間が、トリガ信号に与えられる遅延時間である。
時刻t2では、バス40Bにコマンド信号Cmd#0, Cmd#1が存在せず、2つの1クロックサイクル分のHレベルのパルスが、コマンド信号Cmd#0, Cmd#1の代わりに、バス40Bに存在する。
2つの1クロックサイクル分のHレベルのパルスが同時に立ち上がることは、バス40Bにコマンド信号Cmd#0, Cmd#1を用いる伝送プロトコルには存在しない信号パターンである。
このため、時刻t2で同時に立ち上がる2つの1クロックサイクル分のHレベルのパルスをオシロスコープ30Aで観測すれば、オシロスコープ30Aでの波形観測を開始することができる。
なお、波形を観測したいタイミング(Writeコマンドの伝送)よりも遅れてトリガが出力されることになるが、今日では、オシロスコープ30Aはトリガ検出した時刻からある程度遡って波形を表示する機能を持つのが一般的であるため、この遅延は問題とならない。
以上、実施の形態1のデバイス100によれば、通常動作時にコマンド信号を出力する端子101Bから、観測動作時にトリガ信号を出力することができる。
従って、前提技術のデバイス10のように、トリガ信号を出力する専用の端子10Eを設ける必要がない。
このため、実施の形態1によれば、資源の利用効率を改善したデバイス100を提供することができる。
また、この結果、オシロスコープ30AのプローブP1、P2、P3、P4のうちの1つでトリガ信号を検出できるとともに、バス40B、40C、及び、2本のバス40Dを伝送される4種類の信号を観測することができる。
これは、前提技術のデバイス10(図1参照)にオシロスコープ30を接続する場合に比べて、トリガ信号を検出するための専用のプローブが不要になるとともに、観測可能な信号の数が1つ多いことを意味する。
従って、実施の形態1によれば、観測効率を改善したデバイス100及び電子装置400Aを提供することができる。
なお、以上では、トリガ信号を端子101Bから出力する形態について説明したが、トリガ信号は端子101B以外の端子101A、101C、又は101Dから出力してもよい。
例えば、クロックが出力されない期間に、端子101Aからトリガ信号を出力してもよい。また、アドレス信号が出力されない期間に、トリガ信号を端子101Cから出力してもよい。また、データのデバイス100への入力及びデバイス100からの出力が行われない期間に、トリガ信号を端子101Dから出力してもよい。
また、実施の形態1のデバイス100を含む電子装置400Aは、オシロスコープ30のプローブP1〜P4をバス40A〜40Dに接続して、デバイス100が実際に動作しているときの信号波形を観測できる。このようにデバイス100及び電子装置400が実際に動作しているときの信号波形を観測できることにより、デバイス100及び電子装置400の動作を正確に把握することができる。
<実施の形態2>
図6は、実施の形態2のデバイス200を含む電子装置400Bを示す図である。実施の形態2のデバイス200は、実施の形態1のデバイス100に、NANDフラッシュメモリの規格であるONFi(Open NAND Flash interface)プロトコルを適用したものであり、NAND制御部(NAND controller)として機能する。
電子装置400Bは、デバイス200、メモリ20A、及び基板50を含む。また、図6には、電子装置400Bに波形観測用のオシロスコープ30Aを接続している状態を示す。
デバイス200は、サーバ500(図3参照)の一部である。また、デバイス200、メモリ20Aは、例えば、半導体製造技術によって製造される。実施の形態2では、デバイス200が制御処理を行う形態について説明するが、デバイス200は、制御処理を行わない半導体回路装置であってもよい。これは、実施の形態1のデバイス100と同様である。
また、メモリ20Aは、実施の形態1のデバイス20に対応し、実施の形態2では、一例として、NANDフラッシュメモリである。
以下、実施の形態1のデバイス100と同様の構成要素には同一符号を付し、その説明を省略する。
基板50は、実施の形態1の基板40と同様に、例えば、FR−4規格の多層プリント基板であり、デバイス200及びメモリ20Aが実装されている。基板50は、所謂マザーボードである。基板50は、バス50A、50B、50C、50D、50Eを含む。また、基板50は、バス50A、50B、50C、50D、50E以外に、他のバス、配線、電源層、及びグランド層等を、基板50の表面、裏面、及び内層に含んでもよい。
デバイス200は、読み書き制御部(Read/Write制御)210、トリガ生成部220、遅延制御部230、出力先制御部140、信号選択部250、制御レジスタ260、ONFi制御部270、入出力バッファ280、及び端子201A、201B、201C、201D、201Eを含む。
デバイス200は、メモリ20Aへのデータの書き込み、及び、メモリ20Aに書き込まれたデータの読み出しを行う。デバイス200は、半導体回路装置の一例である。
端子201A、201B、201C、201D、201Eは、それぞれ、基板50のバス50A、50B、50C、50D、50Eに接続される。端子201Aは、クロック(Clock)を出力する。端子201Bは、CE_n信号を出力する。端子201Cは、コマンド信号(ALE信号、CLE信号、及びRE信号)を出力する。端子201Dは、ストローブ信号DQSを入力又は出力する。端子201Eは、データDQ#0-7を入力又は出力する。
図6には、説明の便宜上、1つの端子201Cを示すが、コマンド信号は、ALE信号、CLE信号、及びRE信号を含んでおり、ALE信号、CLE信号、及びRE信号は、それぞれ別々にメモリ20Aに伝送されるため、端子201Cは、実際には3つあることになる。また、これに伴い、基板50は、実際には3本のバス50Cを有する。
また、コマンド信号(ALE信号、CLE信号、及びRE信号)が入力される信号選択部250は、実際には3つあり、入出力バッファ280には、3つの信号選択部250の出力が入力される。
また、ONFi制御部270からトリガ生成部220には、コマンド信号(ALE信号、CLE信号、及びRE信号)が別々に入力される。デバイス200に含まれるトリガ生成部220の数は1つである。
また、図6には、説明の便宜上、1つの端子201Dを示すが、ストローブ信号DQSが差動形式である場合は、端子201Dは2つあり、ポジティブ側のストローブ信号DQSと、ネガティブ側のストローブ信号DQSとの入出力端子になる。
また、図6には、説明の便宜上、1つの端子201Eを示すが、実施の形態2では、一例として、データDQ#0-7は8ビットであるので、端子201Eは8つあることになる。
なお、図6では、オシロスコープ30AのプローブP1、P2は、実際には3本あるバス50Cのうちの2本に接続されている。また、オシロスコープ30AのプローブP3、P4は、それぞれ、2本のバス50Dのうちの1本、8本のバス50Eのうちの1本に接続されている。
読み書き制御部210は、デバイス200の上位装置からメモリ20Aに対するデータの書き込み、又は、データの読み出しの要求がなされると、ONFi制御部270に対して、データの書き込み、又は、データの読み出しの要求を伝送する。また、読み書き制御部210は、メモリ20Aから読み出されたデータを含む応答信号を上位装置に伝送する。
なお、データの書き込みの要求には、メモリ20Aに書き込まれるデータ自体が含まれている。
ONFi制御部270は、読み書き制御部210からデータの書き込み、又は、データの読み出しの要求がなされると、データの書き込み、又は、データの読み出しの要求をONFiのプロトコルにおけるコマンドに変換し、チップイネーブル信号(CE)、コマンド信号(ALE信号、CLE信号、及びRE信号)を出力する。また、ONFi制御部270は、クロック(Clock)を出力する。
また、ONFi制御部270は、読み書き制御部210からデータの書き込みの要求がなされたときには、データの書き込みの要求に含まれるデータをONFiのプロトコルに適合する8ビットのデータDQ#0-7に変換する。
また、ONFi制御部270は、書き込みを行うデータDQ#0-7を出力する際に、ストローブ信号DQSを出力する。
ONFi制御部270は、チップイネーブル信号(CE)を入出力バッファ280に入力する。また、ONFi制御部270は、コマンド信号(ALE信号、CLE信号、及びRE信号)を信号選択部250とトリガ生成部220とに入力する。
また、ONFi制御部270は、入出力バッファ280との間でストローブ信号DQSとデータDQ#0-7を伝送する。また、データDQ#0-7は、トリガ生成部220にも伝送される。
なお、読み書き制御部210とONFi制御部270は、制御部の一例である。
また、ONFi制御部270は、読み書き制御部210からデータの読み出しの要求がなされると、入出力バッファ280を介して、メモリ20Aからデータを読み出す。メモリ20Aから読み出されたデータは、トリガ生成部220にも伝送される。
読み書き制御部210が出力するコマンド信号(ALE信号、CLE信号、及びRE信号)は、通常動作時は、信号選択部250を介して基板50のバス50Cに出力される。
読み書き制御部210は、通常動作時は、基板50のバス50Cを介して、コマンド信号(ALE信号、CLE信号、及びRE信号)をメモリ20Aに入力し、メモリ20Aに対するデータの書き込み、又は、データの読み出しを行う。デバイス200とメモリ20Aとの間では、ストローブ信号DQSとデータDQ#0-7は、それぞれ、基板50のバス50D、50Eを介して伝送される。
ここで、通常動作時とは、デバイス200がデータ処理等の通常の動作を行うときをいう。より具体的には、通常動作時とは、デバイス200が動作する状態のうち、波形観測用の動作を行う観測動作時以外の動作時をいう。観測動作時とは、オシロスコープ30Aが観測するための信号をデバイス200が出力する動作時をいう。
また、ONFi制御部270が出力するコマンド信号(ALE信号、CLE信号、及びRE信号)およびデータ信号(DQ#0-7)は、通常動作時及び観測動作時に、トリガ生成部220に入力される。
ここで、チップイネーブル信号(CE)とコマンド信号(ALE信号、CLE信号、RE信号)とは、ONFiの仕様によって定義される信号である。
また、チップイネーブル信号(CE: Chip Enable)は、バス50Cの有効又は無効を表す信号である。CE信号がHレベルであるときは、バス50Cが有効であるため、デバイス200はメモリ20Aにアクセスすることができる。一方、CE信号がLレベルであるときは、バス50Cが無効であるため、デバイス200はメモリ20Aにアクセスすることができない。
なお、CE信号は、入出力バッファ280で反転されてCE_n信号として出力される。CE_n信号は、CE信号の信号レベルを反転した信号である。
コマンド信号のうちのALE信号は、アドレスラッチイネーブル(Address Latch Enable)信号であり、データDQ#0-7をアドレスデータとして取り扱うようにする信号である。ALE信号がHレベルのときは、データDQ#0-7がアドレスデータとして取り扱われる。
コマンド信号のうちのCLE信号は、コマンドラッチイネーブル(Command Latch Enable)信号であり、データDQ#0-7をコマンドとして取り扱うようにする信号である。CLE信号がHレベルのときは、データDQ#0-7がコマンドとして取り扱われ。
なお、ALE信号及びCLE信号がともにLレベルのときは、データDQ#0-7がデータとして取り扱われる。
コマンド信号のうちのRE信号は、リードイネーブル(Read Enable)信号であり、データの読み出し動作のタイミング信号として用いられる。RE信号は、デバイス200がメモリ20Aからデータを読み出すときにHレベル/Lレベルを交互に繰り返すトグルパターンにされ、デバイス200がメモリ20Aにデータを書き込むときにLレベルにされる。
また、クロックCLKは、電子装置400Bのシステムクロックである。
トリガ生成部220は、制御レジスタ260から入力される生成条件及びトリガパターン条件と、読み書き制御部210が出力するコマンド信号及びデータとに基づき、トリガ信号(Trigger)を生成する。トリガ生成部220は、トリガ信号生成部の一例である。
トリガ生成部220は、読み書き制御部210が出力するコマンド信号及びデータが、制御レジスタ260から入力される生成条件を満たしたと判定したときに、トリガ信号を生成する。
トリガ信号は、オシロスコープ30Aを用いてデバイス200の出力信号の波形を観測する際に、オシロスコープ30Aに観測用の動作を開始させるためのトリガになる信号である。トリガ生成部220が生成するトリガ信号は、遅延制御部230に入力され、遅延時間を与える遅延処理が行われる。
詳細は後述するが、トリガ信号は、観測動作時に、遅延制御部230と信号選択部250を経て、コマンド信号の代わりに、デバイス200の端子201Cから基板50のバス50Cに出力される。
遅延制御部230は、トリガ生成部220から入力されるトリガ信号に、制御レジスタ260から入力される遅延条件に基づく遅延時間を与えて信号選択部250に出力する。また、遅延制御部230は、遅延したトリガ信号を出力する際に、遅延したトリガ信号を出力することを表す通知信号を出力先制御部140に出力する。
実施の形態2では、遅延制御部230は、トリガ生成部220から入力されるトリガ信号に、一例として、システムクロックの10サイクル分の遅延時間を与えて出力する。このような遅延制御部230は、例えば、システムクロックで動作し、直列に接続される10個のFF(Flip Flop)を有することにより、システムクロックの10サイクル分の遅延時間を与えるようにしてもよい。
また、遅延制御部230は、遅延制御部230の入力端子と出力端子との間に直列に接続される複数のインバータを有し、いずれかのインバータの出力を出力端子に向けて折り返す折返し点を切り替えることにより、遅延時間を可変的に選択できる回路であってもよい。このような遅延制御部230で、システムクロックの10サイクル分の遅延時間を与えるようにしてもよい。
出力先制御部140は、観測動作時に遅延制御部230から通知信号が入力されると、制御レジスタ260から入力される出力条件に基づいて選択信号を生成し、信号選択部250に入力する。
選択信号は、読み書き制御部210から入力されるコマンド信号の代わりに、信号選択部250にトリガ信号を選択させるための信号である。
信号選択部250は、マルチプレクサ251を含む。マルチプレクサ251の一方の入力端子には、ONFi制御部270から入力されるコマンド信号が入力される。また、マルチプレクサ251の他方の入力端子には、遅延制御部230によって遅延されたトリガ信号が入力される。
マルチプレクサ251の選択信号入力端子には、出力先制御部140から選択信号が入力される。マルチプレクサ251は、選択信号に従って、ONFi制御部270から入力されるコマンド信号と、遅延制御部230で遅延されたトリガ信号とのいずれかを選択して出力する。
なお、信号選択部250は、実際には3つあり、それぞれ、コマンド信号のALE信号、CLE信号、及びRE信号が入力される。
また、出力先制御部140及び信号選択部250は、選択部の一例である。出力先制御部140は、選択部のうちの選択制御部の一例であり、信号選択部250は、選択部のうちの選択回路の一例である。
制御レジスタ260は、外部のコンピュータに接続されるインターフェイスを有し、トリガ信号の生成条件及びトリガパターン条件、遅延条件、及び出力条件を保持する。制御レジスタ260は、例えば、揮発性のメモリを含む。
生成条件、トリガパターン条件、遅延条件、及び出力条件は、デバイス200の電源を立ち上げる際に、インターフェイスを通じて利用者によって設定される。
生成条件は、トリガ信号を生成するときに用いられる条件である。実施の形態2のデバイス200は、コマンド信号が出力されていないときに、コマンド信号の代わりにトリガ信号を生成し、端子201Cから出力する。
生成条件は、コマンド信号等のパターンに基づいて、トリガ信号の生成を開始する条件を表す。この生成条件については、図8及び図9を用いて後述する。
トリガパターン条件は、トリガ信号の信号パターンを表す条件である。このトリガパターン条件については、図8及び図9を用いて後述する。
遅延条件は、トリガ生成部220によって生成されたトリガ信号に与える遅延時間を表す条件である。実施の形態2のデバイス200は、コマンド信号が出力されていないときに、コマンド信号の代わりにトリガ信号を端子201Cから出力する。
このため、遅延条件は、コマンド信号が出力されていないときまで、トリガ生成部220によって生成されたトリガ信号を遅延させる遅延時間を表す。
出力条件は、遅延制御部230で遅延されたトリガ信号をコマンド信号(ALE信号、CLE信号、RE信号)の代わりに出力する出力先を表す条件である。コマンド信号は、ALE信号、CLE信号、RE信号の3つの信号を含むため、出力条件は、3つの信号のうちのどの信号の代わりにトリガ信号を出力するかを表す。
すなわち、出力条件は、ALE信号、CLE信号、RE信号に対応して実際には3つある信号選択部250のうちのどの信号選択部250の出力を切り替えるかを表す。
なお、ここでは、制御レジスタ260が生成条件、トリガパターン条件、遅延条件、及び出力条件を保持する形態について説明するが、トリガパターン条件は、生成条件に含まれていてもよい。また、遅延条件は、出力条件に含まれていてもよい。この場合は、制御レジスタ260が、トリガパターン条件を含む生成条件と、遅延条件を含む出力条件との2つの条件を保持することになる。
制御レジスタ260への生成条件、遅延条件、及び出力条件は、例えば、デバイス200の電源を投入してデバイス200を立ち上げているときに、BIOS(Basic Input Output System)又はデバッグ用のOS(Operating System)を介して、ストレージ540(図3参照)が動作を開始する前に、電子装置400Bの利用者が書き込めばよい。
入出力バッファ280は、ONFi制御部270からクロックとチップイネーブル信号が入力されるとともに、信号選択部250から出力されるコマンド信号又はトリガ信号が入力される。また、入出力バッファ280は、ONFi制御部270とメモリ20Aとの間でデータの受け渡しを行う。
入出力バッファ280は、クロックとチップイネーブル信号、コマンド信号、トリガ信号、及びデータの増幅及び波形整形等を行って出力する。
端子201Aは、バス50Aに接続され、入出力バッファ280から入力されるクロックをバス50Aに出力する。
端子201Bは、バス50Bに接続され、入出力バッファ280から入力される反転されたチップイネーブル信号をバス50Bに出力する。
端子201Cは、バス50Cに接続され、入出力バッファ280から入力されるコマンド信号又はトリガ信号をバス50Cに出力する。
端子201Dは、バス50Dに接続され、入出力バッファ280とバス50Dとの間でストローブ信号DQSを受け渡す。
端子201Eは、バス50Eに接続され、入出力バッファ280とバス50Eとの間でデータDQ#0-7を受け渡す。
次に、図7を用いて、トリガ生成部220の詳細について説明する。
図7は、トリガ生成部220を示す図である。
トリガ生成部220は、端子220A、220B、220C、220D、220E、220F、条件比較部221、パルス生成数カウンタ222、及びパルス発生器223を含む。
端子220Aは、ONFi制御部270に接続され、コマンド信号(ALE信号、CLE信号、RE信号)が入力される。端子220Aは、コマンド信号を条件比較部221に入力する。ここでは、コマンド信号がALE信号、CLE信号、RE信号を含むため、端子220Aは、実際には3つある。
端子220Bは、ONFi制御部270に接続され、データDQ#0-7が入力される。端子220Bは、データDQ#0-7を条件比較部221に入力する。ここでは、8つのデータDQ#0-7を取り扱うため、端子220Bは、実際には8つある。
端子220Cは、制御レジスタ260に接続され、生成条件を表す信号が入力される。端子220Cは、生成条件を表す信号を条件比較部221に入力する。
端子220Dは、制御レジスタ260に接続され、トリガパターン条件のうちのパルス数、及び、パルスの間隔を表すデータが入力される。端子220Dは、トリガパターン条件のうちのパルス数、及び、パルスの間隔を表すデータをパルス生成数カウンタ222に入力する。
端子220Eは、制御レジスタ260に接続され、トリガパターン条件のうちのパルス幅とパルスの信号レベルを表すデータが入力される。端子220Eは、トリガパターン条件のうちのパルス幅とパルスの信号レベルを表すデータをパルス発生器223に入力する。
端子220Fは、パルス発生器223の出力端子に接続され、パルス発生器223が生成するトリガ信号(Trigger)を遅延制御部230(図6参照)に入力する。
条件比較部221は、端子220A及び220Bを介してONFi制御部270から入力されるコマンド信号のうちのALE信号及びCLE信号とデータDQ#0-7とを、端子220Cを介して制御レジスタ260から入力される生成条件を表す信号と比較する。そして、条件比較部221は、コマンド信号のうちのALE信号及びCLE信号とデータDQ#0-7とが生成条件を満たしたかどうかを判定する。
条件比較部221は、コマンド信号のうちのALE信号及びCLE信号とデータDQ#0-7とが生成条件を満たしたと判定すると、条件が成立したことを表す成立信号をパルス生成数カウンタ222に送信する。Hレベルの成立信号は、条件が成立したことを表し、Lレベルの成立信号は、条件が成立していないことを表す。
このような条件比較部221は、ALE信号、CLE信号、及びデータDQ#0-7の各々と、生成条件を表す信号とを比較する複数のコンパレータによって実現することができる。
パルス生成数カウンタ222は、条件比較部221からHレベルの成立信号が入力されると、トリガパターン条件のうちのパルス数、及び、パルスの間隔を表すデータに基づき、指示されたパルス数と等しい数の生成指示信号を、指示されたパルス間隔と等しい時間間隔を空けて、パルス発生器223に出力する。
パルス発生器223は、パルス生成数カウンタ222から生成指示信号が入力されると、トリガパターン条件のうちのパルス幅とパルスの信号レベルを表すデータに基づき、指定されたパルス幅、信号レベルを持つパルスであるトリガ信号を生成する。パルス発生器223は、生成したトリガ信号を端子220Eに出力する。端子220Eは、遅延制御部230(図6参照)に接続されているので、遅延制御部230にトリガ信号が入力される。
次に、図8を用いて、制御レジスタ260に設定される生成条件、出力条件、トリガパターン条件、及び遅延条件について説明する。
図8は、制御レジスタ260に格納される生成条件、出力条件、トリガパターン条件、及び遅延条件を表すテーブルデータを示す図である。
図8に示すように、制御レジスタ260には、生成条件、出力条件、トリガパターン条件、及び遅延条件を表すデータがテーブル形式のデータとして格納される。
生成条件は、コマンドとアドレスを含んでおり、コマンドが書き込み(WRITE(PROGRAM))コマンドで、アドレスが0xFFXXである場合に、生成条件を満たすことになる。すなわち、アドレス0xFFXXに対して書き込み(WRITE)コマンドが発行されたときに、生成条件が成立することになる。
ここで、書き込み(WRITE)コマンドは、LレベルのALE信号と、HレベルのCLE信号と、値が0x80であるDQ#0-7信号によって表される。なお、ここでは用いないが、読み込み(READ)コマンドは、LレベルのALE信号と、HレベルのCLE信号と、値が0x00であるDQ#0-7信号によって表される。
出力条件は、遅延制御部230で遅延されたトリガ信号をコマンド信号のうちのALE信号、CLE信号、RE信号のどの信号の代わりに出力するかを表す条件である。
出力条件は、ALE信号、CLE信号、及びRE信号を含み、図8では、ALE信号がオン、CLE信号がオン、かつ、RE信号がオフである。すなわち、観測動作時には、コマンド信号のうち、ALE信号とCLE信号の代わりにトリガ信号出力し、RE信号は、観測動作時には、出力しないことを表す。
換言すれば、ALE信号がオン、CLE信号がオン、かつ、RE信号がオフであることを表す出力条件により、ALE信号とCLE信号に対応する信号選択部250の出力をトリガ信号に切り替える選択信号が、出力先制御部140から出力される。
なお、RE信号を観測動作時に出力しないのは、この例では観測対象としてオシロスコープに接続しておらず、トリガとして使用されないためである。
トリガパターン条件は、トリガ信号のパルス幅、信号レベル、パルス数、及びパルス間隔を含む。パルス幅は、トリガ信号のパルスの幅である。信号レベルは、トリガ信号の信号レベル(H又はL)を表す。パルス数は、トリガ信号のパルスの数を表す。換言すれば、パルス数は、トリガ信号の繰り返し回数であり、トリガ信号の周期数を表す。パルス間隔は、トリガ信号のパルスが複数ある場合におけるパルス同士の間隔を表す。
図8に示すトリガパターン条件は、パルス幅が1サイクル、信号レベルがH(High)レベル、パルス数が2、パルス間隔が1サイクルであるため、このパルス幅、信号レベル、パルス数、及びパルス間隔によって定義されるトリガ信号がALE信号とCLE信号の代わりに生成されることになる。
なお、ONFiのプロトコル(ONFiの規格)では、ALE信号とCLE信号が同時にHレベルになるコマンドは定義されていない。
実施の形態2では、このように、ONFiのプロトコルで定義されていないコマンドをトリガ信号として利用する。
遅延条件は、生成条件が成立してトリガ信号が生成されてから、デバイス200からトリガ信号を出力するまでに、トリガ信号に与える遅延時間を表す。なお、トリガ信号が生成されるのは、生成条件が成立した直後であり、トリガ信号の1サイクルの期間に比べて無視できるほど短いこととする。
次に、図9を用いて、実施の形態2のデバイス200の観測動作時における動作について説明する。
図9は、実施の形態2のデバイス200から出力される信号の波形を示すタイミングチャートである。
図9には、端子201A、201B、201C、201Eからバス50A、50B、50C、50Eに出力される信号を示す。
デバイス200は、通常動作時には、端子201A、201B、201C、201Eからバス50A、50B、50C、50Eに、それぞれ、クロックCLK、チップイネーブル信号(CE)、コマンド信号のうちのALE信号とCLE信号、データDQ#0-7を出力する。
このため、図9には、通常動作時にバス50A、50B、50C、50Eに出力される信号の名称を併記する。
これらのうち、コマンド信号のうちのALE信号とCLE信号と、データDQ#0-7とは、トリガ生成部220が生成条件が成立したかどうかの判定に用いる信号である。
また、図9には、3本のバス50C(図6参照)のうち、ALE信号とCLE信号を伝送する2本のバス50Cの状態(busy)を示す。状態(busy)がHレベルであることは、2本のバス50CによってALE信号又はCLE信号の少なくとも一方が伝送されていることを表す。状態(busy)がLレベルであることは、2本のバス50CによってALE信号及びCLE信号のいずれも伝送されていないことを表す。
また、図9のクロックCLKの上には、デバイス200の動作状態(WRITEコマンド、NOP(NO Operation)、トリガ出力、WRITEデータ)を表す。WRITEコマンドは書き込みコマンドを出力していることを表す。NOPは動作を行っていないことを表す。トリガ出力はトリガ信号を出力していることを表す。WRITEデータはメモリ20Aにデータを書き込んでいることを表す。
また、図9に示すように、時刻t11において、ALE信号はLレベルであり、CE信号とCLE信号はHレベルに立ち上がる。ONFiのプロトコルでは、LレベルのALE信号と、HレベルのCLE信号との組み合わせはコマンドを意味するため、ALE信号がLレベルでCLE信号がHレベルである期間は、データDQ#0-7はコマンド(CMD)として取り扱われる。
また、時刻t11において、コマンドの伝送を開始することにより、状態(busy)はHレベルになる。
このように書き込み(WRITE)コマンドが発行されることにより、時刻t11で、トリガ信号の生成条件が成立する。
ONFiのプロトコルでは、書き込み(WRITE)コマンドが発行は、10サイクル以内に完了するようになっている。
時刻t11の後は、クロックCLKの1サイクル毎に書き込み(WRITE)コマンドが発行されるアドレスがaddr1, addr2, addr3, addr4,addr5と5サイクルかけて指定される。そして、書き込み(WRITE)コマンドの発行は、生成条件が成立した時刻t11から6サイクルで完了し、7サイクル目に入る時刻t12からは、デバイス200の動作状態は、NOPになる。これにより、クロックCLKも停止する。また、時刻t12からクロックの1周期分の期間が経過したときに状態(busy)はLレベルになる。
また、ONFiのプロトコルでは、書き込み(WRITE)コマンドの発行が終了してから、データの書き込みが行われるまでは、所定の期間は、動作が行われないことになっている。
そして、時刻t11で、トリガ信号の生成条件が成立してからクロックCLKの10サイクルが経過する時刻t13において、ALE信号とCLE信号を伝送する2本のバス50Cに、トリガ信号が出力される。この10サイクルは、遅延条件(図8参照)によって設定された遅延時間である。
時刻t13からクロックCLKの3サイクルに相当する時間が経過する時刻t14までに出力されるトリガ信号は、2つの端子202C(図6参照)から2本のバス50Cに出力される。
トリガ信号のパターンは、トリガパターン条件(図8参照)によって定義されている通り、パルス幅はクロックCLKの1サイクル分であり、パルスの信号レベルはHレベルであり、パルス数は2つであり、パルス間隔はクロックCLKの1サイクル分である。
すなわち、実施の形態2のトリガ信号は、図9の時刻t13から時刻t14までの期間に示すように、通常動作時にALE信号とCLE信号を伝送する2本のバス50Cにそれぞれ出力されるパルス信号であって、クロックCLKの1サイクル分のパルス幅とパルス間隔を有するHレベルの2つのパルスによって構築される。
上述のように、ONFiのプロトコルでは、ALE信号とCLE信号が同時にHレベルになるコマンドは定義されていないため、このようなトリガ信号を通常動作時にALE信号とCLE信号を伝送する2本のバス50Cにそれぞれ出力しても、メモリ20Aに誤動作が生じることはない。
そして、書き込み(WRITE)コマンドの発行が終了してから、データの書き込みが行われるまでの所定の期間が終了する時刻t15以降に、データdata1, data2. data3. data4. data5が、アドレスaddr1, addr2, addr3, addr4,addr5で示されたアドレスに書き込まれる。
実施の形態2では、このように、デバイス200で用いるONFiのプロトコルに存在しない信号パターンのトリガ信号を生成し、通常動作時にALE信号とCLE信号を伝送する2本のバス50Cに出力する。
実施の形態2のデバイス200のトリガ生成部220が制御レジスタ260に保持される生成条件に基づいて生成するトリガ信号は、デバイス200で用いるONFiのプロトコルに存在しない信号パターンである。換言すれば、このトリガ信号は、デバイス200で用いるONFiのプロトコルでは無効な信号パターンである。
従って、このようなトリガ信号を通常動作時にALE信号とCLE信号を伝送する2本のバス50Cにそれぞれ出力しても、メモリ20Aに誤動作が生じることはない。
また、デバイス200で用いるONFiのプロトコルでは無効な信号パターンをトリガ信号として用いれば、トリガ信号と等しいパターンの信号は他に存在しないため、オシロスコープ30Aで波形を観測する際に、トリガ信号を正確に見分けることができる。
この結果、図6に示すようにオシロスコープ30AのプローブP1、P2、P3、P4を2本のバス50C、バス50D、50Eに接続した場合に、2本のバス50C、バス50D、50Eを伝送される4種類の信号を観測することができる。
以上、実施の形態2のデバイス200によれば、通常動作時にALE信号とCLE信号を出力する2つの端子201Cから、観測動作時にトリガ信号を出力することができる。トリガ信号は、図9に示す時刻t12から時刻t15の間のように、2本のバス50CにALE信号とCLE信号が伝送されていない空き時間を利用して出力される。
従って、前提技術のデバイス10のように、トリガ信号を出力する専用の端子10Eを設ける必要がない。
このため、実施の形態2によれば、資源の利用効率を改善したデバイス200を提供することができる。
また、この結果、オシロスコープ30AのプローブP1、P2、P3、P4のうちの2つでトリガ信号を検出できるとともに、2本のバス50C、バス50D、50Eを伝送される4種類の信号を観測することができる。
オシロスコープ30Aは、トリガ信号を検出して観測動作を開始することができるため、プローブP1〜P4によって、ALE信号、CLE信号、ストローブ信号DQS、データDQ#0-7(DQ#0-7のうちの1つ)の信号波形を観測することができる。
これは、前提技術のデバイス10(図1参照)にオシロスコープ30を接続する場合に比べて、トリガ信号を検出するための専用のプローブが不要になるとともに、観測可能な信号の数が1つ多いことを意味する。
従って、実施の形態2によれば、観測効率を改善したデバイス200及び電子装置400Bを提供することができる。
なお、以上では、通常動作時にALE信号とCLE信号を出力する2つの端子201Cから、ALE信号とCLE信号の代わりに、図9の時刻t13からt14の間に示すトリガ信号を出力する形態について説明した。このトリガ信号は、ONFiのプロトコルで定義されているコマンドには該当せず、ONFiのプロトコルでは無効なコマンドである。
しかしながら、上述したトリガ信号は一例である。CE信号、ALE信号、CLE信号、RE信号等を用いて、ONFiのプロトコルで定義されていない信号であれば、トリガ信号として用いることができる。
また、ここでは、一例として、ONFiのプロトコルを用いて説明を行ったが、ONFi以外の規格においても、同様に、その規格で定義されていないパターンの信号をトリガ信号として用いれば、上述の場合と同様に実施可能である。
なお、ここでは、時刻t12からクロックの1周期分の期間が経過したときに状態(busy)がLレベルになる形態について説明したが、状態(busy)をLレベルに戻すタイミングは、デバイス200の特性等に応じて、より早くしてもよいし、より遅くしてもよい。
ここで、図10を用いて、実施の形態2のデバイス200で出力するトリガ信号を定義するために、デバイス200の利用者が行う手順について簡単に説明する。
図10は、実施の形態2のデバイス200で出力するトリガ信号を定義するために、デバイス200の利用者が行う手順を示す図である。
まず、オシロスコープ30Aで波形を観測したいデバイス200の動作のタイミングと、観測したい信号を明確にする(ステップS1)。
上述の例では、デバイス200の特定アドレスへの書き込み実行時に、ALE信号、CLE信号、ストローブ信号DQS、データDQ#0-7(DQ#0-7のうちの1つ)を観測するように利用者が設定する場合について説明した。このように、オシロスコープ30Aで波形を観測したいデバイス200の動作のタイミングと、観測したい信号を明確にすればよい。
次に、トリガ信号の生成条件を制御レジスタ260に設定する(ステップS2)。
上述の例では、デバイス200の電源を投入してデバイス200を立ち上げているときに、BIOS又はデバッグ用のOSを介して、ストレージ540(図3参照)が動作を開始する前に、電子装置400Bの利用者が生成条件を制御レジスタ260に書き込む形態について説明した。このように、生成条件を制御レジスタ260に設定すればよい。
次に、トリガ信号を出力する信号を選択し、出力条件として制御レジスタ260に設定する(ステップS3)。
上述の例では、コマンド信号のうちのALE信号とCLE信号を選択し、RE信号は選択しない内容の出力条件(図8参照)を設定する形態について説明した。このように、出力条件を設定すればよい。
次に、伝送プロトコルに存在しない信号パターンを探し、トリガパターン条件として定義する(ステップS4)。
上述の例では、ONFiのプロトコルにおいて、コマンド信号のうちのALE信号とCLE信号がともにHレベルになるコマンドが存在しないことに着目し、トリガパターン条件として定義した。このように、伝送プロトコルに存在しない信号パターンをトリガパターン条件として定義すればよい。
次に、ステップS4で定義したトリガパターン条件を制御レジスタ260に設定する(ステップS5)。
上述の例では、ONFiのプロトコルにおいて、コマンド信号のうちのALE信号とCLE信号がともにHレベルになるトリガパターン条件(図8参照)を制御レジスタ260に設定した。このように、トリガパターン条件を制御レジスタ260に設定すればよい。
次に、伝送プロトコルで、ステップS4で定義したトリガパターン条件に含まれる信号を伝送するバスの空き時間を探し、必要な遅延時間を計算する(ステップS6)。
上述の例では、書き込み(WRITE)コマンドが、10サイクル以内に終了し、その後に書き込み動作が開始するまでに所定期間の空き時間があることに着目し、遅延時間を10サイクルに設定した。このように、必要な遅延時間を計算すればよい。
最後に、ステップS6で計算した遅延時間を遅延条件として制御レジスタ260に設定する(ステップS7)。
これは、上述の例において、図8に示した通りである。
以上のように、生成条件、出力条件、トリガパターン条件、及び遅延条件を決定し、制御レジスタ260に設定すればよい。
<実施の形態3>
図11は、実施の形態3のデバイス300を含む電子装置400Cを示す図である。実施の形態3のデバイス300は、実施の形態2のデバイス200に2つのメモリ20A0、20A1を接続したものである。メモリ20A0、20A1は、実施の形態2のメモリ20Aと同様のNANDフラッシュメモリである。
2つのメモリ20A0、20A1を接続することに伴い、実施の形態3のデバイス300は、ONFi制御部370、入出力バッファ380、及びログレジスタ390を含む点が、実施の形態2のデバイス200(図6参照)と異なる。
以下では、実施の形態2のデバイス200と同様の構成要素には同一符号を付し、その説明を省略する。
伝送プロトコル又はコマンドの発行頻度によっては、バス50Cの空き時間を確保できない場合があり得る。例えば、実施の形態2と同様の3本のバス50Cの各々に、2つのメモリ20A0、20A1を接続し、並列的にアクセスする場合は、実施の形態2のデバイス200に比べてコマンド発行数が増加するため、バス50Cの空き時間が殆どない状態が一時的に発生する可能性がある。
この傾向は、メモリ20A0、20A1に加えて、さらにメモリを増設した場合には、より顕著になる可能性がある。メモリの並列数に比例してコマンド発行数が増加するためである。
実施の形態3は、このようにバス50Cの空き時間を確保しにくい場合に、バス50Cの空き状況を表すログをログレジスタ390に記録し、バス50Cの空き状況を把握できるようにするものである。
電子装置400Cは、デバイス300、メモリ20A0、20A1、及び基板50を含む。また、図11には、電子装置400Cに波形観測用のオシロスコープ30Aを接続している状態を示す。
デバイス300は、サーバ500(図3参照)の一部である。また、デバイス300、メモリ20A0、20A1は、例えば、半導体製造技術によって製造される。実施の形態3では、デバイス300が制御処理を行う形態について説明するが、デバイス300は、制御処理を行わない半導体回路装置であってもよい。これは、実施の形態1、2のデバイス100、200と同様である。
また、メモリ20A0、20A1は、実施の形態2のメモリ20Aと同様のNANDフラッシュメモリである。
基板50は、実施の形態2の基板50と同様の基板であり、実施の形態3では、デバイス300と、メモリ20A0、20A1が実装される。メモリ20A0、20A1は、バス50A,50C〜50Eを共用する。すなわち、バス50A,50C〜50Eに対して、メモリ20A0、20A1は、並列に接続されている。
デバイス300は、読み書き制御部(Read/Write制御)210、トリガ生成部220、遅延制御部230、出力先制御部340、信号選択部250、制御レジスタ260、ONFi制御部370、入出力バッファ380、ログレジスタ390、及び端子201A、201B、201C、201D、201Eを含む。
デバイス300は、メモリ20A0、20A1へのデータの書き込み、及び、メモリ20A0、20A1に書き込まれたデータの読み出しを行う。デバイス300は、半導体回路装置の一例である。
ONFi制御部370からトリガ生成部220には、コマンド信号(ALE信号、CLE信号、及びRE信号)が別々に入力される。デバイス300に含まれるトリガ生成部220の数は1つである。
読み書き制御部210は、デバイス300の上位装置からメモリ20A0、20A1に対するデータの書き込み、又は、データの読み出しの要求がなされると、ONFi制御部370に対して、データの書き込み、又は、データの読み出しの要求を伝送する。
なお、メモリ20A0、20A1に対するデータの書き込みは、別々のタイミングで行われる。これは、メモリ20A0、20A1のデータの読み出す場合も同様である。
ONFi制御部370は、読み書き制御部210からデータの書き込み、又は、データの読み出しの要求がなされると、データの書き込み、又は、データの読み出しの要求をONFiのプロトコルにおけるコマンドに変換し、チップイネーブル信号(CE0/1)、コマンド信号(ALE信号、CLE信号、及びRE信号)を出力する。
ここで、チップイネーブル信号(CE0/1)は、CE0信号とCE1信号の2つのチップイネーブル信号であり、それぞれ、メモリ20A0、20A1に対してデータの読み出し又は書き込みを行う際に、バス50Cの有効又は無効を表す信号である。
CE0信号とCE1信号は、ONFi制御部370から別々に出力され、入出力バッファ380を経て、端子201Bから出力されるため、実施の形態3では、端子201Bは2つあることになる。また、このため、実施の形態3では、基板50のバス50Bは2本あることになる。
CE0信号とCE1信号は、それぞれ、バス50Cの有効又は無効を表す信号である。CE0信号がHレベルであるときは、バス50Cが有効であるため、デバイス300はメモリ20A0にアクセスすることができる。一方、CE0信号がLレベルであるときは、バス50Cが無効であるため、デバイス300はメモリ20A0にアクセスすることができない。
同様に、CE1信号がHレベルであるときは、バス50Cが有効であるため、デバイス300はメモリ20A1にアクセスすることができる。一方、CE1信号がLレベルであるときは、バス50Cが無効であるため、デバイス300はメモリ20A1にアクセスすることができない。
なお、CE0信号とCE1信号は、それぞれ、入出力バッファ380で反転されてCE0_n信号とCE1_n信号として出力される。CE0_n信号とCE1_n信号を略してCE0_/1_nと記す。
また、ONFi制御部370は、busy信号を出力する。busy信号は、2本のバス50Cの状態を示し、busy信号がHレベルであることは、2本のバス50CによってALE信号又はCLE信号の少なくとも一方が伝送されていることを表す。換言すれば、busy信号は、2本のバス50Cに接続される2つの端子201Cの少なくとも一方が出力されていることを表す。busy信号は、使用通知信号の一例である。
busy信号がLレベルであることは、2本のバス50CによってALE信号及びCLE信号のいずれも伝送されていないことを表す。ONFi制御部370が出力するbusy信号は、出力先制御部340に入力される。
また、ONFi制御部370は、クロック(Clock)を出力する。
ONFi制御部370は、チップイネーブル信号(CE0/1)を入出力バッファ380に入力する。また、ONFi制御部370は、コマンド信号(ALE信号、CLE信号、及びRE信号)を信号選択部250とトリガ生成部220とに入力する。
また、ONFi制御部370は、入出力バッファ380との間でストローブ信号DQSとデータDQ#0-7を伝送する。また、データDQ#0-7は、トリガ生成部220にも伝送される。
また、ONFi制御部370は、読み書き制御部210からデータの読み出しの要求がなされると、入出力バッファ380を介して、メモリ20A0、20A1からデータを読み出す。メモリ20A0、20A1から読み出されたデータは、トリガ生成部220にも伝送される。
ONFi制御部370が出力するコマンド信号(ALE信号、CLE信号、及びRE信号)は、通常動作時は、信号選択部250を介して基板50のバス50Cに出力される。
ONFi制御部370は、通常動作時は、基板50のバス50Cを介して、コマンド信号(ALE信号、CLE信号、及びRE信号)をメモリ20A0、20A1に入力し、メモリ20A0、20A1に対するデータの書き込み、又は、データの読み出しを行う。デバイス300とメモリ20A0、20A1との間では、ストローブ信号DQSとデータDQ#0-7は、それぞれ、基板50のバス50D、50Eを介して伝送される。
出力先制御部340は、観測動作時に遅延制御部230から通知信号が入力されると、制御レジスタ260から入力される出力条件に基づいて選択信号を生成し、信号選択部250に入力する。
選択信号は、ONFi制御部370から入力されるコマンド信号の代わりに、信号選択部250にトリガ信号を選択させるための信号である。
また、出力先制御部340には、ONFi制御部370が出力するbusy信号が入力される。
出力先制御部340は、busy信号がHレベルのときは、選択信号を出力せずに、トリガ信号を放棄させる。これは、例えば、生成条件が成立した後に、システムクロックの10サイクル分の遅延時間が与えられたトリガ信号が遅延制御部230から信号選択部250に入力された場合に、出力先制御部340は、busy信号がHレベルのときは選択信号を出力しないことを意味する。
このように遅延時間が与えられたトリガ信号が遅延制御部230から信号選択部250に入力されている場合でも、出力先制御部340が選択信号を信号選択部250に入力しないことにより、遅延制御部230から信号選択部250に入力されるトリガ信号は、放棄されることになる。
出力先制御部340は、遅延制御部230から通知信号を受信して選択信号を出力するときに、busy信号がHレベルであって選択信号の出力を取りやめた場合は、選択信号の出力を取りやめたタイミングを表すログ情報をログレジスタ390に出力する。ログレジスタ390は、出力先制御部340から出力されるログ情報を記録する。
入出力バッファ380は、ONFi制御部370からクロックとチップイネーブル信号(CE0/1)が入力されるとともに、信号選択部250から出力されるコマンド信号又はトリガ信号が入力される。また、入出力バッファ380は、ONFi制御部370とメモリ20A0、20A1との間でデータの受け渡しを行う。
ここで、図12を用いて、実施の形態3のデバイス300におけるログ情報の記録処理の流れについて説明する。
図12は、実施の形態3のデバイス300におけるログ情報の記録処理の流れについて説明する図である。
まず、トリガ生成部220は、制御レジスタ260から入力される生成条件及びトリガパターン条件と、ONFi制御部370が出力するコマンド信号及びデータとに基づき、トリガ信号(Trigger)を生成し、出力する(ステップS11)。
次に、遅延制御部230は、トリガ生成部220から入力されるトリガ信号に、制御レジスタ260から入力される遅延条件に基づく遅延時間を与えて信号選択部250に出力する(ステップS12)。
次に、出力先制御部340は、遅延制御部230から通知信号が入力されると、制御レジスタ260から入力される出力条件に基づいて選択信号を生成し、バス50Cが使用中であるか否かを判定する(ステップS13)。出力先制御部340は、バス50Cが使用中であるかどうかを、busy信号の信号レベルに基づいて判定する。
出力先制御部340は、busy信号がHレベルのとき(S13:YES)は、選択信号を出力せずに、トリガ信号を放棄する(ステップS14)。この結果、信号選択部250はトリガ信号を選択せずに、コマンド信号のうちのALE信号とCLE信号を選択して端子201Cに出力する。
次いで、出力先制御部340は、選択信号の出力を取りやめたタイミングを表すログ情報をログレジスタ390に記録する(ステップS15)。
なお、出力先制御部340は、ステップS13において、busy信号がLレベルでありバス50Cが使用中ではないと判定したとき(S13:NO)は、選択信号を信号選択部250に出力する(ステップS16)。この結果、信号選択部250は、コマンド信号のうちのALE信号とCLE信号の代わりに、トリガ信号を選択して端子201Cに出力する。
以上のように、バス50Cが使用中のときは、ログ情報がログレジスタ390に記録される。
次に、図13を用いて、ログレジスタ390に記録されるログ情報について説明する。
図13は、ログレジスタ390の構成と、ログレジスタ390に記録されるログ情報のデータ構造とを示す図である。ログレジスタ390は、履歴保持部の一例である。
ログレジスタ390は、図13の左側に示すように、書き込みポインタ(Write Pointer)及び読み出しポインタ(Read Pointer)を持つリングバッファである。図13には、一例として、ログ情報を書き込み可能な9つの領域を有するリングバッファを示す。
emptyは、ログ情報が書き込まれていない領域を表す。書き込みポインタ(Write Pointer)は、9つの領域に順番にログ情報を書き込んで行く。図13では、5つのログ#1−5が書き込まれている。読み出しポインタ(Read Pointer)は、順番にログ情報を読み出して行く。読み出しポインタ(Read Pointer)によってログ情報が読み出された領域は、emptyになる。
図13の右側には、ログ#5のログ情報の一例をログレジスタエントリとして示す。ログ情報は、ログ項目とログ内容に分けられ、1番目(No.1)のログ項目は、有効/無効フラグである。2番目(No.2)のログ項目は、タイムスタンプである。3番目(No.3)から9番目(No.9)のログ項目は、バス使用状況である。
図13の右側に示す例では、1番目(No.1)のログ項目である有効/無効フラグが有効である。また、2番目(No.2)のログ項目であるタイムスタンプは、2013年2月21日の13:30:11(13時30分11秒)を示す。また、3番目(No.3)から9番目(No.9)のログ項目であるバス使用状況には、トリガ放棄が発生したタイミングの3cycle前はWRITEコマンドであり、2cycle前と1cycle前はNOPであり、放棄時はERASEコマンドであり、放棄時の1cycle後、2cycle後、3cycle後はERASEコマンドであることが記録されている。
このようなログ情報をデバイス300の利用者が解析することにより、バス50Cの空き時間を見つける際の判断材料にすることができる。すなわち、遅延時間を調整しながら何度かログ情報を入手することにより、デバイス300の利用者は、トリガ信号を放棄せずに済むバス50Cの空き時間を見つけることができる。
次に、図14を用いて、実施の形態3のデバイス300の観測動作時における動作について説明する。
図14は、実施の形態3のデバイス300から出力される信号の波形を示すタイミングチャートである。
図14には、端子201A、201B、201C、201Eからバス50A、50B、50C、50Eに出力される信号を示す。
デバイス300は、通常動作時には、端子201A、201B、201C、201Eからバス50A、50B、50C、50Eに、それぞれ、クロックCLK、チップイネーブル信号(CE0, CE1)、コマンド信号のうちのALE信号とCLE信号、データDQ#0-7を出力する。
このため、図14には、通常動作時にバス50A、50B、50C、50Eに出力される信号の名称を併記する。
これらのうち、コマンド信号のうちのALE信号とCLE信号と、データDQ#0-7とは、トリガ生成部220が生成条件が成立したかどうかの判定に用いる信号である。
また、図14には、busy信号を示す。busy信号がHレベルであることは、2本のバス50CによってALE信号又はCLE信号の少なくとも一方が伝送されていることを表す。busy信号がLレベルであることは、2本のバス50CによってALE信号及びCLE信号のいずれも伝送されていないことを表す。
また、図14のクロックCLKの上には、デバイス300の動作状態(メモリ20A0へのWRITEコマンド、NOP、メモリ20A1へのERASEコマンド、メモリ20A0へのWRITEデータ)を表す。
メモリ20A0へのWRITEコマンドは、メモリ20A0に書き込みコマンドを出力していることを表す。NOPは動作を行っていないことを表す。メモリ20A1へのERASEコマンドはメモリ20A1に消去コマンドを出力していることを表す。メモリ20A0へのWRITEデータはメモリ20A0にデータを書き込んでいることを表す。
また、図14に示すように、時刻t21において、ALE信号とCE1信号はLレベルであり、CE0信号とCLE信号はHレベルに立ち上がる。ONFiのプロトコルでは、LレベルのALE信号と、HレベルのCLE信号との組み合わせはコマンドを意味するため、ALE信号がLレベルでCLE信号がHレベルである期間は、データDQ#0-7はコマンド(CMD)として取り扱われる。
また、時刻t21において、コマンドの伝送を開始することにより、状態(busy)はHレベルになる。
このように書き込み(WRITE)コマンドが発行されることにより、時刻t21で、トリガ信号の生成条件が成立する。
ONFiのプロトコルでは、書き込み(WRITE)コマンドが発行は、10サイクル以内に完了するようになっている。
時刻t21の後は、クロックCLKの1サイクル毎に書き込み(WRITE)コマンドが発行されるアドレスがaddr1, addr2, addr3, addr4,addr5と5サイクルかけて指定される。そして、書き込み(WRITE)コマンドの発行は、生成条件が成立した時刻t21から6サイクルで完了し、7サイクル目に入る時刻t22からは、デバイス300の動作状態は、NOPになる。これにより、クロックCLKも停止する。また、時刻t22からクロックの1周期分の期間が経過したときに状態(busy)はLレベルになる。
時刻t21でトリガ信号の生成条件が成立してからクロックCLKの10サイクルが経過する時刻t23において、CE1信号がHレベルに立ち上がるとともに、CLE信号がHレベルに立ち上がる。これにより、時刻t23でbusy信号はHレベルになる。
時刻t23では、CE1信号がHレベルに立ち上がるとともに、CLE信号がHレベルに立ち上がることにより、メモリ20A1へのERASEコマンドが発行される。
一方、時刻t23は、時刻t21でトリガ信号の生成条件が成立してからクロックCLKの10サイクルが経過する時刻であるため、メモリ20A1へのERASEコマンドが発行されていなければ、ALE信号とCLE信号を伝送する2本のバス50Cにトリガ信号が出力されることになる。
しかし、時刻t23でbusy信号はHレベルになることにより、出力先制御部340は、選択信号の出力を取りやめる。この結果、トリガ信号は放棄され、放棄されたことを表すログ情報(図13参照)がログレジスタ390に記録される。
時刻t23の1サイクル後の時刻t24では、ALE信号がHレベルに立ち上がるとともに、CLE信号がLレベルに立ち下がる。これによりクロックCLKの1サイクル毎に消去(ERASE)コマンドが発行されるアドレスがaddr1, addr2, addr3と3サイクルかけて指定される。
そして、時刻t25において、ALE信号がLレベルに立ち下がるとともに、CLE信号がHレベルに立ち上がることにより、消去(ERASE)コマンドの終端であることを示す消去(ERASE)第2コマンドが発行され、時刻t25の1サイクル後の時刻t26に消去(ERASE)コマンドの発行が終了する。これにより、時刻t26からクロックの1周期分の期間が経過したときにbusy信号はLレベルになる。
そして、メモリ20A0への書き込み(WRITE)コマンドの発行が終了してから、データの書き込みが行われるまでの所定の期間が終了する時刻t27に、データdata1, data2. data3. data4. data5が、addr1, addr2, addr3, addr4,addr5で示されたアドレスに書き込まれる。
実施の形態3では、トリガ信号を発行するタイミングで、トリガ信号を出力するバス50Cがbusy状態である場合は、トリガ信号の発行を取りやめる。
これは、バス50Cに伝送されているコマンドと、トリガ信号がかち合うことを避けるためである。図14に示す動作例では、トリガ信号が発行される予定の時刻t23に消去(ERASE)コマンドが発行されたため、デバイス300は、トリガ信号を放棄した。
そして、デバイス300は、トリガ信号を放棄した際のログ情報をログレジスタ390に記録した。
従って、ログレジスタ390に記録されたログ情報をデバイス300の利用者が解析することにより、バス50Cの空き時間を見つける際の判断材料にすることができる。すなわち、遅延時間を調整しながら何度かログ情報を入手することにより、デバイス300の利用者は、トリガ信号を放棄せずに済むバス50Cの空き時間を見つけることができる。
このため、実施の形態3のデバイス300は、利用者にバス50Cの空き時間に関する適切な情報を提供することができ、トリガ信号を確実にバス50Cに出力することができるようになる。これは、資源の利用効率がさらに改善されることを意味する。
以上、実施の形態3のデバイス300によれば、実施の形態2のデバイス200と同様に、通常動作時にALE信号とCLE信号を出力する2つの端子201Cから、観測動作時にトリガ信号を出力することができる。
従って、前提技術のデバイス10のように、トリガ信号を出力する専用の端子10Eを設ける必要がない。
このため、実施の形態3によれば、資源の利用効率を改善したデバイス300を提供することができる。
また、この結果、オシロスコープ30AのプローブP1、P2、P3、P4のうちの2つでトリガ信号を検出できるとともに、2本のバス50C、バス50D、50Eを伝送される4種類の信号を観測することができる。
また、実施の形態3のデバイス300は、利用者にバス50Cの空き時間に関する適切な情報を提供することができ、トリガ信号を確実にバス50Cに出力することができるため、資源の利用効率がさらに改善することができる。
以上、本発明の例示的な実施の形態の半導体回路装置、及び、電子装置について説明したが、本発明は、具体的に開示された実施の形態に限定されるものではなく、特許請求の範囲から逸脱することなく、種々の変形や変更が可能である。
以上の実施の形態に関し、さらに以下の付記を開示する。
(付記1)
半導体回路装置であって、
制御信号を出力する制御部と、
前記制御部から出力される前記制御信号を前記半導体回路装置の外部に出力する出力部と、
前記出力部から出力するトリガ信号の生成条件及び出力条件を保持する条件保持部と、
前記制御部から出力される前記制御信号が前記生成条件を満たすと、前記トリガ信号を生成するトリガ信号生成部と、
前記トリガ信号生成部で生成される前記トリガ信号に、前記出力条件に基づく遅延を与える遅延制御部と、
前記制御部と前記出力部との間に設けられ、前記出力条件に基づき、前記制御部から出力される前記制御信号の代わりに、前記遅延制御部で遅延された前記トリガ信号を選択して前記出力部に出力する選択部と
を含む、半導体回路装置。
(付記2)
前記選択部は、
前記制御部と前記出力部との間に設けられ、前記制御部から出力される前記制御信号と、前記遅延制御部で遅延された前記トリガ信号とが入力され、前記制御信号又は前記遅延されたトリガ信号を出力する選択回路と、
前記出力条件に基づき、前記選択回路に前記制御信号又は前記遅延されたトリガ信号を選択させる選択信号を前記選択回路に入力する選択制御部と
を有する、付記1記載の半導体回路装置。
(付記3)
前記選択部は、さらに、前記選択制御部が前記選択回路に入力する前記選択信号の出力履歴を保持する履歴保持部を有する、付記2記載の半導体回路装置。
(付記4)
前記選択制御部は、前記遅延された前記トリガ信号が前記遅延制御部から出力されたときに、前記出力部が使用中であることを表す使用通知信号を前記制御部から受信すると、前記制御信号を選択する選択信号を前記選択回路に入力する、付記3記載の半導体回路装置。
(付記5)
前記遅延制御部は、前記遅延したトリガ信号を前記選択部に出力するときに、前記遅延したトリガ信号を出力することを表す通知信号を前記選択制御部に送信し、
前記選択制御部は、前記通知信号を前記遅延制御部から受信したときに、前記出力部が使用中であることを表す使用通知信号を前記制御部から受信すると、前記制御信号を選択する選択信号を前記選択回路に入力する、付記4記載の半導体回路装置。
(付記6)
付記1乃至5のいずれか一項記載の半導体回路装置と、
前記半導体回路装置が実装され、前記出力部が接続される配線を有する基板と、
前記基板に実装され、前記配線を介して前記半導体回路装置と接続される他の半導体回路装置と
を含み、
前記選択部によって前記制御部から出力される前記制御信号の代わりに選択される前記遅延された前記トリガ信号は、前記出力部から前記配線に出力される、電子装置。
(付記7)
前記配線にプローブ端子を有する、付記6記載の電子装置。