Silent PC (第3部)


FreeBSD マシンの無音化

目次へもどる

第3部 (無音化)

  • ファンの回転数を下げる
  • CPU の発熱量を下げる

    ファンの回転数を下げる

    今回購入したATケース付属の電源ファンは、比較的静かなもので風量も 必要にして十分あります。これが $22 とは、なかなか買い得だったと言え るでしょう。しかし、第1部で改造したサーバーの電源よりは音が大きく、 FreeBSD無音化計画にはまだ十分なレベルとは言えないので、手を加えるこ とにしました。

    本来ならPCの消費電力や発熱量を正確に計測して、ファンの風量を決める 必要があると思うのですが、うまい方法を思い付きません。そこで、とり あえずファンを取り外し、各部の発熱の様子を見てみることにしました。 スイッチング電源だと、主な発熱源はスイッチング回路の半導体(でっかい ヒートシンクにくっついている)なので、ここの温度を監視していれば目安 になります。温度上昇を見ていると、ファンを付けない状態でも電源部分 のカバーを外していれば何とかなるといった雰囲気です。しかし、コンピュー タのケースを閉じてしまえば熱が内部に籠ることになるので何らかの対処 が必要になってきます。

    ファンへの供給電圧とノイズの関係

    次に、ファンに可変電圧器を取り付けて電源カバーを閉じます。電圧を 徐々に下げながら排出口のノイズレベルを測定し、十分静かなだと思われ る電圧を探します。右図のように、7V を下回ったあたりからノイズレベル が下がり始め、うまい具合に 5V あたりで最もレベルが低くなります。こ れ以下の電圧だと、回ってはいるもののかなり不安定で実用的ではありま せん。他のボールベアリングを使った高級なファンは、元々風量が多くな るような設計をされているせいか、電圧を下げてもあまり静かにはならな い上に、7.6V 以下だと止まってしまいます。12V 同士で比較する限り、 ボールベアリング・ファンの方が静かなのですが、5Vまで下げたスリー ブファンにはかないません。5V 駆動で心配なのは、電源投入時に ファンが確実に回転を始めるかという点ですが、このファンはなかなか 5V が気に入っているらしく、いつも機嫌良く回り出します。

    ファンは安物に限ります :-)

    さて肝心の騒音レベルですが、ファンに耳を近付けないと聞こえにく い程度にまで下がりました。微かに聞こえるノイズは、どうやらファンの 外側に付いている蚊取り線香の様なプロテクターとの間で発生している風 切り音のようです。そこで、このプロテクターの羽根(?)を、気流と平行に なるようにペンチで90度づつ曲げました。これで、電源ファンからの音 はほぼ消滅し、聞こえてくるのは専らCPUファンの音ばかりとなりました。

    ただ、これで電源を含むPC全体の発熱を排出できるのかどうかは、甚だ 疑問です。暫く様子を見てみることにします。どうせ壊れても$22だから良 いやという気持もあります…。

    CPU の発熱量を下げる

    ここまでの改造でノイズ発生源はほぼ無くなり、残るはCPUの冷却ファンの みとなりました。これさえ克服することが出来れば、FreeBSD 無音化計画 はその目的を達成することが出来そうです :-)

    CPUをファン無しで動作させることが出来れば理想的なのですが、電源ファ ンを加工してしまった今となっては、ケース内の気流が十分では無く少し 難しそうです。安いとはいえ、CPUを壊してしまっては元も子も無いので、 ここは正攻法で CPU の規格を調べるところから始めます。 この部分の静音化には、それなりに専門知識が必要となってくるかも知れません。 私の専門分野の「牛海綿状脳症(狂牛病)」や「陸水生態学」、 ついでに「PrPscタンパク分子の3次元構造解析」などの知識を総動員して挑むことにします。:-P

    少し長いので、結論を先に見たい人はこちらへどう ぞ。

    まず、 Intel AMD Cylix IDTの Developper's siteへ行ってデータシートを入手します。それぞれ、 PentiumII, Celeron, K6-2, MII, 6x86MX, WinChip2, C6用に PDF 形式で資料が 揃っています。

    Celeron の場合だと、4.0 Thermal Specifications and Design Considerations に記載があります。ここの、4.1 Thermal Specifications のTable 27 を見ると、Celeron 300A の消費電力はS.E.P Packageが18.7W、PPGAが17.5Wで、動作限界温度が各々TCaseベー スで5 〜 85℃の範囲となっています。これを元に、CPU の表面温度が 85℃を越えない様な冷却システムを考えれば良いわけです。データシート の 4.2.3 Thermal Solution Performance を読むと、熱抵抗の計算式が記 載されています。

    ΘCA = (Tcase - TLA) / PD --- (1)

    ここで、ΘCAはCPUから空気中へ発散させる際の総熱抵抗(℃/W)、 TcaseはCPUの表面温度(℃)、TLAは冷却システムを取り 囲む気温(℃)、PDはCPUの発熱量(W)です。この式を変形してみると、

    Tcase = ΘCA× PD + TLA --- (2)

    となって、CPUの表面温度は CPUの発熱量に比例して高くなります。周囲の 気温が1℃上がれば、表面温度もそのまま1℃高くなります。また、熱抵抗 の低い冷却システムを使えば他のパラメターが同じでもCPUの表面温度は低 くなると言う、ごく当り前のことがわかります。
    ここで具体的に室温24℃、CPU発熱量18.7W、CPU表面温度の最高値85℃を当 てはめてみますと、熱抵抗は 3.2620 ℃/W 以下であれば良い事が分かりま す。同様に表面温度を、精神衛生上好ましい温度の50℃以下に保つには、熱 抵抗を1.3904℃/W 以下に保てば良い事がわかります。

    Thermal Resistance

    ところで、実際の熱抵抗ΘCAとは何を表すのでしょう?右 の下手くそな図を見て下さい。図中にも書いてあるように、これは Celeron S.E.P.Package の「つもり」です。想像力を働かせて見てみると、 何となく Celeron 300A に見えてくるでしょう。(上下が逆のような図です が、Soyo SY-6BB ではこのようにヒートシンクが下を向くように取り付け られてしまうのです)
    CPUの表面から出た熱は、最初にシリコングリス 層を通りヒートシンクへ伝わります。そうしてヒートシンクを通った熱は シンクの表面と接触している空気を通して排出されていきます。つまり、 総熱抵抗ΘCAは、CPUからシリコングリス層を通過する時の抵 抗ΘCTと、ヒートシンクを通過する時の抵抗Θ TH、ヒートシンクから空気中へ発散させる際の抵抗Θ HA の総和であると言えます。
    ここで重要なのは、これらの経路はバケツリレーの様に直列に継っている 点です。どこか一箇所でも熱の伝わりにくい箇所があれば、残りの部分がい くら効率が良くても効果は半減します。例えば、ヒートシンクとCPUが 十分接触していない状態であれば、たとえ巨大なファン付き特大ヒートシ ンクを付けたとしても、意図に反してCPUの温度を十分に下げることは出来ません。 これは、結構ありがちな光景かも知れません :-P

    Simple Thermal Model

    熱の伝わり方は電気の流れと類似した点が多く、簡単な電気回路図を使っ たモデルで表すことが出来ます。例えば、今回のケースですと左図のよう になります。(この例だと、ヒートシンクのフィンが5枚の場合) ここで、 「CPUの表面温度」と「冷却風の温度」との差が、この図では電位差に相当 します。後は、単純に合成抵抗値を計算をすれば、そのまま熱の流 量と近似させることが出来ます。局所的な熱流量は、各部における局所 電流値に比例します。(但し、個々の抵抗値を求めるのはそれなりに複雑で す)
    また、放熱板における熱伝導の分布は、CPUとの接触面を中心としてそれぞ れのフィンの重心(中心では無いことに注意)までの距離に比例したもの (nR1)となります。 簡単に言えば、放熱板の両端は、中心部分より冷却効率は良くない (熱抵抗が大きい)という事です。 ただ、フィン同士は熱の流れに対して 並列の関係(R2とR2')になるので、その数が多いほ ど冷却効果が上がる事も分かります。また、全ての流れは R0を通過するので、CPUからの熱流量を I0とすれば E0=I0R0に相当する温 度差がCPUとヒートシンク間に発生します。これは、どんな冷却システムを 使用しても、CPUの表面温度は常にそのシステムより E0℃だけ 高くなることを意味しています。R3は、ヒートシンクの表面か ら終段の冷却媒体(空冷システムだと空気)へ熱を逃す際の抵抗値を表しま す。これは、冷却媒体の流速が熱伝導による拡散速度よりも速い時 (通常 はかなり速い) には、その値を有限要素法を利用して求める時に頭を抱え る様な問題に直面します(離散化する)。
    SubstanceThermal Conductivity
    (J/s・m・℃) at 25℃
    アルミニウム238
    397
    314
    79.5
    34.7
    空気0.0234
    1.6
    0.6
    シリコングリス0.9〜1.4
    (Captured from Physics 4th edition.
    ISBN 0-03-003562-7)

    それでは、実際に各経路の熱抵抗を求めてみます。次式(3)のように単位時 間あたりの熱流量(移動させることの出来る熱量)は、温度差、距離、接触 面積および熱伝導率から求める事が出来ます。

    H = Q / Δt = kA(T2 - T1)/L --- (3)

    H は単位時間あたりに移動する熱量、kは熱伝導率、 Aは接触面積、Tは温度、Lは距離を表します。

    ここで使用する熱伝導率(1mの距離を隔てた2点間に、温度差が1℃あった場 合に移動する熱量を単位面積(1m2)あたりで表したもの)は右表 に示す様に、物質によって異なっていますので、計算する素材に合わせて 選択します。今回使用するヒートシンクはアルミニウム製なので、右表か ら k = 238 J/s・m・℃ = 238 W/m・℃ が最も近いと思われます。 アルミニウム製のヒートシンクと純粋なアルミニウム金属とで、一体どれ くらい値が違うのかは分かりませんが、まあそんなに大きく離れてはいな いものと仮定します。ここで面白いのは、シリコングリスの値が想像して いたよりも随分と低いことです。意外と、この点が FreeBSD 無音化計画を 進める上で重要なキーになってくるかも知れません :-)

    次に、ヒートシンクのサイズを測定します(とても面倒臭い)。全てを細か いブロックに分けて底部、側面、フィンの両面、フィンの側面の総面積お よび体積を計算します。 底部を計算する時に、フィンの上部の面積を含めて計算すると簡単になり ます。ヒートシンクの裏側は、空気が有効に通過しないので計算の対象 にしません。左図のヒートシンクの場合 (フィンは12枚)、有効面積は 329.2 cm2でした。さらに、それぞれのフィンと中心部までの 距離を求め上式(3)のLに代入し、各フィン毎のH と、それ ぞれのフィン間の底部のHについて計算します。左右が対称の場 合は6枚のフィンと5箇所の底部、中心の底部の半分などを計算して2倍 すれば求められます。もっと単純な形状のものであれば、左半分の中心部 分だけを計算すれば求められます。実際には、ヒートシンクには単純なソリッ ドモデルを適用できますので、下式の様に、それぞれのブロックの重心から 全体の重心を計算する方が楽でしょう。

    Σ(Xcg(n) * Volumen / Total Volume)
    Σ(Ycg(n) * Volumen / Total Volume)
    Σ(Zcg(n) * Volumen / Total Volume)

    これを計算すると、(T2 - T1) = 18.7 / 14.24341 = 1.31289 ℃となり、ヒートシンクを通過する際の熱抵抗は、 ΘTH = 0.07021 ---(a) となります。安物だけあって、とても 抵抗が高いです。少し大型のシンクだと、0.03〜0.04 程度のようです。 巷では、銅製のヒートシンクが法外な値段で売られているようですが、も ともとヒートシンク自体の熱抵抗が全体に占める割合が低い(10%以下) ので、同じ大きさのヒートシンクであれば、材質の違いによる効果は総合 で約4%しかありません。

    次に、シリコングリス層の熱抵抗を求める為に、シリコングリスの厚みを測 定します。細菌の培養で使用する20μL のマイクロピペットと、ウォーター バス上で約80℃に熱したグリスを利用して、ヒートシンクとCPUを密着させ るのに必要な量を求めます。結果は、約 86μLが必要でした。 これを Celeron 300A のメタルプレートの面積で割ると、厚み 134.1 X 10-6m (約、紙一枚分の厚み)が求められます。さらに、これを 上式 (3) と(2) に代入すると、熱抵抗ΘCT = 0.2309 となり ます。これは無視できない大きさです。どうやらグリスの塗布量を減らす 工夫が必要です。

    CPUとヒートシンクを密着させるのに必要なグリスの量は、各々の接触 面上に存在する凹凸の高さに比例して多くなるので、この凹凸を極力減ら してやれば良いわけです。その為には研磨するしか無いのですが、表面に Z軸方向の歪みが出来てはならないことに注意しなければなりません。つま り、たとえ表面がツルツルになったところで、加工精度が低ければ却って 逆効果だということです。

    Celeron 300A S.E.P. Package の接着面は、Pentium Pro などと比較すると かなりデコボコしています。ヒートシンクに至っては絶望的と言っても良 いほどです。そこで、覚悟を決めて研磨することにします。ポイントは平 面精度の高いガラス板を使い、研磨方向と力の配分を工夫すれば手作業で も必要な精度が出せます。私は、Hamilton Bell社の No.4500 Microscope Slide 上で研磨し、最後は擦り合わせを行って 17μm程度 の精度が出せました。 この状態にまでなると、ちょうどガラス板同士を合 わせた時のように、シリコングリスを塗っていない状態でも、CPUをシンク から離す時に少し抵抗が感じられるようになります。結構、感動ものです (この時点で、当初の目的をすっかり忘れている)。 グリスを塗布して CPU にシンクを装着後、右図のように赤い矢印の方向に力を加えても、反対側が持 ち上がらないほど密着度が高くなりました。これは、グリス層が十分薄い 事と間に空気が入っていないことの目安にもなります。これで、必要なグ リスの量は激減し 5μL以下になりました。熱抵抗ΘCT も 0.0286 にまで下がりました。

    次は、ヒートシンクと空気との間の熱抵抗を求めます。これは、他の部分 と違って簡単にはいかないと思います。基本的には微分方程式 cVa(dTht/dx) - d/dx(C1 dTht/dx) = 0 等を解いて、空気の流速、ヒートシンクの表面積、表面温度から概算でき ると思うのですが、どうやら厳密に理解出来ていないようで、離散化の問 題を解決する手立てを思い付きません。 それに加えて、この計算に費す労力は、その結果の誤差を補えるほどでは 無いので、この方法は採用出来ません。実際問題として、冷却風の全てが ヒートシンクと接触する訳でも無く、フィン間の細部の流れも予測出来な いので、そもそもこの計算式が成り立つのかどうかも判らない状態です。

    ヒートシンクの面積、空気の流量と温度の関係
    Intel Data Book (1998)#243565から引用
    Airflow (Linear Feet / min)
    面積 (cm2)1002004006008001,000
    109.00N/A -427384548
    218.6813 3754586263
    328.3638 4859636566
    438.0143 5060646566

    そこで、既存の実験データを参考に近似値を計算することにしました。 むしろ、こちらの方が下手な計算より精度は高いと思います。 Intel の Pentium Pro Data Book (1998) No.243565 という電話帳サイズ のデータブック(Intel に頼めば、送料も無料で宅配便にて届けてくれます )を参考にします。一応、CPUメーカーが出している公式データなのでそれ なりに信頼できるものだと思います。例によって米国製のデータなので、 メトリックシステムとインチが入り乱れているので、ちゃんと統一してか ら使用する必要があるのが難点です…。 左図は、Pentium Pro 用をメトリックシステムに換算したものです。面積 については、フィンの形状図を元に全て手作業で計算し直したものなので 多少の誤差を含んでいる可能性があります。ピンク色の部分が、Pentium Pro の TCase温度をTmax以下に保つのに必要となる冷却風 の温度(℃)です。

    まず、Pentium Pro用ヒートシンクの形状から、フィン1本毎に熱抵抗を計 算します(フィンは全部で100本、計算は25本分)。次に、Celeron 用のヒー トシンクのフィンも1枚づつ計算し、その結果を前記の結果に当てはめて換 算値を算出します。そして、各CPUの消費電力、ヒートシンクの面積を元に 計算すれば必要な値が求められます。ここで重要なのは、ヒートシンクの 面積と風量および熱抵抗の関係は非線形なので、データ列を細かい区間に 区切って一つづつ近似させながら計算するしか方法が無いようです。また、 Airflow はファンメーカーの公表している値が CFM なので LFM への換算 を行い (ヒートシンクの断面積からリニアに計算出来ます)、手持ちのファ ンの流速を計算します。(これらの計算はとても大変だったので、もう二度 とする気になれません)

    各ファクターとΘCTの関係
    Celeron 300A + P.P.C. Fanの場合
    Airflow (Linear Feet / min)
    面積 (cm2)1002004006008001,000
    329.21.492 1.1160.7020.5830.5120.494
    結果は、左図の用になりました。これを補正して最終的にΘ HA = 0.504 が得られました。 これに、上記で求めた Θ CTとΘTHを加えると、総熱抵抗は

    ΘCA = 0.603
    になりました。これは、Celeron 300A をこの冷却システムで使用すると、 CPUの表面温度は、室温(24℃)より11.3℃高い35℃になるということです。 意外に低い温度です。これをCPUの表面温度50℃で逆算するとΘ CA = 1.390で良い事がわかります。

    CPUの表面温度(海抜:水面より上)
    ProcessCPU表面温度
    実測値(℃)
    CPU表面温度
    理論値 (℃)
    冷却風温度
    (℃)
    rc5-6436.136.925.6
    rc5-64 2つ36.136.825.5
    rc5-64 2つと xengine36.336.925.6

    次に、この計算が果してどこまで正確かを検証することにします。 デジタル温度計(校正済み)を分解してセンサーを取 り出します。これをCPUのメタルケース横に張り付けてCPUの表面温度を測定 します。CPUの消費電力を最大にする為に、RC5-64 (Bovine Project)か ら Client Program を入手します。これは、浮動小数点演算、整数演算、 MMX演算(?)をフルスピードで実行しますので、かなり最大消費電力に近付 けることが出来るはずです。念の為にこれを2つ同時に X-Winodw System 上で、 xengineと共に動作させました。ヒートシンクに吹き付ける空気の温度は、 マザーボード上のパーツによる干渉を考慮して、室温では無くファンの手 前4cmで測定し、CPUの温度はそれぞれプログラムを25分間走らせた後に測 定しました。この結果から熱抵抗を逆算するとΘ CA = 0.5721 となり、計算結果とかなり一致します。これが、 計算方法が正しかったことの証明になるのか、ただの偶然の一致なのかは 知る由もありません。

    さてこれから、本来の目的であるCPUファンの騒音を低下させる作業に移り ます。そうです、今までの部分はただの前置きです :-P

    (C) National Semiconductor Corp. 1988

    ファンは、とにかく静かで風量が確保出来るものを使用するのが前提です。 上記で PC Power and Cooling Fan の CPU-Cool 3.2 という 12 VDC at130 mA, 30db のファンを使用したのも、こういった理由からなのですが、 最大の理由はこのファンは 5V でも駆動出来るという特長があるからです。 また、5V 時の動作音はほとんど無いと言って差し支えがありません。 但し、5V 駆動時には風量が大幅に減少しますので、熱抵抗値もそれに見合っ た分だけ増加し、ΘCA = 0.8263 になります。これだと、 CPUの表面温度は約41℃に上昇します。PCのケースを閉じて使用することや、 無音電源ファンの情けない風量を考慮すれば、 多分 50℃を越えることは簡単に想像出来ます。

    残る手段は、CPUの発熱そのものを下げるしかありません。最も簡単なのは 動作周波数を下げることです。300MHz動作のCPUだからといって、 300MHz で使用しなければいけない理由などどこにもありません。ところが、 驚いたことに(:-P) Celeron 300A は固定倍率なのです。 Intel は、Overclocking 対策でこの様な姑息な手段に出ているのでしょうが、 こちらとしては大きな迷惑です。おまけに、今回購入したマザーボードも Base Clock が66MHz 以上にしか対応していないので、必然的に 300MHz で 使うしか方法はありません。仕方が無いので動作電圧を下げる事にしました。

    ところが、このマザーボードには電圧変更のジャンパースイッチや、 BIOS 設定の項目がありません。ここまで来てあきらめる訳にもいかないので、 何とか電圧を変更する方法を探ります。ボードを良く観察してみますと、 電圧レギュレータの付近に LM2635 と書かれたコントローラが見付かりました。製造元が National Semiconductorという事 が判明したので、Web site へ行って 資料をダウ ンロードします。この資料によると、VID0〜VID4までの 5bitを使って 1.3V〜3.5V までを、0.05V 刻みで設定できるようです。早速、電圧を変更 してみます。

    (*1): 気温 -3.5℃、他は全て室温、 DOSの起動までを確認
    CPU Core 電圧 (V)
    CPU Clock (MHz)2.12.01.951.901.851.801.751.701.65
    300--OKOKOKOKOKOKOKNG
    338--OKOKOKOKOKNGNGNG
    374--OKOKOKOKOKNGNGNG
    450--OKOKOKOKNGNGNGNG
    463--OKOKNGNGNGNGNGNG
    504--OKNGNGNGNGNGNGNG
    600 (*1)OKNGNGNGNGNGNGNGNG

    「NG」に隣接している「OK」は、DOS起動時に時々ハングアップするものも 含んでいます。この実験結果からは、300MHz では 1.70Vが下限のようですが、338MHz が 1.80V までしか動作しない点か ら考えても、安全マージンを含めた 1.80V が常用出来る下限なのかも知れません。 Celeron Datasheet によると、このレンジでは消費電力は消費電流とリニ アな関係になっていることから、推定消費電力は 18.7W * (1.80/2.00)2 = 15.15 W だと思ったのですが、表面温度から 求めた計算値では約17.1Wになりました。これは(18.7/17.1)= 0.914 なの で消費電力は電圧の2乗ではなく、単にそのまま電圧に比例しているよう です。(理由は良くわかりません…)

    最終的な設定は、コア電圧 1.8V、ファンへの供給電圧 5V でしばらく様子 を見ることにします。今のところ、ケースを閉じた状態で24時間の連続運転 をしても CPUの温度は40℃を少し下回るあたりで落ち着いています。もちろん 当初の思惑通り、全く音がしません。


    おわりに

    色々と試行錯誤を重ねましたが、最終的にメカニカルノイズの殆んどを消 し去ることが出来てとても満足しています。この無音PCを使い始めて最初 に驚いたことは、PCの動作中に「腕時計」から音が聞こえたことでした :-) その他にも、キーボードの音がやけに大きく感じられたり、電源をONにし ようとして既に立ち上がっているのに電源を切ってしまったり、普段使っ ているノートパソコンがやけにうるさいことに気が付いたりと、 今までのコンピュータ環境からは考えられないような新たな発見(?) の数々がありました。 そして何よりも、音のしないコンピュータというものが、 こんなに快適なものであるという事が最大の発見でした。 なんとも「Dobro!なコンピュータ」です。

    もしFreeBSD の存在がなければ、きっと第1部のままずっと我慢していた と思います。もっともDiskless化は、Linux などでも可能でしょうし、 最近では Solaris なども選択肢に入ってきています。しかし私にとっては、 こうやってハードウエアとソフトウエアの両方をいろいろ楽しむ気にさせる FreeBSD だからこそ出来たのだと思います。やはり FreeBSD は「Dobro! な OS」 です。

    今まで使っていたコンピュータは、サーバー専用機として隣室へ移しまし た。相変わらず騒音を出していますが、さすがにこちらの部屋までは聞こ えてきません。しかし、電源を落すために隣室へ入ると、 その音の大きさに改めて驚かされます。 「今まで、よくこんな騒音のそばで勉強していたもんだ」と…。

    目次へ戻る


                      References
    
    
    
    FreeBSD Project 1999.          Handbook 16.3 Diskless Operation
    
    FreeBSD Project 1999.          On-line Manuals and Documents.
    
    FreeBSD Project Japan 1999.    Hanbook 15.3 Diskless operation
    
    Intel Corp. 1999.              Intel Celeron Processor Datasheet
    
    Intel Corp. 1999.              Intel Celeron Specification Update
    
    Intel Corp. 1998.              Intel P6 Family of Processors Hardware
                                   Developer's Manual
    
    Intel Corp. 1998.              Mechanical Assembly and Customer
                                   Manufacturing Technology for S.E.P. 
                                   Packages
    
    Intel Corp. 1998.              Pentium Pro & Pentium II Processors & 
                                   Related Products
    
    Intel Corp. 1996.              Pentium Pro Family Developer's Manual 
                                   Volume 1.
    
    Intel Corp. 1997.              Pentium Pro Processor Specification Update
    
    National Semiconductor Corp. 1988. LM2635 5-Bit Programable
                                   Synchronous Buck Regulator Controller
    
    Serway, Faughn 1995.           Physics 4th edition. Harciurt Brace &
                                   Company, Florida U.S.A.
    
    

    Home
    Silk Road
    Cooking