アカウント名:
パスワード:
シリコンが余っているからといって、キャッシュの階層を重ねすぎるのもどうかと。
シリコンが余っているからではなく必要に迫られてですよ。DRAMの微細化も速度も消費電力も限界になってて、これ以上改善できなくなったから仕方なくやってる。
SRAMはロジックの微細化に合わせて順当に進化できたのですが、DRAMは15nmぐらいから先ほとんど進化できなくて止まってます。DRAMもインターフェイス側の改良は続いていて、GDDRとかHBMとかで並列化によって帯域幅は向上できてるのですが、素子単体は改良できてないのでレイテンシが数十nsから速くなってないし消費電力も減ってない。業界的にはMRAMなりPRAMなりの次世代メモリにバトンタッチする予定だったのが、どれも研究開発は出来ても実用化の壁に当たってモノになってない。
そこでCPUにはAMDの3D-VCacheのようにSRAMを積層してキャッシュ容量増やしたり、GPUでもNVIDIA、AMD共に最新世代では大容量SRAMキャッシュ追加してDRAMへのアクセス減らして性能改善してます。
L1~L3増やせばよくない?キャッシュ階層を増やすと同期大変だしTLBバグみたいな元になるし、データのコピーがL1~L4まで4重に居座ることになって、シリコンが勿体なくない?素人考えなんだろうけどどうしても気になる。
簡単に言えば、容量を増やせば増やすほど低レイテンシ、低消費電力というキャッシュメモリの特性を維持できなくなるからです。正確な理由は簡単ではないですが、容量が増えると物理的にサイズが大きくなるので距離が遠くなることと、アドレス変換のロスが重くなる。
容量を増やしても性能を維持できるなら、L1単体で大容量にすればいいのはその通り。でも物理的な限界からそうできないから、仕方なく階層構造にしています。
デバイスの設計上、高速のメモリほどセルサイズは大きく消費電力も大きくなり、大容量のメモリが遅くなるのは避けられないトレードオフの問題を回避するためには、特性の異なるメモリを組み合わせた階層構造にせざるを得ないという話は分かるが、ローエンドの組込プロセッサまでもシリコンが有り余ってARMやRISC-Vベースになりキャッシュがオマケについてくるのは止めてくれ.......#8051コアで満足できる男です
そんなにローエンドの組込プロセッサで満足できるなら、普通外付けメモリなんて無しでプロセッサ内蔵のSRAMだけでしょう?アプリ側の都合もあるからCortex-Mの下位はキャッシュ無いし、シリコンが有り余ってキャッシュをおまけに付けるなんて事実はないと思うけど。
近い階層のキャッシュ増やすと、検索に時間がかかって性能上がらんのじゃね?L3増やせば、それは性能的にはL3なくしてL4積んだことにしかならないとか。
CPUはメモリーを読み込んでないのでその辺は問題ない。CPUが読み込んでいるメモリデータはブロック単位です。ブロック単位で読み込んでブロック単位で書き込みをする…そんな仕組みメモリアクセスの状況からどこを読んでいるかわからない。必要とされる場所もしくは必要とされるであろう場所のブロックが読み込まれる。そのためキャッシュの効果が上がる。メモリーは並列読み込みで時間単位みかけで転送レートが上がればある程度は改善できる。さらにCPUが早くなるのであれば、メモリー2枚差しじゃないと動かなくなるかもしれません。
キャッシュ容量を上げた場合検索により時間がかかるようになったり本来キャッシュすべきではないものをキャッシュしやすくなるがまあそれでも速くはなるからな。むしろ問題は高速なキャッシュほど高価というところらしい。このまま行ったらハイエンドはそのうちCPUのキャッシュ階層が6段くらいになりさらにモジュール側にHBMがありその下にDDRがありその下にNVDIMMがありというふうになりそう。今のシンプルな構成から比べると恐ろしく複雑。そりゃ昔はCPUキャッシュもRAMもなかったかもしれんが…
マザーボードに2ndキャッシュメモリボードを挿してた時代が懐かしい。
げじげじ足のSRAMが刺さってた記憶ありますが、386まででしたっけ?486でもあったかな?
Pentiumでもチップセットにtriton辺りを使ったもので追加可能なものがあった。
NECのPC-9821Xa7はintelのチップセットじゃないけど、上位機種のXa9とかXa10が標準搭載していたセカンドキャッシュがオプションだったり。
DIPのSRAMをL2に使ってたのは概ね486世代までですかね?FMVのある型番はDIPじゃなくてZIPで探すのにえらい苦労した記憶が。。
PentiumはPBSRAMからSOPかQFPになってたので、増設は専用モジュール基板だった。
既に3階層になっているものを4階層に増やすという話はそこまで奇異だろうか3階層のままで増やせばというなら、同じ理屈で1階層で十分だろとは思わない?
キャッシュ階層の数がラグランジュポイントの数を超えるのももうすぐだな。
歩留まりの問題じゃね?どんだけコスト掛けてどんだけ不合格品を出してもいいなら全部最速爆速のL1でOK。あとL2ってCPUダイの外に出してたし。これもやはり歩留まり(と技術的な限界)が要因。
DRAMを外部記憶と呼ぶ時代になるのかなあ
不揮発性メモリに置き換わらないとちょっと…
アプリケーションからはNVDIMMが揮発性メモリに見えるのだろうな。
SRAMはロジックの微細化に合わせて順当に進化できたのですが、DRAMは15nmぐらいから先ほとんど進化できなくて止まってます。
その微細化できたという=下手したらDRAMより集積度の上がったSRAMをメインメモリにする訳にはいかないの?
あらゆるコストを無視すれば、まぁ、出来るんじゃないんですかね。そしてそこまでコストを掛けただけのメリットが、誰にでも体感できる(=意味がある)形で発揮されるんですかね?
半導体の面積として大差無ければ、DRAMもSRAMも似た様なコストにならないの?
「半導体の面積として大差無」いってのが空論DRAMとSRAMの面積あたりの容量の差が桁違いなので、少々SRAMの集積度が上がったところで、SRAMはDRAMを代替できる容量になりません。
7nmプロセスで42mm2のSRAMが256Mbit [impress.co.jp]ってぐらいなので、DRAMが1チップで16Gbitぐらいなのと比べると、容量が2桁少ないんです。
より多くのコメントがこの議論にあるかもしれませんが、JavaScriptが有効ではない環境を使用している場合、クラシックなコメントシステム(D1)に設定を変更する必要があります。
ナニゲにアレゲなのは、ナニゲなアレゲ -- アレゲ研究家
メモリボトルネックを解消するためかな (スコア:1)
シリコンが余っているからといって、キャッシュの階層を重ねすぎるのもどうかと。
Re:メモリボトルネックを解消するためかな (スコア:1)
シリコンが余っているからではなく必要に迫られてですよ。
DRAMの微細化も速度も消費電力も限界になってて、これ以上改善できなくなったから仕方なくやってる。
SRAMはロジックの微細化に合わせて順当に進化できたのですが、DRAMは15nmぐらいから先ほとんど進化できなくて止まってます。
DRAMもインターフェイス側の改良は続いていて、GDDRとかHBMとかで並列化によって帯域幅は向上できてるのですが、素子単体は改良できてないのでレイテンシが数十nsから速くなってないし消費電力も減ってない。
業界的にはMRAMなりPRAMなりの次世代メモリにバトンタッチする予定だったのが、どれも研究開発は出来ても実用化の壁に当たってモノになってない。
そこでCPUにはAMDの3D-VCacheのようにSRAMを積層してキャッシュ容量増やしたり、GPUでもNVIDIA、AMD共に最新世代では大容量SRAMキャッシュ追加してDRAMへのアクセス減らして性能改善してます。
Re: (スコア:0)
L1~L3増やせばよくない?
キャッシュ階層を増やすと同期大変だしTLBバグみたいな元になるし、データのコピーがL1~L4まで4重に居座ることになって、シリコンが勿体なくない?
素人考えなんだろうけどどうしても気になる。
Re:メモリボトルネックを解消するためかな (スコア:1)
簡単に言えば、容量を増やせば増やすほど低レイテンシ、低消費電力というキャッシュメモリの特性を維持できなくなるからです。
正確な理由は簡単ではないですが、容量が増えると物理的にサイズが大きくなるので距離が遠くなることと、アドレス変換のロスが重くなる。
容量を増やしても性能を維持できるなら、L1単体で大容量にすればいいのはその通り。
でも物理的な限界からそうできないから、仕方なく階層構造にしています。
Re: (スコア:0)
デバイスの設計上、高速のメモリほどセルサイズは大きく消費電力も大きくなり、大容量のメモリが遅くなるのは避けられない
トレードオフの問題を回避するためには、特性の異なるメモリを組み合わせた階層構造にせざるを得ない
という話は分かるが、ローエンドの組込プロセッサまでもシリコンが有り余ってARMやRISC-Vベースになりキャッシュがオマケについてくるのは止めてくれ.......
#8051コアで満足できる男です
Re: (スコア:0)
そんなにローエンドの組込プロセッサで満足できるなら、普通外付けメモリなんて無しでプロセッサ内蔵のSRAMだけでしょう?
アプリ側の都合もあるからCortex-Mの下位はキャッシュ無いし、シリコンが有り余ってキャッシュをおまけに付けるなんて事実はないと思うけど。
Re: (スコア:0)
近い階層のキャッシュ増やすと、検索に時間がかかって性能上がらんのじゃね?
L3増やせば、それは性能的にはL3なくしてL4積んだことにしかならないとか。
Re: (スコア:0)
CPUはメモリーを読み込んでないのでその辺は問題ない。
CPUが読み込んでいるメモリデータはブロック単位です。
ブロック単位で読み込んでブロック単位で書き込みをする…そんな仕組み
メモリアクセスの状況からどこを読んでいるかわからない。
必要とされる場所もしくは必要とされるであろう場所のブロックが読み込まれる。
そのためキャッシュの効果が上がる。
メモリーは並列読み込みで時間単位みかけで転送レートが上がればある程度は改善できる。
さらにCPUが早くなるのであれば、メモリー2枚差しじゃないと動かなくなるかもしれません。
Re: (スコア:0)
キャッシュ容量を上げた場合検索により時間がかかるようになったり本来キャッシュすべきではないものをキャッシュしやすくなるがまあそれでも速くはなるからな。
むしろ問題は高速なキャッシュほど高価というところらしい。
このまま行ったらハイエンドはそのうちCPUのキャッシュ階層が6段くらいになりさらにモジュール側にHBMがありその下にDDRがありその下にNVDIMMがありというふうになりそう。
今のシンプルな構成から比べると恐ろしく複雑。
そりゃ昔はCPUキャッシュもRAMもなかったかもしれんが…
Re: (スコア:0)
マザーボードに2ndキャッシュメモリボードを挿してた時代が懐かしい。
Re: (スコア:0)
げじげじ足のSRAMが刺さってた記憶ありますが、386まででしたっけ?
486でもあったかな?
Re: (スコア:0)
Pentiumでもチップセットにtriton辺りを使ったもので追加可能なものがあった。
NECのPC-9821Xa7はintelのチップセットじゃないけど、上位機種のXa9とかXa10が
標準搭載していたセカンドキャッシュがオプションだったり。
Re: (スコア:0)
DIPのSRAMをL2に使ってたのは概ね486世代までですかね?
FMVのある型番はDIPじゃなくてZIPで探すのにえらい苦労した記憶が。。
PentiumはPBSRAMからSOPかQFPになってたので、増設は専用モジュール基板だった。
Re: (スコア:0)
既に3階層になっているものを4階層に増やすという話はそこまで奇異だろうか
3階層のままで増やせばというなら、同じ理屈で1階層で十分だろとは思わない?
Re:メモリボトルネックを解消するためかな (スコア:1)
キャッシュ階層の数がラグランジュポイントの数を超えるのももうすぐだな。
Re: (スコア:0)
歩留まりの問題じゃね?
どんだけコスト掛けてどんだけ不合格品を出してもいいなら全部最速爆速のL1でOK。
あとL2ってCPUダイの外に出してたし。これもやはり歩留まり(と技術的な限界)が要因。
Re: (スコア:0)
DRAMを外部記憶と呼ぶ時代になるのかなあ
Re: (スコア:0)
不揮発性メモリに置き換わらないとちょっと…
Re: (スコア:0)
アプリケーションからはNVDIMMが揮発性メモリに見えるのだろうな。
Re: (スコア:0)
SRAMはロジックの微細化に合わせて順当に進化できたのですが、DRAMは15nmぐらいから先ほとんど進化できなくて止まってます。
その微細化できたという=下手したらDRAMより集積度の上がったSRAMをメインメモリにする訳にはいかないの?
Re: (スコア:0)
あらゆるコストを無視すれば、まぁ、出来るんじゃないんですかね。
そしてそこまでコストを掛けただけのメリットが、誰にでも体感できる(=意味がある)形で発揮されるんですかね?
Re: (スコア:0)
半導体の面積として大差無ければ、DRAMもSRAMも似た様なコストにならないの?
Re:メモリボトルネックを解消するためかな (スコア:1)
「半導体の面積として大差無」いってのが空論
DRAMとSRAMの面積あたりの容量の差が桁違いなので、少々SRAMの集積度が上がったところで、SRAMはDRAMを代替できる容量になりません。
7nmプロセスで42mm2のSRAMが256Mbit [impress.co.jp]ってぐらいなので、
DRAMが1チップで16Gbitぐらいなのと比べると、容量が2桁少ないんです。