(57)【要約】【課題】プロセッサ間での処理の順序をより正確に判定する。【解決手段】マルチプロセッサシステム１は、複数のプロセッサ１０と、複数のプロセッサ１０に共通して設けられたタイマ１２と、複数のプロセッサ１０に対応して設けられ、複数のイベントログをそれぞれ格納する複数の記憶領域１１とを含む。複数のイベントログは、タイマ１２の値から得られるタイムスタンプを含む。タイムスタンプに基づいて、複数のプロセッサ１０が行った処理の時間間隔及び順序を参照できる。【選択図】      図４
2013196195.tif 000002
【特許請求の範囲】
【請求項１】
複数のプロセッサと、
前記複数のプロセッサに共通して設けられたタイマと、
前記複数のプロセッサに対応して設けられ、複数のイベントログをそれぞれ格納する複数の記憶領域と、
を具備し、
前記タイマは、時間情報を計測する第１のカウンタと、前記複数のプロセッサが前記タイマにアクセスするごとにカウントアップする第２のカウンタとを含み、
前記複数のイベントログは、前記タイマの値から得られるタイムスタンプを含み、
前記タイムスタンプに基づいて、前記複数のプロセッサが行った処理の時間間隔及び順序を参照できることを特徴とするマルチプロセッサシステム。
【請求項２】
前記タイマは、前記複数のプロセッサが前記タイマにアクセスしたことを検知する検知部をさらに含むことを特徴とする請求項１に記載のマルチプロセッサシステム。
【請求項３】
前記第１のカウンタは、基準クロックをカウントアップすることを特徴とする請求項１又は２に記載のマルチプロセッサシステム。
【請求項４】
複数のプロセッサと、
前記複数のプロセッサに共通して設けられたタイマと、
前記複数のプロセッサに対応して設けられ、複数のイベントログをそれぞれ格納する複数の記憶領域と、
を具備し、
前記複数のイベントログは、前記タイマの値から得られるタイムスタンプを含み、
前記タイムスタンプに基づいて、前記複数のプロセッサが行った処理の時間間隔及び順序を参照できることを特徴とするマルチプロセッサシステム。
【請求項５】
不揮発性メモリと、
前記複数のプロセッサの指示に応じて前記不揮発性メモリを制御するメモリコントローラと、
をさらに具備することを特徴とする請求項１乃至４のいずれかに記載のマルチプロセッサシステム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明の実施形態は、マルチプロセッサシステムに関する。
【背景技術】
【０００２】
近年、データ処理装置の処理性能を飛躍的に向上させることが期待できることから、複数のプロセッサを共有バスを介して接続したマルチプロセッサシステムの開発が進められている。マルチプロセッサシステムは、複数のプロセッサが同時に処理を行うことが可能であることから、システム内の制御が複雑となる。
【０００３】
マルチプロセッサシステムの性能向上のために、開発段階において、プロセッサ間のシステム検証が行われ、また、ソフトウェアのデバッグなどが行われる。このとき、デバッグや性能チューニングをより正確に行うためには、どのプロセッサがどのような順序で処理を行ったかを示す情報が大変有用である。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開２０１１−７０３６５号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
実施形態は、プロセッサ間での処理の順序をより正確に判定することが可能なマルチプロセッサシステムを提供する。
【課題を解決するための手段】
【０００６】
実施形態に係るマルチプロセッサシステムは、複数のプロセッサと、前記複数のプロセッサに共通して設けられたタイマと、前記複数のプロセッサに対応して設けられ、複数のイベントログをそれぞれ格納する複数の記憶領域とを具備する。前記タイマは、時間情報を計測する第１のカウンタと、前記複数のプロセッサが前記タイマにアクセスするごとにカウントアップする第２のカウンタとを含み、前記複数のイベントログは、前記タイマの値から得られるタイムスタンプを含み、前記タイムスタンプに基づいて、前記複数のプロセッサが行った処理の時間間隔及び順序を参照できる。
【図面の簡単な説明】
【０００７】
【図１】第１の実施形態に係るＳＳＤのブロック図。
【図２】１個のＮＡＮＤ型フラッシュメモリのブロック図。
【図３】メモリセルアレイの回路図。
【図４】プロセッサのイベントログを説明する図。
【図５】あるプロセッサの動作を示すフローチャート。
【図６】プロセッサのイベントログの具体例を説明する図。
【図７】第２の実施形態に係るタイマのブロック図。
【図８】アクセスカウンタ及びタイマカウンタの構成例を示す図。
【発明を実施するための形態】
【０００８】
以下、実施形態について図面を参照して説明する。ただし、図面は模式的または概念的なものであり、各図面の寸法および比率などは必ずしも現実のものと同一とは限らない。以下に示す幾つかの実施形態は、本発明の技術思想を具体化するための装置および方法を例示したものであって、構成部品の形状、構造、配置などによって、本発明の技術思想が特定されるものではない。なお、以下の説明において、同一の機能及び構成を有する要素については、同一符号を付し、重複説明は必要な場合にのみ行う。
【０００９】
［第１の実施形態］
本実施形態は、複数のプロセッサを備えたマルチプロセッサシステムを実現するための構成例である。本実施形態では、マルチプロセッサシステムとして、ＮＡＮＤ型フラッシュメモリを備えたメモリシステム、すなわち、ＳＳＤ（Solid State Drive）を例に挙げて説明する。
【００１０】
［１］  マルチプロセッサシステム（ＳＳＤ）の構成
図１は、第１の実施形態に係るＳＳＤ１のブロック図である。ＳＳＤ１は、複数のプロセッサ１０、タイマ１２、インターフェースコントローラ（Ｉ／Ｆコントローラ）１３、共有メモリ１５、ＮＡＮＤコントローラ１６、１個又は複数のＮＡＮＤ型フラッシュメモリ１７、デバッグ用インターフェース回路１８、暗号化／復号化回路４０、及びバス１９を備えている。ＳＳＤ１内の複数の回路は、バス１９を介して互いに接続されている。本実施形態では、３個のプロセッサ１０−１〜１０−３を例示しているが、プロセッサ１０の数は任意に設定可能である。
【００１１】
各プロセッサ１０は、例えばＣＰＵ（Central Processing Unit）から構成される。プロセッサ１０は、ＳＳＤ１内の各種動作を制御する。例えば、プロセッサ１０は、命令（instruction）の解釈及び実行、プログラムの実行、実行結果の状態の保守などを行う。プロセッサ１０は、自身が自由にデータを書き換えできる作業領域としてのＲＡＭ１１を備えている。ＲＡＭ１１は、ＳＲＡＭなどの揮発性ＲＡＭから構成される。ＲＡＭ１１に格納される情報には、対応するプロセッサ１０のイベントログが含まれる。
【００１２】
タイマ１２は、時間を計測する。タイマ１２によって計測された時間は、イベントログに含まれるタイムスタンプなどに使用される。タイマ１２が時間の計測を開始するタイミングは、ＳＳＤ１が起動（例えばパワーオンリセット後）して、通常動作を行う準備が整った後、或いは、ＳＳＤ１が動作中においてプロセッサ１０からリセット信号を受けた場合などである。タイマ１２は、基準クロックを発生する素子、例えば水晶発振器（図示せず）から基準クロックを受け、この基準クロックをカウントアップすることで、時間を計測する。すなわち、タイマ１２は、時間情報をカウント値として格納する。
【００１３】
インターフェースコントローラ１３は、インターフェース（Ｉ／Ｆ）１４によってホストコントローラに接続されている。インターフェースコントローラ１３は、ホストコントローラとのインターフェース処理を実行する。インターフェース１４としては、例えばＳＡＴＡ（Serial Advanced Technology Attachment）が用いられる。
【００１４】
共有メモリ１５は、プロセッサ１０−１〜１０−３に共有される。共有メモリ１５には、例えば、プロセッサ１０−１〜１０−３で共通して使用される情報などが格納される。また、共有メモリ１５は、ＮＡＮＤ型フラッシュメモリ１７に書き込まれる書き込みデータを一時的に格納するライトバッファ、及びＮＡＮＤ型フラッシュメモリ１７から読み出された読み出しデータを一時的に格納するリードバッファとしても使用される。共有メモリ１５は、ＳＲＡＭなどの揮発性ＲＡＭから構成される。
【００１５】
ＮＡＮＤコントローラ１６は、ＮＡＮＤ型フラッシュメモリ１７との間のインターフェース処理を行う。具体的には、ＮＡＮＤコントローラ１６は、ＮＡＮＤ型フラッシュメモリ１７にコマンド及びアドレスを供給し、ＮＡＮＤ型フラッシュメモリ１７との間でデータの送信及び受信を行う。このデータの送信及び受信の際、ＮＡＮＤコントローラ１６は、ＥＣＣ（Error Checking and Correcting）処理を実行する。また、ＮＡＮＤコントローラ１６は、複数のＮＡＮＤ型フラッシュメモリ１７をインタリーブする。
【００１６】
暗号化／復号化回路４０は、ホストコントローラから送信されたデータを暗号化する。よって、ＮＡＮＤ型フラッシュメモリ１７には、暗号化されたデータが格納される。また、暗号化／復号化回路４０は、ＮＡＮＤ型フラッシュメモリ１７から読み出されたデータを復号化する。
【００１７】
デバッグ用インターフェース回路１８は、ＳＳＤ１にデバッグ用機器を接続可能とするために設けられている。デバッグ用インターフェース回路１８は、デバッグ用機器との間のインターフェース処理を行う。このデバッグ用機器によってＳＳＤ１のデバッグが行われる。
【００１８】
次に、ＮＡＮＤ型フラッシュメモリ１７の構成について説明する。図２は、１個のＮＡＮＤ型フラッシュメモリ１７のブロック図である。
【００１９】
メモリセルアレイ２０は、データを電気的に書き換え可能なメモリセルがマトリクス状に配置されて構成されている。メモリセルアレイ２０には、複数のビット線、複数のワード線、及び共通ソース線が配設されている。ビット線とワード線との交差領域には、メモリセルが配置されている。
【００２０】
ロウデコーダの機能を果たすワード線制御回路２３は、複数のワード線に接続され、データの読み出し、書き込み、及び消去時に、ワード線の選択及び駆動を行う。ビット線制御回路２１は、複数のビット線に接続され、データの読み出し、書き込み、及び消去時に、ビット線の電圧を制御する。また、ビット線制御回路２１は、データの読み出し時にビット線のデータを検知し、データの書き込み時に書き込みデータに応じた電圧をビット線に印加する。カラムデコーダ２２は、アドレスに応じて、ビット線を選択するためのカラム選択信号を生成し、このカラム選択信号をビット線制御回路２１に送る。
【００２１】
メモリセルアレイ２０から読み出された読み出しデータは、ビット線制御回路２１、データ入出力バッファ２７を介してデータ入出力端子２６からＮＡＮＤコントローラ１６へ送られる。また、ＮＡＮＤコントローラ１６からデータ入出力端子２６に入力された書き込みデータは、データ入出力バッファ２７を介してビット線制御回路２１に送られる。
【００２２】
メモリセルアレイ２０、ビット線制御回路２１、カラムデコーダ２２、ワード線制御回路２３、及びデータ入出力バッファ２７は、制御回路２４に接続されている。制御回路２４は、ＮＡＮＤコントローラ１６から制御信号入力端子２５に入力される制御信号に基づいて、メモリセルアレイ２０、ビット線制御回路２１、カラムデコーダ２２、データ入出力バッファ２７、及びワード線制御回路２３を制御するための制御信号及び制御電圧を発生させる。
【００２３】
図３は、メモリセルアレイ２０の回路図である。メモリセルアレイ２０は、複数のブロックＢＬＫを備えている。各ブロックＢＬＫは、複数のメモリセルにより構成され、このブロックＢＬＫを単位としてデータが消去される。ブロックＢＬＫは、ｎ個（ｎは自然数）のＮＡＮＤストリングＮＳを備えている。
【００２４】
各ＮＡＮＤストリングＮＳは、ｍ個（ｍは自然数）のメモリセルトランジスタ（メモリセル）ＭＴと、２個の選択トランジスタＳＴ１及びＳＴ２とを備えている。各メモリセルトランジスタＭＴは、制御ゲートと電荷蓄積層とを含む積層ゲートを備え、データを不揮発に記憶する。メモリセルトランジスタＭＴは、電荷蓄積層に蓄えられる電荷の数に応じて閾値電圧が変化し、この閾値電圧の違いに応じてデータを記憶する。
【００２５】
ｍ個のメモリセルトランジスタＭＴは、選択トランジスタＳＴ１及びＳＴ２間に、その電流経路が直列接続されるようにして配置されている。この直列接続の一端側のメモリセルトランジスタの電流経路は、選択トランジスタＳＴ１の電流経路の一端に接続され、他端側のメモリセルトランジスタの電流経路は、選択トランジスタＳＴ２の電流経路の一端に接続されている。
【００２６】
同一のブロックＢＬＫ内にある選択トランジスタＳＴ１のゲートは、選択ゲート線ＳＧＤに共通接続され、同一のブロックＢＬＫ内にある選択トランジスタＳＴ２のゲートは、選択ゲート線ＳＧＳに共通接続されている。同一のブロックＢＬＫ内にある一行分のメモリセルトランジスタＭＴの制御ゲートは、１本のワード線ＷＬに共通接続されている。
【００２７】
メモリセルアレイ２０内でマトリクス状に配置されたＮＡＮＤストリングＮＳのうち、同一行にあるＮＡＮＤストリングＮＳの選択トランジスタＳＴ１の電流経路の他端は、１本のビット線ＢＬに共通接続される。すなわち、ビット線ＢＬは、複数のブロックＢＬＫ間で、ＮＡＮＤストリングＮＳを共通接続する。また、選択トランジスタＳＴ２の電流経路の他端は、ソース線ＳＬに共通接続されている。ソース線ＳＬは、例えば複数のブロックＢＬＫ間で、ＮＡＮＤストリングＮＳを共通接続する。
【００２８】
前述の通り、同一のブロックＢＬＫ内にあるメモリセルトランジスタＭＴのデータは、一括して消去される。これに対してデータの読み出し及び書き込みは、いずれかのブロックＢＬＫ内のいずれかのワード線ＷＬに共通接続された複数のメモリセルトランジスタＭＴにつき、一括して行われる。この単位を「ページ」と呼ぶ。
【００２９】
［２］  ＳＳＤ１の動作
上記のように構成されたＳＳＤ１の動作について説明する。図４は、プロセッサ１０のイベントログを説明する図である。各プロセッサ１０は、何らかの処理を実行した際、この処理内容を自身のイベントログ（ログファイル）に記録する。イベントログは、ＲＡＭ１１に格納される。具体的には、プロセッサ１０は、演算部１０Ａを備えており、この演算部１０Ａは、プロセッサ１０によってある処理が実行された場合に、この処理内容をイベントログに記録する。また、演算部１０Ａは、事象（イベント）の発生順に処理内容をイベントログに記録する。イベントログは、タイムスタンプＴと処理内容ＬＧとを含む。タイムスタンプは、ある処理が実行された時間を示す情報であり、イベントログの属性である。
【００３０】
本実施形態では、ＳＳＤ１は、複数のプロセッサ１０に共通して設けられた１個のタイマ１２を備えている。そして、複数のプロセッサ１０は、イベントログに処理内容を記録する際、１個のタイマ１２を参照して時間情報を取得し、この時間情報をタイムスタンプとして処理内容とともにイベントログに記録する。
【００３１】
このように、複数のプロセッサ１０が共通のタイマ１２を使用するように構成することで、例えばシステムを検証する際に複数のプロセッサ１０に記録されたイベントログを参照することで、異なるプロセッサ間でもイベントログ内に記録されている処理の時間間隔及び順序の把握が可能となる。
【００３２】
図５は、あるプロセッサ１０の動作を示すフローチャートである。あるプロセッサ１０は、自身の役割に応じた任意の処理を実行する（ステップＳ１００）。続いて、プロセッサ１０は、タイマ１２を参照し、タイマ１２の値を取得する（ステップＳ１０１）。なお、プロセッサ１０がタイマ１２を参照するタイミングは、システム内で統一されていればよく、処理を開始する時でもよいし、処理が完了した時でもよい。
【００３３】
続いて、プロセッサ１０は、タイマ１２の値に基づいてタイムスタンプを作成する（ステップＳ１０２）。続いて、プロセッサ１０は、タイムスタンプ及び処理内容を自身のイベントログに記録する（ステップＳ１０３）。このようにして、１つの処理に対してイベントログの記録動作が完了する。
【００３４】
次に、プロセッサ１０−１〜１０−３のより具体的な動作の一例について説明する。図６は、プロセッサ１０のイベントログの具体例を説明する図である。
【００３５】
図６の例は、ＮＡＮＤ型フラッシュメモリ１７に何らかのデータが暗号化された状態で記録されていて、それをホストコントローラからの要求に基づいてＮＡＮＤ型フラッシュメモリ１７から読み出して復号化し、復号化したデータをホストコントローラへ送る動作の例である。Ｔ１〜Ｔ１４がタイムスタンプである。なお、各処理内容は、実際には、プログラムコードのある地点を通過したことを示す識別子（ＩＤ：Identification Data）などでも良い。
【００３６】
プロセッサ（ＰＣ１）１０−１は、ＳＡＴＡコントローラ（ＳＡＴＡ−Ｃ）１３を制御可能なように構成されている。プロセッサ（ＰＣ２）１０−２は、ＮＡＮＤコントローラ（ＮＡＮＤ−Ｃ）１６を制御可能なように構成されている。プロセッサ（ＰＣ３）１０−３は、データの暗号化及び復号化を制御可能なように構成されている。このように、プロセッサ１０−１〜１０−３は、個別に機能が割り当てられている。プロセッサ１０−１〜１０−２はそれぞれ、イベントログ１〜３にタイムスタンプ及び処理内容を記録する。
【００３７】
まず、プロセッサＰＣ１は、ＳＡＴＡ−Ｃから割込みを受け、この処理内容をタイムスタンプＴ１とともにイベントログ１に記録する。続いて、プロセッサＰＣ１は、ＳＡＴＡ−Ｃから要求を受け取り、この処理内容をタイムスタンプＴ２とともにイベントログ１に記録する。続いて、プロセッサＰＣ１は、共有メモリ１５にプロセッサＰＣ２への指示を置き、プロセッサＰＣ２へ割込みを入れ、これらの処理内容をタイムスタンプＴ３とともにイベントログ１に記録する。
【００３８】
続いて、プロセッサＰＣ２は、プロセッサＰＣ１から割込みを受け、この処理内容をタイムスタンプＴ４とともにイベントログ２に記録する。続いて、プロセッサＰＣ２は、共有メモリ１５からプロセッサＰＣ１の指示を読み出し、この処理内容をタイムスタンプＴ５とともにイベントログ２に記録する。続いて、プロセッサＰＣ２は、ＮＡＮＤ−Ｃを操作してＮＡＮＤ型フラッシュメモリ（ＮＡＮＤ）１７から暗号化されたデータを読み出し、この処理内容をタイムスタンプＴ６とともにイベントログ２に記録する。続いて、プロセッサＰＣ２は、共有メモリ１５にプロセッサＰＣ３への指示を置き、プロセッサＰＣ３へ割込みを入れ、これらの処理内容をタイムスタンプＴ７とともにイベントログ２に記録する。
【００３９】
続いて、プロセッサＰＣ３は、プロセッサＰＣ２から割込みを受け、この処理内容をタイムスタンプＴ８とともにイベントログ３に記録する。続いて、プロセッサＰＣ３は、共有メモリ１５からプロセッサＰＣ２の指示を読み出し、この処理内容をタイムスタンプＴ９とともにイベントログ３に記録する。続いて、プロセッサＰＣ３は、暗号化／復号化回路４０を操作して、ＮＡＮＤ型フラッシュメモリ（ＮＡＮＤ）１７から読み出されたデータを復号化し、この処理内容をタイムスタンプＴ１０とともにイベントログ３に記録する。続いて、プロセッサＰＣ３は、復号化したデータを共有メモリ１５に置き、プロセッサＰＣ１へ割込みを入れ、これらの処理内容をタイムスタンプＴ１１とともにイベントログ３に記録する。
【００４０】
続いて、プロセッサＰＣ１は、プロセッサＰＣ３から割込みを受け、この処理内容をタイムスタンプＴ１２とともにイベントログ１に記録する。続いて、プロセッサＰＣ１は、共有メモリ１５からデータを読み出し、この処理内容をタイムスタンプＴ１３とともにイベントログ１に記録する。続いて、プロセッサＰＣ１は、ＳＡＴＡ−Ｃを操作してホストコントローラへデータを送り、この処理内容をタイムスタンプＴ１４とともにイベントログ１に記録する。このようにして、プロセッサＰＣ１〜ＰＣ３により、ＮＡＮＤ型フラッシュメモリ１７から読み出されたデータをホストコントローラへ送信する処理が終了する。このように、イベントログ１〜３に記録されたタイムスタンプＴ１〜Ｔ１４は、その時系列が統一されている。
【００４１】
［３］  効果
以上詳述したように第１の実施形態では、マルチプロセッサシステム（ＳＳＤ）１は、複数のプロセッサ１０と、複数のプロセッサ１０に共通して設けられた１個のタイマとを備えている。各プロセッサ１０は、処理内容を記録するイベントログを有し、イベントログは、タイマ１２の値から得られるタイムスタンプを含んでいる。そして、複数のプロセッサ１０は、処理を実行するごとに共通のタイマ１２の値から得られるタイムスタンプをイベントログに記録するようにしている。
【００４２】
従って第１の実施形態によれば、デバッグや性能チューニングの際に、デバック用機器などからプロセッサ１０−１〜１０−３のイベントログを読み出し、この読み出したイベントログに基づいてタイムスタンプ及び処理内容を確認することで、プロセッサ１０−１〜１０−３のうちどのプロセッサがどのような順序で処理を行ったか、及び処理の時間間隔をより正確に判定することができる。この結果、デバッグや性能チューニングをより正確に実施することができる。
【００４３】
例えば、複数のプロセッサがそれぞれ複数のタイマを所有するような構成の場合、タイムスタンプの系列がプロセッサごとに異なっているので、異なるプロセッサ間での処理の順序の把握が困難となり、処理の時間間隔及び順序を正確に判定することができない。しかし、本実施形態の構成を用いることで、このような不具合を解消することができる。
【００４４】
また、本実施形態のイベントログ記録方式を用いることにより、マルチプロセッサシステムのデバッグや性能チューニングが容易になるので、（１）マルチプロセッサシステムの開発費用の削減、（２）マルチプロセッサシステムの開発期間の短縮、（３）マルチプロセッサシステムの性能の向上、などの効果が得られる。
【００４５】
［第２の実施形態］
第１の実施形態で説明したように複数のプロセッサに対して共通のタイマを配置した場合でも、タイマの分解能よりも短い時間間隔で異なるプロセッサがタイマを読み出してしまうと、処理の前後関係が区別できなくなる恐れがある。そこで、第２の実施形態は、プロセッサがタイマにアクセスするごとにカウントアップするアクセスカウンタを新たに設け、処理が実行された時間情報とプロセッサがタイマにアクセスした順序との両方をイベントログに記録するようにしている。
【００４６】
図７は、第２の実施形態に係るタイマ１２のブロック図である。ＳＳＤ１のうちタイマ１２以外の構成は、図１と同じである。タイマ１２は、アクセス検知部３０、アクセスカウンタ３１Ａ、及びタイマカウンタ３１Ｂを備えている。
【００４７】
アクセス検知部３０は、プロセッサ１０−１〜１０−３からタイマ１２（具体的には、アクセスカウンタ３１Ａ及びタイマカウンタ３１Ｂ）がアクセスされたことを検知し、アクセスごとにアクセスカウンタ３１Ａをカウントアップする。よって、アクセスカウンタ３１Ａは、プロセッサ１０−１〜１０−３がタイマ１２にアクセスした回数をカウント値として格納する。
【００４８】
タイマカウンタ３１Ｂは、例えば水晶発振器（図示せず）から基準クロックを受け、この基準クロックをカウントアップすることで、時間を計測する。すなわち、タイマカウンタ３１Ｂは、時間情報をカウント値として格納する。アクセスカウンタ３１Ａ及びタイマカウンタ３１Ｂは、バス１９に接続されている。
【００４９】
図８は、アクセスカウンタ３１Ａ及びタイマカウンタ３１Ｂの構成例を示す図である。アクセスカウンタ３１Ａ及びタイマカウンタ３１Ｂ用に（ｎ＋１）ビットカウンタ３１を１つ用意し、内部的に、［ｍ：０］ビットカウンタ部（アクセスカウンタ３１Ａ）と、［ｎ：ｍ］ビットカウンタ部（タイマカウンタ３１Ｂ）を持つように構成する。ｎは自然数で、ｎ＞ｍである。なお、カウンタ３１のビット割り当ては任意である。カウンタ３１は、カウンタリード（カウンタアクセス）操作ごとに［ｍ：０］ビットカウンタ部（アクセスカウンタ３１Ａ）がカウントアップし、かつ基準クロックに応じて［ｎ：ｍ］ビットカウンタ部（タイマカウンタ３１Ｂ）がカウントアップするように動作する。すなわち、［ｍ：０］ビットカウンタ部と［ｎ：ｍ］ビットカウンタ部とは個別にカウントアップ動作を行う。
【００５０】
プロセッサ１０は、タイマ１２を参照する際、アクセスカウンタ３１Ａ及びタイマカウンタ３１Ｂの全ビットを読み出す。そして、プロセッサ１０は、アクセスカウンタ３１Ａ及びタイマカウンタ３１Ｂから読み出したカウント値をタイムスタンプとしてイベントログに記録する。
【００５１】
以上詳述したように第２の実施形態では、プロセッサ１０がタイマ１２にアクセスするごとにカウントアップするアクセスカウンタ３１Ａをカウンタ３１内の特定のビットに割り当てるようにしている。このため、イベントログに記録されるタイムスタンプは、処理が実行された時間情報と、プロセッサがタイマにアクセスした順序を示す情報とを含む。従って、タイマの分解能よりも短い時間間隔で複数のプロセッサがタイマにアクセスした場合でも、アクセスカウンタ３１Ａのカウント値を確認することで、処理の順序を正確に把握することができる。また、時間間隔が非常に短い処理が連続した場合であっても、正確に処理の順序を把握することができる。
【００５２】
例えば、アクセスカウンタ３１Ａのみを用いた場合では、処理の順序は把握できるが、処理の時間間隔が判別できない。しかし、本実施形態では、タイマカウンタ３１Ｂ及びアクセスカウンタ３１Ａを併用しているので、処理の時間間隔及び順序を把握することができる。
【００５３】
また、カウンタ３１のカウントサイクルがバス１９のクロックサイクルより遅い場合には、複数のタイムスタンプにタイマカウンタ３１Ｂによる同じカウント値が記録される可能性がある。このような場合でも本実施形態では処理の順序を判別できるため、カウンタ３１のカウントサイクルがバス１９のクロックサイクルより遅い場合に、本実施形態は特に有効である。
【００５４】
上記各実施形態では、マルチプロセッサシステムの一例としてＳＳＤを用いて説明したが、ＳＳＤに限らず、複数のプロセッサを備えた様々な情報処理装置に適用することができる。
【００５５】
本発明のいくつかの実施形態を説明したが、これらの実施形態は、例として提示したものであり、発明の範囲を限定することは意図していない。これら新規な実施形態は、その他の様々な形態で実施されることが可能であり、発明の要旨を逸脱しない範囲で、種々の省略、置き換え、変更を行うことができる。これら実施形態やその変形は、発明の範囲や要旨に含まれるとともに、特許請求の範囲に記載された発明とその均等の範囲に含まれる。
【符号の説明】
【００５６】
１…ＳＳＤ、１０…プロセッサ、１１…ＲＡＭ、１２…タイマ、１３…インターフェースコントローラ、１４…インターフェース、１５…共有メモリ、１６…ＮＡＮＤコントローラ、１７…ＮＡＮＤ型フラッシュメモリ、１８…デバッグ用インターフェース回路、１９…バス、２０…メモリセルアレイ、２１…ビット線制御回路、２２…カラムデコーダ、２３…ワード線制御回路、２４…制御回路、２５…制御信号入力端子、２６…データ入出力端子、２７…データ入出力バッファ、３０…アクセス検知部、３１Ａ…アクセスカウンタ、３１Ｂ…タイマカウンタ、４０…暗号化／復号化回路。
【図１】
2013196195.tif 000003
【図２】
2013196195.tif 000004
【図３】
2013196195.tif 000005
【図４】
2013196195.tif 000006
【図５】
2013196195.tif 000007
【図６】
2013196195.tif 000008
【図７】
2013196195.tif 000009
【図８】
2013196195.tif 000010