JPH03156536A - Microprocessor - Google Patents

Microprocessor

Info

Publication number
JPH03156536A
JPH03156536A JP29587589A JP29587589A JPH03156536A JP H03156536 A JPH03156536 A JP H03156536A JP 29587589 A JP29587589 A JP 29587589A JP 29587589 A JP29587589 A JP 29587589A JP H03156536 A JPH03156536 A JP H03156536A
Authority
JP
Japan
Prior art keywords
program
priority
instruction
execution
processing loop
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.)
Pending
Application number
JP29587589A
Other languages
Japanese (ja)
Inventor
Masakazu Urade
浦出 正和
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.)
Panasonic Holdings Corp
Original Assignee
Matsushita Electric Industrial Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Matsushita Electric Industrial Co Ltd filed Critical Matsushita Electric Industrial Co Ltd
Priority to JP29587589A priority Critical patent/JPH03156536A/en
Publication of JPH03156536A publication Critical patent/JPH03156536A/en
Pending legal-status Critical Current

Links

Abstract

PURPOSE:To improve the data processing efficiency by providing a first instruction selecting means which forms a first processing loop, a second instruction selecting means which forms a second processing loop, an address information storage means, etc. CONSTITUTION:A first programmable counter 600 forms the first processing loop and starts a second programmable counter 650, which forms the second processing loop, by a specific instruction of a programmable logic array (PLA) 100. Execution of programs is optimized through a second priority level storage means, a comparing means, a monitor pointer, a first priority level storage means as the program execution learning means, etc., in a window WD 700. That is, the first processing loop starts execution of the next program without waiting for the end of the program of the second processing loop after designation of the execution start address and the priority level of this program, thereby obtaining a microprocessor of high processing efficiency.

Description

【発明の詳細な説明】 産業上の利用分野 本発明は新規なマイクロプロセッサの構成に関し、特に
データ処理効率の高いマイクロプロセッサを提供するも
のである。
DETAILED DESCRIPTION OF THE INVENTION FIELD OF INDUSTRIAL APPLICATION The present invention relates to a new microprocessor configuration, and particularly to providing a microprocessor with high data processing efficiency.

従来の技術 近年、ノイマン方式のマイクロプロセッサはあらゆる方
面で多用されており、その構成としてはプログラムを格
納する命令メモリと、命令の実行タイミング信号を発生
するタイミングジェネレータと、前記タイミングジェネ
レータの出力に基づいて前記命令メモリに格納された特
定の命令を選択してプログラムを実行される命令選択手
段を備えていることに特徴づけられる。
BACKGROUND OF THE INVENTION In recent years, Neumann type microprocessors have been widely used in various fields, and their configuration includes an instruction memory for storing programs, a timing generator for generating instruction execution timing signals, and a processor based on the output of the timing generator. It is characterized by comprising an instruction selection means for selecting a specific instruction stored in the instruction memory and executing the program.

また、その代表的な構成が特公昭58−33584号公
報(以下、文献1と略記する)に示されている。
Further, a typical configuration thereof is shown in Japanese Patent Publication No. 58-33584 (hereinafter abbreviated as Document 1).

発明が解決しようとする課題 ところで、前記文献1に示されるようなノイマン方式の
マイクロプロセッサはあらかじめ定められた順序に従っ
てデータの処理を実行していくために、プログラムが膨
大になるにつれて非同期で入力される外部データの取り
込みや、それに基づくデータの処理のサイクルが長くな
るという課題を有している。このような課題に対して、
従来は割り込みという手段を用いたり、データフローマ
シンに代表されるような非ノイマン方式のプロセッサが
用いられてきた。しかしながら割り込み手段を用いる方
法では割り込みチャンネル数が増加するほどプロセッサ
自身が割り込みサービスルーチンを開始するための手続
きに多くの時間を費やす事になり、データの処理効率が
悪化する。
Problems to be Solved by the Invention Incidentally, since the Neumann microprocessor shown in the above-mentioned document 1 executes data processing according to a predetermined order, as the program becomes huge, the number of asynchronous inputs increases. The problem is that the cycle of importing external data and processing data based on it becomes long. In response to such issues,
Conventionally, interrupts have been used or non-Neumann processors such as data flow machines have been used. However, in the method using interrupt means, as the number of interrupt channels increases, the processor itself spends more time on procedures for starting an interrupt service routine, which deteriorates data processing efficiency.

また、データフローマシンでは一般に、数値データに処
理情報が付加されて巡回するためにシステムが大規模化
する。
Furthermore, in a data flow machine, processing information is generally added to numerical data and circulated, resulting in a large-scale system.

課題を解決するための手段 前記した問題点を解決するために本発明のマイクロプロ
セッサは、順次実行される命令群からなるプログラムを
格納する命令メモリと、命令の実行タイミング信号を発
生するタイミングジェネレータと、前記タイミングジェ
ネレータの出力に基づいて前記命令メモリに格納された
命令を逐次選択して第一の処理ループを形成する第一の
命令選択手段と、前記第一の命令選択手段によって選択
された命令によって指定された開始位置から格納された
命令を選択して前記第一の処理ループに対してコンカレ
ントな関係にある第二の処理ループを形成する第二の命
令選択手段と、前記第一の処理ループのプログラムの実
行に伴って次々と指定される前記開始位置とプログラム
の優先順位を複数格納するアドレス情報格納手段と、前
記アドレス情報格納手段の空きエリアが未実行のプログ
ラムの予約で満たされたときは最後に格納されたプログ
ラムの優先順位と前記第一の処理ループのプログラムの
実行に伴って指定される新たなプログラムの優先順位を
比較する優先度比較手段と、前記優先度比較手段により
出力される信号に従って前記アドレス格納手段に最後に
格納された開始位置とプログラムの優先順位情報を破棄
し、新しくプログラムの実行に伴って指定された開始位
置トフログラムの優先順位情報を前記アドレス情報格納
手段に格納し直すアドレス情報交換手段と、前記アドレ
ス格納手段の優先順位を複数個格納する優先度格納手段
と、前記優先度格納手段のデータによりプログラムの実
行を最適化するプログラム実行学習手段を備え、かつ前
記第一の処理ループは前記第二の処理ループのプログラ
ムの実行開始アドレスと優先順位を指定した後にそのプ
ログラムの終了を待つことなく次のプログラムの実行を
開始せしめる構成を有してなるコンカレント処理命令を
有している。
Means for Solving the Problems In order to solve the above-mentioned problems, the microprocessor of the present invention includes an instruction memory that stores a program consisting of a group of instructions to be executed sequentially, and a timing generator that generates an instruction execution timing signal. , a first instruction selection means for sequentially selecting instructions stored in the instruction memory based on the output of the timing generator to form a first processing loop; and an instruction selected by the first instruction selection means. a second instruction selection means for selecting the stored instructions from a start position specified by to form a second processing loop having a concurrent relationship with the first processing loop; and address information storage means for storing a plurality of the start positions and program priorities that are successively designated as the loop program is executed; and an empty area of the address information storage means is filled with reservations for unexecuted programs. and a priority comparison means for comparing the priority of the last stored program with the priority of a new program designated upon execution of the program of the first processing loop, and an output from the priority comparison means. The start position and program priority information last stored in the address storage means are discarded in accordance with the signal sent to the address information storage means, and the priority information of the start position tophrogram newly designated upon execution of the program is stored in the address information storage means. comprising address information exchange means for re-storing address information, priority storage means for storing a plurality of priorities of the address storage means, and program execution learning means for optimizing program execution based on the data of the priority storage means, and The first processing loop is a concurrent process configured to specify the execution start address and priority of the program of the second processing loop and then start the execution of the next program without waiting for the end of the program. Has a command.

作用 本発明では、前記した構成によってデータ処理効率の高
いマイクロプロセッサを得ることができる。
According to the present invention, a microprocessor with high data processing efficiency can be obtained by the above-described configuration.

実施例 以下、本発明の実施例について図面を用いて説明する。Example Embodiments of the present invention will be described below with reference to the drawings.

第1図は本発明のマイクロプロセッサの一実施例を示す
ものである。本マイクロプロセッサは順次実行される命
令群からなるプログラムを格納する命令メモリと命令の
解析および命令の実行を制御するプログラマブルロジッ
クアレイ(図中においてPLAという略記号で示されて
いる。以降、PLAと略記する)100と、ディジタル
データの読み書きを行うランダムアクセスメモリ(図中
においてRAM’という略記号で示されている。以降、
RAMと略記する)200と、周辺機器との通信やタイ
マカウンタ等の周辺装置250と、ディジタルデータの
算術および論理演算を行う第一の演算器300と第二の
演算器350と、前記RAM200と前記周辺装置25
0と前記演算器300と350の入出力端子を接続する
データバス400と、前記PLA100からの命令に基
づいて前記RAM200と前記周辺装置250と前記演
算器300と350のコントロールを行つコントロール
バス450と、外部クロック入力端子10に入力される
クロック信号を基にプログラムの実行のタイミング信号
を発生するタイミングジェネレータ(図中TLと略記号
で示されている)500と、前記タイミングジェネレー
タ500のタイミングに基づいて前記PLA100の特
定の命令を選択する第一のプログラマブルカウンタ(図
中PCIという略記号で示されている)600と、前記
第一のプログラマブルカウンタ600による命令の選択
に続いて前記タイミングジェネレータ500のタイミン
グに基づいて前記PLA100の特定の命令を選択する
第二のプログラマブルカウンタ(図中PC2という略記
号で示されている)650と、前記第一のプログラマブ
ルカウンタ600による命令の選択に基づいて前記第二
のプログラマブルカウンタ650の開始アドレスを格納
または拒否するウィンドウ(図中WDという略記号で示
されている)700と、前記RAM200のアドレスを
デコードするRAMアドレスデコーダ1500と、前記
周辺装置250のアドレスをデコードするアドレスデコ
ーダ1600を有している。
FIG. 1 shows an embodiment of the microprocessor of the present invention. This microprocessor consists of an instruction memory that stores a program consisting of a group of instructions to be executed sequentially, and a programmable logic array (indicated by the abbreviation PLA in the figure) that controls the analysis and execution of instructions. (abbreviated) 100, and a random access memory (indicated by the abbreviation RAM' in the figure) that reads and writes digital data.
(abbreviated as RAM) 200, a peripheral device 250 such as communication with peripheral devices and a timer counter, a first arithmetic unit 300 and a second arithmetic unit 350 that perform arithmetic and logical operations on digital data, and the RAM 200. The peripheral device 25
0 and the input/output terminals of the arithmetic units 300 and 350; and a control bus 450 that controls the RAM 200, the peripheral device 250, and the arithmetic units 300 and 350 based on instructions from the PLA 100. , a timing generator (indicated by the abbreviation TL in the figure) 500 that generates a timing signal for program execution based on the clock signal input to the external clock input terminal 10; a first programmable counter (indicated by the abbreviation PCI in the figure) 600 that selects a particular instruction of the PLA 100 based on the timing generator 500 following selection of an instruction by the first programmable counter 600; a second programmable counter (indicated by the abbreviation PC2 in the figure) that selects a specific instruction of the PLA 100 based on the timing of the instruction; A window 700 (indicated by the abbreviation WD in the figure) for storing or rejecting the starting address of the second programmable counter 650, a RAM address decoder 1500 for decoding the address of the RAM 200, and an address of the peripheral device 250. It has an address decoder 1600 that decodes.

第2図は、前記PLA100と、前記第一のプログラマ
ブルカウンタ600と、前記第二のプログラマブルカウ
ンタ650と、前記ウィンドウ700の接続を示すもの
である。前記ウィンドウ700は、前記第二のプログラ
マブルカウンタ650の実行状況を監視するポインタ(
図中PTRという略記号で示されている)710と、前
記第一のプログラマブルカウンタ600による命令の選
択に基づいて前記PLA100から前記第二のプログラ
マブルカウンタ650の開始アドレスを予約するための
第一のウィンドウバッファ(図中WDIという略記号で
示されている)720と、第二のウィンドウバッファ(
図中WD2という略記号で示されている)730と、予
約する処理の優先度を格納する第一の優先度格納手段(
図中PROLという略記号で示されている)740と、
前記第二のウィンドウバッファ730に予約がない時に
は第二の優先度格納手段(図中PRO2という略記号で
示されている)750に前記第一の優先度格納手段の情
報を転送後前記第二のウィンドウバッファ730に前記
第二のプログラマブルカウンタ650の開始アドレスを
転送し、前記第二のウィンドウバッファ730に予約が
ある時は前記第一の優先度格納手段740の情報と第二
の優先度格納手段750の情報の優先度判定を行い、前
記第一の優先度格納手段740の優先度の方が高い場合
には前記第二の優先度格納手段750に前記第一の優先
度格納手段の情報を転送後前記第二のウィンドウバッフ
ァ730に前記第二のプログラマブルカウンタ650の
開始アドレスを転送し、前記第一の優先度格納手段74
0の優先度の方が低い場合は新しい処理の予約を拒否す
る優先度比較手段(図中CMPという略記号で示されて
いる)760と前記第二のプログラマブルカウンタ65
0によるプログラムの処理が終了した時に前記ウィンド
ウ700に予約された開始アドレスを前記第二のプログ
ラマブルカウンタ650に転送するウィンドウパス77
0を有している。
FIG. 2 shows connections among the PLA 100, the first programmable counter 600, the second programmable counter 650, and the window 700. The window 700 includes a pointer (
(indicated by the abbreviation PTR in the figure) 710 and a first programmable counter 650 for reserving a starting address of the second programmable counter 650 from the PLA 100 based on the selection of an instruction by the first programmable counter 600. A window buffer (indicated by the abbreviation WDI in the figure) 720 and a second window buffer (
(indicated by the abbreviation WD2 in the figure) 730, and a first priority storage means (indicated by the abbreviation WD2) for storing the priority of the process to be reserved (
) 740 (indicated by the abbreviation PROL in the figure),
When there is no reservation in the second window buffer 730, the information of the first priority storage means is transferred to the second priority storage means (indicated by the abbreviation PRO2 in the figure) 750, and then the second The start address of the second programmable counter 650 is transferred to the window buffer 730 of The priority of the information in the means 750 is determined, and if the priority of the first priority storage means 740 is higher, the information of the first priority storage means is stored in the second priority storage means 750. After transferring the start address of the second programmable counter 650 to the second window buffer 730, the first priority storage means 74
A priority comparing means (indicated by the abbreviation CMP in the figure) 760 and the second programmable counter 65 which refuses to reserve a new process if the priority of 0 is lower.
a window path 77 that transfers the start address reserved for the window 700 to the second programmable counter 650 when processing of the program by 0 is completed;
It has 0.

以上のように構成されたマイクロプロセッサについて図
を用いて説明していく。
The microprocessor configured as described above will be explained using figures.

第3図Aは前記外部クロック端子10に入力される信号
波形である。次に、この信号をもとに前記タイミングジ
ェネレータ500より出力される前記データバス400
の方向切り替え信号のタイミングチャートを第3図B及
び第3図Cに、前記第一のプログラマブルカウンタ60
0と前記第二のプログラマブルカウンタ650の切り替
え信号のタイミングチャートを第3図り及び第3図Eに
示す。第3図Fは前記コントロールバス450の切り替
えのタイミングチャートを示している。これは、前記第
一のプログラマブルカウンタ600によって前記PLA
100の特定の命令を選択し、第3図FのMと記された
タイミングで前記コントロールバス450に命令を送出
しプログラムの実行を行うことを示しており、次に、前
記第二のプログラマブルカウンタ650によって前記P
LA100の特定の命令を選択し、第3図FのSと記さ
れたタイミングで前記コントロールバス4504−6令
を送出しプログラムの実行を行うことを意味している。
FIG. 3A shows a signal waveform input to the external clock terminal 10. Next, based on this signal, the data bus 400 is output from the timing generator 500.
The timing charts of the direction switching signals of the first programmable counter 60 are shown in FIGS. 3B and 3C.
Timing charts of switching signals of 0 and the second programmable counter 650 are shown in FIG. 3 and FIG. 3E. FIG. 3F shows a timing chart for switching the control bus 450. This is done by the first programmable counter 600.
100 specific instructions are selected and the instructions are sent to the control bus 450 at the timing marked M in FIG. 3F to execute the program, and then the second programmable counter P by 650
This means that a specific command of the LA 100 is selected and the control bus 4504-6 command is sent at the timing marked S in FIG. 3F to execute the program.

前記第一のプログラマブルカウンタ600は本マイクロ
プロセッサをリセットすると同時にプログラムの実行を
開始し、前記PLA100のある特定の命令によって前
記第二のプログラマブルカウンタ650を起動する(以
下、この命令をFCAL命令と記述する)。前記第二の
プログラマブルカウンタ650は前記PLA100のあ
る特定の命令を実行するまで第3図FのSのタイミング
で実行を続ける(以下、この命令をEND命令と記述す
る)。
The first programmable counter 600 starts executing the program at the same time as resetting the present microprocessor, and starts the second programmable counter 650 by a certain instruction of the PLA 100 (hereinafter, this instruction will be referred to as an FCAL instruction). do). The second programmable counter 650 continues executing at the timing S in FIG. 3F until a specific instruction of the PLA 100 is executed (hereinafter, this instruction will be referred to as an END instruction).

次に、FCAL命令によって、前記第二のプログラマブ
ルカウンタ650の実行の開始アドレスの予約のシーケ
ンスを第4図のフローチャートに従って説明する。なお
、ここでは説明を簡単にするために、前記第一の優先度
格納手段740をPROI、前記第二の優先度格納手段
750をPRO2、前記監視ポインタ710をPTR,
前記第一のウィンドウバッファ720をWpl、前記第
二のウィンドウバッファ730をWD2、前記第二のプ
ログラマブルカウンタ650をPO2と記述することに
する。PTRは、”0”から”2”の値をもつポインタ
であって、PO2に実行アドレスが格納されていない状
態(このとき、第3図FのSのタイミングでは、本マイ
クロプロセッサはEND命令を実行している)、または
WDIとWD2に予約がないときは”0”、WDlにの
みPO2の開始アドレスが予約されている時は”1″、
WDIとWD2の両方にPO2の開始アドレスが予約さ
れている時は”2”になるようになっている。
Next, the sequence of reserving the start address for execution of the second programmable counter 650 using the FCAL instruction will be explained according to the flowchart of FIG. In order to simplify the explanation, the first priority storage means 740 is referred to as PROI, the second priority storage means 750 is referred to as PRO2, and the monitoring pointer 710 is referred to as PTR.
The first window buffer 720 will be written as Wpl, the second window buffer 730 as WD2, and the second programmable counter 650 as PO2. PTR is a pointer with a value between "0" and "2", and the execution address is not stored in PO2 (at this time, at timing S in Figure 3 F, this microprocessor issues an END instruction). or "0" if there is no reservation in WDI and WD2, "1" if the start address of PO2 is reserved only in WDl,
When the start address of PO2 is reserved for both WDI and WD2, it is set to "2".

まず、ブロック1000で前記PC2に予約する処理の
優先度を前記PRO2に転送し、続いてブロック101
0でFCAL命令による前記PC2への処理の予約を行
っている(PO2の開始アドレスの設定)。ブロック1
020において、前記PTRの値が”2”か否かを判断
し、否であればブロック1030に進む。前記ブロック
1030では前記PC2に対してまだ処理の予約が可能
であるという判断となり、前記WD2に前記ブロック1
010で設定された開始アドレスを転送する。
First, in block 1000, the priority of the process reserved for the PC2 is transferred to the PRO2, and then in block 101
0, the processing to the PC2 is reserved by the FCAL command (setting of the start address of PO2). block 1
At 020, it is determined whether the value of the PTR is "2", and if not, the process proceeds to block 1030. In the block 1030, it is determined that it is still possible to reserve processing for the PC2, and the block 1 is sent to the WD2.
Transfer the start address set in 010.

前記WD2に予約がなかったということは、処理の優先
度を比較する必要がないために、ブロック1040で前
記PRO2の優先度を前記PROIに転送する。次に、
ブロック1050で前記PTRの値が”1”か否かを判
断し、否であればブロック1060に進む。前記ブロッ
ク1060では前記WDIと前記WD2の両方に処理の
予約がないことになるため、前記ブロック1030で転
送された前記WD2の情報を前記WDIに再び転送する
。次に、ブロック1070で前記PTRの値に1を加え
て”1”にして、ブロック1080で終了となる。前記
ブロック1050で前記PTRの値が”1”であれば、
前記ブロック1070へ移って前記PTRの値を”2”
とする。
Since there is no reservation in the WD2, there is no need to compare the processing priorities, so in block 1040, the priority of the PRO2 is transferred to the PROI. next,
At block 1050, it is determined whether the value of the PTR is "1", and if not, the process proceeds to block 1060. In the block 1060, since there is no processing reservation in both the WDI and the WD2, the information of the WD2 transferred in the block 1030 is transferred to the WDI again. Next, in block 1070, 1 is added to the value of the PTR to make it "1", and the process ends in block 1080. If the value of the PTR is “1” in the block 1050,
Moving to the block 1070, the value of the PTR is set to "2".
shall be.

前記ブロック1020で前記PTRの値が”2”であれ
ば、新しく処理の予約ができないため、ブロック109
0で前記PROIに格納された優先度と前記PRO2に
格納された優先度の比較を行っている。前記PR01に
格納された優先度の方が高ければ、処理の交換が成立し
ないため前記ブロック10日0にて終了となる。前記P
RO2に格納された優先度の方が高ければ、ブロック1
100で前記ブロック1010で設定された開始アドレ
スを前記WD2に転送する。続いて、ブロック1120
で前記PRO2の優先度を前記PROLに転送して前記
ブロック1080にて終了となる。
If the value of the PTR is “2” in the block 1020, it is not possible to reserve a new process, so the block 109
0, the priority stored in the PROI and the priority stored in the PRO2 are compared. If the priority stored in the PR01 is higher, the processing will not be exchanged and the processing will end at 0 on the 10th day of the block. Said P
If the priority stored in RO2 is higher, block 1
At step 100, the start address set at block 1010 is transferred to the WD2. Next, block 1120
Then, the priority of PRO2 is transferred to PROL, and the process ends at block 1080.

前記PC2は前述したように前記PCIが実行アドレス
を設定していないときは、END命令を実行している。
As described above, the PC 2 executes the END command when the PCI does not set an execution address.

END命令の動作を第5図のフローチャートを用いて説
明する。まず、ブロック1500において、前記PTR
の値が”0”か否かを判断する。否であれば、前記PC
Iから処理の予約があったものとしてブロック1510
に進む。前記ブロック1510では前記WDIの情報を
前記PC2に転送して実行アドレスとする。続いて、ブ
ロック1520で前記WD2の情報を前記WDIに転送
し、ブロック1530で前記PTRの値から1減じ、ブ
ロック1540にて終了となる。前記ブロック1510
において、前記PTRの値が”0″であれば、前記PC
Iからの処理の予約がないので、何も動作せずに前記ブ
ロック1540にて終了となる。
The operation of the END command will be explained using the flowchart of FIG. First, at block 1500, the PTR
It is determined whether the value of is "0" or not. If not, the PC
Block 1510 assumes that there is a reservation for processing from I.
Proceed to. In the block 1510, the WDI information is transferred to the PC 2 and used as an execution address. Next, in block 1520, the information of the WD2 is transferred to the WDI, in block 1530, 1 is subtracted from the value of the PTR, and in block 1540, the process ends. The block 1510
In, if the value of the PTR is "0", the PC
Since there is no processing reservation from I, the process ends at block 1540 without performing any operation.

前記第一の優先度格納手段740の情報は、前記第一の
プログラマブルカウンタの実行によるFCAL命令によ
って予約される処理の優先度を格納するものであり、F
CAL命令実行毎にFCAL命令による処理の種類によ
って前記RAM200に設定したワーキングエリアに1
ずつ加算することで処理の実行頻度を数値で表し、この
数値をもとに処理の優先度を逐次決定し、プログラムの
実行を効率よく行わせるためのプログラム実行学習手段
を実現している。
The information in the first priority storage means 740 stores the priority of the process reserved by the FCAL command executed by the first programmable counter, and
1 in the working area set in the RAM 200 depending on the type of processing by the FCAL command each time a CAL command is executed.
By adding up each step, the execution frequency of the process is expressed as a numerical value, and based on this numerical value, the priority of the process is sequentially determined, thereby realizing a program execution learning means for efficiently executing the program.

発明の効果 このように、順次実行される命令群からなるプログラム
を格納する命令メモリと、命令の実行タイミング信号を
発生するタイミングジェネレータと、前記タイミングジ
ェネレータの出力に基づいて前記命令メモリに格納され
た命令を逐次選択して第一の処理ループを形成する第一
の命令選択手段と、前記第一の命令選択手段によって選
択された命令によって指定された開始位置から格納され
た命令を選択して前記第一の処理ループに対してコンカ
レントな関係にある第二の処理ループを形成する第二の
命令選択手段と、前記第一の処理ループのプログラムの
実行に伴って次々と指定される前記開始位置とプログラ
ムの優先順位を複数格納するアドレス情報格納手段と、
前記アドレス情報格納手段の空きエリアが未実行のプロ
グラムの予約で満たされたときは最後に格納されたプロ
グラムの優先順位と前記第一の処理ループのプログラム
の実行に伴って指定される新たなプログラムの優先順位
を比較する優先度比較手段と、前記優先度比較手段によ
り出力される信号に従って前記アドレス格納手段に最後
に格納された開始位置とプログラムの優先順位情報を破
棄し、新しくプログラムの実行に伴って指定された開始
位置とプログラムの優先順位情報を前記アドレス情報格
納手段に格納し直すアドレス情報交換手段と、前記アド
レス格納手段の優先順位を複数個格納する優先度格納手
段と、前記優先度格納手段のデータによりプログラムの
実行を最適化するプログラム実行学習手段を備え、かつ
前記第一の処理ループは前記第二の処理ループのプログ
ラムの実行開始アドレスと優先順位を指定した後にその
プログラムの終了を待つことなく次のプログラムの実行
を開始せしめる構成にすることによって処理効率の高い
マイクロプロセッサを得ることができる。
Effects of the Invention As described above, there is provided an instruction memory that stores a program consisting of a group of instructions to be executed sequentially, a timing generator that generates an instruction execution timing signal, and a program that is stored in the instruction memory based on the output of the timing generator. a first instruction selection means for sequentially selecting instructions to form a first processing loop; and a first instruction selection means for sequentially selecting instructions to form a first processing loop; a second instruction selection means forming a second processing loop that is in a concurrent relationship with the first processing loop; and the start position that is sequentially specified as the program of the first processing loop is executed. and address information storage means for storing a plurality of program priorities;
When the free area of the address information storage means is filled with reservations for unexecuted programs, the priority of the last stored program and a new program specified according to the execution of the program of the first processing loop are determined. and a priority comparing means for comparing the priorities of the program, and discarding the start position and program priority information last stored in the address storage means in accordance with a signal output from the priority comparing means, and starting a new program execution. address information exchange means for re-storing the specified start position and program priority information in the address information storage means; priority storage means for storing a plurality of priorities of the address storage means; and the priority information The first processing loop includes program execution learning means for optimizing program execution based on the data in the storage means, and the first processing loop terminates the program after specifying the execution start address and priority of the program of the second processing loop. A microprocessor with high processing efficiency can be obtained by having a configuration that allows execution of the next program to start without waiting for the next program.

【図面の簡単な説明】[Brief explanation of the drawing]

第1図は本発明のマイクロブ0セッ号における一実施例
の構成図奢弁≠←外であり、第2図は第1図の主要部分
の構成図である。第3図は第1図の主要部のタイミング
チャートを示している。第4図、第5図は本発明のマイ
クロプロセッサの動作シーケンス会フローチャートでヰ
牟曙4410・・・・・・外部クロック入力端子、lO
O・・・・・・PLA、500・・・用タイミングジェ
ネレータ、600・・・・・・第一のプログラマブルカ
ウンタ、650・・・・・・第二のプログラマブルカウ
ンタ、700・旧・・ウィンドウ邪。
FIG. 1 is a block diagram of an embodiment of the microbe 0 set of the present invention, and FIG. 2 is a block diagram of the main parts of FIG. 1. FIG. 3 shows a timing chart of the main parts of FIG. 4 and 5 are flowcharts of the operation sequence of the microprocessor of the present invention.
O... Timing generator for PLA, 500... 600... First programmable counter, 650... Second programmable counter, 700... Old... Window counter .

Claims (1)

【特許請求の範囲】[Claims] 順次実行される命令群からなるプログラムを格納する命
令メモリと、命令の実行タイミング信号を発生するタイ
ミングジェネレータと、前記タイミングジェネレータの
出力に基づいて前記命令メモリに格納された命令を逐次
選択して第一の処理ループを形成する第一の命令選択手
段と、前記第一の命令選択手段によって選択された命令
によって指定された開始位置から格納された命令を選択
して前記第一の処理ループに対してコンカレントな関係
にある第二の処理ループを形成する第二の命令選択手段
と、前記第一の処理ループのプログラムの実行にともな
って次々と指定される前記開始位置とプログラムの優先
順位を複数格納するアドレス情報格納手段と、前記アド
レス情報格納手段の空きエリアが未実行のプログラムの
予約で満たされたときは最後に格納されたプログラムの
優先順位と前記第一の処理ループのプログラムの実行に
伴って指定される新たなプログラムの優先順位を比較す
る優先度比較手段と、前記優先度比較手段により出力さ
れる信号に従って前記アドレス格納手段に最後に格納さ
れた開始位置とプログラムの優先順位情報を破棄し、新
しくプログラムの実行に伴って指定された開始位置とプ
ログラムの優先順位情報を前記アドレス情報格納手段に
格納し直すアドレス情報交換手段と、前記アドレス格納
手段の優先順位を複数個格納する優先度格納手段と、前
記優先度格納手段のデータによりプログラムの実行を最
適化するプログラム実行学習手段を備え、かつ、前記第
一の処理ループは前記第二の処理ループのプログラムの
実行開始アドレスと優先順位を指定した後にそのプログ
ラムの終了を待つことなく次のプログラムの実行を開始
せしめる命令を有してなるコンカレントループを有する
マイクロプロセッサ。
an instruction memory that stores a program consisting of a group of instructions to be executed sequentially; a timing generator that generates an instruction execution timing signal; and a timing generator that sequentially selects the instructions stored in the instruction memory based on the output of the timing generator. a first instruction selection means forming one processing loop, and selecting a stored instruction from a start position specified by the instruction selected by the first instruction selection means to the first processing loop; a second instruction selection means forming a second processing loop in a concurrent relationship; and a plurality of start positions and program priorities that are sequentially specified as the program of the first processing loop is executed. When the free area of the address information storage means is filled with reservations of unexecuted programs, the priority of the last stored program and the execution of the program of the first processing loop are determined. a priority comparing means for comparing the priority of a new program designated with the above; and a starting position and program priority information last stored in the address storing means according to a signal output from the priority comparing means. address information exchange means for discarding and re-storing the designated start position and program priority information in the address information storage means upon execution of a new program; and a priority for storing a plurality of priorities of the address storage means. and a program execution learning means for optimizing program execution based on the data of the priority storage means, and the first processing loop has a program execution start address and a priority of the program of the second processing loop. A microprocessor having a concurrent loop having an instruction for starting execution of the next program without waiting for the end of the previous program after specifying the order.
JP29587589A 1989-11-14 1989-11-14 Microprocessor Pending JPH03156536A (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP29587589A JPH03156536A (en) 1989-11-14 1989-11-14 Microprocessor

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP29587589A JPH03156536A (en) 1989-11-14 1989-11-14 Microprocessor

Publications (1)

Publication Number Publication Date
JPH03156536A true JPH03156536A (en) 1991-07-04

Family

ID=17826309

Family Applications (1)

Application Number Title Priority Date Filing Date
JP29587589A Pending JPH03156536A (en) 1989-11-14 1989-11-14 Microprocessor

Country Status (1)

Country Link
JP (1) JPH03156536A (en)

Similar Documents

Publication Publication Date Title
JP3787167B2 (en) Flash memory
US6401155B1 (en) Interrupt/software-controlled thread processing
JP2003256221A (en) Parallel process executing method and multi-processor type computer
US20070055839A1 (en) Processing operation information transfer control systems and methods
JPH0340868B2 (en)
CN109656868B (en) Memory data transfer method between CPU and GPU
JPH03156536A (en) Microprocessor
JP2594600B2 (en) Single chip microcomputer
JPH03156537A (en) Microprocessor
KR20010055463A (en) Hardwired Task Scheduler And Scheduling Method In That Task Scheduler
JP2000215068A (en) Multitask scheduling device
JPS62145435A (en) Microprocessor with concurrent processing instruction
JPH08137703A (en) Task switching device
KR930009757B1 (en) Microcomputer for time dependant processes
US6874027B1 (en) Low-overhead threads in a high-concurrency system
JP2579008B2 (en) Time-division multitasking execution device
JPH0687221B2 (en) Information processing equipment
JPS59144955A (en) Information processor
JPS63636A (en) Task control system
KR920005330B1 (en) Microcomputer and network connected with microcomputer
JPH0462093B2 (en)
JPH0424828A (en) Multi-task control system
JPS61182135A (en) Process selecting system
JPH0516613B2 (en)
JPS62164138A (en) Microprocessor with concurrent loop