JPH0772879B2 - Cache memory device - Google Patents

Cache memory device

Info

Publication number
JPH0772879B2
JPH0772879B2 JP62040866A JP4086687A JPH0772879B2 JP H0772879 B2 JPH0772879 B2 JP H0772879B2 JP 62040866 A JP62040866 A JP 62040866A JP 4086687 A JP4086687 A JP 4086687A JP H0772879 B2 JPH0772879 B2 JP H0772879B2
Authority
JP
Japan
Prior art keywords
data
output
address
cache
clock
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
Application number
JP62040866A
Other languages
Japanese (ja)
Other versions
JPS63206843A (en
Inventor
一郎 岡林
二郎 三宅
浩 廉田
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 JP62040866A priority Critical patent/JPH0772879B2/en
Publication of JPS63206843A publication Critical patent/JPS63206843A/en
Publication of JPH0772879B2 publication Critical patent/JPH0772879B2/en
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

Landscapes

  • Memory System Of A Hierarchy Structure (AREA)

Description

【発明の詳細な説明】 産業上の利用分野 本発明は電子計算機の高速ローカルメモリとして用いら
れるダイレクトマップ方式あるいはセットアソシアティ
ブ方式のキャッシュメモリ装置に関するものである。
BACKGROUND OF THE INVENTION 1. Field of the Invention The present invention relates to a direct map type or set associative type cache memory device used as a high speed local memory of an electronic computer.

従来の技術 従来のキャッシュメモリ装置の構成概略一例を第3図に
示す。キャッシュアドレスレジスタ4に新たにアドレス
が入力され、このアドレス下位部10の出力が、タグ部1
とデータ部2に共通に設けられたアドレスデコーダ3に
入力される。デコーダされたタグ部1のデータは比較器
6に入力され、キャッシュレジスタ4のアドレス上位部
11と比較される。この比較結果によりゲート7を制御し
て、データ部2からデコード、出力されたデータ出力14
を有効データとして演算装置に出力するかどうかを決定
する。
2. Description of the Related Art FIG. 3 shows an example of a schematic configuration of a conventional cache memory device. An address is newly input to the cache address register 4, and the output of this address lower part 10 is the tag part 1
Is input to the address decoder 3 provided in common to the data section 2. The decoded data of the tag unit 1 is input to the comparator 6, and the upper address of the cache register 4 is stored.
Compared with 11. The data output 14 decoded and output from the data section 2 is controlled by the gate 7 according to the comparison result.
Is output as valid data to the arithmetic unit.

このタグ部1には事前に、使用されたアドレスのタグフ
ィールド部がタグ部1に、それに対応するデータがデー
タ部2にキャッシュされている。このため一度使用され
たデータがキャッシュされていれば、内部メモリに比べ
スピードの遅い外部の主記憶装置をアクセスする必要が
ない。また、これにより外部の主記憶装置と演算装置を
接続しているデータバスを頻繁に使用する必要がない。
従って、一般には演算効率の向上が望める。
In the tag section 1, the tag field section of the used address is cached in the tag section 1 and the corresponding data is cached in the data section 2 in advance. Therefore, once used data is cached, there is no need to access an external main storage device, which is slower than the internal memory. Moreover, this eliminates the need to frequently use the data bus connecting the external main memory device and the arithmetic unit.
Therefore, in general, improvement in calculation efficiency can be expected.

しかしながら、データのミスヒット(新たにアドレスさ
れる使用データがキャッシュメモリ装置に存在しない
時)はキャッシュデータの更新が発生する。
However, a data miss hit (when there is no newly addressed used data in the cache memory device) results in an update of the cache data.

この過程を第4図のタイミングチャート図を基に以下で
説明する。今、駆動クロックは1マシンサイクル100nse
cの4相クロックとする。
This process will be described below with reference to the timing chart of FIG. Now the driving clock is 100nse per machine cycle
It is a 4-phase clock of c.

キャッシュアドレスレジスタ4は第2クロックで変化す
る。従って、タグ部1およびデータ部2はこの第2クロ
ックの期間にプリチャージ(初期化)される。
The cache address register 4 changes at the second clock. Therefore, the tag unit 1 and the data unit 2 are precharged (initialized) during the second clock period.

次いで、第3クロックでこのアドレス下位部10がアドレ
スデコーダ3に入力され、タグ部1およびデータ部2の
出力が第0クロックで読みだされる。
Next, at the third clock, the lower address part 10 is input to the address decoder 3, and the outputs of the tag part 1 and the data part 2 are read at the 0th clock.

このタグ部1からの出力と前記アドレスのアドレス上位
部11とが比較器6により比較される。この結果が一致し
ていれば、データ出力14が有効データとしてゲート7を
介して演算装置に出力される。
The comparator 6 compares the output from the tag unit 1 with the upper address part 11 of the address. If the results match, the data output 14 is output to the arithmetic unit via the gate 7 as valid data.

一方、不一致の場合はミスヒット信号が第0クロックに
やや遅れて出力される。これを受けて、外部主記憶装置
の有効データ(n+1)が演算装置およびキャッシュメ
モリ装置に入力される。
On the other hand, if they do not match, the mishit signal is output slightly behind the 0th clock. In response to this, the valid data (n + 1) of the external main memory is input to the arithmetic unit and the cache memory unit.

ここで、アクセスタイムが40〜50nsecの高速主記憶装置
を用いれば、有効データ(n+1)は第3クロックの後
半に取り込め、また第0クロックでこのデータをデータ
部2に書き込むことが出来る。
Here, if a high-speed main memory device having an access time of 40 to 50 nsec is used, the valid data (n + 1) can be fetched in the latter half of the third clock and the data can be written in the data section 2 at the 0th clock.

しかしながら、このミスヒット後のキャッシュメモリ装
置による(n+2)番地のアクセスに関しては、事前の
有効データ(n+1)を書き込みの後になされる。従っ
て、第0クロックのダクライトイネーブル信号およびデ
ータライトイネイブル信号によるプリチャージ期間およ
び第1クロックの書き込み期間のタイムラグが生じる。
However, the access to the address (n + 2) by the cache memory device after this mishit is performed after writing valid data (n + 1) in advance. Therefore, a time lag occurs between the precharge period and the write period of the first clock due to the 0th clock dakuwrite enable signal and the data write enable signal.

つまり、ミスヒットが生じた場合はキャッシュメモリ装
置の更新のために1マシンサイクル、即ち100nsecの余
計な演算時間がかかることになる。特に、このミスヒッ
トが頻繁に生じる場合は大きく演算時間のロスを招く。
That is, if a mishit occurs, it takes one machine cycle, that is, an extra calculation time of 100 nsec, for updating the cache memory device. In particular, when this mis-hit occurs frequently, it causes a large loss of calculation time.

発明が解決しようとする問題点 このように、従来のキャッシュメモリ装置ではミスヒッ
トが生じた時にキャッシュデータの更新のためにタイム
ラグが生じる問題点がある。これは、データ転送に伴う
データバスの占有問題を考慮しなければ、キャッシュメ
モリを構成するかわりに、高速の主記憶装置を使用すほ
うがキャツシュメモリ装置への書き込みによるタイムラ
グもな高速に必要なデータを演算装置に送ることが出来
とさえ考えられる。従って、このタイムラグをなくすこ
とはキャッシュメモリ装置の性能向上にとって、極めて
重要な課題である。
Problems to be Solved by the Invention As described above, in the conventional cache memory device, there is a problem that a time lag occurs due to update of cache data when a mishit occurs. This is because if you do not consider the data bus occupation problem associated with data transfer, using a high-speed main memory device instead of configuring a cache memory will not cause a time lag due to writing to the cache memory device. Can even be sent to a computing device. Therefore, eliminating this time lag is an extremely important issue for improving the performance of the cache memory device.

本発明はかかる問題点に鑑みなされたもので、タイムラ
グのない高性能なキャッシュメモリ装置を新たに提案す
ることを目的としている。
The present invention has been made in view of the above problems, and an object thereof is to newly propose a high-performance cache memory device with no time lag.

問題点を解決するための手段 本発明は、一時的にアドレスデータを蓄積するキャッシ
ュアドレスレジスタと、このキャッシュアドレスレジス
タの出力の第1部分を入力とするラッチ回路と、このラ
ッチ回路の出力を入力とする第1のアドレスデコーダ
と、この第1のアドレスデコーダによってデコードされ
るデータ部メモリと、このデータ部メモリの演算装置へ
の出力を制御するゲート回路と、このゲート回路へ制御
信号を出力する比較回路と、この比較回路の一方の入力
に比較データを出力するタグ部メモリと、このタグ部メ
モリをデコードする第2のアドレスデコーダとを具備
し、前記キャッシュアドレスレジスタの出力の第2部分
が前記比較回路の他方の入力に結合され、且つ前記キャ
ッシュアドレスレジストの出力の前記第1部分が前記第
2のアドレスデコーダに入力されてなることを特徴とす
るキャッシュメモリ装置である。
The present invention provides a cache address register that temporarily stores address data, a latch circuit that receives a first portion of the output of the cache address register as an input, and an output of the latch circuit as an input. A first address decoder, a data section memory decoded by the first address decoder, a gate circuit for controlling the output of the data section memory to the arithmetic unit, and a control signal for the gate circuit. The comparison circuit, a tag section memory for outputting comparison data to one input of the comparison circuit, and a second address decoder for decoding the tag section memory are provided, and the second part of the output of the cache address register is The first portion of the output of the cache address register is coupled to the other input of the comparison circuit and The cache memory device is characterized by being inputted to the second address decoder.

作用 アドレスデータはキャッシュアドレスレジスタに一時的
に蓄積される。このキャッシュアドレスレジスタの出力
の第1部分が、第2のアドレスデコーダに入力され、タ
グ部メモリのデータをデコードする。このデータが比較
器によって、前記キャッシュアドレスレジスタの第2部
分と比較され一致、不一致の信号を出力する。
The working address data is temporarily stored in the cache address register. The first portion of the output of the cache address register is input to the second address decoder and decodes the data in the tag memory. This data is compared with the second part of the cache address register by the comparator and outputs a match / mismatch signal.

またもう一方、前記キャッシュアドレスレジスタの出力
の第1部分は、ラッチ回路により所望の時間だけ遅延を
うける。このため、このラッチ回路に接続された第1の
アドレスデコーダによりデコードされるデータ部メモリ
の出力が遅延される。このため、前記比較器からの一
致、不一致信号よりもこのデータ部メモリの出力が遅延
することになる。
On the other hand, the first part of the output of the cache address register is delayed by a desired time by a latch circuit. Therefore, the output of the data section memory decoded by the first address decoder connected to this latch circuit is delayed. Therefore, the output of the data memory is delayed as compared with the coincidence / non-coincidence signal from the comparator.

従って、不一致信号が出て前記データ部メモリの出力を
主記憶装置からのデータと置換し、更に前記データ部メ
モリに書き込むための時間が前記遅延時間により確保さ
れる。つまり、主記憶装置からの読み出し、書き込みに
よるタイムラグを見かけ上なくすことが可能となる。
Therefore, the delay time secures the time for replacing the output of the data unit memory with the data from the main storage device when the non-match signal is issued and for writing the data in the data unit memory. That is, it is possible to eliminate the time lag due to reading and writing from the main storage device.

実施例 本発明の一実施例に於けるキャツシュメモリ装置の構成
概略を第1図に示す。キャッシュアドレスレジスタ4に
新たにアドレガが入力され、このアドレス下位部10の出
力が、タグ部1とデータ部2に各々設けられた第1のア
ドレスデコーダ3aおよび第2のアドレスデコーダ3bに入
力される。ここで、従来と異なる点はデータ部2のデコ
ードがラッチ回路5を介して行われる点である。デコー
ドされたタグ部1のタグ出力12は比較器6に入力され、
キャッシュレジスタ4のアドレス上位部11と比較され
る。この比較結果によりゲート7を制御して、データ部
2からデコード、出力されたデータ出力14を有効データ
として演算装置に出力するかどうかを決定する。また同
時にヒット/ミスヒット信号16も出力される。ミスヒッ
ト時には、アドレス上位部11が直接タグ部1に書き込ま
れ、更にデータ部2には主記憶8からデータバス9を通
ってデータ入力15が書き込まれることになる。
Embodiment FIG. 1 shows a schematic configuration of a cash memory device in an embodiment of the present invention. A new address is newly input to the cache address register 4, and the output of the lower address section 10 is input to the first address decoder 3a and the second address decoder 3b provided in the tag section 1 and the data section 2, respectively. . Here, the difference from the prior art is that the decoding of the data section 2 is performed via the latch circuit 5. The decoded tag output 12 of the tag unit 1 is input to the comparator 6,
It is compared with the upper address part 11 of the cash register 4. Based on the comparison result, the gate 7 is controlled to determine whether to output the data output 14 decoded and output from the data section 2 to the arithmetic unit as valid data. At the same time, the hit / miss hit signal 16 is also output. At the time of a mishit, the address upper part 11 is directly written in the tag part 1, and further the data input 15 is written in the data part 2 from the main memory 8 through the data bus 9.

このヒット/ミスヒットの過程を第2図のタイミングチ
ャート図を基に以下で説明する。駆動クロックは1サイ
クル100nsecの4相クロックとする。
The process of hit / miss hit will be described below with reference to the timing chart of FIG. The driving clock is a 4-phase clock with 100 nsec per cycle.

キャッシュアドレスレジスタ4は第2クロックで変化す
る。ここで、タグ部1はこの第2クロックの期間にプリ
チャージ(初期化)される。次いで、第3クロックでこ
のアドレス下位部10が第2のアドレスデコーダ3bに入力
され、タグ出力12が第0クロックで読みだされる。一
方、データ部2に関しては、ラッチ回路5が第1クロッ
クで導通するために、このタイミングでプリチャージを
行い第2クロックでアドレスデコーダ3aに入力され、デ
ータ出力14が第3クロックで読み出される。つまり、こ
のデータ出力14はタグ出力12よりも3層(75nsec)遅れ
て出力される。
The cache address register 4 changes at the second clock. Here, the tag unit 1 is precharged (initialized) during the period of the second clock. Next, at the third clock, the lower address part 10 is input to the second address decoder 3b, and the tag output 12 is read at the zeroth clock. On the other hand, with respect to the data section 2, since the latch circuit 5 is turned on at the first clock, precharging is performed at this timing, the data is input to the address decoder 3a at the second clock, and the data output 14 is read at the third clock. That is, the data output 14 is output with a delay of three layers (75 nsec) from the tag output 12.

このタグ部1からの出力と前記アドレスのアドレス上位
部11とが比較器6により比較される。この結果が一致し
ていれば、データ出力14が有効データとしてゲート7を
介して演算装置に出力される。つまり、タグ部1および
データ部2共に100nsec即ち、1サイクルで読み出せ
る。
The comparator 6 compares the output from the tag unit 1 with the upper address part 11 of the address. If the results match, the data output 14 is output to the arithmetic unit via the gate 7 as valid data. That is, the tag unit 1 and the data unit 2 can be read in 100 nsec, that is, in one cycle.

一方、例えば(n+1)番地で不一致が生じた場合は、
ミスヒット信号が第0クロックにやや遅れて出力され
る。これを受けて、主記憶8の有効データ(n+1)が
キャッシュメモリ装置および演算装置に第3クロックの
中程に入力される。
On the other hand, for example, when a mismatch occurs at the address (n + 1),
The mishit signal is output slightly after the 0th clock. In response to this, the valid data (n + 1) in the main memory 8 is input to the cache memory device and the arithmetic device in the middle of the third clock.

更に第0クロックで、有効データ(n+1)がデータラ
イトイネイブル信号によりデータ部2に書き込まれる。
また、タグ部のデータ更新に関しては、上述ミスヒット
信号がでた次の第1クロックでタグライトイネーブル信
号がロウとなりアドレス上位部11のデータが書き込まれ
る。
Further, at the 0th clock, valid data (n + 1) is written in the data section 2 by the data write enable signal.
Further, regarding the data update of the tag part, the tag write enable signal becomes low at the first clock after the above-mentioned mishit signal is generated, and the data of the address upper part 11 is written.

次いで、(n+2)番地のデータがキャッシュアドレス
レジスタ4に入力される。この時、タグ部1に関して
は、すでに第1クロックでデータの書換えが行われてお
り、第2クロックでプリチャージされ第3クロックでデ
ーコードされ第0クロックで出力される。また、データ
部2に関しても同様に、すでにミスヒットによるデータ
の書換えは第0クロックで終っている。このため、次の
第1クロックでプリチャージされ第2クロックでデコー
ドされ第3クロックで出力される。従って、(n+1)
番地のデータのミスヒットによって、次の(n+2)番
地のデータのアクセスにタイムラグを生じる事はない。
Then, the data at the address (n + 2) is input to the cache address register 4. At this time, with respect to the tag unit 1, the data is already rewritten at the first clock, precharged at the second clock, decoded at the third clock, and output at the 0th clock. Similarly, with respect to the data section 2, rewriting of data due to a mishit has already finished at the 0th clock. Therefore, it is precharged at the next first clock, decoded at the second clock, and output at the third clock. Therefore, (n + 1)
There is no time lag in accessing the data at the next (n + 2) address due to the data hit at the address.

このため、見かけ上キャッシュメモリ装置のデータ置換
によるタイムラグをなくすことが出来る。このため、ミ
スヒットがN回生じた場合従来はN×100nsecの実行時
間の遅れがあったが、これをなくすことが出来る。
Therefore, it is possible to apparently eliminate the time lag due to the data replacement in the cache memory device. Therefore, when the mishit occurs N times, the execution time is conventionally delayed by N × 100 nsec, but this can be eliminated.

発明の効果 キャッシュメモリ装置を構成するタグ部およびデータ部
に各々独立にアドレスデコーダを構成し、ラッチ回路を
設けることにより、タグ部読み出しよりデータ部読み出
しを遅らせることが出来る。このため、タグ部動作とデ
ータ部動作をパイプライン化し、データ部の更新時間を
見かけ上なくすことが出来る。ミスヒット直後でも、オ
ーバーヘッドなく連続的に動作を行える。
Advantageous Effects of the Invention By configuring the address decoder independently for each of the tag portion and the data portion that configure the cache memory device and providing the latch circuit, the data portion read can be delayed from the tag portion read. Therefore, the tag part operation and the data part operation can be pipelined, and the update time of the data part can be apparently eliminated. Even after a miss hit, you can operate continuously without overhead.

従って、本発明のキャッシュメモリ装置は演算の高速化
にとって極めて有用である。
Therefore, the cache memory device of the present invention is extremely useful for speeding up calculations.

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

第1図は本発明の一実施例におけるキャッシュメモリ装
置の構成概略図、第2図は同装置の動作タイミングチャ
ート図、第3図は従来のキャッシュメモリ装置の構成概
略図、第4図は同装置の動作タイミングチャート図であ
る。 1……タグ部、2……データ部、3a……第1のアドレス
デコーダ、3b……第2のアドレスデコーダ、4……キャ
ッシュアドレスレジスタ、5……ラッチ回路、6……比
較器、7……ゲート、10……アドレス下位部、11……ア
ドレス上位部。
1 is a schematic configuration diagram of a cache memory device according to an embodiment of the present invention, FIG. 2 is an operation timing chart diagram of the same device, FIG. 3 is a schematic configuration diagram of a conventional cache memory device, and FIG. It is an operation timing chart of the device. 1 ... Tag part, 2 ... Data part, 3a ... First address decoder, 3b ... Second address decoder, 4 ... Cache address register, 5 ... Latch circuit, 6 ... Comparator, 7 ...... Gate, 10 ...... Lower address part, 11 ...... Higher address part.

Claims (1)

【特許請求の範囲】[Claims] 【請求項1】一時的にアドレスデータを蓄積するキャッ
シュアドレスレジスタと、このキャッシュアドレスレジ
スタの出力の第1部分を入力とするラッチ回路と、この
ラッチ回路の出力を入力とする第1のアドレスデコーダ
と、この第1のアドレスデコーダによってデコードされ
るデータ部メモリと、このデータ部メモリの演算装置へ
の出力を制御するゲート回路と、このゲート回路へ制御
信号を出力する比較回路と、この比較回路の一方の入力
に比較データを出力するタグ部メモリと、このタグ部メ
モリをデコードする第2のアドレスデコーダとを具備
し、前記キャッシュアドレスレジスタの出力の第2部分
が前記比較回路の他方の入力に結合され、且つ前記キャ
ッシュアドレスレジスタの出力の前記第1部分が前記第
2のアドレスデコーダに入力されてなることを特徴とす
るキャッシュメモリ装置。
1. A cache address register for temporarily storing address data, a latch circuit for receiving a first portion of an output of the cache address register as an input, and a first address decoder for receiving an output of the latch circuit as an input. A data section memory decoded by the first address decoder, a gate circuit for controlling the output of the data section memory to the arithmetic unit, a comparison circuit for outputting a control signal to the gate circuit, and the comparison circuit. A tag section memory for outputting comparison data to one input of the cache address register; and a second address decoder for decoding the tag section memory. And the first portion of the output of the cache address register is coupled to the second address decoder. Cache memory device according to claim entered to become.
JP62040866A 1987-02-24 1987-02-24 Cache memory device Expired - Lifetime JPH0772879B2 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP62040866A JPH0772879B2 (en) 1987-02-24 1987-02-24 Cache memory device

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP62040866A JPH0772879B2 (en) 1987-02-24 1987-02-24 Cache memory device

Publications (2)

Publication Number Publication Date
JPS63206843A JPS63206843A (en) 1988-08-26
JPH0772879B2 true JPH0772879B2 (en) 1995-08-02

Family

ID=12592444

Family Applications (1)

Application Number Title Priority Date Filing Date
JP62040866A Expired - Lifetime JPH0772879B2 (en) 1987-02-24 1987-02-24 Cache memory device

Country Status (1)

Country Link
JP (1) JPH0772879B2 (en)

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5163142A (en) * 1988-10-28 1992-11-10 Hewlett-Packard Company Efficient cache write technique through deferred tag modification
EP0366324A3 (en) * 1988-10-28 1991-09-18 Hewlett-Packard Company Efficient cache write technique through deferred tag modification
JPH07210465A (en) * 1993-12-30 1995-08-11 Internatl Business Mach Corp <Ibm> Interface between penaltyless cache and memory
DE69530720T2 (en) * 1994-03-09 2003-11-27 Sun Microsystems, Inc. Delayed cache write of a save command

Also Published As

Publication number Publication date
JPS63206843A (en) 1988-08-26

Similar Documents

Publication Publication Date Title
KR100278328B1 (en) Cache miss buffer
KR950010525B1 (en) Cache memory unit
KR101533564B1 (en) Cpu in memory cache architecture
JP3666689B2 (en) Virtual address translation method
US5479641A (en) Method and apparatus for overlapped timing of cache operations including reading and writing with parity checking
JPH11203860A (en) Semiconductor memory device
US3768080A (en) Device for address translation
JPH0529945B2 (en)
KR950006590B1 (en) Microprocessor with a cache memory
KR100282118B1 (en) High Throughput Single Port Multiple Update Unit Tag Controller
JPH0772879B2 (en) Cache memory device
JPH0362243A (en) Apparatus for quickening memory access in information processing system
US5724548A (en) System including processor and cache memory and method of controlling the cache memory
US5012410A (en) Data processor with instruction cache memory
JP3997404B2 (en) Cache memory and control method thereof
US20030188105A1 (en) Management of caches in a data processing apparatus
JPH02214937A (en) Data processor
JP3614428B2 (en) Cache memory device
JP3074897B2 (en) Memory circuit
KR100246469B1 (en) Lru memory
JPH027141A (en) Cache memory system
JP3306901B2 (en) Cache memory
JP2703255B2 (en) Cache memory writing device
JPS6391756A (en) Partial write instruction processing system for storage device
US20030149841A1 (en) Management of caches in a data processing apparatus