#039 cache

  • 2009年06月16日(火) 22:09 JST
  • 投稿者:
    uchiyama
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
かみうまメルマガ #039(2009/06/16)
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━

うちやまです。こんにちは!
遅くなりましたが、6月第1回のメルマガをお送りします。

予定より発行が3日ほど遅れてしまい、失礼いたしました。
次回も、当初予定(20日)より少々遅れそうな見込みです。
ご了承いただければと思います。

また、今月の翻訳課題の提出期限は 6月17日(水) 22:00 です。
もしご都合が付きましたら、ぜひご提出いただければと思います。

では、ここからがメルマガ本編です。

■はじめに
 ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
今回のテーマはキャッシュ(cache)です。
2年ほど前のメルマガでも取り上げたことがある、ごく基本的な用語で
すが、復習も兼ねて見ていくことにしましょう。


■キャッシュとは
 ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
書斎の本棚にしまってある紙の辞書を取り出してきて、リビングルーム
で調べ物をするとしましょう。

何か1つの言葉を調べるだけなら、すぐに辞書を書斎に戻してもいいで
しょうが、調べたいことがいくつかあるとしたら、その間は辞書をリビ
ングに置いたままにする方が自然です。1つ調べ物をするたびに、いち
いち書斎に辞書を取りに行っていたら、時間と手間が余分にかかってし
まいます。

これと同じような考え方をコンピュータ上で実現したものが「キャッシュ
(cache)」です。どこかから取り出したり計算処理で求めたりしたデー
タを、手近な場所に一時的に置いておいて、すばやく再利用できるよう
にすることを指します。あるいは、そのデータを置いておくための場所
や、置いておくデータそのものをキャッシュと呼ぶこともあります。

http://en.wikipedia.org/wiki/Cache
| In computer science, a cache (pronounced 'cash') is a
| collection of data duplicating original values stored
| elsewhere or computed earlier, where the original data is
| expensive to fetch (owing to longer access time) or to
| compute, compared to the cost of reading the cache. In
| other words, a cache is a temporary storage area where
| frequently accessed data can be stored for rapid access.
| Once the data is stored in the cache, it can be used in the
| future by accessing the cached copy rather than re-fetching
| or recomputing the original data.

※補足:
 ・collection≒set。
   collectionやsetという単語は、プログラミング用語などでは
   「コレクション」「セット」と訳すべき場合もありますが、単に
   「集まり」という意味を表したり、複数形の代わりとして使われ
   ているだけの場合もあり、処理の仕方はケースバイケースです。
   この文の場合は、「コレクション」と訳す必要はないと思います。
 ・expensive≒costly(ここでは take time くらいの意味)
 ・fetch≒get
 ・compute≒calculate

※今回から、上記のように、英文中の主な単語の意味を別の単語で言い
換えるという形の補足も加えていこうと思います。
言い換えはあくまで、「この文脈の場合は」という限定付きです。常
に成り立つとは限りませんのでご注意ください。
 また、大ざっぱな言い換えですので、品詞が違ったり、厳密な意味と
 は異なる場合もあります。


■キャッシュの種類
 ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
私たちが普段使っているパソコンの内部では、さまざまな処理でキャッ
シュが活用されています。典型的なものをいくつか見ていきましょう。

●Webブラウザのキャッシュ

今回紹介する中で一番身近なのが、Webブラウザのキャッシュ(browser
cache、Web cache)かもしれません。ブラウザは、HTMLファイルや画像
など、Webサーバーから取得したWebページのデータを、画面上に表示す
るだけでなく、パソコン上のハードディスクにもしばらく保存していま
す。同じページを再度表示するときにすばやく対応できるようにするた
めです。これがWebブラウザのキャッシュです。

一般電話回線やISDNなどの低速な回線でインターネットにつなぐのが当
たり前だったひと昔前までは、キャッシュは大きな効果を発揮していま
した。また、高速な常時接続が当たり前となった現在でも、無駄な通信
を減らすという意味では効果があります。

http://searchstorage.techtarget.com/s...8,p00.html
| The files you automatically request by looking at a Web
| page are stored on your hard disk in a cache subdirectory
| under the directory for your browser (for example, Internet
| Explorer). When you return to a page you've recently looked
| at, the browser can get it from the cache rather than the
| original server, saving you time and the network the burden
| of some additional traffic.

※補足:
 ・request…Webに限らず、クライアントがサーバーに対して行う要求
  のことを一般にrequestと呼びます。「こんなデータを送ってくだ
  さい」「こんな処理を実行してください」といった要求です。訳は
  「要求」とする場合と「リクエスト」とする場合がありますが、意
  味的にさほど違いはなく、どちらで訳すかは好みなどで決まります。

また、Webのキャッシュが保存されるのは、ユーザーのパソコン上だけ
とは限りません。Webサーバー側でもキャッシュのしくみを利用してい
る場合があります。また、企業内LANなどでは、社内のブラウザと外部
のWebサーバーとの間で、仲立ちとなる「プロキシサーバー(proxy
server)」というものを介して通信する形をとっていることがあるので
すが、こうした仲立ちのサーバーがキャッシュを保存する場合もありま
す。次の英文はそうしたケースを意識した書き方になっています
(passing through itというあたりがそうです)。

http://en.wikipedia.org/wiki/Browser_Cache
| Web caching is the caching of web documents (e.g., HTML
| pages, images) in order to reduce bandwidth usage, server
| load, and perceived lag. A web cache stores copies of
| documents passing through it; subsequent requests may be
| satisfied from the cache if certain conditions are met.

※補足:
 ・bandwidth≒network traffic
 ・load≒amount of work
 ・lag≒delay
 ・satisfy≒fulfill

●CPUキャッシュ

コンピュータの頭脳であるCPUにもキャッシュのしくみが使われていま
す。CPUはふだん、メインメモリからデータを読み込んで処理を進めて
いるんですが、メインメモリよりも高速なメモリをキャッシュとして搭
載しており、一度読み込んだデータや使用頻度の高いデータをそこにし
ばらく保持しています。そして、次に同じデータを使うときには、メイ
ンメモリではなくキャッシュから読み込むことで、すばやい処理を実現
しています。これがCPUキャッシュ(CPU cache)です。

一口に「メモリ」と言っても種類はいろいろあります。記憶のしくみや
速度、価格がそれぞれ異なり、一般には高速なものほど高価です。そこで、
・高速かつ高価なメモリをキャッシュ用として少しだけ使う
・適度な速度で適度な価格のメモリをメインメモリ用としてたくさん
使う
という形にすることで、全体のコストをあまり上げずにパフォーマンス
を向上できるようなしくみにしています。

http://en.wikipedia.org/wiki/CPU_cache
| A CPU cache is a cache used by the central processing unit
| of a computer to reduce the average time to access memory.
| The cache is a smaller, faster memory which stores copies
| of the data from the most frequently used main memory
| locations. As long as most memory accesses are cached
| memory locations, the average latency of memory accesses
| will be closer to the cache latency than to the latency of
| main memory.

※補足:
 ・latency≒waiting time

また、最近のCPUは、1次キャッシュ(L1 cache)と2次キャッシュ(L2
cache)というように、キャッシュを複数備えているのが普通です。1次
キャッシュは、ものすごく高速だけど容量が少ないキャッシュ、2次キャッ
シュは、それよりは低速だけどもう少し容量が大きいキャッシュです。
CPUがデータを読み込むときには、まず1次キャッシュを参照する→目的
のデータが見つからなければ2次キャッシュを参照する→それでも見つ
からなければメインメモリから読み込む、という流れで処理を進めます。

http://searchstorage.techtarget.com/s...30,00.html
| Cache memory is sometimes described in levels of closeness
| and accessibility to the microprocessor. An L1 cache is on
| the same chip as the microprocessor. L2 is usually a
| separate static RAM (SRAM) chip. The main RAM is usually a
| dynamic RAM (DRAM) chip.

※補足:
 ・microprocessor≒CPU
 ・SRAM、DRAM…先ほど、メモリにもいろいろ種類がある、と述べまし
  たが、SRAMやDRAMはその種類を表す言葉です。
 ・上記英文では、L2キャッシュはCPUとは別個のチップ、と言ってい
  ますが、CPUに内蔵の場合もあります。

●ハードディスクのキャッシュ

ハードディスクでもキャッシュが使われています。ディスク本体の中に
キャッシュ用のメモリを内蔵しており、アクセスしたデータを一時的に
保持しておくことで、処理の高速化を実現しています。

http://www.webopedia.com/TERM/D/disk_cache.html
| disk cache
| A portion of RAM used to speed up access to data on a disk.
| The RAM can be part of the disk drive itself (sometimes
| called a hard disk cache or buffer) or it can be
| general-purpose RAM in the computer that is reserved for
| use by the disk drive (sometimes called a soft disk cache).
| Hard disk caches are more effective, but they are also much
| more expensive, and therefore smaller. Nearly all modern
| disk drives include a small amount of internal cache.

また、従来のハードディスクに代わってSSDという記憶装置が増えつつ
ある、という話をメルマガ#032で取り上げました。フラッシュ・メモリ
(電源を切っても内容が消えないメモリ)を使ってデータを記憶する仕
組みの記憶装置です。このSSDにもキャッシュは搭載されています。


以上、今回のテーマは「キャッシュ」でした。


■編集後記
 ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
当メルマガを発行予定だった先週土曜日は、急用のため、日帰りで
浜松の実家に戻っていました。
車で行ったんですが、埼玉の自宅から片道300km弱の距離を
日帰りというのも、なかなか大変でした…。

では、次回のメルマガもよろしくお願いします。

---------------------------
□発行元:かみうま翻訳倶楽部 内山卓則
 http://www.kamiuma.net
---------------------------