JP2013196195A - Multiprocessor system - Google Patents

Multiprocessor system Download PDF

Info

Publication number
JP2013196195A
JP2013196195A JP2012061072A JP2012061072A JP2013196195A JP 2013196195 A JP2013196195 A JP 2013196195A JP 2012061072 A JP2012061072 A JP 2012061072A JP 2012061072 A JP2012061072 A JP 2012061072A JP 2013196195 A JP2013196195 A JP 2013196195A
Authority
JP
Japan
Prior art keywords
processors
timer
processor
counter
processing
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
JP2012061072A
Other languages
Japanese (ja)
Inventor
Yosuke Harada
陽介 原田
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.)
Toshiba Corp
Original Assignee
Toshiba Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Toshiba Corp filed Critical Toshiba Corp
Priority to JP2012061072A priority Critical patent/JP2013196195A/en
Publication of JP2013196195A publication Critical patent/JP2013196195A/en
Pending legal-status Critical Current

Links

Images

Landscapes

  • Debugging And Monitoring (AREA)

Abstract

PROBLEM TO BE SOLVED: To more accurately determine an order of processing among processors.SOLUTION: A multiprocessor system 1 includes: a plurality of processors 10; a timer 12 commonly provided for the plurality of processors 10; and a plurality of storage areas 11 which are provided in correspondence with the plurality of processors 10 and store a plurality of event logs respectively. The plurality of event logs include time stamps obtainable from a value of the timer 12. The multiprocessor system 1 is capable of referring to time intervals and order of processing that the plurality of processors 10 have performed, on the basis of the time stamp.

Description

本発明の実施形態は、マルチプロセッサシステムに関する。   Embodiments described herein relate generally to a multiprocessor system.

近年、データ処理装置の処理性能を飛躍的に向上させることが期待できることから、複数のプロセッサを共有バスを介して接続したマルチプロセッサシステムの開発が進められている。マルチプロセッサシステムは、複数のプロセッサが同時に処理を行うことが可能であることから、システム内の制御が複雑となる。   In recent years, since it can be expected that the processing performance of a data processing apparatus is drastically improved, development of a multiprocessor system in which a plurality of processors are connected via a shared bus is being promoted. In a multiprocessor system, since a plurality of processors can perform processing simultaneously, control in the system becomes complicated.

マルチプロセッサシステムの性能向上のために、開発段階において、プロセッサ間のシステム検証が行われ、また、ソフトウェアのデバッグなどが行われる。このとき、デバッグや性能チューニングをより正確に行うためには、どのプロセッサがどのような順序で処理を行ったかを示す情報が大変有用である。   In order to improve the performance of the multiprocessor system, system verification between processors is performed in the development stage, and software debugging is performed. At this time, in order to perform debugging and performance tuning more accurately, information indicating which processor performs processing in what order is very useful.

特開2011−70365号公報JP 2011-70365 A

実施形態は、プロセッサ間での処理の順序をより正確に判定することが可能なマルチプロセッサシステムを提供する。   Embodiments provide a multiprocessor system that can more accurately determine the order of processing among processors.

実施形態に係るマルチプロセッサシステムは、複数のプロセッサと、前記複数のプロセッサに共通して設けられたタイマと、前記複数のプロセッサに対応して設けられ、複数のイベントログをそれぞれ格納する複数の記憶領域とを具備する。前記タイマは、時間情報を計測する第1のカウンタと、前記複数のプロセッサが前記タイマにアクセスするごとにカウントアップする第2のカウンタとを含み、前記複数のイベントログは、前記タイマの値から得られるタイムスタンプを含み、前記タイムスタンプに基づいて、前記複数のプロセッサが行った処理の時間間隔及び順序を参照できる。   The multiprocessor system according to the embodiment includes a plurality of processors, a timer provided in common to the plurality of processors, and a plurality of memories provided corresponding to the plurality of processors and respectively storing a plurality of event logs. A region. The timer includes a first counter that measures time information, and a second counter that counts up each time the plurality of processors access the timer, and the plurality of event logs are based on the value of the timer. The obtained time stamp is included, and based on the time stamp, the time interval and order of processing performed by the plurality of processors can be referred to.

第1の実施形態に係るSSDのブロック図。The block diagram of SSD which concerns on 1st Embodiment. 1個のNAND型フラッシュメモリのブロック図。1 is a block diagram of one NAND flash memory. FIG. メモリセルアレイの回路図。The circuit diagram of a memory cell array. プロセッサのイベントログを説明する図。The figure explaining the event log of a processor. あるプロセッサの動作を示すフローチャート。The flowchart which shows operation | movement of a certain processor. プロセッサのイベントログの具体例を説明する図。The figure explaining the specific example of the event log of a processor. 第2の実施形態に係るタイマのブロック図。The block diagram of the timer which concerns on 2nd Embodiment. アクセスカウンタ及びタイマカウンタの構成例を示す図。The figure which shows the structural example of an access counter and a timer counter.

以下、実施形態について図面を参照して説明する。ただし、図面は模式的または概念的なものであり、各図面の寸法および比率などは必ずしも現実のものと同一とは限らない。以下に示す幾つかの実施形態は、本発明の技術思想を具体化するための装置および方法を例示したものであって、構成部品の形状、構造、配置などによって、本発明の技術思想が特定されるものではない。なお、以下の説明において、同一の機能及び構成を有する要素については、同一符号を付し、重複説明は必要な場合にのみ行う。   Hereinafter, embodiments will be described with reference to the drawings. However, the drawings are schematic or conceptual, and the dimensions and ratios of the drawings are not necessarily the same as actual ones. The following embodiments exemplify apparatuses and methods for embodying the technical idea of the present invention, and the technical idea of the present invention is specified by the shape, structure, arrangement, etc. of components. Is not to be done. In the following description, elements having the same function and configuration are denoted by the same reference numerals, and redundant description will be given only when necessary.

[第1の実施形態]
本実施形態は、複数のプロセッサを備えたマルチプロセッサシステムを実現するための構成例である。本実施形態では、マルチプロセッサシステムとして、NAND型フラッシュメモリを備えたメモリシステム、すなわち、SSD(Solid State Drive)を例に挙げて説明する。
[First Embodiment]
The present embodiment is a configuration example for realizing a multiprocessor system including a plurality of processors. In the present embodiment, a memory system including a NAND flash memory, that is, an SSD (Solid State Drive) will be described as an example of a multiprocessor system.

[1] マルチプロセッサシステム(SSD)の構成
図1は、第1の実施形態に係るSSD1のブロック図である。SSD1は、複数のプロセッサ10、タイマ12、インターフェースコントローラ(I/Fコントローラ)13、共有メモリ15、NANDコントローラ16、1個又は複数のNAND型フラッシュメモリ17、デバッグ用インターフェース回路18、暗号化/復号化回路40、及びバス19を備えている。SSD1内の複数の回路は、バス19を介して互いに接続されている。本実施形態では、3個のプロセッサ10−1〜10−3を例示しているが、プロセッサ10の数は任意に設定可能である。
[1] Configuration of Multiprocessor System (SSD) FIG. 1 is a block diagram of the SSD 1 according to the first embodiment. The SSD 1 includes a plurality of processors 10, a timer 12, an interface controller (I / F controller) 13, a shared memory 15, a NAND controller 16, one or more NAND flash memories 17, a debug interface circuit 18, an encryption / decryption Circuit 40 and bus 19 are provided. A plurality of circuits in the SSD 1 are connected to each other via a bus 19. In the present embodiment, three processors 10-1 to 10-3 are illustrated, but the number of processors 10 can be arbitrarily set.

各プロセッサ10は、例えばCPU(Central Processing Unit)から構成される。プロセッサ10は、SSD1内の各種動作を制御する。例えば、プロセッサ10は、命令(instruction)の解釈及び実行、プログラムの実行、実行結果の状態の保守などを行う。プロセッサ10は、自身が自由にデータを書き換えできる作業領域としてのRAM11を備えている。RAM11は、SRAMなどの揮発性RAMから構成される。RAM11に格納される情報には、対応するプロセッサ10のイベントログが含まれる。   Each processor 10 is composed of, for example, a CPU (Central Processing Unit). The processor 10 controls various operations in the SSD 1. For example, the processor 10 performs interpretation and execution of instructions, execution of programs, maintenance of the state of execution results, and the like. The processor 10 includes a RAM 11 as a work area in which the processor 10 can freely rewrite data. The RAM 11 is composed of a volatile RAM such as SRAM. The information stored in the RAM 11 includes an event log of the corresponding processor 10.

タイマ12は、時間を計測する。タイマ12によって計測された時間は、イベントログに含まれるタイムスタンプなどに使用される。タイマ12が時間の計測を開始するタイミングは、SSD1が起動(例えばパワーオンリセット後)して、通常動作を行う準備が整った後、或いは、SSD1が動作中においてプロセッサ10からリセット信号を受けた場合などである。タイマ12は、基準クロックを発生する素子、例えば水晶発振器(図示せず)から基準クロックを受け、この基準クロックをカウントアップすることで、時間を計測する。すなわち、タイマ12は、時間情報をカウント値として格納する。   The timer 12 measures time. The time measured by the timer 12 is used for a time stamp included in the event log. The timing at which the timer 12 starts measuring time is after the SSD 1 is activated (for example, after a power-on reset) and ready for normal operation, or when the SSD 1 is in operation, a reset signal is received from the processor 10 Such as the case. The timer 12 receives a reference clock from an element that generates a reference clock, for example, a crystal oscillator (not shown), and counts up the reference clock to measure time. That is, the timer 12 stores time information as a count value.

インターフェースコントローラ13は、インターフェース(I/F)14によってホストコントローラに接続されている。インターフェースコントローラ13は、ホストコントローラとのインターフェース処理を実行する。インターフェース14としては、例えばSATA(Serial Advanced Technology Attachment)が用いられる。   The interface controller 13 is connected to the host controller by an interface (I / F) 14. The interface controller 13 executes interface processing with the host controller. As the interface 14, for example, SATA (Serial Advanced Technology Attachment) is used.

共有メモリ15は、プロセッサ10−1〜10−3に共有される。共有メモリ15には、例えば、プロセッサ10−1〜10−3で共通して使用される情報などが格納される。また、共有メモリ15は、NAND型フラッシュメモリ17に書き込まれる書き込みデータを一時的に格納するライトバッファ、及びNAND型フラッシュメモリ17から読み出された読み出しデータを一時的に格納するリードバッファとしても使用される。共有メモリ15は、SRAMなどの揮発性RAMから構成される。   The shared memory 15 is shared by the processors 10-1 to 10-3. In the shared memory 15, for example, information used in common by the processors 10-1 to 10-3 is stored. The shared memory 15 is also used as a write buffer that temporarily stores write data to be written to the NAND flash memory 17 and a read buffer that temporarily stores read data read from the NAND flash memory 17. Is done. The shared memory 15 is composed of a volatile RAM such as SRAM.

NANDコントローラ16は、NAND型フラッシュメモリ17との間のインターフェース処理を行う。具体的には、NANDコントローラ16は、NAND型フラッシュメモリ17にコマンド及びアドレスを供給し、NAND型フラッシュメモリ17との間でデータの送信及び受信を行う。このデータの送信及び受信の際、NANDコントローラ16は、ECC(Error Checking and Correcting)処理を実行する。また、NANDコントローラ16は、複数のNAND型フラッシュメモリ17をインタリーブする。   The NAND controller 16 performs an interface process with the NAND flash memory 17. Specifically, the NAND controller 16 supplies commands and addresses to the NAND flash memory 17 and transmits and receives data to and from the NAND flash memory 17. When transmitting and receiving this data, the NAND controller 16 performs ECC (Error Checking and Correcting) processing. The NAND controller 16 interleaves a plurality of NAND flash memories 17.

暗号化/復号化回路40は、ホストコントローラから送信されたデータを暗号化する。よって、NAND型フラッシュメモリ17には、暗号化されたデータが格納される。また、暗号化/復号化回路40は、NAND型フラッシュメモリ17から読み出されたデータを復号化する。   The encryption / decryption circuit 40 encrypts data transmitted from the host controller. Therefore, the encrypted data is stored in the NAND flash memory 17. The encryption / decryption circuit 40 decrypts data read from the NAND flash memory 17.

デバッグ用インターフェース回路18は、SSD1にデバッグ用機器を接続可能とするために設けられている。デバッグ用インターフェース回路18は、デバッグ用機器との間のインターフェース処理を行う。このデバッグ用機器によってSSD1のデバッグが行われる。   The debug interface circuit 18 is provided so that a debug device can be connected to the SSD 1. The debug interface circuit 18 performs an interface process with the debug device. The debugging of the SSD 1 is performed by this debugging device.

次に、NAND型フラッシュメモリ17の構成について説明する。図2は、1個のNAND型フラッシュメモリ17のブロック図である。   Next, the configuration of the NAND flash memory 17 will be described. FIG. 2 is a block diagram of one NAND flash memory 17.

メモリセルアレイ20は、データを電気的に書き換え可能なメモリセルがマトリクス状に配置されて構成されている。メモリセルアレイ20には、複数のビット線、複数のワード線、及び共通ソース線が配設されている。ビット線とワード線との交差領域には、メモリセルが配置されている。   The memory cell array 20 is configured by arranging memory cells that can electrically rewrite data in a matrix. In the memory cell array 20, a plurality of bit lines, a plurality of word lines, and a common source line are arranged. Memory cells are arranged in the intersection region between the bit line and the word line.

ロウデコーダの機能を果たすワード線制御回路23は、複数のワード線に接続され、データの読み出し、書き込み、及び消去時に、ワード線の選択及び駆動を行う。ビット線制御回路21は、複数のビット線に接続され、データの読み出し、書き込み、及び消去時に、ビット線の電圧を制御する。また、ビット線制御回路21は、データの読み出し時にビット線のデータを検知し、データの書き込み時に書き込みデータに応じた電圧をビット線に印加する。カラムデコーダ22は、アドレスに応じて、ビット線を選択するためのカラム選択信号を生成し、このカラム選択信号をビット線制御回路21に送る。   A word line control circuit 23 that functions as a row decoder is connected to a plurality of word lines, and selects and drives the word lines when reading, writing, and erasing data. The bit line control circuit 21 is connected to a plurality of bit lines, and controls the voltage of the bit line when reading, writing, and erasing data. The bit line control circuit 21 detects data on the bit line when reading data, and applies a voltage corresponding to the write data to the bit line when writing data. The column decoder 22 generates a column selection signal for selecting a bit line according to the address, and sends this column selection signal to the bit line control circuit 21.

メモリセルアレイ20から読み出された読み出しデータは、ビット線制御回路21、データ入出力バッファ27を介してデータ入出力端子26からNANDコントローラ16へ送られる。また、NANDコントローラ16からデータ入出力端子26に入力された書き込みデータは、データ入出力バッファ27を介してビット線制御回路21に送られる。   Read data read from the memory cell array 20 is sent from the data input / output terminal 26 to the NAND controller 16 via the bit line control circuit 21 and the data input / output buffer 27. Write data input from the NAND controller 16 to the data input / output terminal 26 is sent to the bit line control circuit 21 via the data input / output buffer 27.

メモリセルアレイ20、ビット線制御回路21、カラムデコーダ22、ワード線制御回路23、及びデータ入出力バッファ27は、制御回路24に接続されている。制御回路24は、NANDコントローラ16から制御信号入力端子25に入力される制御信号に基づいて、メモリセルアレイ20、ビット線制御回路21、カラムデコーダ22、データ入出力バッファ27、及びワード線制御回路23を制御するための制御信号及び制御電圧を発生させる。   The memory cell array 20, bit line control circuit 21, column decoder 22, word line control circuit 23, and data input / output buffer 27 are connected to the control circuit 24. The control circuit 24 is based on the control signal input from the NAND controller 16 to the control signal input terminal 25, and the memory cell array 20, bit line control circuit 21, column decoder 22, data input / output buffer 27, and word line control circuit 23. A control signal and a control voltage for controlling the signal are generated.

図3は、メモリセルアレイ20の回路図である。メモリセルアレイ20は、複数のブロックBLKを備えている。各ブロックBLKは、複数のメモリセルにより構成され、このブロックBLKを単位としてデータが消去される。ブロックBLKは、n個(nは自然数)のNANDストリングNSを備えている。   FIG. 3 is a circuit diagram of the memory cell array 20. The memory cell array 20 includes a plurality of blocks BLK. Each block BLK is composed of a plurality of memory cells, and data is erased in units of the block BLK. The block BLK includes n (n is a natural number) NAND strings NS.

各NANDストリングNSは、m個(mは自然数)のメモリセルトランジスタ(メモリセル)MTと、2個の選択トランジスタST1及びST2とを備えている。各メモリセルトランジスタMTは、制御ゲートと電荷蓄積層とを含む積層ゲートを備え、データを不揮発に記憶する。メモリセルトランジスタMTは、電荷蓄積層に蓄えられる電荷の数に応じて閾値電圧が変化し、この閾値電圧の違いに応じてデータを記憶する。   Each NAND string NS includes m (m is a natural number) memory cell transistors (memory cells) MT and two select transistors ST1 and ST2. Each memory cell transistor MT includes a stacked gate including a control gate and a charge storage layer, and stores data in a nonvolatile manner. The memory cell transistor MT changes its threshold voltage according to the number of charges stored in the charge storage layer, and stores data according to the difference in threshold voltage.

m個のメモリセルトランジスタMTは、選択トランジスタST1及びST2間に、その電流経路が直列接続されるようにして配置されている。この直列接続の一端側のメモリセルトランジスタの電流経路は、選択トランジスタST1の電流経路の一端に接続され、他端側のメモリセルトランジスタの電流経路は、選択トランジスタST2の電流経路の一端に接続されている。   The m memory cell transistors MT are arranged between the select transistors ST1 and ST2 so that their current paths are connected in series. The current path of the memory cell transistor on one end side of the series connection is connected to one end of the current path of the selection transistor ST1, and the current path of the memory cell transistor on the other end side is connected to one end of the current path of the selection transistor ST2. ing.

同一のブロックBLK内にある選択トランジスタST1のゲートは、選択ゲート線SGDに共通接続され、同一のブロックBLK内にある選択トランジスタST2のゲートは、選択ゲート線SGSに共通接続されている。同一のブロックBLK内にある一行分のメモリセルトランジスタMTの制御ゲートは、1本のワード線WLに共通接続されている。   The gates of the selection transistors ST1 in the same block BLK are commonly connected to the selection gate line SGD, and the gates of the selection transistors ST2 in the same block BLK are commonly connected to the selection gate line SGS. The control gates of the memory cell transistors MT for one row in the same block BLK are commonly connected to one word line WL.

メモリセルアレイ20内でマトリクス状に配置されたNANDストリングNSのうち、同一行にあるNANDストリングNSの選択トランジスタST1の電流経路の他端は、1本のビット線BLに共通接続される。すなわち、ビット線BLは、複数のブロックBLK間で、NANDストリングNSを共通接続する。また、選択トランジスタST2の電流経路の他端は、ソース線SLに共通接続されている。ソース線SLは、例えば複数のブロックBLK間で、NANDストリングNSを共通接続する。   Of the NAND strings NS arranged in a matrix in the memory cell array 20, the other ends of the current paths of the select transistors ST1 of the NAND strings NS in the same row are commonly connected to one bit line BL. That is, the bit line BL commonly connects the NAND strings NS between the plurality of blocks BLK. The other end of the current path of the selection transistor ST2 is commonly connected to the source line SL. For example, the source line SL commonly connects the NAND strings NS between a plurality of blocks BLK.

前述の通り、同一のブロックBLK内にあるメモリセルトランジスタMTのデータは、一括して消去される。これに対してデータの読み出し及び書き込みは、いずれかのブロックBLK内のいずれかのワード線WLに共通接続された複数のメモリセルトランジスタMTにつき、一括して行われる。この単位を「ページ」と呼ぶ。   As described above, the data of the memory cell transistors MT in the same block BLK are erased collectively. On the other hand, data reading and writing are performed collectively for a plurality of memory cell transistors MT commonly connected to any word line WL in any block BLK. This unit is called “page”.

[2] SSD1の動作
上記のように構成されたSSD1の動作について説明する。図4は、プロセッサ10のイベントログを説明する図である。各プロセッサ10は、何らかの処理を実行した際、この処理内容を自身のイベントログ(ログファイル)に記録する。イベントログは、RAM11に格納される。具体的には、プロセッサ10は、演算部10Aを備えており、この演算部10Aは、プロセッサ10によってある処理が実行された場合に、この処理内容をイベントログに記録する。また、演算部10Aは、事象(イベント)の発生順に処理内容をイベントログに記録する。イベントログは、タイムスタンプTと処理内容LGとを含む。タイムスタンプは、ある処理が実行された時間を示す情報であり、イベントログの属性である。
[2] Operation of SSD 1 The operation of the SSD 1 configured as described above will be described. FIG. 4 is a diagram for explaining an event log of the processor 10. Each processor 10 records the processing content in its own event log (log file) when executing some processing. The event log is stored in the RAM 11. Specifically, the processor 10 includes a calculation unit 10A, and when a certain process is executed by the processor 10, the calculation unit 10A records the processing content in an event log. In addition, the calculation unit 10A records the processing contents in the event log in the order of occurrence of events (events). The event log includes a time stamp T and a processing content LG. The time stamp is information indicating the time when a certain process is executed, and is an attribute of the event log.

本実施形態では、SSD1は、複数のプロセッサ10に共通して設けられた1個のタイマ12を備えている。そして、複数のプロセッサ10は、イベントログに処理内容を記録する際、1個のタイマ12を参照して時間情報を取得し、この時間情報をタイムスタンプとして処理内容とともにイベントログに記録する。   In the present embodiment, the SSD 1 includes one timer 12 that is provided in common to the plurality of processors 10. Then, when the processing contents are recorded in the event log, the plurality of processors 10 obtain time information with reference to one timer 12, and record this time information in the event log together with the processing contents as a time stamp.

このように、複数のプロセッサ10が共通のタイマ12を使用するように構成することで、例えばシステムを検証する際に複数のプロセッサ10に記録されたイベントログを参照することで、異なるプロセッサ間でもイベントログ内に記録されている処理の時間間隔及び順序の把握が可能となる。   As described above, by configuring the plurality of processors 10 to use the common timer 12, for example, by referring to the event log recorded in the plurality of processors 10 when verifying the system, even between different processors. It is possible to grasp the time intervals and order of the processes recorded in the event log.

図5は、あるプロセッサ10の動作を示すフローチャートである。あるプロセッサ10は、自身の役割に応じた任意の処理を実行する(ステップS100)。続いて、プロセッサ10は、タイマ12を参照し、タイマ12の値を取得する(ステップS101)。なお、プロセッサ10がタイマ12を参照するタイミングは、システム内で統一されていればよく、処理を開始する時でもよいし、処理が完了した時でもよい。   FIG. 5 is a flowchart showing the operation of a certain processor 10. A certain processor 10 executes arbitrary processing according to its role (step S100). Subsequently, the processor 10 refers to the timer 12 and acquires the value of the timer 12 (step S101). Note that the timing at which the processor 10 refers to the timer 12 may be unified within the system, and may be when processing is started or when processing is completed.

続いて、プロセッサ10は、タイマ12の値に基づいてタイムスタンプを作成する(ステップS102)。続いて、プロセッサ10は、タイムスタンプ及び処理内容を自身のイベントログに記録する(ステップS103)。このようにして、1つの処理に対してイベントログの記録動作が完了する。   Subsequently, the processor 10 creates a time stamp based on the value of the timer 12 (step S102). Subsequently, the processor 10 records the time stamp and the processing content in its own event log (step S103). In this way, the event log recording operation is completed for one process.

次に、プロセッサ10−1〜10−3のより具体的な動作の一例について説明する。図6は、プロセッサ10のイベントログの具体例を説明する図である。   Next, an example of more specific operation of the processors 10-1 to 10-3 will be described. FIG. 6 is a diagram for explaining a specific example of the event log of the processor 10.

図6の例は、NAND型フラッシュメモリ17に何らかのデータが暗号化された状態で記録されていて、それをホストコントローラからの要求に基づいてNAND型フラッシュメモリ17から読み出して復号化し、復号化したデータをホストコントローラへ送る動作の例である。T1〜T14がタイムスタンプである。なお、各処理内容は、実際には、プログラムコードのある地点を通過したことを示す識別子(ID:Identification Data)などでも良い。   In the example of FIG. 6, some data is recorded in the NAND flash memory 17 in an encrypted state. The data is read from the NAND flash memory 17 based on a request from the host controller, decrypted, and decrypted. It is an example of the operation | movement which sends data to a host controller. T1 to T14 are time stamps. Each processing content may actually be an identifier (ID: Identification Data) indicating that the program code has passed a certain point.

プロセッサ(PC1)10−1は、SATAコントローラ(SATA−C)13を制御可能なように構成されている。プロセッサ(PC2)10−2は、NANDコントローラ(NAND−C)16を制御可能なように構成されている。プロセッサ(PC3)10−3は、データの暗号化及び復号化を制御可能なように構成されている。このように、プロセッサ10−1〜10−3は、個別に機能が割り当てられている。プロセッサ10−1〜10−2はそれぞれ、イベントログ1〜3にタイムスタンプ及び処理内容を記録する。   The processor (PC1) 10-1 is configured to control the SATA controller (SATA-C) 13. The processor (PC2) 10-2 is configured to control the NAND controller (NAND-C) 16. The processor (PC3) 10-3 is configured to be able to control data encryption and decryption. As described above, the functions of the processors 10-1 to 10-3 are individually assigned. Each of the processors 10-1 to 10-2 records a time stamp and processing contents in the event logs 1 to 3.

まず、プロセッサPC1は、SATA−Cから割込みを受け、この処理内容をタイムスタンプT1とともにイベントログ1に記録する。続いて、プロセッサPC1は、SATA−Cから要求を受け取り、この処理内容をタイムスタンプT2とともにイベントログ1に記録する。続いて、プロセッサPC1は、共有メモリ15にプロセッサPC2への指示を置き、プロセッサPC2へ割込みを入れ、これらの処理内容をタイムスタンプT3とともにイベントログ1に記録する。   First, the processor PC1 receives an interrupt from the SATA-C and records this processing content in the event log 1 together with the time stamp T1. Subsequently, the processor PC1 receives a request from the SATA-C, and records this processing content in the event log 1 together with the time stamp T2. Subsequently, the processor PC1 places an instruction for the processor PC2 in the shared memory 15, interrupts the processor PC2, and records these processing contents in the event log 1 together with the time stamp T3.

続いて、プロセッサPC2は、プロセッサPC1から割込みを受け、この処理内容をタイムスタンプT4とともにイベントログ2に記録する。続いて、プロセッサPC2は、共有メモリ15からプロセッサPC1の指示を読み出し、この処理内容をタイムスタンプT5とともにイベントログ2に記録する。続いて、プロセッサPC2は、NAND−Cを操作してNAND型フラッシュメモリ(NAND)17から暗号化されたデータを読み出し、この処理内容をタイムスタンプT6とともにイベントログ2に記録する。続いて、プロセッサPC2は、共有メモリ15にプロセッサPC3への指示を置き、プロセッサPC3へ割込みを入れ、これらの処理内容をタイムスタンプT7とともにイベントログ2に記録する。   Subsequently, the processor PC2 receives an interrupt from the processor PC1, and records this processing content in the event log 2 together with the time stamp T4. Subsequently, the processor PC2 reads the instruction of the processor PC1 from the shared memory 15, and records the processing content in the event log 2 together with the time stamp T5. Subsequently, the processor PC2 operates the NAND-C to read the encrypted data from the NAND flash memory (NAND) 17, and records this processing content in the event log 2 together with the time stamp T6. Subsequently, the processor PC2 places an instruction to the processor PC3 in the shared memory 15, interrupts the processor PC3, and records these processing contents in the event log 2 together with the time stamp T7.

続いて、プロセッサPC3は、プロセッサPC2から割込みを受け、この処理内容をタイムスタンプT8とともにイベントログ3に記録する。続いて、プロセッサPC3は、共有メモリ15からプロセッサPC2の指示を読み出し、この処理内容をタイムスタンプT9とともにイベントログ3に記録する。続いて、プロセッサPC3は、暗号化/復号化回路40を操作して、NAND型フラッシュメモリ(NAND)17から読み出されたデータを復号化し、この処理内容をタイムスタンプT10とともにイベントログ3に記録する。続いて、プロセッサPC3は、復号化したデータを共有メモリ15に置き、プロセッサPC1へ割込みを入れ、これらの処理内容をタイムスタンプT11とともにイベントログ3に記録する。   Subsequently, the processor PC3 receives an interrupt from the processor PC2, and records this processing content in the event log 3 together with the time stamp T8. Subsequently, the processor PC3 reads the instruction of the processor PC2 from the shared memory 15, and records this processing content in the event log 3 together with the time stamp T9. Subsequently, the processor PC3 operates the encryption / decryption circuit 40 to decrypt the data read from the NAND flash memory (NAND) 17, and records this processing content in the event log 3 together with the time stamp T10. To do. Subsequently, the processor PC3 places the decrypted data in the shared memory 15, interrupts the processor PC1, and records these processing contents in the event log 3 together with the time stamp T11.

続いて、プロセッサPC1は、プロセッサPC3から割込みを受け、この処理内容をタイムスタンプT12とともにイベントログ1に記録する。続いて、プロセッサPC1は、共有メモリ15からデータを読み出し、この処理内容をタイムスタンプT13とともにイベントログ1に記録する。続いて、プロセッサPC1は、SATA−Cを操作してホストコントローラへデータを送り、この処理内容をタイムスタンプT14とともにイベントログ1に記録する。このようにして、プロセッサPC1〜PC3により、NAND型フラッシュメモリ17から読み出されたデータをホストコントローラへ送信する処理が終了する。このように、イベントログ1〜3に記録されたタイムスタンプT1〜T14は、その時系列が統一されている。   Subsequently, the processor PC1 receives an interrupt from the processor PC3, and records this processing content in the event log 1 together with the time stamp T12. Subsequently, the processor PC1 reads data from the shared memory 15, and records the processing content in the event log 1 together with the time stamp T13. Subsequently, the processor PC1 operates SATA-C to send data to the host controller, and records this processing content in the event log 1 together with the time stamp T14. In this way, the processing of transmitting the data read from the NAND flash memory 17 to the host controller by the processors PC1 to PC3 is completed. Thus, the time stamps T1 to T14 recorded in the event logs 1 to 3 are unified in time series.

[3] 効果
以上詳述したように第1の実施形態では、マルチプロセッサシステム(SSD)1は、複数のプロセッサ10と、複数のプロセッサ10に共通して設けられた1個のタイマとを備えている。各プロセッサ10は、処理内容を記録するイベントログを有し、イベントログは、タイマ12の値から得られるタイムスタンプを含んでいる。そして、複数のプロセッサ10は、処理を実行するごとに共通のタイマ12の値から得られるタイムスタンプをイベントログに記録するようにしている。
[3] Effect As described in detail above, in the first embodiment, the multiprocessor system (SSD) 1 includes a plurality of processors 10 and a timer provided in common to the plurality of processors 10. ing. Each processor 10 has an event log for recording processing contents, and the event log includes a time stamp obtained from the value of the timer 12. The plurality of processors 10 record a time stamp obtained from the value of the common timer 12 every time the process is executed in the event log.

従って第1の実施形態によれば、デバッグや性能チューニングの際に、デバック用機器などからプロセッサ10−1〜10−3のイベントログを読み出し、この読み出したイベントログに基づいてタイムスタンプ及び処理内容を確認することで、プロセッサ10−1〜10−3のうちどのプロセッサがどのような順序で処理を行ったか、及び処理の時間間隔をより正確に判定することができる。この結果、デバッグや性能チューニングをより正確に実施することができる。   Therefore, according to the first embodiment, the event log of the processors 10-1 to 10-3 is read from a debugging device or the like at the time of debugging or performance tuning, and the time stamp and processing contents are based on the read event log. By confirming the above, it is possible to more accurately determine which processor among the processors 10-1 to 10-3 performs the processing in which order, and the processing time interval. As a result, debugging and performance tuning can be performed more accurately.

例えば、複数のプロセッサがそれぞれ複数のタイマを所有するような構成の場合、タイムスタンプの系列がプロセッサごとに異なっているので、異なるプロセッサ間での処理の順序の把握が困難となり、処理の時間間隔及び順序を正確に判定することができない。しかし、本実施形態の構成を用いることで、このような不具合を解消することができる。   For example, in a configuration in which multiple processors each have multiple timers, the time stamp sequence is different for each processor, making it difficult to grasp the processing order between different processors, and the processing time interval. And the order cannot be determined accurately. However, such a problem can be solved by using the configuration of the present embodiment.

また、本実施形態のイベントログ記録方式を用いることにより、マルチプロセッサシステムのデバッグや性能チューニングが容易になるので、(1)マルチプロセッサシステムの開発費用の削減、(2)マルチプロセッサシステムの開発期間の短縮、(3)マルチプロセッサシステムの性能の向上、などの効果が得られる。   In addition, the use of the event log recording method of the present embodiment facilitates debugging and performance tuning of the multiprocessor system, so that (1) reduction in development cost of the multiprocessor system and (2) development period of the multiprocessor system. (3) Improvement of performance of the multiprocessor system can be obtained.

[第2の実施形態]
第1の実施形態で説明したように複数のプロセッサに対して共通のタイマを配置した場合でも、タイマの分解能よりも短い時間間隔で異なるプロセッサがタイマを読み出してしまうと、処理の前後関係が区別できなくなる恐れがある。そこで、第2の実施形態は、プロセッサがタイマにアクセスするごとにカウントアップするアクセスカウンタを新たに設け、処理が実行された時間情報とプロセッサがタイマにアクセスした順序との両方をイベントログに記録するようにしている。
[Second Embodiment]
As described in the first embodiment, even when a common timer is arranged for a plurality of processors, if different processors read out the timer at a time interval shorter than the resolution of the timer, the processing context is distinguished. There is a risk that it will not be possible. Therefore, in the second embodiment, an access counter that counts up each time the processor accesses the timer is newly provided, and both the time information when the processing is executed and the order in which the processor accesses the timer are recorded in the event log. Like to do.

図7は、第2の実施形態に係るタイマ12のブロック図である。SSD1のうちタイマ12以外の構成は、図1と同じである。タイマ12は、アクセス検知部30、アクセスカウンタ31A、及びタイマカウンタ31Bを備えている。   FIG. 7 is a block diagram of the timer 12 according to the second embodiment. The configuration of the SSD 1 other than the timer 12 is the same as that in FIG. The timer 12 includes an access detection unit 30, an access counter 31A, and a timer counter 31B.

アクセス検知部30は、プロセッサ10−1〜10−3からタイマ12(具体的には、アクセスカウンタ31A及びタイマカウンタ31B)がアクセスされたことを検知し、アクセスごとにアクセスカウンタ31Aをカウントアップする。よって、アクセスカウンタ31Aは、プロセッサ10−1〜10−3がタイマ12にアクセスした回数をカウント値として格納する。   The access detection unit 30 detects that the timer 12 (specifically, the access counter 31A and the timer counter 31B) is accessed from the processors 10-1 to 10-3, and counts up the access counter 31A for each access. . Therefore, the access counter 31A stores the number of times the processors 10-1 to 10-3 accessed the timer 12 as a count value.

タイマカウンタ31Bは、例えば水晶発振器(図示せず)から基準クロックを受け、この基準クロックをカウントアップすることで、時間を計測する。すなわち、タイマカウンタ31Bは、時間情報をカウント値として格納する。アクセスカウンタ31A及びタイマカウンタ31Bは、バス19に接続されている。   For example, the timer counter 31B receives a reference clock from a crystal oscillator (not shown) and counts up the reference clock to measure time. That is, the timer counter 31B stores time information as a count value. The access counter 31A and the timer counter 31B are connected to the bus 19.

図8は、アクセスカウンタ31A及びタイマカウンタ31Bの構成例を示す図である。アクセスカウンタ31A及びタイマカウンタ31B用に(n+1)ビットカウンタ31を1つ用意し、内部的に、[m:0]ビットカウンタ部(アクセスカウンタ31A)と、[n:m]ビットカウンタ部(タイマカウンタ31B)を持つように構成する。nは自然数で、n>mである。なお、カウンタ31のビット割り当ては任意である。カウンタ31は、カウンタリード(カウンタアクセス)操作ごとに[m:0]ビットカウンタ部(アクセスカウンタ31A)がカウントアップし、かつ基準クロックに応じて[n:m]ビットカウンタ部(タイマカウンタ31B)がカウントアップするように動作する。すなわち、[m:0]ビットカウンタ部と[n:m]ビットカウンタ部とは個別にカウントアップ動作を行う。   FIG. 8 is a diagram illustrating a configuration example of the access counter 31A and the timer counter 31B. One (n + 1) bit counter 31 is prepared for the access counter 31A and the timer counter 31B. Internally, an [m: 0] bit counter unit (access counter 31A) and an [n: m] bit counter unit (timer It is configured to have a counter 31B). n is a natural number, and n> m. Note that the bit allocation of the counter 31 is arbitrary. In the counter 31, the [m: 0] bit counter unit (access counter 31A) counts up for every counter read (counter access) operation, and the [n: m] bit counter unit (timer counter 31B) according to the reference clock. Works to count up. That is, the [m: 0] bit counter unit and the [n: m] bit counter unit individually perform a count-up operation.

プロセッサ10は、タイマ12を参照する際、アクセスカウンタ31A及びタイマカウンタ31Bの全ビットを読み出す。そして、プロセッサ10は、アクセスカウンタ31A及びタイマカウンタ31Bから読み出したカウント値をタイムスタンプとしてイベントログに記録する。   When referring to the timer 12, the processor 10 reads all bits of the access counter 31A and the timer counter 31B. Then, the processor 10 records the count values read from the access counter 31A and the timer counter 31B as time stamps in the event log.

以上詳述したように第2の実施形態では、プロセッサ10がタイマ12にアクセスするごとにカウントアップするアクセスカウンタ31Aをカウンタ31内の特定のビットに割り当てるようにしている。このため、イベントログに記録されるタイムスタンプは、処理が実行された時間情報と、プロセッサがタイマにアクセスした順序を示す情報とを含む。従って、タイマの分解能よりも短い時間間隔で複数のプロセッサがタイマにアクセスした場合でも、アクセスカウンタ31Aのカウント値を確認することで、処理の順序を正確に把握することができる。また、時間間隔が非常に短い処理が連続した場合であっても、正確に処理の順序を把握することができる。   As described above in detail, in the second embodiment, the access counter 31A that counts up every time the processor 10 accesses the timer 12 is assigned to a specific bit in the counter 31. For this reason, the time stamp recorded in the event log includes time information when the process is executed and information indicating the order in which the processor accesses the timer. Accordingly, even when a plurality of processors access the timer at a time interval shorter than the resolution of the timer, the processing order can be accurately grasped by checking the count value of the access counter 31A. Further, even when processing with very short time intervals continues, the processing order can be accurately grasped.

例えば、アクセスカウンタ31Aのみを用いた場合では、処理の順序は把握できるが、処理の時間間隔が判別できない。しかし、本実施形態では、タイマカウンタ31B及びアクセスカウンタ31Aを併用しているので、処理の時間間隔及び順序を把握することができる。   For example, when only the access counter 31A is used, the processing order can be grasped, but the processing time interval cannot be determined. However, in the present embodiment, since the timer counter 31B and the access counter 31A are used together, it is possible to grasp the processing time interval and order.

また、カウンタ31のカウントサイクルがバス19のクロックサイクルより遅い場合には、複数のタイムスタンプにタイマカウンタ31Bによる同じカウント値が記録される可能性がある。このような場合でも本実施形態では処理の順序を判別できるため、カウンタ31のカウントサイクルがバス19のクロックサイクルより遅い場合に、本実施形態は特に有効である。   When the count cycle of the counter 31 is later than the clock cycle of the bus 19, the same count value by the timer counter 31B may be recorded in a plurality of time stamps. Even in such a case, since the processing order can be determined in this embodiment, this embodiment is particularly effective when the count cycle of the counter 31 is slower than the clock cycle of the bus 19.

上記各実施形態では、マルチプロセッサシステムの一例としてSSDを用いて説明したが、SSDに限らず、複数のプロセッサを備えた様々な情報処理装置に適用することができる。   In each of the above embodiments, the SSD has been described as an example of the multiprocessor system. However, the present invention is not limited to the SSD, and can be applied to various information processing apparatuses including a plurality of processors.

本発明のいくつかの実施形態を説明したが、これらの実施形態は、例として提示したものであり、発明の範囲を限定することは意図していない。これら新規な実施形態は、その他の様々な形態で実施されることが可能であり、発明の要旨を逸脱しない範囲で、種々の省略、置き換え、変更を行うことができる。これら実施形態やその変形は、発明の範囲や要旨に含まれるとともに、特許請求の範囲に記載された発明とその均等の範囲に含まれる。   Although several embodiments of the present invention have been described, these embodiments are presented by way of example and are not intended to limit the scope of the invention. These novel embodiments can be implemented in various other forms, and various omissions, replacements, and changes can be made without departing from the scope of the invention. These embodiments and modifications thereof are included in the scope and gist of the invention, and are included in the invention described in the claims and the equivalents thereof.

1…SSD、10…プロセッサ、11…RAM、12…タイマ、13…インターフェースコントローラ、14…インターフェース、15…共有メモリ、16…NANDコントローラ、17…NAND型フラッシュメモリ、18…デバッグ用インターフェース回路、19…バス、20…メモリセルアレイ、21…ビット線制御回路、22…カラムデコーダ、23…ワード線制御回路、24…制御回路、25…制御信号入力端子、26…データ入出力端子、27…データ入出力バッファ、30…アクセス検知部、31A…アクセスカウンタ、31B…タイマカウンタ、40…暗号化/復号化回路。   DESCRIPTION OF SYMBOLS 1 ... SSD, 10 ... Processor, 11 ... RAM, 12 ... Timer, 13 ... Interface controller, 14 ... Interface, 15 ... Shared memory, 16 ... NAND controller, 17 ... NAND flash memory, 18 ... Interface circuit for debugging, 19 ...... Bus, 20 ... Memory cell array, 21 ... Bit line control circuit, 22 ... Column decoder, 23 ... Word line control circuit, 24 ... Control circuit, 25 ... Control signal input terminal, 26 ... Data input / output terminal, 27 ... Data input Output buffer, 30... Access detection unit, 31 A... Access counter, 31 B... Timer counter, 40.

Claims (5)

複数のプロセッサと、
前記複数のプロセッサに共通して設けられたタイマと、
前記複数のプロセッサに対応して設けられ、複数のイベントログをそれぞれ格納する複数の記憶領域と、
を具備し、
前記タイマは、時間情報を計測する第1のカウンタと、前記複数のプロセッサが前記タイマにアクセスするごとにカウントアップする第2のカウンタとを含み、
前記複数のイベントログは、前記タイマの値から得られるタイムスタンプを含み、
前記タイムスタンプに基づいて、前記複数のプロセッサが行った処理の時間間隔及び順序を参照できることを特徴とするマルチプロセッサシステム。
Multiple processors,
A timer provided in common to the plurality of processors;
A plurality of storage areas provided corresponding to the plurality of processors, each storing a plurality of event logs;
Comprising
The timer includes a first counter that measures time information, and a second counter that counts up each time the plurality of processors access the timer,
The plurality of event logs include a time stamp obtained from the value of the timer,
A multiprocessor system, wherein a time interval and a sequence of processing performed by the plurality of processors can be referred to based on the time stamp.
前記タイマは、前記複数のプロセッサが前記タイマにアクセスしたことを検知する検知部をさらに含むことを特徴とする請求項1に記載のマルチプロセッサシステム。   The multiprocessor system according to claim 1, wherein the timer further includes a detection unit that detects that the plurality of processors have accessed the timer. 前記第1のカウンタは、基準クロックをカウントアップすることを特徴とする請求項1又は2に記載のマルチプロセッサシステム。   The multiprocessor system according to claim 1, wherein the first counter counts up a reference clock. 複数のプロセッサと、
前記複数のプロセッサに共通して設けられたタイマと、
前記複数のプロセッサに対応して設けられ、複数のイベントログをそれぞれ格納する複数の記憶領域と、
を具備し、
前記複数のイベントログは、前記タイマの値から得られるタイムスタンプを含み、
前記タイムスタンプに基づいて、前記複数のプロセッサが行った処理の時間間隔及び順序を参照できることを特徴とするマルチプロセッサシステム。
Multiple processors,
A timer provided in common to the plurality of processors;
A plurality of storage areas provided corresponding to the plurality of processors, each storing a plurality of event logs;
Comprising
The plurality of event logs include a time stamp obtained from the value of the timer,
A multiprocessor system, wherein a time interval and a sequence of processing performed by the plurality of processors can be referred to based on the time stamp.
不揮発性メモリと、
前記複数のプロセッサの指示に応じて前記不揮発性メモリを制御するメモリコントローラと、
をさらに具備することを特徴とする請求項1乃至4のいずれかに記載のマルチプロセッサシステム。
Non-volatile memory;
A memory controller that controls the nonvolatile memory in accordance with instructions from the plurality of processors;
The multiprocessor system according to claim 1, further comprising:
JP2012061072A 2012-03-16 2012-03-16 Multiprocessor system Pending JP2013196195A (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2012061072A JP2013196195A (en) 2012-03-16 2012-03-16 Multiprocessor system

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2012061072A JP2013196195A (en) 2012-03-16 2012-03-16 Multiprocessor system

Publications (1)

Publication Number Publication Date
JP2013196195A true JP2013196195A (en) 2013-09-30

Family

ID=49395106

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2012061072A Pending JP2013196195A (en) 2012-03-16 2012-03-16 Multiprocessor system

Country Status (1)

Country Link
JP (1) JP2013196195A (en)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2017199117A (en) * 2016-04-26 2017-11-02 日立オートモティブシステムズ株式会社 Information processor, information processing system

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2017199117A (en) * 2016-04-26 2017-11-02 日立オートモティブシステムズ株式会社 Information processor, information processing system

Similar Documents

Publication Publication Date Title
US20170329667A1 (en) Nonvolatile memory device and read and copy-back methods thereof
US20160357462A1 (en) Nonvolatile Memory Modules and Data Management Methods Thereof
US11030096B2 (en) Method of identifying and preparing a key block in a flash memory system and memory controller therefor
JP6258399B2 (en) Semiconductor device
CN104064217A (en) Test method for nonvolatile memory
EP3474282A2 (en) Method and apparatus for adjusting demarcation voltages based on cycle count metrics
CN104916315A (en) Semiconductor memory device
KR20150053092A (en) Data storing system and operating method thereof
KR20170070921A (en) Storage device and operating method of storage device
US10241678B2 (en) Data storage device and data writing method capable of avoiding repeated write operation of a TLC block when interrupted
JP6399523B2 (en) Method and memory device for protecting the contents of a memory device
TW201308081A (en) Memory device
KR20150029402A (en) Data storing system and operating method thereof
US20150046638A1 (en) Multi-bit memory device and on-chip buffered program method thereof
KR102603243B1 (en) Semiconductor memory device and operating method thereof
KR20150047821A (en) Semiconductor memory device, memory system including the same and operating method thereof
CN110660436B (en) Semiconductor memory device and memory controller
US9146824B1 (en) Management of bit line errors based on a stored set of data
US9507710B2 (en) Command execution using existing address information
US11630726B2 (en) Memory system and operating method thereof
US10073741B2 (en) Memory system with reduced program time and method of operating the same
TWI442406B (en) Method for enhancing verification efficiency regarding error handling mechanism of a controller of a flash memory, and associated memory device and controller thereof
JP2006338083A (en) Memory controller
KR102106959B1 (en) Multi level cell nonvolatile memory system
JP2013196195A (en) Multiprocessor system

Legal Events

Date Code Title Description
RD04 Notification of resignation of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7424

Effective date: 20131205

RD04 Notification of resignation of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7424

Effective date: 20131212

RD04 Notification of resignation of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7424

Effective date: 20131219

RD04 Notification of resignation of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7424

Effective date: 20131226

RD04 Notification of resignation of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7424

Effective date: 20140109