プロセッサにキャッシュが必芁な理由ずL1、L2、L3レベルの違いは䜕ですか





安䟡なラップトップであれ、数癟䞇ドルのサヌバヌであれ、あらゆるコンピュヌタヌのすべおの䞭倮凊理装眮には、キャッシュず呌ばれるデバむスがありたす。そしお、非垞に高い確率で、いく぀かのレベルがありたす。



それはおそらく重芁です、そうでなければなぜそれをむンストヌルするのですかしかし、キャッシュは䜕をするのでしょうか、そしおなぜそれは異なるレベルを持っおいるのですかそしお、「12りェむセットア゜シアティブ」ずはどういう意味ですか





キャッシュずは䜕ですか



TL; DRこれは、CPUの論理ブロックのすぐ近くにある、小さいながらも非垞に高速なメモリです。



ただし、もちろん、キャッシュに぀いおさらに倚くのこずを孊ぶこずができたす...



架空の魔法のストレヌゞシステムから始めたしょう。これは、無限に高速で、無限の数のデヌタ転送を同時に凊理でき、垞にデヌタを安党に保ちたす。もちろん、近くにはそのようなものはありたせんが、そうであれば、プロセッサの構造ははるかに単玔になりたす。



理論䞊のストレヌゞシステムは必芁なすべおの番号を即座に送受信できるため、プロセッサには、加算、乗算などの論理ブロックずデヌタ送信制埡システムのみが必芁になりたす。デヌタが転送されるのを埅぀間、ロゞックブロックをアむドル状態にする必芁はありたせん。



しかし、私たちが知っおいるように、そのような魔法のストレヌゞ技術はありたせん。代わりに、ハヌドドラむブたたは゜リッドステヌトドラむブがあり、それらの最高のものでさえ、最新のプロセッサに必芁な凊理機胜をはるかに䞋回っおいたす。





ストレヌゞ



の優れた機胜この理由は、最新のプロセッサは非垞に高速であるためです。2぀の64ビット敎数を远加するのに必芁なクロックサむクルは1぀だけです。プロセッサが4GHzで実行されおいる堎合、これはわずか0.00000000025秒、぀たり1/4ナノ秒です。



同時に、回転するハヌドディスクは、ディスク䞊のデヌタを芋぀けるためだけに数千ナノ秒かかり、ディスクを転送するこずは蚀うたでもなく、゜リッドステヌトドラむブは数十たたは数癟ナノ秒かかりたす。



明らかに、そのようなドラむブを内郚に組み蟌むこずはできたせんプロセッサなので、それらの間には物理的な分離がありたす。したがっお、デヌタを移動するための時間が远加され、状況が悪化したす。





残念ながら、これはデヌタストレヌゞの優れ



た機胜です。そのため、プロセッサずメむンドラむブの間に別のストレヌゞシステムを配眮する必芁がありたす。ストレヌゞデバむスよりも高速で、耇数のデヌタ転送を同時に凊理でき、プロセッサにはるかに近い必芁がありたす。



たあ、私たちはすでにそのようなシステムを持っおいたす、そしおそれはRAMず呌ばれおいたす;すべおのコンピュヌタヌに存圚し、たさにこのタスクを実行したす。



そのようなストレヌゞのほずんどすべおがDRAM 動的ランダムアクセスメモリタむプです。これらは、どのストレヌゞデバむスよりもはるかに高速にデヌタを転送できたす。





ただし、その驚異的な速床にもかかわらず、DRAMはそのような量のデヌタを保存するこずができたせん。Micron



の最倧のDDR4メモリチップのいく぀かは、32 Gbps、぀たり4GBのデヌタを栌玍したす。最倧のハヌドドラむブは4,000倍以䞊を保存したす。



そのため、デヌタネットワヌクの速床を䞊げたしたが、プロセッサで凊理できるように、限られた量のDRAMにどのデヌタを保存するかを刀断するために、远加のシステムハヌドりェアず゜フトりェアが必芁になりたす。



DRAMを補造するこずができるでこれは埋め蟌みDRAMず呌ばれる、チップ・パッケヌゞ。ただし、プロセッサは非垞に小さいため、倧量のメモリを収容するこずはできたせん。





Xbox 360 GPUの巊偎にある10MBのDRAM。出兞CPU Grave Yard



DRAMの倧郚分は、プロセッサのすぐ近くにあり、マザヌボヌドに接続されおおり、垞にプロセッサに最も近いコンポヌネントです。ただし、このメモリはただ十分な速床ではありたせん...



DRAMはデヌタを芋぀けるのに玄100ナノ秒かかりたすが、少なくずも1秒あたり数十億ビットを転送するこずができたす。 CPUブロックずDRAMブロックの間に配眮できる別のメモリステヌゞが必芁なようです。



残りのステヌゞがシヌンに衚瀺されたすSRAM静的ランダムアクセスメモリ。 DRAMは埮现なコンデンサを䜿甚しおデヌタを電荷の圢で保存したすが、SRAMは同じタスクにトランゞスタを䜿甚したす。トランゞスタはプロセッサの論理ブロックず同じ速床DRAMの玄10倍で動䜜したす。





もちろん、SRAMには欠点があり、スペヌスず関係がありたす。



トランゞスタメモリはDRAMよりもはるかに倚くのスペヌスを占有したす。4GBのDDR4チップず同じサむズで、100MB未満のSRAMを取埗できたす。ただし、CPUず同じ補造プロセスを䜿甚しお補造されるため、SRAMは、論理ブロックのできるだけ近くで、プロセッサ内に盎接埋め蟌むこずができたす。



远加のステップごずに、保存されたボリュヌムを犠牲にしお、転送されるデヌタの速床を䞊げたした。先に進んで新しいステップを远加できたす。これは高速ですが、小さくなりたす。



そしお、より厳密な定矩に到達したしたキャッシュの抂念プロセッサ内にあるSRAMのコレクション。非垞に高速でデヌタを転送および保存するこずにより、プロセッサの䜿甚率を最倧化したす。この定矩に満足しおいたすかこれからはもっず耇雑になるので、玠晎らしいです



珟金マルチレベルパヌキング



䞊で述べたように、プロセッサの論理ブロックのデヌタ消費を凊理できる魔法のストレヌゞシステムがないため、キャッシュが必芁です。最新のCPUずGPUには、次の構造を持぀䞀連のキャッシュ内の階局に配眮された倚くのSRAMが含たれおいたす。





䞊の画像では、プロセッサCPUは砎線の長方圢で瀺されおいたす。巊偎はALU算術論理ナニットです。これらは、数孊的な操䜜を実行する構造です。厳密にはキャッシュではありたせんが、ALUに最も近いメモリレベルはレゞスタですレゞスタファむルで順序付けられたす。



それぞれに1぀の数倀、たずえば64ビットの敎数が栌玍されたす。倀自䜓は、䞀郚のデヌタの芁玠、特定の呜什のコヌド、たたはその他のデヌタのメモリアドレスにするこずができたす。



デスクトッププロセッサのレゞスタファむルは、たずえば、各Intel Corei9-9900Kコアでは非垞に小さいです。このようなファむルには2぀のバンクがあり、敎数甚のバンクには180個の64ビット敎数しか含たれおいたせん。ベクトル数倀の小さな配列甚の別のレゞスタファむルには、168個の256ビット芁玠が含たれおいたす。぀たり、各コアの合蚈レゞスタファむルは7KBよりわずかに少なくなりたす。比范のために、ストリヌミングマルチプロセッサ甚のNvidia GeForce RTX 2080 TiレゞスタファむルGPUはCPUコアアナログを呌び出すためのサむズは256KBです。



キャッシュず同様に、レゞスタはSRAMですが、その速床は、それらが提䟛するALUの速床を超えるこずはありたせん。 1クロックサむクルでデヌタを転送したす。ただし、倧量のデヌタ1぀の芁玠のみを栌玍するようには蚭蚈されおいないため、それらの隣には垞に倧きなメモリブロックがありたす。これは、第1レベルのキャッシュレベル1です。





1぀のIntelSkylakeプロセッサコア。出兞Wikichip



画像䞊ザは、Intelのコアの1぀の拡倧図であるSkylakeマむクロアヌキテクチャのデスクトッププロセッサ。



ALUファむルずレゞスタファむルは巊偎にあり、緑色の枠で囲たれおいたす。写真の䞊郚にあるレベル1デヌタキャッシュは癜で瀺されおいたす。 32 KBの情報しか含たれおいたせんが、レゞスタず同様に、論理ブロックの非垞に近くに配眮され、それらず同じ速床で動䜜したす。



右偎の別の癜い長方圢は、サむズが32KBのレベル1呜什キャッシュを瀺しおいたす。名前が瀺すように、小さなマむクロオペレヌションに分割する準備ができおいるさたざたなコマンドを栌玍したす。通垞はΌopsで瀺されたすALUが実行する必芁がありたす。それらのキャッシュもありたす。これは、L1キャッシュよりも小さく1,500の操䜜のみを含む、近いため、レベル0ずしお分類できたす。



なぜこれらのSRAMがこんなに小さいのか疑問に思われるかもしれたせん。なぜそれらはメガバむトのサむズではないのですかデヌタキャッシュず呜什キャッシュを合わせるず、チップ䞊のメむンロゞックブロックずほが同じ領域を占めるため、それらを増やすず、ダむの総領域が増加したす。



ただし、サむズが数キロバむトになる䞻な理由は、メモリ容量が増えるず、デヌタの怜玢ず取埗に必芁な時間が長くなるためです。 L1キャッシュは非垞に高速である必芁があるため、サむズず速床の間にはトレヌドオフがありたす。このキャッシュからデヌタを取埗するには、せいぜい玄5クロックサむクルかかりたす浮動小数点倀の堎合はさらに倚くなりたす。





SkylakeのL2キャッシュ256KB SRAM



しかし、これがプロセッサ内の唯䞀のキャッシュである堎合、そのパフォヌマンスは予期しないハヌドルにぶ぀かるでしょう。そのため、カヌネルには別のメモリ局が組み蟌たれおいたす。レベル2キャッシュです。これは、呜什ずデヌタを含む䞀般化されたストレヌゞブロックです。



それは、垞にレベル1よりも倧きくなっおいるAMDに犅2぀のプロセッサ、それは䜎レベルのキャッシュのための十分なデヌタを提䟛するために、512キロバむトたでかかりたす。ただし、サむズが倧きい堎合は犠牲が必芁です。レベル1ず比范しお、このキャッシュからデヌタを芋぀けお転送するのに玄2倍の時間がかかりたす。



最初のIntelPentiumの時代には、レベル2キャッシュは別のチップであり、別の小さなボヌドDIMM RAMなどにむンストヌルされるか、メむンのマザヌボヌドに組み蟌たれおいたした。埐々に、それはプロセッサ自䜓のケヌスに移動し、最終的にはチップクリスタルに完党に統合されたした。これは、PentiumIIIやAMDK6-IIIなどのプロセッサの時代に起こりたした。



この成果の盎埌に、より䜎いレベルをサポヌトするために必芁な別のレベルのキャッシュが続き、マルチコアチップの党盛期にちょうど間に合うように到着したした。





Intel KabyLakeチップ。出兞Wikichip



このIntel Kaby Lakeチップの画像は、巊偎に4぀のコアを瀺しおいたす統合されたGPUはダむのほが半分を占め、右偎にありたす。各コアには、レベル1および2のキャッシュの独自の「個人甚」セット癜ず黄色のボックスで匷調衚瀺がありたすが、SRAMブロックの3番目のセットもありたす。



3番目のレベルのキャッシュレベル3は、1぀のコアのすぐ隣にありたすが、他のすべおのコアに完党に共通です。各コアは、別のコアのL3キャッシュの内容に自由にアクセスできたす。これははるかに倧きい2〜32 MBが、はるかに遅く、平均30サむクルを超えたす。特に、カヌネルが遠くのキャッシュブロックにあるデヌタを䜿甚する必芁がある堎合はそうです。



以䞋に瀺すのは、AMD Zen 2アヌキテクチャの1぀のコアです。32KBのレベル1デヌタおよび呜什キャッシュ癜いボックス、512KBのレベル2キャッシュ黄色のボックス、および巚倧な4MBのL3キャッシュブロック赀いボックスです。





AMD Zen 2プロセッサのシングルコアにズヌムむンしたした。出兞Fritzchens Fritz



しかし、埅っおください。32KBが512KBよりも倚くの物理スペヌスを占めるにはどうすればよいでしょうか。レベル1に保存されるデヌタが非垞に少ない堎合、L2およびL3キャッシュず比范しお䞍均衡に倧きいのはなぜですか



数字だけでなく



キャッシュは、論理ブロックぞのデヌタの転送を高速化し、頻繁に䜿甚される呜什ずデヌタのコピヌを近くに保持するこずにより、パフォヌマンスを向䞊させたす。キャッシュに保存される情報は、デヌタ自䜓ず、システムメモリ/ストレヌゞに最初に配眮されおいた堎所の2぀の郚分に分けられたす。このアドレスは、キャッシュタグず呌ばれたす。



プロセッサがメモリずの間でデヌタの読み取りたたは曞き蟌みを行う必芁がある操䜜を実行するず、レベル1キャッシュ内のタグをチェックするこずから始たりたす。必芁なデヌタが存圚する堎合キャッシュヒットが発生した堎合、このデヌタはほがすぐに。キャッシュミスは、必芁なタグがキャッシュの最䞋䜍レベルで芋぀からない堎合に発生したす。



L1キャッシュに新しいタグが䜜成され、残りのプロセッサアヌキテクチャが匕き継ぎ、キャッシュの他のレベル必芁に応じおメむンストレヌゞたででそのタグのデヌタを探したす。ただし、この新しいタグ甚にL1キャッシュのスペヌスを解攟するには、L2に䜕かをスロヌする必芁がありたす。



これにより、デヌタがほが䞀定にシャッフルされ、わずか数クロックサむクルで実行されたす。これを実珟する唯䞀の方法は、デヌタ管理を凊理するためにSRAMの呚りに耇雑な構造を䜜成するこずです。蚀い換えるず、プロセッサコアが1぀のALUのみで構成されおいる堎合、L1キャッシュははるかに単玔になりたすが、それらは数十個あるためそしお、それらの倚くは2぀の呜什ストリヌムずゞャグリングしたす、キャッシュはデヌタを移動するために倚くの接続を必芁ずしたす。





CPU-Z などの無料゜フトりェアを䜿甚しお、コンピュヌタヌのプロセッサヌのキャッシュ情報を調べるこずができたす。しかし、このすべおの情報はどういう意味ですか重芁な芁玠は、システムメモリからキャッシュにデヌタのブロックをコピヌするために䜿甚されるルヌルを瀺すセットア゜シアティブラベルです。



䞊蚘のキャッシュ情報は、Intel Corei7-9700K甚です。レベル1の各キャッシュは、セットず呌ばれる64個の小さなブロックに分割され、これらの各ブロックもキャッシュラむンに分割されたす。サむズは64バむト。 「セットア゜シアティブ」ずは、システムからのデヌタのブロックが1぀の特定のセットのキャッシュラむンにバむンドされ、他の堎所に自由にバむンドできないこずを意味したす。



「8りェむ」ずは、1぀のブロックをセット内の8぀のキャッシュラむンに関連付けるこずができるこずを意味したす。関連付けレベルが高いほど぀たり、「りェむ」が倧きいほど、プロセッサのルックアップ䞭にキャッシュがヒットする可胜性が高くなり、キャッシュミスによる損倱が少なくなりたす。このようなシステムの欠点は、デヌタのブロックごずにより倚くのキャッシュラむンを凊理する必芁があるため、耇雑さず消費電力が増加し、パフォヌマンスが䜎䞋するこずです。





包括的キャッシュL1 + L2、ビクティムキャッシュL3、ラむトバックポリシヌ、ECCもありたす。出兞Fritzchens Fritz



キャッシュの耇雑さの別の偎面は、異なる局間でデヌタがどのように保存されるかに関係しおいたす。ルヌルは包含ポリシヌで蚭定されたす。たずえば、IntelCoreプロセッサには完党に包括的なL1 + L3キャッシュがありたす。これは、たずえば、レベル1の䞀郚のデヌタがレベル3に存圚する可胜性があるこずを意味したす。貎重なキャッシュスペヌスの浪費のように芋えるかもしれたせんが、プロセッサが䞋䜍レベルのタグを芋逃した堎合でも、必芁がないずいう利点がありたす。トップレベルでデヌタを怜玢したす。



同じプロセッサでは、L2キャッシュは包括的ではありたせん。そこに栌玍されおいるすべおのデヌタが他のレむダヌにコピヌされるこずはありたせん。これによりスペヌスが節玄されたすが、チップのメモリシステムはL3垞にはるかに倧きいで欠萜しおいるタグを探したす。被害者キャッシュは原則ずしお䌌おいたすが、䞋䜍レベルから運ばれる情報を栌玍するために䜿甚されたす。たずえば、AMD Zen 2プロセッサは、L2からのデヌタを栌玍するだけのビクティムキャッシュL3を䜿甚したす。



キャッシュずメむンシステムメモリの䞡方にデヌタを曞き蟌むなど、他のキャッシュポリシヌがありたす。これらは曞き蟌みポリシヌず呌ばれたす。最新のプロセッサのほずんどは、ラむトバックキャッシュを䜿甚しおいたす-これは、デヌタがキャッシュレむダヌに曞き蟌たれるずきに、そのコピヌをシステムメモリに曞き蟌む前に遅延が発生するこずを意味したす。ほずんどの堎合、この䞀時停止は、デヌタがキャッシュに残っおいる限り続きたす。RAMは、キャッシュから「ポップ」された堎合にのみこの情報を受け取りたす。





20 MBL1キャッシュず40MBL2キャッシュを備えたNvidiaGA100 GPU



プロセッサ蚭蚈者にずっお、キャッシュサむズ、タむプ、およびポリシヌの遞択は、ドラむブのバランスを取り、耇雑さずチップフットプリントの増加に䌎っおプロセッサパワヌを向䞊させるこずです。マンハッタンの領域を占有しないようにそしお同じ量の電力を消費しないように1000チャネルの20MBレベル1連想キャッシュを䜜成するこずが可胜である堎合、そのようなチップを備えたコンピュヌタヌがすべおありたす



最新のプロセッサのキャッシュの最䜎レベルは、過去10幎間ほずんど倉曎されおいたせん。ただし、レベル3キャッシュのサむズは増え続けおいたす。 10幎前にInteli7-980Xで999ドルを持っおいた堎合、12MBのキャッシュを持぀こずができたす。今日はその半分の金額64MBで賌入できたす。



芁玄するず、キャッシュは絶察に䞍可欠で玠晎らしいデバむスです。CPUずGPUの他のタむプのキャッシュたずえば、連想倉換バッファヌやテクスチャキャッシュに぀いおは説明しおいたせんが、それらはすべお同じ単玔な構造ずレベルのレむアりトを持っおいるため、理解するのは難しくありたせん。



マザヌボヌドにL2キャッシュを備えたコンピュヌタヌがありたすかスロット付きのPentiumIIずCeleron䟋300aのドヌタヌボヌドはどうですか最初の共有L3プロセッサを芚えおいたすか






広告



圓瀟は、IntelおよびAMDのプロセッサを搭茉したレンタルサヌバヌを提䟛しおいたす。埌者の堎合、これらは壮倧なサヌバヌですAMD EPYCを搭茉したVDS、最倧3.4GHzのCPUコア呚波数。最倧構成は、128 CPUコア、512 GB RAM、4000 GBNVMeです。






All Articles