(57)【要約】      （修正有）【課題】大容量データをＡＴＡコマンドで不揮発性メモリに対して送受信している際に、大容量データの送受信を一つのＡＴＡコマンド処理に占有されないよう、別のＡＴＡコマンドを受け付けて時分割処理を可能とする。【解決手段】ＣＰＵ１０１は、転送するデータサイズが大容量データと判断した場合、フラグ１０５をセットする。データ転送中に別のＡＴＡコマンドが発行され、フラグがセットされている場合には、ＡＴＡコマンド割り込み装置１１０に、割り込ませる別のＡＴＡコマンドを設定し、割り込み装置１１０は、ブロック単位の転送の終了を検出すると、データ転送を中断させた後、別のＡＴＡコマンドを起動する。【選択図】図１
2012128707.tif 000002
【特許請求の範囲】
【請求項１】
ＡＴＡコマンドを実行することによりメモリと不揮発メモリ間のデータ転送を制御する情報処理装置において、前記データ転送中に、別のＡＴＡコマンドが発行されたとき、前記データ転送を中断させた後に、前記別のＡＴＡコマンドを実行する制御手段を備えたことを特徴とする情報処理装置。
【請求項２】
前記制御手段は、前記メモリから不揮発メモリへ転送するデータサイズが所定サイズ以上であることを示すフラグを設定する手段と、前記別のＡＴＡコマンドが発行されたとき、前記フラグを参照し、前記フラグが設定されている場合に、前記別のＡＴＡコマンドを、割り込ませるＡＴＡコマンドとして設定する手段と、前記データ転送を監視し、所定単位のデータ転送の終了を検出したとき、前記データ転送を中断させた後に、前記別のＡＴＡコマンドを割り込ませて実行する手段とを備えたことを特徴とする請求項１記載の情報処理装置。
【請求項３】
前記制御手段は、前記データ転送を中断させたとき、前記メモリから読み込んだアドレスと、前記不揮発メモリに書き込んだデータサイズを基に次に読み出すメモリアドレスを計算する手段を備えたことを特徴とする請求項２記載の情報処理装置。
【請求項４】
前記制御手段は、前記計算したメモリアドレスと、前記不揮発メモリに最後に読み書きしたアドレスを退避する手段を備えたことを特徴とする請求項３記載の情報処理装置。
【請求項５】
前記制御手段は、前記メモリと不揮発メモリ間で転送されるデータを圧縮、伸長する手段を備えたことを特徴とする請求項１または２記載の情報処理装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ＡＴＡコマンドを時分割処理する情報処理装置に関する。
【背景技術】
【０００２】
ＡＴＡＩ／Ｆを持つ不揮発性メモリ（ＨＤＤなど）にデータを格納するためには、データ転送前に転送サイズを指定する必要がある。例えば、可変長圧縮を行って保存する場合には、一旦メモリに圧縮後データを格納してからデータサイズを指定して再度、不揮発性メモリに格納するか、大きめの転送サイズを設定して、余ったサイズを０データなど余分なデータを付加してから格納する必要がある。
【０００３】
また、ＳＡＴＡ（シリアルＡＴＡ）は、一回の転送量が増えるが、それでも最大サイズが３２ＭＢであるため、それを超えるデータを格納する場合には、３２ＭＢ毎にＡＴＡコマンドを発行する必要あり、ソフトウェア処理によるオーバヘッドがあった。
【０００４】
そこで、例えば、特許文献１では、コマンドＤＭＡＣを設け、ハードディスクにデータを転送するときに、コマンドＤＭＡＣがコマンドを発行することにより、ＣＰＵの負荷を減らしている。
【発明の概要】
【発明が解決しようとする課題】
【０００５】
しかし、ＡＴＡコマンドを自動発行することにより大容量のデータを不揮発メモリに書き込む場合に、不揮発メモリに対するアクセス時間が長くなり、他のアクセスができなくなる。マルチタスクで動作するＯＳでは、あるアプリケーションが不揮発メモリに対して大容量のデータを転送している場合には、タスクスイッチにより切り替わった他のアプリケーションが不揮発メモリにデータを転送しようとしても、大容量のデータ転送が完了するまで待機状態となる問題があった。
【０００６】
本発明は、上記した課題に鑑みてなされたもので、
本発明の目的は、大容量データをＡＴＡコマンドで不揮発性メモリに対して送受信している際に、別のＡＴＡコマンドを受け付けて時分割処理を可能とし、大容量データの送受信を一つのＡＴＡコマンド処理に占有されない情報処理装置を提供することにある。
【課題を解決するための手段】
【０００７】
本発明は、ＡＴＡコマンドを実行することによりメモリと不揮発メモリ間のデータ転送を制御する情報処理装置において、前記データ転送中に、別のＡＴＡコマンドが発行されたとき、前記データ転送を中断させた後に、前記別のＡＴＡコマンドを実行する制御手段を備えたことを最も主要な特徴とする。
【発明の効果】
【０００８】
本発明によれば、大容量データをＡＴＡコマンドでアクセスしている最中に、処理途中で別のＡＴＡコマンドを割り込ませているので、一つのＡＴＡコマンド処理が不揮発メモリを占有させることなくコマンドを実行することができ、ＣＰＵからみて時分割のＡＴＡコマンド処理を実現できる。
【図面の簡単な説明】
【０００９】
【図１】本発明の情報処理装置の構成を示す。
【図２】本発明の制御フローチャートを示す。
【図３】本発明の処理動作のタイムチャートを示す。
【発明を実施するための形態】
【００１０】
以下、発明の実施の形態について図面により詳細に説明する。
【実施例１】
【００１１】
図１は、本発明の情報処理装置の構成を示す。図１において、１０１はＣＰＵ、１０２はメモリ、１０３は不揮発性メモリ、１０４は不揮発性メモリコントローラである。
【００１２】
不揮発性メモリコントローラ１０４は、大容量データ転送中フラグ１０５、メモリからデータを読み書きするＤＭＡＣ１０６、データを圧縮、伸長する圧縮伸長器１０７、不揮発性メモリ１０３に書き込む際のデータの圧縮率を監視する圧縮率監視装置１０８、ＡＴＡコマンドを発行するＡＴＡコマンド発行器１０９、ＡＴＡコマンド割込み装置１１０、ＡＴＡコマンドのアドレスを変えて連続アドレスとしてＡＴＡコマンドを発行するＡＴＡコマンド自動発行器１１１、ＤＭＡＣアドレスポインタ計算器１１２、ＤＭＡＣレジスタ退避メモリ１１３、ＡＴＡコマンド発行器レジスタ退避メモリ１１４からなる。
【００１３】
図２は、本発明の制御フローチャートを示し、図３は、本発明の処理動作のタイムチャートを示す。以下、図１〜３を参照して本発明の処理動作を説明する。
丸数字１において、まず、ＡＴＡＩ／Ｆの不揮発性メモリ１０３に対して、データの読み書きを実施する場合に、ＣＰＵ１０１は、メモリ側のアドレスやサイズなどを示したディスクリプタ情報をメモリ１０２に書き込み、ＡＴＡＩ／Ｆに対しても不揮発メモリ側のアドレスやデータサイズなどを不揮発性メモリコントローラ１０４のＡＴＡコマンド発行器１０９のレジスタに設定する。
丸数字２において、ＣＰＵ１０１は、転送しようとするメモリデータサイズが大容量データ（例えば、１ＧＢや２５６ＭＢなどを超える）であるか否かを判定する。なお、不揮発性メモリコントローラ１０４が自動判定可能な場合には、この判定は不要となる。
丸数字３において、ＣＰＵ１０１が大容量であると判定した場合、大容量データ転送中フラグ１０５をセットする。ＣＰＵ１０１は、別のＡＴＡコマンド発行の際に、フラグ１０５を参照することにより別のＡＴＡコマンドをＡＴＡコマンド割込み装置に設定するか否かを判断する。
丸数字４において、ＣＰＵ１０１はＤＭＡＣ１０６を起動する。起動することで、ＤＭＡＣ１０６は、メモリ１０２とＡＴＡＩ／Ｆ不揮発メモリ１０３の間でデータの送受信を実行する。
【００１４】
丸数字５において、ＣＰＵ１０１は、不揮発性メモリコントローラ１０４に対して、アクセス要求があるかをチェックする。ＯＳがマルチタスクＯＳの場合には、丸数字１で要求を出したタスクとは別のタスク（別のＡＴＡコマンド）がＡＴＡＩ／Ｆ不揮発性メモリ１０３に対して要求を出す可能性がある。
【００１５】
丸数字６において、ＣＰＵ１０１は、大容量転送中フラグ１０５が設定されているか否かを確認する。もし、フラグ１０５が設定されていなければ、丸数字１と同様に、必要な情報を不揮発性メモリコントローラ１０４に設定する。フラグ１０５が設定されている場合には、ＡＴＡコマンド割込み装置１１０に対して、割り込ませる別のＡＴＡコマンドやＤＭＡＣ情報などを設定する。
【００１６】
丸数字７において、ＡＴＡコマンド割込み装置１１０は、ＣＰＵ１０１から必要情報が全て設定された直後からＡＴＡコマンド自動発行器１１１の監視を始める。ＡＴＡ規格では、所定のブロック単位で処理をハンドリングしている（ＡＴＡコマンドは、処理単位がブロック単位でデータの読み書きを行うことでランダムアクセスを実現している）。
【００１７】
丸数字８において、ＡＴＡコマンド割込み装置１１０は、ブロック単位（例えば、２５６セクタ（１セクタ＝２５６Ｂ））の転送の終了を検知したら、ＤＭＡＣ１０６とＡＴＡコマンド発行器１１１に対してストップ信号を出して処理を中断させる。
【００１８】
丸数字９において、ＡＴＡコマンド割込み装置１１０は、ＤＭＡＣ１０６がメモリ１０２から読み込んだアドレスを取得するためにＤＭＡＣアドレスポインタ計算器１１２を起動する。
【００１９】
丸数字１０において、ＤＭＡＣアドレスポインタ計算器１１２は、ＤＭＡＣ１０６がメモリ１０２から読み込んだアドレスと、ＡＴＡコマンド発行器１１１からＡＴＡ不揮発性メモリ１０３に書き込んだデータサイズを基に次に読み出すメモリアドレスを計算する。
【００２０】
丸数字１１において、ＤＭＡＣアドレスポインタ計算器１１２は、計算が完了したら現在のレジスタ設定値を次に使うために別メモリに退避させるために、ＡＴＡコマンド割込み装置１１０に通知する。
【００２１】
丸数字１２において、ＡＴＡコマンド割込み装置１１０は、ＤＭＡＣアドレスポインタ計算器１１２から完了通知を受けたら、ＤＭＡＣレジスタ退避メモリ１１３とＡＴＡコマンド発行器レジスタ退避メモリ１１４に対して、次の実行を再開するに必要な設定値を退避させる。例えば、ＤＭＡＣレジスタ退避メモリ１１３には、ＤＭＡＣアドレスポインタ計算器１１２で計算したメモリアドレスを退避させ、ＡＴＡコマンド発行器レジスタ退避メモリ１１４には、ＡＴＡ不揮発性メモリ１０３に最後に読み書きしたアドレスを退避させる。
【００２２】
丸数字１３において、ＡＴＡコマンド割込み装置１１０は、設定値の退避が完了したら、割り込ませる別のＡＴＡコマンドとＤＭＡＣ設定値を上書きして、ＡＴＡコマンド発行器１０９を起動させる。
【００２３】
丸数字１４において、割り込ませたＡＴＡコマンドが完了したら、ＡＴＡ不揮発性メモリ１０３は、ＣＰＵ１０１に完了を通知する。
【００２４】
丸数字１５において、ＣＰＵ１０１は、完了通知を受けて終了処理をする際に、中断コマンドがあれば、中断された設定値を再設定して、ＤＭＡＣ１０６、ＡＴＡコマンド発行器１０９を再起動させる。
【符号の説明】
【００２５】
１０１  ＣＰＵ
１０２  メモリ
１０３  不揮発性メモリ
１０４  不揮発性メモリコントローラ
１０５  大容量データ転送中フラグ
１０６  ＤＭＡＣ
１０７  圧縮伸長器
１０８  圧縮率監視装置
１０９  ＡＴＡコマンド発行器
１１０  ＡＴＡコマンド割込み装置
１１１  ＡＴＡコマンド自動発行器
１１２  ＤＭＡＣアドレスポインタ計算器
１１３  ＤＭＡＣレジスタ退避メモリ
１１４  ＡＴＡコマンド発行器レジスタ退避メモリ
【先行技術文献】
【特許文献】
【００２６】
【特許文献１】特開２００１−２８２７０５号公報
【図１】
2012128707.tif 000003
【図２】
2012128707.tif 000004
【図３】
2012128707.tif 000005