JPH09146877A - Inter-memory data transfer controller - Google Patents

Inter-memory data transfer controller

Info

Publication number
JPH09146877A
JPH09146877A JP32810995A JP32810995A JPH09146877A JP H09146877 A JPH09146877 A JP H09146877A JP 32810995 A JP32810995 A JP 32810995A JP 32810995 A JP32810995 A JP 32810995A JP H09146877 A JPH09146877 A JP H09146877A
Authority
JP
Japan
Prior art keywords
data
memory
read
transfer
destination
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
JP32810995A
Other languages
Japanese (ja)
Inventor
Isao Kato
勲 加藤
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.)
Oki Electric Industry Co Ltd
Original Assignee
Oki Electric Industry Co Ltd
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 Oki Electric Industry Co Ltd filed Critical Oki Electric Industry Co Ltd
Priority to JP32810995A priority Critical patent/JPH09146877A/en
Publication of JPH09146877A publication Critical patent/JPH09146877A/en
Pending legal-status Critical Current

Links

Landscapes

  • Bus Control (AREA)

Abstract

PROBLEM TO BE SOLVED: To improve the efficiency of transfer between memories even when the addresses of the memories are misaligned. SOLUTION: Two read buffers 41 and 42 are provided which store data of single-time access units of a source-side memory. If the address of the source- side memory is misaligned, a transfer control part 44 stores the misaligned part in one read buffer 41 and a next aligned part in the other read buffer 42. Further, the transfer control part 44 recomposes the data in the read buffers 41 and 42 so that the address is aligned with the address of a destination-side memory, and stores the data in a write buffer 43, thereby performing writing to the destination-side memory.

Description

【発明の詳細な説明】Detailed Description of the Invention

【0001】[0001]

【発明の属する技術分野】本発明は、コンピュータシス
テムにおけるメモリ間のデータ転送制御を行うメモリ間
データ転送制御装置に関する。
BACKGROUND OF THE INVENTION 1. Field of the Invention The present invention relates to an inter-memory data transfer control device for controlling data transfer between memories in a computer system.

【0002】[0002]

【従来の技術】従来のコンピュータシステムにおけるメ
モリ間データ転送においては、次のように構成されてい
た。例えば、32ビットデータバスを有するコンピュー
タシステムでは、4バイト単位で転送が実施され、転送
元となるメモリ(以下、ソース側メモリという)のデー
タを4バイト分格納するレジスタ(以下、単にレジスタ
という)を用いてソース側メモリからデータをリード
し、4バイト分のデータをレジスタに格納した後に、転
送先となるメモリ(以下、デスティネーション側メモリ
という)に対してデータをライトすることにより実施し
ていた。
2. Description of the Related Art The conventional data transfer between memories in a computer system is constructed as follows. For example, in a computer system having a 32-bit data bus, a transfer is performed in units of 4 bytes, and a register (hereinafter, simply referred to as a register) that stores 4 bytes of data in a memory (hereinafter, referred to as a source side memory) that is a transfer source. Is used to read data from the source memory, store 4 bytes of data in the register, and then write the data to the transfer destination memory (hereinafter referred to as destination memory). It was

【0003】[0003]

【発明が解決しようとする課題】しかしながら、上記従
来のメモリ転送では、4バイトが転送単位であるため、
データをソース側メモリからリード、または、デスティ
ネーション側メモリにライトする際に、メモリアドレス
が4バイトでアラインしていれば、リードおよびライト
サイクル共に、1回で実行されるが、ミスアラインの場
合は、2回必要となり、転送時間がかかるといった問題
点があった。
However, in the above conventional memory transfer, since 4 bytes is a transfer unit,
When data is read from the source side memory or written to the destination side memory, if the memory address is aligned with 4 bytes, both read and write cycles are executed once, but in the case of misalignment There was a problem that it was necessary twice and transfer time was long.

【0004】このような点から、ミスアラインしている
場合でもメモリ間の転送効率を向上させることのできる
メモリ間データ転送制御装置の実現が望まれていた。
From such a point, it has been desired to realize an inter-memory data transfer control device capable of improving the transfer efficiency between memories even when misaligned.

【0005】[0005]

【課題を解決するための手段】本発明は、前述の課題を
解決するため次の構成を採用する。 〈請求項1の構成〉本発明のメモリ間データ転送制御装
置は、ソース側メモリとデスティネーション側メモリ間
のダイレクト・メモリ・アクセス制御を行うメモリ間デ
ータ転送制御装置において、ソース側メモリに対する一
回のリードアクセス単位のデータをそれぞれ格納するた
めの二つのリードバッファと、デスティネーション側メ
モリへの一回のライトアクセス単位のデータを格納する
ためのライトバッファと、二つのリードバッファに対し
て、ソース側メモリからリードアドレスのアラインに一
致した単位でそれぞれ異なるデータを格納すると共に、
デスティネーション側メモリへのライトアドレスのアラ
インに一致するように、二つのリードバッファのデータ
に対して組み替えを行って、ライトバッファに格納する
転送制御部とを備えたことを特徴とするものである。
The present invention employs the following structure to solve the above-mentioned problems. <Structure of Claim 1> In the inter-memory data transfer control device of the present invention, in the inter-memory data transfer control device for performing direct memory access control between the source side memory and the destination side memory, 2 read buffers for storing the data of each read access unit, a write buffer for storing the data of one write access unit to the destination memory, and a source for the two read buffers. While storing different data from the side memory in units that match the read address alignment,
It is characterized by including a transfer control unit that rearranges the data of the two read buffers and stores them in the write buffer so as to match the alignment of the write address to the destination side memory. .

【0006】〈請求項1の説明〉ソース側メモリのリー
ドアドレスがミスアラインしている場合、転送制御部
は、先ず、ミスアラインしている部分を、二つのリード
バッファのうちの、一方のリードバッファに格納し、次
のアラインしているデータを他方のリードバッファに格
納する。そして、転送制御部は、デスティネーション側
メモリのライトアドレスのアラインに一致するよう、二
つのリードバッファのデータに対して組み替えを行い、
そのデータをライトバッファに格納する。そして、この
ライトバッファに格納したデータを一回のアクセス単位
でデスティネーション側メモリにライトする。
<Explanation of Claim 1> When the read address of the memory on the source side is misaligned, the transfer control section first sets the misaligned portion to one of the two read buffers. Store and store the next aligned data in the other read buffer. Then, the transfer control unit rearranges the data of the two read buffers so as to match the write address alignment of the destination side memory,
The data is stored in the write buffer. Then, the data stored in the write buffer is written to the destination memory in one access unit.

【0007】その結果、転送データが、一回のアクセス
単位×n(n=1、2、…)であった場合、リード/ライト
それぞれのメモリへのアクセス回数は、n+1回で済む
ことになる。また、一回のアクセス単位のデータ量は、
例えば4バイトといった値であるが、これ以上の値でも
同様の効果を得ることができる。
As a result, when the transfer data is one access unit × n (n = 1, 2, ...), the number of read / write accesses to the memory is n + 1. . In addition, the data amount of one access unit is
For example, the value is 4 bytes, but the same effect can be obtained with a value larger than this.

【0008】[0008]

【発明の実施の形態】以下、本発明の実施の形態を図面
を用いて詳細に説明する。 〈構成〉図1は本発明のメモリ間データ転送制御装置の
具体例を示す構成図である。図示のシステムは、独立し
た二つのバス間のデータ転送を実施するDMAC(ダイ
レクト・メモリ・アクセス・コントローラ)をバス間に
配し、CPU(中央処理装置)がアドレス、データ、コ
ントロールの各バスを介して各装置の制御およびデータ
処理を行うコンピュータシステムのメモリ間データ転送
に関する構成を示している。
BEST MODE FOR CARRYING OUT THE INVENTION Embodiments of the present invention will be described in detail below with reference to the drawings. <Structure> FIG. 1 is a block diagram showing a concrete example of the inter-memory data transfer control device of the present invention. In the system shown in the figure, a DMAC (Direct Memory Access Controller) for performing data transfer between two independent buses is arranged between the buses, and a CPU (Central Processing Unit) provides address, data and control buses. 2 shows a configuration relating to data transfer between memories of a computer system that controls each device and performs data processing via the device.

【0009】図のシステムは、メモリ1,2、CPU
(中央処理装置)4、メモリ間データ転送制御装置4か
らなる。メモリ1とCPU3は、アドレスバス101、
データバス102、コントロールバス103に接続さ
れ、メモリ2は、アドレスバス201、データバス20
2、コントロールバス203に接続されている。また、
メモリ間データ転送制御装置4は、これらアドレスバス
101,201、データバス102,202、コントロ
ールバス103,203に接続されている。
The system shown in FIG.
(Central processing unit) 4 and inter-memory data transfer control unit 4. The memory 1 and the CPU 3 have an address bus 101,
The memory 2 is connected to the data bus 102 and the control bus 103, and includes the address bus 201 and the data bus 20.
2. Connected to the control bus 203. Also,
The inter-memory data transfer control device 4 is connected to these address buses 101 and 201, data buses 102 and 202, and control buses 103 and 203.

【0010】メモリ間データ転送制御装置4は、CPU
3に代わり、メモリ間データ転送を行うダイレクト・メ
モリ・アクセス・コントローラ(DMAC)であり、リ
ードバッファ41,42、ライトバッファ43、転送制
御部44を備えている。リードバッファ41,42は、
それぞれソース側メモリの一回のアクセス単位分のデー
タを格納するためのバッファであり、本具体例では、4
バイト単位となっている。ライトバッファ43は、デス
ティネーション側メモリの一回のアクセス単位(4バイ
ト)分のデータを格納するためのバッファである。ま
た、転送制御部44は、ソース側メモリより4バイト分
のデータを取り出して各リードバッファ41,42に格
納し、また、デスティネーション側メモリのアドレスに
基づき、各リードバッファ41,42のデータをバイト
単位で組み替え、デスティネーション側メモリのライト
アドレスのアラインに一致するよう4バイト分のデータ
をライトバッファ43に格納し、デスティネーション側
メモリに転送する機能を有している。
The memory-to-memory data transfer control device 4 is a CPU
3 is a direct memory access controller (DMAC) that performs data transfer between memories, and includes read buffers 41 and 42, a write buffer 43, and a transfer control unit 44. The read buffers 41 and 42 are
Each of the buffers is a buffer for storing data for one access unit of the source side memory.
It is in bytes. The write buffer 43 is a buffer for storing data for one access unit (4 bytes) of the destination memory. Further, the transfer control unit 44 takes out 4 bytes of data from the memory on the source side and stores the data in the read buffers 41 and 42, and based on the address of the memory on the destination side, the data in the read buffers 41 and 42 is read. It has a function of rearranging in byte units, storing 4-byte data in the write buffer 43 so as to match the write address alignment of the destination side memory, and transferring it to the destination side memory.

【0011】〈動作〉次に、上記構成のメモリ間データ
転送制御装置の動作について説明する。例えば、メモリ
1(ソース側メモリ)からメモリ2(デスティネーショ
ン側メモリ)へのデータ転送を行う場合、その転送デー
タは、データバス102を介して破線11で示すルート
で、リードバッファ41,42に格納される。そして、
これらのデータに対して転送制御部44がデータ組み替
えを行い、実線12で示すルートでライトバッファ43
に格納し、更に、破線13で示すルートでデータバス2
02を介してメモり2にライトする。一方、メモリ2
(ソース側メモリ)からメモリ1(デスティネーション
側メモリ)へのデータ転送を行う場合は、一点鎖線14
で示すルートでリードバッファ41,42に格納し、デ
ータ組み替えを行って実線12で示すルートでライトバ
ッファ43に格納し、一点鎖線15で示すルートでメモ
リ1にライトされる。
<Operation> Next, the operation of the inter-memory data transfer control device having the above configuration will be described. For example, when data is transferred from the memory 1 (source side memory) to the memory 2 (destination side memory), the transfer data is transferred to the read buffers 41 and 42 via the data bus 102 by the route shown by the broken line 11. Is stored. And
The transfer control unit 44 rearranges the data with respect to these data, and the write buffer 43 is routed along the route indicated by the solid line 12.
In the data bus 2 along the route indicated by the broken line 13.
Write to memory 2 via 02. On the other hand, memory 2
To transfer data from (source-side memory) to memory 1 (destination-side memory), the chain line 14
The data is stored in the read buffers 41 and 42 by the route indicated by, the data is rearranged, stored in the write buffer 43 by the route indicated by the solid line 12, and written in the memory 1 by the route indicated by the alternate long and short dash line 15.

【0012】図2、3は、本具体例の動作を従来と比較
して示す説明図である。尚、図中、網掛けブロック部分
がメモリ上のデータ転送実施部を示しており、1ブロッ
クが1バイトとなっている。また、転送データは4×n
バイト(n=1、2、3、…)である。
2 and 3 are explanatory views showing the operation of this example in comparison with the conventional one. In the figure, a shaded block portion indicates a data transfer execution unit on the memory, and one block is 1 byte. The transfer data is 4 × n
Bytes (n = 1, 2, 3, ...).

【0013】タイプaは、転送データのメモリ上のアド
レスの配置がアラインしている場合であり、この場合
は、本具体例と従来とは同様の動作となる。即ち、一回
のアクセスで、ABCD、EFGH、…、WXYZとい
ったように4バイト分のアクセスが行われる。
The type a is a case where the addresses of the transfer data on the memory are aligned, and in this case, the operation is the same as that of the present example and the conventional one. That is, with one access, 4 bytes of access such as ABCD, EFGH, ..., WXYZ are performed.

【0014】一方、タイプb〜タイプdに示すように、
転送データのメモリ上のアラインが4バイト単位でない
場合(ミスアライン)、転送制御部44は、先ず、ミス
アラインしている最初のデータをリードバッファ41に
格納する。次に、アラインしている4バイトのデータを
リードバッファ42に格納する。例えば、タイプbの場
合、先ず、ABC部をリードし、リードバッファ41に
格納する。次に、DEFG部をリードし、これをリード
バッファ42に格納する。従って、4×nバイトの転送
データがあった場合、本具体例ではn+1回のリードで
済むことになる。
On the other hand, as shown in types b to d,
If the transfer data on the memory is not aligned in units of 4 bytes (misalignment), the transfer control unit 44 first stores the first misaligned data in the read buffer 41. Next, the aligned 4-byte data is stored in the read buffer 42. For example, in the case of type b, the ABC part is first read and stored in the read buffer 41. Next, the DEFG section is read and stored in the read buffer 42. Therefore, if there are 4 × n bytes of transfer data, in this specific example, it is sufficient to read n + 1 times.

【0015】これに対し、従来の方法では、タイプbの
場合、先ず、ABC部をリードし、次に、4バイトにす
るため、D部のみリードする。そして、このような動作
を繰り返すため、アクセスは、2×n回となる。
On the other hand, according to the conventional method, in the case of type b, the ABC part is first read, and then the D part is read in order to make it 4 bytes. And since such an operation is repeated, the access becomes 2 × n times.

【0016】また、例えば、ソース側アドレスがタイプ
c、デスティネーション側アドレスがタイプbといった
異なるタイプのアラインであった場合、転送制御部44
は、リードバッファ41,42のデータの組み替えを行
ってライトバッファ43に格納する。即ち、ソース側ア
ドレスがタイプcであるため、リードバッファ41にA
B部を格納、リードバッファ42にCDEF部を格納
し、これらのデータから、デスティネーション側アドレ
スのアラインするよう、先ず、ABC部をライトバッフ
ァ43に格納し、これをメモり2にライトする。次に、
リードバッファ41にGHIJ部を格納し、リードバッ
ファ41,42のデータより、ライトバッファ43にD
EFG部を格納し、デスティネーション側メモリにライ
トする。このように、ソース側メモリとデスティネーシ
ョン側メモリのアドレスのアラインが異なっていても、
各メモリ1,2へのアクセスはそれぞれn+1回で済む
ことになる。
Further, for example, when the source side address is a type c and the destination side address is a type b, which is a different type of alignment, the transfer control unit 44.
Stores the data in the write buffer 43 after rearranging the data in the read buffers 41 and 42. That is, since the source side address is of type c, A is stored in the read buffer 41.
The B section is stored, the CDEF section is stored in the read buffer 42, and the ABC section is first stored in the write buffer 43 so that the destination side address is aligned from these data, and this is written in the memory 2. next,
The GHIJ section is stored in the read buffer 41, and the data in the read buffers 41 and 42 is stored in the write buffer 43.
The EFG section is stored and written in the destination side memory. In this way, even if the address alignment of the source memory and destination memory is different,
Each of the memories 1 and 2 can be accessed only n + 1 times.

【0017】〈効果〉以上のように、本具体例では、転
送データのメモリ上のアラインが4バイト単位でない場
合でも、リードバッファ41,42を2面設定したこと
により、4バイトずつ別々のデータをリードし格納する
ことを可能とし、かつ、ミスアラインする部分のみデー
タ転送を行い、バイト単位でリードバッファ41,42
のデータの入れ替えを行ってライトバッファ43に、デ
スティネーション側メモリのライトデータを4バイト単
位でアラインするよう格納することを可能としたので、
転送データが4×nバイト(n=1、2、3、…)のと
き、メモリに対してリードおよびライトするアクセス回
数が{2n−(n+1)}×2=2(n−1)回削減す
ることができ、データ転送効率の向上が期待できる。
<Effect> As described above, in the present specific example, even when the transfer data on the memory is not aligned in units of 4 bytes, two read buffers 41 and 42 are set, so that separate data of 4 bytes is obtained. Can be read and stored, and data can be transferred only to the misaligned portion, and the read buffers 41, 42 can be read in byte units.
It is possible to store the write data of the destination memory in the write buffer 43 so as to be aligned in units of 4 bytes.
When the transfer data is 4 × n bytes (n = 1, 2, 3, ...), the number of read and write accesses to the memory is reduced by {2n− (n + 1)} × 2 = 2 (n−1). It is possible to improve the data transfer efficiency.

【0018】例えば、転送データ32バイトで、ソース
側メモリのデータ配置がタイプb、デスティネーション
側メモリのデータ配置がタイプcの場合におけるデータ
転送を実施すると、先ず、ソース側メモリの転送データ
リードアクセス回数は、従来の方法では64回必要であ
ったが、本具体例では、33回で実施することができ
る。その結果、本具体例では、データ転送に要するリー
ドおよびライトアクセス回数は66回で実施することが
でき、従来技術の場合の128回に比べ、よりデータ転
送の向上を図ることができる。
For example, when data transfer is performed in the case where the data arrangement of the source side memory is type b and the data arrangement of the destination side memory is type c with 32 bytes of transfer data, first, transfer data read access of the source side memory is performed. The number of times required was 64 in the conventional method, but in the present specific example, the number of times can be 33. As a result, in the present specific example, the number of read and write accesses required for data transfer can be performed 66 times, and the data transfer can be further improved as compared with 128 times in the case of the conventional technique.

【0019】尚、上記具体例では、4バイト単位のデー
タ転送の場合を説明したが、これに限定されるものでは
なく、例えば64ビットバスの場合の16バイト単位の
データ転送等であっても、同様の効果を奏することがで
きる。
In the above specific example, the case of data transfer in units of 4 bytes has been described, but the present invention is not limited to this, and for example, data transfer in units of 16 bytes in the case of a 64-bit bus, etc. The same effect can be achieved.

【0020】[0020]

【発明の効果】以上説明したように、本発明のメモリ間
データ転送制御装置によれば、リードまたはライトのア
ドレスがミスアラインしている場合でも、メモリ間デー
タ転送の効率向上を図ることができる。
As described above, according to the inter-memory data transfer control device of the present invention, even if the read or write address is misaligned, the inter-memory data transfer efficiency can be improved.

【図面の簡単な説明】[Brief description of the drawings]

【図1】本発明のメモリ間データ転送制御装置の構成図
である。
FIG. 1 is a configuration diagram of an inter-memory data transfer control device of the present invention.

【図2】本発明のメモリ間データ転送制御装置の動作を
従来と比較して示す説明図(その1)である。
FIG. 2 is an explanatory view (No. 1) showing the operation of the inter-memory data transfer control device of the present invention in comparison with a conventional one.

【図3】本発明のメモリ間データ転送制御装置の動作を
従来と比較して示す説明図(その2)である。
FIG. 3 is an explanatory view (No. 2) showing the operation of the inter-memory data transfer control device of the present invention in comparison with the related art.

【符号の説明】[Explanation of symbols]

1,2 メモリ 4 メモリ間データ転送制御装置 41,42 リードバッファ 43 ライトバッファ 44 転送制御部 1, 2 memory 4 data transfer control device between memories 41, 42 read buffer 43 write buffer 44 transfer control unit

Claims (1)

【特許請求の範囲】[Claims] 【請求項1】 ソース側メモリとデスティネーション側
メモリ間のダイレクト・メモリ・アクセス制御を行うメ
モリ間データ転送制御装置において、 前記ソース側メモリに対する一回のリードアクセス単位
のデータをそれぞれ格納するための二つのリードバッフ
ァと、 前記デスティネーション側メモリへの一回のライトアク
セス単位のデータを格納するためのライトバッファと、 前記二つのリードバッファに対して、前記ソース側メモ
リからリードアドレスのアラインに一致した単位でそれ
ぞれ異なるデータを格納すると共に、前記デスティネー
ション側メモリへのライトアドレスのアラインに一致す
るように、前記二つのリードバッファのデータに対して
組み替えを行って、前記ライトバッファに格納する転送
制御部とを備えたことを特徴とするメモリ間データ転送
制御装置。
1. A memory-to-memory data transfer control device for performing direct memory access control between a source-side memory and a destination-side memory, for storing data for each read access unit to the source-side memory. Two read buffers, a write buffer for storing data of one write access unit to the destination side memory, and an alignment of the read address from the source side memory to the two read buffers The data stored in the write buffer is stored in the write buffer by recombining the data in the two read buffers so as to store different data in each unit and to match the alignment of the write address to the destination memory. It is equipped with a control unit And a data transfer control device between memories.
JP32810995A 1995-11-22 1995-11-22 Inter-memory data transfer controller Pending JPH09146877A (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP32810995A JPH09146877A (en) 1995-11-22 1995-11-22 Inter-memory data transfer controller

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP32810995A JPH09146877A (en) 1995-11-22 1995-11-22 Inter-memory data transfer controller

Publications (1)

Publication Number Publication Date
JPH09146877A true JPH09146877A (en) 1997-06-06

Family

ID=18206601

Family Applications (1)

Application Number Title Priority Date Filing Date
JP32810995A Pending JPH09146877A (en) 1995-11-22 1995-11-22 Inter-memory data transfer controller

Country Status (1)

Country Link
JP (1) JPH09146877A (en)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2012194828A (en) * 2011-03-17 2012-10-11 Pfu Ltd Dma device, information processing device, and data transfer method

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2012194828A (en) * 2011-03-17 2012-10-11 Pfu Ltd Dma device, information processing device, and data transfer method

Similar Documents

Publication Publication Date Title
JP2774862B2 (en) DMA control device and information processing device
JPH09146877A (en) Inter-memory data transfer controller
US6795874B2 (en) Direct memory accessing
JPH0736806A (en) Dma system
JPS63174157A (en) Microprocessor device
JPH05298240A (en) Direct memory access controller
JPS61214047A (en) Memory data transfer circuit
JPH1055303A (en) Memory system
JPH03127126A (en) Information processor
JPH04177452A (en) Information processor
JPS61198351A (en) Direct memory access control circuit
JPH0689230A (en) Array circuit for cache memory read data
JPH07334473A (en) Multi-processor system
JPS63208945A (en) Information processor
JPH04160661A (en) Data processing system
JPH10116227A (en) Write-back control system for cache memory
JPH0830503A (en) Plant monitoring device
JPS62186344A (en) Address mapped register
JPH01158554A (en) Data processing system providing dma device
JPH01219930A (en) Interrupt control circuit device for indirect address system
JPH01250163A (en) Bus controller
JPH10275113A (en) Storage device
JPH02253362A (en) Data transfer system between microprocessor and fifo buffer
JPH04178861A (en) Data processor
JPH02171949A (en) Dma transfer system