JP2008139908A - メモリ制御装置、コンピュータシステム及びデータ再生記録装置 - Google Patents

メモリ制御装置、コンピュータシステム及びデータ再生記録装置 Download PDF

Info

Publication number
JP2008139908A
JP2008139908A JP2006322471A JP2006322471A JP2008139908A JP 2008139908 A JP2008139908 A JP 2008139908A JP 2006322471 A JP2006322471 A JP 2006322471A JP 2006322471 A JP2006322471 A JP 2006322471A JP 2008139908 A JP2008139908 A JP 2008139908A
Authority
JP
Japan
Prior art keywords
memory
error correction
data
control device
address
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
JP2006322471A
Other languages
English (en)
Inventor
Naoto Deguchi
直人 出口
Yasunori Yamamoto
泰宜 山本
Keizo Sumida
圭三 隅田
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.)
Panasonic Holdings Corp
Original Assignee
Matsushita Electric Industrial Co Ltd
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 Matsushita Electric Industrial Co Ltd filed Critical Matsushita Electric Industrial Co Ltd
Priority to JP2006322471A priority Critical patent/JP2008139908A/ja
Priority to US11/946,148 priority patent/US20080126905A1/en
Priority to CNA2007101966029A priority patent/CN101221520A/zh
Publication of JP2008139908A publication Critical patent/JP2008139908A/ja
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/08Error detection or correction by redundancy in data representation, e.g. by using checking codes
    • G06F11/10Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
    • G06F11/1008Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices
    • G06F11/1044Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices with specific ECC/EDC distribution

Abstract

【課題】誤り訂正を行うメモリ制御装置であり、メモリ容量の増加を抑制するメモリ制御装置を提供する。
【解決手段】本発明に係るメモリ制御装置は、誤り訂正符号132を含むデータをメモリ130から読み出すメモリ制御装置120であって、誤り訂正符号132に基づき、データの誤り検出及び誤り訂正を行い、誤り検出及び誤り訂正を行ったデータを外部に送出する誤り訂正部122と、メモリ130から読み出したデータを誤り訂正部122へ送出するか、メモリ130から読み出したデータを外部へ送出するかを選択するセレクタ121とを備える。
【選択図】図1

Description

本発明は、メモリ制御装置、コンピュータシステム及びデータ再生記録装置に関し、特に、データ及び誤り訂正符号をメモリから読み出すメモリ制御装置に関する。
半導体メモリチップでは電気的ノイズ、メモリセルの欠陥及び宇宙線の飛来等により記録データに誤りが発生する。記録データの誤りの発生確率は極僅かである。しかしながら、近年の半導体の微細化技術発展により、単位面積当たりのメモリセル数が増大しており、結果としてデータ誤りの発生確率は無視できなくなっている。
この誤りを検出し、訂正する方法としては誤り訂正符号(Error Correcting Code:ECC)を用いた誤り訂正機構が知られている。ECCは、記録するデータ長に応じたハミング符号を用いた誤り訂正符号である。ECCを用いた誤り訂正機構では、データと共にECCをメモリに保存する。メモリからデータを読み出す際にデータ及びECCを読み出し、データ及びECCより読み出したデータの誤り検出、及び訂正を行う。例えば、64ビットのデータについて8ビットのECCを用いることで、1ビットの誤りを訂正できる。
図13は、従来のECCを用いた誤り訂正機構を利用した一般的なコンピュータシステムの構成を示す図である。図13に示すコンピュータシステム1000では、64ビットのデータに対して8ビットのECCを用いる。コンピュータシステム1000は、メモリモジュール1001と、チップセット1002と、CPU1003とを備える。CPU1003は、チップセット1002にデータの読み出し及び書き込み命令を送る。チップセット1002は、CPU1003からの命令に応じて、メモリモジュール1001へのデータの読み出し及び書き込みを行う。チップセット1002は、データ読み出し時には、メモリモジュール1001から64ビットのデータ及び8ビットのECCを読み出し、読み出したデータの誤り検出及び訂正を行う。また、チップセット1002は、データ書き込み時には、CPU1003からの64ビットの書き込みデータに基づき、8ビットのECCを生成し、データ及びECCをメモリモジュール1001に書き込む。
メモリモジュール1001は、複数のメモリチップ1004を備える。各メモリチップ1004は、8ビットのデータ用ビット線1005と、1ビットのECC用ビット線1006とを備える。チップセット1002によるデータの書き込み及び読み出しにはデータ用ビット線1005が用いられ、ECCの書き込み及び読み出しにはECC用ビット線1006が用いられる。
しかしながら、ECC用のビット線を備えたメモリチップは、通常のメモリチップに比べコストが高いという問題がある。このために、ECCによる誤り訂正機構は高価なサーバシステムでのみ使用されている。
これに対して、通常のメモリチップを用い、誤り訂正を実施するメモリ制御装置に関する技術が開示されている(例えば、特許文献1参照)。
図14は、特許文献1記載の従来のメモリ制御装置を備えるコンピュータシステムの構成を示す図である。図14に示すコンピュータシステム1100は、マイコンブロック1110と、メモリ制御装置1120と、通常のメモリチップで構成されるメモリ1130とを備える。マイコンブロック1110は、メモリ制御装置1120にメモリ1130に対するデータの読み出し及び書き込み命令を送る。メモリ制御装置1120は、データ書き込み時には、64ビットのデータ1131毎に誤り訂正符号1132を付与し、メモリ1130に書き込む。メモリ制御装置1120は、誤り訂正符号1132を、データ1131と同様にメモリマップ上に配置する。また、メモリ制御装置1120は、データ読み出し時には、データ1131と誤り訂正符号1132とを時系列で読み出し、読み出した誤り訂正符号を用いてデータ1131の誤り訂正を行う。
このように、特許文献1記載のメモリ制御装置は、データと誤り訂正符号との読み出し及び書き込みをデータ用のビット線を使って行う。これにより、通常のメモリチップを用い、誤り訂正を実施することができる。
特開2005−182613号公報
しかしながら、特許文献1記載のメモリ制御装置1120は、メモリ1130の全領域のデータに対して誤り訂正符号1132が付与されているために、メモリ1130は、データ及び誤り訂正符号を格納するメモリ容量が必要となり、メモリ容量が増加するという問題がある。これにより、メモリ容量が限られている組み込みシステムでの実現が困難であった。
本発明では上記の問題点を鑑みてなされたものであり、誤り訂正を行うメモリ制御装置であり、メモリ容量の増加を抑制するメモリ制御装置を提供することを目的とする。
上記目的を達成するために、本発明に係るメモリ制御装置は、誤り訂正符号を含むデータをメモリから読み出すメモリ制御装置であって、前記誤り訂正符号に基づき、前記データの誤り検出及び誤り訂正を行い、誤り検出及び誤り訂正を行ったデータを外部に送出する誤り訂正手段と、前記メモリから読み出した前記データを前記誤り訂正手段へ送出するか、前記メモリから読み出した前記データを外部へ送出するかを選択するセレクタとを備える。
この構成によれば、メモリに格納された誤り訂正符号を付与されたデータに対しては、誤り訂正手段が誤り検出及び誤り訂正を行い、誤り検出及び誤り訂正後のデータを外部に出力することができる。また、メモリに格納された誤り訂正符号を付与されていないデータに対しては、誤り検出及び誤り訂正を行わずに、外部にデータを出力することができる。これにより、高い信頼性が必要なデータに対しては誤り訂正符号を付与し、高い信頼性が必要でないデータに対しては誤り訂正符号を付与していないでメモリに格納することができる。よって、高い信頼性が必要でないデータに対する誤り訂正符号のデータ領域を削減することができるので、メモリの全データに対して余り訂正符号を付与する場合に比べてメモリ容量を削減することができる。すなわち、本発明は、誤り訂正を行うメモリ制御装置であり、メモリ容量の増加を抑制するメモリ制御装置を提供することができる。
また、前記メモリ制御装置は、CPUを備えるマイコンブロックからの命令により、誤り訂正符号を含むデータをメモリから読み出すメモリ制御装置であり、前記メモリ制御装置は、さらに、前記誤り訂正符号を前記CPUの動作には関係のない命令に置き換えて外部へ送出する命令置き換え手段を備えてもよい。
この構成によれば、命令置き換え手段により、読み出された誤り訂正符号は、CPUの動作には関係のない命令に置き換えられて、マイコンブロックへ送出される。これにより、マイコンブロックにおいて誤り訂正符号を識別する処理等を行わなくとも、システム動作に支障をきたさない。よって、マイコンブロックにおける処理量を低減することができる。
また、前記メモリ制御装置は、さらに、外部から入力されたアドレスを、前記誤り訂正符号が格納される領域を含む前記メモリ上のアドレスに変換するアドレス変換手段を備えてもよい。
この構成によれば、外部の装置は、誤り訂正符号が格納される領域を考慮したアドレスを指定しなくても、誤り検出及び誤り訂正が行われたデータを読み出すことができる。よって、外部の装置は、誤り訂正符号の領域分を考慮することなくデータにアクセスすることができるので、外部の装置における処理量を低減することができる。
また、前記メモリ制御装置は、CPUを備えるマイコンブロックからの命令により、誤り訂正符号を含むデータをメモリから読み出すメモリ制御装置であり、前記セレクタは、前記マイコンブロックからのプログラムデータの読み出しの際に第1の論理となる命令読み出し信号が前記第1の論理である場合に、前記メモリから読み出した前記データを前記誤り訂正手段へ送出し、前記命令読み出し信号が前記第1の論理でない場合に、前記メモリから読み出した前記データを前記マイコンブロックへ送出し、前記アドレス変換手段は前記命令読み出し信号が前記第1の論理である場合に、前記マイコンブロックから入力されたアドレスを、前記誤り訂正符号が格納される領域を含む前記メモリ上のアドレスに変換してもよい。
この構成によれば、マイコンブロックによる命令読み出しの時のみアドレス変換手段によるアドレス変換、及び誤り訂正手段による誤り検出及び誤り訂正が行われる。よって、高い信頼性が必要なプログラムデータに対してのみ誤り訂正符号を付与しメモリに格納することができる。
また、前記メモリ制御装置は、さらに、外部から入力されたデータに対し誤り訂正符号を生成する誤り訂正符号生成手段と、外部から入力されたアドレスが所定のアドレス範囲に含まれるか否かを判定するアドレス判定手段と、前記アドレス判定手段により外部から入力されたアドレスが前記所定のアドレス範囲に含まれると判定された場合に、外部から入力されたデータを前記誤り訂正符号生成手段に送出し、前記アドレス判定手段により外部から入力されたアドレスが前記所定のアドレス範囲に含まれないと判定された場合に、前記データを前記メモリに送出する第2セレクタとを備え、前記セレクタは、前記アドレス判定手段により外部から入力されたアドレスが前記所定のアドレス範囲に含まれると判定された場合に、前記メモリから読み出した前記データを前記誤り訂正手段へ送出し、前記アドレス判定手段により外部から入力されたアドレスが前記所定のアドレス範囲に含まれないと判定された場合に、前記メモリから読み出した前記データを外部へ送出し、前記アドレス変換手段は、前記アドレス判定手段により外部から入力されたアドレスが前記所定のアドレス範囲に含まれると判定された場合に、外部から入力されたアドレスを、前記誤り訂正符号が格納される領域を含む前記メモリ上のアドレスに変換してもよい。
この構成によれば、外部から入力されたアドレスがメモリ内の所定のアドレス範囲内にあるか否かによって、誤り訂正手段により誤り検出及び訂正が行われる。これにより、プログラムデータに加え、プログラムのスタックデータなどシステム動作に影響を与える重要なデータにも誤り訂正符号を付与し、メモリに格納することができる。よって、システム動作に影響を与える重要なデータを誤り訂正符号により保護し、システムの堅牢性を向上させることができる。また、誤り訂正符号を付加すべき領域をメモリ内の所定のアドレス範囲内に抑える事ができるため、メモリ容量を削減することができる。
また、前記メモリ制御装置は、さらに、前記所定のアドレス範囲を決定するための値を固定値として保持するアドレス記憶手段を備え、前記アドレス判定手段は、前記アドレス記憶手段が保持する前記所定のアドレス範囲を決定するための値に基づき、外部から入力されたアドレスが前記所定のアドレス範囲に含まれるか否かを判定してもよい。
この構成によれば、メモリ内の誤り訂正符号を付与したデータを格納するアドレス範囲をシステム毎に自由に設定することが可能となり、様々な装置に応用することができる。
また、前記メモリ制御装置は、さらに、外部から入力された前記所定のアドレス範囲を決定するための値を保持するアドレス記憶手段を備え、前記アドレス判定手段は、前記アドレス記憶手段が保持する前記所定のアドレス範囲を決定するための値に基づき、外部から入力されたアドレスが前記所定のアドレス範囲に含まれるか否かを判定してもよい。
この構成によれば、メモリ内の誤り訂正符号を付与したデータを格納するアドレス範囲をシステム毎に自由に設定することが可能となり、様々な装置に応用することができる。
また、前記メモリ制御装置は、少なくともDMA(Direct Memory Access)制御装置からの命令により、誤り訂正符号を含むデータをメモリから読み出すメモリ制御装置であり、前記セレクタは、前記DMA制御装置からの読み出し命令の場合に、前記メモリから読み出した前記データ及び前記誤り訂正符号を前記DMA制御装置に送出してもよい。
この構成によれば、外部のデバッガソフトからメモリの内容をダンプする場合に、誤り訂正手段を介さなくともデバッガソフトにて誤り検出及び誤り訂正を行うことができる。これにより、デバッガソフトは、メモリが保持するデータを正常にダンプすることができる。
また、前記メモリ制御装置は、CPUを備えるマイコンブロック及びDMA制御装置からの命令により、誤り訂正符号を含むデータをメモリから読み出すメモリ制御装置であり、前記セレクタは、前記マイコンブロックからのプログラムデータの読み出しの際に第1の論理となる命令読み出し信号が前記第1の論理である場合、又は前記DMA制御装置からのデータの読み出しの際に第2の論理となるDMA読み出し信号が前記第2の論理である場合に、前記メモリから読み出した前記データを前記誤り訂正手段へ送出し、前記命令読み出し信号が前記第1の論理でなく、かつ前記DMA読み出し信号が前記第2の論理でない場合に、前記メモリから読み出した前記データを前記マイコンブロック又は前記DMA制御装置へ送出してもよい。
この構成によれば、外部のデバッガソフトからメモリの内容をダンプする場合に、DMA読み出し信号を制御信号とすることで、メモリ制御装置内にて誤り検出及び誤り訂正が行われる。これにより、デバッガソフトでの誤り検出及び誤り訂正の処理が不要となり、デバッガソフトにおける処理量を低減することができる。
また、前記メモリ制御装置は、CPUを備えるマイコンブロックからの命令により、誤り訂正符号を含むデータをメモリから読み出すメモリ制御装置であり、前記マイコンブロックは、前記CPUからの命令を前記メモリ制御装置又は他の装置に振り分けるバスコントロールユニットと、前記バスコントロールユニットの振り分け先を決定するための情報を保持するレジスタとを備え、前記メモリ制御装置は、さらに、前記誤り訂正手段が誤りを検出した場合に、前記レジスタが保持する情報を変更するレジスタ設定変更手段を備えてもよい。
この構成によれば、読み出したデータに誤りが検出された場合に、本来メモリ上にあるプログラムデータを用いず、メモリバスとは異なるシステムバス上に配置されたプログラムROM等からプログラムデータを読み出し、処理を実行することがきる。すなわち、誤りが発生したメモリを使用することなく処理の実行が可能となり、システムの堅牢性を向上させることができる。
また、前記メモリ制御装置は、CPUを備えるマイコンブロックからの命令により、誤り訂正符号を含むデータをメモリから読み出すメモリ制御装置であり、前記CPUは、プログラムの配置場所を示す情報を保持するレジスタを備え、前記メモリ制御装置は、さらに、前記誤り訂正手段が誤りを検出した場合に、前記レジスタが保持する情報を変更するレジスタ設定変更手段を備えてもよい。
この構成によれば、読み出したデータに誤りが検出された場合に、本来メモリ上にあるプログラムデータを用いず、メモリバスとは異なるシステムバス上に配置されたプログラムROM等からプログラムデータを読み出し、処理を実行することがきる。すなわち、誤りが発生したメモリを使用することなく処理の実行が可能となり、システムの堅牢性を向上させることができる。
また、本発明に係るコンピュータシステムは、前記メモリ制御装置と、プログラムソースをコンパイルしたオブジェクトに所定のサイズのデータ領域を挿入するデータ領域挿入手段と、前記データ領域挿入手段が挿入した前記データ領域を含めて前記オブジェクトにおけるオペランドのアドレス解決を行うアドレス解決手段と、前記オブジェクトの誤り訂正符号を算出する誤り訂正符号算出手段と、前記誤り訂正符号算出手段により算出された誤り訂正符号を、前記データ領域に書き込む誤り訂正符号書き込み手段とを備え、前記メモリ制御装置は、前記誤り訂正符号書き込み手段により、誤り訂正符号を前記データ領域に書き込まれたオブジェクトを前記メモリに書き込む。
この構成によれば、誤り訂正符号を付加しても、プログラム内のオペランドは、誤り訂正符号の領域を考慮してアドレス解決がなされている。よって、外部の装置は、アドレス変換をせずにメモリに保持されたデータにアクセスすることができる。
また、本発明に係るコンピュータシステムは、メモリと、前記メモリにデータの書き込み及び読み出しを行う前記メモリ制御装置と、前記メモリ制御装置に前記メモリへのデータの書き込み及び読み出し命令を送るマイコンブロックとを備える。
この構成によれば、メモリに格納された誤り訂正符号を付与されたデータに対しては、誤り訂正手段が誤り検出及び誤り訂正を行い、誤り検出及び誤り訂正後のデータを外部に出力することができる。また、メモリに格納された誤り訂正符号を付与されていないデータに対しては、誤り検出及び誤り訂正を行わずに、外部にデータを出力することができる。これにより、高い信頼性が必要なデータに対しては誤り訂正符号を付与し、高い信頼性が必要でないデータに対しては誤り訂正符号を付与していないでメモリに格納することができる。よって、高い信頼性が必要でないデータに対する誤り訂正符号のデータ領域を削減することができるので、メモリの全データに対して余り訂正符号を付与する場合に比べてメモリ容量を削減することができる。すなわち、本発明は、誤り訂正を行うコンピュータシステムであって、メモリ容量の増加を抑制するコンピュータシステムを提供することができる。
また、本発明に係るデータ再生記録装置は、前記コンピュータシステムを備える。
この構成によれば、メモリに格納された誤り訂正符号を付与されたデータに対しては、誤り訂正手段が誤り検出及び誤り訂正を行い、誤り検出及び誤り訂正後のデータを外部に出力することができる。また、メモリに格納された誤り訂正符号を付与されていないデータに対しては、誤り検出及び誤り訂正を行わずに、外部にデータを出力することができる。これにより、高い信頼性が必要なデータに対しては誤り訂正符号を付与し、高い信頼性が必要でないデータに対しては誤り訂正符号を付与していないでメモリに格納することができる。よって、高い信頼性が必要でないデータに対する誤り訂正符号のデータ領域を削減することができるので、メモリの全データに対して余り訂正符号を付与する場合に比べてメモリ容量を削減することができる。すなわち、本発明は、誤り訂正を行うデータ再生装置であって、メモリ容量の増加を抑制するデータ再生記録装置を提供することができる。
また、本発明に係るプログラムデータの生成方法は、前記メモリ制御装置により前記メモリに書き込まれるプログラムデータの生成方法であって、プログラムソースをコンパイルしたオブジェクトに所定のサイズのデータ領域を挿入するデータ領域挿入ステップと、前記データ領域挿入ステップにおいて挿入された前記データ領域を含めて前記オブジェクトにおけるオペランドのアドレス解決を行うアドレス解決ステップと、前記オブジェクトの誤り訂正符号を算出する誤り訂正符号算出ステップと、前記誤り訂正符号算出ステップにおいて算出された誤り訂正符号を、前記データ領域に書き込む誤り訂正符号書き込みステップとを含む。
これによれば、誤り訂正符号を付加しても、プログラム内のオペランドは、誤り訂正符号の領域を考慮してアドレス解決がなされている。よって、外部の装置は、アドレス変換をせずにメモリに保持されたデータにアクセスすることができる。
本発明は、誤り訂正を行うメモリ制御装置であり、メモリ容量の増加を抑制するメモリ制御装置を提供することができる。
以下、本発明の実施例におけるメモリ制御装置について、図面を参照しながら説明する。
(実施の形態1)
本発明の実施の形態1に係るメモリ制御装置は、メモリから読み出したデータに対して選択的に、誤り検出及び誤り訂正を行う。これにより、誤り訂正符号が付与されたデータと、誤り訂正符号が付与されていないデータとをメモリから読み出すことができる。
まず、本発明の実施の形態1に係るメモリ制御装置の構成を説明する。
図1は、本発明の実施の形態1に係るメモリ制御装置を備えるコンピュータシステムの構成を示す図である。
図1に示すコンピュータシステム100は、例えば、DVDレコーダ等のデータ再生記録装置に用いられるコンピュータシステムである。コンピュータシステム100は、マイコンブロック110と、メモリ制御装置120と、メモリ130とを備える。
メモリ130は、例えば、64ビット単位でデータ読み出し及び書き込みが可能なRAM等である。メモリ130は、複数のプログラムデータ131と、各プログラムデータ131に対応する誤り訂正符号132と、プログラム以外のデータ133とを保持する。ここで、プログラム以外のデータ133は、例えば、ビデオデータ及びオーディオデータ等の誤り訂正が必要ではないデータである。
マイコンブロック110は、メモリ制御装置120に、メモリ130へのデータの読み出し及び書き込み命令を送る。マイコンブロック110は、バスコントロールユニット(Bus Control Unit:BCU)111と、マイコンコア112と、CPUコア115と、CIバス116と、CDバス117を備える。
バスコントロールユニット111は、CIバス116及びCDバス117の制御を行う。
マイコンコア112は、プログラムデータの読み出し命令の場合(命令読み出し時)にアクティブとなる命令読み出し信号124を生成する。マイコンコア112は、命令キャッシュ113と、データキャッシュ114とを備える。命令キャッシュ113は、メモリ制御装置120等に対する命令を保持する。データキャッシュ114は、命令に従って書き込み又は読み出しを行うデータを保持する。CPUコア115は、命令の発行等のマイコンブロック110の制御を行う。
CIバス116は、命令キャッシュ113とバスコントロールユニット111との間のバスである。CDバス117は、データキャッシュ114と、バスコントロールユニット111との間のバスである。
メモリ制御装置120は、マイコンブロック110からの命令により、メモリ130へのプログラムデータ131、誤り訂正符号132及びプログラム以外のデータ133の書き込み及び読み出しを行う。メモリ制御装置120は、セレクタ121と、誤り訂正部122と、命令置き換え部123とを備える。
セレクタ121は、命令読み出し信号124に応じて、メモリ130から読み出したデータ(プログラムデータ131、誤り訂正符号132及びプログラム以外のデータ133)を、誤り訂正部122へ送出するか、マイコンブロック110に送出するかを選択する。具体的には、セレクタ121は、命令読み出し信号124がアクティブの場合に、メモリ130から読み出したデータを誤り訂正部122に送出する。セレクタ121は、命令読み出し信号124が、非アクティブの場合に、メモリ130から読み出したデータを誤り訂正部122及び命令置き換え部123を介さずに、マイコンブロック110に送出する。
誤り訂正部122は、メモリ130から読み出したプログラムデータ131及び誤り訂正符号132に基づき、メモリ130から読み出したプログラムデータ131の誤り検出及び誤り訂正を行う。誤り訂正部122は、誤り検出及び誤り訂正を行ったプログラムデータ131と、誤り訂正符号とを、命令置き換え部123に送出する。
命令置き換え部123は、誤り訂正部122が送出する誤り訂正符号132をCPUコア115の動作には関係のない命令に置き換えてマイコンブロック110へ送出する。例えば、命令置き換え部123は、誤り訂正部122が送出する誤り訂正符号132をnop命令に置き換えてマイコンブロック110へ送出する。また、命令置き換え部123は、誤り訂正部122により誤り訂正されたデータをマイコンブロック110へ送出する。なお、誤り訂正部122は、誤り検出及び誤り訂正を行ったプログラムデータ131を、命令置き換え部123を介さずに、マイコンブロック110に送出してもよい。
次に、コンピュータシステム100の動作を説明する。
まず、プログラムデータ131をメモリ130に書き込む動作を説明する。
マイコンブロック110は、メモリ130に書き込むプログラムデータ131に誤り訂正符号132を付与したプログラムイメージ134を生成する。以下に、マイコンブロック110によるプログラムイメージ134の生成の処理を詳細に説明する。例えば、マイコンブロック110は、ソフトウェア処理によりプログラムイメージ134を生成する。
図2は、メモリ130に配置するプログラムイメージ134の生成方法の流れを示すフローチャートである。図3は、プログラムイメージ134の生成方法を説明するための図である。
まず、マイコンブロック110は、プログラムソースをコンパイルした後の所定のサイズのオブジェクト140毎に、所定のサイズのデータ領域141を挿入する(S101)。例えば、図3に示すように、jmp命令142と、jmp命令142の飛び先を示すラベル143の間にデータ領域141が挿入される。ここで、所定のサイズのデータ領域の大きさは、所定のサイズのオブジェクトに対する誤り訂正符号と同じ大きさである。例えば、所定のサイズのオブジェクト140は、512ビットのオブジェクトであり、所定のサイズのデータ領域141は、64ビットのデータ領域である。次に、マイコンブロック110は、ステップS101において挿入されたデータ領域141を含めてオブジェクト140におけるオペランドのアドレス解決を行う(S102)。具体的には、図3示す例では、jmp命令142のオペランドは、jmp命令142の位置から所定のサイズのデータ領域141の領域分を含めたラベル143までの距離を考慮してアドレス解決される。次に、マイコンブロック110は、所定のサイズのオブジェクト140毎の誤り訂正符号132を算出する(S103)。次に、マイコンブロック110は、ステップS103において算出された誤り訂正符号132を、データ領域141に書き込む(S104)。
以上の処理により、所定のサイズのプログラムデータ131毎に所定のサイズのプログラムデータ131に対する誤り訂正符号132が配置されたプログラムイメージ134が生成される。
また、ステップS102において、データ領域141の領域分を考慮したアドレス解決が行われるので、データ領域141に対して誤り訂正符号132が書き込まれた場合でも、所定のサイズのデータ領域141と誤り訂正符号132のサイズとは同じであるから、jmp命令142のオペランドは誤り訂正符号132の領域分を考慮してアドレス解決された状態となる。
次に、マイコンブロック110は、生成したプログラムイメージ134及び書き込み命令をメモリ制御装置120に送出する。メモリ制御装置120は、プログラムイメージ134をメモリ130に書き込む。以上により、誤り訂正符号132を付与したプログラムデータ131がメモリ130に書き込まれる。
次に、プログラム以外のデータ133をメモリ130に書き込む動作を説明する。
マイコンブロック110は、プログラム以外のデータ133及び書き込み命令をメモリ制御装置120に送出する。メモリ制御装置120は、プログラム以外のデータ133をメモリ130に書き込む。以上により、誤り訂正符号132が付与されないプログラム以外のデータ133がメモリ130に書き込まれる。
次に、プログラムデータ131をメモリ130から読み出す動作を説明する。
マイコンブロック110は、メモリ制御装置120に、プログラムデータ131の読み出し命令を送出する。また、マイコンブロック110は、命令読み出し信号124をアクティブにする。
メモリ制御装置120は、マイコンブロック110からの命令により、プログラムデータ131と対応する誤り訂正符号132を読み出す。セレクタ121は、命令読み出し信号124がアクティブなので、読み出したプログラムデータ131及び誤り訂正符号132を誤り訂正部122に送出する。
誤り訂正部122は、プログラムデータ131及び誤り訂正符号132に基づき、プログラムデータ131の誤り検出及び誤り訂正を行う。命令置き換え部123は、誤り訂正部122が送出する誤り訂正符号132をCPUコア115の動作には関係のない命令に置き換えてマイコンブロック110へ送出する。また、命令置き換え部123は、誤り訂正部122により誤り訂正されたプログラムデータ131をマイコンブロック110へ送出する。
以上により、メモリ130からプログラムデータ131が読み出される。また、誤りが発生した場合に、誤り訂正部122により誤り訂正が行われたプログラムデータ131が読み出される。
次に、プログラム以外のデータ133をメモリ130から読み出す動作を説明する。
マイコンブロック110は、メモリ制御装置120に、プログラム以外のデータ133の読み出し命令を送出する。また、マイコンブロック110は、命令読み出し信号124を非アクティブにする。
メモリ制御装置120は、マイコンブロック110からの命令により、プログラム以外のデータ133を読み出す。セレクタ121は、命令読み出し信号124が非アクティブなので、読み出したプログラム以外のデータ133を誤り訂正部122及び命令置き換え部123を介さずに、マイコンブロック110に送出する。以上により、メモリ130からプログラム以外のデータ133が読み出される。
以上、本発明の実施の形態1に係るメモリ制御装置120は、メモリ130に格納された誤り訂正符号132が付与されたプログラムデータ131に対しては、誤り訂正部122が誤り検出及び誤り訂正を行い、誤り検出及び誤り訂正後のプログラムデータ131をマイコンブロック110に出力する。また、メモリ130に格納された誤り訂正符号132が付与されていないプログラム以外のデータ133に対しては、誤り検出及び誤り訂正を行わずに、マイコンブロック110にデータを出力する。これにより、高い信頼性が必要なプログラムデータ131に対しては誤り訂正符号132を付与し、高い信頼性が必要でないプログラム以外のデータ133に対しては誤り訂正符号132を付与していないでメモリ130に格納することができる。よって、高い信頼性が必要でないプログラム以外のデータ133に対する誤り訂正符号132のデータ領域を削減することができるので、メモリの全データに対して誤り訂正符号を付与する場合に比べてメモリ容量を削減することができる。すなわち、本発明は、誤り訂正を行うメモリ制御装置であり、メモリ容量の増加を抑制するメモリ制御装置120を提供することができる。また、本発明は、誤り訂正を行うコンピュータシステムであり、メモリ容量の増加を抑制するコンピュータシステム100を提供することができる。さらに、本発明は、コンピュータシステム100を備えるメモリ容量の増加を抑制したDVDレコーダ等のデータ再生記録装置を実現することができる。
また、メモリ130に書き込まれるプログラムイメージ134は誤り訂正符号領域分を考慮してアドレス解決がなされる。よって、マイコンブロック110は、誤り訂正符号領域分のアドレスを考慮する必要がない。すなわち、マイコンブロック110は、アドレス変換をせずにメモリ130に保持されたデータにアクセスすることができる。
また、命令置き換え部123により、読み出された誤り訂正符号132は、CPUコア115の動作には関係のない命令に置き換えられて、マイコンブロック110へ送出される。これにより、マイコンブロック110において誤り訂正符号132を識別する処理等を行わなくとも、システム動作に支障をきたさない。
また、セレクタ121は、命令読み出し時にアクティブとなる命令読み出し信号124により制御される。よって、高い信頼性が必要なプログラムデータ131に対してのみ誤り訂正符号132を付与しメモリに格納することができる。
なお、図3ではjmp命令142のアドレス解決を例に説明したが、他のメモリ上のアドレスを参照する命令(例えば、分岐命令等)において、命令と参照先アドレスとの間にデータ領域141が挿入される場合でも同様のアドレス解決を行えばよい。
また、上記説明では、マイコンブロック110が、図2に示す処理により、メモリ130に配置するプログラムイメージ134を生成するとしたが、外部のコンピュータシステムがプログラムイメージ134を生成し、マイコンブロック110にて実行される専用の書込みプログラム又はデバッガソフトにより、プログラムイメージ134をメモリ130に書き込んでもよい。
また、上記説明では、メモリ130は、64ビット単位でデータ読み出し及び書き込みが行われるとしたが、メモリ130の構成はこれに限定されるものではない。メモリ130は、バイト単位又はワード単位(複数バイト単位)でデータの読み出し及び書き込みが行われてもよい。
また、メモリ130に保持される柄所定のサイズのプログラムデータ131に対する誤り訂正符号132のサイズは、任意のサイズを設定することができる。
(実施の形態2)
本発明の実施の形態2に係るメモリ制御装置は、マイコンブロックからのアドレスを誤り訂正符号が保持される領域を考慮したメモリ上のアドレスに変換する。これにより、マイコンブロックは、通常のメモリへのアクセスと同様に誤り訂正符号が付与されたデータにアクセスすることができる。
まず、本発明の実施の形態2に係るメモリ制御装置の構成を説明する。
図4は本発明の実施の形態2に係るメモリ制御装置を備えるコンピュータシステムの構成を示す図である。図4に示すコンピュータシステム200は、図1に示す実施の形態1に係るコンピュータシステム100に対して、メモリ制御装置220の構成が異なる。なお、図1と同様の要素には同一の符号を付しており、詳細な説明は省略する。
メモリ制御装置220は、セレクタ121と、誤り訂正部222と、アドレス変換部223とを備える。
セレクタ121は、命令読み出し信号124に応じて、メモリ130から読み出したデータ(プログラムデータ131、誤り訂正符号132及びプログラム以外のデータ133)を、誤り訂正部222へ送出するか、マイコンブロック110に送出するかを選択する。具体的には、セレクタ121は、命令読み出し信号124がアクティブの場合に、メモリ130から読み出したデータを誤り訂正部222に送出する。セレクタ121は、命令読み出し信号124が、非アクティブの場合に、メモリ130から読み出したデータを誤り訂正部222を介さずに、マイコンブロック110に送出する。
誤り訂正部222は、メモリ130から読み出したプログラムデータ131及び誤り訂正符号132に基づき、メモリ130から読み出したプログラムデータ131の誤り検出及び誤り訂正を行う。また、誤り訂正部222は、誤り検出及び誤り訂正を行ったプログラムデータをマイコンブロック110に送出する。なお、誤り訂正部222は、誤り訂正符号132をマイコンブロック110に出力しない。
アドレス変換部223は、マイコンブロック110から入力されたアクセス要求アドレス224を、所定の計算式に則り、誤り訂正符号132が格納される領域を含むメモリ130上のメモリアドレス225に変換する。また、アドレス変換部223は、命令読み出し信号124により制御される。具体的には、アドレス変換部223は、命令読み出し信号124がアクティブの場合に、所定の計算式に則り、アクセス要求アドレス224をメモリ130上のメモリアドレス225に変換する。アドレス変換部223は、命令読み出し信号124が非アクティブの場合に、アクセス要求アドレス224を変換せず、メモリ130へ送出する。
図5は、アドレス変換部223の詳細な構成を示す図である。
アドレス変換部223は、メモリアドレス算出部226を備える。メモリアドレス算出部226は、アクセス要求アドレス224からメモリ130上のメモリアドレス225へ所定の計算式によりアドレス変換を行う。
図6は、メモリ130のメモリアドレス225とアクセス要求アドレス224と関係を模式的に示す図である。
図6において、メモリ130は64ビットのデータ幅であり、64ビットのデータ毎に8ビットの誤り訂正符号132が付与されている。よって、メモリアドレス225は、アクセス要求アドレス224の0x40ビット毎に8ビットずれることになる。よって、メモリアドレス算出部226は、下記式(1)によりメモリアドレス225を算出する。
ADDR=addr+(addr/0x40)×8 ・・・(1)
ここで、ADDRはメモリアドレス225を表し、addrはアクセス要求アドレス224を表す。また(addr/0x40)はaddrを0x40で割った商である。また、0x40等のアドレスは、ビット単位のアドレスである。例えば、上記式(1)により、アクセス要求アドレス224が0x40の場合に、メモリアドレス225は0x48となる。
なお、メモリ130のデータ幅及び何ビットのデータ毎に誤り訂正符号132を付与するかによってメモリアドレス算出部226が用いる計算式がきまる。図7は、データ幅が32ビットであり、32ビットのデータごとに8ビットの誤り訂正符号が付与されている場合のメモリ130のメモリアドレス225とアクセス要求アドレス224と関係を模式的に示す図である。例えば、図7に示すように、メモリ130のデータ幅が32ビットであり、32ビットのデータごとに8ビットの誤り訂正符号が付与されている場合に、メモリアドレス225はアクセス要求アドレス224の0x20ビット毎に8ビットだけずれることになる。よって、メモリアドレス算出部226で実行される計算式は下記式(2)となる。
ADDR=addr+(addr/0x20)×8 ・・・(2)
すなわち、メモリ130のデータバス幅が変わっても同様にメモリアドレス225を算出することができる。
なお、上記説明において、アクセス要求アドレス224及びメモリアドレス225として、ビット単位のアドレスを用いたが、バイト単位又は複数バイト単位(ワード単位)等のアドレスであってもよい。
次に、プログラムデータ131をメモリ130から読み出す動作を説明する。なお、アクセス要求アドレス224が0x40であるとする。
まず、マイコンブロック110は、メモリ制御装置220に、プログラムデータ131の読み出し命令を送出する。マイコンブロック110は、読み出すプログラムデータ131のアドレスであるアクセス要求アドレス224として0x40を送出する。また、マイコンブロック110は、命令読み出し信号124をアクティブにする。
アドレス変換部223は、命令読み出し信号124がアクティブなので、アクセス要求アドレス224を、メモリ130上のメモリアドレス225に変換する。メモリアドレス算出部226は、上記式(1)によりアクセス要求アドレス224を変換し、メモリアドレス225として0x48を算出する。メモリ制御装置220は、算出したメモリアドレス225(0x48)のプログラムデータ131を読み出す。また、メモリ制御装置220は、読み出したプログラムデータ131に対応する誤り訂正符号132を読み出す(例えば、メモリアドレス225が0x88のデータを読み出す。)。
セレクタ121は、命令読み出し信号124がアクティブなので、読み出したプログラムデータ131及び誤り訂正符号132を誤り訂正部222に送出する。
誤り訂正部222は、プログラムデータ131及び誤り訂正符号132に基づき、プログラムデータ131の誤り検出及び誤り訂正を行う。誤り訂正部222は、誤り検出及び誤り訂正を行ったプログラムデータをマイコンブロック110に送出する。
以上により、メモリ130からプログラムデータ131が読み出される。また、誤りが発生した場合に、誤り訂正部222により誤り訂正が行われたプログラムデータ131が読み出される。
次に、プログラム以外のデータ133をメモリ130から読み出す動作を説明する。
マイコンブロック110は、メモリ制御装置220に、プログラム以外のデータ133の読み出し命令を送出する。また、マイコンブロック110は、命令読み出し信号124を非アクティブにする。
メモリアドレス算出部226は、命令読み出し信号124が非アクティブなので、アクセス要求アドレス224を変換しない。メモリ制御装置220は、アクセス要求アドレス224をメモリアドレス225としてプログラム以外のデータ133を読み出す。
セレクタ121は、命令読み出し信号124が非アクティブなので、読み出したプログラム以外のデータ133をマイコンブロック110に送出する。以上により、メモリ130からプログラム以外のデータ133が読み出される。
次に、プログラムデータ131をメモリ130に書き込む動作を説明する。なお、アクセス要求アドレス224が0x40であるとする。
まず、マイコンブロック110は、メモリ制御装置220に、プログラムデータ131の書き込み命令を送出する。マイコンブロック110は、書き込むプログラムデータ131のアドレスであるアクセス要求アドレス224として0x40を送出する。また、マイコンブロック110は、命令読み出し信号124をアクティブにする。
アドレス変換部223は、命令読み出し信号124がアクティブなので、アクセス要求アドレス224をメモリ130上のメモリアドレス225に変換する。メモリアドレス算出部226は、上記式(1)によりアクセス要求アドレス224を変換し、メモリアドレス225として0x48を算出する。メモリ制御装置220は、算出したメモリアドレス225(0x48)のデータ書き込み前のプログラムデータ131を読み出す。メモリ制御装置220は、読み出したプログラムデータ(例えば、64ビット)と、書き込み命令を受けたプログラムデータ(例えば、8ビット)とから、メモリ130に書き込むプログラムデータ(例えば、64ビット)及び誤り訂正符号(例えば、8ビット)を算出する。メモリ制御装置220は、算出したプログラムデータ及び誤り訂正符号をメモリ130に書き込む。以上により、誤り訂正符号132を付与したプログラムデータ131がメモリ130に書き込まれる。なお、書き込みにおける誤り訂正符号の生成については後述の実施の形態3にて説明する。
次に、プログラム以外のデータ133をメモリ130に書き込む動作を説明する。
マイコンブロック110は、メモリ制御装置220に、プログラム以外のデータ133の書き込み命令を送出する。また、マイコンブロック110は、命令読み出し信号124を非アクティブにする。
メモリアドレス算出部226は、命令読み出し信号124が非アクティブなので、アクセス要求アドレス224を変換しない。メモリ制御装置220は、アクセス要求アドレス224をメモリアドレス225としてプログラム以外のデータ133をメモリ130に書き込む。以上により、誤り訂正符号132が付与されないプログラム以外のデータ133がメモリ130に書き込まれる。
以上、本発明の実施の形態2に係るコンピュータシステム200は、マイコンブロック110から誤り訂正符号132の領域を含めたアドレス解決をしていないプログラムイメージ234に対してアクセスする際、アドレス変換部223によって誤り訂正符号132の領域分のアドレス補正を行う。これにより、マイコンブロック110は、誤り訂正符号132の領域分を考慮することなくプログラムデータ131にアクセスすることができる。よって、マイコンブロック110における処理量を低減することができる。
また、本発明の実施の形態2に係るコンピュータシステム200は、マイコンブロック110による命令読み出しの時のみに、アドレス変換部223によるアドレス変換、及び誤り訂正部222による誤り検出及び誤り訂正が行われる。よって、プログラムデータ131に対してのみ誤り訂正符号132を付与しメモリ130に格納することができる。
また、本発明の実施の形態2に係るコンピュータシステム200は、高い信頼性が必要なプログラムデータ131に対してのみ誤り訂正符号132を付与し、メモリ130に書き込む。また、ビデオデータ及びオーディオデータ等の誤り訂正符号が必要ではないプログラム以外のデータ133に対する誤り訂正符号を付与せずに、メモリ130に書き込む。これにより、プログラム以外のデータ133に対する誤り訂正符号のデータ領域を削減することができ、メモリの全データに対して余り訂正符号を付与する場合に比べてメモリ容量を削減することができる。
(実施の形態3)
本発明の実施の形態3に係るメモリ制御装置は、マイコンブロックからのアドレスにより、書き込み又は読み出しを行うデータが、誤り訂正符号を付加したデータであるか、誤り訂正符号を付加しないデータであるかを判定する。これにより、マイコンブロックは、アドレスのみを指定するだけで、誤り訂正符号を付加する、又は付加しないを指定し、メモリにデータを保持することができる。
まず、本発明の実施の形態3に係るメモリ制御装置の構成を説明する。
図8は、本発明の実施の形態3に係るメモリ制御装置を備えるコンピュータシステムの構成を示す図である。図8に示すコンピュータシステム300は、図4に示す実施の形態2に係るコンピュータシステム200に対して、メモリ制御装置320の構成が異なる。なお、図3と同様の要素には同一の符号を付しており、詳細な説明は省略する。
メモリ制御装置320は、セレクタ121と、誤り訂正部222と、アドレス変換部223と、誤り訂正符号生成部321と、第2セレクタ322と、アドレス記憶部323と、領域判定部324とを備える。
誤り訂正符号生成部321は、マイコンブロック110から入力された書き込みデータに対し誤り訂正符号を生成する。
アドレス記憶部323は、メモリ130上の境界アドレス331を固定値として保持する。境界アドレス331は、誤り訂正符号132を付加したデータを格納する領域のアドレス範囲を決定するための値である。例えば、図8に示すように、メモリ130では境界アドレス331の値より小さいアドレスを誤り訂正符号132を付加したデータを格納するECC有り領域とし、境界アドレス331の値より大きいアドレスを誤り訂正符号132を付加しないデータを格納するECC無し領域とする。
領域判定部324は、アドレス記憶部323が保持する境界アドレス331に基づき、マイコンブロック110から入力されたアクセス要求アドレス224が、アドレス記憶部323が保持する誤り訂正符号132を付加したデータを格納するアドレス範囲に含まれるか否かを判定する。具体的には、領域判定部324は、マイコンブロック110からのアクセス要求アドレス224とアドレス記憶部323が保持する境界アドレス331とを比較し、アクセス要求アドレス224が、アドレス記憶部323が保持するアドレス範囲に含まれるか否かを判定する。領域判定部324は、判定結果を領域判定信号325として出力する。アドレス変換部223、セレクタ121及び第2セレクタ322は、領域判定部324が出力する領域判定信号325により制御される。
第2セレクタ322は、領域判定部324が出力する領域判定信号325に基づき、マイコンブロック110から入力された書き込みデータを誤り訂正符号生成部321又はメモリ130に送出する。具体的には、第2セレクタ322は、領域判定部324によりアクセス要求アドレス224が誤り訂正符号132を付加したデータを格納するアドレス範囲に含まれると判定された場合に、マイコンブロック110から入力された書き込みデータを誤り訂正符号生成部321へ送出する。第2セレクタ322は、領域判定部324によりアクセス要求アドレス224が誤り訂正符号132を付加したデータを格納するアドレス範囲に含まれないと判定された場合に、マイコンブロック110から入力された書き込みデータを、誤り訂正符号生成部321を介さずにメモリ130へ送出する。
アドレス変換部223は、領域判定部324によりアクセス要求アドレス224が誤り訂正符号132を付加したデータを格納するアドレス範囲に含まれると判定された場合に、マイコンブロック110からのアクセス要求アドレス224を誤り訂正符号132が格納される領域を含むメモリ130上のメモリアドレス225に変換し、メモリ130に送出する。アドレス変換部223は、領域判定部324によりアクセス要求アドレス224が誤り訂正符号132を付加したデータを格納するアドレス範囲に含まれないと判定された場合に、マイコンブロック110からのアクセス要求アドレス224を変換せずメモリアドレス225として、メモリ130に送出する。
セレクタ121は、領域判定部324によりアクセス要求アドレス224が誤り訂正符号132を付加したデータを格納するアドレス範囲に含まれると判定された場合に、メモリ130からの読み出しデータを誤り訂正部222に送出する。セレクタ121は、領域判定部324によりアクセス要求アドレス224が誤り訂正符号132を付加したデータを格納するアドレス範囲に含まれないと判定された場合に、メモリ130からの読み出しデータを、誤り訂正部222を介さずにマイコンブロック110に送出する。
次に、コンピュータシステム300の動作を説明する。
まず、プログラムデータ131をメモリ130から読み出す動作(ECC有りの領域のデータを読み出す動作)を説明する。
まず、マイコンブロック110は、メモリ制御装置320に、プログラムデータ131の読み出し命令を送出する。また、マイコンブロック110は、読み出すプログラムデータ131のアドレスであるアクセス要求アドレス224として境界アドレス331より小さいアドレスを送出する。
領域判定部324は、アクセス要求アドレス224とアドレス記憶部323が保持する境界アドレス331とを比較する。ここで、アクセス要求アドレス224は、境界アドレスより小さいので、領域判定部324は、アクセス要求アドレス224が境界アドレスより小さいことを示す論理(例えば、アクティブ)の領域判定信号325を出力する。
メモリアドレス算出部226は、領域判定信号325がアクティブなので、アクセス要求アドレス224をメモリ130上のメモリアドレス225に変換する。メモリ制御装置320は、変換したメモリアドレス225のプログラムデータ131、及び対応する誤り訂正符号132を読み出す。なお、アドレス変換の処理は、実施の形態2と同様であり詳細な説明は省略する。
セレクタ121は、領域判定信号325がアクティブなので、読み出したプログラムデータ131及び誤り訂正符号132を誤り訂正部222に送出する。誤り訂正部222は、読み出したプログラムデータ131及び誤り訂正符号132から、読み出したプログラムデータ131の誤り検出及び誤り訂正を行う。誤り訂正部222は、誤り検出及び誤り訂正を行ったプログラムデータ131をマイコンブロック110に送出する。
以上により、メモリ130からプログラムデータ131が読み出される。また、誤りが発生した場合に、誤り訂正部122により誤り訂正が行われたプログラムデータ131が読み出される。
次に、プログラム以外のデータ133をメモリ130から読み出す動作(ECC無しの領域のデータを読み出す動作)を説明する。
マイコンブロック110は、メモリ制御装置320に、プログラム以外のデータ133の読み出し命令を送出する。また、マイコンブロック110は、読み出すプログラムデータ131のアドレスであるアクセス要求アドレス224として境界アドレス331より大きいアドレスを送出する。
領域判定部324は、アクセス要求アドレス224とアドレス記憶部323が保持する境界アドレス331とを比較する。ここで、アクセス要求アドレス224は、境界アドレスより大きいので、領域判定部324は、アクセス要求アドレス224が境界アドレスより大きいことを示す論理(例えば、非アクティブ)の領域判定信号325を出力する。
メモリアドレス算出部226は、領域判定信号325が非アクティブなので、アクセス要求アドレス224を変換しない。メモリ制御装置320は、アクセス要求アドレス224をメモリアドレスとしてプログラム以外のデータ133を読み出す。
セレクタ121は、領域判定信号325が非アクティブなので、読み出したプログラム以外のデータ133をマイコンブロック110に送出する。以上により、メモリ130からプログラム以外のデータ133が読み出される。
次に、プログラムデータ131をメモリ130に書き込む動作(ECC有りの領域にデータを書き込む動作)を説明する。
まず、マイコンブロック110は、メモリ制御装置320に、プログラムデータ131の書き込み命令を送出する。また、マイコンブロック110は、書き込むプログラムデータ131のアドレスであるアクセス要求アドレス224として境界アドレス331より小さいアドレスを送出する。
領域判定部324は、アクセス要求アドレス224とアドレス記憶部323が保持する境界アドレス331とを比較する。ここで、アクセス要求アドレス224は、境界アドレスより小さいので、領域判定部324は、アクセス要求アドレス224が境界アドレスより小さいことを示す論理(例えば、アクティブ)の領域判定信号325を出力する。
メモリアドレス算出部226は、領域判定信号325がアクティブなので、アクセス要求アドレス224をメモリ130上のメモリアドレス225に変換する。
第2セレクタは、領域判定信号325がアクティブなので、マイコンブロック110からの書き込みプログラムデータ131を誤り訂正符号生成部321に送出する。誤り訂正符号生成部321は、書き込みプログラムデータ131から誤り訂正符号132を生成する。
メモリ制御装置320は、変換したメモリアドレス225にマイコンブロック110からのプログラムデータ131と、誤り訂正符号生成部321が生成した誤り訂正符号132とを書き込む。以上により、誤り訂正符号132を付与したプログラムデータ131がメモリ130に書き込まれる。
次に、プログラム以外のデータ133をメモリ130に書き込む動作(ECC無しの領域にデータを書き込む動作)を説明する。
マイコンブロック110は、メモリ制御装置320に、プログラム以外のデータ133の書き込み命令を送出する。また、マイコンブロック110は、書き込むプログラムデータ131のアドレスであるアクセス要求アドレス224として境界アドレス331より大きいアドレスを送出する。
領域判定部324は、アクセス要求アドレス224とアドレス記憶部323が保持する境界アドレス331とを比較する。ここで、アクセス要求アドレス224は、境界アドレスより大きいので、領域判定部324は、アクセス要求アドレス224が境界アドレスより大きいことを示す論理(例えば、非アクティブ)の領域判定信号325を出力する。
メモリアドレス算出部226は、領域判定信号325が非アクティブなので、アクセス要求アドレス224を変換しない。第2セレクタは、領域判定信号325が非アクティブなので、マイコンブロック110からの書き込みプログラムデータ131をメモリ130に送出する。
メモリ制御装置320は、マイコンブロック110からのアクセス要求アドレス224をメモリアドレス225として、マイコンブロック110からのプログラム以外のデータ133を書き込む。以上により、誤り訂正符号132が付与されないプログラム以外のデータ133がメモリ130に書き込まれる。
以上、本発明の実施の形態3に係るコンピュータシステム300は、アクセス要求アドレス224がECC有りの領域のアドレス範囲内にある場合のデータ読み出し時に、アドレス変換部223によりアドレス変換を行い、誤り訂正部222にて誤り検出及び訂正を行う。また、コンピュータシステム300は、アクセス要求アドレス224がECC有りの領域のアドレス範囲内にある場合のデータ書き込み時に、アドレス変換部223によりアドレス変換を行い、誤り訂正符号生成部321により誤り訂正符号132を生成する。これにより、上述した実施の形態1及び2で示したようなプログラムイメージのみならず、プログラムのスタックデータなどシステム動作に影響を与える重要なデータにも誤り訂正符号132を付加し、メモリ130に格納することができる。よって、システム動作に影響を与える重要なデータを誤り訂正符号132により保護し、システムの堅牢性を向上させることができる。また、誤り訂正符号132を付加すべき領域をメモリ130内の所定のアドレス範囲内に抑える事ができるため、メモリ容量を削減することができる。
また、本発明の実施の形態3に係るコンピュータシステム300は、ECC有りの領域のアドレス範囲を決定するための値を保持するアドレス記憶部323を備える。これにより、メモリ130内の誤り訂正符号132を付与したデータを格納するアドレス範囲をシステム毎に自由に設定することが可能となり、様々な装置に応用することができる。
なお、上記説明では、境界アドレス331を1つに定め、アクセス要求アドレス224が境界アドレス331より小さい場合にECC有りの領域のアドレス範囲内としたが、アクセス要求アドレス224が境界アドレス331より大きい場合にECC有りの領域のアドレス範囲内としてもよい。また、境界アドレス331を2つとして、2つの境界アドレスで挟まれたアドレス領域をECC有りの領域のアドレス範囲としてもよい。さらに、境界アドレスを3つ以上として、さらに細かくECC有りの領域のアドレス範囲を指定してもよい。
また、上記説明において、アドレス記憶部323は、境界アドレス331を固定値として保持するとしたが、アドレス記憶部323に保持する境界アドレス331をユーザ側で任意に設定してもよい。すなわち、アドレス記憶部323は、外部から入力された境界アドレス331を保持してもよい。
(実施の形態4)
本発明の実施の形態4に係るメモリ制御装置は、デバッガソフトからの読み出し時には、誤り訂正符号及びプログラムデータをデバッガソフトに出力する。これにより、デバッガソフトは、誤り訂正符号及びプログラムデータから誤り検出及び誤り訂正を行い、デバッグを行うことができる。
図9は、本発明の実施の形態4に係るメモリ制御装置を備えるコンピュータシステムの構成を示す図である。図9に示すコンピュータシステム400は、図4に示す実施の形態2に係るコンピュータシステム200に対して、マイコンブロック410の構成と、PC(パーソナルコンピュータ)440とを備える点とが異なる。なお、図4と同様の要素には同一の符号を付しており、詳細な説明は省略する。
マイコンブロック410は、バスコントロールユニット111と、マイコンコア112と、DMA制御装置(Direct Memory Access Controller:DMAC)411とを備える。
DMA制御装置411は、マイコンコア112と同様にバスコントロールユニット111を介してメモリ130が保持するデータを読み出す。DMA制御装置411は、読み出したプログラムデータ131及び誤り訂正符号132をPC440に送出する。
コンピュータシステム400において、メモリ制御装置220は、マイコンコア112及びDMA制御装置411からの命令により、誤り訂正符号132を含むデータをメモリ130から読み出す。
PC440は、デバッガソフト441を備える。デバッガソフト441は、デバッグユニット(不図示)を経由して、マイコンブロック410と接続される。デバッガソフト441は、DMA制御装置411を介して、メモリ130からの読み出しを行い、メモリ130が保持するデータのデバッグを行う。また、デバッガソフト441は、読み出したプログラムデータ131及び誤り訂正符号132から、読み出したプログラムデータ131の誤り検出及び誤り訂正を行う。
セレクタ121は、DMA制御装置411からの読み出しの場合に、メモリ130から読み出したプログラムデータ131及び誤り訂正符号132を、誤り訂正部222を介さずにマイコンブロック410のDMA制御装置411に送出する。
以上の構成より、デバッガソフト441は、DMA制御装置411及びメモリ制御装置320を介して、メモリ130が保持するプログラムデータ131及び誤り訂正符号132を読み出すことができる。また、デバッガソフト441は、読み出したプログラムデータ131及び誤り訂正符号132から、読み出したプログラムデータ131の誤り検出及び誤り訂正を行う。
以上、本発明の実施の形態4に係るコンピュータシステム400は、PC440上のデバッガソフト441によりメモリ130の保持するデータを読み出す場合に、デバッガソフト441にてプログラムデータ131の誤り検出及び誤り訂正を行う。これにより、メモリ制御装置220にハードウェアを追加しなくてもデバッガソフト441にてメモリ130のプログラムデータ131を誤りなくダンプし、デバッグを行うことができる。
(実施の形態5)
本発明の実施の形態5に係るメモリ制御装置は、デバッガソフトからの読み出し時には、誤り検出及び誤り訂正を行い、プログラムデータのみをデバッガソフトに出力する。これにより、デバッガソフトでの誤り検出及び誤り訂正を行わなくてもよい。
図10は、本発明の実施の形態5に係るメモリ制御装置を備えるコンピュータシステムの構成を示す図である。図10に示すコンピュータシステム500は、図9に示す実施の形態4に係るコンピュータシステム400に対して、PC440が備えるデバッガソフト541及びマイコンブロック110が備えるDMA制御装置511の構成と、メモリ制御装置220のセレクタ121及びアドレス変換部223の制御方法とが異なる。なお、図9と同様の要素には同一の符号を付しており、詳細な説明は省略する。
DMA制御装置511は、マイコンコア112と同様にバスコントロールユニット111を介してメモリ130が保持するデータを読み出す。また、DMA制御装置511は、DMA制御装置511からのメモリ130に保持されるデータの読み出し時にアクティブとなり、DMA制御装置511からのメモリ130に保持されるデータの読み出し時以外に非アクティブとなるDMA読み出し信号510を生成する。
コンピュータシステム500において、メモリ制御装置220は、マイコンコア112及びDMA制御装置511からの命令により、誤り訂正符号132を含むデータをメモリ130から読み出す。
デバッガソフト541は、デバッグユニット(不図示)を経由して、マイコンブロック410と接続される。デバッガソフト541は、DMA制御装置511を介して、メモリ130からの読み出しを行い、メモリ130が保持するデータのデバッグを行う。
セレクタ121は、DMA制御装置511からのDMA読み出し信号510、及び命令読み出し信号124の少なくとも一方がアクティブの場合に、メモリ130から読み出したプログラムデータ131及び誤り訂正符号132を、誤り訂正部222に送出する。セレクタ121は、DMA読み出し信号510、及び命令読み出し信号124が共に非アクティブの場合に、メモリ130から読み出したデータを、誤り訂正部222を介さずにマイコンブロック410に送出する。
アドレス変換部223は、DMA読み出し信号510及び命令読み出し信号124の少なくとも一方がアクティブの場合に、マイコンブロック410からのアクセス要求アドレス224をメモリ130上のメモリアドレス225に変換し、メモリ130に送出する。アドレス変換部223は、DMA読み出し信号510、及び命令読み出し信号124が共に非アクティブの場合に、マイコンブロック110からのアクセス要求アドレス224を変換せずメモリアドレス225として、メモリ130に送出する。
以上の構成により、PC440上のデバッガソフト541によりメモリ130が保持するデータを読み出す場合に、DMA制御装置511は、DMA読み出し信号510をアクティブにする。これにより、アドレス変換部223は、アクセス要求アドレス224をメモリ130上のメモリアドレス225に変換する。メモリ制御装置220は、変換したメモリアドレス225のプログラムデータ131及び誤り訂正符号132を読み出す。セレクタ121は、読み出したプログラムデータ131及び誤り訂正符号132を誤り訂正部222に送出する。誤り訂正部222は、読み出したプログラムデータ131及び誤り訂正符号132から、プログラムデータ131の誤り検出及び誤り訂正を行う。誤り訂正部222は、誤り検出及び誤り訂正を行ったプログラムデータ131をマイコンブロック410に送出する。DMA制御装置511は、誤り訂正部222からの誤り検出及び誤り訂正を行ったプログラムデータ131を、バスコントロールユニット111を介して取得し、デバッガソフト541に送出する。以上より、誤り検出及び誤り訂正を行ったプログラムデータ131がデバッガソフト541に送出される。
上述した実施の形態2に係るコンピュータシステム200では、命令読み出し信号124による制御のみでメモリ130から読み出したデータを誤り訂正部222へ送出するか、直接的にマイコンブロック110へ送出するかを選択していた。よって、デバッガソフト541からメモリ130が保持するデータを読み出すとプログラムデータ131と誤り訂正符号132とが読み出される。プログラムをデバッグしたいユーザにとって、誤り訂正符号132は不必要なデータである。一方、実施の形態5に係るコンピュータシステム500は、セレクタ121及びアドレス変換部223が、命令読み出し信号124及びDMA読み出し信号510により制御される。よって、デバッガソフト541からメモリ130が保持するデータを読み出した場合に、誤り検出及び誤り訂正後のプログラムデータ131が読み出される。
以上、本発明の実施の形態5に係るコンピュータシステム500は、デバッガソフト541からメモリ130の内容を読み出しても、通常のメモリ(ECC無しのメモリ)と同様にプログラムデータのみを読み出すことができる。また、メモリ制御装置220が誤り検出及び訂正を行うのでデバッガソフト541上で誤り検出及び誤り訂正の処理を行う必要がない。
(実施の形態6)
本発明の実施の形態6に係るメモリ制御装置は、メモリが保持するプログラムデータに誤りが検出された場合に、バスコントロールユニットを制御することで、プログラムデータを参照にいくメモリを変更する。これにより、マイコンブロックは、誤りが発生した場合に、他のメモリからプログラムデータを読み出すことができる。
図11は、本発明の実施の形態6に係るメモリ制御装置を備えるコンピュータシステムの構成を示す図である。図11に示すコンピュータシステム600は、図4に示す実施の形態2に係るコンピュータシステム200に対して、メモリ制御装置620及びマイコンブロック610の構成と、システムバス614及びプログラムROM615を備える点とが異なる。なお、図4と同様の要素には同一の符号を付しており、詳細な説明は省略する。
マイコンブロック610は、バスコントロールユニット611と、マイコンコア112と、システムバスコントローラ(System Bus Controller:SBC)612とを備える。
システムバスコントローラ612は、システムバス614を制御する。プログラムROM615は、システムバス614上に配置される。
バスコントロールユニット611は、CIバス116及びCDバス117を介して送出されるマイコンコア112からのアクセス要求をメモリ制御装置620、又はシステムバスコントローラ612に振り分ける。具体的には、バスコントロールユニット611は、CIバス116及びCDバス117からのアクセス要求のアドレス値によって、アクセス要求をメモリ制御装置620、又はシステムバスコントローラ612に振り分ける。バスコントロールユニット611は、バス制御レジスタ613を備える。バス制御レジスタ613は、バスコントロールユニット611のアクセス要求の振り分け先を決定するための情報を保持する。
メモリ制御装置620は、セレクタ121と、誤り訂正部622と、アドレス変換部223と、レジスタ設定変更部624とを備える。
誤り訂正部622は、メモリ130から読み出したプログラムデータ131及び誤り訂正符号132に基づき、メモリ130から読み出したプログラムデータ131の誤り検出及び誤り訂正を行う。さらに、誤り訂正部622は、データに誤りを検出すると誤り検出信号625をアクティブにする。
レジスタ設定変更部624は、誤り検出信号625がアクティブになった場合(誤り訂正部622が誤りを検出した場合)に、バス制御レジスタ613が保持する情報を変更する。具体的には、レジスタ設定変更部624は、バス制御レジスタ613に保持されるメモリ130のアドレスを、システムバスコントローラ612のアドレスに変更する。これにより、バスコントロールユニット611は、本来メモリ130に対して行われるCIバス116又はCDバス117からのアクセス要求をシステムバスコントローラ612に対して行う。
以上のように、本発明の実施の形態6に係るコンピュータシステム600は、誤り訂正部622がメモリ130上のプログラムデータ131の誤りを検出した場合に、バス制御レジスタ613の設定が変更される。これにより、メモリ130へのアクセスがシステムバスコントローラ612へ渡される。よって、システムバス614上にプログラムROM615を配置することで、誤りが発生したメモリを使用せずにプログラムROM615のデータを使用することでシステムの動作を継続することができる。よって、コンピュータシステム600の堅牢性を向上させることができる。
(実施の形態7)
本発明の実施の形態7に係るメモリ制御装置は、メモリが保持するプログラムデータに誤りが検出された場合に、CPUコアを制御することで、プログラムデータを参照にいくメモリを変更する。これにより、マイコンブロックは、誤りが発生した場合に、他のメモリからプログラムデータを読み出すことができる。
図12は、本発明の実施の形態7に係るメモリ制御装置を備えるコンピュータシステムの構成を示す図である。図12に示すコンピュータシステム700は、図11に示す実施の形態6に係るコンピュータシステム600に対して、マイコンブロック710のCPUコア715の構成と、メモリ制御装置620のレジスタ設定変更部724の構成とが異なる。なお、図11と同様の要素には同一の符号を付しており、詳細な説明は省略する。
マイコンブロック710は、バスコントロールユニット111と、マイコンコア712とを備える。マイコンコア712は、命令キャッシュ113と、データキャッシュ114と、CPUコア715とを備える。CPUコア715は、トラップベースレジスタ(TBR)716を備える。
トラップベースレジスタ716は、プログラムの配置場所を示す情報を保持するレジスタである。具体的には、トラップベースレジスタ716は、割り込みハンドラのアドレスを示す割り込みベクタの配置場所を示す情報を保持する。ここで、割り込みハンドラとは、CPUコア715の処理において割り込みが発生した際の、現在実行中の処理を中断して、割り込み処理を行うために分岐する特殊なプログラムである。通常時にはメモリ130上に割り込みベクタが配置されるために、トラップベースレジスタ716には、システム起動時にメモリ130上のアドレスを示す情報が設定される。
レジスタ設定変更部724は、誤り検出信号625がアクティブになった場合(誤り訂正部622が誤りを検出した場合)に、トラップベースレジスタ716の保持する情報を変更する。具体的には、レジスタ設定変更部724は、誤り検出信号625がアクティブになると、トラップベースレジスタ716の設定をシステムバス上のプログラムROM等のアドレスに変更する。
以上のように、本発明の実施の形態7に係るコンピュータシステム700は、誤り訂正部622が誤りを検出し、誤り検出割り込みが発生した場合に、トラップベースレジスタ716の値を変更する。これにより、マイコンブロック710は、誤りが発生したメモリ130を使用せずに割り込み処理を実行できる。よって、コンピュータシステム700の堅牢性を向上させることができる。
本発明は、メモリ制御装置に適用でき、特に、メモリから読み出したデータの誤り訂正が行われるDVDレコーダ等のデータ再生記録装置に適用できる。
本発明の実施の形態1に係るコンピュータシステムの構成を示す図である。 本発明の実施の形態1に係るコンピュータシステムにおけるプログラムイメージの生成方法の流れを示すフローチャートである。 本発明の実施の形態1に係るコンピュータシステムにおけるプログラムイメージの生成方法を説明するための図である。 本発明の実施の形態2に係るコンピュータシステムの構成を示す図である。 本発明の実施の形態2に係るコンピュータシステムのアドレス変換部の構成を示す図である。 メモリのメモリアドレスとアクセス要求アドレスと関係を模式的に示す図である。 メモリのメモリアドレスとアクセス要求アドレスと関係を模式的に示す図である。 本発明の実施の形態3に係るコンピュータシステムの構成を示す図である。 本発明の実施の形態4に係るコンピュータシステムの構成を示す図である。 本発明の実施の形態5に係るコンピュータシステムの構成を示す図である。 本発明の実施の形態6に係るコンピュータシステムの構成を示す図である。 本発明の実施の形態7に係るコンピュータシステムの構成を示す図である。 従来のコンピュータシステムの構成を示す図である。 従来のコンピュータシステムの構成を示す図である。
符号の説明
100、200、300、400、500、600、700、1000、1100 コンピュータシステム
110、410、610、710、1110 マイコンブロック
111、611 バスコントロールユニット
112、712 マイコンコア
113 命令キャッシュ
114 データキャッシュ
115、715 CPUコア
116 CIバス
117 CDバス
120、220、320、620、1120 メモリ制御装置
121 セレクタ
122、222、622 誤り訂正部
123 命令置き換え部
124 命令読み出し信号
130、1130 メモリ
131 プログラムデータ
132、1132 誤り訂正符号
133 プログラム以外のデータ
134、234 プログラムイメージ
140 オブジェクト
141 データ領域
142 jmp命令
143 ラベル
223 アドレス変換部
224 アクセス要求アドレス
225 メモリアドレス
226 メモリアドレス算出部
321 誤り訂正符号生成部
322 第2セレクタ
323 アドレス記憶部
324 領域判定部
325 領域判定信号
331 境界アドレス
411、511 DMA制御装置
440 PC
441、541 デバッガソフト
510 DMA読み出し信号
612 システムバスコントローラ
613 バス制御レジスタ
614 システムバス
615 プログラムROM
624、724 レジスタ設定変更部
625 誤り検出信号
716 トラップベースレジスタ
1001 メモリモジュール
1002 チップセット
1003 CPU
1004 メモリチップ
1005 データ用ビット線
1006 ECC用ビット線
1131 データ

Claims (15)

  1. 誤り訂正符号を含むデータをメモリから読み出すメモリ制御装置であって、
    前記誤り訂正符号に基づき、前記データの誤り検出及び誤り訂正を行い、誤り検出及び誤り訂正を行ったデータを外部に送出する誤り訂正手段と、
    前記メモリから読み出した前記データを前記誤り訂正手段へ送出するか、前記メモリから読み出した前記データを外部へ送出するかを選択するセレクタとを備える
    ことを特徴とするメモリ制御装置。
  2. 前記メモリ制御装置は、CPUを備えるマイコンブロックからの命令により、誤り訂正符号を含むデータをメモリから読み出すメモリ制御装置であり、
    前記メモリ制御装置は、さらに、
    前記誤り訂正符号を前記CPUの動作には関係のない命令に置き換えて外部へ送出する命令置き換え手段を備える
    ことを特徴とする請求項1記載のメモリ制御装置。
  3. 前記メモリ制御装置は、さらに、
    外部から入力されたアドレスを、前記誤り訂正符号が格納される領域を含む前記メモリ上のアドレスに変換するアドレス変換手段を備える
    ことを特徴とする請求項1記載のメモリ制御装置。
  4. 前記メモリ制御装置は、CPUを備えるマイコンブロックからの命令により、誤り訂正符号を含むデータをメモリから読み出すメモリ制御装置であり、
    前記セレクタは、前記マイコンブロックからのプログラムデータの読み出しの際に第1の論理となる命令読み出し信号が前記第1の論理である場合に、前記メモリから読み出した前記データを前記誤り訂正手段へ送出し、前記命令読み出し信号が前記第1の論理でない場合に、前記メモリから読み出した前記データを前記マイコンブロックへ送出し、
    前記アドレス変換手段は前記命令読み出し信号が前記第1の論理である場合に、前記マイコンブロックから入力されたアドレスを、前記誤り訂正符号が格納される領域を含む前記メモリ上のアドレスに変換する
    ことを特徴とする請求項3記載のメモリ制御装置。
  5. 前記メモリ制御装置は、さらに、
    外部から入力されたデータに対し誤り訂正符号を生成する誤り訂正符号生成手段と、
    外部から入力されたアドレスが所定のアドレス範囲に含まれるか否かを判定するアドレス判定手段と、
    前記アドレス判定手段により外部から入力されたアドレスが前記所定のアドレス範囲に含まれると判定された場合に、外部から入力されたデータを前記誤り訂正符号生成手段に送出し、前記アドレス判定手段により外部から入力されたアドレスが前記所定のアドレス範囲に含まれないと判定された場合に、前記データを前記メモリに送出する第2セレクタとを備え、
    前記セレクタは、前記アドレス判定手段により外部から入力されたアドレスが前記所定のアドレス範囲に含まれると判定された場合に、前記メモリから読み出した前記データを前記誤り訂正手段へ送出し、前記アドレス判定手段により外部から入力されたアドレスが前記所定のアドレス範囲に含まれないと判定された場合に、前記メモリから読み出した前記データを外部へ送出し、
    前記アドレス変換手段は、前記アドレス判定手段により外部から入力されたアドレスが前記所定のアドレス範囲に含まれると判定された場合に、外部から入力されたアドレスを、前記誤り訂正符号が格納される領域を含む前記メモリ上のアドレスに変換する
    ことを特徴とする請求項3記載のメモリ制御装置。
  6. 前記メモリ制御装置は、さらに、
    前記所定のアドレス範囲を決定するための値を固定値として保持するアドレス記憶手段を備え、
    前記アドレス判定手段は、前記アドレス記憶手段が保持する前記所定のアドレス範囲を決定するための値に基づき、外部から入力されたアドレスが前記所定のアドレス範囲に含まれるか否かを判定する
    ことを特徴とする請求項5記載のメモリ制御装置。
  7. 前記メモリ制御装置は、さらに、
    外部から入力された前記所定のアドレス範囲を決定するための値を保持するアドレス記憶手段を備え、
    前記アドレス判定手段は、前記アドレス記憶手段が保持する前記所定のアドレス範囲を決定するための値に基づき、外部から入力されたアドレスが前記所定のアドレス範囲に含まれるか否かを判定する
    ことを特徴とする請求項5記載のメモリ制御装置。
  8. 前記メモリ制御装置は、少なくともDMA(Direct Memory Access)制御装置からの命令により、誤り訂正符号を含むデータをメモリから読み出すメモリ制御装置であり、
    前記セレクタは、前記DMA制御装置からの読み出し命令の場合に、前記メモリから読み出した前記データ及び前記誤り訂正符号を前記DMA制御装置に送出する
    ことを特徴とする請求項1記載のメモリ制御装置。
  9. 前記メモリ制御装置は、CPUを備えるマイコンブロック及びDMA制御装置からの命令により、誤り訂正符号を含むデータをメモリから読み出すメモリ制御装置であり、
    前記セレクタは、前記マイコンブロックからのプログラムデータの読み出しの際に第1の論理となる命令読み出し信号が前記第1の論理である場合、又は前記DMA制御装置からのデータの読み出しの際に第2の論理となるDMA読み出し信号が前記第2の論理である場合に、前記メモリから読み出した前記データを前記誤り訂正手段へ送出し、前記命令読み出し信号が前記第1の論理でなく、かつ前記DMA読み出し信号が前記第2の論理でない場合に、前記メモリから読み出した前記データを前記マイコンブロック又は前記DMA制御装置へ送出する
    ことを特徴とする請求項1記載のメモリ制御装置。
  10. 前記メモリ制御装置は、CPUを備えるマイコンブロックからの命令により、誤り訂正符号を含むデータをメモリから読み出すメモリ制御装置であり、
    前記マイコンブロックは、前記CPUからの命令を前記メモリ制御装置又は他の装置に振り分けるバスコントロールユニットと、
    前記バスコントロールユニットの振り分け先を決定するための情報を保持するレジスタとを備え、
    前記メモリ制御装置は、さらに、
    前記誤り訂正手段が誤りを検出した場合に、前記レジスタが保持する情報を変更するレジスタ設定変更手段を備える
    ことを特徴とする請求項1記載のメモリ制御装置。
  11. 前記メモリ制御装置は、CPUを備えるマイコンブロックからの命令により、誤り訂正符号を含むデータをメモリから読み出すメモリ制御装置であり、
    前記CPUは、プログラムの配置場所を示す情報を保持するレジスタを備え、
    前記メモリ制御装置は、さらに、
    前記誤り訂正手段が誤りを検出した場合に、前記レジスタが保持する情報を変更するレジスタ設定変更手段を備える
    ことを特徴とする請求項1記載のメモリ制御装置。
  12. 請求項1記載のメモリ制御装置と、
    プログラムソースをコンパイルしたオブジェクトに所定のサイズのデータ領域を挿入するデータ領域挿入手段と、
    前記データ領域挿入手段が挿入した前記データ領域を含めて前記オブジェクトにおけるオペランドのアドレス解決を行うアドレス解決手段と、
    前記オブジェクトの誤り訂正符号を算出する誤り訂正符号算出手段と、
    前記誤り訂正符号算出手段により算出された誤り訂正符号を、前記データ領域に書き込む誤り訂正符号書き込み手段とを備え、
    前記メモリ制御装置は、前記誤り訂正符号書き込み手段により、誤り訂正符号を前記データ領域に書き込まれたオブジェクトを前記メモリに書き込む
    ことを特徴とするコンピュータシステム。
  13. メモリと、
    前記メモリにデータの書き込み及び読み出しを行う請求項1〜11のいずれか1項に記載のメモリ制御装置と、
    前記メモリ制御装置に前記メモリへのデータの書き込み及び読み出し命令を送るマイコンブロックとを備える
    ことを特徴とするコンピュータシステム。
  14. 請求項12又は13記載のコンピュータシステムを備える
    ことを特徴とするデータ再生記録装置。
  15. 請求項1記載のメモリ制御装置により前記メモリに書き込まれるプログラムデータの生成方法であって、
    プログラムソースをコンパイルしたオブジェクトに所定のサイズのデータ領域を挿入するデータ領域挿入ステップと、
    前記データ領域挿入ステップにおいて挿入された前記データ領域を含めて前記オブジェクトにおけるオペランドのアドレス解決を行うアドレス解決ステップと、
    前記オブジェクトの誤り訂正符号を算出する誤り訂正符号算出ステップと、
    前記誤り訂正符号算出ステップにおいて算出された誤り訂正符号を、前記データ領域に書き込む誤り訂正符号書き込みステップとを含む
    ことを特徴とするプログラムデータの生成方法。
JP2006322471A 2006-11-29 2006-11-29 メモリ制御装置、コンピュータシステム及びデータ再生記録装置 Pending JP2008139908A (ja)

Priority Applications (3)

Application Number Priority Date Filing Date Title
JP2006322471A JP2008139908A (ja) 2006-11-29 2006-11-29 メモリ制御装置、コンピュータシステム及びデータ再生記録装置
US11/946,148 US20080126905A1 (en) 2006-11-29 2007-11-28 Memory control device, computer system and data reproducing and recording device
CNA2007101966029A CN101221520A (zh) 2006-11-29 2007-11-29 存储器控制装置、计算机系统及数据再现记录装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2006322471A JP2008139908A (ja) 2006-11-29 2006-11-29 メモリ制御装置、コンピュータシステム及びデータ再生記録装置

Publications (1)

Publication Number Publication Date
JP2008139908A true JP2008139908A (ja) 2008-06-19

Family

ID=39465263

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2006322471A Pending JP2008139908A (ja) 2006-11-29 2006-11-29 メモリ制御装置、コンピュータシステム及びデータ再生記録装置

Country Status (3)

Country Link
US (1) US20080126905A1 (ja)
JP (1) JP2008139908A (ja)
CN (1) CN101221520A (ja)

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8438457B2 (en) 2009-09-11 2013-05-07 Sony Corporation Nonvolatile memory apparatus, memory controller, and memory system
JP2017033500A (ja) * 2015-08-06 2017-02-09 株式会社東芝 記憶装置およびデータ退避方法
US9684466B2 (en) 2014-03-05 2017-06-20 Renesas Electronics Corporation Semiconductor device
WO2024069880A1 (ja) * 2022-09-29 2024-04-04 ファナック株式会社 携帯型操作装置、機械システムおよび携帯型操作装置のメモリ制御プログラム

Families Citing this family (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP2096546B1 (en) * 2006-12-15 2018-08-08 Panasonic Corporation Write once recording device
JP4940033B2 (ja) * 2007-06-29 2012-05-30 パナソニック株式会社 計算機システム、計算機システムの制御方法および携帯電話機
JP2010282369A (ja) * 2009-06-03 2010-12-16 Toshiba Corp メモリシステム
WO2014084855A1 (en) * 2012-11-30 2014-06-05 Hewlett-Packard Development Company, L.P. Memory controllers to form symbols based on bursts
US9135100B2 (en) * 2013-03-14 2015-09-15 Micron Technology, Inc. Cooperative memory error detection and repair
JP2016042218A (ja) * 2014-08-13 2016-03-31 富士通株式会社 エラー検出装置及びエラー検出方法
JP6517549B2 (ja) * 2015-03-13 2019-05-22 東芝メモリ株式会社 メモリコントローラ、記憶装置、データ転送システム、データ転送方法、及びデータ転送プログラム
CN105607974A (zh) * 2015-12-18 2016-05-25 西安电子科技大学 高可靠性多核处理系统
US10067706B2 (en) * 2016-03-31 2018-09-04 Qualcomm Incorporated Providing memory bandwidth compression using compression indicator (CI) hint directories in a central processing unit (CPU)-based system

Family Cites Families (16)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4866717A (en) * 1986-07-29 1989-09-12 Matsushita Electric Industrial Co., Ltd. Code error detecting and correcting apparatus
JPH09146849A (ja) * 1995-11-21 1997-06-06 Nec Corp 情報処理システム及びそのメモリ再構成方法
JPH10198608A (ja) * 1997-01-08 1998-07-31 Mitsubishi Electric Corp メモリカード
US6353910B1 (en) * 1999-04-09 2002-03-05 International Business Machines Corporation Method and apparatus for implementing error correction coding (ECC) in a dynamic random access memory utilizing vertical ECC storage
JP4834362B2 (ja) * 2005-09-16 2011-12-14 パナソニック株式会社 メモリ制御装置。
US7079458B2 (en) * 2000-06-08 2006-07-18 Matsushita Electric Industrial Co., Ltd. Buffer memory address translation device
JP4153802B2 (ja) * 2003-02-07 2008-09-24 株式会社ルネサステクノロジ 記憶装置
JP3984209B2 (ja) * 2003-07-31 2007-10-03 株式会社東芝 半導体記憶装置
TWI248617B (en) * 2004-08-13 2006-02-01 Prolific Technology Inc Data storage device
WO2006042262A2 (en) * 2004-10-11 2006-04-20 Texas Instruments Incorporated Detecting a security violation using error correction code
JP2006209900A (ja) * 2005-01-31 2006-08-10 Matsushita Electric Ind Co Ltd メモリ回路
US7424648B2 (en) * 2005-03-10 2008-09-09 Matsushita Electric Industrial Co., Ltd. Nonvolatile memory system, nonvolatile memory device, data read method, and data read program
US7426672B2 (en) * 2005-04-28 2008-09-16 International Business Machines Corporation Method for implementing processor bus speculative data completion
JP4762752B2 (ja) * 2006-02-16 2011-08-31 富士通セミコンダクター株式会社 半導体メモリ
JP2007241612A (ja) * 2006-03-08 2007-09-20 Matsushita Electric Ind Co Ltd マルチマスタシステム
US7962700B2 (en) * 2006-09-06 2011-06-14 International Business Machines Corporation Systems and methods for reducing latency for accessing compressed memory using stratified compressed memory architectures and organization

Cited By (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8438457B2 (en) 2009-09-11 2013-05-07 Sony Corporation Nonvolatile memory apparatus, memory controller, and memory system
US9684466B2 (en) 2014-03-05 2017-06-20 Renesas Electronics Corporation Semiconductor device
US9990154B2 (en) 2014-03-05 2018-06-05 Renesas Electronics Corporation Semiconductor device
US10558379B2 (en) 2014-03-05 2020-02-11 Renesas Electronics Corporation Semiconductor device
JP2017033500A (ja) * 2015-08-06 2017-02-09 株式会社東芝 記憶装置およびデータ退避方法
US10296461B2 (en) 2015-08-06 2019-05-21 Toshiba Memory Corporation Storage device and data saving method
WO2024069880A1 (ja) * 2022-09-29 2024-04-04 ファナック株式会社 携帯型操作装置、機械システムおよび携帯型操作装置のメモリ制御プログラム

Also Published As

Publication number Publication date
CN101221520A (zh) 2008-07-16
US20080126905A1 (en) 2008-05-29

Similar Documents

Publication Publication Date Title
JP2008139908A (ja) メモリ制御装置、コンピュータシステム及びデータ再生記録装置
KR101374455B1 (ko) 메모리 에러와 리던던시
US7404137B2 (en) Method and related apparatus for performing error checking-correcting
JP5010271B2 (ja) エラー訂正コード生成方法、およびメモリ制御装置
JP5202130B2 (ja) キャッシュメモリ、コンピュータシステム、及びメモリアクセス方法
US7752527B2 (en) Microcontroller and RAM
JP2009301194A (ja) 半導体記憶装置の制御システム
JP2009181425A (ja) メモリモジュール
JP2008262325A (ja) メモリ制御装置、メモリ制御方法、情報処理システム、そのプログラム及び記憶媒体
JP2009258985A (ja) 情報処理装置およびエラー訂正方法
US20100070821A1 (en) Method and apparatus for detecting free page and a method and apparatus for decoding error correction code using the method and apparatus for detecting free page
JP2007149222A (ja) 半導体メモリおよびメモリシステム
JP2011257966A (ja) キャッシュ装置及び情報処理装置
JP2010181990A (ja) データプロセッサ
US20100146224A1 (en) Request processing device, request processing system, and access testing method
US9043655B2 (en) Apparatus and control method
JP2006331391A (ja) データ処理装置及びデータ処理方法
TWI482014B (zh) 具有動態錯誤偵測及更正的記憶體
JP2011048742A (ja) ミラーリング制御装置、ミラーリング制御回路、ミラーリング制御方法およびそのプログラム
JP2007257547A (ja) メモリシステム及びバススプリッタ
JP2008250671A (ja) 情報処理装置および情報処理方法
JP2008234358A (ja) 記憶装置、情報処理装置及び不正書込検出方法
US11600352B2 (en) Storage device
KR20180005584A (ko) 비휘발성 메모리 시스템 및 에러 판정 방법
JP2009116978A (ja) 半導体記憶装置