JPH07226019A - Disk striping device - Google Patents

Disk striping device

Info

Publication number
JPH07226019A
JPH07226019A JP1824894A JP1824894A JPH07226019A JP H07226019 A JPH07226019 A JP H07226019A JP 1824894 A JP1824894 A JP 1824894A JP 1824894 A JP1824894 A JP 1824894A JP H07226019 A JPH07226019 A JP H07226019A
Authority
JP
Japan
Prior art keywords
data
fifo
channel
recording
recording medium
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
JP1824894A
Other languages
Japanese (ja)
Inventor
Ichiro Okamoto
本 一 郎 岡
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.)
Panasonic Holdings Corp
Original Assignee
Matsushita Electric Industrial 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 Matsushita Electric Industrial Co Ltd filed Critical Matsushita Electric Industrial Co Ltd
Priority to JP1824894A priority Critical patent/JPH07226019A/en
Publication of JPH07226019A publication Critical patent/JPH07226019A/en
Pending legal-status Critical Current

Links

Abstract

PURPOSE:To inexpensively realize the device by simplifying its structure in a disk striping device used when recording dispersedly the continuous data for which only one recording medium is not enough in the processing speed, to plural recording media and connecting and reproducing them. CONSTITUTION:This device is provided with N pieces of recording media 51, N pieces of control part 41 to control them, plural FIFO memories 11 corresponding to the number of channels, a data bus 31 connecting between respective control parts 41 and respective FIFO memories 11 and an FIFO control part 21 provided with an N-ary counter 22 and controlling respective FIFO memories 11. Then, by successively using the data bus 31 according to the value of the N-ary counter 22, the constitution is simplified, and the cost is reduced.

Description

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

【0001】[0001]

【産業上の利用分野】本発明は、1台の記録媒体では処
理速度が間に合わない連続データを、複数の記録媒体に
分散して記録し、結合して再生する装置、特に画像編集
装置や動画像を伝送する画像通信装置など、複数の映像
を実時間で記録再生し、実時間で処理する必要のある場
合に好適なディスク・ストライピング装置に関する。
BACKGROUND OF THE INVENTION 1. Field of the Invention The present invention relates to a device for recording continuous data, which cannot be processed by a single recording medium in time, on a plurality of recording media, recording the combined data, and reproducing the data, in particular, an image editing device or a moving image. The present invention relates to a disk striping apparatus suitable for a case where it is necessary to record and reproduce a plurality of videos in real time and process them in real time, such as an image communication apparatus that transmits an image.

【0002】[0002]

【従来の技術】一般にデータを個々の記録媒体の転送速
度を越えて記録したい場合、媒体を複数にし、データを
分割して処理することで、処理速度を上げる方法が採ら
れる。例えば、3つの記録媒体から3つのデータ群を読
み出す場合、図3のように、9つのFIFOメモリ21
1〜213、221〜223、231〜233と、それ
ぞれ3つのスイッチ241〜243および記録媒体25
1〜253があれば、ディスク・ストライピング装置を
実現できる。
2. Description of the Related Art Generally, when it is desired to record data at a transfer rate higher than that of an individual recording medium, a method of increasing the processing speed is adopted by dividing the data into a plurality of media and processing the divided data. For example, when reading three data groups from three recording media, as shown in FIG.
1-213, 221-223, 231-233, and three switches 241-243 and recording medium 25, respectively.
With 1 to 253, a disk striping device can be realized.

【0003】上記装置の動作について説明する。まず、
記録動作を説明する。各系統のデータは、3チャネル等
分されて各FIFOメモリ211〜213、221〜2
23、231〜233に書き込まれる。次に、スイッチ
241〜243をチャネルCH1に合わせ、チャネルC
H1のデータ列をFIFOメモリ211〜213から記
録媒体251〜253へそれぞれ伝送する。次に、スイ
ッチ241〜243をチャネルCH2に合わせ、チャネ
ルCH2のデータ列をFIFOメモリ221〜223か
ら記録媒体251〜253へそれぞれ伝送する。最後
に、スイッチ241〜243をチャネルCH3に合わ
せ、チャネルCH3のデータ列を同様にFIFOメモリ
231〜233から記録媒体351〜353へそれぞれ
伝送する。以上のサイクルを繰り返すことで、3系統の
記録が完了する。
The operation of the above apparatus will be described. First,
The recording operation will be described. The data of each system is equally divided into three channels and is divided into FIFO memories 211 to 213 and 221 to 2 respectively.
23, 231-233. Next, the switches 241 to 243 are aligned with the channel CH1, and the channel C
The data string of H1 is transmitted from the FIFO memories 211 to 213 to the recording media 251 to 253, respectively. Next, the switches 241 to 243 are adjusted to the channel CH2, and the data strings of the channel CH2 are transmitted from the FIFO memories 221 to 223 to the recording media 251 to 253, respectively. Finally, the switches 241 to 243 are adjusted to the channel CH3, and the data strings of the channel CH3 are similarly transmitted from the FIFO memories 231 to 233 to the recording media 351 to 353, respectively. By repeating the above cycle, recording of three systems is completed.

【0004】次に、再生動作を説明する。再生は、記録
と逆向きの制御になる。まずスイッチ241〜243を
チャネルCH1に合わせ、記録媒体351〜353から
チャネルCH1のFIFOメモリ211〜213へデー
タを転送する。次に、チャネルCH2、最後にチャネル
CH3について同様に転送する。この3ステップが終了
した後、各チャネルCHはそれぞれの3つのFIFOメ
モリを制御し、データを合成して読み出す。以上の動作
を繰り返し行なうことでストライプ処理が実現できる。
Next, the reproducing operation will be described. Playback is controlled in the opposite direction to recording. First, the switches 241 to 243 are adjusted to the channel CH1 and data is transferred from the recording media 351 to 353 to the FIFO memories 211 to 213 of the channel CH1. Next, the channel CH2 and finally the channel CH3 are similarly transferred. After the completion of these three steps, each channel CH controls each of the three FIFO memories to synthesize and read the data. Stripe processing can be realized by repeating the above operation.

【0005】[0005]

【発明が解決しようとする課題】しかしながら、上記し
た従来の装置では、FIFOメモリが9つあり、3つの
記録媒体から同時にデータをやりとりするため、FIF
Oコントローラも9つ必要であり、制御部の価格が上昇
する。また、データ伝送径路が8ビットとしても、9ラ
インでは72本にもなり煩雑である。さらに、データ径
路を切り替えるためのスイッチも3つ必要であり、スト
ライプ処理実現のためには大幅なコストアップが避けら
れなかった。
However, in the above-mentioned conventional device, there are nine FIFO memories, and data is exchanged from three recording media at the same time.
Nine O controllers are also required, which increases the price of the control unit. Further, even if the data transmission path is 8 bits, the number of lines in the 9 lines is 72, which is complicated. Furthermore, three switches are required to switch the data path, and a large increase in cost is unavoidable for realizing the stripe processing.

【0006】本発明は、このような従来の問題を解決す
るものであり、よりシンプルな構造で安価にストライプ
処理を実現することのできるディスク・ストライピング
装置を提供することを目的とする。
An object of the present invention is to solve such a conventional problem, and an object thereof is to provide a disk striping apparatus which has a simpler structure and can realize stripe processing at low cost.

【0007】[0007]

【課題を解決するための手段】本発明は、上記目的を達
成するために、9つのデータ径路の替わりに、1つのデ
ータバスを設け、各記録媒体と各FIFOメモリ間の転
送を、記録媒体がN個ある場合は、N進カウンタを内蔵
するFIFO制御部により、バスを均等に時分割して行
なうようにしたものである。すなわち、図1に示すよう
に、複数のN個の記録媒体51と、各記録媒体51を制
御するN個の制御部41と、データの記録再生を行なう
複数のFIFOメモリと、各制御部41と各FIFOメ
モリ11との間を結合するデータバス31と、N進カウ
ンタ22を有して各FIFOメモリ11を制御するFI
FO制御部21とを備えている。
In order to achieve the above object, the present invention provides one data bus instead of nine data paths, and transfers data between each recording medium and each FIFO memory. If there are N, the FIFO control unit having a built-in N-counter performs time division of the bus evenly. That is, as shown in FIG. 1, a plurality of N recording media 51, N control units 41 that control each recording medium 51, a plurality of FIFO memories that record and reproduce data, and each control unit 41. And a FI for controlling each FIFO memory 11 by having a data bus 31 for coupling between each FIFO memory 11 and the N-ary counter 22.
The FO control unit 21 is provided.

【0008】[0008]

【作用】作用について説明する。まず、記録動作を説明
する。各チャネルCHのデータは、各FIFOメモリ1
1に書き込まれる。まずチャネルCH(1)のデータ列
をデータバス31および各制御部41を介して各記録媒
体51に転送する。記録媒体51の転送順は、データバ
ス31を制御するFIFO制御部21内のN進カウンタ
22の値による。すなわち、カウンタ22の値が1の時
は記録媒体(1)51へ、2の時は記録媒体(2)51
へ、3の時は記録媒体(3)51へ転送する。次に、チ
ャネルCH(2)のデータ列を各記録媒体51に転送す
る。この時も、N進カウンタ22の値によって、どの記
録媒体に転送するかを制御する。次に、チャネルCH
(3)のデータ列を各記録媒体51へ同様の方法で転送
する。以上のようなサイクルを繰り返すことで、N系統
の記録が完了する。
[Operation] The operation will be described. First, the recording operation will be described. The data of each channel CH is stored in each FIFO memory 1
Written to 1. First, the data string of the channel CH (1) is transferred to each recording medium 51 via the data bus 31 and each control unit 41. The transfer order of the recording medium 51 depends on the value of the N-ary counter 22 in the FIFO control unit 21 that controls the data bus 31. That is, when the value of the counter 22 is 1, the recording medium (1) 51 is displayed. When the value of the counter 22 is 2, the recording medium (2) 51 is recorded.
When it is 3, the data is transferred to the recording medium (3) 51. Next, the data string of the channel CH (2) is transferred to each recording medium 51. Also at this time, the recording medium to be transferred is controlled by the value of the N-ary counter 22. Next, channel CH
The data string of (3) is transferred to each recording medium 51 by the same method. By repeating the above cycle, recording of N systems is completed.

【0009】次に、再生動作を説明する。再生は、記録
と逆向きの制御になる。各記録媒体51は、チャネルC
H(1)のデータを読み出す。まず、各記録媒体51、
52、53からチャネルCH(1)のFIFOメモリ
(1)11へデータを転送する。N進カウンタ22の値
が1なら記録媒体(1)51から、2なら記録媒体
(2)51から、3なら記録媒体(3)51からチャネ
ルCH(1)のFIFOメモリ(1)11へ転送する。
チャネルCH(2)、チャネルCH(3)についても同
様の方法で転送する。このようなステップが終了した
後、各チャネルCHは、それぞれのFIFOメモリから
データを合成して読み出す。以上の動作を繰り返し行な
うことでストライプ処理が実現できる。
Next, the reproducing operation will be described. Playback is controlled in the opposite direction to recording. Each recording medium 51 has a channel C
The data of H (1) is read. First, each recording medium 51,
Data is transferred from 52 and 53 to the FIFO memory (1) 11 of the channel CH (1). If the value of the N-ary counter 22 is 1, the recording medium (1) 51 is transferred, if it is 2, the recording medium (2) 51 is transferred, and if it is 3, the recording medium (3) 51 is transferred to the FIFO memory (1) 11 of the channel CH (1). To do.
The channel CH (2) and the channel CH (3) are also transferred by the same method. After the above steps are completed, each channel CH synthesizes and reads the data from the respective FIFO memories. Stripe processing can be realized by repeating the above operation.

【0010】[0010]

【実施例】図2は本発明の一実施例の構成を示すもので
ある。この実施例では、3つの動画像をJPEGで画像
圧縮し、3つのハードディスクドライブ(以下HDD)
に分割記録し結合する。
FIG. 2 shows the structure of an embodiment of the present invention. In this embodiment, three moving images are image-compressed by JPEG, and three hard disk drives (hereinafter HDD)
Record and combine in two.

【0011】図1において111、112、113はH
DD、121、122、123は各HDDを制御するS
CSIコントローラ、131、132、133はデータ
を記録再生するためにチャネル数に応じて設けられたF
IFOメモリ、141、142、143はN進(本実施
例ではN=3)カウンタを有するFIFOコントロー
ラ、151、152、153は動画像を圧縮伸張するJ
PEG処理部、161は各SCSIコントローラ121
〜123と各FIFOメモリ131〜133とを結合す
るDMAバス、162は各SCSIコントローラ121
〜123とFIFOコントローラ141〜143とを結
合する制御バス、171はホストCPUである。
In FIG. 1, 111, 112 and 113 are H
DD, 121, 122 and 123 are S for controlling each HDD.
CSI controllers 131, 132, 133 are provided in accordance with the number of channels for recording / reproducing data.
IFO memories 141, 142 and 143 are FIFO controllers having N-ary (N = 3 in the present embodiment) counters, and 151, 152 and 153 J for compressing and expanding moving images.
PEG processing unit, 161 is each SCSI controller 121
To 123 and the respective FIFO memories 131 to 133 are coupled to each other, and 162 is each SCSI controller 121.
˜123 and the FIFO controllers 141 to 143 are coupled to each other, and 171 is a host CPU.

【0012】各HDD111〜113のR/Wは、SC
SIプロトコルを使用し、バイト単位で転送する。ま
た、各HDD111〜113を制御するSCSIコント
ローラ121〜123がSCSIの制御を司り、2バイ
ト幅のDMAバス161で高速にデータを入力できる。
The R / W of each HDD 111-113 is SC
Transfers byte by byte using the SI protocol. Further, the SCSI controllers 121 to 123 for controlling the HDDs 111 to 113 are responsible for SCSI control, and data can be input at high speed through the 2-byte wide DMA bus 161.

【0013】本実施例では、このDMAバス161を3
つのSCSIコントローラ121〜123と3つのFI
FOメモリ131〜133に接続し、各FIFOコント
ローラ141〜143に内蔵する3進カウンタでストラ
イプ転送を実行する。
In this embodiment, the DMA bus 161 is set to 3
SCSI controllers 121-123 and 3 FIs
The stripe transfer is executed by the ternary counters connected to the FO memories 131 to 133 and incorporated in the respective FIFO controllers 141 to 143.

【0014】次に、上記実施例の動作について説明す
る。まず、記録動作を説明する。各チャネルCHの映像
はJPEG処理部151〜153で圧縮され、符号列と
して各FIFOメモリ131〜133に書き込まれてゆ
く。一方、ホストCPU171は、まず3つのSCSI
コントローラ121〜123へチャネルCH(1)のデ
ータを各HDD111〜113へ転送するよう命令す
る。すると、各SCSIコントローラ121〜123か
らデータの要求フラグがHになり、制御バス162によ
ってFIFOコントローラ141〜143に送られる。
Next, the operation of the above embodiment will be described. First, the recording operation will be described. The video of each channel CH is compressed by the JPEG processing units 151 to 153 and written in each of the FIFO memories 131 to 133 as a code string. On the other hand, the host CPU 171 first selects three SCSI
The controllers 121 to 123 are instructed to transfer the data of the channel CH (1) to the HDDs 111 to 113. Then, the request flag of data from each of the SCSI controllers 121 to 123 becomes H, and the data is sent to the FIFO controllers 141 to 143 by the control bus 162.

【0015】チャネルCH(1)のFIFOコントロー
ラ141は、FIFOメモリ131内のデータを3等分
し、内部の3進カウンタの値に従い、3つのSCSIコ
ントローラ121〜123へ順次データを転送する。所
定のデータ転送が終了すると、データ要求フラグはLに
なる。ホストCPU171は、このフラグを見て終了を
確認すると、今度はチャネルCH(2)のデータを各H
DD111〜113へ転送するよう命令する。チャネル
CH(2)のFIFOコントローラ142は、内部の3
進カウンタの値に従い、各SCSIコントローラ121
〜123へデータを転送する。チャネルCH(2)が終
了すると、ホストCPU171は、チャネルCH(3)
のデータを各HDD111〜113へ転送するよう命令
する。以上の動作を連続することにより、途切れなく、
3系統のデータが3つのHDD111〜113に分散記
録される。
The FIFO controller 141 of the channel CH (1) divides the data in the FIFO memory 131 into three equal parts, and sequentially transfers the data to the three SCSI controllers 121 to 123 according to the value of the internal ternary counter. When the predetermined data transfer is completed, the data request flag becomes L. When the host CPU 171 confirms the end by looking at this flag, this time the data of the channel CH (2) is changed to H level.
Command to transfer to DD111-113. The FIFO controller 142 of the channel CH (2) has an internal 3
According to the value of the binary counter, each SCSI controller 121
Transfer data to 123. When the channel CH (2) ends, the host CPU 171 determines that the channel CH (3)
Command is sent to each HDD 111-113. By continuing the above operation, without interruption,
Data of three systems are distributed and recorded in the three HDDs 111 to 113.

【0016】次に、再生動作を説明する。再生動作は、
記録動作と方向が逆になるだけで、手順は同じである。
すなわち、まずホストCPU171から各SCSIコン
トローラ121〜123に各HDD111〜113から
チャネルCH(1)のデータを読み出し、FIFOメモ
リ131へ転送するよう命令する。SCSIコントロー
ラ121〜123は、データ読み出し要求フラグをHに
する。チャネルCH(1)のFIFOコントローラ14
1は、内部の3進カウンタの値によって、順にデータを
SCSIコントローラ121〜123からFIFOメモ
リ131へ転送する。この時、FIFOメモリ131内
部を3等分し、各HDD111〜113からのデータを
所定のエリアに書き込む、以上の処理をチャネルCH
(2)およびチャネルCH(3)に対しても行なう。一
方、FIFOメモリ131〜133からJPEG処理部
151〜153の伸張動作に合わせて、順次FIFOメ
モリ131〜133からJPEG処理部151〜153
へ転送される。
Next, the reproducing operation will be described. The playback operation is
The procedure is the same except that the recording operation is reversed in direction.
That is, first, the host CPU 171 instructs the SCSI controllers 121 to 123 to read the data of the channel CH (1) from the HDDs 111 to 113 and transfer the data to the FIFO memory 131. The SCSI controllers 121 to 123 set the data read request flag to H. FIFO controller 14 of channel CH (1)
1 sequentially transfers data from the SCSI controllers 121 to 123 to the FIFO memory 131 according to the value of the internal ternary counter. At this time, the inside of the FIFO memory 131 is divided into three equal parts, and the data from each HDD 111 to 113 is written in a predetermined area.
(2) and channel CH (3). On the other hand, in accordance with the expansion operation of the JPEG processing units 151 to 153 from the FIFO memories 131 to 133, the FIFO memories 131 to 133 are sequentially transferred to the JPEG processing units 151 to 153.
Transferred to.

【0017】[0017]

【発明の効果】本発明は、上記実施例から明らかなよう
に、FIFOコントローラを最小限の数にでき、かつ切
替スイッチもなく、結線もシンプルになり、コスト低減
と、省スペースを実現できる。
According to the present invention, as is apparent from the above-described embodiment, the number of FIFO controllers can be minimized, there is no changeover switch, connection is simple, and cost reduction and space saving can be realized.

【0018】また、ストライプの数をオプションで増加
させるシステムの場合、従来の構成では、全てを取り替
えなければならないが、本発明によれば、単に、追加C
Hのみバスに接続すれば良く、拡張が簡単である。
Further, in the case of a system in which the number of stripes is optionally increased, in the conventional configuration, all of them must be replaced, but according to the present invention, simply the additional C
Only H can be connected to the bus, and expansion is easy.

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

【図1】本発明のディスク・ストライピング装置の概念
を示すブロック図
FIG. 1 is a block diagram showing the concept of a disk striping device of the present invention.

【図2】本発明の一実施例を示すディスク・ストライピ
ング装置のブロック図
FIG. 2 is a block diagram of a disk striping device showing an embodiment of the present invention.

【図3】従来例を示すディスク・ストライピング装置の
ブロック図
FIG. 3 is a block diagram of a disk striping device showing a conventional example.

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

11〜13 FIFOメモリ 21 FIFO制御部 22 N進カウンタ 31 データバス 41〜34 制御部 51〜53 記録媒体 111〜113 HDD 121〜123 SCSIコントローラ 131〜133 FIFOメモリ 141〜143 FIFOメモリコントローラ 151〜153 JPEG処理部 161 DMAバス 162 制御バス 171 ホストCPU 11 to 13 FIFO memory 21 FIFO control unit 22 N-ary counter 31 data bus 41 to 34 control unit 51 to 53 recording medium 111 to 113 HDD 121 to 123 SCSI controller 131 to 133 FIFO memory 141 to 143 FIFO memory controller 151 to 153 JPEG Processing unit 161 DMA bus 162 Control bus 171 Host CPU

Claims (1)

【特許請求の範囲】[Claims] 【請求項1】 複数のN個の記録媒体と、前記各記録媒
体を制御するN個の制御部と、データの記録再生を行な
う複数のFIFOメモリと、前記各制御部と前記各FI
FOメモリとの間を結合するデータバスと、N進カウン
タを有して前記各FIFOメモリを制御するFIFO制
御部とを備えたディスク・ストライピング装置。
1. A plurality of N recording media, N control units for controlling each recording medium, a plurality of FIFO memories for recording and reproducing data, each control unit and each FI.
A disk striping device comprising a data bus for coupling with a FO memory, and a FIFO control unit having an N-ary counter and controlling each of the FIFO memories.
JP1824894A 1994-02-15 1994-02-15 Disk striping device Pending JPH07226019A (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP1824894A JPH07226019A (en) 1994-02-15 1994-02-15 Disk striping device

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP1824894A JPH07226019A (en) 1994-02-15 1994-02-15 Disk striping device

Publications (1)

Publication Number Publication Date
JPH07226019A true JPH07226019A (en) 1995-08-22

Family

ID=11966385

Family Applications (1)

Application Number Title Priority Date Filing Date
JP1824894A Pending JPH07226019A (en) 1994-02-15 1994-02-15 Disk striping device

Country Status (1)

Country Link
JP (1) JPH07226019A (en)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2000023901A1 (en) * 1998-10-19 2000-04-27 Intel Corporation Raid striping using multiple virtual channels

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2000023901A1 (en) * 1998-10-19 2000-04-27 Intel Corporation Raid striping using multiple virtual channels

Similar Documents

Publication Publication Date Title
JP4126713B2 (en) Image reproducing apparatus and image reproducing method
US5671386A (en) System for storing data and for providing simultaneous plural access to data by connecting each access channel to each and every one of storage arrays
JPH08292842A (en) Video server device
JPH07152500A (en) Multichannel common-pool distributed data storage and retrieval system
KR100626101B1 (en) Method and apparatus for recording information and Method and apparatus for reproducing information
JP3180542B2 (en) Video playback device
JP2000232622A (en) Data storage device, data storage method, data transmitter and data transmission method
JP3740213B2 (en) Playback device
JPH07226019A (en) Disk striping device
JPH1051740A (en) Data transmission system
JP3586892B2 (en) Multi-channel video reproducing apparatus and control method thereof
JP2001211411A (en) High-speed av information server and high-speed av information recording and reproducing method
JP3153490B2 (en) Recording / reproducing apparatus and recording / reproducing method thereof
JP4099548B2 (en) Video signal recording and playback device
JP2000163867A (en) Data processing device
JP4325073B2 (en) Data recording / reproducing apparatus and method
JP4325074B2 (en) Data recording / reproducing apparatus and method
JPH07319631A (en) Data storage device
JP2000251392A (en) Recorder and editing system
JP2001086448A (en) Device and method for recording and reproducing data
KR970005657B1 (en) Bit stream transmission apparatus using multi-harddisk
JPH11149719A (en) Information recording device and method and recording medium
JP2000149509A (en) Data recording and reproducing apparatus and method
JP2001292409A (en) Data recording and reproducing device, and method
JPH0846584A (en) Data transmission device