理解キャッシュライン&タプルアットアタイム&クロックサイクル

  • 概要概要

    過去を思い出せない人はそれを繰り返すことを非難されます-ジョージ・サンタヤーナ

  • キャッシュ

    Aキャッシュは、格納データはそのためのデータの将来の要求がより早く提供することができるということを、ハードウェアまたはソフトウェアコンポーネントです。

  • CPUキャッシュ

    CPUキャッシュは、メインメモリからデータにアクセスするための平均コスト(時間またはエネルギー)を低減するために、コンピュータの中央処理装置(CPU)によって使用されるハードウェアキャッシュです。

    メインメモリ内の場所からの読み取りまたは書き込みを試みるとき、プロセッサはその場所からのデータがすでにキャッシュにあるかどうかを確認します。その場合、プロセッサは、はるかに遅いメインメモリではなく、キャッシュからの読み取りまたはキャッシュへの書き込みを行います。

    最新のデスクトップおよびサーバーCPUには、少なくとも3つの独立したキャッシュがあります。

    • 実行可能な命令フェッチを高速化するための命令キャッシュ
    • データのフェッチと保存を高速化するデータキャッシュ
    • 実行可能命令とデータの両方の仮想アドレスから物理アドレスへの変換を高速化するトランスレーションルックアサイドバッファ(TLB
  • キャッシュライン

    データは、キャッシュラインまたはキャッシュブロックと呼ばれる固定サイズのブロックでメモリとキャッシュ間で転送されます

    acache lineがメモリからキャッシュにコピーされると、acache entryが作成されます。

    キャッシュエントリには、コピーされたデータと、要求されたメモリ位置(と呼ばれるtag)が含まれます。

  • クエリ処理

    vectorization model目的materialization modelは、CPUキャッシュをより有効に使用しての効率を高めることです。

    DBMSがクエリプランを実行するには、次の3つの方法があります。

    • タプルアットアタイム:各オペレーターは、次のタプルを処理するために、子に対してnextを呼び出します。またとして知られている火山interatorモデル。

    • 一度にオペレーター:各オペレーターは、親オペレーターの出力全体を具体化します。これは、インメモリーOLTPエンジンに最適です。

    • Vector-at-a-time:各オペレーターは、処理するデータのbextバッチを取得するために、子に対してnextを呼び出します。

  • 火山イテレータモデル

    OceanBase:データベースクエリエンジンの進化

    Volcano –拡張可能で並列クエリ評価システム

  • クロックサイクル

    クロック信号のハイとロー状態との間で振動は、デジタル回路の動作を調整するメトロノームのように使用されます。

    クロックサイクルは、 CPUの単一の電子パルスです。各サイクル中に、CPUは、命令のフェッチ、メモリへのアクセス、データの書き込みなどの基本的な操作を実行できます。

    物理学では、信号の周波数は1秒あたりのサイクル数、つまり「ヘルツ」によって決定されます。同様に、プロセッサの周波数は1秒あたりのクロックサイクル数で測定されます。

    コンピュータプロセッサまたはCPUの速度は、オシレータの2つのパルス間の時間であるクロックサイクルによって決定されます。

  • 参考文献

  1. キャッシュラインはどのように機能しますか?
  2. 「キャッシュフレンドリー」コードとは何ですか?
  3. キャッシュプログラミングスタイルの要素
  4. キャッシュメモリに関する注意事項
  5. ソフトウェア開発者がCPUキャッシュを気にする必要がある理由
  6. 講義#03:クエリのコンパイル
  7. 最新のハードウェアでのデータ処理:割り当て2

おすすめ

転載: blog.csdn.net/The_Time_Runner/article/details/115333506