(57)【要約】【課題】良質な記憶装置、記憶装置を搭載した電子装置、記憶装置を制御する半導体装置、記憶装置を搭載した電子システム、及び電子装置の制御方法を提供すること【解決手段】記憶装置１４０は、データ及び誤り訂正符号を保持する。ＬＵＴ７２は、メモリアドレスと、誤り訂正レベルと、の関係を格納する。エラー検出レベル処理部７０は、記憶装置１４０へのアクセス命令に含まれるアクセスアドレスと、ＬＵＴ７２と、に基づき、当該アクセスアドレスに対応する誤り訂正レベルを算出する。書き込み制御部６０は、算出した誤り訂正レベルを基に誤り訂正符号を算出して、データと共に記憶装置１４０に書き込む。読み出し制御部５０は、算出した誤り訂正レベルを基に誤り訂正符号を用いた誤り訂正処理を行い、誤り訂正後のデータを供給する。【選択図】図３
2013242694.tif 000002
【特許請求の範囲】
【請求項１】
以下を含む電子装置：
（ａ）記憶装置と；
ここで前記記憶装置は以下を含む：
(i)データ及び当該データの誤り訂正符号を記憶する第１領域と；
(ii)前記第１領域を管理する管理データを演算装置の制御単位毎に記憶する第２領域
（ｂ）前記記憶装置を制御する半導体装置、
ここで前記半導体装置は以下を含む：
(i)メモリアドレスと誤り訂正レベルとの関係を格納したルックアップテーブルを有し、メモリへのアクセス命令に含まれるアクセスアドレスと前記ルックアップテーブルとに基づき、当該アクセスアドレスに対応する誤り訂正レベルを算出するエラー検出レベル処理部と；
(ii)前記エラー検出レベル処理部が算出した前記誤り訂正レベルに基づき、書き込みデータの単位サイズ毎に誤り訂正符号を付与するか否か、及び前記誤り訂正符号を付与する場合の前記単位サイズを決定し、前記書込みデータ及び当該データに対応する誤り訂正符号を前記第１領域内の前記管理データに従って前記第２領域に書き込む書き込み制御部と；
(iii)前記第１領域内の前記管理データに基づき、前記第２領域からデータ及び誤り訂正符号を取得し、前記エラー検出レベル処理部が算出した前記誤り訂正レベルに基づき、取得したデータの誤り訂正の実施する読み出し制御部。
【請求項２】
前記エラー検出レベル処理部は、
前記アクセス命令に含まれるアクセスアドレスを所定のハッシュ関数に代入することにより前記ルックアップテーブルの探索位置を算出し、当該探索位置のデータ列に含まれるメモリアドレスと、前記ハッシュ関数に代入したアクセスアドレスとが一致するヒット状態の場合に当該データ列にある誤り訂正レベルを読み出すハッシュ処理部を備える、請求項１に記載の電子装置。
【請求項３】
前記ルックアップテーブルは、前記誤り訂正レベルとして誤り訂正を行わないことを示す訂正レベルを示す値を保持しない、請求項１に記載の電子装置。
【請求項４】
前記ハッシュ処理部は、前記ハッシュ関数を用いて前記ルックアップテーブルの所定回数の探索を行ってヒット状態に至らなかった場合、前記誤り訂正レベルとして誤り訂正を行わないことを示す訂正レベルが設定されていたとみなす、請求項３に記載の電子装置。
【請求項５】
前記記憶装置は、
前記第１領域において、データを記憶するデータ記憶領域と前記誤り訂正符号を記憶する符号記憶領域を有し、
前記データ記憶領域と、前記符号記憶領域と、が所定のビット比率で対応付けられている、請求項１に記載の電子装置。
【請求項６】
前記ルックアップテーブルは、テーブル内の各データ列の有効性を示すバリッドフラグの情報を更に有する、請求項１に記載の電子装置。
【請求項７】
前記エラー検出レベル処理部は、前記ハッシュ関数を用いた演算として、オープンアドレス法ダブルハッシュ形式の演算を行う、請求項２に記載の電子装置。
【請求項８】
データ及び当該データの誤り訂正符号を記憶する第１領域と、前記第１領域を管理する管理データを演算装置の制御単位毎に記憶する第２領域とを有する記憶装置を内蔵する電子装置の制御方法であって、
(a)メモリアドレスと誤り訂正レベルとの関係を格納したルックアップテーブルを有し、メモリへのアクセス命令に含まれるアクセスアドレスと前記ルックアップテーブルとに基づき、当該アクセスアドレスに対応する誤り訂正レベルを算出し、
(b)前記算出した前記誤り訂正レベルに基づき、書き込みデータの単位サイズ毎に誤り訂正符号を付与するか否か、及び前記誤り訂正符号を付与する場合の前記単位サイズを決定し、前記書込みデータ及び当該データに対応する誤り訂正符号を前記第１領域内の前記管理データに従って前記第２領域に書き込み、
(c)前記第１領域内の前記管理データに基づき、前記第２領域からデータ及び誤り訂正符号を取得し、前記エラー検出レベル処理部が算出した前記誤り訂正レベルに基づき、取得したデータの誤り訂正の実施する、
電子装置の制御方法。
【請求項９】
前記アクセス命令に含まれるアクセスアドレスを所定のハッシュ関数に代入することにより前記ルックアップテーブルの探索位置を算出し、当該探索位置のデータ列に含まれるメモリアドレスと、前記ハッシュ関数に代入したアクセスアドレスとが一致するヒット状態の場合に当該データ列にある誤り訂正レベルを読み出す、請求項８に記載の電子装置の制御方法。
【請求項１０】
前記ルックアップテーブルは、前記誤り訂正レベルとして誤り訂正を行わないことを示す訂正レベルを示す値を保持しない、請求項８に記載の電子装置の制御方法。
【請求項１１】
前記ハッシュ関数を用いて前記ルックアップテーブルの所定回数の探索を行ってヒット状態に至らなかった場合、前記誤り訂正レベルとして誤り訂正を行わないことを示す訂正レベルが設定されていたとみなす、請求項１０に記載の電子装置の制御方法。
【請求項１２】
前記記憶装置は、
前記第１領域において、データを記憶するデータ記憶領域と前記誤り訂正符号を記憶する符号記憶領域を有し、
前記データ記憶領域と、前記符号記憶領域とが所定のビット比率で対応付けられている、請求項８に記載の電子装置の制御方法。
【請求項１３】
前記ルックアップテーブルは、テーブル内の各データ列の有効性を示すバリッドフラグの情報を更に有する、請求項８に記載の電子装置の制御方法。
【請求項１４】
前記ハッシュ関数を用いた演算として、オープンアドレス法ダブルハッシュ形式の演算を行う、請求項９に記載の電子装置の制御方法。
【請求項１５】
データ及び当該データの誤り訂正符号を記憶する第１領域と、前記第１領域を管理する管理データを演算装置の制御単位毎に記憶する第２領域を含む記憶装置を制御する半導体装置であって、
（ａ）メモリアドレスと誤り訂正レベルとの関係を格納したルックアップテーブルを有し、メモリへのアクセス命令に含まれるアクセスアドレスと前記ルックアップテーブルとに基づき、当該アクセスアドレスに対応する誤り訂正レベルを算出するエラー検出レベル処理部と；
（ｂ）前記エラー検出レベル処理部が算出した前記誤り訂正レベルに基づき、書き込みデータの単位サイズ毎に誤り訂正符号を付与するか否か、及び前記誤り訂正符号を付与する場合の前記単位サイズを決定し、前記書込みデータ及び当該データに対応する誤り訂正符号を前記第１領域内の前記管理データに従って前記第２領域に書き込む書き込み制御部と；
（ｃ）前記第１領域内の前記管理データに基づき、前記第２領域からデータ及び誤り訂正符号を取得し、前記エラー検出レベル処理部が算出した前記誤り訂正レベルに基づき、取得したデータの誤り訂正の実施する読み出し制御部
を含む半導体装置。
【請求項１６】
以下を含む電子システム：
(ａ)撮像装置と；
(ｂ)前記撮像装置によって取得された画像データを記憶する記憶装置と；
ここで前記記憶装置は以下を含む：
(i)データ及び当該データの誤り訂正符号を記憶する第１領域と；
(ii)前記第１領域を管理する管理データを演算装置の制御単位毎に記憶する第２領域；
(ｃ)前記記憶装置を制御する半導体装置と；
ここで前記半導体装置は以下を含む：
(i)メモリアドレスと誤り訂正レベルとの関係を格納したルックアップテーブルを有し、メモリへのアクセス命令に含まれるアクセスアドレスと前記ルックアップテーブルとに基づき、当該アクセスアドレスに対応する誤り訂正レベルを算出するエラー検出レベル処理部と；
(ii)前記エラー検出レベル処理部が算出した前記誤り訂正レベルに基づき、書き込みデータの単位サイズ毎に誤り訂正符号を付与するか否か、及び前記誤り訂正符号を付与する場合の前記単位サイズを決定し、前記書込みデータ及び当該データに対応する誤り訂正符号を前記第１領域内の前記管理データに従って前記第２領域に書き込む書き込み制御部と；
(iii)前記第１領域内の前記管理データに基づき、前記第２領域からデータ及び誤り訂正符号を取得し、前記エラー検出レベル処理部が算出した前記誤り訂正レベルに基づき、取得したデータの誤り訂正の実施する読み出し制御部。
【請求項１７】
前記電子システムは車載用に使用され、
さらに
(ｄ)エンジン制御装置
を含み、
前記エンジン制御装置は、前記記憶装置中のデータを基にエンジンを制御する請求項１６記載の電子システム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は半導体装置、電子装置、電子システム及び電子装置の制御方法に関し、例えば誤り訂正符号を付与可能なメモリ装置及びメモリ制御方法に好適に利用できるものである。
【背景技術】
【０００２】
近年、車載システム等で用いられる半導体装置は、高品質かつ高信頼であることが求められている。詳細には車載システム等で用いられる半導体装置に対して、シングルｐｐｍ（Parts-Per-Million）以上の品質が求められている。半導体装置内におけるデータ転送についても求められる品質は同様である。そのため、当該半導体装置内では、ＲＡＭ（Random Access Memory）をはじめとするメモリへのアクセスにおいて、ビット反転によるエラーの検出及び訂正等の機能が実装されている。
【０００３】
特許文献１及び特許文献２には、不揮発性メモリの管理装置、及び誤り訂正機能を持つデータ転送システムに関する技術が開示されている。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開２００９−２５９１１３号公報
【特許文献２】特開平１０−２８５１４７号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
本願の発明者等は、例えば、車載システム等で用いられる半導体装置及びそれらを制御するコントローラの開発を行う際にさまざまな課題を見出した。本願で開示される各実施の形態は、例えば車載システム等に好適な電子装置及び半導体装置を提供する。
【０００６】
その他の課題と新規な特徴は、本明細書の記述および添付図面から明らかになるであろう。
【課題を解決するための手段】
【０００７】
本明細書に開示される一つの態様は電子装置を含み、当該電子装置はメモリ（記憶装置）及びメモリコントローラを有する。
【発明の効果】
【０００８】
前記一実施の態様によれば、良質な半導体装置、及び電子装置、電子装置を搭載した各種電子システム、及び電子装置の制御方法を提供することができる。
【図面の簡単な説明】
【０００９】
【図１】実施の形態１にかかる電子装置１０を搭載した車載システムの構成を示すブロック図である。
【図２】実施の形態１にかかる電子装置１０の構成を示すブロック図である。
【図３】実施の形態１にかかるメモリコントローラ３０の構成を示すブロック図である。
【図４】実施の形態１にかかる読み出し制御部５０の構成を示すブロック図である。
【図５】実施の形態１にかかる読み出し制御部５０の構成を示すブロック図である。
【図６】実施の形態１にかかる書き込み制御部６０の構成を示すブロック図である。
【図７】実施の形態１にかかる書き込み制御部６０の構成を示すブロック図である。
【図８】実施の形態１にかかる記憶装置１４０の管理データ領域の内部構成を示す概念図である。
【図９】実施の形態１にかかる記憶装置１４０のデータ保持領域の内部構成を示す概念図である。
【図１０】実施の形態１にかかるルックアップテーブル７２の内部構成を示す概念図である。
【図１１】実施の形態１にかかるリクエストアドレスと、ルックアップテーブル７２と、の関係を示す概念図である。
【図１２】実施の形態１にかかるハッシュ処理部７１によるルックアップテーブル７２の探索処理を示す概念図である。
【発明を実施するための形態】
【００１０】
＜実施の形態１＞
以下、図面を参照して本発明の実施の形態について説明する。はじめに、本実施の形態にかかる電子装置が搭載され得る電子システムの一例である車載システムの一態様について説明する。
【００１１】
＜車載システム１００（電子システム）の構成＞
図１は、本実施の形態にかかる電子装置１０を搭載した車載システムの全体構成を示すブロック図である。車載システム１００は、前方カメラ１１０と、後方カメラ１２０と、電子装置１０と、エンジンシステム制御マイコン１５０（エンジン制御装置）とを備える。車載システム１００は、一般乗用車、業務用乗用車（トラック等）、自動二輪車（いわゆるオートバイ等）などに搭載され得る情報処理システムである。当該車載システム１００は、車両のダッシュボード等を制御するシステムの総称である。
【００１２】
前方カメラ１１０は、車載システム１００を搭載する車両の前方を撮像するカメラ(撮像装置)である。前方カメラ１１０は、後述するイメージキャプチャ部１３３からの指示に応じて車両の前方方向を撮像する。撮像対象として、図示するように、歩行者、信号、前方車両、標識等が挙げられる。前方カメラ１１０は、撮像した画像（静止画、動画を含む）をイメージキャプチャ部１３３に供給する。
【００１３】
後方カメラ１２０は、車載システム１００を搭載する車両の後方を撮像するカメラ(撮像装置)である。後方カメラ１２０は、後述するイメージキャプチャ部１３３からの指示に応じて車両の後方方向を撮像する。撮像対象として、図示するように、歩行者、信号、後方車両、標識等が挙げられる。後方カメラ１２０は、撮像した画像（静止画、動画を含む）をイメージキャプチャ部１３３に供給する。
【００１４】
半導体装置１３０は、車載システム１００の各アプリケーションを動作させるための各種機能を有するアプリケーションＳｏＣ（System-on-a-chip）である。半導体装置１３０は、は、画像処理エンジン１３１と、ＣＰＵ（Central Processing Unit）１３２と、イメージキャプチャ部１３３とを有する。半導体装置１３０は、記憶装置１４０に対して各種データを書き込む、または記憶装置１４０から各種データを読み出すことにより車載システム１００の制御を行う。
【００１５】
画像処理エンジン１３１は、イメージキャプチャ部１３３が取得した画像を用いた各種画像処理を行う処理部である。画像処理エンジン１３１は、記憶装置１４０から画像データ、及び画像処理プログラムを適宜読み出し、読み出した画像データを対象とした各種の画像処理を行う。画像処理エンジン１３１は、処理結果のデータを記憶装置１４０に適宜書き込む。ここで、画像処理エンジン１３１の処理の一部（または全部）は、コンピュータにプログラムを実行させるソフトウェアとして実現しても良いことは勿論である。
【００１６】
ＣＰＵ１３２は、任意のプログラムに基づいて、この車載システム１００内の各種処理を実行する中央演算装置である。ＣＰＵ１３２は、内部に高速アクセスが可能な一時的な情報記憶手段であるＬ１キャッシュを有する。ＣＰＵ１３２は、記憶装置１４０から画像処理プログラム、ＯＳ（Operating System）プログラム（図示せず）を適宜読み出して実行する。また、ＣＰＵ１３２は、任意のデータを記憶装置１４０に書き込む。
【００１７】
イメージキャプチャ部１３３は、他の処理部（画像処理エンジン１３１、ＣＰＵ１３２）からの制御に応じて、前方カメラ１１０及び後方カメラ１２０の撮像処理の制御を行う。イメージキャプチャ部１３３は、前方カメラ１１０及び後方カメラ１２０の撮像した画像データを記憶装置１４０に書き込む。
【００１８】
記憶装置１４０は、各種データを記憶するメモリ装置である。記憶装置１４０は、例えばＤＲＡＭ等のメモリである。記憶装置１４０の詳細な構成は、図９等を参照して後述する。記憶装置１４０は、図示するように、処理データ１４１、画像処理プログラム１４２、画像データ１４３、ＯＳプログラム（図示せず）等の様々なデータを記憶する。ここで処理データ１４１には、エンジン制御にかかる各種の情報（エンジン回転数等）が含まれる。これらのデータは、それぞれ性質、すなわち重要度が異なる。ここで性質（重要度）とは、読み出しまたは書き込みを行った場合にデータ内の誤りをどの程度許容するかの指標を指す。換言すると、データの性質に応じて保護レベル、すなわち誤り訂正を行う精度が異なる。例えば、処理データ１４１や画像処理プログラム１４２は保護レベルが高い、すなわちエラー訂正符号（ＥＣＣ、Error Correcting Code）を付与するデータ単位が小さい（たとえば１６ビット毎にＥＣＣを付与する。詳細は後述する。）。一方、画像データ１４３は保護レベルが低く、エラー訂正符号を付与する必要が無い（または大きなデータ単位に対してエラー訂正符号を付与すればよい）。
【００１９】
エンジンシステム制御マイコン１５０（エンジン制御装置）は、主に車両のエンジンを制御するためのマイコン（マイクロコンピュータ）である。エンジンシステム制御マイコン１５０は、内部にＥＣＵ（Engine Control Unit）１５１を備える。
【００２０】
ＥＣＵ１５１は、車両のエンジンの制御を行う処理部である。詳細には、ＥＣＵ１５１は、加速や減速及びブレーキ等に関するエンジン制御を行う。さらに、ＥＣＵ１５１は、いわゆるステアリング制御を行っても良い。ＥＣＵ１５１は、これらの制御の際に記憶装置１４０内に記憶された処理データ１４１をアプリケーションＳｏＣ１３０を介して適宜読み出す。そして、ＥＣＵ１５１は、読み出した処理データ１４１の値に応じて制御を行う。ＥＣＵ１５１は、例えば位置情報等を読み出し、当該位置情報を用いてエンジン制御を行う。
【００２１】
車両内ネットワーク１６０は、アプリケーションＳｏＣ１３０と、エンジンシステム制御マイコン１５０と、の間の情報伝達を行うためのネットワークである。車両内ネットワーク１６０は、例えばＣＡＮ（Controller Area Network）、ＦｌｅｘＲａｙといった技術により実現される。
【００２２】
＜電子装置１０の構成＞
次に、本実施の形態にかかる電子装置１０について説明する。
図２は、実施の形態１にかかる電子装置１０を示すブロック図である。電子装置１０は半導体装置１３０記憶装置１４０を含んでいる。特に限定されるわけではないが、半導体装置１３０と記憶装置１４０は、それぞれ第1の半導体チップおよび第２の半導体チップ内に形成され、同一の配線基板上に実装されている。また、第1の半導体チップおよび第２の半導体チップは同一のパッケージ内に配置されていてもよい。
【００２３】
ＣＰＵ１３２は、電子装置１０内の記憶装置１４０から必要なデータやプログラムを読み出して処理を行う中央演算装置である。ＣＰＵ１３２は、記憶装置１４０の読み出しを行う場合、読み出しアドレスを含む読み出しリクエストを後述の読み出し制御部５０に発行する。さらに、ＣＰＵ１３２は、演算結果データを電子装置１０内の記憶装置１４０に書き込む。ＣＰＵ１３２は、記憶装置１４０に対する書き込みを行う場合、書き込みアドレス及び書き込みデータを含む書き込みリクエストを後述の書き込み制御部６０に発行する。記憶装置１４０からのデータ読み出し、及び記憶装置１４０へのデータ書き込みの詳細は適宜後述する。
【００２４】
システムバス９０は、ＣＰＵ１３２と、メモリコントローラ３０との間のデータ伝達を行うための情報伝達経路である。またシステムバス９０は、車内ネットワークを介して入力された各種データをメモリコントローラ３０やＣＰＵ１３２等に転送する。
【００２５】
記憶装置１４０は、ＣＰＵ１３２により利用されるプログラムやデータを記憶する記憶装置である。記憶装置１４０は、上述の車載システム１００の電源が遮断された場合に記憶したデータがクリアされる揮発性メモリであり、例えばＤＲＡＭ（Dynamic Random Access Memory）である。本実施の形態にかかる記憶装置１４０のデータの記憶方法等は、図８及び図９を参照して後述する。
【００２６】
＜メモリコントローラ３０の構成＞
図３を参照してメモリコントローラ３０の構成を説明する。なお、図３では半導体装置１３０におけるメモリコントローラ１３０以外の処理部の記載を適宜省略している。メモリコントローラ３０は、ＣＰＵ１３２から記憶装置１４０への読み出しリクエスト、及びＣＰＵ１３２から記憶装置１４０への書き込みリクエストを制御する処理部である。メモリコントローラ３０は、アクセス制御部４０と、読み出し制御部５０と、書き込み制御部６０と、エラー検出レベル処理部７０とを備える。
【００２７】
アクセス制御部４０は、後述する読み出し制御部５０の読み出し制御に応じて、記憶装置１４０からデータを読み出し、読み出し制御部５０に読み出したデータを供給する。さらに、アクセス制御部４０は、後述する書き込み制御部６０の書き込み制御に応じて、書き込み対象のデータを記憶装置１４０に書き込む。
【００２８】
＜読み出し制御部５０の構成＞
読み出し制御部５０は、ＣＰＵ１３２からの読み出しリクエスト（図示せず）を受信する。読み出し制御部５０は、読み出しリクエストを用いて記憶装置１４０からデータを読み出す。この際、読み出し制御部５０は、読み出したデータに対応する誤り訂正符号（ＥＣＣ）も併せて読み出す。さらに、後述するエラー検出レベル処理部７０から供給されるエラー検出レベルに応じて、読み出したデータの誤り訂正処理を行う。
【００２９】
読み出し制御部５０の構成を図４を参照して詳細に説明する。図４は、本実施の形態にかかる読み出し制御部５０の詳細構成を示すブロック図である。読み出し制御部５０は、データ比較部５１と、セレクタ５２と、データコレクタ５３とを備える。
【００３０】
データ比較部５１は、図示するように複数（図４では４つ）のデータ経路Ｐ１〜Ｐ４を有する。データ経路Ｐ１は、記憶装置１４０から読み出したデータに対して、１６ビット毎に誤り検出処理を行うための経路である。ＥＣＣ＿１６（ＥＣＣ生成部）５１−１は、記憶装置１４０から読み出したデータの１６ビット毎にＥＣＣを生成する。比較器５１−２は、記憶装置１４０から読み出したＥＣＣと、ＥＣＣ＿１６（ＥＣＣ生成部）５１−１が生成したＥＣＣと、が一致するか否かを比較し、比較結果をセレクタ５２に供給する。その他のＥＣＣ＿１６（ＥＣＣ生成部）５１−３、５１−５、５１−７、及び比較器５１−４、５１−６、５１−８も同様の処理を行う。
【００３１】
データ経路Ｐ２は、読み出したデータに対して、３２ビット毎に誤り検出処理を行うための経路である。ＥＣＣ＿３２（ＥＣＣ生成部）５１−９は、記憶装置１４０から読み出したデータの３２ビット毎にＥＣＣを生成する。比較器５１−１０は、記憶装置１４０から読み出したＥＣＣと、ＥＣＣ＿３２（ＥＣＣ生成部）５１−９が生成したＥＣＣと、が一致するか否かを比較し、比較結果をセレクタ５２に供給する。ＥＣＣ＿３２（ＥＣＣ生成部）５１−１１及び比較器５１−１２も同様の処理を行う。
【００３２】
データ経路Ｐ３は、読み出したデータに対して、６４ビット毎に誤り検出処理を行うための経路である。ＥＣＣ＿６４（ＥＣＣ生成部）５１−１３は、記憶装置１４０から読み出したデータの６４ビット毎にＥＣＣを生成する。比較器５１−１４は、記憶装置１４０から読み出したＥＣＣと、ＥＣＣ＿６４（ＥＣＣ生成部）５１−１３が生成したＥＣＣと、が一致するか否かを比較し、比較結果をセレクタ５２に供給する。
【００３３】
データ経路Ｐ４は、記憶装置１４０から読み出したデータに対する誤り検出処理を行わずに、そのまま供給するための経路である。
【００３４】
セレクタ５２には、エラー検出レベル処理部７０からエラー検出レベルが入力される。セレクタ５２は、エラー検出レベルに応じて選択処理を行う。すなわち、セレクタ５２は、データ経路Ｐ１〜Ｐ４のいずれかから読み出しデータ及びＥＣＣを選択してデータコレクタ５３に供給する。
【００３５】
データコレクタ５３は、データ経路Ｐ１〜Ｐ３を介して受信したデータに対して、ＥＣＣを用いた誤り訂正処理を行い、誤り訂正後のデータをリクエスト元のＣＰＵ１３２に供給する。なお、データコレクタ５３は、既知の技術を用いてＥＣＣを用いた誤り訂正処理を行えばよい。データコレクタ５３は、データ経路Ｐ４を介して受信したデータが選択された場合については、誤り訂正処理を行うことなく、そのままＣＰＵ１３２に供給する。
【００３６】
＜読み出し制御部５０の変形例＞
なお、読み出し制御部５０は、図５に示すように構成しても良い。セレクタ５２には、エラー検出レベル、及び記憶装置１４０から読み出したデータ及びＥＣＣが入力される。セレクタ５２は、エラー検出レベルに対応するデータ経路を一つ選択し、選択したデータ経路にのみ読み出しデータ及びＥＣＣを供給する。データ比較部５１及びデータコレクタ５３の構成及び動作は、図４と同様であるため、詳細な説明は省略する。
【００３７】
＜書き込み制御部６０の構成＞
再び図３を参照する。書き込み制御部６０には、ＣＰＵ１３２から書き込みリクエスト（書き込みデータ、及び書き込み先のアドレスに関する情報を含む）が入力される。さらに、書き込み制御部６０には、エラー検出レベル処理部７０から供給されるエラー検出レベルが供給される。書き込み制御部６０は、供給されたエラー検出レベルに応じたＥＣＣをデータと共に記憶装置１４０に書き込むように制御を行う。
【００３８】
書き込み制御部６０の構成を、図６を参照して詳細に説明する。図６は、本実施の形態にかかる書き込み制御部６０の詳細構成を示すブロック図である。書き込み制御部６０は、ＥＣＣ処理部６１と、セレクタ６２とを備える。
【００３９】
ＥＣＣ処理部６１は、図示するように複数（図６では４つ）のデータ経路Ｐ５〜Ｐ８を有する。データ経路Ｐ５は、書き込み対象のデータの１６ビット毎にＥＣＣを生成するための経路である。ＥＣＣ＿１６（ＥＣＣ生成部）６１−１は、書き込み対象のデータの１６ビット毎にＥＣＣを生成する。ＥＣＣ＿１６（ＥＣＣ生成部）６１−１は、例えば一般的なハミング符号、巡回符号、疎グラフ符号等の任意の誤り訂正符号の生成技術を用いてＥＣＣを生成すればよい。
【００４０】
ＥＣＣ＿１６（ＥＣＣ生成部）６１−１は、生成したＥＣＣと１６ビットのデータをセレクタ６２に供給する。ＥＣＣ＿１６（ＥＣＣ生成部）６１−２〜４は、ＥＣＣ＿１６（ＥＣＣ生成部）６１−１と同様の処理を行う。
【００４１】
データ経路Ｐ６は、書き込み対象のデータの３２ビット毎にＥＣＣを生成するための経路である。ＥＣＣ＿３２（ＥＣＣ生成部）６１−５は、書き込み対象のデータの３２ビット毎にＥＣＣを生成する。ＥＣＣ＿３２（ＥＣＣ生成部）６１−５は、生成したＥＣＣと３２ビットのデータをセレクタ６２に供給する。ＥＣＣ＿３２（ＥＣＣ生成部）６１−６は、ＥＣＣ＿３２（ＥＣＣ生成部）６１−５と同様の処理を行う。
【００４２】
データ経路Ｐ７は、書き込み対象のデータの６４ビット毎にＥＣＣを生成するための経路である。ＥＣＣ＿６４（ＥＣＣ生成部）６１−７は、書き込み対象のデータの６４ビット毎にＥＣＣを生成する。ＥＣＣ＿６４（ＥＣＣ生成部）６１−７は、生成したＥＣＣと６４ビットのデータをセレクタ６２に供給する。
【００４３】
データ経路Ｐ８は、書き込み対象のデータに対するＥＣＣを生成せず、データのみを記憶装置１４０に書き込むための経路である。
【００４４】
セレクタ６２には、エラー検出レベル処理部７０からエラー検出レベルが入力される。セレクタ６２は、エラー検出レベルに応じて選択処理を行う。すなわち、セレクタ６２は、データ経路Ｐ１〜Ｐ４のいずれか１つを選択して、書き込みデータ及びＥＣＣを選択してアクセス制御部４０に供給し、記憶装置１４０に書き込みを行う。
【００４５】
＜書き込み制御部６０の変形例＞
なお、書き込み制御部６０は、図７に示す構成にしても良い。セレクタ６２には、エラー検出レベル及び書き込み対象のデータが供給される。セレクタ６２は、エラー検出レベルに対応するデータ経路を経路Ｐ５〜Ｐ８から一つ選択する。セレクタ６２は、選択したデータ経路にのみ書き込み対象のデータを供給する。これにより、経路Ｐ５〜Ｐ８のいずれかのみから書き込み対象のデータ及びＥＣＣが出力される。ＥＣＣ処理部６１の構成は、図６と同様であるため、詳細な説明は省略する。
【００４６】
＜記憶装置１４０のデータ管理手法＞
ここで、記憶装置１４０のデータ管理手法について、図８及び図９を参照して説明する。記憶装置１４０は、データそのもの（以下、実データとも記載する。）及び当該実データのＥＣＣを管理する領域（以下、データ保持領域（第１領域）とも記載する。）と、当該データ保持領域へアクセスするための各種情報（以下、管理データとも記載する。）を保持する領域（以下、管理データ領域（第２領域）とも記載する。）と、を有する。
【００４７】
図８は、記憶装置１４０の管理データ領域の内部構成を示す概念図である。記憶装置１４０の管理データ領域は、ＣＰＵ１３２が実行するオペレーティングシステム（ＯＳ：Operating System）の管理に応じたサイズで領域が分けられる。本例では、４ＫＢ単位で各モジュールの管理データが格納されるものとする。すなわち、モジュールＡにかかる管理データがアドレス０ｘ８０００＿００００〜０ｘ８０００＿０ｆｆｆに格納されている。同様に、モジュールＢにかかる管理データがアドレス０ｘ８０００＿１０００〜０ｘ８０００＿２ｆｆｆに格納されている。モジュールＣにかかる管理データがアドレス０ｘ８３００＿１０００〜０ｘ８０００＿５ｆｆｆに格納されている。モジュールＤにかかる管理データがアドレス０ｘ８０００＿６０００〜０ｘ８０００＿６ｆｆｆに格納されている。
【００４８】
各管理データ（例えばモジュールＡにかかる管理データ）には、データ保持領域（モジュールＡの実データ及びＥＣＣを保持する領域）に対するアドレス（後述する図１０のアドレス（３２'ｈ００００＿００００））等が格納される。ＣＰＵ１３２等が発行する読み出しリクエストのアドレス、及び書き込みリクエストのアドレスは、この管理データのアドレス（ｅｘ．０ｘ８０００＿００００）を指定するものである。しかしながら、上述のように４ＫＢ単位でデータが管理されているため、当該アドレスのうち、上位２０ビット（ｅｘ．０ｘ８０００＿０，０ｘ８０００＿１）のみが分かればどの領域にアクセスすべきかを把握することができる。
【００４９】
図９は、記憶装置１４０のデータ保持領域を示す概念図である。記憶装置１４０は、実データを所定の単位である８バイトに分割して保持する。そして、８バイトの実データ毎に、当該実データのＥＣＣの１バイトを対応付けて保持する。すなわち、実データとＥＣＣが所定のビット割合で対応付けられている。当該実データの開始位置を示すアドレスオフセットの情報は、管理データ内に含まれている。
【００５０】
図９のようにデータを割り当てる（所定のビット割合で実データとＥＣＣを対応付ける）ことにより、固定データ単位での読み出し、及び書き込みを行うことができる。これにより、データアクセスの高速化を図ることができる。
【００５１】
＜エラー検出レベル処理部７０の構成＞
再び、図３を参照する。エラー検出レベル処理部７０は、読み出しリクエストまたは書き込みリクエストをＣＰＵ１３２から受信し、受信したリクエスト（に含まれるアドレス）に応じて前述のエラー検出レベルを生成する。ここでエラー検出レベルとは、読み出し／書き込みデータに対してどのビット数のＥＣＣ処理を行うか（何ビット毎にＥＣＣによる誤り訂正処理を行うか／何ビット毎にＥＣＣを付与するか）、またはＥＣＣ処理を行わないか、を指定する情報である。図４〜図７に示す例では、エラー検出レベルは、（１）ＥＣＣ処理を行わない、（２）１６ビット毎にＥＣＣ処理を行う、（３）３２ビット毎にＥＣＣ処理を行う、（４）６４ビット毎にＥＣＣ処理を行う、という４つのレベルになり得る。本例では、エラー検出レベルは、順に"０ｂ００"（１）、"０ｂ０１"（２）、"０ｂ１０"（３）、"０ｂ１１"（４）、とする。エラー検出レベル処理部７０は、生成したエラー検出レベルを読み出し制御部５０内のセレクタ５２、及び書き込み制御部６０内のセレクタ６２に供給する。以下、詳細を説明する。
【００５２】
エラー検出レベル処理部７０は、ハッシュ処理部７１と、ルックアップテーブル７２とを備える。はじめに、図１０を参照してエラー検出レベル処理部７０内のルックアップテーブル７２の構成を説明する。
【００５３】
＜ルックアップテーブル７２の構成＞
ルックアップテーブル７２は、バリッドフラグと、上位２０ビットと、エラー検出レベルとを属性とするデータテーブルである。ルックアップテーブル７２には、データ列を識別するためのインデックス（図１０では１〜）が付与されている。
【００５４】
バリッドフラグは、当該データ列が有効であるか否かを示す情報である。バリッドフラグに１が設定された場合には有効であることを示し、０が設定された場合には無効であることを示す。０（無効）が設定された場合、エラー検出レベルにＥＣＣを生成しないことを示すデータ（"０ｂ００"）が設定されたものと取り扱う。上位２０ビットは、読み出しリクエストまたは書き込みリクエストのアドレスの上位２０ビットの値を示す。エラー検出レベルは、誤り訂正のレベル（６４ビット単位でＥＣＣを生成、３２ビット単位でＥＣＣを生成、１６ビット単位でＥＣＣを生成）を示す情報である。ここで、エラー検出レベルには、ＥＣＣを生成しないことを示すデータ（"０ｂ００"）が含まれないようにする。これにより、ルックアップテーブル７２の容量を削減することができる。
【００５５】
＜ハッシュ処理＞
ハッシュ処理部７１は、ルックアップテーブル７２にアクセスするためのインデックスを算出し、ルックアップテーブル７２にアクセスすることにより読み出し制御部５０及び書き込み制御部６０に供給するエラー検出レベルを決定する。以下、ハッシュ処理部７１の処理概要を図１１及び図１２を参照して説明する。
【００５６】
図１１は、読み出しリクエストまたは書き込みリクエストのアドレスと、ルックアップテーブル７２と、の関係を示す概念図である。図１１を参照して、ハッシュ処理部７１の概略的な処理を説明する。
【００５７】
ハッシュ処理部７１は、読み出しリクエストまたは書き込みリクエストのアドレスのうち、上位２０ビットを読み出す。そして、ハッシュ処理部７１は、後述するハッシュ関数に当該上位２０ビットを代入することによりルックアップテーブル７２の探索位置となるインデックスを決定する。ハッシュ処理部７１は、決定したインデックスに同一の上位２０ビット値が設定されているかを判定する。
【００５８】
同一の上位２０ビット値が設定されている場合、ハッシュ処理部７１は、当該インデックスの当該テーブル列からエラー検出レベルを取得する。そして、ハッシュ処理部７１は、取得したエラー検出レベルを読み出し制御部５０または書き込み制御部６０に供給する。
【００５９】
一方、探索位置のインデックスに同一の上位２０ビット値が設定されていない場合、ハッシュ処理部７１は、ハッシュ関数を用いて別の探索位置を示すインデックスを算出して再度の判定を行う。ハッシュ処理部７１は、一定回数だけコンフリクト（入力されたアドレスの上位２０ビットと同一の上位２０ビット値を持つデータ列が見つからない状態）が続いた場合、探索を終了する。コンフリクトのまま探索を終了した場合、ハッシュ処理部７１は、ＥＣＣ処理を行わないことを示すエラー検出レベル"０ｂ００" を読み出し制御部５０または書き込み制御部６０に供給する。
【００６０】
続いて、図１２を参照して、ハッシュ処理部７１によるルックアップテーブル７２の探索処理の詳細について説明する。図１２は、ルックアップテーブル７２の探索概念を示す概念図である。本例では、ハッシュの処理論理として、オープンアドレス法ダブルハッシュを用いる。なお、ハッシュの処理論理は、オープンアドレス法ダブルハッシュに限られる必要はなく、他の論理を用いても良い。
【００６１】
ハッシュ処理部７１は、以下の（数１）を用いて探索位置を決定する。
【数１】
2013242694.tif 000003
【００６２】
以下、詳細な探索手順を説明する。
（１）ハッシュ処理部７１は、上述の（数１）に含まれる（数２）により１回目にアクセスするインデックスを算出する。
【数２】
2013242694.tif 000004
【００６３】
（２）ハッシュ処理部７１は、（数２）で算出したインデックスを探索位置として、ルックアップテーブル７２からデータを取得し、取得した上位２０ビットとリクエストに含まれるアドレスの上位２０ビットが一致するか否かを判定する。一致する場合、ハッシュ処理部７１は、当該探索はヒットであると判定する。ヒットである場合、ハッシュ処理部７１は、ルックアップテーブル７２の当該インデックスからエラー検出レベルを取得する。
【００６４】
（３）ヒットでは無かった場合、すなわちコンフリクトであった場合、ハッシュ処理部７１は、上述の（数１）に含まれる（数３）により、次の探索位置を算出する。
【数３】
2013242694.tif 000005
【００６５】
（４）ハッシュ処理部７１は、（数３）で算出したインデックスを探索位置として、ルックアップテーブル７２からデータを取得し、取得した上位２０ビットとリクエストに含まれるアドレスの上位２０ビットが一致するか否かを判定する。一致する場合、ハッシュ処理部７１は、当該探索はヒットであると判定する。ヒットである場合、ハッシュ処理部７１は、ルックアップテーブル７２の当該インデックスからエラー検出レベルを取得する。
【００６６】
（５）ヒットでは無かった場合、すなわちコンフリクトであった場合、ハッシュ処理部７１は、上述の（数１）に含まれる（数４）により、次の探索位置を算出する。ハッシュ処理部７１は、（５）の工程をヒットとなるまで所定回数繰り返し行う。所定回数繰り返し行ってもヒットとならなかった場合、ハッシュ処理部７１は、エラー検出レベル"０ｂ００"（ＥＣＣ処理を行わないことを示す値） を読み出し制御部５０または書き込み制御部６０に供給する。
【数４】
2013242694.tif 000006
【００６７】
続いて、ハッシュ処理を具体的なデータ例を用いて説明する。以下の説明では、各データを以下の（数５）に示すように定める。
【数５】
2013242694.tif 000007
【００６８】
ハッシュ処理部７１は、アドレス上位２０ビットが０ｘ０４Ｅ２０（０ｄ２００００）である場合、以下の（数６）に示す算出処理を行い、探索位置となるインデックスを決定する。
【数６】
2013242694.tif 000008
【００６９】
本例では、ルックアップテーブル７２のインデックス７５３に上位２０ビットアドレス"０ｘ０４Ｅ２０"が格納されているものとする。ハッシュ処理部７１は、ルックアップテーブル７２のインデックス７５３からエラー検出レベルを読み出し、当該エラー検出レベルを読み出し制御部５０または書き込み制御部６０に供給する。
【００７０】
続いて、アドレス上位２０ビットが０ｘ０５６０Ａ（０ｄ２２０２６）であるリクエストを処理することを考える。ハッシュ処理部７１は、以下の（数７）に示す算出処理を行い、探索位置となるインデックスを決定する。
【数７】
2013242694.tif 000009
【００７１】
しかし、ルックアップテーブル７２のインデックス７５３には、上位２０ビットアドレス"０ｘ０４Ｅ２０"が格納されている。そのため、ハッシュ処理部７１は、当該探索はコンフリクトであると判定する。ハッシュ処理部７１は、以下の（数８）に示す算出処理を行い、再探索位置となるインデックスを決定する。
【数８】
2013242694.tif 000010
【００７２】
本例では、ルックアップテーブル７２のインデックス８４５に上位２０ビットアドレス"０ｘ０５６０Ａ"が格納されているものとする。ハッシュ処理部７１は、ルックアップテーブル７２のインデックス８４５からエラー検出レベルを読み出し、当該エラー検出レベルを読み出し制御部５０または書き込み制御部６０に供給する。
【００７３】
続いて、アドレス上位２０ビットが０ｘＦＢＦ３３（０ｄ１０３１９８７）であるリクエストを処理することを考える。ハッシュ処理部７１は、以下の（数９）に示す算出処理を行い、探索位置となるインデックスを決定する。
【数９】
2013242694.tif 000011
【００７４】
しかし、ルックアップテーブル７２のインデックス７５３には、上位２０ビットアドレス"０ｘ０４Ｅ２０"が格納されている。そのため、ハッシュ処理部７１は、当該探索はコンフリクトであると判定する。ハッシュ処理部７１は、以下の（数１０）に示す算出処理を行い、再探索位置となるインデックスを決定する。
【数１０】
2013242694.tif 000012
【００７５】
しかし、ルックアップテーブル７２のインデックス８４５には、上位２０ビットアドレス"０ｘ０５６０Ａ"が格納されている。そのため、ハッシュ処理部７１は、当該探索はコンフリクトであると判定する。ハッシュ処理部７１は、以下の（数１１）に示す算出処理を行い、再探索位置となるインデックスを再度決定する。
【数１１】
2013242694.tif 000013
【００７６】
ハッシュ処理部７１は、ルックアップテーブル７２のインデックス５２５を探索し、ヒットである場合にはエラー検出レベルを取得する。ヒットではない場合（コンフリクトである場合）、ハッシュ処理部７１は、規定回数を上限として引き続き再探索を行う。
【００７７】
なお、ルックアップテーブル７２の探索に必要な回数は、ルックアップテーブルの深さ（上述のＢ）の大きさに応じて定まる。ルックアップテーブルの深さを深くする場合、探索回数を少なくすることができる。例えば、上述のようにルックアップテーブルの深さ（Ｂ）が１０１３の場合には多くて３回の探索が必要となるが、ルックアップテーブルの深さ（Ｂ）が２０２６の場合には多くて２回の探索が必要となる。このルックアップテーブル７２の深さとの関係を参照して、ハッシュ処理部７１は、探索の条件回数を定めればよい。
【００７８】
＜効果＞
続いて、本実施の形態にかかる電子装置１０の効果について説明する。はじめに、本実施の形態にかかる電子装置１０の比較対象として、特許文献１に記載の不揮発性メモリ装置を説明する。当該不揮発性メモリ装置は、メモリへのアドレスに応じて不揮発性メモリとの間で入出力するデータ長を変更している。しかしながら、当該不揮発性メモリ装置では、制御装置（厳密にはメモリに読み書きを行うＣＰＵが動作するＯＳ）の管理単位に応じたデータの管理を行っていない。さらに、当該不揮発性メモリ装置では、誤り訂正符号を付与しないことについては何らの考慮もしていない。
【００７９】
一方、本実施の形態にかかる電子装置１０は、図８に示すように、ＯＳの管理単位毎に各データを管理している。これにより、ＯＳからのデータアクセスが容易、詳細にはアクセス速度の向上を実現することができる。さらに、本実施の形態にかかる電子装置１０は、図４Ｐ４や図６Ｐ８に示すように誤り訂正符号（ＥＣＣ）を扱わない構成も考慮している。これにより、重要性の低いデータに関しては、素早く記憶装置１４０との読み書きを実行できるとともに、記憶装置１４０の記憶するデータサイズを削減することができる。
【００８０】
さらに、本実施の形態にかかる電子リ装置１０は、ルックアップテーブル７２を用いることにより、各データの誤り検出レベルを簡単に設定することができる。すなわち、データの重要度を簡単に設定することができ、この重要度（誤り検出レベル）に応じてデータを保護することができる。さらに、ルックアップテーブル７２内にバリッドビットを設けることにより、電子装置１０の運用中に、任意のタイミングで誤り検出レベルを変更することも可能となる。
【００８１】
ルックアップテーブル７２は、前述のように、ＥＣＣを生成しないことを示すデータ（"０ｂ００"）が含まれないようにする。これにより、ルックアップテーブル７２は、最小限のデータのみを記憶することになる。すなわち、ルックアップテーブル７２のサイズを削減することができる。
【００８２】
また、ハッシュ処理部７１は、一定回数の探索を行ってもヒットしない場合、ＥＣＣを生成しないことを示すデータ（"０ｂ００"）が設定されているものとみなす。これにより、ハッシュ処理部７１によるルックアップテーブル７２の全探索を回避することができ、処理速度を向上することができる。
【００８３】
さらに、記憶装置１４０は、図９に示すようにデータを格納する領域と、ＥＣＣ（誤り訂正符号）を格納する領域と、を一定のビット比率（図９の例では８バイト−１バイト）で対応付けている。これにより、データの対応関係がシンプルになり、記憶装置１４０への読み書きの速度を向上することができる。
【００８４】
また、上述のように、ハッシュ論理として例えばオープンアドレス法のダブルハッシュを用いる。このような簡素な構成にすることにより、回路の簡素化及び処理速度の増大を防ぐことができる。
【００８５】
以上、本発明者によってなされた発明を実施の形態に基づき具体的に説明したが、本発明は前記実施の形態に限定されるものではなく、その要旨を逸脱しない範囲で種々変更可能であることはいうまでもない。例えば、上述の説明では、ＲＡＭを想定して説明したが、必ずしもこれに限られない。記憶装置１４０は、ＤＲＡＭ（Dynamic Random Access Memory）をはじめとするＲＡＭに限られず、また揮発性のメモリでなくても良く、電源が遮断されても記憶したデータを保持し続ける不揮発性メモリであってもよい。すなわち、電子装置内に配置されるメモリは、読み出し及び書き込みを行うことができる任意の記憶装置であればよい。
【００８６】
上述の説明では、本発明にかかるメモリ装置が車載システムに搭載されることを説明したが、本発明にかかるメモリ装置は、他の任意の情報処理システムに搭載されても良い。例えば、本実施の形態にかかるメモリ装置は、産業用ロボットの制御システム等に用いられても良いことは勿論である。
【符号の説明】
【００８７】
１０  電子装置
３０  メモリコントローラ
４０  アクセス制御部
５０  読み出し制御部
５１  ＥＣＣ生成部
５２  セレクタ
５３  データコレクタ
６０  書き込み制御部
６１  ＥＣＣ生成部
６２  セレクタ
７０  エラー検出レベル処理部
７１  ハッシュ処理部
７２  ルックアップテーブル
９０  システムバス
１００  車載システム（電子システム）
１１０  前方カメラ（撮像装置）
１２０  後方カメラ（撮像装置）
１３０  半導体装置
１３１  画像処理エンジン
１３２  ＣＰＵ
１３３  イメージキャプチャ部
１４０  記憶装置
１４１  処理データ
１４２  画像処理プログラム
１４３  画像データ
１５０  エンジンシステム制御マイコン（エンジン制御装置）
１５１  ＥＣＵ
１６０  車両内ネットワーク
【図１】
2013242694.tif 000014
【図２】
2013242694.tif 000015
【図３】
2013242694.tif 000016
【図４】
2013242694.tif 000017
【図５】
2013242694.tif 000018
【図６】
2013242694.tif 000019
【図７】
2013242694.tif 000020
【図８】
2013242694.tif 000021
【図９】
2013242694.tif 000022
【図１０】
2013242694.tif 000023
【図１１】
2013242694.tif 000024
【図１２】
2013242694.tif 000025