JP4330200B2 - Navigation device - Google Patents
Navigation device Download PDFInfo
- Publication number
- JP4330200B2 JP4330200B2 JP4639599A JP4639599A JP4330200B2 JP 4330200 B2 JP4330200 B2 JP 4330200B2 JP 4639599 A JP4639599 A JP 4639599A JP 4639599 A JP4639599 A JP 4639599A JP 4330200 B2 JP4330200 B2 JP 4330200B2
- Authority
- JP
- Japan
- Prior art keywords
- data
- transfer
- processing unit
- disk
- memory
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Expired - Lifetime
Links
Images
Description
【0001】
【発明の属する技術分野】
この発明はナビゲーション装置に関し、特にディスク状の記憶媒体からデータをメモリに転送する装置であって、使用環境条件が厳しい車載機器などに好適なナビゲーション装置に関する。
【0002】
【従来の技術】
従来よりディスク状の記憶媒体(たとえばCD−ROM、DVDなど)からメモリへのデータ転送を行なう方式として、ダイレクトメモリアクセス(DMA)方式が知られている。これは中央処理装置(以下CPUという)がDMA処理部に対して、メモリにおいてデータを格納する先頭アドレスとデータの転送サイズとを指定することで、以降は記憶媒体から順番に送られてくるデータを、指定されたメモリアドレスから連続的にCPUの処理に依存せずにDMA処理部がデータ転送を行なう方式である。
【0003】
図11は、従来のデータ転送管理装置の構成を示すブロック図である。図を参照して、データ転送管理装置は、CPU101と、DMA処理部103と、メモリ105と、ディスク読取装置107と、ディスク109とから構成される。
【0004】
CPU101からの要求に基づき、ディスク109の所望の領域のデータがDMA処理部103によりメモリ105の所望のアドレスに転送される。
【0005】
CPU101は、ディスク読取装置107に対し、ディスク109の所望の領域のデータの転送を要求する(データ転送要求制御)。ディスク読取装置107は、DMA処理部103へデータ転送の要求を行なう。DMA処理部103は、ディスク読取装置107へデータ転送の許可を行なう。
【0006】
CPU101は、DMA処理部103の制御と、バスの使用許可とを行なう。DMA処理部103は、CPU101に対して転送終了通知やバス使用要求を出力する。
【0007】
ディスク109は、複数の領域(たとえば領域A〜C)に分割されており、それぞれの領域を単位としてデータは格納されている。
【0008】
ここでは、ディスク109の領域Aの一部である領域A1と領域A2とのデータを読出し、それぞれメモリ105のアドレスWWWW〜WWWW+L1の領域およびアドレスXXXX〜XXXX+L2の領域に格納し、領域Cからデータを読出し、メモリ105のアドレスZZZZ〜ZZZZ+Nの領域に格納する場合を想定する。
【0009】
すなわち、ディスク109の領域Bのデータはここでは不要のデータである。
【0010】
図12は、CPU101、メモリ105、DMA処理部103およびディスク読取装置107との間でのデータのやり取りを説明するための図である。
【0011】
まず、ステップ(I)において、CPU101は、DMA処理部103に対してメモリ105へのデータの格納を行なうスタートアドレスWWWWと、転送バイト数L1とを設定する。CPU101は、ディスク読取装置107に対し、ディスクの領域Aの先頭からL1サイズ(L1バイト)分のデータを出力するよう要求する。
【0012】
この要求を受けて、ディスク読取装置107は、停止状態から駆動状態に移行する。ディスク読取装置107のヘッドは、領域Aの先頭直前に移動し、データの読取の準備を行なう。その後、ディスク読取装置107において、領域Aの先頭の最初のセクタの読取が終了すると、データの転送が開始される。
【0013】
ステップ(II)において、ディスク読取装置107はDMA処理部103に対し、1バイト目のデータの転送要求を行なう。これを受けてDMA処理部103は、CPU101に対しCPUバスの使用要求を出力する。CPU101は、DMA処理部103に対しCPUバスの使用許可を出力する。
【0014】
その後、DMA処理部103は、メモリ105に対し転送先アドレスWWWWを通知し、一方ディスク読取装置107に対しデータ転送許可を行なう。その後、ディスク読取装置から1バイト目のデータがDMA処理部103を介し、メモリ105に書込まれる。
【0015】
このとき、DMA処理部103は転送先アドレスを1インクリメントし、転送バイト数を1デクリメントする。その後、図12における▲1▼で示される処理が繰返し行なわれる。ディスク読取装置107においてL1バイト分のデータの読取が終了したのであれば、ディスク109の回転が停止状態となる。
【0016】
ステップ(III)において、ディスク読取装置107からDMA処理部103に対し、L1バイト目のデータ転送要求が送られ、DMA処理部103がCPU101に対しCPUバスの使用要求を出力し、CPU101がDMA処理部103に対しCPUバスの使用許可を出力したのであれば、DMA処理部103は、メモリ105に対しアドレスWWWW+L1を指定し、ディスク読取装置107に対しデータ転送許可を与える。
【0017】
その後、ディスク読取装置107からDMA処理部103を介しL1バイト目のデータがメモリ105へ書込まれる。このとき、▲1▼で示される部分と同様に、転送先アドレスは1インクリメントされ、転送バイト数は1デクリメントされる。転送バイト数を1デクリメントすると「0」となるため、DMA処理部はデータの転送が終了したことを検出する。この検出結果に応じて、DMA処理部103はCPU101に対し転送終了の割込処理を行なう。
【0018】
図12において▲2▼で示されるステップ(I)〜(III)の動作がスタートアドレスXXXX、スタートアドレスZZZZに対しても同様に行なわれる。
【0019】
すなわち、CPU101は、DMA処理部103に対しスタートアドレスXXXX、転送バイト数L2を設定し、ディスク読取装置に領域Aの先頭+L1の位置からL2バイトのデータを要求する。その後、CPU101は、DMA処理部103に対し、スタートアドレスZZZZ、転送バイト数Nを設定し、ディスク読取装置に領域Cの先頭からNバイト分のデータの出力を要求する。
【0020】
この動作により、ディスク109の領域A1とA2のデータが、メモリ105のアドレスWWWW〜WWWW+L1およびアドレスXXXX〜XXXX+L2の領域に格納される。また、領域Cのデータが、メモリ105のアドレスZZZZ〜ZZZZ+Nの領域に格納される。
【0021】
【発明が解決しようとする課題】
しかしながら、従来のデータ転送管理装置には以下に述べる問題点があった。
【0022】
[問題点1]
従来のデータ転送管理装置においては、ディスク状の記憶媒体の不連続なデータ領域を、不連続のメモリ領域に転送する必要があるため、ディスクへのデータ転送要求やDMA処理部の制御頻度が高く、CPUのオーバヘッドが多い。
【0023】
特に、ナビゲーション装置などで使用される地図データは、メッシュという概念で格納されており、CPUが必要とする地図データは、ディスク状で離散的な状態で格納されている場合が多い。したがって、必要なデータのみ記憶媒体に対して要求するには、複数回のデータ転送要求を行なう必要がある。
【0024】
一方、CPU側でもメッシュの概念でデータの演算を行なっているため、地図表示を画面上で移動させる場合などにおいては、不要となるデータが離散的に発生する。すなわち、メモリの使用効率が悪くなるため、適宜必要なデータのみを連続的な領域に集約して、大きなメモリの連続空間を確保し、次のデータ転送が可能となるようにするガベージコレクションを行なう必要がある。
【0025】
しかしながら、ガベージコレクションを行なうと、データ整理のためにCPUの処理時間を使用することとなる。これに対し、論理アドレスと物理アドレスとの変換を行なうメモリマネージメントユニット(MMU)を使用することで、このようなデータ整理の時間がなくなるが、MMUを使用するとメモリの空き空間が細切れに離散的に発生するため、DMA処理部の制御頻度が高くなるというデメリットが発生する。
【0026】
[問題点2]
ディスク状においてピックアップの近距離の移動を繰返しながらデータを読むと、不要部分まで含めて一括してデータを読んだ場合より、多くの時間が必要となる。
【0027】
ピックアップの移動距離が短い場合には、ピックアップを必要な場所に移動させる時間よりも、フォーカス合わせを行ない、指定された場所のデータリードを可能とするまでの時間の方が長い。したがって、複数回の近距離移動を行ないながら、必要部分のみのデータ読出を行なうと、不要部分まで含めて一括して連続的にデータ読出を行なうよりも長い時間が必要となる。
【0028】
しかしながら、不要なデータまで含めて一括してデータを読込むことは、メモリ使用効率が悪くなることを意味する。また、MMU使用の場合は、メモリ上でそのような連続した物理アドレス領域を確保することができない場合が多い。
【0029】
[問題点3]
ナビゲーション装置においては、データ読出装置のモータに掛かるストレスがパーソナルコンピュータなどに比べ大きい。
【0030】
ナビゲーション装置においては、メッシュ状に分割された地図データを読込み、データ処理を行なうため、ディスク状の記憶媒体から連続した大量のデータを読込む場合は少ない。すなわち、ディスク状の記憶媒体からは小刻みにお互いに近くにあるデータを不連続に読出すことが多い。そのため、データ読出におけるピックアップの位置制御を行なうモータは起動、高速回転、読出中の低速回転、および停止を繰返すことになり、モータにはストレスの掛かる起動、および停止の生じる頻度が高くなる。
【0031】
したがって、ナビゲーション装置におけるモータは使用される部品の中で摩耗および故障しやすいものとなっている。特にナビゲーション装置を車両に搭載する場合には、温度や振動などの動作環境の条件も悪く、モータに対し極力ストレスを与えない配慮が必要である。
【0032】
[問題点4]
記憶媒体から転送されるデータのデータバス幅に対して、メモリのデータバス幅が広いため、CPUのバス使用効率が悪いという問題点が従来のデータ転送管理装置にはあった。
【0033】
すなわち、ディスク読取装置から転送されるデータのビット幅は8ビットまたは16ビットであるが、最近においてナビゲーション装置の高機能化に伴い、32ビットCPUが用いられることが多い。すなわち、メモリのデータ幅は32ビットである。したがって、記憶媒体のデータバス幅が8ビットの場合は、1回のDMA転送にて有効な部分はCPUデータバスの1/4であり、無駄が多い。
【0034】
そこでこの発明の目的は、効率的なデータ転送を行なうことができるナビゲーション装置を提供することである。
【0035】
この発明の他の目的は、処理速度の速いナビゲーション装置を提供することである。
【0036】
この発明のさらに他の目的は、装置に掛かるストレスを小さくすることができるナビゲーション装置を提供することである。
【0037】
この発明のさらに他の目的は、データ転送を有効に行なうことができるナビゲーション装置を提供することである。
【0038】
【課題を解決するための手段】
上記目的を達成するためこの発明のある局面に従うと、ナビゲーション装置は、
車両に搭載可能なナビゲーション装置であって、
ディスク状の記憶媒体からデータの読出を行なうディスク読取装置と、
前記ディスク読取装置が読出したデータを格納するメモリと、
前記ディスク読取装置と前記メモリとのそれぞれに接続され、それぞれを制御するDMA処理部と、
前記ディスク読取装置と前記メモリと前記DMA処理部とのそれぞれに接続され、装置全体を制御する中央制御装置と、
データの転送アドレスと転送するデータのサイズと転送の制御のためのフラグとを含むコマンドを少なくとも1つ記憶する記憶手段とを備え、
前記メモリは、前記中央制御装置を介して前記ディスク読取装置と接続されるルートとは別に前記DMA処理部を介して前記ディスク読取装置と接続され、前記ディスク読取装置から前記DMA処理部を介した前記メモリへのデータの書込は前記中央制御装置の動作とは独立して行なうことが可能で、
前記記憶手段は、前記データの転送アドレスと前記転送するデータのサイズとのうちの少なくとも1つを簡略化して記憶し、該簡略化して記憶されたコマンドは1回の読出動作で読出が可能であり、
前記ディスク読取装置は、前記ディスク状の記憶媒体から、転送不要なデータをも含む連続したデータの読出を行ない、
前記DMA処理部は、
前記ディスク読取装置からのデータを一時的にラッチするレジスタを備え、
前記記憶手段に記憶されたコマンドに基づいて前記ディスク読取装置が読出したデータのうち、前記転送不要なデータを除いて前記メモリに格納させ、
前記レジスタが前記中央制御装置のデータバス幅分のデータをラッチしたときに、該ラッチしたデータを転送する。
【0039】
この発明によると、ディスク状の記憶媒体から転送不要なデータを含む連続したデータの読出が行なわれ、転送不要なデータを除いたデータがメモリに格納されるため、効率的なデータ転送を行なうことができ、処理速度が速く装置に掛かるストレスを小さくすることができるナビゲーション装置を提供することが可能となる。
【0041】
さらにレジスタが中央制御装置のデータバス幅分のデータをラッチしたときに、該ラッチしたデータを転送するため、データの転送を有効に行なうことができる。
また、1回の読出動作により1つのコマンドの読出ができるため、より効率的な処理を行なうことができる。
【0042】
好ましくは、中央処理装置は、エンディアン制御情報を出力し、レジスタにおけるデータの格納順序はエンディアン制御情報に基づいて変化することを特徴とする。
【0043】
この発明によると上述の効果に加えて、エンディアンが異なる場合にもデータの転送を容易に行なうことができる。
【0048】
【発明の実施の形態】
[第1の実施の形態]
図1は、本発明の第1の実施の形態におけるデータ転送管理装置を備えたナビゲーション装置の構成を示すブロック図である。
【0049】
図を参照して、ナビゲーション装置は、装置全体の制御を行なうCPU101と、装置が起動されたときに実行されるプログラムなどを記憶するROM109と、GPSや車速検出部やジャイロセンサなどにより構成され、車両の現在位置を検出する位置検出部111と、車両の現在位置に車両の付近の地図を重畳して表示するディスプレイ113と、車両の目的地などを入力する入力装置115と、ディスク状の記憶媒体からのデータや後述する転送コマンドデータ列を記憶するメモリ105と、ディスク状の記憶媒体およびメモリ105へのダイレクトメモリアクセスの制御を行なうDMA処理部103と、ディスク状の処理媒体からデータを読取り、出力するディスク読取装置107とから構成されている。
【0050】
メモリ105とDMA処理部103、DMA処理部103とディスク読取装置107はそれぞれ接続されているため、ディスク読取装置107からDMA処理部103を介したメモリ105へのデータの書込はCPU101の動作とは独立して行なうことができる。
【0051】
図2は、図1のナビゲーション装置に含まれるデータ転送管理装置の構成を示すブロック図である。本実施の形態におけるデータ転送管理装置は、図11に示される従来の装置と比較して、メモリ105に転送コマンドデータ列記憶部105a(図3)を備えることを特徴としている。
【0052】
転送コマンドデータ列は、少なくとも1つの転送コマンドデータを含む。1つの転送コマンドデータは、転送バイト数情報と、転送先アドレス情報と、転送制御フラグとを含む。
【0053】
ここに、転送バイト数情報とは、転送を行なうデータのサイズを示す情報であり、転送先アドレス情報とは、データを記憶させるメモリ105内のアドレスに関する情報である。
【0054】
転送制御フラグは、転送の状態を制御するためのフラグであり、「00」であるときには、ディスク109より読出されたデータは、そのままメモリ105に記憶される。
【0055】
転送制御フラグが「10」であるときには、ディスク109より読出されたデータは、メモリ105には記憶されない。
【0056】
転送制御フラグが「01」であるときには、ディスク109より読出されたデータは、そのままメモリ105に記憶される。また、このとき読出と記憶が終了した時点ですべての処理が終了される。
【0057】
転送コマンドデータ列の転送バイト数情報(たとえばl1)と、転送先アドレス情報(たとえばwwww)は、DMA処理部103によりそれぞれ実転送バイト数(たとえばL1)と物理アドレス(たとえばWWWW)に変換される。
【0058】
図3は、転送バイト数情報と転送先アドレス情報との変換方法について説明するための図である。
【0059】
本実施の形態では、転送先アドレスや転送バイト数のデータを転送先アドレス情報や転送バイト数情報に簡略化してメモリに記憶している。これにより、コマンド列格納に必要なメモリの使用量を削減するとともに、DMA処理部103が1回のメモリアクセスでデータ転送処理に必要なすべての情報を獲得することができる。
【0060】
たとえば地図データのような情報を処理する場合、一般的にはデータはある規定の単位で管理されている。そのため、データ量はどのような値でも取り得るわけではない。
【0061】
たとえば、256バイト、512バイト、1024バイトといった2のn乗の単位でデータの管理は行なわれている。したがって、転送先アドレスや転送バイト数もこのような単位の倍数の値で設定されることとなる。すなわち、設定される値の下位の複数ビットはすべて「0」となる。
【0062】
また、アドレスバスが32ビット(4Gバイト空間)あるCPUであっても、実際にデータ転送に使用されるメモリ領域は8Mバイト、16Mバイトといった範囲でしかない。そのため、転送先メモリアドレスの上位側ビットは固定値である。したがってこの固定値は、DMA処理部103の内部に保存しておけばよい。
【0063】
以上の理由により、転送先アドレスの設定にあたっては、上位側ビットおよび下位側ビットは不要であり、転送バイト数の設定においても下位ビットは不要である。したがって、それぞれの必要な部分のみで転送コマンドデータ列を編集し、1回のメモリの読出でデータ転送に必要なすべての情報を獲得することが可能となる。
【0064】
図2および図3において、データの管理単位を1024バイト、データ転送に使用するアドレス空間を16Mバイトとすると、図4に示されるように、転送バイト数情報l1と転送先アドレス情報wwwwとを、実転送バイト数L1と転送先アドレス(物理アドレス)WWWWに変換することが可能となる。
【0065】
一方で、ディスクにおけるデータの管理単位も決められている。たとえばディスクとしてCD−ROMを用いた場合は、1セクタが2048バイトとなっており、ディスク読出装置からのデータ転送量は2048×nの値となる。
【0066】
したがって、前述の例のようにCPU側のデータ管理単位が1024バイトであった場合、必要なデータが1024バイトであっても、2048バイトのデータを転送する必要がある。このことよりメモリに不要なデータを格納する場合が生じる。しかしながら、本実施の形態においてはこのような場合でも、転送コマンドデータ列によってデータをメモリに記憶しない設定にすることで、ディスク読出装置の管理単位以下の必要なデータのみをメモリに転送することができ、メモリを有効使用することができる。
【0067】
図5から図7は、図2に示される転送コマンドデータ列が設定されるときのCPU101とDMA処理部103とディスク読取装置107との間のデータの流れを示す図である。
【0068】
図2に示される転送コマンドデータ列により、ディスク内の連続したデータ領域A,B,Cのうち、領域Aのデータ(データサイズLバイト)をメモリの物理アドレスWWWWアドレスからL1サイズ分、XXXXアドレスからL2サイズ分(ここでL=L1+L2である)転送し、さらに領域Cのデータ(データサイズNバイト)をメモリ領域ZZZZからNサイズ分転送する処理が行なわれる。
【0069】
なお領域B(データサイズMバイト)は不要のデータである。
ここで、CPUデータバスは32ビット、ローカルバス幅は8ビット、エンディアンはリトルエンディアンである場合を想定している。
【0070】
図5〜図7を参照して、ステップ(I)において、CPU101はメモリ105のアドレスAAAAからコマンド列を格納する。CPU101は、DMA処理部103へコマンド列の先頭アドレスを設定する。CPU101は、ディスク読取装置107へ、領域Aの先頭からL1サイズ分のデータを出力する旨要求する。
【0071】
ステップ(II)において、DMA処理部103はCPU101に対しCPUのバスの使用要求を送信する。CPU101はDMA処理部103へCPUバスの使用許可を出力する。DMA処理部103は、メモリ105に対しアドレスAAAAを出力し、メモリ105からそのアドレスのデータを読出す。
【0072】
DMA処理部103は、読出されたデータに基づき、転送先アドレス情報wwwwを物理アドレスWWWWに変換し、それを転送先アドレスとして設定する。また、転送バイト数情報l1を実転送バイト数L1に変換し、それをバイト数として設定する。また、読出されたデータに基づき転送制御フラグ「00」を内部に設定する。そして、コマンド列アドレスをAAAA+4とする。
【0073】
このときディスク読取装置107では、領域Aの先頭の最初のセクタの読取を終了しデータの転送を開始している。
【0074】
ステップ(III)において、ディスク読取装置107は、DMA処理部103に対し1バイト目のデータ転送要求を出力する。DMA処理部103はこれを受けて、CPU101に対しCPUバスの使用要求を出力する。CPU101は、DMA処理部103に対しCPUバスの使用許可を出力する。
【0075】
DMA処理部103はメモリ105に対し、アドレスWWWWを出力し、ディスク読取装置107に対しデータ転送許可を出力する。すると、ディスク読取装置107からDMA処理部103を介してメモリ105へ1バイト目のデータが転送され、データの書込が行なわれる。そして、DMA処理部103は転送先アドレスを1インクリメントし、転送バイト数を1デクリメントする。以下、図5の▲3▼で示される処理が繰返し行なわれる。
【0076】
ディスク読取装置107は、L1分のデータを読取った後も連続して動作を行なう。
【0077】
ステップ(IV)において、ディスク読取装置107は、DMA処理部103に対しL1バイト目のデータの転送要求を出力する。DMA処理部103は、CPUへバスの使用要求を出力し、CPU101はDMA処理部103に対しCPUバス使用許可を出力する。
【0078】
その後、DMA処理部103はメモリ105に対しアドレスWWWW+L1を出力し、ディスク読取装置107に対しデータ転送許可を与える。
【0079】
ディスク読取装置107からL1バイト目のデータがDMA処理部103を介しメモリ105へ転送され、データの書込が行なわれる。
【0080】
ここで、転送バイト数を1デクリメントすると「0」となるため、1回目のコマンド処理を終了したことをDMA処理部103は検出する。
【0081】
次にDMA処理部103は、コマンド列アドレスAAAA+4から読出したデータに基づき、転送先アドレス情報xxxxを物理アドレスXXXXに変換し、転送先アドレスとして設定する。また、転送バイト数情報l2を実転送バイト数L2に変換し、バイト数として設定する。また、転送制御フラグ「00」を内部に設定する。この状態で、図5の▲4▼の処理が行なわれる。
【0082】
次に、ステップ(V)において、DMA処理部103はCPU101に対しCPUバス使用要求を出力する。CPU101は、CPUバス使用許可をDMA処理部103へ送信する。
【0083】
DMA処理部103は、メモリ105に対しアドレスAAAA+8を出力し、メモリ105からデータを読出す。読出されたデータに基づき、DMA処理部103は転送先アドレス情報yyyyを物理アドレスYYYYに変換し、転送先アドレスとして設定する。また、転送バイト数情報mを実転送バイト数Mに変換し、バイト数として設定する。また転送制御フラグ「10」を内部に設定する。さらに、コマンド列アドレスをAAAA+12とする。
【0084】
このときディスク読取装置は領域Aのデータ読取後においても連続して領域Bのデータの読取を行なっている。
【0085】
ステップ(VI)において、ディスク読取装置107は、DMA処理部103に対し領域Bの1バイト目のデータ転送要求を出力する。これを受けてDMA処理部103はデータ転送許可をディスク読取装置107へ送信する。ディスク読取装置107は、データ転送許可に基づき1バイト目のデータをDMA処理部103へ送信する。
【0086】
しかしながら、この処理において転送制御フラグが「10」と設定されているため、メモリ105へのデータ転送処理は実施されない。これにより、ディスク読取装置107からデータの読取は行なわれるが、メモリ105へデータが記憶されることはない。
【0087】
DMA処理部103は1つのデータの転送が行なわれるたびに、転送先アドレスを1インクリメントし、転送バイト数を1デクリメントする。
【0088】
そして、図6の▲5▼に示される処理が繰返し行なわれる。領域Bのデータの読取が終了した後も、ディスク読取装置107は連続して領域Cのデータを読取る。
【0089】
Mバイト目のデータの転送要求がディスク読取装置107からDMA処理部103へ送信されたのであれば、DMA処理部103はディスク読取装置107へデータの転送許可を与える。これに基づき、ディスク読取装置107はMバイト目のデータをDMA処理部103に対し転送する。
【0090】
そしてDMA処理部103は転送バイト数を1デクリメントした結果が「0」になったことを検出することで、3回目のコマンド処理を終了したことを検知する。
【0091】
次に、ステップ(VII)において、DMA処理部103は、CPU101に対しCPUバスの使用要求を出力する。これを受けてCPU101は、DMA処理部103へCPUバスの使用許可を出力する。
【0092】
DMA処理部103は、アドレスAAAA+12をメモリ105に対し出力することでデータの読出を行なう。DMA処理部103は、転送先アドレス情報zzzzを物理アドレスZZZZに変換し、転送先アドレスとして設定する。また、転送バイト数情報nを実転送バイト数Nに変換し、バイト数として設定する。さらに、転送制御情報フラグ「01」を内部に設定する。また、コマンド列アドレスをAAAA+16とする。
【0093】
ステップ(VIII)において、ディスク読取装置107は領域Cの1バイト目のデータの転送要求をDMA処理部103に対し出力する。これを受けて、DMA処理部103はCPU101に対しCPUバスの使用要求を出力する。
【0094】
CPU101は、DMA処理部103に対しCPUバスの使用許可を出力する。これを受けて、DMA処理部103はメモリ105にアドレスZZZZを出力し、ディスク読取装置107にデータ転送許可を与える。
【0095】
ディスク読取装置107からDMA処理部103を介し1バイト目のデータが転送されることで、メモリ105へのデータの書込が行なわれる。
【0096】
DMA処理部103は転送先アドレスを1インクリメントし、転送バイト数を1デクリメントする。
【0097】
以下図7の▲6▼に示される処理が繰返し行なわれる。
ディスク読取装置107は、領域Cのデータの読取を終了した後、ディスクの回転を停止させる。その後ステップ(IV)において、ディスク読取装置107はDMA処理部103に対しNバイト目のデータの転送要求を出力する。これを受けてDMA処理部103は、CPU101に対しCPUバスの使用要求を出力する。CPU101は、DMA処理部103に対しCPUバスの使用許可を出力する。
【0098】
DMA処理部103は、アドレスZZZZ+Nをメモリ105に対して送信し、ディスク読取装置107へデータの転送許可を与える。
【0099】
ディスク読取装置107は、DMA処理部103を介してメモリ105に対しNバイト目のデータ転送を行なう。これによりメモリ105に対するデータの書込が行なわれる。
【0100】
DMA処理部103は、転送バイト数を1デクリメントした結果が0になったことに基づき、4回目のコマンド処理が終了したことを検出する。そして、転送制御フラグが「01」であることから、コマンド列の終了を判定し、全処理を終了する。全処理の終了は割込によりCPU101に通知される。
【0101】
以上のように本実施の形態においては、1回のDMA処理部へのコマンドの発行と1回のディスク読取装置へのデータ要求に基づいて、不連続なメモリ領域にディスクの不連続な領域のデータを転送することができる。
【0102】
なお、ここでDMAの制御コマンド列を事前に準備するため、CPUの負荷が発生するように思われるが、従来の分割されたDMA転送の方式においても、メモリのどの部分にディスク状のどの領域のデータを転送するべきかの情報は当然メモリの任意の部分に格納されている。したがって、今回のコマンド列の作成においては、単にコマンド列の情報を書込む形態と順番とを変えているだけであり、CPUの処理負荷が従来の技術と比較して増えることはない。
【0103】
[第2の実施の形態]
第2の実施の形態においては、DMA転送処理部において、ディスク読出装置からのデータを一旦データラッチレジスタに取込むことを特徴としている。データラッチレジスタにCPUのバス幅分のデータが記憶された時点でデータ転送は行なわれる。
【0104】
以下においては本発明の第2の実施の形態におけるナビゲーション装置が第1の実施の形態と異なる部分について説明する。
【0105】
図8は、本発明の第2の実施の形態におけるDMA処理部103の内部構成を示す図である。図を参照して、DMA処理部103は、実行する転送コマンドのアドレスを記憶するコマンド列アドレスカウンタ103aと、転送先アドレスを記録するデータ転送先アドレスカウンタ103bと、転送制御フラグを記憶する転送制御フラグレジスタ103cと、バス制御部103dと、転送されたデータのバイト数をカウントするためのデータ転送数カウンタ103eと、ディスク読取装置107から送られてきた8ビットのデータを4回ラッチすることで、32ビットのデータを作り出力するデータラッチレジスタ103fと、セレクタ103gとから構成されている。
【0106】
図9は、DMA処理部103のデータラッチレジスタ103fとセレクタ103gとの動作を説明するための図である。
【0107】
図において、▲7▼で示される部分が、図5の▲3▼または図7の▲6▼の動作を4回繰返した動作に相当する。
【0108】
すなわち、図9に示されるように本実施の形態においては第1の実施の形態と比較してメモリへのデータの書込回数が1/4となる。したがって、データ転送によりCPUのデータバスを使用する頻度が下がるため、その分CPUデータバスを有効に使用できることとなる。
【0109】
より詳しくは図9を参照して、ディスク読取装置107はDMA処理部103に対し4iバイト目のデータ転送要求を出力する。DMA処理部103はこれを受けてディスク読取装置107へデータ転送を許可する。ディスク読取装置107は、4iバイト目のデータをDMA処理部処理部103に対し出力する。
【0110】
DMA処理部103は、32ビットにより構成されるデータラッチレジスタ103fのビット7〜0に転送されたデータを格納する。そして、転送先アドレスを1インクリメントし、転送バイト数を1デクリメントする。
【0111】
次に、ディスク読取装置107はDMA処理部103に対し4i+1バイト目のデータの転送要求を出力する。DMA処理部103がデータ転送許可をディスク読取装置107に対し出力すると、ディスク読取装置107はDMA処理部103に対し4i+1バイト目のデータを転送する。
【0112】
するとDMA処理部103は、データラッチレジスタ103fのビット15〜8にデータを格納する。その後、転送先アドレスは1インクリメントされ、転送バイト数は1デクリメントされる。
【0113】
次に、ディスク読取装置107は、DMA処理部103に対し4i+2バイト目のデータの転送要求を出力する。DMA処理部103からデータの転送許可がディスク読取装置107に対してなされると、ディスク読取装置107はDMA処理部103に対し4i+2バイト目のデータを転送する。
【0114】
DMA処理部103はデータラッチレジスタ103fのビット23〜16にデータを格納する。その後、転送先アドレスは1インクリメントされ、転送バイト数は1デクリメントされる。
【0115】
次にディスク読取装置107からDMA処理部103に対し4i+3バイト目のデータの転送要求がなされる。DMA処理部103からディスク読取装置107へデータの転送許可がなされると、ディスク読取装置107からDMA処理部103に対し4i+3バイト目のデータの転送が行なわれる。
【0116】
DMA処理部103は、データラッチレジスタ103fのビット31〜24にデータを格納する。
【0117】
その後、DMA処理部103はCPU101に対しCPUのバスの使用要求を出力する。CPU101からDMA処理部103に対しCPUのバス使用許可がなされると、DMA処理部103は、メモリ105に対しアドレスJJJJを出力し、データの書込を行なう。その後、DMA処理部103は転送先アドレスを1インクリメントし、転送バイト数を1デクリメントする。
【0118】
なお、図9においてはリトルエンディアンの設定がなされた場合について説明したが、DMA処理部にエンディアン情報として、ビッグエンディアンの設定がなされた場合には、データ転送の順番とデータラッチレジスタへのデータ格納位置の関係が変更となる。より詳しくは、
4iバイト目のデータ→データラッチレジスタのビット31〜24
4i+1バイト目のデータ→データラッチレジスタのビット23〜16
4i+2バイト目のデータ→データラッチレジスタのビット15〜8
4i+3バイト目のデータ→データラッチレジスタのビット7〜0
となる。このような順序でデータを格納することで、容易にエンディアンの変換がなされることになる。
【0119】
このように、CPUによりエンディアン情報を出力させ、それに基づいてレジスタにおけるデータの格納順序を変化させることで、CPUによるエンディアン変換処理を不要とすることができる。
【0120】
[変形例]
転送コマンドデータ列として、図10に示されるコマンド列を用いてもよい。
【0121】
図10に示されるコマンド列は、
(1) 転送先物理アドレスWWWWに転送バイト数L1バイトのデータを転送し、
(2) 転送先物理アドレスXXXXに転送バイト数L2バイトのデータを転送し、
(3) 転送バイト数Mバイトのデータをディスク読取装置からDMA処理部に対してのみ転送し、メモリへの格納は行なわず(ダミーの転送先アドレスとしてYYYYを設定している。したがってYYYYは適当な値でよい)、
(4) 転送先物理アドレスZZZZに転送バイト数Nバイトのデータを転送する処理を一括して行なうコマンド列である。
【0122】
この場合のDMA処理部の動作は、
(1) アドレスAAAAからコマンドのデータ量(コマンド情報量)を読出し、メモリ上のどこまでがコマンド列を意味するデータであるかを識別する。
【0123】
(2) AAAA+4のアドレスから最初のコマンドとしてのデータ転送先物理アドレスを読出し、内部の転送アドレスカウンタにセットする。
【0124】
(3) AAAA+8のアドレスから最初のコマンドのデータ転送バイト数を読出し、内部の転送バイト数カウンタにセットする。
【0125】
(4) AAAA+12から最初のコマンドのディスク読出装置からの転送データをメモリに書込む必要性の有無の情報を読出し、内部のフラグレジスタにセットする。
【0126】
(5) 最初のコマンドが終了すると、AAAA+16のアドレスから2回目のコマンドとしてのデータ転送先物理アドレスを読出し、内部の転送アドレスカウンタにセットする。
【0127】
(6) AAAA+20のアドレスから2回目のコマンドとしてのデータ転送バイト数を読出し、内部の転送バイト数カウンタにセットする。
【0128】
(7) AAAA+24のアドレスから2回目のコマンドのディスク読出装置からの転送データをメモリに書込む必要性の有無の情報を読出し、内部のフラグレジスタにセットする。
【0129】
以下、同様の動作を繰返し、最初に読込んだコマンド情報量のコマンド列データの処理が終了したら、全コマンド終了と判定する。
【0130】
本実施の形態においては、DMA転送処理部にコマンド情報量を格納し演算する回路が必要となる。転送制御フラグの部分に次のアドレスに格納されているデータがDMA転送処理部に対するコマンド列を意味するかどうかの情報を1ビット追加することで、メモリの使用量を削減し、DMA転送処理部のコマンド列の終了判定を容易にすることもできる。
【0131】
[実施の形態における効果]
上述の実施の形態においては以下の効果を有する。
【0132】
CPUからは、DMA処理部とディスク読取装置に対しそれぞれ1回ずつの制御を行なうことで不連続のメモリ領域にディスク状の不連続の領域のデータを転送することができる。これにより、CPUの処理負荷を低減させる効果が大きい。
【0133】
また、不要なデータがメモリに書込まれることもなく、不要なデータの転送中はローカルバスのみで転送処理を行なうことができるため、CPUのデータバスの使用効率に何ら影響を与えない。
【0134】
また、ディスクの近距離間でのデータ読出の場合には、データ読出のオーバヘッドがないため、データ転送時間の短縮が見込まれる。
【0135】
さらに、ディスク読取装置のピックアップを移動させるモータを安定した速度で連続的に動作させることができるため、モータの摩耗が少なくなりモータの寿命を延ばすことができる。
【0136】
また、第2の実施の形態においては、CPUのデータバス幅とディスク読取装置のデータバス幅の違いをデータラッチレジスタにより吸収することができる。これにより従来のデータ転送よりもCPUのデータバスの使用頻度を減らすことができ、CPUのデータバスの使用効率が向上する。
【0137】
また、エンディアンの変換処理を行なうと、記憶媒体に格納されたデータとCPUのエンディアンの違いを吸収することができる。またCPUによるエンディアン変換処理を不要とすることができる。
【0138】
さらに、1回のメモリからのコマンドデータの読出によって転送開始アドレス、転送バイト数、転送制御の情報を得ることができ、DMA処理部も簡単に構成することができる。
【0139】
今回開示された実施の形態はすべての点で例示であって制限的なものではないと考えられるべきである。本発明の範囲は上記した説明ではなくて特許請求の範囲によって示され、特許請求の範囲と均等の意味および範囲内でのすべての変更が含まれることが意図される。
【図面の簡単な説明】
【図1】本発明の第1の実施の形態におけるナビゲーション装置の構成を示すブロック図である。
【図2】図1に含まれるデータ転送管理装置の構成を示すブロック図である。
【図3】転送コマンドデータ列の具体例を示す図である。
【図4】転送バイト数情報および転送先アドレス情報を転送バイト数および転送先アドレスに変換する処理を説明するための図である。
【図5】データ転送管理装置の動作を説明するための図である。
【図6】図5に続く図である。
【図7】図6に続く図である。
【図8】第2の実施の形態におけるデータ転送管理装置の構成を示すブロック図である。
【図9】第2の実施の形態におけるデータ転送管理装置の動作を説明するための図である。
【図10】実施の形態における変形例を説明するための図である。
【図11】従来のデータ転送管理装置の構成を示すブロック図である。
【図12】従来のデータ転送管理装置の動作を説明するための図である。
【符号の説明】
101 CPU
103 DMA処理部
105 メモリ
107 ディスク読取装置
109 ディスク[0001]
BACKGROUND OF THE INVENTION
This inventionIs naConcerning vigation devices, especially devices that transfer data from a disk-shaped storage medium to a memory, and are suitable for in-vehicle devices that have severe operating environment conditionsNaThe present invention relates to a navigation device.
[0002]
[Prior art]
Conventionally, a direct memory access (DMA) system is known as a system for transferring data from a disk-shaped storage medium (for example, CD-ROM, DVD, etc.) to a memory. This is because the central processing unit (hereinafter referred to as “CPU”) designates the start address for storing data in the memory and the transfer size of the data to the DMA processing unit, and thereafter the data sent from the storage medium in order. Is a system in which the DMA processing unit transfers data continuously from a specified memory address without depending on the processing of the CPU.
[0003]
FIG. 11 is a block diagram showing a configuration of a conventional data transfer management device. Referring to the figure, the data transfer management device includes a
[0004]
Based on a request from the
[0005]
The
[0006]
The
[0007]
The
[0008]
Here, the data in the areas A1 and A2 which are part of the area A of the
[0009]
That is, the data in the area B of the
[0010]
FIG. 12 is a diagram for explaining data exchange among the
[0011]
First, in step (I), the
[0012]
In response to this request, the
[0013]
In step (II), the
[0014]
After that, the
[0015]
At this time, the
[0016]
In step (III), a data transfer request for the L1 byte is sent from the
[0017]
Thereafter, the L1 byte data is written from the
[0018]
The operations of steps (I) to (III) indicated by (2) in FIG. 12 are similarly performed on the start address XXXX and the start address ZZZ.
[0019]
That is, the
[0020]
By this operation, the data in the areas A1 and A2 of the
[0021]
[Problems to be solved by the invention]
However, the conventional data transfer management device has the following problems.
[0022]
[Problem 1]
In the conventional data transfer management device, since it is necessary to transfer the discontinuous data area of the disk-shaped storage medium to the discontinuous memory area, the data transfer request to the disk and the control frequency of the DMA processing unit are high. CPU overhead is high.
[0023]
In particular, map data used in a navigation device or the like is stored in the concept of mesh, and map data required by the CPU is often stored in a disc-like and discrete state. Therefore, in order to request only necessary data from the storage medium, it is necessary to make a plurality of data transfer requests.
[0024]
On the other hand, since data calculation is also performed on the CPU side based on the concept of mesh, unnecessary data is discretely generated when the map display is moved on the screen. In other words, since the memory usage efficiency deteriorates, only the necessary data is collected in a continuous area as appropriate, and a large memory continuous space is secured to enable the next data transfer. There is a need.
[0025]
However, when garbage collection is performed, CPU processing time is used for data reduction. On the other hand, the use of a memory management unit (MMU) that performs conversion between logical addresses and physical addresses eliminates such time for data reduction. However, when MMU is used, the free space of the memory is divided into discrete pieces. Therefore, there is a demerit that the control frequency of the DMA processing unit is increased.
[0026]
[Problem 2]
When data is read while repeatedly moving the pickup at a short distance in a disk shape, more time is required than when data is read all at once including unnecessary portions.
[0027]
When the moving distance of the pickup is short, the time until the focus is adjusted and the data reading at the designated place becomes possible is longer than the time for moving the pickup to the required place. Therefore, if data reading of only a necessary part is performed while performing a short distance movement a plurality of times, a longer time is required than when data reading is continuously performed in a lump including unnecessary parts.
[0028]
However, reading data collectively including unnecessary data means that the memory use efficiency deteriorates. Further, when using the MMU, it is often impossible to secure such a continuous physical address area on the memory.
[0029]
[Problem 3]
In the navigation device, the stress applied to the motor of the data reading device is greater than that of a personal computer or the like.
[0030]
In a navigation device, map data divided in a mesh shape is read and data processing is performed. Therefore, there are few cases of reading a large amount of continuous data from a disk-shaped storage medium. That is, data that is close to each other is often read discontinuously from a disk-shaped storage medium. For this reason, the motor that controls the position of the pickup in data reading repeats start-up, high-speed rotation, low-speed rotation during read-out, and stop, and the frequency of start-up and stop that causes stress on the motor increases.
[0031]
Therefore, the motor in the navigation apparatus is likely to be worn and broken among the components used. In particular, when a navigation device is mounted on a vehicle, the conditions of the operating environment such as temperature and vibration are poor, and it is necessary to consider that the motor is not stressed as much as possible.
[0032]
[Problem 4]
The conventional data transfer management device has a problem that the CPU bus utilization efficiency is low because the data bus width of the memory is wider than the data bus width of the data transferred from the storage medium.
[0033]
That is, the bit width of data transferred from the disk reader is 8 bits or 16 bits, but recently, 32-bit CPUs are often used as navigation devices become more sophisticated. That is, the data width of the memory is 32 bits. Therefore, when the data bus width of the storage medium is 8 bits, the effective portion in one DMA transfer is 1/4 of the CPU data bus, which is wasteful.
[0034]
Accordingly, an object of the present invention is to perform efficient data transfer.NaIt is to provide a vigination device.
[0035]
Another object of the present invention is to increase the processing speed.InnaIt is to provide a vigination device.
[0036]
Still another object of the present invention is to reduce the stress applied to the apparatus.NaIt is to provide a vigination device.
[0037]
Still another object of the present invention is to enable effective data transfer.NaIt is to provide a vigination device.
[0038]
[Means for Solving the Problems]
In order to achieve the above object, according to one aspect of the present invention,navigationThe device
A navigation device that can be mounted on a vehicle,
Data from disk-shaped storage mediaofReadDisk readerWhen,
SaidDisc readerReaddiddataThe casePayMemory,
A DMA processor connected to and controlling each of the disk reader and the memory;
A central control device connected to each of the disk reading device, the memory and the DMA processing unit for controlling the entire device;
Storage means for storing at least one command including a transfer address of data, a size of data to be transferred, and a flag for controlling transfer;
The memory is connected to the disk reading device via the DMA processing unit separately from a route connected to the disk reading device via the central control unit, and from the disk reading device via the DMA processing unit. Writing data to the memory can be performed independently of the operation of the central control unit,
The storage means stores at least one of the transfer address of the data and the size of the data to be transferred in a simplified manner, and the command stored in a simplified manner can be read by one read operation. Yes,
The disk reader reads continuous data including unnecessary data from the disk-shaped storage medium,
The DMA processing unit
A register that temporarily latches data from the disk reader;
Of the data read by the disk reader based on the command stored in the storage means, store the data in the memory excluding the unnecessary data,
When the register latches data corresponding to the data bus width of the central controller, the latched data is transferred.The
[0039]
According to the present invention, from a disk-shaped storage mediumtransferContinuous data reading including unnecessary data is performed,transferSince data excluding unnecessary data is stored in the memory, efficient data transfer is possible.KiThe processing speed is fast and the stress on the device can be reduced.navigationAn apparatus can be provided.
[0041]
TheIn additionWhen the register latches data for the data bus width of the central control unit, in order to transfer the latched data,Data can be transferred effectivelyRu.
Further, since one command can be read by one reading operation, more efficient processing can be performed.
[0042]
Preferably, the central processing unit outputs endian control information, and the storage order of data in the register is changed based on the endian control information.
[0043]
According to the present invention, in addition to the above effects, data can be easily transferred even when the endian is different.
[0048]
DETAILED DESCRIPTION OF THE INVENTION
[First Embodiment]
FIG. 1 is a block diagram showing a configuration of a navigation device provided with a data transfer management device according to the first embodiment of the present invention.
[0049]
Referring to the figure, the navigation device is composed of a
[0050]
Since the
[0051]
FIG. 2 is a block diagram showing a configuration of a data transfer management device included in the navigation device of FIG. The data transfer management device according to the present embodiment is characterized in that the
[0052]
The transfer command data string includes at least one transfer command data. One transfer command data includes transfer byte number information, transfer destination address information, and a transfer control flag.
[0053]
Here, the transfer byte number information is information indicating the size of data to be transferred, and the transfer destination address information is information regarding an address in the
[0054]
The transfer control flag is a flag for controlling the transfer state. When it is “00”, the data read from the
[0055]
When the transfer control flag is “10”, the data read from the
[0056]
When the transfer control flag is “01”, the data read from the
[0057]
Transfer byte number information (for example, l1) and transfer destination address information (for example, www) in the transfer command data string are converted into an actual transfer byte number (for example, L1) and a physical address (for example, WWWW) by the
[0058]
FIG. 3 is a diagram for explaining a conversion method between transfer byte number information and transfer destination address information.
[0059]
In this embodiment, the data of the transfer destination address and the number of transfer bytes are simplified to the transfer destination address information and the transfer byte number information and stored in the memory. As a result, the amount of memory used for storing the command string can be reduced, and the
[0060]
For example, when processing information such as map data, the data is generally managed in a specific unit. Therefore, the data amount cannot take any value.
[0061]
For example, data is managed in units of 2 to the power of 2 such as 256 bytes, 512 bytes, and 1024 bytes. Accordingly, the transfer destination address and the number of transfer bytes are also set as a multiple of such a unit. That is, all the lower bits of the set value are “0”.
[0062]
Even in a CPU with an address bus of 32 bits (4 Gbyte space), the memory area actually used for data transfer is only in the range of 8 Mbytes and 16 Mbytes. For this reason, the upper bits of the transfer destination memory address are fixed values. Therefore, this fixed value may be stored in the
[0063]
For the above reasons, when setting the transfer destination address, the upper bit and the lower bit are not required, and the lower bit is not required when setting the number of transfer bytes. Therefore, it is possible to edit the transfer command data string only in each necessary portion and acquire all information necessary for data transfer by reading the memory once.
[0064]
2 and 3, when the data management unit is 1024 bytes and the address space used for data transfer is 16 Mbytes, as shown in FIG. 4, transfer byte number information 11 and transfer destination address information wwww It is possible to convert the actual transfer byte number L1 to the transfer destination address (physical address) WWWW.
[0065]
On the other hand, the data management unit in the disk is also determined. For example, when a CD-ROM is used as a disk, one sector is 2048 bytes, and the data transfer amount from the disk reading device is a value of 2048 × n.
[0066]
Therefore, when the data management unit on the CPU side is 1024 bytes as in the above example, even if the necessary data is 1024 bytes, it is necessary to transfer 2048 bytes of data. This may cause unnecessary data to be stored in the memory. However, in this embodiment, even in such a case, by setting the transfer command data string so that the data is not stored in the memory, only necessary data below the management unit of the disk reading device can be transferred to the memory. And the memory can be used effectively.
[0067]
FIGS. 5 to 7 are diagrams showing a data flow among the
[0068]
According to the transfer command data sequence shown in FIG. 2, of the continuous data areas A, B, and C in the disk, the data in the area A (data size L bytes) is an XXXX address corresponding to the L1 size from the physical address WWW address of the memory. To L2 size (here, L = L1 + L2) is transferred, and the data of area C (data size N bytes) is further transferred from memory area ZZZ for N size.
[0069]
Area B (data size M bytes) is unnecessary data.
Here, it is assumed that the CPU data bus is 32 bits, the local bus width is 8 bits, and the endian is little endian.
[0070]
5 to 7, in step (I),
[0071]
In step (II), the
[0072]
Based on the read data, the
[0073]
At this time, the
[0074]
In step (III), the
[0075]
The
[0076]
The
[0077]
In step (IV), the
[0078]
Thereafter, the
[0079]
The L1 byte data is transferred from the
[0080]
Here, when the transfer byte count is decremented by 1 to “0”, the
[0081]
Next, the
[0082]
Next, in step (V), the
[0083]
The
[0084]
At this time, the disk reader continuously reads the data in the area B even after the data in the area A is read.
[0085]
In step (VI), the
[0086]
However, since the transfer control flag is set to “10” in this process, the data transfer process to the
[0087]
Each time one piece of data is transferred, the
[0088]
Then, the process shown in (5) of FIG. 6 is repeated. Even after the reading of the data in the area B is completed, the
[0089]
If the M byte data transfer request is transmitted from the
[0090]
The
[0091]
Next, in step (VII), the
[0092]
The
[0093]
In step (VIII), the
[0094]
The
[0095]
When the first byte data is transferred from the
[0096]
The
[0097]
Thereafter, the process shown in (6) of FIG. 7 is repeated.
The
[0098]
The
[0099]
The
[0100]
The
[0101]
As described above, according to the present embodiment, the discontinuous memory area has a discontiguous area of the disc based on the issuance of a command to the DMA processor and a data request to the disc reader once. Data can be transferred.
[0102]
Here, it seems that the CPU control load is generated because the DMA control command sequence is prepared in advance. However, even in the conventional divided DMA transfer method, in any part of the memory, any disk-like area Information on whether to transfer the data is naturally stored in an arbitrary part of the memory. Therefore, in the creation of the command sequence this time, the form and order of writing the command sequence information are simply changed, and the processing load on the CPU does not increase as compared with the conventional technology.
[0103]
[Second Embodiment]
The second embodiment is characterized in that the DMA transfer processing unit temporarily takes data from the disk reading device into a data latch register. Data transfer is performed when data corresponding to the CPU bus width is stored in the data latch register.
[0104]
In the following, portions of the navigation device according to the second embodiment of the present invention that are different from those of the first embodiment will be described.
[0105]
FIG. 8 is a diagram illustrating an internal configuration of the
[0106]
FIG. 9 is a diagram for explaining the operation of the data latch
[0107]
In the figure, the portion indicated by (7) corresponds to the operation of repeating the operation of (3) in FIG. 5 or (6) in FIG. 7 four times.
[0108]
That is, as shown in FIG. 9, in the present embodiment, the number of times data is written to the memory is ¼ compared to the first embodiment. Therefore, since the frequency of using the CPU data bus is reduced due to the data transfer, the CPU data bus can be used effectively accordingly.
[0109]
More specifically, with reference to FIG. 9, the
[0110]
The
[0111]
Next, the
[0112]
Then, the
[0113]
Next, the
[0114]
The
[0115]
Next, the
[0116]
The
[0117]
Thereafter, the
[0118]
In FIG. 9, the case where little endian is set is described. However, when big endian is set as endian information in the DMA processing unit, the order of data transfer and data storage in the data latch register are described. The positional relationship is changed. More details
4i byte data → bits 31-24 of data latch register
4i + 1 byte data → bits 23 to 16 of data latch register
4i + 2nd byte data → bit 15 to 8 of data latch register
4i + 3rd byte data → data latch register bits 7-0
It becomes. By storing data in this order, endian conversion can be easily performed.
[0119]
In this manner, the endian conversion processing by the CPU can be made unnecessary by outputting the endian information by the CPU and changing the data storage order in the register based on the output.
[0120]
[Modification]
The command sequence shown in FIG. 10 may be used as the transfer command data sequence.
[0121]
The command sequence shown in FIG.
(1) Transfer L1 bytes of data to the transfer destination physical address WWW,
(2) Transfer L2 bytes of data to the transfer destination physical address XXXX,
(3) Data having a transfer byte count of M bytes is transferred only from the disk reader to the DMA processing unit and is not stored in the memory (YYYY is set as a dummy transfer destination address. Any value)
(4) This is a command sequence for performing batch processing of transferring data of the number of transfer bytes of N bytes to the transfer destination physical address ZZZ.
[0122]
The operation of the DMA processor in this case is as follows:
(1) The command data amount (command information amount) is read from the address AAAA, and the extent on the memory is identified as the data representing the command string.
[0123]
(2) The data transfer destination physical address as the first command is read from the AAAA + 4 address and set in the internal transfer address counter.
[0124]
(3) The number of data transfer bytes of the first command is read from the AAAA + 8 address and set in the internal transfer byte number counter.
[0125]
(4) Read information on the necessity of writing transfer data from the disk reading device of the first command to the memory from AAAAA + 12 and set it in the internal flag register.
[0126]
(5) When the first command is completed, the data transfer destination physical address as the second command is read from the AAAA + 16 address and set in the internal transfer address counter.
[0127]
(6) The number of data transfer bytes as the second command is read from the address AAAA + 20 and set in the internal transfer byte number counter.
[0128]
(7) From the address AAAA + 24, information on the necessity of writing transfer data from the disk reading device of the second command to the memory is read and set in the internal flag register.
[0129]
Thereafter, the same operation is repeated, and when the processing of the command string data having the command information amount read first is finished, it is determined that all commands are finished.
[0130]
In this embodiment, a circuit for storing and calculating the command information amount in the DMA transfer processing unit is required. By adding 1 bit to the transfer control flag portion whether or not the data stored at the next address means a command string for the DMA transfer processing unit, the memory usage is reduced, and the DMA transfer processing unit It is also possible to easily determine the end of the command string.
[0131]
[Effects of the embodiment]
The above-described embodiment has the following effects.
[0132]
The CPU can transfer the data in the disc-like discontinuous area to the discontinuous memory area by performing control once for each of the DMA processing unit and the disc reader. Thereby, the effect of reducing the processing load on the CPU is great.
[0133]
Further, unnecessary data is not written in the memory, and transfer processing can be performed only by the local bus during transfer of unnecessary data, so that the use efficiency of the data bus of the CPU is not affected at all.
[0134]
In addition, in the case of data reading over a short distance of the disk, since there is no data reading overhead, the data transfer time can be shortened.
[0135]
Furthermore, since the motor for moving the pickup of the disk reader can be continuously operated at a stable speed, the wear of the motor is reduced and the life of the motor can be extended.
[0136]
In the second embodiment, the difference between the CPU data bus width and the disk reader data bus width can be absorbed by the data latch register. As a result, the use frequency of the CPU data bus can be reduced as compared with the conventional data transfer, and the use efficiency of the CPU data bus is improved.
[0137]
Further, when endian conversion processing is performed, the difference between the data stored in the storage medium and the endian of the CPU can be absorbed. Further, endian conversion processing by the CPU can be eliminated.
[0138]
In addition, the transfer start address, the number of transfer bytes, and transfer control information can be obtained by reading the command data from the memory once, and the DMA processing unit can also be configured easily.
[0139]
The embodiment disclosed this time should be considered as illustrative in all points and not restrictive. The scope of the present invention is defined by the terms of the claims, rather than the description above, and is intended to include any modifications within the scope and meaning equivalent to the terms of the claims.
[Brief description of the drawings]
FIG. 1 is a block diagram showing a configuration of a navigation device according to a first embodiment of the present invention.
2 is a block diagram showing a configuration of a data transfer management device included in FIG. 1. FIG.
FIG. 3 is a diagram illustrating a specific example of a transfer command data string.
FIG. 4 is a diagram for explaining processing for converting transfer byte count information and transfer destination address information into transfer byte count and transfer destination address;
FIG. 5 is a diagram for explaining the operation of the data transfer management device;
FIG. 6 is a diagram following FIG. 5;
FIG. 7 is a diagram subsequent to FIG. 6;
FIG. 8 is a block diagram illustrating a configuration of a data transfer management device according to a second embodiment.
FIG. 9 is a diagram for explaining the operation of the data transfer management device according to the second embodiment;
FIG. 10 is a diagram for explaining a modification of the embodiment.
FIG. 11 is a block diagram showing a configuration of a conventional data transfer management device.
FIG. 12 is a diagram for explaining the operation of a conventional data transfer management device.
[Explanation of symbols]
101 CPU
103 DMA processor
105 memory
107 Disc reader
109 discs
Claims (2)
ディスク状の記憶媒体からデータの読出を行なうディスク読取装置と、
前記ディスク読取装置が読出したデータを格納するメモリと、
前記ディスク読取装置と前記メモリとのそれぞれに接続され、それぞれを制御するDMA処理部と、
前記ディスク読取装置と前記メモリと前記DMA処理部とのそれぞれに接続され、装置全体を制御する中央制御装置と、
データの転送アドレスと転送するデータのサイズと転送の制御のためのフラグとを含むコマンドを少なくとも1つ記憶する記憶手段とを備え、
前記メモリは、前記中央制御装置を介して前記ディスク読取装置と接続されるルートとは別に前記DMA処理部を介して前記ディスク読取装置と接続され、前記ディスク読取装置から前記DMA処理部を介した前記メモリへのデータの書込は前記中央制御装置の動作とは独立して行なうことが可能で、
前記記憶手段は、前記データの転送アドレスと前記転送するデータのサイズとのうちの少なくとも1つを簡略化して記憶し、該簡略化して記憶されたコマンドは1回の読出動作で読出が可能であり、
前記ディスク読取装置は、前記ディスク状の記憶媒体から、転送不要なデータをも含む連続したデータの読出を行ない、
前記DMA処理部は、
前記ディスク読取装置からのデータを一時的にラッチするレジスタを備え、
前記記憶手段に記憶されたコマンドに基づいて前記ディスク読取装置が読出したデータのうち、前記転送不要なデータを除いて前記メモリに格納させ、
前記レジスタが前記中央制御装置のデータバス幅分のデータをラッチしたときに、該ラッチしたデータを転送する、ナビゲーション装置。 A navigation device that can be mounted on a vehicle,
A disk reader for reading data from a disk-shaped storage medium;
The data to which the disk reader is reading a memory which store,
A DMA processor connected to and controlling each of the disk reader and the memory;
A central control device connected to each of the disk reading device, the memory and the DMA processing unit for controlling the entire device;
Storage means for storing at least one command including a transfer address of data, a size of data to be transferred, and a flag for controlling transfer ;
The memory is connected to the disk reading device via the DMA processing unit separately from a route connected to the disk reading device via the central control unit, and from the disk reading device via the DMA processing unit. Writing data to the memory can be performed independently of the operation of the central control unit,
The storage means stores at least one of the transfer address of the data and the size of the data to be transferred in a simplified manner, and the command stored in a simplified manner can be read by one read operation. Yes,
The disk reader reads continuous data including unnecessary data from the disk-shaped storage medium,
The DMA processing unit
A register that temporarily latches data from the disk reader;
Of the data read by the disk reader based on the command stored in the storage means, store the data in the memory excluding the unnecessary data,
A navigation device that transfers the latched data when the register latches data for the data bus width of the central control device.
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP4639599A JP4330200B2 (en) | 1999-02-24 | 1999-02-24 | Navigation device |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP4639599A JP4330200B2 (en) | 1999-02-24 | 1999-02-24 | Navigation device |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2000242601A JP2000242601A (en) | 2000-09-08 |
JP4330200B2 true JP4330200B2 (en) | 2009-09-16 |
Family
ID=12745970
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP4639599A Expired - Lifetime JP4330200B2 (en) | 1999-02-24 | 1999-02-24 | Navigation device |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP4330200B2 (en) |
Families Citing this family (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP4514173B2 (en) * | 2000-10-13 | 2010-07-28 | キヤノン株式会社 | Data processing method and image processing apparatus |
US8210948B2 (en) | 2005-07-15 | 2012-07-03 | Mitsubishi Electric Corporation | Recording medium reproducing apparatus, recording medium reproducing method, and portable recording medium |
US9128699B2 (en) * | 2008-12-22 | 2015-09-08 | Intel Corporation | Method and system for queuing transfers of multiple non-contiguous address ranges with a single command |
-
1999
- 1999-02-24 JP JP4639599A patent/JP4330200B2/en not_active Expired - Lifetime
Also Published As
Publication number | Publication date |
---|---|
JP2000242601A (en) | 2000-09-08 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
KR100245896B1 (en) | Hard disk drive controller using plural microprocessor | |
JP2545482B2 (en) | Interface device transfer parameter setting method | |
EP1036363A2 (en) | Minimal frame buffer manager for use in data storage devices | |
JP4330200B2 (en) | Navigation device | |
JP5206103B2 (en) | Storage device, storage device control system, storage device control method, and program | |
JP2002007076A (en) | Recording and reproducing device | |
JP2001216193A (en) | Cache mechanism and operation control method of cache mechanism | |
JP3072559B2 (en) | ATAPI interface control circuit and DVD player using the circuit | |
JPH09160813A (en) | File managing device | |
JP4209108B2 (en) | Storage device control method, storage device used in this method, disk array device, and disk controller | |
JP2912090B2 (en) | Time slot interchange circuit | |
JP2541117B2 (en) | Data access device | |
JPS63213018A (en) | External memory control device | |
JP3734072B2 (en) | Local bus control device | |
JP2570986B2 (en) | Data transfer control device and method | |
JP2980163B2 (en) | Data transfer method | |
JPH09114598A (en) | Disk cache device | |
JPH0365570B2 (en) | ||
JP2000305798A (en) | Error detection code generating method and its device | |
JPS58109915A (en) | Data transfer controlling system of bus coupling system | |
JPS6243745A (en) | Information processor | |
JPH0652056A (en) | Cache memory system | |
JPS6269347A (en) | Direct memory access controller | |
JPH0628110A (en) | Compact disk reading device | |
JPH0376059A (en) | Magnetic disk device |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A711 | Notification of change in applicant |
Free format text: JAPANESE INTERMEDIATE CODE: A711 Effective date: 20060207 |
|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20060221 |
|
RD03 | Notification of appointment of power of attorney |
Free format text: JAPANESE INTERMEDIATE CODE: A7423 Effective date: 20060420 |
|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20081216 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20090106 |
|
A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20090306 |
|
TRDD | Decision of grant or rejection written | ||
A01 | Written decision to grant a patent or to grant a registration (utility model) |
Free format text: JAPANESE INTERMEDIATE CODE: A01 Effective date: 20090609 |
|
A01 | Written decision to grant a patent or to grant a registration (utility model) |
Free format text: JAPANESE INTERMEDIATE CODE: A01 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20090616 |
|
R150 | Certificate of patent or registration of utility model |
Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20120626 Year of fee payment: 3 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20120626 Year of fee payment: 3 |
|
S111 | Request for change of ownership or part of ownership |
Free format text: JAPANESE INTERMEDIATE CODE: R313115 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20120626 Year of fee payment: 3 |
|
R350 | Written notification of registration of transfer |
Free format text: JAPANESE INTERMEDIATE CODE: R350 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20120626 Year of fee payment: 3 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20130626 Year of fee payment: 4 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
EXPY | Cancellation because of completion of term |