JP2010140167A - 半導体集積回路 - Google Patents

半導体集積回路 Download PDF

Info

Publication number
JP2010140167A
JP2010140167A JP2008314582A JP2008314582A JP2010140167A JP 2010140167 A JP2010140167 A JP 2010140167A JP 2008314582 A JP2008314582 A JP 2008314582A JP 2008314582 A JP2008314582 A JP 2008314582A JP 2010140167 A JP2010140167 A JP 2010140167A
Authority
JP
Japan
Prior art keywords
address
data
register
semiconductor integrated
read
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
JP2008314582A
Other languages
English (en)
Inventor
Yoshihisa Arai
居 欣 久 新
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 JP2008314582A priority Critical patent/JP2010140167A/ja
Priority to US12/610,476 priority patent/US20100146332A1/en
Publication of JP2010140167A publication Critical patent/JP2010140167A/ja
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/60Software deployment
    • G06F8/65Updates
    • G06F8/66Updates of program code stored in read-only memory [ROM]

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Stored Programmes (AREA)
  • Memory System (AREA)
  • For Increasing The Reliability Of Semiconductor Memories (AREA)

Abstract

【課題】プロセッサと、書き換え不可能な不揮発性メモリとを内蔵する半導体集積回路に関し、不揮発性メモリのデータに誤りがあった場合に、簡単な回路で修正データを割付可能な半導体集積回路を提供する。
【解決手段】プロセッサ(111)を有する半導体集積回路(101)であって、前記プロセッサ用のデータが格納された、書き換え不可能な不揮発性メモリ(131)と、前記不揮発性メモリへのアクセスを制御するメモリ制御回路(132)とを備え、前記制御回路は、パッチアドレスを格納するためのアドレスレジスタ(301)と、パッチデータを格納するためのデータレジスタ(302)と、前記不揮発性メモリからの読み出し位置を示す読み出しアドレスと前記パッチアドレスとを比較して、比較結果を出力する比較回路(303)と、前記比較結果に応じて、前記不揮発性メモリからの読み出しデータ又は前記パッチデータを選択し、選択したデータを出力する選択回路(304)とを備える。
【選択図】図2

Description

本発明は、半導体集積回路に関し、例えば、プロセッサと、書き換え不可能な不揮発性メモリとを内蔵する半導体集積回路に使用されるものである。
プロセッサを内蔵するLSIは、命令コードや係数の保持に、NORフラッシュメモリ等の書き換え可能な不揮発性メモリを利用することが多い。LSIが搭載される電子機器の部品点数やコストを削減する観点からは、このような不揮発性メモリはLSIに内蔵することが好ましい。しかしながら、書き換え可能な不揮発性メモリをLSIに内蔵することには、LSIの回路面積、製造プロセス、製造コストの面で難点もある。よって、上記のような命令コードや係数は、LSIに内蔵したマスクROMで保持するのがコスト的に有利である。
しかしながら、これらをマスクROMで保持すると、ROMデータに誤りがあった場合に、マスクの再作成やLSIの再製造の費用と期間が必要となる。
プロセッサによっては、プログラムアドレス指定での割り込み発生や、専用回路による命令差し替え等、プログラムのバグに対するパッチ機構を有するものもあるが、割り込み機構や命令差し替え機構は、プロセッサに内蔵されている必要がある。しかしながら、既存のプロセッサに機能を追加することは、容易なことではない。更には、この場合には、プロセッサ固有の決められた仕組みをLSIに実装する必要があり、パッチプログラムの書き込み等の仕組みに柔軟性を持たせることが難しい。
なお、特許文献1には、プログラム命令及びジャンプ命令が格納されたROMと、前記ROM内のプログラム命令のパッチング用のパッチプログラムと、前記パッチプログラムを格納可能なRAMと、前記パッチプログラムのロケーションを示すパッチベクトルテーブルとを備えるプロセッシングデバイスが記載されている。
また、特許文献2には、マイクロコードのパッチング用のRAMを備えるプロセッサの例が記載されている。
米国特許第6260157号 米国特許第6438664号
本発明は、プロセッサと、書き換え不可能な不揮発性メモリとを内蔵する半導体集積回路に関し、不揮発性メモリのデータに誤りがあった場合に、簡単な回路で修正データを割り付け可能な半導体集積回路を提供することを課題とする。
本発明の一の態様は例えば、プロセッサを有する半導体集積回路であって、前記プロセッサ用のデータが格納された、書き換え不可能な不揮発性メモリと、前記不揮発性メモリへのアクセスを制御するメモリ制御回路とを備え、前記メモリ制御回路は、前記不揮発性メモリの修正箇所を示すアドレスを格納するためのアドレスレジスタと、前記不揮発性メモリ用の修正データを格納するためのデータレジスタと、前記不揮発性メモリからの読み出し位置を示す読み出しアドレスと、前記アドレスレジスタに格納されたアドレスとを比較して、前記読み出しアドレスと前記アドレスレジスタに格納されたアドレスとの比較結果を出力する比較回路と、前記比較結果に応じて、前記不揮発性メモリからの読み出しデータ又は前記データレジスタに格納された修正データを選択し、選択したデータを出力する選択回路と、を備えることを特徴とする半導体集積回路である。
本発明の別の態様は例えば、プロセッサを有する半導体集積回路であって、前記プロセッサ用のデータが格納された、書き換え不可能な不揮発性メモリと、前記不揮発性メモリへのアクセスと、前記半導体集積回路の内部又は外部に設けられ、前記不揮発性メモリ用の修正データを格納可能な揮発性メモリへのアクセスとを制御するメモリ制御回路とを備え、前記メモリ制御回路は、前記不揮発性メモリの修正箇所を示すアドレス又はアドレス領域を格納するためのアドレスレジスタと、前記不揮発性メモリからの読み出し位置を示す読み出しアドレス又は読み出しアドレス領域と、前記アドレスレジスタに格納されたアドレス又はアドレス領域とを比較して、前記読み出しアドレス又は前記読み出しアドレス領域と前記アドレスレジスタに格納されたアドレス又はアドレス領域との比較結果を出力する比較回路と、前記比較結果に応じて、前記不揮発性メモリからの読み出しデータ又は前記揮発性メモリに格納された修正データを選択し、選択したデータを出力する選択回路と、を備えることを特徴とする半導体集積回路である。
本発明によれば、プロセッサと、書き換え不可能な不揮発性メモリとを内蔵する半導体集積回路に関し、不揮発性メモリのデータに誤りがあった場合に、簡単な回路で修正データを割り付け可能な半導体集積回路を提供することができる。
本発明の実施形態を、図面に基づいて説明する。
(第1実施形態)
図1は、第1実施形態の半導体集積回路101の構成を示すブロック図である。
図1の半導体集積回路101は、プロセッサ111と、種々の周辺装置112とを備える。このように、図1の半導体集積回路101は、プロセッサ111を内蔵している。プロセッサ111と周辺装置112は、図1に示すように、半導体集積回路101内のバス121に接続されている。図1には更に、プロセッサ111に設けられたIキャッシュとDキャッシュが示されている。
図1の半導体集積回路101は更に、ROM(Read Only Memory)131と、ROMコントローラ132と、SRAM(Static Random Access Memory)141と、SRAMコントローラ142とを備える。ROM131及びSRAM141はそれぞれ、図1に示すように、ROMコントローラ132及びSRAMコントローラ142を介して、バス121に接続されている。
ROM131には、命令コードや係数など、プロセッサ111用のデータが格納されている。図1のROM131は、マスクROMであり、本発明の書き換え不可能な不揮発性メモリの例である。ROM131へのアクセスは、ROMコントローラ132により制御される。ROMコントローラ132は、本発明のメモリ制御回路の例である。同様に、SRAM141へのアクセスは、SRAMコントローラ142により制御される。
図1の半導体集積回路101は更に、ホストI/F(Interface)151を備える。ホストI/F151は、半導体集積回路101とその外部に存在するホストCPU(Central Processing Unit)201とのインタフェースとして使用される。ホストI/F151は、図1に示すように、バス121に接続されている。
図1の半導体集積回路101は、LSI(Large Scale Integrated Circuit)に相当する。以下、図1の半導体集積回路101を、LSI101と表記する。
図2は、図1のROMコントローラ132の構成を示すブロック図である。
本実施形態では、ROMコントローラ132に、ROMデータの修正機能を持たせている。ROMコントローラ132は、ROMデータの修正機能を担う構成要素として、アドレスレジスタ301と、データレジスタ302と、比較回路303と、選択回路304とを備える。
アドレスレジスタ301は、ROM131の修正箇所を示すパッチアドレスを格納するためのレジスタである。また、データレジスタ302は、ROM131用のパッチデータを格納するためのレジスタである。アドレスレジスタ301に格納されるパッチアドレスは、データレジスタ302に格納されるパッチデータの適用箇所を示す。パッチアドレス及びパッチデータは、本発明のアドレス及び修正データの例である。
本実施形態では、LSI101が設けられたシステムが起動すると、ホストCPU201が、パッチアドレスとパッチデータをそれぞれアドレスレジスタ301とデータレジスタ302に格納し、その後、プロセッサ111を起動させる。この際、ホストCPU201は、ホストI/F151を介して、LSI101にアクセスする。プロセッサ111の起動前にパッチアドレス及びパッチデータが格納されることで、バグのあるコードがパッチ処理の前に実行されてしまうのを防ぐことができる。
なお、本実施形態では、システム起動時に、プロセッサ111が、そのスタートルーチンでパッチ情報の有無を判定するようにしてもよい。パッチ情報は例えば、ホストCPU201が所定のレジスタに設定しておくものとする。そして、プロセッサ111は、必要に応じて、パッチアドレスとパッチデータをそれぞれアドレスレジスタ301とデータレジスタ302に格納し、その後、続く処理ルーチンに移行する。これにより、バグのあるコードがパッチ処理の前に実行されてしまうのを防ぐことができる。この方法には、ホストCPU201がアドレスレジスタ301及びデータレジスタ302にアクセスする仕組みが不要になるという利点がある。
比較回路303は、ROM131からの読み出し位置を示す読み出しアドレスと、アドレスレジスタ301に格納されたパッチアドレスとを比較して、読み出しアドレスとパッチアドレスとの比較結果を出力する。比較結果は、読み出しアドレスとパッチアドレスとが一致したか否かを示す。出力された比較結果は、選択回路304に入力される。
選択回路304は、比較結果に応じて、ROM131からの読み出しデータ又はデータレジスタ302に格納されたパッチデータを選択し、選択したデータを出力する。選択回路304は、比較結果が「不一致」の場合には読み出しデータを出力し、比較結果が「一致」の場合にはパッチデータを出力する。出力されたデータは、バス121に渡される。
このようにして、本実施形態では、ROMデータの誤りを修正することができる。本実施形態では、プロセッサ111ではなく、ROMコントローラ132に、ROMデータの修正機能を持たせている。上述したように、既存のプロセッサに機能を追加することは、容易なことではない。これに対し、本実施形態では、ROMコントローラ132にROMデータの修正機能を持たせるため、ROMデータの修正機能を比較的簡単にLSI101に実装することができる。本実施形態には例えば、プロセッサ111として、任意のプロセッサを採用できるという利点がある。プロセッサ111に、ROMデータの修正機能を追加する必要がないからである。
また、本実施形態では、ROMデータの修正機能が、アドレスレジスタ301、データレジスタ302、比較回路303、及び選択回路304により実現されている。このように、本実施形態によれば、ROMデータの修正機能を、簡単な回路構成で実現することができる。
また、本実施形態では、ROM131内のデータの書き換えではなく、読み出しデータをパッチデータに差し替えることで、ROMデータの修正を行う。よって、本実施形態では、ROM131がマスクROMであっても、ROMデータの修正を行うことができる。
これにより、本実施形態では、プロセッサ111用のデータを、LSI101に内蔵したマスクROM131で保持する場合であっても、ROMデータを修正することが可能になる。よって、本実施形態によれば、LSI101の回路面積、製造プロセス、製造コストの面で有利という、マスクROMの利点と、ROMデータに誤りがあった場合に、マスクの再作成やLSI101の再製造を行う必要がなくなるという、ROMデータの修正機能の利点の両方を享受することができる。本実施形態によれば、マスクの再作成やLSI101の再製造の費用や期間が不要となる。
ここで、図1に戻り、ROMデータの修正処理の一例を説明する。
ROMコントローラ132の回路規模を増大を抑えるために、ROMデータの修正は例えば、1ワード単位で行うことが現実的である。この場合、ROM131内の命令コードにパッチを当てる際には、ROMコントローラ132は、修正箇所の先頭をSRAM領域へのジャンプ命令に置き換える。この場合、修正箇所の先頭のアドレスがパッチアドレスとなり、SRAM領域へのジャンプ命令がパッチデータとなる。
一方、ホストCPU201は、システム起動時に、パッチアドレス及びパッチデータをそれぞれアドレスレジスタ301及びデータレジスタ302に格納すると共に、修正コードをSRAM141に格納する。上記のジャンプ命令以降は、この修正コードがSRAM141から実行される。この修正コードの処理が終了すると、再びROM領域にジャンプする。このようにして、ROMデータの修正処理が完了する。
なお、ホストCPU201は、修正コードをSRAM141に格納する際には、ホストI/F151を介して、LSI101にアクセスする。
図3は、図1のLSI101の変形例の構成を示すブロック図である。図1のLSI101が、ホストI/F151を備えているのに対し、図3のLSI101は、ハードウェアシーケンサ161を備えている。
ハードウェアシーケンサ161は、LSI101の外部に位置するシリアルROM211からデータを読み込むことが可能である。シリアルROM211は、本発明の外部メモリの例である。当該外部メモリは、シリアルROMとする代わりに、パラレルROMとしても構わない。ハードウェアシーケンサ161は、図3に示すように、バス121に接続されている。
図3のLSI101では、システム起動時に、ハードウェアシーケンサ161が最初に起動する。そして、ハードウェアシーケンサ161は、パッチアドレス、パッチデータ、及び修正コードを、シリアルROM211から読み込み、アドレスレジスタ301、データレジスタ302、及びSRAM141にそれぞれ格納する。なお、シリアルROM211には、パッチアドレス、パッチデータ、及び修正コードが予め記憶されているとする。
このように、図1のLSI101では、パッチアドレス、パッチデータ、及び修正コードの格納処理が、外部のホストCPU211により行われるのに対し、図3のLSI101では、内部のハードウェアシーケンサ161により行われる。図1の方式は、プロセッサ111の性能が比較的低い場合に有効であり、図3の方式は、プロセッサ111の性能が比較的高い場合に有効である。図3のLSI101では、上記の格納処理を、外部のホストCPU211の助けを借りずに行うことができる。
以上のように、本実施形態では、プロセッサ111とマスクROM131とを内蔵するLSI101において、ROMデータの修正機能がROMコントローラ132により実現される。これにより、本実施形態によれば、ROMデータに誤りがあった場合に、簡単な回路で修正データを割り付け可能なLSI101を提供することができる。
以下、第2から第4実施形態の半導体集積回路101について説明する。第2から第4実施形態は、第1実施形態の変形例であり、第2から第4実施形態については、第1実施形態との相違点を中心に説明する。
(第2実施形態)
図4は、第2実施形態のROMコントローラ132の構成を示すブロック図である。本実施形態のROMコントローラ132は、図1のLSI101に設けられていても、図3のLSI101に設けられていてもよい。
本実施形態では、第1実施形態と同様、ROMコントローラ132に、ROMデータの修正機能を持たせている。図4のROMコントローラ132は、ROMデータの修正機能を担う構成要素として、N個のアドレスレジスタ301と、N個のデータレジスタ302と、N個の比較回路303と、1個の選択回路304とを備えている。但し、Nは2以上の整数であり、ここではN=2である。
図4には、2個のアドレスレジスタ301A及びBと、2個のデータレジスタ302A及びBが示されている。
アドレスレジスタ301Aとデータレジスタ302Aは、ペアとして使用される。アドレスレジスタ301Aに格納されるパッチアドレスは、データレジスタ302Aに格納されるパッチデータの適用箇所を示す。
同様に、アドレスレジスタ301Bとデータレジスタ302Bは、ペアとして使用される。アドレスレジスタ301Bに格納されるパッチアドレスは、データレジスタ302Bに格納されるパッチデータの適用箇所を示す。
このように、図4のROMコントローラ132は、N組(ここでは2組)のアドレスレジスタ301とデータレジスタ302とを備える。これにより、本実施形態では、N箇所のROMデータを修正することができる。本実施形態では、Nは2であるが、Nは3以上の整数でも構わない。
図4には更に、2個の比較回路303A及びBが示されている。
比較回路303Aは、ROM131からの読み出し位置を示す読み出しアドレスと、アドレスレジスタ301Aに格納されたパッチアドレスとを比較して、読み出しアドレスとパッチアドレスとの比較結果を出力する。このように、比較回路303Aは、アドレスレジスタ301A用の比較処理に使用される。
同様に、比較回路303Bは、ROM131からの読み出し位置を示す読み出しアドレスと、アドレスレジスタ301Bに格納されたパッチアドレスとを比較して、読み出しアドレスとパッチアドレスとの比較結果を出力する。このように、比較回路303Bは、アドレスレジスタ301B用の比較処理に使用される。
選択回路304には、比較回路303A及びBから比較結果が入力される。
選択回路304は、比較回路303A及びBからの比較結果に応じて、ROM131からの読み出しデータ、データレジスタ302Aに格納されたパッチデータ、又はデータレジスタ302Bに格納されたパッチデータを選択し、選択したデータを出力する。
選択回路304は、比較回路303A及びBからの比較結果が共に「不一致」の場合には、読み出しデータを出力する。一方、比較回路303Aからの比較結果が「一致」の場合には、データレジスタ302Aに格納されたパッチデータを出力する。同様に、比較回路303Bからの比較結果が「一致」の場合には、データレジスタ302Bに格納されたパッチデータを出力する。
なお、各アドレスレジスタ301や各データレジスタ302の記憶内容は、プロセッサ111から書き換え可能としてもよい。これにより、プロセッサ111で実行されるプログラム自身が、パッチアドレスやパッチデータを設定できるようになり、ROMデータの修正箇所の個数の制限を、事実上なくすことができる。なお、本段落で説明した事項は、第2実施形態だけでなく、第1実施形態にも適用可能である。
以上のように、本実施形態では、ROMコントローラ132に、複数組のアドレスレジスタ301とデータレジスタ302が設けられる。これにより、本実施形態では、複数箇所のROMデータを修正することが可能になる。
(第3実施形態)
図5は、第3実施形態の半導体集積回路101の構成を示すブロック図である。以下、図5の半導体集積回路101を、LSI101と表記する。
図1のLSI101が、ROMコントローラ132とSRAMコントローラ142を備えているのに対し、図5のLSI101は、メモリコントローラ171を備えている。
本実施形態では、ROM131へのアクセスと、SRAM141へのアクセスは、共にメモリコントローラ171により制御される。ROM131は、本発明の書き換え不可能な不揮発性メモリの例であり、SRAM141は、本発明の揮発性メモリの例である。また、メモリコントローラ171は、本発明のメモリ制御回路の例である。ROM131とSRAM141は、図5に示すように、メモリコントローラ171を介して、バス121に接続されている。
図6は、図5のメモリコントローラ171の構成を示すブロック図である。
本実施形態では、メモリコントローラ171に、ROMデータの修正機能を持たせている。これにより、本実施形態では、命令コードの修正処理の自由度を、第1実施形態よりも更に高めることができる。メモリコントローラ171は、ROMデータの修正機能を担う構成要素として、アドレスレジスタ301と、比較回路303と、選択回路304とを備える。
本実施形態では、ROM131の修正箇所を示すパッチアドレスが、アドレスレジスタ301に格納される。また、本実施形態では、ROM131用の修正データが、SRAM141に格納される。当該修正データの例としては、ROM131内の命令コードと差し替えるための修正コードが挙げられる。アドレスレジスタ301に格納されるパッチアドレスは、SRAM141に格納される修正データの適用箇所を示す。
本実施形態では、LSI101が設けられたシステムが起動すると、ホストCPU201が、パッチアドレスと修正データをそれぞれアドレスレジスタ301とSRAM141に格納し、その後、プロセッサ111を起動させる。この際、ホストCPU201は、ホストI/F151を介して、LSI101にアクセスする。なお、本実施形態では、上述のように、システム起動時に、プロセッサ111が、そのスタートルーチンでパッチ情報の有無を判定するようにしてもよい。
比較回路303は、ROM131からの読み出し位置を示す読み出しアドレスと、アドレスレジスタ301に格納されたパッチアドレスとを比較して、読み出しアドレスとパッチアドレスとの比較結果を出力する。比較結果は、読み出しアドレスとパッチアドレスとが一致したか否かを示す。出力された比較結果は、選択回路304に入力される。
選択回路304は、比較結果に応じて、ROM131からの読み出しデータ又はSRAM141に格納された修正データを選択し、選択したデータを出力する。選択回路304は、比較結果が「不一致」の場合には読み出しデータを出力し、比較結果が「一致」の場合には修正データを出力する。出力されたデータは、バス121に渡される。
このようにして、本実施形態では、ROMデータの誤りを修正することができる。本実施形態では、メモリコントローラ171にROMデータの修正機能を持たせるため、第1実施形態と同様に、ROMデータの修正機能を比較的簡単にLSI101に実装することができる。
また、本実施形態では、ROMデータの修正処理を、SRAM141へのアクセスを制御可能なメモリコントローラ171が行う。よって、本実施形態によれば、ROM131内の命令コードを修正コードに差し替える処理を、第1実施形態よりも簡単に行うことができる。
ここで、パッチアドレスについて説明する。
本実施形態では、修正データが、データレジスタ302ではなく、SRAM141に格納される。そのため、アドレスレジスタ301は、パッチアドレスの全ビットを持つ必要はなく、パッチアドレスの上位ビットのみを持つようにしてもよい。この場合、比較回路303は、読み出しアドレスの上位ビットと、パッチアドレスの上位ビットとを比較し、その比較結果を出力する。そして、選択回路304は、読み出しアドレスの上位ビットとパッチアドレスの上位ビットが一致する場合、修正データを出力する。これにより、この上位ビットを有するアドレスからなるアドレス領域では、ROMデータが全て修正データに差し替えられる。
アドレスレジスタ301にパッチアドレスの上位ビットのみを格納することは、アドレスレジスタ301に、修正箇所を示すアドレス領域を格納することに相当する。また、読み出しアドレスの上位ビットとパッチアドレスの上位ビットを比較することは、読み出しアドレス領域と、修正箇所を示すアドレス領域とを比較することに相当する。パッチアドレスの上位ビットは、本発明のアドレス領域の例である。また、読み出しアドレスの上位ビットは、本発明の読み出しアドレス領域の例である。
このような領域単位での修正処理によれば、ある程度まとまった領域のROMデータをまとめて修正データに差し替えることができる。この処理は例えば、係数テーブルを修正する場合等に有効である。
なお、本実施形態では、修正データは、LSI101の内部に設けられたRAM141ではなく、LSI101の外部に設けられたRAMに格納してもよい。このようなRAMの例としては、SDRAM(Synchronous Dynamic RAM)が挙げられる。当該SDRAMへのアクセスは、メモリコントローラ171が制御する。当該SDRAMは、本発明の揮発性メモリの例である。
図7は、図5のLSI101の変形例の構成を示すブロック図である。図5のLSI101が、ホストI/F151を備えているのに対し、図7のLSI101は、ハードウェアシーケンサ161を備えている。図7のLSI101の動作及び利点は、図3のLSI101と同様である。
以上のように、本実施形態では、プロセッサ111とマスクROM131とを内蔵するLSI101において、ROMデータの修正機能がメモリコントローラ171により実現される。これにより、本実施形態によれば、ROMデータに誤りがあった場合に、簡単な回路で修正データを割り付け可能なLSI101を提供することができる。
(第4実施形態)
図8は、第4実施形態のメモリコントローラ171の構成を示すブロック図である。本実施形態のメモリコントローラ171は、図5のLSI101に設けられていても、図7のLSI101に設けられていてもよい。
本実施形態では、第3実施形態と同様、メモリコントローラ171に、ROMデータの修正機能を持たせている。図8のメモリコントローラ171は、ROMデータの修正機能を担う構成要素として、N個のアドレスレジスタ301と、N個の比較回路303と、1個の選択回路304とを備えている。但し、Nは2以上の整数であり、ここではN=2である。
図8には、2個のアドレスレジスタ301A及びBが示されている。
本実施形態では、ROM131の修正箇所を示すパッチアドレスが、アドレスレジスタ301A及びBに格納される。また、本実施形態では、ROM131用の修正データが、SRAM141に格納される。アドレスレジスタ301A及びBに格納されるパッチアドレスは、SRAM141に格納される修正データの適用箇所を示す。
このように、図8のメモリコントローラ171は、N個(ここでは2個)のアドレスレジスタ301を備える。これにより、本実施形態では、N箇所のROMデータを修正することができる。本実施形態では、Nは2であるが、Nは3以上の整数でも構わない。
図8には更に、2個の比較回路303A及びBが示されている。
比較回路303Aは、ROM131からの読み出し位置を示す読み出しアドレスと、アドレスレジスタ301Aに格納されたパッチアドレスとを比較して、読み出しアドレスとパッチアドレスとの比較結果を出力する。このように、比較回路303Aは、アドレスレジスタ301A用の比較処理に使用される。
同様に、比較回路303Bは、ROM131からの読み出し位置を示す読み出しアドレスと、アドレスレジスタ301Bに格納されたパッチアドレスとを比較して、読み出しアドレスとパッチアドレスとの比較結果を出力する。このように、比較回路303Bは、アドレスレジスタ301B用の比較処理に使用される。
選択回路304には、比較回路303A及びBから比較結果が入力される。
選択回路304は、比較回路303A及びBからの比較結果に応じて、ROM131からの読み出しデータ又はSRAM141に格納された修正データを選択し、選択したデータを出力する。
選択回路304は、比較回路303A及びBからの比較結果が共に「不一致」の場合には、読み出しデータを出力する。一方、比較回路303Aからの比較結果が「一致」の場合には、アドレスレジスタ302Aに格納されたパッチアドレスに対応する修正データを出力する。同様に、比較回路303Bからの比較結果が「一致」の場合には、アドレスレジスタ302Bに格納されたパッチアドレスに対応する修正データを出力する。
なお、アドレスレジスタ301A及びBは、パッチアドレスの上位ビットのみを持つようにしてもよい。この場合、比較回路303A及びBは、読み出しアドレスの上位ビットと、パッチアドレスの上位ビットとを比較し、その比較結果を出力する。そして、選択回路304は、読み出しアドレスの上位ビットとパッチアドレスの上位ビットが一致する場合、修正データを出力する。
以上のように、本実施形態では、メモリコントローラ171に、複数個のアドレスレジスタ301が設けられる。これにより、本実施形態では、複数箇所のROMデータを修正することが可能になる。
以上、本発明の具体的な態様の例を、第1から第4実施形態により説明したが、本発明は、これらの実施形態に限定されるものではない。
第1実施形態の半導体集積回路の構成を示すブロック図である。 第1実施形態のROMコントローラの構成を示すブロック図である。 第1実施形態の半導体集積回路の変形例の構成を示すブロック図である。 第2実施形態のROMコントローラの構成を示すブロック図である。 第3実施形態の半導体集積回路の構成を示すブロック図である。 第3実施形態のメモリコントローラの構成を示すブロック図である。 第3実施形態の半導体集積回路の変形例の構成を示すブロック図である。 第4実施形態のメモリコントローラの構成を示すブロック図である。
符号の説明
101 半導体集積回路
111 プロセッサ
112 周辺装置
121 バス
131 ROM
132 ROMコントローラ
141 SRAM
142 SRAMコントローラ
151 ホストI/F
161 ハードウェアシーケンサ
171 メモリコントローラ
201 ホストCPU
211 シリアルROM
301 アドレスレジスタ
302 データレジスタ
303 比較回路
304 選択回路

Claims (5)

  1. プロセッサを有する半導体集積回路であって、
    前記プロセッサ用のデータが格納された、書き換え不可能な不揮発性メモリと、
    前記不揮発性メモリへのアクセスを制御するメモリ制御回路とを備え、
    前記メモリ制御回路は、
    前記不揮発性メモリの修正箇所を示すアドレスを格納するためのアドレスレジスタと、
    前記不揮発性メモリ用の修正データを格納するためのデータレジスタと、
    前記不揮発性メモリからの読み出し位置を示す読み出しアドレスと、前記アドレスレジスタに格納されたアドレスとを比較して、前記読み出しアドレスと前記アドレスレジスタに格納されたアドレスとの比較結果を出力する比較回路と、
    前記比較結果に応じて、前記不揮発性メモリからの読み出しデータ又は前記データレジスタに格納された修正データを選択し、選択したデータを出力する選択回路と、
    を備えることを特徴とする半導体集積回路。
  2. プロセッサを有する半導体集積回路であって、
    前記プロセッサ用のデータが格納された、書き換え不可能な不揮発性メモリと、
    前記不揮発性メモリへのアクセスと、前記半導体集積回路の内部又は外部に設けられ、前記不揮発性メモリ用の修正データを格納可能な揮発性メモリへのアクセスとを制御するメモリ制御回路とを備え、
    前記メモリ制御回路は、
    前記不揮発性メモリの修正箇所を示すアドレス又はアドレス領域を格納するためのアドレスレジスタと、
    前記不揮発性メモリからの読み出し位置を示す読み出しアドレス又は読み出しアドレス領域と、前記アドレスレジスタに格納されたアドレス又はアドレス領域とを比較して、前記読み出しアドレス又は前記読み出しアドレス領域と前記アドレスレジスタに格納されたアドレス又はアドレス領域との比較結果を出力する比較回路と、
    前記比較結果に応じて、前記不揮発性メモリからの読み出しデータ又は前記揮発性メモリに格納された修正データを選択し、選択したデータを出力する選択回路と、
    を備えることを特徴とする半導体集積回路。
  3. 前記アドレスレジスタ、前記データレジスタ、前記比較回路をそれぞれ、N個(Nは1以上の整数)備えることを特徴とする請求項1に記載の半導体集積回路。
  4. 更に、前記半導体集積回路と前記半導体集積回路の外部のホストとのインタフェースとなるホストインタフェースを備え、
    前記不揮発性メモリの修正箇所を示すアドレス又はアドレス領域と前記修正データは、前記ホストにより、前記ホストインタフェースを介して、前記アドレスレジスタと、前記データレジスタ又は前記揮発性メモリとにそれぞれ格納されることを特徴とする請求項1から3のいずれか1項に記載の半導体集積回路。
  5. 更に、前記半導体集積回路の外部に位置する外部メモリからデータを読み込むハードウェアシーケンサを備え、
    前記不揮発性メモリの修正箇所を示すアドレス又はアドレス領域と前記修正データは、前記ハードウェアシーケンサにより、前記外部メモリから読み込まれ、前記アドレスレジスタと、前記データレジスタ又は前記揮発性メモリとにそれぞれ格納されることを特徴とする請求項1から3のいずれか1項に記載の半導体集積回路。
JP2008314582A 2008-12-10 2008-12-10 半導体集積回路 Pending JP2010140167A (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2008314582A JP2010140167A (ja) 2008-12-10 2008-12-10 半導体集積回路
US12/610,476 US20100146332A1 (en) 2008-12-10 2009-11-02 Data correction circuit and semiconductor integrated circuit

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2008314582A JP2010140167A (ja) 2008-12-10 2008-12-10 半導体集積回路

Publications (1)

Publication Number Publication Date
JP2010140167A true JP2010140167A (ja) 2010-06-24

Family

ID=42232420

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2008314582A Pending JP2010140167A (ja) 2008-12-10 2008-12-10 半導体集積回路

Country Status (2)

Country Link
US (1) US20100146332A1 (ja)
JP (1) JP2010140167A (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2015049906A (ja) * 2013-08-30 2015-03-16 フリースケール セミコンダクター インコーポレイテッド 安全なブートromパッチのためのシステム及び方法

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP2784682A1 (en) * 2013-03-25 2014-10-01 Dialog Semiconductor B.V. Memory patching circuit
JP2018160029A (ja) * 2017-03-22 2018-10-11 株式会社東芝 半導体集積回路

Family Cites Families (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6260157B1 (en) * 1999-02-16 2001-07-10 Kurt Schurecht Patching of a read only memory
US6438664B1 (en) * 1999-10-27 2002-08-20 Advanced Micro Devices, Inc. Microcode patch device and method for patching microcode using match registers and patch routines
DE19964003A1 (de) * 1999-12-30 2001-07-12 Micronas Gmbh Schaltungsanordnung und Verfahren zur Erzeugung und zum Auslesen von Ersatzdaten
US7051231B2 (en) * 2002-08-05 2006-05-23 Faraday Technology Corp. Microprocessor system architecture to correct built-in ROM code
US6931477B2 (en) * 2002-12-31 2005-08-16 Motorola, Inc. Method and apparatus for patching code and data residing on a memory
US7039776B2 (en) * 2003-04-17 2006-05-02 Broadcom Corporation Patch memory system for a ROM-based processor
US7062695B2 (en) * 2003-05-23 2006-06-13 Lsi Logic Corporation Memory implementation for handling integrated circuit fabrication faults
US7596721B1 (en) * 2004-01-09 2009-09-29 Maxtor Corporation Methods and structure for patching embedded firmware

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2015049906A (ja) * 2013-08-30 2015-03-16 フリースケール セミコンダクター インコーポレイテッド 安全なブートromパッチのためのシステム及び方法

Also Published As

Publication number Publication date
US20100146332A1 (en) 2010-06-10

Similar Documents

Publication Publication Date Title
US8135991B2 (en) Semiconductor device and processing method for starting the same
US7308567B2 (en) Information processing apparatus for performing a system boot by using programs stored in a non-voltile storage device
JP2008016020A (ja) Biosの実行を加速化する方法
JP2010165251A (ja) 情報処理装置及びプロセッサ並びに情報処理方法
JP2005242797A (ja) エラー訂正回路
JP2008009721A (ja) 評価システム及びその評価方法
TW408264B (en) System and method for loading executable program into partly damaged memory chip
JP2007041665A (ja) Ecc機能検査回路およびecc機能検査方法
US9037773B2 (en) Methods for processing and addressing data between volatile memory and non-volatile memory in an electronic apparatus
JP2005157528A (ja) メモリ装置
JP2010140167A (ja) 半導体集積回路
JP2013246630A (ja) ブートシステムおよびシステム初期化方法
CN114047952A (zh) 用于单片机的处理器、方法、单片机和存储介质
TWI655537B (zh) 系統碼的管理裝置及其管理方法
JP2009238359A (ja) 誤り訂正機能確認回路及び誤り訂正機能確認方法とそのコンピュータプログラム、並びに記憶装置
JP5322855B2 (ja) 修正記憶部を有するプログラム更新システム及びその方法
JP2008140124A (ja) データ処理装置
JP2005063311A (ja) プロセッサシステムのパッチ方法およびパッチ適用プログラム
US20120017035A1 (en) Runtime reprogramming of a processor code space memory area
JP2003223372A (ja) メモリ制御装置及びシリアルメモリ
JP5195690B2 (ja) 情報処理装置、該装置用のromイメージ生成装置、および転送装置
JP2009064192A (ja) データスワップ制御装置
KR20090128672A (ko) 다중 부팅 모드를 지원하는 장치 및 방법
JP2001101084A (ja) 誤り検出訂正機能付きメモリ装置および誤り検出訂正装置
JP2003337668A (ja) 画像形成装置及びそのメモリクリア方法