(57)【特許請求の範囲】
【請求項１】
車両に搭載可能なナビゲーション装置であって、
ディスク状の記憶媒体からデータの読出を行なうディスク読取装置と、
前記ディスク読取装置が読出したデータを格納するメモリと、
前記ディスク読取装置と前記メモリとのそれぞれに接続され、それぞれを制御するＤＭＡ処理部と、
前記ディスク読取装置と前記メモリと前記ＤＭＡ処理部とのそれぞれに接続され、装置全体を制御する中央制御装置と、
データの転送アドレスと転送するデータのサイズと転送の制御のためのフラグとを含むコマンドを少なくとも１つ記憶する記憶手段とを備え、
前記メモリは、前記中央制御装置を介して前記ディスク読取装置と接続されるルートとは別に前記ＤＭＡ処理部を介して前記ディスク読取装置と接続され、前記ディスク読取装置から前記ＤＭＡ処理部を介した前記メモリへのデータの書込は前記中央制御装置の動作とは独立して行なうことが可能で、
前記記憶手段は、前記データの転送アドレスと前記転送するデータのサイズとのうちの少なくとも１つを簡略化して記憶し、該簡略化して記憶されたコマンドは１回の読出動作で読出が可能であり、
前記ディスク読取装置は、前記ディスク状の記憶媒体から、転送不要なデータをも含む連続したデータの読出を行ない、
前記ＤＭＡ処理部は、
前記ディスク読取装置からのデータを一時的にラッチするレジスタを備え、
前記記憶手段に記憶されたコマンドに基づいて前記ディスク読取装置が読出したデータのうち、前記転送不要なデータを除いて前記メモリに格納させ、
前記レジスタが前記中央制御装置のデータバス幅分のデータをラッチしたときに、該ラッチしたデータを転送する、ナビゲーション装置。
【請求項２】
前記中央処理装置は、エンディアン制御情報を出力し、前記レジスタにおけるデータの格納順序は、前記エンディアン制御情報に基づいて変化することを特徴とする、請求項１に記載のナビゲーション装置。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
この発明はナビゲーション装置に関し、特にディスク状の記憶媒体からデータをメモリに転送する装置であって、使用環境条件が厳しい車載機器などに好適なナビゲーション装置に関する。
【０００２】
【従来の技術】
従来よりディスク状の記憶媒体（たとえばＣＤ−ＲＯＭ、ＤＶＤなど）からメモリへのデータ転送を行なう方式として、ダイレクトメモリアクセス（ＤＭＡ）方式が知られている。これは中央処理装置（以下ＣＰＵという）がＤＭＡ処理部に対して、メモリにおいてデータを格納する先頭アドレスとデータの転送サイズとを指定することで、以降は記憶媒体から順番に送られてくるデータを、指定されたメモリアドレスから連続的にＣＰＵの処理に依存せずにＤＭＡ処理部がデータ転送を行なう方式である。
【０００３】
図１１は、従来のデータ転送管理装置の構成を示すブロック図である。図を参照して、データ転送管理装置は、ＣＰＵ１０１と、ＤＭＡ処理部１０３と、メモリ１０５と、ディスク読取装置１０７と、ディスク１０９とから構成される。
【０００４】
ＣＰＵ１０１からの要求に基づき、ディスク１０９の所望の領域のデータがＤＭＡ処理部１０３によりメモリ１０５の所望のアドレスに転送される。
【０００５】
ＣＰＵ１０１は、ディスク読取装置１０７に対し、ディスク１０９の所望の領域のデータの転送を要求する（データ転送要求制御）。ディスク読取装置１０７は、ＤＭＡ処理部１０３へデータ転送の要求を行なう。ＤＭＡ処理部１０３は、ディスク読取装置１０７へデータ転送の許可を行なう。
【０００６】
ＣＰＵ１０１は、ＤＭＡ処理部１０３の制御と、バスの使用許可とを行なう。ＤＭＡ処理部１０３は、ＣＰＵ１０１に対して転送終了通知やバス使用要求を出力する。
【０００７】
ディスク１０９は、複数の領域（たとえば領域Ａ〜Ｃ）に分割されており、それぞれの領域を単位としてデータは格納されている。
【０００８】
ここでは、ディスク１０９の領域Ａの一部である領域Ａ１と領域Ａ２とのデータを読出し、それぞれメモリ１０５のアドレスＷＷＷＷ〜ＷＷＷＷ＋Ｌ１の領域およびアドレスＸＸＸＸ〜ＸＸＸＸ＋Ｌ２の領域に格納し、領域Ｃからデータを読出し、メモリ１０５のアドレスＺＺＺＺ〜ＺＺＺＺ＋Ｎの領域に格納する場合を想定する。
【０００９】
すなわち、ディスク１０９の領域Ｂのデータはここでは不要のデータである。
【００１０】
図１２は、ＣＰＵ１０１、メモリ１０５、ＤＭＡ処理部１０３およびディスク読取装置１０７との間でのデータのやり取りを説明するための図である。
【００１１】
まず、ステップ（Ｉ）において、ＣＰＵ１０１は、ＤＭＡ処理部１０３に対してメモリ１０５へのデータの格納を行なうスタートアドレスＷＷＷＷと、転送バイト数Ｌ１とを設定する。ＣＰＵ１０１は、ディスク読取装置１０７に対し、ディスクの領域Ａの先頭からＬ１サイズ（Ｌ１バイト）分のデータを出力するよう要求する。
【００１２】
この要求を受けて、ディスク読取装置１０７は、停止状態から駆動状態に移行する。ディスク読取装置１０７のヘッドは、領域Ａの先頭直前に移動し、データの読取の準備を行なう。その後、ディスク読取装置１０７において、領域Ａの先頭の最初のセクタの読取が終了すると、データの転送が開始される。
【００１３】
ステップ（ＩＩ）において、ディスク読取装置１０７はＤＭＡ処理部１０３に対し、１バイト目のデータの転送要求を行なう。これを受けてＤＭＡ処理部１０３は、ＣＰＵ１０１に対しＣＰＵバスの使用要求を出力する。ＣＰＵ１０１は、ＤＭＡ処理部１０３に対しＣＰＵバスの使用許可を出力する。
【００１４】
その後、ＤＭＡ処理部１０３は、メモリ１０５に対し転送先アドレスＷＷＷＷを通知し、一方ディスク読取装置１０７に対しデータ転送許可を行なう。その後、ディスク読取装置から１バイト目のデータがＤＭＡ処理部１０３を介し、メモリ１０５に書込まれる。
【００１５】
このとき、ＤＭＡ処理部１０３は転送先アドレスを１インクリメントし、転送バイト数を１デクリメントする。その後、図１２における▲１▼で示される処理が繰返し行なわれる。ディスク読取装置１０７においてＬ１バイト分のデータの読取が終了したのであれば、ディスク１０９の回転が停止状態となる。
【００１６】
ステップ（ＩＩＩ）において、ディスク読取装置１０７からＤＭＡ処理部１０３に対し、Ｌ１バイト目のデータ転送要求が送られ、ＤＭＡ処理部１０３がＣＰＵ１０１に対しＣＰＵバスの使用要求を出力し、ＣＰＵ１０１がＤＭＡ処理部１０３に対しＣＰＵバスの使用許可を出力したのであれば、ＤＭＡ処理部１０３は、メモリ１０５に対しアドレスＷＷＷＷ＋Ｌ１を指定し、ディスク読取装置１０７に対しデータ転送許可を与える。
【００１７】
その後、ディスク読取装置１０７からＤＭＡ処理部１０３を介しＬ１バイト目のデータがメモリ１０５へ書込まれる。このとき、▲１▼で示される部分と同様に、転送先アドレスは１インクリメントされ、転送バイト数は１デクリメントされる。転送バイト数を１デクリメントすると「０」となるため、ＤＭＡ処理部はデータの転送が終了したことを検出する。この検出結果に応じて、ＤＭＡ処理部１０３はＣＰＵ１０１に対し転送終了の割込処理を行なう。
【００１８】
図１２において▲２▼で示されるステップ（Ｉ）〜（ＩＩＩ）の動作がスタートアドレスＸＸＸＸ、スタートアドレスＺＺＺＺに対しても同様に行なわれる。
【００１９】
すなわち、ＣＰＵ１０１は、ＤＭＡ処理部１０３に対しスタートアドレスＸＸＸＸ、転送バイト数Ｌ２を設定し、ディスク読取装置に領域Ａの先頭＋Ｌ１の位置からＬ２バイトのデータを要求する。その後、ＣＰＵ１０１は、ＤＭＡ処理部１０３に対し、スタートアドレスＺＺＺＺ、転送バイト数Ｎを設定し、ディスク読取装置に領域Ｃの先頭からＮバイト分のデータの出力を要求する。
【００２０】
この動作により、ディスク１０９の領域Ａ１とＡ２のデータが、メモリ１０５のアドレスＷＷＷＷ〜ＷＷＷＷ＋Ｌ１およびアドレスＸＸＸＸ〜ＸＸＸＸ＋Ｌ２の領域に格納される。また、領域Ｃのデータが、メモリ１０５のアドレスＺＺＺＺ〜ＺＺＺＺ＋Ｎの領域に格納される。
【００２１】
【発明が解決しようとする課題】
しかしながら、従来のデータ転送管理装置には以下に述べる問題点があった。
【００２２】
［問題点１］
従来のデータ転送管理装置においては、ディスク状の記憶媒体の不連続なデータ領域を、不連続のメモリ領域に転送する必要があるため、ディスクへのデータ転送要求やＤＭＡ処理部の制御頻度が高く、ＣＰＵのオーバヘッドが多い。
【００２３】
特に、ナビゲーション装置などで使用される地図データは、メッシュという概念で格納されており、ＣＰＵが必要とする地図データは、ディスク状で離散的な状態で格納されている場合が多い。したがって、必要なデータのみ記憶媒体に対して要求するには、複数回のデータ転送要求を行なう必要がある。
【００２４】
一方、ＣＰＵ側でもメッシュの概念でデータの演算を行なっているため、地図表示を画面上で移動させる場合などにおいては、不要となるデータが離散的に発生する。すなわち、メモリの使用効率が悪くなるため、適宜必要なデータのみを連続的な領域に集約して、大きなメモリの連続空間を確保し、次のデータ転送が可能となるようにするガベージコレクションを行なう必要がある。
【００２５】
しかしながら、ガベージコレクションを行なうと、データ整理のためにＣＰＵの処理時間を使用することとなる。これに対し、論理アドレスと物理アドレスとの変換を行なうメモリマネージメントユニット（ＭＭＵ）を使用することで、このようなデータ整理の時間がなくなるが、ＭＭＵを使用するとメモリの空き空間が細切れに離散的に発生するため、ＤＭＡ処理部の制御頻度が高くなるというデメリットが発生する。
【００２６】
［問題点２］
ディスク状においてピックアップの近距離の移動を繰返しながらデータを読むと、不要部分まで含めて一括してデータを読んだ場合より、多くの時間が必要となる。
【００２７】
ピックアップの移動距離が短い場合には、ピックアップを必要な場所に移動させる時間よりも、フォーカス合わせを行ない、指定された場所のデータリードを可能とするまでの時間の方が長い。したがって、複数回の近距離移動を行ないながら、必要部分のみのデータ読出を行なうと、不要部分まで含めて一括して連続的にデータ読出を行なうよりも長い時間が必要となる。
【００２８】
しかしながら、不要なデータまで含めて一括してデータを読込むことは、メモリ使用効率が悪くなることを意味する。また、ＭＭＵ使用の場合は、メモリ上でそのような連続した物理アドレス領域を確保することができない場合が多い。
【００２９】
［問題点３］
ナビゲーション装置においては、データ読出装置のモータに掛かるストレスがパーソナルコンピュータなどに比べ大きい。
【００３０】
ナビゲーション装置においては、メッシュ状に分割された地図データを読込み、データ処理を行なうため、ディスク状の記憶媒体から連続した大量のデータを読込む場合は少ない。すなわち、ディスク状の記憶媒体からは小刻みにお互いに近くにあるデータを不連続に読出すことが多い。そのため、データ読出におけるピックアップの位置制御を行なうモータは起動、高速回転、読出中の低速回転、および停止を繰返すことになり、モータにはストレスの掛かる起動、および停止の生じる頻度が高くなる。
【００３１】
したがって、ナビゲーション装置におけるモータは使用される部品の中で摩耗および故障しやすいものとなっている。特にナビゲーション装置を車両に搭載する場合には、温度や振動などの動作環境の条件も悪く、モータに対し極力ストレスを与えない配慮が必要である。
【００３２】
［問題点４］
記憶媒体から転送されるデータのデータバス幅に対して、メモリのデータバス幅が広いため、ＣＰＵのバス使用効率が悪いという問題点が従来のデータ転送管理装置にはあった。
【００３３】
すなわち、ディスク読取装置から転送されるデータのビット幅は８ビットまたは１６ビットであるが、最近においてナビゲーション装置の高機能化に伴い、３２ビットＣＰＵが用いられることが多い。すなわち、メモリのデータ幅は３２ビットである。したがって、記憶媒体のデータバス幅が８ビットの場合は、１回のＤＭＡ転送にて有効な部分はＣＰＵデータバスの１／４であり、無駄が多い。
【００３４】
そこでこの発明の目的は、効率的なデータ転送を行なうことができるナビゲーション装置を提供することである。
【００３５】
この発明の他の目的は、処理速度の速いナビゲーション装置を提供することである。
【００３６】
この発明のさらに他の目的は、装置に掛かるストレスを小さくすることができるナビゲーション装置を提供することである。
【００３７】
この発明のさらに他の目的は、データ転送を有効に行なうことができるナビゲーション装置を提供することである。
【００３８】
【課題を解決するための手段】
上記目的を達成するためこの発明のある局面に従うと、ナビゲーション装置は、
車両に搭載可能なナビゲーション装置であって、
ディスク状の記憶媒体からデータの読出を行なうディスク読取装置と、
前記ディスク読取装置が読出したデータを格納するメモリと、
前記ディスク読取装置と前記メモリとのそれぞれに接続され、それぞれを制御するＤＭＡ処理部と、
前記ディスク読取装置と前記メモリと前記ＤＭＡ処理部とのそれぞれに接続され、装置全体を制御する中央制御装置と、
データの転送アドレスと転送するデータのサイズと転送の制御のためのフラグとを含むコマンドを少なくとも１つ記憶する記憶手段とを備え、
前記メモリは、前記中央制御装置を介して前記ディスク読取装置と接続されるルートとは別に前記ＤＭＡ処理部を介して前記ディスク読取装置と接続され、前記ディスク読取装置から前記ＤＭＡ処理部を介した前記メモリへのデータの書込は前記中央制御装置の動作とは独立して行なうことが可能で、
前記記憶手段は、前記データの転送アドレスと前記転送するデータのサイズとのうちの少なくとも１つを簡略化して記憶し、該簡略化して記憶されたコマンドは１回の読出動作で読出が可能であり、
前記ディスク読取装置は、前記ディスク状の記憶媒体から、転送不要なデータをも含む連続したデータの読出を行ない、
前記ＤＭＡ処理部は、
前記ディスク読取装置からのデータを一時的にラッチするレジスタを備え、
前記記憶手段に記憶されたコマンドに基づいて前記ディスク読取装置が読出したデータのうち、前記転送不要なデータを除いて前記メモリに格納させ、
前記レジスタが前記中央制御装置のデータバス幅分のデータをラッチしたときに、該ラッチしたデータを転送する。
【００３９】
この発明によると、ディスク状の記憶媒体から転送不要なデータを含む連続したデータの読出が行なわれ、転送不要なデータを除いたデータがメモリに格納されるため、効率的なデータ転送を行なうことができ、処理速度が速く装置に掛かるストレスを小さくすることができるナビゲーション装置を提供することが可能となる。
【００４１】
さらにレジスタが中央制御装置のデータバス幅分のデータをラッチしたときに、該ラッチしたデータを転送するため、データの転送を有効に行なうことができる。
また、１回の読出動作により１つのコマンドの読出ができるため、より効率的な処理を行なうことができる。
【００４２】
好ましくは、中央処理装置は、エンディアン制御情報を出力し、レジスタにおけるデータの格納順序はエンディアン制御情報に基づいて変化することを特徴とする。
【００４３】
この発明によると上述の効果に加えて、エンディアンが異なる場合にもデータの転送を容易に行なうことができる。
【００４８】
【発明の実施の形態】
［第１の実施の形態］
図１は、本発明の第１の実施の形態におけるデータ転送管理装置を備えたナビゲーション装置の構成を示すブロック図である。
【００４９】
図を参照して、ナビゲーション装置は、装置全体の制御を行なうＣＰＵ１０１と、装置が起動されたときに実行されるプログラムなどを記憶するＲＯＭ１０９と、ＧＰＳや車速検出部やジャイロセンサなどにより構成され、車両の現在位置を検出する位置検出部１１１と、車両の現在位置に車両の付近の地図を重畳して表示するディスプレイ１１３と、車両の目的地などを入力する入力装置１１５と、ディスク状の記憶媒体からのデータや後述する転送コマンドデータ列を記憶するメモリ１０５と、ディスク状の記憶媒体およびメモリ１０５へのダイレクトメモリアクセスの制御を行なうＤＭＡ処理部１０３と、ディスク状の処理媒体からデータを読取り、出力するディスク読取装置１０７とから構成されている。
【００５０】
メモリ１０５とＤＭＡ処理部１０３、ＤＭＡ処理部１０３とディスク読取装置１０７はそれぞれ接続されているため、ディスク読取装置１０７からＤＭＡ処理部１０３を介したメモリ１０５へのデータの書込はＣＰＵ１０１の動作とは独立して行なうことができる。
【００５１】
図２は、図１のナビゲーション装置に含まれるデータ転送管理装置の構成を示すブロック図である。本実施の形態におけるデータ転送管理装置は、図１１に示される従来の装置と比較して、メモリ１０５に転送コマンドデータ列記憶部１０５ａ（図３）を備えることを特徴としている。
【００５２】
転送コマンドデータ列は、少なくとも１つの転送コマンドデータを含む。１つの転送コマンドデータは、転送バイト数情報と、転送先アドレス情報と、転送制御フラグとを含む。
【００５３】
ここに、転送バイト数情報とは、転送を行なうデータのサイズを示す情報であり、転送先アドレス情報とは、データを記憶させるメモリ１０５内のアドレスに関する情報である。
【００５４】
転送制御フラグは、転送の状態を制御するためのフラグであり、「００」であるときには、ディスク１０９より読出されたデータは、そのままメモリ１０５に記憶される。
【００５５】
転送制御フラグが「１０」であるときには、ディスク１０９より読出されたデータは、メモリ１０５には記憶されない。
【００５６】
転送制御フラグが「０１」であるときには、ディスク１０９より読出されたデータは、そのままメモリ１０５に記憶される。また、このとき読出と記憶が終了した時点ですべての処理が終了される。
【００５７】
転送コマンドデータ列の転送バイト数情報（たとえばｌ１）と、転送先アドレス情報（たとえばｗｗｗｗ）は、ＤＭＡ処理部１０３によりそれぞれ実転送バイト数（たとえばＬ１）と物理アドレス（たとえばＷＷＷＷ）に変換される。
【００５８】
図３は、転送バイト数情報と転送先アドレス情報との変換方法について説明するための図である。
【００５９】
本実施の形態では、転送先アドレスや転送バイト数のデータを転送先アドレス情報や転送バイト数情報に簡略化してメモリに記憶している。これにより、コマンド列格納に必要なメモリの使用量を削減するとともに、ＤＭＡ処理部１０３が１回のメモリアクセスでデータ転送処理に必要なすべての情報を獲得することができる。
【００６０】
たとえば地図データのような情報を処理する場合、一般的にはデータはある規定の単位で管理されている。そのため、データ量はどのような値でも取り得るわけではない。
【００６１】
たとえば、２５６バイト、５１２バイト、１０２４バイトといった２のｎ乗の単位でデータの管理は行なわれている。したがって、転送先アドレスや転送バイト数もこのような単位の倍数の値で設定されることとなる。すなわち、設定される値の下位の複数ビットはすべて「０」となる。
【００６２】
また、アドレスバスが３２ビット（４Ｇバイト空間）あるＣＰＵであっても、実際にデータ転送に使用されるメモリ領域は８Ｍバイト、１６Ｍバイトといった範囲でしかない。そのため、転送先メモリアドレスの上位側ビットは固定値である。したがってこの固定値は、ＤＭＡ処理部１０３の内部に保存しておけばよい。
【００６３】
以上の理由により、転送先アドレスの設定にあたっては、上位側ビットおよび下位側ビットは不要であり、転送バイト数の設定においても下位ビットは不要である。したがって、それぞれの必要な部分のみで転送コマンドデータ列を編集し、１回のメモリの読出でデータ転送に必要なすべての情報を獲得することが可能となる。
【００６４】
図２および図３において、データの管理単位を１０２４バイト、データ転送に使用するアドレス空間を１６Ｍバイトとすると、図４に示されるように、転送バイト数情報ｌ１と転送先アドレス情報ｗｗｗｗとを、実転送バイト数Ｌ１と転送先アドレス（物理アドレス）ＷＷＷＷに変換することが可能となる。
【００６５】
一方で、ディスクにおけるデータの管理単位も決められている。たとえばディスクとしてＣＤ−ＲＯＭを用いた場合は、１セクタが２０４８バイトとなっており、ディスク読出装置からのデータ転送量は２０４８×ｎの値となる。
【００６６】
したがって、前述の例のようにＣＰＵ側のデータ管理単位が１０２４バイトであった場合、必要なデータが１０２４バイトであっても、２０４８バイトのデータを転送する必要がある。このことよりメモリに不要なデータを格納する場合が生じる。しかしながら、本実施の形態においてはこのような場合でも、転送コマンドデータ列によってデータをメモリに記憶しない設定にすることで、ディスク読出装置の管理単位以下の必要なデータのみをメモリに転送することができ、メモリを有効使用することができる。
【００６７】
図５から図７は、図２に示される転送コマンドデータ列が設定されるときのＣＰＵ１０１とＤＭＡ処理部１０３とディスク読取装置１０７との間のデータの流れを示す図である。
【００６８】
図２に示される転送コマンドデータ列により、ディスク内の連続したデータ領域Ａ，Ｂ，Ｃのうち、領域Ａのデータ（データサイズＬバイト）をメモリの物理アドレスＷＷＷＷアドレスからＬ１サイズ分、ＸＸＸＸアドレスからＬ２サイズ分（ここでＬ＝Ｌ１＋Ｌ２である）転送し、さらに領域Ｃのデータ（データサイズＮバイト）をメモリ領域ＺＺＺＺからＮサイズ分転送する処理が行なわれる。
【００６９】
なお領域Ｂ（データサイズＭバイト）は不要のデータである。
ここで、ＣＰＵデータバスは３２ビット、ローカルバス幅は８ビット、エンディアンはリトルエンディアンである場合を想定している。
【００７０】
図５〜図７を参照して、ステップ（Ｉ）において、ＣＰＵ１０１はメモリ１０５のアドレスＡＡＡＡからコマンド列を格納する。ＣＰＵ１０１は、ＤＭＡ処理部１０３へコマンド列の先頭アドレスを設定する。ＣＰＵ１０１は、ディスク読取装置１０７へ、領域Ａの先頭からＬ１サイズ分のデータを出力する旨要求する。
【００７１】
ステップ（ＩＩ）において、ＤＭＡ処理部１０３はＣＰＵ１０１に対しＣＰＵのバスの使用要求を送信する。ＣＰＵ１０１はＤＭＡ処理部１０３へＣＰＵバスの使用許可を出力する。ＤＭＡ処理部１０３は、メモリ１０５に対しアドレスＡＡＡＡを出力し、メモリ１０５からそのアドレスのデータを読出す。
【００７２】
ＤＭＡ処理部１０３は、読出されたデータに基づき、転送先アドレス情報ｗｗｗｗを物理アドレスＷＷＷＷに変換し、それを転送先アドレスとして設定する。また、転送バイト数情報ｌ１を実転送バイト数Ｌ１に変換し、それをバイト数として設定する。また、読出されたデータに基づき転送制御フラグ「００」を内部に設定する。そして、コマンド列アドレスをＡＡＡＡ＋４とする。
【００７３】
このときディスク読取装置１０７では、領域Ａの先頭の最初のセクタの読取を終了しデータの転送を開始している。
【００７４】
ステップ（ＩＩＩ）において、ディスク読取装置１０７は、ＤＭＡ処理部１０３に対し１バイト目のデータ転送要求を出力する。ＤＭＡ処理部１０３はこれを受けて、ＣＰＵ１０１に対しＣＰＵバスの使用要求を出力する。ＣＰＵ１０１は、ＤＭＡ処理部１０３に対しＣＰＵバスの使用許可を出力する。
【００７５】
ＤＭＡ処理部１０３はメモリ１０５に対し、アドレスＷＷＷＷを出力し、ディスク読取装置１０７に対しデータ転送許可を出力する。すると、ディスク読取装置１０７からＤＭＡ処理部１０３を介してメモリ１０５へ１バイト目のデータが転送され、データの書込が行なわれる。そして、ＤＭＡ処理部１０３は転送先アドレスを１インクリメントし、転送バイト数を１デクリメントする。以下、図５の▲３▼で示される処理が繰返し行なわれる。
【００７６】
ディスク読取装置１０７は、Ｌ１分のデータを読取った後も連続して動作を行なう。
【００７７】
ステップ（ＩＶ）において、ディスク読取装置１０７は、ＤＭＡ処理部１０３に対しＬ１バイト目のデータの転送要求を出力する。ＤＭＡ処理部１０３は、ＣＰＵへバスの使用要求を出力し、ＣＰＵ１０１はＤＭＡ処理部１０３に対しＣＰＵバス使用許可を出力する。
【００７８】
その後、ＤＭＡ処理部１０３はメモリ１０５に対しアドレスＷＷＷＷ＋Ｌ１を出力し、ディスク読取装置１０７に対しデータ転送許可を与える。
【００７９】
ディスク読取装置１０７からＬ１バイト目のデータがＤＭＡ処理部１０３を介しメモリ１０５へ転送され、データの書込が行なわれる。
【００８０】
ここで、転送バイト数を１デクリメントすると「０」となるため、１回目のコマンド処理を終了したことをＤＭＡ処理部１０３は検出する。
【００８１】
次にＤＭＡ処理部１０３は、コマンド列アドレスＡＡＡＡ＋４から読出したデータに基づき、転送先アドレス情報ｘｘｘｘを物理アドレスＸＸＸＸに変換し、転送先アドレスとして設定する。また、転送バイト数情報ｌ２を実転送バイト数Ｌ２に変換し、バイト数として設定する。また、転送制御フラグ「００」を内部に設定する。この状態で、図５の▲４▼の処理が行なわれる。
【００８２】
次に、ステップ（Ｖ）において、ＤＭＡ処理部１０３はＣＰＵ１０１に対しＣＰＵバス使用要求を出力する。ＣＰＵ１０１は、ＣＰＵバス使用許可をＤＭＡ処理部１０３へ送信する。
【００８３】
ＤＭＡ処理部１０３は、メモリ１０５に対しアドレスＡＡＡＡ＋８を出力し、メモリ１０５からデータを読出す。読出されたデータに基づき、ＤＭＡ処理部１０３は転送先アドレス情報ｙｙｙｙを物理アドレスＹＹＹＹに変換し、転送先アドレスとして設定する。また、転送バイト数情報ｍを実転送バイト数Ｍに変換し、バイト数として設定する。また転送制御フラグ「１０」を内部に設定する。さらに、コマンド列アドレスをＡＡＡＡ＋１２とする。
【００８４】
このときディスク読取装置は領域Ａのデータ読取後においても連続して領域Ｂのデータの読取を行なっている。
【００８５】
ステップ（ＶＩ）において、ディスク読取装置１０７は、ＤＭＡ処理部１０３に対し領域Ｂの１バイト目のデータ転送要求を出力する。これを受けてＤＭＡ処理部１０３はデータ転送許可をディスク読取装置１０７へ送信する。ディスク読取装置１０７は、データ転送許可に基づき１バイト目のデータをＤＭＡ処理部１０３へ送信する。
【００８６】
しかしながら、この処理において転送制御フラグが「１０」と設定されているため、メモリ１０５へのデータ転送処理は実施されない。これにより、ディスク読取装置１０７からデータの読取は行なわれるが、メモリ１０５へデータが記憶されることはない。
【００８７】
ＤＭＡ処理部１０３は１つのデータの転送が行なわれるたびに、転送先アドレスを１インクリメントし、転送バイト数を１デクリメントする。
【００８８】
そして、図６の▲５▼に示される処理が繰返し行なわれる。領域Ｂのデータの読取が終了した後も、ディスク読取装置１０７は連続して領域Ｃのデータを読取る。
【００８９】
Ｍバイト目のデータの転送要求がディスク読取装置１０７からＤＭＡ処理部１０３へ送信されたのであれば、ＤＭＡ処理部１０３はディスク読取装置１０７へデータの転送許可を与える。これに基づき、ディスク読取装置１０７はＭバイト目のデータをＤＭＡ処理部１０３に対し転送する。
【００９０】
そしてＤＭＡ処理部１０３は転送バイト数を１デクリメントした結果が「０」になったことを検出することで、３回目のコマンド処理を終了したことを検知する。
【００９１】
次に、ステップ（ＶＩＩ）において、ＤＭＡ処理部１０３は、ＣＰＵ１０１に対しＣＰＵバスの使用要求を出力する。これを受けてＣＰＵ１０１は、ＤＭＡ処理部１０３へＣＰＵバスの使用許可を出力する。
【００９２】
ＤＭＡ処理部１０３は、アドレスＡＡＡＡ＋１２をメモリ１０５に対し出力することでデータの読出を行なう。ＤＭＡ処理部１０３は、転送先アドレス情報ｚｚｚｚを物理アドレスＺＺＺＺに変換し、転送先アドレスとして設定する。また、転送バイト数情報ｎを実転送バイト数Ｎに変換し、バイト数として設定する。さらに、転送制御情報フラグ「０１」を内部に設定する。また、コマンド列アドレスをＡＡＡＡ＋１６とする。
【００９３】
ステップ（ＶＩＩＩ）において、ディスク読取装置１０７は領域Ｃの１バイト目のデータの転送要求をＤＭＡ処理部１０３に対し出力する。これを受けて、ＤＭＡ処理部１０３はＣＰＵ１０１に対しＣＰＵバスの使用要求を出力する。
【００９４】
ＣＰＵ１０１は、ＤＭＡ処理部１０３に対しＣＰＵバスの使用許可を出力する。これを受けて、ＤＭＡ処理部１０３はメモリ１０５にアドレスＺＺＺＺを出力し、ディスク読取装置１０７にデータ転送許可を与える。
【００９５】
ディスク読取装置１０７からＤＭＡ処理部１０３を介し１バイト目のデータが転送されることで、メモリ１０５へのデータの書込が行なわれる。
【００９６】
ＤＭＡ処理部１０３は転送先アドレスを１インクリメントし、転送バイト数を１デクリメントする。
【００９７】
以下図７の▲６▼に示される処理が繰返し行なわれる。
ディスク読取装置１０７は、領域Ｃのデータの読取を終了した後、ディスクの回転を停止させる。その後ステップ（ＩＶ）において、ディスク読取装置１０７はＤＭＡ処理部１０３に対しＮバイト目のデータの転送要求を出力する。これを受けてＤＭＡ処理部１０３は、ＣＰＵ１０１に対しＣＰＵバスの使用要求を出力する。ＣＰＵ１０１は、ＤＭＡ処理部１０３に対しＣＰＵバスの使用許可を出力する。
【００９８】
ＤＭＡ処理部１０３は、アドレスＺＺＺＺ＋Ｎをメモリ１０５に対して送信し、ディスク読取装置１０７へデータの転送許可を与える。
【００９９】
ディスク読取装置１０７は、ＤＭＡ処理部１０３を介してメモリ１０５に対しＮバイト目のデータ転送を行なう。これによりメモリ１０５に対するデータの書込が行なわれる。
【０１００】
ＤＭＡ処理部１０３は、転送バイト数を１デクリメントした結果が０になったことに基づき、４回目のコマンド処理が終了したことを検出する。そして、転送制御フラグが「０１」であることから、コマンド列の終了を判定し、全処理を終了する。全処理の終了は割込によりＣＰＵ１０１に通知される。
【０１０１】
以上のように本実施の形態においては、１回のＤＭＡ処理部へのコマンドの発行と１回のディスク読取装置へのデータ要求に基づいて、不連続なメモリ領域にディスクの不連続な領域のデータを転送することができる。
【０１０２】
なお、ここでＤＭＡの制御コマンド列を事前に準備するため、ＣＰＵの負荷が発生するように思われるが、従来の分割されたＤＭＡ転送の方式においても、メモリのどの部分にディスク状のどの領域のデータを転送するべきかの情報は当然メモリの任意の部分に格納されている。したがって、今回のコマンド列の作成においては、単にコマンド列の情報を書込む形態と順番とを変えているだけであり、ＣＰＵの処理負荷が従来の技術と比較して増えることはない。
【０１０３】
［第２の実施の形態］
第２の実施の形態においては、ＤＭＡ転送処理部において、ディスク読出装置からのデータを一旦データラッチレジスタに取込むことを特徴としている。データラッチレジスタにＣＰＵのバス幅分のデータが記憶された時点でデータ転送は行なわれる。
【０１０４】
以下においては本発明の第２の実施の形態におけるナビゲーション装置が第１の実施の形態と異なる部分について説明する。
【０１０５】
図８は、本発明の第２の実施の形態におけるＤＭＡ処理部１０３の内部構成を示す図である。図を参照して、ＤＭＡ処理部１０３は、実行する転送コマンドのアドレスを記憶するコマンド列アドレスカウンタ１０３ａと、転送先アドレスを記録するデータ転送先アドレスカウンタ１０３ｂと、転送制御フラグを記憶する転送制御フラグレジスタ１０３ｃと、バス制御部１０３ｄと、転送されたデータのバイト数をカウントするためのデータ転送数カウンタ１０３ｅと、ディスク読取装置１０７から送られてきた８ビットのデータを４回ラッチすることで、３２ビットのデータを作り出力するデータラッチレジスタ１０３ｆと、セレクタ１０３ｇとから構成されている。
【０１０６】
図９は、ＤＭＡ処理部１０３のデータラッチレジスタ１０３ｆとセレクタ１０３ｇとの動作を説明するための図である。
【０１０７】
図において、▲７▼で示される部分が、図５の▲３▼または図７の▲６▼の動作を４回繰返した動作に相当する。
【０１０８】
すなわち、図９に示されるように本実施の形態においては第１の実施の形態と比較してメモリへのデータの書込回数が１／４となる。したがって、データ転送によりＣＰＵのデータバスを使用する頻度が下がるため、その分ＣＰＵデータバスを有効に使用できることとなる。
【０１０９】
より詳しくは図９を参照して、ディスク読取装置１０７はＤＭＡ処理部１０３に対し４ｉバイト目のデータ転送要求を出力する。ＤＭＡ処理部１０３はこれを受けてディスク読取装置１０７へデータ転送を許可する。ディスク読取装置１０７は、４ｉバイト目のデータをＤＭＡ処理部処理部１０３に対し出力する。
【０１１０】
ＤＭＡ処理部１０３は、３２ビットにより構成されるデータラッチレジスタ１０３ｆのビット７〜０に転送されたデータを格納する。そして、転送先アドレスを１インクリメントし、転送バイト数を１デクリメントする。
【０１１１】
次に、ディスク読取装置１０７はＤＭＡ処理部１０３に対し４ｉ＋１バイト目のデータの転送要求を出力する。ＤＭＡ処理部１０３がデータ転送許可をディスク読取装置１０７に対し出力すると、ディスク読取装置１０７はＤＭＡ処理部１０３に対し４ｉ＋１バイト目のデータを転送する。
【０１１２】
するとＤＭＡ処理部１０３は、データラッチレジスタ１０３ｆのビット１５〜８にデータを格納する。その後、転送先アドレスは１インクリメントされ、転送バイト数は１デクリメントされる。
【０１１３】
次に、ディスク読取装置１０７は、ＤＭＡ処理部１０３に対し４ｉ＋２バイト目のデータの転送要求を出力する。ＤＭＡ処理部１０３からデータの転送許可がディスク読取装置１０７に対してなされると、ディスク読取装置１０７はＤＭＡ処理部１０３に対し４ｉ＋２バイト目のデータを転送する。
【０１１４】
ＤＭＡ処理部１０３はデータラッチレジスタ１０３ｆのビット２３〜１６にデータを格納する。その後、転送先アドレスは１インクリメントされ、転送バイト数は１デクリメントされる。
【０１１５】
次にディスク読取装置１０７からＤＭＡ処理部１０３に対し４ｉ＋３バイト目のデータの転送要求がなされる。ＤＭＡ処理部１０３からディスク読取装置１０７へデータの転送許可がなされると、ディスク読取装置１０７からＤＭＡ処理部１０３に対し４ｉ＋３バイト目のデータの転送が行なわれる。
【０１１６】
ＤＭＡ処理部１０３は、データラッチレジスタ１０３ｆのビット３１〜２４にデータを格納する。
【０１１７】
その後、ＤＭＡ処理部１０３はＣＰＵ１０１に対しＣＰＵのバスの使用要求を出力する。ＣＰＵ１０１からＤＭＡ処理部１０３に対しＣＰＵのバス使用許可がなされると、ＤＭＡ処理部１０３は、メモリ１０５に対しアドレスＪＪＪＪを出力し、データの書込を行なう。その後、ＤＭＡ処理部１０３は転送先アドレスを１インクリメントし、転送バイト数を１デクリメントする。
【０１１８】
なお、図９においてはリトルエンディアンの設定がなされた場合について説明したが、ＤＭＡ処理部にエンディアン情報として、ビッグエンディアンの設定がなされた場合には、データ転送の順番とデータラッチレジスタへのデータ格納位置の関係が変更となる。より詳しくは、
４ｉバイト目のデータ→データラッチレジスタのビット３１〜２４
４ｉ＋１バイト目のデータ→データラッチレジスタのビット２３〜１６
４ｉ＋２バイト目のデータ→データラッチレジスタのビット１５〜８
４ｉ＋３バイト目のデータ→データラッチレジスタのビット７〜０
となる。このような順序でデータを格納することで、容易にエンディアンの変換がなされることになる。
【０１１９】
このように、ＣＰＵによりエンディアン情報を出力させ、それに基づいてレジスタにおけるデータの格納順序を変化させることで、ＣＰＵによるエンディアン変換処理を不要とすることができる。
【０１２０】
［変形例］
転送コマンドデータ列として、図１０に示されるコマンド列を用いてもよい。
【０１２１】
図１０に示されるコマンド列は、
（１）  転送先物理アドレスＷＷＷＷに転送バイト数Ｌ１バイトのデータを転送し、
（２）  転送先物理アドレスＸＸＸＸに転送バイト数Ｌ２バイトのデータを転送し、
（３）  転送バイト数Ｍバイトのデータをディスク読取装置からＤＭＡ処理部に対してのみ転送し、メモリへの格納は行なわず（ダミーの転送先アドレスとしてＹＹＹＹを設定している。したがってＹＹＹＹは適当な値でよい）、
（４）  転送先物理アドレスＺＺＺＺに転送バイト数Ｎバイトのデータを転送する処理を一括して行なうコマンド列である。
【０１２２】
この場合のＤＭＡ処理部の動作は、
（１）  アドレスＡＡＡＡからコマンドのデータ量（コマンド情報量）を読出し、メモリ上のどこまでがコマンド列を意味するデータであるかを識別する。
【０１２３】
（２）  ＡＡＡＡ＋４のアドレスから最初のコマンドとしてのデータ転送先物理アドレスを読出し、内部の転送アドレスカウンタにセットする。
【０１２４】
（３）  ＡＡＡＡ＋８のアドレスから最初のコマンドのデータ転送バイト数を読出し、内部の転送バイト数カウンタにセットする。
【０１２５】
（４）  ＡＡＡＡ＋１２から最初のコマンドのディスク読出装置からの転送データをメモリに書込む必要性の有無の情報を読出し、内部のフラグレジスタにセットする。
【０１２６】
（５）  最初のコマンドが終了すると、ＡＡＡＡ＋１６のアドレスから２回目のコマンドとしてのデータ転送先物理アドレスを読出し、内部の転送アドレスカウンタにセットする。
【０１２７】
（６）  ＡＡＡＡ＋２０のアドレスから２回目のコマンドとしてのデータ転送バイト数を読出し、内部の転送バイト数カウンタにセットする。
【０１２８】
（７）  ＡＡＡＡ＋２４のアドレスから２回目のコマンドのディスク読出装置からの転送データをメモリに書込む必要性の有無の情報を読出し、内部のフラグレジスタにセットする。
【０１２９】
以下、同様の動作を繰返し、最初に読込んだコマンド情報量のコマンド列データの処理が終了したら、全コマンド終了と判定する。
【０１３０】
本実施の形態においては、ＤＭＡ転送処理部にコマンド情報量を格納し演算する回路が必要となる。転送制御フラグの部分に次のアドレスに格納されているデータがＤＭＡ転送処理部に対するコマンド列を意味するかどうかの情報を１ビット追加することで、メモリの使用量を削減し、ＤＭＡ転送処理部のコマンド列の終了判定を容易にすることもできる。
【０１３１】
［実施の形態における効果］
上述の実施の形態においては以下の効果を有する。
【０１３２】
ＣＰＵからは、ＤＭＡ処理部とディスク読取装置に対しそれぞれ１回ずつの制御を行なうことで不連続のメモリ領域にディスク状の不連続の領域のデータを転送することができる。これにより、ＣＰＵの処理負荷を低減させる効果が大きい。
【０１３３】
また、不要なデータがメモリに書込まれることもなく、不要なデータの転送中はローカルバスのみで転送処理を行なうことができるため、ＣＰＵのデータバスの使用効率に何ら影響を与えない。
【０１３４】
また、ディスクの近距離間でのデータ読出の場合には、データ読出のオーバヘッドがないため、データ転送時間の短縮が見込まれる。
【０１３５】
さらに、ディスク読取装置のピックアップを移動させるモータを安定した速度で連続的に動作させることができるため、モータの摩耗が少なくなりモータの寿命を延ばすことができる。
【０１３６】
また、第２の実施の形態においては、ＣＰＵのデータバス幅とディスク読取装置のデータバス幅の違いをデータラッチレジスタにより吸収することができる。これにより従来のデータ転送よりもＣＰＵのデータバスの使用頻度を減らすことができ、ＣＰＵのデータバスの使用効率が向上する。
【０１３７】
また、エンディアンの変換処理を行なうと、記憶媒体に格納されたデータとＣＰＵのエンディアンの違いを吸収することができる。またＣＰＵによるエンディアン変換処理を不要とすることができる。
【０１３８】
さらに、１回のメモリからのコマンドデータの読出によって転送開始アドレス、転送バイト数、転送制御の情報を得ることができ、ＤＭＡ処理部も簡単に構成することができる。
【０１３９】
今回開示された実施の形態はすべての点で例示であって制限的なものではないと考えられるべきである。本発明の範囲は上記した説明ではなくて特許請求の範囲によって示され、特許請求の範囲と均等の意味および範囲内でのすべての変更が含まれることが意図される。
【図面の簡単な説明】
【図１】本発明の第１の実施の形態におけるナビゲーション装置の構成を示すブロック図である。
【図２】図１に含まれるデータ転送管理装置の構成を示すブロック図である。
【図３】転送コマンドデータ列の具体例を示す図である。
【図４】転送バイト数情報および転送先アドレス情報を転送バイト数および転送先アドレスに変換する処理を説明するための図である。
【図５】データ転送管理装置の動作を説明するための図である。
【図６】図５に続く図である。
【図７】図６に続く図である。
【図８】第２の実施の形態におけるデータ転送管理装置の構成を示すブロック図である。
【図９】第２の実施の形態におけるデータ転送管理装置の動作を説明するための図である。
【図１０】実施の形態における変形例を説明するための図である。
【図１１】従来のデータ転送管理装置の構成を示すブロック図である。
【図１２】従来のデータ転送管理装置の動作を説明するための図である。
【符号の説明】
１０１  ＣＰＵ
１０３  ＤＭＡ処理部
１０５  メモリ
１０７  ディスク読取装置
１０９  ディスク
【図１】
0004330200.tif 000002
【図２】
0004330200.tif 000003
【図３】
0004330200.tif 000004
【図４】
0004330200.tif 000005
【図５】
0004330200.tif 000006
【図６】
0004330200.tif 000007
【図７】
0004330200.tif 000008
【図８】
0004330200.tif 000009
【図９】
0004330200.tif 000010
【図１０】
0004330200.tif 000011
【図１１】
0004330200.tif 000012
【図１２】
0004330200.tif 000013