- ベストアンサー
クロック同期とは何と何の同期ですか?
機械初心者です。 クロック同期とは何と何の同期をさしているのですか? クロック数が大きいほどCPUの処理速度が大きいことから「クロック数」についてよく知りたいと思い、調べています。 ただ同期を取るという意味がよく分かりません。 どうして同期をとる必要があるのか、また同期をとることによってデータが遅延するらしいのですが 遅延するなら同期をとらなくてもいいのにと思ってしまいます。 バカげた質問かもしれませんが、アドバイスいただけたらうれしいです。
- みんなの回答 (3)
- 専門家の回答
質問者が選んだベストアンサー
ogawa_soraさんが言うように、デジタル通信では0/1 (実際にはもっと多値の場合もあります)をどこで判断するかが不明確であるため、 クロックという基準信号にあわせて送信/受信を行います。 例えば、コレ(↓)を見て下さい。 http://monoist.atmarkit.co.jp/fembedded/articles/eledrill3/3term/09/fig09_02.gif CLKがクロック、D,X,Y,Zがデータとします。 クロックが無い場合、0や1が連続したときにどれだけ連続したデータがあるのかが判断できなくなります。 このため、通常はデータと別にクロックラインを用意し、 クロックの立ち上がり(または立ち下がり、場合によっては立ち上がりと立ち下がり両方)に同期させます。 なお、遅延については何の情報であるかわかりませんが、 クロック同期を行うことで発生するのではなく、同期を取る必要があるので遅延による影響が発生しうるという事だと思います。
その他の回答 (2)
強いて言えば「全部」ですかね。 ものすごく遅い論理回路だとクロック同期していない回路というのもあるのですが、CPUみたいにある程度早い論理回路はクロック同期をしないと「設計がものすごく大変」になります。 たとえば 入力A,B 出力Cがあって、たとえばA,Bが1ミリ秒ごとに変化することにします。(コンピュータってこういうことを大量、高速にやる装置ですよね) 演算を C = A XOR B (A,Bが同じ値のとき C="1"、異なる値なら C="0") としたときに、 (A,B)=(0,0) から(A,B)=(1,1)に変化したときには、本来Cは"1"のままのはずですが、A,Bどちらかが早く変化(マイクロ秒単位で)したりすると、途中でその差の分だけあるべきでは無い出力C="0"が出力されます。(こういうタイミングのずれであるべきではない出力がでるのをハザードといいます) ハザードが発生すると、設計で考慮されていない状態に論理がなるので非常に危険ですが、回路の情報の遅延は情報を伝達する電線の長さやら、周囲の線との干渉により発生する浮遊容量などで変化しますので管理することが困難です。 CPUなどの大規模な論理回路では、遅れを管理するのがしんどいため、あるタイミングで"0""1"を判定させると決めることで、微小な時間の遅延を無視することをしています。これがクロック同期です。 実際のパソコンのマザーボードなどを見ると一部の配線がぎざぎざになっていて、それで遅延時間を調整しています。(高速通信をする比較的長い配線は、こうやって遅延をコントロールする必要がある。同期をすることで、遅延を考慮する配線の数をある程度減らせる。) 同期を使わない論理回路を作ると、遅延を管理するために、そこらじゅうで遅延を管理する必要が出てきて設計が困難になります。
お礼
回答ありがとうございます! 演算でも クロックが小さなズレを調節するとても大きな役割をはたしているというのがよく分かりました。 クロックが一定の周波数を維持しているのに、データ信号にタイミングのズレが生じるということから コンピュータは本当に繊細な機械なのだと改めて感じました(ズレがクロックよりも大きくなることはないですよね)。 回路について興味がわいたので勉強したいと思います! ありがとうございました。
- ogawa_sora
- ベストアンサー率36% (468/1280)
今晩は。 データ信号とクロック信号のタイミングを合わせることで同期を取ると 言います。(ビット同期とも言います) http://ja.wikipedia.org/wiki/%E3%82%AF%E3%83%AD%E3%83%83%E3%82%AF%E5%90%8C%E6%9C%9F%E8%A8%AD%E8%A8%88 ディジタル信号の伝送には,同期が大切です。 ディジタル信号は、究極的には「0」か「1」しかない信号ですから、ど こから始まってどこで終わるのかが明らかでないと、信号としては伝送 できてもデータとしては意味をなさなくなるからです。 参考までに!
お礼
回答ありがとうございます! データというのがもともと「信号」であるという考えが欠落していました。 普段の生活だと 目にみえるもの(0101が書いてある紙のようなイメージ)をデータとして意識しているので・・。 非常に勉強になりました。
お礼
回答ありがとうございます! 二人三脚するときにするかけごえ(1,2、1,2・・)みたいなものがクロックということでしょうか。 参考URLでは、データDとX,Y,Zは同じデータですが クロック同期のためにちょっとあとで入力されたX,Y,Zが遅れているということでしょうか。 0と1が、たとえば01010101と並んでいたら問題ないが、0000011011と並んでいる場合はクロックの回数で0と1がそれぞれ連続している数をカウントしてあげる必要があるというのは分かりました。 丁寧な説明ありがとうございます!