# Single Inline Memory Module

Une SIMM, pour Single Inline Memory Module, est une format de barrette mémoire vive dynamique qui regroupe plusieurs puces mémoire, et ne se branche qu'au moyen d'une seule interface (par opposition à la DIMM).
Il peut exister en format 8 bits (très ancien) et 32 bits. Ces barrettes possèdent 30 ou 72 broches. Des formats non standards ont aussi pu être utilisés, par exemple pour le Macintosh IIfx.
Les SIMM ont été normalisées selon la norme JEDEC JESD-21C.
La plupart des anciennes cartes mères PC (PC 8088, XT et les premières AT) utilisaient des puces DRAM en boîtier DIP. À mesure que les capacités de la mémoire de l'ordinateur augmentaient, les modules de mémoire étaient utilisés pour économiser de l'espace sur la carte mère et faciliter l'extension de la mémoire. Au lieu de brancher huit ou neuf puces DIP simples, un seul module de mémoire supplémentaire était nécessaire pour augmenter la mémoire de l'ordinateur.

## Histoire

Les SIMM ont été inventés en 1982 par James J. Parker chez Zenith Microcircuits et le premier client de Zenith Microcircuits était Wang Laboratories.
Wang Laboratories a tenté de le breveter et a obtenu un brevet en avril 1987.
Ce brevet a été annulé par la suite lorsque Wang Laboratories a été accusé à plusieurs reprises de contrefaçon et il a ensuite été annoncé qu'il s'agissait de l'invention de Parker chez Zenith Microcircuits (the Elk Grove Village, filiale de Zenith Electronics Corporation, Illinois).
Le procès a ensuite été abandonné et le brevet a été libéré. Les modules de mémoire d'origine étaient fabriqués sur des substrats en céramique avec des puces "Flip Flip" 64K Hitachi et avaient des broches, c'est-à-dire un boîtier en ligne unique (SIP).
Il y avait une partie de 8 bits et une partie de 9 bits à 64K. Les broches étaient la partie la plus coûteuse du processus d'assemblage et Zenith Microcircuits, en collaboration avec Wang et Amp, a rapidement développé un connecteur sans pin. Plus tard, les modules ont été construits sur des substrats en céramique avec des puces en plastique et, plus tard, ils ont été fabriqués sur un matériau PCB standard.
Les modules SIMM utilisant des broches sont généralement appelés modules de mémoire SIP ou SIPP pour les distinguer des modules les plus courants utilisant des connecteurs de bord.
La première variante de SIMM a 30 broches et fournit 8 bits de données (plus un 9e bit de détection d'erreur dans les SIMM à parité). Ils ont été utilisés dans des micro-ordinateurs AT compatibles (basés sur 286, par exemple, Wang APC), basés sur le i386, basés sur i486, Macintosh Plus, Macintosh II, Quadra et Atari, et des mini-ordinateurs Wang VS.
La deuxième variante de SIMM a 72 broches et fournit 32 bits de données (36 bits avec parité et versions ECC). Ceux-ci sont apparus au début des années 1990 dans le IBM PS / 2, et plus tard dans les systèmes basés sur le i486, le Pentium, le Pentium Pro, les premiers Pentium II, et les puces contemporaines / concurrentes d'autres marques.
Au milieu des années 90, les SIMM à 72 broches avaient remplacé les SIMM à 30 broches dans les ordinateurs de nouvelle génération et commençaient à être remplacés par des DIMM.
Les ordinateurs PC non IBM tels que les stations de travail UNIX peuvent utiliser des modules SIMM non standard propriétaires. Le Macintosh IIfx utilise des SIMM non standard propriétaires avec 64 broches.
Les technologies DRAM utilisées dans les SIMM comprennent la mémoire FPM (Fast Page Mode, utilisée dans tous les modules à 30 broches et 72 broches précoces) et la Mémoire EDO à hautes performances (utilisée dans les modules à 72 broches plus récents en 1995).
En raison des différentes largeurs de bus de données des modules de mémoire et de certains processeurs, il est parfois nécessaire d'installer plusieurs modules en paires identiques ou en groupes de quatre identiques pour remplir une banque de mémoire. La règle générale est un système 286, 386SX, 68000 ou 68020/68030 bas de gamme (par ex. Atari, Mac LC) (utilisant un bus de données de 16 bits) qui nécessiterait deux SIMM à 30 broches pour une banque de mémoire. Sur les systèmes 386DX , 486 et full-spec 68020 à 68060 (par exemple Amiga 4000, Mac II) (bus de données 32 bits), quatre SIMM à 30 broches ou un SIMM à 72 broches sont nécessaires pour une banque de mémoire.
Sur les systèmes Pentium (largeur de bus de données de 64 bits), deux modules SIMM à 72 broches sont requis. Cependant, certains systèmes Pentium prennent en charge un "mode demi-banque", dans lequel le bus de données serait réduit à seulement 32 bits pour permettre le fonctionnement d'un SIMM unique. Réciproquement, certains systèmes 386 et 486 utilisent ce que l'on appelle "l'entrelacement de mémoire", qui nécessite deux fois plus de modules SIMM et double efficacement la bande passante.
Les premières douilles SIMM étaient des douilles à poussoir conventionnelles. Ceux-ci ont été rapidement remplacés par des douilles ZIF dans lesquelles le SIMM est inséré à un angle, puis incliné dans une position verticale. Pour en retirer un, les deux pinces métalliques ou plastiques à chaque extrémité doivent être tirées sur le côté, puis le SIMM doit être incliné vers l'arrière et retiré (les prises à profil bas ont quelque peu inversé cette convention, comme les SODIMM - les modules sont insérés "angle élevé", puis poussé vers le bas pour devenir plus affleurant avec la carte mère). Les premières prises utilisaient des clips de retenue en plastique qui se brisaient, de sorte que des clips en acier les remplaçaient.
Certains SIMM prennent en charge la détection de présence (PD). Les connexions sont faites à certaines des broches qui encodent la capacité et la vitesse de la SIMM, de sorte qu'un équipement compatible peut détecter les propriétés de la SIMM. PD SIMM peuvent être utilisés dans des équipements qui ne supportent pas PD; l'information est ignorée. Les SIMM standard peuvent facilement être convertis pour supporter le PD en installant des cavaliers, si les SIMM ont des pastilles de soudure pour le faire, ou en soudant des fils.

## SIMM à 30 broches

SIMM à 30 broches, capacité de 256 Ko. Deux emplacements SIMM à 30 broches sur une carte mère IBM PS/2 modèle 50.
Tailles standard : 256 Ko, 1 Mo, 4 Mo, 16 Mo
Les SIMMS à 30 broches ont 12 lignes d'adresse, ce qui peut fournir un total de 24 bits d'adresse. Avec une largeur de données de 8 bits, cela conduit à une capacité maximale absolue de 16 Mo pour les modules avec ou sans parité (la puce du bit de redondance supplémentaire ne contribue généralement pas à la capacité utile).
Module de mémoire SIMM à 30 broches :
| Pin # | Nom | Description du signal | Pin # | Nom | Description du signal |
| 1 | V $_{CC}$ | +5 VDC | 16 | DQ4 | Données 4 |
| 2 | / CAS | Strobe Adresse de colonne | 17 | A8 | Adresse 8 |
| 3 | DQ0 | Données 0 | 18 | A9 | Adresse 9 |
| 4 | A0 | Adresse 0 | 19 | A10 | Adresse 10 |
| 5 | A1 | Adresse 1 | 20 | DQ5 | Données 5 |
| 6 | DQ1 | Données 1 | 21 | /WE | Activation de l'écriture |
| 7 | A2 | Adresse 2 | 22 | V $_{SS}$ | Masse |
| 8 | A3 | Adresse 3 | 23 | DQ6 | Données 6 |
| 9 | V $_{SS}$ | Masse | 24 | A11 | Adresse 11 |
| dix | DQ2 | Données 2 | 25 | DQ7 | Données 7 |
| 11 | A4 | Adresse 4 | 26 | QP $^*$ | Sortie Parité des données |
| 12 | A5 | Adresse 5 | 27 | /RAS | Strobe Adresse de rangée |
| 13 | DQ3 | Données 3 | 28 | / CASP $^*$ | Strobe Adresse de colonne de parité |
| 14 | A6 | Adresse 6 | 29 | DP $^*$ | Entrée parité des données |
| 15 | A7 | Adresse 7 | 30 | V $_{CC}$ | +5 VDC |
$^*$Les broches 26, 28 et 29 ne sont pas connectées sur les SIMM sans parité.

## SIMM à 72 broches

DRAM EDO 72 broches SIMM Tailles standard : 1 Mo, 2 Mo, 4 Mo, 8 Mo, 16 Mo, 32 Mo, 64 Mo, 128 Mo (la norme définit également des modules 3,3 V avec des lignes d'adresses supplémentaires et jusqu'à 2 Go).
Avec 12 lignes d'adresse, qui peuvent fournir un total de 24 bits d'adresse, deux rangs de puces et une sortie de données sur 32 bits, la capacité maximale absolue est de 2 $^{27}$ = 128 Mo.
Module de mémoire SIMM à 72 broches 5 V :
| Pin # | Nom | Description du signal | Pin # | Nom | Description du signal |
| 1 | V $_{SS}$ | Masse | 37 | MDP1 $^*$ | Parité de données 1 (MD8..15) |
| 2 | MD0 | Données 0 | 38 | MDP3 $^*$ | Parité de données 3 (MD24..31) |
| 3 | MD16 | Données 16 | 39 | V $_{SS}$ | Masse |
| 4 | MD1 | Données 1 | 40 | / CAS0 | Adresse de colonne Strobe 0 |
| 5 | MD17 | Données 17 | 41 | / CAS2 | Adresse de colonne Strobe 2 |
| 6 | MD2 | Données 2 | 42 | / CAS3 | Adresse de colonne Strobe 3 |
| 7 | MD18 | Données 18 | 43 | / CAS1 | Adresse de colonne Strobe 1 |
| 8 | MD3 | Données 3 | 44 | / RAS0 | Adresse de ligne Strobe 0 |
| 9 | MD19 | Données 19 | 45 | / RAS1 $^†$ | Adresse de ligne Strobe 1 |
| dix | V $_{CC}$ | +5 VDC | 46 | NC | Pas connecté |
| 11 | NU [PD5 $^#$ ] | Non utilisé [Détection de présence 5 (3V3)] | 47 | /WE | Lecture / écriture activée |
| 12 | MA0 | Adresse 0 | 48 | NC [/ ECC $^#$ ] | Non connecté [Présence ECC (si mise à la terre) (3V3)] |
| 13 | MA1 | Adresse 1 | 49 | MD8 | Données 8 |
| 14 | MA2 | Adresse 2 | 50 | MD24 | Données 24 |
| 15 | MA3 | Adresse 3 | 51 | MD9 | Données 9 |
| 16 | MA4 | Adresse 4 | 52 | MD25 | Données 25 |
| 17 | MA5 | Adresse 5 | 53 | MD10 | Données 10 |
| 18 | MA6 | Adresse 6 | 54 | MD26 | Données 26 |
| 19 | MA10 | Adresse 10 | 55 | MD11 | Données 11 |
| 20 | MD4 | Données 4 | 56 | MD27 | Données 27 |
| 21 | MD20 | Données 20 | 57 | MD12 | Données 12 |
| 22 | MD5 | Données 5 | 58 | MD28 | Données 28 |
| 23 | MD21 | Données 21 | 59 | V $_{CC}$ | +5 VDC |
| 24 | MD6 | Données 6 | 60 | MD29 | Données 29 |
| 25 | MD22 | Données 22 | 61 | MD13 | Données 13 |
| 26 | MD7 | Données 7 | 62 | MD30 | Données 30 |
| 27 | MD23 | Données 23 | 63 | MD14 | Données 14 |
| 28 | MA7 | Adresse 7 | 64 | MD31 | Données 31 |
| 29 | MA11 | Adresse 11 | 65 | MD15 | Données 15 |
| 30 | V $_{CC}$ | +5 VDC | 66 | NC [/ EDO $^#$ ] | Non connecté [présence EDO (si mise à la terre) (3V3)] |
| 31 | MA8 | Adresse 8 | 67 | PD1 $^x$ | Détection de présence 1 |
| 32 | MA9 | Adresse 9 | 68 | PD2 $^x$ | Détection de présence 2 |
| 33 | / RAS3 $^†$ | Adresse de ligne Strobe 3 | 69 | PD3 $^x$ | Détection de présence 3 |
| 34 | / RAS2 | Adresse de ligne Strobe 2 | 70 | PD4 $^x$ | Détection de présence 4 |
| 35 | MDP2 $^*$ | Parité de données 2 (MD16..23) | 71 | NC [PD (réf.) $^#$ ] | Non connecté [Détection de présence (ref) (3V3)] |
| 36 | MDP0 $^*$ | Parité de données 0 (MD0..7) | 72 | V $_{SS}$ | Masse |
$^*$Les broches 35, 36, 37 et 38 ne sont pas connectées sur les SIMM sans parité.
$^†$ / RAS1 et / RAS3 ne sont utilisés que sur les SIMM à deux rangs : 2, 8, 32 et 128 Mo.
$^#$ Ces lignes ne sont définies que sur les modules 3,3 V.
$^x$Les signaux de détection de présence sont détaillés dans la norme JEDEC.

## SIMM propriétaires
### GVP 64 broches

Plusieurs cartes CPU de Great Valley Products pour le Commodore Amiga utilisaient des SIMM 64 broches spéciales (32 bits de large, 1, 4 ou 16 Mo, 60 ns).

### Apple 64 broches

Des SIMM 64 broches à double port ont été utilisés dans les ordinateurs Apple Macintosh IIfx pour permettre des cycles de lecture / écriture superposés (1, 4, 8, 16 Mo, 80 ns).
Module mémoire Mac IIfx SIMM 5V 64 broches :
| Pin # | Nom | Description du signal | Pin # | Nom | Description du signal |
| 1 | GND | Masse | 33 | Q4 | Bus de sortie de données, bit 4 |
| 2 | NC | Pas connecté | 34 | / W4 | Entrée d'écriture autorisée pour RAM IC 4 |
| 3 | + 5V | +5 volts | 35 | A8 | Bus d'adresse, bit 8 |
| 4 | + 5V | +5 volts | 36 | NC | Pas connecté |
| 5 | / CAS | Strobe Adresse de colonne | 37 | A9 | Bus d'adresse, bit 9 |
| 6 | D0 | Bus d'entrée de données, bit 0 | 38 | A10 | Bus d'adresse, bit 10 |
| 7 | Q0 | Bus de sortie de données, bit 0 | 39 | A11 | Bus d'adresse, bit 11 |
| 8 | / W0 | Entrée d'écriture autorisée pour RAM IC 0 | 40 | D5 | Bus d'entrée de données, bit 5 |
| 9 | A0 | Bus d'adresse, bit 0 | 41 | Q5 | Bus de sortie de données, bit 5 |
| 10 | NC | Pas connecté | 42 | / W5 | Entrée d'écriture autorisée pour RAM IC 5 |
| 11 | A1 | Bus d'adresse, bit 1 | 43 | NC | Pas connecté |
| 12 | D1 | Bus d'entrée de données, bit 1 | 44 | NC | Pas connecté |
| 13 | Q1 | Bus de sortie de données, bit 1 | 45 | GND | Masse |
| 14 | / W1 | Entrée d'écriture autorisée pour RAM IC 1 | 46 | D6 | Bus d'entrée de données, bit 6 |
| 15 | A2 | Bus d'adresse, bit 2 | 47 | Q6 | Bus de sortie de données, bit 6 |
| 16 | NC | Pas connecté | 48 | / W6 | Entrée d'écriture autorisée pour RAM IC 6 |
| 17 | A3 | Bus d'adresse, bit 3 | 49 | NC | Pas connecté |
| 18 | GND | Masse | 50 | D7 | Bus d'entrée de données, bit 7 |
| 19 | GND | Masse | 51 | Q7 | Bus de sortie de données, bit 7 |
| 20 | D2 | Bus d'entrée de données, bit 2 | 52 | / W7 | Entrée d'écriture autorisée pour RAM IC 7 |
| 21 | Q2 | Bus de sortie de données, bit 2 | 53 | / QB | Réservé (parité) |
| 22 | / W2 | Entrée d'écriture autorisée pour RAM IC 2 | 54 | NC | Pas connecté |
| 23 | A4 | Bus d'adresse, bit 4 | 55 | /RAS | Strobe d'adresse de ligne |
| 24 | NC | Pas connecté | 56 | NC | Pas connecté |
| 25 | A5 | Bus d'adresse, bit 5 | 57 | NC | Pas connecté |
| 26 | D3 | Bus d'entrée de données, bit 3 | 58 | Q | Sortie de contrôle de parité |
| 27 | Q3 | Bus de sortie de données, bit 3 | 59 | / WWP | Mauvaise parité en écriture |
| 28 | / W3 | Entrée d'écriture autorisée pour RAM IC 3 | 60 | PDCI | Entrée de chaîne en marguerite |
| 29 | A6 | Bus d'adresse, bit 6 | 61 | + 5V | +5 volts |
| 30 | NC | Pas connecté | 62 | + 5V | +5 volts |
| 31 | A7 | Bus d'adresse, bit 7 | 63 | PDCO | Sortie de chaîne en marguerite |
| 32 | D4 | Bus d'entrée de données, bit 4 | 64 | GND | Masse |
* Barrette SIMM 30 broches d’un Atari STE, 256 kio.
* Barrette d’1 Mio.
* Emplacement mémoire 30 broches, sur un Atari STE.