JP2005182434A - マイクロコンピュータ、メモリの保護方法及びデバッグ方法 - Google Patents

マイクロコンピュータ、メモリの保護方法及びデバッグ方法 Download PDF

Info

Publication number
JP2005182434A
JP2005182434A JP2003421942A JP2003421942A JP2005182434A JP 2005182434 A JP2005182434 A JP 2005182434A JP 2003421942 A JP2003421942 A JP 2003421942A JP 2003421942 A JP2003421942 A JP 2003421942A JP 2005182434 A JP2005182434 A JP 2005182434A
Authority
JP
Japan
Prior art keywords
processor
memory
access
address
microcomputer
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.)
Granted
Application number
JP2003421942A
Other languages
English (en)
Other versions
JP4526111B2 (ja
Inventor
Masayoshi Taniguchi
政義 谷口
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.)
International Business Machines Corp
Original Assignee
International Business Machines 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 International Business Machines Corp filed Critical International Business Machines Corp
Priority to JP2003421942A priority Critical patent/JP4526111B2/ja
Priority to US10/905,139 priority patent/US7337366B2/en
Publication of JP2005182434A publication Critical patent/JP2005182434A/ja
Application granted granted Critical
Publication of JP4526111B2 publication Critical patent/JP4526111B2/ja
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Images

Classifications

    • 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/31705Debugging aspects, e.g. using test circuits for debugging, using dedicated debugging test circuits
    • 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/318536Scan chain arrangements, e.g. connections, test bus, analog signals
    • 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/318555Control logic
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/70Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer
    • G06F21/78Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure storage of data
    • G06F21/79Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure storage of data in semiconductor storage media, e.g. directly-addressable memories
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/70Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer
    • G06F21/82Protecting input, output or interconnection devices
    • G06F21/85Protecting input, output or interconnection devices interconnection devices, e.g. bus-connected or in-line devices
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C7/00Arrangements for writing information into, or reading information out from, a digital store
    • G11C7/24Memory cell safety or protection circuits, e.g. arrangements for preventing inadvertent reading or writing; Status cells; Test cells
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2221/00Indexing scheme relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F2221/21Indexing scheme relating to G06F21/00 and subgroups addressing additional information or applications relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F2221/2105Dual mode as a secondary aspect
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2221/00Indexing scheme relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F2221/21Indexing scheme relating to G06F21/00 and subgroups addressing additional information or applications relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F2221/2149Restricted operating environment
    • 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
    • G11C2029/0401Detection or location of defective memory elements, e.g. cell constructio details, timing of test signals in embedded memories
    • 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
    • G11C2029/0407Detection or location of defective memory elements, e.g. cell constructio details, timing of test signals on power on
    • 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)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Hardware Design (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Software Systems (AREA)
  • Storage Device Security (AREA)
  • Test And Diagnosis Of Digital Computers (AREA)
  • Microcomputers (AREA)
  • Tests Of Electronic Circuits (AREA)

Abstract

【課題】 外部からSoC内部への侵入があった場合にメモリの保護領域へのアクセスを確実に防止し、かつバウンダリスキャンテストによるデバッグを実行可能とする。
【解決手段】 プロセッサ111に対する外部からの入力を監視するTAPコントローラ120及びインストラクションデコーダ131と、プロセッサ111によるROM113及びSRAM114へのアクセスのアクセス先アドレスが予め設定された保護領域内か否かを監視する内部レジスタ141、142及び比較器143、144と、アクセス制御手段である内部レジスタ145、146及び多重化器147、149とを備え、プロセッサ111への制御命令が検知され、かつプロセッサ111から保護領域へのアクセスが行われたことが検知された場合に、そのアクセス先アドレスを開発者にて用意された付加回路ブロック200のROM201及びSRAM202のアドレスに置き換える。
【選択図】 図1

Description

本発明は、SoC(System on Chip)のメモリ保護に関し、特にデバッグ等でのメモリアクセスに対する保護の方法およびその機構に関する。
プロセッサ、メモリ、周辺装置などのコンピュータの主要機能を集積し1チップに搭載したマイクロコンピュータであるSoCは、実装に必要な面積が劇的に縮小し、消費電力も同等の機能を持つ複数チップによるシステムと比べて格段に抑えられることから、組み込み機器等で利用されている。
一般に、SoCでは、プロセッサと予めデータを書き込んだROMやRAMを同じチップ内に組み込むことができるため、外部からこの組み込まれたROMやRAMのデータ・バスに直接的にアクセスすること(例えば、ロジックアナライザ等を使い、ROMやRAMのデータ・バスにプローブを接続しデータを電気的に読み込むこと)が困難であり、セキュリティの観点からは優れている。
一方、SoCに対してデバッグ等のテストを行う場合、ボード上の素子のように端子にプローブを当てる検査を行うことができない。そのため、バウンダリスキャンテスト(BST:Boundary Scan Test:境界走査試験)と呼ばれる、外部からテストコードを入力してチップの挙動を調査するテストが広く行われている(例えば、特許文献1参照)。
バウンダリスキャンテストの標準方式がJTAGであり、JTAGに対応したSoCは、チップのデバッグおよびソフトウェアの開発を容易にできるように、本来の機能を果たす回路のほかに、テストデータの入出力や制御に用いられるJTAGポートまたはTAP(Test Access Port)と呼ばれるインターフェイスとTAPコントローラとを内蔵する。そして、このJTAGポートを使ってプロセッサの制御を行い、JTAGポートを介して任意の命令をプロセッサに実行させることができるように設計されている。例えば、米国IBM社が開発したPowerPCでは、RISC Watchというデバッガ(デバッグツール)をプロセッサのJTAGポートに接続してプロセッサの制御を行うことができる。
特開2001−147831号公報
上述したように、SoCには通常、バウンダリスキャンテストを行うためのポートおよびコントローラが設けられているが、これらにより提供されるデバッグ機能を使えば、SoC内部に侵入してメモリにアクセスし、内容を読み取ることができてしまう。
すなわち、上述したRISC Watch等のデバッガを用いると、自由にSoCの内部レジスタの内容を読み込みこんだり、書き込んだりするこが可能である。また、この機能を使い、メモリに蓄えられたデータを読み込み、内容を内部レジスタに保管することができる。そしてさらに、そのレジスタの内容をJTAGのTDO(テストデータ出力)端子を介してSoC外部に自由に取り出すことができる。このようにすれば、MMU(Memory Management Unit)等でアクセス禁止しているメモリ領域(以下、保護領域と称す)からデータを自由に読み取ることが可能となる。
このような、デバッガを用いたSoC内部への侵入を禁止する手段としては、例えばJTAGをプロセッサに接続しない(配線を行わない)という方法が考えられる。
JTAGをプロセッサに接続しなければ、デバッガをプロセッサに接続できなくなり、データの保護の観点からは十分である。しかし、チップのデバッグやソフトウェアの開発が全く行うことができないか、製品とは別にデバッグ用のチップを開発してデバッグを行うことになり、コストがかかってしまう。
また、特定の手順を経ないとメモリにアクセスできないようにSoCを設計し、メモリへのアクセスを困難にすることが考えられるが、これはその手順を見破られるとメモリのアクセスを防止できないため、十分な保護とは言えない。
そこで本発明は、上記の課題を解決し、外部からSoC内部への侵入があった場合にメモリの保護領域へのアクセスを確実に防止し、かつ従来と同様のバウンダリスキャンテストによるデバッグを実行できるようにするSoCの仕組みおよびその制御方法を提供することを目的とする。
上記の目的を達成する本発明は、次のように構成されたSoCとして実現される。このSoCは、プロセッサとメモリとを備えると共に、プロセッサに対する外部からの入力を監視する第1の監視手段と、プロセッサによるメモリへのアクセスのアクセス先アドレスが予めメモリに設定された保護領域内か否かを監視する第2の監視手段と、第1の監視手段においてプロセッサへの制御命令が検知され、第2の監視手段においてプロセッサから保護領域内のアドレスをアクセス先とするメモリへのアクセスが行われたことが検知された場合に、そのアクセス先アドレスを保護領域以外のアドレスに置き換えるアクセス制御手段とを備えることを特徴とする。
より詳しくは、この第1の監視手段は、マイクロコンピュータのデバッグ用に設けられたポートからの入力を取得するポートコントローラと、このポートコントローラにて取得された入力の種類を判別するインストラクションデコーダとを備える構成とすることができる。
また第2の監視手段は、メモリの保護領域のアドレスを保存した記憶装置と、プロセッサによるアクセス先アドレスと記憶装置に保存されたアドレスとを比較する比較器とを備える構成とすることができる。
さらにアクセス制御手段は、置き換えるべきアドレスを保存した記憶装置と、プロセッサによるアクセス先アドレスと記憶装置に保存されたアドレスとを入力し、第1の監視手段及び第2の監視手段の検知結果に応じていずれか一方を出力する多重化器とを備える構成とすることができる。
また本発明は、上記のSoCに対し、メモリと同一の内容を含む記憶内容を持つ外部記憶装置をさらに備えた構成とすることができる。この場合、アクセス制御手段は、プロセッサによるアクセス先アドレスを、外部記憶装置における保護領域に対応するアドレスに置き換えることができる。
上記の目的を達成する他の本発明は、次のように構成されたSoCとしても実現される。このSoCは、プロセッサと、第1のメモリと、この第1のメモリと同一の内容を含む記憶内容を持つ第2のメモリと、プロセッサに対する外部からの入力を監視する監視手段と、この監視手段においてプロセッサへの制御命令が検知された場合に、プロセッサから第1のメモリへのアクセスを第2のメモリへのアクセスに強制的に切り替えるアクセス制御手段とを備えることを特徴とする。
より好ましくは、第1のメモリには、プロセッサからのアクセスを禁止する保護領域が設定されており、アクセス制御手段は、プロセッサへの制御命令が検知されると共に、プロセッサから第1のメモリの保護領域内のアドレスをアクセス先とするアクセスが行われた場合に、そのアクセス先アドレスを第2のメモリにおける保護領域に対応するアドレスに置き換える。
上記の目的を達成するさらに他の本発明は、少なくともプロセッサとメモリとを単一の集積回路上に実装した、次のようなSoCとしても実現される。このSoCは、所定のデバッガにてデバッグを行うためのデバッグポートと、メモリと同一の内容を含む記憶内容を持つ外部記憶装置を接続するための外部バスとを備え、この外部バスに外部記憶装置を接続してプロセッサから外部記憶装置へのアクセスを可能とした場合に、デバッグポートを介して入力されるプロセッサの制御命令を実行可能であることを特徴とする。
また本発明は、少なくともプロセッサとメモリとを実装したマイクロコンピュータにおけるメモリの保護方法として実現される。この保護方法では、プロセッサが外部からの制御命令の入力を受け付け、この制御命令に基づいてプロセッサからメモリへのアクセスを行うステップと、プロセッサによるメモリへのアクセスのアクセス先アドレスが予めメモリに設定された保護領域内である場合に、そのアクセス先アドレスを保護領域以外のアドレスに置き換えてアクセスを実行するステップとを含むことを特徴とする。
さらにまた本発明は、少なくともプロセッサとメモリとを実装したマイクロコンピュータに対してデバッグを行う、次のようなデバッグ方法としても実現される。このデバッグ方法は、メモリと同一の内容を含む記憶内容を持つ外部記憶装置をマイクロコンピュータに接続するステップと、プロセッサに対してデバッグのためにメモリへアクセスするための制御命令を入力するステップと、マイクロコンピュータが、メモリへのアクセスを外部記憶装置へのアクセスに切り替えて実行するステップとを含むことを特徴とする。
以上のように構成された本発明によれば、プロセッサが外部からの制御命令に基づいてメモリへのアクセスを行ったことを認識してアクセス先を切り替えることによって、外部からSoC内部への侵入があった場合にもメモリの保護領域を確実に保護することができる。一方、メモリを代替する外部記憶装置をSoCに装着することによって、メモリへのアクセスの目的は達成されるため、従来と同様のバウンダリスキャンテストによるデバッグを何ら支障なく実行することができる。
以下、添付図面を参照して、本発明を実施するための最良の形態(以下、実施形態)について詳細に説明する。
図1は、本実施形態による保護機構を備えたSoC(System on Chip)の構成を示す図である。
図1に示すように、本実施形態のSoC100は、プロセッサ111、バスインターフェイスユニット112、ROM113、SRAM114を備えると共に、プロセッサ111に対する外部入力の監視手段としてTAPコントローラ120と、インストラクションデコーダ131と、プロテクトレジスタ132とを備え、プロセッサ111からメモリ(ROM113及びSRAM114)へのアクセスの監視手段として内部レジスタ141、142と、比較器(Compare)143、144とを備え、プロセッサ111からメモリへのアクセスに対する制御を行うアクセス制御手段として内部レジスタ145、146と、多重化器(Multiplexer)147、149と、2入力加算器(AND)148とを備える。SRAM114は、バッテリ115にてバックアップされている。
図1において、プロセッサ111は、アドレス・バス及びデータ・バスを介してバスインターフェイスユニット112と接続され、ROM113及びSRAM114からなるメモリ(記憶素子)にアクセスする。また、比較器143、144はアドレス・バスに接続し、プロセッサ111からメモリへのアクセスがあった場合のアクセス先アドレスを取得できるようになっている。さらに、バスインターフェイスユニット112は、多重化器149を介してアドレス・バスに接続されており、外部バスを介してROM113及びSRAM114に接続されている。
また本実施形態では、後述するように、SoC100に対してデバッグを行う際に、SoC100に装着される外部記憶装置の付加回路ブロック200が用意される。図1に示すように、付加回路ブロック200は、ROM201と、SRAM202と、SRAM202のバックアップ用のバッテリ203とを備える。ここで、ROM201には、SoC100のROM113と同一の内容が記憶されており、SRAM202には、SoC100のSRAM114と同一の内容が格納されている。
この付加回路ブロック200は、SoC100に装着されると、ROM201及びSRAM202が、ROM113及びSRAM114と同様に外部バスを介してバスインターフェイスユニット112に接続され、プロセッサ111からアクセス可能となる。
本実施形態では、SoCにおけるバウンダリスキャンテストによるデバッグの機能を損なうことなく、メモリ(ROM113及びSRAM114)上のデータを保護するため、次のことを実現する。
1.通常の動作では、プロセッサは全てのメモリ領域をアクセスできる。
2.デバッガがJTAGポートに接続され、プロセッサがデバッガによりコントロールされた場合、これを検出する機能を有する。
3.デバッガによるプロセッサのコントロールが検出された場合、メモリにおける保護すべきメモリ領域へのアクセスを禁止する手段を有する。
4.メモリ内の保護すべきメモリ領域へのアクセスが禁止されたとしても、デバッグ及びソフトウェア開発を実現する手段を持つ。
図2は、SoC100におけるTAPコントローラ120とプロセッサ111との関係を示す図である。
プロセッサ111の内部にもJTAG用のTAPコントローラが内蔵されていて、このTAPコントローラのステートマシンはJTAGに準拠したものであり、外部(SoC100上)のTAPコントローラ120と全く同じ動作を行う。一般にプロセッサ111は、パフォーマンス向上とIP(Intellectual Property:知的財産)の保護の観点からハードマクロになっている場合が多く、プロセッサ111内部の信号を直接操作することはできない。したがって、プロセッサ111内部のTAPコントローラの状態は、外部からはわからないが、SoC100上のTAPコントローラ120の状態から推測することが可能である。
JTAGのTAPコントローラ120に与えることができる命令は、パブリック命令とプライベート命令とに分けることができ、プロセッサ111の制御や命令(Instruction)の実行には、プライベート命令が使用される。このプライベート命令コードは、TAPコントローラ120の設計時に予め決められている。したがって、TAPコントローラ120に入力される命令コードをモニタリングしていれば、プロセッサ111を制御する命令が入力されたかどうか調べることができる。図2に示す例では、インストラクションデコーダ131にてプロセッサ111を制御するデバッグ命令が発行されたかどうかを調べることができる。なお、JTAG機能を有しないSoCにおいても、SoC内にJTAGのステートマシンを内蔵することにより、容易にデバッガのアクセス状況を把握することが可能である。
図3は、TAPコントローラ120とインストラクションデコーダ131による入力命令のモニタリングを説明する図である。
図3に示すように、TAPコントローラ120は、JTAGのステートマシン121とJTAGのTDI(テストデータ入力)の入力信号を保持するインストラクションレジスタ122とを備える。
インストラクションデコーダ131は、TAPコントローラ120のインストラクションレジスタ122の保持内容をデコードする。インストラクションレジスタ122の値をモニターすることで、JTAGにおいてプロセッサの制御を行うプライベート命令が実行されているかどうかを判別できる。
具体的には、TAPコントローラ120に入力された命令がプロセッサ111の制御命令であるならば、インストラクションデコーダ131の出力であるDBG_CMD信号が‘1’に立ち上がる。
プロテクトレジスタ132は、初期的にはシステムリセット信号(RESET)により‘0’にクリアされているが、DBG_CMD信号が‘1’に立ち上がることによって、‘1’が書き込まれる。このプロテクトレジスタ132の入力データは、VDD(電源電圧)に接続されているので、一度‘1’にセットされると、システムリセット信号が入力されるまで、‘0’にクリアされることはない。
図4は、JTAGポートのモニタリング動作の流れを示すフローチャートである。
図4に示すように、プロテクトレジスタ132の出力信号(以下、プロテクトデータ:Protect_Data)は、SoC100を搭載したシステムの電源投入時等の適当なタイミングでリセットされ、0となっている(ステップ401、402)。そして、JTAGポートを介してアクセスがあった場合に、インストラクションデコーダ131により、TAPコントローラ120のインストラクションレジスタ122に保持された入力信号(インストラクション)がデコードされる(ステップ403、404)。そして、デコードされた命令がプロセッサ111へのアクセス命令(プロセッサ111の制御命令)であった場合は、プロテクトデータが1にセットされる(ステップ405、406)。
このようにして、プロセッサ111がデバッグポート(JTAGポート)を介して外部からの制御命令の入力を受け付け、この制御命令に基づいてプロセッサ111からメモリへのアクセスを行った場合には、これをプロテクトデータによって認識することが可能となる。
本実施形態のSoC100は、このプロテクトレジスタ132の出力信号であるプロテクトデータの値が‘0’(すなわち、通常の動作)の場合、本実施形態にて提供されるメモリ保護機能を動作させない。したがって、プロセッサ111は、自由に任意のメモリ領域のメモリ・データにアクセスできる。
一方、プロテクトデータの値が‘1’の場合(すなわち、デバッグ命令等のプロセッサ111の制御命令がTDIに入力された場合)、本実施形態にて提供されるメモリ保護機能を動作させ、プロセッサ111によるメモリ(ROM113及びSRAM114)へのアクセスを禁止する。
以上のようにプロテクトデータをフラグとして用い、本実施形態にて保護されるメモリ領域のアドレスへのアクセスを制御することにより、上述した「1.通常の動作では、プロセッサは全てのメモリ領域をアクセスできる。」と「2.デバッガがJTAGポートに接続され、プロセッサがデバッガによりコントロールされた場合、これを検出する機能を有する。」とが実現される。
次に、このプロテクトレジスタ132の出力信号であるプロテクトデータを使って、どのように、SoC100内部のメモリのデータを保護するかを説明する。
図5は、SoC100におけるメモリ・マップの例を示す図である。
図5において、グレーで表示した領域を保護領域、すなわちデバッガを用いたアクセスを禁止する領域とする。この領域は、
0x8000_0000番地から0x807F_FFFF番地まで

0xE000_0000番地から0xE03F_FFFF番地まで
とし、この例では、0x8000_0000番地から0x807F_FFFF番地はSRAM114に格納され、0xE000_0000番地から0xE03F_FFFF番地はROM113に格納されているものとする(図1を参照)。以下、図5に示すメモリ・マップの保護領域をどのように保護するかを説明する。
図1に示したSoC100において、内部レジスタ141は、保護すべきメモリ領域(Mem_Area1)の番地を保持し、内部レジスタ142は、保護すべきメモリ領域(Mem_Area2)の番地を保持している。内部レジスタ141、142に保持されている番地のビット長は、保護すべきメモリの記憶容量を表す。すなわち、ビット長が10ビットの場合は、残りの22ビットがこのメモリに対するアドレス信号となり、4メガバイトの記憶容量を表す。同様に、ビット長が8ビットの場合は、残りの24ビットがこのメモリに対するアドレス信号となり、16メガバイトの記憶容量を表す。ここでは、内部レジスタ141には、‘1000_0000_0’が保持されているとする。ビット長は9ビットであり、これは、SRAM114のメモリ領域のアドレスである0x8000_0000番地から0x807F_FFFF番地の8メガバイトを表していることになる。同様に、内部レジスタ142には、‘1110_0000_00’が保持されているとする。ビット長は10ビットであり、これは、ROM113のメモリ領域のアドレスである0xE000_0000番地から0xE03F_FFFF番地の4メガバイトを表していることになる。
プロセッサ111がメモリのデータにアクセスする場合、比較器143、144において、プロセッサ111から出力されるアドレス・バスが、この内部レジスタ141、142に保持されている番地と比較される。比較器143において、アドレス・バスが内部レジスタ141で保持されている番地内であるとき、すなわち、アドレス・バスの上位9ビットと内部レジスタ141に保持されている番地の上位9ビットとを比較して同じであれば、比較器143の出力は1となる。同様に、比較器144において、アドレス・バスが内部レジスタ142で保持されている番地内であるとき、すなわち、アドレス・バスの上位10ビットと内部レジスタ142に保持されている番地の上位10ビットとを比較し同じであれば、比較器144の出力は1となる。
2入力加算器148の出力(以下、マスクデータ:MASK_DATA)は、比較器143、144の出力のどちらか一方が1であり、かつプロテクトレジスタ132から出力されるプロテクトデータが1のときにのみ1になる。上述したように、プロテクトデータが1になるのは、JTAGポートを使ってプロセッサ111を制御する命令をTAPコントローラ120に入力した場合のみである。SoC100を通常使用する場合は、このプロテクトデータは0であり、マスクデータが1になることはない。すなわち、マスクデータが1になるのは、JTAGのTAPコントローラ120にプロセッサ制御命令が入力され、かつデータを保護すべきメモリ領域に対してプロセッサ111がアクセスを行った場合である。図5の例では、アドレス番地0x8000_0000から0x807F_FFFF、または、0xE000_0000から0xE03F_FFFFにアクセスがあった場合にのみマスクデータは1になる。
内部レジスタ145は、付加回路ブロック200におけるSRAM202のメモリ領域(Alt_1)のアドレスを保持している。また、内部レジスタ146は、付加回路ブロック200におけるROM201のメモリ領域(Alt_2)のアドレスを保持している。なお、内部レジスタ145に保持されるアドレスは9ビット、内部レジスタ146に保持されるアドレスは10ビットであるため、図1に示すように、内部レジスタ145に保持されるアドレスにプロセッサ111のアドレス・バスの上位10ビット目のアドレスデータA(9)が入力されて10ビットにビット長をそろえている。
多重化器147は、内部レジスタ145、146の切り替えを行うための論理(Logic)であり、比較器144の出力を切り替え信号として入力する。具体的には、比較器144の出力が1のとき、内部レジスタ146の保持内容が選択され、それ以外は内部レジスタ145の保持内容が選択される。
多重化器149は、内部レジスタ141、142の出力と内部レジスタ145、146の出力とを切り替える論理(Logic)である。上述したマスクデータは、多重化器149の切り替え信号となっていて、マスクデータが1のとき、プロセッサ111から出力されるアドレス・バスの上位10ビットは、内部レジスタ145または内部レジスタ146に保持されているアドレス情報に置き換わる。
この切り替え動作について、具体的に説明する。
内部レジスタ141には、‘1000_0000_0’が保持されているとする。図1の内部レジスタ141には、保護している上位アドレス0x800が記述されている。一方、内部レジスタ145には、0x800が置き換わるアドレス、具体的には、‘1010_0000_0’が保持されている。上述したように、このビット長は9ビットであるため、プロセッサ111のアドレス・バスのアドレスデータA(9)を加えて10ビットとしている。
また、内部レジスタ142には、‘1110_0000_00’が保持されているとする。図1の内部レジスタ142には、保護している上位アドレス0xE00が記述されている。一方、内部レジスタ146には、0x800が置き換わるアドレス、具体的には、‘1011_0000_00’が保持されている。
さて、上記の構成において、デバッガのRISC Watchをプロセッサ111のJTAGポートに接続し、メモリにおける保護されたデータを読み出そうとする場合を仮定する。
まず、プロセッサ111及びTAPコントローラ120には、プロセッサの制御命令が入力される。このとき、インストラクションデコーダ131は、この制御命令の入力を検出し、DBG_CMD信号を出力してプロテクトデータを1にする。ここで、この制御命令により、プロセッサ111が保護されているデータにアクセスする場合、具体的には、例えば0xE001_6800番地をリードしようとする場合を考える。
ここで、この制御命令により、プロセッサ111が保護されているデータにアクセスする場合、具体的には、例えば0xE001_6800番地をリードしようとする場合を考える。
この番地の上位10ビット(‘1110_0000_00’)は、内部レジスタ142が保持する値と同じである。そのため、比較器144の出力は1となり、この結果、2入力加算器148の出力であるマスクデータが1となる。これにより、多重化器147、149の切り替え操作が行われ、内部レジスタ146の値‘1011_0000_00’がバスインターフェイスユニット112に与えられるアドレスの上位10ビットとなる。この結果、プロセッサ111のアクセス先である、バスインターフェイスユニット112に与えられるアドレスは、0xE001_6800番地から0xB001_6800番地に変更される。
図6は、本実施形態によるメモリ保護機能の動作の流れを示すフローチャートである。
SoC100の動作時に、プロセッサ111からメモリ(ROM113またはSRAM114)へのアクセスがあった場合(ステップ601でYes)、プロテクトデータが1にセットされており(ステップ602でYes)、かつアクセス先のアドレスがメモリの保護領域内であるならば(ステップ603でYes)、多重化器149により、アドレス・バスにおけるアクセス先の上位アドレスが、内部レジスタ145、146に保持されているアドレスに置き換えられる(ステップ604)。そして、置き換えられたアドレスへのアクセスが実行される(ステップ605)。
内部レジスタ145、146のいずれに保持されているアドレスが用いられるかは、比較器143、144の比較結果に応じて多重化器147にて決定される。
一方、プロテクトデータが0である場合(ステップ602でNo)、またはプロセッサ111のアクセス先アドレスがメモリの保護領域以外である場合(ステップ603でNo)は、ステップ604でのアドレスの置き換えは行われずに、プロセッサ111によるアクセス先アドレスへのアクセスが実行される(ステップ605)。これは、プロテクトデータが0である場合は、デバッガによるプロセッサ111の制御命令を用いたアクセスではないので、保護領域に対するアクセスを禁止する必要がなく、プロセッサ111のアクセス先アドレスがメモリの保護領域以外である場合は、そもそも保護領域へのアクセスではないので、本実施形態によるメモリ保護機能を動作させる必要がないためである。
このように、本実施形態によって保護されるメモリ領域のアドレスは、デバッガを用いてアクセスしようとする際に、別のアドレスに強制的に変換されるため、全くアクセスすることが不可能となる。
これに対し、デバッガ(上記の例ではRISC Watch)をプロセッサ111に接続しない場合は、プロテクトデータは0のままであり、上記のようなアドレスの置き換えは行われない。このため、プロセッサ111自身の本来の機能によって、本実施形態で保護されるメモリ領域にアクセスすることは可能である。
以上のようにメモリの保護領域に対するアクセス制御を行うことにより、上述した「3.デバッガによるプロセッサのコントロールが検出された場合、メモリにおける保護すべきメモリ領域へのアクセスを禁止する手段を有する。」が実現される。
さて、上述したように本実施形態のSoC100では、デバッガによるプロセッサ111の制御命令を用いてメモリの保護領域に対するアクセスが行われた場合には、アクセス先アドレスが強制的に変更されて保護領域へのアクセスができなくなるが、SoC100に対するデバッグやソフトウェアの開発を実施するためには、デバッガによるプロセッサ111の制御命令を用いたアクセスでメモリの保護領域の内容を取得できなくてはならない。そこで、本実施形態では、SoC100のROM113、SRAM114と同一内容を含む記憶内容を持つROM201、SRAM202を備えた付加回路ブロック200を用意する。
SoC100内部のROM113及びSRAM114に書き込まれたデータは、開発者には既知であるので、デバッグやソフトウェア開発を実施するために、開発者がこのような付加回路ブロック200を用意することは可能である。
SoC100のデバッグやソフトウェア開発のためにRISC Watch等のデバッガを用いる場合、付加回路ブロック200がSoC100に接続される。上述したように、付加回路ブロック200のROM201、SRAM202の記憶内容は、SoC100のROM113、SRAM114の記憶内容と同一である。そして、内部レジスタ145にROM201のメモリ領域(Alt_2)のアドレスを保持し、内部レジスタ146にSRAM202のメモリ領域(Alt_1)のアドレスを保持しており、本実施形態のメモリ保護機能により、プロセッサ111からのアクセス先アドレスは、内部レジスタ145、146に格納されているSRAM202またはROM201のアドレスに置き換えられる。
そのため、デバッガによるプロセッサ111の制御命令を用いたアクセスがなされた場合、SoC100内部のROM113、SRAM114の保護領域の代わりに、付加回路ブロック200のROM201、SRAM202の対応するメモリ領域に対してアクセスが行われ、プロセッサ111は、ROM113、SRAM114に格納されているデータと同じデータを読み込むことが可能となる。
これにより、デバッグやソフトウェア開発において、メモリの保護領域に記録されたデータを用いるプログラムを何ら支障なく実行することができ、上述した「4.メモリ内の保護すべきメモリ領域へのアクセスが禁止されたとしても、デバッグ及びソフトウェア開発を実現する手段を持つ。」が実現される。
以上のようにして、本実施形態は、デバッガ等を用いて外部からSoC100の内部への侵入が行われた場合にもメモリの保護領域へのアクセスを確実に防止してこの保護領域を保護しながら、JTAGによるデバッグの実行を可能としたが、本実施形態は、上述したRISC Watch以外のデバッガによるプロセッサ111の制御命令を用いたアクセスに対しても同様に適用することができるのは言うまでもない。
また、JTAG以外のデバッグポートを介して行われるアクセスに対しても、そのようなデバッグポートを介するプロセッサ111へのアクセスをモニタリングして、同様の操作を行うことにより、メモリの所望の領域に対して、デバッガによるプロセッサ111の制御命令を用いたアクセスを禁止することが可能である。
SoC100に対してデバッグを行う場合は、SoC100に対して付加回路ブロック200を接続した上で、デバッガを用いる。これにより、SoC100内部のメモリにアクセスしようとするときは、SoC100がアクセス先を付加回路ブロック200のメモリ(ROM201及びSRAM202)に切り替えるため、デバッガによるプロセッサ111の制御命令を用いたアクセスが禁止された領域を確実に保護しつつ、デバッグを行うことができる。
本実施形態による保護機構を備えたSoC(System on Chip)の構成を示す図である。 本実施形態のSoCにおけるTAPコントローラとプロセッサとの関係を示す図である。 本実施形態のTAPコントローラとインストラクションデコーダによる入力命令のモニタリングを説明する図である。 本実施形態におけるJTAGポートのモニタリング動作の流れを示すフローチャートである。 SoCにおけるメモリ・マップの例を示す図である。 本実施形態によるメモリ保護機能の動作の流れを示すフローチャートである。
符号の説明
100…SoC(System on Chip)、111…プロセッサ、112…バスインターフェイスユニット、113、201…ROM、114、202…SRAM、115、203…バッテリ、120…TAPコントローラ、121…ステートマシン、122…インストラクションレジスタ、131…インストラクションデコーダ、132…プロテクトレジスタ、141、142、145、146…内部レジスタ、143、144…比較器(Compare)、147、149…多重化器(Multiplexer)、148…2入力加算器(AND)、200…付加回路ブロック

Claims (18)

  1. プロセッサと、
    メモリと、
    前記プロセッサに対する外部からの入力を監視する第1の監視手段と、
    前記プロセッサによる前記メモリへのアクセスのアクセス先アドレスが予め当該メモリに設定された保護領域内か否かを監視する第2の監視手段と、
    前記第1の監視手段において特定の命令が検知され、前記第2の監視手段において前記プロセッサから前記保護領域内のアドレスをアクセス先とする前記メモリへのアクセスが行われたことが検知された場合に、当該アクセスのアクセス先アドレスを前記保護領域以外のアドレスに置き換えるアクセス制御手段と
    を備えることを特徴とするマイクロコンピュータ。
  2. 前記アクセス制御手段は、前記第1の監視手段が前記プロセッサに対する制御命令を検知した場合に、前記プロセッサからのアクセスにおけるアクセス先アドレスの置き換えを行うことを特徴とする請求項1に記載のマイクロコンピュータ。
  3. 前記第1の監視手段は、
    マイクロコンピュータのデバッグ用に設けられたポートからの入力を取得するポートコントローラと、
    前記ポートコントローラにて取得された入力の種類を判別するインストラクションデコーダと
    を備えることを特徴とする請求項1に記載のマイクロコンピュータ。
  4. 前記第2の監視手段は、
    前記メモリの保護領域のアドレスを保存した記憶装置と、
    前記プロセッサによるアクセス先アドレスと前記記憶装置に保存されたアドレスとを比較する比較器と
    を備えることを特徴とする請求項1に記載のマイクロコンピュータ。
  5. 前記アクセス制御手段は、
    置き換えるべきアドレスを保存した記憶装置と、
    前記プロセッサによるアクセス先アドレスと前記記憶装置に保存されたアドレスとを入力し、前記第1の監視手段及び第2の監視手段の検知結果に応じていずれか一方を出力する多重化器と
    を備えることを特徴とする請求項1に記載のマイクロコンピュータ。
  6. 前記メモリと同一の内容を含む記憶内容を持つ外部記憶装置をさらに備え、
    前記アクセス制御手段は、前記プロセッサによるアクセス先アドレスを、前記外部記憶装置における前記保護領域に対応するアドレスに置き換えることを特徴とする請求項1に記載のマイクロコンピュータ。
  7. 前記プロセッサと、前記メモリと、前記第1の監視手段と、前記第2の監視手段と、前記アクセス制御手段とが、単一の集積回路上に実装されたことを特徴とする請求項1に記載のマイクロコンピュータ。
  8. プロセッサと、
    第1のメモリと、
    前記第1のメモリと同一の内容を含む記憶内容を持つ第2のメモリと、
    前記プロセッサに対する外部からの入力を監視する監視手段と、
    前記監視手段において特定の命令が検知された場合に、前記プロセッサから前記第1のメモリへのアクセスを前記第2のメモリへのアクセスに強制的に切り替えるアクセス制御手段と
    を備えることを特徴とするマイクロコンピュータ。
  9. 前記アクセス制御手段は、前記監視手段が前記プロセッサに対する制御命令を検知した場合に、前記プロセッサからのアクセス先を切り替えることを特徴とする請求項8に記載のマイクロコンピュータ。
  10. 前記第1のメモリには、前記プロセッサからのアクセスを禁止する保護領域が設定されており、
    前記アクセス制御手段は、前記特定の命令が検知されると共に、前記プロセッサから前記保護領域内のアドレスをアクセス先とする前記第1のメモリへのアクセスが行われた場合に、当該アクセスのアクセス先アドレスを前記第2のメモリにおける前記保護領域に対応するアドレスに置き換えることを特徴とする請求項8に記載のマイクロコンピュータ。
  11. 前記プロセッサと、前記第1のメモリと、前記監視手段と、前記アクセス制御手段とが、単一の集積回路上に実装され、
    前記第2のメモリは、前記集積回路に対して着脱自在に設けられたことを特徴とする請求項8に記載のマイクロコンピュータ。
  12. 少なくともプロセッサとメモリとを単一の集積回路上に実装したマイクロコンピュータにおいて、
    所定のデバッガにてデバッグを行うためのデバッグポートと、
    前記メモリと同一の内容を含む記憶内容を持つ外部記憶装置を接続するための外部バスとを備え、
    前記外部バスに前記外部記憶装置を接続して前記プロセッサから前記外部記憶装置へのアクセスを可能とした場合に、前記デバッグポートを介して入力される当該プロセッサの制御命令を実行可能であることを特徴とするマイクロコンピュータ。
  13. 前記メモリには、前記特定の命令に基づく前記プロセッサからのアクセスを禁止する保護領域が設定されており、
    前記デバッグポートから入力される前記プロセッサの制御命令により当該プロセッサが前記メモリの前記保護領域に対してアクセスしようとする場合に、当該保護領域に代えて前記外部記憶装置にアクセスすることを特徴とする請求項12に記載のマイクロコンピュータ。
  14. 前記デバッグポートがJTAGポートであることを特徴とする請求項12に記載のマイクロコンピュータ。
  15. 少なくともプロセッサとメモリとを実装したマイクロコンピュータにおける当該メモリの保護方法であって、
    前記プロセッサが外部からの制御命令の入力を受け付け、当該命令に基づいて当該プロセッサから前記メモリへのアクセスを行うステップと、
    前記プロセッサによる前記メモリへのアクセスのアクセス先アドレスが予め前記メモリに設定された保護領域内である場合に、当該アクセスのアクセス先アドレスを当該保護領域以外のアドレスに置き換えて当該アクセスを実行するステップと
    を含むことを特徴とするメモリの保護方法。
  16. 前記アドレスを置き換えてアクセスを実行するステップでは、前記アクセス先アドレスを、前記メモリと同一の内容を含む記憶内容を持つ外部記憶装置の前記保護領域に対応するアドレスに置き換えることを特徴とする請求項15に記載のメモリの保護方法。
  17. 少なくともプロセッサとメモリとを実装したマイクロコンピュータに対してデバッグを行うデバッグ方法であって、
    前記メモリと同一の内容を含む記憶内容を持つ外部記憶装置を前記マイクロコンピュータに接続するステップと、
    前記プロセッサに対してデバッグのために前記メモリへアクセスするための制御命令を入力するステップと、
    前記マイクロコンピュータが、前記メモリへのアクセスを前記外部記憶装置へのアクセスに切り替えて実行するステップと
    を含むことを特徴とするデバッグ方法。
  18. 前記制御命令を入力するステップでは、前記メモリに対して設定されている保護領域内のアドレスをアクセス先としてアクセスを行う制御命令を入力し、
    前記アクセスを切り替えて実行するステップでは、前記メモリにおける前記アクセス先に対応する前記外部記憶装置のアドレスにアクセス先アドレスを置き換えることを特徴とする請求項17に記載のデバッグ方法。
JP2003421942A 2003-12-19 2003-12-19 マイクロコンピュータおよびデバッグ方法 Expired - Fee Related JP4526111B2 (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2003421942A JP4526111B2 (ja) 2003-12-19 2003-12-19 マイクロコンピュータおよびデバッグ方法
US10/905,139 US7337366B2 (en) 2003-12-19 2004-12-17 Microcomputer, a method for protecting memory and a method for performing debugging

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2003421942A JP4526111B2 (ja) 2003-12-19 2003-12-19 マイクロコンピュータおよびデバッグ方法

Publications (2)

Publication Number Publication Date
JP2005182434A true JP2005182434A (ja) 2005-07-07
JP4526111B2 JP4526111B2 (ja) 2010-08-18

Family

ID=34675289

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2003421942A Expired - Fee Related JP4526111B2 (ja) 2003-12-19 2003-12-19 マイクロコンピュータおよびデバッグ方法

Country Status (2)

Country Link
US (1) US7337366B2 (ja)
JP (1) JP4526111B2 (ja)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2007287103A (ja) * 2006-04-20 2007-11-01 Nec Electronics Corp マイクロコンピュータ及びメモリアクセスの制御方法
JP2008197707A (ja) * 2007-02-08 2008-08-28 Denso Corp マイクロコンピュータ
US7987331B2 (en) 2007-11-15 2011-07-26 Infineon Technologies Ag Method and circuit for protection of sensitive data in scan mode

Families Citing this family (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE102004057259A1 (de) * 2004-11-26 2006-06-01 Robert Bosch Gmbh Manipulationsgeschütztes Mikrocontrollersystem
WO2007021732A2 (en) 2005-08-09 2007-02-22 Texas Instruments Incorporated Selectable jtag or trace access with data store and output
CN100378675C (zh) * 2005-08-10 2008-04-02 英业达股份有限公司 能够自动设定计算机平台内存状态的存取控制方法及系统
EP1920377A2 (en) * 2005-08-22 2008-05-14 Nxp B.V. Embedded memory protection
US20080028263A1 (en) * 2006-07-25 2008-01-31 Noemi Fernandez Apparatus and method for protection of JTAG scan chains in a microprocessor
KR20090043823A (ko) * 2007-10-30 2009-05-07 삼성전자주식회사 외부 공격을 감지할 수 있는 메모리 시스템
JP4335940B2 (ja) * 2007-11-29 2009-09-30 Necエレクトロニクス株式会社 データ処理装置及びデータ処理装置における周辺装置保護方法
US8055936B2 (en) * 2008-12-31 2011-11-08 Pitney Bowes Inc. System and method for data recovery in a disabled integrated circuit
FR2945366A1 (fr) * 2009-05-07 2010-11-12 Inside Contactless Circuit integre securise comprenant des moyens de divulgation de valeurs de masque de contre-mesure
JP6438353B2 (ja) * 2015-05-27 2018-12-12 ルネサスエレクトロニクス株式会社 半導体装置及び診断テスト方法
CN107451493A (zh) * 2016-05-30 2017-12-08 珠海市微半导体有限公司 Risc架构保密电路及其方法
US10267858B2 (en) * 2017-04-07 2019-04-23 Hamilton Sundstrand Corporation JTAG lockout for embedded processors in programmable devices
CN111124887B (zh) * 2019-11-25 2022-06-03 四川长虹电器股份有限公司 一种risc-v debug系统的仿真验证方法

Citations (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH08129509A (ja) * 1994-11-01 1996-05-21 Canon Inc メモリ制御装置及び方法
JPH11272560A (ja) * 1998-03-19 1999-10-08 Sony Corp 集積回路
JP2001142740A (ja) * 1999-11-15 2001-05-25 Mitsubishi Electric Corp マイクロコンピュータ
JP2002334018A (ja) * 2001-05-08 2002-11-22 Toshiba Corp 制御ic装置と光ディスク装置及びこの方法
JP2003140973A (ja) * 2001-07-11 2003-05-16 Matsushita Electric Ind Co Ltd 半導体集積回路、及びその検査方法、並びに半導体記憶装置
JP2003233431A (ja) * 2002-02-06 2003-08-22 Sony Corp データ処理装置
JP2003280756A (ja) * 2002-03-25 2003-10-02 Seiko Epson Corp 情報処理装置のデバッグ手段
JP2003281084A (ja) * 2002-03-19 2003-10-03 Fujitsu Ltd 外部バスへのアクセスを効率的に行うマイクロプロセッサ

Family Cites Families (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7017020B2 (en) * 1999-07-16 2006-03-21 Broadcom Corporation Apparatus and method for optimizing access to memory
US6530047B1 (en) * 1999-10-01 2003-03-04 Stmicroelectronics Limited System and method for communicating with an integrated circuit
US7793261B1 (en) 1999-10-01 2010-09-07 Stmicroelectronics Limited Interface for transferring debug information
US6557119B1 (en) * 1999-10-01 2003-04-29 Stmicroelectronics Limited Microcomputer debug architecture and method
US20030217306A1 (en) * 2002-05-17 2003-11-20 Harthcock Jerry D. Self-programmable microcomputer and method of remotely programming same
US7266786B2 (en) * 2002-11-05 2007-09-04 Sonics, Inc. Method and apparatus for configurable address mapping and protection architecture and hardware for on-chip systems

Patent Citations (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH08129509A (ja) * 1994-11-01 1996-05-21 Canon Inc メモリ制御装置及び方法
JPH11272560A (ja) * 1998-03-19 1999-10-08 Sony Corp 集積回路
JP2001142740A (ja) * 1999-11-15 2001-05-25 Mitsubishi Electric Corp マイクロコンピュータ
JP2002334018A (ja) * 2001-05-08 2002-11-22 Toshiba Corp 制御ic装置と光ディスク装置及びこの方法
JP2003140973A (ja) * 2001-07-11 2003-05-16 Matsushita Electric Ind Co Ltd 半導体集積回路、及びその検査方法、並びに半導体記憶装置
JP2003233431A (ja) * 2002-02-06 2003-08-22 Sony Corp データ処理装置
JP2003281084A (ja) * 2002-03-19 2003-10-03 Fujitsu Ltd 外部バスへのアクセスを効率的に行うマイクロプロセッサ
JP2003280756A (ja) * 2002-03-25 2003-10-02 Seiko Epson Corp 情報処理装置のデバッグ手段

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2007287103A (ja) * 2006-04-20 2007-11-01 Nec Electronics Corp マイクロコンピュータ及びメモリアクセスの制御方法
JP2008197707A (ja) * 2007-02-08 2008-08-28 Denso Corp マイクロコンピュータ
US7987331B2 (en) 2007-11-15 2011-07-26 Infineon Technologies Ag Method and circuit for protection of sensitive data in scan mode

Also Published As

Publication number Publication date
US7337366B2 (en) 2008-02-26
JP4526111B2 (ja) 2010-08-18
US20050138481A1 (en) 2005-06-23

Similar Documents

Publication Publication Date Title
JP4526111B2 (ja) マイクロコンピュータおよびデバッグ方法
US6681354B2 (en) Embedded field programmable gate array for performing built-in self test functions in a system on a chip and method of operation
JP5535547B2 (ja) セキュアメモリインターフェース
US7913120B2 (en) Selective disabling of diagnostic functions within a data processing system
US10678710B2 (en) Protection scheme for embedded code
EP2615551B1 (en) Abnormality inspection device, central processing unit, and abnormality inspection method
US7809934B2 (en) Security measures for preventing attacks that use test mechanisms
US20070226418A1 (en) Processor and method for controlling processor
US7415730B2 (en) Microcomputer and test method therefore
US20180039544A1 (en) Resource access management component and method therefor
US7774690B2 (en) Apparatus and method for detecting data error
JPH02156357A (ja) プログラム破壊防止方法
US20080028263A1 (en) Apparatus and method for protection of JTAG scan chains in a microprocessor
JP2006338426A (ja) 計算機システム
US20070050619A1 (en) Processor having program protection function
JP2004348627A (ja) マイクロコンピュータシステム
US7340575B2 (en) Method and a circuit for controlling access to the content of a memory integrated with a microprocessor
US20030237036A1 (en) Semiconductor integrated circuit with built-in self-test function and system including the same
KR100525537B1 (ko) 인터럽트를 이용한 응용 프로그램의 에러검출장치 및 방법.
JPH1040130A (ja) マイクロコンピュータ
CN111651381A (zh) 半导体装置与数据保护方法
JPH08129508A (ja) コンピュータシステム及びその共有メモリ制御方法
JPH02282847A (ja) パソコンにおけるメモリ保護方式
JP2002268916A (ja) プログラム検証方法および装置
JPH06236300A (ja) マイクロコンピュータ

Legal Events

Date Code Title Description
A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20080729

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20081016

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20090804

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20090930

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20100525

A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

RD14 Notification of resignation of power of sub attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7434

Effective date: 20100526

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20100531

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20130611

Year of fee payment: 3

R150 Certificate of patent or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20130611

Year of fee payment: 3

S111 Request for change of ownership or part of ownership

Free format text: JAPANESE INTERMEDIATE CODE: R313113

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20130611

Year of fee payment: 3

R350 Written notification of registration of transfer

Free format text: JAPANESE INTERMEDIATE CODE: R350

S202 Request for registration of non-exclusive licence

Free format text: JAPANESE INTERMEDIATE CODE: R315201

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20130611

Year of fee payment: 3

R350 Written notification of registration of transfer

Free format text: JAPANESE INTERMEDIATE CODE: R350

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

LAPS Cancellation because of no payment of annual fees