LoginSignup
265
221

各種メモリ/ストレージのアクセス時間,所要クロックサイクル,転送速度,容量の目安

Last updated at Posted at 2020-06-14

各種メモリ/ストレージについて,2023年時点で標準的なアクセス時間,所要クロックサイクル,転送速度,容量を,各種カタログスペックを参考にまとめてみました.

レジスタ(レジスタファイル)

最近のCPUのレジスタ(register)のアクセスは,通常CPUの1クロックサイクルで完了します.2023年時点では,標準的なCPUのクロック周波数は,1〜4GHz程度のオーダーです.1GHzは1秒あたり10億回,すなわち1クロックサイクルは1ナノ秒です.

したがって,2023年時点では,レジスタには0.25〜1ナノ秒程度でアクセスできると言えます.

レジスタのメモリ容量は,レジスタファイルに存在するレジスタ数に依存します,これは命令で明示的に指定できるレジスタ数という解釈もありますが,レジスタ・リネーミングのようなプロセッサ技術を用いると,実際にはより多くのレジスタ数を持っていると解釈することもできます.

x86_64アーキテクチャでは,16本の64ビット汎用レジスタと,16本の128ビットXMM(SIMD)レジスタがあります(他にもYMMやZMMのレジスタがあります).なので,明示的に指定できる範囲のレジスタをメモリ容量に換算すると,汎用レジスタが128バイト換算,SIMDレジスタが256(XMM)〜2048(ZMM)バイト換算であると言えます.

ARMアーキテクチャでは,15本の32ビットもしくは31本の64ビットの汎用レジスタを持っています.なので,明示的に指定できる範囲のレジスタをメモリ容量に換算すると,60〜248バイト換算であると言えます.

RISC-Vアーキテクチャでは,標準的には31本の32ビットもしくは64ビットの汎用レジスタを持っています.なので,明示的に指定できる範囲のレジスタをメモリ容量に換算すると,124〜248バイト換算であると言えます.

1次キャッシュメモリ(L1キャッシュ)

1次キャッシュメモリ(level 1 (L1) cache memories)について,2022年で最も高性能な部類に入るCPUである,Intel Core i9-13900Kでは,4クロックサイクルでアクセスできます.

2023年時点では,L1キャッシュメモリへのアクセスは,だいたい4クロックサイクルで完了するのが標準的であると仮定し,標準的なCPUのクロック周波数を1〜4GHz程度であることを考慮すると,2022年時点では,L1キャッシュメモリへは1〜4ナノ秒程度でアクセスできると言えます.

2022年時点では,L1キャッシュメモリの容量は32KBもしくは64KB程度であるようです.

参考:

2次キャッシュメモリ(L2キャッシュ)

2次キャッシュメモリ(level 2 (L2) cache memories)について,2022年で最も高性能な部類に入るCPUである,Intel Core i9-13900Kでは,10クロックサイクルでアクセスできます.

2022年時点では,L2キャッシュメモリへのアクセスは,だいたい10〜15クロックサイクル程度で完了できるのが標準的であると仮定し,標準的なCPUのクロック周波数を1〜4GHz程度であることを考慮すると,2022年時点では,L2キャッシュメモリへは2.5〜15ナノ秒程度でアクセスできると言えます.

2022年時点では,L2キャッシュメモリの容量は512〜4MB程度であるようです.

参考:

3次キャッシュメモリ(L3キャッシュ)

最近の高速なマルチコアCPUには3次キャッシュメモリも搭載されています.

3次キャッシュメモリ(level 3 (L3) cache memories)について,2022年で最も高性能な部類に入るCPUである,Intel Core i9-13900Kでは,34クロックサイクル以内,10.27ナノ秒以内でアクセスできます.

2022年時点では,L3キャッシュメモリへのアクセスは,だいたい20〜80クロックサイクル以内程度で完了できるのが標準的であると仮定し,標準的なCPUのクロック周波数を1〜4GHz程度であることを考慮すると,2022年時点では,L3キャッシュメモリへは5〜80ナノ秒程度でアクセスできると言えます.

2023年時点では,L3キャッシュメモリの容量は16〜256MB程度であるようです.

参考:

メインメモリ (DDR5 SDRAM)

最近の高速な x86_64 アーキテクチャではメインメモリに DDR5 SDRAM を採用しています.

DDR5 SDRAM の最大動作周波数や転送速度については,Wikipedia にまとまっています.

DDR5だと遅延時間が短いそうです.下記によると13〜18ns程度のようです.

ただし,これは理論上の数値に過ぎないようです.下記記事によると,前述のInetl Core i9-13900K からアクセスした実測値だと86.8nsでした.

また,SDRAMについては,アクセスパターンによって所要クロックサイクル数が大きく異なります.前述の理論上の数値は,最良のパターンの場合にあり得るかも,くらいなのでしょうね.

メインメモリの容量は,1枚あたりの容量×メモリスロット数です.2023年時点で市販されているDDR5 SDRAM 1枚あたりの容量は,256GBのものが最大のようです.

メモリスロットには4枚組を一単位にして挿すことが多いです.確認した最大容量のDDR5 SDRAM搭載のマザーボードは8枚挿せるASUS Pro WS W790-ACEでした.

そこで2023年時点のメインメモリの容量は,おおよそ〜2TB程度くらいではないかと考えられます.

20230530追記: AWSにメインメモリが24TBものインスタンスがあるとの情報あり.またXeonで3TBのものがあるとのことでした.

また,複数枚数挿すことで,転送速度も向上しますが,本記事では考慮しませんでした.

SSD (NANDフラッシュメモリ)

市販されているSSDで最も高速な部類のものは,NVMe M.2 PCIe Gen5規格のもので,理論上,PCIe Gen5バスの最大転送速度で転送できます.一方,普及価格帯のSATA規格のものはSATA3.0規格で最大転送速度が6Gbpsです.

下記記事によるとNVMe M.2 PCIe Gen5のアクセス時間の実測値は88.7マイクロ秒(88,700ナノ秒)程度でした.

下記記事によるとNVMe M.2 PCIe Gen5のアクセス速度の実測値は11,000〜12,000MB/sとなっています.

下記の記事によると,アクセス時間の実測値は,SATA3.0のSSDで100〜200マイクロ秒(100,000〜200,000ナノ秒)程度ということです.一方,SATA3.0のSSD実効転送速度の実測値は,17〜500MB/s程度です.

容量については,2023年時点で,NVMeで最大2TB,SATAで最大4TBのものが市販されているようです.

またSSDや次のHDDの場合は,複数のSSDを組み合わせてRAIDを組むことで,最大容量を増やしたり転送速度を向上させたりできます.この記事ではその点を考察しませんでした.

HDD (ディスクドライブ)

HDDは,内部にキャッシュを装備していることがあり,また機械的な装置で動作することから,実効アクセス時間,シークタイム,サーチタイムといった,様々な計測値が取られます.

情報処理試験にも出るのですが,アクセスにかかる平均時間は,平均シークタイム+平均回転待ち時間+転送時間=平均シークタイム + 60/(回転数(rpm) * 2) + データ長 / 転送速度 です.

平均シークタイムの目安は数〜10数ミリ秒,回転数は5400〜15000rpm程度,転送速度はSATA3.0の場合6Gbpsです.

読み出し始めるのにだいたい10〜20数ミリ秒くらいはかかるというところのようです.

データ転送速度については,0.5〜200MB/s程度のようです.

容量についてですが,2023年時点で,3.5インチのもので250GB〜22TB程度のようです.

まとめ

2023年時点の各種メモリ/ストレージのアクセス時間,アクセス開始までの所要クロックサイクル,容量の目安は次のとおりです.

メモリ/ストレージの種類 アクセス時間 アクセス開始までの所要クロックサイクル 最大転送速度 容量
レジスタ 0.25〜1ナノ秒 1 205〜768Gbps換算 60〜256(2048)バイト換算
L1キャッシュ 1〜4ナノ秒 4程度 205〜768Gbps換算 32〜64KB
L2キャッシュ 2.5〜15ナノ秒 10〜15程度 205〜768Gbps程度? 512KB〜4MB
L3キャッシュ 6〜80ナノ秒 20〜80程度 205〜768Gbps程度? 16〜256MB
メインメモリ(DDR5) 80〜ナノ秒 80〜程度 205〜409Gbps程度 (1枚あたり)〜256GB
NVMe M.2 SSD (PCIe Gen5) 90マイクロ秒程度 90,000程度 〜96Gbps程度 (〜12,000MB/s程度) 〜2TB
SATA3.0 SSD 100〜200マイクロ秒程度 100,000〜800,000程度 0.14〜4Gbps程度 (17〜500MB/s程度) 〜4TB
SATA3.0 HDD (3.5inch) 10〜20数ミリ秒程度 10,000,000〜80,000,000程度 0.04〜1.6Gbps程度 (0.5〜200MB/s程度) 〜22TB

各種ハードウェアや,プログラミング言語処理系,OS等は,このような数値の目安を参考に設計するのが妥当でしょう.

265
221
6

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
265
221