"バッファメモリと、このバッファメモリを単位データ毎にキャッシュするキャッシュメモリと、この単位データにバイトECCを付加する付加手段とを備えたメモリ制御装置。前記付加手段は、キャッシュされた前記単位データが前記バッファメモリにライトバックされる際に前記バイトECCを付加する請求項1に記載のメモリ制御装置。更にフラグ管理手段を備え、このフラグ管理手段は前記バイトECCが付加されているか否かを管理する請求項1に記載のメモリ制御装置。更にエラー検出/訂正手段を備え、このエラー検出/訂正手段は前記バイトECCを用いてエラー検出/訂正を行う請求項1に記載のメモリ制御装置。バッファメモリを備えたメモリ制御装置におけるメモリ制御方法であって、このバッファメモリを単位データ毎にキャッシュし、この単位データにバイトECCを付加するメモリ制御方法。本発明の実施の形態は、メモリアクセスにおいてECCの方式変更を自動的に行う技術を提供することを目的とする。上記課題を解決するために、実施形態によればメモリ制御装置は、バッファメモリと、このバッファメモリを単位データ毎にキャッシュするキャッシュメモリと、この単位データにバイトECCを付加する付加手段とを備えた。以下、一実施形態を図1乃至図6を参照して説明する。図1は第1の実施形態の磁気ディスク装置を備えた電子機器の典型的な構成を示すブロック図である。図1において、電子機器は、磁気ディスク装置HDD10及びホストホストシステム20を備えている。電子機器は、例えば、パーソナルコンピュータ、ビデオカメラ、音楽プレーヤー、携帯端末、或いは携帯電話機である。ホスト20はHDD10を当該ホスト20の記憶装置として利用する。HDD10は、ヘッドディスクアセンブリ部HDA部100と、制御ボード部200とを備えている。HDA部100は、例えば2枚のディスク磁気ディスク1101及び1102と、スピンドルモータSPM130と、アクチュエータ140と、ヘッドIC150とを備えている。ディスク1101及び1102の各々は上側と下側の2つの記録面を備えている。ディスク1101及び1102はSPM130により高速に回転させられる。ディスク110ii=1,2はCDRconstantdensityrecordingと呼ばれる周知の記録フォーマットを適用している。このためディスク110iの各記録面は、当該ディスク11iの半径方向に複数のゾーンに区分して管理される。つまり、ディスク110iの各記録面は、複数のゾーンを備えている。アクチュエータ140はディスク1101のそれぞれの記録面に対応して配置されるヘッドアームの先端にヘッド磁気ヘッド1200及び1201を備えている。アクチュエータ140は更に、ディスク1102のそれぞれの記録面に対応して配置されるヘッドアームの先端にヘッド1202及び1203を有する。ヘッド1200及び1201は、ディスク1101へ/からのデータの書き込み/読み出しに用いられ、ヘッド1202及び1203は、ディスク1102へ/からのデータの書き込み/読み出しに用いられる。アクチュエータ140はボイスコイルモータVCM141を備えている。アクチュエータ140はVCM141によって駆動され、ヘッド1200乃至1203をディスク1101及び1102の半径方向に移動させる。SPM130及びVCM141は、後述するモータドライバIC210からそれぞれ供給される駆動電流SPM電流及びVCM電流により駆動される。ヘッドIC150は、ヘッド120jj=0,1,2,3により読み出された信号リード信号を増幅する。ヘッドIC150はまた、後述するリード/ライトチャネル230から転送されるライトデータをライト電流に変換してヘッド120jに出力する。制御ボード部200は、モータドライバIC210及びシステムLSI220の2つのLSIを備えている。モータドライバIC210は、SPM130を一定の回転速度で駆動する。モータドライバIC210はまた、CPU270から指定されたVCM操作量に相当する値の電流VCM電流をVCM141に供給することで、アクチュエータ140を駆動する。システムLSI220は、リード/ライトチャネルR/Wチャネル230、ディスクコントローラHDC240、バッファRAM250、フラッシュメモリ260、プログラムROM270、CPU280及びRAM290が単一チップに集積されたSOCSystemonChipと呼ばれるLSIである。後述するラインキャッシュ領域は、例えばこのCPU280またはRAM290内のキャッシュメモリ上で実現可能である。R/Wチャネル230は、リード/ライトに関連する信号処理を行う信号処理デバイスである。R/Wチャネル230は、リード信号をデジタルデータに変換し、このデジタルデータからリードデータを復号する。R/Wチャネル230はまた、上記デジタルデータからヘッド120jの位置決めに必要なサーボデータを抽出する。R/Wチャネル230はまた、ライトデータを符号化する。HDC240は、ホスト20とホストインタフェース21を介して接続されている。HDC240は、ホスト20から転送されるコマンドライトコマンド、リードコマンド等を受信する。HDC240は、ホスト20と当該HDC240との間のデータ転送を制御する。HDC240は、R/Wチャネル230を介して行われるディスク110ii=1,2と当該HDC240との間のデータ転送を制御する。バッファRAM250は、ディスク110iに書き込まれるべきデータ及びディスク110iからヘッドIC150及びR/Wチャネル230を介して読み出されたデータを一時格納するのに用いられる。フラッシュメモリ260は、書き換え可能な不揮発性メモリである。フラッシュメモリ260は、例えばホストから受信するライトコマンドの端数セクタのデータを一時的に格納するのに用いられる。プログラムROM270は、制御プログラムファームウェアプログラムを予め格納する。なお、制御プログラムがフラッシュメモリ260の一部の領域に格納されていても構わない。CPU280は、HDD10の主コントローラとして機能する。CPU280はプログラムROM270に格納されている制御プログラムに従ってHDD10内の他の少なくとも一部の要素を制御する。RAM290の一部の領域は、CPU280の作業領域として用いられる。この作業領域には、HDD10のパワーオン時に、フラッシュメモリ260に格納されている一部のデータがロードされる。さて一般的に実施されるByteECC付加とは、1Byteのデータに対し5bitのECCデータを付加することである図2参照。即ち、図2aのオリジナルデータDATA0に図2bのECC0を付加して、総体2Byteのデータとなる。実際のハードウェア動作では、内部回路にDRAMアドレスに対しでByteECC化済みフラグを持つことにより、キャッシュミスリード時にDRAMからのリードデータがByteECC化されているか判断する図3。ByteECC化されていないデータをリードする場合、DRAMからリードしたデータをすべてキャッシュする。ByteECC化されているデータをリードする場合、DRAMからリードしたユーザーデータをキャッシュするような機構を持つByteECCデータはキャッシュしない。図3aのHDC240またはCPU280を主体とする動作を説明するために示すフローチャートに沿ってこれらをより詳細に述べると次のようになる。ステップS1:キャッシュミスリードの発生を把握する。ステップS2:DRAMからのリードデータがByteECC化されているか判定する。ステップS3:ステップS2の判定結果がNoである場合には、ByteECCモードOFFでDRAMをリードする。ステップS4:ステップS2の判定結果がYesである場合には、ByteECCモードONでDRAMをリードする。ステップS5:データが訂正化か判定する。ステップS6:ステップS6の判定結果がYesである場合には、データを訂正化する。ステップS7:ステップS6の判定結果がNoである場合には、データの誤りを検出済みか判定する。ステップS8:ステップS6の判定結果がYesである場合には、このリードしたデータを不使用とする。図3bもCPU280を主体とする動作を説明するために示すフローチャートである。ライトバックする際にはステップS9、ユーザーデータ1Byteに対し、ユーザーデータの例えば1Byte上位アドレスに1ByteのByteECCを付加してDRAMライトするステップS10。また、ByteECCを含めた単位データ分のECCを生成することにより、ラインキャッシュ以外のこの機能を装備していないDRAM転送に関して、ECCのデータ保護を実施することができる。但し、この機能を実現するためには、ByteECCで付加する対象領域と同じ空き領域がDRAM上に必要となる。図4は、実施形態のByteECC化前のキャッシュミスリードの例を示す説明図である。例えば、単位データAでは単位データA用ECCデータも外部DRAMメモリ領域バッファRAM250に存在する。単位データBなど他の単位データに関しても同様である。図5は、実施形態のライトバックによるByteECC化の例を示す説明図である。図4の位置構成において、矢印で示すようにByteECCを付加してライトバックを行う。実際には図2のようなイメージの2バイト単位の集合としてライトバックを行うのが好適である。単位データA用ECCデータは例えば前半と後半に分け各ByteECCを含んだCCデータとして方式変更されて書かれる。図6は、実施形態のByteECC付加後のキャッシュミスリードの例を示す説明図である。外部DRAMメモリ領域からは512バイトのデータが読まれるが、ByteECCをはずした256バイト分がキャッシュされる。DRAMデータ化けを保護するECCはアクセス単位のデータ毎に付加する必要があるが、小さい単位にECCを付加すると記憶領域が多く必要であるデメリットがあるが、小さい単位のアクセスが早いメリットがある。また、大きい単位にECCを付加すると大きい単位でしかアクセスできないため、一部のデータを使用する時にも全データをリードしてECCをチェックしなければならずさらにライト時にはECCの再計算のため一旦全データを読みだしてからライトする必要がありアクセスが遅くなるデメリットがある。しかしECCの総サイズが少なくて済むため記憶領域を節約できるメリットがある。これらの問題を解決するため、不揮発性記憶媒体にデータを格納しているときには大きな単位に対してECCを付加し記憶媒体の容量消費を抑え、DRAM上にデータをコピーした後、データを使用する時に小さい単位のECCに変更する方法があるが、ECCの方式変更を行う手間が必要であった。本実施形態の方式ではCPUのDRAMアクセスに応じてECCの方式変更を必要な量だけHWが自動的に行うため、CPUはECCの方式変更を意識することなくまた方式変更も必要に応じて分割して行われるため、DRAM上にデータをコピーした後にすぐそのデータを使用することができる。例えば、HDC240が、フラッシュメモリ260内のフラグテーブル264として、バッファRAM250の各単位データ毎にByteECCを付加したか否かのフラグを管理するようにすればよい。本実施形態の言わばECC符号自動付加機能付きラインキャッシュの方式ではCPUのDRAMアクセスに応じてECCの方式変更を必要な量だけHWが自動的に行うため、CPUはECCの方式変更を意識することなくまた方式変更も必要に応じて分割して行われるため、DRAM上にデータをコピーした後にすぐそのデータを使用することができる。実施形態の特徴として、DRAMからデータをリードする時に1回目のリード図4はByteECCなしとしてデータをリードし、このデータをDRAMにライトバック図5する時にデータ保護のためByteECCを付加し、2回目以降のDRAMリード図6はByteECCを使用してデータのエラー検出訂正を自動で行うラインキャッシュ機能を発揮する。なお、この発明は上記実施形態に限定されるものではなく、この外その要旨を逸脱しない範囲で種々変形して実施することができる。例えばキャッシュの対象はユーザーデータのみではなくファームウェアのコードなどでもよい。所謂メディアファームディスク上のファームウェアのコードをRAMや書き換え可能なROMに展開する際に用いてもよい。また、上記した実施の形態に開示されている複数の構成要素を適宜に組み合わせることにより、種々の発明を形成することができる。例えば、実施の形態に示される全構成要素から幾つかの構成要素を削除しても良いものである。さらに、異なる実施の形態に係わる構成要素を適宜組み合わせても良いものである。"