DD245068B1 - ARRANGEMENT FOR CHECKING WRITE STORES - Google Patents
ARRANGEMENT FOR CHECKING WRITE STORESInfo
- Publication number
- DD245068B1 DD245068B1 DD28523585A DD28523585A DD245068B1 DD 245068 B1 DD245068 B1 DD 245068B1 DD 28523585 A DD28523585 A DD 28523585A DD 28523585 A DD28523585 A DD 28523585A DD 245068 B1 DD245068 B1 DD 245068B1
- Authority
- DD
- German Democratic Republic
- Prior art keywords
- memory
- inverting
- address
- bus
- driver
- Prior art date
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/16—Error detection or correction of the data by redundancy in hardware
- G06F11/1666—Error detection or correction of the data by redundancy in hardware where the redundant component is memory or memory area
- G06F11/167—Error detection by comparing the memory output
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C29/00—Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
- G11C29/70—Masking faults in memories by using spares or by reconfiguring
- G11C29/74—Masking faults in memories by using spares or by reconfiguring using duplex memories, i.e. using dual copies
Description
Die Erfindung betrifft eine Anordnung zur Prüfung von Schreib-Lese-Speichern auf richtige Arbeitsweise. Sie findet Anwendung in elektronischen Einrichtungen, bei denen der sichere Betrieb von der fehlerfreien Funktion des Schreib-Lese-Speichers abhängig ist, z.B. Steuerungseinrichtungen, bei denen Rechnern sicherheitsrelevante Funktionen übertragen werden.The invention relates to an arrangement for testing read-write memories for proper operation. It finds application in electronic devices in which the safe operation depends on the correct functioning of the read-write memory, e.g. Control devices in which computers security-related functions are transmitted.
Es sind zahlreiche Lösungen zur Prüfung von Schreib-Lese-Speichern hinsichtlichThere are numerous solutions for checking read-write memories regarding
- Fehler der Schreib-Lese-Einrichtung,- error of the read-write device,
- Fehler in der Adressierung und- Error in addressing and
- Ausfälle und Datenverfälschungen - Failures and data corruption
bekannt (Hölscher, Rader: Mikrocomputer in der Sicherheitstechnik, Verlag TÜV Rheinland, Köln 1984).known (Hölscher, Rader: microcomputer in security technology, Verlag TÜV Rheinland, Cologne 1984).
Diese lassen sich in zwei Gruppen untergliedern:These can be divided into two groups:
1. Überprüfung der Arbeitsweise mit Hilfe spezieller Prüfprogramme, die den Speicher mit einem nur der Prüfung dienenden Inhalt belegen bzw. eine Prüfsumme berechnen.1. Verification of the method of operation with the help of special test programs, which occupy the memory with a content that serves only as a test or calculates a checksum.
2. Doppelte Ausführung des Schreib-Lese-Speichers und Vergleich der Inhalte.2. Double execution of read-write memory and comparison of contents.
Die Anwendung spezieller Prüfprogramme führt zu einem erheblichen Zeitaufwand für die Prüfung, der nicht für alle Anwendungsfälle akzeptabel ist.The application of special test programs results in a considerable amount of time for the test, which is not acceptable for all applications.
Bei der doppelten Ausführung des Schreib-Lese-Speichers und Prüfung durch Vergleich der Inhalte sind die Zeitprobleme lösbar. Dabei gibt es wiederum zwei Möglichkeiten:In the dual execution of the read-write memory and checking by comparing the contents of the time problems are solvable. There are two possibilities:
1. Doppelter Schreib-Lese-Speicher mit Hardware-Vergleich. Für diese Variante ist einefehlersichere Ausführung des Hardware-Vergleiches bzw. dessen zyklische Überprüfung erforderlich.1. Double read-write memory with hardware comparison. For this variant, an error-proof execution of the hardware comparison or its cyclic checking is required.
2. Doppelter Schreib-Lese-Speicher mit Software-Vergleich. Hierbei wird der Programmablauf durch die notwendigen zusätzlichen Befehle für die doppelte Abspeicherung aller Daten stark belastet. Dieser Aufwand übersteigt den für die zyklische Abarbeitung des noch notwendigen Vergleichsprogrammes erforderlichen Aufwand.2. Double read-write memory with software comparison. Here, the program flow is heavily loaded by the necessary additional commands for the double storage of all data. This effort exceeds the effort required for the cyclical execution of the still necessary comparison program.
Ziel der Erfindung ist die Schaffung einer Anordnung zur Prüfung von Schreib-Lese-Speichern, die eine Überprüfung der Funktionsweise mit geringem Zeitaufwand und ohne starke Belastung des Programmablaufs gestattet.The aim of the invention is to provide an arrangement for testing of read-write memories, which allows a review of the operation with little time and without heavy load on the program flow.
Die Aufgabe der Erfindung ist die Schaffung einer Anordnung zur Prüfung von Schreib-Lese-Speichern nach dem Prinzip des doppelten Schreib-Lese-Speichers mit Software-Vergleich, die die prüfgerechte Abspeicherung der Daten übernimmt und dadurch den Programmablauf von zusätzlichen Befehlen für diese Aufgabe entlastet.The object of the invention is to provide an arrangement for testing of read-write memories on the principle of double read-write memory with software comparison, which takes over the test-compliant storage of the data and thereby relieves the program flow of additional commands for this task ,
Ausgegangen wurde von einer Anordnung mit zwei Speichern, bei denen Daten sowohl in den ersten Speicher als auch gleichzeitig invertiert in den zwe'iten Speicher eingeschrieben werden. Das Lesen der Daten erfolgt getrennt für beide Speicher, wobei die Daten des zweiten Speichers invertiert auf dem Datenbus erscheinen.The starting point was an arrangement with two memories, in which data are written both into the first memory and simultaneously inverted in the second memory. The reading of the data is done separately for both memories, whereby the data of the second memory appear inverted on the data bus.
Die Aufgabe wird erfindungsgemäß gelöst, indem der zweite Speicher beim Speicherbeschreiben mit der gleichen Adresse wie der erste, beim Speicherlesen jedoch mit einer nur ihm zugeschriebenen Adresse adressiert wird. Die Anordnung übernimmt die Invertierung aller unmittelbar an den zweiten Speicher angeschlossenen Adressen beim Schreiben, während beim Lesen diese Invertierung nicht stattfindet. Dadurch ist für den Vergleichsvorgang ein maximaler Hamming-Abstand der Adressen für die beiden zu vergleichenden Datenwerte gegeben.The object is achieved according to the invention by addressing the second memory in memory writing with the same address as the first one, while reading memory, however, with an address attributed only to it. The arrangement takes over the inversion of all addresses directly connected to the second memory when writing, while reading this inversion does not take place. As a result, a maximum Hamming distance of the addresses for the two data values to be compared is given for the comparison process.
Indem eine hochwertige Prüfung der Adressierung einbezogen ist, wird eine wesentliche Erhöhung der Wertigkeit bei der Prüfung von Schreib-Lese-Speichern erreicht.By including a high-quality addressing check, a significant increase in significance is achieved in the test of read-write memories.
Die erfindungsgemäße Anordnung zur Prüfung von Schreib-Lese-Speichern ist dadurch gekennzeichnet, daß niederwertige Leitungen eines Adreßbus mit den Adreßeingängen des ersten Speichers und den Eingängen eines invertierenden Treibers und eines nichtinvertierenden Treibers und höherwertige Leitungen des Adreßbus mit den Eingängen eines Adreßdecoders verbunden sind, daß die Ausgänge der Treiber über Adreßleitungen mit den Adreßeingängen des zweiten Speichers verbundenThe arrangement according to the invention for testing read-write memories is characterized in that low-order lines of an address bus are connected to the address inputs of the first memory and the inputs of an inverting driver and a non-inverting driver and higher-order lines of the address bus to the inputs of an address decoder the outputs of the drivers are connected via address lines to the address inputs of the second memory
Weiterhin sind von einem Steuerbus Steuerleitungen für den Speicherzugriff zum Adreßdecoder, Steuerleitungen für Schreiben und Steuerleitungen für Lesen zur Steuerlogik und die Steuerleitung für Schreiben zusätzlich auf die Schreibeingänge der Speicher geführt.Furthermore, control lines for memory access to the address decoder, control lines for writing and control lines for reading to the control logic and the control line for writing are additionally routed to the write inputs of the memories by a control bus.
Ein Ausgang des Adreßdecoders ist über eine Steuerleitung mit der Steuerlogik verbunden und eine zweite Steuerleitung verbindet einen weiteren Ausgang des Adreßdecoders mit einem Eingang der Steuerlogik und einem Bausteinfreigabeeingang des ersten Speichers. Die Ausgänge der Steuerlogik sind über eine Steuerleitung mit dem Ausgangsfreigabeeingang des nichtinvertierenden Treibers, über eine Steuerleitung mit dem Ausgangsfreigabeeingang des invertierenden Treibers sowie über eine Steuerleitung mit dem Bausteinfreigabeeingang des Speichers verbunden.An output of the address decoder is connected to the control logic via a control line, and a second control line connects another output of the address decoder to an input of the control logic and a block enable input of the first memory. The outputs of the control logic are connected via a control line to the output enable input of the non-inverting driver, via a control line to the output enable input of the inverting driver, and via a control line to the device enable input of the memory.
Die gefundene Anordnung arbeitet wie folgt:The found arrangement works as follows:
Vom Adreßbus wird die der Speicherkapazität des zu prüfenden Schreib-Lese-Speichers entsprechende Anzahl niederwertiger Adreßleitungen direkt mit dem ersten Speicher verbunden, während diese gleichen Leitungen an den zweiten Speicher über je einen über ein Ausgangsfreigabesignal steuerbaren invertierenden sowie einen nichtinvertierenden Treiber mit Dreizustandsverhalten führen.From the address bus, the number of low-order address lines corresponding to the memory capacity of the read-write memory is directly connected to the first memory, while these same lines lead to the second memory via one invertible and one non-inverting driver with three-state behavior via an output enable signal.
Die verbleibenden höherwertigen Adreßleitungen gelangen mit dem Speicherzugriffssteuersignal an einen Adreßdecoder, der damit je ein dem ersten bzw. zweiten Speicher zugeordnetes Bausteinfreigabesignal bereitstellt. Das Bausteinfreigabesignal für den ersten Speicher wird diesem direkt zugeführt und gelangt mit dem Bausteinfreigabesignal für den zweiten Speicher sowie den Steuersignalen für Schreiben und Lesen an die Steuerlogik.The remaining high-order address lines arrive with the memory access control signal to an address decoder, which thus provides each one of the first and second memory associated block enable signal. The block enable signal for the first memory is supplied directly to the latter and passes to the control logic with the block enable signal for the second memory and the control signals for write and read.
Die Steuerlogik aktiviert im Falle eines Speicherschreibvorganges des ersten Speichers den invertierenden Adreßtreiber, den zweiten Speicher über dessen Bausteinfreigabeeingang und den invertierenden Bustreiber. Damit wird ein in den ersten Speicher eingeschriebenes Datenwort gleichzeitig invertiert und unter der invertierten niederwertigen Adresse in den zweiten Speicher eingeschrieben.In the case of a memory write operation of the first memory, the control logic activates the inverting address driver, the second memory via its block enable input and the inverting bus driver. Thus, a data word written in the first memory is simultaneously inverted and written in the second memory at the inverted low-order address.
Einen Lesezugriff auf den zweiten Speicher gestattet die Steuerlogik nur unter de durch die Belegung der höherwertigen Adreßleitungen vorgegebenen spezifischen Adresse des zweiten Speichers. Beim Lesezugriff zum zweiten Speicher aktiviert die Steuerlogik adreß- und datenseitig die nichtinvertierenden Treiber. Damit ist für den sich anschließenden Vergleichsvorgang der maximale Hamming-Abstand hinsichtlich des Datenwortinhaltes und seiner Adresse gegeben.A read access to the second memory allows the control logic only under de by the assignment of the higher-order address lines predetermined specific address of the second memory. During read access to the second memory, the control logic activates the non-inverting drivers on the address and data sides. Thus, the maximum Hamming distance with respect to the data word content and its address is given for the subsequent comparison process.
Ausführungsbeispielembodiment
Die erfindungsgemäße Lösung soll anhand eines möglichen Ausführungsbeispieles in Verbindung mit der Zeichnung näher erläutert werden.The solution according to the invention will be explained in more detail with reference to a possible embodiment in conjunction with the drawings.
In der zugehörigen Zeichnung wird die Anordnung zur Prüfung von Schreib-Lese-Speichern dargestellt. Die Anordnung besteht aus einem ersten und einem zweiten Speicher 1,2, einem invertierenden Treiber 5 und einem nichtinvertierenden Treiber 6, einem Adreßdekoder 7, einer Steuerlogik 10, einem nichtinvertierenden 4 und einem invertierenden Bustreiber 3 sowie aus Busleitungen 11-15,24,25 und Steuerleitungen 8,9,16-23.In the accompanying drawing, the arrangement for testing read-write memories is shown. The arrangement consists of a first and a second memory 1,2, an inverting driver 5 and a non-inverting driver 6, an address decoder 7, a control logic 10, a non-inverting 4 and an inverting bus driver 3 and bus lines 11-15,24,25 and control lines 8,9,16-23.
Die niederwertigen Leitungen 14 vom Adreßbus 12 sind mit den Adreßeingängen des ersten Speichers 1, den Eingängen des nichtinvertierenden Treibers 6 und den Eingängen des invertierenden Treibers 5 verbunden. Die Ausgänge der Treiber 5,6 führen über Adreßleitungen 24 an die Adreßeingänge des zweiten Speichers 2. Die Datenanschlüsse des ersten Speichers 1 gelangen direkt an den Datenbus 11. Die Datenleitungen 25 des zweiten Speichers 2 führen an die Eingänge des nichtinvertierenden Bustreibers 4 und an die Ausgänge des invertierenden Bustreibers 3. Die Ausgänge des nichtinvertierenden Bustreibers 4 und die Eingänge des invertierenden Bustreibers 3 sind mit dem Datenbus 11 verbunden. Die höherwertigen Leitungen 15 vom Adreßbus 12 sowie die Steuerleitung 16 für den Speicherzugriff gelangen an den Adreßdecoder 7. Eine Ausgangsleitung 9 des Adreßdecoders 7 führt zur Steuerlogik 10, während eine zweite Ausgangsleitung 8 des Adreßdecoders 7 sowohl an der Steuerlogik 10 als auch am Bausteinfreigabeeingang des ersten Speichers 1 angeschlossen ist. An die Logik 10 führen außerdem die Steuerleitungen für Schreiben 17 und Lesen 18 vom Steuerbus 13. Die Steuerleitung für Schreiben 17 ist mit den Schreibeingängen des ersten 1 und des zweiten Speichers 2 verbunden.The low-order lines 14 from the address bus 12 are connected to the address inputs of the first memory 1, the inputs of the non-inverting driver 6 and the inputs of the inverting driver 5. The outputs of the drivers 5,6 lead via address lines 24 to the address inputs of the second memory 2. The data terminals of the first memory 1 go directly to the data bus 11. The data lines 25 of the second memory 2 lead to the inputs of the non-inverting bus driver 4 and to the Outputs of the inverting bus driver 3. The outputs of the non-inverting bus driver 4 and the inputs of the inverting bus driver 3 are connected to the data bus 11. An output line 9 of the address decoder 7 leads to the control logic 10, while a second output line 8 of the address decoder 7 both the control logic 10 and the block enable input of the first Memory 1 is connected. To the logic 10 also lead the control lines for write 17 and read 18 from the control bus 13. The control line for writing 17 is connected to the write inputs of the first 1 and the second memory 2.
Von der Steuerlogik 10 führt eine Steuerleitung 19 zum Ausgangsfreigabeeingang des nichtinvertierenden Treibers 6, eine Steuerleitung 20 zum Ausgangsfreigabeeingang des invertierenden Treibers 5, eine weitere Steuerleitung 21 zumFrom the control logic 10, a control line 19 leads to the output enable input of the non-inverting driver 6, a control line 20 to the output enable input of the inverting driver 5, another control line 21 to
Bausteinfreigabeeingahg des zweiten Speichers 2, eine Steuerleitung 22 an den Ausgangsfreigabeeingang des nichtinvertierenden Bustreibers 4 und eine letzte Steuerleitung 23 an den Ausgangsfreigabeeingang des invertierenden Bustreibers 3. .Block Enable input of the second memory 2, a control line 22 to the output enable input of the non-inverting bus driver 4 and a last control line 23 to the output enable input of the inverting bus driver 3rd
Die abzulegenden Daten werden bei Belegung des Adreßbus 12 mit einer dem ersten Speicher 1 zugeordneten Adresse bei aktiven Steuerleitungen für Speicherzugriff 16 und Schreiben 17 in den ersten Speicher 1 in derauf dem Datenbus 11 vorliegenden Form eingeschrieben. Gleichzeitig aktiviert die Steuerlogik 10 über die Steuerleitungen 20,21 und 23 den invertierenden Treiber 5, den zweiten Speicher 2 und den invertierenden Bustreiber 3. Dadurch wird das in den ersten Speicher 1 eingeschriebene Datenwort gleichzeitig invertiert und unter die invertierten niederwertigen Adresse in den zweiten Speicher 2 eingeschrieben.The data to be stored are written into the first memory 1 in the form present on the data bus 11 when the address bus 12 is assigned an address assigned to the first memory 1 with active memory access control lines 16 and write 17. At the same time, the control logic 10 activates via the control lines 20, 21 and 23 the inverting driver 5, the second memory 2 and the inverting bus driver 3. As a result, the data word written into the first memory 1 is simultaneously inverted and placed under the inverted low-order address in the second memory 2 inscribed.
Das Auslesen der Daten aus dem ersten Speicher 1 erfolgt bei Belegung des Adreßbusses 12 mit einer dem ersten Speicher 1 zugeordneten Adresse bei aktiven Steuerleitungen für Speicherzugriff 16 und Lesen 18. Ein Auslesen der Daten aus dem zweiten Speicher 2 erfordert die Belegung des Adreßbusses 12 in der Form, daß die höherwertigen Leitungen 15 vom Adreßbus 12 mit der Basisadresse des zweiten Speichers 2 belegt sind, wogegen die niederwertigen Leitungen 14 des Adreßbusses 12 eine gegenüber dem Einschreibvorgang invertierte Belegung aufweisen. Die Steuerlogik 10 aktiviert beim Lesevorgang des zweiten Speichers 2, der durch die aktiven Steuerleitungen für Speicherzugriff 16 und Lesen 18 sowie einer Belegung des Adreßbus 12 mit einer dem zweiten Speicher 2 zugeordneten Adresse gekennzeichnet ist, adreßseitig den nichtinvertierenden Treiber 6 und datenseitig den nichtinvertierenden Bustreiber 4 sowie den zweiten Speicher2 über die Steuerleitungen 19,22 und 21.The reading out of the data from the first memory 1 takes place on assignment of the address bus 12 with an address associated with the first memory 1 with active control lines for memory access 16 and read 18. Reading the data from the second memory 2 requires the assignment of the address bus 12 in the Form that the higher-order lines 15 are occupied by the address bus 12 to the base address of the second memory 2, whereas the low-order lines 14 of the address bus 12 have a relation to the write inverted assignment. The control logic 10 activates the non-inverting driver 6 on the address side and the noninverting bus driver 4 on the data side during the read operation of the second memory 2, which is identified by the active memory access memory 16 and read 18 and an assignment of the address bus 12 with an address assigned to the second memory 2 and the second memory 2 via the control lines 19, 22 and 21.
Claims (1)
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
DD28523585A DD245068B1 (en) | 1985-12-23 | 1985-12-23 | ARRANGEMENT FOR CHECKING WRITE STORES |
DE19863619174 DE3619174A1 (en) | 1985-12-23 | 1986-06-06 | Arrangement for testing RAMs |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
DD28523585A DD245068B1 (en) | 1985-12-23 | 1985-12-23 | ARRANGEMENT FOR CHECKING WRITE STORES |
Publications (2)
Publication Number | Publication Date |
---|---|
DD245068A1 DD245068A1 (en) | 1987-04-22 |
DD245068B1 true DD245068B1 (en) | 1990-03-21 |
Family
ID=5575062
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
DD28523585A DD245068B1 (en) | 1985-12-23 | 1985-12-23 | ARRANGEMENT FOR CHECKING WRITE STORES |
Country Status (2)
Country | Link |
---|---|
DD (1) | DD245068B1 (en) |
DE (1) | DE3619174A1 (en) |
Families Citing this family (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH05216771A (en) * | 1991-09-18 | 1993-08-27 | Internatl Business Mach Corp <Ibm> | Method and apparatus for ensuring recovery possibility of important data in data processing apparatus |
DE19734554A1 (en) * | 1997-07-31 | 1999-02-04 | Siemens Ag | Electronic arrangement for secure data processing |
US7873803B2 (en) * | 2007-09-25 | 2011-01-18 | Sandisk Corporation | Nonvolatile memory with self recovery |
FR3001818B1 (en) | 2013-02-05 | 2016-06-24 | Airbus Operations Sas | SECURE REDUNDANT STORAGE DEVICE AND SECURE WRITE READING METHOD ON SUCH A DEVICE |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US4464754A (en) * | 1982-03-26 | 1984-08-07 | Rca Corporation | Memory system with redundancy for error avoidance |
-
1985
- 1985-12-23 DD DD28523585A patent/DD245068B1/en unknown
-
1986
- 1986-06-06 DE DE19863619174 patent/DE3619174A1/en not_active Withdrawn
Also Published As
Publication number | Publication date |
---|---|
DE3619174A1 (en) | 1987-06-25 |
DD245068A1 (en) | 1987-04-22 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
DE2030760C2 (en) | Parity check circuit for a memory circuit | |
DE3938018C3 (en) | Information processing system and method for determining its configuration | |
DE2142634B2 (en) | Associative memory | |
DE2817431A1 (en) | STORAGE HIERARCHY | |
EP0500973B1 (en) | EEPROM and method for altering a bootstrap routine in the EEPROM | |
WO2005017903A1 (en) | Hub component for connection to one or more memory modules | |
DE3227292A1 (en) | ELECTRONIC CONTROL DEVICE | |
DE1524773B2 (en) | Addressing system for storage devices | |
DD245068B1 (en) | ARRANGEMENT FOR CHECKING WRITE STORES | |
EP0151810B1 (en) | Method and circuit arrangement for testing a program in data processing systems | |
EP0353660B1 (en) | Fault prevention method in memory systems of data-processing installations, in particular telephone exchanges | |
EP1003106A2 (en) | Apparatus for adapting operating data and/or operating programs | |
EP0443070B1 (en) | Device for verifying the correct functioning of memory locations in a read-write-memory | |
DE4335604A1 (en) | Memory checking circuit | |
DE3811736A1 (en) | Method of storing and reading data | |
DE4114545C2 (en) | Circuit arrangement for a microcomputer | |
DE2714314A1 (en) | Parity checking storage system - has peripheral interfaces of data processors connected to common data highway to enhance accessibility of input-output data | |
DE3400311C1 (en) | Data processing device with a processor | |
DE3617964C2 (en) | ||
DD210776A1 (en) | DEVICE FOR PROTOCOLING THE PROGRAM PROGRAM | |
DD230098A1 (en) | CIRCUIT ARRANGEMENT FOR DATA OR BZW. TAX WORK SELECTION BY MICRORE TECHNICAL EDITION REGISTER | |
EP0328989A1 (en) | Circuit to adapt a slow memory to a fast processor | |
DD246388A1 (en) | CIRCUIT ARRANGEMENT FOR KEYPAD AND DISPLAY CONTROL | |
DD236818A1 (en) | CIRCUIT ARRANGEMENT FOR FUNCTIONAL TESTING OF COMINATORAL SWITCHING UNITS | |
DD256629A3 (en) | Circuit arrangement for expanding the address space of a microcomputer |