JP2002367397A - Memory testing and initializing circuit - Google Patents

Memory testing and initializing circuit

Info

Publication number
JP2002367397A
JP2002367397A JP2001168207A JP2001168207A JP2002367397A JP 2002367397 A JP2002367397 A JP 2002367397A JP 2001168207 A JP2001168207 A JP 2001168207A JP 2001168207 A JP2001168207 A JP 2001168207A JP 2002367397 A JP2002367397 A JP 2002367397A
Authority
JP
Japan
Prior art keywords
memory
initialization
data
test
address
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
JP2001168207A
Other languages
Japanese (ja)
Inventor
Tomohito Inoue
智史 井上
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 JP2001168207A priority Critical patent/JP2002367397A/en
Publication of JP2002367397A publication Critical patent/JP2002367397A/en
Pending legal-status Critical Current

Links

Landscapes

  • For Increasing The Reliability Of Semiconductor Memories (AREA)
  • Tests Of Electronic Circuits (AREA)
  • Static Random-Access Memory (AREA)
  • Techniques For Improving Reliability Of Storages (AREA)
  • Memory System Of A Hierarchy Structure (AREA)

Abstract

PROBLEM TO BE SOLVED: To allow a BIST (Built-In Self Test) circuit used for a manufacturing test of a LSI internal memory, to be used for initializing a cache memory also. SOLUTION: This circuit is provided with an address generating section 1102 generating an address of a memory in/from which data are written or read out, a data generating section 1104 generating data written in a memory, a memory control section 1103 selecting a memory performing a test or initialization and generating a control signal for a selected memory, and a memory test and initialization circuit control section 1107 making the memory control section 1103 generate a signal allowing a memory to be tested to be in a writable state or a readable state, making the address generating section 1102 generate an address to write test data or to read test data, making the data generating section 1104 generating test data, also, making the memory control section 1103 generate a signal allowing an effective bit of a memory to be initialized to be in a writable state, making the address generating section 1102 generate an address to write initialization data, and making the data generating section 1104 generate an initialization data.

Description

【発明の詳細な説明】DETAILED DESCRIPTION OF THE INVENTION

【0001】[0001]

【発明の属する技術分野】本発明は、メモリテスト兼初
期化回路およびその方法に関し、特にBIST(組み込
み自己テスト、Build-In Self Test)回路を用いてメモ
リを初期化する技術に関する。
BACKGROUND OF THE INVENTION 1. Field of the Invention The present invention relates to a memory test and initialization circuit and a method thereof, and more particularly to a technique for initializing a memory using a BIST (Build-In Self Test) circuit.

【0002】[0002]

【従来の技術】近年のマイクロプロセッサには性能向上
のためにキャッシュメモリを使用することが一般的であ
る。キャッシュメモリは、外部メモリ上に置かれている
プログラムやデータの一部をプロセッサコアの近くに置
くためのものである。外部メモリは容量は大きく安価で
あるもののアクセス速度が遅いという欠点がある。よく
使うプログラムやデータを速やかにアクセスするために
プログラムやデータの一部をプロセッサコアの近くにコ
ピーして置いておくための高速なメモリがキャッシュメ
モリである。キャッシュメモリは高速であるが高価であ
るため小容量しか用いることができず、プログラムおよ
びデータの一部を格納するためにしか使用できない。キ
ャッシュメモリとしてはSRAM(スタティックランダ
ムアクセスメモリ)が使用されることが多い。
2. Description of the Related Art In recent microprocessors, a cache memory is generally used to improve performance. The cache memory is for storing a part of a program or data stored in an external memory near a processor core. The external memory has a disadvantage that the capacity is large and inexpensive, but the access speed is slow. A cache memory is a high-speed memory for copying a part of a program or data near a processor core to quickly access frequently used programs or data. A cache memory is fast but expensive and can only use a small capacity, and can only be used to store programs and some of the data. An SRAM (static random access memory) is often used as a cache memory.

【0003】プロセッサコアはプログラムやデータをま
ずキャッシュメモリに探しに行き、キャッシュメモリに
格納されていない場合に外部メモリにアクセスする。そ
のとき、外部メモリ上の値をキャッシュメモリにコピー
する。次にそのプログラムやデータを使用する際には、
キャッシュメモリ上にコピーされている値を使用するこ
とになり、高速動作が可能となる。
A processor core first searches for a program or data in a cache memory, and accesses an external memory when the program or data is not stored in the cache memory. At that time, the value on the external memory is copied to the cache memory. The next time you use that program or data,
Since the value copied on the cache memory is used, high-speed operation is possible.

【0004】次に、プロセッサコアが出力するアドレス
を簡単に説明する。プロセッサコアが出力するアドレス
は、タグと、インデックスと、ブロック内オフセット
と、その他からなる。例えば、32ビット長のアドレス
の場合、ビット[31:12]をタグとし、ビット[1
1:4]をインデックスとし、ビット[3:2]をブロ
ック内オフセットとし、最下位2ビット[1:0]はキ
ャッシュメモリに対しては意味を持たないものとする。
Next, addresses output by the processor core will be briefly described. The address output by the processor core includes a tag, an index, an offset in a block, and others. For example, in the case of a 32-bit address, bits [31:12] are used as a tag, and bits [1]
1: 4] is used as an index, bits [3: 2] are used as an offset in a block, and the least significant two bits [1: 0] have no meaning for the cache memory.

【0005】次に命令キャッシュメモリの構成を簡単に
説明する。キャッシュメモリはタグ部とデータ部とから
構成される。なお、ここで言う「データ」とは「タグ」
に関連付けられた所定数の命令からなる命令ブロックを
意味する。所定数とは、例えば4である。
Next, the configuration of the instruction cache memory will be briefly described. The cache memory includes a tag section and a data section. The "data" here is a "tag"
Means an instruction block composed of a predetermined number of instructions associated with. The predetermined number is, for example, four.

【0006】タグ部は有効ビットとタグとから構成され
る。この命令キャッシュメモリのタグは、プロセッサコ
アが出力するアドレスのタグに対応するものである。
[0006] The tag section is composed of a valid bit and a tag. The tag of the instruction cache memory corresponds to the tag of the address output by the processor core.

【0007】プロセッサコアの出力するアドレスのイン
デックスにより、命令キャッシュメモリ内の一組の有効
ビットとタグとが特定され、読み出される。
[0007] A set of valid bits and a tag in the instruction cache memory is specified by the index of the address output from the processor core and read.

【0008】有効ビットの値が0である場合、対応する
命令ブロックに格納されている命令には意味がない(無
効である)ことがわかり、外部メモリにアクセスして所
望の命令を読み出す。読み出した命令はプロセッサコア
が使用すると同時に命令キャッシュメモリ内に格納す
る。その際、命令キャッシュメモリ内のタグに、プロセ
ッサコアが出力するアドレスのタグを書き込む。また、
有効ビットに1を設定することにより命令ブロック内に
有効な命令が格納されていることを示す。
When the value of the valid bit is 0, it is found that the instruction stored in the corresponding instruction block has no meaning (invalid), and the external memory is accessed to read a desired instruction. The read instruction is stored in the instruction cache memory at the same time as the processor core uses it. At that time, the tag of the address output by the processor core is written to the tag in the instruction cache memory. Also,
Setting the valid bit to 1 indicates that a valid instruction is stored in the instruction block.

【0009】有効ビットの値が1である場合、命令キャ
ッシュメモリ内のタグとプロセッサコアが出力するアド
レスのタグとを比較し、それらタグが一致すれば所望の
命令が命令キャッシュメモリ内にあることになり、命令
ブロックが読み出される。命令キャッシュメモリ内のタ
グとプロセッサコアが出力するアドレスのタグとが一致
しなければ命令キャッシュメモリ内に所望の命令がない
ことになり、外部メモリにアクセスを行なう。
When the value of the valid bit is 1, the tag in the instruction cache memory is compared with the tag at the address output by the processor core. If the tags match, the desired instruction is in the instruction cache memory. , And the instruction block is read. If the tag in the instruction cache memory does not match the tag of the address output by the processor core, there is no desired instruction in the instruction cache memory, and the external memory is accessed.

【0010】上記の如く、命令キャッシュメモリ内の有
効ビットが命令ブロックに格納されている命令が有効か
無効かを示す。マイクロプロセッサ起動時(リセット直
後)には命令キャッシュメモリ内には有効な命令は格納
されていないので、有効ビットは0でなければならな
い。しかし、一般にメモリの初期値は不定であり、0に
なるか1になるか予測できない。このため、有効ビット
を0に設定する操作が必要である。さもないと、有効ビ
ットの初期値が1であった場合に、命令キャッシュメモ
リから誤った命令を読み出してしまうことになる。
As described above, the valid bit in the instruction cache memory indicates whether the instruction stored in the instruction block is valid or invalid. At the time of starting the microprocessor (immediately after resetting), no valid instruction is stored in the instruction cache memory, so the valid bit must be 0. However, the initial value of the memory is generally undefined, and it cannot be predicted whether it will be 0 or 1. Therefore, an operation for setting the valid bit to 0 is required. Otherwise, if the initial value of the valid bit is 1, an erroneous instruction will be read from the instruction cache memory.

【0011】また一方、LSI内蔵メモリの製造テスト
を目的として、メモリBISTという方法が広く用いら
れている。これは、メモリをテストするためのパターン
生成および期待値比較を行なう回路をLSIに内蔵する
ことによりテストの手間を削減するものである。
On the other hand, a method called a memory BIST is widely used for the purpose of manufacturing test of a memory with built-in LSI. This is to reduce the trouble of the test by incorporating a circuit for performing pattern generation and an expected value comparison for testing a memory in an LSI.

【0012】メモリBIST回路はメモリのすべての領
域に対して、0を書き込んで読み出す、1を書き込んで
読み出す、といったテストを行い、正しく動作している
か否かを判断する。LSI外部からテスト開始信号を送
ると上記動作を行い、一連のテストが終了したのち、L
SI外部から結果読み出し信号を送るとテスト結果がL
SI外部にもたらされる。
The memory BIST circuit performs a test of writing and reading 0 and writing and reading 1 for all areas of the memory to determine whether or not the memory operates properly. The above operation is performed when a test start signal is sent from outside the LSI, and after a series of tests is completed,
When a result read signal is sent from outside the SI, the test result is L
Brought outside the SI.

【0013】[0013]

【発明が解決しようとする課題】有効ビットを初期化す
る(この例では0にする)方法はいくつかある。たとえ
ば、キャッシュメモリを使用しないモードでプロセッサ
コアを動作させプログラムで0を書き込む方法がある。
この方法では、時間がかかる、ということと、そのため
のプログラムが必要になる、という問題点がある。また
リセット信号によって内部の値を0にするような機能を
持ったメモリをキャッシュメモリとして用いる方法があ
るが、普通のSRAMにはそのような機能はついていな
いため、専用のメモリをつくることになり開発費がかか
るという問題がある。
There are several ways to initialize the valid bit (to 0 in this example). For example, there is a method in which a processor core is operated in a mode in which a cache memory is not used and 0 is written by a program.
This method has problems that it takes time and that a program is required. In addition, there is a method of using a memory having a function of resetting an internal value to 0 by a reset signal as a cache memory. However, since a general SRAM does not have such a function, a dedicated memory is created. There is a problem that development costs are required.

【0014】[0014]

【課題を解決するための手段】本発明の第1の特徴は、
データを書き込む、あるいはデータを読み出すメモリの
アドレスを生成するアドレス生成部と、メモリに書き込
むデータを生成するデータ生成部と、テストまたは初期
化を行なうメモリを選択し、選択したメモリに対する制
御信号を生成するメモリ制御部と、テストの開始を示す
信号を認識したら、前記メモリ制御部にテスト対象選択
・制御信号を、前記アドレス生成部にテスト用アドレス
生成開始信号を、前記データ生成部にテスト用データ生
成開始信号をそれぞれ送り、また、メモリ初期化の開始
を示す信号を認識したら、前記メモリ制御部に初期化対
象選択・制御信号を、前記アドレス生成部に初期化用ア
ドレス生成開始信号を、前記データ生成部に初期化用デ
ータ生成開始信号をそれぞれ送るメモリテスト兼初期化
回路制御部とを備え、前記メモリ制御部は、前記テスト
対象選択・制御信号を受けたら、テスト対象メモリを書
き込み可能状態または読み出し可能状態とする信号を生
成し、また、前記初期化対象選択・制御信号を受けた
ら、初期化対象メモリの有効ビットを書き込み可能状態
とする信号を生成し、前記アドレス生成部は、前記テス
ト用アドレス生成開始信号を受けたら、テスト用データ
を書き込むべきアドレスまたはテスト用データを読み出
すべきアドレスを生成し、また、前記初期化用アドレス
生成開始信号を受けたら、初期化用データを書き込むべ
きアドレスを生成し、前記データ生成部は、前記テスト
用データ生成開始信号を受けたら、テスト用データの生
成を開始し、また、前記初期化用データ生成開始信号を
受けたら、初期化用データの生成を開始する、ことにあ
る。
A first feature of the present invention is as follows.
Selects an address generation unit that generates an address of a memory to which data is written or read, a data generation unit that generates data to be written to the memory, and a memory to be tested or initialized, and generates a control signal for the selected memory. When the memory control unit and the signal indicating the start of the test are recognized, a test target selection / control signal is transmitted to the memory control unit, a test address generation start signal is transmitted to the address generation unit, and test data is transmitted to the data generation unit. Sending a generation start signal, and when recognizing a signal indicating the start of memory initialization, an initialization target selection / control signal to the memory control unit, an initialization address generation start signal to the address generation unit, A memory test and initialization circuit control unit that sends a data generation start signal for initialization to the data generation unit is provided. Receiving the test target selection / control signal, the memory control unit generates a signal for setting the test target memory to a writable state or a readable state, and receiving the initialization target selection / control signal, The address generation unit generates a signal for setting a valid bit of the initialization target memory to a writable state, and receives the test address generation start signal. Also, when receiving the initialization address generation start signal, generates an address to which the initialization data is to be written, and the data generator, when receiving the test data generation start signal, Generation of the initialization data, and upon receipt of the initialization data generation start signal, starts the generation of the initialization data. To, lies in the fact.

【0015】かかる第1の特徴により、テストの開始を
示す信号を認識したら、メモリ制御部に、テスト対象メ
モリを書き込み可能状態または読み出し可能状態とさ
せ、アドレス生成部に、テストデータを書き込むべきア
ドレスまたはテストデータを読み出すべきアドレスを生
成させ、データ生成部に、テストデータを生成させるこ
とによって、メモリのテストが可能となり、また、メモ
リ初期化の開始を示す信号を認識したら、メモリ制御部
に、初期化対象メモリの有効ビットを書き込み可能状態
とさせ、アドレス生成部に、初期化データを書き込むべ
きアドレスを生成させ、データ生成部に、初期化データ
を生成させることによって、メモリの初期化が可能とな
る。
According to the first feature, when the signal indicating the start of the test is recognized, the memory control unit causes the memory to be tested to be in a writable state or a readable state, and the address generation unit has an address to which the test data is to be written. Alternatively, a memory test can be performed by generating an address from which test data is to be read, and by causing the data generation unit to generate test data.When a signal indicating the start of memory initialization is recognized, the memory control unit Memory can be initialized by setting the valid bits of the initialization target memory to a writable state, causing the address generation unit to generate an address to which the initialization data should be written, and causing the data generation unit to generate the initialization data. Becomes

【0016】[0016]

【発明の実施の形態】(1)第1の実施形態 図1は、本発明の第1の実施形態に係るBIST回路
と、プロセッサコア、キャッシュメモリタグ部、キャッ
シュメモリデータ部、メモリコントローラ等との接続関
係を示す。
DESCRIPTION OF THE PREFERRED EMBODIMENTS (1) First Embodiment FIG. 1 shows a BIST circuit according to a first embodiment of the present invention, including a processor core, a cache memory tag section, a cache memory data section, a memory controller, and the like. Shows the connection relationship.

【0017】図1には、プロセッサコア101の内部ユ
ニットとして、キャッシュメモリの制御を行なうキャッ
シュコントロールユニット102と、バスの制御を行な
うバスインタフェースユニット103との2つのみを示
す。またプロセッサコア101の外部信号もこれら2つ
のユニットに関するもののみを示す。
FIG. 1 shows only two internal units of the processor core 101: a cache control unit 102 for controlling a cache memory and a bus interface unit 103 for controlling a bus. Also, the external signals of the processor core 101 also indicate only those relating to these two units.

【0018】また、BIST回路151の内部に関して
は、プロセッサインタフェースユニット1108、AC
Tビットレジスタ1109およびENDビットレジスタ
1110のみを示す。
Further, regarding the inside of the BIST circuit 151, the processor interface unit 1108, the AC
Only the T bit register 1109 and the END bit register 1110 are shown.

【0019】バスインタフェースユニット103、プロ
セッサインタフェースユニット1108およびメモリコ
ントローラ106は、オンチップバス111を介して、
相互にアドレス、データ、制御信号の送受信を行う。メ
モリコントローラ106は、外部メモリ(図示せず)へ
のアクセスを行なう。
The bus interface unit 103, the processor interface unit 1108 and the memory controller 106 are connected via an on-chip bus 111
Address, data, and control signals are mutually transmitted and received. The memory controller 106 accesses an external memory (not shown).

【0020】キャッシュメモリタグ部104およびキャ
ッシュメモリデータ部105には、信号として、クロッ
クCLK、アドレス入力A、データ入力D、データ出力
Q、読み出しイネーブルRE、書き込みイネーブルWE
がある。これらのうち、アドレス入力A,データ入力
D,データ出力Qは複数ビットからなる信号である。ク
ロックCLK以外の信号は、プロセッサコア101のキ
ャッシュコントロールユニット102と接続されてい
る。クロックCLKはチップ外部あるいはPLL(Phase
Locked Loop)といったクロック生成回路(図示せず)
から供給される。
The cache memory tag unit 104 and the cache memory data unit 105 receive signals such as a clock CLK, an address input A, a data input D, a data output Q, a read enable RE, and a write enable WE.
There is. Of these, the address input A, the data input D, and the data output Q are signals composed of a plurality of bits. Signals other than the clock CLK are connected to the cache control unit 102 of the processor core 101. The clock CLK is external to the chip or a PLL (Phase
Clock generation circuit such as Locked Loop (not shown)
Supplied from

【0021】さらに、キャッシュメモリタグ部104お
よびキャッシュメモリデータ部105には、信号とし
て、テスト用または初期化用のアドレスTA、データ入
力TD、データ出力TQ、読み出しイネーブルTRE、
書き込みイネーブルTWEを備えている。これら「T」
付信号は「T」無しの信号と基本的には同じ機能であ
る。キャッシュメモリテスト時または初期化時には
「T」付、ノーマルモード時には「T」無しの信号を用
いる。TA,TD,TQはそれぞれ、A,D,Qと同じ
ビット幅を持つ。またテストモードとノーマルモードと
を切り替えるTEST信号を有する。
Further, the cache memory tag section 104 and the cache memory data section 105 have signals as test or initialization address TA, data input TD, data output TQ, read enable TRE,
A write enable TWE is provided. These "T"
The attached signal has basically the same function as the signal without "T". A signal with "T" is used at the time of a cache memory test or initialization, and a signal without "T" is used at the time of a normal mode. TA, TD, and TQ have the same bit width as A, D, and Q, respectively. Further, it has a TEST signal for switching between a test mode and a normal mode.

【0022】BIST回路151は、「T」付信号と接
続する。TA,TDについてはタグ部104とデータ部
105とに共通の信号とし、テスト用読み出しイネーブ
ルTREあるいはテスト用書き込みイネーブルTWEで
2つのメモリの区別をする。また、BIST回路151
は、クロックCLKと3本の制御信号とを備えている。
制御信号は、テスト動作を行なうためのビルトインセル
フテストイネーブルBISTE、テスト結果を出力させ
るためのビルトインセルフテストシフトイネーブルBS
FTE、そしてテスト結果BOUTがある。これらのテ
スト信号を操作してキャッシュメモリテストまたは初期
化を行なう。
The BIST circuit 151 is connected to a signal with "T". TA and TD are signals common to the tag unit 104 and the data unit 105, and the two memories are distinguished by the test read enable TRE or the test write enable TWE. Also, the BIST circuit 151
Has a clock CLK and three control signals.
The control signal includes a built-in self-test enable BISTE for performing a test operation and a built-in self-test shift enable BS for outputting a test result.
FTE and test result BOUT. By operating these test signals, a cache memory test or initialization is performed.

【0023】次にキャッシュメモリの構成について説明
する。
Next, the configuration of the cache memory will be described.

【0024】キャッシュメモリタグ部およびキャッシュ
メモリデータ部はテスト対応の同期型SRAMであり、
テスト用のアドレスTA、テスト用のデータ入力TD、
テスト用のデータ出力TQ、テスト用の読み出しイネー
ブルTRE、テスト用の書き込みイネーブルTWEを備
えている。
The cache memory tag section and the cache memory data section are test-type synchronous SRAMs.
A test address TA, a test data input TD,
A test data output TQ, a test read enable TRE, and a test write enable TWE are provided.

【0025】図2は、第1の実施形態に係るBIST回
路の内部構成を示す図である。
FIG. 2 is a diagram showing the internal configuration of the BIST circuit according to the first embodiment.

【0026】メモリBIST回路151はアドレス生成
部1102、メモリ制御部1103、データ生成部11
04、シグネチャレジスタ1105、データマルチプレ
クサ(MUX)1106、BIST制御部1107およ
びプロセッサインタフェース1108からなる。
The memory BIST circuit 151 includes an address generator 1102, a memory controller 1103, and a data generator 11.
04, a signature register 1105, a data multiplexer (MUX) 1106, a BIST control unit 1107, and a processor interface 1108.

【0027】プロセッサインタフェース1108は、A
CTビットレジスタ1109およびENDビットレジス
タ1110を有する。ACTビットレジスタ1109は
プロセッサコア101から書き込み可能なレジスタであ
り、ENDビットレジスタ1110はプロセッサコア1
01から読み出し可能なレジスタである。
The processor interface 1108
It has a CT bit register 1109 and an END bit register 1110. The ACT bit register 1109 is a register writable from the processor core 101, and the END bit register 1110 is
It is a register that can be read from 01.

【0028】ACTビットレジスタ1109およびEN
Dビットレジスタ1110の書き込みおよび読み出しの
ためにオンチップバス111のアドレス線、データ線、
制御信号線がBIST回路151に接続される(図
1)。
ACT bit register 1109 and EN
To write and read the D-bit register 1110, an address line, a data line,
The control signal line is connected to the BIST circuit 151 (FIG. 1).

【0029】アドレス生成部1102は、データを書き
込む、あるいはデータを読み出すキャッシュメモリのア
ドレスTAを生成する。
The address generator 1102 generates an address TA of the cache memory from which data is written or from which data is read.

【0030】データ生成部1103は、キャッシュメモ
リに書き込むテスト用データまたは初期化用データ(T
D_even、TD_odd)を生成する。
The data generation unit 1103 generates test data or initialization data (T
D_even, TD_odd).

【0031】メモリ制御部1104は、テストまたは初
期化を行なうキャッシュメモリを選択し、選択したキャ
ッシュメモリに対する制御信号(I_TAG_TRE、
I_DAT_TRE、I_TAG_TWE、I_DAT
_TWE)を生成する。
Memory control section 1104 selects a cache memory to be tested or initialized, and controls signals (I_TAG_TRE,
I_DAT_TRE, I_TAG_TWE, I_DAT
_TWE).

【0032】データマルチプレクサ1106は、メモリ
制御部1103から選択信号を受け取り、テスト対象ま
たは初期化対象のキャッシュメモリが出力したデータ
(I_TAG_TQ、I_DAT_TQ)のいずれかを
選択し、出力する。
The data multiplexer 1106 receives the selection signal from the memory control unit 1103, selects and outputs any of the data (I_TAG_TQ, I_DAT_TQ) output from the cache memory to be tested or initialized.

【0033】シグネチャレジスタ1105は、データマ
ルチプレクサ1106が出力したデータ(I_TAG_
TQ、I_DAT_TQ)を圧縮して蓄える。
The signature register 1105 stores the data (I_TAG_) output from the data multiplexer 1106.
TQ, I_DAT_TQ) are compressed and stored.

【0034】BIST制御部1107は、後述するよう
にアドレス生成部1102、メモリ制御部1103、デ
ータ生成部1104およびシグネチャレジスタ1105
を制御する。
The BIST control unit 1107 includes an address generation unit 1102, a memory control unit 1103, a data generation unit 1104, and a signature register 1105, as described later.
Control.

【0035】プロセッサインタフェース1108内のA
CTビットレジスタ1109には、プロセッサコア10
1によって、キャッシュメモリ初期化モードでの動作を
指示するビットが書き込まれる。また、ENDビットレ
ジスタ1110には、BIST制御部1107によっ
て、キャッシュメモリ初期化モードの動作が終了したこ
とを指示するビットが書き込まれる。これらのビットは
ノーマルモード(BISTE=0)で機能する。
A in processor interface 1108
The CT bit register 1109 contains the processor core 10
By 1, a bit indicating operation in the cache memory initialization mode is written. In the END bit register 1110, a bit indicating that the operation in the cache memory initialization mode has been completed is written by the BIST control unit 1107. These bits function in normal mode (BISTE = 0).

【0036】第1の実施形態では、プロセッサコア10
1がACTビットレジスタ1109に初期化開始を示す
値を書き込むと、BIST制御部1107がキャッシュ
メモリタグ部104の有効ビットの初期化を開始する。
また、キャッシュメモリの初期化が終了すると、BIS
T制御部1107がENDビットレジスタ1110に初
期化終了を示す値を書き込み、プロセッサコア101は
キャッシュメモリが使用可能であることを知らせる。
In the first embodiment, the processor core 10
When 1 writes a value indicating the start of initialization to the ACT bit register 1109, the BIST control unit 1107 starts to initialize the valid bit of the cache memory tag unit 104.
When the initialization of the cache memory is completed, the BIS
The T control unit 1107 writes a value indicating the end of initialization to the END bit register 1110, and the processor core 101 notifies that the cache memory can be used.

【0037】図3はデータ生成部の内部構成を示す図で
ある。
FIG. 3 is a diagram showing the internal configuration of the data generator.

【0038】セレクタ1141〜1143の下から入る
信号が選択信号で、選択信号が1のときに、各セレクタ
の左側に接続されている2本の入力信号のうち「1」と
書いてある側の信号が出力され、選択信号が0のとき
に、「0」と書いてある側の信号が出力される。
A signal input from below the selectors 1141 to 1143 is a selection signal. When the selection signal is 1, one of the two input signals connected to the left side of each selector is described as "1". The signal is output, and when the selection signal is 0, the signal on the side where "0" is written is output.

【0039】フリップフロップ回路1144には、左下
部からクロックCLKが入力され、左上部から入力され
た信号が1クロック送れて右上部から出力され、その反
転信号が右下部から出力される。
A clock CLK is input from the lower left to the flip-flop circuit 1144, a signal input from the upper left is sent by one clock, output from the upper right, and an inverted signal thereof is output from the lower right.

【0040】データ生成部1104のデータ出力はTD
_oddとTD_evenの2本で、TD_oddはメ
モリの奇数ビット目のデータ線(TD[1]、TD[3]、
TD[5]、...)に接続され、TD_evenは偶数
ビット目のデータ線(TD[0]、TD[2]、TD
[4]、...)に接続される。データ生成部1104
は、BIST制御部1107から入力される指示(信
号)に従って、(TD_odd,TD_even)=(0,
0),(0,1),(1,0),(1,1)の4通りの値を出力する。
The data output of the data generator 1104 is TD
_Odd and TD_even, and TD_odd is an odd-numbered bit data line (TD [1], TD [3],
TD [5],. . . ), And TD_even is an even-bit data line (TD [0], TD [2], TD
[4],. . . ). Data generation unit 1104
According to an instruction (signal) input from the BIST control unit 1107, (TD_odd, TD_even) = (0,
0), (0,1), (1,0), and (1,1) are output.

【0041】(0,0)は「00000000」の書き込みに、(0,1)
は「01010101」の書き込みに、(1,0)は「10101010」の
書き込みに、(1,1)は「11111111」の書き込みにそれぞ
れ使用する。
(0,0) is for writing (00000000) and (0,1)
Is used for writing "01010101", (1,0) is used for writing "10101010", and (1,1) is used for writing "11111111".

【0042】データ生成部1104の使い方は次のとお
りである。なお、「x」 は1または0のどちらでも良い
ことを示す。動作0〜9は、後述するマーチングテスト
の動作0〜9に対応する。
The usage of the data generator 1104 is as follows. Note that “x” indicates that either 1 or 0 may be used. Operations 0 to 9 correspond to operations 0 to 9 of a marching test described later.

【0043】動作0:(rst_bg, inv_bg, next_bg) =
(1,0,x) が入力されて、(TD_odd, TD_even) = (1,1)が
出力され、 動作1:(rst_bg, inv_bg, next_bg) = (1,1,x) が入力
されて、(TD_odd, TD_even) = (0,0)が出力され、 動作2:(rst_bg, inv_bg, next_bg) = (1,0,x) が入力
されて、(TD_odd, TD_even) = (1,1)が出力され、 動作3:(rst_bg, inv_bg, next_bg) = (1,1,x) が入力
されて、(TD_odd, TD_even) = (0,0)が出力され、 動作4:(rst_bg, inv_bg, next_bg) = (1,0,x) が入力
されて、(TD_odd, TD_even) = (1,1)が出力され、 動作5:(rst_bg, inv_bg, next_bg) = (0,0,*) が入力
されて、(TD_odd, TD_even) = (1,0)が出力され、 動作6:(rst_bg, inv_bg, next_bg) = (0,1,x) が入力
されて、(TD_odd, TD_even) = (0,1)が出力され、 動作7:(rst_bg, inv_bg, next_bg) = (0,0,x) が入力
されて、(TD_odd, TD_even) = (1,0)が出力され、 動作8:(rst_bg, inv_bg, next_bg) = (0,1,x) が入力
されて、(TD_odd, TD_even) = (0,1)が出力され、 動作9:(rst_bg, inv_bg, next_bg) = (0,0,x) が入力
されて、(TD_odd, TD_even) = (1,0)が出力される。
Operation 0: (rst_bg, inv_bg, next_bg) =
(1,0, x) is input, (TD_odd, TD_even) = (1,1) is output, and operation 1: (rst_bg, inv_bg, next_bg) = (1,1, x) is input, (TD_odd, TD_even) = (0,0) is output. Operation 2: (rst_bg, inv_bg, next_bg) = (1,0, x) is input and (TD_odd, TD_even) = (1,1) is output. Output: Operation 3: (rst_bg, inv_bg, next_bg) = (1,1, x) is input and (TD_odd, TD_even) = (0,0) is output. Operation 4: (rst_bg, inv_bg, next_bg) ) = (1,0, x) is input and (TD_odd, TD_even) = (1,1) is output. Action 5: (rst_bg, inv_bg, next_bg) = (0,0, *) is input Then, (TD_odd, TD_even) = (1,0) is output. Operation 6: (rst_bg, inv_bg, next_bg) = (0,1, x) is input, and (TD_odd, TD_even) = (0,1) ) Is output, and operation 7: (rst_bg, inv_bg, next_bg) = (0,0, x) is input, (TD_odd, TD_even) = (1,0) is output, and operation 8: (rst_bg, inv_bg) , next_bg) = (0,1, x) is input and (TD_odd, TD_even) = (0,1) is output. Action 9: (rst_bg, in (v_bg, next_bg) = (0,0, x) is input and (TD_odd, TD_even) = (1,0) is output.

【0044】動作5のnext_bg=*は最初の1クロックだ
け1、その後のクロックは0であることを示す。他の信
号はその動作中、上記の値を維持する。
Next_bg = * in operation 5 indicates that only the first clock is 1 and subsequent clocks are 0. Other signals maintain the above values during their operation.

【0045】図4は、図1に示すBIST回路のテスト
モードまたはメモリ初期化モードにおける状態遷移を示
す。図4に基づき、BIST回路151のキャッシュメ
モリテストモードおよびキャッシュメモリ初期化モード
での動作を説明する。
FIG. 4 shows a state transition of the BIST circuit shown in FIG. 1 in a test mode or a memory initialization mode. The operation of the BIST circuit 151 in the cache memory test mode and the cache memory initialization mode will be described with reference to FIG.

【0046】<キャッシュメモリテストモード>まず、
キャッシュメモリテストモードについて説明する。テス
ト内容として例えば13Nマーチングテストがある。こ
れはメモリの各ワードに対して13回の書き込みあるい
は読み出しを行なうものである。また、メモリの各ワー
ドに対して26回の書き込みあるいは読み出しを行なう
26Nマーチングテストを用いても良い。
<Cache memory test mode>
The cache memory test mode will be described. The test content includes, for example, a 13N marching test. This is to write or read 13 times for each word of the memory. Alternatively, a 26N marching test for writing or reading 26 times for each word of the memory may be used.

【0047】(A)BIST制御部1107にBIST
E=0が入力されたら、クロックの立ち上がりエッジ
で、IDLEステート401へ遷移する(矢印A)。以
降すべての動作はクロックの立ち上がりに同期して起こ
るものとする。
(A) BIST control section 1107 provides BIST
When E = 0 is input, transition is made to the IDLE state 401 at the rising edge of the clock (arrow A). Hereinafter, all operations are performed in synchronization with the rising edge of the clock.

【0048】(B)BISTE=0である間は、IDL
Eステート401を維持する(矢印B)。
(B) While BISTE = 0, IDL
The E state 401 is maintained (arrow B).

【0049】(C)BIST制御部1107にBIST
E=1が入力されたら、次のクロックの立ち上がりエッ
ジで、STARTステート402へ遷移する(矢印
C)。
(C) The BIST control unit 1107
When E = 1 is input, transition is made to the START state 402 at the rising edge of the next clock (arrow C).

【0050】(D)STARTステート402では、メ
モリ選択・制御信号がBIST制御部1107から出力
され、メモリ制御部1103へ入力される。そして、ラ
イトイネーブル信号(I_TAG_TWE)が、メモリ
制御部1103から出力され、キャッシュメモリタグ部
104へ入力されるか、または、ライトイネーブル信号
(I_DAT_TWE)が、メモリ制御部1103から
出力され、キャッシュメモリデータ部105へ入力され
る。また、書き込みデータ(バックグランドデータ)が
選択される。そして、次のクロックの立ち上がりエッジ
で、WRBGステート403へ遷移する(矢印D)。
(D) In the START state 402, a memory selection / control signal is output from the BIST control unit 1107 and input to the memory control unit 1103. Then, the write enable signal (I_TAG_TWE) is output from the memory control unit 1103 and input to the cache memory tag unit 104, or the write enable signal (I_DAT_TWE) is output from the memory control unit 1103 and the cache memory data Input to the unit 105. Further, write data (background data) is selected. Then, the state transits to the WRBG state 403 at the rising edge of the next clock (arrow D).

【0051】(E)WRBGステート403では、テス
ト対象メモリの全ワードにバックグランドデータ(例え
ば、「1111....」)を書き込む。具体的には、
アドレス生成信号が、BIST制御部1107から出力
され、アドレス生成部1102へ入力され、これと同期
して、データ生成信号が、BIST制御部1107から
出力され、データ生成部1104へ入力される。
(E) In the WRBG state 403, background data (for example, “1111...”) Is written to all words of the memory to be tested. In particular,
The address generation signal is output from the BIST control unit 1107 and input to the address generation unit 1102. In synchronization with this, a data generation signal is output from the BIST control unit 1107 and input to the data generation unit 1104.

【0052】アドレス生成部1102においてテスト対
象メモリの最小アドレスから最大アドレスが順次生成さ
れ、かつこれらアドレスがアドレス生成部1102から
出力され、テスト対象メモリへ入力される。
The address generation unit 1102 sequentially generates the maximum address from the minimum address of the memory to be tested, and outputs these addresses from the address generation unit 1102 to be input to the memory to be tested.

【0053】アドレス生成と同期して、データ生成部1
104においてテストデータが生成され、かつかかるテ
ストデータがデータ生成部1104から出力され、テス
ト対象メモリへ入力される(矢印E)。
In synchronization with the address generation, the data generation unit 1
Test data is generated in 104, and the test data is output from the data generation unit 1104 and input to the test target memory (arrow E).

【0054】(F)アドレス生成部1102が出力する
アドレスが、テスト対象メモリの最大アドレスに達した
ら、つまりテスト対象メモリ内の全ワードへの書き込み
が終了したら、READステート404へ遷移する(矢
印F)。
(F) When the address output from the address generator 1102 reaches the maximum address of the memory to be tested, that is, when writing to all the words in the memory to be tested is completed, the state transits to the READ state 404 (arrow F). ).

【0055】(G)READステート404では、テス
ト対象メモリの全ワードから読み出しを行なう。バック
グランドデータとして「1111....」を書き込ん
だ場合、読み出し時の期待値は1である。具体的には、
メモリ選択・制御信号が、BIST制御部1107から
出力され、メモリ制御部1103へ入力される。
(G) In the READ state 404, reading is performed from all words of the memory to be tested. When "1111 ..." is written as background data, the expected value at the time of reading is 1. In particular,
A memory selection / control signal is output from the BIST control unit 1107 and input to the memory control unit 1103.

【0056】リードイネーブル信号(I_TAG_TR
E)が、メモリ制御部1103から出力され、キャッシ
ュメモリタグ部104へ入力されるか、または、リード
イネーブル信号(I_DAT_TRE)が、メモリ制御
部1103から出力され、キャッシュメモリデータ部1
05へ入力される。
Read enable signal (I_TAG_TR)
E) is output from the memory control unit 1103 and input to the cache memory tag unit 104, or the read enable signal (I_DAT_TRE) is output from the memory control unit 1103 and the cache memory data unit 1
05 is input.

【0057】アドレス生成信号が、BIST制御部11
07から出力され、アドレス生成部1102へ入力さ
れ、アドレス生成部1102においてテスト対象メモリ
の最小アドレスから最大アドレスが順次生成され、かつ
これらアドレスがアドレス生成部1102から出力さ
れ、テスト対象メモリへ入力される。
The address generation signal is transmitted to the BIST controller 11
07, is input to the address generation unit 1102, the address generation unit 1102 sequentially generates the maximum address from the minimum address of the test target memory, and these addresses are output from the address generation unit 1102 and input to the test target memory. You.

【0058】読み取りデータ(I_TAG_TQ)がキ
ャッシュメモリタグ部104から出力され、または読み
取りデータ(I_DAT_TQ)がキャッシュメモリデ
ータ部105から出力され、マルチプレクサ1106へ
入力される(矢印G)(H)アドレス生成部1102が
出力するアドレスが、テスト対象メモリの最大アドレス
に達したら、つまりテスト対象メモリ内の全ワードから
の読み出しが終了したら、WRITEステート405へ
遷移する(矢印H)。
The read data (I_TAG_TQ) is output from the cache memory tag unit 104, or the read data (I_DAT_TQ) is output from the cache memory data unit 105 and input to the multiplexer 1106 (arrow G) (H) address generation unit When the address output from the test target memory reaches the maximum address of the test target memory, that is, when reading from all the words in the test target memory is completed, the state transits to the WRITE state 405 (arrow H).

【0059】(I)WRITEステート405では、テ
スト対象メモリの全ワードへ、データ「000
0....」の書き込みを行なう。具体的には、メモリ
選択・制御信号が、BIST制御部1107から出力さ
れ、メモリ制御部1103へ入力される。そして、ライ
トイネーブル信号(I_TAG_TWE)が、メモリ制
御部1103から出力され、キャッシュメモリタグ部1
04へ入力されるか、または、ライトイネーブル信号
(I_DAT_TWE)が、メモリ制御部1103から
出力され、キャッシュメモリデータ部105へ入力され
る。
(I) In the WRITE state 405, data “000” is stored in all the words of the memory to be tested.
0. . . . Is written. Specifically, a memory selection / control signal is output from BIST control section 1107 and input to memory control section 1103. Then, a write enable signal (I_TAG_TWE) is output from the memory control unit 1103, and the cache memory tag unit 1
04 or a write enable signal (I_DAT_TWE) is output from the memory control unit 1103 and input to the cache memory data unit 105.

【0060】アドレス生成信号が、BIST制御部11
07から出力され、アドレス生成部1102へ入力さ
れ、アドレス生成部1102においてテスト対象メモリ
の最小アドレスから最大アドレスが順次生成され、かつ
これらアドレスがアドレス生成部1102から出力さ
れ、テスト対象メモリへ入力される。
The address generation signal is transmitted to the BIST controller 11
07, is input to the address generation unit 1102, the address generation unit 1102 sequentially generates the maximum address from the minimum address of the test target memory, and these addresses are output from the address generation unit 1102 and input to the test target memory. You.

【0061】アドレス生成と同期して、データ生成部1
104においてテストデータが生成され、かつかかるテ
ストデータがデータ生成部1104から出力され、テス
ト対象メモリへ入力される(矢印I)。
In synchronization with the address generation, the data generation unit 1
Test data is generated in 104, and the test data is output from the data generation unit 1104 and input to the test target memory (arrow I).

【0062】(J)アドレス生成部1102が出力する
アドレスが、テスト対象メモリの最大アドレスに達した
ら、つまりテスト対象メモリ内の全ワードへの書き込み
が終了したら、REREADステート406へ遷移する
(矢印J)。
(J) When the address output from the address generating unit 1102 reaches the maximum address of the memory to be tested, that is, when writing to all the words in the memory to be tested is completed, the state transits to the READ state 406 (arrow J). ).

【0063】(K)REREADステート406では、
テスト対象メモリの全ワードから読み出しを行なう。期
待値は「0000....」である。具体的には、メモ
リ選択・制御信号が、BIST制御部1107から出力
され、メモリ制御部1103へ入力される。そして、リ
ードイネーブル信号(I_TAG_TRE)が、メモリ
制御部1103から出力され、キャッシュメモリタグ部
104へ入力されるか、または、リードイネーブル信号
(I_DAT_TRE)が、メモリ制御部1103から
出力され、キャッシュメモリデータ部105へ入力され
る。
(K) In the READ state 406,
Reading is performed from all words of the memory to be tested. The expected value is "0000 ...". Specifically, a memory selection / control signal is output from BIST control section 1107 and input to memory control section 1103. Then, a read enable signal (I_TAG_TRE) is output from the memory control unit 1103 and input to the cache memory tag unit 104, or a read enable signal (I_DAT_TRE) is output from the memory control unit 1103 and the cache memory data Input to the unit 105.

【0064】アドレス生成信号が、BIST制御部11
07から出力され、アドレス生成部1102へ入力さ
れ、アドレス生成部1102においてテスト対象メモリ
の最小アドレスから最大アドレスが順次生成され、かつ
これらアドレスがアドレス生成部1102から出力さ
れ、テスト対象メモリへ入力される。
The address generation signal is transmitted to the BIST control unit 11
07, is input to the address generation unit 1102, the address generation unit 1102 sequentially generates the maximum address from the minimum address of the test target memory, and these addresses are output from the address generation unit 1102 and input to the test target memory. You.

【0065】読み取りデータ(I_TAG_TQ)がキ
ャッシュメモリタグ部104から出力され、または読み
取りデータ(I_DAT_TQ)がキャッシュメモリデ
ータ部105から出力され、マルチプレクサ1106へ
入力される(矢印K)。
The read data (I_TAG_TQ) is output from the cache memory tag unit 104, or the read data (I_DAT_TQ) is output from the cache memory data unit 105 and input to the multiplexer 1106 (arrow K).

【0066】(L)READステート404におけるデ
ータ「1111....」の読み出し、WRITEステ
ート405におけるデータ「0000....」の書き
込み、REREADステート406におけるデータ「0
000....」の読み出しが終了したら、READス
テート404へ遷移する(矢印L)。
(L) Reading of data "1111 ..." in READ state 404, writing of data "0000 ..." in WRITE state 405, and reading of data "0" in READ state 406
000. . . . Is completed, the state transits to the READ state 404 (arrow L).

【0067】さらに、対象メモリの全ワードに対して最
小アドレスから最大アドレスまで昇順で、READステ
ート404においてデータ「0000....」の読み
出し、WRITEステート405においてデータ「11
11....」の書き込み、REREADステート40
6においてデータ「1111....」の読み出しを行
う。
Further, the data “0000 ...” is read in the READ state 404 in ascending order from the minimum address to the maximum address for all the words of the target memory, and the data “11” is read in the WRITE state 405.
11. . . . And READ state 40
In step 6, data "1111 ..." is read.

【0068】次に、対象メモリの全ワードに対して最大
アドレスから最小アドレスまで降順で、READステー
ト404においてデータ「1111....」の読み出
し、WRITEステート405においてデータ「000
0....」の書き込み、REREADステート406
においてデータ「0000....」の読み出しを行
う。
Next, data “1111 ...” is read in the READ state 404 in descending order from the maximum address to the minimum address for all words of the target memory, and the data “000” is read in the WRITE state 405.
0. . . . , READ state 406
In step, the data “0000 ...” is read.

【0069】さらに、対象メモリの全ワードに対して最
大アドレスから最小アドレスまで降順で、READステ
ート404においてデータ「0000....」の読み
出し、WRITEステート405においてデータ「11
11....」の書き込み、REREADステート40
6においてデータ「1111....」の読み出しを行
う。
Further, data “0000...” Is read in the READ state 404 in descending order from the maximum address to the minimum address for all words of the target memory, and the data “11” is read in the WRITE state 405.
11. . . . And READ state 40
In step 6, data "1111 ..." is read.

【0070】以上で、 動作0:対象メモリの全ワードに対するバックグランド
データ「1111....」の書き込み、 動作1:対象メモリの最小アドレスから最大アドレスま
で昇順で、各ワードに対するデータ「111
1....」の読み出し、データ「0000....」
の書き込み、データ「0000....」の読み出し、 動作2:対象メモリの最小アドレスから最大アドレスま
で昇順で、各ワードに対するデータ「000
0....」の読み出し、データ「1111....」
の書き込み、データ「1111....」の読み出し、 動作3:対象メモリの最大アドレスから最小アドレスま
で降順で、各ワードに対するデータ「111
1....」の読み出し、データ「0000....」
の書き込み、データ「0000....」の読み出し、 動作4:対象メモリの最大アドレスから最小アドレスま
で降順で、各ワードに対するデータ「000
0....」の読み出し、データ「1111....」
の書き込み、データ「1111....」の読み出しが
終了する。
Operation 0: Writing of background data "1111 ..." for all words of the target memory. Operation 1: Data "111" for each word in ascending order from the minimum address to the maximum address of the target memory.
1. . . . ”And the data“ 0000 ... ”
, Read data “0000 ...”, operation 2: data “000” for each word in ascending order from the minimum address to the maximum address of the target memory
0. . . . ”And the data“ 1111 ... ”
, Read data “1111 ...”, operation 3: data “111” for each word in descending order from the maximum address to the minimum address of the target memory.
1. . . . ”And the data“ 0000 ... ”
, Reading data "0000 ...", operation 4: data "000" for each word in descending order from the maximum address to the minimum address of the target memory.
0. . . . ”And the data“ 1111 ... ”
And the reading of the data "1111 ..." are completed.

【0071】ここまでで13Nマーチングテストが終了
する。以上でテストモードを終了する場合は、ENDス
テート407へ遷移する(矢印O)。
At this point, the 13N marching test is completed. When the test mode ends, the state transits to the END state 407 (arrow O).

【0072】(M)26Nマーチングテストを行う場合
は、WRBGステート403へ遷移する(矢印M)。
(M) When performing the 26N marching test, the state transits to the WRBG state 403 (arrow M).

【0073】そして、 動作5:対象メモリの全ワードに対するバックグランド
データ「1010....」の書き込み、 動作6:対象メモリの最小アドレスから最大アドレスま
で昇順で、各ワードに対するデータ「101
0....」の読み出し、データ「0101....」
の書き込み、データ「0101....」の読み出し、 動作7:対象メモリの最小アドレスから最大アドレスま
で昇順で、各ワードに対するデータ「010
1....」の読み出し、データ「1010....」
の書き込み、データ「1010....」の読み出し、 動作8:対象メモリの最大アドレスから最小アドレスま
で降順で、各ワードに対するデータ「101
0....」の読み出し、データ「0101....」
の書き込み、データ「0101....」の読み出し、 動作9:対象メモリの最大アドレスから最小アドレスま
で降順で、各ワードに対するデータ「010
1....」の読み出し、データ「1010....」
の書き込み、データ「1010....」の読み出しを
行い、ENDステート407へ遷移する(矢印O)。2
6Nマーチングテストはデータの干渉の影響を考慮して
の措置である。
Operation 5: Writing of background data "1010 ..." to all words of the target memory. Operation 6: Data "101" for each word in ascending order from the minimum address to the maximum address of the target memory.
0. . . . ”And the data“ 0101 ... ”
, Reading data “0101 ...”, operation 7: data “010” for each word in ascending order from the minimum address to the maximum address of the target memory
1. . . . ”And the data“ 1010 ... ”
Operation 8: Data “101” for each word in descending order from the maximum address to the minimum address of the target memory
0. . . . ”And the data“ 0101 ... ”
, Reading data “0101 ...”, operation 9: data “010” for each word in descending order from the maximum address to the minimum address of the target memory
1. . . . ”And the data“ 1010 ... ”
Is written and data “1010 ...” is read, and the state transits to the END state 407 (arrow O). 2
The 6N marching test is a measure that takes into account the effects of data interference.

【0074】先にタグ部104についてテストし、次に
データ部105についてテストする場合、タグ部104
について全てのテストが終了したらSTARTステート
402に遷移し(矢印N)、テスト対象をデータ部10
5に切り替える。そして、データ部105について、1
3Nマーチングテストまたは26Nマーチングテストを
行なう。テスト結果は、マルチプレクサ1106を介し
て、シグネチャレジスタ1105に入力され、圧縮され
て、シグネチャレジスタ1105に蓄積される。
When the tag section 104 is tested first and then the data section 105 is tested, the tag section 104
When all the tests have been completed, the state transits to the START state 402 (arrow N), and the test target is
Switch to 5. Then, regarding the data section 105, 1
Perform a 3N marching test or a 26N marching test. The test result is input to the signature register 1105 via the multiplexer 1106, compressed, and stored in the signature register 1105.

【0075】タグ部104およびデータ部105の双方
についてのテストが終了したら、ENDステート407
に遷移する。
When the tests on both the tag section 104 and the data section 105 are completed, the END state 407
Transitions to.

【0076】ENDステート407ではBSFTEに従
ってテスト結果が、シグネチャレジスタ1105からB
OUTとして出力される。
In the END state 407, a test result is transmitted from the signature register 1105 to B in accordance with BSFTE.
Output as OUT.

【0077】<キャッシュメモリ初期化モード>次に、
キャッシュメモリ初期化モードについて説明する。
<Cache memory initialization mode>
The cache memory initialization mode will be described.

【0078】(A)BIST制御部1107にBIST
E=0が入力されたら、クロックの立ち上がりエッジ
で、IDLEステート401へ遷移する(矢印A)。
(A) BIST control unit 1107
When E = 0 is input, transition is made to the IDLE state 401 at the rising edge of the clock (arrow A).

【0079】(B)BISTE=0である間は、IDL
Eステート401を維持する(矢印B)。ACTビット
レジスタ1109およびENDビットレジスタ1110
は0にクリアされる。
(B) While BISTE = 0, IDL
The E state 401 is maintained (arrow B). ACT bit register 1109 and END bit register 1110
Is cleared to 0.

【0080】(C)ACTビットレジスタ1109に1
がセットされると、次のクロックの立ち上がりエッジ
で、STARTステート402へ遷移する(矢印C)。
(C) 1 is set in the ACT bit register 1109.
Is set, transition is made to the START state 402 at the next rising edge of the clock (arrow C).

【0081】(D)STARTステート402では、メ
モリ選択・制御信号がBIST制御部1107から出力
され、メモリ制御部1103へ入力される。そして、ラ
イトイネーブル信号(I_TAG_TWE)が、メモリ
制御部1103から出力され、キャッシュメモリタグ部
104へ入力される。また、初期化用書き込みデータ
(バックグラウンドデータ)が選択される。そして、次
のクロックの立ち上がりエッジで、WRBGステート4
03へ遷移する(矢印D)。
(D) In the START state 402, a memory selection / control signal is output from the BIST control unit 1107 and input to the memory control unit 1103. Then, the write enable signal (I_TAG_TWE) is output from the memory control unit 1103 and input to the cache memory tag unit 104. Further, initialization write data (background data) is selected. Then, at the rising edge of the next clock, WRBG state 4
Transition to 03 (arrow D).

【0082】キャッシュメモリ初期化モードにおける初
期化対象メモリは、キャッシュメモリタグ部104だけ
である。また、有効ビット=0が、キャッシュメモリ=
無効を示す場合、タグ部の先頭に位置する有効ビットに
0を書き込む必要があるので、バックグラウンドデータ
は「0000…」または「0101…」とする。そし
て、次のクロックの立ち上がりエッジで、WRBGステ
ート403へ遷移する(矢印D)。
The memory to be initialized in the cache memory initialization mode is only the cache memory tag unit 104. Also, if the valid bit = 0, the cache memory =
When indicating invalidity, it is necessary to write 0 to the valid bit located at the head of the tag portion, and thus the background data is “0000...” Or “0101. Then, the state transits to the WRBG state 403 at the rising edge of the next clock (arrow D).

【0083】(E)WRBGステート403では、タグ
部104にデータ「0000…」を書き込む。具体的に
は、アドレス生成信号が、BIST制御部1107から
出力され、アドレス生成部1102へ入力され、これと
同期して、データ生成信号が、BIST制御部1107
から出力され、データ生成部1104へ入力される。
(E) In the WRBG state 403, data “0000...” Is written in the tag section 104. Specifically, the address generation signal is output from BIST control section 1107 and input to address generation section 1102, and in synchronization with this, the data generation signal is output to BIST control section 1107.
And output to the data generation unit 1104.

【0084】第1の実施形態では、初期化対処メモリは
タグ部104のみであるから、タグ部104の全ワード
に対するデータ「0000....」または「010
1....」の書き込みが終了したら、ENDステート
407へ遷移する(矢印R)。
In the first embodiment, since only the tag section 104 is the memory for initialization, the data "0000 ..." or "010" for all the words in the tag section 104 is stored.
1. . . . Is completed, the state transits to the END state 407 (arrow R).

【0085】初期化対処メモリが他にもある場合は、S
TARTステート402へ遷移する(矢印Q)。
If there is another memory for initialization,
The state transits to the TART state 402 (arrow Q).

【0086】ENDステート407では、BIST制御
部1107が、ENDビットレジスタ1110に1をセ
ットする。
In the END state 407, the BIST control unit 1107 sets 1 to the END bit register 1110.

【0087】プロセッサコア101は、ENDビットレ
ジスタ1110を監視する。ENDビットレジスタ11
10に1がセットされたら、プロセッサコア101は、
キャッシュメモリタグ部104およびデータ部105を
使用可能となる。
The processor core 101 monitors the END bit register 1110. END bit register 11
When 1 is set to 10, the processor core 101
The cache memory tag unit 104 and the data unit 105 can be used.

【0088】なお、第1実施形態では初期化の対象はキ
ャッシュメモリタグ部104のみであるが、他にも初期
化すべきメモリがある場合は、STARTステート40
2に遷移して対象メモリを切り替えて上記動作を繰り返
し、全てのメモリの初期化が終了してから、ENDステ
ート407に遷移し、ENDビットレジスタ1110に
1をセットする。
In the first embodiment, only the cache memory tag unit 104 is to be initialized. However, if there is another memory to be initialized, the START state 40
The state transitions to 2 and the target memory is switched to repeat the above operation. After the initialization of all memories is completed, the state transitions to the END state 407 and the END bit register 1110 is set to 1.

【0089】第1実施形態では、ACTビットレジスタ
1109とENDビットレジスタ1110とを別々に設
けたが、この2つが同一ビットであっても構わない。そ
して、プロセッサコア101がACTビットレジスタ1
109を1にセットした後、キャッシュメモリタグ部1
04の全有効ビットの初期化が終了するまで、ACTビ
ットレジスタ1109は1のまま保持され、キャッシュ
メモリタグ部104の全有効ビットの初期化が終了した
時点で、ACTビットレジスタ1109は0にクリアさ
れるとしても良い。プロセッサコア101はACTビッ
トレジスタ1109を1にセットした後、その値を監視
し、0にクリアされるまで待つことになる。
In the first embodiment, the ACT bit register 1109 and the END bit register 1110 are separately provided, but these two bits may have the same bit. Then, the processor core 101 sets the ACT bit register 1
After setting 109 to 1, the cache memory tag unit 1
The ACT bit register 1109 is kept at 1 until the initialization of all the valid bits of 04 is completed, and the ACT bit register 1109 is cleared to 0 when the initialization of all the valid bits of the cache memory tag unit 104 is completed. It may be done. After setting the ACT bit register 1109 to 1, the processor core 101 monitors the value and waits until the value is cleared to 0.

【0090】なお、キャッシュメモリ初期化開始時にA
CTビットレジスタ1109は0にセットされ、初期化
中はACTビットレジスタ1109は0に保持され、初
期化終了時にACTビットレジスタ1109は1にセッ
トされ、プロセッサコア101はACTビットレジスタ
1109が1にセットされるまでキャッシュメモリの使
用開始を待つ、としても良いことは言うまでもない。
Note that when the cache memory initialization is started, A
The CT bit register 1109 is set to 0, the ACT bit register 1109 is held at 0 during initialization, the ACT bit register 1109 is set to 1 at the end of initialization, and the ACT bit register 1109 is set to 1 at initialization. It goes without saying that it is also possible to wait until the use of the cache memory is started until the operation is completed.

【0091】図5は、図1に示すキャッシュメモリタグ
部のキャッシュメモリ初期化時における状態遷移を示
す。
FIG. 5 shows a state transition when the cache memory of the cache memory tag unit shown in FIG. 1 is initialized.

【0092】図5に示すように、キャッシュメモリ初期
化時においては、IDLEステート401→START
ステート402→WRBGステート403→ENDステ
ート407→IDLEステート401という順に遷移す
る。そして、WRBGステート403においてタグ部の
有効ビットがクリアされる。
As shown in FIG. 5, when the cache memory is initialized, the IDLE state 401 → START
The state transitions in the order of state 402 → WRBG state 403 → END state 407 → IDLE state 401. Then, in the WRBG state 403, the valid bit of the tag section is cleared.

【0093】図6は、図1に示すBIST回路のキャッ
シュメモリ初期化時における処理の流れを示すフローチ
ャートである。
FIG. 6 is a flowchart showing a flow of processing when the cache memory of the BIST circuit shown in FIG. 1 is initialized.

【0094】図6に示すように、まずカウンタに0をセ
ットし(count_mem=0)かつ初期化対象メモ
リ内の初期化対象ワードのアドレスにも0をセットし
(TA=0)、キャッシュメモリタグ部クリア開始(C
CACT=1)を検出したら(ステップS601)、I
DLEステートからSTARTステートへ遷移する。
As shown in FIG. 6, first, the counter is set to 0 (count_mem = 0) and the address of the word to be initialized in the memory to be initialized is also set to 0 (TA = 0). Start clearing (C
When (CACT = 1) is detected (step S601), I
The state transits from the DLE state to the START state.

【0095】次に、カウンタの値を1だけインクリメン
トして(count_mem++)、初期化対象となる
キャッシュメモリを選択したら(ステップS602)、
STARTステートからWRBGステートへ遷移する。
Next, the value of the counter is incremented by 1 (count_mem ++), and the cache memory to be initialized is selected (step S602).
The state transits from the START state to the WRBG state.

【0096】WRBGステートでは、初期値(初期化デ
ータ)の書き込み(ステップS603)、アドレス更新
(ステップS604)、アドレスが予め設定されている
最大値よりも大きいかの確認(ステップS605)およ
びカウンタの値がクリア動作終了値に等しいかの確認
(ステップS606)が行われる。ステップS603で
は、データ生成部1104から「0000...」が出
力され(TD_even=0,TD_odd=0)、カ
ウンタ値が示すキャッシュメモリタグ部に対してライト
イネーブルをアクティブにする(count_memの
示すTWE=1)。ステップS604では、初期化対象
ワードのアドレスを1だけインクリメントする(TA+
+)。ステップS605では、インクリメント後のアド
レスと、予め設定されている最大値とを比較し(TA>
アドレス最大値?)、インクリメント後のアドレスが予
め設定されている最大値よりも大きい場合はステップS
606へ進み、インクリメント後のアドレスが予め設定
されている最大値よりも大きくない場合はステップS6
03へ戻る。ステップS606では、カウンタの値と、
予め設定されているクリア動作終了値とを比較し(co
unt_mem=クリア動作終了値?)、2つの値が一
致する場合はENDステート(ステップS607)へ進
み、2つの値が一致しない場合はSTARTステート
(ステップS602)へ戻る。
In the WRBG state, an initial value (initialization data) is written (step S603), an address is updated (step S604), it is confirmed whether the address is larger than a preset maximum value (step S605), and a counter value is set. It is determined whether the value is equal to the clear operation end value (step S606). In step S603, "0000 ..." is output from the data generation unit 1104 (TD_even = 0, TD_odd = 0), and the write enable is activated for the cache memory tag indicated by the counter value (TWE indicated by count_mem). = 1). In step S604, the address of the word to be initialized is incremented by one (TA +
+). In step S605, the address after the increment is compared with a preset maximum value (TA>
Address maximum value? If the address after the increment is larger than the preset maximum value, step S
Proceeding to 606, if the address after the increment is not larger than the preset maximum value, step S6
Return to 03. In step S606, the value of the counter and
Compare with a preset clear operation end value (co
unt_mem = clear operation end value? If the two values match, the process proceeds to the END state (step S607). If the two values do not match, the process returns to the START state (step S602).

【0097】ENDステートでは、ENDビットレジス
タ1110に1をセットして(CCEND=1)、キャ
ッシュメモリタグ部の初期化を終了する。
In the END state, 1 is set in the END bit register 1110 (CCEND = 1), and the initialization of the cache memory tag section is completed.

【0098】なお、図6では初期化対象キャッシュメモ
リタグ部内アドレスを最小アドレスから1ずつインクリ
メントするとしたが、最大アドレスから1ずつデクリメ
ントするとしても良いことは言うまでもない。
In FIG. 6, the address in the tag portion of the cache memory to be initialized is incremented by one from the minimum address, but it goes without saying that it may be decremented by one from the maximum address.

【0099】図7は、図1に示すプロセッサコアのキャ
ッシュメモリ初期化時における処理の流れを示すフロー
チャートである。
FIG. 7 is a flowchart showing a flow of processing when the cache memory of the processor core shown in FIG. 1 is initialized.

【0100】図7に示すように、まずACTビットレジ
スタに1を書き込み、BIST回路にキャッシュメモリ
の初期化を開始させる(ステップS701)。次に、E
NDビットレジスタを読み出し(ステップS702)、
ENDビットレジスタに1がセットされているかを調べ
る(ステップS703)。ENDビットレジスタに1が
セットされていない場合は、ステップS702へ戻る。
ENDビットレジスタに1がセットされていないという
ことは、キャッシュメモリは初期化中ということを意味
するから、プロセッサコアはキャッシュメモリを使用す
ることはできない。ENDビットレジスタに1がセット
されている場合は、ステップS704へ進み、キャッシ
ュメモリの初期化を終了して、次の処理へ移行する。
As shown in FIG. 7, first, 1 is written to the ACT bit register, and the BIST circuit starts to initialize the cache memory (step S701). Next, E
Read the ND bit register (step S702),
It is checked whether 1 is set in the END bit register (step S703). If 1 is not set in the END bit register, the process returns to step S702.
Since the fact that the END bit register is not set to 1 means that the cache memory is being initialized, the processor core cannot use the cache memory. If 1 is set in the END bit register, the process proceeds to step S704, in which the initialization of the cache memory is completed, and the process proceeds to the next process.

【0101】上記の如く、第1の実施形態によれば、B
IST回路を用いることにより、キャッシュメモリタグ
部、特に有効ビットの初期化をハードウエアを用いて行
なうことができる。この初期化をソフトウエアにより行
なうのではなく、ハードウエアにより行なうことで、プ
ログラムサイズの節約と、初期化時間の高速化、短縮化
という効果が得られる。
As described above, according to the first embodiment, B
By using the IST circuit, the initialization of the cache memory tag unit, particularly, the valid bit can be performed using hardware. By performing this initialization not by software but by hardware, the effects of saving the program size and speeding up and shortening the initialization time can be obtained.

【0102】初期化時間の高速化、短縮化の程度を具体
的に説明する。命令ブロックが256個、各命令ブロッ
ク長が4*32ビット、つまりキャッシュメモリの容量
が4キロバイトである場合を例とする。この場合、初期
化すべきタグ部は256個あるため、256回のアクセ
スが必要である。
The degree of shortening and shortening of the initialization time will be specifically described. It is assumed that there are 256 instruction blocks, each instruction block length is 4 * 32 bits, that is, the capacity of the cache memory is 4 kilobytes. In this case, since there are 256 tag sections to be initialized, 256 accesses are required.

【0103】ソフトウエアによって初期化する場合、タ
グ部を初期化する命令列は例えば以下のようになる。
When initialization is performed by software, an instruction sequence for initializing the tag section is as follows, for example.

【0104】 Mov r0,”タグ部開始アドレス” ##初期化開始アドレス設定 Mov r1,”タグ部終了アドレス” ##初期化終了アドレス設定 LOOP Store 0,(r0) ##初期化(タグ部1個分) Add r0,r0,1 ##アドレス更新 Bgt r0,r1,LOOP ##終了判定 Mov命令を1回ずつ、Store、Add、Bgt命
令を256回ずつ実行するので、全部で1+1+256
*3=770命令となる。各命令をフェッチするために
8クロック、実行するために1クロックかかるとする
と、キャッシュメモリ初期化全体に要するクロック数
は、770*9=6930となる。
Mov r0, “Tag section start address” ## Initialization start address setting Mov r1, “Tag section end address” ## Initialization end address setting LOOP Store 0, (r0) ## Initialization (Tag section 1 Add r0, r0, 1 ## Address update Bgt r0, r1, LOOP ## Completion determination Mov instruction is executed once and Store, Add, and Bgt instructions are executed 256 times, so that 1 + 1 + 256 in total.
* 3 = 770 instructions. Assuming that it takes 8 clocks to fetch each instruction and 1 clock to execute each instruction, the number of clocks required for the entire cache memory initialization is 770 * 9 = 6930.

【0105】これに対し第1の実施形態によって初期化
する場合、初期化に必要な命令列は例えば以下のように
なる。
On the other hand, in the case of initialization according to the first embodiment, an instruction sequence required for initialization is, for example, as follows.

【0106】 Store 1,”ACTビットアドレス”##ACTビット書き込み LOOP Load r1,”ENDビットアドレス”##ENDビット読み出し Bne r1,1,LOOP ##ENDビット判定 Store命令のフェッチと実行に9クロックを要す
る。ループ部と並列にBIST回路で行われる初期化で
は、STARTステートに1クロック、WRBGステー
トに256クロック、ENDステートに1クロックを要
するので、全体で258クロックを要する。WRBGス
テートが256クロックで済むのは、図6に示したステ
ップS603〜606の全てをタグ1つにつき1クロック
で行なうためである。Load命令およびBne命令の
フェッチと実行にはそれぞれ9クロックを要する。
Store 1, “ACT bit address” ## ACT bit write LOOP Load r1, “END bit address” ## END bit read Bner 1, 1, LOOP ## END bit determination 9 clocks for fetch and execution of Store instruction Cost. In the initialization performed by the BIST circuit in parallel with the loop section, one clock is required for the START state, 256 clocks are required for the WRBG state, and one clock is required for the END state, so that a total of 258 clocks are required. The reason why the WRBG state requires only 256 clocks is that all of the steps S603 to S606 shown in FIG. 6 are performed with one clock per tag. Fetching and execution of the Load instruction and the Bne instruction each require 9 clocks.

【0107】BIST回路における初期化は合計で25
8クロック、ループ部は18クロックであり、258/
18=14余り6であるから、ループ15回目のLoad
命令フェッチの6サイクル目でENDビットがセットさ
れることになり、初期化後のENDビット読み出しに要
する時間は18−6=12クロックとなる。従って、第
1の実施形態では、キャッシュメモリ初期化全体に要す
るクロック数は、9+258+12=279となる。
The initialization in the BIST circuit is 25 in total.
8 clocks, the loop section has 18 clocks, and 258 /
Since 18 = 14, the remainder is 6, so the load of the 15th loop
The END bit is set in the sixth cycle of the instruction fetch, and the time required for reading the END bit after the initialization is 18-6 = 12 clocks. Therefore, in the first embodiment, the number of clocks required for the entire cache memory initialization is 9 + 258 + 12 = 279.

【0108】すなわち、キャッシュメモリ初期化の全て
をソフトウエアによって行う場合の6930クロックに
対して、第1の実施形態では279クロックで済むの
で、初期化速度は約25倍向上する。
That is, in the first embodiment, only 279 clocks are required in comparison with 6930 clocks in the case where all of the cache memory initialization is performed by software, so that the initialization speed is improved by about 25 times.

【0109】(2)第2の実施形態 図8は、本発明の第2の実施形態に係るBIST回路
と、プロセッサコア、キャッシュメモリタグ部、キャッ
シュメモリデータ部、メモリコントローラ等との接続関
係を示し、図9は、図8に示すBIST回路の内部構成
を示す。
(2) Second Embodiment FIG. 8 shows a connection relationship between a BIST circuit according to a second embodiment of the present invention, a processor core, a cache memory tag unit, a cache memory data unit, a memory controller, and the like. FIG. 9 shows the internal configuration of the BIST circuit shown in FIG.

【0110】キャッシュメモリタグ部104、キャッシ
ュメモリデータ部105およびメモリコントローラ10
6については、第1の実施形態に用いたものと同じであ
るから、説明を省略する。
Cache memory tag section 104, cache memory data section 105, and memory controller 10
6 is the same as that used in the first embodiment, and the description is omitted.

【0111】図8に示すプロセッサコア801と、図1
に示すプロセッサコア101との主たる相違点を説明す
る。プロセッサコア801は、入力としてリセット開始
を示すRESET信号と初期化終了を示すEND信号を
有する。
The processor core 801 shown in FIG.
The main differences from the processor core 101 shown in FIG. The processor core 801 has, as inputs, a RESET signal indicating a reset start and an END signal indicating an end of initialization.

【0112】図9に示すように、BIST回路851
は、アドレス生成部1102、メモリ制御部1103、
データ生成部1104、シグネチャレジスタ1105、
データマルチプレクサ(MUX)1106およびBIS
T制御部1207からなる。
As shown in FIG. 9, the BIST circuit 851
Are the address generation unit 1102, the memory control unit 1103,
A data generation unit 1104, a signature register 1105,
Data multiplexer (MUX) 1106 and BIS
It comprises a T control unit 1207.

【0113】アドレス生成部1102、データ生成部1
103、メモリ制御部1104、シグネチャレジスタ1
105、データマルチプレクサ(MUX)1106およ
びBIST制御部1207からなる。
Address generation unit 1102, data generation unit 1
103, memory control unit 1104, signature register 1
105, a data multiplexer (MUX) 1106 and a BIST control unit 1207.

【0114】アドレス生成部1102、データ生成部1
103、メモリ制御部1104、シグネチャレジスタ1
105およびデータマルチプレクサ(MUX)1106
については、第1の実施形態に用いたものと同じである
から、説明を省略する。
Address generation unit 1102, data generation unit 1
103, memory control unit 1104, signature register 1
105 and data multiplexer (MUX) 1106
Is the same as that used in the first embodiment, and the description is omitted.

【0115】BIST回路851とBIST回路151
との主たる相違点を説明する。BIST回路851に
は、プロセッサインタフェース1108を設けていな
い。つまりBIST回路851には、プロセッサコアか
ら書き込み・読み出しが行なわれるレジスタを設けてい
ない。
BIST circuit 851 and BIST circuit 151
The main differences from the above will be described. The BIST circuit 851 does not include the processor interface 1108. That is, the BIST circuit 851 is not provided with a register for performing writing / reading from the processor core.

【0116】BIST回路851内に設けられているB
IST制御部1207とBIST回路151内に設けら
れているBIST制御部1107との主たる相違点につ
いて説明する。BIST制御部1207は、入力として
リセット開始を示すRESET信号を、出力として初期
化終了を示すEND信号を有する。ここで、RESET
信号、END信号ともハイ・アクティブな信号であると
する。BIST制御部1207はRESET信号の立ち
下りエッジ(RESET↓)を認識してSTARTステ
ートに遷移する。すなわち、リセット解除後自動的にキ
ャッシュメモリ初期化モードに入る。いったんキャッシ
ュメモリ初期化モードに入った後は第1の実施形態のB
IST制御部1107と同様に動作する。BIST制御
部1207とBIST制御部1107は、ENDステー
トに遷移した時の動作が異なる。BIST制御部120
7はENDステートになると、END信号を1にする。
プロセッサコア801はEND信号が1になったことを
認識してキャッシュの初期化が終わったことを知ること
ができる。
B provided in BIST circuit 851
Main differences between the IST control unit 1207 and the BIST control unit 1107 provided in the BIST circuit 151 will be described. The BIST control unit 1207 has a RESET signal indicating a reset start as an input and an END signal indicating an end of initialization as an output. Here, RESET
It is assumed that both the signal and the END signal are high active signals. The BIST control unit 1207 recognizes the falling edge (RESET ↓) of the RESET signal and transits to the START state. That is, the cache memory initialization mode is automatically entered after reset release. Once the cache memory initialization mode has been entered, B in the first embodiment is used.
It operates similarly to the IST control unit 1107. The operations of the BIST control unit 1207 and the BIST control unit 1107 at the time of transition to the END state are different. BIST control unit 120
7 sets the END signal to 1 when the END state is set.
The processor core 801 can recognize that the initialization of the cache has been completed by recognizing that the END signal has become 1.

【0117】よって、第2の実施形態によれば、キャッ
シュメモリの初期化開始を指示する命令や初期化終了を
確認する命令が必要なくなる。
Therefore, according to the second embodiment, there is no need to issue an instruction to start the initialization of the cache memory or an instruction to confirm the end of the initialization.

【0118】END信号の使い方としては、他の方法も
考えられる。まず、END信号を割り込み信号として用
いる方法がある。この場合は、END信号を直接プロセ
ッサコア801に接続せず、割り込みコントローラ(図
示せず)に接続する。また別の方法として、END信号
が0の場合にプロセッサコア801が内部制御レジスタ
(図示せず)のキャッシュイネーブルビットに1をセッ
トしようとするとパイプライン処理がストールする、と
いう方法がある。この場合は、キャッシュメモリをイネ
ーブルにしようとする命令が発行されるとプロセッサコ
ア801のパイプラインが停止し、キャッシュメモリの
初期化が終了するとそのストールが解除される。
As a method of using the END signal, other methods can be considered. First, there is a method of using an END signal as an interrupt signal. In this case, the END signal is not directly connected to the processor core 801 but is connected to an interrupt controller (not shown). As another method, there is a method in which the pipeline processing is stalled when the processor core 801 attempts to set the cache enable bit of the internal control register (not shown) to 1 when the END signal is 0. In this case, when an instruction to enable the cache memory is issued, the pipeline of the processor core 801 stops, and when the initialization of the cache memory ends, the stall is released.

【0119】なお、「有効ビット」は「タグ」の先頭ビ
ットでなくとも良く、「タグ」の末尾ビットであっても
良い。さらに、「有効ビット」と「タグ」とを同一メモ
リで実装しなくても良く、別個に実装するとしても良
い。
Note that the "valid bit" need not be the first bit of the "tag" but may be the last bit of the "tag". Further, the "effective bit" and the "tag" need not be implemented in the same memory, but may be implemented separately.

【0120】[0120]

【発明の効果】上記の如く、本発明のBIST回路を用
いることにより、キャッシュメモリタグ部、特に有効ビ
ットの初期化をハードウエアにより行なうことが可能と
なる。この初期化は従来ソフトウエアにより行なわれて
いるものであるが、ハードウエアにより行なうことで、
プログラムサイズの節約と、初期化時間の高速化、短縮
化という効果が得られる。
As described above, the use of the BIST circuit of the present invention makes it possible to initialize the cache memory tag section, particularly the valid bits, by hardware. This initialization is conventionally performed by software, but by performing hardware,
The effects of saving the program size and speeding up and shortening the initialization time can be obtained.

【図面の簡単な説明】[Brief description of the drawings]

【図1】本発明の第1の実施形態に係るBIST回路
と、プロセッサコア、キャッシュメモリタグ部、キャッ
シュメモリデータ部、メモリコントローラ等との接続関
係を示す図である。
FIG. 1 is a diagram showing a connection relationship between a BIST circuit according to a first embodiment of the present invention, a processor core, a cache memory tag unit, a cache memory data unit, a memory controller, and the like.

【図2】図1に示すBIST回路の内部構成を示す図で
ある。
FIG. 2 is a diagram showing an internal configuration of a BIST circuit shown in FIG.

【図3】図2に示すデータ生成部の内部構成を示す図で
ある。
FIG. 3 is a diagram illustrating an internal configuration of a data generation unit illustrated in FIG. 2;

【図4】図1に示すBIST回路のテストモードまたは
メモリ初期化モードにおける状態遷移を示す図である。
FIG. 4 is a diagram showing a state transition in a test mode or a memory initialization mode of the BIST circuit shown in FIG.

【図5】図1に示すキャッシュメモリタグ部のキャッシ
ュメモリ初期化時における状態遷移を示す図である。
FIG. 5 is a diagram showing a state transition when the cache memory of the cache memory tag unit shown in FIG. 1 is initialized.

【図6】図1に示すBIST回路のキャッシュメモリ初
期化時における処理の流れを示すフローチャートであ
る。
FIG. 6 is a flowchart showing a flow of a process when the cache memory of the BIST circuit shown in FIG. 1 is initialized.

【図7】図1に示すプロセッサコアのキャッシュメモリ
初期化時における処理の流れを示すフローチャートであ
る。
FIG. 7 is a flowchart showing a processing flow when the cache memory of the processor core shown in FIG. 1 is initialized.

【図8】本発明の第2の実施形態に係るBIST回路
と、プロセッサコア、キャッシュメモリタグ部、キャッ
シュメモリデータ部、メモリコントローラ等との接続関
係を示す図である。
FIG. 8 is a diagram illustrating a connection relationship between a BIST circuit according to a second embodiment of the present invention, a processor core, a cache memory tag unit, a cache memory data unit, a memory controller, and the like.

【図9】図8に示すデータ生成部の内部構成を示す図で
ある。
FIG. 9 is a diagram illustrating an internal configuration of a data generation unit illustrated in FIG. 8;

【符号の説明】[Explanation of symbols]

101 プロセッサコア 102 キャッシュコントロールユニット 103 バスインタフェースユニット 104 キャッシュメモリタグ部 105 キャッシュメモリデータ部 106 メモリコントローラ 111 バス 151 メモリBIST回路 1108 プロセッサインタフェース 1109 ACTビットレジスタ 1110 ENDビットレジスタ 101 Processor Core 102 Cache Control Unit 103 Bus Interface Unit 104 Cache Memory Tag Unit 105 Cache Memory Data Unit 106 Memory Controller 111 Bus 151 Memory BIST Circuit 1108 Processor Interface 1109 ACT Bit Register 1110 END Bit Register

フロントページの続き (51)Int.Cl.7 識別記号 FI テーマコート゛(参考) G06F 12/16 340 G11C 11/34 341D G11C 11/413 G01R 31/28 B V Fターム(参考) 2G132 AA03 AA08 AC03 AD06 AK29 AL09 5B005 JJ01 JJ11 KK24 MM01 NN43 UU24 VV22 5B015 HH05 KB91 MM07 NN02 5B018 GA03 JA21 MA03 NA03 PA03 QA11 5L106 AA02 DD11 DD21 Continued on the front page (51) Int.Cl. 7 Identification symbol FI Theme coat II (Reference) G06F 12/16 340 G11C 11/34 341D G11C 11/413 G01R 31/28 B VF term (Reference) 2G132 AA03 AA08 AC03 AD06 AK29 AL09 5B005 JJ01 JJ11 KK24 MM01 NN43 UU24 VV22 5B015 HH05 KB91 MM07 NN02 5B018 GA03 JA21 MA03 NA03 PA03 QA11 5L106 AA02 DD11 DD21

Claims (6)

【特許請求の範囲】[Claims] 【請求項1】 データを書き込む、あるいはデータを読
み出すメモリのアドレスを生成するアドレス生成部と、 メモリに書き込むデータを生成するデータ生成部と、 テストまたは初期化を行なうメモリを選択し、選択した
メモリに対する制御信号を生成するメモリ制御部と、 テストの開始を示す信号を認識したら、前記メモリ制御
部にテスト対象選択・制御信号を、前記アドレス生成部
にテスト用アドレス生成開始信号を、前記データ生成部
にテスト用データ生成開始信号をそれぞれ送り、また、
メモリ初期化の開始を示す信号を認識したら、前記メモ
リ制御部に初期化対象選択・制御信号を、前記アドレス
生成部に初期化用アドレス生成開始信号を、前記データ
生成部に初期化用データ生成開始信号をそれぞれ送るメ
モリテスト兼初期化回路制御部とを備え、 前記メモリ制御部は、前記テスト対象選択・制御信号を
受けたら、テスト対象メモリを書き込み可能状態または
読み出し可能状態とする信号を生成し、また、前記初期
化対象選択・制御信号を受けたら、初期化対象メモリの
有効ビットを書き込み可能状態とする信号を生成し、 前記アドレス生成部は、前記テスト用アドレス生成開始
信号を受けたら、テスト用データを書き込むべきアドレ
スまたはテスト用データを読み出すべきアドレスを生成
し、また、前記初期化用アドレス生成開始信号を受けた
ら、初期化用データを書き込むべきアドレスを生成し、 前記データ生成部は、前記テスト用データ生成開始信号
を受けたら、テスト用データの生成を開始し、また、前
記初期化用データ生成開始信号を受けたら、初期化用デ
ータの生成を開始する、ことを特徴とするメモリテスト
兼初期化回路。
An address generator for generating an address of a memory for writing or reading data, a data generator for generating data to be written to the memory, and a memory for performing a test or initialization are selected. When a memory control unit that generates a control signal for the memory and a signal indicating the start of a test are recognized, a test target selection / control signal is transmitted to the memory control unit, a test address generation start signal is transmitted to the address generation unit, and the data generation is performed. Send a test data generation start signal to the
When a signal indicating the start of memory initialization is recognized, an initialization target selection / control signal is sent to the memory control unit, an initialization address generation start signal is sent to the address generation unit, and an initialization data generation signal is sent to the data generation unit. A memory test / initialization circuit control unit for sending a start signal, wherein the memory control unit, upon receiving the test target selection / control signal, generates a signal for setting the test target memory to a writable state or a readable state. When receiving the initialization target selection / control signal, the address generation unit generates a signal for setting a valid bit of the initialization target memory to a writable state, and the address generation unit receives the test address generation start signal. , An address to which test data is to be written or an address to which test data is to be read, and the initialization address. Upon receiving the generation start signal, generates an address to which initialization data is to be written, and upon receiving the test data generation start signal, starts generating test data when receiving the test data generation start signal. A memory test and initialization circuit, which starts generation of initialization data when receiving a generation data generation start signal.
【請求項2】 さらに、メモリ初期化開始を示すビット
が書き込まれるべきメモリ初期化開始ビット用レジスタ
を備え、 前記メモリテスト兼初期化回路制御部は、前記メモリ初
期化開始ビット用レジスタに所定ビットがセットされた
ら、メモリ初期化を開始することを特徴とする請求項1
記載のメモリテスト兼初期化回路。
A memory initialization start bit register into which a bit indicating a memory initialization start is to be written, wherein the memory test / initialization circuit control unit includes a predetermined bit in the memory initialization start bit register. 2. A memory initialization is started when is set.
Memory test and initialization circuit as described.
【請求項3】 さらに、メモリ初期化終了を示すビット
が書き込まれるべきメモリ初期化終了ビット用レジスタ
を備え、 前記メモリテスト兼初期化回路制御部は、メモリ初期化
が終了したら、前記メモリ初期化終了ビット用レジスタ
に所定ビットをセットすることを特徴とする請求項1乃
至2記載のメモリテスト兼初期化回路。
A memory initialization end bit register into which a bit indicating the end of the memory initialization is to be written, wherein the memory test and initialization circuit control unit is configured to execute the memory initialization upon completion of the memory initialization. 3. The memory test and initialization circuit according to claim 1, wherein a predetermined bit is set in an end bit register.
【請求項4】 前記メモリテスト兼初期化回路制御部
は、所定の入力信号の値が変化されたら、メモリ初期化
を開始することを特徴とする請求項1記載のメモリテス
ト兼初期化回路。
4. The memory test and initialization circuit according to claim 1, wherein the memory test and initialization circuit control section starts memory initialization when a value of a predetermined input signal is changed.
【請求項5】 前記メモリテスト兼初期化回路制御部
は、メモリ初期化が終了したら、所定の信号の値を変化
させることを特徴とする請求項1または4記載のメモリ
テスト兼初期化回路。
5. The memory test and initialization circuit according to claim 1, wherein the memory test and initialization circuit control section changes a value of a predetermined signal when the memory initialization is completed.
【請求項6】 前記データ生成部が生成する前記初期化
データの先頭ビットまたは末尾ビットが0であることを
特徴とする請求項1乃至5記載のメモリテスト兼初期化
回路。
6. The memory test and initialization circuit according to claim 1, wherein a first bit or a last bit of the initialization data generated by the data generation unit is 0.
JP2001168207A 2001-06-04 2001-06-04 Memory testing and initializing circuit Pending JP2002367397A (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2001168207A JP2002367397A (en) 2001-06-04 2001-06-04 Memory testing and initializing circuit

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2001168207A JP2002367397A (en) 2001-06-04 2001-06-04 Memory testing and initializing circuit

Publications (1)

Publication Number Publication Date
JP2002367397A true JP2002367397A (en) 2002-12-20

Family

ID=19010468

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2001168207A Pending JP2002367397A (en) 2001-06-04 2001-06-04 Memory testing and initializing circuit

Country Status (1)

Country Link
JP (1) JP2002367397A (en)

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2005243176A (en) * 2004-02-27 2005-09-08 Fujitsu Ltd Semiconductor device and voltage control method
JP2005309787A (en) * 2004-04-21 2005-11-04 Nec Electronics Corp Central processing unit and microcomputer
CN100368818C (en) * 2003-12-10 2008-02-13 上海华虹Nec电子有限公司 Test module and test method in use for electrical erasable memory built in chip
JP2015111114A (en) * 2013-11-07 2015-06-18 株式会社半導体エネルギー研究所 Semiconductor device
CN116338439A (en) * 2023-05-29 2023-06-27 成都瑞迪威科技有限公司 Chip initialization data testing method through phase shift control

Cited By (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN100368818C (en) * 2003-12-10 2008-02-13 上海华虹Nec电子有限公司 Test module and test method in use for electrical erasable memory built in chip
JP2005243176A (en) * 2004-02-27 2005-09-08 Fujitsu Ltd Semiconductor device and voltage control method
JP4601305B2 (en) * 2004-02-27 2010-12-22 富士通セミコンダクター株式会社 Semiconductor device
JP2005309787A (en) * 2004-04-21 2005-11-04 Nec Electronics Corp Central processing unit and microcomputer
JP2015111114A (en) * 2013-11-07 2015-06-18 株式会社半導体エネルギー研究所 Semiconductor device
US10197627B2 (en) 2013-11-07 2019-02-05 Semiconductor Energy Laboratory Co., Ltd. Semiconductor device
CN116338439A (en) * 2023-05-29 2023-06-27 成都瑞迪威科技有限公司 Chip initialization data testing method through phase shift control
CN116338439B (en) * 2023-05-29 2023-08-04 成都瑞迪威科技有限公司 Chip initialization data testing method through phase shift control

Similar Documents

Publication Publication Date Title
KR101405690B1 (en) Robust memory link testing using memory controller
EP0978124B1 (en) A method for testing integrated memory using an integrated dma controller
US6604060B1 (en) Method and apparatus for determining CC-NUMA intra-processor delays
US6223228B1 (en) Apparatus for synchronizing multiple processors in a data processing system
US7721174B2 (en) Full-speed BIST controller for testing embedded synchronous memories
US6530076B1 (en) Data processing system processor dynamic selection of internal signal tracing
US6751756B1 (en) First level cache parity error inject
US7836253B2 (en) Cache memory having pipeline structure and method for controlling the same
EP1324190A2 (en) Data processing system having a read-modify-write unit
JP5142868B2 (en) Cache memory control circuit and processor
JP2002163127A (en) Trace control circuit
US6249880B1 (en) Method and apparatus for exhaustively testing interactions among multiple processors
JP2002367397A (en) Memory testing and initializing circuit
US6230263B1 (en) Data processing system processor delay instruction
US6052700A (en) Calendar clock caching in a multiprocessor data processing system
US20060129754A1 (en) Reuse of functional data buffers for pattern buffers in XDR DRAM
US8631173B2 (en) Semiconductor device
KR930003443B1 (en) Computer system
US6175518B1 (en) Remote register hierarchy accessible using a serial data line
JP2806841B2 (en) Processor control device and control method thereof
US6772318B1 (en) Bypass control circuit
JP3531311B2 (en) Instruction reading device
JP2004318209A (en) Semiconductor integrated circuit device
JPH07111683B2 (en) Processor with task switching function
JP2000293394A (en) Processor with bist function