JPH07319687A - Data flow controller and memory unit - Google Patents

Data flow controller and memory unit

Info

Publication number
JPH07319687A
JPH07319687A JP6102696A JP10269694A JPH07319687A JP H07319687 A JPH07319687 A JP H07319687A JP 6102696 A JP6102696 A JP 6102696A JP 10269694 A JP10269694 A JP 10269694A JP H07319687 A JPH07319687 A JP H07319687A
Authority
JP
Japan
Prior art keywords
data
input
output
address
memory
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
JP6102696A
Other languages
Japanese (ja)
Other versions
JP3566982B2 (en
Inventor
Masato Yoneda
正人 米田
Masaaki Shibata
昌聰 柴田
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.)
JFE Steel Corp
Original Assignee
Kawasaki Steel Corp
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 Kawasaki Steel Corp filed Critical Kawasaki Steel Corp
Priority to JP10269694A priority Critical patent/JP3566982B2/en
Publication of JPH07319687A publication Critical patent/JPH07319687A/en
Application granted granted Critical
Publication of JP3566982B2 publication Critical patent/JP3566982B2/en
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Abstract

PURPOSE:To prevent the illegal copy of output data by defining replacement data which are normal instructions corresponding to the combination of separated addresses such as branching instructions or the like. CONSTITUTION:A cassette 9 where a software is stored is constituted of a ROM 4 and this data flow controller 10. Then, the output data of a specified address are related not only with address data inputted latest but also the address data inputted before, the combination of the plural address data is defined as key data and the data corresponding to the key data are stored in the data flow controller 10. In the meantime, dummy data (for instance, 'BREAK' data for breaking down a system) are put in the normal ROM 4. Thus, whether or not they are the dummy data, is not recognized at all and what is the key data is not recognized by anyone except the development person who knows all the processing procedure of the software.

Description

【発明の詳細な説明】Detailed Description of the Invention

【0001】[0001]

【産業上の利用分野】本発明は、データを切換えて出力
するデータフロー制御装置およびそのデータフロー制御
装置を内包したメモリ装置に関し、詳細には、CPUと
ソフトウェアにより処理される制御システムあるいはゲ
ーム機等に於て、ソフトウェアの違法コピ−を防ぐ防御
手段として使用されるデータフロー制御装置およびその
制御手段を内蔵したメモリ装置に関する。
BACKGROUND OF THE INVENTION 1. Field of the Invention The present invention relates to a data flow control device for switching and outputting data and a memory device including the data flow control device, and more particularly to a control system or game machine processed by a CPU and software. In particular, the present invention relates to a data flow control device used as a defense means for preventing illegal copying of software, and a memory device incorporating the control means.

【0002】[0002]

【従来の技術】従来の制御システムは、例えば図33に
示すように、データバス1にCRT2、CPU(中央処
理装置)3、ROM4、ターミナル5およびSRAM6
等が接続された構成を有している。ここで、一般的にソ
フトウェアはROM4に格納され、ターミナル5からの
ソフトウェア起動の指示により、選択処理されることに
なり、その結果がCRT2に表示される。また処理途中
で一次的なデータ格納の必要な場合にSRAM6等が利
用される。あるいは、ROM4からのソフトウェアの一
部をSRAM6にダウンロードしてからCPU3で処理
することもある。
2. Description of the Related Art In a conventional control system, for example, as shown in FIG. 33, a CRT 2, a CPU (central processing unit) 3, a ROM 4, a terminal 5, and an SRAM 6 are connected to a data bus 1.
Etc. are connected. Here, the software is generally stored in the ROM 4, and the selection processing is performed according to the instruction of the software activation from the terminal 5, and the result is displayed on the CRT 2. Further, the SRAM 6 and the like are used when temporary data storage is required during the processing. Alternatively, a part of the software from the ROM 4 may be downloaded to the SRAM 6 and then processed by the CPU 3.

【0003】また、このROM4の中に収められたソフ
トウェアは、図34に示すように、各々のデータDはそ
の格納番地を示す特定のアドレスAに1つ1つ格納され
ており、CPU3から与えられるアドレスAにより出力
されるデータDを用いてCPU3でソフトウェアが実行
される。このような制御システムあるいはこのような制
御システムを用いたゲームシステムに於て、多くのソフ
トウェア開発のベンダーを利用すべく、図33のROM
部分がカセット式に着脱可能に構成され、このカセット
9を入れ換えることでそのカセット9に備えられたRO
M4の記憶内容に応じた制御が行われ、あるいはその記
憶内容に応じたゲームが楽しめるようになっている。
As shown in FIG. 34, the software stored in the ROM 4 is such that each data D is stored at a specific address A indicating its storage address one by one, and is supplied from the CPU 3. The software is executed by the CPU 3 using the data D output by the address A. In order to utilize many software development vendors in such a control system or a game system using such a control system, the ROM of FIG.
The part is configured to be detachable in a cassette type, and by replacing the cassette 9, the RO provided in the cassette 9 is replaced.
Control according to the stored contents of M4 is performed, or a game according to the stored contents can be enjoyed.

【0004】[0004]

【発明が解決しようとする課題】このようにソフトウェ
アを収めるROM4の部分がカセット式となっている
と、そのROM4の内容は、アドレス線7からアドレス
Aを与えるだけでデータDをデータ線8に出力してしま
う。このような単純な構造となっているが故に、全ての
アドレスAを順次1つずつ与えて全てのデータDを読み
出すことで、違法コピーがいとも簡単に可能となってし
まう。このため、長い時間かけ多くの人材と資金を投入
して開発されたソフトウェアの正当な権利者の利益を損
うというゆゆしき問題が生じている。
When the portion of the ROM 4 for storing the software is of the cassette type as described above, the content of the ROM 4 is such that the data D is transferred to the data line 8 only by giving the address A from the address line 7. It will output. Due to such a simple structure, illegal copying can be easily performed by sequentially giving all the addresses A one by one and reading all the data D. For this reason, a long-standing problem is caused in that the rightful owner of the software developed by investing a large amount of human resources and funds is lost for a long time.

【0005】そこで、本発明は、このような違法コピー
を不可能とするデータフロー制御装置およびそれを内包
するメモリ装置を提供することを目的とする。
Therefore, it is an object of the present invention to provide a data flow control device and a memory device including the data flow control device, which makes such illegal copying impossible.

【0006】[0006]

【課題を解決するための手段】本発明のデータフロー制
御装置は、 (1 1)第1の入力データが順次入力される第1の入
力端子 (1 2)第2の入力データが順次入力される第2の入
力端子 (1 3)出力データが順次出力される出力端子 (1 4)複数の第1の入力データの、1つもしくは複
数の各配列に対応して定義された1つもしくは複数の置
換データを記憶するメモリ手段 (1 5)第1の入力端子から最新の第1の入力データ
が入力された際に、その最新の第1の入力データを含み
その最新の第1の入力データから入力順に遡った複数の
第1の入力データが、上記配列のいずれか1つに相当す
るか否かに応じて、第2の入力端子から入力された第2
の入力データの少なくとも一部もしくは全部のビットが
その配列に対応して定義された置換データに置換されて
なる第1の出力データ、第2の入力端子から入力された
第2の入力データと同一論理の第2の出力データ、第1
の出力データに基づく論理演算により生成される第3の
出力データ、および第1の出力データと第2の出力デー
タとの双方に基づく演算により生成される第4の出力デ
ータからなるデータ群の中から選択される互いに異なる
データを、上記出力データとして出力端子から出力する
データ切換手段 を備えたことを特徴とするものである。
The data flow control device of the present invention comprises (1) 1) First input terminal to which first input data is sequentially input (1 2) Second input terminal to which second input data is sequentially input (1 3) Output terminal that outputs output data sequentially (1 4) Memory means for storing one or a plurality of replacement data defined corresponding to one or a plurality of arrays of the plurality of first input data (1 5) When the latest first input data is input from the first input terminal, a plurality of first input data including the latest first input data and traced back in the order of input from the latest first input data The second data input from the second input terminal depending on whether the input data corresponds to any one of the above arrays.
Output data in which at least a part or all of the bits of the input data are replaced with replacement data defined corresponding to the array, the same as the second input data input from the second input terminal. Second output data of logic, first
Of the third output data generated by the logical operation based on the output data of and the fourth output data generated by the operation based on both the first output data and the second output data Data switching means for outputting different data selected from the above from the output terminal as the output data.

【0007】ここで、上記(1 4)のメモリ手段が、
(2 1)1つもしくは複数のメモリ領域を備え、該メ
モリ領域それぞれに上記置換データそれぞれを記憶する
ものであり、上記(1 5)のデータ切換手段が、 (3 1)第1の入力端子から順次入力される複数の第
1の入力データからなる検索データと一致するか否かの
検索の対象とされる1つもしくは複数の被検索データが
記憶され、その検索において検索データと被検索データ
いずれかとの一致が検出された場合に、上記メモリ手段
の、一致が検出された被検索データに対応する置換デー
タが記憶されたメモリ領域からその置換データを読み出
すためのアクセス信号を出力するデータ参照手段 (3 2)上記アクセス信号の出力の有無に応じて、第
2の入力端子から入力された第2の入力データの少なく
とも一部もしくは全部のビットが上記メモリ手段から読
み出された置換データに置換されてなる第1の出力デー
タ、前記第2の入力端子から入力された前記第2の入力
データからなる第2の出力データ、第1の出力データに
基づく論理演算により生成される第3の出力データ、お
よび第1の出力データと第2の出力データとの双方に基
づく論理演算により生成される第4の出力データからな
るデータ群の中から選択される互いに異なるデータを、
上記出力データとして出力端子から出力するデータ出力
手段 を備えたものであってもよい。
Here, the above (1 The memory means of 4) is
(2 1) One or a plurality of memory areas are provided, and each of the replacement data is stored in each of the memory areas. The data switching means of 5) is (3) 1) One or a plurality of searched data to be searched for whether or not they match the search data composed of a plurality of first input data sequentially input from the first input terminal are stored, and the search is performed. In the case where a match between the search data and the searched data is detected in, for reading the replacement data from the memory area of the memory means in which the replacement data corresponding to the searched data for which the match is detected is stored. Data reference means for outputting access signal (3 2) Depending on whether or not the access signal is output, at least a part or all of the bits of the second input data input from the second input terminal are replaced with the replacement data read from the memory means. The first output data, the second output data composed of the second input data input from the second input terminal, the third output data generated by a logical operation based on the first output data, And different data selected from the data group consisting of the fourth output data generated by the logical operation based on both the first output data and the second output data,
Data output means for outputting the output data from the output terminal may be provided.

【0008】上記(2 1)のメモリ手段は、上記(2
1)で定義される以上に限定された特定の構成のもの
である必要はないが、例えば、上記(2 1)のメモリ
手段は、エンハンスメントトランジスタとディプレッシ
ョントランジルタとの組合わせにより定義された置換デ
ータを記憶するものであることが好ましい。また上記
(3 1)のデータ参照手段も、上記(3 1)で定義
されるよりも狭く限定される必要はないが、上記(3
1)のデータ参照手段は、エンハンスメントトランジス
タとディプレッショントランジスタとの組合せにより定
義された被検索データを記憶するものであることが好ま
しい。
The above (2 The memory means of 1) is the same as that of
Although it does not have to have a specific configuration defined above in 1), for example, in (2) above. It is preferable that the memory means 1) stores replacement data defined by a combination of the enhancement transistor and the depletion transistor. In addition, (3 The data reference means of 1) is also described in It does not have to be narrower than that defined in 1), but the above (3
It is preferable that the data reference means of 1) stores the searched data defined by the combination of the enhancement transistor and the depletion transistor.

【0009】また、本発明のデータフロー制御装置にお
いて、上記(1 5)のデータ切換手段は、 (4 1)第1の入力端子から最新の第1の入力データ
が入力された際に、その最新の第1の入力データを含み
その最新の第1の入力データから入力順に遡った複数の
第1の入力データが、上記配列を構成する第1の入力デ
ータどうしの間に上記配列を構成しない第1の入力デー
タの嵌入を許容したときの上記配列のいずれか1つを含
むか否かに応じて、第2の入力端子から入力された第2
の入力データの少なくとも一部もしくは全部のビットが
その配列に対応して定義された置換データに置換されて
なる第1の出力データ、第2の入力端子から入力された
第2の入力データと同一論理の第2の出力データ、前記
第1の出力データに基づく論理演算により生成される第
3の出力データ、および第1の出力データと第2の出力
データとの双方に基づく論理演算により生成される第4
の出力データからなるデータ群の中から選択される互い
に異なるデータを、上記出力データとして出力端子から
出力するものであってもよい。
Further, in the data flow control device of the present invention,
And above (1 The data switching means of 5) is (4) 1) The latest first input data from the first input terminal
When is input, the latest first input data is included
A plurality of data traced in the order of input from the latest first input data
The first input data is the first input data forming the above array.
The first input data that does not form the above array between data
Including any one of the above arrays when the insertion of
The second input from the second input terminal depending on whether
At least some or all of the input data
Replaced with the replacement data defined for that array
The first output data, which is input from the second input terminal
Second output data having the same logic as the second input data,
First generated by a logical operation based on the first output data
3 output data, and 1st output data and 2nd output
Fourth generated by logical operation based on both data
Mutually selected from the data group consisting of the output data of
Different data from the output terminal as the above output data
It may be output.

【0010】ここで、上記(1 4)のメモリ手段が、
(5 1)1つもしくは複数のメモリ領域を備え、それ
らのメモリ領域それぞれに、必要に応じて、上記置換デ
ータ、上記配列の検索に用いられる帰還データおよび上
記配列の最終段であるか否かを示す出力制御データを記
憶するものであり、上記(4 1)のデータ切換手段
が、 (6 1)上記(5 1)のメモリ手段から読み出され
た帰還データを格納するレジスタ (6 2)第1の入力端子から入力されれる第1の入力
データと上記レジスタに格納された帰還データとのペア
からなる検索データと一致するか否かの検索の対象とさ
れる1つもしくは複数の被検索データが記憶され、その
検索において検索データと被検索データのいずれかとの
一致が検出された場合に、上記(5 1)のメモリ手段
の、一致が検出された被検索データに対応するメモリ領
域からそのメモリ小域に記憶されたデータを読み出すた
めのアクセス信号を出力するデータ参照手段 (6 3)上記(5 1)のメモリ手段から読み出され
たデータ中の出力制御データに応じて、第2の入力端子
から入力された第2の入力データの少なくとも一部もし
くは全部のビットがメモリ領域から読み出されたデータ
中の置換データに置換されてなる第1の出力データ、第
2の入力端子から入力された第2の入力データと同一論
理の第2の出力データ、前記第1の出力データに基づく
論理演算により生成される第3の出力データ、および第
1の出力データと第2の出力データとの双方に基づく論
理演算により生成される第4の出力データからなるデー
タ群の中から選択される互いに異なるデータを、上記出
力データとして出力端子から出力するデータ出力手段 を備えたものであってもよい。
Here, the above (1 The memory means of 4) is
(5 1) One or a plurality of memory areas are provided, and each of these memory areas indicates, as necessary, the replacement data, the feedback data used for searching the array, and whether or not it is the final stage of the array. The output control data is stored, and the above (4 The data switching means of 1) is (6) 1) Above (5 A register for storing the feedback data read from the memory means of 1) (6) 2) One or a plurality of objects to be searched for whether or not they match search data formed of a pair of first input data input from the first input terminal and feedback data stored in the register. When the searched data is stored and a match between the searched data and the searched data is detected in the search, the above (5 (1) Data reference means for outputting an access signal for reading data stored in the memory sub-area from the memory area corresponding to the searched data for which a match is detected in the memory means of 1). 3) Above (5 According to the output control data in the data read from the memory means of 1), at least some or all of the bits of the second input data input from the second input terminal are read from the memory area. First output data replaced by replacement data in the data, second output data having the same logic as the second input data input from the second input terminal, logical operation based on the first output data Different from each other selected from the data group consisting of the third output data generated by and the fourth output data generated by the logical operation based on both the first output data and the second output data. Data output means for outputting data from the output terminal as the output data may be provided.

【0011】上記(5 1)のメモリ手段は、上記(2
1)のメモリ手段の場合と同様、上記(5 1)で定
義される以上に限定された構成のものである必要はない
が、例えば上記(5 1)のメモリ手段は、エンハンス
メントトランジスタとディプレッショントランジスタと
の組合せにより定義されたデータを記憶するのものであ
ることが好ましい。
Above (5 The memory means of 1) is the same as that of
Similar to the case of the memory means of 1), the above (5 Although it is not necessary that the configuration is more limited than that defined in 1), for example, the above (5 The memory means of 1) preferably stores data defined by a combination of the enhancement transistor and the depletion transistor.

【0012】また、上記(6 2)のデータ参照手段に
ついても同様であり、上記(6 2)のデータ参照手段
は、エンハンスメントトランジスタとディプレッション
トランジスタとの組合せにより定義された被検索データ
を記憶するものであることが好ましい。さらに、本発明
のデータフロー制御装置において、上記(1 5)の前
記データ切換手段は、 (7 1)第1の入力端子から最新の第1の入力データ
が入力された際に、その最新の第1の入力データを含み
その最新の第1の入力データから入力順に遡った複数の
第1の入力データが、上記配列を構成する第1の入力デ
ータどうしの間に上記配列を構成しない各所定数以内の
第1の入力データの嵌入を許容したときの上記配列のい
ずれか1つを含むか否かに応じて、第2の入力端子から
入力された第2の入力データの少なくとも一部もしくは
全部のビットがその配列に対応して定義された置換デー
タに置換されてなる第1の出力データ、前記第2の入力
端子から入力された前記第2の入力データと同一論理の
第2の出力データ、第1の出力データに基づく論理演算
により生成される第3の出力データ、および第1の出力
データと第2の出力データとの双方に基づく論理演算に
より生成される第4の出力データからなるデータ群の中
から選択される互いに異なるデータを、上記出力データ
として出力端子から出力するものであってもよい。
In addition, the above (6 The same applies to the data reference means of 2), and the above (6) It is preferable that the data reference means of 2) stores the searched data defined by the combination of the enhancement transistor and the depletion transistor. Further, in the data flow control device of the present invention, the above (1 The data switching means of 5) is (7) 1) When the latest first input data is input from the first input terminal, a plurality of first input data including the latest first input data and traced back in the order of input from the latest first input data Whether the input data includes any one of the arrays when the insertion of the first input data within a predetermined number that does not form the array is permitted between the first input data that forms the array. Depending on whether or not, at least a part or all of the bits of the second input data input from the second input terminal are replaced with replacement data defined corresponding to the array, first output data, Second output data having the same logic as the second input data input from the second input terminal, third output data generated by a logical operation based on the first output data, and a first output Data and second output data Different data from each other are selected from among the fourth data group composed of the output data of which is generated by a logical operation based on both the, or may be outputted from the output terminal as the output data.

【0013】ここで、上記(1 4)のメモリ手段が、
(8 1)1つもしくは複数のメモリ領域を備え、それ
らのメモリ領域それぞれに、必要に応じて、上記置換デ
ータ、上記配列の検索に用いられる帰還データ、上記所
定数を表わす距離データ、および上記配列の最終段であ
るか否かを示す出力制御データを記憶するものであり、
上記(7 1)のデータ切換手段が、 (9 1)上記(8 1)のメモリ手段から読み出され
た帰還データを格納するレジスタ (9 2)上記(8 1)のメモリ手段から読み出され
た距離データを格納し、その格納の後、上記配列を構成
する第1の入力データが第1の入力端子から次に入力さ
れる前に、上記距離データにより定まる上記所定数を越
える、上記配列を構成しない第1の入力データが第1の
入力端子から入力された場合に検索中の上記配列の検索
を終了させるカウンタ (9 3)第1の入力端子から入力される第1の入力デ
ータと上記レジスタに格納された帰還データとのペアか
らなる検索データと一致するか否かの検索の対象とされ
る1つもしくは複数の被検索データが記憶され、その検
索において検索データと被検索データいずれかとの一致
が検出された場合に、上記(8 1)メモリ手段の、一
致が検出された被検索データに対応するメモリ領域から
そのメモリ領域に記憶されたデータを読み出すためのア
クセス信号を出力するデータ参照手段 (9 4)上記(8 1)のメモリ手段から読み出され
たデータ中の出力制御データに応じて、第2の入力端子
から入力された第2の入力データの少なくとも一部もし
くは全部のビットがメモリ領域から読み出されたデータ
中の置換データに置換されてなる第1の出力データ、第
2の入力端子から入力された第2の入力データと同一論
理の第2の出力データ、第1の出力データに基づく論理
演算により生成される第3の出力データ、および第1の
出力データと第2の出力データとの双方に基づく論理演
算により生成される第4の出力データからなるデータ群
の中から選択される互いに異なるデータを、上記出力デ
ータとして出力端子から出力するデータ出力手段 を備えたものであってもよい。
Here, the above (1 The memory means of 4) is
(8 1) One or a plurality of memory areas are provided, and in each of these memory areas, the replacement data, feedback data used for searching the array, distance data representing the predetermined number, and the array It stores output control data indicating whether or not it is the final stage,
Above (7 The data switching means of 1) is (9) 1) Above (8 A register for storing the feedback data read from the memory means of 1) (9) 2) Above (8 The distance data read from the memory means of 1) is stored, and after the storage, before the next input of the first input data constituting the above array from the first input terminal, A counter that terminates the search of the array being searched when the first input data that does not form the array exceeds the predetermined number determined and is input from the first input terminal. 3) One or a plurality of objects to be searched for matching with search data formed of a pair of first input data input from the first input terminal and feedback data stored in the register. When the searched data is stored and a match between the searched data and the searched data is detected in the search, the above (8 (1) Data reference means for outputting an access signal for reading the data stored in the memory area from the memory area corresponding to the searched data for which a match is detected (9) 4) Above (8 According to the output control data in the data read from the memory means of 1), at least some or all of the bits of the second input data input from the second input terminal are read from the memory area. The first output data replaced by the replacement data in the data, the second output data having the same logic as the second input data input from the second input terminal, and the logical operation based on the first output data Different data selected from the data group consisting of the generated third output data and the fourth output data generated by the logical operation based on both the first output data and the second output data. May be provided with a data output means for outputting the output data from the output terminal.

【0014】上記(8 1)のメモリ手段は、上記(2
1),(5 1)の各メモリ手段と同様、上記(8
1)で定義された以上に限定される必要はないが、例え
ば上記(8 1)のメモリ手段は、エンハンスメントト
ランジスタとディプレッショントランジスタとの組合せ
により定義されたデータを記憶するものであることが好
ましい。
Above (8 The memory means of 1) is the same as that of
1), (5 Similar to each memory means of 1), the above (8
Although it is not necessary to be limited to the above defined in 1), for example, in (8) above. The memory means of 1) preferably stores data defined by a combination of the enhancement transistor and the depletion transistor.

【0015】また、上記(9 3)のデータ参照手段に
ついても同様であり、上記(9 3)のデータ参照手段
は、エンハンスメントトランジスタとディプレッション
トランジスタとの組合せにより定義された前記被検索デ
ータを記憶するものであることが好ましい。また、本発
明のデータフロー制御装置においては、典型的には、上
記第1の入力端子からは、多数のデータを記憶する記憶
装置(例えばROM等)に入力されるアドレスデータが
上記第1の入力データとして入力され、上記第2の入力
端子からは、上記記憶装置(ROM等)から出力された
データが上記第2の入力データとして入力される。さら
に、本発明のデータフロー制御装置における上記メモリ
手段は、複数の第1の入力データからなる第1の配列に
対応する置換データ、およびその第1の配列を構成する
複数の第1の入力データとこれら複数の第1の入力デー
タに引き続いて配列された1つもしくは複数の第1の入
力データとからなる第2の配列に対応する置換データと
を記憶するものであることが好ましく、また上記メモリ
手段が、同一の第1の入力データを最終段に含む複数の
配列それぞれに対応する複数の置換データを記憶するも
のであることも好ましい態様の1つである。
In addition, the above (9 The same applies to the data reference means of (3), and the above (9 It is preferable that the data referencing means 3) stores the searched data defined by the combination of the enhancement transistor and the depletion transistor. Further, in the data flow control device of the present invention, typically, the address data input from the first input terminal to a storage device (for example, a ROM or the like) that stores a large amount of data is the first input data. Data input as input data and output from the storage device (ROM or the like) is input as the second input data from the second input terminal. Further, the memory means in the data flow control device of the present invention comprises the replacement data corresponding to the first array of the plurality of first input data, and the plurality of first input data constituting the first array. And replacement data corresponding to a second array consisting of one or a plurality of first input data arranged subsequently to the plurality of first input data are stored. It is also a preferable aspect that the memory means stores a plurality of replacement data corresponding to each of a plurality of arrays including the same first input data in the final stage.

【0016】本発明のデータフロー制御装置は、例えば
以下に示すような場面におけるアドレスデータの配列を
採用することで有効に使用される。 (a)上記第1のデータがCPUで実行される命令が格
納されるメモリ上のアドレスを表わすアドレスデータで
あって、上記配列として、分岐命令もしくはその分岐命
令よりも前に実行される命令が格納されたアドレスと、
その分岐命令よりも後に実行される命令が格納されたア
ドレスであってその分岐命令によりその分岐命令が格納
されたアドレスから離れたアドレスへ分岐した側の命令
が格納されたアドレスとを含む複数のアドレスを表わす
複数のアドレスデータからなる配列を採用する。
The data flow control device of the present invention can be effectively used by adopting an array of address data in the following situations, for example. (A) The first data is address data representing an address on a memory in which an instruction to be executed by the CPU is stored, and a branch instruction or an instruction executed before the branch instruction is used as the array. The stored address,
A plurality of addresses including an address at which an instruction executed after the branch instruction is stored, and an address at which the branch instruction is branched to an address away from the address at which the branch instruction is stored. An array composed of a plurality of address data representing addresses is adopted.

【0017】(b)上記第1のデータがCPUで実行さ
れる命令が格納されるメモリ上のアドレスを表わすアド
レスデータであって、上記配列として、サブルーチンコ
ール命令もしくは該サブルーチンコール命令よりも前に
実行される命令が格納されるアドレスと、該サブルーチ
ンコール命令よりも後に実行される命令が格納されるア
ドレスとを含む複数のアドレスを表わす複数のアドレス
データからなる配列を採用する。
(B) The first data is address data representing an address on a memory where an instruction to be executed by the CPU is stored, and as the above array, it is a subroutine call instruction or before the subroutine call instruction. An array of a plurality of address data representing a plurality of addresses including an address where an instruction to be executed is stored and an address where an instruction to be executed after the subroutine call instruction is stored is adopted.

【0018】(c)上記第1のデータがCPUで実行さ
れる命令が格納されるメモリ上のアドレスを表わすアド
レスデータであって、上記配列として、サブルーチンか
らのリターン命令もしくは該リターン命令よりも前に実
行される命令が格納されるアドレスと、該リターン命令
よりも後に実行される命令が格納されるアドレスとを含
む複数のアドレスを表わす複数のアドレスデータからな
る配列を採用する。
(C) The first data is address data representing an address on a memory in which an instruction to be executed by the CPU is stored, and as the above array, a return instruction from the subroutine or before the return instruction. An array of a plurality of address data representing a plurality of addresses including an address where an instruction executed is stored and an address where an instruction executed after the return instruction is stored is adopted.

【0019】(d)上記第1のデータがCPUで実行さ
れる命令が格納されるメモリ上のアドレスを表わすアド
レスデータであって、上記配列として、所定の事象が生
じたときに該事象に対応する所定のルーチンの呼出しを
指示するコール命令が格納されるアドレスと、該コール
命令よりも後に実行される命令が格納されるアドレスと
を含む複数のアドレスを表わす複数のアドレスデータか
らなる配列を採用する。
(D) The first data is address data representing an address on a memory in which an instruction executed by the CPU is stored, and the first data corresponds to the event when a predetermined event occurs. An array of a plurality of address data representing a plurality of addresses including an address at which a call instruction for invoking a predetermined routine is stored and an address at which an instruction executed after the call instruction is stored To do.

【0020】(e)上記第1のデータがCPUで実行さ
れる命令、およびCPUからアクセスされるデータが格
納されるメモリ上のアドレスを表わすアドレスデータで
あって、上記配列として、メモリ上のデータをアクセス
するデータアクセス命令もしくは該データアクセス命令
よりも前に実行される命令が格納されるアドレスと、該
データアクセス命令によりアクセスされるデータが格納
されるアドレスとを含む複数のアドレスを表わす複数の
アドレスデータからなる配列を採用する。
(E) The first data is address data representing an address on a memory in which an instruction executed by the CPU and data accessed from the CPU are stored, and the data on the memory as the array. Of a plurality of addresses including a data access instruction that accesses the data access instruction or an instruction that is executed before the data access instruction and an address that stores the data accessed by the data access instruction. An array of address data is adopted.

【0021】また、上記本発明のデータフロー制御装置
は、その一実施態様として、例えば以下のように構成す
ることができる。即ち、その一実施態様としての本発明
のデーターフロー制御装置は、 (10_1)第1の入力データが順次入力される第1の
入力端子 (10_2)第2の入力データが順次入力される第2の
入力端子 (10_3)出力データが順次出力される出力端子 (10_4)複数の第1の入力データの、1つもしくは
複数の各配列に対応して定義された置換データと、上記
配列のうちの少くとも1つの配列に含まれる第1の入力
データに対応して定義された帰還データとを記憶するメ
モリ手段 (10_5)上記メモリ手段から読み出された帰還デー
タを格納するレジスタ (10_6)上記第2の入力端子から入力された第2の
入力データと、上記メモリ手段から読み出された置換デ
ータとを入力し、所定の制御信号に応じて、上記第2の
入力データ、もしくはその第2の入力データの少くとも
一部もしくは全部のビットが置換データに置換されたデ
ータを、上記出力信号として上記出力端子に出力するセ
レクタ (10_7)上記配列のうちのいずれか1つの配列に含
まれる第1のデータと、その第1のデータを含む上記配
列を構成する、その第1のデータの直前に配列された第
1のデータに対応して定義された帰還データとの対から
なる被検索データを、上記配列のうちのいずれか1つの
配列に含まれる第1のデータそれぞれに対応して各被検
索データメモリ領域に記憶し、上記第1の入力端子から
入力された第1のデータと上記レジスタに格納された、
上記メモリ手段から読み出された帰還データとの対から
なる検索データと、上記被検索データそれぞれとを比較
し、その検索データと一致する被検索データが格納され
た上記被検索データメモリ領域に対応して備えられた信
号線に一致信号を出力する一致検出手段 (10_8)上記信号線に一致信号が出力されたことを
受けて、一致信号が出力された信号線に対応する上記被
検索データメモリ領域に格納された被検索データを構成
する第1のデータに対応して定義された帰還データを上
記メモリ手段から読み出して上記レジスタに格納すると
ともに、その検索データを構成する第1の入力データが
上記配列のうちのいずれか1つの配列の最終に配列され
た第1の入力データであるか否かに応じて、その配列に
対応して定義された置換データを上記メモリ手段から読
み出して上記第2の入力手段から入力された第2のデー
タの少なくとも一部もしくは全部のビットがその置換デ
ータで置換されたデータを上記セレクタから出力させ、
もしくは上記第2の入力手段から入力された第2のデー
タをセレクタから出力させる制御手段 を備えたことを特徴とするデータフロー制御装置であ
る。
The data flow control device of the present invention can be configured as follows, for example, as one embodiment thereof. That is, the data flow control device of the present invention as one embodiment thereof includes: (10_1) a first input terminal to which first input data is sequentially input; (10_2) a second input data to which second input data is sequentially input; Input terminal (10_3) of which output data are sequentially output. (10_4) replacement data defined corresponding to one or more respective arrays of the plurality of first input data, and Memory means for storing feedback data defined corresponding to first input data included in at least one array (10_5) register for storing feedback data read from the memory means (10_6), The second input data input from the second input terminal and the replacement data read from the memory means are input, and the second input data is input according to a predetermined control signal. Alternatively, a selector which outputs the data in which at least a part or all of the bits of the second input data are replaced with the replacement data to the output terminal as the output signal (10_7) Any one of the arrays From the pair of the first data included in and the feedback data defined corresponding to the first data that is arranged immediately before the first data and that constitutes the above-mentioned array that includes the first data. The searched data to be searched is stored in each searched data memory area corresponding to each of the first data included in any one of the above arrays, and the first data input from the first input terminal is stored. Data stored in the above register,
Search data composed of a pair of return data read from the memory means is compared with each of the searched data, and the searched data corresponding to the searched data is stored in the searched data memory area. Coincidence detecting means for outputting a coincidence signal to the signal line provided therein (10_8) In response to the coincidence signal being outputted to the signal line, the searched data memory corresponding to the signal line to which the coincidence signal is outputted. The feedback data defined corresponding to the first data forming the searched data stored in the area is read from the memory means and stored in the register, and the first input data forming the search data is Depending on whether or not it is the first input data arrayed at the end of any one of the arrays, the replacement data defined corresponding to that array The selector outputs the data in which at least some or all of the bits of the second data read from the memory means and input from the second input means are replaced with the replacement data.
Alternatively, the data flow control device is provided with a control means for causing the selector to output the second data input from the second input means.

【0022】さらに、上記本発明のデータフロー制御装
置は、もう1つの実施態様として、例えば以下のように
構成することができる。即ち、その実施態様としての本
発明のデーターフロー制御装置は、 (11_1)第1の入力データが順次入力される第1の
入力端子 (11_2)第2の入力データが順次入力される第2の
入力端子 (11_3)出力データが順次出力される出力端子 (11_4)複数の第1の入力データの、1つもしくは
複数の各配列に対応して定義された置換データと、上記
配列のうちのいずれか1つの配列に含まれる第1の入力
データに対応して定義された帰還データと、その第1の
入力データに対応して定義された、その第1のデータが
上記第1の入力端子から入力された後、その第1のデー
タを含む配列を構成するその第1のデータの直後に配列
された第1のデータが上記第1の入力端子から入力され
るまでの間に、第1の入力端子から入力されることが許
容される他の第1の入力データの個数を指標する距離デ
ータとを記憶するメモリ手段 (11_5)上記メモリ手段から読み出された帰還デー
タを格納するレジスタ (11_6)上記メモり手段から読み出された前記距離
データを格納し、その格納の後に上記第1の入力端子か
ら入力される第1の入力データの個数とその距離データ
とを比較することにより、上記第1の入力端子から、上
記配列中に隣接する2つの所定の第1の入力データそれ
ぞれが入力される間に入力される他の第1の入力データ
の個数が距離データにより定まる個数を越えた場合に上
記配列の検索を終了させるカウンタ (11 7)上記第2の入力端子から入力された第2の
入力データと、上記メモリ手段から読み出された置換デ
ータとを入力し、所定の制御信号に応じて、上記第2の
入力データ、もしくはその第2の入力データの少なくと
も一部もしくは全部のビットが置換データに置換された
データを、上記出力信号として上記出力端子に出力する
セレクタ (11 8)上記配列のうちのいずれか1つの配列に含
まれる第1のデータと、その第1のデータを含む配列を
構成する、その第1のデータの直前に配列された第1の
データに対応して定義された帰還データとの対からなる
被検索データを、上記配列のうちのいずれか1つの配列
に含まれる第1のデータそれぞれに対応して各被検索デ
ータメモり領域に記憶し、上記第1の入力端子から入力
された第1のデータと上記レジスタに格納された、上記
メモリ手段から読み出された帰還データの対からなる検
索データと、上記被検索データそれぞれとを比較し、そ
の検索データと一致する被検索データが格納された上記
被検索データメモリ領域に対応して備えられた信号線に
一致信号を出力する一致検出手段 (11 9)上記信号線に一致信号が出力されたことを
受けて、一致信号が出力された信号線に対応する上記被
検索データメモリ領域に格納された被検索データを構成
する第1のデータに対応して定義された帰還データおよ
び距離データを上記メモリ手段から読み出して、それぞ
れ、上記レジスタおよび上記カウンタに格納するととも
に、その帰還データを構成する第1の入力データ上記配
列のうちのいずれか1つの配列の最終に配列された第1
の入力データであるか否かに応じて、その配列に対応し
て定義された置換データを上記メモリ手段から読み出し
て上記第2の入力手段から入力された第2のデータの少
なくとも一部もしくは全部のビットがその置換データで
置換されたデータを上記セレクタから出力させ、もしく
は上記第2の入力手段から入力された第2のデータを上
記セレクタから出力させる制御手段 を備えたことを特徴とするデータフロー制御装置であ
る。
Further, the above-described data flow control device of the present invention can be configured as another embodiment, for example, as follows. That is, the data flow control device of the present invention as an embodiment thereof includes (11_1) a first input terminal to which the first input data is sequentially input, and (11_2) a second input data to which the second input data is sequentially input. Input terminal (11_3) Output terminal from which output data is sequentially output. (11_4) Replacement data defined corresponding to one or each array of a plurality of first input data, and one of the arrays The feedback data defined corresponding to the first input data included in the one array and the first data defined corresponding to the first input data are output from the first input terminal. After being input, the first data arranged immediately after the first data constituting the array including the first data is input from the first input terminal, and then the first data is input. Input from the input terminal Memory means (11_5) for storing distance data indicating the number of other first input data which is allowed to be stored (11_5) register for storing feedback data read from the memory means (11_6) from the memory means By storing the read distance data and comparing the distance data with the number of first input data input from the first input terminal after the storage, the distance data is read from the first input terminal. , Searching the array when the number of other first input data input while two adjacent first input data adjacent to each other in the array exceeds the number determined by the distance data Counter to end (11 7) The second input data input from the second input terminal and the replacement data read from the memory means are input, and the second input data, or the second input data, is input in accordance with a predetermined control signal. A selector (11) for outputting the data obtained by replacing at least a part or all of the bits of the second input data with the replacement data as the output signal to the output terminal. 8) Corresponding to the first data included in any one of the above arrays and the first data that is arranged immediately before the first data and that constitutes the array including the first data Stored in the searched data memory area corresponding to each of the first data included in any one of the above arrays, the searched data in pairs with the return data defined as Search data consisting of a pair of the first data input from the first input terminal and the feedback data stored in the register and read from the memory means are compared with each of the searched data. Match detection means for outputting a match signal to a signal line provided corresponding to the searched data memory area storing the searched data matching the searched data (11) 9) Corresponding to the first data forming the searched data stored in the searched data memory area corresponding to the signal line to which the match signal is output, in response to the output of the match signal to the signal line The feedback data and the distance data defined as above are read from the memory means and stored in the register and the counter, respectively, and at least one of the first input data and the array forming the feedback data is read. First arrayed at the end of the array
Of the second data input from the second input means by reading the replacement data defined corresponding to the array from the memory means according to whether the input data is input data Data comprising a control unit for causing the selector to output the data in which the bit of is replaced with the replacement data, or for causing the selector to output the second data input from the second input unit. It is a flow control device.

【0023】また、本発明のメモリ装置は、 (12 1)入力データが順次入力される入力端子 (12 2)出力データが順次出力される出力端子 (12 3)複数の各入力データに対応してそれぞれ定
義された複数の記憶データを記憶する第1のメモリ手段 (12 4)複数の入力データの、1つもしくは複数の
各配列に対応して定義された1つもしくは複数の置換デ
ータを記憶する第2のメモリ手段 (12 5)前記入力端子から最新の入力データが入力
された際に、その最近の入力データを含みその最新の入
力データから入力順に遡った複数の第1の入力データ
が、上記各配列のいずれか1つに相当するか否かに応じ
て、上記最新の入力データに対応して定義された記憶デ
ータの少なくとも一部もしくは全部のビットがその配列
に対応して定義された置換データに置換されてなる第1
の出力データ、上記最新の入力データに対応して定義さ
れた上記記憶データと同一論理の第2の出力データ、第
1の出力データに基づく論理演算により生成される第3
の出力データ、および第1の出力データと第2の出力デ
ータとの双方に基づく論理演算により生成される第4の
出力データからなるデータ群の中から選択される互いに
異なるデータを、上記出力データとして出力端子に出力
する読み出制御手段 を備えたことを特徴とするメモリ装置である。
The memory device of the present invention is (12) 1) Input terminal for inputting input data (12) 2) Output terminal that outputs output data sequentially (12 3) First memory means for storing a plurality of storage data respectively defined corresponding to a plurality of input data (12) 4) Second memory means for storing one or more replacement data defined corresponding to one or more respective arrays of the plurality of input data 5) When the latest input data is input from the input terminal, a plurality of first input data including the latest input data and traced back in the input order from the latest input data is any one of the above arrays. At least a part or all of the bits of the storage data defined corresponding to the latest input data are replaced with the replacement data defined corresponding to the array, depending on whether or not First
Output data, a second output data having the same logic as the storage data defined corresponding to the latest input data, and a third generated by a logical operation based on the first output data.
Output data and different data selected from a data group consisting of fourth output data generated by a logical operation based on both the first output data and the second output data, The memory device is provided with a read control means for outputting to the output terminal as.

【0024】ここで、上記本発明のメモリ装置におい
て、上記(12 5)の読み出制御手段は、 (13 1)上記入力端子から最新の入力データが入力
された際に、その最近の入力データを含みその最新の入
力データから入力順に遡った複数の第1の入力データ
が、上記配列を構成する入力データどうしの間に上記配
列を構成しない入力データの嵌入を許容したときの上記
配列のいずれか1つを含むか否かに応じて、上記最新の
入力データに対応して定義された記憶データの少なくと
も一部もしくは全部のビットがその配列に対応して定義
された置換データに置換されてなる第1の出力データ、
上記最新の入力データに対応して定義された記憶データ
と同一論理の第2の出力データ、第1の出力データに基
づく論理演算により生成される第3の出力データ、およ
び第1の出力データと第2の出力データとの双方に基づ
く論理演算により生成される第4の出力データからなる
データ群の中から選択される互いに異なるデータを、上
記出力データとして出力端子に出力するものであっても
よい。
Here, in the memory device of the present invention, the above (12) The read control means of 5) is (13) 1) When the latest input data is input from the input terminal, a plurality of first input data including the latest input data and traced back in the input order from the latest input data are the input data forming the array. At least storage data defined corresponding to the latest input data is included depending on whether any one of the arrays is included when the insertion of the input data that does not form the array is allowed between them. First output data in which some or all of the bits are replaced with replacement data defined corresponding to the array,
Second output data having the same logic as the storage data defined corresponding to the latest input data, third output data generated by a logical operation based on the first output data, and first output data Even if the different data selected from the data group consisting of the fourth output data generated by the logical operation based on both the second output data are output to the output terminal as the output data. Good.

【0025】さらに、上記本発明のメモリ装置におい
て、上記(12 5)の読み出制御手段は、 (14 1)上記入力端子から最新の入力データが入力
された際に、その最近の入力データを含みその最新の入
力データから入力順に遡った複数の第1の入力データ
が、上記配列を構成する入力データどうしの間に上記配
列を構成しない各所定数以内の入力データの嵌入を許容
したときの上記配列のいずれか1つを含むか否かに応じ
て、上記最新の入力データに対応して定義された記憶デ
ータの少なくとも一部もしくは全部のビットがその配列
に対応して定義された置換データに置換されてなる第1
の出力データ、上記最新の入力データに対応して定義さ
れた記憶データと同一論理の第2の出力データ、第1の
出力データに基づく論理演算により生成される第3の出
力データ、および第1の出力データと第2の出力データ
との双方に基づく論理演算により生成される第4の出力
データからなるデータ群の中から選択される互いに異な
るデータを、上記出力データとして出力端子に出力する
ものであってもよい。
Further, in the memory device of the present invention, the above (12) The read control means of 5) is (14) 1) When the latest input data is input from the input terminal, a plurality of first input data including the latest input data and traced back in the input order from the latest input data are the input data forming the array. It is defined corresponding to the latest input data according to whether or not any one of the above arrays is included when the insertion of the input data within each predetermined number that does not form the above array is allowed between them. At least a part or all of the bits of the stored data are replaced with replacement data defined corresponding to the array.
Output data, second output data having the same logic as the storage data defined corresponding to the latest input data, third output data generated by a logical operation based on the first output data, and first Which outputs different data selected from the data group consisting of the fourth output data generated by the logical operation based on both the output data and the second output data to the output terminal as the output data. May be

【0026】上記本発明のメモリ装置には、上記入力デ
ータとして、典型的にはアドレスデータが入力される。
本発明のメモリ装置では、上記出力端子から出力される
上記「互いに異なるデータ」が、以下に例示するような
データであることが好ましい。 (a)上記出力端子から出力される出力データがCPU
で実行される命令を表わすデータを含み、上記出力端子
から出力される上記互いに異なるデータが、互いに同一
の命令コードであって、かつ互いに異なるオペランドの
命令を表わすデータであること。例えば、 (a 1)上記互いに異なるデータが、互いに同一のレ
ジスタに互いに異なる値を格納する命令を表わすデータ
である。 (a 2)上記互いに異なるデータが、互いに異なるメ
モリアドレスに所定値を格納する命令であること。 (a 3)上記互いに異なるデータが、互いに異なるア
ドレスへの分岐命令であること。 (b)上記出力端子から出力される出力データがCPU
で実行される命令を表わすデータを含み、上記出力端子
から出力される上記互いに異なるデータのうちの少なく
とも1つが、サブルーチンからのリターン命令を表わす
データであること。 (c)上記出力端子から出力される出力データがCPU
で実行される命令を表すデータを含み、上記出力端子か
ら出力される上記互いに異なるデータが、互いに異なる
命令を表すデータであること。 (d)上記出力端子から出力される出力データがCPU
で実行される所定の命令で参照されるデータを含み、上
記出力端子から出力される上記互いに異なるデータが、
上記所定の命令で参照される互いに値の異なるデータで
あること。
Address data is typically input to the memory device of the present invention as the input data.
In the memory device of the present invention, it is preferable that the “different data” output from the output terminal is data as exemplified below. (A) Output data output from the output terminal is CPU
The data different from each other, which are output from the output terminal, have the same instruction code and different operands. For example, (a 1) The different data are data representing instructions for storing different values in the same register. (A 2) The different data is an instruction to store a predetermined value in different memory addresses. (A 3) The different data are branch instructions to different addresses. (B) The output data output from the output terminal is the CPU
And at least one of the different data output from the output terminal is data representing a return instruction from the subroutine. (C) The output data output from the output terminal is the CPU
The data different from each other output from the output terminal includes data representing an instruction to be executed in step 1. (D) The output data output from the output terminal is the CPU
The data different from each other, which is output from the output terminal, includes data referred to by a predetermined instruction executed by
The data having different values referred to by the predetermined instruction.

【0027】[0027]

【作用】プログラムにはジャンプ命令やサブルーチンへ
の分岐命令等、隣接したアドレス以外のアドレスに格納
された命令(データ)をROM等から読み出してくる場
面が必ず存在する。しかもどのような場面でどこのアド
レスに分岐するかは、そのプログラムの開発者のみが知
るところである。
In the program, there is always a situation in which instructions (data) stored at addresses other than adjacent addresses, such as jump instructions and branch instructions to subroutines, are read out from the ROM or the like. Moreover, only the developer of the program knows at what address and at what address the branch occurs.

【0028】本発明は、この点に着目して完成されたも
のである。即ち、上記「第1の入力データ」ないし上記
「入力データ」をアドレスデータとしたとき、分岐命令
等離れたアドレスどうしの組合せに対応して正規の命令
であるところの置換データを定義しておくと、そのプロ
グラムで定義された順序に複数のアドレスデータが入力
されたときに、例えば置換データが出力され、CPUで
はその置換データを正規の命令として実行することがで
きる。
The present invention has been completed paying attention to this point. That is, when the "first input data" to the "input data" are used as address data, replacement data that is a regular instruction is defined corresponding to a combination of addresses such as a branch instruction that are distant from each other. When a plurality of address data are input in the order defined by the program, for example, replacement data is output, and the CPU can execute the replacement data as a regular instruction.

【0029】一方、例えばジャンプ命令等を無視して例
えば順次インクリメントするアドレスデータを与えてR
OMの内容を読み出そうとすると、置換データに置換さ
れない、別のデータないし誤ったデータが読み出されて
しまう結果となる。したがってソフトウェアのデータ処
理フローに沿わない単純なアドレスデータの入力による
出力データの不正コピーを防止することができる。
On the other hand, by ignoring, for example, a jump instruction or the like, address data which is sequentially incremented is given to R
Attempting to read the contents of the OM will result in the reading of different or erroneous data that is not replaced by the replacement data. Therefore, it is possible to prevent illegal copying of output data due to input of simple address data that does not follow the data processing flow of software.

【0030】近年、処理の高速化のために、いわゆるプ
リフェッチ動作を行うCPUが登場してきている。この
プリフェッチ動作とは、CPUにおけるデータ(命令)
の実行終了を待つことなく機械的に次のアドレスのデー
タを先読みするものである、実行中の命令がたまたま、
例えば分岐命令であったときは先読みしたデータを捨て
て再度分岐先のアドレスのデータが読み込まれることに
なる。
In recent years, CPUs that perform so-called prefetch operations have been introduced to speed up the processing. This prefetch operation is data (instruction) in the CPU.
It is to read ahead the data of the next address mechanically without waiting for the end of the execution of
For example, in the case of a branch instruction, the preread data is discarded and the data at the branch destination address is read again.

【0031】本発明においては、ある配列を構成する第
1の入力データ(ないし入力データ)どうしの間にその
配列を構成しない第1の入力データ(入力データ)が入
り込んでいてもその配列の存在を認識することができる
ため、プリフェッチ動作のようなプログラムの処理手順
を無視した動作の場合にも誤動作することなく、配列の
抽出と正規のデータの出力が可能となる。
In the present invention, even if there is first input data (input data) that does not form the array between first input data (or input data) that forms the certain array, the existence of the array exists. Can be recognized, it is possible to extract an array and output regular data without malfunction even in the case of an operation that ignores the processing procedure of a program such as a prefetch operation.

【0032】また、本発明の、上記(6_1)〜(6_
3)のデータ切換手段を備えたデータフロー制御装置、
上記(9_1)〜(9_4)のデータ切換手段を備えた
データフロー制御装置、上記(10_1)〜(10_
8)を備えたデータフロー制御装置、もしくは上記(1
1_1)〜(11_9)を備えたデータフロー制御装
置、ないしそれらのデータフロー制御装置のいずれかを
内蔵したメモリ装置においては、メモリ手段から帰還デ
ータを読み出してその帰還データを次の検索のために用
いるように構成したため、本発明にいう「配列」とし
て、少ない個数の第1の入力データからなる配列からか
なり多数の第1の入力データからなる配列までかなり自
由に定義することができ、極めて自由度の高いシステム
が構成される。
Further, the above (6_1) to (6_) of the present invention.
A data flow control device having the data switching means of 3),
A data flow control device having the data switching means of (9_1) to (9_4), and (10_1) to (10_).
8) A data flow control device equipped with the above, or (1) above.
In a data flow control device including 1_1) to (11_9) or a memory device incorporating any of those data flow control devices, the feedback data is read from the memory means and the feedback data is used for the next search. Since it is configured to be used, an "array" according to the present invention can be defined quite freely from an array consisting of a small number of first input data to an array consisting of a large number of first input data, which is extremely free. A high-quality system is constructed.

【0033】また、本発明のデータフロー制御装置にい
うメモリ手段、データ参照手段としてエンハンスメント
トランジスタとディプレッショントランジスタの組合せ
でデータを定義した場合は、本発明のデータフロー制御
装置ないしメモリ装置を搭載したLSIを分解して顕微
鏡等で観察しても、エンハンスメントトランジスタもデ
ィプレッショントランジスタも外観上は区別できず、し
たがってそこに定義されたデータの解析は一層困難とな
り、不正コピー防止の一層の確実化が図られる。
When data is defined by a combination of an enhancement transistor and a depletion transistor as the memory means and the data reference means referred to in the data flow control device of the present invention, an LSI equipped with the data flow control device or memory device of the present invention is mounted. When disassembling and observing with a microscope or the like, neither the enhancement transistor nor the depletion transistor can be distinguished in appearance, and therefore the analysis of the data defined there becomes more difficult, and the prevention of illegal copying can be further ensured. .

【0034】さらに、本発明にいう「配列」として、各
第1の入力データをa,b,c,d,……としたとき、
例えば配列‘a,b,c’と配列‘a,b,c,d’の
ように、部分的に重なった複数の配列を定義したり、例
えば配列‘a,b,x’と配列‘c,d,x’と、配列
‘e,f,x’のように各配列の最終段のデータxが共
通な複数の配列を定義することにより、その配列が複雑
となり、データ解析や不正コピーの困難さが一層増すこ
とになる。
Further, as the "array" according to the present invention, when each first input data is a, b, c, d, ...
For example, the sequences'a, b, c'and the sequences'a, b, c, d'may define a plurality of partially overlapping sequences, or, for example, the sequences'a, b, x'and the sequence'c. , D, x'and arrays'e, f, x'define a plurality of arrays in which the data x at the final stage of each array is common, the arrays become complicated, and data analysis and illegal copy The difficulty will increase.

【0035】尚、本発明にいう、上記「互いに異なるデ
ータ」は、そのうちの一方が正常動作を続行することの
できる「正常な」データ、他方が例えばシステムダウン
等を生じさせる「異常な」データであってもよく、ある
いは上記「互いに異なるデータ」は、いずれも、プログ
ラムフローにおける互いに別の場面における正常な動作
を行なわしめる「正常な」データであってもよい。
The "different data" referred to in the present invention means that one of them is "normal" data that can continue normal operation, and the other is "abnormal" data that causes a system down, for example. Alternatively, all of the “different data” may be “normal” data that causes normal operation in different situations in the program flow.

【0036】[0036]

【実施例】図1は、本発明の一実施例を採用した制御シ
ステムの全体構成を示すブロック図である。なお、従来
のものと変わらないものは同一番号が用いられている。
同図で、注目すべきは、ソフトウェアが格納されるカセ
ット9が、ROM4とデータフロー制御装置10により
構成されている点である。従ってカセット9の外部に出
されるアドレス線7およびデータ線8等は従来のものと
何ら変わらないものとして提供でき、カセット9を除い
た従来の制御システムあるいはゲームシステムをそのま
ま使用することが可能となる。
1 is a block diagram showing the overall configuration of a control system adopting an embodiment of the present invention. The same numbers are used for those that are the same as the conventional ones.
In the figure, it should be noted that the cassette 9 in which the software is stored is composed of the ROM 4 and the data flow control device 10. Therefore, the address line 7 and the data line 8 which are output to the outside of the cassette 9 can be provided as being the same as the conventional ones, and the conventional control system or game system excluding the cassette 9 can be used as it is. .

【0037】ここで、図1に示すデータフロー制御装置
10の第1実施例について詳細する。まず、ROM4の
中には、図2に示す如く、各アドレスAに図示のごとく
データDが格納されており、ROM4には、アドレス線
7からデータフロー制御装置10を介してアドレスデー
タが入力される。また、同様にROM4からの出力デー
タは、データフロー制御装置10を介してデータ線8に
出力される。もちろん、このアドレス線7の全部又は一
部、又はデータ線8の一部が直接ROM4に接続されて
も良い。
Now, the first embodiment of the data flow control device 10 shown in FIG. 1 will be described in detail. First, as shown in FIG. 2, data D is stored in each address A in the ROM 4, and the address data is input to the ROM 4 from the address line 7 through the data flow control device 10. It Similarly, the output data from the ROM 4 is output to the data line 8 via the data flow control device 10. Of course, all or part of the address line 7 or part of the data line 8 may be directly connected to the ROM 4.

【0038】ここで、ソフトウェアの正常の動作からす
ると、アドレスデータの入力順序がJ−2→J−1→J
→J+2であるとする。このとき、データフロー制御装
置10内に、複数のアドレスデータの組合せ(J−2,
J−1,J,J+2)に対応して正規のデータD(J+
2)を定義しておき、一方ROM4には、アドレスデー
タJ+2に対応してシステムダウンを生じるデータ‘B
REAK’を定義しておく。
From the normal operation of the software, the input order of the address data is J-2 → J-1 → J.
→ Assume J + 2. At this time, a combination of a plurality of address data (J-2,
J-1, J, J + 2) corresponding to the regular data D (J +
2) is defined. On the other hand, in ROM4, data'B which causes system down corresponding to address data J + 2
REAK 'is defined.

【0039】このようなソフトウェアによる、この制御
システムが動作している時のアドレスの処理手順とその
出力データは、図3の(a)のようになる。即ち、アド
レスデータJ−2、J−1およびJに対しては、ROM
4に格納されている各データD(J−2)、D(J−
1)およびD(J)が出力され、次の処理はアドレスJ
+2となり、ROM4に格納されているデータはBRE
AKでシステムをダウンさせるものであるが、このデー
タはデータフロー制御装置10で出力を止められ、その
代わりにデータD(J+2)がデータ線8に出力され、
正常な動作が続行される。ところが、不正なデータコピ
ーを行う場合は、この実際のソフトウェアの処理手順、
いいかえればアドレスのフローを解明することなく、ア
ドレスを順次入力し、入力された各アドレスに対応して
出力されるデータを読み取ることになる。この場合の各
アドレスに対する出力データは、アドレスデータの組合
せ(J−2,J−1,J,J+2)によるデータの置換
は生じないため、図3(b)のようになり、アドレスJ
+2に対するデータとしてBREAKしか得ることが出
来ず、このようなデータでソフトウェアを動かそうとし
てもある時点でシステムがダウンし動作不能になる。
The address processing procedure and the output data by this software when this control system is operating are as shown in FIG. That is, for the address data J-2, J-1 and J, the ROM
Data D (J-2), D (J-)
1) and D (J) are output, and the next process is address J
+2, and the data stored in ROM4 is BRE
Although the system is brought down by AK, output of this data is stopped by the data flow control device 10, and instead, data D (J + 2) is output to the data line 8,
Normal operation continues. However, in case of illegal data copy, this actual software processing procedure,
In other words, without understanding the flow of addresses, the addresses are sequentially input and the data output corresponding to each input address is read. In this case, the output data for each address is as shown in FIG. 3B because the data replacement by the combination of address data (J-2, J-1, J, J + 2) does not occur.
Only BREAK can be obtained as data for +2, and even if an attempt is made to operate the software with such data, the system goes down at some point and becomes inoperable.

【0040】このように、ここでは、実際のソフトウェ
アが動作する時に存在するアドレスの不連続性と、一連
の処理のためには複数のアドレスからのデータが必要で
あるというアドレスの関連性の2点に着目している。こ
の点から、特定のアドレスの出力データを、最新に入力
されたアドレスデータのみでなく、それ以前に入力され
たアドレスデータとも関連づけ、それら複数のアドレス
データの組合せをキーデータとしてそのキーデータに対
応するデータをデータフロー制御装置10に格納してお
き、一方通常のROM4の中には、ダミーデータ(上記
の例ではシステムをダウンさせる‘BREAK’デー
タ)を入れておく。こうすることで、ソフトウェアの処
理手順を全て知るその開発者でない限り、それがダミー
データかどうか全くわからず、又何がキーデータなのか
もわからないものとしている。
As described above, here, the discontinuity of the addresses existing when the actual software operates and the relationship of the addresses that the data from a plurality of addresses are required for a series of processing are 2 Focus on the point. From this point, the output data of a specific address is associated not only with the latest input address data but also with the previously input address data, and the combination of these multiple address data is used as key data to correspond to that key data. Data to be stored is stored in the data flow control device 10, while dummy data ('BREAK' data for bringing down the system in the above example) is stored in the normal ROM 4. By doing this, unless the developer who knows all the processing procedures of the software, it is completely unknown whether it is dummy data or not, and what is the key data.

【0041】また、この実施例では、D(J+2)のキ
ーデータとしてアドレスJ−2、J−1、Jおよび自ら
のアドレスJ+2の4つの組合せが定義されており、こ
れら4つのアドレスデータがその順序に入力されたとき
初めて正規のD(J+2)の出力を得るものであるが、
このキーデータとして定義されるアドレスデータの数を
色々と変化させたり、各キーデータの数を増やすことに
よって置換されるべきデータの数を増加させることで、
違法なコピーを更に困難にすることが出来る。
Further, in this embodiment, four combinations of addresses J-2, J-1, J and own address J + 2 are defined as the key data of D (J + 2), and these four address data are the same. The regular D (J + 2) output is obtained only when input in order.
By varying the number of address data defined as this key data or increasing the number of data to be replaced by increasing the number of each key data,
Illegal copying can be made even more difficult.

【0042】次に、本発明のデータフロー制御装置10
の一例を、より具体的に、図4および図5を用いて説明
する。この例では簡単のために、アドレス線7から2ビ
ットのアドレスが入力され、出力データも2ビットであ
ってデータ線8a,8bから出力され、さらにROM4
からの2ビットデータが出力データ線42a,43aか
ら入力されるものとする。また、キーデータ(定義され
た配列に合致した検索データ)も2ビットアドレスの2
つを1組とし、2つのアドレスデータ(0,0)→
(1,1)の組合せからなるキーデータに対して出力デ
ータとして(0,1)を出力し、2つのアドレスデータ
(1,0)→(0,0)の組合せからなるキーデータに
対して出力データ(1,0)を出力するものとする。こ
れら2組の組合せ以外の場合は、ROM4から出力デー
タ線42a,43aに出力された出力データをそのまま
出力するものとする。またROM4にはアドレス線7か
ら分岐したアドレス線(図示せず)がそのまま接続され
ているものとする。
Next, the data flow control device 10 of the present invention.
An example will be described more specifically with reference to FIGS. 4 and 5. In this example, for simplification, a 2-bit address is input from the address line 7, the output data is also 2-bit, and is output from the data lines 8a and 8b.
The 2-bit data from is input from the output data lines 42a and 43a. In addition, key data (search data that matches the defined array) is also a 2-bit address of 2
2 sets of address data (0,0) →
For the key data composed of the combination of (1,1), (0,1) is output as output data, and for the key data composed of the combination of two address data (1,0) → (0,0) Output data (1,0) is output. In the case of a combination other than these two sets, the output data output from the ROM 4 to the output data lines 42a and 43a is output as it is. An address line (not shown) branched from the address line 7 is directly connected to the ROM 4.

【0043】このデータフロー制御装置10にはセレク
タ46が設けられており、この出力がデータ線8a,8
bと接続されている。このセレクタ46への2組の入力
の一方の組は、ROM4からの出力データ線42a,4
3aに、他方の組は、データ出力線42b,43bに接
続されている。このセレクタ46の内部には、nチャネ
ルトランジスタTnとpチャネルトランジスタTpが2
組あり、セレクタ制御信号線51が“0”の時(キーデ
ータの入力がない時)は、ROM4からの出力線42
a,43aがデータ線8a,8bに接続されてROM4
の出力データがそのまま出力され、セレクタ制御信号線
51が“1”の時(キーデータの入力があった時)は、
データ出力線42b,43bがデータ線8a,8bに接
続されてデータフロー制御装置10内のデータが出力さ
れることになる。
The data flow control device 10 is provided with a selector 46, whose output is the data lines 8a, 8a.
It is connected to b. One of the two sets of inputs to the selector 46 is one of the output data lines 42a, 4a from the ROM 4.
3a, the other set is connected to the data output lines 42b and 43b. Inside the selector 46, there are two n-channel transistors Tn and p-channel transistors Tp.
When there is a set and the selector control signal line 51 is “0” (when there is no key data input), the output line 42 from the ROM 4
a and 43a are connected to the data lines 8a and 8b, and the ROM 4
When the selector control signal line 51 is "1" (when key data is input), the output data of
The data output lines 42b and 43b are connected to the data lines 8a and 8b, and the data in the data flow control device 10 is output.

【0044】尚、この例では簡単のためにセレクタ46
を用いているが、これはある演算処理を行うものであっ
ても良い。また、例えばROM4からの出力線43aに
ついてはセレクタ46を介さずに直接にデータ線8bに
接続する等、キーデータの入力があったときにデータフ
ロー制御装置10内のデータに置き換えるのは、ROM
4から出力されたデータの一部のビットのみであっても
よい。
In this example, the selector 46 is used for simplicity.
However, this may be one that performs a certain arithmetic processing. Further, for example, the output line 43a from the ROM 4 is directly connected to the data line 8b without passing through the selector 46, or the like.
4 may be only a part of the bits of the data output from No. 4.

【0045】ここでデータ出力線42b,43bは一般
的なダイナミック型センスアンプ52の出力に接続され
ている。ダイナミック型センスアンプ51は、一般的に
まず、そのインバータ151の入力にあたるビット線1
52をプリチャージトランジスタ153によってあらか
じめプリチャージしておき、メモリセルM11,M1
2,M21,M22によるこのビット線152の電位変
化を検出するものである。ここに示す実施例では、各メ
モリセルM11,M12,M21,M22は、制御トラ
ンジスタ154にシリーズに接続されるトランジスタが
ディプレッショントランジスタTdであるかそれともエ
ンハンスメントトランジスタTeであるかにより、それ
ぞれデータ“1”および“0”が表現されている。この
動作をもう少し詳しく説明すると、キーデータとしての
アドレスデータ群(この実施例の場合は2個のアドレス
データ=4ビット)が入力されると制御ワード線155
の内1つが“1”レベルとなり、かつメモリセルM1
1,M12,M21,M22に接続されたワード線W
1,W2のうち選択された方の電位が“0”レベルとな
る。今、仮にワード線W1が“0”レベルとなると、メ
モリセルM11,M12が選択され、これらのメモリセ
ルM11,M12はそれぞれエンハンスメントトランジ
スタTeとディプレッショントランジスタTdであり、
メモリセルM11は非導通、メモリセルM12はグラン
ドラインへ導通となる。図中2本のビット線152のう
ち右側のビット線152のみがグランドにおち、その結
果、ダイミックアンプ52はそれらの反転信号を出力す
るために、データ出力線42bからは“0”、データ出
力線43bからは“1”が出力される。
Here, the data output lines 42b and 43b are connected to the output of a general dynamic type sense amplifier 52. In general, the dynamic sense amplifier 51 firstly receives the bit line 1 corresponding to the input of the inverter 151.
52 is precharged in advance by the precharge transistor 153, and the memory cells M11 and M1 are precharged.
The change in the potential of the bit line 152 due to 2, M21 and M22 is detected. In the illustrated embodiment, each memory cell M11, M12, M21, M22 has a data "1" depending on whether the transistor connected in series to the control transistor 154 is the depletion transistor Td or the enhancement transistor Te. And "0" are represented. This operation will be described in more detail. When an address data group (two address data = 4 bits in this embodiment) as key data is input, the control word line 155 is input.
One of them becomes the "1" level, and the memory cell M1
1, word line W connected to M12, M21, M22
The potential of the selected one of 1 and W2 becomes the "0" level. Now, if the word line W1 becomes "0" level, the memory cells M11 and M12 are selected, and these memory cells M11 and M12 are an enhancement transistor Te and a depletion transistor Td, respectively.
The memory cell M11 is non-conductive, and the memory cell M12 is conductive to the ground line. Of the two bit lines 152 in the figure, only the bit line 152 on the right side is set to the ground, and as a result, the dimic amplifier 52 outputs the inverted signal thereof, so that "0" is output from the data output line 42b. "1" is output from the output line 43b.

【0046】また、この時、制御ワード線155の内1
つ(ここでは図中2本の制御ワード線155のうちの上
側の制御ワード線)が“1”レベルとなるために、これ
に接続されたセレクタ制御トランジスタ156がオンす
ることで、あらかじめプリチャージされていたセレクタ
制御信号検知線157が“0”レベルとなり、このレベ
ルがダイナミック型センスアンプ52で検出され、セレ
クタ制御信号線51が“1”となり、セレクタ46がデ
ータ出力線42b,43b側に切り換えられメモリセル
M11,M12からのデータ(0,1)がデータ線8
a,8bに出力されることになる。
At this time, one of the control word lines 155 is
One (here, the upper control word line of the two control word lines 155 in the figure) becomes "1" level, so that the selector control transistor 156 connected thereto is turned on, and the precharge is performed in advance. The selected selector control signal detection line 157 becomes "0" level, this level is detected by the dynamic sense amplifier 52, the selector control signal line 51 becomes "1", and the selector 46 moves to the data output lines 42b and 43b side. The data (0, 1) from the memory cells M11 and M12 that are switched are changed to the data line 8
It will be output to a and 8b.

【0047】データフロー制御装置10のデータ出力部
(図中右半分)に関しては以上であるが、次に、このデ
ータ出力部を制御するキーデータ参照部(図中左半分)
に関して説明する。まずアドレス線7から入力されるア
ドレスデータはシフトレジスタ47に入力される。また
このアドレス線7には、このアドレスデータの変化を検
知するATD(アドレストランジションディテクタ)4
8が接続されこの信号によりシフトレジスタ47を駆動
し、かつ制御回路49を用いて、制御信号線50にのせ
る全体の制御信号を作り出している。
The data output section (right half in the figure) of the data flow control device 10 has been described above. Next, the key data reference section (left half in the figure) for controlling this data output section.
Will be described. First, address data input from the address line 7 is input to the shift register 47. The address line 7 has an ATD (Adjustment Detector) 4 for detecting a change in the address data.
8 is connected to drive the shift register 47 by this signal, and the control circuit 49 is used to generate the entire control signal to be placed on the control signal line 50.

【0048】まず、アドレス線7からアドレスデータが
入力されると、新たなアドレスデータが入力されたこと
によるアドレスデータの変化がATD48により検知さ
れ、その出力信号により、アドレスデータが変化する毎
にその新たなアドレスデータがシフトレジスタ47に入
力される。シフトレジスタ47は、本実施例では各2ビ
ットの2つのレジスタD1,D2より成り、2ビットの
アドレスデータを2組、入力された順に格納する。即
ち、常に2組のアドレスデータを時系列に格納すること
が可能となっている。
First, when the address data is input from the address line 7, the change of the address data due to the input of the new address data is detected by the ATD 48, and the output signal thereof changes each time the address data changes. New address data is input to the shift register 47. In this embodiment, the shift register 47 is composed of two registers D1 and D2 each having 2 bits, and stores two sets of 2-bit address data in the order of input. That is, it is possible to always store two sets of address data in time series.

【0049】また、このシフトレジスタ47に格納され
たアドレスデータは、各ビット毎にインバータ群141
に入力され、インバータ群141によりその各ビットの
正転信号および反転信号が生成されて一致検出回路14
2に入力される。一致検出回路142は、本実施例で
は、一例としてダイナミック型のNANDデコーダが採
用されている。各ビットに対してエンハンスメントトラ
ンジスタTeとディプレッショントランジスタTdが1
組になり、これらが4ビット分、即ち4組シリアルに接
続され、その一端に前述と同様なダイナミック型センス
アンプ52が接続され、他端には制御トランジスタ14
3が接続されている。
Further, the address data stored in the shift register 47 has the inverter group 141 for each bit.
And the inverter group 141 generates a normal signal and an inverted signal of each bit, and the coincidence detection circuit 14
Entered in 2. In the present embodiment, the match detection circuit 142 employs a dynamic NAND decoder as an example. One enhancement transistor Te and one depletion transistor Td are provided for each bit.
4 bits, that is, 4 groups are serially connected, one end of which is connected to the dynamic sense amplifier 52 similar to that described above, and the other end of which is connected to the control transistor 14.
3 is connected.

【0050】前述の説明と同様に、このダイナミック型
センスアンプ52は、インバータ151の入力側をあら
かじめプリチャージしておいて、その電位変化を検出す
るものである。従ってこの電位が“0”レベルとなり、
インバータ151の出力が“1”レベルになるために
は、ダイナミック型NANDデコーダを構成するシリア
ルに接続されたエンハンスメントトランジスタTeとテ
ィプレッショントランジスタTdの全てがオンとなり、
かつ制御トランジスタ143もオンとなることが必要と
なる。この条件が満されて初めて、ダイナミック型セン
スアンプ52の出力が“1”となり、前述のごとく制御
ワード線155の1つが“1”となり、データフロー制
御装置10のメモリ部が選択されセレクタ46により出
力されるわけである。
Similar to the above description, the dynamic sense amplifier 52 is to precharge the input side of the inverter 151 in advance and detect the potential change thereof. Therefore, this potential becomes "0" level,
In order for the output of the inverter 151 to reach the “1” level, all of the enhancement transistor Te and the suppression transistor Td that are serially connected and that constitute the dynamic NAND decoder are turned on,
In addition, the control transistor 143 also needs to be turned on. Only when this condition is satisfied, the output of the dynamic sense amplifier 52 becomes "1", one of the control word lines 155 becomes "1" as described above, the memory section of the data flow control device 10 is selected, and the selector 46 is selected. It is output.

【0051】NAND型デコーダのトランジスタの全て
がオンとなる条件に関して、図中、上部左端の、ディプ
レッショントランジスタTdとエンハンスメントトラン
ジスタTeの1組のトランジスタを用いて説明する。ま
ず、これらのトランジスタのゲートには、アドレスデー
タの1ビットのデータの正転データ線144および反転
データ線145が接続されている。ディプレッショント
ランジスタTdは、そのゲート電圧が“0”レベルでも
オンすることから、この1組のシリアルに接続されたト
ランジスタが両方オンするのは、片方のエンハンスメン
トトランジスタTeのゲートに“1”レベルの電圧が印
加された時、即ちアドレスのその1ビットが“0”であ
った時となる。このようにして、図面左部上端のNAN
D型デコーダは、2組のアドレスデータが、(0,0)
→(1,1)の時に全てオンし、メモリ部から(0,
1)が出力されることがわかる。また、その下のもう一
方のNAND型デコーダに関しても、アドレスデータと
して(1,0)→(0,0)が入力された時に、そのダ
イナミック型センスアンプ52の出力が“1”となり、
メモリ部から(1,0)が出力されることになるわけで
ある。もちろんこの時、制御信号線50は、“1”レベ
ルとなり制御トランジスタ143がオンとなることはい
うまでもない。
The condition in which all the transistors of the NAND type decoder are turned on will be described using a pair of transistors of the depletion transistor Td and the enhancement transistor Te at the upper left end in the figure. First, the normal data line 144 and the inverted data line 145 of 1-bit address data are connected to the gates of these transistors. Since the depletion transistor Td is turned on even when the gate voltage thereof is “0” level, both of the transistors connected in series are turned on because the voltage of the “1” level is applied to the gate of one enhancement transistor Te. Is applied, that is, when one bit of the address is "0". In this way, the NAN at the upper left of the drawing
In the D-type decoder, two sets of address data are (0,0)
→ When (1, 1), all are turned on, and (0,
It can be seen that 1) is output. Also, with respect to the other NAND type decoder thereunder, when (1, 0) → (0, 0) is input as address data, the output of the dynamic type sense amplifier 52 becomes “1”,
That is, (1, 0) is output from the memory section. Of course, at this time, the control signal line 50 goes to "1" level and the control transistor 143 is turned on.

【0052】この動作のタイミングチャートを示したも
のが図5である。アドレス線7よりデータフロー制御装
置10およびROM4(図1参照)にアドレスデータが
与えられると、データ線42a,43aを介してROM
4の出力データが入力される。また、同時にATD48
によりアドレス変化を検知してパルスが発生する。この
パルスを基に図5に示すような制御信号が生成されると
ともに、アドレスデータがシフトレジスタ47へ入力さ
れるが、NAND型デコーダに書き込まれたキーデータ
と一致しなければ、セレクタ制御信号は“0”のままで
あり、ROM4からの出力データがそのままデータ線8
a,8bに出力される。
FIG. 5 shows a timing chart of this operation. When address data is applied from the address line 7 to the data flow control device 10 and the ROM 4 (see FIG. 1), the ROM is sent via the data lines 42a and 43a.
4 output data is input. At the same time, ATD48
Generates a pulse by detecting the address change. A control signal as shown in FIG. 5 is generated based on this pulse, and the address data is input to the shift register 47. However, if it does not match the key data written in the NAND decoder, the selector control signal becomes It remains "0", and the output data from the ROM 4 is the data line 8 as it is.
It is output to a and 8b.

【0053】一方、キーデータと入力アドレスデータ組
とが一致すると、セレクタ制御信号が“1”レベルとな
り、データフロー制御装置10のメモリ部からの内部デ
ータが出力される。ここでNAND型デコーダのどのト
ランジスタをエンハンスメントトランジスタTeにする
か、またメモリ部のどの部分をエンハンスメントトラン
ジスタTeにするかによってキーデータやそれに対応す
る出力データを定義することが可能となる。
On the other hand, when the key data and the input address data set match, the selector control signal becomes "1" level, and the internal data is output from the memory section of the data flow control device 10. Here, it becomes possible to define the key data and the output data corresponding thereto depending on which transistor of the NAND type decoder is the enhancement transistor Te and which part of the memory section is the enhancement transistor Te.

【0054】もちろん、この実施例に示す回路方式は一
例に過ぎないものであり他の公知回路方式を用いても良
いことは言うまでもない。また上記実施例は、ROM4
とは別にデータフロー制御装置10を構成した例である
が、データフロー装置10をROM等のメモリ装置内部
に組み込んでもよい。
Of course, it goes without saying that the circuit system shown in this embodiment is merely an example, and other known circuit systems may be used. In the above embodiment, the ROM 4
Although the data flow control device 10 is configured separately from the above, the data flow device 10 may be incorporated in a memory device such as a ROM.

【0055】次に、本発明のデータフロー制御装置10
の第2実施例について説明する。ここでは、ROM4の
中には、図6に示す如く、各アドレスAに図示の各デー
タDが格納されているものとし、図7に示すように、ソ
フトウェアの正常の動作からすると、アドレスデータの
入力順が、A(n)→A(n+1)→…→A(j)→A
(j+1)→A(j+2)→A(k)→A(m)である
とする。ここではこれらのアドレスデータのうち、必要
に応じて途中を間引いたアドレスデータの配列{A
(n),A(j),A(k)}と、この配列にさらにア
ドレスデータA(m)を加えた配列{A(n),A
(j),A(k),A(m)}との2つの配列に着目
し、これらの2つの配列{A(n),A(j),A
(k)},{A(n),A(j),A(k),A
(m)}にそれぞれ対応づけられた正規のデータD
(k),D(m)をデータフロー制御装置10内のアド
レスA(k),A(m)に定義しておく。一方ROM4
には、アドレスA(k),A(m)には、システムダウ
ンを生じるデータ’BREAK1’,’BREAK2’
を各々定義しておく。
Next, the data flow control device 10 of the present invention.
The second embodiment will be described. Here, as shown in FIG. 6, each data A shown in FIG. 6 is stored in the ROM 4, and as shown in FIG. 7, from the normal operation of the software, the address data Input order is A (n) → A (n + 1) → ... → A (j) → A
It is assumed that (j + 1) → A (j + 2) → A (k) → A (m). Here, of these address data, an array of address data {A
(N), A (j), A (k)} and an array {A (n), A obtained by adding address data A (m) to this array.
(J), A (k), A (m)} are focused on, and these two arrays {A (n), A (j), A
(K)}, {A (n), A (j), A (k), A
(M)} corresponding to the regular data D
(K) and D (m) are defined as addresses A (k) and A (m) in the data flow control device 10. On the other hand, ROM4
In the addresses A (k) and A (m), data "BREAK1" and "BREAK2" that cause a system down
Are defined respectively.

【0056】このようなソフトウェアによる、この制御
システムが動作している時のアドレスの処理手順とその
出力データは、図7(a)のようになる。即ち、アドレ
スデータA(k),A(m)以外は、ROM4に格納さ
れているデータが出力されるが、アドレスデータA
(k),A(m)が入力された際は、、システムをダウ
ンさせる’BREAK1’,’BREAK2’がROM
4から出力されるのではなく、その代わりにデータフロ
ー制御装置10から正規のデータD(k),D(m)が
出力され、正常な動作が続行される。ところが不正なデ
ータコピーを行う場合は、この実際のソフトウェアの処
理手順、いいかえれば正規のアドレスのフローとは無関
係に、例えば、アドレスを順次入力し、入力された各ア
ドレスに対応して出力されるデータを読み取ることにな
る。この場合の各アドレスに対応して出力するデータ
は、図7(b)のようになり、アドレスA(k),A
(m)に対するデータとして’BREAK1’,’BR
EAK2’しか得ることが出来ず、このようなデータで
ソフトウェアを動かそうとしてもある時点でシステムが
ダウンし動作不能になる。
FIG. 7A shows an address processing procedure and output data thereof when the control system is operating by such software. That is, except for the address data A (k) and A (m), the data stored in the ROM 4 is output.
When (k) and A (m) are input, 'BREAK1'and'BREAK2'that bring down the system are in ROM.
Instead of being output from 4, the normal data D (k) and D (m) are output from the data flow control device 10, and normal operation is continued. However, when performing illegal data copying, regardless of this actual software processing procedure, in other words, the flow of a legitimate address, for example, the addresses are input sequentially and output corresponding to each input address. You will read the data. The data output corresponding to each address in this case is as shown in FIG. 7B, and the addresses A (k), A
'BREAK1', 'BR as data for (m)
Only EAK2 'can be obtained, and trying to run the software with such data at some point causes the system to go down and become inoperable.

【0057】このように、ここでは、実際のソフトウェ
アが動作する時に存在するアドレスの不連続性と、一連
の処理のためには複数のアドレスからのデータが必要で
あるというアドレスの関連性の2点に着目している。こ
の点から、特定のアドレスの出力データを、最新あるい
はその時に入力されたアドレスデータのみだけでなく、
それ以前に入力されたアドレスデータとも関連づけ、そ
れらの複数のアドレスデータの組合せをキーデータとし
て、そのキーデータに対応するデータをデータフロー制
御装置10に格納しておき、一方通常のROM4の中に
は、ダミーデータ(上記の例ではシステムをダウンさせ
る’BREAK1’,’BREAK2’のデータ)を入
れておく。こうすることで、ソフトウェアの処理手順を
全て知る開発者でない限り、それがダミーデータかどう
か全くわからず、又何がキーデータなのかもわからない
ものとしている。
As described above, here, the discontinuity of the addresses existing when the actual software operates and the relationship of the addresses that the data from a plurality of addresses are required for a series of processing are 2 Focus on the point. From this point, the output data of a specific address is not only the latest or the address data input at that time,
The data corresponding to the key data is stored in the data flow control device 10 in association with the address data input before that, and the combination of the plurality of address data is stored as the key data. Put dummy data (data of'BREAK1 'and'BREAK2' that bring down the system in the above example). By doing this, unless you are a developer who knows all the software processing steps, you have no idea whether it is dummy data or what the key data is.

【0058】また、この実施例ではデータD(k)のキ
ーデータとしてアドレスデータA(n),A(j)およ
び自らのアドレスA(k)の3つのアドレスデータ、お
よびデータD(m)のキーデータとしてアドレスデータ
A(n),A(j),A(k)および自らのアドレスA
(m)の4つのアドレスデータの中での順番が定義され
ており、これら3つないし4つのアドレスデータの発生
順序により正規のデータD(k),D(m)を各々アド
レスデータA(k),A(m)の入力に対応させて出力
している。もちろん、この例に示した3つないし4つの
アドレスデータの配列に限らず、一連の処理を行うため
にアクセスされる複数のアドレスの中から任意の個数、
任意の場所のものを選び、ダミーデータをROM4に、
正規のデータとそのキーデータをデータフロー制御装置
10に入力しておくことが可能である。このキーデータ
として定義されるアドレスデータの数を色々と変化させ
たり、各キーデータの数を増やすことによって置換され
るべき正規データの数を増加させることで、違法なコピ
ーを更に困難にすることが出来る。
Further, in this embodiment, as the key data of the data D (k), the address data A (n), A (j) and the three address data of its own address A (k) and the data D (m) are stored. Address data A (n), A (j), A (k) and own address A as key data
The order in the four address data of (m) is defined, and the regular data D (k) and D (m) are respectively converted to the address data A (k by the generation order of these three to four address data. ), A (m) is output corresponding to the input. Of course, the arrangement is not limited to the arrangement of three or four address data shown in this example, and an arbitrary number of addresses accessed for performing a series of processing,
Select one in any location, put dummy data in ROM4,
It is possible to input regular data and its key data into the data flow control device 10. This makes illegal copying even more difficult by changing the number of address data defined as this key data, or by increasing the number of regular data to be replaced by increasing the number of each key data. Can be done.

【0059】次に、本発明のデータフロー制御装置10
の第2実施例の回路構成について図8のブロック図およ
び図9のタイミングチャート図を用いて説明する。ま
ず、図8に示すアドレス線7を介してアドレスデータが
一致検出部241に入力される。同時に、帰還レジスタ
242に格納されたデータがこの一致検出部241に入
力され、この帰還レジスタ342に格納されたデータと
アドレスデータの両方に一致する一致ブロック243の
ワード線243wがアクティブとなる。これによりその
真横のメモリブロック245が選択される。
Next, the data flow control device 10 of the present invention.
The circuit configuration of the second embodiment will be described with reference to the block diagram of FIG. 8 and the timing chart of FIG. First, address data is input to the match detection unit 241 via the address line 7 shown in FIG. At the same time, the data stored in the feedback register 242 is input to the match detection unit 241, and the word line 243w of the match block 243 that matches both the data stored in the feedback register 342 and the address data becomes active. As a result, the memory block 245 right next to it is selected.

【0060】各メモリブロック245は、帰還レジスタ
制御フラグ245a、帰還データ245b、出力データ
245cおよびセレクタ制御フラグ245dより成って
いる。また、一致ブロック243は、アドレスデータ一
致部243aおよび帰還データ一致部243bより成っ
ている。まずアドレス線7を経由してアドレスデータA
(n)が、一致検出部241に入力される。この時一致
検出部241の第4番目の一致ブロック243のアドレ
スデータ一致部243aにA(n)が入っている。ま
た、その第4番目の一致ブロック243の帰還データ一
致部243bは、ドントケア状態(どのようなデータに
対しても一致したものとみなす状態)に設定されてい
る。この結果、第4番目の一致ブロック243に一致が
発生し、そのワード線243wがアクティブとなり、同
図真横の第4番目のメモリブロック245が選択され、
その格納データが各々出力される。この格納データのセ
レクタ制御フラグ245dは’0’であるため、セレク
タ246は、データ入力線247を経由して入力された
ROM4からの出力信号を、データ線248に出力す
る。また、帰還レジスタ制御フラグ245aの’1’信
号を遅延回路249で遅延することにより生成された帰
還レジスタ制御信号によって帰還データ45bの’1’
データが、帰還レジスタ42に入力される。この状態を
示すものが、図9のタイミングチャートの時刻T1であ
る。同図のATD出力および制御信号は、アドレス線7
のアドレスデータの変化を制御回路249で検知し、そ
れに基づいて生成される信号であって、データフロー制
御装置10全体を制御するものである。
Each memory block 245 comprises a feedback register control flag 245a, feedback data 245b, output data 245c and a selector control flag 245d. The matching block 243 is composed of an address data matching unit 243a and a feedback data matching unit 243b. First, address data A via address line 7
(N) is input to the match detection unit 241. At this time, A (n) is contained in the address data matching section 243a of the fourth matching block 243 of the matching detection section 241. The feedback data matching unit 243b of the fourth matching block 243 is set to the don't care state (a state in which any data is considered to match). As a result, a match occurs in the fourth match block 243, the word line 243w thereof becomes active, and the fourth memory block 245 right next to the figure is selected.
The stored data is output respectively. Since the selector control flag 245d of this stored data is “0”, the selector 246 outputs the output signal from the ROM 4 input via the data input line 247 to the data line 248. Further, the feedback register control signal generated by delaying the '1' signal of the feedback register control flag 245a by the delay circuit 249 causes the feedback data 45b to be '1'.
The data is input to the feedback register 42. This state is time T1 in the timing chart of FIG. The ATD output and control signal in FIG.
Is a signal generated based on the change in the address data detected by the control circuit 249, which controls the entire data flow control device 10.

【0061】更に複数のアドレス信号がアドレス線7を
介してデータフロー制御装置10に入力され、同時にR
OM4へもそのアドレス信号が入力される。ROM4か
らは、各アドレスに応じたデータが出力されるが、アド
レス信号A(j)が入力されない限りデータフロー制御
装置10の一致検出部241で一致するものはなく、セ
レクタ46は、常にROM4からの出力をデータ線8に
出力することになる。
Further, a plurality of address signals are input to the data flow control device 10 via the address line 7, and at the same time R
The address signal is also input to the OM4. Data corresponding to each address is output from the ROM 4, but there is no match in the match detection unit 241 of the data flow control device 10 unless the address signal A (j) is input, and the selector 46 always reads from the ROM 4 Will be output to the data line 8.

【0062】また、帰還レジスタ制御信号も常に’0’
であり帰還レジスタ242の値は’1’の状態を保つ。
ここでアドレス信号A(j)が入力されると、一致検出
部241の第2番目の一致ブロック243のアドレスデ
ータ一致部243aが一致する。また、この一致ブロッ
ク243の帰還データ一致部243bには、あらかじ
め’1’の値が設定されており、この値も一致すること
になり、その結果この第2番目の一致ブロック243の
ワード線243wが立ち上がり、その真横のメモリブロ
ック245のメモリデータが検出される。このメモリブ
ロック245の、セレクタ制御フラグ245dは’0’
であるため、セレクタ246はROM4からのデータを
データ出力線8に出力する。またこのとき、帰還レジス
タ制御フラグ245aは’1’であり、帰還データ24
5bは’2’であるので、またこのとき帰還レジスタ2
42へは’2’が入力保持される(図9の時刻T2)。
Also, the feedback register control signal is always "0".
Therefore, the value of the feedback register 242 maintains the state of "1".
When the address signal A (j) is input here, the address data matching unit 243a of the second matching block 243 of the matching detection unit 241 matches. In addition, the feedback data matching unit 243b of this matching block 243 is preset with a value of "1", and this value also matches, and as a result, the word line 243w of this second matching block 243. Rises, and the memory data of the memory block 245 just beside the line is detected. The selector control flag 245d of this memory block 245 is "0".
Therefore, the selector 246 outputs the data from the ROM 4 to the data output line 8. At this time, the feedback register control flag 245a is "1", and the feedback data 24
Since 5b is '2', the feedback register 2
'2' is input and held in 42 (time T2 in FIG. 9).

【0063】同様にして、アドレスデータA(k)が入
力されるまでは、ROM4からの出力が、セレクタ46
を介してデータ出力線8に出力される。ところで、アド
レスデータA(k)が入力されると、一致検出部241
の第5番目のアドレスデータ一致部243aが一致し、
またこの時、帰還データ一致部243bの値には’2’
が設定されており、この部分もまた一致することにな
る。そのため、この一致ブロック243に対応したメモ
リブロック245のデータが検出される。このデータの
セレクタ制御フラグ245dが’1’であるために、今
度はROM4からのデータは出力されずに、それにその
代わり一致ブロック243に対応する出力データ245
cの値、即ちD(k)がセレクタ246を介して出力さ
れることになる。
Similarly, the output from the ROM 4 is the selector 46 until the address data A (k) is input.
Is output to the data output line 8 via. By the way, when the address data A (k) is input, the match detection unit 241
The fifth address data matching section 243a of
Further, at this time, the value of the feedback data matching unit 243b is "2".
Has been set, and this part will also match. Therefore, the data of the memory block 245 corresponding to this coincidence block 243 is detected. Since the selector control flag 245d of this data is "1", the data from the ROM 4 is not output this time, but instead the output data 245 corresponding to the matching block 243 is output.
The value of c, that is, D (k) will be output via the selector 246.

【0064】また、これと同時に、帰還レジスタ制御フ
ラグ245aが’1’であるため帰還データ245b
の’3’が帰還レジスタ242に入力保持される(図9
の時刻T3)。次にアドレスA(m)が入力された時も
同様であり、このデータフロー制御装置10に格納され
たデータD(m)が、ROM4からの出力に代わって出
力される(図9の時刻T4)。
At the same time, since the feedback register control flag 245a is "1", the feedback data 245b is returned.
'3' is input and held in the feedback register 242 (FIG. 9).
Time T3). The same applies when the address A (m) is next input, and the data D (m) stored in the data flow control device 10 is output instead of the output from the ROM 4 (time T4 in FIG. 9). ).

【0065】このように、その時点に入力されているア
ドレスだけで出力データを決定するのではなく、特定の
アドレスに対しては、その前に入力されたソフトウェア
実行時のアドレス系列によってその出力を決めることに
より、不正なアドレス動作におけるコピーが防止される
のである。また、この例に示すように、例えばアドレス
データA(n)等の後に期待されていないどんなアドレ
スデータが1つもしくは複数個来ても、常に次にキーと
なるものを待つことが出来る構成となっているために、
近年の処理高速化のためのCPUのプリフェッチ動作に
よる、ソフトウェアの処理手順を考慮しない連続したア
ドレスによるデータの先き読みに対しても誤動作するこ
となく、適切なキーデータの抽出と、正規データの出力
が可能となる。
As described above, the output data is not determined only by the address input at that time, but the output is output for a specific address by the address sequence at the time of executing the software input before that. By making a decision, copying in an illegal address operation is prevented. In addition, as shown in this example, even if one or a plurality of unexpected address data, such as the address data A (n), comes, it is possible to always wait for the next key. Because,
Due to the prefetch operation of the CPU for speeding up the processing in recent years, proper key data extraction and normal data extraction can be performed without malfunction even when prefetching data at consecutive addresses that do not consider the software processing procedure. Output is possible.

【0066】次に、図8のブロック図中の主要構成要素
の具体的回路例について説明する。先ず、一致検出部2
41の一致ブロック243の各回路例を図10(a),
(b)に示す。図10(a)および(b)は、プログラ
マブルデコーダによる構成を有し、且つコンパクトなデ
ザインを目的として複数の入力トランジスタを複数個シ
リーズに接続したダイナミック型NAND回路を採用し
ている。
Next, concrete circuit examples of the main constituent elements in the block diagram of FIG. 8 will be described. First, the match detection unit 2
41, each circuit example of the matching block 243 of FIG.
It shows in (b). 10A and 10B employ a dynamic NAND circuit having a configuration of a programmable decoder and having a plurality of input transistors connected in series for the purpose of compact design.

【0067】図10(a)は、エンハンスメント型トラ
ンジスタ264をシリーズに複数個接続したものであ
り、このトランジスタ264のゲートに、入力信号線2
68の正論理線268aが接続されるか、もしくは負論
理線268bが接続されるかによって、各々’1’と一
致するか’0’と一致するかを定義するものである。ま
た、このシリーズに接続されたエンハンスメント型トラ
ンジスタ264の一端には制御トランジスタ261、他
端にはダイナミックセンスアンプ260が接続されてお
り、各々制御信号線262で制御されている。アドレス
データ一致部243aを例として具体的に動作を検証し
てみる。
FIG. 10A shows a plurality of enhancement type transistors 264 connected in series, and the input signal line 2 is connected to the gate of the transistor 264.
Depending on whether the positive logic line 268a of 68 is connected or the negative logic line 268b is connected, it is defined as "1" or "0" respectively. Further, an enhancement type transistor 264 connected to this series has a control transistor 261 connected to one end and a dynamic sense amplifier 260 connected to the other end, which are controlled by a control signal line 262. The operation will be specifically verified by taking the address data matching unit 243a as an example.

【0068】まず、制御信号線262に’0’信号が印
加され、制御トランジスタ261はオフ、ダイナミック
センスアンプ260のプリチャージトランジスタ260
aはオンし、インバータ260bの入力ノードに電荷が
チャージされその入力ノードは’1’、その出力は’
0’となっている。また、この時すでにシリーズに接続
されたエンハンスメント型トランジスタ264の各々に
は、アドレス信号が印加されている。
First, a “0” signal is applied to the control signal line 262, the control transistor 261 is turned off, and the precharge transistor 260 of the dynamic sense amplifier 260 is turned on.
a turns on, the input node of the inverter 260b is charged, the input node is "1", and the output is "1".
It is 0 '. At this time, an address signal is applied to each of the enhancement type transistors 264 already connected to the series.

【0069】次に、制御信号線262が’1’信号に変
化すると、制御トランジスタ261がオンし、プリチャ
ージトランジスタ260aがオフする。この時、シリー
ズに接続されたエンハンスメント型トランジスタ264
のゲートへの信号線の接続状態により定められるそこに
定義されたデータと、入力アドレス信号が等しい時、例
えば、ゲートが正論理線268aに接続されており、入
力アドレス信号が’1’の時は、そのエンハンスメント
型トランジスタ264はオンする。同様に、ゲートが負
論理線268bに接続されており、入力アドレス信号
が’0’の時は、インバータ269で反転された信号’
1’が負論理線268bに印加され、やはりそのエンハ
ンスメント型トランジスタ264はオンする。即ち、入
力アドレス信号とゲートの接続状態が一致する時、この
エンハンスメント型トランジスタ264はオンする。し
かし、これが不一致の時はゲートに’0’が印加されオ
フのままである。
Next, when the control signal line 262 changes to a "1" signal, the control transistor 261 turns on and the precharge transistor 260a turns off. At this time, the enhancement type transistor 264 connected in series.
When the input address signal is equal to the data defined therein, which is defined by the connection state of the signal line to the gate of, for example, when the gate is connected to the positive logic line 268a and the input address signal is "1". Will turn on its enhancement type transistor 264. Similarly, when the gate is connected to the negative logic line 268b and the input address signal is "0", the signal inverted by the inverter 269 '
1'is applied to the negative logic line 268b, which also turns on its enhancement transistor 264. That is, when the input address signal and the gate connection state match, the enhancement type transistor 264 is turned on. However, when they do not match, “0” is applied to the gate and the gate remains off.

【0070】そこでシリーズに接続されたエンハンスメ
ント型トランジスタ264の全ての接続状態と入力アド
レス信号が一致する時、それらは全てオンとなり、ダイ
ナミックセンスアンプ260のインバータ260bの入
力ノードにチャージされた電荷がディスチャージされ’
0’となる。この’0’信号がインバータ260bで反
転され一致信号’1’を出力する。
Therefore, when all the connection states of the enhancement type transistors 264 connected in series and the input address signal match, they are all turned on, and the charge charged in the input node of the inverter 260b of the dynamic sense amplifier 260 is discharged. Done '
It becomes 0 '. This "0" signal is inverted by the inverter 260b and a coincidence signal "1" is output.

【0071】更に、この一致信号’1’は、次段のダイ
ナミック型NAND回路により構成される帰還データ一
致部243bの制御トランジスタ261のゲートに入力
されている。これによって帰還データ一致部243bの
制御トランジスタ261がオンし、上記と同様にして、
入力される帰還データとエンハンスメント型トランジス
タ264のゲートの接続状態で定義されているデータと
が一致することにより、ワード線243wに’1’が出
力されることになる。
Further, the coincidence signal "1" is inputted to the gate of the control transistor 261 of the feedback data coincidence section 243b constituted by the dynamic NAND circuit of the next stage. This turns on the control transistor 261 of the feedback data coincidence section 243b, and in the same manner as above,
When the input feedback data matches the data defined by the connection state of the gates of the enhancement type transistors 264, "1" is output to the word line 243w.

【0072】以上がシリーズに接続されたエンハンスメ
ント型トランジスタのゲートへの接続状態によりデータ
を定義した一致ブロック243の一例である。しかしな
がらこの方法は、ゲートへのコンタクトパターンを直接
目視することが可能であり、LSIの分解調査で一致デ
ータを判読されてしまう可能性が残る。そこで次に、こ
の目視による判読をほぼ完全に不可能にできる回路方式
について同図(b)を用いて説明する。
The above is an example of the matching block 243 in which data is defined by the connection state to the gates of the enhancement type transistors connected in series. However, with this method, the contact pattern to the gate can be directly visually inspected, and there is a possibility that the coincidence data will be read in the disassembly examination of the LSI. Therefore, next, a circuit system that makes this visual interpretation almost impossible will be described with reference to FIG.

【0073】同図(b)に於ては、シリーズに接続され
る基本となるトランジスタ構成が、同図(a)とは異
り、エンハンスメント型トランジスタ266aとディプ
レッション型トランジスタ266bとのトランジスタペ
ア266より成り、各々が正論理信号線268aもしく
は負論理信号線268bに接続されている。エンハンス
メント型トランジスタ266aであるかディプレッショ
ン型トランジスタ266bであるかは、外見上は全く判
断できない。これは、両トランジスタの違いが、そのゲ
ート直下の不純物の濃度等の違いによるしきい値電圧の
差異だけであるからである。このトランジスタペア26
6の動作に関しては、まず入力信号’1’と一致とる場
合は、正論理線268aに接続されたトランジスタをエ
ンハンスメント型にし、負論理線268bに接続された
トランジスタをディプレッション型とする。こうする
と、仮に、入力信号線268に’1’が入力されると、
正論理線268aに’1’、負論理線268bに’0’
が印加される。この時、エンハンスメント型トランジス
タ266aはゲートに’1’が印加されてオンする。と
ころがディプレッション型トランジスタ266bは、そ
のしきい値電圧が負であるために、ゲート電圧が’0’
でも’1’でもオンする。従って、このトランジスタペ
ア266はオンすることになり、一致したことになる。
In FIG. 9B, the basic transistor configuration connected to the series is different from that in FIG. 9A, and a transistor pair 266 consisting of an enhancement type transistor 266a and a depletion type transistor 266b is used. , And each is connected to the positive logic signal line 268a or the negative logic signal line 268b. From the outside, it is impossible to determine whether the transistor is the enhancement type transistor 266a or the depletion type transistor 266b. This is because the difference between the two transistors is only the difference in the threshold voltage due to the difference in the concentration of impurities directly under the gate. This transistor pair 26
Regarding the operation of 6, when the input signal '1' is matched, the transistor connected to the positive logic line 268a is made an enhancement type and the transistor connected to the negative logic line 268b is made a depletion type. In this way, if "1" is input to the input signal line 268,
"1" on the positive logic line 268a and "0" on the negative logic line 268b
Is applied. At this time, the enhancement type transistor 266a is turned on by applying "1" to the gate. However, the depletion type transistor 266b has a gate voltage of "0" because its threshold voltage is negative.
But even "1" turns it on. Therefore, the transistor pair 266 is turned on, which means that they match.

【0074】逆に、入力信号線268に’0’が入力さ
れると、正論理線268aが’0’となり、エンハンス
メント型トランジスタ266aがオフする。つまりトラ
ンジスタペア266はオフとなり、不一致であったこと
になる。このように、トランジスタペア266のどちら
をエンハンスメント型トランジスタ266aとするかに
よってデータを定義することができ、入力データとの一
致不一致を検出することが可能となる。同図(b)で
は、これらのペアが同図(a)と同様にシリーズに接続
され、ダイナミック型NAND回路が構成されている。
On the contrary, when "0" is input to the input signal line 268, the positive logic line 268a becomes "0" and the enhancement type transistor 266a is turned off. That is, the transistor pair 266 is turned off, which means that they do not match. In this way, the data can be defined depending on which one of the transistor pair 266 is the enhancement type transistor 266a, and it is possible to detect the coincidence / non-coincidence with the input data. In the same figure (b), these pairs are connected in series like the same figure (a), the dynamic type NAND circuit is formed.

【0075】ここで、トランジスタペア266の両トラ
ンジスタをディプレッション型とすることで入力データ
の如何にかかわらずこのペアをオンとする、即ちドント
ケア状態が定義されることになる。また、これらの例で
は、データの値はあらかじめ製造工程で作り込まれてい
るが、かならずしもこの必要はなく、データの書き換え
が可能なSRAM,EPROMやE2 PROM等で構成
されても良い。図11はSRAMタイプの一例を示すも
のであるが、簡単のために、図10(a)のシリーズに
接続される基本要素のエンハンスメント型トランジスタ
264に相当する部分のみをSRAMに代えた場合の一
例を示すものであり、同図中点線で囲んだ部分がそれに
あたる。
Here, by making both transistors of the transistor pair 266 a depletion type, this pair is turned on regardless of the input data, that is, a don't care state is defined. Further, in these examples, the data value is created in advance in the manufacturing process, but this is not always necessary, and the data may be composed of a rewritable SRAM, EPROM, E 2 PROM, or the like. FIG. 11 shows an example of the SRAM type, but for simplification, an example in which only the portion corresponding to the enhancement type transistor 264 of the basic elements connected to the series of FIG. The part surrounded by the dotted line in the figure corresponds to that.

【0076】通常のSRAM271の内部ノードQ,Q
_にトランジスタT3およびトランジスタT4が接続さ
れ、このシリーズに接続された両トランジスタの間にト
ランジスタT5が接続されている。入力信号線268の
正論理信号がビット線272aに、負論理信号がビット
バー線278bに印加される。まず、このSRAM27
1に’1’データが保持されているものとする。即ち、
Qが’1’,Q_が’0’であるとする。仮に、入力信
号が’1’であってSRAM271に保持されたデータ
と一致する場合は、Q=’1’であるためトランジスタ
T3がオンし、入力の正論理信号’1’がトランジスタ
T5のゲートに印加され、このトランジスタT5がオン
する。このトランジスタT5がシリーズに接続されダイ
ナミック型NANDを構成しており、したがって、全て
のSRAMのデータが入力信号と一致する時、ダイナミ
ックセンスアンプ260から一致出力’1’が得られ
る。
Internal nodes Q, Q of the normal SRAM 271
A transistor T3 and a transistor T4 are connected to _, and a transistor T5 is connected between both transistors connected to this series. The positive logic signal on the input signal line 268 is applied to the bit line 272a and the negative logic signal is applied to the bit bar line 278b. First, this SRAM 27
It is assumed that "1" data is held in 1. That is,
It is assumed that Q is "1" and Q_ is "0". If the input signal is "1" and coincides with the data held in the SRAM 271, the transistor T3 is turned on because Q = "1", and the input positive logic signal "1" changes the gate of the transistor T5. And the transistor T5 is turned on. The transistors T5 are connected in series to form a dynamic NAND, and therefore, when all the SRAM data match the input signal, the match output "1" is obtained from the dynamic sense amplifier 260.

【0077】入力信号が’0’であって、かつSRAM
271のデータが’0’の場合は、同様に、負論理信
号’1’が、Q_=1でオンしているトランジスタT4
を介してトランジスタT5のゲートに印加される。ま
た、SRAM271のデータと入力信号が不一致の場
合、例えば、入力信号が’1’で、SRAM271のデ
ータが’0’(Q=’0’,Q_=’1’)の時は、オ
ンするトランジスタT4を介して入力信号の負論理信
号’0’がトランジスタT5のゲートに印加されオフ状
態となる。逆の場合も、同様である。
The input signal is "0" and the SRAM
Similarly, when the data of 271 is "0", the transistor T4 in which the negative logic signal "1" is turned on at Q_ = 1
Is applied to the gate of the transistor T5 via. Further, when the data of the SRAM 271 and the input signal do not match, for example, when the input signal is “1” and the data of the SRAM 271 is “0” (Q = “0”, Q _ = “1”), the transistor is turned on. The negative logic signal "0" of the input signal is applied to the gate of the transistor T5 via T4 to be turned off. The same applies to the opposite case.

【0078】尚、この一致不一致を検出する時は、SR
AM271のワード線273は’0’の状態を保つ。S
RAM271にデータを書き込む場合は、ワード線73
を’1’の状態とする等通常のメモリ動作を行うことに
なる。次に、メモリ部244のメモリブロック245の
具体例を示すものが図12(a),(b)である。ここ
でも、エンハンスメント型メモリトランジスタ281を
使用したもの(同図(a))と、ディプレッション型メ
モリトランジスタ284aを使用(同図(b))した2
例が挙げられている。
When detecting this match / mismatch, the SR
The word line 273 of the AM 271 maintains the state of "0". S
When writing data to the RAM 271, the word line 73
Then, the normal memory operation is performed, such as setting the state of "1". Next, FIGS. 12A and 12B show specific examples of the memory block 245 of the memory unit 244. Also here, the enhancement type memory transistor 281 is used (FIG. 2A) and the depletion type memory transistor 284a is used (FIG. 2B).
Examples are given.

【0079】まず、同図(a)において、複数のエンハ
ンスメント型メモリトランジスタ281のゲートが、各
メモリブロック245毎に同一ワード線243wに接続
されており、帰還レジスタ制御フラグ245a、帰還デ
ータ245b、出力データ245cおよびセレクタ制御
フラグ245dを構成している。各エンハンスメント型
メモリトランジスタ281は、ビット線280に接続部
282が接続されているか否かによって’1’か’0’
を表現している。ここでは接続部282の黒丸が接続状
態を表わし、白丸が非接続状態を表わしている。このビ
ット線280の先には、ダイナミックセンスアンプ26
0が形成されている。まず制御信号線262が’0’と
なり、プリチャージトランジスタ62aにより各ビット
線280がプリチャージされる。この時ワード線243
wは’0’にセットされている。次に、制御信号線26
2が’1’となり、次でワード線243が’1’になる
と、各々のエンハンスメント型メモリトランジスタ28
1がオンとなる。これにより、接続部282が接続状態
にあるビット線からこのエンハンスメント型メモリトラ
ンジスタ281を介して電荷がディスチャージされ、こ
れをダイナミックセンスアンプ260が検出し、’1’
を出力する。逆に、接続部282が非接続状態のものは
ビット線280の電荷が保持され、’0’出力となる。
First, in FIG. 9A, the gates of a plurality of enhancement type memory transistors 281 are connected to the same word line 243w for each memory block 245, and the feedback register control flag 245a, feedback data 245b, output The data 245c and the selector control flag 245d are configured. Each enhancement-type memory transistor 281 has a value of "1" or "0" depending on whether or not the connection portion 282 is connected to the bit line 280.
Is expressed. Here, the black circles of the connection portion 282 represent the connected state, and the white circles represent the disconnected state. Beyond this bit line 280 is the dynamic sense amplifier 26.
0 is formed. First, the control signal line 262 becomes "0", and each bit line 280 is precharged by the precharge transistor 62a. Word line 243 at this time
w is set to '0'. Next, the control signal line 26
When 2 becomes "1" and then the word line 243 becomes "1", each enhancement type memory transistor 28
1 turns on. As a result, the charge is discharged from the bit line in which the connection portion 282 is in the connected state via the enhancement type memory transistor 281, and the dynamic sense amplifier 260 detects this and outputs "1".
Is output. On the contrary, in the case where the connection portion 282 is in the non-connection state, the electric charge of the bit line 280 is held and the output becomes “0”.

【0080】この場合も接続部282はコンタクト等の
形状が残るパターンで形成されることが多く、やはり分
解調査によりデータ解析されてしまう可能性が残る。そ
こで、この場合もイオンの注入量あるいは注入不純物の
違いによるしきい値電圧を変えるような形状変化の残ら
ないメモリ定義による回路例を同図(b)に示す。基本
メモリ283は、2つのトランジスタより成る。セレク
トトランジスタ284とメモリトランジスタ285であ
り、これらがシリーズに接続されている。メモリトラン
ジスタ285はエンハンスメント型トランジスタ285
bとディプレッション型メモリトランジスタ285aの
2種類があり、各々データ’0’と’1’に対応する。
In this case as well, the connecting portion 282 is often formed in a pattern in which the shape of the contact or the like remains, and there is a possibility that the data analysis will be performed by the disassembly examination. Therefore, also in this case, a circuit example based on the memory definition in which a shape change such as a threshold voltage change due to a difference in ion implantation amount or implantation impurities does not remain is shown in FIG. The basic memory 283 is composed of two transistors. A select transistor 284 and a memory transistor 285, which are connected in series. The memory transistor 285 is an enhancement type transistor 285.
There are two types, b and depletion type memory transistor 285a, which correspond to data "0" and "1", respectively.

【0081】つまり、ワード線243wが’1’となる
と、セレクトトランジスタ284は全てオンとなる。こ
の時ワード線243wをインバータ286で反転した信
号’0’に接続されるメモリトランジスタ285は、そ
のタイプがエンハンスメント型かディプレッション型か
で各々オフするかオンするかに分かれる。即ち、ディプ
レッション型メモリトランジスタ285aの場合は、あ
らかじめプリシャージされたビット線280の電荷がデ
ィスチャージされダイナミックセンスアンプ260によ
り’1’を出力する。一方、エンハンスメント型メモリ
トランジスタ285bの場合は、ビット線の電荷は保持
され’0’を出力することになる。しかしながら、外見
上はこれらのトランジスタは全く同じであり、分解調査
は極めて困難となる。
That is, when the word line 243w becomes "1", all the select transistors 284 are turned on. At this time, the memory transistor 285 connected to the signal “0” obtained by inverting the word line 243w by the inverter 286 is divided into an enhancement type and a depletion type, which are turned off or turned on. That is, in the case of the depletion type memory transistor 285a, the precharged charge of the bit line 280 is discharged and the dynamic sense amplifier 260 outputs "1". On the other hand, in the case of the enhancement type memory transistor 285b, the electric charge of the bit line is held and "0" is output. However, in appearance, these transistors are exactly the same, which makes disassembly and investigation extremely difficult.

【0082】もちろん、上述した実施例に示す回路方式
は一例に過ぎないものであり他の公知回路方式を用いて
も良いことは言うまでもない。またプロセスに関して
も、ROMに限らず、E2 PROM、フラッシュRO
M、SRAM等、特に限定されるものではない。また上
記実施例は、ROM4とは別にデータフロー制御装置1
0を構成した例であるが、データフロー制御装置10を
ROM等のメモリ装置内部に組み込んでもよい。
Of course, it goes without saying that the circuit system shown in the above-mentioned embodiment is only an example, and other known circuit systems may be used. Also, the process is not limited to ROM, but E 2 PROM, flash RO
M, SRAM, etc. are not particularly limited. Further, in the above embodiment, the data flow control device 1 is provided separately from the ROM 4.
However, the data flow control device 10 may be incorporated in a memory device such as a ROM.

【0083】次に、本発明のデータフロー制御装置10
の第3実施例について説明する。ROM4の中には、図
6に示す如く、各アドレスAに図示の各データDが格納
されているものとし、ここで、図13に示す如く、ソフ
トウェアの正常の動作からすると、アドレスデータの入
力順が、A(n)→A(n+1)→…→A(j)→A
(j+1)→A(j+2)→A(k)→A(m)である
とする。ここでは、これらのアドレスデータのうち、必
要に応じて途中を間引いたアドレスデータの配列{A
(n),A(j),A(k)}と、この配列にさらにア
ドレスデータA(m)を加えた配列{A(n),A
(j),A(k),A(m)}との2つの配列に着目
し、かつそれらの配列を構成するアドレスデータ間の距
離に着目している。ここで「距離」とは、着目している
ある1つのアドレスデータが入力され、その後いくつか
のアドレスデータが入力された後もう1つの着目してい
るアドレスデータが入力されたかを表している。ここで
は、アドレスデータA(n)が入力されてから次にアド
レスデータA(j)が入力されるまでの距離は無制限で
あるとする。即ち、アドレスデータA(n)が入力され
たすぐ次にアドレスデータ(j)が入力されてもよく、
アドレスデータA(n)が入力され、その後他のアドレ
スデータがいくつ入力された後にアドレスデータA
(j)が入力されてもよいものとする。またアドレスデ
ータA(j)とアドレスデータA(k)に関しては、そ
の間の距離は3、すなわち、アドレスデータA(j)と
アドレスデータA(k)との間に他のアドレスデータが
最大2つまで入り込むことを許容するものとする。さら
に、アドレスデータA(k)とアドレスデータA(m)
に関しては、その距離は1,即ち、アドレスデータA
(k)とアドレスデータA(m)との間に他のアドレス
データが入り込んではならないものとする。
Next, the data flow control device 10 of the present invention.
A third embodiment will be described. As shown in FIG. 6, each data D shown in FIG. 6 is stored in the ROM 4, and here, as shown in FIG. 13, from the normal operation of the software, the input of the address data is performed. The order is A (n) → A (n + 1) → ... → A (j) → A
It is assumed that (j + 1) → A (j + 2) → A (k) → A (m). Here, of these address data, an array of address data {A
(N), A (j), A (k)} and an array {A (n), A obtained by adding address data A (m) to this array.
(J), A (k), A (m)} are focused on, and the distance between the address data forming these arrays is focused. Here, the “distance” indicates whether or not one particular address data of interest is input, then some address data is input, and then another address data of interest is input. Here, it is assumed that the distance from the input of the address data A (n) to the input of the next address data A (j) is unlimited. That is, the address data (j) may be input immediately after the address data A (n) is input,
The address data A (n) is input, and then the number of other address data is input, and then the address data A (n) is input.
(J) may be input. Further, regarding the address data A (j) and the address data A (k), the distance between them is 3, that is, there is a maximum of two other address data between the address data A (j) and the address data A (k). Is allowed to enter. Further, the address data A (k) and the address data A (m)
For, the distance is 1, that is, the address data A
No other address data should enter between (k) and the address data A (m).

【0084】上記の配列の順序で、かつ各アドレスデー
タ間の距離が満たされる時に、データフロー制御装置1
0の内部に格納された正規のデータD(k),D(m)
が各々アドレスデータA(k)とA(m)の入力に応答
して出力されるよう定義しておく。一方ROM4には、
各アドレスA(k),A(m)には、システムダウンを
生じるデータ‘BREAK1’‘BREAK2’を各々
定義しておく。
In the order of the above arrangement and when the distance between the respective address data is satisfied, the data flow control device 1
Regular data D (k), D (m) stored inside 0
Are output in response to inputs of address data A (k) and A (m), respectively. On the other hand, in ROM4,
Data'BREAK1''BREAK2 'which causes a system down is defined in each address A (k), A (m).

【0085】このようなソフトウエアによる、この制御
システムが動作している時のアドレスの処理手順とその
出力データは図13(a)のようになる。即ちアドレス
データA(k),A(m)以外はROM4に格納されて
いるデータが出力されるが、アドレスデータA(k),
A(m)が入力された際は、システムをダウンさせる
‘BREAK1’‘BREAK2’がROM4から出力
されるのではなく、その代わりにデータフロー制御装置
10から正規のデータD(k),D(m)が出力され、
正常な動作が続行される。ところが不正なデータコピー
を行う場合は、この実際のソフトウェアの処理手順、い
いかえれば正規のアドレスのフローとは無関係に、例え
ば、アドレスを順次入力し、入力された各アドレスに対
応出力されるデータを読み取ることになる。この場合の
各アドレスに対応して出力するデータは、図13(b)
のようになり、アドレスA(k),A(m)に対するデ
ータとして‘BREAK1’‘BREAK2’しか得る
ことができず、このようなデータでソフトウェアを動か
そうとしてもある時点でシステムダウンし動作不能にな
る。
FIG. 13A shows an address processing procedure and its output data when the control system is operating by such software. That is, except for the address data A (k) and A (m), the data stored in the ROM 4 is output, but the address data A (k),
When A (m) is input, 'BREAK1''BREAK2' for shutting down the system is not output from the ROM 4, but instead the normal data D (k), D (from the data flow controller 10 is output. m) is output,
Normal operation continues. However, when illegal data copying is performed, regardless of this actual software processing procedure, in other words, the flow of a legitimate address, for example, the addresses are sequentially input, and the output data corresponding to each input address is output. Will be read. The data output corresponding to each address in this case is as shown in FIG.
As a result, only'BREAK1''BREAK2 'can be obtained as the data for the addresses A (k) and A (m), and even if an attempt is made to operate the software with such data, the system goes down at some point and becomes inoperable. become.

【0086】このように、ここでは、実際のソフトウェ
アが動作するときに存在するアドレスの不連続性と、一
連の処理のためには複数のアドレスからのデータが必要
であるというアドレスの関連性の2点に着目している。
この点から、特定のアドレスの出力データを、最新ある
いはそのときに入力されたアドレスデータのみだけでな
く、それ以前に入力されたアドレスデータとも関連づ
け、それらの複数のアドレスデータの組合わせをキーデ
ータとして、そのキーデータに対応するデータをデータ
フロー制御装置10に格納しておき、一方通常のROM
4の中には、ダミーデータ(上記の例ではシステムをダ
ウンさせる‘BREAK1’,‘BREAK2’のデー
タ)を入れておく。こうすることで、ソフトウェアの処
理手順を全て知る開発者でない限り、それがダミーデー
タかどうか全くわからず、また何がキーデータなのかも
わからないものとしている。
As described above, here, the discontinuity of the address existing when the actual software operates and the relation of the address that data from a plurality of addresses are required for a series of processing are related. We pay attention to two points.
From this point, the output data of a specific address is associated not only with the address data input most recently or at that time, but also with the address data input before that, and the combination of these multiple address data is used as key data. As data, the data corresponding to the key data is stored in the data flow control device 10, while the normal ROM is used.
Dummy data (data of'BREAK1 'and'BREAK2' that bring down the system in the above example) is put in No. 4. By doing this, unless you are a developer who knows all the processing steps of software, you do not know at all whether it is dummy data or what the key data is.

【0087】また、この実施例ではデータD(k)のキ
ーデータとしてアドレスデータA(n),A(j)およ
び自らのアドレスA(k)の3つのアドレスデータ、お
よびデータD(m)のキーデータとしてアドレスデータ
A(n),A(j),A(k)および自らのアドレスデ
ータA(m)の4つのアドレスデータの中での順番と各
アドレス間の距離(距離無制限を含む)が定義されてお
り、これら3つないし4つのアドレスデータの発生順序
とその距離により正規のデータD(k),D(m)を各
々アドレスデータA(k),A(m)の入力に対応させ
て出力している。もちろんこの側に示した3つないし4
つのアドレスデータの配列に限らず、一連の処理を行う
ためにアクセスされる複数のアドレスの中から任意の個
数、任意の場所のものを選び、ダミーデータをROM4
に、正規のデータとそのキーデータをデータフロー制御
装置10に入力しておくことが可能である。またここで
は、アドレスの距離に関しても、ある設定範囲以内であ
ればよく、これにより設定の容易化が図られている。こ
のキーデータとして定義されるアドレスデータの数をい
ろいろと変化させたり、各キーデータの数を増やすこと
によって置換されるべき正規データの数を増加させるこ
とで、違法なコピーを更に困難にすることができる。
Further, in this embodiment, three pieces of address data A (n) and A (j) and three address data of own address A (k) and data D (m) are used as key data of data D (k). The order in the four address data of the address data A (n), A (j), A (k) and the own address data A (m) as key data and the distance between the addresses (including unlimited distance) Is defined, and the normal data D (k), D (m) correspond to the input of address data A (k), A (m), respectively, depending on the generation order of these three or four address data and their distances. And output it. Of course the three or four shown on this side
Not only the arrangement of one address data, but also an arbitrary number and an arbitrary place are selected from a plurality of addresses accessed for performing a series of processing, and dummy data is stored in the ROM 4
In addition, it is possible to input the regular data and the key data thereof to the data flow control device 10. Further, here, the address distance may be within a certain setting range, which facilitates the setting. Making illegal copying even more difficult by changing the number of address data defined as this key data or increasing the number of regular data to be replaced by increasing the number of each key data. You can

【0088】次に、本発明のデータ制御装置10の第3
実施例の回路構成について図14のブロック図および図
15のタイミングチャート図を用いて説明する。まず、
図14に示すアドレス線7を介してアドレスデータが一
致検出部341に入力される。同時に帰還レジスタ34
2に格納されたデータがこの一致検出部341に入力さ
れ、この帰還レジスタ342に格納されたデータとアド
レスデータの両方に一致する一致ブロック343のワー
ド線343wがアクティブとなる。これによりその真横
のメモリブロック345が選択される。
Next, the third embodiment of the data control device 10 of the present invention will be described.
The circuit configuration of the embodiment will be described with reference to the block diagram of FIG. 14 and the timing chart of FIG. First,
Address data is input to the match detection unit 341 via the address line 7 shown in FIG. At the same time, the feedback register 34
The data stored in No. 2 is input to the coincidence detection unit 341, and the word line 343w of the coincidence block 343 that coincides with both the data stored in the feedback register 342 and the address data is activated. As a result, the memory block 345 just beside it is selected.

【0089】各メモリブロック345は、カウンタセッ
トフラグ345a、カウンタイネーブルフラグ345
b、帰還データ345c,カウンタデータ345d、出
力データ345e、およびセレクタ制御フラグ345f
より成っている。また一致ブロック部343は、アドレ
スデータ一致部343aおよび帰還データ一致部343
よりなっている。
Each memory block 345 has a counter set flag 345a and a counter enable flag 345.
b, feedback data 345c, counter data 345d, output data 345e, and selector control flag 345f.
Is made up of. The matching block unit 343 includes an address data matching unit 343a and a feedback data matching unit 343.
Has become

【0090】まずアドレス線7を経由してアドレスデー
タA(n)が一致検出部341に入力される。このとき
一致検出部341の第4番目の一致ブロック部343の
アドレスデータ一致部343aにはアドレスデータA
(n)が入っている。また、その第4番目の一致ブロッ
ク部343の帰還データ一致部343bは、ドントケア
状態(どのようなデータに対しても一致したものとみな
す状態)に設定されている。この結果、第4番目の一致
ブロック部343に一致が発生し、そのワード線343
wがアクティブとなり、同図真横の第4番目のメモリブ
ロック345が選択され、その格納データが各々出力さ
れる。この格納データのセレクタ制御フラグ345fは
‘0’であるため、セレクタ346は、データ線308
aを経由して入力されたROM4からの出力信号を、デ
ータ線8に出力する。
First, the address data A (n) is input to the coincidence detection unit 341 via the address line 7. At this time, the address data A is stored in the address data matching unit 343a of the fourth matching block unit 343 of the matching detection unit 341.
(N) is included. The feedback data matching unit 343b of the fourth matching block unit 343 is set to the don't care state (a state in which any data is considered to match). As a result, a match occurs in the fourth match block unit 343, and the word line 343 of the match occurs.
w becomes active, the fourth memory block 345 located right beside in the figure is selected, and its stored data is output. Since the selector control flag 345f of this stored data is "0", the selector 346 causes the data line 308
The output signal from the ROM 4 input via a is output to the data line 8.

【0091】また、カウンタセットフラグ345aも’
1’であるので帰還レジスタ制御信号の立ち上りで(図
15の時刻T1)、帰還データ345cから読み出され
た値’1’が帰還レジスタ342に格納される。それと
同時にカウンタデータ345dの’*’がカウントセッ
ト信号(このカウントセット信号は、カウンタセットフ
ラグ345aの出力を△t2遅らせた信号である)の立
ち上りのタイミングでカウンタ352に入力される。こ
こで、このカウンタデータ345dの値’*’は、値が
何であってもよいことを意味する。その値が何でもよい
のは、カウンタイネーブルフラグ345bが’0’であ
り、このためカウンタ352の状態にかかわらず、帰還
レジスタ342への出力信号が’1’となるためであ
る。このため、上述した配列を構成する次のアドレスデ
ータA(j)が入力されるまでは、帰還レジスタ342
の値を保持することが可能となり、キーアドレスA
(n)とA(j)が距離に無関係なものとなる。
The counter set flag 345a is also set to '
Since it is 1 ', the value' 1 'read from the feedback data 345c is stored in the feedback register 342 at the rising edge of the feedback register control signal (time T1 in FIG. 15). At the same time, “*” of the counter data 345d is input to the counter 352 at the rising timing of the count set signal (this count set signal is a signal obtained by delaying the output of the counter set flag 345a by Δt2). Here, the value “*” of the counter data 345d means that the value may be any value. The value may be anything because the counter enable flag 345b is "0", and therefore the output signal to the feedback register 342 is "1" regardless of the state of the counter 352. Therefore, until the next address data A (j) forming the above-described array is input, the feedback register 342 is input.
It becomes possible to hold the value of
(N) and A (j) are independent of the distance.

【0092】この帰還レジスタ342とカウンタ352
を具体的に図16を用いて説明する。帰還レジスタ34
2は複数のフリップフロップ390と入力データ制御回
路391より構成されており、フリップフロップ390
の出力Qが入力データ制御回路391に帰還されてい
る。また、この入力データ制御回路391には大きく2
通りの入力がある。
This feedback register 342 and counter 352
Will be specifically described with reference to FIG. Feedback register 34
Reference numeral 2 is composed of a plurality of flip-flops 390 and an input data control circuit 391.
Output Q is fed back to the input data control circuit 391. In addition, the input data control circuit 391 has 2
There is a street input.

【0093】その1つは、帰還データ345cであり、
この帰還データ345cはカウンタセットフラグ345
aが’1’又はカウンタ352の出力、即ちOR回路3
95からの出力’0’の時、帰還レジスタ制御信号の立
ち上りタイミング(例えば、図15の時刻T1、T2、
T3、T4等)で帰還レジスタ342に入力される。も
うひとつは、フリップフロップ390からの帰還データ
であり、このデータはカウンタセットフラグ345a
が’0’で且つカウンタ352の出力が’1’の時、上
と同様に帰還レジスタ制御信号の立ち上りタイミングで
帰還入力され、それまでのデータをそのまま保持する。
One of them is the feedback data 345c,
This feedback data 345c is the counter set flag 345.
a is “1” or the output of the counter 352, that is, the OR circuit 3
When the output from 95 is '0', the rising timing of the feedback register control signal (for example, time T1, T2 in FIG. 15,
(T3, T4, etc.) at the feedback register 342. The other is the feedback data from the flip-flop 390, which is the counter set flag 345a.
Is "0" and the output of the counter 352 is "1", the feedback input is performed at the rising timing of the feedback register control signal as in the above, and the data up to that point is held as it is.

【0094】この帰還レジスタ制御信号は、図14の制
御回路349より出力されるが、これはアドレス線7を
介して入力されるアドレスの変化を検出するATD出力
より作られるものであり、これを更に△t1遅らせ反転
させたものが制御信号である(図15参照)。また、カ
ウンタ352に関しては、カウンタセットフラグ345
a(図14参照)の信号を△t2だけ遅延させたカウン
タセット信号の立ち上りエッジでカウンタデータ345
dの値がカウンタ回路392に入力される。カウントダ
ウン端子(countdown)には、制御信号カウン
タ回路392は、アドレスデータが入力される毎に’
1’ずつカウントダウンする。
This feedback register control signal is output from the control circuit 349 of FIG. 14, which is generated from the ATD output for detecting the change of the address input via the address line 7. Further, the control signal is delayed by Δt1 and inverted (see FIG. 15). As for the counter 352, the counter set flag 345
The counter data 345 is generated at the rising edge of the counter set signal obtained by delaying the signal a (see FIG. 14) by Δt2.
The value of d is input to the counter circuit 392. The control signal counter circuit 392 is connected to the countdown terminal (countdown) every time the address data is input.
Count down by 1 '.

【0095】このカウンタ回路392の出力の論理和が
オア回路393で演算され、その出力がオア回路395
に入力されている。このオア回路395には、カウンタ
イネーブルフラグ345bがインバータ394aで反転
して入力されるフリップフロップ394の出力が入力さ
れている。また、このフリップフロップ394にはカウ
ンタセット信号の立ち上りタイミングで、カウンタイネ
ーブルフラグ345bの値が入力され、このフリップフ
ロップ394の値が’0’、即ちカウンタがディスエー
ブルの時は、オア回路395により、帰還レジスタ34
2に’1’を出力する。その結果、カウンタセットフラ
グ345aが’1’でない限り、フリップフロップ39
0のQ出力を帰還保持する。
The logical sum of the outputs of the counter circuit 392 is calculated by the OR circuit 393, and the output thereof is the OR circuit 395.
Has been entered in. The output of the flip-flop 394, to which the counter enable flag 345b is inverted by the inverter 394a and input, is input to the OR circuit 395. Also, the value of the counter enable flag 345b is input to the flip-flop 394 at the rising timing of the counter set signal, and when the value of the flip-flop 394 is "0", that is, the counter is disabled, the OR circuit 395 outputs the value. , Feedback register 34
Output '1' to 2. As a result, unless the counter set flag 345a is "1", the flip-flop 39
The Q output of 0 is held as feedback.

【0096】また、カウンタイネーブルフラグ345b
が’1’であり、カウンタ352がイネーブルの時(フ
リップフロップ394の出力が’0’の時)は、カウン
タ回路392の出力のいずれかが’1’の時、オア回路
395の出力が’1’となり同様に、フリップフロップ
390のQ出力が帰還保持される。以上が帰還レジスタ
342及びカウンタ352の概要である。この説明でわ
かるように、カウンタイネーブルフラグ’0’が一旦取
り込まれると、次に入力されることが期待されているア
ドレスデータA(j)が入力されるまでは、カウンタ3
52のカウントダウン動作にかかわらず帰還レジスタ3
42は同じ値を保持し続ける。
Further, the counter enable flag 345b
Is “1” and the counter 352 is enabled (when the output of the flip-flop 394 is “0”), when one of the outputs of the counter circuit 392 is “1”, the output of the OR circuit 395 is “1”. Similarly, the Q output of the flip-flop 390 is feedback-held. The above is the outline of the feedback register 342 and the counter 352. As can be seen from this description, once the counter enable flag '0' is taken in, the counter 3 is not operated until the address data A (j) expected to be input next is input.
Feedback register 3 regardless of the countdown operation of 52
42 continues to hold the same value.

【0097】次に、アドレスデータA(j)が入力され
た場合の動作について説明する。この時帰還レジスタ3
42には既に’1’が入力されて保持され続けているた
め、上記と同様にして図14の第2番目の一致ブロック
に一致が発生し、そのワード線343wがアクティブと
なり、真横のメモリブロック345からカウンタセット
フラグ345aの’1’、カウンタイネーブルフラグ3
45bの’1’、帰還データ345cの’2’およびカ
ウンタデータ345dの’3’が出力される。ただし、
この時もセレクタ制御フラグ345fが’0’であり、
あいかわらずROM4からデータ線308aを介してセ
レクタ346に入力される出力データが、データ線8よ
り出力される。
Next, the operation when the address data A (j) is input will be described. Feedback register 3 at this time
Since '1' has already been input and held in 42, a match occurs in the second matching block in FIG. 14 in the same manner as described above, the word line 343w becomes active, and the memory block directly next to it is activated. 345 to “1” of the counter set flag 345a, counter enable flag 3
'1' of 45b, '2' of feedback data 345c and '3' of counter data 345d are output. However,
Also at this time, the selector control flag 345f is "0",
The output data, which is always input from the ROM 4 to the selector 346 via the data line 308a, is output from the data line 8.

【0098】ここで、カウンタセットフラグ345aよ
り作られるカウンタセット信号が’1’となるため、帰
還レジスタ制御信号の立ち上りタイミングで(図15の
時刻T2)、帰還データ345cの’2’が帰還レジス
タ342に入力され、これとともに、カウンタデータ3
45dの’3’がカウンタ352に入力される。また、
カウンタイネーブルフラグ345bが’1’であるため
に、図16のフリップフロップ394の出力は’0’と
なり、したがって今度はカウンタ回路392からの信号
により帰還レジスタ342が制御されることになる。
Here, since the counter set signal generated from the counter set flag 345a becomes "1", "2" of the feedback data 345c becomes "2" at the rising timing of the feedback register control signal (time T2 in FIG. 15). 342 and the counter data 3
'3' of 45d is input to the counter 352. Also,
Since the counter enable flag 345b is "1", the output of the flip-flop 394 in FIG. 16 is "0", and thus the feedback register 342 is controlled by the signal from the counter circuit 392 this time.

【0099】次のアドレスが入力されると制御信号の立
ち上りで、カウンタ352(図14、図15及び図16
参照)の値が1つカウントダウンされ、’2’となる
(図15の時刻T2とT2+1との間)。更に、次のア
ドレスデータが入力され、時刻T2+1で帰還レジスタ
制御信号が立ち上るが、この時カウンタセットフラグ3
45aが’0’でかつカウンタ352からの出力が’
1’であるため、帰還レジスタ342のフリップフロッ
プ390の出力がそのまま帰還され、以前のデータを保
持することになる(図16参照)。時刻T2+1からT
2+2の間の制御信号の立ち上りで、カウンタ352
は’1’にカウントダウンされる。
When the next address is input, the counter 352 (FIGS. 14, 15 and 16) is generated at the rising edge of the control signal.
The value of (see) is counted down by one and becomes “2” (between time T2 and T2 + 1 in FIG. 15). Further, the next address data is input, and the feedback register control signal rises at time T2 + 1. At this time, the counter set flag 3
45a is "0" and the output from the counter 352 is "0".
Since it is 1 ', the output of the flip-flop 390 of the feedback register 342 is fed back as it is and holds the previous data (see FIG. 16). From time T2 + 1 to T
At the rising edge of the control signal between 2 + 2, the counter 352
Is counted down to '1'.

【0100】時刻T2+2でも同様に帰還レジスタ制御
信号が立ち上るが、この時もカウンタ352の値は’
1’であって、カウンタセットフラグ345aは’0’
であるので、やはり以前のデータが保持される。次に、
時刻T2+2からT3の間の制御信号の立ち上りで、カ
ウンタ352は’0’にカウントダウンされ、カウンタ
352からの帰還レジスタ342への出力が’0’とな
るが、この時のアドレスデータが期待値のA(k)にな
っており、カウンタセット信号の立ち上りでカウンタデ
ータ345d’1’及びカウンタイネーブルフラグ34
5b’1’がセットされる。また、この時、セレクタ制
御フラグ345fが’1’であるので、出力データ34
5dのD(k)がROM4からの出力データBRBAK
1に代わって、セレクタ345を介してデータ線8より
出力される。また、帰還データ345cの’3’は、時
刻T3の帰還レジスタ制御信号の立ち上りで帰還レジス
タ342に入力保持される。
Similarly at time T2 + 2, the feedback register control signal rises, but at this time, the value of the counter 352 is'
1'and the counter set flag 345a is '0'
Therefore, the previous data is retained. next,
At the rising edge of the control signal from time T2 + 2 to time T3, the counter 352 counts down to "0", and the output from the counter 352 to the feedback register 342 becomes "0". However, the address data at this time has the expected value. A (k), the counter data 345d'1 'and the counter enable flag 34 at the rising edge of the counter set signal.
5b'1 'is set. At this time, since the selector control flag 345f is "1", the output data 34
5d D (k) is the output data BRBAK from ROM4
Instead of 1, it is output from the data line 8 via the selector 345. Further, '3' of the feedback data 345c is input and held in the feedback register 342 at the rising edge of the feedback register control signal at time T3.

【0101】更に、時刻T3と時間T4との間の制御信
号の立ち上りのタイミング、カウンタ352が’0’に
カウントダウンされ、セレクタ制御フラグ345fが’
1’であるので、やはり、ROM4からの出力データB
REAK2に代わってデータD(m)がセレクタ346
を介して、データフロー制御装置10より出力される。
Further, the timing of the rising edge of the control signal between time T3 and time T4, the counter 352 is counted down to "0", and the selector control flag 345f is set to "0".
Since it is 1 ', the output data B from the ROM 4 is also
The data D (m) is replaced by the selector 346 instead of the REAK2.
Is output from the data flow control device 10 via the.

【0102】次に、時刻T4の帰還レジスタ制御信号の
立ち上りでは、カウンタ352からの出力が’0’であ
るので、帰還データ345cの値’0’が帰還レジスタ
342に入力され保持される。また、カウンタ352お
よびカウンタイネーブルフラグ345bのフリップフロ
ップ394は、カウンタセットフラグ345aが’0’
なので、それまでの’0’の状態を保つことになる。
Next, at the rising edge of the feedback register control signal at time T4, since the output from the counter 352 is "0", the value "0" of the feedback data 345c is input and held in the feedback register 342. Further, in the counter 352 and the flip-flop 394 of the counter enable flag 345b, the counter set flag 345a is "0".
Therefore, the state of '0' will be maintained.

【0103】以上が動作概要であるが、2つの入力期待
アドレスデータの距離n(整数)を決めるものはカウン
タ352であるが、このn番目以内に期待アドレスデー
タが入力されたときも、図16の帰還レジスタ342の
入力データ制御回路391を構成する、帰還データ34
5c入力を制御する回路が、カウンタ352の出力と、
カウンタセットフラグ345aの論理和を演算するオア
回路391bであるために、期待するアドレスデータが
このn番目以内に入力されれば、ちょうどn番目に入力
された場合と同様となる。逆に、n+1番目以降に入力
された場合は、カウンタ352の出力が’0’になった
後の、期待アドレスデータが入力されていない帰還デー
タ、即ち’0’が帰還レジスタ342に入力されること
になる。
The above is the outline of the operation. It is the counter 352 that determines the distance n (integer) between the two input expected address data. However, when the expected address data is input within this n-th position, FIG. Of the feedback data 34, which constitutes the input data control circuit 391 of the feedback register 342 of
The circuit for controlling the 5c input is the output of the counter 352,
Since it is the OR circuit 391b that calculates the logical sum of the counter set flag 345a, if the expected address data is input within this nth, it becomes the same as when it is input exactly at the nth. On the contrary, in the case of being input after the (n + 1) th, the feedback data after the output of the counter 352 becomes “0” and the expected address data is not input, that is, “0” is input to the feedback register 342. It will be.

【0104】このように、その時点に入力されているア
ドレスだけで出力データを決定するのではなく、特定の
アドレスに対しては、その前に入力されたソフトウェア
実行時のアドレス系列およびその距離によってその出力
を決めることにより、不正なアドレス動作におけるコピ
ーが防止されるのである。また、この例に示すように、
例えばアドレスデータA(n)等の後に期待されていな
いどんなアドレスデータが1つもしくは複数個来ても、
常に次にキーとなるものを待つことが出来る構成となっ
ているために、近年の処理高速化のためのCPUのプリ
フェッチ動作による、ソフトウェアの処理手順を考慮し
ない連続したアドレスによるデータの先き読みに対して
も誤動作することなく、適切なキーデータの抽出と、正
規データの出力が可能となる。
As described above, the output data is not determined only by the address input at that time, but for a specific address, it is determined by the address sequence and the distance at the time of executing the software input before that. By determining the output, copying in an illegal address operation is prevented. Also, as shown in this example,
For example, even if one or a plurality of unexpected address data comes after the address data A (n),
Since it is configured so that it can always wait for the next key, the prefetch of data by consecutive addresses without considering the processing procedure of software by the prefetch operation of the CPU for speeding up processing in recent years It is possible to extract appropriate key data and output regular data without malfunctioning.

【0105】尚、図4に示す第3実施例における一致検
出部341の一致ブロック343、およびメモリ部34
4のメモリブロック345の具体的回路は特に限定され
るものではないが、例えば、前述した第2実施例で示し
た具体的回路と同様に構成することができる(図10
(a),(b)、図11、図12(a),(b)参
照)。
The match block 343 of the match detection unit 341 and the memory unit 34 in the third embodiment shown in FIG.
Although the specific circuit of the memory block 345 of No. 4 is not particularly limited, for example, it can be configured in the same manner as the specific circuit shown in the second embodiment described above (FIG. 10).
(A), (b), FIG. 11, FIG. 12 (a), (b) reference).

【0106】次に、本発明のデータフロー制御装置の第
4実施例について説明する。まず、ROM4の中には、
図17(a)に示す如く、各アドレスAに従って図示の
各データDが格納されており、データフロー制御装置1
0にも同図(b)のデータが格納されている。ROM4
には、アドレス線7からデータフロー制御装置10を介
してアドレスデータが入力される。また、同様にROM
4からの出力データは、データフロー制御装置10を介
してデータ線8に出力される。もちろん、このアドレス
線7の全部又は一部、又はデータ線8の一部が直接RO
M4に接続されても良い。
Next, a fourth embodiment of the data flow control device of the present invention will be described. First, in ROM4,
As shown in FIG. 17A, each data D shown in the drawing is stored according to each address A, and the data flow control device 1
0 also stores the data shown in FIG. ROM4
Is input with address data from the address line 7 through the data flow control device 10. Similarly, ROM
The output data from 4 is output to the data line 8 via the data flow control device 10. Of course, all or part of the address line 7 or part of the data line 8 is directly RO
It may be connected to M4.

【0107】次に、実際のソフトウェア実行時の動作の
例について説明する。特に、本実施例は、複数のデータ
を同一のアドレスに対応づけるという、「アドレスの多
重化」という点から述べることにする。まず、あるソフ
トウェア処理の時は、アドレスがA(j)→A(j+
2)→A(k)→A(k+1)とアクセスされるとす
る。このアクセスの手順と示したものが、図18(a)
の添付番号(1)から(4)である。このときは、通常
のROM4から各アドレスに対応したデータが出力され
ることになる。
Next, an example of operation during actual software execution will be described. In particular, this embodiment will be described from the point of "address multiplexing", in which a plurality of data are associated with the same address. First, during certain software processing, the address is A (j) → A (j +
2) → A (k) → A (k + 1) is accessed. This access procedure is shown in FIG. 18 (a).
Are attached numbers (1) to (4). At this time, the data corresponding to each address is output from the normal ROM 4.

【0108】ここで仮に、アドレスA(j)のデータ
は、条件ジャンプの判定部に相当するものであるとし、
上述の第1のケースはジャンプが発生しなかった場合で
あるとする。一方、図18(b)の場合は、条件ジャン
プが発生する場合のアドレスアクセスの順番を示す第2
のケースであり、A(j)→A(j+1)→A(m)→
A(m+1)→A(k)→A(k+1)となる。
Here, it is assumed that the data of the address A (j) corresponds to the judgment part of the conditional jump,
The above-mentioned first case is assumed to be a case where no jump has occurred. On the other hand, in the case of FIG. 18B, the second order indicating the order of address access when a conditional jump occurs
A (j) → A (j + 1) → A (m) →
A (m + 1) → A (k) → A (k + 1).

【0109】ここで、第1のケース(図18(a))で
は、アドレスA(k),A(k+1)にはそれぞれデー
タ(k,1),D(k+1,1)が対応しており、第2
のケース(図18(b))では同じアドレスA(k),
A(k+1)に第1のケースとは異なるデータD(k,
2),D(k+1,2)が対応している。そこで第2の
ケースにおけるアドレスA(k),A(k+1)に対応
するデータD(k,2),D(k+1,2)はデータフ
ロー制御装置10に格納しておき、第2のケースの場合
における順番、すなわち、上述した、A(j)→A(j
+1)→A(m)→A(m+1)→A(k)→A(k+
1)の順番でアクセスされた時に、アドレスA(k),
A(k+1)に対応して、ROM4の内容ではなく、デ
ータフロー制御装置10のデータを出力することとする
わけである。
In the first case (FIG. 18 (a)), the addresses A (k) and A (k + 1) correspond to the data (k, 1) and D (k + 1, 1), respectively. , Second
In the case (Fig. 18 (b)), the same address A (k),
A (k + 1) has different data D (k,
2) and D (k + 1, 2) correspond to each other. Therefore, the data D (k, 2), D (k + 1,2) corresponding to the addresses A (k), A (k + 1) in the second case are stored in the data flow control device 10, and The order in the case, that is, A (j) → A (j
+1) → A (m) → A (m + 1) → A (k) → A (k +
When accessed in the order of 1), the address A (k),
Corresponding to A (k + 1), the data of the data flow control device 10 is output instead of the contents of the ROM 4.

【0110】ここでは、この第2のケースのアドレスの
うち、特に{A(j),A(m),A(k),A(k+
1)}のアドレスの出現順とその各アドレスの距離に着
目する。ここで「距離」とは、着目しているある1つの
アドレスデータが入力され、その後いくつのアドレスデ
ータが入力された後もう1つの着目しているアドレスデ
ータが入力されたかを表している。ここでは、アドレス
データA(j)が入力されてから次にアドレスデータA
(m)が入力されるまでの距離は無制限であるとする。
即ち、アドレスデータA(j)が入力されたすぐ次にア
ドレスデータ(m)が入力されてもよく、アドレスデー
タA(j)が入力され、その後他のアドレスデータがい
くつ入力された後にアドレスデータA(m)が入力され
てもよいものとする。またアドレスデータA(m)とア
ドレスデータA(k)に関しては、その間の距離は3、
すなわち、アドレスデータA(m)とアドレスデータA
(k)との間に他のアドレスデータが最大2つまで入り
込むことを許容するものとする。さらに、アドレスデー
タA(k)とアドレスデータA(k+1)に関しては、
その距離は1,即ち、アドレスデータA(k)とアドレ
スデータA(k+1)との間に他のアドレスデータが入
り込んではならないものとする。
Here, among the addresses of the second case, in particular, {A (j), A (m), A (k), A (k +
1)} address appearance order and the distance between the addresses. Here, the “distance” indicates that one address data of interest is input, and then the number of address data is input and then the other address data of interest is input. Here, after the address data A (j) is input, the next address data A
It is assumed that the distance until (m) is input is unlimited.
That is, the address data (m) may be input immediately after the address data A (j) is input, the address data A (j) is input, and then the number of other address data is input and then the address data is input. A (m) may be input. The distance between the address data A (m) and the address data A (k) is 3,
That is, the address data A (m) and the address data A
A maximum of two other address data are allowed to enter between (k). Furthermore, regarding the address data A (k) and the address data A (k + 1),
The distance is 1, that is, other address data should not enter between the address data A (k) and the address data A (k + 1).

【0111】上記の配列の順序で各アドレスデータが入
力され、かつ各アドレスデータ間の距離が満たされる時
に、データフロー制御装置10の内部に格納されたデー
タD(k,2),D(k+1,2)が各々アドレスデー
タA(k)とA(k+1)の入力に応答して出力される
よう定義しておく。一方ROM4には、各アドレスA
(k),A(k+1)には、上述したもう一方の分岐側
のプログラムデータD(k,1)とD(k+1,1)が
各々定義されている。
When each address data is input in the order of the above arrangement and the distance between each address data is satisfied, the data D (k, 2), D (k + 1) stored in the data flow control device 10 is stored. , 2) are output in response to inputs of address data A (k) and A (k + 1), respectively. On the other hand, in the ROM 4, each address A
Program data D (k, 1) and D (k + 1,1) on the other branch side described above are defined in (k) and A (k + 1), respectively.

【0112】このように、本実施例においても、実際の
ソフトウェアが動作するときに存在するアドレスの不連
続性と、一連の処理のためには複数のアドレスからのデ
ータが必要であるというアドレスの関連性の2点に着目
している。この点から、特定のアドレスの出力データ
を、最新あるいはそのときに入力されたアドレスデータ
のみだけでなく、それ以前に入力されたアドレスデータ
とも関連づけ、それらの複数のアドレスデータの組合わ
せをキーデータとして、そのキーデータに対応するデー
タをデータフロー制御装置10に格納しておき、一方通
常のROM4の中には、別のソフトウェアフローのデー
タを入れてアドレスを多重化しておく。こうすること
で、ソフトウェアの処理手順を全て知る開発者でない限
り、多重化されたアドレス番地やそのデータ内容を知る
ことができない。また何が多重化アドレスに対応したキ
ーデータなのかもわからないものとしている。また、こ
の実施例では、データD(k,2)のキーデータとして
アドレスデータA(j),A(m)および自らのアドレ
スA(k)の3つのアドレスデータ、およびデータD
(k+1,2)のキーデータとしてアドレスデータA
(j),A(m),A(k)および自らのアドレスデー
タA(k+1)の4つのアドレスデータの中での順番と
各アドレス間の距離(距離無制限を含む)が定義されて
おり、これら3つないし4つのアドレスデータの発生順
序とその距離によりアドレス多重化されたデータD
(k,2),D(k+1,2)を各々アドレスデータA
(k),A(k+1)の入力に対応させて出力してい
る。もちろんこの例に示した3つないし4つのアドレス
データの配列に限らず、一連の処理を行うためにアクセ
スされる複数のアドレスの中から任意の個数、任意の場
所のものを選び、アドレス多重化を行い、ある処理のデ
ータをROM4に格納しておくとともに、他の処理のデ
ータとそのキーデータをデータフロー制御装置10に格
納しておくことが可能である。またここでは、アドレス
の距離に関しても、ある設定範囲以内であればよく、こ
れにより設定の容易化が図られている。このアドレス多
重化率を上げたり、各処理のデータに対応する、キーデ
ータとして定義されるアドレスデータの数をいろいろと
変化させたり、キーデータの数を増やすことによって多
重化されたデータの数を増加させることで、違法なコピ
ーを更に困難にすることができる。
As described above, also in the present embodiment, the discontinuity of the addresses existing when the actual software operates and the address discontinuity that data from a plurality of addresses are required for a series of processing We pay attention to two points of relevance. From this point, the output data of a specific address is associated not only with the address data input at the latest or at that time, but also with the address data input before that, and the combination of these multiple address data is used as key data. As a result, data corresponding to the key data is stored in the data flow control device 10, while data of another software flow is put in the normal ROM 4 to multiplex the address. By doing so, unless the developer knows all the processing procedures of the software, he / she cannot know the multiplexed address address and the data content thereof. It is also assumed that the key data corresponding to the multiplexed address is unknown. Further, in this embodiment, as the key data of the data D (k, 2), the three address data of the address data A (j), A (m) and the own address A (k), and the data D
Address data A as (k + 1, 2) key data
(J), A (m), A (k) and its own address data A (k + 1) in the four address data and the distance between each address (including unlimited distance) are defined. Address-multiplexed data D depending on the generation order of these three or four address data and their distances.
(K, 2) and D (k + 1, 2) are the address data A, respectively.
(K) and A (k + 1) are output corresponding to the input. Of course, the arrangement is not limited to the arrangement of the three or four address data shown in this example, and an arbitrary number and an arbitrary place can be selected from a plurality of addresses accessed for performing a series of processing, and address multiplexing can be performed. It is possible to store the data of a certain process in the ROM 4 and the data of another process and its key data in the data flow control device 10. Further, here, the address distance may be within a certain setting range, which facilitates the setting. The number of data multiplexed by increasing the address multiplexing rate, changing the number of address data defined as key data corresponding to each processing data, and increasing the number of key data By increasing the number, illegal copying can be made more difficult.

【0113】このように、本発明は、前述した第1〜第
3実施例で説明したような、正規のフローで読み出され
ない場合にシステムダウン等の誤動作を生じさせる誤っ
たデータという観点の他、この第4実施例に示すように
アドレスの多重化という観点からも構成することができ
る。アドレスの多重化という観点から本発明を構成した
場合も、ROM4ないしデータフロー制御装置10に記
憶しておくデータが異なるのみであって、データフロー
制御装置10の具体的なハードウェアは、前述した第1
〜第3実施例の構成(図4,図8,図14参照)をその
まま採用することができる。
As described above, the present invention is not limited to the point of view of erroneous data that causes a malfunction such as system down when the data is not read in the normal flow as described in the first to third embodiments. As shown in the fourth embodiment, it can be configured from the viewpoint of address multiplexing. Even when the present invention is configured from the viewpoint of address multiplexing, only the data stored in the ROM 4 or the data flow control device 10 is different, and the specific hardware of the data flow control device 10 is as described above. First
The configuration of the third embodiment (see FIGS. 4, 8 and 14) can be adopted as it is.

【0114】ここでは、配列を構成するアドレスデータ
どうしの間にその配列を構成しないアドレスデータの嵌
入を許容し、かつ配列を構成するアドレスデータどうし
の間に距離の概念を導入した場合について、回路構成と
しては前述した第3実施例の場合(図14参照)と重複
するが、アドレスの多重化という観点からその回路構成
の一例について図19のブロック図および図20のタイ
ミングチャート図を用いて説明する。
Here, in the case where the insertion of the address data which does not form the array between the address data which forms the array is allowed and the concept of the distance is introduced between the address data which forms the array, the circuit is explained. Although the configuration overlaps with the case of the third embodiment (see FIG. 14) described above, an example of the circuit configuration will be described from the viewpoint of address multiplexing with reference to the block diagram of FIG. 19 and the timing chart of FIG. To do.

【0115】まず、図19に示すアドレス線7を介して
アドレス信号が一致検出部341に入力される。同時に
帰還レジスタ342のデータ出力信号がこの一致検出部
341に入力され、このデータ出力信号とアドレス信号
の両方に一致する一致ブロック343のワード線343
wがアクティブとなる。これによりその真横のメモリブ
ロック45が選択される。
First, an address signal is input to the coincidence detecting section 341 via the address line 7 shown in FIG. At the same time, the data output signal of the feedback register 342 is input to the coincidence detection unit 341, and the word line 343 of the coincidence block 343 that coincides with both the data output signal and the address signal.
w becomes active. As a result, the memory block 45 right next to it is selected.

【0116】各メモリブロック345は、カウンタセッ
トフラグ345a、カウンタイネーブルフラグ345
b、帰還データ345c、カウンタデータ345d、出
力データ345e、およびセレクタ制御フラグ345f
より成っている。また一致ブロック343は、アドレス
データ一致部343aおよび帰還データ一致部343b
より成っている。
Each memory block 345 has a counter set flag 345a and a counter enable flag 345.
b, feedback data 345c, counter data 345d, output data 345e, and selector control flag 345f.
Is made up of. The matching block 343 includes an address data matching unit 343a and a feedback data matching unit 343b.
Is made up of.

【0117】まずアドレス線7を経由してアドレスデー
タA(j)が一致検出部341に入力される。このとき
一致検出部341の第4番目の一致ブロック343のア
ドレスデータ一致部343aにはアドレスデータA
(j)が入っている。また、その第4番目の一致ブロッ
ク343の帰還データ一致部343bは、ドントケア状
態(どのようなデータに対しても一致したものとみなす
状態)に設定されている。この結果、第4番目の一致ブ
ロック343に一致が発生し、そのワード線343wが
アクティブとなり、同図真横の第4番目のメモリブロッ
ク345が選択され、その格納データが各々出力され
る。この格納データのセレクタ制御フラグ345fは
‘0’であるため、セレクタ46は、データ線108a
を経由して入力されたROM4からの出力信号を、デー
タ線108に出力する。
First, the address data A (j) is input to the coincidence detection unit 341 via the address line 7. At this time, the address data A is stored in the address data matching unit 343a of the fourth matching block 343 of the matching detection unit 341.
(J) is included. The feedback data matching unit 343b of the fourth matching block 343 is set to the don't care state (a state in which any data is considered to match). As a result, a match occurs in the fourth matching block 343, the word line 343w thereof becomes active, the fourth memory block 345 right next to the drawing is selected, and its stored data is output. Since the selector control flag 345f of this stored data is "0", the selector 46 operates the data line 108a.
The output signal from the ROM 4 input via the is output to the data line 108.

【0118】この時、帰還レジスタ制御信号の立ち上り
で(図20の時刻T1)、帰還データ345cから読み
出された値’1’が帰還レジスタ342に格納される。
それと同時に、カウンタセットフラグ345aも’1’
であるので、カウンタデータ345dの’*’がカウン
トセット信号(このカウントセット信号は、カウンタセ
ットフラグ345aの出力を△t2遅らせた信号であ
る)の立ち上りのタイミングでカウンタ1342に入力
される。ここで、このカウンタデータ345dの値’
*’は、値が何であってもよいことを意味する。その値
が何でもよいのは、カウンタイネーブルフラグ345b
が’0’であり、このためカウンタ1342の状態にか
かわらず、帰還レジスタ342への出力信号が’1’と
なるためである。このため、上述した配列を構成する次
のアドレスデータA(m)が入力されるまでは、帰還レ
ジスタ342の値を保持することが可能となり、キーア
ドレスA(j)とA(m)が距離に無関係なものとな
る。
At this time, at the rising edge of the feedback register control signal (time T1 in FIG. 20), the value "1" read from the feedback data 345c is stored in the feedback register 342.
At the same time, the counter set flag 345a is also "1".
Therefore, “*” of the counter data 345d is input to the counter 1342 at the rising timing of the count set signal (this count set signal is a signal obtained by delaying the output of the counter set flag 345a by Δt2). Here, the value of this counter data 345d '
* 'Means that the value can be anything. It does not matter what value the counter enable flag 345b has.
Is “0”, and therefore the output signal to the feedback register 342 becomes “1” regardless of the state of the counter 1342. Therefore, the value of the feedback register 342 can be held until the next address data A (m) forming the above-described array is input, and the key addresses A (j) and A (m) are separated by a distance. Will be irrelevant to.

【0119】この帰還レジスタ342とカウンタ352
の具体的構成は図16と同一であり説明は省略する。次
に、アドレスデータA(m)が入力された場合の動作に
ついて説明する。この時帰還レジスタ342には既に’
1’が入力されて保持され続けているため、上記と同様
にして図19の第2番目の一致ブロックに一致が発生
し、そのワード線343wがアクティブとなり、真横の
メモリブロック345からカウンタセットフラグ345
aの’1’、カウンタイネーブルフラグ345bの’
1’、帰還データ345cの’2’およびカウンタデー
タ345dの’3’が出力される。ただし、この時もセ
レクタ制御フラグ345fが’0’であり、あいかわら
ずROM4からデータ線308aを介してセレクタ34
6に入力される出力データが、データ線8より出力され
る。
This feedback register 342 and counter 352
16 is the same as that shown in FIG. 16 and its description is omitted. Next, the operation when the address data A (m) is input will be described. At this time, the feedback register 342 has already been set to '
Since 1'is continuously input and held, a match occurs in the second matching block in FIG. 19 in the same manner as described above, the word line 343w becomes active, and the counter set flag from the memory block 345 right next to it becomes active. 345
a of "1" and counter enable flag 345b of "
1 ', feedback data 345c' 2 'and counter data 345d' 3 'are output. However, even at this time, the selector control flag 345f is "0", and the selector 34 is still unavoidable from the ROM 4 via the data line 308a.
The output data input to 6 is output from the data line 8.

【0120】ここで、カウンタセットフラグ345aよ
り作られるカウンタセット信号が’1’となるため、帰
還レジスタ制御信号の立ち上りのタイミングで(図20
の時刻T2)、帰還データ345cの’2’が帰還レジ
スタ342に入力され、これとともに、カウンタデータ
345dの’3’がカウンタ回路392に入力される。
また、カウンタイネーブルフラグ345bが’1’であ
るために、図16のフリップフロップ394の出力は’
0’となり、したがって今度はカウンタ回路392から
の信号により帰還レジスタ342が制御されることにな
る。
Since the counter set signal generated from the counter set flag 345a becomes "1", the feedback register control signal rises (see FIG. 20).
At time T2), "2" of the feedback data 345c is input to the feedback register 342, and at the same time, "3" of the counter data 345d is input to the counter circuit 392.
Further, since the counter enable flag 345b is "1", the output of the flip-flop 394 in FIG. 16 is "1".
Therefore, the feedback register 342 is controlled by the signal from the counter circuit 392.

【0121】アドレスデータA(m)に続く次のアドレ
スデータが入力されると、制御信号の立ち上りで、カウ
ンタ回路392(図19、図20及び図16参照)の値
が1つカウントダウンされ、’2’となる(図20の時
刻T2とT3との間)。この時カウンタセットフラグ3
45aが’0’でかつカウンタ352からの出力が’
1’であるため、帰還レジスタ342のフリップフロッ
プ390の出力がそのまま帰還され、以前のデータを保
持することになる(図16参照)。
When the next address data following the address data A (m) is input, the value of the counter circuit 392 (see FIGS. 19, 20 and 16) is decremented by 1 at the rising edge of the control signal. 2 '(between time T2 and T3 in FIG. 20). At this time, counter set flag 3
45a is "0" and the output from the counter 352 is "0".
Since it is 1 ', the output of the flip-flop 390 of the feedback register 342 is fed back as it is and holds the previous data (see FIG. 16).

【0122】更に、時刻T3において次のアドレスデー
タが入力され、これにより帰還レジスタ制御信号が立ち
上るが、この時もカウンタ352の値は’2’であっ
て、カウンタセットフラグ345aは’0’であるの
で、やはり以前のデータが保持される。その直後の制御
信号の立ち上りで、カウンタ352は’1’にカウント
ダウンされるが、この時のアドレスデータが期待値のA
(k)になっており、カウンタセット信号の立ち上りで
カウンタデータ345d’1’があらためてカウンタ回
路392にセットされ、及びカウンタイネーブルフラグ
345b’1’が反転されてフリップフロップ394に
セットされる。また、この時、セレクタ制御フラグ34
5fが’1’であるので、出力データ345eのD
(k,2)が、ROM4からの出力データD(k,1)
に代わって、セレクタ346を介してデータ線8より出
力される。また、帰還データ345cの’3’は、時刻
T4の帰還レジスタ制御信号の立ち上りで帰還レジスタ
342に入力保持される。
Further, at time T3, the next address data is input, which causes the feedback register control signal to rise. At this time as well, the value of the counter 352 is "2" and the counter set flag 345a is "0". Since it exists, the previous data is retained. Immediately after that, at the rising edge of the control signal, the counter 352 counts down to "1", but the address data at this time is the expected value A.
(K), the counter data 345d′1 ′ is newly set in the counter circuit 392 at the rising edge of the counter set signal, and the counter enable flag 345b′1 ′ is inverted and set in the flip-flop 394. At this time, the selector control flag 34
Since 5f is '1', D of the output data 345e
(K, 2) is the output data D (k, 1) from the ROM 4.
Instead of, the data is output from the data line 8 via the selector 346. Also, '3' of the feedback data 345c is input and held in the feedback register 342 at the rising edge of the feedback register control signal at time T4.

【0123】更に、アドレスデータA(k+1)が入力
され、時刻T4と時間T5との間の制御信号の立ち上り
のタイミングでカウンタ回路392が’0’にカウント
ダウンされ、N番目の一致ブロック343の真横のメモ
リブロック345の内容が読み出され、セレクタ制御フ
ラグ345fが’1’であるので、やはり、ROM4か
らの出力データD(k+1,1)に代わってデータD
(k+1,2)がセレクタ346を介して、データフロ
ー制御装置10より出力される。
Further, the address data A (k + 1) is input, the counter circuit 392 is counted down to "0" at the timing of the rising edge of the control signal between time T4 and time T5, and the counter circuit 392 is placed right beside the Nth matching block 343. Since the contents of the memory block 345 of No. 4 are read and the selector control flag 345f is “1”, the data D instead of the output data D (k + 1,1) from the ROM 4 is also changed.
(K + 1, 2) is output from the data flow control device 10 via the selector 346.

【0124】次に、時刻T5の帰還レジスタ制御信号の
立ち上りでは、カウンタ352からの出力が’0’であ
るので、帰還データ345cの値’0’が帰還レジスタ
342に入力され保持される。また、カウンタ回路39
2およびフリップフロップ394は、カウンタセットフ
ラグ345aが’0’なので、それまでの’0’の状態
を保つことになる。
Next, at the rising edge of the feedback register control signal at time T5, since the output from the counter 352 is "0", the value "0" of the feedback data 345c is input and held in the feedback register 342. In addition, the counter circuit 39
Since the counter set flag 345a is "0", the second and flip-flops 394 maintain the state of "0" up to that point.

【0125】以上が動作概要である。2つの入力期待ア
ドレスデータの距離n(整数)を決めるものはカウンタ
352であるが、図16の帰還レジスタ342の入力デ
ータ制御回路391を構成する、帰還データ345cの
入力を制御する回路が、カウンタ352の出力と、カウ
ンタセットフラグ345aとの論理和を演算するオア回
路391bであるために、期待するアドレスデータがこ
の距離nよりも近距離で入力された場合も、ちょうど距
離nで入力された場合と同様となる。逆に、n+1番目
以降に入力された場合は、カウンタ352の出力が’
0’になった後の、期待アドレスデータが入力されてい
ない帰還データ、即ち’0’が帰還レジスタ342に入
力されることになる。
The above is the outline of the operation. It is the counter 352 that determines the distance n (integer) between the two input expected address data, but the circuit that controls the input of the feedback data 345c that constitutes the input data control circuit 391 of the feedback register 342 in FIG. Since it is the OR circuit 391b that calculates the logical sum of the output of 352 and the counter set flag 345a, even when the expected address data is input at a shorter distance than this distance n, it is input at exactly the distance n. It will be similar to the case. On the other hand, when the n + 1th and subsequent signals are input, the output of the counter 352 is'
The feedback data after being 0 ', where the expected address data is not input, that is,' 0 'is input to the feedback register 342.

【0126】このように、その時点に入力されているア
ドレスだけで出力データを決定するのではなく、特定の
アドレスに対しては、その前に入力されたソフトウェア
実行時のアドレス系列およびその距離によってその出力
を決めることにより、不正なアドレス動作におけるコピ
ーが防止されるのである。また、この例では、前述した
第3実施例と同様、例えばアドレスデータA(j)等の
後に期待されていないどんなアドレスデータが1つもし
くは複数個来ても、常に次にキーとなるものを待つこと
が出来る構成となっているために、近年の処理高速化の
ためのCPUのプリフェッチ動作による、ソフトウェア
の処理手順を考慮しない連続したアドレスによるデータ
の先読みに対しても誤動作することなく、適切なキーデ
ータの抽出と、正規データの出力が可能となる。
Thus, the output data is not determined only by the address input at that time, but for a specific address, it is determined by the address sequence and the distance at the time of executing the software input before that. By determining the output, copying in an illegal address operation is prevented. Further, in this example, as in the third embodiment described above, even if one or a plurality of unexpected address data comes after the address data A (j) or the like, the next key is always used. Since it is configured to be able to wait, it does not malfunction even when prefetching data at consecutive addresses that does not consider the processing procedure of software due to the prefetch operation of the CPU in recent years for speeding up the processing. It is possible to extract various key data and output regular data.

【0127】以下、本発明のデータフロー制御装置ない
しメモリ装置に不正コピー防止用として組み込むことの
できる、プログラム上の具体的な場面についてゲーム用
のプログラムを念頭に置いて紹介する。図21は、ジャ
ンプ命令を含むプログラムの格納アドレスとニーモニッ
クを示す図である。
In the following, specific scenes of the program that can be incorporated in the data flow control device or the memory device of the present invention to prevent illegal copying will be introduced with the game program in mind. FIG. 21 is a diagram showing a storage address and a mnemonic of a program including a jump instruction.

【0128】アドレス′9000′に格納された′BE
Q 9013′は、あるステータスレジスタのあるビッ
トが′0′であれば′9013′番地へジャンプし、そ
うでなければアドレス順に従った次の命令を実行するこ
とを表わす命令である。アドレス′9010′に格納さ
れた′JMP a000′は、無条件に′a000′番
地にジャンプすることを表わす命令、アドレス′902
0′に格納された′BNE 9013′は、あるステー
タスレジスタのあるビットが′0′でなければ、′90
13′番地へジャンプし、′0′であればアドレス順に
従った次の命令を実行することを表わす命令である。
'BE stored at address'9000'
Q 9013 'is an instruction indicating that if a certain bit in a certain status register is'0', it jumps to the address' 9013 ', and otherwise executes the next instruction in the address order. The'JMP a000 'stored in the address'9010' is an instruction to unconditionally jump to the address'a000 ', the address' 902.
'BNE 9013' stored in 0'is '90 unless a bit in a status register is '0'.
The instruction jumps to the address 13 ', and if it is'0', it indicates that the next instruction according to the address order is executed.

【0129】このプログラムフローでは、アドレス′9
013′へは、アドレス′9000′又は′9020′
からジャンプしてくるパスはあるが、その直前のアドレ
スからのパスはない。この場合、′…,9000,90
13,…′ないし′…,9200,9013,…′をア
ドレスデータの配列(キーデータ)として採用すること
で、その配列順にアクセスされた場合のみ、正しい命令
(データ)が出力されるように構成することができる。
In this program flow, the address' 9
To 013 ', address'9000' or '9020'
There is a path that jumps from, but there is no path from the address immediately before it. In this case, '..., 9000, 90
By adopting 13, ... 'Or' ..., 9200, 9013, ... 'as an array of address data (key data), a correct instruction (data) is output only when accessed in the array order. can do.

【0130】ここでは、キーデータとして予め登録され
たアドレス順(ないしアドレス順と距離)に従ってアク
セスされた場合にのみ、アドレス’9013’に格納さ
れたデータとして、例えばアキュームレータに値’0
0’を格納することを意味する命令’LDA #00’
が出力され、ゲームは正常に動作し、ゲーム作成者が意
図した最も面白いプレーを行うことができる。一方、登
録されたキーデータに違反したアクセスを行った場合に
は、アドレス’9013’のデータとして、例えばアキ
ュームレータに値’33’を格納することを意味する命
令’LDA #33’が出力され、その後のゲーム動作
が異常になったり、そのゲームの面白さが低減される結
果となる。この例の特徴は、命令は同一であって、オペ
ランドのみが異なることである。このようなコピー防止
策は、作成が容易であり、一方、誤り箇所はどこか、正
しいオペランド値は何か等の解析は困難であり、したが
って不正コピーは困難である。
Here, only when the data is accessed according to the address order (or the address order and the distance) registered in advance as the key data, the data stored in the address '9013', for example, the value '0' is stored in the accumulator.
The instruction'LDA # 00 'which means to store 0'
Is output, the game operates normally, and the most interesting play intended by the game creator can be performed. On the other hand, when access is made in violation of the registered key data, the instruction “LDA # 33”, which means storing the value “33” in the accumulator, for example, is output as the data at the address “9013”, As a result, the game operation thereafter becomes abnormal or the fun of the game is reduced. The feature of this example is that the instructions are the same and only the operands are different. Such a copy protection measure is easy to create, while it is difficult to analyze where the error is, what the correct operand value is, etc. Therefore, illegal copying is difficult.

【0131】図22は、サブルーチンコール命令および
サブルーチンからのリターン命令を含むプログラムの格
納アドレスとニーモニックを示す図である。アドレス′
9000′,′9100′に格納された′JSR 92
01′は、アドレス′9201′から始まるサブルーチ
ンを実行することを指示するサブルーチンコール命令で
あり、アドレス′9300′に格納された′RTS′は
そのサブルーチンからのリターンを指示するリターン命
令である。尚、アドレス′9200′に格納された’R
TS’は別のサブルーチンのリターンを指示する命令を
表わす。
FIG. 22 is a diagram showing storage addresses and mnemonics of a program including a subroutine call instruction and a return instruction from a subroutine. address'
'JSR 92 stored in 9000', '9100'
01 'is a subroutine call instruction for instructing to execute a subroutine starting from address' 9201 ', and'RTS' stored at address '9300' is a return instruction for instructing return from the subroutine. In addition, the'R stored at the address '9200'
TS 'represents an instruction that directs the return of another subroutine.

【0132】このプログラムフローでは、アドレス′9
201′(サブルーチンのエントリ・ポイント)へは、
アドレス′9000′又はアドレス′9100′からの
パスはあるが、直前のアドレスからのパスはない。すな
わちアドレス′9200′と′9201′との間にプロ
グラム・フロー上のアドレスの不連続が存在する。した
がって、′…,9000,9201,…′、ないし′
…,9100,9201,…′等をアドレスデータの配
列とすることで、その配列順にアクセスされた場合のみ
正しい命令(データ)が出力されるように構成すること
ができる。
In this program flow, address' 9
To 201 '(entry point of subroutine),
There is a path from address '9000' or address '9100', but no path from the previous address. That is, there is an address discontinuity on the program flow between addresses '9200' and '9201'. Therefore, '..., 9000, 9201, ...' Or '
, 9100, 9201, ... ′, etc., can be arranged so that a correct instruction (data) is output only when accessed in the order of arrangement.

【0133】また、このプログラムフローでは、アドレ
ス′9003′あるいはアドレス′9103′(サブル
ーチンコール命令の直後のポイント)へは、アドレス′
9300′からくるパスはあるが、アドレス′900
0′ないし′9100′からのパスはない。すなわち、
アドレス′9000′と′9003′との間、およびア
ドレス′9100′と′9103′との間にはプログラ
ムフロー上のアドレスの不連続が存在する。したがっ
て、′…,9300,9003,…′ないし′…,93
00,9103,…′等をアドレスデータの配列とする
ことで、その配列順にアクセスされた場合のみ正しい命
令(データ)が出力されるように構成することができ
る。
Further, in this program flow, the address' 9003 'or address'9103' (the point immediately after the subroutine call instruction) is addressed to the address'
There is a path coming from 9300 ', but the address is' 900
There are no paths from 0'to '9100'. That is,
There is an address discontinuity on the program flow between addresses '9000' and '9003' and between addresses '9100' and '9103'. Therefore, '..., 9300, 9003, ...' Or '..., 93
By setting 00, 9103, ... 'And the like as an array of address data, a correct instruction (data) can be output only when accessed in the array order.

【0134】ここでは、キーデータとして予め登録され
たアドレス順(ないしアドレス順と距離)に従ってアク
セスされた場合にのみ、アドレス’9210’のデータ
として、例えば、アキュームレータ値に’00’を格納
することを意味する命令’LDA #00’が出力され
ゲームが正常に続行される。一方登録されたキーデータ
に違反したアクセスを行った場合には、アドレス’92
10’のデータとして、例えばサブルーチンからのリタ
ーン命令’RTS’が出力され、サブルーチン処理が途
中で終了してリターンし、その後のゲームの動作が異常
となる。一般的に、1つのサブルーチンでもリターン命
令は複数存在することはまれではなく、従って不正コピ
ーされたデータ中、アドレス’9210’に、リターン
命令’RTS’が存在していても何ら奇異には感じられ
ない。したがってこの場合も、コピーデータの解析は困
難である。一方、このようなコピー防止策も、作成は容
易である。
Here, only when it is accessed according to the address order (or the address order and the distance) registered in advance as the key data, the data of the address '9210', for example, '00' is stored in the accumulator value. The command'LDA # 00 ', which means, is output and the game continues normally. On the other hand, if an access is made in violation of the registered key data, the address '92
As the data of 10 ', for example, the return instruction'RTS' from the subroutine is output, the subroutine processing ends midway and returns, and the operation of the game thereafter becomes abnormal. Generally, it is not uncommon for multiple return instructions to exist even in one subroutine, so even if the return instruction'RTS 'exists at address'9210' in the illegally copied data, it feels strange. I can't. Therefore, also in this case, it is difficult to analyze the copy data. On the other hand, such a copy protection measure is also easy to create.

【0135】図23は、割込みあるいはリセットが入力
されたときのプログラムのスタート・ポイントを指示す
る命令を含むプログラムの格納アドレスとニーモニック
を示す図である。アドレス′fffe′,′fffc′
に格納された、′dw irq_int′,′dw s
tart′は、それぞれ割込み入力時、リセット時に実
行されるプログラムがそれぞれirq_int(アドレ
ス′8100′),start(アドレス′800
0′)であることを指示している。
FIG. 23 is a diagram showing a storage address and a mnemonic of a program including an instruction for designating a start point of the program when an interrupt or a reset is input. Address'fffe ',' fffc '
Stored in'dw irq_int ',' dw s
In start ', programs executed at interrupt input and reset are irq_int (address' 8100 ') and start (address' 800, respectively).
0 ').

【0136】このプログラムでは、リセット時のスター
ト・ポイント′8000′へは、そのアドレス値が格納
されているアドレス′fffc′からくるパスはある
が、直前のアドレスからのパスはない。すなわち、アド
レス′8000′とその直前のアドレス′7fff′と
の間にはプログラム・フロー上のアドレスの不連続が存
在する。
In this program, there is a path from the address'fffc 'in which the address value is stored to the start point' 8000 'at reset, but there is no path from the immediately preceding address. That is, there is an address discontinuity on the program flow between the address '8000' and the address '7fff' immediately before it.

【0137】したがって、′fffc,8000,…′
をアドレスデータの配列とすることで、その配列順にア
クセスされた場合のみ正しい命令(データ)が出力され
るように構成することができる。割込みの場合も同様で
ある。ここでは、キーデータとして予め登録されたアド
レス順(ないしアドレス順と距離)に従ってアクセスさ
れた場合にのみ、アドレス’8000’ないしアドレ
ス’8100’のデータとして、例えばメモリ中の、メ
モリアドレス’2000’の内容をゼロクリアする命
令’STZ 2000’が出力される。一方、登録され
たキーデータに違反したアクセスが行われると、アドレ
ス’8000’ないしアドレス’8100’のデータと
して、メモリ中の別のメモリアドレス’2010’の内
容をゼロクリアする命令’STZ 2010’が出力さ
れ、その後のゲーム動作が異常となる。
Therefore, 'fffc, 8000, ...'
Is set as an array of address data, so that a correct instruction (data) can be output only when accessed in the array order. The same is true for interrupts. Here, only when the address is accessed in accordance with the address order (or the address order and the distance) registered in advance as the key data, the data of the address '8000' to the address '8100', for example, the memory address '2000' in the memory, The command'STZ 2000 'for zero-clearing the contents of is output. On the other hand, when an access is performed in violation of the registered key data, an instruction "STZ 2010" for clearing the contents of another memory address "2010" in the memory to zero is issued as the data of address "8000" or address "8100". It is output, and the subsequent game operation becomes abnormal.

【0138】一般的に、プログラム始動直後では、メモ
リ空間を初期化することが多い。したがって、この例に
示すように初期化すべきメモリ領域や初期値を異なった
ものにすると、異なった動作が行われ、その一方を正常
の動作、他方を誤った動作ないし面白くも何ともないゲ
ーム動作を行うようにすることもできる。このような場
合、不正コピーしたデータのどこがどのように誤ってい
るのかの解析は困難である。逆に、そのようなコピー防
止策は簡単に作成することができる。
Generally, the memory space is often initialized immediately after the program is started. Therefore, as shown in this example, if the memory area to be initialized and the initial value are made different, different operations will be performed, one of which is a normal operation, the other of which is an incorrect operation or a game operation which is interesting but not so much. You can also do it. In such a case, it is difficult to analyze where and how the illegally copied data is erroneous. Conversely, such copy protection can be easily created.

【0139】図24は、データフェッチ命令を含むプロ
グラムの格納アドレスとニーモニックを示す図である。
アドレス′9000′に格納された′LDA [1
0],Y′は、ダイレクト・レジスタの値に′10′を
加え、さらにYレジスタの値を加えてできたアドレスに
格納されているデータをロードすることを示す命令であ
る。例えばアドレス′9000′に到った時点で、ダイ
レクト・レジスタに′a000′が格納されており、Y
レジスタに100′が格納されていた場合、それらを加
えたアドレスは′a110′となる。したがってこのプ
ログラムフローでは、アドレス′9000′,′900
1′の次に、アドレス′a110′が現われる。すなわ
ち、アドレス′a110′とその直前のアドレス′a1
0f′の間には、プログラム・フロー上の不連続が存在
する。したがって、′…,9000,a110′等をア
ドレスデータの配列とすることで、その配列順にアクセ
スされた場合のみ正しい命令(データ)が出力されるよ
うに構成することができる。
FIG. 24 is a diagram showing storage addresses and mnemonics of a program including a data fetch instruction.
'LDA [1 stored at address'9000'
0], Y ′ is an instruction indicating that “10” is added to the value of the direct register, and the data stored at the address formed by adding the value of the Y register is loaded. For example, when the address "9000" is reached, "a000" is stored in the direct register and Y
If 100 'is stored in the register, the added address becomes'a110'. Therefore, in this program flow, addresses' 9000 ',' 900
After the 1 ', the address'a110' appears. That is, the address'a110 'and the address'a1 immediately before it.
There is a discontinuity in the program flow between 0f '. Therefore, by setting '..., 9000, a110', etc. as an array of address data, a correct instruction (data) can be output only when accessed in the array order.

【0140】この場合、登録されたキーデータに沿った
アクセスが行われたか否かに応じて、アドレス’a11
0’のデータとして、それぞれ、例えば正しい値’8
0’、誤った値’ff’が出力される。命令コード領域
とは異なり、データ領域にはいかなる値のデータが存在
していても何ら不自然ではなく、したがってこの場合、
アドレス’a110’から読まれたデータの値が誤って
いるか否かの判断は極めて困難である。
In this case, depending on whether or not the access is performed according to the registered key data, the address'a11
As the data of 0 ', for example, the correct value of' 8 '
0 ', an incorrect value'ff' is output. Unlike the opcode area, there is nothing unnatural about the presence of any value of data in the data area, so in this case,
It is extremely difficult to judge whether the value of the data read from the address'a110 'is incorrect.

【0141】図25(a)は、サブルーチンコール命令
と分岐命令とを含むプログラムの格納アドレスとニーモ
ニックを示す図であり、図25(b),(c)はデータ
フロー制御装置10の中に格納された誤ったデータを示
す図である。キーデータとして、例えば’9000,9
202’と’9000,9202,9210,921
8’の、一部が重複した2つの配列を登録しておく。’
LDA’は2バイト命令であり、この登録されたキーデ
ータに従うアクセスが行なわれた場合には、アドレス’
9202’,’9218’に格納された値として、図2
5(a)に示すような正しいデータ#00,#00が出
力される。一方、もしアドレス’9202’が登録キー
データに反する現れ方をしたら、図25(b),(c)
に示すような誤ったデータ#ff,#88が出力され
る。もし、仮に、アドレス’9202’に関しては登録
キーデータに従う現れ方をしたとしても、アドレス’9
218’が登録キーデータに反する現れ方をすると、ア
ドレス’9218’に関し図25(c)に示すような誤
ったデータ#88が出力される。
FIG. 25 (a) is a diagram showing the storage address and mnemonic of a program including a subroutine call instruction and a branch instruction, and FIGS. 25 (b) and 25 (c) are stored in the data flow controller 10. It is a figure which shows the erroneous data produced. As key data, for example, '9000,9
202 'and' 9000, 9202, 9210, 921
Two sequences of 8'that partially overlap each other are registered. '
LDA 'is a 2-byte instruction, and when an access is performed according to this registered key data, the address'
As the values stored in 9202 'and' 9218 ', FIG.
Correct data # 00, # 00 as shown in 5 (a) is output. On the other hand, if the address '9202' appears opposite to the registered key data, then FIG.
Wrong data #ff and # 88 as shown in FIG. Even if the address '9202' appears according to the registration key data, the address '9202' will be displayed.
When 218 'appears opposite to the registered key data, erroneous data # 88 as shown in FIG. 25C is output for the address'9218'.

【0142】この例に示すように、配列要素の一部が重
複する複数の配列(キーデータ)を登録しておくことに
より、それらのキーデータからなる複数のプロテクトの
うちの一部が破られた(正しくコピーされてしまった)
としても、それに引き続いてさらにもう1つ別のプロテ
クトが存在することになり、何が正しいプログラムかと
いう解析とコピーの困難さが増すことになる。
As shown in this example, by registering a plurality of arrays (key data) in which array elements partially overlap, some of the plurality of protects composed of those key data are broken. (It was copied correctly)
Even so, there will be another protection after that, which will increase the difficulty of analyzing and copying what is a correct program.

【0143】次にアドレスの多重化という観点につい
て、説明する。図26はアドレス′9000′とアドレ
ス′90ff′との間に命令が多重に配列されているプ
ログラム・フローを示す図である。アドレス′90f
d′〜90ff′の3バイトに格納された′JMP 9
000′は無条件にアドレス′9000′へ分岐する命
令を表わしており、アドレスデータの配列として、例え
ば、′…,9000′…,90fd,9000,…,9
0fd,9000,…,90fd,9000,…,90
fd,…′を採用することで、図26に示すように、ア
ドレス′9000′とアドレス′90ff′との間に命
令を多重に配列することができる。この場合、アドレス
順に単純に読み出すと、それら多重に配列されたうちの
最初の1つのみしか読み出されず、その読み出したプロ
グラムを実行させても正常には動作しない。
Next, the viewpoint of address multiplexing will be described. FIG. 26 is a diagram showing a program flow in which instructions are multiply arranged between the address '9000' and the address '90ff'. Address' 90f
'JMP 9 stored in 3 bytes from d'to 90ff'
000 'represents an instruction unconditionally branching to the address'9000', and as an array of address data, for example, '..., 9000' ..., 90fd, 9000, ..., 9
0 fd, 9000, ..., 90 fd, 9000, ..., 90
By adopting fd, ..., As shown in FIG. 26, it is possible to multiplex the instructions between the address '9000' and the address '90ff'. In this case, if the address is simply read out in the order of addresses, only the first one of those multiplexed is read out, and even if the read program is executed, it does not operate normally.

【0144】この例では、アドレス’9000’〜アド
レス’90fd’が繰り返し4重にも使われている。’
LDA’は2バイト命令であり、1回目、2回目、3回
目、4回目の各アドレス′9000′,′9001′に
は、それぞれ、例えば’LDA #00’,’LDA
#2a’,’LDA #0f’,’LDA #ee’が
定義されている。この場合、アドレス′9001′のデ
ータとして、その場合に応じて異なる値がアキュムレー
タに入力される。キーデータに従わないアクセスの場合
は、アドレス′9000′の1回目のデータ’LDA
#00’のみ出力される。この場合も解析は極めて困難
である。
In this example, the address '9000' to the address '90fd' are repeatedly used four times. '
LDA 'is a 2-byte instruction. For example, "LDA # 00" and "LDA" are assigned to the first, second, third and fourth addresses'9000' and '9001', respectively.
# 2a ',' LDA # 0f ', and'LDA #ee' are defined. In this case, as the data of the address '9001', a different value depending on the case is input to the accumulator. If the access is not based on the key data, the first data of the address'9000''LDA
Only # 00 'is output. Also in this case, the analysis is extremely difficult.

【0145】図27は、命令が多重に配列された、図2
6に示すプログラム・フローよりも複雑なプログラム・
フローを示す図である。アドレスデータの配列として、
例えば、′…,9000,…,901d,9020,
…,903d,9040,…,905d,9020,
…,903d,9000,…,901d,9040,
…,905d,…′等を採用することにより図27に示
す多重化が実現する。
FIG. 27 shows a case in which the instructions are arranged in multiples in FIG.
A program that is more complex than the program flow shown in 6
It is a figure which shows a flow. As an array of address data,
For example, '..., 9000, ..., 901d, 9020,
..., 903d, 9040, ..., 905d, 9020,
..., 903d, 9000, ..., 901d, 9040,
, 905d, ... ′, etc., the multiplexing shown in FIG. 27 is realized.

【0146】図28は、プログラム・フローの他の例を
示す図である。BEQ,BNE,BCCは、いずれも分
岐命令を示すニーモニックである。アドレスデータの配
列(キーデータ)として、例えば、′…,9000,9
030,…′,′…,9010,9030,…′,′
…,9020,9030,…′等を採用することにより
図28(a)に示す多重化が実現する。
FIG. 28 is a diagram showing another example of the program flow. BEQ, BNE, and BCC are all mnemonics indicating branch instructions. As an array of address data (key data), for example, '..., 9000, 9
030, ... ',' ..., 9010, 9030, ... ','
, 9020, 9030, ... ′ And the like, the multiplexing shown in FIG. 28 (a) is realized.

【0147】図28(b)〜(e)は、図28(a)の
破線ブロックの内部の例を示す図である。’JSR’は
サブルーチンコール命令、’BRA’は無条件分岐命令
である。図28(b),(c),(d),(e)は、そ
れぞれ1つのサブルーチンのコール、5つのサブルーチ
ンコール、3つのサブルーチンコール、コールするサブ
ルーチンが存在しないことを示している。即ちこの例で
は、どの登録キーデータに従うアクセスであるかによっ
てコールするサブルーチンが異なる。いかなる場面でい
かなるサブルーチンをコールすれば正しくゲームをプレ
イすることができるかを解析することは極めて困難であ
り、したがって正確なコピーは困難である。
28 (b) to 28 (e) are diagrams showing an example of the inside of the broken line block in FIG. 28 (a). "JSR" is a subroutine call instruction, and "BRA" is an unconditional branch instruction. 28 (b), (c), (d), and (e) show that there are one subroutine call, five subroutine calls, three subroutine calls, and no subroutines to call. That is, in this example, the subroutine to be called differs depending on which registered key data the access follows. It is extremely difficult to analyze what scene is called and what subroutine is called so that the game can be played correctly. Therefore, exact copying is difficult.

【0148】図29(a)は、プログラム・フローのも
う1つの例を示す図である。アドレスデータの配列とし
て、例えば、′…,9000,9030,…,93f
f,…′,′…,9010,9030,…,93ff,
…′,′…,9020,9030,…,93ff,
…′,′…,902f,9030,…,93ff,…′
等を採用することにより図29(a)に示す多重化が実
現する。
FIG. 29 (a) is a diagram showing another example of the program flow. As an array of address data, for example, '..., 9000, 9030, ..., 93f
f, ... ',' ..., 9010, 9030, ..., 93ff,
... ',' ..., 9020, 9030, ..., 93ff,
... ',' ..., 902f, 9030, ..., 93ff, ... '
By adopting, for example, the multiplexing shown in FIG. 29 (a) is realized.

【0149】図29(b)〜(e)は、図29(a)の
破線ブロックの内部の例を示す図である。’STA’は
アキュームレータに格納されたデータをメモリにストア
する命令、’BNE’は条件付き分岐命令、’CMP’
は比較命令、’STZ’はメモリをゼロにするクリアす
る命令、’LDY’はYレジスタに値をロードする命令
を表わす。
29 (b) to 29 (e) are diagrams showing an example of the inside of the broken line block in FIG. 29 (a). 'STA' is an instruction to store the data stored in the accumulator in memory, 'BNE' is a conditional branch instruction, 'CMP'
Indicates a comparison instruction, 'STZ' indicates an instruction for clearing the memory to zero, and'LDY 'indicates an instruction for loading a value into the Y register.

【0150】この例では、アドレス’9030’以降の
領域に複数のパターンのデータが存在し、どの登録キー
データに従ったアクセスであるかによって、全く異なる
処理が実行される。いかなる場合にいかなる処理を実行
すればゲームを正しくプレイすることができるかを解析
することは困難であり、従ってコピーは困難である。図
30,図31はサブルーチンコール命令(JSR)を含
むプログラム・フローの例である。
In this example, a plurality of patterns of data exist in the area after the address '9030', and completely different processing is executed depending on which registered key data is used for the access. It is difficult to analyze what kind of processing should be executed in any case so that the game can be played correctly, and thus copying is difficult. 30 and 31 show examples of program flows including a subroutine call instruction (JSR).

【0151】図28,図29に示す分岐命令以外に、サ
ブルーチンコール命令を用いた場合も同様に、アドレス
データの配列が定義される。図32は、サブルーチンコ
ール命令と分岐命令を含むプログラムの格納アドレスと
ニーモニックを示す図である。ここでは、キーデータ
(アドレスデータの配列)として、例えば、’900
0,9300,…,9700,…’,’9100,93
00,…,9500,…’,’9200,9300,
…,9500,…’,’92ff,9300,…,94
00,…’が登録される。
Similarly to the branch instructions shown in FIGS. 28 and 29, when a subroutine call instruction is used, the array of address data is similarly defined. FIG. 32 is a diagram showing storage addresses and mnemonics of a program including a subroutine call instruction and a branch instruction. Here, as the key data (array of address data), for example, '900
0, 9300, ..., 9700, ... ',' 9100, 93
00, ..., 9500, ... ',' 9200, 9300,
..., 9500, ... ',' 92ff, 9300, ..., 94
00, ... 'Is registered.

【0152】この例では、アドレス領域’9300’
〜’93ff’が多重化されており、どこからコールさ
れるかによって異なるデータが出力される。又、アドレ
ス領域’9500’〜’95ff’も多重化されてお
り、どこから分岐してくるかによって、異なるデータが
出力される。アドレスを順次インクリメントしてコピー
を行おうとすると、’93ff,9300,…,940
0,…’の登録キーデータに従ってアクセスされるの
で、アドレス領域’9300’〜’93ff’では図中
のブロックaのデータ、アドレス領域’9500’〜’
95ff’では図中のブロックeのデータのみが出力さ
れる。
In this example, the address area '9300'
~ '93ff' is multiplexed, and different data is output depending on where it is called from. The address areas '9500' to '95ff' are also multiplexed, and different data is output depending on where the branch is from. When an address is sequentially incremented and copying is attempted, '93ff, 9300, ..., 940
Since it is accessed according to the registration key data of 0, ..., In the address areas' 9300 'to' 93ff ', the data of the block a in the figure, the address areas'9500' to '
At 95ff ', only the data of the block e in the figure is output.

【0153】このように多重化領域が複数存在すると、
解析とコピーはほとんど不可能である。
If there are a plurality of multiplexed regions in this way,
Parsing and copying is almost impossible.

【0154】[0154]

【発明の効果】上述したように、本発明はソフトウェア
の実際の処理フローを利用して、特定のアドレスにはダ
ミーのデータを格納しておくとともに、その特定のアド
レスに対応する正規のデータを、ソフトウェアの実際の
フローを知る開発者のみが知ることのできる複数のアド
レスデータの組合せに対応して格納しておき、その組合
せが与えられたときにのみ正規のデータを出力するよう
に構成されているため、違法なコピーを防止することが
可能となる。
As described above, the present invention utilizes the actual processing flow of software to store dummy data at a specific address and to store normal data corresponding to the specific address. It is configured so that only the developer who knows the actual flow of software can store it in correspondence with a combination of a plurality of address data, and only when the combination is given, the regular data is output. Therefore, it is possible to prevent illegal copying.

【0155】また、本発明においては、配列を構成する
データの間にその配列を構成しないデータの嵌入を許容
することもでき、さらに配列を構成するデータどうしの
距離を定義することもできる。これらの場合、本発明
は、例えばプリフェッチ動作等、ソフトウェアの処理手
順を無視したようなハードウェアの動作が行われるシス
テムにも適合したものとなる。
Further, in the present invention, it is possible to allow the insertion of the data that does not form the array between the data that form the array, and further to define the distance between the data that forms the array. In these cases, the present invention is also suitable for a system in which a hardware operation, such as a prefetch operation, that ignores software processing procedures is performed.

【0156】また、本発明はソフトウェアの実際の処理
フローを利用して、異なる処理フローにおける各特定の
処理に同一アドレスを与えるアドレスの多重化を行い、
それら同一のアドレスが与えられた特定の処理のうちの
一方を、ソフトウェアの実際のフローを知る開発者のみ
が知ることのできる複数のアドレスデータの処理手順を
キーデータとして格納しておき、その配列が所定の距離
もしくはそれ以内に与えられたときのみにその一方に対
応する特定処理のデータを出力するように構成すること
もでき、この場合も、違法なコピーを防止することが可
能となる。
Further, according to the present invention, the actual processing flow of software is used to perform the address multiplexing for giving the same address to each specific processing in different processing flows.
One of the specific processes to which the same address is given is stored as key data, which is the processing procedure of multiple address data that can be known only by the developer who knows the actual flow of software, and the array Can be configured to output the data of the specific processing corresponding to one of them only when given within a predetermined distance or within the predetermined distance, and in this case also, it becomes possible to prevent illegal copying.

【0157】本発明を採用すると、ソフトウェアが格納
されたカセットの外部端子やカセット以外の本体システ
ムに何の変更も加えることなくコピー防止が可能となる
ため、従来の本体システムにもそのまま適合し、工業上
の利用価値は極めて高い。もちろん、前述したように、
データフロー制御装置をソフトウェア格納用のROMの
中に組み込んで使用しても良いことはいうまでもない。
When the present invention is adopted, copy protection can be performed without making any changes to the external terminals of the cassette storing the software and the main body system other than the cassette. Its industrial utility value is extremely high. Of course, as mentioned above,
It goes without saying that the data flow control device may be incorporated in a ROM for storing software and used.

【0158】更に、本発明を他のセキュリティーシステ
ムに使用することも可能であり、CD−ROM等を用い
たゲームシステムにも同様のデータフロー制御装置を使
用することも可能であり、本発明の利用範囲は極めて広
い。
Furthermore, the present invention can be used for other security systems, and a similar data flow control device can be used for a game system using a CD-ROM or the like. The range of use is extremely wide.

【図面の簡単な説明】[Brief description of drawings]

【図1】本発明の一実施例を採用した制御システムの全
体構成を示すブロック図である。
FIG. 1 is a block diagram showing an overall configuration of a control system adopting an embodiment of the present invention.

【図2】ROM内部のデータ格納図である。FIG. 2 is a data storage diagram inside a ROM.

【図3】アドレス入力に対するデータ出力のフローチャ
ートである。
FIG. 3 is a flowchart of data output for address input.

【図4】本発明のデータフロー制御装置の第1実施例の
概略回路図である。
FIG. 4 is a schematic circuit diagram of a first embodiment of the data flow control device of the present invention.

【図5】図4に示すデータフロー制御装置のタイミング
チャートである。
5 is a timing chart of the data flow control device shown in FIG.

【図6】ROM内部のデータ格納図である。FIG. 6 is a data storage diagram inside a ROM.

【図7】アドレス入力に対するデータ出力のフローチャ
ートである。
FIG. 7 is a flowchart of data output for address input.

【図8】本発明のデータフロー制御装置の第2実施例の
概略回路図である。
FIG. 8 is a schematic circuit diagram of a second embodiment of the data flow control device of the present invention.

【図9】図8に示すデータフロー制御装置のタイミング
チャートである。
9 is a timing chart of the data flow control device shown in FIG.

【図10】図8に示すデータフロー制御装置の一致検出
部の一致ブロックの各回路例を表わした図である。
10 is a diagram showing each circuit example of a match block of a match detection unit of the data flow control device shown in FIG.

【図11】図8に示すデータフロー制御装置の一致検出
部の一致ブロックをSRAMを用いて構成した回路例を
表わした図である。
11 is a diagram showing a circuit example in which a matching block of a matching detection unit of the data flow control device shown in FIG. 8 is configured by using SRAM.

【図12】図8に示すデータフロー制御装置のメモリ部
のメモリブロックの各回路例を表わした図である。
12 is a diagram showing each circuit example of a memory block of a memory unit of the data flow control device shown in FIG.

【図13】アドレス入力に対するデータのフローチャー
トである。
FIG. 13 is a flowchart of data for address input.

【図14】本発明のデータフロー制御装置の第3の実施
例の概略回路図である。
FIG. 14 is a schematic circuit diagram of a third embodiment of the data flow control device of the present invention.

【図15】図14に示すデータフロー制御装置のタイミ
ングチャートである。
15 is a timing chart of the data flow control device shown in FIG.

【図16】図14に示すデータフロー制御装置の帰還レ
ジスタ及びカウンタの構成例を表わした図である。
16 is a diagram showing a configuration example of a feedback register and a counter of the data flow control device shown in FIG.

【図17】ROMおよびデータフロー制御装置内部のデ
ータ格納図である。
FIG. 17 is a data storage diagram inside a ROM and a data flow control device.

【図18】アドレス入力に対するデータ出力のフローチ
ャートである。
FIG. 18 is a flowchart of data output for address input.

【図19】本発明のデータフロー制御装置の第4実施例
の概略回路図である。
FIG. 19 is a schematic circuit diagram of a fourth embodiment of the data flow control device of the present invention.

【図20】図19に示すデータフロー制御装置のタイミ
ングチャートである。
20 is a timing chart of the data flow control device shown in FIG.

【図21】ジャンプ命令を含むプログラムの格納アドレ
スとニーモニックを示す図である。
FIG. 21 is a diagram showing a storage address and a mnemonic of a program including a jump instruction.

【図22】サブルーチンコール命令およびサブルーチン
からのリターン命令を含むプログラムの格納アドレスと
ニーモニックを示す図である。
FIG. 22 is a diagram showing storage addresses and mnemonics of a program including a subroutine call instruction and a return instruction from a subroutine.

【図23】割り込みあるいはリセットが入力されたとき
のプログラムのスタート・ポイントを指示するコール命
令を含むプログラムの格納アドレスとニーモニックを示
す図である。
FIG. 23 is a diagram showing a storage address and a mnemonic of a program including a call instruction instructing a start point of the program when an interrupt or a reset is input.

【図24】データフェッチ命令を含むプログラムの格納
アドレスとニーモニックを示す図である。
FIG. 24 is a diagram showing a storage address and a mnemonic of a program including a data fetch instruction.

【図25】サブルーチンコール命令と分岐命令とを含む
プログラムの格納アドレスとニーモニックを示す図であ
る。
FIG. 25 is a diagram showing a storage address and a mnemonic of a program including a subroutine call instruction and a branch instruction.

【図26】多重化されたプログラム・プローの例を示す
図である。
FIG. 26 is a diagram showing an example of a multiplexed program program.

【図27】多重化されたプログラム・プローの例を示す
図である。
FIG. 27 is a diagram showing an example of a multiplexed program program.

【図28】多重化されたプログラム・プローの例を示す
図である。
FIG. 28 is a diagram showing an example of a multiplexed program program.

【図29】多重化されたプログラム・プローの例を示す
図である。
FIG. 29 is a diagram showing an example of a multiplexed program program.

【図30】多重化されたプログラム・プローの例を示す
図である。
FIG. 30 is a diagram showing an example of a multiplexed program program.

【図31】多重化されたプログラム・プローの例を示す
図である。
FIG. 31 is a diagram showing an example of a multiplexed program program.

【図32】多重化されたプログラム・プローの例を示す
図である。
FIG. 32 is a diagram showing an example of a multiplexed program program.

【図33】従来の制御システムのブロック図である。FIG. 33 is a block diagram of a conventional control system.

【図34】従来のROM内部のデータ格納図である。FIG. 34 is a data storage diagram inside a conventional ROM.

【符号の説明】[Explanation of symbols]

4 ROM 7 アドレス線 8,8a,8b データ線 9 カセット 10 データフロー制御装置 42a,43a ROMからの出力データ線 42b,43b データフロー制御装置の内部データ
のデータ出力線 46 セレクタ 47 シフトレジスタ 241 一致検出部 242 帰還レジスタ 243 一致ブロック 243a アドレスデータ一致部 243b 帰還データ一致部 243w ワード線 244 メモリ部 245 メモリブロック 246 セレクタ 307 アドレス線 308 データ線 341 一致検出部 342 帰還レジスタ 343 一致ブロック 343a アドレスデータ一致部 343b 帰還データ一致部 343w ワード線 344 メモリ部 345 メモリブロック 346 セレクタ 349 制御回路 352 カウンタ
4 ROM 7 Address line 8, 8a, 8b Data line 9 Cassette 10 Data flow control device 42a, 43a Output data line from ROM 42b, 43b Data output line of internal data of data flow control device 46 Selector 47 Shift register 241 Matching detection Part 242 Feedback register 243 Matching block 243a Address data matching part 243b Feedback data matching part 243w Word line 244 Memory part 245 Memory block 246 Selector 307 Address line 308 Data line 341 Matching detection part 342 Feedback register 343 Matching block 343a Address data matching part 343b Feedback data matching unit 343w Word line 344 Memory unit 345 Memory block 346 Selector 349 Control circuit 352 Counter

───────────────────────────────────────────────────── フロントページの続き (31)優先権主張番号 特願平5−178044 (32)優先日 平5(1993)7月19日 (33)優先権主張国 日本(JP) (31)優先権主張番号 特願平6−63347 (32)優先日 平6(1994)3月31日 (33)優先権主張国 日本(JP) (31)優先権主張番号 特願平6−63348 (32)優先日 平6(1994)3月31日 (33)優先権主張国 日本(JP) ─────────────────────────────────────────────────── ─── Continuation of front page (31) Priority claim number Japanese Patent Application No. 5-178044 (32) Priority date Hei 5 (1993) July 19 (33) Country of priority claim Japan (JP) (31) Priority Claim number Japanese Patent Application No. 6-63347 (32) Priority date March 6 (1994) March 31 (33) Country of priority claim Japan (JP) (31) No. of priority claim Japanese Patent Application No. 6-63348 (32) Priority Hihei 6 (1994) March 31 (33) Priority claiming country Japan (JP)

Claims (29)

【特許請求の範囲】[Claims] 【請求項1】 第1の入力データが順次入力される第1
の入力端子と、 第2の入力データが順次入力される第2の入力端子と、 出力データが順次出力される出力端子と、 複数の第1の入力データの、1つもしくは複数の各配列
に対応して定義された1つもしくは複数の置換データを
記憶するメモリ手段と、 前記第1の入力端子から最新の第1の入力データが入力
された際に、該最新の第1の入力データを含み該最新の
第1の入力データから入力順に遡った複数の第1の入力
データが、前記配列のいずれか1つに相当するか否かに
応じて、前記第2の入力端子から入力された前記第2の
入力データの少なくとも一部もしくは全部のビットが該
配列に対応して定義された前記置換データに置換されて
なる第1の出力データ、前記第2の入力端子から入力さ
れた前記第2の入力データと同一論理の第2の出力デー
タ、前記第1の出力データに基づく論理演算により生成
される第3の出力データ、および前記第1の出力データ
と前記第2の出力データとの双方に基づく演算により生
成される第4の出力データからなるデータ群の中から選
択される互いに異なるデータを、前記出力データとして
前記出力端子から出力するデータ切換手段とを備えたこ
とを特徴とするデータフロー制御装置。
1. A first input device for sequentially inputting first input data
Input terminal, a second input terminal to which the second input data is sequentially input, an output terminal to which the output data is sequentially output, and one or more arrays of the plurality of first input data. Memory means for storing one or a plurality of replacement data defined correspondingly; and when the latest first input data is input from the first input terminal, the latest first input data is stored. The plurality of first input data, which includes the latest first input data and is traced back in the order of input, is input from the second input terminal according to whether or not it corresponds to any one of the arrays. First output data obtained by replacing at least a part or all of the bits of the second input data with the replacement data defined corresponding to the array, and the first output data input from the second input terminal. The second of the same logic as the input data of 2 Output data, a third output data generated by a logical operation based on the first output data, and a fourth output data generated by an operation based on both the first output data and the second output data. And a data switching means for outputting different data selected from the data group consisting of the output data of 1) as the output data from the output terminal.
【請求項2】 前記メモリ手段が、1つもしくは複数の
メモリ領域を備え、該メモリ領域それぞれに前記置換デ
ータそれぞれを記憶するものであり、 前記データ手段が、 前記第1の入力端子から順次入力される複数の第1の入
力データからなる検索データと一致するか否かの検索の
対象とされる1つもしくは複数の被検索データが記憶さ
れ、該検索において前記検索データと前記被検索データ
いずれかとの一致が検出された場合に、前記メモリ手段
の、一致が検出された被検索データに対応する前記置換
データが記憶された前記メモリ領域から該置換データを
読み出すためのアクセス信号を出力するデータ参照手段
と、 前記アクセス信号の有無に応じて、前記第2の入力端子
から入力された入力データの少なくとも一部もしくは全
部のビットが前記メモリ手段から読み出された前記置換
データに置換されてなる第1の出力データ、前記第2の
入力端子から入力された前記第2の入力データからなる
第2の出力データ、前記第1の出力データに基づく論理
演算により生成される第3の出力データ、および前記第
1の出力データと前記第2の出力データとの双方に基づ
く論理演算により生成される第4の出力データからなる
データ群の中から選択される互いに異なるデータを、前
記出力データとして前記出力端子から出力するデータ出
力手段とを備えたものであることを特徴とする請求項1
記載のデータフロー制御装置。
2. The memory means includes one or a plurality of memory areas, and stores the replacement data in each of the memory areas, and the data means sequentially inputs from the first input terminal. One or more search target data to be searched for matching with the search data consisting of the plurality of first input data is stored. In the search, either one of the search data and the search target data is stored. Data for outputting an access signal for reading the replacement data from the memory area of the memory means in which the replacement data corresponding to the searched data for which the match is detected is stored when a match is detected. Reference means, and at least some or all of the bits of the input data input from the second input terminal depending on the presence or absence of the access signal Is replaced with the replacement data read from the memory means, the second output data consisting of the second input data input from the second input terminal, the first output data Data consisting of third output data generated by a logical operation based on the output data of the second output data, and fourth output data generated by a logical operation based on both the first output data and the second output data 2. A data output means for outputting different data selected from the group as the output data from the output terminal.
The described data flow control device.
【請求項3】 前記データ切換手段が、前記第1の入力
端子から最新の第1の入力データが入力された際に、該
最新の第1の入力データを含み該最新の第1の入力デー
タから入力順に遡った複数の第1の入力データが、前記
配列を構成する前記第1の入力データどうしの間に前記
配列を構成しない前記第1の入力データの嵌入を許容し
たときの前記配列のいずれか1つを含むか否かに応じ
て、前記第2の入力端子から入力された前記第2の入力
データの少なくとも一部もしくは全部のビットが該配列
に対応して定義された前記置換データに置換されてなる
第1の出力データ、前記第2の入力端子から入力された
前記第2の入力データと同一論理の第2の出力データ、
前記第1の出力データに基づく論理演算により生成され
る第3の出力データ、および前記第1の出力データと前
記第2の出力データとの双方に基づく論理演算により生
成される第4の出力データからなるデータ群の中から選
択される互いに異なるデータを、前記出力データとして
前記出力端子から出力するものであることを特徴とする
請求項1記載のデータフロー制御装置。
3. The latest first input data including the latest first input data when the latest first input data is input from the first input terminal, wherein the data switching means includes the latest first input data. A plurality of first input data traced back in the order of input from the array when the insertion of the first input data that does not form the array between the first input data that forms the array is permitted. The replacement data in which at least some or all of the bits of the second input data input from the second input terminal are defined in correspondence with the array depending on whether or not any one of them is included. Replaced with the first output data, the second output data having the same logic as the second input data input from the second input terminal,
Third output data generated by a logical operation based on the first output data, and fourth output data generated by a logical operation based on both the first output data and the second output data 2. The data flow control apparatus according to claim 1, wherein different data selected from the data group consisting of is output from the output terminal as the output data.
【請求項4】 前記メモリ手段が、1つもしくは複数の
メモリ領域を備え、該メモリ領域それぞれに、必要に応
じて、前記置換データ、前記配列の検索に用いられる帰
環データおよび前記配列の最終段であるか否かを示す出
力制御データを記憶するものであり、 前記データ切換手段が、 前記メモリ手段から読み出された帰還データを格納する
レジスタと、 前記第1の入力端子から入力されれる第1の入力データ
と前記レジスタに格納された帰還データのペアからなる
検索データと一致するか否かの検索の対象とされる1つ
もしくは複数の被検索データが記憶され、該検索におい
て前記検索データと前記被検索データいずれかとの一致
が検出された場合に、前記メモリ手段の、一致が検出さ
れた被検索データに対応する前記メモリ領域から該メモ
リ領域に記憶されたデータを読み出すためのアクセス信
号を出力するデータ参照手段と、 前記メモリ手段から読みだされたデータ中の前記出力制
御データに応じて、前記第2の入力端子から入力された
前記第2の入力データの少なくとも一部もしくは全部の
ビットが前記メモリ領域から読み出されたデータ中の前
記置換データに置換されてなる第1の出力データ、前記
第2の入力端子から入力された前記第2の入力データと
同一論理の第2の出力データ、前記第1の出力データに
基づく論理演算により生成される第3の出力データ、お
よび前記第1の出力データと前記第2の出力データとの
双方に基づく論理演算により生成される第4の出力デー
タからなるデータ群の中から選択される互いに異なるデ
ータを、前記出力データとして前記出力端子から出力す
るデータ出力手段とを備えたものであることを特徴とす
る請求項3記載のデータフロー制御装置。
4. The memory means is provided with one or a plurality of memory areas, and in each of the memory areas, the replacement data, the return ring data used for searching the array, and the final array data are used as required. Output control data indicating whether or not there is a stage, and the data switching means is input from the register for storing the feedback data read from the memory means and the first input terminal. One or more search target data to be searched for matching with search data consisting of a pair of first input data and feedback data stored in the register are stored, and the search is performed in the search. When a match between the data and any one of the searched data is detected, the memory means is read from the memory area corresponding to the searched data for which a match is detected. Data reference means for outputting an access signal for reading out the data stored in the memory area; and the output control data in the data read out from the memory means, input from the second input terminal. First output data obtained by replacing at least a part or all of the bits of the second input data with the replacement data in the data read from the memory area, input from the second input terminal Second output data having the same logic as the second input data, third output data generated by a logical operation based on the first output data, and the first output data and the second output data Different data selected from the data group consisting of the fourth output data generated by the logical operation based on both 4. The data flow control device according to claim 3, further comprising a data output means for outputting from the input terminal.
【請求項5】 前記データ切換手段が、前記第1の入力
端子から最新の第1の入力データが入力された際に、該
最新の第1の入力データを含み該最新の第1の入力デー
タから入力順に遡った複数の第1の入力データが、前記
配列を構成する前記第1の入力データどうしの間に前記
配列を構成しない各所定数以内の前記第1の入力データ
の嵌入を許容したときの前記配列のいずれか1つを含む
か否かに応じて、前記第2の入力端子から入力された前
記第2の入力データの少なくとも一部もしくは全部のビ
ットが該配列に対応して定義された前記置換データに置
換されてなる第1の出力データ、前記第2の入力端子か
ら入力された前記第2の入力データと同一論理の第2の
出力データ、前記第1の出力データに基づく論理演算に
より生成される第3の出力データ、および前記第1の出
力データと前記第2の出力データとの双方に基づく論理
演算により生成される第4の出力データからなるデータ
群の中から選択される互いに異なるデータを、前記出力
データとして前記出力端子から出力するものであること
を特徴とする請求項1記載のデータフロー制御装置。
5. The data switching means includes the latest first input data including the latest first input data when the latest first input data is input from the first input terminal. A plurality of first input data traced back in the order of input from the first input data forming the array, permitting insertion of the first input data within a predetermined number that does not form the array between the first input data. Depending on whether or not any one of the arrays is included, at least a part or all of the bits of the second input data input from the second input terminal are defined corresponding to the array. First output data replaced with the replacement data, second output data having the same logic as the second input data input from the second input terminal, and logic based on the first output data Third generated by calculation Output data and different data selected from a data group consisting of fourth output data generated by a logical operation based on both the first output data and the second output data, The data flow control device according to claim 1, wherein the output data is output from the output terminal.
【請求項6】 前記メモリ手段が、1つもしくは複数の
メモリ領域を備え、該メモリ領域それぞれに、必要に応
じて、前記置換データ、前記配列の検索に用いられる帰
還データ、前記所定数を表わす距離データ、および前記
配列の最終段であるか否かを示す出力制御データを記憶
するものであり、 前記データ切換手段が、 前記メモリ手段から読み出された前記帰還データを格納
するレジスタと、 前記メモリ手段から読み出された前記距離データを格納
し、該格納の後、前記配列を構成する前記第1の入力デ
ータが前記第1の入力端子から次に入力される前に、前
記距離データにより定まる前記所定数を越える、前記配
列を構成しない前記第1の入力データが前記第1の入力
端子から入力された場合に検索中の前記配列の検索を終
了させるカウンタと、 前記第1の入力端子から入力される第1の入力データと
前記レジスタに格納された帰還データとのペアからなる
検索データと一致するか否かの検索の対象とされる1つ
もしくは複数の被検索データが記憶され、該検索におい
て前記検索データと前記被検索データいずれかとの一致
が検出された場合に、前記メモリ手段の、一致が検出さ
れた被検索データに対応する前記メモリ領域から該メモ
リ領域に記憶されたデータを読み出すためのアクセス信
号を出力するデータ参照手段と、 前記メモリ手段から読み出されたデータ中の前記出力制
御データに応じて、前記第2の入力端子から入力された
前記第2の入力データの少なくとも一部もしくは全部の
ビットが前記メモリ領域から読み出されたデータ中の前
記置換データに置換されてなる第1の出力データ、前記
第2の入力端子から入力された前記第2の入力データと
同一論理の第2の出力データ、前記第1の出力データに
基づく論理演算により生成される第3の出力データ、お
よび前記第1の出力データと前記第2の出力データとの
双方に基づく論理演算により生成される第4の出力デー
タからなるデータ群の中から選択される互いに異なるデ
ータを、前記出力データとして前記出力端子から出力す
るデータ出力手段とを備えたものであることを特徴とす
る請求項5記載のデータフロー制御装置。
6. The memory means includes one or a plurality of memory areas, and each of the memory areas represents the replacement data, feedback data used for searching the array, and the predetermined number, as required. Distance data, and output control data indicating whether or not it is the final stage of the array, the data switching means, a register for storing the feedback data read from the memory means, After storing the distance data read from the memory means, after the storage, before the next input of the first input data forming the array from the first input terminal, A cow that terminates the search of the array being searched when the first input data that does not form the array exceeds the predetermined number that is determined and is input from the first input terminal. And a search data consisting of a pair of the first input data input from the first input terminal and the feedback data stored in the register, or A plurality of searched data are stored, and when a match between the search data and one of the searched data is detected in the search, the memory area of the memory means corresponding to the searched data for which a match is detected. From the second input terminal according to the data reference means for outputting an access signal for reading the data stored in the memory area, and the output control data in the data read from the memory means. At least a part or all of the bits of the generated second input data are replaced with the replacement data in the data read from the memory area. First output data, second output data having the same logic as the second input data input from the second input terminal, third output generated by a logical operation based on the first output data The different data selected from the data group consisting of the data and the fourth output data generated by the logical operation based on both the first output data and the second output data are the output data. 6. The data flow control device according to claim 5, further comprising data output means for outputting from the output terminal.
【請求項7】 前記データ参照手段が、エンハンスメン
トトランジスタとディプレッショントランジスタとの組
合せにより定義された前記被検索データを記憶するもの
であることを特徴とする請求項2、4又は6のうちいず
れか1項記載のデータフロー制御装置。
7. The data reference means stores the searched data defined by a combination of an enhancement transistor and a depletion transistor, and the data reference means stores the searched data. The data flow control device according to the paragraph.
【請求項8】 前記メモリ手段が、エンハンスメントト
ランジスタとディプレッショントランジスタとの組合せ
により定義されたデータを記憶するものであることを特
徴とする請求項2、4又は6のうちいずれか1項記載の
データフロー制御装置。
8. The data according to claim 2, 4 or 6, wherein said memory means stores data defined by a combination of an enhancement transistor and a depletion transistor. Flow control device.
【請求項9】 前記第1の入力手段が、多数のデータを
記憶する記憶装置に入力されるアドレスデータを前記第
1の入力データとして入力するものであり、前記第2の
入力手段が、前記記憶装置から出力されたデータを前記
第2の入力データとして入力するものであることを特徴
とする請求項1記載のデータフロー制御装置。
9. The first input means inputs address data input to a storage device that stores a large number of data as the first input data, and the second input means outputs the address data. 2. The data flow control device according to claim 1, wherein data output from a storage device is input as the second input data.
【請求項10】 前記メモリ手段が、複数の前記第1の
入力データからなる第1の配列に対応する前記置換デー
タ、および前記第1の配列を構成する複数の第1の入力
データとこれら複数の第1の入力データに引き続いて配
列された1つもしくは複数の前記第1の入力データとか
らなる第2の配列に対応する前記置換データを記憶する
ものであることを特徴とする請求項1記載のデータフロ
ー制御装置。
10. The replacement means corresponding to a first array composed of a plurality of the first input data, a plurality of first input data constituting the first array, and a plurality of the plurality of first input data. 2. The replacement data corresponding to a second array consisting of one or a plurality of the first input data arranged after the first input data of the above is stored. The described data flow control device.
【請求項11】 前記メモリ手段が、同一の前記第1の
入力データを最終段に含む複数の前記配列それぞれに対
応する複数の前記置換データを記憶するものであること
を特徴とする請求項1記載のデータフロー制御装置。
11. The memory means stores a plurality of the replacement data corresponding to each of the plurality of arrays including the same first input data in a final stage. The described data flow control device.
【請求項12】 前記第1のデータがCPUで実行され
る命令が格納されるメモリ上のアドレスを表わすアドレ
スデータであって、 前記配列が、分岐命令もしくは該分岐命令よりも前に実
行される命令が格納されたアドレスと、該分岐命令より
も後に実行される命令が格納されたアドレスであって該
分岐命令により該分岐命令が格納されたアドレスから離
れたアドレスへ分岐した側の命令が格納されたアドレス
とを含む複数のアドレスを表わす複数のアドレスデータ
からなることを特徴とする請求項1記載のデータフロー
制御装置。
12. The first data is address data representing an address on a memory in which an instruction to be executed by a CPU is stored, and the array is executed at a branch instruction or before the branch instruction. The address at which the instruction is stored and the address at which the instruction executed after the branch instruction is stored, and the branch instruction is stored at the address distant from the address at which the branch instruction is stored 2. The data flow control device according to claim 1, comprising a plurality of address data representing a plurality of addresses including a generated address.
【請求項13】 前記第1のデータがCPUで実行され
る命令が格納されるメモリ上のアドレスを表わすアドレ
スデータであって、 前記配列が、サブルーチンコール命令もしくは該サブル
ーチンコール命令よりも前に実行される命令が格納され
るアドレスと、該サブルーチンコール命令よりも後に実
行される命令が格納されるアドレスとを含む複数のアド
レスを表わす複数のアドレスデータからなることを特徴
とする請求項1記載のデータフロー制御装置。
13. The first data is address data representing an address on a memory in which an instruction to be executed by a CPU is stored, and the array is executed as a subroutine call instruction or before the subroutine call instruction. 2. A plurality of address data representing a plurality of addresses including an address at which an instruction to be stored is stored and an address at which an instruction to be executed after the subroutine call instruction is stored. Data flow controller.
【請求項14】 前記第1のデータがCPUで実行され
る命令が格納されるメモリ上のアドレスを表わすアドレ
スデータであって、 前記配列が、サブルーチンからのリターン命令もしくは
該リターン命令よりも前に実行される命令が格納される
アドレスと、該リターン命令よりも後に実行される命令
が格納されるアドレスとを含む複数のアドレスを表わす
複数のアドレスデータからなることを特徴とする請求項
1項記載のデータフロー制御装置。
14. The first data is address data representing an address on a memory in which an instruction executed by a CPU is stored, and the array is a return instruction from a subroutine or before the return instruction. 2. A plurality of address data representing a plurality of addresses including an address at which an instruction to be executed is stored and an address at which an instruction to be executed after the return instruction is stored. Data flow controller.
【請求項15】 前記第1のデータがCPUで実行され
る命令が格納されるメモリ上のアドレスを表わすアドレ
スデータであって、 前記配列が、所定の事象が生じたときに該事象に対応す
る所定のルーチンの呼出しを指示するコール命令が格納
されるアドレスと、該コール命令よりも後に実行される
命令が格納されるアドレスとを含む複数のアドレスを表
わす複数のアドレスデータからなることを特徴とする請
求項1記載のデータフロー制御装置。
15. The first data is address data representing an address on a memory where an instruction executed by a CPU is stored, and the array corresponds to a predetermined event when the predetermined event occurs. A plurality of address data representing a plurality of addresses including an address at which a call instruction for instructing the calling of a predetermined routine is stored and an address at which an instruction executed after the call instruction is stored. The data flow control device according to claim 1.
【請求項16】 前記第1のデータがCPUで実行され
る命令、およびCPUからアクセスされるデータが格納
されるメモリ上のアドレスを表わすアドレスデータであ
って、 前記配列が、メモリ上のデータをアクセスするデータア
クセス命令もしくは該データアクセス命令よりも前に実
行される命令が格納されるアドレスと、該データアクセ
ス命令によりアクセスされるデータが格納されるアドレ
スとを含む複数のアドレスを表わす複数のアドレスデー
タからなることを特徴とする請求項1記載のデータフロ
ー制御装置。
16. The first data is address data representing an address on a memory in which an instruction executed by a CPU and data accessed by the CPU are stored, and the array stores data on the memory. A plurality of addresses representing a plurality of addresses including a data access instruction to be accessed or an instruction to be executed before the data access instruction and an address to store data accessed by the data access instruction The data flow control device according to claim 1, wherein the data flow control device comprises data.
【請求項17】 第1の入力データが順次入力される第
1の入力端子、 第2の入力データが順次入力される第2の入力端子、 出力データが順次出力される出力端子、 複数の第1の入力データの、1つもしくは複数の各配列
に対応して定義された置換データと、前記配列のうちの
少くとも1つの配列に含まれる前記第1の入力データに
対応して定義された帰還データとを記憶するメモリ手
段、 前記メモリ手段から読み出された前記帰還データを格納
するレジスタ、 前記第2の入力端子から入力された前記第2の入力デー
タと、前記メモリ手段から読み出された前記置換データ
とを入力し、所定の制御信号に応じて、前記第2の入力
データ、もしくは該第2の入力データの少くとも一部も
しくは全部のビットが前記置換データに置換されたデー
タを、前記出力信号として前記出力端子に出力するセレ
クタ、 前記配列のうちのいずれか1つの配列に含まれる前記第
1のデータと、該第1のデータを含む前記配列を構成す
る、該第1のデータの直前に配列された第1のデータに
対応して定義された前記帰還データとの対からなる被検
索データを、前記配列のうちのいずれか1つの配列に含
まれる前記第1のデータそれぞれに対応して各被検索デ
ータメモリ領域に記憶し、前記第1の入力端子から入力
された前記第1のデータと前記レジスタに格納された、
前記メモリ手段から読み出された前記帰還データとの対
からなる検索データと、前記被検索データそれぞれとを
比較し、該検索データと一致する前記被検索データが格
納された前記被検索データメモリ領域に対応して備えら
れた信号線に一致信号を出力する一致検出手段、および
前記信号線に前記一致信号が出力されたことを受けて、
前記一致信号が出力された前記信号線に対応する前記被
検索データメモリ領域に格納された前記被検索データを
構成する前記第1のデータに対応して定義された前記帰
還データを前記メモリ手段から読み出して前記レジスタ
に格納するとともに、該検索データを構成する前記第1
の入力データが前記配列のうちのいずれか1つの配列の
最終に配列された前記第1の入力データであるか否かに
応じて、該配列に対応して定義された前記置換データを
前記メモリ手段から読み出して前記第2の入力手段から
入力された前記第2のデータの少なくとも一部もしくは
全部のビットが該置換データで置換されたデータを前記
セレクタから出力させ、もしくは前記第2の入力手段か
ら入力された前記第2のデータを前記セレクタから出力
させる制御手段を備えたことを特徴とするデータフロー
制御装置。
17. A first input terminal to which first input data is sequentially input, a second input terminal to which second input data is sequentially input, an output terminal to which output data is sequentially output, and a plurality of first input terminals. Substitution data defined corresponding to one or more respective arrays of one input data, and defined corresponding to the first input data included in at least one of the arrays. Memory means for storing feedback data, a register for storing the feedback data read from the memory means, the second input data input from the second input terminal, and read from the memory means The replacement data is input, and the second input data, or at least a part or all of the bits of the second input data is replaced with the replacement data according to a predetermined control signal. A selector for outputting to the output terminal as the output signal, the first data included in any one of the arrays, and the array including the first data, Of the first data included in any one of the arrays, the searched data including a pair with the feedback data defined corresponding to the first data arrayed immediately before the data of Stored in each searched data memory area corresponding to each, and stored in the register and the first data input from the first input terminal,
The searched-data memory area in which the searched-data that is paired with the return data read from the memory means is compared with the searched-data, and the searched-data that matches the searched-data is stored. In response to the coincidence detecting means for outputting a coincidence signal to the signal line provided corresponding to, and the coincidence signal being outputted to the signal line,
From the memory means, the feedback data defined corresponding to the first data forming the searched data stored in the searched data memory area corresponding to the signal line to which the match signal is output is stored. The first data which is read and stored in the register and which constitutes the search data
Depending on whether or not the input data of the above is the first input data arranged at the end of any one of the arrays, the replacement data defined corresponding to the array is stored in the memory. Data from which at least a part or all of the bits of the second data read from the means and input from the second input means are replaced with the replacement data, or the selector outputs the data. A data flow control device comprising a control means for causing the selector to output the second data input from the selector.
【請求項18】 第1の入力データが順次入力される第
1の入力端子、 第2の入力データが順次入力される第2の入力端子、 出力データが順次出力される出力端子、 複数の第1の入力データの、1つもしくは複数の各配列
に対応して定義された置換データと、前記配列のうちの
いずれか1つの配列に含まれる前記第1の入力データに
対応して定義された帰還データと、該第1の入力データ
に対応して定義された、該第1のデータが前記第1の入
力端子から入力された後、該第1のデータを含む前記配
列を構成する該第1のデータの直後に配列された第1の
データが前記第1の入力端子から入力されるまでの間
に、該第1の入力端子から入力されることが許容される
他の第1の入力データの個数を指標する距離データとを
記憶するメモリ手段、 前記メモリ手段から読み出された前記帰還データを格納
するレジスタ、 前記メモリ手段から読み出された前記距離データを格納
し、該格納の後に前記第1の入力端子から入力される前
記第1の入力データの個数と該距離データとを比較する
ことにより、前記第1の入力端子から、前記配列中に隣
接する2つの所定の第1の入力データそれぞれが入力さ
れる間に入力される他の第1の入力データの個数が該距
離データにより定まる個数を越えた場合に前記配列の検
索を終了させるカウンタ、 前記第2の入力端子から入力された前記第2の入力デー
タと、前記メモリ手段から読み出された前記置換データ
とを入力し、所定の制御信号に応じて、前記第2の入力
データ、もしくは該第2の入力データの少なくとも一部
もしくは全部のビットが前記置換データに置換されたデ
ータを、前記出力信号として前記出力端子に出力するセ
レクタ、 前記配列のうちのいずれか1つの配列に含まれる前記第
1のデータと、該第1のデータを含む前記配列を構成す
る、該第1のデータの直前に配列された第1のデータに
対応して定義された前記帰還データとの対からなる被検
索データを、前記配列のうちのいずれか1つの配列に含
まれる前記第1のデータそれぞれに対応して各被検索デ
ータメモリ領域に記憶し、前記第1の入力端子から入力
された前記第1のデータと前記レジスタに格納された、
前記メモリ手段から読み出された前記帰還データの対か
らなる検索データと、前記被検索データのそれぞれとを
比較し、検索データと一致する前記被検索データが格納
された前記被検索データメモリ領域に対応して備えられ
た信号線に一致信号を出力する一致検出手段、および前
記信号線に前記一致信号が出力されたことを受けて、前
記一致信号が出力された前記信号線に対応する前記被検
索データメモリ領域に格納された前記被検索データを構
成する前記第1のデータに対応して定義された前記帰還
データおよび前記距離データを前記メモリ手段から読み
出して、それぞれ、前記レジスタおよび前記カウンタに
格納するとともに、該検索データを構成する前記第1の
入力データが前記配列のうちのいずれか1つの配列の最
終に配列された前記第1の入力データであるか否かに応
じて、該配列に対応して定義された前記置換データを前
記メモリ手段から読み出して前記第2の入力手段から入
力された前記第2のデータの少なくとも一部もしくは全
部のビットが該置換データで置換されたデータを前記セ
レクタから出力させ、もしくは前記第2の入力手段から
入力された前記第2のデータを前記セレクタから出力さ
せる制御手段を備えたことを特徴とするデータフロー制
御装置。
18. A first input terminal to which first input data is sequentially input, a second input terminal to which second input data is sequentially input, an output terminal to which output data is sequentially output, and a plurality of first input terminals. Substitution data defined corresponding to one or more respective arrays of one input data, and defined corresponding to the first input data included in any one of the arrays. Feedback data, and the first data, which is defined corresponding to the first input data, is input to the first input terminal and then forms the array including the first data. Another first input allowed to be input from the first input terminal until the first data arranged immediately after the first data is input from the first input terminal. Memory means for storing distance data indicating the number of data, A register for storing the return data read from the memory means, the distance data read from the memory means, and the first input input from the first input terminal after the storage By comparing the number of pieces of data with the distance data, another first input data is input from the first input terminal while two predetermined first input data adjacent to each other in the array are input. A counter that terminates the search of the array when the number of input data of 1 exceeds the number determined by the distance data, the second input data input from the second input terminal, and read from the memory means. The output replacement data is input, and the second input data, or at least a part or all of the bits of the second input data, is input in response to a predetermined control signal. A selector that outputs the data replaced with the replacement data to the output terminal as the output signal, the first data included in any one of the arrays, and the array including the first data The searched data, which is made up of a pair with the feedback data defined corresponding to the first data arranged immediately before the first data, in any one of the arrays. The first data input from the first input terminal and the first data input from the first input terminal and stored in the register, corresponding to each of the first data included therein.
Search data composed of a pair of the return data read from the memory means is compared with each of the searched data, and the searched data matching the search data is stored in the searched data memory area. Correspondence detecting means for outputting a match signal to the corresponding signal line, and, in response to the match signal being output to the signal line, the target signal corresponding to the signal line to which the match signal is output The feedback data and the distance data defined corresponding to the first data forming the searched data stored in the search data memory area are read out from the memory means, and are respectively read into the register and the counter. Before storing the first input data constituting the search data and arranging it at the end of any one of the arrays Depending on whether or not it is the first input data, the replacement data defined corresponding to the array is read from the memory means and at least the second data input from the second input means. Control means for causing the selector to output data in which some or all of the bits are replaced with the replacement data or for outputting the second data input from the second input means from the selector And a data flow control device.
【請求項19】 入力データが順次入力される入力端子
と、 出力データが順次出力される出力端子と、 複数の各入力データに対応してそれぞれ定義された複数
の記憶データを記憶する第1のメモリ手段と、 複数の入力データの、1つもしくは複数の各配列に対応
して定義された1つもしくは複数の置換データを記憶す
る第2のメモリ手段と、 前記入力端子から最新の入力データが入力された際に、
該最近の入力データを含み該最新の入力データから入力
順に遡った複数の第1の入力データが、前記各配列のい
ずれか1つに相当するか否かに応じて、前記最新の入力
データに対応して定義された前記記憶データの少なくと
も一部もしくは全部のビットが該配列に対応して定義さ
れた前記置換データに置換されてなる第1の出力デー
タ、前記最新の入力データに対応して定義された前記記
憶データと同一論理の第2の出力データ、前記第1の出
力データに基づく論理演算により生成される第3の出力
データ、および前記第1の出力データと前記第2の出力
データとの双方に基づく論理演算により生成される第4
の出力データからなるデータ群の中から選択される互い
に異なるデータを、前記出力データとして前記出力端子
に出力する読出制御手段とを備えたことを特徴とするメ
モリ装置。
19. An input terminal to which input data is sequentially input, an output terminal to which output data is sequentially output, and a first storage unit for storing a plurality of storage data respectively defined corresponding to each of the plurality of input data. Memory means, second memory means for storing one or more replacement data defined corresponding to one or more respective arrays of the plurality of input data, and latest input data from the input terminal. When entered,
Depending on whether or not a plurality of first input data including the latest input data and traced back from the latest input data in the input order corresponds to the latest input data, Corresponding to the latest output data, first output data obtained by replacing at least a part or all of the bits of the correspondingly defined storage data with the replacement data defined corresponding to the array. Second output data having the same logic as the defined storage data, third output data generated by a logical operation based on the first output data, and the first output data and the second output data Fourth generated by logical operation based on both
And a read control means for outputting different data selected from the data group consisting of the output data to the output terminal as the output data.
【請求項20】 前記読出制御手段が、 前記入力端子から最新の入力データが入力された際に、
該最近の入力データを含み該最新の入力データから入力
順に遡った複数の第1の入力データが、前記配列を構成
する前記入力データどうしの間に前記配列を構成しない
前記入力データの嵌入を許容したときの前記配列のいず
れか1つを含むか否かに応じて、前記最新の入力データ
に対応して定義された前記記憶データの少なくとも一部
もしくは全部のビットが該配列に対応して定義された前
記置換データに置換されてなる第1の出力データ、前記
最新の入力データに対応して定義された前記記憶データ
と同一論理の第2の出力データ、前記第1の出力データ
に基づく論理演算により生成される第3の出力データ、
および前記第1の出力データと前記第2の出力データと
の双方に基づく論理演算により生成される第4の出力デ
ータからなるデータ群の中から選択される互いに異なる
データを、前記出力データとして前記出力端子に出力す
るものであることを特徴とする請求項19記載のメモリ
装置。
20. The read control means, when the latest input data is input from the input terminal,
A plurality of first input data including the latest input data and traced back in the order of input from the latest input data allows the insertion of the input data that does not form the array between the input data that forms the array. Depending on whether or not any one of the arrays is included, at least some or all of the bits of the storage data defined corresponding to the latest input data are defined corresponding to the array. First output data replaced by the replaced data, second output data having the same logic as the storage data defined corresponding to the latest input data, and logic based on the first output data Third output data generated by the calculation,
And different data selected from a data group consisting of fourth output data generated by a logical operation based on both the first output data and the second output data, as the output data. 20. The memory device according to claim 19, wherein the memory device outputs to an output terminal.
【請求項21】 前記読出制御手段が、 前記入力端子から最新の入力データが入力された際に、
該最近の入力データを含み該最新の入力データから入力
順に遡った複数の第1の入力データが、前記配列を構成
する前記入力データどうしの間に前記配列を構成しない
各所定数以内の前記入力データの嵌入を許容したときの
前記配列のいずれか1つを含むか否かに応じて、前記最
新の入力データに対応して定義された前記記憶データの
少なくとも一部もしくは全部のビットが該配列に対応し
て定義された前記置換データに置換されてなる第1の出
力データ、前記最新の入力データに対応して定義された
前記記憶データと同一論理の第2の出力データ、前記第
1の出力データに基づく論理演算により生成される第3
の出力データ、および前記第1の出力データと前記第2
の出力データとの双方に基づく論理演算により生成され
る第4の出力データからなるデータ群の中から選択され
る互いに異なるデータを、前記出力データとして前記出
力端子に出力するものであることを特徴とする請求項1
9記載のメモリ装置。
21. The read control means, when the latest input data is input from the input terminal,
A plurality of first input data including the most recent input data and traced back in the order of input from the latest input data, the input data being within a predetermined number each not forming the array between the input data forming the array. Depending on whether or not any one of the arrays is included, the at least some or all of the bits of the storage data defined corresponding to the latest input data are stored in the array. First output data replaced by the correspondingly defined replacement data, second output data having the same logic as the storage data defined corresponding to the latest input data, and the first output Third generated by logical operation based on data
Output data, and the first output data and the second output data
Different output data selected from a data group consisting of fourth output data generated by a logical operation based on both the output data and the output data are output to the output terminal as the output data. Claim 1
9. The memory device according to item 9.
【請求項22】 前記入力データが、アドレスデータで
あることを特徴とする請求項19記載のメモリ装置。
22. The memory device according to claim 19, wherein the input data is address data.
【請求項23】 前記出力端子から出力される出力デー
タがCPUで実行される命令を表すデータを含み、前記
出力端子から出力される前記互いに異なるデータが、互
いに同一の命令コードであって、かつ互いに異なるオペ
ランドの命令を表わすデータであることを特徴とする請
求項19記載のメモリ装置。
23. The output data output from the output terminal includes data representing an instruction executed by a CPU, and the different data output from the output terminal have the same instruction code, and 20. The memory device according to claim 19, wherein the data is data representing instructions having different operands.
【請求項24】 前記互いに異なるデータが、互いに同
一のレジスタに互い異なる値を格納する命令を表わすデ
ータであることを特徴とする請求項23記載のメモリ装
置。
24. The memory device according to claim 23, wherein the different data are data representing instructions for storing different values in the same register.
【請求項25】 前記互いに異なるデータが、互いに異
なるメモリアドレスに所定値を格納する命令であること
を特徴とする請求項23記載のメモリ装置。
25. The memory device according to claim 23, wherein the different data are instructions for storing predetermined values in different memory addresses.
【請求項26】 前記互いに異なるデータが、互いに異
なるアドレスへの分岐命令であることを特徴とする請求
項23記載のメモリ装置。
26. The memory device of claim 23, wherein the different data are branch instructions to different addresses.
【請求項27】 前記出力端子から出力される出力デー
タがCPUで実行される命令を表すデータを含み、前記
出力端子から出力される前記互いに異なるデータのうち
の少なくとも1つが、サブルーチンからのリターン命令
を表わすデータであることを特徴とする請求項19記載
のメモリ装置。
27. Output data output from the output terminal includes data representing an instruction executed by a CPU, and at least one of the different data output from the output terminal is a return instruction from a subroutine. 20. The memory device according to claim 19, which is data representing
【請求項28】 前記出力端子から出力される出力デー
タがCPUで実行される所定の命令を表わすデータを含
み、前記出力端子から出力される前記互いに異なるデー
タが、互いに異なる命令を表わすデータであることを特
徴とする請求項19記載のメモリ装置。
28. The output data output from the output terminal includes data representing a predetermined instruction executed by the CPU, and the different data output from the output terminal are data representing different instructions. The memory device according to claim 19, wherein the memory device is a memory device.
【請求項29】 前記出力端子から出力される出力デー
タがCPUで実行される所定の命令で参照されるデータ
を含み、前記出力端子から出力される前記互いに異なる
データが、前記所定の命令で参照される、互いに値の異
なるデータであることを特徴とする請求項19記載のメ
モリ装置。
29. The output data output from the output terminal includes data referred to by a predetermined instruction executed by a CPU, and the different data output from the output terminal is referred to by the predetermined instruction. 20. The memory device according to claim 19, wherein the data is different data having different values.
JP10269694A 1993-06-02 1994-05-17 Data flow control device and memory device Expired - Fee Related JP3566982B2 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP10269694A JP3566982B2 (en) 1993-06-02 1994-05-17 Data flow control device and memory device

Applications Claiming Priority (13)

Application Number Priority Date Filing Date Title
JP13194493 1993-06-02
JP13863593 1993-06-10
JP13875693 1993-06-10
JP17804493 1993-07-19
JP6334894 1994-03-31
JP5-138635 1994-03-31
JP6334794 1994-03-31
JP6-63348 1994-03-31
JP5-138756 1994-03-31
JP5-178044 1994-03-31
JP5-131944 1994-03-31
JP6-63347 1994-03-31
JP10269694A JP3566982B2 (en) 1993-06-02 1994-05-17 Data flow control device and memory device

Publications (2)

Publication Number Publication Date
JPH07319687A true JPH07319687A (en) 1995-12-08
JP3566982B2 JP3566982B2 (en) 2004-09-15

Family

ID=27565043

Family Applications (1)

Application Number Title Priority Date Filing Date
JP10269694A Expired - Fee Related JP3566982B2 (en) 1993-06-02 1994-05-17 Data flow control device and memory device

Country Status (1)

Country Link
JP (1) JP3566982B2 (en)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH09282156A (en) * 1996-04-17 1997-10-31 Ricoh Co Ltd Program protection device and program protection method
WO2016040071A1 (en) * 2014-09-12 2016-03-17 Intel Corporation Returning to a control transfer instruction

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH09282156A (en) * 1996-04-17 1997-10-31 Ricoh Co Ltd Program protection device and program protection method
WO2016040071A1 (en) * 2014-09-12 2016-03-17 Intel Corporation Returning to a control transfer instruction
US9519773B2 (en) 2014-09-12 2016-12-13 Intel Corporation Returning to a control transfer instruction

Also Published As

Publication number Publication date
JP3566982B2 (en) 2004-09-15

Similar Documents

Publication Publication Date Title
US7631196B2 (en) Method and apparatus for loading a trustable operating system
US5701449A (en) Data processor
CN109840410A (en) The method and system of data isolation and protection in a kind of process
EP2885738B1 (en) A secure mechanism to switch between different domains of operation in a data processor
US7752427B2 (en) Stack underflow debug with sticky base
IT8922811A1 (en) PROCEDURE FOR SURVEILLANCE OF THE FIELD OF ADDRESSES IN REAL-TIME DATA PROCESSING EQUIPMENT.
CN103455733A (en) Processor resource and execution protection methods and apparatus
CN109701269A (en) Interact plot implementation method, device, terminal and storage medium
JP2020505709A (en) Ways to secure software code
US5588137A (en) Data flow control apparatus and memory apparatus
JPH07319687A (en) Data flow controller and memory unit
JPS6212529B2 (en)
CN117033164A (en) Intelligent contract security vulnerability detection method and system
US8141145B2 (en) Method to control the execution of a program by a microcontroller
KR101014814B1 (en) Kernel monitoring module installed computer system and kernel monitoring method thereof
US6772372B2 (en) System and method for monitoring unaligned memory accesses
JPS6049937B2 (en) Microprogram controlled data processing device
KR20010076275A (en) Semiconductor memory device and program discrimination system
JPH05216721A (en) Electronic computer
CN112541188B (en) Method and device for preventing application program code from being statically analyzed
JP3366278B2 (en) Execution memory area control circuit for pipeline processing
JP2001282568A (en) Illegal access detection circuit, in-circuit emulator having the same and illegal access detecting method
CN107580697A (en) For verifying that correct code performs the inspection instruction of context
CN115269339A (en) Control method, device, equipment and storage medium
CN112702327A (en) Security service design method of main control chip

Legal Events

Date Code Title Description
TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20040608

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20040614

R150 Certificate of patent or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20090618

Year of fee payment: 5

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20090618

Year of fee payment: 5

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20100618

Year of fee payment: 6

LAPS Cancellation because of no payment of annual fees