# Maskenprogrammierung

Die Maskenprogrammierung bezeichnet das Erzeugen des vom Anwender gewünschten Dateninhalts eines Festwertspeichers (ROM) mittels einer oder mehrerer Masken durch den Halbleiterhersteller. Je nach Aufbau der Speicherzelle eines ROMs erfolgt die Programmierung entweder über die letzte Verdrahtungsmaske (Metallisierung), über Masken zum Einstellen der Dicke des Gateoxids oder über Ionenimplantation.

## Festlegen des Dateninhalts durch den Anwender

Klassische Bauelemente waren in der Vergangenheit ROM-Speicherbauelemente, in denen beispielsweise kleinere Betriebssysteme oder Applikationsprogramme gespeichert wurden. Weiterhin können Mikroprozessoren oder anwendungsspezifische integrierte Schaltung (ASICs), die einen Festwertspeicher besitzen, ebenfalls in dieser Technologie realisiert werden. Grundsätzlich können auch programmierbare Logikbauelemente wie Field Programmable Gate Arrays (FPGAs) oder Programmable Logic Device (PLDs) in dieser Technologie realisiert werden.
Der Anwender entwickelt den Dateninhalt für das Bauelement zusammen mit dem Halbleiterhersteller und stellt dem Halbleiterhersteller den Dateninhalt (meist in elektronischer Form) zur Verfügung.
Der Halbleiterhersteller produziert in der Halbleiterfabrik einheitliche Grundbauelemente bis zum Programmierschritt. Erst im nachfolgenden Programmierschritt wird der individuelle Dateninhalt des Anwenders in das Bauelement programmiert. Anschließend durchlaufen die jetzt programmierten Bauelemente den weiteren einheitlichen Produktionsdurchlauf bis zur Fertigstellung.

## Stückzahlen und Herstellungskosten

Die Herstellung von maskenprogrammierten Bauelementen ist nur bei einer sehr großen Stückzahl wirtschaftlich. Weiterhin ist zu berücksichtigen, dass auf einem Wafer viele tausende oder zehntausende einzelne Bauelemente enthalten sind. Für den Halbleiterhersteller ist meist nur die Produktion einer Vielzahl von einzelnen Wafern wirtschaftlich.
Dies ist nur kostengünstig möglich, wenn ein hoher Bedarf an ROMs mit gleichem Dateninhalt besteht. Der Halbleiterhersteller benötigt zur Produktion der Bauelemente individuelle Masken. Diese Masken werden entsprechend dem vom Anwender erstellten Dateninhalt hergestellt. Diese individuellen Masken sind meist sehr teuer und müssen vom Anwender bezahlt werden. Die Bezahlung der Masken erfolgt entweder direkt als Einmalzahlung oder die Kosten werden den produzierten Bauelementen aufgeschlagen.
Bei der Produktion von Baugruppen kann der Anwender auf die Programmierung des Bauelements verzichten und spart somit die Ausgaben für den Programmierprozess. Unter Berücksichtigung der Herstellungskosten (Einmalkosten für Masken und Stückkosten pro Bauelement) beim Halbleiterhersteller und den Einsparungen bei der Baugruppenproduktion ergeben sich bei größeren Stückzahlen Kostenvorteile.

## Realisierungsdauer und Änderungen

Wenn eine Änderung des Dateninhalts erforderlich ist, müssen beim Halbleiterhersteller neue Masken hergestellt werden. Weiterhin müssen erst neue Bauelemente mit dem geänderten Dateninhalt produziert werden. Die Durchlaufdauer durch die Halbleiterfabrik liegt im Bereich von wenigen Tagen bis zu wenigen Wochen. Erst danach sind die Bauelemente mit geändertem Dateninhalt für den Kunden verfügbar.

## Nachteile

Der Dateninhalt von maskenprogrammierten Bauelementen kann nachträglich nicht mehr geändert werden. Wenn diese Bauelemente einen Datenfehler enthalten, sind diese meist wertlos und können vom Anwender nicht mehr weiter verwendet werden. Weiterhin ist bei einer Fehlfunktion der Baugruppen ein Update des Dateninhalts nicht mehr möglich. In diesem Fall hilft nur der Tausch des Bauelements (entweder auslöten oder Austausch von gesockelten Bauelementen). Hierbei besteht das Risiko, dass bereits ausgelieferte Baugruppen an Kunden zur Nacharbeit zurückgerufen werden müssen.

## Vorteil

Der oben genannte Nachteil, kann, je nach Anwendungsfall, auch einen Vorteil ergeben. Ist der Datenträger einmal beschrieben ist jegliche Manipulation der Daten ausgeschlossen. Somit kann vollständige Datenintegrität, welche einen wichtigen Sicherheitsaspekt darstellt, sichergestellt werden.

## Alternativen

Zu maskenprogrammierten Bauelementen können Flash-EEPROM, EEPROMs oder batteriegepufferte RAM-Speicherbauelemente eine Alternative sein. Im Punkt Änderung des Dateninhalts sind alle 3 Bauelementarten immer eine Alternative, denn bei diesen Bauelementen kann der Dateninhalt nachträglich geändert werden.
Eine mit der Maskenprogrammierung verwandte Technologie sind einmalprogrammierbare Bauelemente One Time Programmable. Die Bauelemente können nur einmal programmiert werden. Im Gegensatz zur Maskenprogrammierung können diese Bauelemente jedoch beim Anwender programmiert werden.