Étape 1: Ce qui est SPI Flash mémoire ?
Je vais vous expliquer cette partie suivante douloureusement rapide. Mon premier emploi chez Intel était dans le groupe de mémoire flash en 1993 et beaucoup a changé grâce à la technologie dans les années 20, depuis lors, mais certaines notions sont toujours conformes.
Mémoire flash est un type de mémoire de stockage non volatile basée sur la technologie MOSFET. Non volatile signifie que l’appareil conserve sa valeur quand il n’est pas sous tension.
MOSFET
Si vous n’êtes pas familier avec la façon dont fonctionne un transistor MOSFET, je vais essayer de l’expliquer en une phrase : une galette de silicium avec deux bornes à chaque extrémité n’est pas conduire l’électricité si vous placez une différence de potentiel entre eux, mais si vous bâton un autre morceau de métal que dalle et sandwich un diélectrique entre elle et ensuite appliquer une tension pour ce morceau de métal il crée un champ et courant peut circuler entre les deux bornes. Les bornes sont appelés la source et drain, et le métal est appelé la porte. C’est une explication super simple qui bulldozes les 50 ans de la physique quantique, mais d’un Michael Farady point de vue, il est raisonnablement réalisable.
TRANSISTOR FLASH
Mémoire flash fonctionne par le dynamitage d’un tas de porteurs de charge sur le diélectrique entre la porte et le substrat. Cela s’appelle la programmationet est généralement effectuée avec une tension beaucoup plus élevée. En fait, il endommage le matériel et après 100k cycles de programme, la porte va échouer. Pour enlever la rom de porteurs de charge le diélectrique et tout aussi haute tension, mais le potentiel inverse, tire les transporteurs hors la porte. Il s’agit de l’effacement.
Un peu de flash programmé a la valeur 0 et un peu effacé possède la valeur 1, un octet de flash sont effacé est 0xFF en hexadécimal. (De nos jours, mémoire flash peut stocker plusieurs bits par cellule en utilisant plusieurs niveaux de tension, mais qui devient vraiment compliqué).
ARCHITECTURE FLASH
En règle générale, une mémoire flash contient un tableau géant de transistors qui peuvent être programmés individuellement, mais seulement effacé en groupes (secteurs, blocs ou la puce ensemble). C’est simplement un effet secondaire du fonctionne de la circuiterie Effacer : effacer par bit nécessiterait une trop grande densité du métal et n’est pas tout ce qu’utile (en pratique, l’effacement dans les plus grandes œuvres de morceaux très bien).
Comme un transistor unique de programmation est lente en raison de la montée en puissance cette haute tension et tous le contrôle qui va de pair avec qui, flash est généralement programmé en pages. Généralement un périphérique flash aura un petit tampon de page SRAM (256 bits), dont l’hôte sera tout d’abord rapidement remplir de données, puis l’hôte émet une commande d’écriture de page et la puce flash écrive tous les octets de la page dans un gros lots. Ce circuit lot amortit la latence d’écriture de démarrage sur un plus grand nombre de bits. Offrant deux ou plusieurs tampons de page permet à l’hôte à utiliser une technique de double tampon pour cacher de la latence d’écriture du périphérique flash.
SPI
Serial Peripheral Interface est une invention brillante. C’est une simple interface série qui utilise un chip select, une horloge, une données dans et un data OUT. Il existe plusieurs types de dispositifs SPI, comme c’est une interface très populaire, et tous les appareils SPI utilisent une bibliothèque commune : une fois que vous savez comment parler à un appareil SPI, vous pouvez parler à n’importe quel appareil SPI.
L’avantage de SPI est sa simplicité de logiciel, le code fondamentalement déplace des données dans et hors de la DI et broches respectivement, sur le front montant d’une horloge. Et l’horloge est contrôlé par l’hôte, il ne nécessite pas un circuit d’horloge fantaisie : les phases peuvent être aussi asymétriques que vous le souhaitez, aussi longtemps que vous respectez les exigences de largeur de cycle minimum de l’appareil.
SPI FLASH
Mémoire flash de SPI simplement combine le meilleur des deux mondes. Notez que les cartes SD utilisent SPI ainsi que cette puce discrete. Surprise ! L’interface de programmation n’est pas très différent, mais les instructions réelles et les horaires diffèrent.