DE10103222A1 - Program read only memory for data processing device, supplies first address data or second address data to program datum memory unit when control signal is not available or available respectively - Google Patents

Program read only memory for data processing device, supplies first address data or second address data to program datum memory unit when control signal is not available or available respectively

Info

Publication number
DE10103222A1
DE10103222A1 DE10103222A DE10103222A DE10103222A1 DE 10103222 A1 DE10103222 A1 DE 10103222A1 DE 10103222 A DE10103222 A DE 10103222A DE 10103222 A DE10103222 A DE 10103222A DE 10103222 A1 DE10103222 A1 DE 10103222A1
Authority
DE
Germany
Prior art keywords
address
program
data
address data
code
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
DE10103222A
Other languages
German (de)
Other versions
DE10103222B4 (en
Inventor
Masaru Shimomura
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Nintendo Co Ltd
Original Assignee
Nintendo Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Nintendo Co Ltd filed Critical Nintendo Co Ltd
Publication of DE10103222A1 publication Critical patent/DE10103222A1/en
Application granted granted Critical
Publication of DE10103222B4 publication Critical patent/DE10103222B4/en
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/10Address translation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/14Protection against unauthorised use of memory or access to memory
    • G06F12/1408Protection against unauthorised use of memory or access to memory by using cryptography

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Storage Device Security (AREA)

Abstract

An address processing unit (24) applies a computational process on a portion of first address data based on a computational code in order to generate second address data. The second address data are supplied to a program datum memory unit (22) when a control signal is available. The first address data are supplied to the program datum memory when the control signal is not available. Independent claims are also included for the following: (a) a program distinction system; (b) an address selection method; (c) a program distinction method.

Description

Die vorliegende Erfindung betrifft eine Halbleiter-Speichereinrichtung und ein Programm-Unterscheidungssystem hierfür. Insbesondere betrifft die Erfindung eine Halbleiter-Speichereinrichtung, wie einen Nur-Lese-Speicher, die ein Pro­ gramm und dergleichen in eine Kassette für ein Spiele-Gerät speichert, und ein Unterscheidungssystem für das Programm.The present invention relates to a semiconductor memory device and a Program differentiation system for this. In particular, the invention relates a semiconductor memory device, such as read-only memory, which is a pro grams and the like in a cassette for a gaming device stores, and a System of differentiation for the program.

Beispielsweise umfaßt eine Kassette für ein Spiele-Gerät eine Halbleiter- Speichereinrichtung, wie einen Nur-Lese-Speicher, in den ein Spielprogramm geschrieben ist, wobei die Kassette während der Benutzung in ein Spiele- Gerätegehäuse eingefügt ist. Besonders im Fall einer solchen Kassette für Spiele- Geräte ist der Markt mit Imitationen verseucht, in der Spielprogramme gesetzwid­ rig kopiert sind.For example, a cassette for a gaming device includes a semiconductor Storage device, such as read-only memory, in which a game program with the cassette being inserted into a game Device housing is inserted. Especially in the case of such a cassette for gaming Devices, the market is contaminated with imitations, in which game programs are illegal rig copied.

Wie in der japanischen Auslegeschrift Nr. 2-31256 [G06F 12/14] offenbart ist, schlägt der Anmelder ein System vor, das imstande ist, ein unerlaubtes Kopieren eines Spielprogramms oder eines anderen Programms zu verhindern, bzw. das imstande ist, ein Verändern der Daten durch Unterscheidung der Echtheit und durch Zugangsverhinderung zu dem Programmspeicher, im Falle, daß eine Kas­ sette keine Originalkassette ist, zu verhindern.As disclosed in Japanese Laid-Open Publication No. 2-31256 [G06F 12/14], the applicant proposes a system capable of unauthorized copying to prevent a game program or another program, or that is able to change the data by distinguishing the authenticity and by preventing access to the program memory in the event that a cas sette is not an original cassette.

In dem vorgenannten Stand der Technik, in dem die Adressendecodierungsme­ thode verwendet wird, wird die Echtheit durch Vergleich mit den von dem im Speicher tatsächlich gelesenen Programmdaten festgestellt. Daher ist es möglich, Raubkopien mit einer hohen Zuverlässigkeit und über einen gewissen Grad hinaus zu entfernen.In the aforementioned prior art, in which the address decoding measurement method is used, the authenticity is compared with that of the im Memory actually read program data determined. It is therefore possible  Pirated copies with high reliability and beyond a certain degree to remove.

Jedoch ist es bei dem oben beschriebenen Stand der Technik erforderlich, eine Anzahl von Adressen zu decodieren, wobei ein zusätzlich zu lösendes Problem vorhanden war, und zwar, daß nicht nur die Chipgröße aufgrund der Anzahl der Verknüpfungsglieder zu lang wurde, sondern auch, wenn die Adressen, die zu decodieren waren, zu analysieren waren, ein Schutzeffekt gegen die gesetzwidrige Verwendung des Programms verloren ging.However, in the prior art described above, one is required Decode number of addresses, an additional problem to be solved was present, namely that not only the chip size due to the number of Links became too long, but also when the addresses added to decode were, were to be analyzed, a protective effect against the illegal Use of the program was lost.

Daher ist es Hauptaufgabe der Erfindung, eine neue Halbleiter- Speichereinrichtung und ein Programm-Unterscheidungssystem hierfür zu schaf­ fen.It is therefore the main object of the invention to develop a new semiconductor Storage device and a program differentiation system for this purpose fen.

Eine weitere Aufgabe der vorliegenden Erfindung ist es, eine Halbleiter- Speichereinrichtung bereitzustellen, welche die Analyse eines Programms er­ schwert, die Durchführung einer Programm-Untersuchung und einen Schutzeffekt für eine lange Zeit ermöglicht, und ein Programm-Unterscheidungssystem hierfür zu schaffen.Another object of the present invention is to provide a semiconductor To provide storage device which he the analysis of a program sword, carrying out a program investigation and a protective effect enabled for a long time, and a program differentiation system for this to accomplish.

Eine Halbleiter-Speichereinrichtung, gemäß der vorliegenden Erfindung ist eine Halbleiter-Speichereinrichtung, in der Programmdaten, die durch eine Zentralein­ heit ausgeführt werden, fest gespeichert sind und die Programmdaten von Adres­ sen, die durch Adreßdaten bestimmt sind, ausgibt. Die Halbleiter- Speichereinrichtung umfaßt ein Programmdaten-Speichermittel für das Festspei­ chern der Programmdaten, ein Code-Erzeugungsmittel für die Erzeugung eines Adreßrechencodes, und ein Adressen-Verarbeitungsmittel, das erste Adreßdaten erhält, die von der Zentraleinheit ausgegeben werden, in der das Adressen- Verarbeitungsmittel neue zweite Adreßdaten ausgibt, die durch Ausführung eines Rechenschritts von mindestens einem Teil der ersten Adreßdaten geschaffen wer­ den, wobei die Ausführung auf der Grundlage des Adreßrechencodes basiert, wo­ bei die Ausführung zu einem Zeitpunkt erfolgt, bei dem ein Steuersignal vorhan­ den ist, wobei das Adressen-Verarbeitungsmittel die zweiten Adreßdaten an dem Programmdaten-Speichermittel anlegt, wobei das Adressen-Verarbeitungsmittel zu einem Zeitpunkt, in dem kein Steuersignal vorhanden ist, die ersten Adreßda­ ten an dem Programmdaten-Speichermittel anlegt.A semiconductor memory device according to the present invention is one Semiconductor memory device, in which program data through a central unit, are permanently stored and the program data of addresses outputs determined by address data. The semiconductor Storage means comprises program data storage means for the fixed storage chern the program data, a code generating means for generating a Address arithmetic codes, and an address processing means, the first address data received by the central processing unit in which the address Processing means outputs new second address data by executing a Calculation step of at least part of the first address data created where execution is based on the address arithmetic code where  when executed at a time when a control signal is present is, the address processing means storing the second address data on the Program data storage means, the address processing means at a time when there is no control signal, the first address applied to the program data storage means.

Das Adressen-Verarbeitungsmittel umfaßt ein Rechenmittel, das fähig ist, die zweiten Adreßdaten durch Berechnung von mindestens einem Teil der ersten Adressen durch Verwendung des Adreßrechencodes auszugeben, und umfaßt ein Wählelement, das die zweiten Adreßdaten ausgibt, wenn das Steuersignal an dem Wählelement angelegt wird, und gibt die ersten Adreßdaten aus, wenn das Steuer­ signal nicht an dem Wählelement angelegt wird.The address processing means includes a computing means capable of second address data by calculating at least a part of the first Output addresses using the address arithmetic code, and includes one Selector element that outputs the second address data when the control signal at the Dial element is created, and outputs the first address data when the control signal is not applied to the dialing element.

In einem solchen Fall, kann das Rechenmittel eine Mehrzahl von Rechenelemen­ ten umfassen, die jeweils verschiedene Arten von Rechenoperationen ausführen können. Das Rechenmittel gibt somit verschiedene Arten von zweiten Adreßdaten aus, jeweils bei Aufnahme der ersten Adreßdaten und den Adreßrechencode. Das Code-Erzeugungsmittel erzeugt zusätzlich einen Rechenelementwahlcode, mit dem jedes der Mehrzahl der Rechenelemente ausgewählt werden kann. Das Wähl­ element kann die mit demjenigen Rechenelement in Verbindung stehenden zwei­ ten Adreßdaten auswählen, welches durch den Rechenelementwahlcode oder die ersten Adreßdaten ausgewählt worden ist.In such a case, the computing means can have a plurality of computing elements ten, each performing different types of arithmetic operations can. The computing means thus gives different types of second address data off, each time the first address data and the address arithmetic code are recorded. The Code generating means additionally generates a computing element selection code, with which each of the plurality of computing elements can be selected. The choice element can be the two associated with that computing element Select th address data, which by the computing element selection code or the first address data has been selected.

In einer Ausführungsform der vorliegenden Erfindung umfaßt eine Halbleiter- Speichereinrichtung ein Programmdaten-Speichermittel für die Festspeicherung von Programmdaten, ein Code-Erzeugungsmittel für die Erzeugung eines Adreß­ rechencodes, und ein Adressen-Verarbeitungsmittel, das erste Adreßdaten erhält, die von einer Zentraleinheit ausgegeben werden, worin das Adressen- Verarbeitungsmittel neue zweite Adreßdaten ausgibt, die durch Ausführen eines ersten Rechenschritts auf mindestens einem Teil der ersten Adreßdaten erhalten werden, wobei das Ausführen auf dem Adreßrechencode basiert, wobei ferner die Ausführung zu einem Zeitpunkt erfolgt, bei dem ein Steuersignal vorhanden ist. Das Adressen-Verarbeitungsmittel legt die zweiten Adreßdaten an das Pro­ grammdaten-Speichermittel an und gibt neue dritte Adreßdaten aus, die durch Ausführen eines zu dem ersten Rechenschritt unterschiedlichen zweiten Rechen­ schritts, der auf zumindest einem Teil der ersten Adreßdaten unterschiedlich ist, erhalten werden, auf der Grundlage des Adreßrechencodes basiert, wobei ferner das Ausführen zu einem Zeitpunkt geschieht, in dem kein Steuersignal vorhanden ist, wobei das Adressen-Verarbeitungsmittel die dritten Adreßdaten an das Pro­ grammdaten-Speichermittel anlegt.In one embodiment of the present invention, a semiconductor Storage device a program data storage means for permanent storage of program data, a code generating means for generating an address computational codes, and an address processing means that receives first address data, which are issued by a central unit, in which the address Processing means outputs new second address data by executing a received first computing step on at least part of the first address data where execution is based on the address arithmetic code, and further the  Execution takes place at a time when a control signal is present. The address processing means applies the second address data to the pro gram data storage means and outputs new third address data by Execution of a second rake different from the first calculation step step that is different on at least part of the first address data, are obtained based on the address calculation code, and further execution occurs at a time when there is no control signal is, the address processing means the third address data to the Pro creates gram data storage means.

In diesem Fall verwandeln einer der ersten Rechenschritte und der zweite in dem Adressen-Verarbeitungsmittel ausgeführte Rechenschritt die ersten Adreßdaten in Adreßdaten, um Programmdaten auszugeben, die regulär durch die Zentraleinheit ausgeführt werden müssen.In this case, one of the first arithmetic steps and the second transform into the Address processing means performed arithmetic step the first address data in Address data to output program data that is regular by the central unit must be executed.

Ein Programm-Unterscheidungssystem im Sinne der vorliegenden Erfindung um­ faßt eine nur Lese-Programmspeichereinheit, die Programmdaten festspeichert, und eine Zentraleinheit, die die Programmdaten durch Lesen der Programmdaten von der Programmspeichereinheit ausführt und die unterscheidet, ob das Pro­ gramm ein ordnungsgemäßes Programm ist oder nicht, wobei die Programmspei­ chereinheit ein Programmdaten-Speichermittel für das Festspeichern der Pro­ grammdaten einschließt, ein Code-Erzeugungsmittel für das Erzeugen von einem Adreßrechencode und ein Adressen-Verarbeitungsmittel für das Empfangen von ersten Adreßdaten, die von der Zentraleinheit ausgegeben werden, wobei das Adressen-Verarbeitungsmittel neue zweite Adreßdaten ausgibt, die durch Ausfüh­ rung eines Rechenschritts von mindestens einem Teil der ersten Adreßdaten er­ halten werden, wobei die Ausführung auf der Grundlage des Adreßrechencodes basiert, wenn ein Steuersignal von der Zentraleinheit angelegt wird, und die zweiten Adreßdaten an dem Programmdaten-Speichermittel anlegt, und die ersten Adreßdaten an dem Programmdaten-Speichermittel anlegt, wenn kein Steuersi­ gnal angelegt ist, und die Zentraleinheit ein Steuersignal-Anlegungsmittel umfaßt, um das Steuersignal an dem Adressen-Verarbeitungsmittel der Programmspei­ chereinheit anzulegen, und ein Adressen-Ausgabemittel für die Ausgabe der er­ sten Adreßdaten, um die ersten Adreßdaten kurz nach dem das Steuersignal vor­ liegt, an dem Adressen-Verarbeitungsmittel anzulegen, und ein Entscheidungs­ mittel für die Entscheidung der Echtheit der Programmspeichereinheit, in dem entschieden wird, ob eine vorher festgesetzte Beziehung zwischen den Pro­ grammdaten, die durch das Programmdaten-Speichermittel gemäß der zweiten Adreßdaten und den im voraus gesetzten Prüfdaten gelesen werden, besteht oder nicht.A program differentiation system in the sense of the present invention holds a read-only program storage unit that stores program data, and a CPU that reads the program data by reading the program data from the program storage unit and which distinguishes whether the Pro gram is a proper program or not, the program spec cher unit a program data storage means for the permanent storage of the Pro gram data includes a code generating means for generating one Address computing code and an address processing means for receiving first address data, which are output by the central processing unit, the Address processing means outputs new second address data which is executed by Exec tion of a computing step of at least part of the first address data hold, execution based on the address arithmetic code based when a control signal is applied by the central processing unit, and the applies second address data to the program data storage means, and the first Applies address data to the program data storage means when no control signal is applied, and the central unit comprises a control signal application means,  around the control signal at the address processing means of the program memory cher unit and an address output means for the output of the Most address data to the first address data shortly after the control signal is to apply to the address processing means and a decision means for deciding the authenticity of the program storage unit in which it is decided whether a predetermined relationship between the Pro gram data stored by the program data storage means according to the second Address data and the test data set in advance are read, exists or Not.

Die Zentraleinheit weist weiterhin ein Programm-Beendigungsmittel für die zwangsläufige Beendigung des Programms auf, wenn ein Entscheidungsergebnis des Entscheidungsmittels eine falsche Programmspeichereinheit anzeigt.The central unit also has a program termination means for the inevitable termination of the program when a decision is reached of the decision means indicates an incorrect program storage unit.

Wenn das Steuersignal, das von der Zentraleinheit als Reaktion der bestimmten, aus dem Programmdaten-Speichermittel gelesenen Programmdaten zu dem Adressen-Verarbeitungsmittel weitergegeben wird, gibt in der Halbleiter- Speichereinrichtung das Adressen-Verarbeitungsmittel die zweiten Adreßdaten aus, indem eine Rechenoperation an allen Bits oder Bitteilen der ersten Adreßda­ ten, die auf dem Adreßrechencode des Code-Erzeugungsmittels basieren, durch­ geführt wird, wobei das Adressen-Verarbeitungsmittel die zweiten Adreßdaten an dem Programmdaten-Speichermittel anlegt. Vorzugsweise errechnet das Rechen­ mittel des Adressen-Verarbeitungsmittels die ersten Adreßdaten, indem der Adreßrechencode verwendet wird, um die zweiten Adreßdaten auszugeben, und das Wählelement gibt die zweiten Adreßdaten als Reaktion auf das Steuersignal aus. Daher werden von dem Programmdaten-Speichermittel, als Reaktion auf das Steuersignal, die Programmdaten von einer Adresse gelesen, die bestimmt ist, nicht durch die ersten Adreßdaten, die von der Zentraleinheit ausgegeben werden, sondern durch die zweiten Adreßdaten, die von dem Adressen- Verarbeitungsmittel ausgegeben werden. If the control signal from the central unit in response to the determined program data read from the program data storage means for the Address processing means is passed there in the semiconductor The address processing means stores the second address data by performing an arithmetic operation on all bits or bit parts of the first address based on the address calculation code of the code generating means with the address processing means supplying the second address data the program data storage means. The rake preferably calculates by means of the address processing means, the first address data by the Address computation code is used to output the second address data, and the selector gives the second address data in response to the control signal out. Therefore, in response to that, the program data storage means Control signal that reads program data from an address that is determined not by the first address data output by the central unit, but by the second address data, which is from the address Processing agents are issued.  

In der Zentraleinheit wird durch das Entscheidungsmittel entschieden, ob die Pro­ grammdaten, die gemäß der zweiten Adreßdaten ausgelesen werden, mit den vor­ her gesetzten Prüfdaten übereinstimmen oder nicht. Wenn beide Daten miteinan­ der übereinstimmen, entscheidet das Entscheidungsmittel, daß die Halbleiter- Speichereinheit (Programm-Nur-Lese-Speicher) zu diesem Zeitpunkt eine echte ist. Wenn die Daten nicht miteinander übereinstimmen, ist die Halbleiter- Speichereinrichtung eine falsche, und das Programm wird daher zwangsläufig beendet.In the central unit, the decision means decides whether the Pro gram data that are read out according to the second address data with the before established test data agree or not. If both dates are together who agree, the decision means decides that the semiconductor Storage unit (program read-only memory) a real one at this time is. If the data do not match, the semiconductor Storage facility is incorrect, and the program is therefore inevitable completed.

Dementsprechend, auch wenn alle in das Programmdaten-Speichermittel gespei­ cherten Programmdaten kopiert sind, wird im Fall, daß das Adressen- Verarbeitungsmittel gemäß der vorliegenden Erfindung nicht vorhanden ist, die Programmspeichereinheit aufgrund des Ergebnisses der Programmprüfung als eine Imitation erkannt, wodurch es unmöglich ist, das Programm auszuführen.Accordingly, even if all are stored in the program data storage means program data are copied, in the event that the address Processing means according to the present invention is not present, which Program storage unit based on the result of the program check as recognized an imitation, making it impossible to run the program.

Wenn eine Mehrzahl der Rechenelemente, die fähig sind, jeweils verschiedene Arten von Rechenoperationen auszuführen, in dem Adressen-Verarbeitungsmittel vorhanden sind, wählt das Wählelement weiterhin die zweiten Adreßdaten von einem Rechenelement aus, welches durch einen Rechenwahlcode ausgewählt worden ist, der von dem Code-Erzeugungsmittel ausgegeben worden ist.If a plurality of the computing elements that are capable each different To perform types of arithmetic operations in the address processing means are present, the selector continues to select the second address data from a computing element, which is selected by a computing selection code output from the code generating means.

Weiterhin können die zweiten Adreßdaten, die durch Verarbeitung der ersten Da­ ten durch die erste Rechenoperation, wenn das Steuersignal vorhanden ist, entste­ hen, oder die dritten Adreßdaten, die als Ergebnis der Verarbeitung der ersten Adreßdaten durch die zweite Rechenoperation, wenn kein Steuersignal vorhanden ist, entstehen, ausgegeben werden. In diesem Fall, verwandelt die erste Rechen­ operation oder die zweite Rechenoperation in dem Adressen-Verarbeitungsmittel die ersten Adreßdaten in eine reguläre Adresse, damit Programmdaten ausgegeben werden können, um regulär durch die Zentraleinheit ausgeführt zu werden. Furthermore, the second address data obtained by processing the first da The first arithmetic operation if the control signal is present hen, or the third address data as a result of processing the first Address data by the second arithmetic operation if there is no control signal is, arise, be spent. In this case, the first rake turns operation or the second arithmetic operation in the address processing means the first address data into a regular address so that program data is output can be carried out in order to be carried out regularly by the central unit.  

Gemäß der vorliegenden Erfindung können die Programmdaten im Gegensatz zum echten Produkt nicht ausgeführt werden, wenn alle Programmdaten des Pro­ grammdaten-Speichermittels kopiert sind, aber alle die Elemente, wie das Re­ chenmittel und der Rechencode in dem Adressen-Verarbeitungsmittel, nicht un­ tersucht sind, wodurch es möglich ist, eine gesetzwidrige Programmbenutzung wirksam zu verhindern.In contrast, according to the present invention, the program data for the real product, if all the program data of the Pro gram data storage means are copied, but all the elements such as the Re means and the arithmetic code in the address processing means, not un are investigated, which makes it possible to use the program illegally prevent effectively.

Weiterhin ist es im Fall, daß die Elemente, wie z. B. die Art der Rechenoperation, der Adreßrechencode in dem Rechenmittel und der Rechenwahlcode, durch den das Rechenelement bestimmt worden ist, für jedes Produkt oder jede Produktver­ sion ausgetauscht werden, selbst wenn alle Elemente eines gegebenen Produktes untersucht werden könnten, für eine Person, die versucht das Programm gesetz­ widrig zu benutzen, erforderlich, die Elemente bei jeder Gelegenheit erneut zu analysieren, und kann ein Untersuchungsergebnis an einem anderen Produkt, so wie es ausgeführt ist, nicht herangezogen werden. In Anbetracht dessen, daß eine lange Zeit und massive Instrumente für die Untersuchung erforderlich sind, ist es, gemäß der vorliegenden Erfindung, wirklich möglich, die gesetzwidrige Pro­ grammbenutzung zu verhindern.Furthermore, it is in the case that the elements such. B. the type of arithmetic operation, the address calculation code in the calculation means and the calculation selection code by which the computing element has been determined for each product or product ver sion can be exchanged even if all elements of a given product could be investigated for a person trying the law program Adversely used, required to reuse the items at every opportunity analyze, and can have a test result on another product, so how it is carried out cannot be used. In view of the fact that a long time and massive instruments are required for the investigation is according to the present invention, really possible the illegal pro prevent gram usage.

Die oben beschriebene Aufgabe und andere Aufgaben, Merkmale, Aspekte und Vorteile der vorliegenden Erfindung werden anhand der detaillierten Beschrei­ bung und der begleitenden Zeichnungen der vorliegenden Erfindung näher erläu­ tert.The task described above and other tasks, features, aspects and Advantages of the present invention will become apparent from the detailed description exercise and the accompanying drawings of the present invention tert.

Fig. 1 ist ein Blockdiagramm, das eine Ausführungsform der vorliegenden Erfin­ dung zeigt; Fig. 1 is a block diagram showing an embodiment of the present OF INVENTION dung;

Fig. 2 ist ein Blockdiagramm, das ein Beispiel einer Adressen- Verarbeitungseinheit der Ausführung gemäß der Fig. 1 zeigt; Fig. 2 is a block diagram showing an example of an address processing unit of the embodiment shown in Fig. 1;

Fig. 3 zeigt eine Darstellung eines Speicherplans einer Zentraleinheit in Fig. 1; Fig. 3 shows an illustration of a memory map of a central processing unit in Fig. 1;

Fig. 4 ist ein Flußdiagramm, das einen Ablauf der Ausführungsform gemäß der Fig. 1 zeigt; Fig. 4 is a flowchart showing a flow of the embodiment shown in Fig. 1;

Fig. 5 ist ein Flußdiagramm, das ein Prüfprogramm gemäß des Flußdiagramms in Fig. 4 zeigt; Fig. 5 is a flowchart showing a test program according to the flowchart in Fig. 4;

Fig. 6 ist ein Blockdiagramm, das ein abgeändertes Beispiel der Adressen- Verarbeitungseinheit zeigt; Fig. 6 is a block diagram showing a modified example of the address processing unit;

Fig. 7 ist ein Blockdiagramm, das ein anderes abgeändertes Ausführungsbeispiel der Adressenverarbeitungseinheit zeigt; und Fig. 7 is a block diagram showing another modified embodiment of the address processing unit; and

Fig. 8 ist ein Blockdiagramm, das eine andere Ausführungsform gemäß der vor­ liegenden Erfindung zeigt. Fig. 8 is a block diagram showing another embodiment according to the present invention.

Eine Informations-Verarbeitungsvorrichtung 10 einer Ausführungsform gemäß der vorliegenden Erfindung, die in Fig. 1 gezeigt ist, umfaßt eine Zentraleinheit 12 (CPU), die eine zentrale Verarbeitungseinheit ist. Eine Anzeigevorrichtung 14, die eine Ausgabeeinrichtung ist, und eine Eingabe-Bedieneinrichtung 16, die eine Eingabeeinrichtung ist, sind mit der Zentraleinheit 12 verbunden. Die Informati­ ons-Verarbeitungsvorrichtung 10 weist ein Programm-Unterscheidungssystem auf. Wenn die Informations-Verarbeitungsvorrichtung 10 ein Spieleprozessor ist, dann ist die Eingabe-Bedieneinheit 16 eine Steuereinheit für Spiele, wobei die Steuereinheit einen Steuerknüppel (joystick), ein Steuerkreuz (cross key) und ei­ nige Arten von Bedienknöpfen aufweist, wobei der Spieleprozessor, d. h. die Zen­ traleinheit 12, ein Spielprogramm verarbeitet, das in einem Programm-Nur-Lese- Speicher 18 als Folge einer Bedienung gespeichert ist, wobei die Bedienung durch eine Eingabe-Bedieneinrichtung 16 ausgeführt wird, um ein Spielebild in einer Anzeigevorrichtung 14 anzuzeigen, wobei die Anzeigevorrichtung 14 beispiels­ weise ein Fernsehbildschirm oder ein Flüssigkristallbildschirm sein kann. Weiter­ hin ist ein Arbeitsspeicher 20, der an der Zentraleinheit 12 angeschlossen ist, bei­ spielsweise als ein Schreib-Lese-Speicher und dergleichen ausgeführt, wobei der Arbeitsspeicher 20 für den Betrieb der oben beschriebenen Programmverarbeitung benutzt wird und wobei der Arbeitsspeicher 20 für das temporäre Speichern eines Prüfprogramms und von Prüfdaten für eine später beschriebene Programmecht­ heitsunterscheidung benutzt wird. An information processing apparatus 10 of an embodiment according to the present invention shown in Fig. 1 includes a central processing unit 12 (CPU) which is a central processing unit. A display device 14 , which is an output device, and an input operating device 16 , which is an input device, are connected to the central unit 12 . The information processing device 10 has a program discrimination system. If the information processing device 10 is a game processor, then the input control unit 16 is a control unit for games, the control unit having a joystick, a control key (cross key) and some types of control buttons, the game processor, ie the central unit 12 processes a game program stored in a program read-only memory 18 as a result of an operation, the operation being performed by an input operator 16 to display a game image on a display device 14 , the Display device 14 can be, for example, a television screen or a liquid crystal screen. Further, a working memory 20 , which is connected to the central processing unit 12 , is implemented, for example, as a read-write memory and the like, the working memory 20 being used for the operation of the program processing described above and the working memory 20 for the temporary storage a test program and test data is used for a program law distinction described later.

Der Programm-Nur-Lese-Speicher 18, der wie eine Halbleiter-Speicher­ einrichtung oder eine Programmspeichereinheit funktioniert, ist ein Nur-Lese- Halbleiterspeicher, wie ein programmierbarer Nur-Lese-Speicher (PROM), ein Flash ROM, ein löschbarer Festwertspeicher (EPROM), ein elektrisch löschbarer Festwertspeicher (EEROM) und dergleichen, der die Programmdaten fest spei­ chert. Der Programm-Nur-Lese-Speicher 18 weist zusätzlich zu einer Programm­ daten-Speichereinheit 22 eine Adressen-Verarbeitungseinheit 24 und eine Code- Speichereinheit 26 auf, wobei die Programmdaten-Speichereinheit 22, die ein Speicherkern ist, ein konventioneller Programm-Nur-Lese-Speicher ist. Weiterhin sind, wie in dem Ausführungsbeispiel gezeigt, die Programmdaten- Speichereinheit 22, die Adressen-Verarbeitungseinheit 24 und die Code- Speichereinheit 26 in dem gleichen Halbleiterchip angeordnet. Weiterhin werden die von der Zentraleinheit 12 durch einen Adreßbus ausgegebenen Daten von der Adressen-Verarbeitungseinheit 24 verarbeitet. Die Adressen-Verarbeitungseinheit 24 legt die verarbeiteten Adreßdaten an die Programmdaten-Speichereinheit 22 an. Die Programmdaten-Speichereinheit 22 liest die Programmdaten aus gemäß der Adreßdaten, die durch die Adressen-Verarbeitungseinheit 24 verarbeitet wor­ den sind. Die Programmdaten werden von der Zentraleinheit 12 durch einen Da­ tenbus ausgegeben.The program read-only memory 18 , which functions like a semiconductor memory device or a program memory unit, is a read-only semiconductor memory, such as a programmable read-only memory (PROM), a flash ROM, an erasable read-only memory ( EPROM), an electrically erasable read-only memory (EEROM) and the like, which permanently saves the program data. The program read-only memory 18 has, in addition to a program data storage unit 22, an address processing unit 24 and a code storage unit 26 , wherein the program data storage unit 22 , which is a memory core, is a conventional program read-only Memory is. Furthermore, as shown in the exemplary embodiment, the program data storage unit 22 , the address processing unit 24 and the code storage unit 26 are arranged in the same semiconductor chip. Furthermore, the data output by the central processing unit 12 through an address bus are processed by the address processing unit 24 . The address processing unit 24 applies the processed address data to the program data storage unit 22 . The program data storage unit 22 reads out the program data in accordance with the address data processed by the address processing unit 24 . The program data are output from the central processing unit 12 through a data bus.

Weiterhin verarbeitet, wie später beschrieben, die Adressen-Verarbeitungseinheit 24 die Adreßdaten auf der Basis eines an einem Steuerbus der Zentraleinheit 12 angelegten Steuersignals und eines Codes (Daten), der von einer Code- Speichereinheit 26 angelegt ist.Furthermore, as described later, the address processing unit 24 processes the address data on the basis of a control signal applied to a control bus of the central processing unit 12 and a code (data) applied by a code storage unit 26 .

Ein Ausführungsbeispiel der Adressen-Verarbeitungseinheit 24 ist in Fig. 2 ge­ zeigt. Wie in Fig. 2 gezeigt ist, umfaßt die Adressen-Verarbeitungseinheit 24 ein Wählelement 30 und ein Rechenelement 28, das wie ein Rechenmittel arbeitet. Das Rechenelement 28 ist in dem Chip des Programm-Nur-Lese-Speichers 18 angeordnet und kann ein Multiplizierer, ein Dividierer, ein Subtrahierer, ein Ad­ dierer sein oder ein Verschiebe-Register oder ein anderes einfaches logisches Re­ chenelement (beispielsweise UND, Nicht-UND, ODER, Nicht-ODER, EXKLUSIV-ODER und dergleichen) sein.An embodiment of the address processing unit 24 is shown in Fig. 2 ge. As shown in FIG. 2, the address processing unit 24 comprises a selection element 30 and a computing element 28 which works like a computing means. The arithmetic element 28 is arranged in the chip of the program read-only memory 18 and can be a multiplier, a divider, a subtractor, an adder or a shift register or another simple logic arithmetic element (for example AND, non- AND, OR, NOT-OR, EXCLUSIVE-OR and the like).

Die oberen 8 Bits A8-A15, beispielsweise der ersten Adreßdaten A0-A15 von 16 Bits, die von der Zentraleinheit 12 ausgegeben werden, sind synthetisiert bzw. sind mit den Ausgabedaten A0'-A7' des Wählelementes 30 gekoppelt. Die un­ teren 8 Bits A0-A7 werden an einem Eingang des Rechenelements 28 und an einem Eingang (X) des Wählelementes 30 angelegt. An einem anderen Eingang des Rechenelements 28 wird ein Adreßrechencode a0-a7 von 8 Bits angelegt, wobei der Adreßrechencode a0-a7 in der Code-Speichereinheit 26, die wie ein Code-Erzeugungsmittel arbeitet, gesetzt wird. Das Rechenelement 28 führt jede der oben beschriebenen Operationen an zwei Eingängen aus. Ein Ausgang des Rechenelements 28 wird an einem anderen Eingang (Y) des Wählelementes 30 angelegt. Im Fall, daß das Rechenelement 28 beispielsweise ein UND ist, gibt das Rechenelement 28 ein logisches Summenergebnis A0'-A7' des Adreßrechenco­ des a0-a7 und der niedrigeren 8 Bits A0-A7 aus und legt dasselbe an dem oben beschriebenen einen Eingang des Wählelementes 30 an.The upper 8 bits A8-A15, for example the first address data A0-A15 of 16 bits, which are output by the central unit 12 , are synthesized or are coupled to the output data A0'-A7 'of the selector element 30 . The lower 8 bits A0-A7 are applied to an input of the computing element 28 and to an input (X) of the selection element 30 . An address arithmetic code a0-a7 of 8 bits is applied to another input of the arithmetic element 28 , the address arithmetic code a0-a7 being set in the code storage unit 26 , which works like a code generating means. The computing element 28 performs each of the operations described above on two inputs. An output of the computing element 28 is applied to another input (Y) of the selection element 30 . For example, in the case that the arithmetic element 28 is an AND, the arithmetic element 28 outputs a logical sum result A0'-A7 'of the address compute of the a0-a7 and the lower 8 bits A0-A7 and applies the same to the input of the selector element described above 30 on.

Das vorher beschriebene Steuersignal, beispielsweise ein Schreibsignal, wird an dem Wählelement 30 der Zentraleinheit 12 angelegt. Daher ersetzt das Wählele­ ment 30 die niedrigeren 8 Bits A0-A7 der Adreßdaten mit dem Rechenergebnis A0'-A7' als Folge des Steuersignals, d. h. des Schreibsignals, und gibt die aus­ getauschten Daten aus. Andererseits sind die oberen 8 Bits A8-A15 der Adreß­ daten A0-A15 mit dem Ausgang des Wählelementes 30 gekoppelt. Als Ergebnis hiervon werden die zweiten Adreßdaten von insgesamt 16 Bits von A0'-A7' + A8-A15 von dem Wählelement 30, d. h. der Adressen-Verarbeitungseinheit 24 ausgegeben.The control signal described above, for example a write signal, is applied to the selection element 30 of the central unit 12 . Therefore, the selector 30 replaces the lower 8 bits A0-A7 of the address data with the calculation result A0'-A7 'as a result of the control signal, that is, the write signal, and outputs the data exchanged. On the other hand, the upper 8 bits A8-A15 of the address data A0-A15 are coupled to the output of the selector element 30 . As a result, the second address data of a total of 16 bits of A0'-A7 '+ A8-A15 is output from the selector 30 , that is, the address processing unit 24 .

Weil die zweiten somit modifizierten bzw. durch die Adressen- Verarbeitungseinheit 24 verarbeiteten Adreßdaten in der Programmdaten- Speichereinheit 22 (Fig. 1) in einem in Fig. 5 gezeigten und später beschriebenen Schritt S12 eingegeben werden, werden die Programmdaten gelesen von einer Adresse der Programmdaten-Speichereinheit 22, die nicht durch die Adreßdaten A0-A15, sondern durch die zweiten Adreßdaten A0'-A7' + A8-A15 be­ stimmt ist. Im Fall eines falschen Programm-Nur-Lese-Speichers, der nicht die Adressen-Verarbeitungseinheit 24 aufweist, werden die Programmdaten von einer durch die ersten Adreßdaten A0-A15 gezeigten Adresse gelesen. Daher werden die Programmdaten, die von der Programmdaten-Speichereinheit 22 gelesen wor­ den sind, voneinander unterschiedlich. Im vorher erwähnten Fall stimmen die ausgelesenen Programmdaten mit den vorher gesetzten Prüfdaten überein. Im später beschriebenen Fall stimmen die Programmdaten aber nicht mit den Prüf daten überein.Because the second address data thus modified or processed by the address processing unit 24 is input to the program data storage unit 22 ( FIG. 1) in a step S12 shown in FIG. 5 and described later, the program data is read from an address of the program data - Storage unit 22 , which is determined not by the address data A0-A15, but by the second address data A0'-A7 '+ A8-A15. In the case of an incorrect program read-only memory which does not have the address processing unit 24 , the program data is read from an address shown by the first address data A0-A15. Therefore, the program data read from the program data storage unit 22 are different from each other. In the aforementioned case, the program data read out match the test data previously set. In the case described later, however, the program data do not match the test data.

Weiterhin werden gemäß des Ausführungsbeispiels in Fig. 2 nur die niedrigeren 8 Bits der ersten Adreßdaten mit dem Rechencode durch das Rechenelement 28 berechnet. Die oberen 8 Bits werden so wie sie sind ausgegeben. Wie auch immer können alle 16 Bits der ersten Adresse in dem Rechenelement 28 berechnet wer­ den. In einem solchen Fall, wie in der Fig. 2 mit Klammern dargestellt ist, werden alle 16 Bits der Adreßdaten A0-A15 an dem einen Eingang des Rechenelements 28 angelegt. An dem anderen Eingang des Rechenelementes 28 wird ein Adreßre­ chencode a0-a15 von 16 Bits von der Code-Speichereinheit 26 angelegt. Daher werden zweite Adreßdaten A0'-15', von denen alle Bits modifiziert bzw. ver­ arbeitet sind, von dem Rechenelement 28 ausgegeben. Die zweiten Adreßdaten A0'-15' werden an dem einen Eingang (X) des Wählelementes 30 gelegt. Wie bei dem anderen Eingang (Y) des Wählelementes 30 auch, werden die Adreßdaten A0-A15, die von der Zentraleinheit 12 ausgegeben worden sind, angelegt. Des­ halb werden von dem Wählelement 30 die zweiten Adreßdaten A0'-A15' aus­ gegeben, wenn das Steuersignal vorhanden ist. Wenn das Steuersignal nicht vor­ handen ist, werden die zweiten Adreßdaten A0-A15 ausgegeben. Deshalb wird in einem Schritt S13 in Fig. 5 die Richtigkeit der gelesenen Programmdaten fest­ gestellt, wobei die Programmdaten von einer Adresse gelesen werden, die durch die Adreßdaten A0'-15' bestimmt wird. Furthermore, according to the exemplary embodiment in FIG. 2, only the lower 8 bits of the first address data are calculated with the computing code by the computing element 28 . The top 8 bits are output as is. However, all 16 bits of the first address in the computing element 28 can be calculated. In such a case, as shown in brackets in FIG. 2, all 16 bits of the address data A0-A15 are applied to the one input of the computing element 28 . At the other input of the arithmetic element 28 , an address code a0-a15 of 16 bits is applied by the code storage unit 26 . Therefore, second address data A0'-15 ', of which all bits are modified or processed, are output by the computing element 28 . The second address data A0'-15 'are applied to one input (X) of the selection element 30 . As with the other input (Y) of the selection element 30 , the address data A0-A15, which have been output by the central unit 12 , are applied. Therefore, the second address data A0'-A15 'are output from the selector 30 when the control signal is present. If the control signal is not present, the second address data A0-A15 are output. Therefore, the correctness of the read program data is determined in a step S13 in FIG. 5, the program data being read from an address which is determined by the address data A0'-15 '.

Die Zentraleinheit 12 in Fig. 1 weist einen Speicherplan auf, der in Fig. 3 gezeigt ist. Ein Speicherraum, beispielsweise "0000h-DFFFh", ist ein Programmbereich, der dem Programm-Nur-Lese-Speicher 18 zugewiesen ist. Ein Speicherbereich von "E000h-FFFFh" ist ein Arbeitsbereich, der dem Arbeitsspeicher 20 zuge­ wiesen ist.The CPU 12 in FIG. 1 has a memory map shown in FIG. 3. A memory space, for example "0000h-DFFFh", is a program area which is allocated to the program read-only memory 18 . A memory area of "E000h-FFFFh" is a work area that is assigned to the work memory 20 .

Die Programmdaten-Speichereinheit 22 des Programm-Nur-Lese-Speichers ist ein Teil des oben beschriebenen Programmbereichs. Der Programmbereich ist weiter­ hin mit einem Programmbelegungsbereich oder einem Home-Bereich, einem Prüfprogrammbereich und einem Prüf-Startbefehlsbereich versehen.The program data storage unit 22 of the program read-only memory is part of the program area described above. The program area is further provided with a program assignment area or a home area, a test program area and a test start command area.

Ein Prüfprogramm, das in einem Prüfprogrammbereich gespeichert ist, kann an­ hand des in der Fig. 4 und Fig. 5 gezeigten und später beschriebenen Flußdia­ gramms ausgeführt werden.A test program stored in a Prüfprogrammbereich may be attached to the hand are executed in the FIG. 4 and FIG. 5 as shown and described later Flußdia program.

Weiterhin wird in dem Prüfprogramm eine oder mehrere der Prüfdaten gesetzt. Die Prüfdaten sind Daten zur Unterscheidung der Programmechtheit, wobei die Unterscheidung durch Vergleich mit den Daten, die durch das Ergebnis der Prüf programmausführung angezeigt werden, erfolgt. Beispielsweise wird in dieser gezeigten Ausführungsform, die Echtheit des Programms nur einmal geprüft, weshalb nur ein Satz Prüfdaten in dem Prüfprogramm gesetzt sind, wie in Fig. 3 gezeigt ist. Durch Setzen des Prüfstartbefehls, damit das Prüfprogramm gestartet wird, wobei das Prüfprogramm ein einziges Prüfdatenpaket in einer Mehrzahl von Plätzen des Hauptprogramms (beispielsweise ein Spielprogramm) verwendet, oder durch Setzen einer Mehrzahl von Prüfstartbefehlen, um jeweils eine Mehr­ zahl von Prüfprogrammen zu starten, wobei eine Mehrzahl von Prüfdaten in einer Mehrzahl von Plätzen benutzt wird, ist es möglich, die Schwierigkeit der Untersu­ chung des Programms zu erhöhen, durch die häufige Echtheitsprüfung des Pro­ gramms. Furthermore, one or more of the test data is set in the test program. The test data are data for distinguishing the program authenticity, the differentiation being made by comparison with the data which are indicated by the result of the test program execution. For example, in the embodiment shown, the authenticity of the program is checked only once, which is why only one set of test data is set in the test program, as shown in FIG. 3. By setting the test start command so that the test program is started, the test program using a single test data packet in a plurality of locations of the main program (for example a game program), or by setting a plurality of test start commands to start a plurality of test programs each, whereby If a plurality of test data are used in a plurality of places, it is possible to increase the difficulty of examining the program by the frequent authenticity check of the program.

Weiterhin ist es im Fall, daß das Prüfprogramm relativ klein (beispielsweise eini­ ge bis einige 10 Bytes) ist, es vorzuziehen zur Erhöhung der Schwierigkeit der Untersuchung des Prüfprogramms, daß das Prüfprogramm anstelle des Prüfstart­ befehls in einer Mehrzahl von Plätzen des Hauptprogramms gesetzt wird.Furthermore, it is in the case that the test program is relatively small (for example, a up to a few tens of bytes) is preferable to increase the difficulty of the Examination of the test program that the test program instead of the test start command is set in a plurality of locations of the main program.

Mit Bezug auf die Fig. 4 wird ein Schritt S1 zuerst durch die Zentraleinheit 12 ausgeführt, wenn eine (nicht gezeigte) Stromversorgung der Informations- Verarbeitungsvorrichtung 10 eingeschaltet wird. In dem Schritt S1 liest die Zen­ traleinheit 12 das in der Programmdaten-Speichereinheit 22 des Programm-Nur- Lese-Speichers 18 (Fig. 1) gespeicherte Programm. In dem zweiten Schritt S2 wird festgestellt, ob die gelesenen Programmdaten bestimmte Programmdaten sind, wobei die bestimmten Programmdaten die Ausführung der Echtheitsprüfung festlegen.Referring to FIG. 4, a step S1 is first performed by the CPU 12 when a power supply (not shown) to the information processing device 10 is turned on. In step S1, the central unit 12 reads the program stored in the program data storage unit 22 of the program read-only memory 18 ( FIG. 1). In the second step S2, it is determined whether the program data read is specific program data, the specific program data determining the execution of the authenticity check.

Wenn "NICHT" in dem Schritt S2 festgestellt wird, d. h. wenn die Programmda­ ten, die die Echtheitsprüfung auslösen, keine bestimmten Programmdaten sind, dann wird in einem Schritt S3 eine Verarbeitung gemäß der zu dieser Zeit vorlie­ genden Programmdaten ausgeführt. In einem Schritt S4 nach dem Schritt S3 legt die Zentraleinheit 12 fest, ob das Programm beendet wird. Wenn "JA" festgestellt wird, dann wird die Verarbeitung beendet. Wenn jedoch "NEIN" festgestellt wird, dann springt die Verarbeitung zu dem vorherigen Schritt S1 zurück. Also wird durch Wiederholen der Schritte S1-S4 das in der Programmdaten- Speichereinheit 22 gespeicherte Programm der Reihe nach ausgeführt. In diesem Zustand wird das Steuersignal (beispielsweise das Schreibsignal) nicht an dem Wählelement 30 der Adressen-Verarbeitungseinheit 22 angelegt, wodurch ein Zustand, daß der Eingang X ausgesucht ist, in dem Wählelement 30 festgehalten wird. Demgemäß werden die von der Zentraleinheit 12 ausgegebenen ersten Adreßdaten der Programmspeichereinheit 22 ausgegeben.If "NOT" is determined in step S2, ie if the program data which trigger the authenticity check is not specific program data, then processing is carried out in step S3 in accordance with the program data available at that time. In a step S4 after step S3, the central unit 12 determines whether the program is ended. If "YES" is determined, the processing is ended. However, if "NO" is determined, then processing loops back to the previous step S1. Thus, by repeating steps S1-S4, the program stored in the program data storage unit 22 is executed in order. In this state, the control signal (e.g., the write signal) is not applied to the selector 30 of the address processing unit 22 , whereby a state that the input X is selected is held in the selector 30 . Accordingly, the first address data of the program storage unit 22 output from the CPU 12 is output.

Wenn der Befehl für das Ausführen des Prüfprogramms in der Zentraleinheit 12 während der Durchführung, wobei die jeweiligen Befehle der Durchführung in dem Programmbereich der Reihe nach durch Wiederholen der Schritte S1-S4 ausgeführt werden, wobei die im Schritt 2 bestimmt wird, eingegeben wird, dann geht die Verarbeitung zu dem Schritt S5 weiter. Im Fall, daß der Befehl, d. h. die bestimmten Programmdaten, in der Adresse "030Eh" gesetzt worden sind, wie in der Fig. 3 gezeigt ist, geht die Zentraleinheit 12 zu einem Zeitpunkt zu dem Schritt S5 weiter, bei dem die Adresse zu der Adresse "030Eh" heraufgesetzt worden ist.If the command for executing the test program in the CPU 12 during execution is input, the respective execution commands in the program area are sequentially executed by repeating steps S1-S4 determined in step 2, then Processing proceeds to step S5. In the case that the instruction, that is, the specific program data, has been set in the address "030Eh" as shown in Fig. 3, the CPU 12 proceeds to step S5 at a time when the address is the Address "030Eh" has been increased.

In dem Schritt S5 liest die Zentraleinheit 12 das Prüfprogramm und die Prüfdaten ein, wobei beide in dem Programmbereich, der in Fig. 2 gezeigt ist, angeordnet sind. Die Zentraleinheit 12 schreibt bzw. kopiert beide in den Arbeitsspeicher 20. Hierfür wird ein Schritt S6 gemäß des Prüfprogramms und der Prüfdaten, die in dem Arbeitsspeicher 20 kopiert sind, durchgeführt. Wie auch immer wird das in dem Arbeitsspeicher 20 kopierte Prüfprogramm nach der Fertigstellung der Prü­ fung vernichtet.In step S5, the central unit 12 reads in the test program and the test data, both of which are arranged in the program area shown in FIG. 2. The central processing unit 12 writes or copies both into the working memory 20 . For this purpose, a step S6 is carried out in accordance with the test program and the test data copied in the working memory 20 . However, the test program copied into the working memory 20 is destroyed after the test is completed.

Ein Unterprogramm des Schrittes S6 ist in der Fig. 5 im Detail gezeigt. In einem Schritt S11 der Fig. 5 erzeugt die Zentraleinheit 12 zuerst das Steuersignal mittels des Steuerbusses, um die in dem Programm-Nur-Lese-Speicher 18, der in Fig. 1 gezeigt ist, angeordnete Adressen-Verarbeitungseinheit 24 freizugeben. Insbeson­ dere gibt die Zentraleinheit 12 das Schreibsignal (Steuersignal) dem Wählelement 30 des Programm-Nur-Lese-Speichers 18 durch den Steuerbus weiter. Das Schreibsignal wird normalerweise nicht einem Programm-Nur-Lese-Speicher (Nur-Lese-Speicher) während der Programmdurchführung des Nur-Lese-Speicher zugeführt, wobei durch Ausgeben des Schreibsignals zu dem Programm-Nur- Lese-Speicher 18 das Wählelement 30 der Adressen-Verarbeitungseinheit 24 ver­ anlaßt wird, den Eingang Y auszuwählen. Der Schritt S11 stellt ein Steuersignal- Anlegungsmittel dar.A subroutine of step S6 is shown in detail in FIG. 5. In a step S11 of FIG. 5, the central processing unit 12 first generates the control signal by means of the control bus in order to release the address processing unit 24 arranged in the program read-only memory 18 shown in FIG. 1. In particular, the central unit 12 passes the write signal (control signal) to the selection element 30 of the program read-only memory 18 through the control bus. The write signal is not normally supplied to a program read-only memory during program execution of the read-only memory, and by outputting the write signal to the program read-only memory 18, the selector 30 of FIG Address processing unit 24 is caused to select the Y input ver. Step S11 represents control signal applying means.

Weiterhin kann anstelle des oben beschriebenen, als Steuersignal verwendeten Schreibsignals, ein Steuersignal dem Wählelement 30 zugeführt werden, wenn die Zentraleinheit 12 eine bestimmte Adresse der Programmdaten-Speichereinheit 22 des Programm-Nur-Lese-Speicher 18 ausführt. In einem solchen Fall, obwohl nicht gezeigt, kann ein Adressenvergleichselement vorgesehen sein, wobei das Adressenvergleichselement der Reihe nach die über den Adreßbus vor der Zen­ traleinheit 12 ausgegebenen Adreßdaten mit den bestimmten Adressen vergleicht. Wenn durch das Adressenvergleichselement ermittelt wird, daß beide Adressen miteinander übereinstimmen, dann wird das Steuersignal an das Wählelement angelegt.Furthermore, instead of the above-described write signal used as a control signal, a control signal can be supplied to the selection element 30 if the central unit 12 executes a specific address of the program data storage unit 22 of the program read-only memory 18 . In such a case, although not shown, an address comparison element can be provided, the address comparison element in turn comparing the address data output via the address bus in front of the central unit 12 with the determined addresses. If it is determined by the address comparison element that both addresses coincide with one another, then the control signal is applied to the selection element.

Bei einem nachfolgenden Schritt S12 gibt die Zentraleinheit 12 die Adreßdaten (die ersten Adreßdaten) aus, um die Programmdaten-Speichereinheit 22 des Pro­ gramm-Nur-Lese-Speicher S18 zu lesen. Insbesondere werden genau nach dem Schritt S11, in dem die Steuerung ausgegeben wird, in dem Schritt S12, welcher als ein Adressen-Eingabemittel wirkt, die ersten Adreßdaten in der Adressen- Verarbeitungseinheit 24 eingegeben, wie eine Nur-Lese-Speicheradresse durch den Adreßbus der Zentraleinheit 12. Die Adressen-Verarbeitungseinheit 24 verar­ beitet aber die ersten Adreßdaten, wie in dem Ausführungsbeispiel der Fig. 2 be­ schrieben ist, und führt ein verarbeitetes Adressenergebnis (zweite Adreßdaten) zu dem Programm-Nur-Lese-Speicher 18.At a subsequent step S12, the CPU 12 outputs the address data (the first address data) to read the program data storage unit 22 of the program read-only memory S18. Specifically, just after step S11 in which control is output, in step S12, which acts as an address input means, the first address data is input to the address processing unit 24 , such as a read-only memory address, through the address bus Central unit 12 . However, the address processing unit 24 processes the first address data, as described in the exemplary embodiment in FIG. 2, and leads a processed address result (second address data) to the program read-only memory 18 .

Anschließend wird in einem Schritt S13 festgelegt, ob die Programmdaten einem wahren Wert entsprechen, wobei die Programmdaten, gemäß der durch die Adres­ sen-Verarbeitungseinheit 24 verarbeiteten zweiten Adreßdaten, von der Pro­ grammdaten-Speichereinheit 22 gelesen worden sind. Das bedeutet, daß der Schritt S13 Festlegungsmittel umfaßt, die bestimmen, ob die in dem Arbeitsspei­ cher 20 gelesenen Prüfdaten und die Programmdaten miteinander übereinstim­ men, wobei beide Daten miteinander verglichen werden. Es wird angenommen, daß die aus der Adresse, welche gemäß einer in der Adressen- Verarbeitungseinheit 24 vorher bestimmten Regel verarbeitet worden ist, gelese­ nen Programmdaten mit den vorher gesetzten Prüfdaten übereinstimmen. Daher wird in diesem Fall "JA" bestimmt. Jedoch wird im Fall eines falschen Pro­ gramm-Nur-Lese-Speichers, der nicht mit der Adressen-Verarbeitungseinheit 24 versehen ist, oder eines falschen Nur-Lese-Speichers, in dem eine Einheit gleich der Adressen-Verarbeitungseinheit 24 existiert, aber die Adreßverarbeitung nicht konform zu der bestimmten Regel ist, im Schritt S13 "NEIN" bestimmt.It is then determined in a step S13 whether the program data corresponds to a true value, the program data having been read by the program data storage unit 22 in accordance with the second address data processed by the address processing unit 24 . That is, step S13 includes setting means which determine whether the test data read in the working memory 20 and the program data match each other, both data being compared with each other. It is assumed that the program data read from the address which has been processed in accordance with a rule predetermined in the address processing unit 24 match the previously set test data. Therefore, "YES" is determined in this case. However, in the case of a wrong program read-only memory, which is not provided with the address processing unit 24 , or a wrong read-only memory, in which a unit exists equal to the address processing unit 24 , the address processing is not in conformity with the determined rule, "NO" is determined in step S13.

Weiterhin ist es im Fall, daß der echte bzw. wahre Programm-Nur-Lese-Speicher als "JA" in dem Schritt S13 bestimmt worden ist, so, daß die Verarbeitung zu ei­ ner normalen Programmverarbeitung zurückkehrt. Andererseits ist es im Fall ei­ nes nachgeahmten Programm-Nur-Lese-Speichers, der mit "NEIN" bestimmt worden ist, so, daß in einem nächsten Schritt S14 die Zentraleinheit 12 eine Warnmeldung, beispielsweise in der Anzeigevorrichtung 14 (Fig. 1), anzeigt wird, wie "Dieser Programm-Nur-Lese-Speicher (Kassette) ist eine Fälschung und wird daher nicht in diesem Gerät verarbeitet", wodurch das Programm in dem Schritt S15 zwangsläufig beendet wird. Daher wird es im Fall einer Nachahmung un­ möglich, das Programm ununterbrochen weiter zu verarbeiten. Das heißt, daß die Schritte S14 und S15 gleich den Mitteln zur zwangsläufigen Programmbeendi­ gung sind.Furthermore, in the case where the real program read-only memory has been determined as "YES" in step S13, the processing returns to normal program processing. On the other hand, in the case of an imitated program read-only memory which has been determined with "NO", the central unit 12 sends a warning message in a next step S14, for example in the display device 14 ( FIG. 1), indicates how "This program read-only memory (cassette) is a counterfeit and is therefore not processed in this device", whereby the program is inevitably ended in step S15. Therefore, in the case of imitation, it becomes impossible to continue processing the program continuously. That is, steps S14 and S15 are equal to the inevitable program termination means.

Weiterhin wird in der Beschreibung oben, in dem Schritt S13, der ein Bestim­ mungsmittel ist, verglichen, ob die gemäß der zweiten Adreßdaten gelesenen Pro­ grammdaten mit den vorher gesetzten Prüfdaten miteinander übereinstimmen, wobei beide nicht miteinander übereinstimmen könnten, und wobei beide ein vor­ bestimmtes und vorher gesetztes Verhältnis (Zustand) zueinander haben könnten. Es kann ein willkürlich vorher festgesetztes Verhältnis gesetzt werden, wobei das Verhältnis, beispielsweise ein Verhältnis ist, das im gegenseitigen Vergleich, die einen größer oder kleiner um eine vorher festgesetzte Anzahl sind, bzw. ein Ver­ hältnis ist, daß beide miteinander übereinstimmen, wenn eine im voraus festge­ legte Berechnung auf die einen (und/oder die anderen) angewendet wird bzw. ein Verhältnis ist, bei dem die absoluten Werte der beiden einander gleich sind und so weiter. Furthermore, in the description above, in step S13, a determination means is compared, whether the Pro read according to the second address data the gram data agree with the previously set test data, where both may not match, and where both are one before certain and previously set relationship (state) could have to each other. An arbitrarily predetermined ratio can be set, whereby the Ratio, for example, a ratio that is compared by comparison are larger or smaller by a predetermined number, or a ver Ratio is that both agree with each other if one is fixed in advance put calculation applied to one (and / or the other) Ratio is where the absolute values of the two are equal to each other and so further.  

In dem Ausführungsbeispiel der Fig. 2 können, wenn die passenden Instrumente verwendet werden, die Programmdaten vollständig von der Programmdaten- Speichereinheit 22 ausgelesen und kopiert werden. Jedenfalls ist es, auch wenn nur die Programmdaten von der Programmdaten-Speichereinheit 22 wiederge­ speichert werden, unmöglich, daß das wiedergespeicherte Programm im Gegen­ satz zum echten Produkt ausgeführt wird.In the exemplary embodiment in FIG. 2, if the appropriate instruments are used, the program data can be completely read out and copied from the program data storage unit 22 . In any case, even if only the program data is stored again from the program data storage unit 22 , it is impossible that the restored program is executed in opposition to the real product.

Insbesondere kann der oben beschriebene Adressen-Modifikationsprozeß nicht ausgeführt werden, selbst wenn nur die Programmdaten wiedergespeichert sind, in dem Fall, daß die Adressen-Verarbeitungseinheit 24 und die Code-Speichereinheit 26 nicht in einem Speicher einer Person versehen sind, die versucht, die Pro­ grammdaten des Programm-Nur-Lese-Speichers 18 gesetzwidrig zu benutzen, wenn die die Programmprüfung bestimmenden Programmdaten ausgelesen wer­ den. Daher werden die ersten, nicht identifizierten Adreßdaten A0-A15 in die Programmdaten-Speichereinheit 22 eingegeben. Auch wenn ein solcher Prüfbe­ fehl besteht, werden die Programmdaten von der durch die ersten Adreßdaten A0-A15 festgelegten Adresse gelesen. In diesem Fall sind die Programmdaten un­ terschiedlich zu den Programmdaten, die aus einer durch die zweiten Adreßdaten A0'-A7' und A8-A5 erhalten in der Ausführungsform der Fig. 2, festgelegten Adresse gelesen worden sind. Nicht-Übereinstimmung wird durch Vergleichen mit den vorher in dem Schritt S13 gesetzten Prüfdaten ermittelt. Anschließend wird, wenn das Unterscheidungsergebnis der nicht Übereinstimmung erhalten ist, "NEIN" in dem Schritt S13 festgestellt, wodurch das Programm zwangsläufig beendet wird.In particular, the address modification process described above cannot be carried out even if only the program data is restored, in the event that the address processing unit 24 and the code storage unit 26 are not stored in a memory of a person trying to access the pro to use illegal program data of the program read-only memory 18 when the program data determining the program check is read out. Therefore, the first unidentified address data A0-A15 is input to the program data storage unit 22 . Even if such a test command fails, the program data are read from the address specified by the first address data A0-A15. In this case, the program data is different from the program data read from an address specified by the second address data A0'-A7 'and A8-A5 in the embodiment of Fig. 2. Mismatch is determined by comparison with the test data previously set in step S13. Subsequently, if the discrimination result of the mismatch is obtained, "NO" is determined in step S13, thereby forcibly terminating the program.

Um die derartige Zwangsbeendigung des Programms zu vermeiden, ist es erfor­ derlich, die bestimmten Programmdaten, die den Prüfungsstart in dem Schritt S2 in Fig. 4 auslösen, und den Programmschritt (Adresse) hiervon zu analysieren. Weiter ist es erforderlich, alle Elemente, solche wie eine Operationsart in dem Rechenelement 28 und den Adreßrechencode, die in dem Prüfprogramm (Fig. 2) gesetzten Prüfdaten usw., zu analysieren. Im Fall, daß der Programm-Nur-Lese- Speicher 18 beispielsweise durch einen maskierten Nur-Lese-Speicher realisiert ist, ist es sehr schwer, ein derartiges Element zu untersuchen, und daher ist für die Untersuchung eine aufwendige Einrichtung und eine lange Zeit erforderlich.In order to avoid the compulsory termination of the program in this way, it is necessary to analyze the specific program data which trigger the start of the test in step S2 in FIG. 4 and the program step (address) thereof. Furthermore, it is necessary to analyze all elements such as an operation type in the arithmetic element 28 and the address arithmetic code, the test data etc. set in the test program ( FIG. 2). In the case that the program read-only memory 18 is realized by a masked read-only memory, for example, it is very difficult to examine such an element, and therefore the examination requires a complex device and a long time .

Andererseits kann im Fall, daß die Elemente, wie die Operationsart in dem Re­ chenelement und die Adreßberechnung für jede Art des Programm-Nur-Lese- Speichers, Spieltitel im Fall einer Spielkassette, oder einer Programmversion ge­ ändert werden, ein Untersuchungsergebnis nicht auf andere Programm-Nur-Lese- Speicher angewendet werden, wobei dies gilt, selbst wenn alle Elemente eines vorhandenen Programm-Nur-Lese-Speichers untersucht worden sind. Daher ist es für eine Person, die versucht das Programm gesetzwidrig zu benutzen, erforder­ lich, daß alle Elemente zu jeder Zeit erneut untersucht werden. Nach dem gezeig­ ten Ausführungsbeispiel, ist es also angesichts der Zeit und der erforderlichen Kosten für die Untersuchung möglich, die gesetzwidrige Benutzung des Pro­ gramm-Nur-Lese-Speichers wirksam zu unterbinden.On the other hand, in the event that the elements such as the type of operation in the Re chenelement and the address calculation for each type of program read-only Memory, game title in the case of a game cassette, or a program version be changed, an examination result not to other program-read-only Memory can be applied, even if all elements of one existing program read-only memory have been examined. Therefore, it is for a person who tries to use the program illegally Lich that all elements are examined again at any time. According to the shown th embodiment, so it is given the time and the required Costs for the investigation possible, the illegal use of the Pro effectively prevent read-only memory.

Fig. 6 ist ein abgeändertes Beispiel des Ausführungsbeispiels in Fig. 2. In dem Ausführungsbeispiel in Fig. 6 weist das Rechenmittel der Adressen- Verarbeitungseinheit 24 eine Mehrzahl von (n) Rechenelementen 281-28n auf. Die niedrigeren 8 Bits A0-A7 der ersten Adreßdaten des Adreßbusses werden an den entsprechenden Eingängen der entsprechenden Rechenelemente 281-28n eingegeben. Entsprechenderweise empfangen andere Eingänge in der Regel den Adreßrechencode a0-a7 von 8 Bits, welcher von der Code-Speichereinheit 26 ausgegeben worden ist. Weiterhin wird an dem Wählelement 30 ein vorher in der Code-Speichereinheit 26 gesetzter Rechenwahlcode c0-cX zusammen mit dem Steuersignal zugeführt. Die Anzahl der Bits des Rechenwahlcodes c0-cX kann entsprechend der Anzahl der Rechenelemente (n) gesetzt werden. Im Fall, daß vier (4) Rechenelemente 28 vorhanden sind, beträgt die Anzahl der Bits 2. Im Fall, daß acht (8) Rechenelemente vorhanden sind, können 3 Bits verwendet wer­ den. Weiterhin ist der Rechenwahlcode c0-cX gesetzt worden, um jedes von mehreren Rechenelementen 281-28n auszuwählen. FIG. 6 is a modified example of the embodiment in FIG. 2. In the embodiment in FIG. 6, the computing means of the address processing unit 24 has a plurality of computing elements 281-28 n. The lower 8 bits A0-A7 of the first address data of the address bus are input to the corresponding inputs of the corresponding computing elements 281-28 n. Correspondingly, other inputs generally receive the 8-bit address computing code a0-a7, which has been output by the code storage unit 26 . Furthermore, an arithmetic selection code c0-cX previously set in the code storage unit 26 is supplied to the selection element 30 together with the control signal. The number of bits of the arithmetic selection code c0-cX can be set according to the number of arithmetic elements (n). In the event that four ( 4 ) computing elements 28 are present, the number of bits is 2 . In the event that there are eight ( 8 ) computing elements, 3 bits can be used. Furthermore, the arithmetic selection code c0-cX has been set to select each of a plurality of arithmetic elements 281-28 n.

In dem Ausführungsbeispiel der Fig. 6 berechnen bzw. verändern, ähnlich dem Rechenelement 28 des Ausführungsbeispiels in Fig. 2, die entsprechenden Re­ chenelemente 281-28n die Adresse, weshalb eine bestimmte Beschreibung einer solchen Adressenberechnung weggelassen werden kann. Jedenfalls wird in dem Ausführungsbeispiel der Fig. 6 vorausgesetzt, daß die entsprechenden Rechen­ elemente 281-28n verschiedene Arten von Rechenoperationen durchführen kön­ nen. Wenn verschiedene Rechenelemente durch den Rechencode c0-cX für jede Art von Programm-Nur-Lese-Speicher (Spieltitel) bzw. einer Programmversion ausgewählt werden können, dann wächst der Schwierigkeitsgrad der Programm- Untersuchung, die in der Fig. 2 beschrieben ist. Die gesetzwidrige Benutzung wird daher erschwert.In the embodiment of FIG. 6 calculate or change, similarly to the computing element 28 of the embodiment in FIG. 2, the corresponding computing elements 281-28 n the address, for which reason a specific description of such an address calculation can be omitted. In any case, it is assumed in the embodiment of FIG. 6 that the corresponding computing elements 281-28 n can perform different types of computing operations. If different arithmetic elements can be selected by the arithmetic code c0-cX for each type of program read-only memory (game title) or a program version, the degree of difficulty of the program examination, which is described in FIG. 2, increases. Illegal use is therefore made more difficult.

Das Ausführungsbeispiel gemäß der Fig. 6 bietet weitere Vorteile. Insbesondere im Fall, daß nur ein Rechenelement in einem Chip, wie in der Fig. 2 gezeigt ist, angeformt ist und das Rechenelement gemäß der Produktart oder Programmver­ sion ausgewechselt worden ist, dann ist in der Zeit, in der das Rechenelement ausgetauscht ist, ein Auswechseln einer Druckmaske erforderlich. Wenn die Mehrzahl der Rechenelemente 281-28n eingebettet sind, wie in der Fig. 6 ge­ zeigt ist, ist es im Gegensatz möglich, das Rechenelement auszuwählen, wobei die Auswahl der Art der Rechenoperation nur durch Verändern des Rechenwahl­ codes ermöglicht wird. Andererseits kann der Rechenwahlcode in dem gleichen Druckverfahrensschritt des Adreßrechencodes hergestellt werden. Gemäß des Ausführungsbeispiels in Fig. 6 ist es möglich, den Programm-Nur-Lese-Speicher zu niedrigen Kosten herzustellen, wenn das Rechenelement geändert wird.The embodiment according to FIG. 6 offers further advantages. In particular, in the event that only one computing element is formed on a chip, as shown in FIG. 2, and the computing element has been replaced in accordance with the type of product or program version, then there is a time in which the computing element is replaced Replacement of a print mask required. In contrast, when the plurality of the arithmetic elements 281-28 n are embedded, as shown in FIG. 6, it is possible to select the arithmetic element, the selection of the type of arithmetic operation being made possible only by changing the arithmetic selection code. On the other hand, the arithmetic selection code can be produced in the same printing process step of the address arithmetic code. According to the embodiment in FIG. 6, it is possible to manufacture the program read-only memory at low cost when the computing element is changed.

In dem Ausführungsbeispiel der Fig. 6 wählt das Wählelement 30 den Eingang X, wenn das Steuersignal vorhanden ist. Das Wählelement wählt den Eingang Y, wenn kein Steuersignal vorhanden ist, wodurch die ersten Adreßdaten oder die zweiten Adreßdaten entsprechend der An- oder Abwesenheit des Steuersignals ausgegeben werden. Weiterhin wird in der Fig. 6 in Klammern ein Fall gezeigt, bei dem alle Bits der Adreßdaten A0-A15 abgeändert und verarbeitet worden sind. Eine Abarbeitung in einem derartigen Fall kann in einfacher Weise anhand der vorherigen Beschreibung für das Ausführungsbeispiel in Fig. 2 nachvollzogen werden und kann daher hier ausgelassen werden.In the exemplary embodiment in FIG. 6, the selection element 30 selects the input X if the control signal is present. The selector selects the Y input when there is no control signal, thereby outputting the first address data or the second address data in accordance with the presence or absence of the control signal. Furthermore, a case is shown in brackets in FIG. 6 in which all bits of the address data A0-A15 have been modified and processed. Processing in such a case can be easily understood on the basis of the previous description for the exemplary embodiment in FIG. 2 and can therefore be omitted here.

Weiterhin werden in den vorher beschriebenen Ausführungsbeispielen die durch Berechnung eines Teiles oder der gesamten Teile durch das Rechenelement 28 (281-28n) entstandenen Adreßdaten (zweite Adreßdaten) durch die Adressen- Verarbeitungseinheit 24 ausgegeben. Wenn das Steuersignal nicht vorhanden ist, dann werden die von der Zentraleinheit 12 (die ersten Adreßdaten) ausgegebenen Adreßdaten von der Adressen-Verarbeitungseinheit 24 ausgewählt und ausgege­ ben. Wenn kein Steuersignal besteht, können dritte, durch einen zweiten Rechen­ schritt entstandene, Adreßdaten ausgegeben werden, wobei der zweite Rechen­ schritt zu dem Rechenschritt der zweiten Adreßdaten in den ersten Adreßdaten unterschiedlich ist.Furthermore, in the exemplary embodiments described above , the address data (second address data) generated by computing part or all of the parts by the computing element 28 ( 281-28 n) are output by the address processing unit 24 . If the control signal is not present, then the address data output from the CPU 12 (the first address data) is selected and output by the address processing unit 24 . If there is no control signal, third address data generated by a second computing step can be output, the second computing step being different from the computing step of the second address data in the first address data.

Ein derartiges Ausführungsbeispiel ist in Fig. 7 gezeigt. In dem Ausführungsbei­ spiel in Fig. 7 ist ein derartiges Rechenelement 28' zusätzlich zu dem Rechenele­ ment 28 und dem Wählelement 30 des Ausführungsbeispieles in Fig. 2 in der Adressen-Verarbeitungseinheit 24 angeordnet. Weiterhin werden zu dem jeweili­ gen Eingang der Rechenelemente 28 und 28' die unteren 8 Bits A0-A7 der Adreßdaten A0-A15 (erste Adreßdaten) von dem Adreßbus der Zentraleinheit 12, so wie sie sind, angelegt. Der Adreßrechencode a0-a7 von 8 Bits, die in der Code-Speichereinheit 26 gesetzt worden sind, wird an den jeweiligen anderen Eingängen der Rechenelemente 28 und 28' zusammen angelegt. Die Rechenele­ mente 28 und 28' werden in der Weise ausgewählt, daß die Rechenelemente 28 und 28' eine erste Rechenart, beziehungsweise eine zweite unterschiedliche Re­ chenart ausführen können.Such an embodiment is shown in FIG. 7. In the exemplary embodiment in FIG. 7, such a computing element 28 'is arranged in addition to the computing element 28 and the selection element 30 of the exemplary embodiment in FIG. 2 in the address processing unit 24 . Furthermore, the lower 8 bits A0-A7 of the address data A0-A15 (first address data) from the address bus of the central unit 12 , as they are, are applied to the respective input of the computing elements 28 and 28 '. The address arithmetic code a0-a7 of 8 bits set in the code storage unit 26 is applied together at the respective other inputs of the arithmetic elements 28 and 28 '. The computing elements 28 and 28 'are selected in such a way that the computing elements 28 and 28 ' can perform a first calculation type or a second different calculation type.

Das Rechenelement 28 gibt ein erstes Rechenergebnis A0'-A7' des Adreßre­ chencodes a0-a7 und der niedrigeren 8 Bits A0-A7 aus, wobei das Rechenele­ ment 28 sie an einen Eingang X des Wählelementes 30 legt. Das Rechenelement 28' gibt ein zweites Rechenergebnis A0"-A7" des Adreßrechencodes a0-a7 und der niedrigeren 8 Bits A0-A7 aus, um diese an den anderen Eingang Y des Wählelementes 30 zu legen. Einer dieser Eingänge A0'-A7' und A0"-A7" des Rechenelementes 28 und 28' wird durch das Wählelement 30 ausgewählt. An dem Wählelement 30 wird das Steuersignal, d. h. beispielsweise das Schreibsignal, von der Zentraleinheit 12 angelegt und der Rechenwahlcode c0-cX, das in der Code-Speichereinheit 26 gespeichert ist, angelegt. Daher wählt das Wählelement 30 den Ausgang des Rechenelementes 28, d. h. den Eingang X, wenn das Steuersi­ gnal existiert, damit die Adreßdaten A0'-A7' der durch das Rechenelement 28 verarbeiteten niedrigeren 8 Bits ausgegeben werden. Das Wählelement 30 wählt den Ausgang des Rechenelementes 28', d. h. den Eingang Y, wenn das Steuersi­ gnal nicht vorliegt, damit die Adreßdaten A0"-A7" der niedrigeren 8 Bits durch das Rechenelement 28' verarbeitet werden können.The computing element 28 outputs a first computing result A0'-A7 'of the address code a0-a7 and the lower 8 bits A0-A7, the computing element 28 applying them to an input X of the selection element 30 . The arithmetic element 28 'outputs a second arithmetic result A0 "-A7" of the address arithmetic code a0-a7 and the lower 8 bits A0-A7 in order to apply them to the other input Y of the selector element 30 . One of these inputs A0'-A7 'and A0 "-A7" of the computing element 28 and 28 ' is selected by the selection element 30 . The control signal, ie for example the write signal, is applied to the selection element 30 by the central processing unit 12 and the arithmetic selection code c0-cX, which is stored in the code storage unit 26 , is applied. Therefore, the selection element 30 selects the output of the computing element 28 , ie the input X, if the control signal exists, so that the address data A0'-A7 'of the lower 8 bits processed by the computing element 28 are output. The selection element 30 selects the output of the computing element 28 ', ie the input Y when the control signal is not present, so that the address data A0 "-A7" of the lower 8 bits can be processed by the computing element 28 '.

Andererseits sind die oberen 8 Bits A8-A15 der Adreßdaten mit dem Ausgang des Wählelementes 30 gekoppelt, wodurch, wenn das Steuersignal angelegt wird, die Adreßdaten (zweite Adreßdaten) von insgesamt 16 Bits (A0'-A7' + A8-A15) von dem Wählelement 30 bzw. der Adressen-Verarbeitungseinheit 24 aus­ gegeben. Wenn das Steuersignal nicht von dem Wählelement 30 angelegt wird, dann werden die Adreßdaten (die dritten Adreßdaten) von 16 Bits (A0"-A7" + A8-A15) ausgegeben.On the other hand, the upper 8 bits A8-A15 of the address data are coupled to the output of the selector 30 , whereby when the control signal is applied, the address data (second address data) of 16 bits in total (A0'-A7 '+ A8-A15) from that Dialing element 30 and the address processing unit 24 are given. If the control signal is not applied from the selector 30 , then the address data (the third address data) of 16 bits (A0 "-A7" + A8-A15) are output.

Weiterhin können in dem Ausführungsbeispiel der Fig. 7, wie in der Fig. 7 in Klammern dargestellt ist, alle Bits der Adreßdaten A0-A15 durch das Rechen­ element 28 und das Rechenelement 28' logisch verarbeitet werden.Can continue in the embodiment of Fig. 7, as shown in FIG. 7 in parentheses, all the bits of address data A0-A15 through the rake element 28 and the computing element 28 'are logically processed.

In dem Ausführungsbeispiel der Fig. 7 sind die ersten Adreßdaten A0-A15 der Zentraleinheit 12 nicht die Adreßdaten, bei denen die Programmdaten ausgelesen werden können, wobei normalerweise die Zentraleinheit versucht diese auszufüh­ ren. Das bedeutet, daß die ersten Adreßdaten bloß falsche Adreßdaten sind. Das erste Rechenelement 28 und das zweite Rechenelement 28' vertauscht bzw. wan­ delt die ersten Adreßdaten A0-A15 derart um, daß die Programmdaten, die die Zentraleinheit 12 normalerweise versucht auszuführen, korrekt ausgelesen werden können. Das ist der Fall, wenn die zweiten Adreßdaten und die dritten Adreßdaten korrekte Adreßdaten sind.In the embodiment of FIG. 7, the first address data A0-A15 of the central processing unit 12 are not the address data from which the program data can be read, and the central processing unit normally tries to execute them. This means that the first address data are merely incorrect address data. The first arithmetic element 28 and the second arithmetic element 28 'interchanges or converts the first address data A0-A15 such that the program data which the central unit 12 normally tries to execute can be read out correctly. This is the case if the second address data and the third address data are correct address data.

In dem Ausführungsbeispiel der Fig. 7 ist es im Fall, wenn versucht wird, das Programm gesetzwidrig zu benutzen, erforderlich, nicht nur das erste Rechenele­ ment 28 sondern auch das zweite Rechenelement 28' zu untersuchen, wodurch der Schwierigkeitsgrad der Untersuchung weiterhin erhöht wird.In the embodiment of FIG. 7, if an attempt is made to use the program illegally, it is necessary to examine not only the first computing element 28 but also the second computing element 28 ', which further increases the degree of difficulty of the investigation.

Die oben beschriebenen Ausführungsbeispiele sind mit der Adressen- Verarbeitungseinheit 24 in dem Nur-Lese-Speicher 18 versehen, um die Adressen zu verarbeiten bzw. abzuändern, damit sie an der Programmdaten-Speichereinheit 22 angelegt werden können. Wie auch immer ist es möglich, ausgegebene Pro­ grammdaten zu verarbeiten, bzw. abzuändern, ebenso auch bei den Adreßdaten, wenn die gleiche Idee bei den aus der Programmdaten-Speichereinheit 22 ausge­ lesenen Programmdaten angewendet wird.The above-described embodiments are provided with the address processing unit 24 in the read-only memory 18 in order to process or change the addresses so that they can be applied to the program data storage unit 22 . However, it is possible to process or change output program data, as well as for the address data, if the same idea is applied to the program data read out from the program data storage unit 22 .

Ein derartiges Ausführungsbeispiel ist in Fig. 8 gezeigt. Insbesondere in dem Aus­ führungsbeispiel der Fig. 8 umfaßt der Nur-Lese-Speicher 18, zusätzlich zu der Programmdaten-Speichereinheit 22, die Adressen-Verarbeitungseinheit 24 und die Code-Speichereinheit 26 des Ausführungsbeispiels gemäß Fig. 1. Weiterhin ist der Nur-Lese-Speicher mit einer Ausgabedaten-Verarbeitungseinheit 32 verse­ hen, wobei die Ausgabedaten-Verarbeitungseinheit 32 die Programmdaten emp­ fängt, die von der Programmdaten-Speichereinheit 22 ausgegeben werden, und wobei die Ausgabedaten-Verarbeitungseinheit 32 eine vorher festgelegte Pro­ grammdatenverarbeitung ausführt. Insbesondere führt die Ausgabedaten- Verarbeitungseinheit 32 eine zu der oben beschriebenen Adressen- Verarbeitungseinheit 24 ähnliche Operation aus, um die aus der Programmdaten- Speichereinheit 22 gelesenen Programmdaten zu verarbeiten, bzw. zu verändern. Such an embodiment is shown in FIG. 8. In particular, in the exemplary embodiment from FIG. 8, the read-only memory 18 comprises, in addition to the program data storage unit 22 , the address processing unit 24 and the code storage unit 26 of the exemplary embodiment according to FIG. 1. Furthermore, the read-only Memory with an output data processing unit 32 , the output data processing unit 32 receiving the program data output from the program data storage unit 22 , and the output data processing unit 32 executing predetermined program data processing. In particular, the output data processing unit 32 performs an operation similar to the address processing unit 24 described above in order to process or change the program data read from the program data storage unit 22 .

In diesem Fall wird das Steuersignal von der Zentraleinheit 12 an die Adressen- Verarbeitungseinheit 24 und die Ausgabedaten-Verarbeitungseinheit 32 angelegt, wobei die beiden Einheiten 24 und 32 in dem Schritt S11 in Fig. 5 freigegeben werden.In this case, the control signal is applied from the central processing unit 12 to the address processing unit 24 and the output data processing unit 32 , the two units 24 and 32 being released in step S11 in FIG. 5.

Zusätzlich wird in jedem der Ausführungsbeispiele die Code-Speichereinheit 26, wie das Code-Erzeugungsmittel auch, auf dem gleichen Chip des Nur-Lese- Speichers 18 angeordnet. Das Code-Erzeugungsmittel kann fähig sein, einen will­ kürlichen Code (Daten) an das Rechenmittel zu legen, wodurch die Code- Speichereinheit 26 mit einer Struktur ersetzt werden kann, bei der willkürliche Daten durch einen DIP-Schalter und dergleichen oder einem externen Flash ROM, der willkürliche Daten in einer Art und Weise speichert, daß die Daten von außen neu geschrieben werden können, gesetzt werden können.In addition, in each of the exemplary embodiments, the code storage unit 26 , like the code generating means, is arranged on the same chip of the read-only memory 18 . The code generating means may be capable of supplying arbitrary code (data) to the computing means, whereby the code storage unit 26 can be replaced with a structure in which arbitrary data is replaced by a DIP switch and the like or an external flash ROM which stores arbitrary data in a manner that the data can be rewritten from the outside can be set.

Weiterhin ist es in den oben beschriebenen Ausführungsbeispielen im Fall eines falschen Programms so, daß die Ausführung des Programms nach einer vorher festgelegten Zeit zwangsläufig beendet wird. Jedenfalls kann das Programm nach einer vorher festgelegten Zeit beendet werden, bzw. kann im Falle eines Spiels die zwangsläufige Beendigung durch andere Verarbeitungen, wie Parameterwechsel von Zeichen oder löschgesicherten Daten des Spieles oder durch Umkehrung des Spieles zu einem Anfangsstadium, ersetzt werden.Furthermore, in the exemplary embodiments described above, it is in the case of a wrong program so that the execution of the program after a previous set time is inevitably ended. In any case, the program can a predetermined time, or in the case of a game, the inevitable termination by other processing, such as changing parameters of characters or deleted data of the game or by reversing the Game at an early stage, to be replaced.

Obwohl die vorliegende Erfindung im Detail gezeigt und beschrieben worden ist, ist es selbstverständlich, daß sie durch die Art der Darstellung und Beispiele nicht auf diese Lösungen beschränkt ist. Der Erfindungsgedanke und der Schutzbereich der Erfindung sind nur durch den Wortlaut der anliegenden Ansprüche begrenzt.Although the present invention has been shown and described in detail, it goes without saying that by the way of illustration and examples they are not is limited to these solutions. The idea of the invention and the scope of protection the invention is limited only by the wording of the appended claims.

Claims (14)

1. Halbleiter-Speichereinrichtung, in der durch eine Zentraleinheit auszufüh­ rende Programmdaten fest gespeichert sind, und die die Programmdaten von Adressen, die durch Adreßdaten bestimmt sind, ausgibt, umfassend:
ein Programmdaten-Speichermittel für das Festspeichern der Programm­ daten;
ein Code-Erzeugungsmittel für die Erzeugung eines Adreßrechencodes;
und ein Adressen-Verarbeitungsmittel, das erste Adreßdaten erhält, die von der Zentraleinheit ausgegeben werden, in der das Adressen- Verarbeitungsmittel neue zweite Adreßdaten ausgibt; wobei
das Adressen-Verarbeitungsmittel neue zweite Daten ausgibt, die durch Ausführung eines Rechenschritts auf mindestens einem Teil der ersten Adreßdaten erhalten werden, auf der Grundlage des Adreßrechencodes, zu einem Zeitpunkt erfolgt, bei dem ein Steuersignal vorhanden ist, und die zweiten Adreßdaten dem Programmdaten-Speichermittel zuführt und zu einem Zeitpunkt, in dem kein Steuersignal vorhanden ist, die ersten Adreßdaten dem Programmdaten-Speichermittel zuführt.
1. A semiconductor memory device in which program data to be executed by a central unit is permanently stored, and which outputs the program data of addresses which are determined by address data, comprising:
program data storage means for storing the program data;
code generating means for generating an address arithmetic code;
and address processing means receiving first address data output from the central processing unit, in which the address processing means outputs new second address data; in which
the address processing means outputs new second data obtained by performing an arithmetic step on at least part of the first address data based on the address arithmetic code at a time when a control signal is present, and the second address data to the program data storage means supplies and at a time when there is no control signal, the first address data to the program data storage means.
2. Halbleiter-Speichereinrichtung nach Anspruch 1, in der das Adressen- Verarbeitungsmittel ein Rechenmittel zur Berechnung von mindestens ei­ nem Teil der ersten Adreßdaten umfaßt, wobei der Adreßrechencode ver­ wendet wird, um die zweiten Adreßdaten auszugeben, und ein Wählele­ ment, das zweite Adreßdaten zu einem Zeitpunkt ausgibt, in dem das Steu­ ersignal daran angelegt wird, und die ersten Adreßdaten zu einem Zeit­ punkt ausgibt, in dem das Steuersignal nicht daran angelegt wird.2. A semiconductor memory device according to claim 1, in which the address Processing means a computing means for calculating at least one egg nem part of the first address data, the address arithmetic code ver is used to output the second address data and a selector ment that outputs second address data at a time when the tax  first signal is applied thereto, and the first address data at a time outputs point at which the control signal is not applied to it. 3. Halbleiter-Speichereinrichtung nach Anspruch 2, bei der das Rechenmittel eine Mehrzahl von Rechenelementen umfaßt, die jeweils durch Empfan­ gen der ersten Adreßdaten und des Adreßrechencodes verschiedene Arten von Rechenoperationen ausführen können und die Rechenelemente unter­ schiedliche zweite Adreßdaten ausgeben,
wobei das Code-Erzeugungsmittel weiterhin einen Rechenwahlcode für die Auswahl eines von mehreren Rechenelementen erzeugt, und
wobei das Wählelement die zweiten Adreßdaten auswählt, die mit demje­ nigen Rechenelement in Verbindung stehen, das durch den Rechenwahl­ code oder durch die ersten Adreßdaten ausgewählt worden ist.
3. The semiconductor memory device as claimed in claim 2, in which the computing means comprises a plurality of computing elements which can each carry out different types of computing operations by receiving the first address data and the address computing code and output the computing elements under different second address data,
wherein the code generating means further generates an arithmetic selection code for selecting one of a plurality of arithmetic elements, and
wherein the selector selects the second address data associated with the computing element that has been selected by the computing selection code or by the first address data.
4. Halbleiter-Speichereinrichtung nach einem der Ansprüche 1 bis 3, bei der das Programmdaten-Speichermittel bestimmte Programmdaten umfaßt, die eine Ausgabe des Steuersignals während der Programmausführung durch die Zentraleinheit befehlen können.4. A semiconductor memory device according to any one of claims 1 to 3, in which the program data storage means includes certain program data which an output of the control signal during program execution can command the central unit. 5. Halbleiter-Speichereinrichtung nach einem der Ansprüche 1 bis 4, bei der das Programmdaten-Speichermittel, das Code-Erzeugungsmittel und das Adressen-Verarbeitungsmittel in einem einzigen Halbleiterchip ausgeführt sind.5. A semiconductor memory device according to any one of claims 1 to 4, in which the program data storage means, the code generation means and the Address processing means carried out in a single semiconductor chip are. 6. Halbleiter-Speichereinrichtung nach einem der Ansprüche 1 bis 5, bei der das Programmdaten-Speichermittel und das Code-Erzeugungsmittel durch einen Flash-Speicher gebildet werden.6. A semiconductor memory device according to any one of claims 1 to 5, in which the program data storage means and the code generation means a flash memory can be formed. 7. Halbleiter-Speichereinrichtung, in der durch eine Zentraleinheit auszufüh­ rende Programmdaten festgespeichert sind, und die die Programmdaten von Adressen, die durch Adreßdaten bestimmt sind, ausgibt, umfassend:
ein Programmdaten-Speichermittel für das Festspeichern der Programm­ daten;
ein Code-Erzeugungsmittel für die Erzeugung eines Adreßrechencodes;
und ein Adressen-Verarbeitungsmittel, das erste Adreßdaten erhält, die von der Zentraleinheit ausgegeben werden, in der das Adressen- Verarbeitungsmittel neue zweite Adreßdaten ausgibt; wobei
das Adressen-Verarbeitungsmittel neue zweite Daten ausgibt, die durch Ausführung eines Rechenschritts auf mindestens einem Teil der ersten Adreßdaten erhalten werden, auf der Grundlage des Adreßrechencodes, zu einem Zeitpunkt erfolgt, bei dem ein Steuersignal vorhanden ist, und die zweiten Adreßdaten dem Programmdaten-Speichermittel zuführt,
dritte Adreßdaten dem Programmdaten-Speichermittel zuführt, die durch eine Durchführung eines zu dem ersten Rechenschritt unterschiedlichen zweiten Rechenschritts, geschaffen werden, auf mindestens einem Teil der ersten Adreßdaten auf der Grundlage des Adreßrechencodes zu einem Zeitpunkt erfolgt, bei dem kein Steuersignal vorhanden ist.
7. A semiconductor memory device in which program data to be executed by a central unit is stored, and which outputs the program data from addresses which are determined by address data, comprising:
program data storage means for storing the program data;
code generating means for generating an address arithmetic code;
and address processing means receiving first address data output from the central processing unit, in which the address processing means outputs new second address data; in which
the address processing means outputs new second data obtained by performing an arithmetic step on at least a part of the first address data based on the address arithmetic code at a time when a control signal is present, and the second address data to the program data storage means feeds
supplies third address data to the program data storage means, which is created by performing a second calculation step different from the first calculation step, on at least part of the first address data based on the address calculation code at a time when there is no control signal.
8. Halbleiter-Speichereinrichtung nach Anspruch 7, bei der ein erster und ein zweiter Rechenschritt des Adressen-Verarbeitungsmittels die ersten Adreßdaten in Adreßdaten umwandelt, um Programmdaten auszugeben, die normalerweise durch die Zentraleinheit ausgeführt werden.8. The semiconductor memory device according to claim 7, wherein a first and a second computing step of the address processing means the first Converts address data into address data in order to output program data, which are normally carried out by the central unit. 9. Programm-Unterscheidungssystem, umfassend:
eine Nur-Lese-Programmspeichereinheit, die die Programmdaten fest speichert, und
eine Zentraleinheit, die die Programmdaten durch Lesen der Programm­ daten von der Programmspeichereinheit ausführt und die unterscheidet, ob das Programm ein ordnungsgemäßes Programm ist oder nicht, wobei die Programmspeichereinheit umfaßt:
ein Programmdaten-Speichermittel für das Festspeichern der Programm­ daten;
ein Code-Erzeugungsmittel für das Erzeugen eines Adreßrechencodes; und
ein Adressen-Verarbeitungsmittel für das Empfangen von ersten Adreß­ daten, die von der Zentraleinheit ausgegeben werden,
wobei das Adressen-Verarbeitungsmittel
neue zweite Adreßdaten ausgibt, die durch Ausführung eines Rechen­ schritts auf mindestens einem Teil der ersten Adreßdaten erhalten werden, auf der Grundlage des Adreßrechencodes, wenn ein Steuersignal von der Zentraleinheit eingesetzt wird, und die zweiten Adreßdaten dem Pro­ grammdaten-Speichermittel zuführt, und die ersten Adreßdaten zu dem Programmdaten-Speichermittel führt, wenn kein Steuersignal vorhanden ist, und
wobei die Zentraleinheit umfaßt:
ein Steuersignal-Anlegungsmittel, um das Steuersignal dem Adressen- Verarbeitungsmittel der Programmspeichereinheit zuzuführen,
ein Adressen-Ausgabemittel für die Ausgabe der ersten Adreßdaten, um die ersten Adreßdaten kurz nach dem das Steuersignal vorliegt in dem Adressen-Verarbeitungsmittel anzulegen, und
ein Entscheidungsmittel für die Entscheidung der Echtheit der Programm­ speichereinheit, in dem entschieden wird, ob eine vorher festgesetzte Be­ ziehung zwischen den Programmdaten, die durch das Programmdaten- Speichermittel in Übereinstimmung mit den zweiten Adreßdaten gelesen werden, und zwischen im voraus gesetzten Prüfdaten besteht oder nicht.
9. Program differentiation system comprising:
a read-only program storage unit that permanently stores the program data, and
a central processing unit which executes the program data by reading the program data from the program storage unit and which discriminates whether or not the program is a proper program, the program storage unit comprising:
program data storage means for storing the program data;
code generating means for generating an address arithmetic code; and
an address processing means for receiving first address data output from the central processing unit,
the address processing means
outputs new second address data obtained by performing an arithmetic step on at least a part of the first address data based on the address arithmetic code when a control signal from the central processing unit is used and supplies the second address data to the program data storage means, and the first Address data to the program data storage means leads when there is no control signal, and
the central unit comprising:
control signal applying means for supplying the control signal to the address processing means of the program storage unit,
address output means for outputting the first address data to apply the first address data shortly after the control signal is present in the address processing means, and
a decision means for deciding the authenticity of the program storage unit, in which it is decided whether or not there is a predetermined relationship between the program data read by the program data storage means in accordance with the second address data and between test data set in advance .
10. Programm-Unterscheidungssystem nach Anspruch 9, bei dem das Steuer­ signal-Anlegungsmittel ein bestimmtes vorher in dem Programm- Speichermittel festgelegtes Programm umfaßt, und bei dem das Steuersi­ gnal zu einem Zeitpunkt angelegt wird, bei dem das bestimmte Programm ausgelesen wird.10. Program differentiation system according to claim 9, wherein the tax signal application means a certain one previously in the program Storage means fixed program, and in which the Steueri gnal is created at a time when the particular program is read out. 11. Programm-Unterscheidungssystem nach Anspruch 9, bei dem die Zentral­ einheit zusätzlich ein Programm-Beendigungsmittel umfaßt, um das Pro­ gramm zwangsweise zu beenden, wenn ein Unterscheidungsergebnis des Entscheidungsmittels eine falsche Programmspeichereinheit anzeigt.11. Program differentiation system according to claim 9, wherein the central unit additionally includes a program termination means to the Pro  forcibly terminate when a distinction result of the Indicates an incorrect program storage unit by decision. 12. Adressensteuerungsverfahren für eine Halbleiter-Speichereinrichtung, die einen Programm-Nur-Lese-Speicher umfaßt, der durch eine Zentraleinheit auszuführende Programmdaten festspeichert, mit den Schritten:
  • a) Erzeugen eines Adreßrechencodes;
  • b) Ausgeben zweiter Adreßdaten, die durch Anwenden eines Rechen­ schritts an mindestens einem Teil der von der Zentraleinheit ausge­ gebenen ersten Adreßdaten erhalten werden auf der Basis des Adreßrechencodes zu einer Zeit, wenn ein Steuersignal existiert, um die zweiten Adreßdaten dem Programmspeichermittel zuzufüh­ ren; und
  • c) Anlegen der ersten Adreßdaten an die Programmdaten- Speichermittel zu einem Zeitpunkt, bei dem das Steuersignal nicht besteht.
12. Address control method for a semiconductor memory device, which comprises a program read-only memory, which stores program data to be executed by a central unit, with the steps:
  • a) generating an address calculation code;
  • b) outputting second address data obtained by applying an arithmetic step to at least a part of the first address data output from the central processing unit based on the address arithmetic code at a time when a control signal exists to supply the second address data to the program storage means; and
  • c) applying the first address data to the program data storage means at a point in time at which the control signal does not exist.
13. Adressensteuerungsverfahren für eine Halbleiter-Speichereinrichtung, die einen Programm-Nur-Lese-Speicher umfaßt, der durch eine Zentraleinheit auszuführende Programmdaten fest speichert, mit den Schritten:
  • a) Erzeugen eines Adreßrechencodes;
  • b) Ausgeben von neuen zweiten Adreßdaten, die durch Anwenden ei­ nes ersten Rechenschritts an mindestens einem Teil der ersten Adreßdaten erhalten werden, wobei die Adreßdaten von der Zen­ traleinheit auf der Basis des Adreßrechencodes zu einem Zeitpunkt ausgegeben werden, bei dem ein Steuersignal vorhanden ist, um die zweiten Adreßdaten an dem Programmdaten-Speichermittel anzu­ legen; und
  • c) Ausgeben neuer dritter Adreßdaten, die durch Anwenden eines zweiten Rechenschritts, der unterschiedlich zu dem ersten Rechen­ schritt ist, an mindestens einem Teil der ersten Adreßdaten erhalten werden auf der Grundlage des Adreßrechencodes zu einem Zeit­ punkt, bei dem das Steuersignal nicht vorhanden ist, um die zwei­ ten Adreßdaten dem Programmdaten-Speichermittel anzulegen.
13. An address control method for a semiconductor memory device comprising a program read-only memory which permanently stores program data to be executed by a central unit, comprising the steps:
  • a) generating an address calculation code;
  • b) outputting new second address data obtained by applying a first arithmetic step to at least a part of the first address data, the address data being output from the central unit on the basis of the address calculation code at a point in time at which a control signal is present, to apply the second address data to the program data storage means; and
  • c) outputting new third address data obtained by applying a second arithmetic step different from the first arithmetic to at least a part of the first address data based on the address arithmetic code at a time when the control signal is not present, to apply the second address data to the program data storage means.
14. Verfahren zur Programm-Unterscheidung in einer Informationsverarbei­ tungsvorrichtung, die mit einer Nur-Lese-Programm-Speichereinrichtung versehen ist, die Programmdaten fest speichert, wobei die Informations­ verarbeitungsvorrichtung mit einer Zentraleinheit versehen ist, die ein Programm durch Lesen der Programmdaten von der Programmspeicher- Einrichtung ausführt, mit den Schritten:
  • a) Erzeugen eines Adreßrechencodes;
  • b) Ausgeben eines Steuersignals;
  • c) Ausgeben einer ersten Adresse von der Zentraleinheit kurz nach Schritt (b);
  • d) Ausgeben neuer zweiter Adreßdaten, die durch Ausführung eines Rechenschritts an mindestens einem Teil der von der Zentraleinheit ausgegebenen ersten Adreßdaten erhalten werden, auf der Grundla­ ge des Adreßrechencodes zu einem Zeitpunkt, an dem ein Steuersi­ gnal vorhanden ist, um die zweiten Adreßdaten dem Programmda­ ten-Speichermittel zuzuführen;
  • e) Anlegen der ersten Adreßdaten an die Programmdaten- Speichermittel zu einem Zeitpunkt, bei dem das Steuersignal nicht besteht; und
  • f) Entscheiden, ob die von dem Programmdaten-Speichermittel aus­ gelesenen Programmdaten gemäß der zweiten Adreßdaten und vor­ her gesetzten Prüfdaten einen vorher festgelegten Zusammenhang in der Zentraleinheit aufweisen.
14. A method for program discrimination in an information processing apparatus which is provided with a read-only program storage device which permanently stores program data, the information processing device being provided with a central unit which executes a program by reading the program data from the program memory - Setup runs with the steps:
  • a) generating an address calculation code;
  • b) outputting a control signal;
  • c) outputting a first address from the central unit shortly after step (b);
  • d) outputting new second address data obtained by performing a calculation step on at least a part of the first address data output from the central processing unit, based on the address calculation code at a time when a control signal is present to supply the second address data to the program data supply ten storage means;
  • e) applying the first address data to the program data storage means at a point in time at which the control signal does not exist; and
  • f) Decide whether the program data read from the program data storage means according to the second address data and the test data set before have a predetermined relationship in the central unit.
DE10103222A 2000-01-25 2001-01-25 Semiconductor memory device and program discrimination system Expired - Lifetime DE10103222B4 (en)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
JP2000015227A JP2001209531A (en) 2000-01-25 2000-01-25 Semiconductor memorty device and system for distinguishing program
JP2000-15227 2000-01-25

Publications (2)

Publication Number Publication Date
DE10103222A1 true DE10103222A1 (en) 2001-07-26
DE10103222B4 DE10103222B4 (en) 2008-11-20

Family

ID=18542560

Family Applications (1)

Application Number Title Priority Date Filing Date
DE10103222A Expired - Lifetime DE10103222B4 (en) 2000-01-25 2001-01-25 Semiconductor memory device and program discrimination system

Country Status (7)

Country Link
US (1) US6578132B1 (en)
JP (1) JP2001209531A (en)
KR (1) KR100591444B1 (en)
CN (1) CN1286021C (en)
DE (1) DE10103222B4 (en)
GB (1) GB2366025B (en)
TW (1) TW587210B (en)

Families Citing this family (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE10115118A1 (en) * 2001-03-27 2002-10-10 Philips Corp Intellectual Pty Method for the transmission of data via a data bus
US6966837B1 (en) 2001-05-10 2005-11-22 Best Robert M Linked portable and video game systems
US7350081B1 (en) 2002-04-29 2008-03-25 Best Robert M Secure execution of downloaded software
TWI243994B (en) * 2003-09-08 2005-11-21 Mediatek Inc Method and apparatus for protecting a specific memory section
JP4364077B2 (en) * 2004-06-30 2009-11-11 富士通株式会社 Arithmetic device and control method of arithmetic device
US11266911B1 (en) * 2020-09-21 2022-03-08 Nintendo Co., Ltd. Systems and method for identifying modified program data

Family Cites Families (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2820938B2 (en) 1988-07-21 1998-11-05 任天堂株式会社 External memory and information processing device using it
JP2885600B2 (en) * 1993-03-29 1999-04-26 株式会社東芝 Semiconductor integrated circuit
JP3625340B2 (en) * 1996-09-19 2005-03-02 株式会社東芝 Security system
JPH1165936A (en) * 1997-06-12 1999-03-09 Oki Micro Design Miyazaki:Kk Memory device
KR100253310B1 (en) * 1997-08-26 2000-05-01 김영환 Program data protection circuit for semiconductor memory
KR100253328B1 (en) * 1997-09-30 2000-05-01 김영환 Data protect circuit for memory
JP3793629B2 (en) * 1997-10-30 2006-07-05 沖電気工業株式会社 Memory card and memory card device
KR100295647B1 (en) * 1998-03-28 2001-08-07 김영환 Memory data protection circuit
JP2000082010A (en) * 1998-09-04 2000-03-21 Sharp Corp Method and device for data processing with address conversion
KR200312371Y1 (en) * 1998-10-29 2003-07-16 주식회사 하이닉스반도체 Program protection device of nonvolatile memory

Also Published As

Publication number Publication date
CN1316697A (en) 2001-10-10
KR20010076275A (en) 2001-08-11
GB2366025A (en) 2002-02-27
CN1286021C (en) 2006-11-22
KR100591444B1 (en) 2006-06-22
TW587210B (en) 2004-05-11
GB0101741D0 (en) 2001-03-07
JP2001209531A (en) 2001-08-03
GB2366025B (en) 2004-07-21
DE10103222B4 (en) 2008-11-20
US6578132B1 (en) 2003-06-10

Similar Documents

Publication Publication Date Title
DE3210816C2 (en)
DE10000503A1 (en) Data processing device and method for its operation
DE3900248C2 (en) Method for rapid sequence control of digital test patterns and apparatus for carrying out the method
DE19983098B4 (en) Multi-bit display for handling write-to-write errors and eliminating bypass comparators
DE2747384A1 (en) DATA PROCESSING UNIT
DE10196879T5 (en) Non-one-piece multiple field loop processing in a SIMD arrangement
DE2722124A1 (en) ARRANGEMENT FOR DETERMINING THE PRIORITY RANK IN A DP SYSTEM
DE3620982A1 (en) ON COMMAND, MULTIPLE DATA CURRENT (SIMD) COMPUTER SYSTEM
EP0580663A1 (en) Procedure for verifying data-processing systems.
DE10103222A1 (en) Program read only memory for data processing device, supplies first address data or second address data to program datum memory unit when control signal is not available or available respectively
EP3811263B1 (en) Cryptography module and method for operating same
DE4327660C2 (en) Apparatus for manufacturing and manufacturing methods for a semiconductor integrated circuit device and electronic circuit device
DE112013004307T5 (en) Systems and methods for state-based test case generation for software validation
DE3305709A1 (en) METHOD FOR CONTROLLING THE LIGHT EMISSION INTENSITY IN A CURRENT RECORDER AND DEVICE FOR IMPLEMENTING THE METHOD
DE19841893B4 (en) microcontroller
DE3422287C2 (en)
DE2756033A1 (en) METHOD AND EQUIPMENT FOR DIAGNOSING FAULTS IN CALCULATING MACHINES
DE602005003258T2 (en) Control of the execution of an algorithm by an integrated circuit
DE19709975C2 (en) Microcomputer
DE19524863B4 (en) A built-in cyclic redundancy check microprocessor and method of performing cyclic redundancy check operations using the same
DE10254657A1 (en) Microcontroller and associated method for processing the programming of the microcontroller
DE60019833T2 (en) Selection system for executable programs
DE10325513B4 (en) Method and apparatus for creating a behavioral aspect of a formal verification circuit
DE60219551T2 (en) Method for checking the control software of a telecommunication device with a distributed control
EP1602017A2 (en) Method for using a microprocessor and a microprocessor system

Legal Events

Date Code Title Description
8110 Request for examination paragraph 44
8364 No opposition during term of opposition
R071 Expiry of right