JP2007264751A - Data transfer controller - Google Patents
Data transfer controller Download PDFInfo
- Publication number
- JP2007264751A JP2007264751A JP2006085588A JP2006085588A JP2007264751A JP 2007264751 A JP2007264751 A JP 2007264751A JP 2006085588 A JP2006085588 A JP 2006085588A JP 2006085588 A JP2006085588 A JP 2006085588A JP 2007264751 A JP2007264751 A JP 2007264751A
- Authority
- JP
- Japan
- Prior art keywords
- data transfer
- transfer
- data
- hard disk
- dma controller
- 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.)
- Withdrawn
Links
Images
Landscapes
- Bus Control (AREA)
Abstract
Description
本発明は、データ転送制御装置およびその制御方法に関する。 The present invention relates to a data transfer control device and a control method therefor.
多くのパーソナルコンピュータやワークステーション、または複写機などの画像処理装置では、データをハードディスクなどの不揮発性記憶媒体を装置内部に格納し、データを一時的に記憶することができる。装置のCPUがデータを必要とする場合には、不揮発性記憶媒体からデータを読み取り、SDRAMやRDRAMなど高速アクセス可能な揮発性メモリに転送し、CPUは揮発性メモリ上でデータの読み書きを行う。 In many image processing apparatuses such as personal computers, workstations, and copying machines, data can be temporarily stored by storing a nonvolatile storage medium such as a hard disk in the apparatus. When the CPU of the device needs data, it reads the data from the nonvolatile storage medium and transfers it to a volatile memory such as SDRAM or RDRAM that can be accessed at high speed, and the CPU reads and writes data on the volatile memory.
通常、ハードディスクなどの不揮発性記憶媒体とSDRAMやRDRAMなどの揮発性記憶媒体間でデータ転送を行う場合は、まず、CPUからの指示により、ハードディスク内部に取り付けてあるDMAコントローラに設定が行われ、その後、DMAコントローラが、ハードディスクとSDRAM、RDRAM間でのDMA転送を行うようにしている。 Normally, when performing data transfer between a non-volatile storage medium such as a hard disk and a volatile storage medium such as SDRAM or RDRAM, first, a setting is made in the DMA controller installed in the hard disk by an instruction from the CPU. After that, the DMA controller performs DMA transfer between the hard disk, SDRAM, and RDRAM.
PCや複写機などの上記各装置では、画像などのデータや、CPUが動作するためのプログラム、システム動作中の演算結果などサイズの異なる様々なデータを、頻繁に不揮発性記憶媒体へ書き込んだり、または、読み出したりしている。不揮発性媒体は一般的にランダムなアクセスを行った場合、ヘッド部の位置を変更するためシーク時間が発生しハードディスクの性能を引き出すことができない。またデータを書き込む、または読み込むデータ転送の要求が複数あると、あるデータ転送を行っている最中に別のデータ転送が割り込まれることがある。この割り込みが生じると、不揮発性記憶媒体からデータを読み取る際に、ヘッド部の位置を変更するために時間がかかり、この時間がデータ転送のオーバーヘッドとなってデータ転送速度が低下する。 In each of the above devices such as PCs and copiers, various data of different sizes such as data such as images, programs for operating the CPU, and calculation results during system operation are frequently written to a nonvolatile storage medium, Or it is reading. In general, when a random access is made to a nonvolatile medium, a seek time is generated because the position of the head portion is changed, and the performance of the hard disk cannot be extracted. In addition, when there are a plurality of data transfer requests for writing or reading data, another data transfer may be interrupted during a certain data transfer. When this interruption occurs, it takes time to change the position of the head unit when reading data from the nonvolatile storage medium, and this time becomes an overhead of data transfer and the data transfer speed is reduced.
このようなデータの頻繁な書き込み、または読み出しが発生する場合、メモリと不揮発性記憶媒体との間でのデータ転送に競合が生じた時に、所定の優先順位情報に基づき複数のデータ転送を制御することにより、記憶媒体へのアクセス時にヘッド位置の移動を少なくする方法が考えられる(例えば特許文献1)。
しかしながら、上述した優先順位に基づき複数のデータ転送を制御するような仕組みを適用した場合には、優先順位の最も高いデータ転送が行われると、他のデータ転送が完全に止まってしまうという問題点があった。リアルタイム制御を行うシステムにおいて、タイミングによってはハードディスクからのデータ転送時間が大幅に伸びてしまうことは致命的である。また、処理を高速化させるためにすでにあるシステムに、別のCPUを有するシステムを接続した場合に、同一のハードディスクを制御するために、他方のデータ転送を考慮に入れないと自システムのリアルタイム制御が行えなくなる可能性があった。 However, when a mechanism for controlling a plurality of data transfers based on the above-described priority is applied, if data transfer with the highest priority is performed, other data transfer is completely stopped. was there. In a system that performs real-time control, it is fatal that the data transfer time from the hard disk significantly increases depending on the timing. In addition, when a system having another CPU is connected to an existing system for speeding up the processing, real-time control of the own system is required unless the other data transfer is taken into consideration in order to control the same hard disk. There was a possibility that could not be performed.
上記従来例の問題点を解決するため本発明の請求項1記載のデータ転送制御装置は、
複数記憶媒体に接続されるデータ転送制御装置であって、
メモリと前記複数の記憶媒体との間での複数のデータ転送を行う複数の転送手段と、
複数のCPUが前記転送手段を個別に設定する設定手段と、
複数の前記転送手段による複数のデータ転送に競合が生じる場合に、所定の優先順位情報に基づき、前記複数のデータ転送を制御する制御手段と、
を有することを特徴とする。
In order to solve the problems of the conventional example, the data transfer control device according to
A data transfer control device connected to a plurality of storage media,
A plurality of transfer means for transferring a plurality of data between a memory and the plurality of storage media;
A setting unit in which a plurality of CPUs individually set the transfer unit;
Control means for controlling the plurality of data transfers based on predetermined priority information when there is a conflict in a plurality of data transfers by the plurality of transfer means;
It is characterized by having.
また上記従来例の問題点を解決するため本発明の請求項2記載のデータ転送制御装置は、前記制御手段は、第1の転送手段による第1のデータ転送を行っているときに、前記第1の転送手段よりも優先順位の高い第2のデータ転送手段による第2のデータ転送が起動した場合、前記第1のデータ転送を一時中断し、前記第2のデータ転送を開始し、優先順位がもっとも高い第3の転送手段による第3のデータ転送を行っているときに、同じ優先順位の第4のデータ転送手段による第4のデータ転送が起動した場合には、前記第3のデータ転送と前記第4のデータ転送を交互にデータ転送を行うことを特徴とする。
In order to solve the problems of the conventional example, the data transfer control device according to
本発明によれば、RAMを共有しない複数のCPUから同一のハードディスクへアクセスを行った場合に、ハードディスクのパフォーマンスを生かしながらも、異なるCPU間で競合が起こった場合でもリアルタイム性を保証することが可能になる。 According to the present invention, when accessing the same hard disk from a plurality of CPUs that do not share RAM, it is possible to ensure real-time performance even when competition occurs between different CPUs while taking advantage of the performance of the hard disk. It becomes possible.
また本発明によれば、複数のハードディスクを搭載した場合に、それぞれのハードディスクに対してDMA転送が行われている場合に、異なるCPU間で競合が起こってもハードディスクのパフォーマンスを活かすことができる。 Further, according to the present invention, when a plurality of hard disks are mounted and DMA transfer is performed for each of the hard disks, the performance of the hard disk can be utilized even if competition occurs between different CPUs.
以下、図面を参照して本発明の実施の形態を説明する。 Embodiments of the present invention will be described below with reference to the drawings.
図1は本発明の第1の実施例におけるシステムの概要を示すブロック図である。 FIG. 1 is a block diagram showing an outline of a system in a first embodiment of the present invention.
図1に示すシステムは、複写機等の画像処理装置のコントローラユニットであり、図示しないスキャナユニット、プリンタユニットと接続し、様々な画像処理機能を実行することができる。したがって、本実施例で扱うデータは、主に画像データである。なお、本発明が適用可能な装置は、画像処理装置に限るものではなく、汎用のパーソナルコンピュータやワークステーションでもよいことは言うまでもない。 The system shown in FIG. 1 is a controller unit of an image processing apparatus such as a copying machine, and can be connected to a scanner unit and a printer unit (not shown) to execute various image processing functions. Therefore, data handled in the present embodiment is mainly image data. Needless to say, an apparatus to which the present invention is applicable is not limited to an image processing apparatus, and may be a general-purpose personal computer or a workstation.
図1において101および111はCPUであり、異なるOSあるいは同一のOSが別々に動作しており、本装置の制御を行う。103、113はメインメモリでSDRAMやRDRAMのようにシステムによって様々な形態が用いられ、CPU101およびCPU111で扱うデータを一時的に記憶させておくためのものである。102および112はROMで、CPU101およびCPU111が動作するためのプログラムやデータが格納されており、CPU101、CPU111は電源が投入された直後にそれぞれのバスに接続されているROM102およびROM112からプログラムを読み出し、実行する。またフラッシュROMなどを使用することにより、CPU101またはCPU111からデータを書き換えることも可能である。
In FIG. 1,
105および115はローカルバスであり、それぞれCPU、RAM、ROMおよび後述するバスブリッジが接続されている。117はローカルバス105および115と独立したIOバスであり、後述するHDDコントローラが接続されるバスである。104および114のブリッジはローカルバス105、115とIOバス117を接続するためのものであり、バスのプロトコル変換を行う。バスブリッジ206は双方向へのアクセスが可能であり、ローカルバス105および115からIOバス117への読み書き、またはIOバス117からローカルバス105あるいは115への読み書きが可能である。
140および150は不揮発性記憶媒体であるハードディスクである。UltraATAやSerialATAあるいは独自のATA規格に沿ったI/Fを有する様々な形態のものなどが用いられる。
120はハードディスク140および150を制御するためのハードディスクコントローラである。121および125はDMAコントローラであり、それぞれのDMAコントローラがDMA転送を行うための情報をCPU101およびCPU111それぞれが書き込むためのレジスタをDMAコントローラ121用に122、123、DMAコントローラ125用に125、126を有している。DMAコントローラ121、125は、ハードディスクのブロック単位の倍数分ずつ転送を行うためのバッファを内部に有し、ブロック単位の倍数分の転送が終了するたびに、後述するアービターによってどのDMAコントローラを起動するかが決定される。
A
124および128は、それぞれのDMAコントローラの有するレジスタで設定された値の調停を行うアービターである。レジスタの一方のみが設定されていた場合にはその値が設定される。また、ふたつのレジスタに値が設定された場合でかつ、DMAコントローラが起動されていない状態の場合には、CPU101で設定した値が優先されるものとする。もしすでに片方の値でDMAコントローラが起動されており、次のDMAコントローラを起動するアービトレーションを行う場合には、動作していなかったレジスタの値がDMAコントローラに設定されるものとする。
129は、124および128のアービターで調停された値を元に、DMAコントローラ121および125に対して動作の許可、不許可を指示するためのものであり、DMA121、125は、アービターの許可信号がアサートされない限り、動作は開始できないものとする。
129 is for instructing the
130はセレクタであり、DMAコントローラ121、125が転送するデータを、アービター129の指示により、ハードディスク140,141のどれに転送するかを振り分けるためのものである。
131、132はATAI/Fコントローラであり、ハードディスク140,141がIDEのハードディスクであった場合に、ATA規格に沿ってIDEバス上をドライブし、ハードディスク140,141とデータの送受信を行うためのものである。
131 and 132 are ATA I / F controllers, and when the
本実施例では、CPU101がレジスタ122、126、CPU111がレジスタ123、127を用いるものとし、DMAコントローラ121よりもDMA125の優先度が高いものとするが、どのCPUがどのレジスタに設定するかはCPU間で通信を行い動的に決定したり、DMAコントローラの優先度も接続された機器等によって変更することも考えられるが、そのような動的な変更を行った場合にも本特許に含まれることはいうまでもない。
In this embodiment, the
図2は、本実施例において、CPUがハードディスクへのアクセスを行う動作を表したフローチャート図である。ここでは、CPU101がハードディスク140への読み書きを行う場合について説明を行う。
FIG. 2 is a flowchart showing an operation in which the CPU accesses the hard disk in this embodiment. Here, a case where the
まず、S1001においてタスクからデータ転送要求があるまで待機する。ここで、データ転送要求には、少なくともデータをReadするかWriteするか、データのやりとりを行うハードディスクの先頭アドレス、RAM103の先頭アドレスおよび転送データサイズ、どのDMAコントローラを使うかが含まれる。次に、S1002においてデータ転送要求のあったDMAコントローラが自CPUの要求によって動作中かどうかを調べる。もし、すでに動作している場合には、S1003において動作が終了するまで要求のあったタスクをサスペンドさせる。
First, in step S1001, the task waits until a data transfer request is issued from the task. Here, the data transfer request includes at least data read or write, the head address of the hard disk that exchanges data, the head address and transfer data size of the
S1002で動作中のDMAコントローラではないコントローラに要求があった場合には、S1004において、DMAコントローラのレジスタ122にハードディスクの先頭アドレスを設定する。次にS1005、S1006においても同様にレジスタ122にデータサイズと転送するRAM103の先頭アドレス、データ転送方向をDMAコントローラに設定し、S1007においてDMAコントローラを起動する。
If there is a request from a controller that is not the DMA controller operating in S1002, the head address of the hard disk is set in the
S1008において、DMAコントローラの終了割り込みを受信するまで待機し、終了割り込みを受信したら、S1009において、レジスタ122の初期化などのDMAコントローラの終了処理を行い、タスクに終了したことを通知して終了する。
In step S1008, the process waits until a DMA controller end interrupt is received. When the end interrupt is received, in step S1009, the DMA controller end process such as initialization of the
本実施例では、タスクからDMAコントローラの指示を行ったが、この指示はタスクの優先順位から自動的に決めてもよいし、セクタごとに決めてもよい。 In this embodiment, the DMA controller is instructed from the task, but this instruction may be determined automatically from the priority of the task or may be determined for each sector.
図3は本実施例におけるハードディスクコントローラ120の動作を表したフローチャート図である。
FIG. 3 is a flowchart showing the operation of the
まず、S1101においてCPU101あるいは111がDMAコントローラを起動するまで待つ。DMAコントローラが起動されたら、S1102において転送要求のある中で優先度の高いDMAコントローラを選択する。本実施例において、レジスタ121とレジスタ126に値が設定された場合には、より優先度の高いDMAコントローラ125が選択される。
First, in S1101, the
S1103において、選択されたDMAコントローラにおいて複数の値がセットされたかどうかを確認する。 In S1103, it is confirmed whether or not a plurality of values are set in the selected DMA controller.
もし、単一のレジスタにのみ値が設定された場合には、S1104において動作中のDMAコントローラがあるか否かを判定し、ない場合には、S1107において選択したDMAコントローラへ転送許可信号をアービター129が出力し、DMA転送が開始される。 If a value is set only in a single register, it is determined in S1104 whether there is an active DMA controller. If not, a transfer permission signal is sent to the selected DMA controller in S1107. 129 is output and DMA transfer is started.
もし、S1104において動作中のDMAコントローラがなかった場合には、動作中のDMAコントローラと選択したDMAコントローラが等しいかどうか、すなわち優先度の高いDMAコントローラが動作しているかどうかをアービター129が判断する。もし、優先度の高いDMAコントローラが動作している場合には、S1106において動作中のDMAコントローラを停止した後に、S1107に移る。
If there is no operating DMA controller in S1104, the
次にS1108においてDMAコントローラがDMAにおける1ブロック転送が終了する。もし転送終了後に動作中のDMAコントローラのデータ転送が終了した場合には、S1110において要求されたCPUに割り込みをあげ、CPUはS1009に動作を行う。もしデータ転送が終了していない場合には、S1102に戻り再度どのDMAコントローラを起動するかを決定する。 Next, in S1108, the DMA controller completes one block transfer in DMA. If the data transfer of the active DMA controller is completed after the transfer is completed, an interrupt is issued to the requested CPU in S1110, and the CPU performs an operation in S1009. If the data transfer is not completed, the process returns to S1102 to determine which DMA controller is to be activated again.
S1103において選択したDMAコントローラの設定が複数のCPUによってなされていた場合には、S1111において、優先度が最大かどうかを確認する。優先度が最大の場合にはS1104に移行し、通常の場合と同じ処理によって起動するDMAコントローラが決定される。 If the setting of the DMA controller selected in S1103 has been made by a plurality of CPUs, it is confirmed in S1111 whether the priority is maximum. If the priority is the maximum, the process proceeds to S1104, and the DMA controller to be activated is determined by the same processing as in the normal case.
もし、優先度が最大の場合には、S1112において動作中のDMAコントローラがあるかを確認し、なければ、S1107に移る。ここでは上述したようにCPU101の設定した値が優先される。もし、動作中のDMAが存在した場合には、S1113において動作中のDMAコントローラが停止され、S1114において動作していなかったレジスタ設定値が設定され、S1107に移る。
If the priority is the highest, it is confirmed in S1112 whether there is an operating DMA controller, and if not, the process proceeds to S1107. Here, the value set by the
本実施例では、優先度が最大の場合にCPU101のレジスタ設定を優先させたが、CPU111のレジスタ設定を優先させてもよいし、動的に切り替えた場合も本特許に含まれることは言うまでもない。
In the present embodiment, the priority is given to the register setting of the
本発明の第2の実施形態を図4に基づいて説明する。なお、前述した第一の実施例と同一部分については説明を省略し、同一の番号を付与する。 A second embodiment of the present invention will be described with reference to FIG. In addition, description is abbreviate | omitted about the same part as 1st Example mentioned above, and the same number is provided.
図3のフローチャートと同様に図4は、ハードディスクコントローラ120がDMAデータ転送要求を受けてデータ転送を行う場合の動作を表したフローチャート図である。
Similar to the flowchart of FIG. 3, FIG. 4 is a flowchart showing the operation when the
本実施例で実施例1と異なるのは、まずS1201において同一ハードディスクへの転送要求における優先度の高いDMAコントローラを選択する。 This embodiment differs from the first embodiment in that first, in S1201, a DMA controller having a high priority in a transfer request to the same hard disk is selected.
また、S1111において優先度が最大かどうかを確認した後にS1202およびS1203において同一のハードディスクへの動作中のDMAコントローラがあるかどうかを確認することによって、異なるハードディスクへのDMA転送を停止させないようにする。 Also, after confirming whether the priority is the maximum in S1111, in S1202 and S1203, confirm whether there is an active DMA controller to the same hard disk, so that DMA transfer to different hard disks is not stopped .
S1204においては、選択したDMAコントローラを起動させる前に、選択したDMAコントローラの設定値からどのハードディスクへの読み書きを行うかをセレクタ130が決定する。
In S1204, before starting the selected DMA controller, the
上述した実施例1との差異によって、複数のハードディスクを搭載した場合に異なるハードディスクへのDMAコントローラのアクセスを行うことが可能となる。 Due to the difference from the first embodiment described above, when a plurality of hard disks are mounted, the DMA controller can access different hard disks.
本実施例ではハードディスクがふたつの場合を想定して記述されているが、ハードディスクを3つ以上搭載した場合でも同様のシーケンスで同等の効果を得ることができる。 In this embodiment, the description is made on the assumption that there are two hard disks. However, even when three or more hard disks are mounted, the same effect can be obtained with the same sequence.
Claims (2)
メモリと前記複数の記憶媒体との間での複数のデータ転送を行う複数の転送手段と、
複数のCPUが前記転送手段を個別に設定する設定手段と、
複数の前記転送手段による複数のデータ転送に競合が生じる場合に、優先順位情報に基づき、前記複数のデータ転送を制御する制御手段と、
を有することを特徴とするデータ転送制御装置。 A data transfer control device connected to a plurality of storage media,
A plurality of transfer means for transferring a plurality of data between a memory and the plurality of storage media;
A setting unit in which a plurality of CPUs individually set the transfer unit;
Control means for controlling the plurality of data transfers based on priority information when contention occurs in a plurality of data transfers by the plurality of transfer means;
A data transfer control device comprising:
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2006085588A JP2007264751A (en) | 2006-03-27 | 2006-03-27 | Data transfer controller |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2006085588A JP2007264751A (en) | 2006-03-27 | 2006-03-27 | Data transfer controller |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2007264751A true JP2007264751A (en) | 2007-10-11 |
Family
ID=38637720
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2006085588A Withdrawn JP2007264751A (en) | 2006-03-27 | 2006-03-27 | Data transfer controller |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP2007264751A (en) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP2608011A1 (en) | 2011-12-19 | 2013-06-26 | Fujitsu Limited | Storage device, and storage device control method |
JP2014038651A (en) * | 2013-10-10 | 2014-02-27 | Fujitsu Ltd | Multiprocessor system, control method, and control program |
JP2015103121A (en) * | 2013-11-27 | 2015-06-04 | 京セラドキュメントソリューションズ株式会社 | Electronic equipment |
-
2006
- 2006-03-27 JP JP2006085588A patent/JP2007264751A/en not_active Withdrawn
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP2608011A1 (en) | 2011-12-19 | 2013-06-26 | Fujitsu Limited | Storage device, and storage device control method |
US8806070B2 (en) | 2011-12-19 | 2014-08-12 | Fujitsu Limited | Storage device, and storage device control method |
JP2014038651A (en) * | 2013-10-10 | 2014-02-27 | Fujitsu Ltd | Multiprocessor system, control method, and control program |
JP2015103121A (en) * | 2013-11-27 | 2015-06-04 | 京セラドキュメントソリューションズ株式会社 | Electronic equipment |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP4408263B2 (en) | Data transfer system and data transfer method | |
US7725621B2 (en) | Semiconductor device and data transfer method | |
KR100630071B1 (en) | High speed data transmission method using direct memory access method in multi-processors condition and apparatus therefor | |
JP2004355307A (en) | Communication method and information processor | |
JP2008009803A (en) | Information storage device, information transfer method, information transfer system, program and recording medium | |
JP2007264751A (en) | Data transfer controller | |
JP6180398B2 (en) | Memory access device | |
JP2007102436A (en) | Storage controller and storage control method | |
JP5340058B2 (en) | Image processing apparatus, control method thereof, and program | |
JP2004206424A (en) | Data processing device and data transfer method for data processing device | |
JP6233287B2 (en) | Memory access device, image processing device | |
JP2005165592A (en) | Data transfer device | |
JP2005141344A (en) | Disk array device and method for controlling it | |
JPH0628261A (en) | Method and device for data transfer | |
JP2016103112A (en) | Data transfer control device, information processing device, and image forming apparatus | |
JP7003752B2 (en) | Data transfer device, data transfer method, program | |
JP6992616B2 (en) | Data transfer device, data transfer method, program | |
JP2701739B2 (en) | Processor switching method | |
JP2016154001A (en) | Image processor, data transfer control method for image processing, and data transfer control program for image processing | |
JP2000099391A (en) | Printer, printer controlling method and storage medium | |
JPH0351943A (en) | Sharing system for high/low speed bus lines | |
JP4750620B2 (en) | Data read method and system for tiered storage apparatus | |
JP2003308289A (en) | Data processor | |
JP2005062946A (en) | Memory controller | |
JP2008077389A (en) | Data processor |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A300 | Withdrawal of application because of no request for examination |
Free format text: JAPANESE INTERMEDIATE CODE: A300 Effective date: 20090602 |