JP2009020606A - 電子機器、データ転送方法及びプログラム - Google Patents

電子機器、データ転送方法及びプログラム Download PDF

Info

Publication number
JP2009020606A
JP2009020606A JP2007181323A JP2007181323A JP2009020606A JP 2009020606 A JP2009020606 A JP 2009020606A JP 2007181323 A JP2007181323 A JP 2007181323A JP 2007181323 A JP2007181323 A JP 2007181323A JP 2009020606 A JP2009020606 A JP 2009020606A
Authority
JP
Japan
Prior art keywords
dma
buffer
memory
program
data
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.)
Pending
Application number
JP2007181323A
Other languages
English (en)
Inventor
Tsutomu Uno
勉 宇野
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Canon Inc
Original Assignee
Canon Inc
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Canon Inc filed Critical Canon Inc
Priority to JP2007181323A priority Critical patent/JP2009020606A/ja
Publication of JP2009020606A publication Critical patent/JP2009020606A/ja
Pending legal-status Critical Current

Links

Images

Landscapes

  • Bus Control (AREA)

Abstract

【課題】IDEインターフェースを使ったハードディスク等のブロックデバイスのDMA転送の高速化を実現できるようにする。
【解決手段】バッファをメモリ上に確保する確保手段と、前記メモリ上のデータを前記バッファにコピーする第1のコピー手段と、前記バッファを利用した転送を実行するためのテーブルを構築する構築手段と、前記テーブルを利用してDMAを行い、前記DMAの終了後に前記バッファからデータを前記メモリにコピーする第2のコピー手段とを有する電子機器等、を提供する。
【選択図】図1

Description

本発明はDMAを使ってデータを転送する電子機器、データ転送方法及びプログラムに関する。
LinuxのようなOSでは、メモリを効率良く使うために4Kバイト等の決められたサイズのページ単位でファイル等の管理を行う。このため、バッファとして確保したメモリ領域が、連続している保証がない。
IDEインターフェースに接続されたハードディスクのような低速なブロックデバイスに対してDMA転送する際には、OSはPRDテーブルと呼ばれるテーブルを作成する。その後、IDEインターフェースまたはハードディスクに搭載されたDMAコントローラがDMA転送の制御を行う。なお、このPRDテーブルはメモリのアドレスとサイズとを1組にしたエントリがリスト構造になって構成されている。
LinuxなどのOSでは、PRDテーブルの構築の際に連続している領域を1つのエントリになるようにまとめる処理を行っている。しかし、もともと連続性が保証されていないため、複数のエントリに分割されてDMAが行われる。このようにDMA転送を行う技術としては、例えば、特許文献1に開示されている。
特開平8−297628号公報
しかしながら、IDEインターフェースを使ったハードディスク等のブロックデバイスのDMA転送速度においては不十分であるという問題点があった。
本発明は前述の問題点に鑑み、IDEインターフェースを使ったハードディスク等のブロックデバイスのDMA転送の高速化を実現できるようにすることを目的としている。
本発明の電子機器は、バッファをメモリ上に確保する確保手段と、前記メモリ上のデータを前記バッファにコピーする第1のコピー手段と、前記バッファを利用した転送を実行するためのテーブルを構築する構築手段と、前記テーブルを利用してDMAを行い、前記DMAの終了後に前記バッファからデータを前記メモリにコピーする第2のコピー手段とを有することを特徴とする。
本発明のデータ転送方法は、バッファをメモリ上に確保する確保工程と、前記メモリ上のデータを前記バッファにコピーする第1のコピー工程と、前記バッファを利用した転送を実行するためのテーブルを構築する構築工程と、前記テーブルを利用してDMAを行い、前記DMAの終了後に前記バッファからデータを前記メモリにコピーする第2のコピー工程とを有することを特徴とする。
本発明のプログラムは、前記に記載のデータ転送方法の各工程をコンピュータにて実行させることを特徴とする。
本発明によれば、DMA転送の際に用いるPRDテーブルのエントリを統合することで、DMAコントローラの処理を軽減でき、DMA転送の高速化をおこなうことができる。
(第1の実施形態)
本発明の実施形態について、以下、図面を参照しながら説明する。本発明の電子機器は、外部記憶装置をもち、外部記憶装置からデータをリード/ライトする際に、DMAコントローラを利用してデータ転送を行う。本実施形態では、外部記憶装置としてハードディスクがIDEインターフェースを経由してつながれている場合の実施形態について説明する。
図1は、本実施形態の電子機器の機能構成例を示すブロック図である。
図1において、101はDMA転送手段であり、102はDMAバッファを確保する確保手段である。103はページ単位で分割されたデータをDMAバッファへコピーする第1のコピー手段であり、104はDMAバッファからページ単位で分割されたデータにしてメモリにコピーする第2のコピー手段である。さらに、105はPRDテーブルを構築する構築手段である。これらの各手段は、後述するDMAコントローラによって制御される。
図2は、本実施形態の電子機器のシステム構成例を示すブロック図である。
図2において、201はCPUであり、202はRAMである。203はIDEインターフェースであり、この中には、DMAコントローラ204を内蔵している。また、205は外部記憶装置(ハードディスク)であり、この中にはDMAコントローラ206を内蔵している。
ハードディスク205は、IDEインターフェース203を経由してCPU201から制御される。DMA転送を行っている時は、IDEインターフェース203もしくはハードディスク205に内蔵されたDMAコントローラ204、206がCPU201とは非同期でRAM202とハードディスク205との間のデータ転送を制御する。
図3は、メモリとPRDテーブルとの関係を示す図である。
図3において、300は、通常のDMA転送時のメモリとPRDテーブルとの関係を示している。301は、ユーザが確保したデータを示している。なお、このデータは仮想メモリ空間上で連続しており、ページ単位で分割されている。
311は、実メモリ上でのメモリの配置を示している。データは、ページ毎に分割され、ばらばらに配置されており、連続性は保証されていない。321は、DMA転送を行う際のPRDテーブルを示している。PRDテーブルは、DMA転送を行う際に、DMAコントローラに渡され、転送を行うメモリの先頭アドレスとサイズとを1組にしたリスト構造で記憶したものである。
350は、本実施形態のDMA転送時のメモリとPRDテーブルとの関係を示している。351は、実メモリ上でのメモリの配置を示している。データは、ページ毎に分割され、ばらばらに配置されており、連続性は保証されていない。また、DMAバッファ領域は、OS起動時に連続した領域に確保されるために、連続している。
352は、DMA転送を行う際のPRDテーブルを示している。連続しているDMAバッファを利用するため、PRDテーブルのエントリ数は1となる。ただしDMAバッファが複数の領域にまたがる場合は、PRDテーブルのエントリ数はDMAバッファの領域数となる。
図4は、本実施形態におけるDMAライト要求処理手順の一例を示すフローチャートである。
まず、ステップS401において、DMAライト要求を受け取る。次に、ステップS402において、第1のコピー手段103は、ページ単位で分割されたデータをDMAバッファにコピーする。
次に、ステップS403において、構築手段105は、DMAバッファを利用したPRDテーブルを構築する。そして、ステップS404においてIDEインターフェース203もしくはハードディスク205内のDMAコントローラ204、206に対して、PRDテーブルを渡し、DMA転送を開始する。次に、ステップS405において、DMA転送完了を待ち、DMAライト要求処理を終了する。
図5は、本実施形態におけるDMAリード要求処理手順の一例を示すフローチャートである。
まず、ステップS501において、DMAリード要求を受け取る。次に、ステップS502において、構築手段105は、DMAバッファを利用したPRDテーブルを構築する。
次に、ステップS503において、IDEインターフェース203もしくはハードディスク205内のDMAコントローラ204、206に対して、PRDテーブルを渡し、DMA転送を開始する。そして、ステップS504において、DMA転送完了をまつ。そして、その終了後、ステップS505において、DMAバッファ内のデータをページ単位で分割されたデータにしてメモリにコピーし、DMAリード要求処理を終了する。
以上のように本実施形態においては、DMA転送の際に用いるPRDテーブルのエントリを統合することで、DMAコントローラの処理を軽減でき、DMA転送の高速化をおこなうことができる。
(本発明に係る他の実施形態)
前述した本発明の実施形態における電子機器を構成する各手段、並びにデータ転送方法の各工程は、コンピュータのRAMやROMなどに記憶されたプログラムが動作することによって実現できる。このプログラム及び前記プログラムを記録したコンピュータ読み取り可能な記録媒体は本発明に含まれる。
また、本発明は、例えば、システム、装置、方法、プログラムもしくは記録媒体等としての実施形態も可能であり、具体的には、複数の機器から構成されるシステムに適用してもよいし、また、一つの機器からなる装置に適用してもよい。
なお、本発明は、前述した実施形態の機能を実現するソフトウェアのプログラム(実施形態では図4、5に示すフローチャートに対応したプログラム)を、システムまたは装置に直接、または遠隔から供給する場合も含む。そして、そのシステムまたは装置のコンピュータが前記供給されたプログラムコードを読み出して実行することによっても達成される場合を含む。
したがって、本発明の機能処理をコンピュータで実現するために、前記コンピュータにインストールされるプログラムコード自体も本発明を実現するものである。つまり、本発明は、本発明の機能処理を実現するためのコンピュータプログラム自体も含まれる。
その場合、プログラムの機能を有していれば、オブジェクトコード、インタプリタにより実行されるプログラム、OSに供給するスクリプトデータ等の形態であってもよい。
プログラムを供給するための記録媒体としては、例えば、フレキシブルディスク、ハードディスク、光ディスク、光磁気ディスクなどがある。さらに、MO、CD−ROM、CD−R、CD−RW、磁気テープ、不揮発性のメモリカード、ROM、DVD(DVD−ROM、DVD−R)などもある。
その他、プログラムの供給方法としては、クライアントコンピュータのブラウザを用いてインターネットのホームページに接続する方法がある。そして、前記ホームページから本発明のコンピュータプログラムそのもの、もしくは圧縮され自動インストール機能を含むファイルをハードディスク等の記録媒体にダウンロードすることによっても供給できる。
また、本発明のプログラムを構成するプログラムコードを複数のファイルに分割し、それぞれのファイルを異なるホームページからダウンロードすることによっても実現可能である。つまり、本発明の機能処理をコンピュータで実現するためのプログラムファイルを複数のユーザに対してダウンロードさせるWWWサーバも、本発明に含まれるものである。
また、その他の方法として、本発明のプログラムを暗号化してCD−ROM等の記録媒体に格納してユーザに配布し、所定の条件をクリアしたユーザに対し、インターネットを介してホームページから暗号化を解く鍵情報をダウンロードさせる。そして、その鍵情報を使用することにより暗号化されたプログラムを実行してコンピュータにインストールさせて実現することも可能である。
また、コンピュータが、読み出したプログラムを実行することによって、前述した実施形態の機能が実現される。さらに、そのプログラムの指示に基づき、コンピュータ上で稼動しているOSなどが、実際の処理の一部または全部を行い、その処理によっても前述した実施形態の機能が実現され得る。
さらに、その他の方法として、まず記録媒体から読み出されたプログラムが、コンピュータに挿入された機能拡張ボードやコンピュータに接続された機能拡張ユニットに備わるメモリに書き込まれる。そして、そのプログラムの指示に基づき、その機能拡張ボードや機能拡張ユニットに備わるCPUなどが実際の処理の一部または全部を行い、その処理によっても前述した実施形態の機能が実現される。
本発明の実施形態における電子機器の機能構成例を示すブロック図である。 本発明の実施形態における電子機器のシステム構成例を示すブロック図である。 本発明の実施形態における電子機器のメモリとPRDテーブルとの関係を示す図である。 本発明の実施形態におけるDMAライト要求処理手順の一例を示すフローチャートである。 本発明の実施形態におけるDMAリード要求処理手順の一例を示すフローチャートである。
符号の説明
101 DMA転送手段
102 確保手段
103 第1のコピー手段
104 第2のコピー手段
105 構築手段
201 CPU
202 RAM
203 IDEインターフェース
204 DMAコントローラ
205 ハードディスク
206 DMAコントローラ

Claims (3)

  1. バッファをメモリ上に確保する確保手段と、
    前記メモリ上のデータを前記バッファにコピーする第1のコピー手段と、
    前記バッファを利用した転送を実行するためのテーブルを構築する構築手段と、
    前記テーブルを利用してDMAを行い、前記DMAの終了後に前記バッファからデータを前記メモリにコピーする第2のコピー手段とを有することを特徴とする電子機器。
  2. バッファをメモリ上に確保する確保工程と、
    前記メモリ上のデータを前記バッファにコピーする第1のコピー工程と、
    前記バッファを利用した転送を実行するためのテーブルを構築する構築工程と、
    前記テーブルを利用してDMAを行い、前記DMAの終了後に前記バッファからデータを前記メモリにコピーする第2のコピー工程とを有することを特徴とするデータ転送方法。
  3. 請求項2に記載のデータ転送方法の各工程をコンピュータにて実行させることを特徴とするプログラム。
JP2007181323A 2007-07-10 2007-07-10 電子機器、データ転送方法及びプログラム Pending JP2009020606A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2007181323A JP2009020606A (ja) 2007-07-10 2007-07-10 電子機器、データ転送方法及びプログラム

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2007181323A JP2009020606A (ja) 2007-07-10 2007-07-10 電子機器、データ転送方法及びプログラム

Publications (1)

Publication Number Publication Date
JP2009020606A true JP2009020606A (ja) 2009-01-29

Family

ID=40360216

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2007181323A Pending JP2009020606A (ja) 2007-07-10 2007-07-10 電子機器、データ転送方法及びプログラム

Country Status (1)

Country Link
JP (1) JP2009020606A (ja)

Similar Documents

Publication Publication Date Title
US7042587B2 (en) Image data caching
JP2008070975A (ja) データ保存装置及びデータ保存方法
US8208763B2 (en) Image processing method and apparatus
JP4724494B2 (ja) Pciブリッジ及pciブリッジを搭載するシステム
JP2006023854A (ja) 情報処理装置、記憶装置、記憶制御装置及びプログラム
JP4965996B2 (ja) 画像処理装置、画像処理方法、画像処理プログラム並びに記憶媒体
JP2009020606A (ja) 電子機器、データ転送方法及びプログラム
JP2004220575A (ja) カード型メモリのインターフェース回路、その回路を搭載したasic、及びそのasicを搭載した画像形成装置
US7701607B2 (en) Method and device for managing images stored in a plurality of storage media included in or connected to image forming apparatus
US20130050757A1 (en) Printer, print processing program, and print processing method
JP2007034488A (ja) Dma制御装置及びその方法
JP2009037543A (ja) 情報処理装置、印刷装置及び印刷システム
JP2006031268A (ja) 情報処理装置、及び記憶制御装置
JP2018099804A (ja) 印刷装置および印刷装置の制御方法
JP5483933B2 (ja) 記憶装置及びその制御方法、並びにプログラム
JP2009071737A (ja) 画像処理装置、画像処理システム、画像処理方法、プログラム、および記録媒体
JP2005346306A (ja) 記憶装置、画像形成装置及びファイルサーバ
JP2006085529A (ja) アプリケーションプログラム、情報処理装置および情報処理方法
JP2006236006A (ja) 印刷装置、プログラムおよび記録媒体
JP4072423B2 (ja) 印刷装置およびその制御方法、ならびに、ホストコンピュータおよびその制御方法
JP2005275674A (ja) コンピュータシステム、そのバックアップ/リストア方法、ホストコンピュータ、プログラム
US20080104582A1 (en) System for providing software related information, apparatus for processing description data, and software componet
JP2005258783A (ja) データ転送装置、データ転送方法、画像形成装置及びオプションボード
JP2010026741A (ja) データ転送方法及びデータ転送装置
JP2006252482A (ja) 装置の起動方法及び画像形成装置