JP3469941B2 - プログラム実行制御装置および方法 - Google Patents

プログラム実行制御装置および方法

Info

Publication number
JP3469941B2
JP3469941B2 JP16348094A JP16348094A JP3469941B2 JP 3469941 B2 JP3469941 B2 JP 3469941B2 JP 16348094 A JP16348094 A JP 16348094A JP 16348094 A JP16348094 A JP 16348094A JP 3469941 B2 JP3469941 B2 JP 3469941B2
Authority
JP
Japan
Prior art keywords
instruction
random number
program
bit
pseudo
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.)
Expired - Fee Related
Application number
JP16348094A
Other languages
English (en)
Other versions
JPH0830452A (ja
Inventor
伸一 中川
和哉 石原
哲 熊木
充雄 花見
浩 瀬川
哲哉 松村
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.)
Mitsubishi Electric Corp
Original Assignee
Mitsubishi Electric 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 Mitsubishi Electric Corp filed Critical Mitsubishi Electric Corp
Priority to JP16348094A priority Critical patent/JP3469941B2/ja
Priority to US08/460,947 priority patent/US5651123A/en
Priority to DE19524402A priority patent/DE19524402C2/de
Publication of JPH0830452A publication Critical patent/JPH0830452A/ja
Application granted granted Critical
Publication of JP3469941B2 publication Critical patent/JP3469941B2/ja
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/38Concurrent instruction execution, e.g. pipeline or look ahead
    • G06F9/3802Instruction prefetching
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/32Address formation of the next instruction, e.g. by incrementing the instruction counter
    • G06F9/321Program or instruction counter, e.g. incrementing
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2207/00Indexing scheme relating to methods or arrangements for processing data by operating upon the order or content of the data handled
    • G06F2207/72Indexing scheme relating to groups G06F7/72 - G06F7/729
    • G06F2207/7219Countermeasures against side channel or fault attacks

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Executing Machine-Instructions (AREA)
  • Test And Diagnosis Of Digital Computers (AREA)

Description

【発明の詳細な説明】
【0001】
【産業上の利用分野】この発明は、命令記憶装置に命令
を格納し、命令記憶装置のアドレスを指定していくこと
により命令を一定の順序で読出してプログラム実行装置
に与えるためのプログラム実行制御装置および方法に関
し、特に、そのような命令の読出をより高速に行なえ
る、比較的小規模な回路で実現できるプログラム実行制
御装置および方法と、そうした装置および方法により読
出可能な形式にプログラムを変換するプログラム変換方
法に関する。
【0002】
【従来の技術】図16に、マイクロプロセッサなどにお
いてプログラムの実行順序を制御するためのプログラム
実行制御装置(以下「プログラム制御部」と呼ぶ)の従
来例を示す。図16を参照して従来のプログラム制御部
は、プログラムカウンタ(PC)300と、命令メモリ
32と、命令デコーダ34と、インクリメンタ302
と、セレクタ304とを含む。
【0003】命令メモリ32は、プログラムの命令をプ
ログラムアドレス順に記憶している。プログラムアドレ
スは通常1ずつ増すように設定され、命令メモリ32に
配置される際にも、アドレスが1ずつ増加する連続した
メモリ空間に配置される。命令メモリ32は、与えられ
るnビットアドレス310から命令語38(mビット)
を読出し、命令デコーダ34に与えるためのものであ
る。
【0004】命令デコーダ34は、mビットの命令語3
8をデコードし、命令に応じたl(エル)ビットの制御
信号40を演算器などの実行装置に与えるためのもので
ある。命令デコーダ34はまた、命令語を解読し、セレ
クタ304に対して選択信号42と、ジャンプアドレス
44などを出力する。
【0005】セレクタ304は、命令デコーダ34から
与えられる選択信号42に基づいて、インクリメンタ3
02のnビットの出力306と、命令デコーダ34から
のnビットのジャンプアドレス44とのいずれかを選択
して出力308(nビット)としてプログラムカウンタ
300に与えるためのものである。
【0006】プログラムカウンタ300は、命令メモリ
32から命令語を読出すためのアドレス310を出力す
るためのものである。プログラムカウンタ300の出力
310はインクリメンタ302にも与えられる。
【0007】インクリメンタ302は、プログラムカウ
ンタ300の値をインクリメント(1加算)してnビッ
ト出力306をセレクタ304に与えるためのものであ
る。
【0008】この図16に示されるプログラム制御部は
以下のように動作する。まずリセット動作などでプログ
ラムカウンタ300は0にセットされる。プログラムカ
ウンタ300の出力310は命令メモリ32のアドレス
となり、命令メモリ32のアドレス0番地の命令が命令
語38として読出される。読出された命令語38は命令
デコーダ34で解読され、選択信号42、制御信号4
0、ジャンプアドレス44などが出力される。
【0009】プログラムカウンタ300の出力310は
同時にインクリメンタ302にも与えられ、インクリメ
ンタ302でインクリメントされてセレクタ304に与
えられる。命令デコーダ34からの選択信号42が、イ
ンクリメンタ302の出力を選択するようにセレクタ3
04を制御している場合、セレクタ304はインクリメ
ンタ302の出力306を選択してプログラムカウンタ
300に与える。したがって選択信号42が、インクリ
メンタ302の出力を選択する値である限り、プログラ
ムカウンタ300の出力310は1ずつ増加していく。
【0010】命令デコーダ34により解読された命令が
分岐命令である場合、命令デコーダ34はジャンプアド
レス44を出力するとともに、ジャンプアドレス44を
選択するようにセレクタ304を制御する選択信号42
をセレクタ304に与える。セレクタ304はジャンプ
アドレス44を選択してプログラムカウンタ300に与
える。したがってプログラムカウンタ300の値はこの
場合、ジャンプアドレスに設定される。
【0011】なおこの図16に示される例は模式化した
簡単な例を示してあるが、実際にはこれ以外にもサブル
ーチンのコールアドレス、戻りアドレス、割込みアドレ
スなどがセレクタ304の選択対象となる。
【0012】図17は、図16に示される命令メモリ3
2にプログラムをダウンロードするまでのフローを示
す。まずステップ90で、高級言語でプログラムを作成
する。これら高級プログラムを、アセンブラ、リンカ、
コンパイラを用いて機械語に変換するとともに、命令メ
モリへのアドレス割当てをステップ92で行なう。ステ
ップ96で、機械語に変換されたプログラムを実メモリ
(命令メモリ)にロードする。この場合の実メモリ内で
の命令の配置については図18を参照して後述する。さ
らにステップ320で、プログラムカウンタを用いて実
メモリ上に配置されたプログラムの実行を行なう。
【0013】図18は、図17のステップ96でプログ
ラムが実メモリにロードされる際の、実メモリ上のプロ
グラムアドレスの配置を示す。図18を参照して、アセ
ンブラ、リンカ、コンパイラを用いて機械語に変換され
たプログラムに含まれる命令が127個ある場合を想定
し、これらを命令1〜命令127と呼ぶことにする。こ
れら命令には、0〜126のプログラムアドレスが順に
割当てられる。実メモリにロードされる際には、各命令
のプログラムアドレスは、先頭の命令1を基準として元
のプログラムアドレスの順に0〜126の範囲で1ずつ
増加するアドレスとなる。
【0014】
【発明が解決しようとする課題】従来のプログラム制御
装置では、プログラムカウンタをインクリメントするた
めにインクリメンタを使用する必要がある。インクリメ
ント処理には、当然に加算処理が含まれるが、加算処理
に伴うキャリー遅延などのため、インクリメンタの動作
速度が遅くなるという欠点がある。プロセッサの動作速
度の向上が望まれている点に鑑みると、このように動作
の遅いインクリメンタを使用することは望ましくない。
一方、加算処理の速度を上げるために、たとえば特開平
1−193931号公報に示されるように、インクリメ
ンタを複数のブロックに分割し、ブロックごとにキャリ
ー制御回路を備え、ブロック別にキャリーを発生するこ
とによりキャリーによる伝搬遅延を短くしてインクリメ
ンタの動作を高速化する手法が提案されている。しかし
このような装置では、インクリメンタの回路規模が大き
くなるうえ、動作速度の向上が回路規模の増大に見合う
ほどではないという問題点があった。またこうした問題
点を解消するうえで、大規模なプログラムや多数のプロ
グラムを実行する場合でも、メモリを有効に活用して命
令を高速に読出せれば望ましい。
【0015】それゆえに、請求項1からに記載の発明
の目的は、比較的小規模な回路を用いて、命令を高速に
読出せるプログラム実行制御装置および方法を提供する
ことである。
【0016】請求項に記載の発明の目的は、比較的小
規模な回路を用いて命令を高速に読出すことができ、か
つ、大規模なプログラムや多数のプログラムを、メモリ
を有効に活用して実行させることが可能なプログラム実
行制御方法を提供することである。
【0017】
【0018】
【課題を解決するための手段】請求項1に記載の発明に
係るプログラム実行制御装置は、命令記憶手段と、命令
記憶手段から命令を読出す手段と、デコード手段とを含
む。命令記憶手段は、プログラムの命令を、あるM系列
疑似乱数シーケンスにより順番に指定されるアドレス
に、各命令のプログラムアドレス順に記憶する。読出す
手段は、あるM系列疑似乱数シーケンスを発生するため
のフィードバックシフトレジスタ手段を有し、発生され
た疑似乱数と、命令の実行結果とに基づくアドレス指定
により命令記憶手段から命令を読出す。デコード手段
は、読出された命令をデコードして、読出された命令に
対応する制御信号をプログラム実行装置に出力するとと
もに、次の疑似乱数と、読出された命令によって定まる
飛び先アドレスとのいずれを選択するかを示す選択信号
と、飛び先アドレスとを、読出す手段に与える。
【0019】請求項2に記載の発明に係るプログラム実
行制御装置は、請求項1に記載の装置であって、そのフ
ィードバックシフトレジスタ手段は、1つのシフトレジ
スタを構成するように接続可能な複数個の1ビットレジ
スタと、論理回路と、選択手段とを含む。論理回路は、
複数個の1ビットレジスタのうちの所定の複数個のもの
の出力に対してある論理演算を行ない、シフトレジスタ
の先頭の1ビットレジスタにフィードバックする。それ
によって複数個の1ビットレジスタの出力があるM系列
疑似乱数を形成可能である。選択手段は、選択信号に応
答して、複数個の1ビットレジスタが論理回路を介して
シフトレジスタを構成するような接続と、複数個の1ビ
ットレジスタに、飛び先アドレスの対応するビットがそ
れぞれ入力されるような接続との間で、複数個の1ビッ
トレジスタの接続を選択する。
【0020】請求項3に記載の発明に係るプログラム実
行制御装置は、請求項2に記載の装置であって、その選
択手段は、複数個の1ビットレジスタにそれぞれ対応し
て設けられる複数個のセレクタを含む。セレクタは、選
択信号に応答して、シフトレジスタにおけるフィードバ
ックシフト経路内の前段から与えられるビットと、飛び
先アドレスのうちの対応の1ビットとのいずれか一方を
選択して対応の1ビットレジスタに与える。論理回路
は、非排他的論理和回路を含む。非排他的論理和回路
は、複数個の1ビットレジスタのうちの、所定の2つの
出力の非排他的論理和をとって、先頭の1ビットレジス
タに対応するセレクタにフィードバックする。
【0021】請求項4に記載の発明に係るプログラム実
行制御装置は、請求項2に記載の装置であって、フィー
ドバックシフトレジスタ手段は、7個の1ビットレジス
タを含む。選択手段は、7個の1ビットレジスタにそれ
ぞれ対応して設けられる7個のセレクタを含む。セレク
タは、選択信号に応答して、シフトレジスタにおけるフ
ィードバックシフト経路内の前段から与えられるビット
と、飛び先アドレスのうちの対応の1ビットとのいずれ
か一方を選択して対応の1ビットレジスタに与える。論
理回路は、非排他的論理和回路を含む。非排他的論理和
回路は、7個の1ビットレジスタのうちの、ビット2お
よびビット6に対応する2つの1ビットレジスタの出力
の非排他的論理和をとって、先頭の1ビットレジスタに
対応するセレクタに与える。
【0022】
【0023】請求項に記載のプログラム実行制御方法
は、命令メモリを準備するステップと、命令メモリから
命令を読出すステップと、読出された命令をデコードす
るステップと、読出すステップおよびデコードするステ
ップを所定の条件が成立するまで繰返し実行するステッ
プとを含む。命令メモリを準備するステップでは、ある
プログラムの命令が、あるM系列疑似乱数シーケンスに
より順番に指定されるアドレスに、各命令のプログラム
アドレス順に従って記憶した命令メモリを準備する。読
出すステップでは、そのM系列疑似乱数シーケンスに従
って疑似乱数を発生するためのフィードバックシフトレ
ジスタ手段を用いて疑似乱数を発生する。発生された疑
似乱数と、命令の実行結果とに基づくアドレス指定によ
り命令メモリから命令を読出す。デコードするステップ
では、読出された命令をデコードして、読出された命令
に対応する制御信号をプログラム実行装置に出力する。
さらに、次の疑似乱数により指定されるアドレスと、読
出された命令によって定まる飛び先アドレスとの、いず
れを選択するかを示す選択信号と、飛び先アドレスとを
出力する。読出すステップと、デコードするステップと
を所定の条件が成立するまで繰返し実行する。
【0024】請求項に記載のプログラム実行制御方法
は、あるプログラムを複数個のセグメントに分割するス
テップと、命令メモリを、複数個のセグメント記憶領域
に分割するステップと、命令の配列を変更するステップ
と、プログラム実行装置で実行すべき命令を特定する第
1のステップと、実行すべき命令を命令メモリから読出
すステップと、読出された命令をデコードするステップ
と、次に読出すべき命令を特定する第2のステップと、
読出すステップ、出力するステップ、および特定する第
2のステップを、所定の条件が成立するまで繰返し実行
するステップとを含む。
【0025】
【0026】
【作用】請求項1に記載の発明に係るプログラム実行制
御装置によれば、読出す手段によって、命令記憶手段
の、あるM系列疑似乱数シーケンスにより順番に指定さ
れるアドレスから命令が読出され、デコード手段に与え
られる。命令記憶手段は、プログラムの命令を、そのM
系列疑似乱数シーケンス内でその命令のプログラムアド
レスの順番に発生される乱数により指定されるアドレス
に記憶している。したがって命令はそのプログラムアド
レスに従って命令記憶手段から読出されて実行される。
M系列疑似乱数シーケンスはフィードバックシフトレジ
スタ手段を用いて発生されるもので、加算処理を含まず
高速に疑似乱数を発生できる。
【0027】請求項2に記載の発明に係るプログラム実
行制御装置によれば、フィードバックシフトレジスタ手
段の複数個の1ビットレジスタの出力によりあるM系列
疑似乱数が形成される。選択手段は、1ビットシフトレ
ジスタをフィードバックシフトレジスタとして接続して
次の乱数を発生させたり、1ビットシフトレジスタに飛
び先アドレスを示す値を格納させたりできる。したがっ
て、フィードバックレジスタ手段の出力をある疑似乱数
シーケンスに従って変化させることと、選択信号に応答
して、フィードバックレジスタ手段の出力を飛び先アド
レスに変化させ、そこから次の乱数の発生を再開させる
こととができる。
【0028】請求項3に記載の発明に係るプログラム実
行制御装置によれば、セレクタは、選択信号に応答し
て、シフトレジスタにおけるフィードバックシフト経路
内の前段から与えられるビットと、飛び先アドレスのう
ちの対応の1ビットとのいずれか一方を選択して対応の
1ビットレジスタに与える。非排他的論理和回路は、複
数個の1ビットレジスタのうちの、所定の2つの出力の
非排他的論理和と、先頭の1ビットレジスタに対応する
セレクタにフィードバックする。このような構成によ
り、M系列疑似乱数を出力可能なフィードバックシフト
を形成できるとともに、そのフィードバックシフトレジ
スタを構成する各1ビットレジスタに、飛び先アドレス
の対応のビットを格納させることも可能になる。
【0029】請求項4に記載の発明に係るプログラム実
行制御装置によれば、フィードバックシフトレジスタ手
段は、1サイクルで0〜126の27 −1個の値のそれ
ぞれを1回ずつとる疑似乱数を発生できる。従来の7ビ
ットのプログラムカウンタで計数できる値は27 個であ
る。したがって本請求項記載の発明によれば、7ビット
のプログラムカウンタを用いて行なうのとほぼ同様にプ
ログラムの実行を制御でき、しかもプログラムカウンタ
よりも高速に行なえる。
【0030】
【0031】請求項に記載のプログラム実行制御方法
によれば、読出すステップと、出力するステップとを所
定の条件が成立するまで繰返し実行することで、プログ
ラムカウンタを用いたアドレッシングではなく、疑似乱
数シーケンスに従ったアドレッシングで命令をプログラ
ムアドレスに従って読出して実行できる。M系列疑似乱
数シーケンスは高速に発生できるので、インクリメンタ
を利用した場合よりも命令の読出が高速になる。またM
系列疑似乱数シーケンスはたとえばフィードバックシフ
トレジスタなどを用いた比較的小規模な回路で発生でき
る。
【0032】請求項に記載のプログラム実行制御方法
によれば、命令の配列を変更するステップでは、複数個
のセグメントの各々において、そこに含まれる命令が、
あるM系列疑似乱数シーケンスにより順番に指定される
位置にプログラムアドレス順に従って配置されるよう
に、命令の配列を変更する。実行すべき命令を命令メモ
リから読出すステップでは、配列が変更された命令を含
む複数個のセグメントのうち、実行すべき命令を含むセ
グメント命令が命令メモリに存在するか否かを判断す
る。該当セグメントが命令メモリに存在しない場合に
は、該当セグメントを、複数個のセグメント領域のうち
の所定の条件に従って選択したものにロードしたうえ
で、実行すべき命令を命令メモリから読出す。読出され
た命令をデコードするステップでは、読出された命令に
対応する制御信号をプログラム実行装置に出力する。さ
らに、次に疑似乱数により指定されるアドレスと、デコ
ードの結果によって定まる飛び先アドレスとの、いずれ
を選択するかを示す選択信号と、飛び先アドレスとを出
力する。次に読出すべき命令を特定するステップでは、
命令の配列の変更に使用されたのと同じM系列疑似乱数
シーケンスに従って疑似乱数を発生し、発生された疑似
乱数と、選択信号および飛び先アドレスとに基づくアド
レス指定により、次に読出すべき命令を特定する。
【0033】
【0034】
【実施例】以下、本発明を2つの実施例に基づいて詳細
に説明する。第1の実施例は、単一のプログラムのみを
実行するためのものであり、第2の実施例は複数個のプ
ログラムまたは複数個のセグメントからなる大きなプロ
グラムを、命令メモリを効率よく利用して実行するため
のものである。なお、第1の実施例についてはその変形
例についても2つ説明する。以下の実施例では、疑似乱
数により発生される乱数を特定のビット数のものとして
説明しているが、本発明はそうした特定のビット数に限
定されるものではなく、想定される機械に応じてどのよ
うなビット数に対しても適用可能である。
【0035】[第1の実施例]図1は、本発明の第1の
実施例のプログラム制御部のブロック図である。図1を
参照して、この実施例のプログラム制御部は、命令メモ
リ32および命令デコーダ34と、疑似乱数プログラム
カウンタ30とを含む。命令メモリ32および命令デコ
ーダ34は、それぞれ図16に示した従来のものと同一
である。ただし命令メモリ32が格納しているプログラ
ムは、図16の場合とは異なっている。その詳細につい
ては後述する。命令メモリ32の出力38と、命令デコ
ーダ34の出力する制御信号40、選択信号42および
飛び先アドレス44も、図16に示されるものと同じで
ある。したがってそれらについての詳しい説明はここで
は繰返さない。
【0036】疑似乱数プログラムカウンタ30は、内部
にフィードバックシフトレジスタを有し、このフィード
バックシフトレジスタによってM系列疑似乱数を発生
し、この疑似乱数と、命令デコーダ34から与えられる
飛び先アドレス44および選択信号42に基づいて、命
令メモリ32から次に読出すべき命令のアドレス36を
出力するためのものである。なお、本実施例ではn=7
として以下説明する。
【0037】図2を参照して、疑似乱数プログラムカウ
ンタ30は、7個のレジスタ70、72、74、76、
78、80および82と、これらのレジスタに対応して
設けられる7個のセレクタ50、52、54、56、5
8、60および62と、レジスタ74の出力とレジスタ
82の出力との非排他的論理和をとって、第1のセレク
タ50の一方の入力にフィードバックするための非排他
的論理和回路84とを含む。
【0038】セレクタ50〜62の一方の入力にはそれ
ぞれ、飛び先アドレス44のビット0〜ビット6(I0
〜I6)が与えられる。セレクタ50の他方の入力に
は、非排他的論理和回路84の出力が与えられる。セレ
クタ52〜62の他方の入力には、レジスタ70〜80
の出力がそれぞれ与えられる。セレクタ50〜62の出
力は、それぞれ対応のレジスタ70〜82の入力に与え
られる。レジスタ70〜82は、7ビットの出力36の
ビット0〜ビット6(O0〜O6)をそれぞれ出力す
る。
【0039】セレクタ50は、選択信号42が飛び先ア
ドレスの選択を示している場合には飛び先アドレス44
のビット0(I0)を選択し、それ以外の場合には非排
他的論理和回路84の出力を選択してレジスタ70に与
えるためのものである。セレクタ52は、選択信号42
が飛び先アドレス44を選択することを示している場合
には、入力I1を選択し、それ以外の場合には前段のレ
ジスタ70の出力を選択して対応のレジスタ72に与え
るためのものである。他のセレクタ54〜62も、セレ
クタ52と同様に動作する。
【0040】したがって選択信号42が、飛び先アドレ
ス44を選択している場合には、セレクタ50〜62を
経てレジスタ70〜82に、飛び先アドレス44のビッ
トI0〜I6がそれぞれ設定される。それ以外の場合に
は、レジスタ70〜82はセレクタ50〜62を介して
直列に接続されることになり、1つのシフトレジスタを
構成するようになっている。レジスタ82の出力および
レジスタ74の出力が非排他的論理和回路84を介して
第1のレジスタ70に対応するセレクタ50の入力にフ
ィードバックされるため、これらレジスタ70〜82お
よび非排他的論理和回路84はこの場合フィードバック
シフトレジスタを構成する。このフィードバックシフト
レジスタの各レジスタ70〜82に最初に0を設定し、
フィードバックループの経路内を1ビットずつシフトし
ていくことにより、出力36に7ビットのM系列疑似乱
数シーケンスが得られる。後述するように、このM系列
疑似乱数シーケンスは、0〜126の127(27
1)個の値を、一見ランダムな順序でとることが知られ
ている。この場合の疑似乱数シーケンスについては図5
〜図9を参照して後述する。なお、図2に示される回路
は、クロック信号(図示省略)に同期して動作する。
【0041】図3を参照して、図1に示す命令メモリ3
2に格納されるプログラムは、次のようにして作成され
る。まずステップ90で、従来と同様に高級言語のプロ
グラムが作成される。ステップ92で、この高級言語プ
ログラムを、アセンブラ、リンカ、コンパイラを用いて
機械語に変換する。このとき、この機械語命令には、通
常1ずつ増加するプログラムアドレスが割当てられる。
【0042】ステップ94で、このようにして作成され
た機械語プログラムのアドレスの入換えが行なわれる。
この入換えの詳細については図4〜図10を参照して後
に詳しく説明する。さらにステップ96で、このように
アドレスが入換えられたプログラムを実メモリにロード
する。そしてステップ98で、図1に示されるプログラ
ム実行制御装置により、疑似乱数カウンタを利用したプ
ログラムカウンタによりこのプログラムの実行が行なわ
れる。
【0043】図4は、図3に示されるアドレス入換え処
理94をより詳細に示すフローチャートである。このフ
ローチャートに示される処理は、一般的なコンピュータ
を用いて行なえる。まずステップ110で、最初の命令
を読込む。ステップ112で、アドレス変換テーブル1
18を用いて、読込まれた命令のアドレス変換を行な
う。アドレス変換テーブル118の内容を図5〜図9に
示す。その意味については後述する。
【0044】ステップ114で、アドレス変換された命
令は、元のプログラムが記憶されていた領域とは別の記
憶領域の、変換後アドレスに書込まれる。ステップ11
6ですべての命令についてアドレス変換の処理が終了し
たかについての判断が行なわれる。すべての命令につい
て処理が終了した場合にはこのアドレス入換え処理は終
了する。まだ残っている命令がある場合には処理は再び
ステップ110に戻り、次の命令につきステップ110
〜116の処理が繰返し実行される。
【0045】図5〜図9に、図4のアドレス変換テーブ
ル118の内容を示す。図中左側から第1列、第2列、
第3列と呼ぶことにする。第2列には、図2に示される
疑似乱数プログラムカウンタ30により発生される疑似
乱数をその発生順に格納している。なおこの場合初期状
態としては「すべて0」が選択されているものとする。
第1列はしたがって、第2列に示される各乱数が、この
M系列疑似乱数シーケンスの中で何番目に表われるかを
示す番号である。またこの番号は、各乱数がアドレス変
換テーブル118に格納されているアドレスをも示して
いる。第3列は、第2列に示される値を理解容易にする
ために十進表示したものである。
【0046】図5〜図9に示されるように、図2に示さ
れる疑似乱数プログラムカウンタ30は、127個(番
号0〜番号126)の値からなる1サイクルの間に、0
〜126内の整数値を1回ずつとる。その発生順序は第
3列に示されるように、0、1、3、7、14、28、
56、113、98、68、9、…と、一見ランダムで
ある。実際には図5〜図9に示されるように一定のシー
ケンスで繰返しこれらの値が決まった順番で発生するの
であるが、一部の値を見ただけではその規則性を推定す
ることは容易にはできない。これが、このシーケンスが
「疑似乱数」と呼ばれる所以である。
【0047】図5〜図9に示されるテーブルを、変換す
べき命令のプログラムアドレスをアドレスとしてアクセ
スし、そのアドレスに格納されている第2列の値をその
命令のプログラムアドレスと入換え、入換えられたアド
レスにその命令を移動させる。
【0048】このようにしてアドレス入換えが行なわれ
たプログラムの状態を図10に示す。図10を参照し
て、命令1〜127に、プログラムアドレス0〜126
がそれぞれ元々割当てられていたものとする。図5〜図
9に示されるアドレス変換テーブルにより変換されたア
ドレスにこれら命令を格納し、これを実メモリにロード
した場合、たとえば命令1はアドレス0に、命令2はア
ドレス1に、命令3はアドレス3に、命令11はアドレ
ス9に、命令61はアドレス25に、命令127はアド
レス64に、というように各命令がそれぞれ一見ランダ
ムなアドレスに格納される。
【0049】以下、この第1の実施例のプログラム実行
制御装置の動作について説明する。なお、図1の命令メ
モリ32には、上述のようにしてアドレス入換えがされ
たプログラムが予め格納されているものとする。図2を
参照して、まずリセット信号により各レジスタ70〜8
2が0にリセットされる。セレクタ50〜62は、いず
れも前段のレジスタまたは非排他的論理和回路84の出
力を選択するように設定される。この状態で図2に示さ
れる疑似乱数プログラムカウンタ30にクロック信号を
与えることにより、図5〜図9に示されるように疑似乱
数が出力36として順次発生され命令メモリ32に与え
られる。仮に選択信号42が常にフィードバックシフト
レジスタ側の入力を選択するようにセレクタ50〜62
を制御している場合、出力36の値は十進表示で順に
0、1、3、7、14、28、56、…(図5〜図9の
第3列参照)となる。これらアドレスには、命令1、
2、3、4、5、6、…がそれぞれ格納されている。し
たがって、この疑似乱数プログラムカウンタの出力36
で命令メモリ32をアクセスすることにより、プログラ
ムの各命令が元々のプログラムアドレス順に出力され出
力38として命令デコーダ34に与えられることにな
る。命令デコーダ34の動作は従来と同様である。
【0050】なお、命令のアドレス入換えの際に、命令
語に書かれているジャンプアドレス値を、各命令のアド
レス変換と同様に変換用テーブルを用いて変換してお
く。たとえば7ビットの例では「100番地に飛ぶ」で
あった命令が「118番地に飛ぶ」に変換される(図8
の番号100を参照)。
【0051】仮に命令デコーダ34で命令をデコードし
た結果分岐が生じた場合、命令デコーダ34は飛び先ア
ドレス44を疑似乱数プログラムカウンタ30に与え
る。また選択信号42は、セレクタ50〜62が、飛び
先アドレス44の対応するビットI0〜I6をそれぞれ
選択するようにこれらを制御する。レジスタ70〜82
には、飛び先アドレス44の各ビットI0〜I6が格納
され、出力36のビットO0〜O6として命令メモリ3
2に与えられる。したがって疑似乱数プログラムカウン
タ30の発生するアドレスが飛び先アドレスに置換えら
れることになる。
【0052】図2に示される疑似乱数プログラムカウン
タ30のフィードバックシフトレジスタは、その出力に
よって次の乱数出力が決まる。したがって次のクロック
が与えられ、かつ各セレクタが、フィードバックシフト
レジスタ側の入力を選択するように制御されることで、
疑似乱数プログラムカウンタ30は飛び先アドレスを起
点として乱数の発生を再開する。
【0053】したがってこの第1の実施例のプログラム
実行制御装置によれば、プログラムカウンタおよびイン
クリメンタを用いたのと同様にプログラムを実行でき
る。しかも図2に示されるように、疑似乱数プログラム
カウンタはフィードバックシフトレジスタという比較的
簡単な回路からなり、インクリメンタを用いた方式より
も回路量を少なくできる。また次のプログラムアドレス
生成には、非排他的論理和回路84およびセレクタ50
〜62による遅延時間のみが必要であり、アドレスのビ
ット数に関係ない非常に短い遅延時間のみで動作可能で
ある。したがってこの疑似乱数プログラムカウンタ30
によれば、高速に、命令読出のためのアドレスを発生で
きるという効果がある。また、この疑似乱数プログラム
カウンタを用いたプログラム実行制御装置により実行さ
れるプログラムは、従来と同様に機械語に変換したプロ
グラムのアドレスの入換えと、命令語内に含まれる飛び
先アドレスの入換えとだけで作成できる。機械語に変換
するためのアセンブラ、リンカ、コンパイラなどを新た
に準備する必要はなく、アドレス入換えのプログラムを
処理の途中に挿入するだけでよい。しかもそのようなア
ドレス入換えの処理は最初の1回のみでよい。なお、以
上の第1の実施例ではアドレスとして7ビットを使用し
た場合を説明したが、本発明は7ビットアドレスのみに
は限定されない。たとえば4ビット、9ビット、10ビ
ット、16ビット等、必要とされるビット数に応じたフ
ィードバックシフトレジスタ回路を構成するように疑似
乱数プログラムカウンタの中身を設計すればよい。な
お、M系列疑似乱数を発生する場合、その構成は図2に
示されるものとほぼ同様であり、セレクタおよびレジス
タの数が変更されることと、どのレジスタの出力を非排
他的論理和回路84の入力とするかが、アドレスのビッ
ト数に依存して異なってくることのみを考慮すればよ
い。
【0054】図11および図12に、4ビットの疑似乱
数プログラムカウンタと、10ビット疑似乱数プログラ
ムカウンタの構成例をそれぞれ示す。図11に示される
疑似乱数プログラムカウンタでは、4つのセレクタ13
0〜136と、4つのレジスタ140〜146と、1つ
の非排他的論理和回路148とが使用されている。セレ
クタとレジスタとの接続は図2とほぼ同様である。図1
1に示した実施例では、非排他的論理和回路148の入
力としては、第4のレジスタ146の出力と、第1のレ
ジスタ140の出力とが選ばれている。
【0055】図12に示される10ビット疑似乱数プロ
グラムカウンタは、10個のセレクタ160〜178
と、10個のレジスタ180〜198と、1個の非排他
的論理和回路200とを含む。セレクタおよびレジスタ
の接続は図2および図11に示される例とほぼ同様であ
る。図12では、非排他的論理和回路200の入力とし
ては、第3のレジスタの出力と、第10のレジスタ19
8の出力とが選ばれている。
【0056】なお、非排他的論理和回路を入力としてど
のレジスタの出力を選ぶかは、M系列疑似乱数が何ビッ
トの乱数を発生するかにより定まる。nビットの乱数を
発生する場合には、そうすることにより、0〜2N −1
個の値を1回ずつ一見ランダムな順番でとる疑似乱数シ
ーケンスを発生させることができる。このようなM系列
疑似乱数シーケンスを用いて命令メモリをアドレッシン
グすることで、プログラムカウンタを用いた場合とほぼ
同様の効率でメモを使用でき、さらにより高速に命令の
読出が行なえる。
【0057】なお、M系列疑似乱数シーケンスではな
く、同一ビット数でもより短いサイクルで疑似乱数を繰
返し発生する回路を使用することもできる。その場合に
もプログラムカウンタを使用する場合より高速に命令の
読出ができるという効果が得られるが、メモリの使用効
率は悪くなる。
【0058】[第2の実施例]上述した実施例1の装置
では、命令空間すべてを同時に疑似乱数アドレスに変換
している。たとえば組込み用マイクロプロセッサ(マイ
クロコントローラ)では、LSI(大規模集積回路)内
部に固定した命令メモリを持つので、決まったプログラ
ムのみ動作させればよい。したがって上述したような第
1の実施例に従って命令の読出を行なうことで従来の装
置と同様の動作をより高速に行なうことができる。
【0059】しかし、ワークステーションなどに用いる
マイクロプロセッサなどでは、複数のプログラムが次々
と、あるいは同時に実行される。また、ときには非常に
大きなプログラムを実行する必要があり、メモリの使用
効率を高めるために、プログラムをセグメント単位に分
割し、セグメント単位で管理することが多い。たとえば
1セグメントは256ワードで構成される。そして、現
在実行中の命令が存在しているセグメントが命令メモリ
内に存在していればよく、他のセグメントは必要に応じ
て二次記憶装置などに書出しておき、必要なときに実メ
モリに読出す(ロード)ことが行なわれる。
【0060】このような場合、実施例1に記載したプロ
グラム実行制御装置は、そのままでは対応できない。仮
にセグメント単位に分割することなく、大規模プログラ
ムを一括して疑似乱数シーケンスによりアドレス変換し
て実行する場合には、実行すべき命令のアドレスがメモ
リ空間上であちこちに飛ぶことになる。したがって命令
メモリ上にすべてのセグメントを同時に配置しておかな
ければプログラムを効率よく実行することができない。
しかし、命令メモリ上にすべてのセグメントを配置して
おくと、そのプログラムが占有するメモリ空間が大きく
なり、他の用途に使用できる領域が少なくなるという問
題点がある。特に従来装置を用いてセグメント単位で管
理をする場合と比較して、メモリ効率が極端に悪くなる
という問題点がある。
【0061】この第2の実施例は、そのような問題を解
決するためのものである。第2の実施例では、プログラ
ムを分割したセグメントごとに疑似乱数シーケンスを利
用したアドレス変換を行なっておく。それにより、疑似
乱数シーケンスによるプログラムカウンタで発生される
アドレスのほとんどは同一のセグメント内に存在するこ
とになる。したがって、そのセグメントのみを命令メモ
リ上に配置しておけば、効率よく命令の実行が行なえ
る。仮に他のセグメントへのアクセスの必要が称したと
きは、その他のセグメントを命令メモリ上にロードしな
おして当該アドレスから疑似乱数シーケンスによるアク
セスを再開すればよい。
【0062】図13に第2の実施例の概念図を示す。図
13を参照して、メモリ空間210上にたとえば4つの
セグメント212、214、216、218が格納され
ているものとする。各セグメントには、異なるプログラ
ムA〜Dがそれぞれ格納されている。また各セグメント
のアドレスは000〜0FF、100〜1FF、200
〜2FF、300〜3FFとなっているものとする。た
だしこのアドレスは16進表示である。
【0063】たとえばセグメント214につき、その内
部に格納されている命令を、第1の実施例で説明したよ
うに疑似乱数シーケンスを用いてアドレス変換してお
く。そして実行時には、同じ疑似乱数シーケンスにより
このセグメントをアクセスする。これにより、各命令の
元々のプログラムアドレス順に命令の読出が行なえる。
【0064】なお、図13では各セグメントに格納され
ているのは異なるプログラムであるとして説明したが、
同一のプログラムの異なるセグメント部分が格納されて
いてもよい。
【0065】図14は、この第2の実施例で実行される
プログラムを作成する際の処理の概略を示すフローチャ
ートである。ステップ90、ステップ92は第1の実施
例において図3を参照して説明したのと同じ処理であ
る。続いてステップ230では、得られた機械語プログ
ラムを複数のセグメントに分割する処理が行なわれる。
もちろん、あるセグメントの大きさよりも機械語プログ
ラムの大きさが小さければこの処理は不要である。
【0066】ステップ232で、各セグメント内におい
て疑似乱数シーケンスによるアドレス入換え処理が行な
われる。この処理は第1の実施例の図3のステップ94
に相当する処理である。
【0067】そしてステップ234で、アドレス入換え
がされたセグメントすべてを、そのプログラムの実行モ
ジュールとしてたとえば二次記憶装置などに記憶してお
く。
【0068】図15は、図14に示される処理に従って
アドレス変換された命令を含むセグメントからなるプロ
グラムを実行する際の、本実施例のプログラム実行制御
装置の概略を示すフローチャートである。図15を参照
して、まずステップ238により、最初に実行すべきセ
グメントと、そのセグメント中の先頭の命令を実行する
ことを選択する。
【0069】ステップ240で、該当セグメントが命令
メモリ(実メモリ)上に存在しているかについての判断
が行なわれる。存在していれば制御はステップ246に
進み、存在していなければ制御はステップ242に進
む。
【0070】ステップ242では、実行対象命令を含む
セグメントを実メモリにロードする処理が行なわれる。
制御はステップ246に進む。
【0071】ステップ246では、疑似乱数プログラム
カウンタによるそのセグメント内の一命令を実行する処
理が行なわれる。この実行により、プログラムアドレス
順の次の命令を行なうか、分岐が発生したかが定まる。
分岐が発生した場合には、飛び先アドレスも出力され
る。
【0072】ステップ248では、その命令の実行の結
果、装置全体の動作を終了させるかどうかについての判
断が行なわれる。動作を継続させるべき場合には制御は
ステップ250に進む。
【0073】ステップ250では、ステップ246で実
行された命令の結果、次に実行すべき命令が他のセグメ
ントに含まれるかどうかについての判断が行なわれる。
他のセグメントではない場合には制御はステップ246
に戻る。他のセグメントと判断された場合には制御はス
テップ240に戻り、ステップ240以下の処理が繰返
し行なわれる。
【0074】ステップ240〜250の動作を繰返し行
なうことで、複数のセグメントに分割された大規模プロ
グラム、または別々のセグメントに格納された複数個の
プログラムを、疑似乱数プログラムカウンタを用いて実
行することができる。しかも、当面必要なセグメントの
みが命令メモリ上に存在していればよいため、命令メモ
リを効率よく利用できる。また疑似乱数プログラムカウ
ンタを使用しているため、従来のようにプログラムカウ
ンタおよびインクリメンタを利用したものと比較して、
より高速にプログラムを実行できるという効果がある。
このようにして実行されるべきプログラムは、アドレス
入換えをしておく必要があるが、一旦アドレス入換えを
しておけば繰返し実行することができる。したがって、
プログラムを作成し、利用するまでの全体から見た作業
効率は向上する。
【0075】なお、以上の実施例は主記憶などを実メモ
リとして使用することを想定しているが、同様の考えに
より、LSI内部に設けられた命令キャッシュからの命
令の読出に対しても、疑似乱数プログラムカウンタを用
いたアクセスを行なうことができる。
【0076】以上、この発明を実施例に基づいて説明し
たが、本発明は上述の実施例には限定されず、その他種
々に変形して具体化することが可能であることは当業者
には明らかであろう。
【0077】
【発明の効果】以上のように請求項1に記載の発明に係
るプログラム実行制御装置によれば、プログラムの命令
が、命令記憶手段の、M系列疑似乱数シーケンスにより
順番に指定されるアドレスから各命令のプログラムアド
レス順に読出されて実行される。M系列疑似乱数シーケ
ンスはフィードバックシフトレジスタ手段を用いて発生
されるもので、加算処理を含まず、高速に疑似乱数を発
生できる。したがってプログラムカウンタおよびインク
リメンタを用いた従来の装置よりも高速に命令を読出す
ことができる。また、フィードバックシフトレジスタ手
段という簡単な回路で疑似乱数を発生できるので、回路
規模を大きくしなくてもよい。その結果、比較的小規模
な回路を用いて、命令を高速に読出せるプログラム実行
制御装置を提供できる。
【0078】請求項2に記載の発明に係るプログラム実
行制御装置によれば、請求項1に記載の発明の効果に加
え、フィードバックシフトレジスタ手段の出力をM系列
疑似乱数シーケンスに従って変化させることと、選択信
号に応答して、フィードバックシフトレジスタ手段の出
力を飛び先アドレスに変化させ、そこから次の乱数の発
生を再開させることとが自由に行なえる。したがって、
命令は、分岐も含めてそのプログラムアドレス順に従っ
て読出すことが可能である。その結果、比較的小規模な
回路を用いて、分岐も含めて命令を高速に読出せるプロ
グラム実行制御装置を提供できる。
【0079】請求項3に記載の発明に係るプログラム実
行制御装置によればさらに、M系列疑似乱数を出力可能
なフィードバックシフトレジスタを構成する各1ビット
レジスタに、飛び先アドレスの対応のビットを格納させ
ることができる。したがって、命令を、分岐も含めてそ
のプログラムアドレス順に従って読出すことが可能であ
る。その結果、比較的小規模な回路を用いて、分岐も含
めて命令を高速に読出せるプログラム実行制御装置を提
供できる。
【0080】請求項4に記載の発明に係るプログラム実
行制御装置によれば、7ビットのプログラムカウンタを
用いて行なうのとほぼ同様にプログラムの実行を制御で
き、しかもプログラムカウンタよりも高速に行なえる。
その結果、比較的小規模な回路を用いて、分岐も含めて
命令を高速に読出せるプログラム実行制御装置を提供で
きる。
【0081】
【0082】請求項に記載のプログラム実行制御方法
によれば、プログラムカウンタを用いたアドレッシング
ではなく、M系列疑似乱数シーケンスに従ったアドレッ
シングで命令をプログラムアドレス順に読出して実行で
きる。疑似乱数シーケンスはフィードバックシフトレジ
スタ手段を用いて高速に発生でき、しかも回路規模も小
さくてすむ。その結果、比較的小規模な回路を用いて、
命令を高速に読出せるプログラム実行制御方法を提供で
きる。
【0083】請求項に記載のプログラム実行制御方法
よれば、命令がセグメント単位でM系列疑似乱数シーケ
ンスに従って配列しなおされている。実行すべき命令を
含むセグメントが命令メモリに存在しない場合には、該
当セグメントを、複数個のセグメント領域のうちの、所
定の条件に従って選択したものにロードした上で、実行
すべき命令を命令メモリから疑似乱数シーケンスに従っ
て読出す。M系列疑似乱数シーケンスは従来のプログラ
ムカウンタおよびインクリメンタを使用した方法よりも
高速に動作可能なので、命令を従来よりも高速に読出す
ことが可能になる。回路規模もインクリメンタを使用し
たものよりも小さくてすむ。さらに、セグメント単位で
命令が配列しなおされているので、現在実行対象となっ
ている命令を含まないセグメントは、命令メモリに存在
しなくてもプログラムの実行には支障がない。それらセ
グメントのための命令メモリ領域を、他の用途に利用す
ることができる。そのため命令メモリの領域を有効に活
用できる。その結果、比較的小規模な回路を用いて命令
を高速に読出すことができ、かつ、大規模なプログラム
や多数のプログラムを、メモリを有効に活用して実行す
ることが可能なプログラム実行制御方法を提供できる。
【0084】
【図面の簡単な説明】
【図1】 本発明の第1の実施例に係るプログラム実行
制御装置のブロック図である。
【図2】 疑似乱数プログラムカウンタの回路ブロック
図である。
【図3】 本発明の第1の実施例のプログラム実行制御
装置により実行されるプログラムを作成する処理のフロ
ーチャートである。
【図4】 プログラムのアドレス入換え処理のフローチ
ャートである。
【図5】 アドレス変換テーブルの内容の一部を示す模
式図である。
【図6】 アドレス変換テーブルの内容の一部を示す模
式図である。
【図7】 アドレス変換テーブルの内容の一部を示す模
式図である。
【図8】 アドレス変換テーブルの内容の一部を示す模
式図である。
【図9】 アドレス変換テーブルの内容の一部を示す模
式図である。
【図10】 本発明の第1の実施例において実行される
プログラムの変換処理を模式的に示す図である。
【図11】 4ビットの疑似乱数プログラムカウンタの
回路ブロック図である。
【図12】 10ビットの疑似乱数プログラムカウンタ
の回路ブロック図である。
【図13】 本発明の第2の実施例の概念図である。
【図14】 本発明の第2の実施例において実行される
プログラムの作成処理のフローチャートである。
【図15】 本発明の第2の実施例においてプログラム
を実行する際のフローチャートである。
【図16】 従来のプログラム実行制御装置のブロック
図である。
【図17】 従来のプログラム実行制御装置で実行する
プログラムを作成し実行する処理の概略フローチャート
である。
【図18】 従来のプログラム実行制御装置で実行され
るプログラムの実メモリ上のプログラムアドレスを模式
的に示す図である。
【符号の説明】
30 疑似乱数プログラムカウンタ、32 命令メモ
リ、34 命令デコーダ、42 選択信号、44 飛び
先アドレス、50〜62、130〜136、160〜1
78 1ビットセレクタ、70〜82、140〜14
6、180〜1981ビットレジスタ、84、148、
200 非排他的論理和回路、118 アドレス変換テ
ーブル。
フロントページの続き (72)発明者 熊木 哲 兵庫県伊丹市瑞原4丁目1番地 三菱電 機株式会社システム エル・エス・アイ 開発研究所内 (72)発明者 花見 充雄 兵庫県伊丹市瑞原4丁目1番地 三菱電 機株式会社システム エル・エス・アイ 開発研究所内 (72)発明者 瀬川 浩 兵庫県伊丹市瑞原4丁目1番地 三菱電 機株式会社システム エル・エス・アイ 開発研究所内 (72)発明者 松村 哲哉 兵庫県伊丹市瑞原4丁目1番地 三菱電 機株式会社システム エル・エス・アイ 開発研究所内 (56)参考文献 特開 平2−91742(JP,A) 特開 平2−173858(JP,A) 特開 平7−93212(JP,A) 特開 平6−194422(JP,A) 特開 平3−14147(JP,A) 特開 昭60−91470(JP,A) 特開 昭57−208683(JP,A) (58)調査した分野(Int.Cl.7,DB名) G06F 9/22 - 9/42

Claims (6)

    (57)【特許請求の範囲】
  1. 【請求項1】 プログラムの命令を、あるM系列疑似乱
    数シーケンスにより順番に指定されるアドレスに、各命
    令のプログラムアドレス順に記憶する命令記憶手段と、 前記あるM系列疑似乱数シーケンスを発生するためのフ
    ィードバックシフトレジスタ手段を有し、発生された疑
    似乱数と、命令の実行結果とに基づくアドレス指定によ
    り前記命令記憶手段から命令を読出す手段と、 読出された命令をデコードして、読出された命令に対応
    する制御信号をプログラム実行装置に出力するととも
    に、次の疑似乱数と、読出された命令によって定められ
    る飛び先アドレスとのいずれを選択するかを示す選択信
    号と、飛び先アドレスとを前記読出す手段に与えるため
    のデコード手段とを含む、プログラム実行制御装置。
  2. 【請求項2】 前記フィードバックシフトレジスタ手段
    は、 1つのシフトレジスタを構成するように接続可能な複数
    個の1ビットレジスタと、 前記複数個の1ビットレジスタのうちの所定の複数個の
    ものの出力に対してある論理演算を行ない、前記シフト
    レジスタの先頭の1ビットレジスタにフィードバックす
    るための論理回路とを含み、 それによって前記複数個の1ビットレジスタの出力が前
    記あるM系列疑似乱数を形成可能であり、 前記フィードバックシフトレジスタ手段はさらに、 前記選択信号に応答して、前記複数個の1ビットレジス
    タが前記論理回路を介して前記シフトレジスタを構成す
    るような接続と、前記複数個の1ビットレジスタに、前
    記飛び先アドレスの対応するビットがそれぞれ入力され
    るような接続との間で、前記複数個の1ビットレジスタ
    の接続を選択するための選択手段とを含む、請求項1記
    載のプログラム実行制御装置。
  3. 【請求項3】 前記選択手段は、前記選択信号に応答し
    て、前記シフトレジスタにおけるフィードバックシフト
    経路内の前段から与えられるビットと、前記飛び先アド
    レスのうちの対応の1ビットとのいずれか一方を選択し
    て前記対応の1ビットレジスタに与えるための、前記複
    数個の1ビットレジスタにそれぞれ対応して設けられる
    複数個のセレクタを含み、 前記論理回路は、前記複数個の1ビットレジスタのうち
    の、所定の2つの出力の非排他的論理和を、先頭の1ビ
    ットレジスタに対応するセレクタに与えるための非排他
    的論理和回路を含む、請求項2記載のプログラム実行制
    御装置。
  4. 【請求項4】 前記フィードバックシフトレジスタ手段
    は、7個の前記1ビットレジスタを含み、 前記選択手段は、前記選択信号に応答して、前記シフト
    レジスタにおけるフィードバックシフト経路内の前段か
    ら与えられるビットと、前記飛び先アドレスのうちの対
    応の1ビットとのうちのいずれか一方を選択して前記対
    応の1ビットレジスタに与えるための、前記7個の1ビ
    ットレジスタにそれぞれ対応して設けられる7個のセレ
    クタを含み、 前記論理回路は、前記7個の1ビットレジスタのうち
    の、ビット2およびビット6に対応する2つの1ビット
    レジスタの出力の非排他的論理和をとって、先頭の1ビ
    ットレジスタに対応するセレクタに与えるための非排他
    的論理和回路を含む、請求項2記載のプログラム実行制
    御装置。
  5. 【請求項5】 あるプログラムの命令を、あるM系列疑
    似乱数シーケンスにより順番に指定されるアドレスに、
    各命令のプログラムアドレス順に従って記憶した命令メ
    モリを準備するステップと、 前記あるM系列疑似乱数シーケンスに従って疑似乱数を
    発生するためのフィードバックシフトレジスタ手段を用
    いて疑似乱数を発生し、発生された疑似乱数と、命令の
    実行結果とに基づくアドレス指定により前記命令メモリ
    から命令を読出すステップと、 読出された命令をデコードして、読出された命令に対応
    する制御信号をプログラム実行装置に出力するととも
    に、次の疑似乱数により指定されるアドレスと、読出さ
    れた命令によって定まる飛び先アドレスとの、いずれを
    選択するかを示す選択信号と、飛び先アドレス とを出力
    するステップと、前記読出すステップと、前記出力するステップとを所定
    の条件が成立するまで繰返し実行するステップとを含
    む、プログラム実行制御方法。
  6. 【請求項6】 あるプログラムを複数個のセグメントに
    分割するステップと、 命令メモリを、複数セグメント記憶領域に分割するステ
    ップと、 前記複数個のセグメントの各々において、そこに含まれ
    る命令が、あるM系列疑似乱数シーケンスにより順番に
    指定される位置にプログラムアドレス順に配置されるよ
    うに、命令の配列を変更するステップと、 プログラム実行装置で実行すべき命令を特定するステッ
    プと、 配列が変更された命令を含む前記複数個のセグメントの
    うち、実行すべき命令を含むセグメントが命令メモリに
    存在するか否かを判断し、存在しない場合には該当セグ
    メントを、前記複数個のセグメント領域のうちの、所定
    の条件に従って選択したものにロードしたうえで、前記
    実行すべき命令を前記命令メモリから読出すステップ
    と、 読出された命令をデコードして、読出された命令に対応
    する制御信号をプログラム実行装置に出力するととも
    に、次の疑似乱数により指定されるアドレスと、デコー
    ドの結果によって定まる飛び先アドレスとの、いずれを
    選択するかを示す選択信号と、飛び先アドレスとを出力
    するステップと、 前記あるM系列疑似乱数シーケンスに従って疑似乱数を
    発生し、発生された疑似乱数と、前記選択信号および前
    記飛び先アドレスとに基づいて、次に読出すべき命令を
    特定するステップと、 前記読出すステップと、前記出力するステップと、前記
    次に読出すべき命令を特定するステップとを、所定の条
    件が成立するまで繰返し実行するステップとを含む、プ
    ログラム実行制御方法。
JP16348094A 1994-07-15 1994-07-15 プログラム実行制御装置および方法 Expired - Fee Related JP3469941B2 (ja)

Priority Applications (3)

Application Number Priority Date Filing Date Title
JP16348094A JP3469941B2 (ja) 1994-07-15 1994-07-15 プログラム実行制御装置および方法
US08/460,947 US5651123A (en) 1994-07-15 1995-06-05 Program execution control device having addressability in accordance with M series pseudo-random number sequence
DE19524402A DE19524402C2 (de) 1994-07-15 1995-07-04 Programmausführungssteuereinrichtung mit einer Adressierbarkeit entsprechend einer M-reihigen Pseudo-Zufallszahlenfolge

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP16348094A JP3469941B2 (ja) 1994-07-15 1994-07-15 プログラム実行制御装置および方法

Publications (2)

Publication Number Publication Date
JPH0830452A JPH0830452A (ja) 1996-02-02
JP3469941B2 true JP3469941B2 (ja) 2003-11-25

Family

ID=15774683

Family Applications (1)

Application Number Title Priority Date Filing Date
JP16348094A Expired - Fee Related JP3469941B2 (ja) 1994-07-15 1994-07-15 プログラム実行制御装置および方法

Country Status (3)

Country Link
US (1) US5651123A (ja)
JP (1) JP3469941B2 (ja)
DE (1) DE19524402C2 (ja)

Families Citing this family (19)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100264633B1 (ko) * 1994-12-05 2000-09-01 포만 제프리 엘 준난수 생성 장치 및 방법, 및 함수 f의 다중 적분 계산 장치 및 방법
JP3505266B2 (ja) * 1995-06-15 2004-03-08 三洋電機株式会社 プログラム実行装置
JP3150611B2 (ja) * 1996-03-29 2001-03-26 株式会社東芝 パターン発生装置
US5944845A (en) * 1997-06-26 1999-08-31 Micron Technology, Inc. Circuit and method to prevent inadvertent test mode entry
EP0929040A3 (en) * 1997-12-25 2007-06-27 Nippon Telegraph and Telephone Corporation Microprocessor with data randomizing
DE19837101C2 (de) * 1998-08-17 2000-11-23 Philips Corp Intellectual Pty Programmierbare 1-Bit Datenverarbeitungsanordnung
US6452959B1 (en) 1999-05-28 2002-09-17 Dot Wireless, Inc. Method of and apparatus for generating data sequences for use in communications
US7107434B2 (en) * 1999-12-20 2006-09-12 Board Of Regents, The University Of Texas System, method and apparatus for allocating hardware resources using pseudorandom sequences
US7139912B2 (en) * 2000-06-09 2006-11-21 Sony Corporation Device authentication
US6904456B2 (en) * 2001-02-20 2005-06-07 Microsoft Corporation Lock-free cache management
FR2821478A1 (fr) * 2001-02-23 2002-08-30 St Microelectronics Sa Procede et dispositif de lecture sequentielle d'une memoire avec saut d'adresse
US20040024803A1 (en) * 2002-07-31 2004-02-05 Allen Montijo Cascaded modified PRBS counters form easily programmed and efficient large counter
US7469253B2 (en) * 2003-04-01 2008-12-23 Microsoft Corporation Associative hash partitioning using pseudo-random number generator
JP2004325233A (ja) 2003-04-24 2004-11-18 Matsushita Electric Ind Co Ltd 半導体装置
DE10336013B4 (de) * 2003-07-31 2005-08-18 Infineon Technologies Ag Verfahren zum Erzeugen eines Pseudozufallsdatenstroms und Schaltungsanordnung zur Durchführung des Verfahrens
DE10340411B4 (de) * 2003-09-02 2005-10-13 Infineon Technologies Ag Vorrichtung und Verfahren zur sicheren Ausführung eines Programms
EP1553477A1 (en) * 2004-01-12 2005-07-13 Siemens Aktiengesellschaft System integrity check for drives
US8549134B1 (en) * 2005-02-11 2013-10-01 Hewlett-Packard Development Company, L.P. Network event indicator system
US20090060191A1 (en) * 2006-03-08 2009-03-05 Hiroyuki Yabuno Interface circuit, information processing device, and information processing system

Family Cites Families (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS57212563A (en) * 1981-06-25 1982-12-27 Fujitsu Ltd Address reading circuit for one-chip microcomputer
DE3682305D1 (de) * 1985-03-23 1991-12-12 Int Computers Ltd Integrierte digitale schaltungen.
JP2673298B2 (ja) * 1987-12-17 1997-11-05 三菱電機株式会社 セルフテスト機能付半導体集積回路
US4905176A (en) * 1988-10-28 1990-02-27 International Business Machines Corporation Random number generator circuit
US5187676A (en) * 1991-06-28 1993-02-16 Digital Equipment Corporation High-speed pseudo-random number generator and method for generating same
US5473708A (en) * 1993-08-16 1995-12-05 Electro-Sensors, Inc. Pattern processing system using minimum length address loops

Also Published As

Publication number Publication date
DE19524402A1 (de) 1996-01-18
JPH0830452A (ja) 1996-02-02
US5651123A (en) 1997-07-22
DE19524402C2 (de) 1998-09-17

Similar Documents

Publication Publication Date Title
JP3469941B2 (ja) プログラム実行制御装置および方法
JP2571757B2 (ja) 信号処理装置及び該装置を使用する
US4258419A (en) Data processing apparatus providing variable operand width operation
US20060288337A1 (en) Apparatus, method and program for behavioral synthesis including loop processing
EP1073951A1 (en) Data processor with a configurable functional unit and method using such a data processor
Cui et al. Auto-tuning dense matrix multiplication for GPGPU with cache
EP4152146A1 (en) Data processing method and device, and storage medium
EP1034472A2 (en) An instruction decoder
US3979725A (en) Multi-way program branching circuits
JP5346467B2 (ja) 機能単位が読み出しポートを共有するデータ処理回路
JP2005182659A (ja) Vliw型dsp,及びその動作方法
US4240142A (en) Data processing apparatus providing autoincrementing of memory pointer registers
EP0032955B1 (en) Microprogram controlled data processor
KR20040086529A (ko) 벡터 데이터의 어드레스 참조 방법 및 벡터 프로세서
CN105988775A (zh) 处理器、程序代码转换装置以及软件
US5034879A (en) Programmable data path width in a programmable unit having plural levels of subinstruction sets
KR20200094771A (ko) 벡터 자리올림이 있는 가산 명령
US4975837A (en) Programmable unit having plural levels of subinstruction sets where a portion of the lower level is embedded in the code stream of the upper level of the subinstruction sets
US7043519B2 (en) SIMD sum of product arithmetic method and circuit, and semiconductor integrated circuit device equipped with the SIMD sum of product arithmetic circuit
Lewis et al. A field programmable accelerator for compiled-code applications
US20020156992A1 (en) Information processing device and computer system
EP0177268B1 (en) Programmable data path width in a programmable unit having plural levels of subinstructions sets
US7197653B2 (en) Microcontroller for fetching and decoding a frequency control signal together with an operation code
US20230084298A1 (en) Processing Device Using Variable Stride Pattern
JP2002278774A (ja) プロセッサ内の機能単位の制御時に命令語を生成する方法と装置

Legal Events

Date Code Title Description
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20030826

S111 Request for change of ownership or part of ownership

Free format text: JAPANESE INTERMEDIATE CODE: R313111

R350 Written notification of registration of transfer

Free format text: JAPANESE INTERMEDIATE CODE: R350

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

Free format text: PAYMENT UNTIL: 20070905

Year of fee payment: 4

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

Free format text: PAYMENT UNTIL: 20080905

Year of fee payment: 5

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

Free format text: PAYMENT UNTIL: 20080905

Year of fee payment: 5

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

Free format text: PAYMENT UNTIL: 20090905

Year of fee payment: 6

LAPS Cancellation because of no payment of annual fees