JP2553698B2 - Time-division multitasking execution device - Google Patents
Time-division multitasking execution deviceInfo
- Publication number
- JP2553698B2 JP2553698B2 JP1077574A JP7757489A JP2553698B2 JP 2553698 B2 JP2553698 B2 JP 2553698B2 JP 1077574 A JP1077574 A JP 1077574A JP 7757489 A JP7757489 A JP 7757489A JP 2553698 B2 JP2553698 B2 JP 2553698B2
- Authority
- JP
- Japan
- Prior art keywords
- time
- register
- queue
- task
- memory access
- 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 - Lifetime
Links
Description
【発明の詳細な説明】 産業上の利用分野 本発明は一つの中央演算処理装置(以下CPUと呼ぶ)
を用いて、二つ以上のタスク(仕事)を時分割並行処理
をし、かつ、タスク毎に任意にメモリアクセスのバス幅
を指定することができる時分割マルチタスク実行装置に
関するものである。The present invention relates to a central processing unit (hereinafter referred to as a CPU).
The present invention relates to a time-division multi-task execution device capable of time-division parallel processing of two or more tasks (jobs) by using, and capable of arbitrarily specifying a memory access bus width for each task.
従来の技術 マイクロプロセッサーを利用してタスクを実行する場
合、一つのCPUに対して、レジスタ群,スタックポイン
タ,ステータスレジスタ等からなる一組のレジスタファ
イルを準備し、CPUからの命令に応じてレジスタファイ
ルに必要なデータを転送しながらタスクを実行する方式
のものが多い。ところが、この方式では常時一つのタス
クしか実行できないから実行効率が悪くなる。そこで従
来から、一つのCPUに対して設けられた一組のレジスタ
ファイルを時分割で使用し、複数のタスクを時分割で実
行する方式が考えられている。そのうち、最も典型的な
ものは、CPUの一命令毎にタスクを切り替える方式であ
る。ところがこの方式は、タスクを切り替えるたびに、
それまでレジスタファイルに格納されていたデータを、
一旦メモリ(スタック)領域に退避させ、次のタスクに
必要なデータを別のメモリ一空間等からレジスタファイ
ルに呼び込む操作が必要となる。このデータの切り替え
時間中はタスクを実行することができず、従って時間的
なロスが大きくなる。Conventional technology When executing a task using a microprocessor, prepare a set of register files consisting of register groups, stack pointers, status registers, etc. for one CPU, and register them according to instructions from the CPU. There are many methods that execute a task while transferring necessary data to a file. However, in this method, only one task can be executed at any one time, so that the execution efficiency becomes poor. Therefore, conventionally, a method has been considered in which a set of register files provided for one CPU is used in a time-sharing manner to execute a plurality of tasks in a time-sharing manner. The most typical of these is the method of switching tasks for each instruction of the CPU. However, with this method, every time the task is switched,
The data previously stored in the register file is
It is necessary to temporarily save the data in the memory (stack) area and call the data required for the next task from another memory space or the like into the register file. During this data switching time, the task cannot be executed, and therefore the time loss becomes large.
このような問題点を解決するために、一つのCPUに対
して複数のレジスタファイルを準備し、CPUの命令に従
ってマルチプレクサを切り替え、複数のレジスタファイ
ルを順次切り替えながら複数のタスクを時分割で実行す
る方式も考えられている。このようにすれば、一つのタ
スクに対して一組のレジスタファイルが準備されている
から、切り替え時にデータを退避させたり、呼び込んだ
りする必要はなく、従って時間的なロスは少なくなる。
しかし、この場合でも複数のタスクの切り替え設定はプ
ログラムによって設定しなければらなない。このため、
ユーザーがユーザーの仕様に合わせてプログラムを作成
するには相当大きな負担がかかることになる。In order to solve such problems, prepare multiple register files for one CPU, switch multiplexers according to CPU instructions, and execute multiple tasks in a time-division manner while sequentially switching multiple register files Methods are also being considered. In this way, since one set of register files is prepared for one task, it is not necessary to save or recall data at the time of switching, and therefore time loss is reduced.
However, even in this case, the switching setting of a plurality of tasks must be set by a program. For this reason,
It takes a considerable burden for the user to create a program according to the user's specifications.
また、メモリアクセスのビット幅においては、ビット
幅の異なるメモリを1システム内に設ける場合、CPUが
十分に対応できず、メモリのビット幅を一種類に統一,
制限を加える方法がとられており、システク構築に対す
る柔軟性が欠けていた。Regarding the bit width of memory access, if memories with different bit widths are provided in one system, the CPU cannot handle it sufficiently, and the memory bit width is unified into one type.
There was a way to put restrictions and lack of flexibility in constructing a system.
発明が解決しようとする課題 このように、従来複数のタスクを一つのCPUで実行さ
せる場合には、各タスクの切り替え設定をプログラムで
設定しなければならないため、ユーザーに大きな負担を
かけ、また、メモリアクセス幅に対し、CPUが十分対応
できないため、システム設計に制限を加えるという問題
があった。Problems to be Solved by the Invention As described above, conventionally, when a plurality of tasks are executed by one CPU, a switching setting for each task must be set by a program, which imposes a heavy burden on the user, and There was a problem that the system design was restricted because the CPU could not sufficiently cope with the memory access width.
本発明は、このような従来の問題を解決する時分割マ
ルチタスク実行装置を提供するものである。The present invention provides a time-division multitask execution device that solves such a conventional problem.
課題を解決するための手段 この目的を達成するために本発明の時分割マルチタス
ク実行装置は、複数のタスクをそれぞれ実行する複数の
タスク実行キューに対して共通の1組の制御用レジスタ
群とキュー切り替え制御部,メモリアクセス幅制御部を
設け、これらの制御用レジスタ群とキュー切り替え制御
部,メモリアクセス幅制御部の管理下で複数のタスク実
行キューに一つのCPUを時分割で占有させ、複数のタス
クを時分割並行処理し、かつタスク毎に任意にメモリア
クセスのビット幅を指定できるように構成したものであ
る。Means for Solving the Problems To achieve this object, a time-division multitask execution device of the present invention provides a common set of control registers for a plurality of task execution queues that respectively execute a plurality of tasks. A queue switching control unit and a memory access width control unit are provided, and under the management of these control register groups, queue switching control unit, and memory access width control unit, one task execution queue is occupied by one CPU in a time-sharing manner, It is configured such that a plurality of tasks are time-divisionally parallel-processed and that the bit width of memory access can be arbitrarily specified for each task.
作用 このようにすれば、ユーザーが自らの仕様に合わせて
制御用レジスタ群中のレジスタに必要な情報をセットす
るだけでタスクの実行仕様を設定することができる。こ
のためユーザーがプログラムに対する十分な知識を持っ
ていなくてもレジスタという、いわゆるハードウェア上
に1または0の情報をセットするだけで希望する仕様を
設定することができ、システム構築に柔軟性が加わる。Operation In this way, the user can set the task execution specifications by merely setting the necessary information in the registers in the control register group according to their specifications. Therefore, even if the user does not have sufficient knowledge about the program, the desired specifications can be set only by setting the information of 1 or 0 on the so-called hardware, which is a register, and flexibility is added to the system construction. .
実施例 以下本発明の一実施例について図面を参照しながら説
明をする。Embodiment An embodiment of the present invention will be described below with reference to the drawings.
第1図は本発明の一実施例の基本的な構成を示すもの
である。この実施例の時分割マルチタスク実行装置は一
つのマイクロプロセッサで実現され、一つのCPU(図示
せず)に対して8つのタスク実行キュー(以下単にキュ
ーと呼ぶ)0〜7が設けられている。各キュー0〜7は
それぞれレジスタ群,データレジスタ,アドレスポイン
タ等からなるレジスタファイル8を備えており、各レジ
スタファイル8内にストアされたデータやアドレスを参
照しながらタスクを実行する。これらのキュー0〜7の
実行順序やメモリアクセスのビット幅を制御するため
に、全てのキュー0〜7に対して共通の制御用レジスタ
群9とキュー切り替え制御部10とメモリアクセス幅制御
部13が設けられている。すなわち複数のキュー0〜7
は、制御用レジスタ群9とキュー切り替え管理部10とメ
モリアクセス幅制御部13の管理下でひとつのCPUを時分
割で占有し、任意にメモリアクセス幅を変えながら、最
大8個のタスクを時分割並行処理する。FIG. 1 shows a basic configuration of an embodiment of the present invention. The time-division multitask execution device of this embodiment is realized by one microprocessor, and eight task execution queues (hereinafter simply referred to as queues) 0 to 7 are provided for one CPU (not shown). . Each of the queues 0 to 7 includes a register file 8 including a register group, a data register, an address pointer, and the like, and executes a task while referring to data and addresses stored in each of the register files 8. In order to control the execution order of these queues 0 to 7 and the bit width of memory access, a group of control registers 9 common to all the queues 0 to 7, a queue switching control unit 10, and a memory access width control unit 13 are provided. Is provided. That is, multiple queues 0-7
Occupies one CPU in a time-division manner under the control of the control register group 9, the queue switching management unit 10, and the memory access width control unit 13, and can change the memory access width arbitrarily and execute up to eight tasks at a time. Split parallel processing.
制御用レジスタ群9は、メモリアクセス幅制御レジス
タ11と、キュー切り替えスケジューリングレジスタ12と
で構成されている。プログラムカウンタ14は各キュー0
〜7レジスタファイル8内にあるレジスタからのアドレ
スを受けて、現在実行中の命令あるいは次命令移行のア
ドレスを示す。ROM15には、いわゆるオブジェクトコー
ドがストアされており、プログラムカウンタ14からのア
ドレスに従って順次命令を実行する。RAM16は命令の実
行に伴って発生する様々なデータを逐次読み書きをす
る。各ブロック間に示された矢印線および中央の線17
は、データまたはアドレスのバスラインである。The control register group 9 is composed of a memory access width control register 11 and a queue switching scheduling register 12. Program counter 14 is 0 for each queue
~ 7 Receives an address from a register in the register file 8 and indicates the address of the instruction currently being executed or the transition to the next instruction. A so-called object code is stored in the ROM 15, and instructions are sequentially executed according to the address from the program counter 14. The RAM 16 sequentially reads and writes various data generated by executing instructions. Arrow line and middle line shown between blocks 17
Is a data or address bus line.
メモリアクセス幅制御レジスタ11は、メモリアクセス
の際のビット幅をタスク毎に設定するレジスタであり、
第2図に示すように、ビットポジションbP0〜bP7の8つ
のポジションを持ち、実行させるキューのビットを“1"
にセットすることで16ビットアクセスに、また“0"にク
リアすることで8ビットアクセスを指定することができ
る。キュー切り替えレジスタ12は、実行させるキューの
ビットを“1"にセットすることでキューを実行可能にさ
せることができるレジスタである。第3図にその構成を
示す。キュー切り替え制御部10はこのキュー切り替えス
ケジューリングレジスタ12を参照してキューを時間ロス
なしで切り替える。The memory access width control register 11 is a register that sets the bit width for memory access for each task.
As shown in Fig. 2, it has 8 positions of bit positions bP0 to bP7, and the bit of the queue to be executed is "1".
16-bit access can be specified by setting to, and 8-bit access can be specified by clearing to "0". The queue switching register 12 is a register that can make the queue executable by setting the bit of the queue to be executed to "1". The structure is shown in FIG. The queue switching control unit 10 refers to the queue switching scheduling register 12 to switch the queue without time loss.
次にキュー切り替えとバスアクセスの基本動作および
レジスタの設定方法について述べる。Next, the basic operation of queue switching and bus access and the register setting method will be described.
キュー0〜7は0から7の順番で自動的にキューが切
り替わる。第4図はキュー2・キュー3・キュー7でユ
ーザープログラムを実行し、なおかつ自動キュー切り替
えを実行している例である。横軸は時間を示しており縦
軸はその時間CPUをどのキューが占有しているのかを示
す。The queues 0 to 7 are automatically switched in the order of 0 to 7. FIG. 4 shows an example in which the user program is executed in the queue 2, the queue 3, and the queue 7, and the automatic queue switching is executed. The horizontal axis indicates time, and the vertical axis indicates which queue occupies the CPU at that time.
キュー2,3,7を自動的に切り替える場合のキュー切り
替えモードレジスタ12とメモリアクセス幅制御レジスタ
11の設定を第5図に示す。メモリアクセス幅制御レジス
タ11のbp2とbp7の位置に“1"が設定されているため、キ
ュー2とキュー7がメモリをアクセスする場合、16ビッ
トのバス幅でアクセスし、キュー3は8ビットのバス幅
でアクセスをする。Queue switching mode register 12 and memory access width control register when switching queues 2, 3, and 7 automatically
The 11 settings are shown in FIG. Since "1" is set in the bp2 and bp7 positions of the memory access width control register 11, when queues 2 and 7 access the memory, they are accessed with a 16-bit bus width, and queue 3 is an 8-bit area. Access by bus width.
発明の効果 このようにすれば、ユーザーが自らの仕様に合わせ
て、制御用レジスタ群中のレジスタに必要な情報をセッ
トするだけでタスクの実行仕様とメモリアクセス仕様を
設定することができる。従ってユーザーがプログラムに
対する十分な知識を持っていなくてもレジスタという、
いわゆるハードウェア上に“1"または“0"の情報をセッ
トするだけで希望する仕様を設定することができ、マル
チタスク実行仕様を設定するにあたってのユーザーの負
担を大きく軽減することができる。EFFECTS OF THE INVENTION According to this configuration, the user can set the task execution specifications and the memory access specifications according to their own specifications only by setting necessary information in the registers in the control register group. Therefore, even if the user does not have enough knowledge about the program, the register
The desired specifications can be set simply by setting "1" or "0" information on so-called hardware, and the burden on the user in setting the multitask execution specifications can be greatly reduced.
第1図は本発明の一実施例の時分割マルチタスク実行装
置のブロック図、第2図はメモリアクセス幅制御レジス
タ11の構成を示した概念図、第3図はキュー切り替えレ
ジスタ12の構成を示した概念図、第4図はキュー2,3,7
が自動的に切り替わる場合の動作例を示したタイミング
図、第5図は第4図の動作のレジスタの設定例を示した
概念図である。 0〜7……タスク実行キュー、8……レジスタファイ
ル、9……制御用レジスタ群、10……切り替え制御部、
11……メモリアクセス幅制御レジスタ、12……キュー切
り替えスクジューリングレジスタ、13……メモリアクセ
ス幅制御部、14……プログラムカウンタ、15……ROM、1
6……RAM、17……バスライン。FIG. 1 is a block diagram of a time-division multitask execution device according to an embodiment of the present invention, FIG. 2 is a conceptual diagram showing a configuration of a memory access width control register 11, and FIG. 3 is a configuration of a queue switching register 12. The conceptual diagram shown in Fig. 4 is the queue 2,3,7.
Is a timing chart showing an operation example in the case of automatic switching, and FIG. 5 is a conceptual diagram showing a register setting example of the operation of FIG. 0 to 7 ... task execution queue, 8 ... register file, 9 ... control register group, 10 ... switching control unit,
11 …… Memory access width control register, 12 …… Queue switching scheduling register, 13 …… Memory access width control unit, 14 …… Program counter, 15 …… ROM, 1
6 ... RAM, 17 ... bus line.
Claims (1)
御部の管理下で複数のタスク実行キューでひとつのCPU
を時分割に占有させ、上記複数のタスク実行キューによ
り複数のタスクを時分割並行処理するように構成した時
分割マルチタスク実行装置であって、 上記制御用レジスタ群の中に、メモリアクセスのバス幅
を任意設定可能なレジスタをタスク毎に設けたことを特
徴とする時分割マルチタスク実行装置。1. A CPU having a plurality of task execution queues under the control of a control register group and a queue switching control unit.
A time-division multitask execution device configured to perform time-division parallel processing of a plurality of tasks by the plurality of task execution queues, wherein a memory access bus is included in the control register group. A time-division multitask execution device characterized in that a register whose width can be arbitrarily set is provided for each task.
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP1077574A JP2553698B2 (en) | 1989-03-28 | 1989-03-28 | Time-division multitasking execution device |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP1077574A JP2553698B2 (en) | 1989-03-28 | 1989-03-28 | Time-division multitasking execution device |
Publications (2)
Publication Number | Publication Date |
---|---|
JPH02253440A JPH02253440A (en) | 1990-10-12 |
JP2553698B2 true JP2553698B2 (en) | 1996-11-13 |
Family
ID=13637771
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP1077574A Expired - Lifetime JP2553698B2 (en) | 1989-03-28 | 1989-03-28 | Time-division multitasking execution device |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP2553698B2 (en) |
Families Citing this family (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2754432B2 (en) * | 1992-02-21 | 1998-05-20 | 富士通株式会社 | Multiple resource access method |
JPH06149593A (en) * | 1992-11-10 | 1994-05-27 | Matsushita Electric Ind Co Ltd | Multitask executive device |
JPH06149594A (en) * | 1992-11-10 | 1994-05-27 | Matsushita Electric Ind Co Ltd | Multitask executive device |
JPH06187169A (en) * | 1992-12-18 | 1994-07-08 | Matsushita Electric Ind Co Ltd | Multi-task executing device |
JP3525070B2 (en) | 1999-01-27 | 2004-05-10 | 松下電器産業株式会社 | Access control device and access method |
Family Cites Families (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPS6269321A (en) * | 1985-09-20 | 1987-03-30 | Fujitsu Ltd | Process switching system |
JPS63136139A (en) * | 1986-11-26 | 1988-06-08 | Nec Corp | Information processing system |
US4853849A (en) * | 1986-12-17 | 1989-08-01 | Intel Corporation | Multi-tasking register set mapping system which changes a register set pointer block bit during access instruction |
-
1989
- 1989-03-28 JP JP1077574A patent/JP2553698B2/en not_active Expired - Lifetime
Also Published As
Publication number | Publication date |
---|---|
JPH02253440A (en) | 1990-10-12 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
KR100422491B1 (en) | Multiple logical interfaces to a shared coprocessor resource | |
EP0432075A2 (en) | Multiprocessor with relatively atomic instructions | |
JPH0550022B2 (en) | ||
US5371887A (en) | Time-shared multitask execution device | |
US4851992A (en) | Register/saving/restoring system for saving and restoring data in a register of a slave processor | |
JP2553698B2 (en) | Time-division multitasking execution device | |
US5530889A (en) | Hierarchical structure processor having at least one sub-sequencer for executing basic instructions of a macro instruction | |
KR960003045B1 (en) | Microprocessor | |
JP2579008B2 (en) | Time-division multitasking execution device | |
KR100728899B1 (en) | High Performance Embedded Processor with Multiple Register Sets and Hardware Context Manager | |
JPH01154237A (en) | Executing device for time-division task | |
JP2666667B2 (en) | Multitask execution device | |
JPH0199132A (en) | Multi-task executing device | |
JPH0756633B2 (en) | Task switching method | |
JP2985092B2 (en) | Time-division multitasking controller | |
JPH01169540A (en) | Time division multi-task execution device | |
JP2903525B2 (en) | Job management method | |
JPH0477930A (en) | Microcomputer | |
JP2633382B2 (en) | Multi-register file system | |
JPH03105424A (en) | Firmware loading circuit | |
JPH0340169A (en) | Multiple processor system and method of controlling plurality of processor | |
JPH03154130A (en) | Task switching system | |
JPH03223955A (en) | Information processing system | |
JPH0683614A (en) | Microcomputer | |
JPS60225969A (en) | Controlling system of multiprocessor |