国产av日韩一区二区三区精品,成人性爱视频在线观看,国产,欧美,日韩,一区,www.成色av久久成人,2222eeee成人天堂

目次
Hit" >#3. 「ヒット」と「ハズレ」とは何を意味しますか? Hit
ホームページ よくある問題 入社してキャッシュとは何かを理解した

入社してキャッシュとは何かを理解した

Jul 31, 2023 pm 04:03 PM
cache


##まえがき

実際はこんな感じです。リーダーが引き継ぎました。perf ハードウェア パフォーマンス監(jiān)視タスクがあります。perf を使用するプロセス中に、コマンド perf list を入力すると、次の情報(bào)が表示されました。

入社してキャッシュとは何かを理解した
My taskこれらのキャッシュを作成することです。イベントは通常どおりカウントできますが、重要なのは、これらの

missesloads が何を意味するのかわからないということです。

両方ともキャッシュであることしかわかりませんが、これらの名前は非常に似ています。違いは何ですか?

そのため、キャッシュについて學(xué)ぶ必要があると感じ、そこからキャッシュやパフォーマンスなどについての理解が始まりました。

以下は、私がキャッシュについて勉強(qiáng)していたときにまとめた基本的な概念的知識であり、基礎(chǔ)層やキャッシュを理解していない人にも役立つと思います。

私はかつてたくさんの質(zhì)問をしながらこのガイドを進(jìn)めてきたため、基本的には質(zhì)問と回答の形式で皆さんをガイドします。

1. キャッシュとは何ですか?

まず、CPU はメモリに直接アクセスせず、最初にキャッシュを経由する必要があることを知っておく必要があります。

原因: CPU內(nèi)のデータはレジスタに格納されており、レジスタへのアクセス速度は非常に速いですが、レジスタの容量は小さいです。メモリ容量は多いですが、速度は遅いです。

CPU とメモリ間の速度と容量の問題を解決するために、キャッシュ Cache が導(dǎo)入されます。

キャッシュは CPU とメイン メモリの間にあります。CPU がメイン メモリにアクセスするとき、まずキャッシュにアクセスして、キャッシュにそのようなデータがあるかどうかを確認(rèn)します。ある場合は、キャッシュからデータを CPU に返します; キャッシュにデータがない場合は、メイン メモリに再度アクセスします。

2. マルチレベル キャッシュのストレージ構(gòu)造

一般的に言えば、キャッシュは複數(shù)ありますが、 、つまりマルチレベルキャッシュですが、なぜですか?

理由: CPU アクセス キャッシュも非常に高速です。しかし、速度と容量を完全に両立させることはできず、CPU がキャッシュにアクセスする速度と CPU がレジスタにアクセスする速度が同じであれば、キャッシュは非常に高速であるが、容量は非常に小さいことを意味します。小さなキャッシュ容量ではニーズを満たすことができないため、マルチレベル キャッシュが導(dǎo)入されました。

マルチレベル キャッシュは、キャッシュを複數(shù)のレベル L1、L2、L3 などに分割します。

  • #速度に応じて、L1 > L2 > L3 の順になります。

  • #ストレージ容量に応じて、L3 > L2 > L1 の順になります。

#L1 は CPU に最も近く、L3 はメイン メモリに最も近いです。 入社してキャッシュとは何かを理解した

通常、L1 は命令キャッシュ (

ICache

) とデータ キャッシュ (DCache) に分割され、L1 キャッシュは CPU 専用であり、それぞれCPU L1キャッシュあり。

#3. 「ヒット」と「ハズレ」とは何を意味しますか? Hit

: CPU がアクセスするデータがキャッシュにキャッシュされます。これを「ヒット」といいます。つまり

cache hitMissing

: CPU がアクセスするデータがキャッシュにキャッシュされていないことを「欠落」、つまり

キャッシュ ミスといいます。

4. キャッシュラインとは何ですか?

キャッシュ ライン: キャッシュ ライン。キャッシュは多くの等しいブロックに均等に分割され、各ブロックのサイズは キャッシュ ラインと呼ばれます。 ###。

キャッシュ ラインは、キャッシュとメイン メモリ間のデータ転送の最小単位でもあります。

CPU が 1 バイトのデータをロードしようとすると、キャッシュが見つからない場合、キャッシュ コントローラーはキャッシュ ライン サイズのデータ??をメイン メモリからキャッシュに一度にロードします。たとえば、キャッシュ ラインのサイズは 8 バイトです。 CPU が 1 バイトを読み取る場合でも、キャッシュが失われた後、キャッシュはメイン メモリから 8 バイトをロードして、キャッシュ ライン全體を埋めます。

#CPU がキャッシュにアクセスするときのアドレス エンコーディングは、通常、タグ、インデックス、オフセットの 3 つの部分で構(gòu)成されます。

入社してキャッシュとは何かを理解した
  • ##tag
    (タグフィールド) : キャッシュラインにキャッシュされたデータのアドレスがプロセッサのアドレス指定アドレスと一致するかどうかを判斷するために使用されます。
  • -
index

(インデックスフィールド): アドレスがキャッシュ內(nèi)のどの行にあるかインデックスを付けて検索するために使用されます。

offset
  • (offset)
    : キャッシュライン內(nèi)のオフセット。キャッシュ ラインの內(nèi)容は、ワードまたはバイトでアドレス指定できます。キャッシュ ラインとタグ、インデックス、オフセットなどの関係は、図に示すとおりです。
    入社してキャッシュとは何かを理解した

    #5. キャッシュは仮想アドレスにアクセスしますか?それとも物理アドレスにアクセスしますか?

    CPU がメモリに直接アクセスするのではなく、CPU が仮想アドレスを発行し、それが MMU によって物理アドレスに変換され、その後データが送信されることがわかっています。物理アドレスに従ってメモリからフェッチされます。

    それでは、キャッシュは仮想アドレスにアクセスしているのでしょうか、それとも物理アドレスにアクセスしているのでしょうか?

    回答: 必ずしもそうとは限りません。これは、仮想アドレス、物理アドレス、または仮想アドレスと物理アドレスの組み合わせのいずれかになります。

    ハードウェア設(shè)計(jì)ではキャッシュを整理するさまざまな方法があるため:

    • VIVT仮想キャッシュ: インデックス仮想アドレスのタグと仮想アドレスのタグ。
    • PIPT物理キャッシュ: 物理アドレスのインデックス、物理アドレスのタグ。
    • VIPT物理的にタグ付けされた仮想キャッシュ: 仮想アドレスのインデックス、物理アドレスのタグ。

    # 6. 曖昧さとエイリアシングの問題とは何ですか?

    曖昧さ (同音異義語 ): 同じ仮想アドレスが異なる物理アドレスに対応します

    エイリアス (alias): 複數(shù)の仮想アドレスが同じ物理アドレスにマッピングされます (複數(shù)の仮想アドレスはエイリアスと呼ばれます)。

    たとえば、上記の VIVT メソッドにはエイリアスの問題があります。VIVT、PIPT、VIPT のどれが優(yōu)れていますか?

    PIPT は、インデックスとタグの両方が物理アドレスを使用するため、実際には理想的です。 ソフトウェア レベルでは、あいまいさやエイリアスの問題を回避するためのメンテナンスは必要ありません。

    VIPT のタグは物理アドレスを使用しているため、あいまいさの問題はありませんが、インデックスは仮想アドレスであるため、 にはエイリアスの問題も発生する可能性があります。

    VIVT メソッドには、曖昧さとエイリアシングの問題が存在します。

    実際、現(xiàn)在ハードウェアで使用されているのは基本的に PIPT または VIPT です。 VIVT は問題が多すぎて、歴史になり、誰も使わなくなりました。さらに、PIVT 法は欠點(diǎn)だけで利點(diǎn)がなく、遅いだけでなく、曖昧性やエイリアシングの問題も存在するため存在しません。

    キャッシュの構(gòu)成、曖昧さおよびエイリアスの問題は、比較的大きなコンテンツです。ここで知っておく必要があるのは、キャッシュによってアクセスされるアドレスは、仮想アドレス、物理アドレス、または仮想アドレスと物理アドレスの組み合わせのいずれかである可能性があるということだけです。また、組織化方法が異なると、曖昧さやエイリアスの問題が発生します。

    #7. キャッシュ割り當(dāng)て戦略?

    は、キャッシュミスが発生したときにキャッシュがどのように割り當(dāng)てられるかを示します。

    読み取り割り當(dāng)て: CPU がデータを読み取るとき、キャッシュ がありません。この場合、キャッシュ ライン キャッシュが割り當(dāng)てられます。 . メインメモリから読み取られたデータ。 デフォルトでは、cache は読み取り割り當(dāng)てをサポートします。

    書き込み割り當(dāng)て: CPU 書き込みデータ キャッシュ が欠落している場合、書き込み割り當(dāng)て戦略が考慮されます。書き込み割り當(dāng)てをサポートしていない場合、書き込み命令はメイン メモリ データを更新するだけで終了します。書き込み割り當(dāng)てがサポートされている場合、最初にメイン メモリから キャッシュ ライン にデータをロードし (最初に読み取り割り當(dāng)てを?qū)g行するのと同じ)、次に キャッシュ ライン のデータを更新します。

    8. キャッシュ更新戦略?

    は、キャッシュがヒットしたときに書き込み操作でデータを更新する方法を示します。

    書き込みパススルー: CPU がストア命令を?qū)g行し、キャッシュがヒットすると、キャッシュ內(nèi)のデータを更新し、メイン メモリ內(nèi)のデータも更新します。 キャッシュとメインメモリ內(nèi)のデータは常に一貫しています

    Writeback: CPUstore 命令を?qū)g行し、cache データにヒットした場合にのみ cache## を更新します。で #。そして、各 キャッシュ ライン には、データが変更されたかどうかを記録するための bit ビットがあり、これは ダーティ ビット と呼ばれます。 ダーティビットを設(shè)定します。メイン メモリ內(nèi)のデータは、キャッシュ ライン が置換されるか、明示的な clean 操作が実行される場合にのみ更新されます。したがって、 メイン メモリ內(nèi)のデータは未変更のデータである可能性がありますが、変更されたデータは キャッシュ內(nèi)にあります。 キャッシュとメインメモリ內(nèi)のデータが不整合である可能性があります。

    最後に

    キャッシュ、TLB、MESI、メモリ整合性モデルなどについて本當(dāng)に習(xí)得するには、沈降と要約が必要なものです。

    しかし、多くの人はこれを使用しないかもしれません。パフォーマンスの問題が発生し、キャッシュ ヒット率を改善する必要がある場合にのみ、この知識の重要性がわかります。

    この記事で取り上げた知識について、キャッシュの基礎(chǔ)知識をマインドマップにまとめました。

    入社してキャッシュとは何かを理解した



#

以上が入社してキャッシュとは何かを理解したの詳細(xì)內(nèi)容です。詳細(xì)については、PHP 中國語 Web サイトの他の関連記事を參照してください。

このウェブサイトの聲明
この記事の內(nèi)容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰屬します。このサイトは、それに相當(dāng)する法的責(zé)任を負(fù)いません。盜作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡(luò)ください。

ホットAIツール

Undress AI Tool

Undress AI Tool

脫衣畫像を無料で

Undresser.AI Undress

Undresser.AI Undress

リアルなヌード寫真を作成する AI 搭載アプリ

AI Clothes Remover

AI Clothes Remover

寫真から衣服を削除するオンライン AI ツール。

Clothoff.io

Clothoff.io

AI衣類リムーバー

Video Face Swap

Video Face Swap

完全無料の AI 顔交換ツールを使用して、あらゆるビデオの顔を簡単に交換できます。

ホットツール

メモ帳++7.3.1

メモ帳++7.3.1

使いやすく無料のコードエディター

SublimeText3 中國語版

SublimeText3 中國語版

中國語版、とても使いやすい

ゼンドスタジオ 13.0.1

ゼンドスタジオ 13.0.1

強(qiáng)力な PHP 統(tǒng)合開発環(huán)境

ドリームウィーバー CS6

ドリームウィーバー CS6

ビジュアル Web 開発ツール

SublimeText3 Mac版

SublimeText3 Mac版

神レベルのコード編集ソフト(SublimeText3)

入社してキャッシュとは何かを理解した 入社してキャッシュとは何かを理解した Jul 31, 2023 pm 04:03 PM

実際は次のようなものです。當(dāng)時(shí)、私のリーダーは私に perf ハードウェア パフォーマンス監(jiān)視タスクを與えました。perf を使用するプロセス中に、コマンド perf list を入力すると、次の情報(bào)が表示されました。私のタスクは、これらのキャッシュ イベントを有効にすることです。しかし重要なのは、これらのミスやロードが何を意味するのか全く分からないということです。

キャッシュ、rom、ramの特徴は何ですか? キャッシュ、rom、ramの特徴は何ですか? Aug 26, 2022 pm 04:05 PM

キャッシュの特徴:CPUとメインメモリの間に設(shè)けられた1層または2層の高速かつ小容量のメモリで、コンピュータの電源を切ると情報(bào)は自然に失われます。 ROM の特性: メモリからデータを読み取ることのみが可能ですが、情報(bào)を書き込むことはできず、コンピュータの電源を切ってもデータは殘ります。 ram の特性: メモリからデータを読み取り、メモリに情報(bào)を書き込むことができます。プログラムの実行に必要なコマンド、プログラム、およびデータを保存するために使用されます。コンピュータの電源がオフになると、情報(bào)は自然に失われます。

キャッシュを使用するとコンピュータの速度が向上するのはなぜですか? キャッシュを使用するとコンピュータの速度が向上するのはなぜですか? Dec 09, 2020 am 11:28 AM

キャッシュを使用すると、CPU の待ち?xí)r間が短縮されるため、コンピューターの速度が向上します。キャッシュは、CPU とメイン メモリ DRAM の間に位置する小さいながらも高速なメモリです。キャッシュの機(jī)能はCPUのデータ入出力速度を高めることであり、キャッシュは容量は小さいが速度が速く、メモリは速度は低いが容量が大きいため、スケジューリングアルゴリズムを最適化することでシステムのパフォーマンスを向上させることができます。大幅に改善されました。

nginx リバースプロキシキャッシュのチュートリアル。 nginx リバースプロキシキャッシュのチュートリアル。 Feb 18, 2024 pm 04:48 PM

nginx リバース プロキシ キャッシュのチュートリアルは次のとおりです。 nginx のインストール: sudoaptupdatesudoaptinstallnginx リバース プロキシの構(gòu)成: nginx 構(gòu)成ファイルを開きます: sdonano/etc/nginx/nginx.conf キャッシュを有効にするには、http ブロックに次の構(gòu)成を追加します: http{...proxy_cache_path /var/cache/nginxlevels=1:2keys_zone=my_cache:10mmax_size=10ginactive=60muse_temp_path=off;proxy_cache

SpringBootプロジェクトでキャッシュを使用する方法 SpringBootプロジェクトでキャッシュを使用する方法 May 16, 2023 pm 02:34 PM

Preface キャッシュは、頻繁にアクセスされるデータをメモリに保存し、データベースなどの基盤となるデータ ソースへの負(fù)擔(dān)を軽減することで、システムのパフォーマンスと安定性を効果的に向上させることができます。誰もがプロジェクトで多かれ少なかれこれを使用したことがあると思いますが、私たちのプロジェクトも例外ではありませんでしたが、最近會社のコードをレビューしていたとき、非常に愚かでレベルの低い記述でした。 {Useruser=cache.getUser();if(user!=null){returnuser;}//データベースからユーザーを取得=loadFromDB(id);cahce.put(id,user);returnu

キャッシュとは何ですか? キャッシュとは何ですか? Nov 25, 2022 am 11:48 AM

キャッシュはキャッシュメモリと呼ばれ、中央処理裝置とメインメモリの間にある高速かつ小容量のメモリで、通常は高速SRAMで構(gòu)成され、CPU向けのこの種のローカルメモリが導(dǎo)入されています。 CPU とメモリ間の速度差がシステム パフォーマンスに及ぼす影響を軽減または排除します。キャッシュ容量は小さいですが高速、メモリ速度は遅いですが容量は大きく、スケジューリングアルゴリズムを最適化することでシステムのパフォーマンスが大幅に向上します。

Nginx キャッシュの構(gòu)成計(jì)畫と、関連するメモリ使用量の問題を解決する方法 Nginx キャッシュの構(gòu)成計(jì)畫と、関連するメモリ使用量の問題を解決する方法 May 23, 2023 pm 02:01 PM

nginx キャッシュの 5 つのオプション キャッシュ 1. 従來のキャッシュの 1 つ (404) この方法では、nginx の 404 エラーをバックエンドに送り、proxy_store を使用してバックエンドから返されたページを保存します。設(shè)定: location/{root/home/html/;#ホームディレクトリexpires1d;#Webページの有効期限error_page404=200/fetch$request_uri;#404 /fetchディレクトリに誘導(dǎo)される} Location/fetch/{#404ここに指定されています內(nèi)部 ;#このディレクトリは外部から直接アクセスできないことを示します

Spring Cache に基づいて Caffeine+Redis の 2 次キャッシュを?qū)g裝する方法 Spring Cache に基づいて Caffeine+Redis の 2 次キャッシュを?qū)g裝する方法 Jun 01, 2023 am 10:13 AM

詳細(xì)は次のとおりです。 1. ハードコーディングされたキャッシュとは何ですか? SpringCache を?qū)Wぶ前は、ハードコーディングされた方法でキャッシュを使用することがよくありました。実際の例を見てみましょう。ユーザー情報(bào)のクエリ効率を向上させるために、ユーザー情報(bào)のキャッシュを使用します。サンプル コードは次のとおりです: @AutowireprivateUserMapperuserMapper; @AutowireprivateRedisCacheredisCache;//ユーザーをクエリ publicUsergetUserById(LonguserId){//キャッシュを定義しますkeyStringcacheKey= "userId_