(57)【要約】  【課題】  同時的な複数のＤＭＡ要求に対する調停において、ＤＭＡリクエスタがＤＭＡ処理の転送制限時間情報を常にもつ必要があり、ＤＭＡ要求内容に追加しなければならず、回路面積が増大する。  【解決手段】  転送サイズなどの転送情報を受け付け、転送情報と転送制限時間からデータ転送起動要因を発生するデータ転送受付部３と、受付部３からの起動要因を受け取り、転送情報から予想転送時間を求め、予想転送時間と転送制限時間から複数のデータ転送要求の起動順序を調停し、前記調停した起動順序に従ってデータ転送を起動するデータ転送調停部５と、調停部５により起動されたデータ転送を前記起動順序に従って実行するデータ転送実行部６とを備え、さらに、前記複数のデータ転送要求にかかわる転送制限時間の情報を予め格納し、受付部３に転送制限時間を送出する転送制限時間情報格納部４を備える。【選択図】  図１
2005085079.tif 000002
【特許請求の範囲】
【請求項１】
データ転送要求の際に転送サイズ、転送アドレスなどの転送情報を受け付け、データ転送起動要求時に前記転送情報と転送制限時間からデータ転送起動要因を発生するデータ転送受付部と、
前記データ転送受付部からの前記データ転送起動要因を受け取り、前記転送情報から予想転送時間を求め、前記予想転送時間と前記転送制限時間から複数のデータ転送要求の起動順序を調停し、前記転送制限時間以内に起動不可能なデータ転送要求に対しては事前にエラー通知を行い、前記調停した起動順序に従ってデータ転送を起動するデータ転送調停部と、
前記データ転送調停部により起動されたデータ転送を前記起動順序に従って実行するデータ転送実行部とを備えたデータ転送制御装置であって、
さらに、前記複数のデータ転送要求にかかわる前記転送制限時間の情報を予め格納し、前記データ転送要求の際に前記データ転送受付部に前記転送制限時間を送出する転送制限時間情報格納部を備えたことを特徴とするデータ転送制御装置。
【請求項２】
請求項１に記載のデータ転送制御装置において、さらに、前記データ転送受付部が受け取った前記転送情報がデータ転送の分割設定を含む場合に、前記分割設定にかかわるデータ転送要求について複数のデータ転送に分割するための時間情報を監視し、適時に前記データ転送受付部に対して分割データ転送要求を行う分割データ転送時間監視部を備えたことを特徴とするデータ転送制御装置。
【請求項３】
請求項１または請求項２に記載のデータ転送制御装置において、さらに、前記データ転送が前記転送制限時間内で完了しなかったときに、当該転送ミスにかかわる転送データを一時的に保持するバッファ手段を備えたことを特徴とするデータ転送制御装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、データ転送制御装置に関する。特に、映像出力装置や音声出力装置などの定期的なデータ転送が必要な装置におけるＤＭＡ（Direct Memory Access）コントローラとして好適である。
【背景技術】
【０００２】
従来のデータ転送制御装置、特にＤＭＡコントローラは、ＤＭＡ起動要求の調停を行う際、同時に複数の起動要求が競合した場合は、予め設定された優先順位に基づいて起動順序を決定している。
【０００３】
このとき、優先順位の高い転送が複数同時に要求された場合、先行のＤＭＡ転送が完了するまで起動できない。
【０００４】
また、ＤＭＡ要求に転送制限情報を付加することで要求される転送制限時間の終了までにＤＭＡを完了させることは可能であったが、各ＤＭＡ要求元は転送制限時間情報を常にもつ必要があった。そして、ＤＭＡコントローラは、その転送制限時間と転送情報（転送サイズ、転送アドレス等）でもって、各ＤＭＡ要求をリアルタイムに且つ複雑な計算を行って調停をする必要があった。
【０００５】
図８は従来のＤＭＡコントローラを示す。ＤＭＡコントローラ１Ｄは、データ転送受付部３３とデータ転送調停部３５とデータ転送実行部３６で構成されている。３２はＤＭＡリクエスタである。
【０００６】
データ転送受付部３３は、ＤＭＡリクエスタ３２からのＤＭＡ要求内容（転送サイズ、転送アドレス、転送制限時間情報）を受け付ける。データ転送調停部３５は、ＤＭＡ起動要求が発生するとデータ転送受付部３３に起動要求し、その起動要因に基づきＤＭＡ起動を行う。同時に複数の起動要求がある場合には、転送制限時間と転送情報に応じてＤＭＡ起動順序を決定して起動する（例えば、特許文献１参照。）。
【特許文献１】特開２００２−２０７６９１号公報（第４頁、第１図）
【発明の開示】
【発明が解決しようとする課題】
【０００７】
従来のデータ転送制御装置では、次の課題が存在する。
【０００８】
第１に、ＤＭＡリクエスタはＤＭＡ処理の転送制限時間情報を常にもつ必要があり、ＤＭＡ要求内容に追加しなければならず、回路面積が増大する。
【０００９】
第２に、転送制限時間情報と予想転送時間の複雑な計算を短時間で終わらせる必要があり、装置の大きさ、回路面積が増大する。
【００１０】
第３に、データ長の長いデータ転送の場合、他のＤＭＡを受け付けることができず、エラーが発生する。
【００１１】
第４に、制限時間内に終了しない場合のエラー処理は、ＤＭＡ要求元への通知しか行えず、適切なＤＭＡ処理を行う術がない。
【００１２】
本発明は、上記問題点を鑑み、複数のデータ転送要求をデータ転送制御装置内で時間的に管理し、制限時間以内にデータ転送を完了させることを主眼とした、実行効率の良いデータ転送動作を実現できるデータ転送制御装置を提供することを目的とする。
【課題を解決するための手段】
【００１３】
上記の課題を解決するために、本発明は次のような手段を講じる。
【００１４】
（１）すなわち、本発明によるデータ転送制御装置は、次の構成要素を備えていることを前提としている。それは、データ転送受付部とデータ転送調停部とデータ転送実行部とである。前記データ転送受付部は、データ転送要求の際に転送サイズ、転送アドレスなどの転送情報を受け付け、データ転送起動要求時に前記転送情報と転送制限時間からデータ転送起動要因を発生するように構成されている。前記データ転送調停部は、前記データ転送受付部からの前記データ転送起動要因を受け取り、前記転送情報から予想転送時間を求め、前記予想転送時間と前記転送制限時間から複数のデータ転送要求の起動順序を調停し、前記転送制限時間以内に起動不可能なデータ転送要求に対しては事前にエラー通知を行い、前記調停した起動順序に従ってデータ転送を起動するように構成されている。前記データ転送実行部は、前記データ転送調停部により起動されたデータ転送を前記起動順序に従って実行するように構成されている。本発明は、このように構成されたデータ転送制御装置において、さらに、次のような手段を講じることにより、上記の課題を解決する。すなわち、さらに、前記複数のデータ転送要求にかかわる前記転送制限時間の情報を予め格納し、前記データ転送要求の際に前記データ転送受付部に前記転送制限時間を送出する転送制限時間情報格納部を備えた構成とされている。
【００１５】
この構成による作用は次のとおりである。同時に複数のデータ転送要求が生じた場合に、それぞれの転送制限時間内にそれぞれのデータ転送を完了させるための複数のデータ転送要求の起動順序を調停するのであるが、この起動順序の調停に当たり、必要な要素は、少なくとも、転送情報における転送サイズと転送制限時間である。このうち転送情報における転送サイズについては、データ転送の要求元が送信してくるのをデータ転送受付部で受け取って用いる。しかし、転送制限時間については、必ずしもデータ転送の要求元が送信してくるのを用いる必要はない。それは予め分かっているからである。当該のデータ転送制御装置自体が転送制限時間情報格納部を内蔵し、その転送制限時間情報格納部に予め転送制限時間の情報を格納しておくのである。
【００１６】
転送制限時間の格納部がデータ転送受付部、データ転送調停部、データ転送実行部とともに内蔵されているので、データ転送制御装置の側で複数のデータ転送要求の調停における時間管理を行うことができる。データ転送の要求元からの転送制限時間の受け取りの処理は不要となり、負荷を軽減できる。これにより、回路面積の削減を可能にする。
【００１７】
（２）上記構成のデータ転送制御装置において、次のように構成することは好ましいものである。それは、さらに、分割データ転送時間監視部を備えていることである。前記分割データ転送時間監視部は、前記データ転送受付部が受け取った前記転送情報がデータ転送の分割設定を含む場合に、前記分割設定にかかわるデータ転送要求について複数のデータ転送に分割するための時間情報を監視し、適時に前記データ転送受付部に対して分割データ転送要求を行うように構成されている。
【００１８】
この構成による作用は次のとおりである。データ転送の要求元は、データ転送要求するデータの転送サイズが大きい場合には、必要に応じて、分割設定をデータ転送制御装置のデータ転送受付部に送信する。データ転送受付部は分割設定を受け取ると、分割データ転送時間監視部にその旨を伝える。分割設定を入力した分割データ転送時間監視部は、時間情報を監視し、分割設定の内容に従って、適時に分割データ転送要求をデータ転送受付部に与える。この分割データ転送要求は時間を隔てて複数回行われる。データ転送受付部は分割データ転送要求の入力の都度、データ転送起動要因を発生し、データ転送調停部に送る。その結果、データ転送調停部は、転送サイズの大きな転送データについて、複数にデータ分割して調停を行う。分割されたもののうち先行するデータ部分は本来の時間帯の起動順序をとってよいが、分割されたもののうち後続するデータ部分は他のデータ転送要求の転送データの後に回される。単に起動順序の入れ替えだけでは処理不能となるような、過剰に長い転送データを伴う複数のデータ転送要求の場合であっても、転送データを分割し、その上で起動順序を入れ替えることにより、処理不能に陥ることなく適正に対応することができる。すなわち、さらに効率の良いデータ転送を実現することができる。
【００１９】
（３）上記構成のデータ転送制御装置において、次のように構成することは好ましいものである。それは、さらに、前記データ転送が前記転送制限時間内で完了しなかったときに、当該転送ミスにかかわる転送データを一時的に保持するバッファ手段を備えた構成である。
【００２０】
このように構成すれば、データ転送の完了が転送制限時間内で間に合わなかった場合には、エラー処理として、当該転送ミスにかかわる転送データをバッファ手段に一時的に保持しておき、再度、転送することでエラーを回避することができる。すなわち、さらに効率の良いデータ転送を実現することができる。
【発明の効果】
【００２１】
上記（１）の発明によれば、データ転送処理の転送制限時間の情報を予めデータ転送制御装置の側にもつことにより、データ転送制御装置側でデータ転送処理の時間管理を行うことができるとともに、データ転送の要求元からの情報の処理を容易に行うことができる。その結果として、映像出力装置や音声出力装置などの定期的なデータ転送が必要な装置に有効である。
【００２２】
上記（２）の発明によれば、データ転送処理を分割することで長い転送サイズのデータ転送に対して、短い転送サイズのデータ転送を割り込ませることが可能となる。その結果として、映像、音声を繰り返し同時に出力するなどのシステムに有効である。
【００２３】
上記（３）の発明によれば、データ転送の完了が転送制限時間内で間に合わなかった場合、その転送ミスにかかわる転送データを再度、転送することでエラーを回避することができる。その結果として、映像出力を中断させないなどの映像出力装置に有効である。
【発明を実施するための最良の形態】
【００２４】
以下、本発明にかかわるデータ転送制御装置の実施の形態を図面に基づいて詳細に説明する。ここでは、データ転送制御装置の代表例としてＤＭＡコントローラを例示する。
【００２５】
（実施の形態１）
図１〜図３は本発明の実施の形態１を示す。
【００２６】
図１は本発明の実施の形態１のＤＭＡコントローラを示す。ＤＭＡコントローラ１Ａは、データ転送受付部３と転送制限時間情報格納部４とデータ転送調停部５とデータ転送実行部６とで構成されている。２はＤＭＡリクエスタである。
【００２７】
データ転送受付部３は、予めＤＭＡリクエスタ２からのＤＭＡ転送設定（転送サイズ、転送アドレスおよび転送モードなど）を受け付ける。転送制限時間情報格納部４の転送制限時間情報は、ＤＭＡ要求に応じてデータ転送受付部３に入力される。この転送制限時間情報については、各ＤＭＡリクエスタ２から受け取るのではない。予めＤＭＡコントローラ１Ａがタイマーもしくは映像信号の垂直同期信号などの定期的なタイミング信号でもって、転送制限時間情報格納部４に保持されている転送制限時間を受け取るようになっている。
【００２８】
データ転送調停部５は、ＤＭＡ起動要求が発生するとデータ転送受付部３に起動要求し、その起動要因（転送サイズ、転送モード、転送制限時間など）に応じてＤＭＡ起動順序を調停し、順に起動する。その結果、転送制限時間以内に実行不可能なＤＭＡ起動要求であれば、その要求元のＤＭＡリクエスタに対して事前にエラー通知を行う。
【００２９】
データ転送実行部６は、データ転送調停部５からのＤＭＡ起動要求に応じて実際にＤＭＡ転送動作を行う。
【００３０】
データ転送調停部５におけるＤＭＡ調停処理のフローチャートを図２に示す。
【００３１】
ステップＳ１は開始である。ステップＳ２において、データ転送調停部５はデータ転送受付部３へ起動要求を行い、起動要因を受け取る。次いでステップＳ３において、転送制限時間情報格納部４からの転送制限時間情報を付加する。次いでステップＳ４において、ＤＭＡ起動要因をデータ転送調停部５に転送し、ＤＭＡの起動要求を行う。
【００３２】
次いでステップＳ５において、複数の起動要求のすべてを調停し、データ転送実行部６を起動する。
【００３３】
調停方法は、各起動要因の転送制限時間から予想転送時間を差し引いた時間内にその他すべての起動要因の予想転送時間が収まり、かつその他すべての起動要因の転送制限時間以内に完了するかを判断する。
【００３４】
計算順は、例えばその時刻での転送制限時間と予想転送時間の差が最も大きい起動要因から順に行い、その時間に対し、その時刻での転送制限時間が最も少ない起動要因から順にその予想転送時間を埋めて行く。そのとき、転送制限時間以内に動作不可能な起動要因に対しては異常通知を行う。
【００３５】
この本計算方法は一例であり、他に、しらみつぶしに演算する方法もあれば、簡易的な方法もある。
【００３６】
次いでステップＳ６において、転送制限時間カウントが完了していないかをチェックし、もし制限時間通知が発生していれば、ステップＳ７に進んでエラー通知を行う。ステップＳ８は終了である。
【００３７】
図３（ａ），（ｂ）は図１に示したＤＭＡコントローラ１Ａによる動作タイミングの一例である。
【００３８】
図３（ａ）において、ｔ１はＤＭＡ１の起動要求ＲＥＱ１が発生した時刻、ｔ２はＤＭＡ２の起動要求ＲＥＱ２が発生した時刻である。
【００３９】
ここで、転送制限時間情報によると、ＤＭＡ１の転送制限時間ＴＬ１の終了時刻ｔ７に比べて、ＤＭＡ２の転送制限時間ＴＬ２の終了時刻ｔ５の方が先にくる状況になっているとする。この場合、転送制限時間の終了時刻が早い方の起動要求ＲＥＱ２を優先する。
【００４０】
ここで、図３（ａ）のように、ＤＭＡ１を先にし、ＤＭＡ２を後にすると仮定する。ＤＭＡ１の予想転送時間Ｔ１とＤＭＡ２の予想転送時間Ｔ２を加えた時間の終了時刻はｔ６である。ＤＭＡ２は時刻ｔ６で終了する。このＤＭＡ２の終了時刻ｔ６は、起動要求ＲＥＱ２の転送制限時間ＴＬ２の終了時刻ｔ５を超えてしまう状態となっている。
【００４１】
そこで、再度計算を行う。今度は、図３（ｂ）に示すように、ＤＭＡ１とＤＭＡ２の実行順を入れ替え、ＤＭＡ２を先にし、ＤＭＡ１を後にすると仮定する。ＤＭＡ２の予想転送時間Ｔ２の終了時刻はｔ４′である。このＤＭＡ２の終了時刻ｔ４′は、起動要求ＲＥＱ２の転送制限時間ＴＬ２の終了時刻ｔ５よりも前になっている。これが順序入れ替えの効果である。また、ＤＭＡ１の終了時刻はｔ６で、図３（ａ）の場合と同じであるが、このＤＭＡ１の終了時刻ｔ６も起動要求ＲＥＱ１の転送制限時間ＴＬ１の終了時刻ｔ７よりも前になっている。すなわち、ＤＭＡ１とＤＭＡ２の両者ともに、予想転送時間の終了時刻がそれぞれの転送制限時間以内になる。
【００４２】
なお、上記説明では、ＲＥＱ１，ＲＥＱ２ともに転送制限時間を考慮したが、転送制限時間を有しない起動要求が含まれる場合があってもかまわない。
【００４３】
（実施の形態２）
図４〜図６は本発明の実施の形態２を示す。
【００４４】
図４は本発明の実施の形態２のＤＭＡコントローラを示す。ＤＭＡコントローラ１Ｂは、データ転送受付部１３と転送制限時間情報格納部４とデータ転送調停部１５とデータ転送実行部６と分割ＤＭＡ時間監視部７とで構成されている。１２はＤＭＡリクエスタである。本実施の形態のデータ転送受付部１３、データ転送調停部１５はそれぞれ、実施の形態１のデータ転送受付部３、データ転送調停部５とは構成を異にしている。また、データ転送受付部１３には分割ＤＭＡ時間監視部７が関連付けられている。
【００４５】
データ転送受付部１３は、ＤＭＡリクエスタ１２から分割設定を受け取り、分割設定内容を分割ＤＭＡ時間監視部７に設定する。分割ＤＭＡ時間監視部７は、このＤＭＡ要求を分割した要求要因に変更し、分割ＤＭＡ要求要因としてデータ転送受付部１３に設定する。また、この分割ＤＭＡ要求が終了すると、次の分割ＤＭＡ要求要因を分割ＤＭＡ時間監視部７からデータ転送受付部１３に設定する。
【００４６】
データ転送調停部１５は、データ転送受付部１３の起動要因（転送サイズ、転送モード、転送制限時間など）に応じてＤＭＡ起動順序を調停し、順に起動する。その結果、転送制限時間以内に実行不可能なＤＭＡ起動要求に対しては事前にエラー通知を行う。
【００４７】
データ転送実行部６は、データ転送調停部１５からのＤＭＡ起動要求に応じて実際にＤＭＡ転送動作を行う。
【００４８】
データ転送調停部１５におけるＤＭＡ調停処理のフローチャートを図５に示す。
【００４９】
ステップＳ１１は開始である。ステップＳ１２において、データ転送調停部１５はデータ転送受付部１３へ起動要求を行い、起動要因を転送する。次いでステップＳ１３において、分割ＤＭＡ設定があるかを判断し、ある場合は、ステップＳ１４に進んで分割ＤＭＡ要求を行う。
【００５０】
次いでステップＳ１５において、転送制限時間情報格納部４からの転送制限時間情報を付加する。次いでステップＳ１６において、ＤＭＡ起動要因をデータ転送調停部１５に転送し、ＤＭＡの起動要求を行う。
【００５１】
次いでステップＳ１７において、複数の起動要求のすべてを調停し、データ転送実行部６を起動する。
【００５２】
調停方法、計算順については、既述のとおりである。転送制限時間以内に動作不可能な起動要因に対しては異常通知を行う。
【００５３】
次いでステップＳ１８において、転送制限時間カウントが完了していないかをチェックし、もし制限時間通知が発生していれば、ステップＳ１９に進んでエラー通知を行う。次いでステップＳ２０において、分割ＤＭＡが終了したかを判断し、終了していない場合は、ステップＳ１４に戻って残りの分割ＤＭＡ要求を行う。ステップＳ２１は終了である。
【００５４】
図６（ａ），（ｂ）は図４に示したＤＭＡコントローラ１Ｂによる動作タイミングの一例である。
【００５５】
図６（ａ）において、ｔ１はＤＭＡ１の起動要求ＲＥＱ１が発生した時刻、ｔ２はＤＭＡ２の起動要求ＲＥＱ２が発生した時刻である。
【００５６】
ここで、転送制限時間情報によると、ＤＭＡ１の転送制限時間ＴＬ１の終了時刻ｔ７に比べて、ＤＭＡ２の転送制限時間ＴＬ２の終了時刻ｔ５の方が先に終了する状況になっているとする。
【００５７】
そこで、再度計算を行う。すなわち、ＤＭＡ１をＤＭＡ１−１とＤＭＡ１−２との２つに分割して転送することとし、図６（ｂ）に示すように、ＤＭＡ１−１、ＤＭＡ２、ＤＭＡ１−２の実行順にする。
【００５８】
前半の分割のＤＭＡ１−１の予想転送時間Ｔ１−１の終了時刻はｔ４′である。また、非分割のＤＭＡ２の予想転送時間Ｔ２の終了時刻はｔ４″である。このＤＭＡ２の終了時刻ｔ４″は、起動要求ＲＥＱ２の転送制限時間ＴＬ２の終了時刻ｔ５よりも前になっている。これが分割の効果である。また、後半の分割のＤＭＡ１−２の終了時刻はｔ６で、図６（ａ）の場合と同じであるが、このＤＭＡ１−２の終了時刻ｔ６も起動要求ＲＥＱ１の転送制限時間ＴＬ１の終了時刻ｔ７よりも前になっている。すなわち、ＤＭＡ１とＤＭＡ２の両者ともに、予想転送時間の終了時刻がそれぞれの転送制限時間以内になる。このように分割転送とすることで、ＤＭＡ転送が破綻しないようにしている。
【００５９】
なお、上記説明では、ＲＥＱ１，ＲＥＱ２ともに転送制限時間を考慮したが、転送制限時間を有しない起動要求が含まれる場合があってもかまわない。
【００６０】
（実施の形態３）
図７は本発明の実施の形態３のＤＭＡコントローラを示す。
【００６１】
ＤＭＡコントローラ１Ｃは、データ転送受付部２３と転送制限時間情報格納部４とデータ転送調停部２５とデータ転送実行部２６と分割ＤＭＡ時間監視部７とデータバッファ８とで構成されている。２２はＤＭＡリクエスタである。本実施の形態のデータ転送受付部２３、データ転送調停部２５、データ転送実行部２６はそれぞれ、実施の形態２のデータ転送受付部１３、データ転送調停部１５、データ転送実行部６とは構成を異にしている。また、データ転送受付部１３には分割ＤＭＡ時間監視部７が関連付けられている。また、データ転送実行部２６にはデータバッファ８が関連付けられている。分割ＤＭＡ時間監視部７は実施の形態２と同じである。
【００６２】
データ転送受付部２３は、ＤＭＡリクエスタ２２からエラー時の対処設定要因を受け取り、データ転送調停部２５からデータ転送実行部２６に通知する。ＤＭＡ転送が転送制限時間情報格納部４の転送制限時間内に終了しない場合、データ転送実行部２６はエラー設定のあるときに、前回転送したデータをデータバッファ８に保持し、データ転送用のバッファ８から前回のデータを転送するようにすることで、エラーを回避する。
【産業上の利用可能性】
【００６３】
本発明のデータ転送制御装置は、映像出力装置や音声出力装置などで扱われるＤＭＡコントローラ等として有用である。
【図面の簡単な説明】
【００６４】
【図１】本発明の実施の形態１のＤＭＡコントローラ（データ転送制御装置）の構成を示すブロック図
【図２】同実施の形態１のＤＭＡ起動要求調停方法の動作を示すフローチャート
【図３】同実施の形態１のＤＭＡ動作を示すタイミングチャート
【図４】本発明の実施の形態２のＤＭＡコントローラ（データ転送制御装置）の構成を示すブロック図
【図５】同実施の形態２のＤＭＡ起動要求調停方法の動作を示すフローチャート
【図６】同実施の形態２のＤＭＡ動作を示すタイミングチャート
【図７】本発明の実施の形態３のＤＭＡコントローラ（データ転送制御装置）の構成を示すブロック図
【図８】従来のＤＭＡコントローラの構成を示すブロック図
【符号の説明】
【００６５】
１Ａ，１Ｂ，１Ｃ  ＤＭＡコントローラ（データ転送制御装置）
２，１２，２２  ＤＭＡリクエスタ
３，１３，２３  データ転送受付部
４  転送制限時間情報格納部
５，１５，２５  データ転送調停部
６，２６  データ転送実行部
７  分割ＤＭＡ時間監視部
８  データバッファ（バッファ手段）  
【図１】
2005085079.tif 000003
【図２】
2005085079.tif 000004
【図３】
2005085079.tif 000005
【図４】
2005085079.tif 000006
【図５】
2005085079.tif 000007
【図６】
2005085079.tif 000008
【図７】
2005085079.tif 000009
【図８】
2005085079.tif 000010