SIMM(しむ、 Single In-line Memory Module )とは、パーソナルコンピュータで RAM として使われるメモリモジュールの一種である。現在主流である DIMM とは異なり、SIMM の接点はモジュールの両面で冗長化されている。
最も初期の PC マザーボード(8088 ベースの PC や XT など)では、DIP チップをソケットに嵌め込むようになっていた。80286 ベースの PC/AT では記憶量が大幅に増え、マザーボードのスペースを節約したり簡単にメモリ増設できるように、メモリモジュールが使われるようになった。メモリを増やすには、それまでは 8個か9個の DRAM チップを挿し込まねばならなかったのが、メモリモジュールを1枚追加するだけで済むようになった。80286 ベースのコンピュータの中には(非標準の)SIPP (single in-line pin package) メモリモジュールを使うものもあったが、SIPP の 30本のピンが挿入時に折れたり壊れたりすることが多かったため、ピンではなく接点プレートを採用している SIMM への置き換えが急速に進んだ。
SIMM を考案したのは IBM に在籍していた Skip Coppola で、1980年代中頃の PS/2 で初めて採用された。これにより、いくつかの問題が解決された。例えば、マザーボードの面積の問題(チップをソケットに取り付けるよりも、占有面積が遥かに少なくて済む)や、メモリ容量の急激な進化の問題(特定の RAM チップに対応するソケットを備えたマザーボードは、すぐに時代遅れとなる)である。また、メーカー(この場合は IBM)が RAM チップを調達するのに、そのベンダーが変わったり、チップのパッケージが変わったりしても、中間基板である SIMM で互換性を保つことができる。SIMM基板の製造は、IBMの他にキングストンテクノロジーなどがいち早く参入した。
初期の SIMM は、30ピンの8ビット データ(パリティ付きでは 9ビット)だった。MC68040 や 80486 のようなプロセッサでは32ビットデータバスのため、30ピンの SIMM を使うマザーボードであれば 4枚セットでインストールする必要があった。
二世代目の SIMM は、72ピンの 32ビットデータ(パリティ付きでは36ビット)で、1990年代の前半頃に 30ピン SIMM から 72ピン SIMM へ移行した。
Macintosh IIfx では、非標準の 64ピン SIMM が使われていた。30ピン SIMM, 256kb
前述のようにデータバス幅がメモリモジュールとプロセッサで異なっている場合には、同じペアもしくは4枚のモジュールでメモリバンクを埋めなければならないことがある。例えば、データバス幅が32ビットの 80386 や 80486 のシステムでは、1つのメモリバンクに対して 30ピン SIMM を4枚か、72ピン SIMM を1枚が必要となる。データバス幅が64ビットの Pentium システムや PowerPC システムでは、72ピン SIMM が2枚必要である。これはメモリコントローラの仕様に依存するため、製品によっては例外もある。
初期の SIMM ソケットは、従来からあった挿し込み型のソケットだった。しかし、すぐに、挿し込んでから回転させてロックする ZIF ソケット (Zero insertion force) が使われるようになった。SIMM を取り付ける場合、ある角度でソケットに置いて、所定の位置まで回転させる。取り外す場合は、両端にある金属またはプラスチック製のクリップを横に動かしてロックを外し、SIMM を傾けて引っ張り出す。初期のソケットではプラスチック製のクリップが使われていたが、これは壊れやすかったため、金属製クリップも使われるようになった。しかし安価なプラスチック製クリップのソケットも製品によっては使われ続けた。
SIMM 上の DRAM には、EDO (Extended Data Out) や FPM (Fast Page Mode) が使われている。
SIMM は、JEDEC の JESD-21C で標準化されている。 30ピン SIMM メモリモジュールピン番号名称信号 72ピン ECC SIMM メモリモジュールピン番号パリティ無しパリティ付き信号 72ピン ECC無し SIMM メモリモジュールピン番号パリティ無しパリティ付き信号
代表的なメモリサイズ
30ピン SIMM
256KB, 1MB, 4MB, 16MB
72ピン SIMM
1MB, 2MB, 4MB, 8MB, 16MB, 32MB, 64MB, 128MB
ピン配列
1VCC+5VDC
2CASColumn Address Strobe
3DQ1Data 0
4A0Address 0
5A1Address 1
6DQ2Data 1
7A2Address 2
8A3Address 3
9VSSGround
10DQ3Data 2
11A4Address 4
12A5Address 5
13DQ4Data 3
14A6Address 6
15A7Address 7
16DQ5Data 4
17A8Address 8
18A9Address 9
19A10Address 10
20DQ6Data 5
21WWrite Enable
22VSSGround
23DQ7Data 6
24NCNo Internal Connection
25DQ8Data 7
26NCNo Internal Connection
27RASRow Address Strobe
28NCNo Internal Connection
29NCNo Internal Connection
30VCC+5VDC
1VSSVSSGround
2DQ0DQ0Data 0
3DQ1DQ1Data 1
4DQ2DQ2Data 2
5DQ3DQ3Data 3
6DQ4DQ4Data 4
7DQ5DQ5Data 5
8DQ6DQ6Data 6
9DQ7DQ7Data 7
10VCCVCC+5 VDC
11PD1PD1Presence Detect 1
12A0A0Address 0
13A1A1Address 1
14A2A2Address 2
15A3A3Address 3
16A4A4Address 4
17A5A5Address 5
18A6A6Address 6
19A10A10Address 10
20n/cPQ8Data 8 (Parity 1)
21DQ9DQ9Data 9
22DQ10DQ10Data 10
23DQ11DQ11Data 11
24DQ12DQ12Data 12
25DQ13DQ13Data 13
26DQ14DQ14Data 14
27DQ15DQ15Data 15
28A7A7Address 7
29A11A11Address 11
30VCCVCC+5 VDC
31A8A8Address 8
32A9A9Address 9
33/RAS3RAS3Row Address Strobe 3
34/RAS2RAS2Row Address Strobe 2
35DQ16DQ16Data 16
36n/cPQ17Data 17 (Parity 2)
37DQ18DQ18Data 18
38DQ19DQ19Data 19
39VSSVSSGround
40/CAS0CAS0Column Address Strobe 0
41/CAS2CAS2Column Address Strobe 2
42/CAS3CAS3Column Address Strobe 3
43/CAS1CAS1Column Address Strobe 1
44/RAS0RAS0Row Address Strobe 0
45/RAS1RAS1Row Address Strobe 1
46A12A12Address 12
47/WEWERead/Write
48A13A13Address 13
49DQ20DQ20Data 20
50DQ21DQ21Data 21
51DQ22DQ22Data 22
52DQ23DQ23Data 23
53DQ24DQ24Data 24
54DQ25DQ25Data 25
55n/cPQ26Data 26 (Parity 3)
56DQ27DQ27Data 27
57DQ28DQ28Data 28
58DQ29DQ29Data 29
59DQ31DQ31Data 31
60DQ30DQ30Data 30
61VCCVCC+5 VDC
62DQ32DQ32Data 32
63DQ33DQ33Data 33
64DQ34DQ34Data 34
65n/cPQ35Data 35 (Parity 4)
66PD2PD2Presence Detect 2
67PD3PD3Presence Detect 3
68PD4PD4Presence Detect 4
69PD5PD5Presence Detect 1
70PD6PD6Presence Detect 6
71PD7PD7Presence Detect 7
72VSSVSSGround
1VSSVSSGround
2DQ0DQ0Data 0
3DQ16DQ18Data 16 / Data 18
4DQ1DQ1Data 1
5DQ17DQ19Data 17 / Data 19
6DQ2DQ2Data 2
7DQ18DQ20Data 18 / Data 20
8DQ3DQ3Data 3
9DQ19DQ21Data 19 / Data 21
10VCCVCC+5 VDC
11n/cn/c
12A0A0Address 0
13A1A1Address 1
14A2A2Address 2
15A3A3Address 3
16A4A4Address 4
17A5A5Address 5
18A6A6Address 6
19A10A10Address 10
20DQ4DQ4Data 4
21DQ20DQ22Data 20 /Data 22