JP2007232588A - 半導体集積回路装置、及び、その制御方法 - Google Patents

半導体集積回路装置、及び、その制御方法 Download PDF

Info

Publication number
JP2007232588A
JP2007232588A JP2006055192A JP2006055192A JP2007232588A JP 2007232588 A JP2007232588 A JP 2007232588A JP 2006055192 A JP2006055192 A JP 2006055192A JP 2006055192 A JP2006055192 A JP 2006055192A JP 2007232588 A JP2007232588 A JP 2007232588A
Authority
JP
Japan
Prior art keywords
memory
area
valid bit
internal state
data
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.)
Withdrawn
Application number
JP2006055192A
Other languages
English (en)
Inventor
Tatsuya Kawasaki
達也 川崎
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.)
NEC Electronics Corp
Original Assignee
NEC Electronics 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 NEC Electronics Corp filed Critical NEC Electronics Corp
Priority to JP2006055192A priority Critical patent/JP2007232588A/ja
Priority to US11/711,868 priority patent/US7640473B2/en
Publication of JP2007232588A publication Critical patent/JP2007232588A/ja
Withdrawn legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C29/00Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
    • G11C29/04Detection or location of defective memory elements, e.g. cell constructio details, timing of test signals
    • G11C29/08Functional testing, e.g. testing during refresh, power-on self testing [POST] or distributed testing
    • G11C29/12Built-in arrangements for testing, e.g. built-in self testing [BIST] or interconnection details
    • G11C29/18Address generation devices; Devices for accessing memories, e.g. details of addressing circuits
    • G11C29/30Accessing single arrays
    • G11C29/32Serial access; Scan testing
    • GPHYSICS
    • G01MEASURING; TESTING
    • G01RMEASURING ELECTRIC VARIABLES; MEASURING MAGNETIC VARIABLES
    • G01R31/00Arrangements for testing electric properties; Arrangements for locating electric faults; Arrangements for electrical testing characterised by what is being tested not provided for elsewhere
    • G01R31/28Testing of electronic circuits, e.g. by signal tracer
    • G01R31/317Testing of digital circuits
    • G01R31/3181Functional testing
    • G01R31/3185Reconfiguring for testing, e.g. LSSD, partitioning
    • G01R31/318533Reconfiguring for testing, e.g. LSSD, partitioning using scanning techniques, e.g. LSSD, Boundary Scan, JTAG
    • G01R31/318575Power distribution; Power saving
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C29/00Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
    • G11C29/04Detection or location of defective memory elements, e.g. cell constructio details, timing of test signals
    • G11C29/08Functional testing, e.g. testing during refresh, power-on self testing [POST] or distributed testing
    • G11C29/12Built-in arrangements for testing, e.g. built-in self testing [BIST] or interconnection details
    • G11C29/18Address generation devices; Devices for accessing memories, e.g. details of addressing circuits
    • G11C29/30Accessing single arrays
    • G11C2029/3202Scan chain

Landscapes

  • Engineering & Computer Science (AREA)
  • Power Engineering (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Test And Diagnosis Of Digital Computers (AREA)
  • Tests Of Electronic Circuits (AREA)
  • Dram (AREA)

Abstract

【課題】半導体集積回路装置の内部状態を保存するために、バッテリバックアップされた外部メモリが必要となる。
【解決手段】半導体集積回路装置は、内部論理回路部と第1メモリと第2メモリと制御回路部とを具備する。内部論理回路部は、回路の正常性を試験するスキャンチェーンを備える。第1メモリは、内部論理回路部によりアクセスされる。第2メモリは、第1メモリに格納されるデータの有効性を示すバリッドビットを第1メモリに関連付けて格納する。制御回路部は、スキャンチェーンに保持される内部状態データを第1メモリに格納し、第1メモリに格納された内部状態データをスキャンチェーンに再設定する。内部状態データが第1メモリに格納された後、第1メモリ及び第2メモリの電源供給を継続しながら内部論理回路部の電源供給を停止し、内部論理回路部の電源供給が再開されたとき、第1メモリに格納された内部状態データをスキャンチェーンに再設定する。
【選択図】図2

Description

本発明は、半導体集積回路装置及びその制御方法に関し、特に、内部状態を示すデータを退避回復する回路を備える半導体集積回路装置およびその制御方法に関する。
近年、スタンバイ機能やレジューム機能等の低消費電力モードを備えた半導体集積回路が注目されている。通常、半導体集積回路は、電源供給が停止されると不揮発性メモリを除いてその内部状態は消去されるため、電源供給を再開した時、回路の電源供給を停止する直前の状態から回路動作を再開させるためには、内部状態を保存しなくてはならない。
例えば、特開平6−52070号公報によれば、レジスタに保持された内部状態データを電源供給停止時に外部メモリに退避させ、保持する集積回路が開示されている。この集積回路は、複数のレジスタとデータ退避部とデータ復帰部とを具備する。複数のレジスタは、スキャンチェーンを形成するように接続される。データ退避部は、外部信号に応答し、データ退避モード時に、複数のレジスタにスキャンチェーンを形成させ、形成されたスキャンチェーンを介して各レジスタの保持データを外部に読み出す。このとき、データ退避部は、内部状態データを所定のビット幅のデータに直列/並列変換し、データ入出力部を通じてデータ保護用メモリに格納する。データ復帰部は、外部信号に応答し、データ復帰モード時に、複数のレジスタにスキャンチェーンを形成させ、形成されたスキャンチェーンを介して退避していたデータをもとのレジスタに復帰させる。このとき、データ復帰部は、データ保護用メモリから内部状態データを読出してデータ入出力手段から入力し、所定のビット幅のデータを直列の内部状態データに変換してスキャンチェーンを通じて復帰する。
特開平6−52070号公報
上述のように、半導体集積回路装置の内部状態を保存するために、バッテリバックアップされた外部メモリが必要となる。
以下に、[発明を実施するための最良の形態]で使用される番号・符号を用いて、課題を解決するための手段を説明する。これらの番号・符号は、[特許請求の範囲]の記載と[発明を実施するための最良の形態]との対応関係を明らかにするために付加されたものである。ただし、それらの番号・符号を、[特許請求の範囲]に記載されている発明の技術的範囲の解釈に用いてはならない。
本発明の観点では、半導体集積回路装置は、内部論理回路部(90)と、第1メモリ(12)と、第2メモリ(22)と、制御回路部(50、51)とを具備する。内部論理回路部(90)は、回路の正常性を試験するスキャンチェーン(300〜331)を備える。第1メモリ(12)は、内部論理回路部(90)によりアクセスされる。第2メモリ(22)は、第1メモリ(12)に格納されるデータの有効性を示すバリッドビットを第1メモリ(12)に関連付けて格納する。制御回路部(50、51)は、スキャンチェーン(300〜331)に保持される内部状態データを第1メモリ(12)に格納し、第1メモリ(12)に格納された内部状態データをスキャンチェーン(300〜331)に再設定する。
内部状態データが第1メモリ(12)に格納された後、第1メモリ(12)及び第2メモリ(22)の電源供給を継続しながら内部論理回路部(90)の電源供給を停止し、内部論理回路部(90)の電源供給が再開されたとき、第1メモリ(12)に格納された内部状態データをスキャンチェーン(300〜331)に再設定する。
本発明の他の観点では、制御方法は、回路の正常性を試験するスキャンチェーン(300〜331)を備える内部論理回路部(90)と、内部論理回路部(90)によりアクセスされる第1メモリ(12)と、第1メモリ(12)に格納されるデータの有効性を示すバリッドビットを第1メモリ(12)に関連付けて格納する第2メモリ(22)とを具備する半導体集積回路装置の制御方法である。半導体集積回路装置の制御方法は、退避ステップと、回復ステップとを具備する。退避ステップは、スキャンチェーン(300〜331)に保持される内部状態データを第1メモリ(12)に格納する。回復ステップは、第1メモリ(12)に格納された内部状態データをスキャンチェーン(300〜331)に再設定する。
半導体集積回路装置の制御方法は、供給停止ステップと、供給再開ステップとをさらに具備する。供給停止ステップは、退避ステップで内部状態データを第1メモリ(12)に格納した後、第1メモリ(12)及び第2メモリ(22)の電源供給を継続しながら内部論理回路部(90)の電源供給を停止する。供給再開ステップは、内部論理回路部(90)の電源供給を再開する。この供給再開ステップ直後に、回復ステップにより内部状態データをスキャンチェーンに再設定する。
本発明によれば、外部メモリを設けなくても半導体集積回路装置の内部状態を保存する内部メモリを設けることができる。内部メモリを利用することにより、追加回路を削減できる。また、本発明によれば、電源供給の中断から復帰する際に、内部メモリに保存されたデータをフリップフロップに再設定することができ、電源中断から復帰する速度を高速化することができる。
(第1の実施の形態)
図を参照して本発明の第1の実施の形態が説明される。図1は、第1の実施の形態を説明するために、半導体集積回路装置に内蔵されるスキャンチェーンとキャッシュメモリ及びバリッドビットメモリとを模式的に示した図である。半導体集積回路装置は、キャッシュメモリ10と、キャッシュメモリ10に記憶されるデータの有効性を示すバリッドビットを格納するバリッドビットメモリ20と、半導体集積回路装置の内部状態データを保持するスキャンフリップフロップ群とを備える。キャッシュメモリ10は、(N+1)ワード×(L+1)ビット/ワードのメモリである。キャッシュメモリ10の各ワードに格納されるデータの有効性を示すバリッドビットは、バリッドビットメモリ20に格納される。ここでは、バリッドビットは、キャッシュメモリ10の1ワードに対して1ビットを割り当てられる。従って、バリッドビットメモリ20は、(N+1)ビットの情報を格納する。
半導体集積回路装置の内部状態を示すデータは、スキャンフリップフロップに保持されている。スキャンフリップフロップは、内部状態データの退避時にスキャンチェーン30、31、…、3Lを形成し、スキャンチェーン30、31、…、3Lを介して保持する内部状態データをそれぞれシリアルに出力する。また、回復時において、スキャンチェーン30、31、…、3Lを介してスキャンフリップフロップは退避された内部状態データを再設定する。スキャンチェーン30、31、…、3Lはシリアル入出力であるから、同期するクロックに従って順に内部状態データの入出力を行う。従って、出力時は、出力ノードに接続されるスキャンフリップフロップ群40(格納されるデータをCH0とする)からスキャンフリップフロップ群41(CH1)、スキャンフリップフロップ群42(CH2)の順にスキャンフリップフロップ群4M(CHM)まで(L+1)ビットのデータが並列に並んで出力される。
当初、バリッドビットメモリ20は、バリッドビットメモリの内容20−1に示されるように、アドレス0、2、…、n、…、Nのデータが“有効(=1)”であることを示し、アドレス1、3、…のデータが“無効(=0)”であることを示している。スキャンチェーンの出力データが格納されたメモリは、それまでに格納されていたデータが消えてしまうため、バリッドビットは“無効(=0)”となる。本実施の形態では、スキャンチェーン30、31、…、3Lの出力ノードから出力されるスキャンデータをキャッシュメモリ10の先頭から順に格納する。従って、スキャンチェーン30、31、…、3Lの長さ分(M+1)のキャッシュメモリ10の内容がスキャンチェーンの出力データになる。そのアドレスをnとすると、対応するバリッドビットメモリ20の内容20−2は、アドレスnまで全てのバリッドビットデータが“無効(=0)”になる。
即ち、スキャンチェーン30、31、…、3Lからシリアルに出力されるデータをそれぞれP0、P1、…、PLとすると、図1に示されるように、キャッシュメモリ10のアドレス0のメモリのビット0にデータP0CH0が格納され、アドレス3のメモリのビット1にデータP1CH3が格納される。アドレスnには、スキャンフリップフロップ群4MのデータCHMが格納され、アドレス(n+1)以降は、キャッシュメモリ10の元のデータがそのまま残る。例えば、アドレスNには、データD0N、D1N、…、DLNが変更されずに格納されている。
キャッシュメモリ10に格納された内部状態データは、回復時、キャッシュメモリ10の先頭から読み出し、順にスキャンチェーン30、31、…、3Lに供給し、スキャンチェーン内をシフトさせる。回復時のデータは、スキャンフリップフロップ群4M側から供給され、(M+1)個のデータがスキャンチェーン30、31、…、3Lに供給されると、最初に読み出されたデータP0CH0〜PLCH0が、スキャンフリップフロップ群40に再設定されることになる。
図2は、第1の実施の形態に係る半導体集積回路装置の構成を示すブロック図である。半導体集積回路装置は、内部論理回路部90、キャッシュメモリ12、バリッドビットメモリ22、選択回路81、82、83、論理和回路87、制御回路部50、スキャンフリップフロップF0−0〜255、…、31−0〜255を具備する。内部論理回路部90とスキャンフリップフロップF0−0〜255、…、31−0〜255とは、通常動作時において、例えばCPU(中央演算処理ユニット)として動作する回路である。以下、この内部論理回路部90とスキャンフリップフロップF0−0〜255、…、31−0〜255とによる回路をCPUとして説明する。内部論理回路部90は、CPUをなす回路の組み合せ回路部分であり、スキャンフリップフロップF0−0〜255、…、31−0〜255から出力される信号を入力して論理演算する。内部論理回路部90は、論理演算した結果をスキャンフリップフロップF0−0〜255、…、31−0〜255に出力し、内部状態として保持する。従って、通常動作において、内部論理回路部90は、キャッシュメモリ12に対してデータ入力信号YCDI、アドレス信号YCAD、チップセレクト信号YCCS、ライトイネーブル信号YCWEを与えてアクセスし、データ出力信号CDOによりデータを読み出す。同時に、内部論理回路部90は、バリッドビットメモリ22に対してデータ入力信号YVDI、アドレス信号YVAD、チップセレクト信号YVCS、ライトイネーブル信号YVWEを与えてアクセスし、データ出力信号VDOによりデータを読み出す。
回路動作の正常性をテストするスキャンテスト時、スキャンフリップフロップF0−0〜255、…、31−0〜255は、スキャンチェーン300〜331を形成する。入力ポートの各々からシリアルのテストデータであるスキャン入力信号SI−0〜31が入力される。出力ポートからテスト結果であるシリアルのスキャン出力信号SO−0〜31が出力される。
本発明では、このスキャンチェーンを利用して、半導体集積回路装置の内部状態を示すデータは退避及び回復される。そのため、選択回路81、82、83は、通常のデータ及びテストデータと、半導体集積回路装置の内部状態データとを切り替える。選択回路81は、バリッドビットメモリ22に入力されるアドレス信号VAD、入力データ信号VDI、チップセレクトおよびライトイネーブルなどメモリ制御用信号VCS/VWEを切り替える。選択回路82は、キャッシュメモリ12に入力されるアドレス信号CAD、入力データ信号CDI、チップセレクトおよびライトイネーブルなどメモリ制御用信号CCS/CWEを切り替える。選択回路83は、スキャンチェーン300〜331に入力されるシリアル信号を切り替える。スキャンチェーン300〜331は、外部から入力されるスキャンテストデータ、或いは、キャッシュメモリ12に格納されている内部状態データを取り込む。そのため、選択回路83は、スキャン入力信号SI−0〜31とキャッシュメモリ12の出力信号CDOとを切り替えてスキャンチェーン300〜331のシリアル入力として供給する。
論理和回路87は、スキャンテスト時のスキャンチェーンのシフト動作を指示する外部のスキャンイネーブル信号SKEと、制御回路部50が生成する保護用スキャンイネーブル信号PSEとの論理和をとって各スキャンフリップフロップに供給し、各スキャンフリップフロップをスキャンチェーン動作(シフト動作)させる。
キャッシュメモリ12は、内部論理回路部90及びスキャンフリップフロップF0−0〜255、…、F31−0〜255によるCPUからアクセスされる。キャッシュメモリ12は、外部のメインメモリへのアクセスを削減して処理を高速化するために設けられた高速のメモリである。その内容が有効であるか無効であるかを示すバリッドビットが、バリッドビットメモリ22に格納されている。
キャッシュメモリ12とバリッドビットメモリ22との対応関係は、図3に示される。キャッシュメモリ12は、CPUからワード単位でアクセスされ、ここでは1ワード32ビットで構成される。外部とのインタフェースは、1ライン単位で行われる。ここでは1ラインは8ワードで構成される。この1ライン毎に、バリッドビットが付与される。従って、バリッドビットメモリ22が1ビット/ワード構成のメモリであれば、図3に示されるように、4096ワードのキャッシュメモリ12に対して、512ワード(ビット)のバリッドビットメモリ22が必要となる。
キャッシュメモリ12及びバリッドビットメモリ22は、他の回路とは別の電源系Vmにより電源が供給される。従って、CPUの内部状態を示すデータがスキャンチェーン300〜331を介してキャッシュメモリ12に退避された後、電源系Vmのみ供給し、他の回路部の電源供給を停止することにより、半導体集積回路装置の消費電力を低減することが可能となる。
制御回路部50は、状態フラグ生成部54、スキャンイネーブル生成部55、バリッドデータ生成部56、カウント部52、メモリ制御信号生成部58を備える。退避動作を指示する退避モード信号SMDと、回復動作を指示する回復モード信号RMDが制御回路部50に入力され、制御回路部50は、それぞれの動作モードに応じた制御信号を各部に供給する。クロックCLKは、詳細を図示されないが各部に供給され、制御回路部50は、クロックCLKに同期して動作する。
状態フラグ生成部54は、退避モード信号SMD及び回復モード信号RMDに基づいて、データ保護状態フラグPFLを生成する。データ保護状態フラグPFLは、選択回路81、82、83に供給され、キャッシュメモリ12、バリッドビットメモリ22、スキャンチェーン300〜331に供給される各信号を切り替える。
スキャンイネーブル生成部55は、スキャンチェーン300〜331のシフト動作を有効にする保護用スキャンイネーブル信号PSEを生成する。保護用スキャンイネーブル信号PSEは、論理和回路87を介してスキャンフリップフロップF0−0〜255、…、F31−0〜255に供給され、アクティブのときクロックCLKに同期してスキャンチェーン300〜331がシフト動作する。保護用スキャンイネーブル信号PSEは、退避動作開始とともにアクティブになるが、回復動作時は、キャッシュメモリ12から読み出されるデータが1クロック遅延するため、回復動作開始から1クロック遅れてアクティブになる。全てのデータが退避或いは回復すると、スキャンイネーブル信号はインアクティブになって不要なシフトを防止する。
バリッドデータ生成部56は、バリッドビットメモリ22に書き込むバリッドデータ信号XVDIを生成する。バリッドデータ信号XVDIは、選択回路81を介してバリッドビットメモリ入力データ信号VDIになる。従って、内部状態データの退避・回復動作時、バリッドビットメモリ入力データ信号VDIは、バリッドデータ生成部56が生成するバリッドデータ信号XVDIとなる。本実施の形態では、バリッドデータ生成部56は、キャッシュメモリ12のデータが“無効”であることを示す“0”データのみ供給する。
カウント部52は、クロックCLKに基づいて計数するカウンタを備え、キャッシュメモリ12のアドレス信号XCAD、バリッドビットメモリ22のアドレス信号XVADを生成する。カウンタは、キャッシュメモリ12が4096ワードのメモリの場合、12ビットでアドレスを示すことが可能となり、このうち上位9ビットがバリッドビットメモリ22のアドレスを示す。本実施の形態の場合、アドレスに対応するメモリに順に内部状態データが格納されるため、このカウンタのカウンタ値CNTは、スキャンチェーンの退避したデータの数に対応する。従って、そのカウント値CNTによって、退避・回復のスキャンチェーンの終端が判明するため、カウント部52は終端を検出して各部に通知する。カウント値CNTを各部に通知してもよい。
メモリ制御信号生成部58は、キャッシュメモリ12、バリッドビットメモリ22が選択されたことを示すチップセレクト信号XCCS、XVCS、それぞれのメモリのデータの書き込み/読み出し状態を指示するライトイネーブル信号XCWE、XVWEを生成する。チップセレクト信号XCCSとライトイネーブル信号XCWEは、選択回路82を介してキャッシュメモリ12にチップセレクト信号CCSとライトイネーブル信号CWEとして供給される。チップセレクト信号XVCSとライトイネーブル信号XVWEは、選択回路81を介してバリッドビットメモリ22にチップセレクト信号VCSとライトイネーブル信号VWEとして供給される。従って、内部状態データの退避・回復動作時、各メモリに入力されるチップセレクト信号CCS、VCS、ライトイネーブル信号CWE、VWEは、メモリ制御信号生成部58が生成するチップセレクト信号XCCS、XVCS、ライトイネーブル信号XCWE、XVWEとなる。
退避時、スキャンチェーン300〜331のデータは、キャッシュメモリ12の先頭から順次書き込まれるため、ライトイネーブル信号CWE、VWEは、常時書き込み状態(write)を示す。回復時、キャッシュメモリ12から内部状態データを読み出すのみであるため、ライトイネーブル信号CWE、VWEは、常時読み出し状態(read)を示す。キャッシュメモリ12のチップセレクト信号CCSは、退避動作或いは回復動作中のみアクティブになるが、バリッドビットメモリ22のチップセレクト信号VCSは、回復動作では、バリッドビットメモリ22をアクセスしないため、退避動作中のみアクティブになる。
次に、図4を参照して、内部状態を示すデータをキャッシュメモリ22に退避する退避動作を説明する。図4(a)は、クロックCLKを示し、各周期に符号が付されている。回路は、このクロックCLKに同期して動作するため、この符号を用いてタイミングの説明をする。従って、クロックt1は、クロックCLKのt1の周期を示すものとする。
外部から入力される退避動作の指示を示す退避モード信号SMDがアクティブになると(図4(b))、退避動作が開始され、データ保護状態フラグPFL及び保護用スキャンイネーブル信号PSEがアクティブになる。データ保護状態フラグPFLは、以降、退避動作が終了するまでアクティブ状態を継続し、選択回路81〜83を退避動作側に切り替えた状態にする(図4(c))。保護用スキャンイネーブル信号PSEは、スキャンチェーン300〜331が全ての内部状態を示すデータを出力するクロックt9まで、スキャンチェーン300〜331がシフト動作するようにアクティブ状態を継続する(図4(d))。
これに伴って、期間t1において、キャッシュメモリ12のチップセレクト信号CCS及びバリッドビットメモリ22のチップセレクト信号VCSはアクティブになり(図4(f)(j))、それぞれのメモリのライトイネーブル信号CWE、VWEは書き込み状態を示す(図4(g)(k))。これにより、キャッシュメモリ12とバリッドビットメモリ22は、スキャンチェーン300〜331から出力される内部状態を示すデータを格納し、バリッドビットを“無効”にすることが可能になる。また、カウント部52に備わるカウンタのカウント値CNTは “0”を示し(図4(h))、キャッシュメモリ12のアドレス信号CAD、バリッドビットメモリ22のアドレス信号VADは、共に“0”を示している(図4(h)(l))。従って、キャッシュメモリ12のアドレス0には、スキャンチェーン300〜331の最初のデータCH0、即ち、スキャンフリップフロップF0−0〜F31−0に格納されている内部状態を示すデータが設定され(図4(i))、バリッドビットメモリ22のアドレス0には、“無効”を示す“0”が書き込まれる。
クロックt2になると、カウント値CNTが“1”にカウントアップされる(図4(e))。従って、キャッシュメモリ12のアドレスCADは“1”になるが(図4(h))、バリッドビットメモリ22のアドレスVADは変化しない(図4(l))。保護用スキャンイネーブル信号PSEがアクティブであるから、スキャンチェーン300〜331は、クロックCLKの立ち上がり毎にシフト動作して内部状態を示すデータをスキャンフリップフロップF0−0〜F31−0側に移動する。従って、クロックt2では、データCH1がキャッシュメモリ12に与えられる(図4(i))。クロックt4まで、クロック毎にスキャンチェーン300〜331はシフト動作を繰り返し、順にキャッシュメモリ12に内部状態を示すデータが書き込まれる。クロックt4において、カウント値CNTは“7”となり、キャッシュメモリ12の1ライン分のデータが書き込まれたことになる。
クロックt5になると、カウント値CNTは“8”になり(図4(e))、バリッドビットメモリ22のアドレスが“1”になる(図4(l))。バリッドビットメモリ22のアドレス“1”に“無効”を示すデータ“0”が書き込まれ、キャッシュメモリ12のアドレス“8”にスキャンチェーンのCH8のデータが書き込まれる(図4(i))。このように、クロック毎にキャッシュメモリ12のアドレスCADが更新され、スキャンチェーン300〜331のデータが順にキャッシュメモリ12に格納されていく。
クロックt8においてデータCH254がキャッシュメモリ12に書き込まれ、クロックt9においてスキャンチェーン300〜331の最後のデータ、即ちスキャンフリップフロップF0−255〜F31−255に格納されていたデータCH255がキャッシュメモリ12に書き込まれる。全ての内部状態を示すデータがキャッシュメモリ12に退避されたので、クロックt10において、保護用スキャンイネーブル信号PSEがインアクティブになり、キャッシュメモリ12及びバリッドビットメモリ22のチップセレクトCCS及びVCSがインアクティブになる(図4(d)(f)(j))。
このように、スキャンフリップフロップF0−0〜255、…、F31−0〜255に格納されていた内部状態を示すデータは、キャッシュメモリ12に全て退避され、保持されることになる。キャッシュメモリ12とバリッドビットメモリ22との電源供給を継続することにより、CPUの電源供給を停止してもCPUの内部状態は維持されることになる。
次に、図5を参照して、キャッシュメモリ12に格納されたCPUの内部状態データを元のスキャンフリップフロップに再設定する回復動作を説明する。図5(a)は、クロックCLKを示し、各周期に符号が付される。回復動作は、このクロックCLKに同期しているため、この符号を用いてタイミングの説明がなされる。
外部から回復動作の指示を示す回復モード信号RMDが入力されると(図5(b))、回復動作が開始され、データ保護状態フラグPFLがアクティブになる(図5(c))。データ保護状態フラグPFLは、以降、回復動作が終了するまでアクティブ状態を継続し、選択回路81〜83を回復動作側に切り替えた状態にする。キャッシュメモリ12から読み出されるデータが、アドレス供給から1クロック遅延して出力されるため、保護用スキャンイネーブル信号PSEは、データ保護状態フラグPFLに対して1クロック遅延したクロックt2においてアクティブになる。保護用スキャンイネーブル信号PSEは、キャッシュメモリ12から全ての内部状態を示すデータが出力されて元のスキャンチェーン300〜331に再設定されるクロックt10まで、スキャンチェーン300〜331がシフト動作するようにアクティブ状態を継続する(図5(d))。
カウント部52のカウンタは、データ保護状態フラグPFLがアクティブになるとともにカウント開始し、クロックt1では初期値“0”を示す。このカウンタは、クロックCLKの立ち上がりに同期してカウントアップし、スキャンチェーン300〜331の長さを示す“255”までカウントする(図5(e))。カウント値CNTは、キャッシュメモリ12にアドレスCADとして与えられ、アドレスCADは、クロックCLKの立ち上がりに同期して歩進される(図5(h))。カウント値CNTの上位5ビットがバリッドビットメモリ22にアドレス信号VADとして与えられるが、回復動作時、バリッドビットメモリ22はアクセスされないため、アドレス信号VADは使用されない(図5(l))。
キャッシュメモリ12のライトイネーブル信号CWEは読み出し動作を指示する(図5(g))。従って、キャッシュメモリ12は、クロックt1において指示されたアドレス“0”のデータCH0を、クロックt2において出力信号CDOに出力し、スキャンチェーン300〜331に供給する(図5(i))。スキャンチェーン330〜331は、クロックCLKの立ち上がりに同期してスキャンフリップフロップF0−255〜F31−255からスキャンフリップフロップF0−0〜F31−0に向けてシフトする。データCH0は、スキャンフリップフロップF0−255〜F31−255に入力され、クロックt3にスキャンフリップフロップF0−254〜F31−254に移動する。内部状態データは、クロック毎にキャッシュメモリ12から読み出されてスキャンフリップフロップF0−255〜F31−255に入力され、スキャンチェーン300〜331の中を移動していく。
クロックt9において、カウント値CNTは“255”を示し(図5(e))、キャッシュメモリ12のアドレスCADは、退避データを格納した最後のアドレス“255”になる(図5(h))。このアドレスに対応するデータCH255は、クロックt10においてキャッシュメモリ12から出力される(図5(i))。スキャンチェーン300〜331は、最後のシフトを行い、これによってスキャンフリップフロップF0−255〜F31−255にデータCH255が再設定されて、回復動作が終了する。ここでは、内部状態データが退避されるキャッシュメモリ12のアドレスを“0”から“255”としたが、カウンタの初期値を設定することにより、任意のアドレスから開始することができる。
このように、CPUの内部状態を示すデータは、キャッシュメモリ12に退避され、元のスキャンフリップフロップに再設定される。従って、CPUが待機状態となって、内部状態退避後にCPU部分の電源供給が停止されても、動作再開時には、高速に動作復帰が行われる。また、キャッシュメモリ12のうち、内部状態データが書き込まれなかった部分は、退避以前の状態が保持されているため、復帰後の動作も待機前と同程度であることが期待できる。キャッシュメモリ12を使用するため、内部状態データを保持するメモリを別に備える必要もない。
(第2の実施の形態)
図を参照して本発明の第2の実施の形態が説明される。図6は、第2の実施の形態を説明するために半導体集積回路装置に内蔵されるスキャンチェーンとキャッシュメモリ及びバリッドビットメモリとを模式的に示した図である。半導体集積回路装置は、キャッシュメモリ10と、キャッシュメモリ10に記憶されるデータの有効性を示すバリッドビットを格納するバリッドビットメモリ20と、半導体集積回路装置の内部状態データを保持するスキャンフリップフロップ群とを備える。キャッシュメモリ10は、(N+1)ワード×(L+1)ビット/ワードのメモリである。キャッシュメモリ10の各ワードに格納されるデータの有効性を示すバリッドビットは、バリッドビットメモリ20に格納される。ここでは、バリッドビットは、キャッシュメモリ10の1ワードに対して1ビットを割り当てられる。従って、バリッドビットメモリ20は、(N+1)ビットの情報を格納する。
半導体集積回路装置の内部状態を示すデータは、スキャンフリップフロップに保持されている。スキャンフリップフロップは、内部状態データの退避時にスキャンチェーン30、31、…、3Lを形成し、スキャンチェーン30、31、…、3Lを介して保持する内部状態データをそれぞれシリアルに出力する。また、回復時において、スキャンフリップフロップは、スキャンチェーン30、31、…、3Lを介して退避された内部状態データを再設定する。スキャンチェーン30、31、…、3Lはシリアル入出力であるから、同期するクロックに従って順に内部状態データの入出力を行う。従って、出力時は、出力ノードに接続されるスキャンフリップフロップ群40(格納されるデータをCH0とする)からスキャンフリップフロップ群41(CH1)、スキャンフリップフロップ群42(CH2)の順にスキャンフリップフロップ群4M(CHM)まで(L+1)ビットのデータが並列に並んで出力される。
当初、バリッドビットメモリ20は、バリッドビットメモリの内容20−3に示されるように、アドレス1、…、x−1、x、…、n、…、Nのデータが“有効(=1)”であることを示し、アドレス0、2、3、…のデータが“無効(=0)”であることを示している。第2の実施の形態では、このうち、キャッシュメモリ10の内容が“無効”である無効データ領域に内部状態データを格納する。従って、キャッシュメモリのアドレス0、2、3、…に内部状態データを格納することになる。全ての内部状態データがこのアドレス0、2、3、…の空き領域に格納できれば良いが、空き領域だけでは不足する場合がある。キャッシュメモリの空き領域が少ない場合、不足分は、内容が“有効”である所定の領域に内部状態データを格納し、その領域のバリッドビットを“無効”にすることにより補う。
図6では、アドレス(x−1)までの無効データ領域では内部状態データを格納しきれず、アドレスxからアドレスnまでの領域に残りの内部状態データを格納し、バリッドビットを“無効(=0)”に書き換える。従って、バリッドビットメモリ20は、メモリの内容20−4に示すように、アドレスx〜nまで“0”が格納され、これに関連付けられるキャッシュメモリ10のアドレスx〜nに内部状態データP0CHm−PLCHmから内部状態データP0CHM−PLCHMが格納される。また、バリッドビットが1であるアドレス1にデータD01、D11、…、DL1、アドレスx−1にデータD0x−1、D1x−1、…、DLx−1、アドレスNにデータD0N、D1N、…、DLNが変更されずに格納されている。
内部状態データは、バリッドビットが“無効”を示しているキャッシュメモリの領域に格納されたことになる。従って、回復する場合、バリッドビットが“無効”を示すキャッシュメモリ10のデータを順にスキャンチェーン30、31、…、3Lに供給し、スキャンチェーン内をシフトさせることにより元のスキャンフリップフロップに再設定することができる。即ち、キャッシュメモリ10から読み出された内部状態データは、スキャンフリップフロップ群4M側から供給されてスキャンチェーン内をシフトし、(M+1)個のデータが供給されると、最初に読み出されたデータP0CH0〜PLCH0がスキャンフリップフロップ群40に再設定されることになる。
図7は、第2の実施の形態に係る半導体集積回路装置の構成を示すブロック図である。図2に示される半導体集積回路装置とほぼ同じ構成であるが、バリッドビットを判定するためにバリッドビットメモリ22の出力が制御回路部51に供給され、制御回路部51は、バリッドビットの判定、内部状態データの個数のカウントなどが追加されている。
半導体集積回路装置は、内部論理回路部90、キャッシュメモリ12、バリッドビットメモリ22、選択回路81、82、83、論理和回路87、制御回路部51、スキャンフリップフロップF0−0〜255、…、31−0〜255を具備する。内部論理回路部90とスキャンフリップフロップF0−0〜255、…、31−0〜255とは、通常動作時において、例えばCPUとして動作する回路である。以下、この内部論理回路部90とスキャンフリップフロップF0−0〜255、…、31−0〜255とによる回路をCPUとして説明する。回路動作の正常性をテストするスキャンテスト時、スキャンフリップフロップF0−0〜255、…、31−0〜255は、スキャンチェーン300〜331を形成する。入力ポートの各々からシリアルのテストデータであるスキャン入力信号SI−0〜31が入力される。出力ポートからテスト結果であるシリアルのスキャン出力信号SO−0〜31が出力される。
本発明では、このスキャンチェーンを利用して、半導体集積回路装置の内部状態を示すデータを退避及び回復される。そのため、選択回路81、82、83は、通常のデータ及びテストデータと、半導体集積回路装置の内部状態データとを切り替える。選択回路81は、バリッドビットメモリ22に入力されるアドレス信号VAD、入力データ信号VDI、チップセレクトおよびライトイネーブルなどメモリ制御用信号VCS/VWEを切り替える。選択回路82は、キャッシュメモリ12に入力されるアドレス信号CAD、入力データ信号CDI、チップセレクトおよびライトイネーブルなどメモリ制御用信号CCS/CWEを切り替える。選択回路83は、スキャンチェーン300〜331に入力されるシリアル信号を切り替える。スキャンチェーン300〜331は、外部から入力されるスキャンテストデータ、或いは、キャッシュメモリ12に格納されている内部状態データを取り込む。そのため、選択回路83は、スキャン入力信号SI−0〜31とキャッシュメモリ12の出力信号CDOとを切り替えてスキャンチェーン300〜331のシリアル入力として供給する。
論理和回路87は、スキャンテスト時のスキャンチェーンのシフト動作を指示する外部のスキャンイネーブル信号SKEと、制御回路部51が生成する保護用スキャンイネーブル信号PSEとの論理和をとって各スキャンフリップフロップに供給し、各スキャンフリップフロップをスキャンチェーン動作(シフト動作)させる。
キャッシュメモリ12は、内部論理回路部90及びスキャンフリップフロップF0−0〜255、…、F31−0〜255によるCPUからアクセスされる。キャッシュメモリ12は、外部のメインメモリへのアクセスを削減して処理を高速化するために設けられた高速のメモリである。その内容が有効であるか無効であるかを示すバリッドビットが、バリッドビットメモリ22に格納されている。キャッシュメモリ12とバリッドビットメモリ22との対応関係は、第1の実施の形態において説明されたように、図3に示され、ここでは、説明は省略される。
キャッシュメモリ12及びバリッドビットメモリ22は、他の回路とは別の電源系Vmにより電源が供給される。従って、CPUの内部状態を示すデータがスキャンチェーン300〜331を介してキャッシュメモリ12に退避された後、電源系Vmのみ供給し、他の回路部の電源供給を停止することにより、半導体集積回路装置の消費電力を低減することが可能となる。
制御回路部51は、状態フラグ生成部54、カウント部53、スキャンイネーブル生成部57、バリッドデータ生成部56、メモリ制御信号生成部58を備える。退避動作を指示する退避モード信号SMDと、回復動作を指示する回復モード信号RMDが制御回路部51に入力され、制御回路部51は、それぞれの動作モードに応じた制御信号を各部に供給する。クロックCLKは、詳細を図示されないが各部に供給され、制御回路50は、クロックCLKに同期して動作する。
状態フラグ生成部54は、退避モード信号SMD及び回復モード信号RMDに基づいて、データ保護状態フラグPFLを生成する。データ保護状態フラグPFLは、選択回路81、82、83に供給され、キャッシュメモリ12、バリッドビットメモリ22、スキャンチェーン300〜331に供給される各信号を切り替える。
カウント部53は、クロックCLKの周期数を計数する第1カウンタと、退避・回復した内部状態データの個数を計数する第2カウンタと、バリッドビットが有効を示すキャッシュメモリ12に書き込み始めるアドレスを計数する第3カウンタとを備える。キャッシュメモリ12が4096ワードのメモリの場合、12ビットでアドレスを示すことができる。従って、第1カウンタは、12ビットのカウンタであり、このうち上位9ビットがバリッドビットメモリ22のアドレスを示す。バリッドビットメモリ22からバリッドビットデータを読み出し、その内容を判定してからキャッシュメモリ12に書き込み或いは読み出し動作が行われるため、キャッシュメモリ12のアドレスは、第1カウンタのカウント値を2クロック遅延させてキャッシュメモリ12に供給する。従って、バリッドビットメモリ22のアドレスの更新タイミングは、キャッシュメモリ12のアドレスの更新タイミングより2クロック早い。この第1カウンタのカウント値CNTが制御回路部51のベースとなる。
第2カウンタは、内部状態データがキャッシュメモリ12に書き込まれたとき、或いは、キャッシュメモリ12から内部状態データが読み出されたときカウントアップされ、カウント値CCNTは、スキャンチェーン300〜331のシフト回数を示す。このカウント値により内部状態データの退避・回復動作の終了が判定される。
第3カウンタは、キャッシュメモリ12の所定のアドレスまでに内部状態データを全て格納するために、バリッドビットが“有効”を示す領域に内部状態データを書き込まなければならない最初のアドレスを示すカウンタである。書き込むか否かの判定は、バリッドビット毎に行われ、カウント値MCNTは、バリッドビットメモリ22のアドレスを示す。第3カウンタの初期値は、所定のアドレスからスキャンチェーン300〜331の長さを差し引いた値が設定される。バリッドビットを判定してキャッシュメモリ12に内部データが書き込まれることが決定される毎に第3カウンタはカウントアップされる。例えば、キャッシュメモリ12の1023番地以下に、256ワードの長さを有するスキャンチェーンのデータを格納するためには、768番地から1023番地までの領域を確保しておけばよい。バリッドビットメモリ22のアドレスは、キャッシュメモリ12の8ワード単位であるから、768/8=96が第3カウンタの初期値になる。第3カウンタの値MCNTが、バリッドビットメモリ22のアドレスと一致するとき、その位置に対応するキャッシュメモリ12には内部状態データが格納される。キャッシュメモリ12の768番地までの領域においてバリッドビットが“無効”を示し、内部状態データが書き込むことができた場合には、第3カウンタはカウントアップされ、確保された領域は狭まる。従って、バリッドビットが“無効”を示す無効データ領域が1023番地までに256ワードあれば、バリッドビットが“有効”を示す有効データ領域に内部状態データが書き込まれることはない。
スキャンイネーブル生成部57は、スキャンチェーン300〜331のシフト動作を有効にする保護用スキャンイネーブル信号PSEを生成する。スキャンイネーブル生成部57にはバリッドビットメモリ22からバリッドビットデータVDOが供給される。保護用スキャンイネーブル信号PSEは、スキャンフリップフロップF0−0〜255、…、F31−0〜255に供給され、アクティブのとき、スキャンチェーン300〜331がクロックCLKに同期してシフト動作する。内部状態データは、キャッシュメモリ12のバリッドビットが“無効”を示す無効データ領域に格納されるため、その時だけスキャンチェーン300〜331はシフト動作を行う。
従って、スキャンイネーブル生成部57は、退避動作時、バリッドビットメモリ22から読み出されたバリッドビットの有効/無効を判定する。バリッドビットが“無効”を示す時に、保護用スキャンイネーブル信号PSEをアクティブにしてスキャンチェーン300〜331をシフト動作させる。回復動作時、スキャンイネーブル生成部57は、バリッドビットメモリ22から読み出されたバリッドビットの有効/無効を判定し、バリッドビットが“無効”を示す時に、保護用スキャンイネーブル信号PSEをアクティブにしてスキャンチェーン300〜331をシフト動作させる。バリッドビットが“有効”を示している場合、キャッシュメモリから読み出したデータは、内部状態データではないため、スキャンチェーン300〜331に入力されない。従って、回復動作時の保護用スキャンイネーブル信号PSEは、バリッドビットの読み出し開始から2クロック遅延して、アクティブ或いはインアクティブを示す。全てのデータが退避或いは回復すると、保護用スキャンイネーブル信号PSEはインアクティブになって不要なシフトを防止する。
バリッドデータ生成部56は、バリッドビットメモリ22に書き込むバリッドデータ信号XVDIを生成する。本実施の形態では、バリッドデータ生成部56は、キャッシュメモリ12のデータが“無効”であることを示す“0”データのみ供給することになる。バリッドデータ信号XVDIは、選択回路81を介してバリッドビットメモリ入力データ信号VDIになる。従って、内部状態データの退避・回復動作時、バリッドビットメモリ入力データ信号VDIは、バリッドデータ生成部56が生成するバリッドデータ信号XVDIになる。
メモリ制御信号生成部58は、キャッシュメモリ12、バリッドビットメモリ22が選択されたことを示すチップセレクト信号XCCS、XVCS、それぞれのメモリのデータの書き込み/読み出し状態を指示するライトイネーブル信号XCWE、XVWEを生成する。チップセレクト信号XCCSとライトイネーブル信号XCWEは、選択回路82を介してキャッシュメモリ12にチップセレクト信号CCSとライトイネーブル信号CWEとして供給される。チップセレクト信号XVCSとライトイネーブル信号XVWEは、選択回路81を介してバリッドビットメモリ22にチップセレクト信号VCSとライトイネーブル信号VWEとして供給される。従って、内部状態データの退避・回復動作時、各メモリに入力されるチップセレクト信号CCS、VCS、ライトイネーブル信号CWE、VWEは、メモリ制御信号生成部58が生成するチップセレクト信号XCCS、XVCS、ライトイネーブル信号XCWE、XVWEとなる。
退避時、スキャンチェーン300〜331のデータは、バリッドビットの状態に応じてキャッシュメモリ12の指定領域に書き込まれるため、ライトイネーブル信号CWE、VWEは、適宜読み出し状態(read)、書き込み状態(write)を示す。キャッシュメモリ12のチップセレクト信号CCSは、退避動作においてデータ書き込み時のみアクティブになり、回復動作ではデータ読み出し時のみアクティブになるように制御される。バリッドビットメモリ22のチップセレクト信号VCSは、データの読み出し及び書き込みの時にアクティブとなるように制御される。
次に、図8、図9を参照して、内部状態を示すデータをキャッシュメモリ22に格納する退避動作を説明する。図8(a)、図9(a)は、クロックCLKを示し、各周期に符号が付されている。回路は、このクロックCLKに同期して動作するため、この符号を用いてタイミングの説明をする。
外部から入力される退避動作の指示を示す退避モード信号SMDがアクティブになると(図8(b))、退避動作が開始され、データ保護状態フラグPFLがアクティブになる。データ保護状態フラグPFLは、以降、退避動作が終了するまでアクティブ状態を継続し、選択回路81〜83を退避動作側に切り替えた状態にする(図8(c))。
退避動作が開始されると、カウント部53の第1カウンタは、計数を開始する。クロックt1において、第1カウンタのカウント値CNTは、初期値である“0”を示し(図8(e))、第3カウンタのカウント値MCNTは、初期値“96”を示す(図8(f))。カウント値MCNTは、前述のように、キャッシュメモリ12の1024番地未満の領域に全ての内部状態データを格納するために“96”に設定される。クロックt1では、バリッドビットメモリ22からバリッドビットデータが読み出される。そのため、バリッドビットメモリ22のアドレス信号VADは、カウント値CNTの上位9ビットが示す“0”を示し(図8(m))、ライトイネーブル信号VWEは読み出し状態“read”を示し(図8(i))、チップセレクト信号VCSがアクティブになる(図8(k))。アドレスVAD=0に格納されるバリッドビットがクロックt2において読み出される(図8(o))。バリッドビットが“0(=無効)”であるから、キャッシュメモリ12のアドレスCADが“0”〜“7”の8ワードの領域は、内部状態データを格納可能であると判断される。従って、クロックt3以降のキャッシュメモリ12への内部状態データ書き込みの準備がなされる。
クロックt3では、キャッシュメモリ12に内部状態データの書き込みが開始される。キャッシュメモリ12のチップセレクト信号CSSがアクティブになり(図8(g))、ライトイネーブル信号CWEが書き込み状態“write”を示す(図8(h))。キャッシュメモリ12のアドレスCADは、カウント値CNTが2クロック遅延して出力され、クロックt3において“0”を示す(図8(i))。保護用スキャンイネーブル信号PSEがアクティブになり(図8(d))、キャッシュメモリ12にスキャンチェーン300〜331の最初のデータCH0が入力され(図8(j))、書き込まれる。キャッシュメモリ12に内部状態データが書き込まれるため、カウント部53の第3カウンタがカウントアップされ、カウント値MCNTが“97”になる(図8(f))。
クロックt4では、カウント値CNTが“3”、キャッシュメモリ12のアドレスCADが“1”になる(図8(e)(i))。保護用スキャンイネーブル信号PSEがアクティブであるからスキャンチェーン300〜331がシフト動作をしてキャッシュメモリ12に内部状態データCH1が入力され、書き込まれる(図8(j))。キャッシュメモリ12に対して、この動作がクロックt8まで繰り返される。
キャッシュメモリ12への内部状態データ格納が行われたため、クロックt6において、バリッドビットメモリ22にバリッドビット“無効”の書き込みが行われる。バリッドビットメモリ22のチップセレクト信号VCSはアクティブになり(図8(k))、ライトイネーブル信号VWEは“write”を示す(図8(l))。バリッドビットメモリ22にバリッドビットデータVDIとして“0”が入力される(図8(n))。クロックt6までバリッドビットメモリ22のアドレスVADは“0”である(図8(m))。この動作は、バリッドビットメモリ22の書き込み動作を統一するために行われ、バリッドビットが“0”の時には、省略されてもよい。
クロックt7になると、カウント値CNTは“8”にカウントアップされ(図8(e))、バリッドビットメモリ22のアドレスVADは“1”になる(図8(m))。チップセレクト信号VCSはアクティブのままであり(図8(k))、ライトイネーブル信号VWEは“read”になる(図8(l))。
クロックt8において、バリッドビットメモリ22からバリッドビットが読み出される(図8(o))。アドレスVAD=1のバリッドビットは、“1(=有効)”であるから、対応するキャッシュメモリ12にデータを格納するか否かは、アドレスVADとカウント値MCNTの比較結果により決定される。このとき、アドレスVAD=1(図8(m))、カウント値MCNT=97(図8(f))であるから、キャッシュメモリ12に内部状態データの格納は行われない。従って、クロックt9において、キャッシュメモリ12のライトイネーブル信号CWEは、“read”になり(図8(h))、チップセレクト信号CCSはインアクティブになる。また、スキャンチェーン300〜331のシフトを止めるため、保護用スキャンイネーブル信号PSEは、インアクティブになる(図8(d))。キャッシュメモリ12にデータの書き込みがない場合は、この状態で、次のバリッドビット判定までカウント値CNTが更新される。
クロックt11において、バリッドビットが読み出され、判定される。クロックt11では、カウント値CNTは、“16”を示し(図8(e))、バリッドビットメモリ22のアドレス信号VADは、“2”を示す(図8(m))。チップセレクト信号VCSがアクティブになり(図8(k))、クロックt12においてバリッドビットメモリ22から“0”が出力される(図8(o))。キャッシュメモリ12のアドレスCADが“16”から“23”までの8ワードに内部状態データが格納できるため、クロックt13において、キャッシュメモリ12のチップセレクト信号CCSがアクティブに(図8(g))、ライトイネーブル信号CWEが“write”状態になる(図8(h))。キャッシュメモリ12には、スキャンチェーンのデータCH8が書き込まれる(図8(j))。同時に、カウント値MCNTが歩進され、“98”を示す(図8(f))。
このように、バリッドビットが“0”であるキャッシュメモリ12の領域に内部状態データが順次格納されていく。内部状態データが書き込まれる毎にカウント値MCNTが歩進されるが、バリッドビットが“1”の場合には、カウント値MCNTは歩進されないため、カウント値MCNTとバリッドビットメモリ22のアドレスVADとの差が徐々に少なくなる。図9に、この差がほぼ無くなった時点からの動作が示される。
クロックt21において、カウント値CNTは“888”を示し(図9(e))、バリッドビットメモリ22のアドレス信号VADは“111”を示してバリッドビットメモリ22からバリッドビットが読み出される(図9(m))。カウント値MCNTは“112”を示している(図9(f))。クロックt22において、バリッドビットデータ“1”が出力され、キャッシュメモリ12のアドレス888番地から895番地まではデータが保持される。
クロックt25において、次のバリッドビットが読み出される。クロックt25では、カウント値CNTは“896”を示し(図9(e))、バリッドビットメモリ22のアドレス信号VADは“112”を示している(図9(m))。クロックt26において、バリッドビットメモリ22から出力されたバリッドビットは、“1”を示すが(図9(o))、アドレスVAD(112)とカウント値MCNT(112)が一致するため、キャッシュメモリ12に内部状態データが書き込まなければならないと判断される。従って、クロックt27からt31の8クロックにわたってキャッシュメモリ12に内部状態データの書き込みが行われる。これに伴って、カウント値MCNTは、歩進されて“113”を示す。書き込み動作は上述と同じようになされるが、クロックt30で行われるバリッドビットメモリ22へのバリッドビットデータ“0”書き込みは(図9(l)(n))、必ず実行されなければならない。これによってバリッドビットが“1”から“0”に変更され、キャッシュメモリ12の元の内容が破棄されて内部状態データが書き込まれたことが示されることになる。
クロックt25以降では、バリッドビットメモリ22のアドレスVADは、カウント値MCNTと同じ値を示すようになるため、スキャンチェーン300〜331のデータが全てキャッシュメモリ12に退避されるまでバリッドビットの状態に関係なくキャッシュメモリ12への書き込みが行われる。クロックt35において、スキャンチェーン300〜331の最後のデータCH255がキャッシュメモリ12に書き込まれると、保護用スキャンイネーブル信号PSEは、インアクティブになり(図9(d))、一連の退避動作が終了する。
このように、キャッシュメモリ12の所定のアドレスまでの領域に内部状態データを書き込むことができる。所定のアドレスをキャッシュメモリ12の最終アドレスとすると、キャッシュメモリ12の全領域の無効データ領域が内部状態データの書き込み対象領域となる。書き込み対象領域が不足する場合、最終アドレスに近い領域が書き込み対象領域になる。また、本実施の形態で示されたように、ある領域のみキャッシュメモリ12の内容を破棄し、それ以外の領域の内容を保持するようにして内部状態データを退避することもできる。
次に、図10、図11を参照して、キャッシュメモリ12に退避されたCPUの内部状態データを元のスキャンフリップフロップに再設定する回復動作を説明する。図10及び図11の(a)は、クロックCLKを示し、各周期に符号が付される。回復動作は、このクロックCLKに同期しているため、この符号を用いてタイミングの説明がなされる。
外部から回復動作の指示を示す回復モード信号RMDが入力されると(図10(b))、回復動作が開始され、データ保護状態フラグPFLがアクティブになる(図10(c))。データ保護状態フラグPFLは、以降、回復動作が終了するまでアクティブ状態を継続し、選択回路81〜83を回復動作側に切り替えた状態にする。
回復動作開始とともにカウント部53の第1カウンタは、計数を開始する。クロックt1において、第1カウンタのカウント値CNTは、初期値である“0”を示し(図10(e))、第2カウンタのカウント値CCNTは、初期値“0”を示す(図10(f))。カウント値CNTは、各メモリのアドレスの生成に使用され、上位9ビットがバリッドビットメモリ22のアドレスVADに対応し、2クロック遅延させたカウント値CNTがキャッシュメモリ12のアドレスCADに対応する。カウント値CCNTは、読み出したデータ数のカウントに使用される。
クロックt1において、まずバリッドビットメモリ22の読み出しが開始される。バリッドビットメモリ22のチップセレクト信号VCSがアクティブになり(図10(k))、ライトイネーブル信号VWEが読み出し状態“read”を示す(図10(l))。アドレスVAD=“0”のバリッドビットデータは、クロックt2に出力される。
クロックt2において、バリッドビットメモリ22から出力されたバリッドビットに基づいて、キャッシュメモリ12に格納される内部状態データの読み出しが判定される。ここでは、バリッドビットデータ“0”が出力され(図10(n))、関連付けられる領域には内部状態データが格納されていると判定される。従って、クロックt3からキャッシュメモリ12の読み出しと、スキャンチェーン300〜331のシフト動作が開始される。
クロックt3において、キャッシュメモリ12のチップセレクト信号CSSがアクティブになり(図10(g))、ライトイネーブル信号CWEは読み出し状態 “read” を示す。アドレスCADは“0”を示し(図10(i))、そのデータは、クロックt4に出力される。従って、保護用スキャンイネーブル信号PSEは、クロックt4からアクティブになり、8ワード分のデータをシフトした後のクロックt9までアクティブ状態を継続する。
クロックt4において、内部状態データの最初のデータCH0がキャッシュメモリ12から出力され(図10(j))、スキャンチェーン300〜331に供給される。内部状態データの読み出し毎にカウント部53の第2カウントが歩進され、カウント値CCNTは“1”になる。このように、バリッドビットに対応する8ワード分の内部状態データが順次キャッシュメモリ12から読み出され、スキャンチェーン内をシフトされる。
クロックt7において、バリッドビットメモリ22のアドレスVADが“1”、チップセレクトVCSがアクティブになり(図10(m)(k))、次のバリッドビットが読み出される。クロックt8において、バリッドビットメモリ22からバリッドビットデータ“1”が出力され(図10(n))、対応するキャッシュメモリ12の領域には内部状態データが格納されていないと判定される。従って、クロックt9においてキャッシュメモリ12のチップセレクト信号CCSはインアクティブになり(図10(g))、クロックt10において、保護用スキャンイネーブル信号PSEがインアクティブになる(図10(d))。
このように、回復動作は、バリッドビットメモリ22からバリッドビットデータを読み出し、“無効”を示すバリッドビットに関連付けられるキャッシュメモリ22の領域から内部状態データを読み出し、スキャンチェーン300〜331に供給する。スキャンチェーン300〜331は、シフト動作を行い、データを移動させる。回復動作は、スキャンチェーン300〜331に内部状態データが全て再設定されるまで、これを繰り返す。
図11に示されるように、バリッドビットメモリ22のアドレスVAD“111”には、バリッドビットデータ“1”が格納されているため、キャッシュメモリ12のアドレスCAD“888”から“895”までの8ワードの領域のデータは、読み飛ばされる(図11(i)(j))。バリッドビットメモリ22のアドレスVAD“112”以降は、前述のように、キャッシュメモリ12のアドレスCADが“1023”までに内容状態データを格納するために、バリッドビットメモリ22には“0”が格納されている(図11(n))。従って、クロックt25において、バリッドビットメモリ22のアドレスVAD“112”のデータが読み出された以降は、キャッシュメモリ12のアドレスの順に内部状態データが読み出され、連続的にスキャンチェーン300〜331に供給される。
クロックt31にカウント値CNTが“1024”になり、バリッドビットメモリ22のアドレスVADが“128”になる。このバリッドビットには、キャッシュメモリ12のアドレスCAD“1024”から8ワードの領域が対応する。クロックt32において、キャッシュメモリ12のアドレスCADが“1023”を示し(図11(i))、クロックt33において内部状態データCH255がスキャンチェーン300〜331に供給される(図11(j))。カウントCCNTは“256”になり(図11(f))、保護用スキャンイネーブル信号PSEはインアクティブになり、スキャンチェーン300〜331のスキャン動作が停止する(図11(d))。
このようにして、キャッシュメモリ12に退避された256ワードの内部状態データは、元のスキャンフリップフロップに再設定される。ここでは、キャッシュメモリ12の読み出し状態をチップセレクト信号CCSにより制御したが、常時読み出し状態にしてスキャンチェーン300〜331のシフトのみで制御することもできる。
(第3の実施の形態)
第2の実施の形態では、内部状態データを退避するとき、バリッドビットが“0”即ちキャッシュメモリ12に格納されるデータが“無効”である無効データ領域が不足する場合に小さいアドレスの有効データ領域を“有効”のまま残す例が示された。第3の実施の形態では、無効データ領域が不足する場合に、小さいアドレスの有効データ領域から内部状態データが格納される例が示される。
第3の実施の形態に係る半導体集積回路装置の構成は、第2の実施の形態に係る半導体集積回路装置の構成とほぼ同じであるため、詳細な説明を省略する。本実施の形態のカウント部53は、さらに第4カウンタを有する点が異なる。第4カウンタは、ダウンカウンタであり、不足する領域を計数し、そのカウント値をDCNTとする。ここでは、バリッドビット数で計数するため、キャッシュメモリのワード数はその8倍となる。第4カウンタは、初期値として、内部状態データ数を格納するキャッシュメモリ12のワード数の8分の1(端数切り上げ)が設定される。ここでは、256ワードの内部状態データを格納するため、“32”が初期値となる。
内部状態データの退避は、図12に示されるように、内部状態データの退避に先立つ不足領域を計数する動作から開始される。退避モード信号SMDがアクティブになると(図12(b))、データ保護状態フラグPFLがアクティブになる(図12(c))。データ保護状態フラグPFLは、以降、回復動作が終了するまでアクティブ状態を継続し、選択回路81〜83を回復動作側に切り替えた状態にする。
バリッドビットメモリ22に格納されるバリッドビットをカウントするため、第1カウンタは、下位3ビットは“0”のまま上位9ビットのみ動作し、“0”から“4088”までカウントする(図12(e))。従って、バリッドビットメモリ22のアドレスVADは、クロック毎に上昇し、“0”から“511”まで変化する(図12(m))。チップセレクト信号VCSはアクティブに設定され(図12(k))、ライトイネーブル信号VWEは読み出し状態“read”を示している(図12(l))。バリッドビットメモリ22は、クロックt2から格納するバリッドビットデータを順に出力する(図12(o))。バリッドビットメモリ22の出力VDOが“0”であることを検出するたびに、カウント値DCNTはカウントダウンされる(図12(f))。ここでは、アドレスVADが、“0”、“2”、…、“509”のバリッドビットが“無効”を示し(図12(m)(o))、クロックt3、t5、…、t9においてカウント値DCNTがカウントダウンされる。従って、クロックt10において、カウント値DCNTは“20”になっている(図12(f))。これは、20ワード分の無効データ領域が不足していることを示している。内部状態データを退避する場合、有効データ領域のうち20ワード分は、内部状態データが上書きされて無効データ領域に変更される。
不足領域の計数が終了すると、図13に示されるように、内部状態データの退避動作が開始される。各メモリの読み出し/書き込みのタイミングは、第2の実施の形態と同じであるが、不足分の内部状態データを有効データ領域に書き込む開始時期が異なる。
クロックt11において、カウント値CNTが“0”を示し(図13(e))、チップセレクト信号VCSがアクティブになり(図13(k))、ライトイネーブル信号VWEが読み出し状態(read)を示す(図13(l))。バリッドビットメモリ22は、クロックt12において、アドレスVAD“0”のバリッドビットデータ“0”を出力する(図13(o))。
バリッドビットデータが“0”であるから、キャッシュメモリ12に内部状態データが格納される。クロックt13において、キャッシュメモリ12のチップセレクト信号CCSがアクティブになり(図13(g))、ライトイネーブル信号CWEが書き込み状態(write)を示す(図13(h))。スキャンチェーン300〜331から出力される内部状態データCH0がキャッシュメモリ12のアドレスCAD“0”に書き込まれる(図13(i)(j))。その後クロックt18まで、キャッシュメモリ12には、アドレスCADが“7”になるまで内部状態データが順に書き込まれる。クロックt16において、バリッドビットメモリ22に無効を示すデータ“0”が書き込まれることは、第2の実施の形態において説明されたように、キャッシュメモリ12の書き込み動作を統一するためである。
クロックt17において、バリッドビットメモリ22のアドレスVAD“1”のデータが読み出される(図13(l)(m))。バリッドビットメモリ22の出力信号VDOは、クロックt18において、有効データ領域であることを示す“1”になる。このとき、カウント値DCNTは“20”であるため(図13(f))、この有効データ領域にも内部状態データが書き込まれることになる。従って、クロック19において、カウント値DCNTは、カウントダウンされ、“19”になる(図13(f))。同時に、キャッシュメモリ12には、内部状態データCH8がアドレスCAD“8”に格納される。
従って、カウント値DCNTが“0”になるまで、有効データ領域にも内部状態データが書き込まれ、カウント値DCNTがカウントダウンされる。即ち、カウント値DCNTが“0”になるまで、連続してキャッシュメモリ12に内部状態データが格納され、有効データ領域は無効データ領域に変更される。
図14は、退避動作の終了間際を示す図である。カウント値DCNTは、“0”になり、無効データ領域にのみ内部状態データが格納されている。クロックt31において、カウント値CNTが“4072”を示し(図14(e))、バリッドビットメモリ22のアドレスVAD“509”に格納されるバリッドビットが読み出される(図14(k)(l)(m))。バリッドビットメモリ22の出力VDOは、“0”を示し(図14(o))、このバリッドビットに対応するキャッシュメモリ12の領域に内部状態データが書き込まれる。クロックt33からクロックt38において、アドレスCADが“4072”から“4080”まで、内部状態データCH248〜CH255が、キャッシュメモリ12に書き込まれる(図14(g)(h)(i)(j))。
クロックt36、t41においてアドレスVAD“510”、“511”のバリッドビットデータがそれぞれ読み出される(図14(k)(l)(m))。アドレスVAD“510”、“511”のバリッドビットデータは、“1”であり、カウント値DCNTが“0”であるから、内部状態データのキャッシュメモリ12への書き込みは行われない。
クロックt45において、キャッシュメモリ12の最終アドレス“4095”が出力され(図14(i))、その後、データ保護状態フラグPFLがインアクティブになって退避動作が終了する(図14(c))。なお、クロックt38において、内部状態データCH255がキャッシュメモリ12に書き込まれている。従って、退避された内部状態データの数をカウントしていると、クロックt38で退避動作を終了することも可能である。
スキャンフリップフロップへの内部状態データの再設定は、第2の実施の形態と同様に、キャッシュメモリ12の無効データ領域を順に読み出し、スキャンチェーン300〜331に供給すればよい。
このように、キャッシュメモリ12の空き領域(無効データ領域)に内部状態データを格納し、空き領域が不足する場合に、キャッシュメモリ12の先頭側の有効データ領域を無効データ領域に変更して内部状態データを格納することができる。無効データ領域に内部状態データを格納することにより、キャッシュメモリの本来のデータを残すことが可能になり、内部状態データの回復後の動作も退避前とほぼ同じにすることができる。
また、第2の実施の形態と第3の実施の形態に示した動作を組み合せることも可能であり、キャッシュメモリの任意の領域を、内部状態データを退避する領域として使用することができる。従って、キャッシュメモリのうち、使用頻度の高い領域を避けて、内部状態データを退避する領域を設定することができる。
このように、本発明によれば、半導体集積回路装置の電源を中断する際に、半導体集積回路装置内のフリップフロップに保存されている内部状態を示すデータをキャッシュメモリに保存することが可能になる。電源中断から復帰する際に、キャッシュメモリに保存されたデータをフリップフロップに再設定することにより、少ない追加回路で電源中断から復帰する時間を短縮することが可能となる。
半導体集積回路装置内部のフリップフロップのデータをキャッシュメモリに保存する際に、バリッドでないキャッシュメモリ領域に優先して保存する。バリッドでないキャッシュメモリ領域が保存することができるフリップフロップのデータ量より少ない場合のみ、必要最低限のバリッド状態のキャッシュメモリ領域のバリッドビットを無効にしてフリップフロップのデータを保存する。このようにすることにより、キャッシュメモリの内容の破壊を最低限にすることが可能となる。
本発明の第1の実施の形態を簡単に説明する図である。 本発明の第1の実施の形態に係る半導体集積回路装置の構成を示すブロック図である。 キャッシュメモリとバリッドビットメモリとの対応関係を説明する図である。 第1の実施の形態における退避動作を説明するタイムチャートである。 第1の実施の形態における回復動作を説明するタイムチャートである。 第2の実施の形態を簡単に説明する図である。 第2の実施の形態に係る半導体集積回路装置の構成を示すブロック図である。 第2の実施の形態における退避動作を説明するタイムチャート(1)である。 第2の実施の形態における退避動作を説明するタイムチャート(2)である。 第2の実施の形態における回復動作を説明するタイムチャート(1)である。 第2の実施の形態における回復動作を説明するタイムチャート(2)である。 第3の実施の形態における退避動作を説明するタイムチャート(1)である。 第3の実施の形態における退避動作を説明するタイムチャート(2)である。 第3の実施の形態における退避動作を説明するタイムチャート(3)である。
符号の説明
10、12 キャッシュメモリ
20、22 バリッドビットメモリ
30、31、…、3L スキャンチェーン
40、41、…、4M スキャンフリップフロップ群
50、51 制御回路部
52、53 カウント部
54 状態フラグ生成部
55、57 スキャンイネーブル生成部
58 メモリ制御信号生成部
81、82、83 選択回路
87 論理和回路
90 内部論理回路部
300〜331 スキャンチェーン
F0−0〜255、…、31−0〜255 スキャンフリップフロップ
PFL データ保護状態フラグ
PSE 保護用スキャンイネーブル信号
VDI バリッドビットメモリ入力データ信号
VDO バリッドビットメモリ出力データ信号
VAD バリッドビットメモリアドレス信号
VCS バリッドビットメモリチップセレクト信号
VWE バリッドビットメモリライトイネーブル信号
CDI キャッシュメモリ入力データ信号
CDO キャッシュメモリ出力データ信号
CAD キャッシュメモリアドレス信号
CCS キャッシュメモリチップセレクト信号
CWE キャッシュメモリライトイネーブル信号
SMD 退避モード信号
RMD 回復モード信号

Claims (18)

  1. 回路の正常性を試験するスキャンチェーンを備える内部論理回路部と、
    前記内部論理回路部によりアクセスされる第1メモリと、
    前記第1メモリに格納されるデータの有効性を示すバリッドビットを前記第1メモリに関連付けて格納する第2メモリと、
    前記スキャンチェーンに保持される内部状態データを前記第1メモリに格納し、前記第1メモリに格納された前記内部状態データを前記スキャンチェーンに再設定する制御回路部と
    を具備する
    半導体集積回路装置。
  2. 前記スキャンチェーンに保持される前記内部状態データを前記第1メモリに格納した後、前記第1メモリ及び前記第2メモリの電源供給を継続しながら前記内部論理回路部の電源供給を停止し、
    前記内部論理回路部の電源供給を再開したとき、前記第1メモリに格納された前記内部状態データを前記スキャンチェーンに再設定する
    請求項1に記載の半導体集積回路装置。
  3. 前記制御回路部は、前記第1メモリの所定のアドレスから連続する領域に前記内部状態データを格納し、前記連続する領域に関連付けられる無効を示す前記バリッドビットを前記第2メモリに格納し、
    前記第1メモリの所定のアドレスから連続する領域に格納される前記内部状態データを前記スキャンチェーンに再設定する
    請求項1または請求項2に記載の半導体集積回路装置。
  4. 前記制御回路部は、前記第2メモリに格納される前記バリッドビットが無効を示すか否かを判定するスキャンイネーブル生成部を備え、
    前記スキャンイネーブル生成部が無効を示すと判定した前記バリッドビットに関連付けられる前記第1メモリの領域に前記内部状態データを格納する
    請求項1または請求項2に記載の半導体集積回路装置。
  5. 前記内部状態データを格納するために選択される前記バリッドビットが無効を示す前記第1メモリの領域が不足するとき、
    前記第1メモリの第1領域に含まれる前記バリッドビットが無効を示す領域と、前記第1メモリの第2領域の全域とに前記内部状態データを格納し、前記内部状態データが格納された前記第1メモリの領域に関連付けられる無効を示す前記バリッドビットを前記第2メモリに格納する
    請求項4に記載の半導体集積回路装置。
  6. 前記第1領域と前記第2領域とは連続し、
    前記第1領域に含まれる前記バリッドビットが無効を示す領域のサイズに基づいて、前記第1領域と前記第2領域の境界を示す前記第2領域の先頭アドレスを動的に決定する
    請求項4または請求項5に記載の半導体集積回路装置。
  7. 前記第2領域と前記第1領域とは連続し、
    前記第1領域及び前記第2領域に含まれる前記バリッドビットが無効を示す領域のサイズに基づいて、前記第2領域の最終アドレスが決定される
    請求項4から請求項6のいずれかに記載の半導体集積回路装置。
  8. 前記第2メモリに格納される無効を示す前記バリッドビットに関連付けられる前記第1メモリの領域に格納されるデータを前記内部状態データとして前記スキャンチェーンに再設定する
    請求項4から請求項7のいずれかに記載の半導体集積回路装置。
  9. 前記第1メモリは、低速メモリのアクセスを削減するために設けられるキャッシュメモリである
    請求項1から請求項8のいずれかに記載の半導体集積回路装置。
  10. 回路の正常性を試験するスキャンチェーンを備える内部論理回路部と、
    前記内部論理回路部によりアクセスされる第1メモリと、
    前記第1メモリに格納されるデータの有効性を示すバリッドビットを前記第1メモリに関連付けて格納する第2メモリと
    を具備する半導体集積回路装置の制御方法であって、
    前記スキャンチェーンに保持される内部状態データを前記第1メモリに格納する退避ステップと、
    前記第1メモリに格納された前記内部状態データを前記スキャンチェーンに再設定する回復ステップと
    を具備する
    半導体集積回路装置の制御方法。
  11. 前記退避ステップで前記内部状態データを前記第1メモリに格納した後、前記第1メモリ及び前記第2メモリの電源供給を継続しながら前記内部論理回路部の電源供給を停止する供給停止ステップと、
    前記内部論理回路部の電源供給を再開する供給再開ステップと
    をさらに具備し、
    前記供給再開ステップ直後に前記回復ステップにより前記内部状態データを前記スキャンチェーンに再設定する
    請求項10に記載の半導体集積回路装置の制御方法。
  12. 前記退避ステップは、前記第1メモリの所定のアドレスから連続する領域に前記内部状態データを格納し、前記連続する領域に関連付けられる無効を示す前記バリッドビットを前記第2メモリに格納し、
    前記回復ステップは、前記第1メモリの所定のアドレスから連続する領域に格納される前記内部状態データを前記スキャンチェーンに再設定する
    請求項10または請求項11に記載の半導体集積回路装置の制御方法。
  13. 前記退避ステップは、前記第2メモリに格納される前記バリッドビットが無効を示すか否かを判定する退避判定ステップを備え、
    前記退避判定ステップで無効を示すと判定された前記バリッドビットに関連付けられる前記第1メモリの領域を選択して前記内部状態データを格納する
    請求項10または請求項11に記載の半導体集積回路装置の制御方法。
  14. 前記内部状態データを格納するために選択される前記バリッドビットが無効を示す前記第1メモリの領域が不足するとき、
    前記退避ステップは、前記第1メモリの第1領域に含まれる前記バリッドビットが無効を示す領域と、前記第1メモリの第2領域の全域とに前記内部状態データを格納し、前記内部状態データが格納された前記第1メモリの領域に関連付けられる無効を示す前記バリッドビットを前記第2メモリに格納する
    請求項13に記載の半導体集積回路装置の制御方法。
  15. 前記第1領域と前記第2領域とは連続し、
    前記第1領域に含まれる前記バリッドビットが無効を示す領域のサイズに基づいて、前記第1領域と前記第2領域の境界を示す前記第2領域の先頭アドレスを動的に決定する
    請求項13または請求項14に記載の半導体集積回路装置の制御方法。
  16. 前記第2領域と前記第1領域とは連続し、
    前記第1領域及び前記第2領域に含まれる前記バリッドビットが無効を示す領域のサイズに基づいて、前記第2領域の最終アドレスが決定される
    請求項13から請求項15のいずれかに記載の半導体集積回路装置。
  17. 前記第2メモリに格納される無効を示す前記バリッドビットに関連付けられる前記第1メモリの領域に格納されるデータを前記内部状態データとして前記スキャンチェーンに再設定する
    請求項13から請求項16のいずれかに記載の半導体集積回路装置の制御方法。
  18. 前記第1メモリは、低速メモリのアクセスを削減するために設けられるキャッシュメモリである
    請求項13から請求項17のいずれかに記載の半導体集積回路装置の制御方法。
JP2006055192A 2006-03-01 2006-03-01 半導体集積回路装置、及び、その制御方法 Withdrawn JP2007232588A (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2006055192A JP2007232588A (ja) 2006-03-01 2006-03-01 半導体集積回路装置、及び、その制御方法
US11/711,868 US7640473B2 (en) 2006-03-01 2007-02-28 Semiconductor integrated circuit apparatus and control method thereof

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2006055192A JP2007232588A (ja) 2006-03-01 2006-03-01 半導体集積回路装置、及び、その制御方法

Publications (1)

Publication Number Publication Date
JP2007232588A true JP2007232588A (ja) 2007-09-13

Family

ID=38553306

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2006055192A Withdrawn JP2007232588A (ja) 2006-03-01 2006-03-01 半導体集積回路装置、及び、その制御方法

Country Status (2)

Country Link
US (1) US7640473B2 (ja)
JP (1) JP2007232588A (ja)

Families Citing this family (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9285856B2 (en) 2010-12-21 2016-03-15 Qualcomm Incorporated Method and system for rapid entry into and for rapid exiting from sleep states for processors of a portable computing device
US9104499B2 (en) 2010-12-21 2015-08-11 Qualcomm Incorporated System for minimizing resource latency between processor application states in a portable computing device by scheduling resource state set transitions
US8954980B2 (en) * 2011-11-11 2015-02-10 Qualcomm Incorporated Conserving power through work load estimation for a portable computing device using scheduled resource set transitions
US9652011B2 (en) 2012-10-15 2017-05-16 Infineon Technologies Ag Systems and methods for storing information
US8862949B2 (en) * 2012-10-15 2014-10-14 Infineon Technologies Ag Systems and methods for storing information
GB2519359A (en) * 2013-10-21 2015-04-22 Ibm Electronic circuit having serial latch scan chains
US10719477B1 (en) * 2019-06-20 2020-07-21 Semiconductor Components Industries, Llc Methods and system for an integrated circuit
US11675005B2 (en) * 2020-11-24 2023-06-13 Renesas Electronics Corporation Semiconductor device and scan test method of the same

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0652070A (ja) 1992-05-29 1994-02-25 Toshiba Corp 集積回路のデータ保護装置およびデータ保護方法
US6370664B1 (en) * 1998-10-29 2002-04-09 Agere Systems Guardian Corp. Method and apparatus for partitioning long scan chains in scan based BIST architecture
GB2395302B (en) * 2002-11-13 2005-12-28 Advanced Risc Mach Ltd Hardware driven state save/restore in a data processing system

Also Published As

Publication number Publication date
US20070234153A1 (en) 2007-10-04
US7640473B2 (en) 2009-12-29

Similar Documents

Publication Publication Date Title
JP2007232588A (ja) 半導体集積回路装置、及び、その制御方法
US7788558B2 (en) Semiconductor integrated circuit and control method thereof
JP4303719B2 (ja) 半導体集積回路およびその制御方法
JP6424271B2 (ja) 半導体装置
JPH1078836A (ja) データ処理装置
JP2010145134A (ja) 半導体集積回路、半導体集積回路の内部状態退避回復方法
US6898671B2 (en) Data processor for reducing set-associative cache energy via selective way prediction
EP1238339A1 (en) Interface for a memory unit
JP2008059300A (ja) マイクロコンピュータ
US20080086666A1 (en) Analyzer
JP4711353B2 (ja) 半導体集積回路およびその制御方法
JP2007066118A (ja) メモリコントローラ、フラッシュメモリシステム及びフラッシュメモリの制御方法
JP2012168724A (ja) 半導体装置
JP2009265880A (ja) マイクロコンピュータ及びマイクロコンピュータの外部レジスタデータ処理方法
US7450449B2 (en) Semiconductor memory device and its test method
US6961280B1 (en) Techniques for implementing address recycling in memory circuits
JP4892852B2 (ja) シリアルインターフェースの制御方法
JPH10239398A (ja) フェイルメモリ
JP3349942B2 (ja) 命令メモリ回路
JP2016031768A (ja) データ転送回路
US7552301B2 (en) Information processing apparatus and memory access arranging method
JP2002367397A (ja) メモリテスト兼初期化回路
CN111078486B (zh) 一种在fpga中模拟储存器掉电的方法
TW421792B (en) Built-in self-test circuit of memory device
JP2004061114A (ja) 自己診断試験回路および方法

Legal Events

Date Code Title Description
A300 Application deemed to be withdrawn because no request for examination was validly filed

Free format text: JAPANESE INTERMEDIATE CODE: A300

Effective date: 20090512