JP3154542B2 - Data processing device - Google Patents

Data processing device

Info

Publication number
JP3154542B2
JP3154542B2 JP07615192A JP7615192A JP3154542B2 JP 3154542 B2 JP3154542 B2 JP 3154542B2 JP 07615192 A JP07615192 A JP 07615192A JP 7615192 A JP7615192 A JP 7615192A JP 3154542 B2 JP3154542 B2 JP 3154542B2
Authority
JP
Japan
Prior art keywords
register
data
bit
address
general
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
Application number
JP07615192A
Other languages
Japanese (ja)
Other versions
JPH05241826A (en
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.)
Hitachi Ltd
Original Assignee
Hitachi 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 Hitachi Ltd filed Critical Hitachi Ltd
Priority to JP07615192A priority Critical patent/JP3154542B2/en
Priority to KR1019920007701A priority patent/KR100272622B1/en
Publication of JPH05241826A publication Critical patent/JPH05241826A/en
Priority to US08/583,763 priority patent/US5687344A/en
Priority to US08/582,379 priority patent/US5666510A/en
Priority to US08/607,568 priority patent/US5771363A/en
Application granted granted Critical
Publication of JP3154542B2 publication Critical patent/JP3154542B2/en
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

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 processing apparatus and a microcomputer, for example, a single-chip microcomputer and its central processing unit (CPU).
It is related to technology that is effective to use.

【0002】[0002]

【従来技術】シングルチップマイクロコンピュータに
は、それらの中央処理装置が主として扱うデータ長によ
って4ビット、8ビット、16ビットマイクロコンピュ
ータなどがある。現在、これらの中では8ビットシング
ルチップマイクロコンピュータが最も多く使用され、機
器組込制御用として用いられている。このような8ビッ
トシングルチップマイクロコンピュータとしては、
(株)日立製作所平成元年6月発行『H8/330 H
D6473308 HD6433308 ハードウェア
マニュアル』などがある。8ビットシングルチップマイ
クロコンピュータの中央処理装置(以下8ビットCP
U)は主として扱うデータ長が8ビットであり、このた
め、8ビットCPUは8ビット長のレジスタまたはアキ
ュムレータと、かつ8ビットレジスタの2倍長である1
6ビットレジスタを有する。これらの8ビットCPU
は、特に制限はされないものの、データ処理には主とし
て8ビットレジスタまたは16ビットレジスタを使用
し、メモリを参照するためのアドレスレジスタとしては
16ビットレジスタのみを使用する。このようなアドレ
スレジスタとしての16ビットレジスタはインデックス
レジスタ、スタックポインタ、プログラムカウンタなど
と呼ばれる場合がある。
2. Description of the Related Art Single-chip microcomputers include 4-bit, 8-bit, and 16-bit microcomputers depending on the data length mainly handled by these central processing units. At present, among these, an 8-bit single-chip microcomputer is most frequently used, and is used for controlling embedded devices. As such an 8-bit single-chip microcomputer,
Issued in June 1989 by Hitachi, Ltd. “H8 / 330 H
D6473308 HD64333308 Hardware Manual. Central processing unit of 8-bit single-chip microcomputer (hereinafter referred to as 8-bit CP)
U) mainly deals with a data length of 8 bits, so that an 8-bit CPU has an 8-bit register or accumulator, and 1 which is twice as long as an 8-bit register.
It has a 6-bit register. These 8-bit CPUs
Although there is no particular limitation, an 8-bit register or a 16-bit register is mainly used for data processing, and only a 16-bit register is used as an address register for referring to a memory. Such a 16-bit register as an address register may be called an index register, a stack pointer, a program counter, or the like.

【0003】前記8ビットCPUでは、命令の最小単位
が16ビット(2バイト)とされている。また、命令ま
たは16ビットデータをメモリに配置する場合には、偶
数から始まる連続した2バイトの領域に配置する様に限
定されている。さらに、前記8ビットCPUの演算命令
はCPU内部のレジスタ間でのみ可能とされ、メモリに
配置したデータの操作は、かかるデータを一旦CPU内
部のレジスタに転送した後に、演算命令による操作を行
わなければならない。このような制限を有する代りに、
CPUの内部構成、特にCPUの実行状態を制御する制
御部の構成を単純化し、論理的並びに物理的規模の縮小
を実現している。論理的並びに物理的規模の縮小の効果
として、製造費用を削減できる。また、副次的な効果と
して、動作速度の向上を図ることができる。すなわち、
相対的に小さい製造費用で、相対的に大きな処理性能を
実現できる。
In the 8-bit CPU, the minimum instruction unit is 16 bits (2 bytes). Further, when arranging an instruction or 16-bit data in a memory, it is limited to arranging it in a continuous 2-byte area starting from an even number. Further, the operation instruction of the 8-bit CPU can be performed only between the registers in the CPU, and the operation of the data arranged in the memory must be performed after the data is once transferred to the register in the CPU. Must. Instead of having these limitations,
The internal configuration of the CPU, particularly the configuration of a control unit that controls the execution state of the CPU, is simplified, and the logical and physical scales are reduced. As a result of reducing the logical and physical scale, manufacturing costs can be reduced. Further, as a secondary effect, the operation speed can be improved. That is,
A relatively large processing performance can be realized with a relatively small manufacturing cost.

【0004】しかしながら、前記8ビットCPUでは、
アドレスレジスタが16ビット長であるから、CPUが
参照できるメモリは65536バイト(=216、以下6
4kバイト)である。これに対して、8ビットシングル
チップマイクロコンピュータが用いられる機器組込制御
の応用では、機器の高性能化によって大容量のプログラ
ムあるいはデータを扱うことが要求されている。このよ
うな要求に対して、本発明者は、前記CPUの前記論理
的・物理的規模の縮小、または相対的に小さい製造費用
で、相対的に大きな処理性能を実現の特長を保持しつ
つ、64kバイト以上のメモリを参照できるCPUにつ
いて検討した。
[0004] However, in the 8-bit CPU,
Since the address register is 16 bits long, the memory that can be referred to by the CPU is 65536 bytes (= 2 16 , 6
4 kbytes). On the other hand, in the application of built-in device control using an 8-bit single-chip microcomputer, it is required to handle a large amount of programs or data due to the high performance of the device. In response to such a demand, the present inventor has reduced the logical and physical scales of the CPU, or at a relatively low manufacturing cost, while maintaining the feature of realizing a relatively large processing performance. A CPU that can refer to a memory of 64 kbytes or more was studied.

【0005】これに対し、8ビットCPUに8ビットの
ページレジスタを付加し、16ビットレジスタと組合せ
て、アドレスを生成することにより参照できるメモリを
16777216バイト(=224、以下16Mバイト)
としたシングルチップマイクロコンピュータの例として
(株)日立製作所昭和63年12月発行『H8/532
HD6475328 HD6435328 ハードウ
ェアマニュアル』などがある。このようなメモリ参照方
法は、ページレジスタとアドレスレジスタが全く独立し
ているために、ハードウェアの実現方法が簡単化される
反面、ページレジスタとアドレスレジスタの間にキャリ
またはボローの伝播が行われず、プログラムあるいはコ
ンパイラを作成する場合には、一群のプログラムあるい
はデータがページ境界を越えない様に常に注意しなけれ
ばならない。すなわち、上記の例で、命令を0番地から
実行すると、当初、プログラムカウンタはH’0000
(H’は16進数を示す),これに対応するページレジ
スタ(以下コードページレジスタ)はH’00である。
分岐命令を使用せずに演算命令などを実行し続け、65
535(H’FFFF)番地に達した後、次の命令を実
行しようとした場合、プログラムカウンタはH’FFF
F→H’0000となってオーバフローする。この時の
キャリはコードページレジスタに伝播されないために、
次の命令は0番地に戻ってしまう。このため、プログラ
ムは64kバイトを越えないように分割して作成し、分
割したプログラムをそれぞれ別のページに割当て、ある
ページに存在するプログラムから別のページに存在する
プログラムに実行を移す場合はページ間分岐命令を使用
する必要がある。すなわち、プログラム中で分岐命令を
使用する場合は、分岐先が同一ページ内に存在するか、
別ページに存在するかを意識してページ内分岐命令とペ
ージ間分岐命令を使い分ける必要がある。データも同様
に64kバイトを越えないように分割して、管理する必
要がある。すなわち、いわゆるポストインクリメントレ
ジスタ間接モードなどの様にメモリをアクセスする毎に
アドレスレジスタの内容を更新していく場合、上記同様
にアドレスレジスタがオーバフローしても対応するペー
ジレジスタ(以下データページレジスタ)にキャリが伝
播されない。また、ディスプレースメント付レジスタ間
接で、16ビットのディスプレースメントを使用する場
合、16ビットのアドレスレジスタに16ビットのディ
スプレースメントを加算し、キャリまたはボローが発生
してもページレジスタには伝播されず、16ビットの加
算結果とページレジスタが組み合わされてアドレスが生
成される。すなわち、ページレジスタがH’00、アド
レスレジスタがH’FFFF、ディスプレースメントが
H’4000の場合、結果として得られるアドレスは
H’003FFFになってしまう。したがって、ページ
レジスタを利用したアドレス拡張技術においては、実質
的に利用可能なアドレシングモードも制限されてしま
う。
On the other hand, an 8-bit CPU is provided with an 8-bit page register and combined with a 16-bit register to generate 16777216 bytes (= 2 24 , hereinafter 16 Mbytes) of memory that can be referred to by generating an address.
"H8 / 532" issued by Hitachi, Ltd. in December 1988 as an example of a single-chip microcomputer
HD64753328 HD6435328 Hardware Manual. In such a memory reference method, since the page register and the address register are completely independent, the hardware implementation method is simplified, but no carry or borrow is propagated between the page register and the address register. When creating a program or compiler, care must always be taken to ensure that a group of programs or data does not cross page boundaries. That is, in the above example, when the instruction is executed from address 0, the program counter initially reads H'0000.
(H 'indicates a hexadecimal number), and the corresponding page register (hereinafter, code page register) is H'00.
Continue to execute operation instructions without using branch instructions,
After the address reaches 535 (H'FFFF), when the next instruction is executed, the program counter becomes H'FFFF.
F → H′0000 and overflow. Since the carry at this time is not propagated to the code page register,
The next instruction returns to address 0. For this reason, the program is divided and created so as not to exceed 64 Kbytes, and the divided programs are allocated to different pages, respectively, and when the execution is transferred from the program existing on one page to the program existing on another page, the program is called a page. It is necessary to use an inter-branch instruction. That is, when using a branch instruction in a program, whether the branch destination exists in the same page,
It is necessary to use an intra-page branch instruction and an inter-page branch instruction in consideration of whether the instruction exists on another page. Similarly, data must be divided and managed so as not to exceed 64 Kbytes. That is, when the contents of the address register are updated each time the memory is accessed as in the so-called post-increment register indirect mode, the corresponding page register (hereinafter referred to as the data page register) is stored even if the address register overflows as described above. Carry is not propagated. When a 16-bit displacement is used indirectly with a register with a displacement, a 16-bit displacement is added to a 16-bit address register, and the carry or borrow is not propagated to the page register. An address is generated by combining the 16-bit addition result and the page register. That is, if the page register is H'00, the address register is H'FFFF, and the displacement is H'4000, the resulting address will be H'003FFF. Therefore, in the address extension technique using the page register, the usable addressing mode is also substantially limited.

【0006】このようなプログラムあるいはデータがペ
ージ境界を越えない様に常に注意して、ページレジスタ
の管理を行なうことは、いわゆる高級言語を用いてプロ
グラムした内容をCPUのいわゆる機械語によるプログ
ラム(オブジェクトプログラム)に自動的に変換するコ
ンパイラの作成上の大きな制約となり、コンパイラの設
計効率を低下させ、また、作成されるオブジェクトプロ
グラムの規模を著しく大きくし、さらにその結果とし
て、プログラムの実行時間も低下してしまう。
[0006] Managing the page register while always paying attention so that the program or data does not cross a page boundary is to convert the contents programmed using a so-called high-level language into a program (object) in a so-called machine language of a CPU. Program), which greatly reduces the design efficiency of the compiler, significantly increases the size of the object program created, and, as a result, reduces the execution time of the program. Resulting in.

【0007】また、64kバイト以下のメモリ空間で充
分な応用に対して、前記ページレジスタは、データレジ
スタとして使用できないために論理的並びに物理的に無
駄となってしまい、前記相対的に小さい製造費用で、相
対的に大きな処理性能を実現する目的に反してしまう。
In addition, for applications where a memory space of 64 Kbytes or less is sufficient, the page register cannot be used as a data register, so that it is logically and physically wasted, and the relatively small manufacturing cost. This defeats the purpose of realizing relatively large processing performance.

【0008】[0008]

【発明が解決しようとする課題】本発明の目的は、論理
的並びに物理的規模の増加を最小限にしつつ、連続的に
使用可能なアドレス空間を相対的に広げることができる
データ処理装置、例えば8ビットCPUを用いて64k
バイト以上のアドレス空間を連続的に使用できるデータ
処理装置を提供することにある。本発明の別の目的は、
上記目的に加えて更に、高級言語により作成されたプロ
グラムを効率よく実行できるデータ処理装置を提供する
ことにある。本発明の前記並びにそのほかの目的と新規
な特徴は、本明細書の記述および添付図面から明らかに
なるであろう。
SUMMARY OF THE INVENTION It is an object of the present invention to provide a data processing apparatus capable of relatively expanding a continuously usable address space while minimizing an increase in logical and physical scales. 64k using 8-bit CPU
An object of the present invention is to provide a data processing device capable of continuously using an address space of bytes or more. Another object of the invention is
Another object of the present invention is to provide a data processing device capable of efficiently executing a program created in a high-level language. The above and other objects and novel features of the present invention will become apparent from the description of the present specification and the accompanying drawings.

【0009】[0009]

【課題を解決するための手段】本願において開示される
発明のうち代表的なものの概要を簡単に説明すれば下記
の通りである。
The following is a brief description of an outline of a typical invention among the inventions disclosed in the present application.

【0010】すなわち、CPUのレジスタなどとして、
データの保持には全部、又は2分割して、或は2分割し
た一方を更に2分割して使用され、アドレスデータの保
持には全体又は一部分が使用される、所定ビット数の並
列情報を保持するデータ保持手段を採用する。例えば、
8ビットCPUの16ビット汎用レジスタに16ビット
の拡張レジスタを追加し、全体で32ビットのレジスタ
を一括して又はその一部分をアドレスレジスタとして使
用するとともに、2分割して16ビットデータレジスタ
とし、さらに16ビットデータレジスタの一方を8ビッ
トレジスタとして使用可能にする。
That is, as a register of the CPU,
All or part of the data is used to hold the data, or one of the two parts is used by further dividing it into two parts, and the whole or a part is used to hold the address data. Data holding means to be used. For example,
A 16-bit extension register is added to a 16-bit general-purpose register of an 8-bit CPU, and a 32-bit register is used collectively or a part of the 32-bit register as an address register. Make one of the 16-bit data registers available as an 8-bit register.

【0011】nビットデータの演算命令と2nビットデ
ータの演算命令とを考慮したとき、命令長を短縮してプ
ログラム効率を向上させるには、全体を2等分割して使
用される部分と、2等分割された一方を更に2等分割し
て使用される部分とを有するように個々のデータ保持手
段を構成すると共に、2等分割で利用される部分の全体
の数が、更に2等分割で利用される部分の全体の数と等
しくなるように、複数単位の前記データ保持手段を設け
るとよい。例えば、8ビットレジスタとして利用可能な
部分の数と、16ビットレジスタとして利用可能な部分
の数が同数になるように、全体で32ビットのレジスタ
を複数個設ける。
In consideration of an operation instruction of n-bit data and an operation instruction of 2n-bit data, in order to shorten the instruction length and improve the program efficiency, a part used by dividing the whole into two equal parts, Each data holding means is configured so as to have a portion that is used by equally dividing one of the equally divided portions, and the total number of portions used in the equally divided portion is further divided into two equal portions. It is preferable to provide a plurality of units of the data holding means so as to be equal to the total number of used parts. For example, a plurality of 32-bit registers are provided so that the number of parts usable as an 8-bit register is equal to the number of parts usable as a 16-bit register.

【0012】命令の単位は、データの単位の2倍長にす
ることができる。例えば、CPUのレジスタを32ビッ
トに拡張したとき、将来における4Gバイトのアドレス
空間の使用を考慮するときには、命令長を2バイト単位
として、24ビット絶対アドレス・ディスプレースメン
トを予約領域を含めて4バイトとする。更に、実行手段
及び制御手段の構成を単純化し、論理的並びに物理的な
規模の縮小に寄与するには、命令コード中の実効アドレ
ス指定部の最下位ビットを命令コード中のワードの最下
位ビットにすることが望ましい。
The instruction unit can be twice as long as the data unit. For example, when the CPU register is expanded to 32 bits, when considering the use of the 4 Gbyte address space in the future, the instruction length is set to 2 bytes, and the 24-bit absolute address displacement is set to 4 bytes including the reserved area. And Further, in order to simplify the configuration of the execution means and the control means and to contribute to the reduction of the logical and physical scale, the least significant bit of the effective address designating part in the instruction code is replaced with the least significant bit of the word in the instruction code. Is desirable.

【0013】レジスタのような前記データ保持手段のた
めの選択回路の論理的並びに物理的な規模を縮小するに
は、データ保持手段を指定する部分が命令の単位中の一
部分に固定された命令フォーマットを採用することが得
策である。更にその場合に、前記指定する部分は、複数
単位の中から所要のデータ保持手段を指定する領域と、
一つのデータ保持手段内の何れの部分かを指定する領域
とで構成するとよい。このとき、制御手段は、命令中で
指定されるデータサイズに基づいて、前記データ保持手
段内の何れの部分かを指定する領域が、2等分割された
何れの部分を指定するのか、更に2等分割された何れの
部分を指定するのかを決定することができる。
In order to reduce the logical and physical scale of a selection circuit for the data holding means such as a register, an instruction format in which a portion designating the data holding means is fixed to a part of an instruction unit It is advisable to adopt Further, in that case, the specified portion is an area for specifying a required data holding unit from a plurality of units,
It is preferable that the data storage unit be configured with an area for designating any part in one data holding unit. At this time, the control means determines, based on the data size specified in the instruction, which part of the data holding means specifies which part is divided into two equal parts, It is possible to determine which of the equally divided parts is to be designated.

【0014】データ保持手段などからのライトバッファ
手段の構成を単純化し、且つデータ処理装置の論理的並
びに物理的な規模を縮小するには、当該ライトバッファ
手段には、前記データ保持手段のビット数に一致するビ
ット数の第1の部分と、前記データ保持手段の2等分割
された領域のビット数に一致するビット数の第2の部分
とを設け、データライトの指示に基づいて、データ保持
手段の内容を一括して前記第1の部分に格納し、第1の
部分に格納したデータを、2回に分けて第2の部分に転
送して出力する様にするとよい。例えばデータ保持手段
が32ビットのとき、ライトバッファ手段は、第1の部
分を32ビットとし、第2の部分を16ビットとする。
In order to simplify the configuration of the write buffer means including the data holding means and to reduce the logical and physical scale of the data processing device, the write buffer means needs to have the number of bits of the data holding means. And a second portion having a number of bits matching the number of bits in the equally divided area of the data holding means, and storing the data based on a data write instruction. It is preferable that the contents of the means be stored in the first part in a lump, and the data stored in the first part be transferred to the second part in two divided steps and output. For example, when the data holding unit has 32 bits, the write buffer unit sets the first portion to 32 bits and the second portion to 16 bits.

【0015】データ保持手段などへのリードバッファ手
段の構成を単純化し、且つデータ処理装置の論理的並び
に物理的な規模を縮小するには、リードバッファ手段
は、前記データ保持手段のビット数に一致するビット数
を全体として備え、且つ、上位側と下位側に2等分割さ
れ、データリードの指示に基づいて、下位側はリード時
に常にリードデータが格納され、上位側は格納するかし
ないかが指定されるようにするとよい。例えば、リード
バッファ手段を32ビットのマスタ段と32ビットのス
レーブ段で構成し、下位側16ビットは、リード時は常
に入力し、上位側はロングワードデータの下位ワードリ
ード時には入力を禁止する構成にする。これにより、命
令コード中の24ビットの実効アドレス指定部とロング
ワードデータを同様に扱うことができるようになる。
In order to simplify the structure of the read buffer means for the data holding means and to reduce the logical and physical scale of the data processing device, the read buffer means must match the number of bits of the data holding means. The total number of bits to be read is divided into two equal parts, the upper side and the lower side. Based on the data read instruction, the lower side always stores read data at the time of reading, and the upper side determines whether or not to store the read data. It is better to be specified. For example, the read buffer means is composed of a 32-bit master stage and a 32-bit slave stage, and the lower 16 bits are always input when reading, and the upper side is prohibited from inputting when reading the lower word of long word data. To As a result, the 24-bit effective address designation part and the long word data in the instruction code can be handled in the same manner.

【0016】バスアクセスのための構成という点におい
てマイクロコンピュータ全体の論理的並びに物理的な規
模を縮小するには、アドレス空間中にバス幅などの異な
る状態でアクセスを行なう領域を有し、且つ、CPUの
他にリードライトを行なうデータ転送装置があるとき、
リードライトの制御は共通のバス制御装置で行ない、バ
ス制御装置がCPUまたは他のデータ転送装置のリード
バッファ手段,ライトバッファ手段の制御を行ない、さ
らに必要に応じて、CPUまたは他のデータ転送装置を
待機状態とするように構成する。
In order to reduce the logical and physical scale of the entire microcomputer in terms of the configuration for bus access, the address space has areas for accessing in different states such as the bus width in the address space, and When there is a data transfer device that performs read / write besides CPU,
The read / write control is performed by a common bus controller, and the bus controller controls the read buffer means and the write buffer means of the CPU or another data transfer device, and further, if necessary, the CPU or another data transfer device. In a standby state.

【0017】[0017]

【作用】上記した手段によれば、8ビットCPUの16
ビット汎用レジスタに16ビットの拡張レジスタを追加
して、全体で32ビットで構成されるようなデータ保持
手段は、データの保持には全部、又は2分割して、或は
2分割した一方を更に2分割して使用可能であり、この
ことが、ソフトウェア上並びにハードウェア上でのデー
タ保持手段の使い勝手を良好にし、ひいては、データ処
理装置の論理的並びに物理的な規模の縮小を達成する。
また、データ保持手段の全体又は一部分を使用したアド
レスデータの保持という点に関しては、リニアに利用可
能なアドレス空間の拡張を容易化し、また、ページレジ
スタによるアドレス空間拡張技術に比べてプログラムの
作成並びにコンパイルを容易化する。
According to the above-described means, 16 bits of the 8-bit CPU are used.
The data holding means, which is constructed by adding a 16-bit extension register to the bit general-purpose register and having a total of 32 bits, can be used to hold the data in whole or in two or in one of two parts. It can be used in two parts, which improves the usability of the data holding means on software and hardware, and achieves a reduction in the logical and physical size of the data processing device.
In addition, in terms of holding address data using the whole or a part of the data holding means, it is easy to expand the address space that can be used linearly. Make compilation easier.

【0018】[0018]

【実施例】本発明の実施例を次に掲げる項目にしたがっ
て順次説明していく。 〔1〕シングルチップマイクロコンピュータの全体 〔2〕8ビット拡張レジスタ+16ビット汎用レジスタ
構成例 〔3〕8ビット拡張レジスタ+16ビット汎用レジスタ
構成例の課題 〔4〕16ビット拡張レジスタ+16ビット汎用レジス
タ構成例 〔5〕16ビット拡張レジスタ+16ビット汎用レジス
タ構成例の利点 〔6〕アドレッシングモードと実効アドレス計算例 〔7〕主要アドレッシングモードの命令フォーマット 〔8〕CPUの内部ブロック
DESCRIPTION OF THE PREFERRED EMBODIMENTS Embodiments of the present invention will be sequentially described according to the following items. [1] Entire single-chip microcomputer [2] Configuration example of 8-bit extension register + 16-bit general-purpose register [3] Problem of configuration example of 8-bit extension register + 16-bit general-purpose register [4] Configuration example of 16-bit extension register + 16-bit general-purpose register [5] Advantages of 16-bit extension register + 16-bit general-purpose register configuration example [6] Addressing mode and effective address calculation example [7] Instruction format of main addressing mode [8] CPU internal block

〔9〕CPUによる命令実行及び例外処理の一例 〔10〕CPUの算術演算命令一覧 〔11〕命令の機能とアドレシッシングモードの組合せ
一覧 〔12〕レジスタの回路構成例 〔13〕汎用レジスタ及び拡張レジスタの動作例 〔14〕レジスタ選択部の構成例 〔15〕セレクタ回路部 〔16〕リードデータバッファ 〔17〕ライトデータバッファ 〔18〕アドレスバッファ 〔19〕マイクロコンピュータのアドレスマップ 〔20〕ミニマムモード、マキシマムモード 〔21〕シングルチップマイクロコンピュータの動作モ
ード 〔22〕DMA内蔵シングルチップマイクロコンピュー
タ 〔23〕CPUの変形例 〔24〕実施例の効果
[9] Example of instruction execution and exception processing by CPU [10] List of arithmetic operation instructions of CPU [11] List of combinations of instruction functions and addressing modes [12] Example of circuit configuration of registers [13] General-purpose registers and extensions Example of register operation [14] Configuration example of register selector [15] Selector circuit [16] Read data buffer [17] Write data buffer [18] Address buffer [19] Address map of microcomputer [20] Minimum mode Maximum mode [21] Single chip microcomputer operation mode [22] DMA built-in single chip microcomputer [23] Modification of CPU [24] Effects of the embodiment

【0019】〔1〕シングルチップマイクロコンピュー
タの全体 図1には本発明に係るデータ処理装置の第一実施例であ
るシングルチップマイクロコンピュータが示される。同
図に示されるシングルチップマイクロコンピュータ10
0は、全体の制御を司るCPU(中央処理装置)1、C
PU1の動作プログラムなどを保有するROM(リード
オンリメモリ)2、CPU1の作業領域並びにデータの
一時記憶領域などとして利用されるRAM(ランダムア
クセスメモリ)3、タイマ4、シリアルコミュニケーシ
ョンインタフェース(SCI)5、クロックパルスジェ
ネレータ68、及び、入出力ポート(IOP)61乃至
67などの機能ブロックから構成され、これらは内部バ
ス69で相互に接続されてなる。内部バス69は特に制
限はされないものの、アドレスバス、データバス、コン
トロールバスを含む。斯るシングルチップマイクロコン
ピュータ100は公知の半導体集積回路製造技術によっ
てシリコン基板のような1つの半導体基板上に形成され
ている。
[1] Overall Single-Chip Microcomputer FIG. 1 shows a single-chip microcomputer as a first embodiment of the data processing apparatus according to the present invention. Single-chip microcomputer 10 shown in FIG.
0 is a CPU (central processing unit) 1 for controlling the entire system, C
A ROM (read only memory) 2 holding an operation program of the PU 1, a RAM (random access memory) 3 used as a work area of the CPU 1 and a temporary storage area of data, a timer 4, a serial communication interface (SCI) 5, It comprises functional blocks such as a clock pulse generator 68 and input / output ports (IOPs) 61 to 67, which are interconnected by an internal bus 69. The internal bus 69 includes, but is not limited to, an address bus, a data bus, and a control bus. The single-chip microcomputer 100 is formed on one semiconductor substrate such as a silicon substrate by a known semiconductor integrated circuit manufacturing technique.

【0020】シングルチップマイクロコンピュータ10
0はクロックパルスジェネレータCPGの端子XTA
L,EXTALに接続される水晶発振子又は外部から入
力される外部クロックに基づいて生成される基準クロッ
クに同期して動作を行なう。この基準クロックの最小単
位をステートと呼ぶ。尚、図においてVss,Vccは
電源端子である。MODE1乃至MODE3はCPU1
に対するモード信号である。
Single-chip microcomputer 10
0 is the terminal XTA of the clock pulse generator CPG
The operation is performed in synchronization with a crystal oscillator connected to L, EXTAL or a reference clock generated based on an external clock input from the outside. The minimum unit of the reference clock is called a state. In the figure, Vss and Vcc are power supply terminals. MODE1 to MODE3 are CPU1
Is a mode signal corresponding to.

【0021】前記CPU1にリセット信号RESが加え
られると、シングルチップマイクロコンピュータ100
はリセット状態になる。このリセット状態を解除する
と、CPU1は、スタートアドレスをリードして、この
スタートアドレスから命令のリードを開始するリセット
例外処理を行なう。前記スタートアドレスは、特に制限
はされないものの0番地に格納されているものとする。
この後、CPU1は、特に制限はされないものの、逐
次、ROM2から命令を読出して解読し、その解読結果
に基づいてデータの処理或いはRAM3、タイマ4、S
CI5、入出力ポート61乃至67などとデータの転送
を行なう。すなわち、CPU1は、入出力ポート61乃
至67などから入力されるデータ、あるいはSCI5な
どから入力される指示を参照しつつ、ROM2に記憶さ
れている命令に基づいて処理を行ない、その結果に従っ
て入出力ポート61〜7、タイマ4などを使用して外部
に信号を出力し、各種機器の制御を行なうものである。
特に制限はされないものの、上記ROM2、RAM3、
タイマ4などのリード/ライトは、バイト(例えば8ビ
ット)/ワード(例えば16ビット)のいずれも2ステ
ートで実行するものとする。
When a reset signal RES is applied to the CPU 1, the single-chip microcomputer 100
Is reset. When the reset state is released, the CPU 1 reads a start address and performs a reset exception process for starting reading an instruction from the start address. The start address is stored at address 0, although there is no particular limitation.
Thereafter, although not particularly limited, the CPU 1 sequentially reads and decodes the instructions from the ROM 2 and processes the data or processes the data or the RAM 3, the timer 4, and the S based on the decoded result.
Data is transferred to the CI5, the input / output ports 61 to 67, and the like. That is, the CPU 1 performs processing based on the instructions stored in the ROM 2 while referring to data input from the input / output ports 61 to 67 or instructions input from the SCI 5 or the like. Signals are output to the outside using the ports 61 to 7 and the timer 4 to control various devices.
Although not particularly limited, the ROM 2, RAM 3,
The reading / writing of the timer 4 and the like is executed in two states of both byte (for example, 8 bits) / word (for example, 16 bits).

【0022】かかるCPU1の命令の最小単位は2バイ
トとされ、また、命令または16ビットデータをメモリ
に配置する場合には、偶数から始まる連続した2バイト
の領域に配置するものとされている。
The minimum unit of the instruction of the CPU 1 is 2 bytes. When the instruction or 16-bit data is arranged in the memory, it is arranged in a continuous 2-byte area starting from an even number.

【0023】〔2〕8ビット拡張レジスタ+16ビット
汎用レジスタ構成例 図2には前記CPU1が内蔵するレジスタの第1の構成
例が示される。CPU1はそれぞれ16ビット長の8本
の汎用レジスタR0L,R0H〜R7L,R7Hと、そ
れぞれ8ビット長の8本の拡張レジスタE0〜E7と、
24ビット長のプログラムカウンタPCと、8ビット長
のコンディションコードレジスタCCRとを有してい
る。汎用レジスタR0L,R0H〜R7L,R7Hは、
特に制限はされないものの、上位8ビットと下位8ビッ
トを独立させて8ビット長のデータを格納することも、
上位・下位を連結して16ビット長のデータを格納する
こともできる。
[2] Configuration Example of 8-bit Extension Register + 16-bit General-purpose Register FIG. 2 shows a first configuration example of a register incorporated in the CPU 1. The CPU 1 has eight general-purpose registers R0L, R0H to R7L, R7H each having a 16-bit length, eight extension registers E0 to E7 each having an 8-bit length,
It has a 24-bit program counter PC and an 8-bit condition code register CCR. The general-purpose registers R0L, R0H to R7L, R7H are
Although there is no particular limitation, it is also possible to store 8-bit data by making upper 8 bits and lower 8 bits independent.
The 16-bit data can also be stored by connecting the upper and lower bits.

【0024】汎用レジスタR0L,R0H〜R7L,R
7Hをアドレスレジスタとして使用する場合は、汎用レ
ジスタが保有する16ビットをアドレスの下位16ビッ
トとし、対応する拡張レジスタが保有する8ビットをア
ドレスの上位8ビットとして、合計24ビットのアドレ
スを生成するものである。換言すれば、CPU1は最大
限24ビットのアドレスで規定される連続的なアドレス
空間を利用することができる。さらにこの24ビットの
アドレスを種々のモードで修飾することができるように
なっている。例えば、前記24ビットアドレスにディス
プレースメントを加算する、定数倍をする、あるいは他
のレジスタの内容を加算するといったことを行うことが
できる。この修飾を行なう場合、下位16ビットの計算
にて、キャリまたはボローが発生した場合には、上位8
ビットに桁上げまたは桁下げを行なう。この結果をアド
レスレジスタに保持させる場合には同時に上位8ビット
の結果も、対応する拡張レジスタに保持させる。
General purpose registers R0L, R0H to R7L, R
When 7H is used as an address register, a 16-bit address held by the general-purpose register is used as the lower 16 bits of the address, and the 8 bits held by the corresponding extension register are used as the upper 8 bits of the address, thereby generating a 24-bit address in total. Things. In other words, the CPU 1 can use a continuous address space defined by a maximum of 24-bit addresses. Further, the 24-bit address can be modified in various modes. For example, displacement can be added to the 24-bit address, multiplied by a constant, or the contents of another register can be added. When performing this modification, if a carry or borrow occurs in the calculation of the lower 16 bits, the upper 8 bits
Carry or carry bits. When this result is held in the address register, the result of the upper 8 bits is also held in the corresponding extension register at the same time.

【0025】拡張レジスタE0〜E7は汎用レジスタ同
様にデータレジスタとしても使用できる。すなわち、拡
張レジスタ同士、及び拡張レジスタと汎用レジスタとの
間でデータの演算を行なうことができるようになってい
る。
The extension registers E0 to E7 can be used as data registers as well as general-purpose registers. That is, data operations can be performed between extension registers and between the extension register and the general-purpose register.

【0026】プログラムカウンタPCは24ビットのカ
ウンタであり、CPU1が次に実行する命令のアドレス
を示している。コンディションコードレジスタCCRは
割込みマスクビット(I)、キャリフラグ(C)、ゼロ
フラグ(Z)、ネガティブフラグ(N)、及びオーバフ
ローフラグ(V)を含んでいる。割込みマスクビットI
は1のとき、CPU1を割込み禁止状態とし、0のとき
割込み許可状態とする。その他のフラグは演算の結果な
どを反映する。
The program counter PC is a 24-bit counter and indicates the address of an instruction to be executed next by the CPU 1. The condition code register CCR includes an interrupt mask bit (I), a carry flag (C), a zero flag (Z), a negative flag (N), and an overflow flag (V). Interrupt mask bit I
When 1 is set, the CPU 1 is set to the interrupt disabled state, and when 0, the CPU 1 is set to the interrupt enabled state. Other flags reflect the result of the operation and the like.

【0027】図3には汎用レジスタR0L,R0H〜R
7L,R7Hと拡張レジスタE0〜E7のデータ構成例
が示される。CPU1が扱うバイトデータは、汎用レジ
スタの上位RiH(i=0,1,…,7)または下位R
iL、或は拡張レジスタEiに格納される。汎用レジス
タの上位RiHを使用する場合、ビット15がデータの
最上位ビット(MSB)に、ビット8が最下位ビット
(LSB)にそれぞれ対応する。同様に、汎用レジスタ
の下位RiLを使用する場合、ビット7が最上位ビット
に、ビット0が最下位ビットに対応する。拡張レジスタ
Eiをバイトデータに利用する場合には、ビット23が
最上位ビットに、ビット16が最下位ビットに対応す
る。ワードデータは汎用レジスタRi(RiL及びRi
H)に格納される。このときビット15がデータの最上
位ビットに、ビット0が最下位ビットにそれぞれ対応す
る。アドレスデータは拡張レジスタEiと汎用レジスタ
RiL,RiHに格納される。拡張レジスタEiのビッ
ト7がアドレスデータの最上位ビットに、汎用レジスタ
RiLのビット0が最下位ビットにそれぞれ対応され
る。尚、CPU1は、これらの他に、1ビットデータ、
あるいは2進化10進数データなどを扱うが、これらは
本発明に直接は関係しないので詳細な説明は省略する。
FIG. 3 shows general-purpose registers R0L, R0H to R0R.
7L, R7H and data configuration examples of extension registers E0 to E7 are shown. The byte data handled by the CPU 1 is the upper RiH (i = 0, 1,..., 7) or lower R
iL or the extension register Ei. When using the upper RiH of the general-purpose register, bit 15 corresponds to the most significant bit (MSB) of the data, and bit 8 corresponds to the least significant bit (LSB). Similarly, when using the lower RiL of the general-purpose register, bit 7 corresponds to the most significant bit, and bit 0 corresponds to the least significant bit. When the extension register Ei is used for byte data, bit 23 corresponds to the most significant bit, and bit 16 corresponds to the least significant bit. Word data is stored in general-purpose registers Ri (RiL and RiL).
H). At this time, bit 15 corresponds to the most significant bit of the data, and bit 0 corresponds to the least significant bit. The address data is stored in the extension register Ei and the general-purpose registers RiL and RiH. Bit 7 of the extension register Ei corresponds to the most significant bit of the address data, and bit 0 of the general-purpose register RiL corresponds to the least significant bit. It should be noted that the CPU 1 also outputs 1-bit data,
Alternatively, binary-coded decimal data and the like are handled, but they are not directly related to the present invention, and therefore detailed description is omitted.

【0028】図4にはRAM3,ROM2などのメモリ
のデータ構成例が示される。特に制限はされないもの
の、メモリはバイト単位にアドレスが付けられている。
CPU1が扱うバイトデータは、メモリの各アドレスに
格納される。ワードデータはメモリの偶数アドレスと奇
数アドレスを連結して格納される。偶数アドレスのビッ
ト7がデータの最上位ビットに、奇数アドレスのビット
0が最下位ビットにそれぞれ対応する。アドレスデータ
は偶数アドレスから始まる4バイトのアドレスに格納さ
れる。先頭の偶数アドレスの1バイトは将来の拡張用に
システム上予約されている。次の奇数アドレスのビット
7がアドレスデータの最上位ビットに、4バイトめの奇
数アドレスのビット0が最下位ビットにそれぞれ対応す
る。
FIG. 4 shows an example of a data configuration of a memory such as the RAM 3 and the ROM 2. Although not particularly limited, the memory is addressed in byte units.
The byte data handled by the CPU 1 is stored at each address of the memory. Word data is stored by connecting even addresses and odd addresses of the memory. Bit 7 of the even address corresponds to the most significant bit of the data, and bit 0 of the odd address corresponds to the least significant bit. Address data is stored in a 4-byte address starting from an even address. One byte of the leading even address is reserved on the system for future expansion. Bit 7 of the next odd address corresponds to the most significant bit of the address data, and bit 0 of the fourth byte of the odd address corresponds to the least significant bit.

【0029】〔3〕8ビット拡張レジスタ+16ビット
汎用レジスタ構成例の課題 上記8ビットCPU1の16ビット汎用レジスタRiに
拡張レジスタEiを追加し、追加された拡張レジスタを
含めた全体をアドレスデータとして一括把握してメモリ
などをアクセス可能にし、このときのアドレス演算では
拡張レジスタ及びこれに対応する汎用レジスタの双方で
一単位のアドレスとして把握して、アドレス演算で発生
するキャリーやボローを処理するから、16ビットのア
ドレスレジスタを用いる場合に比べてリニアに利用可能
なアドレス空間を64kバイトから最大限16Mバイト
まで拡張することができる。ただし、その場合にも以下
の課題のあることが本発明者によって明らかにされてい
る。
[3] Problems of 8-bit extension register + 16-bit general-purpose register configuration example An extension register Ei is added to the 16-bit general-purpose register Ri of the 8-bit CPU 1, and the entirety including the added extension register is collectively used as address data. It makes it possible to access the memory etc. by grasping it, and in this case the address operation grasps as a unit address in both the extension register and the corresponding general-purpose register and processes the carry and borrow generated in the address operation, The address space that can be used linearly can be expanded from 64 kbytes to a maximum of 16 Mbytes as compared with the case where a 16-bit address register is used. However, in this case, the present inventors have clarified that there are the following problems.

【0030】第一に、上記レジスタ構成において、その
全体では8ビットレジスタとして24本、16ビットレ
ジスタとして8本、或は24ビットレジスタとして8本
を使用できるが、例えば、8ビットの加算を行なう場
合、加算数(ソースレジスタ)と被加算数(ディスティ
ネーションレジスタ)の指定にそれぞれ、5ビットを要
してしまう。命令長を2バイト単位としたために、8ビ
ット演算については、オペレーションの指定を6ビット
としなければ、最小命令長とならない。また、16ビッ
ト演算については、レジスタの指定は3ビットでよく、
この点において前記8ビット演算と命令フォーマットを
共通化するのは困難若しくは得策ではない。また、24
本のレジスタの指定に5ビットを使用することには無駄
がある。すなわち、5ビットあれば本来32本のレジス
タから所望のレジスタを指定することができる。
First, in the above register configuration, 24 registers can be used as an 8-bit register, 8 registers can be used as a 16-bit register, or 8 registers can be used as a 24-bit register. For example, 8-bit addition is performed. In this case, each of the addition number (source register) and the augend (destination register) requires 5 bits. Since the instruction length is in units of 2 bytes, the minimum instruction length does not become the minimum instruction length for the 8-bit operation unless the operation specification is 6 bits. For a 16-bit operation, the register specification may be 3 bits,
In this regard, it is not difficult or advisable to share the instruction format with the 8-bit operation. Also, 24
It is wasteful to use 5 bits to specify a book register. That is, if there are five bits, a desired register can be specified from the originally 32 registers.

【0031】第二に、24ビット長のデータを、メモリ
に配置した場合、図4で説明したような予約領域が必要
であり、メモリの利用効率がよくない。予約領域を削除
すると、16ビットデータと24ビットデータをメモリ
上に混在させるのが困難になる。少なくとも、16ビッ
トデータをメモリに配置する場合に偶数から始まる連続
した2バイトの領域に配置する様に限定し、CPUの内
部構成を単純化し、論理的並びに物理的規模の縮小し、
製造費用の削減、そして動作速度の向上の実現を図る目
的を損なってしまう。
Second, in the case where 24-bit data is arranged in a memory, a reserved area as described with reference to FIG. 4 is required, and the utilization efficiency of the memory is not good. If the reserved area is deleted, it becomes difficult to mix 16-bit data and 24-bit data on the memory. At least, when arranging 16-bit data in a memory, it is limited to arranging it in a continuous 2-byte area starting from an even number, simplifying the internal configuration of the CPU, reducing the logical and physical scale,
The purpose of reducing the manufacturing cost and improving the operation speed is impaired.

【0032】第三に、24ビット長のデータはアドレス
として使用する以外には、奇数バイト長であるためデー
タとしては取扱いが困難である。前記の通り、従来のマ
イクロコンピュータは、扱うデータが8ビットまたは1
6ビットであって、これら従来のマイクロコンピュータ
と共に使用され、これらがワードデータを格納できる場
合、これらからデータを転送するときに、ワードデータ
2個をCPU1のレジスタ1本には格納できず、また、
これらにワードデータを転送するときには、CPU1の
レジスタ1本の内容は16ビットと8ビットに分割させ
なければならないためである。また、前記のコンパイラ
を作成する場合にも、いわゆるホストコンピュータにつ
いても前記同様に24ビットデータを取扱うことが困難
であって、コンパイラの設計効率並びに性能を低下させ
てしまうことが考えられる。
Third, except for using 24-bit data as an address, it is difficult to handle as data because it has an odd-byte length. As described above, in the conventional microcomputer, data to be handled is 8 bits or 1 bit.
If it is 6 bits and is used with these conventional microcomputers and can store word data, when transferring data from them, two word data cannot be stored in one register of the CPU 1, and ,
This is because, when word data is transferred to them, the contents of one register of the CPU 1 must be divided into 16 bits and 8 bits. Also, when the above-mentioned compiler is created, it is difficult for a so-called host computer to handle 24-bit data in the same manner as described above, which may reduce the design efficiency and performance of the compiler.

【0033】〔4〕16ビット拡張レジスタ+16ビッ
ト汎用レジスタ構成例 上記項目〔3〕で説明した課題に対処できるレジスタ構
成例をさらに説明する。
[4] Example of 16-bit extension register + 16-bit general-purpose register configuration An example of a register configuration that can cope with the problem described in the above item [3] will be further described.

【0034】図5には前記CPU1が内蔵するレジスタ
の第2の構成例が示される。CPU1はそれぞれ16ビ
ット長の8本の汎用レジスタR0L,R0H〜R7L,
R7Hと、それぞれ16ビット長の8本の拡張レジスタ
E0〜E7と、24ビット長のプログラムカウンタPC
と、8ビット長のコンディションコードレジスタCCR
とを有している。汎用レジスタR0L,R0H〜R7
L,R7Hは、特に制限はされないものの、上位8ビッ
トと下位8ビットを独立させて8ビット長のデータを格
納することも、上位・下位を連結して16ビット長のデ
ータを格納することもできる。拡張レジスタEiは、8
ビットに分割してそれぞれ独立的に使用することはでき
ない。
FIG. 5 shows a second example of the configuration of the register incorporated in the CPU 1. The CPU 1 has eight general-purpose registers R0L, R0H to R7L each having a 16-bit length.
R7H, eight extension registers E0 to E7 each having a length of 16 bits, and a program counter PC having a length of 24 bits.
And an 8-bit condition code register CCR
And General registers R0L, R0H to R7
Although not particularly limited, L and R7H can store 8-bit data by making upper 8 bits and lower 8 bits independent, or store 16-bit data by connecting upper and lower bits. it can. The extension register Ei is 8
It cannot be divided into bits and used independently.

【0035】汎用レジスタRiL,RiHをアドレスレ
ジスタとして使用する場合は、汎用レジスタRiH,R
iLが保有する16ビットをアドレスの下位16ビット
とし、対応する拡張レジスタEiの内容をアドレスの上
位16ビットとして合計32ビット、または拡張レジス
タEiの上位8ビットを無視して24ビットのアドレス
を生成するものである。CPU1は24ビット又は32
ビットのアドレスで規定される連続的なアドレス空間を
利用することができる。さらにこの32ビットまたは2
4ビットのアドレスを種々修飾することができること
は、前述の通りであり、この修飾を行なう場合、下位1
6ビットの計算にて、キャリまたはボローが発生した場
合には、上位側の拡張レジスタEiに対して桁上げまた
は桁下げが行われる。尚、以下の説明では、アドレスデ
ータは24ビットとする。これに応じて図5におけるプ
ログラムカウンタPCのビット長は24ビットとされて
いる。プログラムカウンタPCのビット長を32ビット
にしておいてもよい。
When the general-purpose registers RiL and RiH are used as address registers, the general-purpose registers RiH and R
The 16 bits held by the iL are set to the lower 16 bits of the address, and the contents of the corresponding extension register Ei are set to the upper 16 bits of the address. Is what you do. CPU1 is 24 bits or 32
A continuous address space defined by bit addresses can be used. Furthermore, this 32 bits or 2
As described above, the 4-bit address can be variously modified.
When a carry or a borrow occurs in the calculation of 6 bits, carry-up or carry-down is performed on the upper-side extension register Ei. In the following description, the address data is 24 bits. Accordingly, the bit length of the program counter PC in FIG. 5 is set to 24 bits. The bit length of the program counter PC may be 32 bits.

【0036】拡張レジスタE0〜E7はデータレジスタ
としては16ビットレジスタとして汎用レジスタ同様に
使用できる。すなわち、拡張レジスタ同士、及び拡張レ
ジスタと汎用レジスタとの間で、データの演算を行なう
ことができるようになっている。尚、コンディションコ
ードレジスタCCRは前記同様であるのでその詳細な説
明は省略する。
The extension registers E0 to E7 can be used as data registers as 16-bit registers like general-purpose registers. That is, data operations can be performed between extension registers and between extension registers and general-purpose registers. Note that the condition code register CCR is the same as described above, and a detailed description thereof will be omitted.

【0037】図6には汎用レジスタR0L,R0H〜R
7L,R7Hと拡張レジスタE0〜E7のデータ構成例
が示される。CPU1が扱うバイトデータは、汎用レジ
スタの上位RiH(i=0,1,…,7)または下位R
iLに格納される。ワードデータは汎用レジスタRi
(RiH,RiL)または拡張レジスタEiに格納され
る。このときビット15がデータの最上位ビットに、ビ
ット0が最下位ビットにそれぞれ対応する。32ビット
のロングワードデータは汎用レジスタRi及び拡張レジ
スタEiに格納される。24ビットのアドレスデータは
ロングワードデータとして拡張レジスタEiと汎用レジ
スタRiに格納される。このとき拡張レジスタEiの上
位8ビットは予約領域とされる。尚、予約された8ビッ
トと24ビットのアドレスデータを併せて単にロングワ
ードアドレスデータとも称する。
FIG. 6 shows general-purpose registers R0L, R0H to R0R.
7L, R7H and data configuration examples of extension registers E0 to E7 are shown. The byte data handled by the CPU 1 is the upper RiH (i = 0, 1,..., 7) or lower R
stored in iL. Word data is stored in general-purpose register Ri.
(RiH, RiL) or the extension register Ei. At this time, bit 15 corresponds to the most significant bit of the data, and bit 0 corresponds to the least significant bit. The 32-bit long word data is stored in the general-purpose register Ri and the extension register Ei. The 24-bit address data is stored as longword data in the extension register Ei and the general-purpose register Ri. At this time, the upper 8 bits of the extension register Ei are reserved. The reserved 8-bit and 24-bit address data are also simply referred to as long word address data.

【0038】図7にはRAM3,ROM2などのメモリ
のデータ構成例が示される。上記同様にメモリはバイト
単位にアドレスが付けられている。CPU1が扱うバイ
トデータは、メモリの各アドレスに格納される。ワード
データはメモリの偶数アドレスと奇数アドレスを連結し
て格納される。偶数アドレスのビット7がデータの最上
位ビットに、奇数アドレスのビット0が最下位ビットに
それぞれ対応する。ロングワードデータは偶数アドレス
から始まる4バイトのアドレスに格納される。先頭の偶
数アドレスのビット7がデータの最上位ビットに、4バ
イトめの奇数アドレスのビット0が最下位ビットにそれ
ぞれ対応する。
FIG. 7 shows an example of a data configuration of a memory such as the RAM 3 and the ROM 2. As described above, the memory is assigned an address in byte units. The byte data handled by the CPU 1 is stored at each address of the memory. Word data is stored by connecting even addresses and odd addresses of the memory. Bit 7 of the even address corresponds to the most significant bit of the data, and bit 0 of the odd address corresponds to the least significant bit. The long word data is stored at a 4-byte address starting from an even address. Bit 7 of the first even address corresponds to the most significant bit of the data, and bit 0 of the fourth byte of the odd address corresponds to the least significant bit.

【0039】〔5〕16ビット拡張レジスタ+16ビッ
ト汎用レジスタ構成例の利点 第一に、上記レジスタ構成において、その全体では8ビ
ットレジスタとして16本、16ビットレジスタとして
16本、24ビットレジスタとして8本を使用できる。
8ビット演算及び16ビット演算のいずれについても、
レジスタの指定は4ビットとなり、命令フォーマットを
共通化することができる。また、16本のレジスタから
所望のレジスタを指定するのに4ビットを使用するの
で、その指定のための情報ビット数に無駄がない。
[5] Advantages of 16-bit extension register + 16-bit general-purpose register configuration example First, in the above-described register configuration, 16 registers are used as an 8-bit register, 16 registers are used as a 16-bit register, and 8 registers are used as a 24-bit register. Can be used.
For both 8-bit and 16-bit operations,
The register specification is 4 bits, and the instruction format can be shared. Also, since 4 bits are used to specify a desired register from 16 registers, there is no waste in the number of information bits for the specification.

【0040】第二に、ロングワードデータを、メモリに
配置した場合、予約領域が必要でなくなり、アドレスが
24ビット長でよい場合には、前記同様に無駄が生じて
しまうものの、少なくとも、その他のロングワードデー
タを格納する場合には、無駄を生じない。
Secondly, when long word data is arranged in a memory, a reserved area is not required. When the address has a 24-bit length, waste is generated as described above. When storing long word data, no waste occurs.

【0041】第三に、ロングワードデータはアドレスと
して使用する以外にも、データとしては取扱いが容易で
ある。従来のマイクロコンピュータとデータの転送を行
なう場合なども容易であり、無駄も生じない。また、コ
ンパイラのホストコンピュータについても同様であっ
て、コンパイラの設計効率並びに性能を低下させてしま
うことがない。
Third, in addition to using long word data as addresses, it is easy to handle as data. It is easy to transfer data to and from a conventional microcomputer, and no waste occurs. The same applies to the host computer of the compiler, and the design efficiency and performance of the compiler are not reduced.

【0042】第四には、図5のレジスタ構成は、図2の
レジスタ構成に比較して、レジスタのビット数が約4/
3倍となってしまい、CPU1の論理的並びに物理的規
模を増加させてしまうと考えられるかもしれない。これ
に対しては、前述の通りメモリの利用効率が向上するこ
と、また、コンパイラの性能向上によって同一の処理に
対しても、プログラムの規模を小さくできる。これによ
って、ROMなどのメモリの容量及び物理的な規模を小
さくすることができ、シングルチップマイクロコンピュ
ータ全体としての物理的な規模の縮小は妨げられない。
したがって、CPUの内部構成を単純化し、論理的並び
に物理的な規模を縮小し、さらに、製造費用の削減及び
動作速度の向上が実現される。尚、以下の説明は図5の
レジスタ構成を採用した場合の説明とする。
Fourth, the register configuration of FIG. 5 has a register bit number of about 4 /
It may be considered that the size of the CPU 1 is tripled and the logical and physical scales of the CPU 1 are increased. On the other hand, as described above, the use efficiency of the memory is improved, and the scale of the program can be reduced for the same processing by improving the performance of the compiler. As a result, the capacity and physical scale of a memory such as a ROM can be reduced, and reduction in the physical scale of the entire single-chip microcomputer is not hindered.
Therefore, the internal configuration of the CPU is simplified, the logical and physical scales are reduced, and the manufacturing cost is reduced and the operation speed is improved. The following description is for the case where the register configuration of FIG. 5 is adopted.

【0043】〔6〕アドレッシングモードと実効アドレ
ス計算例 図8乃至図10にはCPU1のアドレッシングモードと
実効アドレスの計算手法の一例が示される。
[6] Example of Addressing Mode and Effective Address Calculation FIGS. 8 to 10 show an example of the addressing mode of the CPU 1 and a method of calculating the effective address.

【0044】図8の(1)に示されるレジスタ間接では
命令コード中にレジスタを指定する部分を含み、この命
令コードで指定されたレジスタとこれに対応する拡張レ
ジスタの内容の合計24ビットをアドレスとしてメモリ
上のアドレスを指定する。アドレスは24ビットでよい
ため、上位8ビットは無視する。
In the register indirect shown in (1) of FIG. 8, an instruction code includes a portion for specifying a register, and a total of 24 bits of the register specified by the instruction code and the contents of the extension register corresponding to the register are addressed. Specifies the address on the memory. Since the address may be 24 bits, the upper 8 bits are ignored.

【0045】図8の(2),(3)に示されるディスプ
レースメント付レジスタ間接は、上記レジスタ間接と同
様に得られた24ビットのアドレスに、命令コード中に
含まれるディスプレースメントを加算した結果をアドレ
スとしてメモリ上のアドレスを指定する。加算結果はア
ドレスの指定のみに使用され、拡張レジスタEi及び汎
用レジスタRiの内容には反映されない。特に制限はさ
れないものの、ディスプレースメントは24ビットまた
は16ビットであり、16ビットディスプレースメント
は加算する場合には上位16ビットは符号拡張される。
すなわち、ディスプレースメントの上位16ビットは1
6ビットディスプレースメントのビット15と同じ値で
あるとして加算が行われる。この場合、24ビットディ
スプレースメントの上位8ビットは、命令が2バイト単
位であること並びに将来の拡張にそなえて、予約領域を
併せて、32ビットのディスプレースメント指定部を命
令コードに含ませている。
The register indirect with displacement shown in (2) and (3) of FIG. 8 is the result of adding the displacement included in the instruction code to the 24-bit address obtained in the same manner as the register indirect. Is used to specify an address on the memory. The addition result is used only for specifying the address, and is not reflected in the contents of the extension register Ei and the general-purpose register Ri. Although not particularly limited, the displacement is 24 bits or 16 bits, and when adding the 16-bit displacement, the upper 16 bits are sign-extended.
That is, the upper 16 bits of the displacement are 1
The addition is performed assuming that the value is the same as the bit 15 of the 6-bit displacement. In this case, in the upper 8 bits of the 24-bit displacement, a 32-bit displacement designating section is included in the instruction code together with the reserved area, in consideration of the fact that the instruction is in units of 2 bytes and future expansion. .

【0046】図9の(4)に示されるポストインクリメ
ントレジスタ間接は、前記レジスタ間接と同様に得られ
た24ビットのアドレスでメモリ上のアドレスを指定す
る。その後、このアドレスに1または2または4を加算
し、その加算結果が拡張レジスタ・汎用レジスタに格納
される。メモリ上のバイトデータを指定する場合1が、
ワードデータを指定する場合2が、アドレスデータを指
定する場合4が、それぞれ加算される。加算結果の上位
8ビットも拡張レジスタに格納される。
The post-increment register indirect shown in (4) of FIG. 9 specifies an address on the memory by a 24-bit address obtained in the same manner as the register indirect. Thereafter, 1 or 2 or 4 is added to this address, and the addition result is stored in the extension register / general-purpose register. When specifying byte data in memory, 1
When word data is specified, 2 is added, and when address data is specified, 4 is added. The upper 8 bits of the addition result are also stored in the extension register.

【0047】図10に示される絶対アドレスは命令コー
ド中に含まれる、8ビット、16ビットまたは24ビッ
トの絶対アドレスをアドレスとしてメモリ上のアドレス
を指定する。8ビット絶対アドレスは、上位16ビット
が1拡張される。すなわちアドレスのビット23〜8は
全ビット1とされる。従って使用可能なアドレスはH’
FFFF00〜H’FFFFFFの256バイトであ
る。また、16ビット絶対アドレスは、上位8ビットが
符号拡張される。すなわち、16ビット絶対アドレスの
ビット15が0であればアドレスのビット23〜16は
全ビット0とされ、ビット15が1であればアドレスの
ビット23〜16は全ビット1とされる。従って使用可
能なアドレスはH’000000〜H’007FFF及
びH’FF8000〜H’FFFFFFの64kバイト
である。
The absolute address shown in FIG. 10 specifies an address on the memory using an 8-bit, 16-bit or 24-bit absolute address included in the instruction code as an address. The upper 16 bits of the 8-bit absolute address are extended by one. That is, bits 23 to 8 of the address are all 1s. Therefore, the usable address is H '
FFFF00 to H'FFFFFF are 256 bytes. The upper 8 bits of the 16-bit absolute address are sign-extended. That is, if bit 15 of the 16-bit absolute address is 0, bits 23 to 16 of the address are all 0s, and if bit 15 is 1, all bits 23 to 16 of the address are 1s. Therefore, usable addresses are 64 kbytes of H'000000 to H'007FFF and H'FF8000 to H'FFFFFF.

【0048】図9の(5)に示されるプリデクリメント
レジスタ間接は、前記レジスタ間接と同様に得られた2
4ビットのアドレスから1または2または4を減算した
結果の24ビットのアドレスでメモリ上のアドレスを指
定する。その後、その減算結果が拡張レジスタ・汎用レ
ジスタに格納される。メモリ上のバイトデータを指定す
る場合1が、ワードデータを指定する場合2が、アドレ
スデータを指定する場合4が、それぞれ減算される。前
記同様に、アドレスが24ビットでよい場合には、特に
制限はされないものの、減算結果の上位8ビットも拡張
レジスタに格納される。
The pre-decrement register indirect shown in (5) of FIG. 9 is obtained in the same manner as the register indirect.
An address on the memory is specified by a 24-bit address obtained by subtracting 1 or 2 or 4 from the 4-bit address. Thereafter, the result of the subtraction is stored in the extension register / general-purpose register. When specifying byte data on the memory, 1 is subtracted, when word data is specified, 2 is specified, and when address data is specified, 4 is subtracted. As described above, when the address may be 24 bits, the upper 8 bits of the subtraction result are stored in the extension register, although there is no particular limitation.

【0049】図9の(6)に示されるプログラムカウン
タ相対は、プログラムカウンタの内容の24ビットのア
ドレスに命令コード中に含まれるディスプレースメント
を加算した結果をアドレスとしてメモリ上のアドレスを
指定する。加算結果はプログラムカウンタに格納され
る。特に制限はされないものの、ディスプレースメント
は16ビットまたは8ビットであり、これらのディスプ
レースメントは加算する場合には上位8ビットまたは1
6ビットは符合拡張される。すなわち、ディスプレース
メントの上位8ビットは16ビットディスプレースメン
トのビット15と、または上位16ビットは8ビットデ
ィスプレースメントのビット7と同じ値であるとみなし
て加算が行われる。プログラムカウンタ相対は分岐命令
のみで使用される。
The program counter relative shown in (6) of FIG. 9 designates an address on the memory as a result of adding a displacement included in the instruction code to a 24-bit address of the contents of the program counter. The addition result is stored in the program counter. Although not particularly limited, the displacement is 16 bits or 8 bits, and when these displacements are added, the upper 8 bits or 1 bit is added.
Six bits are sign-extended. That is, the addition is performed assuming that the upper 8 bits of the displacement have the same value as bit 15 of the 16-bit displacement, or the upper 16 bits have the same value as bit 7 of the 8-bit displacement. Program counter relative is used only for branch instructions.

【0050】CPU1は、上記の他にイミディエイト、
レジスタ直接などのアドレッシングモードを実行する
が、これらは本発明に直接は関係しないので詳細な説明
は省略する。
In addition to the above, the CPU 1
Addressing modes such as register direct are executed, but since these are not directly related to the present invention, detailed description is omitted.

【0051】〔7〕主要アドレッシングモードの命令フ
ォーマット 図11乃至図18には主要なアドレッシングモードの命
令の命令フォーマットが示される。それぞれの命令のフ
ォーマットは、各命令の機能及びアドレッシングモード
を示すためのオペコード部opを有し、そのオペコード
部opのオペレーションコードに応じて、使用するレジ
スタを指定するためのレジスタ指定部(rs,rd,e
rs,erd)、絶対アドレス(aa)、ディスプレー
スメント(d)、又はイミディエイト(xx)を含んで
いる。命令フォーマットは2バイト単位とされ、レジス
タ指定部は、命令コードの第一ワードのビット7〜ビッ
ト4、ビット3〜ビット0、又は特殊形としてビット1
1〜ビット8に含まれる。前記レジスタ指定部rsはバ
イト又はワードサイズのソースレジスタを指定し、前記
レジスタ指定部rdはバイト又はワードサイズのディス
ティネーションレジスタを指定する。指定すべきレジス
タがバイトサイズであかワードサイズであるかはオペコ
ード部のオペレーションコードによって決定される。す
なわち、16ビットの演算を伴うオペレーションコード
に付随する場合、レジスタ指定部rs,rdの下位側3
ビットは、8本のレジスタR0〜R7の何れであるかを
指定し、指定されたレジスタのうち拡張レジスタを利用
するのか汎用レジスタを利用するのかは、当該レジスタ
指定部の残りの上位側1ビットによって指定される。8
ビットの演算を伴うオペレーションコードに付随する場
合、レジスタ指定部rs,rdの下位側3ビットは、8
本のレジスタR0〜R7の何れであるかを指定し、指定
されたレジスタのうち汎用レジスタの上位側を利用する
のか下位側を利用するのかは、当該レジスタ指定部の残
りの上位側1ビットによって決定される。レジスタ指定
部ersは、ロングワードサイズのソースレジスタを指
定し、前記レジスタ指定部erdはロングワードサイズ
のディスティネーションレジスタを指定する。4ビット
確保されているレジスタ指定部ers,erdの最上位
1ビットは命令デコードに際して実質的に無視される。
[7] Instruction Format in Main Addressing Mode FIGS. 11 to 18 show instruction formats of instructions in the main addressing mode. The format of each instruction has an operation code part op for indicating the function and addressing mode of each instruction, and a register specification part (rs, rs,) for specifying a register to be used according to the operation code of the operation code part op. rd, e
rs, erd), absolute address (aa), displacement (d), or immediate (xx). The instruction format is in units of 2 bytes, and the register designating section stores bits 7 to 4 and bits 3 to 0 of the first word of the instruction code or bit 1 as a special form.
1 to bit 8 are included. The register specifying unit rs specifies a byte or word size source register, and the register specifying unit rd specifies a byte or word size destination register. Whether the register to be specified is of byte size or word size is determined by the operation code of the operation code section. That is, in the case of accompanying an operation code involving a 16-bit operation, the lower 3 bits of the register specification sections rs and rd
The bit designates one of the eight registers R0 to R7, and whether to use the extension register or the general-purpose register among the designated registers is determined by the remaining upper one bit of the register designation unit. Specified by 8
In the case of accompanying an operation code involving a bit operation, the lower three bits of the register specification parts rs and rd are 8 bits.
This register R0 to R7 is specified, and whether the upper side or the lower side of the general-purpose register is used among the specified registers is determined by the remaining upper one bit of the register specification section. It is determined. The register specifying unit ers specifies a longword-sized source register, and the register specifying unit erd specifies a longword-sized destination register. The most significant one bit of the register designation parts ers, erd, which are reserved for four bits, is substantially ignored during instruction decoding.

【0052】命令フォーマット中における絶対アドレス
aa,ディスプレースメントd,イミディエイトxx
は、最下位ビットが偶数番めのビット0となるように命
令コードに含まれる。すなわち16ビット以上の絶対ア
ドレスaa,ディスプレースメントd,イミディエイト
xxは、2バイトを単位として含まれる。このため、2
4ビットの絶対アドレスaa,ディスプレースメントd
は、その先頭(上位ビット側)1バイトの領域中に所定
ビット数の予約部を含んで4バイトとされる。8ビット
の絶対アドレスaa,ディスプレースメントd,イミデ
ィエイトxxは第一ワードのビット7〜0に含まれる。
Absolute address aa, displacement d, immediate xx in the instruction format
Are included in the instruction code such that the least significant bit is an even-numbered bit 0. That is, the absolute address aa, displacement d, and immediate xx of 16 bits or more are included in units of 2 bytes. Therefore, 2
4-bit absolute address aa, displacement d
Is 4 bytes including a reserved portion of a predetermined number of bits in an area of 1 byte at the head (upper bit side). The 8-bit absolute address aa, displacement d, and immediate xx are included in bits 7 to 0 of the first word.

【0053】上記命令フォーマットによれば以下の効果
を得る。 (1)命令フォーマット中においてレジスタを指定する
部分が命令の第一ワードの1部分に固定されているか
ら、命令のデコード論理構成が簡単になる。 (2)レジスタ指定領域の下位側3ビットによって8本
のレジスタの何れを指定するかを決定し、指定された1
本のレジスタの内の何れの領域を使用するかを上位側1
ビットで決定すると共に、当該1ビットで決定される領
域のサイズは、命令中で指定されるデータサイズによっ
て、換言すれば、オペコード部のオペレーションコード
によって、決定されるから、レジスタに格納されるデー
タ並びにアドレスデータが、バイト、ワード、ロングワ
ードの数種類に亘るときにも、レジスタ指定部のビット
数を最小限に抑えることができる。
According to the above instruction format, the following effects can be obtained. (1) Since the part specifying the register in the instruction format is fixed to one part of the first word of the instruction, the decoding logic configuration of the instruction is simplified. (2) Determine which of the eight registers is to be specified by the lower three bits of the register specification area,
The upper one is used to determine which area of the register is to be used.
The size of the area determined by the bits and the size of the area determined by the one bit is determined by the data size specified in the instruction, in other words, by the operation code of the operation code section. Also, when address data covers several types of bytes, words, and long words, the number of bits in the register designation section can be minimized.

【0054】〔8〕CPUの内部ブロック 図19にはCPU1の内部ブロック図が示される。CP
U1は、主としてマイクロROMあるいはPLA(Pl
ogrammable Logic Array)で構
成される制御部CONT、前記汎用レジスタR0L,R
0H〜R7L,R7H、拡張レジスタE0〜E7、プロ
グラムカウンタPC(PCL,PCH,PCE)、コン
ディションコードレジスタCCRなどを含む実行部EX
E、及びレジスタ選択部REGSELから構成される。
制御部CONTは命令をフェッチし、これを解読して、
命令の実行に必要な各種制御信号を生成したり、命令の
実行手順を制御する。レジスタ選択部REGSELは、
前記命令の解読結果にしたがってレジスタの選択信号を
生成したりする。
[8] Internal Block of CPU FIG. 19 shows an internal block diagram of the CPU 1. CP
U1 is mainly composed of a micro ROM or PLA (Pl
The control unit CONT is composed of a programmable logic array, and the general-purpose registers R0L, R
0H to R7L, R7H, an execution unit EX including extension registers E0 to E7, a program counter PC (PCL, PCH, PCE), a condition code register CCR, and the like.
E and a register selection unit REGSEL.
The control unit CONT fetches an instruction, decodes the instruction,
It generates various control signals necessary for the execution of the instruction and controls the execution procedure of the instruction. The register selection unit REGSEL is
A register selection signal is generated according to the result of decoding the instruction.

【0055】実行部EXEはさらに、テンポラリレジス
タTRL,TRH,TRE、算術論理演算器ALUL,
ALUH,ALUE、リードデータバッファRDBL,
RDBH,RDBE、ライトデータバッファWDBL,
WDBH,WDBE、及びアドレスバッファABL,A
BH,ABEを含み、これらが3本の内部バスA(L,
H,E)、B(L,H,E)、C(L,H,E)、及び
セレクタ回路部SELを介して接続されている。リード
データバッファRDBL,RDBH,RDBEは、外部
のデータバスD7〜D0,D15〜D8に接続される。
ライトデータバッファWDBL,WDBH,WDBE
は、ライトデータ出力バッファWDBOL,WDBOH
を介して前記データバスD7〜D0,D15〜D8に接
続される。算術論理演算器ALUL,ALUH,ALU
Eは、命令によって指定される各種演算、プログラムカ
ウンタPCの加算、実効アドレスの計算などに用いられ
る。リードデータバッファRDBL,RDBH,RDB
Eは、ROM2、RAM3あるいは図示はされない外部
メモリなどからリードした命令やデータを一時的に格納
し、またライトデータバッファWDBL,WDBH,W
DBEは前記ROM2、RAM3あるいは外部メモリな
どにライトすべきデータを一時的に格納する。これによ
ってCPU1の内部動作とCPU1外部のリード/ライ
ト動作のタイミングを調整している。アドレスバッファ
ABL,ABH,ABEはCPU1がリード/ライトす
るアドレスを一時的に格納する。
The execution unit EXE further includes temporary registers TRL, TRH, TRE, arithmetic logic units ALUL,
ALUH, ALUE, read data buffer RDBL,
RDBH, RDBE, write data buffer WDBL,
WDBH, WDBE, and address buffers ABL, A
BH, ABE, and these three internal buses A (L,
H, E), B (L, H, E), C (L, H, E), and the selector circuit SEL. The read data buffers RDBL, RDBH, and RDBE are connected to external data buses D7 to D0 and D15 to D8.
Write data buffers WDBL, WDBH, WDBE
Are write data output buffers WDBOL, WDBOH
Are connected to the data buses D7 to D0 and D15 to D8. Arithmetic logic units ALUL, ALUH, ALU
E is used for various operations specified by the instruction, addition of the program counter PC, calculation of the effective address, and the like. Read data buffers RDBL, RDBH, RDB
E temporarily stores an instruction or data read from the ROM 2, the RAM 3, or an external memory (not shown), and stores write data buffers WDBL, WDBH, and WDBH.
The DBE temporarily stores data to be written in the ROM 2, RAM 3, external memory, or the like. Thus, the timing of the internal operation of the CPU 1 and the timing of the read / write operation outside the CPU 1 are adjusted. The address buffers ABL, ABH, and ABE temporarily store addresses to be read / written by the CPU 1.

【0056】特に制限はされないものの、基本的に上記
実行部EXE内の各回路ブロックは8ビットの2ブロッ
ク及び16ビットの1ブロックから構成されている。汎
用レジスタは8ビットの2ブロックで構成され、R0H
〜R7Hがビット15〜ビット8、R0L〜R7Lがビ
ット7〜ビット0に対応する。汎用レジスタの更に上位
側のビット、すなわちビット31〜ビット16は16ビ
ットの1ブロックの拡張レジスタE0〜E7が対応す
る。内部バスは、これらのビット31〜ビット16、ビ
ット15〜ビット8、ビット7〜ビット0に対応して夫
々A,B,C本が並行して設けられている。その他前記
テンポラリレジスタTR,ALU,リードデータバッフ
ァ,ライトデータバッファなども同様である。これらの
物理的な配置は特に制限はされない。
Although not particularly limited, each circuit block in the execution unit EXE is basically composed of two blocks of 8 bits and one block of 16 bits. The general-purpose register is composed of two 8-bit blocks.
R7H correspond to bits 15 to 8, and R0L to R7L correspond to bits 7 to 0. The higher-order bits of the general-purpose register, that is, bits 31 to 16 correspond to one block of 16-bit extension registers E0 to E7. In the internal bus, A, B, and C buses are provided in parallel corresponding to the bits 31 to 16, the bits 15 to 8, and the bits 7 to 0, respectively. The same applies to the temporary registers TR, ALU, read data buffer, write data buffer, and the like. These physical arrangements are not particularly limited.

【0057】[0057]

〔9〕CPUによる命令実行及び例外処理
の一例 図20乃至図24に示されるフローチャートに基づいて
CPU1の代表的な命令実行処理並びに例外処理を説明
する。
[9] Example of Instruction Execution and Exception Processing by CPU Representative instruction execution processing and exception processing of the CPU 1 will be described based on the flowcharts shown in FIGS.

【0058】図20に示されるリセット例外処理時は、
CPU1は0番地から始まる4バイトのアドレスに格納
されたスタートアドレスをリードする。なお、この4バ
イトの内、0番地の1バイトは、前記の通り将来拡張用
に予約されたものであり、無視される。CPU1は第1
ステップで、割込みマスクビットIを1にセットする。
同時にCPU1内部でバスA上にデータ0を生成し、こ
れをアドレスバッファABL,ABH,ABE(以下単
にABとも記す)に転送するとともに、ALUL,AL
UH,ALUE(以下単にALUとも記す)で2を加算
する。加算結果はCバス経由でテンポラリレジスタTR
L,TRH,TRE(以下単にTRとも記す)に格納す
る。第2ステップSa2で前記アドレスバッファABの
内容をアドレスとしてワードデータのリードを開始す
る。第3ステップSa3ではリード動作を終了し、リー
ドしたワードデータをリードデータバッファRDBE,
RDBL,RDBHに格納する。同時にテンポラリレジ
スタTRの内容をバスAに出力し、アドレスバッファA
Bに転送する。第4ステップSa4では前記アドレスバ
ッファABの内容をアドレスとしてワードデータのリー
ドを開始する。第5ステップSa5ではリード動作を終
了し、リードしたワードデータをデータバッファRDB
L,RDBHに格納する。この時、特に制限はされない
もののリードデータバッファは、いわゆるファーストイ
ンファーストアウト形式でデータを保持するようになっ
ている。第6ステップSa6では、第3ステップSa3
及び第5ステップSa5でリードデータバッファRDB
E,RDBH,RDBLに格納したデータ32ビットを
スタートアドレスとしてバスAに出力し、アドレスバッ
ファABに転送するとともに、ALUで2を加算する。
加算結果はバスCを介してプログラムカウンタPC(P
CL,PCH,PCE)に格納する。なお、第3ステッ
プSa3でデータバッファRDBEに格納されたデータ
の上位8ビットは、前記の通り、無視される。第7ステ
ップSa7では前記アドレスバッファABの内容をアド
レスとしてプログラムの先頭命令のリードをワード単位
で開始する。第8ステップSa8ではリード動作を終了
し、リードしたワードデータをデータバッファRDB
L,RDBHに格納する。実際には更に図35に示され
る命令用のリードデータバッファRDBIに転送され
る。それと同時にプログラムカウンタPCの内容をバス
Aに出力し、アドレスバッファABに転送し、さらにA
LUで2を加算する。加算結果はプログラムカウンタP
Cに格納する。第9ステップSa9では前記アドレスバ
ッファABの内容をアドレスとしてプログラムの3バイ
トめ・4バイトめの命令のリードをワードで開始する。
さらに、第8ステップSa8でデータバッファRDB
L,RDBHに格納した命令(実際には命令用リードデ
ータバッファRDBIが保持する命令)を制御部CON
Tに転送し、解読を開始する。次のステップからは、プ
ログラムの先頭命令である、第9ステップSa9で解読
を開始した命令に基づいた動作を開始する。第9ステッ
プSa9でリードを開始したワードデータはこの命令実
行中に所定のリードデータバッファに格納される。
In the reset exception handling shown in FIG.
The CPU 1 reads a start address stored in a 4-byte address starting from address 0. Note that, of the four bytes, one byte at address 0 is reserved for future expansion as described above and is ignored. CPU1 is the first
In a step, the interrupt mask bit I is set to "1".
At the same time, data 0 is generated on the bus A inside the CPU 1 and transferred to the address buffers ABL, ABH, and ABE (hereinafter, also simply referred to as AB).
UH, ALUE (hereinafter, also simply referred to as ALU) adds 2 to it. Addition result is temporary register TR via C bus
L, TRH, and TRE (hereinafter simply referred to as TR). In a second step Sa2, reading of word data is started with the contents of the address buffer AB as an address. In the third step Sa3, the read operation is completed, and the read word data is stored in the read data buffer RDBE,
Stored in RDBL, RDBH. At the same time, the contents of the temporary register TR are output to the bus A, and the address buffer A
Transfer to B. In a fourth step Sa4, reading of word data is started using the contents of the address buffer AB as an address. In the fifth step Sa5, the read operation is completed, and the read word data is stored in the data buffer RDB.
L and RDBH. At this time, the read data buffer holds data in a so-called first-in first-out format, although there is no particular limitation. In the sixth step Sa6, the third step Sa3
And the read data buffer RDB in the fifth step Sa5.
The 32-bit data stored in E, RDBH, and RDBL are output to the bus A as a start address, transferred to the address buffer AB, and incremented by 2 in the ALU.
The addition result is sent to the program counter PC (P
CL, PCH, PCE). Note that the upper 8 bits of the data stored in the data buffer RDBE in the third step Sa3 are ignored as described above. In a seventh step Sa7, the reading of the head instruction of the program is started in word units using the contents of the address buffer AB as an address. In an eighth step Sa8, the read operation is completed, and the read word data is stored in the data buffer RDB.
L and RDBH. Actually, the data is further transferred to the instruction read data buffer RDBI shown in FIG. At the same time, the contents of the program counter PC are output to the bus A and transferred to the address buffer AB.
Add 2 in LU. The addition result is the program counter P
Store in C. In the ninth step Sa9, the reading of the third and fourth byte instructions of the program is started by using the contents of the address buffer AB as an address.
Further, in the eighth step Sa8, the data buffer RDB
The instructions stored in the L and RDBHs (actually the instructions held in the instruction read data buffer RDBI) are sent to the control unit CON.
Transfer to T and start decoding. From the next step, an operation is started based on the instruction that has started decoding in the ninth step Sa9, which is the first instruction of the program. The word data whose reading has been started in the ninth step Sa9 is stored in a predetermined read data buffer during execution of this instruction.

【0059】図21には、イミディエイトデータをレジ
スタに転送する命令の処理フローが示されている。例え
ば、データ34を汎用レジスタR0Lに転送する命令
(MOV.B #34,R0L)は、特に制限はされな
いものの、前記の通り、命令コード中にイミディエイト
データ34を含み、2バイトの命令長であるとする。本
命令は、第1ステップSb1では、直前に実行した命令
または例外処理の最後のステップで開始したリード動作
を終了し、リードしたワードデータをリードデータバッ
ファRDBH,RDBL(RDBI)に格納する。同時
にプログラムカウンタPCの内容をバスAに出力し、ア
ドレスバッファABに転送し、さらにALUで2を加算
する。加算結果はプログラムカウンタPCに格納する。
第2ステップSb2では、アドレスバッファABに格納
された内容に基づいて、本命令から3バイトめ,4バイ
トめの命令のリードをワードで開始する。同時に既にデ
ータバッファRDBH,RDBHに格納してある本命令
コード中に含まれるイミディエイトデータ34をバスA
に出力し、ALUを通過し、ALUからバスCに出力し
てレジスタR0Lに転送する。ALUを通過した時にデ
ータを検査し、コンディションコードレジスタCCRの
Z,Nフラグに反映する。さらに、第1ステップSb1
でリードデータバッファRDBIに格納した命令を制御
部CONTに転送し、解読を開始する。次のステップか
らは、次の命令である、第2ステップSb2で解読を開
始した命令に基づいた動作を開始する。第2ステップS
b2でリードを開始したワードデータはこの命令実行中
に所定のリードデータバッファに格納される。
FIG. 21 shows a processing flow of an instruction for transferring immediate data to a register. For example, the instruction (MOV.B # 34, R0L) for transferring the data 34 to the general-purpose register R0L is not particularly limited, but as described above, includes the immediate data 34 in the instruction code and has an instruction length of 2 bytes. And In the first step Sb1, this instruction terminates the instruction executed immediately before or the read operation started in the last step of the exception processing, and stores the read word data in the read data buffers RDBH and RDBL (RDBI). At the same time, the contents of the program counter PC are output to the bus A, transferred to the address buffer AB, and 2 is added by the ALU. The addition result is stored in the program counter PC.
In the second step Sb2, based on the contents stored in the address buffer AB, the reading of the third and fourth bytes of the instruction from this instruction is started with a word. At the same time, the immediate data 34 included in this instruction code already stored in the data buffers RDBH, RDBH is transferred to the bus A.
, Passes through the ALU, is output from the ALU to the bus C, and is transferred to the register R0L. When the data passes through the ALU, the data is inspected and reflected in the Z and N flags of the condition code register CCR. Further, the first step Sb1
Transfers the instruction stored in the read data buffer RDBI to the control unit CONT, and starts decoding. From the next step, the operation based on the next instruction, the instruction that started decoding in the second step Sb2, is started. Second step S
The word data whose reading has been started in b2 is stored in a predetermined read data buffer during execution of this instruction.

【0060】図22には、ディスプレースメント付レジ
スタ間接アドレッシングモードでメモリの内容をレジス
タに転送する命令が示されている。例えば、レジスタR
0と拡張レジスタE0で示されるアドレスに相対値12
34を加えたアドレスからバイトデータを汎用レジスタ
R1Hに転送する命令{MOV.B @(1234,E
R0),R1H}は、特に制限はされないものの、前記
の通り、命令コード中にディスプレースメント1234
を含み4バイトの命令長であるとする。本命令は、第1
ステップSc1で、直前に実行した命令または例外処理
の最後のステップで開始したリード動作を終了し、リー
ドしたワードデータ(本命令の第3・第4バイト)をリ
ードデータバッファRDBE,RDBH,RDBLに格
納する。同時にプログラムカウンタPCの内容をバスA
に出力し、アドレスバッファABに転送し、さらにAL
Uで2を加算する。加算結果はプログラムカウンタPC
に格納する。第2ステップSc2で、アドレスバッファ
ABに格納された内容に基づいて、本命令から3バイト
め,4バイトめの命令である、次の命令のリードをワー
ドで開始する。同時に既にデータバッファRDBH,R
DBLに格納してある本命令コード中に含まれるディス
プレースメント1234をバスBに,汎用レジスタR0
と拡張レジスタE0の内容をバスAに出力し、ALUで
これらの加算を行ない、ALUからバスCに出力してテ
ンポラリレジスタに転送する。加算に際してディスプレ
ースメントは00001234に拡張される。第3ステ
ップSc3でリード動作を終了し、リードしたワードデ
ータをリードデータバッファRDBH,RDBLそして
命令用のリードデータバッファRDBIに格納する。同
時にテンポラリレジスタTRの内容をバスAに出力しア
ドレスバッファABに転送する。第4ステップSc4で
前記アドレスバッファABの内容をアドレスとしてデー
タのリードをバイトで開始する。第5ステップSc5で
リード動作を終了し、リードしたバイトデータをリード
データバッファに格納する。前記同様にプログラムカウ
ンタPCの内容をアドレスバッファABに転送し、2を
加算する。第6ステップSc6で前記アドレスバッファ
ABの内容をアドレスとしてデータのリードをバイトで
開始する。第5ステップSc5でデータバッファに格納
したデータをバスAに出力し、ALUを通過し、ALU
からバスCに出力してレジスタR1Hに転送する。AL
Uを通過した時にデータを検査し、コンディションコー
ドレジスタCCRのZ,Nフラグに反映する。第3ステ
ップSc3でリードデータバッファRDBIに格納した
命令を制御部CONTに転送し、解読を開始する。次の
ステップからは、前記同様に、次の命令の動作を開始す
る。
FIG. 22 shows an instruction for transferring the contents of the memory to the register in the register indirect addressing mode with displacement. For example, register R
0 and the relative value 12 in the address indicated by the extension register E0.
34 to transfer the byte data to the general-purpose register R1H from the address obtained by adding the address {MOV. B @ (1234, E
R0), R1H} are not particularly limited, but as described above, the displacement 1234 is included in the instruction code.
And an instruction length of 4 bytes. This instruction is
At step Sc1, the read operation started in the last step of the instruction executed immediately before or of the exception processing is terminated, and the read word data (the third and fourth bytes of this instruction) are stored in the read data buffers RDBE, RDBH, and RDBL. Store. At the same time, the contents of the program
To the address buffer AB, and further to AL
Add 2 with U. The addition result is the program counter PC
To be stored. In the second step Sc2, based on the contents stored in the address buffer AB, the reading of the next instruction, which is the third and fourth byte instructions from this instruction, is started with a word. At the same time, the data buffers RDBH, R
The displacement 1234 included in the instruction code stored in the DBL is transferred to the bus B by the general-purpose register R0.
And the contents of the extension register E0 are output to the bus A, these are added by the ALU, output from the ALU to the bus C, and transferred to the temporary register. Upon addition, the displacement is expanded to 00001234. In the third step Sc3, the read operation is completed, and the read word data is stored in the read data buffers RDBH and RDBL and the read data buffer for instruction RDBI. At the same time, the contents of the temporary register TR are output to the bus A and transferred to the address buffer AB. In a fourth step Sc4, data reading is started in bytes using the contents of the address buffer AB as an address. In a fifth step Sc5, the read operation is completed, and the read byte data is stored in the read data buffer. As described above, the contents of the program counter PC are transferred to the address buffer AB, and 2 is added. In a sixth step Sc6, data reading is started in bytes using the contents of the address buffer AB as an address. The data stored in the data buffer in the fifth step Sc5 is output to the bus A, passes through the ALU,
To the bus C and transfer it to the register R1H. AL
When passing through U, the data is inspected and reflected in the Z and N flags of the condition code register CCR. The command stored in the read data buffer RDBI in the third step Sc3 is transferred to the control unit CONT, and decoding is started. From the next step, the operation of the next instruction is started as described above.

【0061】図23には、ポストインクリメントレジス
タ間接アドレッシングモードでメモリの内容をレジスタ
転送する命令の一例処理フローが示される。例えば、汎
用レジスタR7と拡張レジスタE7で示されるアドレス
から拡張データを汎用レジスタR2と拡張レジスタE2
に転送する命令(MOV.L @ER7+,ER2)
は、特に制限はされないものの、2バイトの命令長であ
るとする。本命令は、第1ステップSd1で、直前に実
行した命令または例外処理の最後のステップで開始した
リード動作を終了し、リードしたワードデータをデータ
バッファRDBH,RDBLそして命令用のリードデー
タバッファRDBIに格納する。第2ステップSd2
で、レジスタR7と拡張レジスタE7の内容をバスAに
出力し、アドレスバッファABに転送し、同時にALU
で2を加算し、結果を汎用レジスタR7と拡張レジスタ
E7に格納する。第3ステップSd3で前記アドレスバ
ッファABの内容をアドレスとしてデータのリードをワ
ードで開始する。第4ステップSd4でリード動作を終
了し、リードしたワードデータをリードデータバッファ
RDBH,RDBLに格納する。同時に汎用レジスタR
7と拡張レジスタE7の内容をバスAに出力し、アドレ
スバッファABに転送し、同時にALUで2を加算す
る。加算結果は汎用レジスタR7と拡張レジスタE7に
格納する。第5ステップSd5で前記アドレスバッファ
ABの内容をアドレスとしてデータのリードをワードで
開始する。第6ステップSd6でリード動作を終了し、
リードしたワードデータをリードデータバッファRDB
H,RDBLに格納する。前記同様にプログラムカウン
タPCの内容をアドレスバッファABに転送し、2を加
算する。第7ステップSd7で前記アドレスバッファA
Bの内容をアドレスとしてデータのリードをワードで開
始する。リードデータバッファRDBH,RDBLに格
納したデータをバスAに出力し、ALUを通過し、AL
UからバスCに出力して汎用レジスタR2と拡張レジス
タE2に転送する。ALUを通過した時にデータを検査
し、コンディションコードレジスタCCRのZ,Nフラ
グに反映する。第1ステップSd1でデータバッファR
DBIに格納した命令を制御部CONTに転送し、解読
を開始する。次のステップからは、前記同様に、次の命
令の動作を開始する。
FIG. 23 shows an example processing flow of an instruction for register-transferring the contents of a memory in the post-increment register indirect addressing mode. For example, from the address indicated by the general-purpose register R7 and the extension register E7, the extension data is transferred to the general-purpose register R2 and the extension register E2.
(MOV.L @ ER7 +, ER2)
Is an instruction length of 2 bytes, although there is no particular limitation. In the first instruction Sd1, in the first step Sd1, the immediately preceding instruction or the read operation started in the last step of the exception processing is completed, and the read word data is stored in the data buffers RDBH and RDBL and the instruction read data buffer RDBI. Store. Second step Sd2
Then, the contents of the register R7 and the extension register E7 are output to the bus A and transferred to the address buffer AB, and at the same time, the ALU
Is added, and the result is stored in the general-purpose register R7 and the extension register E7. In a third step Sd3, data reading is started in words using the contents of the address buffer AB as an address. In the fourth step Sd4, the read operation is completed, and the read word data is stored in the read data buffers RDBH, RDBL. At the same time, general-purpose register R
7 and the contents of the extension register E7 are output to the bus A and transferred to the address buffer AB, and at the same time, 2 is added by the ALU. The addition result is stored in the general-purpose register R7 and the extension register E7. In a fifth step Sd5, data reading is started in words using the contents of the address buffer AB as an address. The read operation is completed in a sixth step Sd6,
Reads the read word data into a read data buffer RDB
H, RDBL. As described above, the contents of the program counter PC are transferred to the address buffer AB, and 2 is added. In the seventh step Sd7, the address buffer A
Data reading is started with a word using the contents of B as an address. The data stored in the read data buffers RDBH and RDBL are output to the bus A, passed through the ALU,
The signal is output from U to the bus C and transferred to the general-purpose register R2 and the extension register E2. When the data passes through the ALU, the data is inspected and reflected in the Z and N flags of the condition code register CCR. In the first step Sd1, the data buffer R
The command stored in the DBI is transferred to the control unit CONT, and decoding is started. From the next step, the operation of the next instruction is started as described above.

【0062】図24にはプリデクリメントレジスタ間接
アドレッシングモードでレジスタの内容をメモリへ転送
する命令の一例処理フローが示される。例えば、汎用レ
ジスタR7と拡張レジスタE7で示されるアドレスから
拡張データを汎用レジスタR2と拡張レジスタE2に転
送する命令(MOV.L ER2,@−ER7)は、特
に制限はされないものの、2バイトの命令長であるとす
る。本命令は、第1ステップSe1で、直前に実行した
命令または例外処理の最後のステップで開始したリード
動作を終了し、リードしたワードデータをリードデータ
バッファRDBH,RDBLそして命令用リードデータ
バッファRDBIに格納する。第2ステップSe2で
は、レジスタR7と拡張レジスタE7の内容をバスAに
出力し、ALUで4を減算し、結果を汎用レジスタR7
と拡張レジスタE7に格納する。第3ステップSe3
で、再びレジスタR7と拡張レジスタE7の内容をバス
Aに出力し、アドレスバッファABに転送し、同時にA
LUで2を加算し、結果をテンポラリレジスタTRに格
納する。第4ステップSe4では、汎用レジスタR2と
拡張レジスタE2の内容をバスBに出力し、ライトデー
タバッファWDBE,WDBH,WDBLに格納する。
データのライトをワードで開始する。上位16ビット
は、同時にライトデータ出力バッファWDBOH,WD
BOLに転送され、データバスD15〜D0に出力され
る。第5ステップSe5で、ライト動作を終了し、テン
ポラリレジスタTRの内容をバスAに出力し、アドレス
バッファABに転送する。第6ステップで、データのラ
イトをワードで開始する。ライトデータバッファWDB
H,WDBLの下位16ビットはライトデータ出力バッ
ファWDBOH,WDBOLに転送され、データバスD
15〜D0に出力される。第6ステップSe6でライト
動作を終了し、リードしたワードデータをリードデータ
バッファRDBH,RDBLに格納する。前記同様にプ
ログラムカウンタPCの内容をアドレスバッファABに
転送し、2を加算する。第7ステップSe7で前記アド
レスバッファABの内容をアドレスとしてデータのリー
ドをワードで開始する。汎用レジスタR2と拡張レジス
タE2の内容をバスAに出力し、ALUを通過させる。
ALUを通過した時にデータを検査し、コンディション
コードレジスタCCRのZ,Nフラグに反映する。第1
ステップSe1でデータバッファRDBIに格納した命
令を制御部CONTに転送し、解読を開始する。次のス
テップからは、前記同様に、次の命令の動作を開始す
る。
FIG. 24 shows an example processing flow of an instruction for transferring the contents of a register to a memory in the pre-decrement register indirect addressing mode. For example, the instruction (MOV.LER2,... -ER7) for transferring the extension data from the address indicated by the general-purpose register R7 and the extension register E7 to the general-purpose register R2 and the extension register E2 is not particularly limited, but is a 2-byte instruction. Let it be long. In the first step Se1, the instruction executed immediately before or the read operation started in the last step of the exception processing is completed, and the read word data is stored in the read data buffers RDBH and RDBL and the instruction read data buffer RDBI. Store. In the second step Se2, the contents of the register R7 and the extension register E7 are output to the bus A, 4 is subtracted by the ALU, and the result is stored in the general register R7.
Is stored in the extension register E7. Third step Se3
Then, the contents of the register R7 and the extension register E7 are output to the bus A again, and are transferred to the address buffer AB.
LU is added with 2 and the result is stored in temporary register TR. In a fourth step Se4, the contents of the general-purpose register R2 and the extension register E2 are output to the bus B and stored in the write data buffers WDBE, WDBL and WDBL.
Start writing data in words. The upper 16 bits simultaneously write data output buffers WDBOH and WDOH.
The data is transferred to the BOL and output to the data buses D15 to D0. In a fifth step Se5, the write operation is completed, and the contents of the temporary register TR are output to the bus A and transferred to the address buffer AB. In the sixth step, data writing is started with a word. Write data buffer WDB
H and the lower 16 bits of WDBL are transferred to the write data output buffers WDBOH and WDBOL, and the data bus D
15 to D0. At the sixth step Se6, the write operation is completed, and the read word data is stored in the read data buffers RDBH, RDBL. As described above, the contents of the program counter PC are transferred to the address buffer AB, and 2 is added. In a seventh step Se7, data reading is started in words using the contents of the address buffer AB as an address. The contents of the general-purpose register R2 and the extension register E2 are output to the bus A and passed through the ALU.
When the data passes through the ALU, the data is inspected and reflected in the Z and N flags of the condition code register CCR. First
At step Se1, the instruction stored in the data buffer RDBI is transferred to the control unit CONT, and decoding is started. From the next step, the operation of the next instruction is started as described above.

【0063】〔10〕CPUの算術演算命令一覧 図25には、CPU1の算術演算命令の一覧が示され
る。その算術演算は、具体的には加算,減算,比較を含
む。
[10] List of Arithmetic Operation Instructions of CPU FIG. 25 shows a list of arithmetic operation instructions of CPU 1. The arithmetic operation specifically includes addition, subtraction, and comparison.

【0064】加算命令としてはその機能別にADD、A
DDC命令があり、さらに、ADD命令ではバイトサイ
ズ、ワードサイズ、ロングワードサイズがある。ADD
命令では、指定されたソースデータ(イミディエィトま
たはレジスタの内容)とディスティネーションデータ
(レジスタの内容)を加算し、結果をディスティネーシ
ョンのレジスタに格納するとともに、結果をC,V,
Z,Nの各フラグに反映する。特に制限はされないもの
の、メモリの内容とレジスタの内容の演算は行なわな
い。
As the addition instruction, ADD, A
There is a DDC instruction, and the ADD instruction has a byte size, a word size, and a long word size. ADD
The instruction adds specified source data (immediate or register contents) and destination data (register contents), stores the result in the destination register, and stores the result in C, V,
This is reflected on each of the Z and N flags. Although there is no particular limitation, no operation is performed on the contents of the memory and the contents of the registers.

【0065】ADD命令では、データ演算命令としての
性質上、バイトサイズ、ワードサイズ、ロングワードサ
イズがある。ADDC命令もADD命令と同様である
が、加算はキャリフラグCを含めて行なわれる。ADD
C命令は、データ演算命令としての性質上、バイトサイ
ズ、ワードサイズ、ロングワードサイズがあるのが望ま
しいが、ワードサイズ、ロングワードサイズのADDC
命令は33ビット以上のデータを扱わない限り必要な
い。これに対してADDC命令をバイトサイズのみとす
れば、CPU1の命令フォーマット・内部制御方式の単
純化を行なって、論理的・物理的規模を縮小可能であ
る。前記必要性と前記縮小規模を考慮して、特に制限は
されないものの、ADDC命令をバイトサイズのみとし
ている。ロングワードサイズはアドレスデータ計算用に
使用され、汎用レジスタと拡張レジスタを組合せて加算
を行なう。
The ADD instruction has a byte size, a word size, and a long word size due to the nature of the data operation instruction. The ADD instruction is the same as the ADD instruction, but the addition is performed including the carry flag C. ADD
The C instruction preferably has a byte size, a word size, and a long word size because of its nature as a data operation instruction.
Instructions are not required unless they deal with data of 33 bits or more. On the other hand, if the ADDC instruction has only the byte size, the instruction format and internal control system of the CPU 1 can be simplified, and the logical and physical scales can be reduced. Although there is no particular limitation in consideration of the necessity and the scale of reduction, the ADDC instruction has only a byte size. The longword size is used for calculating address data, and performs addition by combining a general-purpose register and an extension register.

【0066】比較命令としてはCMP命令があり、キャ
リ付きの比較命令は存在しない。減算命令としてはその
機能別にSUB命令とSUBC命令があり、それらの内
容は、減算という機能において前記加算命令と相違する
だけである。
As a comparison instruction, there is a CMP instruction, and there is no comparison instruction with carry. As the subtraction instruction, there are a SUB instruction and a SUBC instruction for each function, and their contents are different from the addition instruction only in the function of subtraction.

【0067】尚図25において、#x:8,#x:16
はそれぞれ8ビット,16ビットイミディエィトデータ
を意味し、Rd8,Rd16は8ビット,16ビット汎
用レジスタを意味し、Ed:Rd:16は拡張レジスタ
と汎用レジスタの内容などを示す。
In FIG. 25, #x: 8, #x: 16
Denotes 8-bit and 16-bit immediate data, Rd8 and Rd16 denote 8-bit and 16-bit general-purpose registers, respectively, and Ed: Rd: 16 denotes the contents of extension registers and general-purpose registers.

【0068】上記のような汎用レジスタRi,拡張レジ
スタEiを設け、16Mバイトのアドレス空間を使用可
能とした場合、主要な演算はレジスタ間で行い、メモリ
とレジスタの演算は直接行わない行わない(すなわち1
命令では行わない)命令体系とするのが得策である。1
6Mバイトのアドレス空間を有効に利用するには、前記
のような複雑なアドレッシングモードが必要である。演
算命令の多くにこのような複雑なアドレッシングモード
を実行可能とすると、制御部CONTの構成が複雑にな
り、論理的並びに物理的規模を最小限とする目的に反し
てしまうためである。メモリのアクセスには、前述の種
々のアドレッシングモードを有する転送命令でレジスタ
とのデータの転送を行い、レジスタ上で演算などのデー
タ処理を行うものとすればよい。汎用レジスタRiは8
ビット長で最大16本分として使用でき、また、汎用レ
ジスタRi及び拡張レジスタEiは16ビット長で最大
16本分として使用でき、ある処理に必要なデータはレ
ジスタ上に置くことができる。或は、少なくとも、使用
頻度の高いデータの大部分はレジスタ上に置くことがで
きる。したがって、処理プログラムの増加や実行速度の
低下といった不都合が発生する場合は少ないと考えられ
る。
When the general-purpose register Ri and the extension register Ei as described above are provided and a 16-Mbyte address space can be used, the main operation is performed between the registers, and the operation between the memory and the register is not performed directly ( That is, 1
It is advisable to use an instruction system (not performed by instructions). 1
In order to effectively use the 6 Mbyte address space, the complicated addressing mode as described above is required. If such a complicated addressing mode can be executed for many of the operation instructions, the configuration of the control unit CONT becomes complicated, which is against the purpose of minimizing the logical and physical scales. For accessing the memory, data may be transferred to and from the register by the transfer instructions having the various addressing modes described above, and data processing such as operation may be performed on the register. General-purpose register Ri is 8
A maximum of 16 bits can be used, and the general-purpose register Ri and the extension register Ei can be used as a maximum of 16 bits, and data necessary for a certain process can be placed on the register. Alternatively, at least most of the frequently used data can be placed on registers. Therefore, it is considered that there are few cases where inconveniences such as an increase in processing programs and a decrease in execution speed occur.

【0069】メモリに対する演算を行う必要がある命令
としては、ビット操作命令がある。これらは、バイト単
位で割り当てられたアドレスの第nビットとして指定さ
れるものの、バイト単位で扱われるデータではなく、そ
れぞれのビットが独立した機能を有している。たとえ
ば、タイマの動作を制御するようなレジスタのような場
合、第0ビット・第1ビットでタイマのクロックを選択
し、第2ビットではタイマカウンタと比較レジスタの内
容が一致した時、タイマカウンタをクリアするかしない
かを指定し、第3ビットでは前記一致した時、割込みを
発生するかしないかを指定するものである。これらは1
ビット単位で1にセットしたり、0にクリアしたりする
必要がある。あるいは入力ポートの所定の1ビットが0
であるか1であるかによってCPU1の処理プログラム
が異なる場合、前記1ビットのデータを判定する必要が
ある。かかる1ビットデータはメモリ或は前記タイマ制
御用のレジスタに対して直接演算しなければならない。
バイト単位で一旦レジスタに転送した後にビット操作を
行うと、前記転送とビット操作の間に割込みが入ってし
まい、例えば前記入力ポートの値が変化してしまうよう
な不都合が発生するためである。従って本実施例におけ
るCPU1は、汎用レジスタのような内部のレジスタと
周辺回路の制御用レジスタのような外部レジスタとの間
での直接的な演算のためのビット操作命令はサポートし
ている。尚、このようなビット操作命令の対象となるア
ドレスは固定的で、複雑なアドレッシングモードは必要
ではない。絶対アドレスと、最低限レジスタ間接を実行
できればよい。しかも絶対アドレスの場合も全アドレス
空間を使用できる必要はなく、前記タイマ・入出力ポー
トなどの存在するアドレス範囲にのみ使用できれば十分
と考えられる。このようなアドレス範囲の指定に使用で
きる絶対アドレスは8ビットで十分である。16ビット
とすれば使用可能なアドレス範囲が広がるが、命令長が
長くなり制御が複雑になってしまう。少なくとも24ビ
ットとして16Mバイトの全空間を使用可能としなけれ
ばならない場合は非常に稀であると考えられる。したが
って、1ビット又は数ビットのビット操作命令を直接外
部周辺回路との間で行っても、これによって制御部の規
模や命令の種類が極端に増大する虞はない。
An instruction that needs to perform an operation on a memory is a bit operation instruction. These are designated as the n-th bit of the address assigned in byte units, but are not data handled in byte units, and each bit has an independent function. For example, in the case of a register that controls the operation of the timer, the timer clock is selected by the 0th bit and the 1st bit. The third bit specifies whether or not to generate an interrupt when the values match. These are 1
It must be set to 1 or cleared to 0 in bit units. Alternatively, a predetermined bit of the input port is 0
If the processing program of the CPU 1 differs depending on whether the data is 1 or 1, it is necessary to determine the 1-bit data. Such 1-bit data must be directly operated on the memory or the register for controlling the timer.
This is because, if the bit operation is performed after the data is once transferred to the register in byte units, an interrupt occurs between the transfer and the bit operation, which causes a problem such as a change in the value of the input port. Therefore, the CPU 1 in this embodiment supports a bit operation instruction for a direct operation between an internal register such as a general-purpose register and an external register such as a control register of a peripheral circuit. It should be noted that the target address of such a bit manipulation instruction is fixed and does not require a complicated addressing mode. It is sufficient that the absolute address and at least the register indirect can be executed. In addition, even in the case of absolute addresses, it is not necessary to be able to use the entire address space, and it is considered sufficient to be able to use only the address range where the timer / input / output port and the like exist. Eight bits are sufficient as the absolute address that can be used to specify such an address range. The use of 16 bits widens the usable address range, but increases the instruction length and complicates the control. It is considered very unlikely that the entire space of 16 Mbytes must be available for at least 24 bits. Therefore, even if a 1-bit or several-bit bit manipulation instruction is directly issued to an external peripheral circuit, there is no possibility that the scale of the control unit or the type of instruction will be extremely increased.

【0070】〔11〕命令の機能とアドレシッシングモ
ードの組合せ一覧 図26には命令の機能とアドレシッシングモードの組合
せとの関係の一例が示される。同図において#はイミデ
ィエイト、Rはレジスタ直接、@Rはレジスタ間接、@
(d16,R)及び@(d24,R)はディスプレース
メント付きレジスタ間接、@−Rはプリデクリメントレ
ジスタ間接、@R+はポストインクリメントレジスタ間
接、@a8,@a16,@a24は絶対アドレス、@
(d8,PC),@(d16,PC)はプログラムカウ
ンタ相対、の各アドレシングモードを意味する。また同
図においてBはバイト、Wはワード、Lはロングワード
を意味する。プログラムカウンタ相対は分岐命令専用で
ある。そのほかのアドレシッシングモードは転送命令で
使用可能である。演算命令はイミディエイトトとレジス
タ直接を使用可能である。但し単項演算はレジスタ直接
のみである。算術演算命令は前記のとおりバイト,ワー
ド,ロングワードを使用可能、但しキャリ付き加減算は
バイトサイズのみ使用可能である。インクリメント,デ
クリメントはレジスタをカウンタとする場合のために、
±1はバイト,ワード,ロングワードを使用可能とする
が、±2,±4はアドレス計算用であるため、ロングワ
ードのみを使用可能としている。論理演算命令,シフ
ト,ローテートは特に制限はされないもののバイト,ワ
ード,ロングワードを使用可能である。これは、16M
バイトのアドレス空間を使用する応用の一つとして、プ
リンタの文字データを扱う場合に、文字データの白黒反
転や斜体等の加工にこれら命令が多用されると考えられ
るためである。
[11] List of Combinations of Instruction Functions and Addressing Modes FIG. 26 shows an example of the relationship between combinations of instruction functions and addressing modes. In the figure, # is immediate, R is register direct, @R is register indirect, @
(D16, R) and @ (d24, R) are register indirect with displacement, @ −R is indirect with predecrement register, @ R + is indirect with postincrement register, @ a8, @ a16, @ a24 are absolute address,
(D8, PC) and @ (d16, PC) mean each addressing mode relative to the program counter. Also, in the figure, B means byte, W means word, and L means long word. The program counter relative is used exclusively for branch instructions. Other addressing modes can be used with transfer instructions. The operation instruction can use immediate and register directly. However, the unary operation is directly performed only on the register. Arithmetic operation instructions can use bytes, words, and long words as described above. However, addition and subtraction with carry can use only byte size. Increment and decrement are used when the register is a counter.
Although ± 1 enables the use of bytes, words and longwords, ± 2 and ± 4 are used for address calculation, and therefore only longwords can be used. Although the logical operation instruction, shift, and rotate are not particularly limited, bytes, words, and long words can be used. This is 16M
This is because, as one application using the byte address space, when handling character data of a printer, it is considered that these instructions are frequently used for processing black and white inversion and italicization of character data.

【0071】〔12〕レジスタの回路構成例 図27には汎用レジスタ,拡張レジスタ,プログラムカ
ウンタ,テンポラリレジスタの具体的な論理回路例が示
される。同図には代表的に3ビットの構成が示されてい
る。レジスタはフリップフロップ回路FFで構成され、
バスCからデータの入力が可能とされ、バスA,Bに出
力が可能とされている。データの入出力はレジスタ選択
部REGSELからの信号に基づいて、システムクロッ
クφ(図における記号*はローイネーブルであることを
意味する)がロウレベルの期間に行なわれる。汎用レジ
スタRiH、RiL、及び拡張レジスタEiには夫々独
立した制御信号AH,BH,CH、AL,BL,CL、
AE,BE,CEが与えられ、それぞれ独立した入出力
が可能とされている。プログラムカウンタPCは24ビ
ット長のため、AEとAHとAL、BEとBHとBL、
CEとCHとCLはそれぞれ共通の信号(後述するAP
C、BPC、CPC)として与えられ、一括した入出力
を行う。テンポラリレジスタTRについては、その使用
方法に依存するが、汎用レジスタ及び拡張レジスタと同
様とする。
[12] Example of Circuit Configuration of Register FIG. 27 shows a specific example of a logic circuit of a general-purpose register, an extension register, a program counter, and a temporary register. FIG. 1 representatively shows a 3-bit configuration. The register is composed of a flip-flop circuit FF,
Data can be input from the bus C and output can be made to the buses A and B. Data input / output is performed during a low level period of the system clock φ (symbol * in the drawing means low enable) based on a signal from the register selection unit REGSEL. The general-purpose registers RiH and RiL and the extension register Ei have independent control signals AH, BH, CH, AL, BL, CL, respectively.
AE, BE, and CE are provided, and independent input / output is possible. Since the program counter PC is 24 bits long, AE, AH and AL, BE, BH and BL,
CE, CH, and CL are common signals (AP described later).
C, BPC, CPC), and performs collective input / output. The temporary register TR depends on the method of use, but is the same as the general-purpose register and the extension register.

【0072】特に制限はされないものの、それぞれのバ
スA,B,Cは負論理とされている。また、バスA及び
Bはシステムクロックφがハイレベルの期間にPチャネ
ル型MOSトランジスタQpによりハイレベル(0レベ
ル)に固定される。システムクロックφがロウレベルの
期間に、いずれのブロックもデータを出力しなければハ
イレベルが保持される。
Although not particularly limited, each of the buses A, B, and C has a negative logic. The buses A and B are fixed at a high level (0 level) by a P-channel MOS transistor Qp while the system clock φ is at a high level. If no data is output from any of the blocks while the system clock φ is at the low level, the high level is maintained.

【0073】〔13〕汎用レジスタ及び拡張レジスタの
動作例 図28には図22で説明した前記{MOV.B @(1
234,ER0),R1H}命令実行時の汎用レジスタ
及び拡張レジスタの一例動作タイミングチャートが示さ
れる。
[13] Example of Operation of General-purpose Register and Extension Register FIG. B @ (1
234, ER0), an example operation timing chart of the general-purpose register and the extension register when the R1H # instruction is executed is shown.

【0074】システムクロックφに同期した第1サイク
ル(前記第1ステップSc1に対応)と第5サイクル
(第5ステップSc5に対応)で制御信号APCが1レ
ベルとなり、プログラムカウンタPCの内容がAバスに
出力される。同時に制御信号CPCが1レベルとなり、
Cバスの内容がプログラムカウンタPCに入力される。
特に制限はされないもののプログラムカウンタPCの出
力はいわゆるマスタ・スレーブとなっているためAバス
にはCバスの内容ではなく、直前のプログラムカウンタ
PCの内容が出力される。第2サイクル(第2ステップ
Sc2に対応)で拡張レジスタE0と汎用レジスタR0
との制御信号AE0、AH0、AL0が1レベルとな
り、拡張レジスタE0と汎用レジスタR0の内容がAバ
スに出力される。第6サイクル(第6ステップSc6に
対応)で汎用レジスタR1の制御信号AH1が1レベル
となり、Cバスの内容が汎用レジスタR1Hに出力され
る。制御信号AE1、AL1は0レベルであり、拡張レ
ジスタE1と汎用レジスタR1Lとの内容は保持され
る。
In the first cycle (corresponding to the first step Sc1) and the fifth cycle (corresponding to the fifth step Sc5) synchronized with the system clock φ, the control signal APC becomes 1 level, and the contents of the program counter PC are set to the A bus. Is output to At the same time, the control signal CPC becomes 1 level,
The contents of the C bus are input to the program counter PC.
Although not particularly limited, the output of the program counter PC is a so-called master / slave, so that the content of the immediately preceding program counter PC is output to the A bus instead of the content of the C bus. In the second cycle (corresponding to the second step Sc2), the extension register E0 and the general-purpose register R0
Control signals AE0, AH0, and AL0 attain a 1 level, and the contents of the extension register E0 and the general-purpose register R0 are output to the A bus. In the sixth cycle (corresponding to the sixth step Sc6), the control signal AH1 of the general-purpose register R1 becomes 1 level, and the contents of the C bus are output to the general-purpose register R1H. The control signals AE1 and AL1 are at the 0 level, and the contents of the extension register E1 and the general-purpose register R1L are held.

【0075】図29には図23に示される前記(MO
V.L @ER7+,ER2)命令実行時の汎用レジス
タの一例動作タイミングチャートが示される。
FIG. 29 shows the (MO) shown in FIG.
V. An operation timing chart of an example of the general-purpose register at the time of executing the (L @ ER7 +, ER2) instruction is shown.

【0076】システムクロックφに同期した第2サイク
ル(第2ステップSd2に対応)で拡張レジスタE7と
汎用レジスタR7の制御信号AE7、AH7、AL7が
1レベルとなり、拡張レジスタE7と汎用レジスタR7
との内容がAバスに出力される。同時に制御信号CE
7、CH7、CL7が1レベルとなり、Cバスの内容が
拡張レジスタE7と汎用レジスタR7とに入力される。
前記同様に汎用レジスタの出力はいわゆるマスタ・スレ
ーブとなっているためAバスにはCバスの内容ではな
く、直前のプログラムカウンタPCの内容が出力され
る。第6サイクル(第6ステップSd6に対応)で制御
信号APCが1レベルとなり、プログラムカウンタPC
の内容がAバスに出力される。同時に制御信号CPCが
1レベルとなり、Cバスの内容がプログラムカウンタP
Cに入力される。第7サイクル(第7ステップSd7に
対応)で拡張レジスタE2と汎用レジスタR2との制御
信号CE2、CH2、CL2が1レベルとなり、Cバス
の内容が拡張レジスタE2と汎用レジスタR2に入力さ
れる。
In the second cycle (corresponding to the second step Sd2) synchronized with the system clock φ, the control signals AE7, AH7 and AL7 of the extension register E7 and the general-purpose register R7 become 1 level, and the extension register E7 and the general-purpose register R7
Is output to the A bus. At the same time, the control signal CE
7, CH7 and CL7 become 1 level, and the contents of the C bus are input to the extension register E7 and the general-purpose register R7.
Similarly to the above, since the output of the general-purpose register is a so-called master / slave, the content of the immediately preceding program counter PC is output to the A bus instead of the content of the C bus. In the sixth cycle (corresponding to the sixth step Sd6), the control signal APC becomes 1 level, and the program counter PC
Is output to the A bus. At the same time, the control signal CPC becomes 1 level, and the contents of the C bus are
Input to C. In the seventh cycle (corresponding to the seventh step Sd7), the control signals CE2, CH2, CL2 of the extension register E2 and the general-purpose register R2 become 1 level, and the contents of the C bus are input to the extension register E2 and the general-purpose register R2.

【0077】〔14〕レジスタ選択部の構成例 図30には前記レジスタ選択部REGSELにおける汎
用レジスタ及び拡張レジスタ指定のための一例ブロック
図が示される。レジスタ指定部は、デコーダDEC1,
DEC2、3個のアンド・オアゲートG1、4個のアン
ドゲートG2、6個のアンドゲートG3、及びクロック
ドインバータのような9個の出力制御ゲートG4によっ
て構成される。デコーダDEC1は制御信号S0〜S2
をデコードし、デコーダDEC2は、制御信号D0〜D
2をデコードする。アンド・オアゲートG1は、それら
デコーダDEC1,DEC2の所定の出力信号と、制御
信号DB,SB,DA,SA,CD,CSの内の所定の
制御信号とを入力する。アンドゲートG2は、制御信号
D3,BY,WOの内の所定の2種類の信号を入力して
論理積を採る。ゲートG3は、前記アンド・オアゲート
G1の出力、前記アンドゲートG2の出力、制御信号B
Yの内の所定の信号を3入力としてその論理積を採る。
出力ゲートG4は、対応するアンドゲートG3の出力並
びにアンド・オアゲートG1の出力をクロック信号φに
同期して出力する。
[14] Configuration Example of Register Selector FIG. 30 is a block diagram showing an example for specifying a general-purpose register and an extension register in the register selector REGSEL. The register designating section includes decoders DEC1,
DEC2, three AND gates G1, four AND gates G2, six AND gates G3, and nine output control gates G4 such as clocked inverters. The decoder DEC1 controls the control signals S0 to S2
And the decoder DEC2 outputs the control signals D0 to D
Decode 2. The AND gate G1 receives predetermined output signals of the decoders DEC1 and DEC2 and predetermined control signals among the control signals DB, SB, DA, SA, CD and CS. The AND gate G2 receives two predetermined signals among the control signals D3, BY, and WO, and takes a logical product. The gate G3 includes an output of the AND gate G1, an output of the AND gate G2, and a control signal B.
A predetermined signal in Y is input to three inputs and its logical product is taken.
Output gate G4 outputs the output of corresponding AND gate G3 and the output of AND OR gate G1 in synchronization with clock signal φ.

【0078】制御信号DBは命令フォーマット中のレジ
スタ指定部rdで指定したレジスタをBバスに出力する
ことを指示し、制御信号CSはCバスの内容を命令フォ
ーマット中のレジスタ指定部rsで指定したレジスタに
入力することを指示する。制御信号DAは、レジスタ指
定部rdで指定したレジスタをAバスに出力することを
指示する。制御信号SBは、レジスタ指定部rsで指定
したレジスタをBバスに出力することを指示する。制御
信号SAは、レジスタ指定部rsで指定したレジスタを
Aバスに出力することを指示する。制御信号CDは、C
バスの内容を命令フォーマット中のレジスタ指定部rd
で指定したレジスタに入力することを指示する。制御信
号BY,WOは、それぞれ操作をバイトサイズ,ワード
サイズで行なうことを指示する。選択すべきレジスタに
対応するデータが制御信号S0〜S2または制御信号D
0〜D2に与えられ、かつ制御信号DB,SB,DA,
SA,CD,CS及び制御信号BY,WO,D3に所定
の信号が与えられることにより、前記制御信号AE、B
E、CE、AH、BH、CH、AL、BL、CLの内の
単数若しくは複数が活性化される。
The control signal DB instructs to output the register designated by the register designation section rd in the instruction format to the B bus, and the control signal CS designates the contents of the C bus by the register designation section rs in the instruction format. Indicates input to a register. The control signal DA instructs to output the register specified by the register specifying unit rd to the A bus. Control signal SB instructs to output the register specified by register specifying section rs to B bus. The control signal SA instructs to output the register specified by the register specifying unit rs to the A bus. The control signal CD is C
Register contents rd in instruction format
Instructs input to the register specified by. Control signals BY and WO indicate that the operation is to be performed in byte size and word size, respectively. The data corresponding to the register to be selected is a control signal S0 to S2 or a control signal D
0, D2 and control signals DB, SB, DA,
By providing predetermined signals to SA, CD, CS and control signals BY, WO, D3, the control signals AE, B
One or more of E, CE, AH, BH, CH, AL, BL, CL are activated.

【0079】図31には命令フォーマット中におけるレ
ジスタ指定部のデータとそれによって指定されるレジス
タとの対応例が示される。
FIG. 31 shows an example of the correspondence between the data in the register specifying section and the register specified by the data in the instruction format.

【0080】レジスタ指定部はビット0〜2でレジスタ
の番号(0〜7)を指定し、ビット3は、バイトサイズ
のとき汎用レジスタの上位側か下位側か(H/L)を、
ワードサイズのときには汎用レジスタか拡張レジスタか
を指定する。なお、ロングワードサイズデータとアドレ
スレジスタとしての利用においては前述のようにビット
3は無視され実質的に存在しない。例えば、制御信号D
0〜D3がB’0000、制御信号DAと制御信号BY
が夫々1レベルにされたとき、汎用レジスタの制御信号
AHが1レベルにされる。
The register specifying section specifies the register number (0 to 7) with bits 0 to 2, and bit 3 indicates whether the upper or lower side (H / L) of the general-purpose register is a byte size.
For word size, specify whether it is a general-purpose register or an extension register. As described above, in the use of long word size data as an address register, bit 3 is ignored and does not substantially exist. For example, the control signal D
0 to D3 are B'0000, the control signal DA and the control signal BY
Are set to 1 level, the control signal AH of the general-purpose register is set to 1 level.

【0081】図32には図24で説明した前記(MO
V.L R2,@−ER7)命令を実行する時のレジス
タ指定部の動作タイミングチャートが示される。
FIG. 32 shows the (MO) described with reference to FIG.
V. 5 shows an operation timing chart of the register specifying unit when the (LR2, @ -ER7) instruction is executed.

【0082】第2ステップで拡張レジスタE7と汎用レ
ジスタR7の制御信号AE7、AH7、AL7が1レベ
ルとなり、拡張レジスタE7と汎用レジスタR7の内容
がAバスに出力される。同時に制御信号CE7、CH
7、CL7が1レベルとなり、Cバスの内容が拡張レジ
スタE7と汎用レジスタR7に入力される。前記同様に
汎用レジスタの出力はいわゆるマスタ・スレーブとなっ
ているためAバスにはCバスの内容ではなく、直前の拡
張レジスタE7と汎用レジスタR7の内容が出力され
る。第6ステップで制御信号APCが1レベルとなり、
プログラムカウンタPCの内容がAバスに出力される。
同時に制御信号CPCが1レベルとなり、Cバスの内容
がプログラムカウンタPCに入力される。第7ステップ
で拡張レジスタE2と汎用レジスタR2の制御信号A
E、AH、ALが1レベルとなり、拡張レジスタE2と
汎用レジスタR2の内容がCバスに出力される。
In the second step, the control signals AE7, AH7 and AL7 of the extension register E7 and the general purpose register R7 become 1 level, and the contents of the extension register E7 and the general purpose register R7 are output to the A bus. At the same time, control signals CE7 and CH
7, CL7 becomes 1 level, and the contents of the C bus are input to the extension register E7 and the general-purpose register R7. Similarly to the above, since the output of the general-purpose register is a so-called master / slave, the content of the immediately preceding extension register E7 and the content of the general-purpose register R7 are output to the A bus instead of the content of the C bus. In the sixth step, the control signal APC becomes 1 level,
The contents of the program counter PC are output to the A bus.
At the same time, the control signal CPC becomes 1 level, and the contents of the C bus are input to the program counter PC. In the seventh step, the control signal A for the extension register E2 and the general-purpose register R2
E, AH, and AL become 1 level, and the contents of the extension register E2 and the general-purpose register R2 are output to the C bus.

【0083】図33にはレジスタ選択制御信号としての
前記制御信号S0〜S2及びD0〜D3を生成する信号
生成論理の一例が示される。
FIG. 33 shows an example of signal generation logic for generating the control signals S0 to S2 and D0 to D3 as register selection control signals.

【0084】前記の通り、レジスタ指定部rsは命令コ
ードのビット7〜4であるため、これらビット7〜4の
内容が直接制御信号S0〜S3とされる。また、レジス
タ指定部rdは命令コードのビット3〜0またはビット
12〜8であるため、これらビット3〜0またはビット
11〜8の内容のいずれかが選択されて制御信号D0〜
D3にされる。その選択のための信号は命令コードのビ
ット15〜12をデコードして生成する。ビット11〜
8をレジスタ指定部rdとする場合は、オペコードはビ
ット15〜12であるため、ビット15〜12をデコー
ドすれば、レジスタ指定部rdがビット11〜8である
か判定できる。レジスタ指定部rdがビット11〜8で
ない場合には、レジスタ指定部が存在しない場合もふく
めて、ビット3〜0を制御信号D0〜D3とする。
As described above, since the register designation section rs is bits 7 to 4 of the instruction code, the contents of these bits 7 to 4 are directly used as the control signals S0 to S3. Further, since the register designating part rd is bits 3 to 0 or bits 12 to 8 of the instruction code, one of the contents of these bits 3 to 0 or bits 11 to 8 is selected and the control signals D0 to D0 are selected.
D3 is set. The signal for the selection is generated by decoding bits 15 to 12 of the instruction code. Bits 11 to
When 8 is used as the register designation section rd, since the operation code is bits 15 to 12, decoding the bits 15 to 12 makes it possible to determine whether the register designation section rd has bits 11 to 8. If the register designation section rd is not bits 11 to 8, bits 3 to 0 are used as control signals D0 to D3, including the case where the register designation section does not exist.

【0085】〔15〕セレクタ回路部 図34には図19に示される前記セレクタ回路部SEL
の一例としてBバスに着目した回路が示される。
[15] Selector Circuit Section FIG. 34 shows the selector circuit section SEL shown in FIG.
A circuit focusing on the B bus is shown as an example.

【0086】汎用レジスタR0HとR1Lの間のバイト
サイズ加算を行なう場合、汎用レジスタR0HはAバス
H、BバスH、CバスH(ビット15〜8)に接続さ
れ、汎用レジスタR1LはAバスL、BバスL、Cバス
L(ビット7〜0)に接続されており、ALUの同じビ
ットに直接接続されていない。このとき、セレクタ回路
部SELはBバスLに出力した汎用レジスタR1Lの内
容をBバスHに出力している。バイトサイズのとき、制
御信号BYが1レベルとされ、制御信号S3が1レベル
であればレジスタ指定部rsで指定された汎用レジスタ
からBバスLにデータが出力されており、これにしたが
ってそのデータがセレクタ回路部SELを通してをBバ
スHに出力される。これによってBバスH、BバスLに
同一のデータが出力され、レジスタ指定部rdで指定さ
れた汎用レジスタスタがいずれであってもALUの同じ
ビットにブロックの異なるレジスタのデータを入力し
て、演算可能である。拡張レジスタはバイトサイズのレ
ジスタとして使用しないのでBバスEには出力しない。
同様に、制御信号BYが1レベルとされ、制御信号S3
が0レベルであればレジスタ指定部rsで指定された汎
用レジスタからBバスHにデータが出力されており、こ
れをBバスLに出力することができる。
When performing byte size addition between general purpose registers R0H and R1L, general purpose register R0H is connected to A bus H, B bus H, and C bus H (bits 15 to 8), and general purpose register R1L is connected to A bus L , B bus L and C bus L (bits 7 to 0) and are not directly connected to the same bit of the ALU. At this time, the selector circuit unit SEL outputs the contents of the general-purpose register R1L output to the B bus L to the B bus H. In the case of the byte size, the control signal BY is set to 1 level, and if the control signal S3 is 1 level, data is output to the B bus L from the general-purpose register specified by the register specifying unit rs. Is output to the B bus H through the selector circuit unit SEL. As a result, the same data is output to the B bus H and the B bus L, and regardless of the general-purpose register register specified by the register specifying unit rd, data of a register in a different block is input to the same bit of the ALU. Computable. Since the extension register is not used as a byte size register, it is not output to the B bus E.
Similarly, the control signal BY is set to 1 level and the control signal S3
Is 0 level, data has been output to the B bus H from the general-purpose register specified by the register specifying unit rs, and can be output to the B bus L.

【0087】また、ワードサイズのとき、制御信号WO
が1レベルとされ、制御信号S3が1レベルであればレ
ジスタ指定部rsで指定された拡張レジスタからBバス
Eにデータが出力されており、これがセレクタ回路部S
ELを通してBバスH、BバスLに出力される。これに
よってBバスE(ビット31〜16)とBバスH、Bバ
スL(ビット15〜0)に同一のデータが出力され、レ
ジスタ指定部rdで指定された拡張レジスタ、汎用レジ
スタスタいずれであってもALUの同じビットにそのデ
ータを入力して、演算可能である。同様に、制御信号W
Oが1レベルとされ、制御信号S3が0レベルであれば
レジスタ指定部rsで指定された汎用レジスタからBバ
スH、BバスLにデータが出力されており、これをBバ
スEに出力することができる。
In the case of the word size, the control signal WO
Is at one level, and if the control signal S3 is at one level, data has been output from the extension register designated by the register designation unit rs to the B bus E, and this is output to the selector circuit unit S
The signal is output to B bus H and B bus L through EL. As a result, the same data is output to the B bus E (bits 31 to 16), the B bus H, and the B bus L (bits 15 to 0), and either the extended register or the general-purpose register designated by the register designation section rd. Even when the data is input to the same bit of the ALU, the operation can be performed. Similarly, the control signal W
When O is at 1 level and the control signal S3 is at 0 level, data has been output to the B bus H and B bus L from the general-purpose register specified by the register specifying unit rs, and is output to the B bus E. be able to.

【0088】〔16〕リードデータバッファ 図35にはリードデータバッファRDBE,RDBH,
RDBLの具体的な回路例が示される。
[16] Read Data Buffer FIG. 35 shows read data buffers RDBE, RDBH,
A specific circuit example of the RDBL is shown.

【0089】同図においてリードデータバッファRDB
L,RDBHは、第1のリードバッファ部分RDB1及
び第2のリードバッファ部分RDB2から構成される。
リードデータバッファRDBEは、第1のリードバッフ
ァ部分RDB3及び第2のリードバッファ部分RDB4
から構成される。第1のリードバッファ部分RDB1,
RDB3は、シングルチップマイクロコンピュータ10
0の含まれる内部データバスD0〜D15にゲート回路
を介して結合され、その出力はゲート回路を介して第2
のリードバッファ部分RDB2,RDB4の入力に接続
される。第2のリードバッファ部分RDB2,RDB4
の出力はゲートを介してAバス及びBバスに接続され
る。更に第2のリードバッファ部分RDB2の出力はゲ
ートを介して命令用のリードデータバッファ(以下命令
リードバッファ部分とも記す)RDBIの入力にも接続
される。命令リードバッファ部分RDBIの出力は制御
部CONTに供給される。前記第1のリードバッファ部
分RDB1,RDB3と第2のリードバッファ部分RD
B2,RDB4と命令リードバッファ部分RDBIはい
ずれも16ビットである。同図に示される「BバスE」
は図19の「B(E)」に対応され、「AバスE」は図
19の「A(E)」に対応され、同様に「BバスH」は
図19の「B(H)」に対応され、「AバスH」は図1
9の「A(H)」に対応され、「BバスL」は図19の
「B(L)」に対応され、「AバスL」は図19の「A
(L)」に対応される。
In the figure, read data buffer RDB
L and RDBH are composed of a first read buffer part RDB1 and a second read buffer part RDB2.
The read data buffer RDBE includes a first read buffer portion RDB3 and a second read buffer portion RDB4.
Consists of First read buffer portion RDB1,
RDB3 is a single-chip microcomputer 10
0 is connected via a gate circuit to the internal data buses D0 to D15 including 0, and the output is connected to the second data bus via the gate circuit.
Are connected to the inputs of the read buffer portions RDB2 and RDB4. Second read buffer portions RDB2, RDB4
Are connected to the A bus and the B bus via gates. Further, the output of the second read buffer portion RDB2 is also connected to an input of an instruction read data buffer (hereinafter also referred to as an instruction read buffer portion) RDBI via a gate. The output of the instruction read buffer portion RDBI is supplied to the control unit CONT. The first read buffer portions RDB1 and RDB3 and the second read buffer portion RD
B2, RDB4 and the instruction read buffer part RDBI are all 16 bits. "B bus E" shown in the figure
19 corresponds to “B (E)” in FIG. 19, “A bus E” corresponds to “A (E)” in FIG. 19, and similarly “B bus H” corresponds to “B (H)” in FIG. "A bus H" is shown in FIG.
9, “A (H)”, “B bus L” corresponds to “B (L)” in FIG. 19, and “A bus L” corresponds to “A (H)” in FIG.
(L) ".

【0090】図35に示される制御信号R4が0レベ
ル、制御信号R5が1レベル、そしてシステムクロック
φ*(*は反転若しくはローイネーブルを意味する)が
1レベルのとき、前記第1のリードデータバッファ部分
RDB1,RDB3は夫々データを取り込む。このと
き、制御信号R4が1レベルであるならば一方のリード
データバッファ部分RDB3はデータを取り込まない。
第1のリードデータバッファ部分RDB1,RDB3と
第2のリードデータバッファ部分RDB2,RDB4は
マスタ・スレーブ動作され、システムクロックφの1レ
ベルに同期して第1のリードデータバッファ部分RDB
1,RDB3から第2のリードデータバッファ部分RD
B2,RDB4にデータが渡される。第2のリードデー
タバッファ部分RDB2,RDB4が保持しているデー
タは、制御信号R3の1レベルに基づいてBバスに与え
られ、制御信号R2の1レベルに基づいてAバスに与え
られ、また、制御信号R1の1レベルに基づいて命令リ
ードデータバッファ部分RDBIに与えられる。
When the control signal R4 shown in FIG. 35 is at the 0 level, the control signal R5 is at the 1 level, and the system clock φ * (* means inverted or low enable) is at the 1 level, the first read data The buffer portions RDB1 and RDB3 each take in data. At this time, if the control signal R4 is at one level, one read data buffer portion RDB3 does not take in data.
The first read data buffer portions RDB1 and RDB3 and the second read data buffer portions RDB2 and RDB4 operate as a master / slave, and are synchronized with one level of the system clock φ.
1, RDB3 to second read data buffer portion RD
Data is passed to B2 and RDB4. The data held by the second read data buffer portions RDB2 and RDB4 are supplied to the B bus based on one level of the control signal R3, and supplied to the A bus based on one level of the control signal R2. It is applied to instruction read data buffer portion RDBI based on one level of control signal R1.

【0091】図35のリードデータバッファは、内部バ
スに接続された32ビットの第2のリードデータバッフ
ァ部分RDB2,RDB4とデータバスD0〜D15に
接続された32ビットの第1のリードデータバッファ部
分RDB1,RDB31で構成され、下位ビット側の第
1のリードデータバッファ部分RDB1はリード時に常
にリードデータが格納され、上位ビット側の第1のリー
ドデータバッファ部分RDB3はデータを格納するかし
ないかが制御信号R4で指定される。このとき、下位側
16ビットは、リード時は常に入力が許容され、上位側
16ビットはロングワードデータの下位ワードリード時
(上位ワードデータのリードが先に行われる)には入力
が禁止される。これにより、命令コード中の24ビット
の実効アドレス指定部とロングワードデータを同様に扱
うことができ、リードデータバッファの構成を単純化
し、論理的並びに物理的規模を縮小できる。
The read data buffer shown in FIG. 35 includes a 32-bit second read data buffer portion RDB2 and RDB4 connected to the internal bus and a 32-bit first read data buffer portion connected to data buses D0 to D15. The first read data buffer portion RDB1 on the lower bit side always stores read data during reading, and the first read data buffer portion RDB3 on the upper bit side stores data. Specified by control signal R4. At this time, the lower 16 bits are always allowed to be input when reading, and the upper 16 bits are prohibited from being input when reading the lower word of the long word data (the upper word data is read first). . As a result, the 24-bit effective address designation section and long word data in the instruction code can be handled in the same manner, and the configuration of the read data buffer can be simplified, and the logical and physical scales can be reduced.

【0092】図36には、前記(MOV.L @ER7
+,ER2)命令の実行時における図35のリードデー
タバッファの動作タイミングチャートが示される。
In FIG. 36, the above (MOV.L@ER7
FIG. 35 shows an operation timing chart of the read data buffer in FIG. 35 when the (+, ER2) instruction is executed.

【0093】第1サイクルと第4サイクルと第6サイク
ルで制御信号R5が1レベルとなり、データバスD15
〜D0の内容が第1のリードバッファ部分RDB1,R
DB3に格納される。但し、第6サイクルでは、制御信
号R4が1レベルとされて、第1のリードデータバッフ
ァ部分RDB3にはデータは格納されない。これらの内
容は次のサイクルで第2のリードバッファ部分RDB
2,RDB4に転送される。第2サイクルで制御信号R
1が1レベルとなり、第2のリードバッファ部分RDB
2に保持されている次の命令が命令リードバッファ部分
RDBIに転送される。制御部CONTでは第7サイク
ルからこの内容を使用し、次の命令の解読を開始する。
第7サイクルで制御信号R3が1レベルとなり、第2の
リードバッファ部分RDB2、RDB4に保持されてい
る32ビットのリードデータがBバスに出力される。
In the first cycle, the fourth cycle and the sixth cycle, the control signal R5 goes to one level, and the data bus D15
To D0 are the first read buffer portions RDB1, RDB
Stored in DB3. However, in the sixth cycle, the control signal R4 is set to 1 level, and no data is stored in the first read data buffer portion RDB3. These contents are stored in the second read buffer portion RDB in the next cycle.
2, transferred to RDB4. In the second cycle, the control signal R
1 becomes the 1 level, and the second read buffer portion RDB
2 is transferred to the instruction read buffer part RDBI. The control unit CONT uses the contents from the seventh cycle to start decoding the next instruction.
In the seventh cycle, the control signal R3 becomes 1 level, and the 32-bit read data held in the second read buffer portions RDB2 and RDB4 is output to the B bus.

【0094】〔17〕ライトデータバッファ 図37にはライトデータバッファの具体的な回路例が示
される。ライトデータバッファWDBEは16ビットの
BバスE又は16ビットのAバスEからデータを受け
る。ライトデータバッファWDBHは8ビットのBバス
H又は8ビットのAバスHからデータを受ける。ライト
データバッファWDBLは8ビットのBバスL又は8ビ
ットのAバスLからデータを受ける。ライトデータ出力
バッファWDBOL,WDBOHは、ライトデータバッ
ファWDBE又はライトデータバッファWDBL,WD
BOHの出力を受けて、これをデータバスD0〜D15
に出力する。ライトされるべきデータは先ずシステムク
ロックφがロウレベルの期間にAバスまたはBバスに出
力され、制御信号W1、W2、W3のレベルに従って、
ライトデータバッファWDBL,WDBH,WDBEに
格納される。ライトデータバッファに格納されたデータ
はシステムクロックφがロウレベルの期間に、制御信号
W4、W5、W6のレベルに従って、ライトデータ出力
バッファWDBOL,WDBOHに転送される。
[17] Write Data Buffer FIG. 37 shows a specific circuit example of the write data buffer. Write data buffer WDBE receives data from 16-bit B bus E or 16-bit A bus E. Write data buffer WDBH receives data from 8-bit B bus H or 8-bit A bus H. Write data buffer WDBL receives data from 8-bit B bus L or 8-bit A bus L. The write data output buffers WDVOL and WDBOH are connected to the write data buffer WDBE or the write data buffers WDBL and WD
Upon receiving the output of the BOH, it is connected to the data buses D0 to D15.
Output to The data to be written is first output to the A bus or the B bus during the period when the system clock φ is at the low level, and the data is written according to the levels of the control signals W1, W2, and W3.
The data is stored in the write data buffers WDBL, WDBL, WDBE. The data stored in the write data buffer is transferred to the write data output buffers WDBOL and WDBOH according to the levels of the control signals W4, W5 and W6 while the system clock φ is at the low level.

【0095】図38には、図24で説明した前記(MO
V.L ER2,@−ER7)命令の実行時におけるラ
イトデータバッファの一例動作タイミングチャートが示
される。第4サイクル(第4ステップSe4に相当)で
制御信号W2が1レベルとなり、Bバスに出力されたレ
ジスタE2及びR2の内容がライトデータバッファWD
BE及びWDBH,WDBLに格納される。同時に制御
信号W6が1レベルとなり、これらの内容のうちレジス
タE2の保持データに相当する16ビットの内容が、ラ
イトデータバッファWDBEからライトデータ出力バッ
ファWDBOL,WDBOHに転送され,さらに、制御
信号W7が1レベルとなり、内部データバスD0〜15
に出力される。第6サイクル(第6ステップSe6に相
当)では制御信号W4,W7が1レベルとなり、ライト
データバッファWDBH,WDBLに保持されているレ
ジスタR2に相当する16ビットの内容が、ライトデー
タ出力バッファWDBOH,WDBOLに転送され、内
部データバスD0〜15に出力される。次の命令の内容
が命令リードバッファ部分に転送される。
FIG. 38 shows the (MO) described with reference to FIG.
V. An example operation timing chart of the write data buffer at the time of execution of the LER2, @ -ER7) instruction is shown. In the fourth cycle (corresponding to the fourth step Se4), the control signal W2 becomes 1 level, and the contents of the registers E2 and R2 output to the B bus are changed to the write data buffer WD.
BE, WDBH, and WDBL. At the same time, the control signal W6 goes to one level. Of these contents, the 16-bit contents corresponding to the data held in the register E2 are transferred from the write data buffer WDBE to the write data output buffers WDBOL and WDBOH. 1 level, and the internal data buses D0 to D15
Is output to In the sixth cycle (corresponding to the sixth step Se6), the control signals W4 and W7 become 1 level, and the contents of 16 bits corresponding to the register R2 held in the write data buffers WDBH and WDBL are written into the write data output buffers WDBOH and WDBOH. The data is transferred to WDVOL and output to internal data buses D0 to D15. The contents of the next instruction are transferred to the instruction read buffer.

【0096】〔18〕アドレスバッファ 図39にはアドレスバッファの具体的な論理回路例とし
て1ビット分の構成が代表的に示される。アドレスバッ
ファはフリップフロップ回路MAB1、MAB2で構成
され、フリップフロップ回路MAB1はバスAとフリッ
プフロップ回路MAB2に接続され、フリップフロップ
回路MAB2はフリップフロップ回路MAB1とアドレ
スバスに接続されている。フリップフロップ回路MAB
1のAバスからのデータの入力は制御信号が1レベルの
とき、システムクロックφがロウレベルの期間に行なわ
れる。フリップフロップ回路MAB1の内容はフリップ
フロップ回路MAB2にシステムクロックφがハイレベ
ルの期間に転送されアドレスバスに出力する。
[18] Address Buffer FIG. 39 representatively shows a 1-bit configuration as a specific example of a logic circuit of the address buffer. The address buffer includes flip-flop circuits MAB1 and MAB2. The flip-flop circuit MAB1 is connected to the bus A and the flip-flop circuit MAB2, and the flip-flop circuit MAB2 is connected to the flip-flop circuit MAB1 and the address bus. Flip-flop circuit MAB
Data input from the A bus 1 is performed while the system clock φ is at the low level when the control signal is at the 1 level. The contents of the flip-flop circuit MAB1 are transferred to the flip-flop circuit MAB2 while the system clock φ is at the high level and output to the address bus.

【0097】図40には、図22で説明した前記{MO
V.B @(1234,ER0),R1H}命令実行時
における図39のアドレスバッファの動作タイミングチ
ャートが示される。第1サイクル(第1ステップSc1
対応)、第3サイクル(第3ステップSc3対応)、及
び第5サイクル(第5ステップSc5対応)で制御信号
が1レベルとなり、Aバスの内容がフリップフロップ回
路MAB1に格納される。これらの内容は次のステップ
でフリップフロップ回路MAB2に転送され、アドレス
バスに出力される。
FIG. 40 shows the ΔMO described with reference to FIG.
V. FIG. 39 shows an operation timing chart of the address buffer of FIG. 39 when the B {(1234, ER0), R1H} instruction is executed. First cycle (first step Sc1
The control signal becomes 1 level in the third cycle (corresponding to the third step Sc3) and the fifth cycle (corresponding to the fifth step Sc5), and the contents of the A bus are stored in the flip-flop circuit MAB1. These contents are transferred to the flip-flop circuit MAB2 in the next step and output to the address bus.

【0098】図41にはアドレスバッファの変形例を示
す。図39のアドレスバッファに対し、フリップフロッ
プ回路MAB1とMAB2の間に、加算器例えばインク
リメンタINCが付加されており、定数値2を加算でき
る。24ビットのデータをアクセスするためには16ビ
ット単位のアクセスを2回に分けて行うため、1回目の
アクセスの後、アドレスに2を加算しなければならない
が、この加算に前記インクリメンタINCを使用する。
汎用のALUを使用する場合に比べてハードウェアは増
大するが、汎用ALUを使用したときに一旦計算したア
ドレスを例えばテンポラリレジスタなどに一時的に確保
し、その後で前記テンポラリレジスタの内容を読み出し
て、ALUで2を加算し、当該加算結果をアドレスバッ
ファに転送するような手間を省くことができ、制御部C
ONTの規模を縮小できる。これらのアドレスバッファ
の形式はCPUの全体的の構成に基づいて選択すればよ
い。例えば、実行部EXEの規模に比べて制御部CON
Tの規模が大きくなり過ぎてCPUなどのチップレイア
ウト上好ましくないと考えられる場合には図41のアド
レスバッファを採用すればよい。
FIG. 41 shows a modification of the address buffer. In the address buffer of FIG. 39, an adder, for example, an incrementer INC is added between the flip-flop circuits MAB1 and MAB2, and a constant value 2 can be added. In order to access 24-bit data, the access in 16-bit units is performed in two separate operations. Therefore, after the first access, 2 must be added to the address. In this addition, the incrementer INC is used. use.
Although the hardware increases as compared with the case of using the general-purpose ALU, the address once calculated when the general-purpose ALU is used is temporarily secured in, for example, a temporary register, and then the contents of the temporary register are read out. , ALU, and the trouble of transferring the addition result to the address buffer can be omitted.
The size of the ONT can be reduced. The format of these address buffers may be selected based on the overall configuration of the CPU. For example, compared to the scale of the execution unit EXE, the control unit CON
If it is considered that the size of T becomes too large and is not preferable in terms of the chip layout of the CPU or the like, the address buffer shown in FIG. 41 may be employed.

【0099】図42には、図23で説明した前記(MO
V.L @ER7+,ER2)命令実行時における図4
1のアドレスバッファの動作タイミングチャートが示さ
れる。第1サイクル(第1ステップSd1対応)と第5
サイクル(第5ステップSd5対応)で制御信号A1が
1レベルとなり、Aバスの内容がフリップフロップ回路
MAB1に格納される。これらの内容は次のステップで
フリップフロップ回路MAB2に転送され、アドレスバ
スに出力される。第3サイクル(第3ステップSd3対
応)の後半から制御信号A2が1レベルとなり、フリッ
プフロップ回路MAB1に2を加えた内容が第4ステッ
プでフリップフロップ回路MAB2に転送され、アドレ
スバスに出力される。このとき、図23の第2ステップ
の演算は+4とし、第5ステップではレジスタの操作を
行わない。
FIG. 42 shows the (MO) described with reference to FIG.
V. L @ ER7 +, ER2) FIG.
An operation timing chart of one address buffer is shown. The first cycle (corresponding to the first step Sd1) and the fifth cycle
In the cycle (corresponding to the fifth step Sd5), the control signal A1 becomes 1 level, and the contents of the A bus are stored in the flip-flop circuit MAB1. These contents are transferred to the flip-flop circuit MAB2 in the next step and output to the address bus. From the second half of the third cycle (corresponding to the third step Sd3), the control signal A2 becomes 1 level, and the content obtained by adding 2 to the flip-flop circuit MAB1 is transferred to the flip-flop circuit MAB2 in the fourth step and output to the address bus. . At this time, the calculation in the second step in FIG. 23 is set to +4, and the register is not operated in the fifth step.

【0100】〔19〕マイクロコンピュータのアドレス
マップ 図43には本実施例に係るマイクロコンピュータ100
のアドレスマップの一例が示される。
[19] Address Map of Microcomputer FIG. 43 shows a microcomputer 100 according to this embodiment.
An example of the address map of FIG.

【0101】内蔵ROM2はアドレスH’00000か
ら配置され、内蔵周辺機能(タイマ4,SCI5など)
と内蔵RAM3はH’FF800以降に配置されてお
り、これらの間は外部空間とされる。内蔵周辺機能と内
蔵RAM3をアドレス空間の中途、例えば、H’0F8
00からH’0FFFFなどに配置することができる
が、この場合には外部空間が2ヵ所に分離される、ま
た、内蔵ROM2に書き込んだプログラムと外部空間に
存在するプログラムを連続的に使用できず、本発明の目
的に反する。従って主としてプログラム領域とされるべ
き内蔵ROM2と、主としてデータ領域とされるべき内
蔵周辺機能及び内蔵RAM3は互いにアドレス空間の反
対に配置し、この間は連続した空間とすべきである。こ
のようにすることにより、マイクロコンピュータ100
が適用されるシステムに応じてデータ領域やプログラム
領域が大きくなっても、夫々を容易に連続したアドレス
空間に確保する事ができるようになり、システム上、デ
ータやプログラムを管理したり、それらをアクセスする
ための手順が簡素化されたりする。尚、内蔵ROM2は
リセット処理に際してのスタートアドレスまたはスター
トアドレスを格納したアドレス(スタートベクタ)を含
む。
The built-in ROM 2 is arranged from address H'00000, and has built-in peripheral functions (timer 4, SCI 5, etc.)
And the built-in RAM 3 are arranged after the H'FF 800, and the space between them is an external space. The built-in peripheral functions and the built-in RAM 3 are located in the middle of the address space, for example, H'0F8
However, in this case, the external space is separated into two places. In addition, the program written in the internal ROM 2 and the program existing in the external space cannot be used continuously. This is contrary to the object of the present invention. Therefore, the built-in ROM 2, which is mainly used as the program area, and the built-in peripheral functions and the built-in RAM 3, which are mainly used as the data area, are arranged opposite to each other in the address space. By doing so, the microcomputer 100
Even if the data area or program area becomes large depending on the system to which the system is applied, it is possible to easily secure each of them in a continuous address space, manage data and programs on the system, and manage them. Access procedures are simplified. The built-in ROM 2 includes a start address for reset processing or an address (start vector) storing the start address.

【0102】この時、前記の通り、8ビット絶対アドレ
スはH’FFFF00〜H’FFFFFFを使用できる
ため、内蔵周辺機能領域に対して使用できる。また、ビ
ット操作命令をかかる領域に使用できる。
At this time, as described above, since the 8-bit absolute address can use H'FFFF00 to H'FFFFFF, it can be used for the built-in peripheral function area. Also, a bit manipulation instruction can be used for such an area.

【0103】16ビット絶対アドレスはH’00000
0〜H’007FFF及びH’FF8000〜H’FF
FFFFを使用できるため、内蔵ROM、内蔵RAM、
内蔵周辺機能に対して使用できる。これら内蔵領域は使
用頻度が高く、比較的命令長の短い命令を使用可能とし
たことで、コード効率と実効時間を向上することができ
る。
The 16-bit absolute address is H'00000
0 to H'007FFF and H'FF8000 to H'FF
Since FFFF can be used, built-in ROM, built-in RAM,
Can be used for built-in peripheral functions. Since these built-in areas are frequently used and can use instructions having a relatively short instruction length, code efficiency and effective time can be improved.

【0104】外部空間に対しては、固定的なアドレスを
使用する場合は少ないと考えられる。外部空間でかつ固
定的なアドレスを使用する場合には、H’FF8000
〜H’FFFFFFあるいはH’FFFF00〜H’F
FFFFFの領域に配置すればよい。
It is considered that a fixed address is rarely used for the external space. When using a fixed address in the external space, use H'FF8000
H'FFFFFF or H'FFFF00 to H'F
What is necessary is just to arrange in the area of FFFFF.

【0105】〔20〕ミニマムモード、マキシマムモー
ド 上記説明では、アドレス空間16Mバイトであるとした
が、CPU1の機能としては16Mバイトのアドレス空
間をもちながらも、シングルチップコンピュータ100
全体としては各機能ブロックの組合せなどにより、16
Mバイトのアドレス空間は必要とせず、かつ入出力ポー
トの端子数を多く必要とする場合が考えられる。このよ
うな場合、アドレス端子24本を持つことは得策ではな
く、アドレス端子数を減らし、入出力ポート端子数を増
加させなければならない。例えばアドレス端子を20本
とすると、実際に利用できるアドレス空間は1Mバイト
となる。また、CPUは同一としながら、アドレス空間
は従来同様に64kバイトで十分な応用もある。例え
ば、外部空間を使用せず、シングルチップマイクロコン
ピュータの全ての端子を入出力ポートとして使用し、応
用システムの実装面積を縮小したい場合などは、内蔵領
域の合計が64kバイト以下であれば、アドレス空間は
従来同様に64kバイトで問題ない。
[20] Minimum Mode, Maximum Mode In the above description, the address space is 16 Mbytes. However, the function of the CPU 1 is a single chip computer 100 while having an address space of 16 Mbytes.
As a whole, 16
It is conceivable that an M-byte address space is not required and a large number of input / output port terminals is required. In such a case, it is not advisable to have 24 address terminals, and it is necessary to reduce the number of address terminals and increase the number of input / output port terminals. For example, if there are 20 address terminals, the actually usable address space is 1 Mbyte. In addition, there is also a sufficient application that the address space is 64 kbytes as in the related art while the CPU is the same. For example, if all the terminals of a single-chip microcomputer are used as input / output ports without using external space and the mounting area of an application system is to be reduced, if the total area of the built-in area is 64 kbytes or less, the address is There is no problem with the space of 64 kbytes as in the past.

【0106】かかる応用においては、ベクタのリードあ
るいはプログラムカウンタのスタックは16ビットすな
わち2バイト単位で行なえば良く、前記のように4バイ
ト分のアクセスを行なうことは無駄であり、実行時間の
低下並びにメモリの利用効率低下となる。
In such an application, the reading of the vector or the stacking of the program counter only needs to be performed in units of 16 bits, that is, in units of 2 bytes. It is useless to access 4 bytes as described above. This leads to a decrease in memory use efficiency.

【0107】図44にはミニマムモード、マキシマムモ
ード夫々におけるメモリ上でのデータ配列形式の一例が
示される。特に制限はされないものの、64kバイトの
アドレス空間で動作するモードをミニマムモード、前記
の通り、64kバイト以上のアドレス空間で動作するモ
ードをマキシマムモードとする。
FIG. 44 shows an example of a data arrangement format on a memory in each of the minimum mode and the maximum mode. Although not particularly limited, a mode that operates in an address space of 64 kbytes is a minimum mode, and a mode that operates in an address space of 64 kbytes or more is a maximum mode as described above.

【0108】マキシマムモードでは、ベクタは4バイト
単位で4の倍数番地を先頭にして配置される。先頭1バ
イトは予約領域で、残りの3バイトがスタートアドレス
として使用される。スタックは、例外処理時並びにサブ
ルーチンコール時とも、4バイト単位で偶数番地を先頭
にして配置される。
In the maximum mode, the vector is arranged in 4-byte units starting from an address that is a multiple of four. The first byte is a reserved area, and the remaining three bytes are used as a start address. The stack is arranged starting from an even address in 4-byte units both in exception processing and in subroutine calls.

【0109】ミニマムモードでは、ベクタは2バイト単
位で偶数番地を先頭にして配置される。これらがスター
トアドレス(下位16ビット。上位8ビットは0とみな
される。)として使用される。スタックは、例外処理時
は、4バイト単位で偶数番地を先頭にしてコンディショ
ンコードレジスタCCR、予約領域、並びにプログラム
カウンタPCの下位16ビットが格納される。サブルー
チンコール時は、2バイト単位で偶数番地を先頭にして
PC下位16ビットが格納される。
In the minimum mode, vectors are arranged in 2-byte units starting from an even address. These are used as start addresses (the lower 16 bits; the upper 8 bits are regarded as 0). During exception processing, the stack stores the lower 16 bits of the condition code register CCR, the reserved area, and the program counter PC starting from an even address in 4-byte units. At the time of a subroutine call, the lower 16 bits of the PC are stored in 2-byte units starting from an even address.

【0110】図45には、ミニマムモードでのリセット
シーケンスのフローチャートが示される。図20の第3
ステップSa3及び第4ステップSa4が省略された他
は基本的に同一であり、第6ステップSa6′ではAバ
スの下位16ビットに前記ベクタの内容が出力される。
特に制限はされないものの、上位ビットは不定値であっ
て、アドレスバッファABで0に固定される。この場合
には実効アドレスの計算時に、拡張レジスタEiが影響
を受けない様にすることが望ましい。拡張レジスタEi
をデータレジスタとして任意に使用可能とするためであ
る。
FIG. 45 shows a flowchart of a reset sequence in the minimum mode. Third in FIG.
The steps are basically the same except that the step Sa3 and the fourth step Sa4 are omitted. In a sixth step Sa6 ', the contents of the vector are output to the lower 16 bits of the A bus.
Although not particularly limited, the upper bits are indefinite and are fixed to 0 in the address buffer AB. In this case, it is desirable that the extension register Ei is not affected when the effective address is calculated. Extension register Ei
As a data register.

【0111】図46にはミニマムモードでの実効アドレ
スの計算手法の一例が示される。ポストインクリメント
レジスタ間接とプリデクリメントレジスタ間接のときに
は、転送後に汎用レジスタRiH,RiLのみに、イン
クリメント,デクリメント結果が格納される。インクリ
メント,デクリメントによって、キャリ,ボローが発生
しても、拡張レジスタEiは影響されない。そのほかの
アドレッシングモードについては、アドレス計算に用い
いられるレジスタが更新されないため、マキシマムモー
ドと同一でよく、上位ビットをアドレスバッファABで
0に固定すればよい。
FIG. 46 shows an example of a method of calculating the effective address in the minimum mode. In the case of the post-increment register indirect and the pre-decrement register indirect, the increment and decrement results are stored only in the general-purpose registers RiH and RiL after the transfer. Even if a carry or borrow occurs due to the increment or decrement, the extension register Ei is not affected. The other addressing modes are the same as the maximum mode because the registers used for the address calculation are not updated, and the upper bits may be fixed to 0 in the address buffer AB.

【0112】図47には、ミニマムモードとマキシマム
モードとにおけるCPU1の動作の相異が示される。前
記のとおり、マキシマムモードでは、アドレスの最大本
数は24ビットであり、ベクタ,例外処理時のスタッ
ク,サブルーチンコール時のスタックはいずれもアドレ
ス24ビットを含み4バイト単位である。ミニマムモー
ドでは、アドレスの最大本数は16ビットであり、ベク
タ,サブルーチンコール時のスタックはいずれもアドレ
ス16ビット分の2バイトに縮小される。また、ポスト
インクリメントレジスタ間接,プリデクリメントレジス
タ間接時には、アドレス計算に用いた拡張アドレスの更
新は行なわない。
FIG. 47 shows a difference in operation of CPU 1 between the minimum mode and the maximum mode. As described above, in the maximum mode, the maximum number of addresses is 24 bits, and the vector, the stack for exception processing, and the stack for subroutine calls are all in units of 4 bytes including 24 bits for addresses. In the minimum mode, the maximum number of addresses is 16 bits, and the stack at the time of calling a vector or a subroutine is reduced to 2 bytes corresponding to the address 16 bits. Further, at the time of post-increment register indirect or pre-decrement register indirect, the extension address used for address calculation is not updated.

【0113】〔21〕シングルチップマイクロコンピュ
ータの動作モード 図48にはシングルチップマイクロコンピュータ100
の動作モードが示される。これに示される動作モードは
図1に示される動作モード信号MODE1〜MODE3
によって指定される。
[21] Operation Mode of Single-Chip Microcomputer FIG.
Is shown. The operation mode shown here is the operation mode signals MODE1 to MODE3 shown in FIG.
Specified by

【0114】アドレス空間は前述の通り、16M、1
M、64kバイトの3通りがある。ROM無効拡張モー
ドでは、広いアドレス空間を用いて大量のデータを扱う
ことを考え、16M、1Mバイトのアドレス空間を使用
可能とし、これに応じてアドレス出力本数(出力アドレ
ス信号のビット数)が決定される。また、リセット直後
に使用するバス幅をモードによって選択可能としてい
る。このため、ROM無効拡張モードは4通りのモード
がある。なお、バス幅は前記の通りレジスタの設定によ
って、ソフトウェアで再設定可能である。特に制限はさ
れないが、8ビットバスではデータバスの上位を使用す
る。
As described above, the address space is 16M, 1
M, 64 kbytes. In the ROM invalid expansion mode, considering the use of a large address space to handle a large amount of data, the 16 M and 1 M byte address spaces can be used, and the number of address outputs (the number of bits of the output address signal) is determined accordingly. Is done. Further, the bus width used immediately after the reset can be selected depending on the mode. For this reason, there are four types of ROM invalid extension modes. Note that the bus width can be reset by software by setting the register as described above. Although there is no particular limitation, the upper part of the data bus is used for the 8-bit bus.

【0115】ROM有効拡張モードでは、リセット直後
には内蔵ROM2によってCPUが動作するため、この
内蔵ROM2上のソフトウェアによって、アドレス本数
とバス幅を設定可能なため、モードは1通りとされる。
In the ROM effective extension mode, the CPU is operated by the built-in ROM 2 immediately after the reset, and the number of addresses and the bus width can be set by software on the built-in ROM 2, so that the mode is set to one mode.

【0116】シングルチップモードは、内蔵領域の合計
が64kバイト以下であれば、1つのモードでよいが、
前記の通りCPU1の動作が変更になるため、たとえば
ROM無効拡張モードと同一のソフトウェアとしたい場
合、および、将来拡張用に2通りのモードがある。
In the single chip mode, if the total area of the built-in area is 64 kbytes or less, one mode may be used.
As described above, since the operation of the CPU 1 is changed, there are two modes, for example, when it is desired to use the same software as the ROM invalid extension mode, and for future extension.

【0117】図49にはシングルチップマイクロコンピ
ュータ100の動作モード別の端子機能の一例が示され
る。
FIG. 49 shows an example of the terminal functions of the single-chip microcomputer 100 for each operation mode.

【0118】特に制限はされないものの、第1ポートI
OP61(ポート1)はアドレス0〜7、第2ポートI
OP62(ポート2)はアドレス8〜15、第3ポート
IOP63(ポート3)はアドレス16〜23、第4ポ
ートIOP64(ポート4)はアドレス8〜15、第5
ポートIOP65(ポート5)はアドレス0〜7、第6
ポートIOP6(ポート6)はバス制御信号、第7ポー
トIOP67(ポート7)はアドレスデコード信号と兼
用されており、動作モード及びレジスタの設定によって
機能がことなる。例えば、ROM無効拡張モードでは、
所定のアドレスが全て出力になるが、ROM有効拡張モ
ードでは、アドレスはリセット直後は出力にならず、ソ
フトウェアで所定のレジスタ(PDDR)に1をライト
して、出力とするとアドレス出力となる。
Although not particularly limited, the first port I
OP61 (port 1) has addresses 0 to 7, second port I
The OP62 (port 2) has addresses 8 to 15, the third port IOP 63 (port 3) has addresses 16 to 23, the fourth port IOP 64 (port 4) has addresses 8 to 15, and the fifth
Port IOP65 (port 5) has addresses 0-7,
The port IOP6 (port 6) is also used as a bus control signal, and the seventh port IOP67 (port 7) is also used as an address decode signal, and functions differ depending on the operation mode and register settings. For example, in ROM disabled extended mode,
All the predetermined addresses are output. However, in the ROM effective expansion mode, the address is not output immediately after reset, but if 1 is written to a predetermined register (PDDR) by software and output, the address is output.

【0119】アドレスデコード信号はアドレス空間を8
分割、すなわち16Mバイトのアドレス空間では2Mバ
イト単位で、1Mバイトのアドレス空間では128kバ
イト単位で分割し、それぞれ、1本ずつ割り当て、アド
レスがかかる領域をリードまたはライトしたとき活性状
態とされる。これは拡張モード時に有効で、ソフトウェ
アでレジスタ(PDDR)に1をライトして、出力とす
ると、アドレスデコード出力となる。但し、ROM無効
拡張モードでは、第一の領域、すなわち、ベクタ領域を
含む領域に相当するアドレスデコード信号はリセット直
後から出力される。これによって、リセットベクタやソ
フトウェアの先頭をかかる領域に設定すれば、リセット
直後からアドレスデコード信号を利用でき、外部のアド
レスのデコード回路を省くことができる。
The address decode signal occupies 8 address spaces.
It is divided, that is, divided in units of 2 Mbytes in a 16 Mbyte address space, and in units of 128 Kbytes in a 1 Mbyte address space, and each is assigned one by one. This is effective in the extension mode. If 1 is written to the register (PDDR) by software and output is performed, an address decode output is obtained. However, in the ROM invalid extension mode, the address decode signal corresponding to the first area, that is, the area including the vector area is output immediately after the reset. Thus, if the reset vector or the beginning of software is set in such an area, an address decode signal can be used immediately after reset, and an external address decode circuit can be omitted.

【0120】〔22〕DMA内蔵シングルチップマイク
ロコンピュータ 更に、本発明者は、CPU1のみがデータを処理するの
であっては、処理時間が必要以上に長くなってしまうこ
とに鑑みて、専用のデータ転送装置を内蔵することを検
討した。すなわち、いわゆるデータのブロック転送をC
PU1が転送命令によって行なう場合、データのリード
/ライトの他に、命令のリード時間などが必要である。
例えば、ポストインクリメントレジスタ間接・ロングワ
ードの転送命令を使用すれば、命令長2バイト、実行時
間7ステートの命令を2回使用すると、転送を行なう時
間は8ステートであっても、実行時間は14ステートに
なって効率が悪くなる。
[22] Single Chip Microcomputer with DMA Further, the present inventor considers that the processing time is unnecessarily long when only the CPU 1 processes data, so that the dedicated data transfer is performed. We considered incorporating a device. That is, the so-called block transfer of data is
When the PU1 performs a transfer instruction, it requires an instruction read time in addition to data read / write.
For example, if a post-increment register indirect / long word transfer instruction is used, if an instruction with an instruction length of 2 bytes and an execution time of 7 states is used twice, the execution time will be 14 even if the transfer time is 8 states. State becomes inefficient.

【0121】図50に本発明者によって検討された第2
の実施例であるシングルチップマイクロコンピュータ2
00のブロック図を示す。同図に示されるシングルチッ
プマイクロコンピュータ200は、図1のシングルチッ
プマイクロコンピュータ100に加えて、ダイレクトメ
モリアクセスコントローラ(DMAC)201を含み、
CPU1とDMAC201はバスコントローラ(BS
C)202を介して内部バス69に接続されている。D
MAC201はCPU1の指定に従って、データのリー
ド/ライトを行なうデータ転送装置であって、内部バス
69はバスコントローラ202の調停によってCPU1
又はDMAC201のいずれかによって使用される。
FIG. 50 shows a second example examined by the present inventor.
Single-chip microcomputer 2 which is an embodiment of the present invention
FIG. The single-chip microcomputer 200 shown in the figure includes a direct memory access controller (DMAC) 201 in addition to the single-chip microcomputer 100 of FIG.
The CPU 1 and the DMAC 201 are connected to a bus controller (BS
C) is connected to the internal bus 69 via 202). D
The MAC 201 is a data transfer device that reads / writes data according to the designation of the CPU 1.
Or used by either DMAC 201.

【0122】図51にはシングルチップマイクロコンピ
ュータ200のアドレスマップを示す。前記のとおり、
アドレスマップは2kバイトずつの8エリアに分割さ
れ、それぞれのエリアのアクセス方法は、バスコントロ
ーラ202に含まれる、4本のレジスタBSWCR、A
STCR、WSCER、MPXCRによって指定され
る。まずバス幅指定レジスタBSWCRは8ビットバス
を使用するか、16ビットバスを使用するかを指定す
る。例えばエリア0の外部空間に接続される図示はされ
ないメモリを16ビット構成とする場合には、BSWC
0ビットに1をセットし、エリア7の外部空間に接続さ
れる図示はされない入出力回路を8ビット構成とする場
合には、BSWCR7ビットを0にクリアすれば良い。
同様にアクセスステート指定レジスタASTCRは1回
のアクセスを2ステートで行なうか、3ステート以上で
行なうかを指定する。ウェイトステートコントロール許
可指定レジスタWSCERは、バスコントローラ202
に含まれるウェイトステートコントローラ(WSC)に
よるウェイト要求を禁止するか許可するかを指定する。
アドレスマルチプレクス指定レジスタMPXCRは、ア
ドレスをマルチプレクスしないか、ダイナミックランダ
ムアクセスメモリを接続するためにアドレスをマルチプ
レクスするかを指定する。但し、特に制限はされないも
のの、アクセスを2ステートとした場合にはウェイトと
アドレスマルチプレクスは禁止される。従って上記レジ
スタによって、指定されるエリアの属性は10通りであ
る。これらの属性に対してはCPU1、DMAC201
がそれぞれ判定してアクセス方法を決定するようにして
もよいが、そうすると、その処理は煩雑になり、相互に
同様の論理並びに回路をCPU1とDMAC201が二
重に持たなければならず、論理的並びに物理的規模の増
加を最小限とする本発明の目的を充分に満足することが
できなくなる。そこで、その様な制御をバスコントロー
ラに202に実行させることが得策と考えられる。
FIG. 51 shows an address map of the single-chip microcomputer 200. As mentioned above,
The address map is divided into eight areas of 2 kbytes each, and the access method of each area is determined by four registers BSWCR, A included in the bus controller 202.
Specified by STCR, WSCER, MPXCR. First, the bus width designation register BSWCR designates whether to use an 8-bit bus or a 16-bit bus. For example, when a memory (not shown) connected to the external space of the area 0 has a 16-bit configuration, the BSWC
If the 0 bit is set to 1 and the input / output circuit (not shown) connected to the external space of the area 7 has an 8-bit configuration, the BSWCR7 bit may be cleared to 0.
Similarly, access state designation register ASTCR designates whether one access is performed in two states or three or more states. The wait state control permission designation register WSCER is
Specifies whether to prohibit or permit the wait request by the wait state controller (WSC) included in the command.
The address multiplex designation register MPXCR designates whether to not multiplex the address or to multiplex the address to connect the dynamic random access memory. However, while there is no particular limitation, when access is made in two states, wait and address multiplexing are prohibited. Therefore, there are ten attributes of the area specified by the register. CPU1 and DMAC201 for these attributes
May be determined individually to determine the access method. However, in that case, the processing becomes complicated, and the CPU 1 and the DMAC 201 must have the same logic and circuit in duplicate. The purpose of the present invention, which minimizes the increase in physical scale, cannot be sufficiently satisfied. Therefore, it is considered to be advantageous to make the bus controller 202 execute such control.

【0123】図52にはバスコントローラ202の一例
ブロック図が示される。このバスコントローラ202
は、アドレスデコーダADRDEC、論理積回路AND
LOG、制御レジスタCONTREG、ウェイト制御回
路WSCONT、及びアクセス制御回路ACSCONT
によって構成される。アドレスデコーダADRDECは
CPU1又はDMAC201が出力するアドレス信号を
入力し、内蔵機能ブロックの選択信号を生成すると共
に、アドレス信号を出力する。制御レジスタCONTR
EGは、前記バス幅指定レジスタBSWCR、アクセス
ステート指定レジスタASTCR、ウェイトステートコ
ントロール許可指定レジスタWSCER、及びアドレス
マルチプレクス指定レジスタMPXCRを備え、CPU
1の制御でその内容が任意に設定されるようになってい
る。論理積回路ANDLOGは、アドレスデコーダAD
RDECを通して供給されるアドレス信号と制御レジス
タCONTREGに含まれるレジスタBSWCR,AS
TCR,WSCER,MPXCRの値の基づいて、ウェ
イト許可、バス幅、アクセスステート、及びアドレスマ
ルチプレクスに関する制御信号を生成して、アクセス制
御回路ACSCONTに与える。ウェイト制御回路WS
CONTは内蔵機能ブロックなどから発せられるウェイ
ト信号を受けて所要ステート数に応ずるウェイト要求を
アクセス制御回路ACSCONTに与える。アクセス制
御回路ACSCONTは、前記論理積回路ANDLOG
及びウェイト制御回路WSCONTなどから与えられる
信号を受けて、アクセス制御のための各種ストローブ信
号AS,HRD,LRD,HWR,LWR、並びにCP
U1やDMAC201のためのバッファ制御信号などを
生成する。
FIG. 52 is a block diagram showing an example of the bus controller 202. This bus controller 202
Is an address decoder ADRDEC, an AND circuit AND
LOG, control register CONTREG, wait control circuit WSCONT, and access control circuit ACSCONT
Composed of The address decoder ADRDEC receives an address signal output from the CPU 1 or the DMAC 201, generates a selection signal for a built-in functional block, and outputs an address signal. Control register CONTR
The EG includes the bus width designation register BSWCR, access state designation register ASTCR, wait state control permission designation register WSCER, and address multiplex designation register MPXCR.
The contents are set arbitrarily by the control of 1. The AND circuit ANDLOG includes the address decoder AD.
Address signals supplied through RDEC and registers BSWCR and AS included in control register CONTREG
Based on the values of TCR, WSCER, and MPXCR, control signals related to wait permission, bus width, access state, and address multiplex are generated and provided to the access control circuit ACSCONT. Wait control circuit WS
The CONT receives a wait signal issued from a built-in function block or the like and gives a wait request corresponding to a required number of states to the access control circuit ACSCONT. The access control circuit ACSCONT is connected to the AND circuit ANDLOG.
And a strobe signal AS, HRD, LRD, HWR, LWR, and CP for access control in response to a signal given from a weight control circuit WSCONT or the like.
A buffer control signal for U1 and DMAC 201 is generated.

【0124】DMAC201にデータ転送起動要因が発
生すると、DMACバス要求の信号が1レベルにされ
る。このバス要求に対して、所定のタイミングでバスコ
ントローラ202はDMAC201にバス使用を許可し
て、DMACバス許可の信号を1レベルとする。それ以
外の時はCPU1がバスを使用できる。バスの起動信号
やアドレス入力は、CPU1の出力とDMAC201の
出力との間でマルチプレクスされている。すなわち、D
MACバス許可の信号が1レベルであれば、DMAC2
01からのバスの起動信号やアドレス入力を受付け、そ
れ以外はCPU1からのバスの起動信号やアドレス入力
を受付ける。バスコントローラ202の内部の動作は、
CPU1によるアクセスとDMAC201によるアクセ
スの何れの場合も同一とされる。リード/ライト中にC
PU1/DMAC201に与えられるべきバッファ制御
信号もマルチプレクスされる。
When a data transfer activation factor occurs in the DMAC 201, the DMAC bus request signal is set to one level. In response to this bus request, the bus controller 202 permits the DMAC 201 to use the bus at a predetermined timing, and sets the DMAC bus permission signal to one level. At other times, the CPU 1 can use the bus. The bus start signal and the address input are multiplexed between the output of the CPU 1 and the output of the DMAC 201. That is, D
If the MAC bus permission signal is at one level, DMAC2
A bus start signal and an address input from the CPU 1 are received. Otherwise, a bus start signal and an address input from the CPU 1 are received. The internal operation of the bus controller 202 is as follows.
Both the access by the CPU 1 and the access by the DMAC 201 are the same. C during read / write
The buffer control signal to be provided to the PU1 / DMAC 201 is also multiplexed.

【0125】図53にはバスコントローラ202で制御
されるリードデータバッファの一例が示される。図35
との相違点は、データバスD15〜D0から第1のデー
タバッファ部分RDB1,RDB3にデータを供給する
ための構成である。すなわち、バスコントローラ202
が出力する制御信号RHH、RLH、RHL、RLLに
よって、データバス上位D15〜D8,下位D7〜D0
の何れからCPU1のリードデータバッファにデータを
格納するかがバイト単位で制御される。
FIG. 53 shows an example of a read data buffer controlled by the bus controller 202. FIG.
The difference from this is a configuration for supplying data from the data buses D15 to D0 to the first data buffer portions RDB1 and RDB3. That is, the bus controller 202
Control signals RHH, RLH, RHL, RLL output from the data buses D15 to D8 and D7 to D0.
Is controlled in units of bytes from which data is stored in the read data buffer of the CPU 1.

【0126】図54にはバスコントローラ202で制御
されるライトデータバッファの一例が示される。図37
との相違点は、ライトデータ出力バッファWDBOL,
WDBOHからデータバスD15〜D0にデータを出力
するための構成である。すなわち、制御信号WHH、W
LH、WHL、WLLによって、ライトデータ出力バッ
ファWDBOL,WDBOHの内容をデータバス上位D
15〜D8,下位D7〜D0の何れに出力するかがバイ
ト単位で制御される。
FIG. 54 shows an example of a write data buffer controlled by the bus controller 202. FIG.
The difference from the write data output buffer WDBOL,
This is a configuration for outputting data from WDBOH to data buses D15 to D0. That is, the control signals WHH, W
The contents of the write data output buffers WDBOL and WDBOH are changed to the upper data bus D by LH, WHL and WLL.
Which of 15 to D8 and lower D7 to D0 is output is controlled in byte units.

【0127】図55には図53に示されるリードデータ
バッファの動作タイミングチャートの一例が示される。
8ビットバス・3ステート領域に対してワードデータの
リードを行なった場合である。CPU1が出力するリー
ド信号RD,ワード信号WORDによってバスコントロ
ーラ202が起動される。この例に従うとバスアクセス
は1バイトずつ2回のリード動作とされ、偶数,奇数番
地の順で行なわれる。一回目のリード時にはデータバス
上位D15〜D8からリードデータバッファの上位にデ
ータが格納される。二回目のリード時にはデータバス上
位D15〜D8からリードデータバッファの下位にデー
タが格納される。この間ウェイト要求が1レベルとなっ
てCPU1は待機状態とされ、待機状態解除時点にはワ
ードデータがリードデータバッファに格納されている。
CPU1は例えばそのデータを用いて図20乃至図24
で説明したような動作を行うことができる。
FIG. 55 shows an example of an operation timing chart of the read data buffer shown in FIG.
This is a case where word data is read from an 8-bit bus / 3-state area. The bus controller 202 is started by the read signal RD and the word signal WORD output from the CPU 1. According to this example, the bus access is a two-byte read operation for each byte, and is performed in the order of even and odd addresses. At the time of the first read, data is stored in the upper part of the read data buffer from the data bus upper parts D15 to D8. At the time of the second read, data is stored in the lower part of the read data buffer from the upper data buses D15 to D8. During this time, the wait request becomes 1 level, and the CPU 1 enters the standby state. At the time of releasing the standby state, word data is stored in the read data buffer.
The CPU 1 uses the data, for example, in FIGS.
The operation as described in can be performed.

【0128】図56には図54に示されるライトデータ
バッファの動作タイミングチャートの一例が示される。
8ビットバス・3ステート領域に対してワードデータの
ライトを行なった場合である。CPU1が出力するライ
ト信号WR,ワード信号WORDによってバスコントロ
ーラ202は起動される。この例に従うとバスアクセス
は1バイトずつ2回のライト動作とされ、偶数,奇数番
地の順で行なわれる。CPU1の出力データは最初のス
テートでライトデータバッファWDBH,WDBL又は
WDBEに格納されている。一回目のライト時には上位
のライトデータ出力バッファWDBOHからデータバス
D15〜D0にデータを出力する。二回目のライト時に
は下位のライトデータ出力バッファWDBOLからデー
タバスD15〜D0にデータを出力する。この間ウェイ
ト要求が1レベルとなってCPU1は待機状態とされて
いる。
FIG. 56 shows an example of an operation timing chart of the write data buffer shown in FIG.
This is a case where word data is written to an 8-bit bus / 3-state area. The bus controller 202 is activated by the write signal WR and the word signal WORD output from the CPU 1. According to this example, the bus access is performed twice for each byte, and is performed in the order of even and odd addresses. The output data of the CPU 1 is stored in the write data buffer WDBH, WDBL or WDBE in the first state. At the time of the first write, data is output from the upper write data output buffer WDBOH to the data buses D15 to D0. At the time of the second write, data is output from the lower write data output buffer WDBOL to the data buses D15 to D0. During this time, the wait request is at 1 level, and the CPU 1 is in a standby state.

【0129】図57乃至図60には制御信号RHH、R
HL、RLH、RLL及び制御信号WHH、WHL、W
LH、WLLの出力仕様の一例が示される。同図におい
てサイズBはバイトであり、サイズWはワードである。
また、T1は第1ステート、T2は第2ステート、T3
は第3ステート、Twはウェイトステートである。更に
図において−は、それにに対応されるステートが存在し
ないことを意味する。尚、同図に示される仕様は、DM
AC201がリード/ライトを行なう場合も同様とされ
る。
FIGS. 57 to 60 show control signals RHH, R
HL, RLH, RLL and control signals WHH, WHL, W
An example of the output specifications of LH and WLL is shown. In the figure, the size B is a byte and the size W is a word.
T1 is the first state, T2 is the second state, T3
Is a third state, and Tw is a wait state. Furthermore, in the figure,-means that there is no state corresponding to it. The specifications shown in the figure are DM
The same applies to the case where the AC 201 performs read / write.

【0130】〔23〕CPUの変形例 図61にはCPUの別の実施例が示される。同図に示さ
れるCPUは、図19のCPU1に対して、アドレスバ
ッファAB(ABL,ABH,ABE)を32ビットに
拡張し、更に命令コード用のリードデータバッファID
BRを有している。命令コードの命令指定部(op)及
びレジスタ指定部(rs、rdなど)は前記命令コード
用のリードデータバッファIDBRに格納され、実効ア
ドレス部(d、aa、xx)は、前記同様にEXEC内
部のリードデータバッファRDBL,RDBH,RDB
Eに格納される。アドレスバッファABを32ビットに
拡張したのに伴い、命令コード中のディスプレースメン
ト並びに絶対アドレスの先頭の予約領域(図14及び図
16参照)などが使用され、汎用レジスタRiと拡張レ
ジスタEiの32ビット全体をアドレスレジスタとして
使用することが可能になる。これらに関しては前述の説
明から容易に実現できるので詳細な説明は省力する。
[23] Modified Example of CPU FIG. 61 shows another embodiment of the CPU. The CPU shown in the figure extends the address buffer AB (ABL, ABH, ABE) to 32 bits in addition to the CPU 1 of FIG.
It has BR. The instruction designating part (op) and the register designating part (rs, rd, etc.) of the instruction code are stored in the read data buffer IDBR for the instruction code, and the effective address part (d, aa, xx) is stored in the EXEC inside as described above. Read data buffers RDBL, RDBH, RDB
E. As the address buffer AB is expanded to 32 bits, the displacement in the instruction code and the reserved area at the head of the absolute address (see FIGS. 14 and 16) are used, and the 32-bits of the general-purpose register Ri and the extension register Ei are used. The whole can be used as an address register. Since these can be easily realized from the above description, detailed description will be omitted.

【0131】特に制限はされないものの、図61ではプ
ログラムカウンタPCL,PCH,PCEは24ビット
とされている。シングルチップマイクロコンピュータで
16Mバイトを超えるプログラムを作成することは極め
て少ないと考えられるので、問題はない。特にプログラ
ムカウンタを32ビットに拡張する場合は、EXEC内
部のプログラムカウンタPCを32ビットとする他、ベ
クタ領域,サブルーチンコール時のスタックを4バイト
とし、例外処理時のスタックは、プログラムカウンタP
Cに4バイト,コンディションコードレジスタCCRに
1バイトを含む6バイトとすれば良い。
Although not particularly limited, in FIG. 61, the program counters PCL, PCH, and PCE are 24 bits. It is unlikely that a program exceeding 16 Mbytes will be created by a single-chip microcomputer, so there is no problem. In particular, when the program counter is extended to 32 bits, the program counter PC in the EXEC is set to 32 bits, the vector area and the stack for subroutine calls are set to 4 bytes, and the stack for exception processing is set to the program counter P.
C may be 6 bytes including 4 bytes and the condition code register CCR may be 1 byte.

【0132】〔24〕実施例の効果 (1)全体で32ビットのレジスタRi、Eiを一括し
て或は一部をアドレスレジスタとして使用するととも
に、2分割して16ビットデータレジスタとし、さらに
16ビットデータレジスタの一方を8ビットレジスタと
して使用可能とすることによって、データ処理を効率良
く行ないつつ、16Mバイトの広いアドレス空間を使用
することができる。 (2)命令長を2バイト単位として、24ビット絶対ア
ドレス・ディスプレースメントを予約領域を含めて4バ
イトとすることにより、将来4Gバイトのアドレス空間
を使用することができる。 (3)8ビットレジスタとして利用可能なレジスタの数
と、16ビットレジスタとして利用可能なレジスタの数
を同数とすることにより、命令長を短縮してプログラム
効率を向上することができる。 (4)命令コード中のレジスタ指定部をレジスタ全体を
指定する3ビット及びレジスタの部分を指定する1ビッ
トで構成することにより、レジスタ選択回路の論理的・
物理的規模を縮小できる。 (5)命令コード中の実効アドレス指定部の最下位ビッ
トを命令コード中のワードの最下位ビットとすることに
より、実行部及び制御部の構成を単純化し、論理的並び
に物理的規模を縮小できる。 (6)ライトデータバッファを、内部バスに接続された
32ビットと、データバスに接続された16ビットで構
成することにより、ライトデータバッファの構成を単純
化し、論理的並びに物理的規模を縮小できる。 (7)リードデータバッファを内部バスに接続された3
2ビットとデータバスに接続された32ビットで構成
し、下位側16ビットは、リード時は常に入力し、上位
側はロングワードデータの下位ワードリード時には入力
を禁止する構成とすることにより、命令コード中の24
ビットの実効アドレス指定部とロングワードデータを同
様に扱うことができ、リードデータバッファの構成を単
純化し、論理的・物理的規模を縮小できる。 (8)アドレス空間中に異なるアクセスを行なう領域を
有し、かつ、CPUの他にリードライトを行なうデータ
転送装置がある場合、リードライトの制御は共通のバス
制御装置で行ない、バス制御装置がCPUまたは他のデ
ータ転送装置のリードデータバッファ及びライトデータ
バッファの制御を行ない、さらに必要に応じて、CPU
または他のデータ転送装置を待機状態とするように構成
することにより、シングルチップマイクロコンピュータ
全体の論理的並びに物理的規模を縮小できる。 (9)シングルチップマイクロコンピュータの論理的並
びに物理的規模を最小限として、64kバイト以上のア
ドレス空間を使用できる。
[24] Advantages of Embodiment (1) The 32-bit registers Ri and Ei are used collectively or partially as address registers, and are divided into two to form 16-bit data registers. By making one of the bit data registers usable as an 8-bit register, a wide address space of 16 Mbytes can be used while efficiently performing data processing. (2) By setting the instruction length to 2 bytes and setting the 24-bit absolute address displacement to 4 bytes including the reserved area, a 4 Gbyte address space can be used in the future. (3) By making the number of registers available as 8-bit registers and the number of registers available as 16-bit registers the same, instruction length can be reduced and program efficiency can be improved. (4) By configuring the register designating portion in the instruction code with 3 bits for designating the entire register and 1 bit for designating the register portion, the logical
Physical scale can be reduced. (5) By making the least significant bit of the effective address designating part in the instruction code the least significant bit of the word in the instruction code, the configurations of the execution part and the control part can be simplified, and the logical and physical scales can be reduced. . (6) By configuring the write data buffer with 32 bits connected to the internal bus and 16 bits connected to the data bus, the configuration of the write data buffer can be simplified, and the logical and physical scales can be reduced. . (7) When the read data buffer is connected to the internal bus
The instruction consists of 2 bits and 32 bits connected to the data bus. The lower 16 bits are always input when reading, and the upper is prohibited from inputting when reading the lower word of long word data. 24 in the code
The effective address designation part of bits and long word data can be handled in the same manner, so that the configuration of the read data buffer can be simplified and the logical and physical scales can be reduced. (8) If the address space has areas for different accesses and there is a data transfer device that performs read / write in addition to the CPU, read / write control is performed by a common bus controller. It controls the read data buffer and write data buffer of the CPU or other data transfer device, and furthermore, if necessary,
Alternatively, by configuring other data transfer devices to be in a standby state, the logical and physical scale of the entire single-chip microcomputer can be reduced. (9) The address space of 64 Kbytes or more can be used while minimizing the logical and physical scale of a single-chip microcomputer.

【0133】以上本発明者によってなされた発明は上記
実施例に限定されるものではなく、その要旨を逸脱しな
い範囲において種々変更可能である。例えば、CPU1
のブロック構成,レジスタ構成,具体的な論理回路例な
どについては何ら限定されない。レジスタのビット数あ
るいはレジスタの本数などは任意に選択することもでき
る。アドレッシングモードと実効アドレスの計算方法に
ついても種々の変形例を使用することができる。
The invention made by the present inventor is not limited to the above embodiment, but can be variously modified without departing from the gist of the invention. For example, CPU1
There is no limitation on the block configuration, register configuration, specific example of a logic circuit, and the like. The number of bits of the register or the number of registers can be arbitrarily selected. Various modifications can be used for the addressing mode and the method of calculating the effective address.

【0134】以上の説明では主として本発明者によって
なされた発明をその背景となった利用分野であるシング
ルチップマイクロコンピュータに適用した場合について
説明したが、それに限定されるものではなく、その他の
データ処理装置に適用可能であり、データの処理性能よ
りもデータの規模が重要である場合などに適用すること
ができる。
In the above description, the case where the invention made by the present inventor is mainly applied to a single-chip microcomputer which is the background of the application has been described. However, the present invention is not limited to this. The present invention can be applied to an apparatus, and can be applied to a case where data scale is more important than data processing performance.

【0135】[0135]

【発明の効果】本願において開示される発明のうち代表
的なものによって得られる効果を簡単に説明すれば下記
の通りである。
The effects obtained by typical ones of the inventions disclosed in the present application will be briefly described as follows.

【0136】すなわち、8ビットCPUの16ビット汎
用レジスタに16ビットの拡張レジスタを追加して、全
体で32ビットで構成されるようなデータ保持手段は、
データの保持には全部、又は2分割して、或は2分割し
た一方を更に2分割して使用可能であり、これによっ
て、ソフトウェア上並びにハードウェア上でのデータ保
持手段の使い勝手が良好になり、ひいては、データ処理
装置の論理的並びに物理的な規模の縮小を達成すること
ができる。また、データ保持手段の全体又は一部分を使
用したアドレスデータの保持という点に関しては、リニ
アに利用可能なアドレス空間の拡張が容易になり、ま
た、ページレジスタによるアドレス空間拡張技術に比べ
てプログラムの作成並びにコンパイルを容易化すること
ができる。したがって、高級言語により作成されたプロ
グラムを効率よく実行できる。
That is, a data holding means which is constructed by adding a 16-bit extension register to a 16-bit general-purpose register of an 8-bit CPU and comprising 32 bits in total is as follows.
The data can be held in whole or in two, or one of the two can be used by further dividing it into two parts, thereby improving the usability of the data holding means on software and hardware. Thus, the logical and physical scale of the data processing device can be reduced. In addition, in terms of holding address data using the whole or a part of the data holding means, it is easy to expand the address space that can be used linearly. In addition, compilation can be facilitated. Therefore, a program created in a high-level language can be executed efficiently.

【0137】nビットデータの演算命令と2nビットデ
ータの演算命令とを考慮したとき、全体を2等分割して
使用される部分と、2等分割された一方を更に2等分割
して使用される部分とを有するように個々のデータ保持
手段を構成すると共に、2等分割で利用される部分の全
体の数が、更に2等分割で利用される部分の全体の数と
等しくなるように、複数単位の前記データ保持手段を設
けることにより、命令長を短縮してプログラム効率を向
上させることができる。
In consideration of an operation instruction for n-bit data and an operation instruction for 2n-bit data, a portion used by dividing the whole into two equal parts, and one of the two equally divided parts are used by further dividing into two equal parts. Each data holding means is configured so as to have the following parts, and the total number of the parts used in the halving is further equal to the total number of the parts used in the halving. By providing a plurality of units of the data holding means, the instruction length can be shortened and the program efficiency can be improved.

【0138】命令の単位を、データの単位の2倍長にす
ることにより、将来におけるアドレス空間の拡張に容易
に対応できる。さらに、命令コード中の実効アドレス指
定部の最下位ビットを命令コード中のワードの最下位ビ
ットにすることにより、実行手段及び制御手段の構成を
単純化し、論理的並びに物理的な規模の縮小に寄与す
る。
By making the instruction unit twice as long as the data unit, it is possible to easily cope with future expansion of the address space. Further, by making the least significant bit of the effective address designating part in the instruction code the least significant bit of the word in the instruction code, the configuration of the execution means and the control means can be simplified, and the logical and physical scale can be reduced. Contribute.

【0139】データ保持手段を指定する部分が命令の単
位中の一部分に固定された命令フォーマットを採用する
ことにより、レジスタのような前記データ保持手段のた
めの選択回路若しくは命令デコード回路の論理的並びに
物理的な規模を縮小することができる。更にその場合
に、前記指定する部分を、複数単位の中から所要のデー
タ保持手段を指定する領域と、一つのデータ保持手段内
の何れの部分かを指定する領域とで構成し、更に、命令
中で指定されるデータサイズに基づいて、前記データ保
持手段内の何れの部分かを指定する領域が、2等分割さ
れた何れの部分を指定するのか、更に2等分割された何
れの部分を指定するのかを決定するようにすることによ
り、データ保持手段に格納されるデータ並びにアドレス
データが、バイト、ワード、ロングワードの数種類に亘
るときにも、命令フォーマット中におけるレジスタ指定
部のビット数を最小限に抑えることができる。
By adopting an instruction format in which the part for designating the data holding means is fixed to a part of the instruction unit, the logical arrangement of the selecting circuit for the data holding means such as a register or the instruction decoding circuit is improved. Physical scale can be reduced. Further, in that case, the designated portion is constituted by an area for designating a required data holding means from a plurality of units, and an area for designating any part in one data holding means, and further comprising an instruction Based on the data size specified in the area, the area for specifying which part in the data holding means specifies which part is divided into two equal parts, and further specifies which part is divided into two equal parts. By determining whether or not to specify, the number of bits of the register specification part in the instruction format can be changed even when the data and the address data stored in the data holding means are several types of bytes, words, and long words. Can be minimized.

【0140】データ保持手段などからのライトバッファ
手段には、前記データ保持手段のビット数に一致するビ
ット数の第1の部分と、前記データ保持手段の2等分割
された領域のビット数に一致するビット数の第2の部分
とを設け、データライトの指示に基づいて、データ保持
手段の内容を一括して前記第1の部分に格納し、第1の
部分に格納したデータを、2回に分けて第2の部分に転
送して出力する様にすることにより、ライトバッファ手
段の構成を単純化できると共に、データ処理装置の論理
的並びに物理的な規模の縮小に寄与する。
The write buffer means from the data holding means or the like has a first part of the number of bits corresponding to the number of bits of the data holding means and a number of bits equal to the number of bits of the equally divided area of the data holding means. A second part of the number of bits to be stored, and collectively store the contents of the data holding means in the first part based on a data write instruction, and store the data stored in the first part twice. By transferring the data to the second part and outputting the data, the configuration of the write buffer means can be simplified, and the logical and physical scale of the data processing device can be reduced.

【0141】データ保持手段などへのリードバッファ手
段に対しては、前記データ保持手段のビット数に一致す
るビット数を全体として備え、且つ、上位側と下位側に
2等分割され、データリードの指示に基づいて、下位側
はリード時に常にリードデータが格納され、上位側は格
納するかしないかが指定されるようにすることにより、
リードバッファ手段の構成を単純化できると共に、デー
タ処理装置の論理的並びに物理的な規模の縮小に寄与す
る。
The read buffer means for the data holding means and the like is provided with the number of bits corresponding to the number of bits of the data holding means as a whole, and is equally divided into an upper side and a lower side to read data. Based on the instruction, the lower side always stores read data at the time of reading, and the upper side specifies whether to store it or not,
The structure of the read buffer means can be simplified, and the logical and physical scale of the data processing device can be reduced.

【0142】アドレス空間中に異なる状態でアクセスを
行なう領域を有し、且つ、CPUのようなデータ処理装
置の他にリードライトを行なうデータ転送装置があると
き、リードライトの制御は共通のバス制御装置で行なう
と共に、このバス制御装置がCPUまたは他のデータ転
送装置に含まれるリードバッファ手段やライトバッファ
手段の制御を行ない、さらに必要に応じて、CPUまた
は他のデータ転送装置を待機状態とするように構成する
ことにより、バスアクセスのための構成という点におい
てマイクロコンピュータ全体の論理的並びに物理的な規
模を縮小する。
When the address space has areas for accessing in different states and there is a data transfer device for reading and writing in addition to a data processing device such as a CPU, the read / write control is performed by a common bus control. The bus control device controls the read buffer means and the write buffer means included in the CPU or other data transfer device, and if necessary, sets the CPU or other data transfer device in a standby state. With this configuration, the logical and physical scale of the entire microcomputer is reduced in terms of the configuration for bus access.

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

【図1】図1は本発明の第一の実施例に係るシングルチ
ップマイクロコンピュータのブロック図である。
FIG. 1 is a block diagram of a single-chip microcomputer according to a first embodiment of the present invention.

【図2】図2は本発明者によって先に検討されたレジス
タ構成の一例説明図である。
FIG. 2 is a diagram illustrating an example of a register configuration that has been studied by the inventor before;

【図3】図3は図2のレジスタ構成におけるデータ構成
図である。
FIG. 3 is a data configuration diagram in the register configuration of FIG. 2;

【図4】図4は図2のレジスタ構成を採用する場合にお
けるメモリ上のデータ構成図である。
FIG. 4 is a data configuration diagram on a memory when the register configuration of FIG. 2 is adopted;

【図5】図5は本発明に係るデータ処理装置の一実施例
であるCPUのレジスタ構成説明図である。
FIG. 5 is an explanatory diagram of a register configuration of a CPU which is an embodiment of the data processing device according to the present invention.

【図6】図6はCPUのレジスタ上のデータ構成図であ
る。
FIG. 6 is a data configuration diagram on a register of a CPU.

【図7】図7はCPUが管理するメモリ上のデータ構成
の一例説明図である。
FIG. 7 is a diagram illustrating an example of a data configuration on a memory managed by a CPU;

【図8】図8はCPUによる実効アドレス計算方法の一
例説明図である。
FIG. 8 is an explanatory diagram of an example of an effective address calculation method by a CPU.

【図9】図9はCPUによる実効アドレス計算方法の他
の例の説明図である。
FIG. 9 is an explanatory diagram of another example of the effective address calculation method by the CPU.

【図10】図10はCPUによる実効アドレス計算方法
の別の例の説明図である。
FIG. 10 is an explanatory diagram of another example of the effective address calculation method by the CPU.

【図11】図11はCPUの命令フォーマットの一例説
明図である。
FIG. 11 is an explanatory diagram of an example of a command format of a CPU.

【図12】図12はCPUの他の命令フォーマットの説
明図である。
FIG. 12 is an explanatory diagram of another instruction format of the CPU.

【図13】図13はCPUのその他の命令フォーマット
の説明図である。
FIG. 13 is an explanatory diagram of another instruction format of the CPU.

【図14】図14はCPUの別の命令フォーマットの説
明図である。
FIG. 14 is an explanatory diagram of another instruction format of the CPU.

【図15】図15はCPUの更に別の命令フォーマット
の説明図である。
FIG. 15 is an explanatory diagram of still another instruction format of the CPU.

【図16】図16はCPUの更に他の命令フォーマット
の説明図である。
FIG. 16 is an explanatory diagram of still another instruction format of the CPU.

【図17】図17はCPUの更にその他の命令フォーマ
ットの説明図である。
FIG. 17 is an explanatory diagram of still another instruction format of the CPU.

【図18】図18はCPUの残りの一部の命令フォーマ
ットの説明図である。
FIG. 18 is an explanatory diagram of the instruction format of the remaining part of the CPU.

【図19】図19はCPUの一実施例ブロック図であ
る。
FIG. 19 is a block diagram of an embodiment of a CPU.

【図20】図20はCPUの内部動作フローチャートの
一例説明図である。
FIG. 20 is an explanatory diagram of an example of an internal operation flowchart of a CPU;

【図21】図21はCPUの他の内部動作のフローチャ
ートである。
FIG. 21 is a flowchart of another internal operation of the CPU.

【図22】図22はCPUのその他の内部動作のフロー
チャートである。
FIG. 22 is a flowchart of another internal operation of the CPU.

【図23】図23はCPUの別の内部動作のフローチャ
ートである。
FIG. 23 is a flowchart of another internal operation of the CPU.

【図24】図24はCPUの更に別の内部動作のフロー
チャートである。
FIG. 24 is a flowchart of yet another internal operation of the CPU.

【図25】図25はCPUの算術演算命令の説明図であ
る。
FIG. 25 is an explanatory diagram of an arithmetic operation instruction of the CPU.

【図26】図26はCPUの命令とアドレッシングモー
ドとの組合せを示す説明図である。
FIG. 26 is an explanatory diagram showing a combination of a CPU instruction and an addressing mode.

【図27】図27はCPUのレジスタの具体的な回路構
成である。
FIG. 27 is a specific circuit configuration of a register of the CPU.

【図28】図28はCPUのレジスタの一例動作タイミ
ングチャートである。
FIG. 28 is an example operation timing chart of a register of the CPU;

【図29】図29はCPUのレジスタの他の動作タイミ
ングチャートの説明図である。
FIG. 29 is an explanatory diagram of another operation timing chart of the register of the CPU.

【図30】図30はCPUに含まれるレジスタ選択部の
回路説明図である。
FIG. 30 is a circuit diagram of a register selection unit included in the CPU.

【図31】図31はレジスタの指定態様に関する説明図
である。
FIG. 31 is an explanatory diagram of a register designation mode;

【図32】図32はレジスタ選択部の一例動作タイミン
グチャートである。
FIG. 32 is an example operation timing chart of a register selection unit;

【図33】図33はレジスタ選択部の一例構成説明図で
ある。
FIG. 33 is a diagram illustrating an example of a configuration of a register selection unit;

【図34】図34はCPUに含まれる内部バスのセレク
タの一例回路構成である。
FIG. 34 is an example circuit configuration of a selector of an internal bus included in a CPU.

【図35】図35はリードデータバッファの一例回路構
成である。
FIG. 35 shows an example circuit configuration of a read data buffer.

【図36】図36はリードデータバッファの動作タイミ
ングチャートである。
FIG. 36 is an operation timing chart of the read data buffer.

【図37】図37はライトデータバッファの一例回路構
成である。
FIG. 37 shows an example circuit configuration of a write data buffer.

【図38】図38はリードデータバッファの動作タイミ
ングチャートである。
FIG. 38 is an operation timing chart of the read data buffer.

【図39】図39はアドレスバッファの一例回路構成で
ある。
FIG. 39 is a circuit configuration example of an address buffer;

【図40】図40はアドレスバッファの動作タイミング
チャートである。
FIG. 40 is an operation timing chart of an address buffer.

【図41】図41はアドレスバッファの他の例を示す構
成説明図である。
FIG. 41 is a configuration explanatory diagram showing another example of the address buffer.

【図42】図42は図41のアドレスバッファの動作タ
イミングチャートである。
FIG. 42 is an operation timing chart of the address buffer of FIG. 41;

【図43】図43はCPUの一例アドレスマップであ
る。
FIG. 43 is an example address map of a CPU;

【図44】図44はモード別のメモリ上のデータ構成説
明図である。
FIG. 44 is an explanatory diagram of a data configuration on a memory for each mode.

【図45】図45はミニマムモード時におけるCPU内
部の一例動作フローチャートである。
FIG. 45 is a flowchart showing an example of the operation inside the CPU in the minimum mode.

【図46】図46はミニマムモード時における実効アド
レス計算手法の一例説明図である。
FIG. 46 is an explanatory diagram of an example of an effective address calculation method in the minimum mode.

【図47】図47はモード別のCPUの動作説明図であ
る。
FIG. 47 is an explanatory diagram of the operation of the CPU in each mode.

【図48】図48はシングルチップマイクロコンピュー
タの動作モード説明図である。
FIG. 48 is an explanatory diagram of an operation mode of the single-chip microcomputer.

【図49】図49はシングルチップマイクロコンピュー
タの端子機能説明図である。
FIG. 49 is an explanatory diagram of terminal functions of a single-chip microcomputer.

【図50】図50は本発明の第二の実施例に係るシング
ルチップマイクロコンピュータのブロック図である。
FIG. 50 is a block diagram of a single-chip microcomputer according to a second embodiment of the present invention.

【図51】図51は図50のシングルチップマイクロコ
ンピュータにおけるCPUのアドレスマップである。
FIG. 51 is an address map of a CPU in the single-chip microcomputer of FIG. 50;

【図52】図52は図50のシングルチップマイクロコ
ンピュータに含まれるバスコントローラのブロック図で
ある。
FIG. 52 is a block diagram of a bus controller included in the single-chip microcomputer of FIG. 50;

【図53】図53は図50のCPUに適用されるリード
データバッファの一例説明図である。
FIG. 53 is an explanatory diagram of an example of a read data buffer applied to the CPU of FIG. 50;

【図54】図54は図50のCPUに適用されるライト
データバッファの一例説明図である。
FIG. 54 is an explanatory diagram of an example of a write data buffer applied to the CPU of FIG. 50;

【図55】図55はバスコントローラ及びCPUに関す
る一例動作タイミングチャートである。
FIG. 55 is an example operation timing chart for a bus controller and a CPU;

【図56】図56はバスコントローラ及びCPUに関す
る他の動作タイミングチャートである。
FIG. 56 is another operation timing chart relating to the bus controller and the CPU.

【図57】図57はバスコントローラの一例動作説明図
である。
FIG. 57 is a diagram illustrating an example of operation of a bus controller;

【図58】図58はバスコントローラの他の動作説明図
である。
FIG. 58 is another operation explanatory view of the bus controller;

【図59】図59バスコントローラのその他の動作説明
図である。
FIG. 59 is another explanatory diagram of the operation of the bus controller.

【図60】図60はバスコントローラの別の動作説明図
である。
FIG. 60 is an explanatory diagram of another operation of the bus controller.

【図61】図61はCPUの別の実施例ブロック図であ
る。
FIG. 61 is a block diagram showing another embodiment of a CPU.

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

1 CPU 2 ROM 3 RAM 4 タイマ 5 SCI 100 シングルチップマイクロコンピュータ R0L,R0H〜R7L,R7H 汎用レジスタ E0〜E7 拡張レジスタ PC プログラムカウンタ SEL セレクタ回路部 EXE 実行部 CONT 制御部 REJSEL レジスタ選択回路部 ABL,ABH,ABE アドレスバッファ ALUL,ALUH,ALUE 算術論理演算器 RDBL,RDBH,RDBE リードデータバッファ RDB1,RDB3 第1のリードデータバッファ部分 RDB2,RDB4 第2のリードデータバッファ部分 WDBL,WDBH,WDBE ライトデータバッファ WDBOL,WDBOH ライトデータ出力バッファ 200 シングルチップマイクロコンピュータ 201 DMAC 202 バスコントローラ ACSCONT アクセス制御回路 BSWCR バス幅指定レジスタ ASTCR アクセスステート指定レジスタ WSCER ウェイトステートコントロール許可指定レ
ジスタ MPXCR アドレスマルチプレクス指定レジスタ
1 CPU 2 ROM 3 RAM 4 Timer 5 SCI 100 Single-chip microcomputer R0L, R0H to R7L, R7H General-purpose register E0 to E7 Extension register PC Program counter SEL Selector circuit section EXEC execution section CONT control section REJSEL Register selection circuit section ABL, ABH , ABE Address buffer ALUL, ALUH, ALUE Arithmetic logic unit RDBL, RDBH, RDBE Read data buffer RDB1, RDB3 First read data buffer part RDB2, RDB4 Second read data buffer part WDBL, WDBH, WDBE Write data buffer WDVOL , WDBOH write data output buffer 200 single chip microcomputer 201 DMAC 202 bus controller ACSCONT access control circuit BSWCR bus width specification register ASTCR access state specification register WSCER wait state control permission specification register MPXCR address multiplex specification register

───────────────────────────────────────────────────── フロントページの続き (58)調査した分野(Int.Cl.7,DB名) G06F 9/30 - 9/355 G06F 7/00 G06F 12/00 - 12/06 ──────────────────────────────────────────────────続 き Continued on the front page (58) Field surveyed (Int.Cl. 7 , DB name) G06F 9/30-9/355 G06F 7/00 G06F 12/00-12/06

Claims (9)

(57)【特許請求の範囲】(57) [Claims] 【請求項1】 複数の汎用レジスタと、上記複数の汎用
レジスタに連結された算術論理演算回路と、上記複数の
汎用レジスタに連結された選択回路とを有するデータ処
理装置であって、 上記複数の汎用レジスタの各々は第1ビット長であり、 上記複数の汎用レジスタの各々は、第2ビット長の第1
部分及び第2ビット長の第2部分を含み、 上記第2部分の各々は、第3ビット長の第3部分及び第
3ビット長の第4部分を含み、 上記選択回路は、 上記第1ビット長の演算を指示する第1命令に応答し
て、上記複数の汎用レジスタの1つを選択し、 上記第2ビット長の演算を指示する第2命令に応答し
て、上記複数の汎用レジスタの1つの、上記第1部分及
び第2部分の何れかの部分を選択し、 上記第3ビット長の演算を指示する第3命令に応答し
て、上記複数の汎用レジスタの1つの、上記第3部分及
び第4部分の何れかの部分を選択するものであり、 上記算術論理演算回路は、 上記汎用レジスタの第1部分に連結され、第2ビット長
の演算を実行可能な第1ユニットと、 上記汎用レジスタの第3部分に連結され、第3ビット長
の演算を実行可能な第2ユニットと、 上記汎用レジスタの第4部分に連結され、第3ビット長
の演算を実行可能な第3ユニットとを含むものであ るこ
とを特徴とするデータ処理装置。
1. A data processing apparatus comprising: a plurality of general-purpose registers; an arithmetic and logic operation circuit connected to the plurality of general-purpose registers; and a selection circuit connected to the plurality of general-purpose registers. Each of the general-purpose registers has a first bit length, and each of the plurality of general-purpose registers has a first bit length of a second bit length.
And a second portion of a second bit length, wherein each of the second portions includes a third portion of a third bit length and a fourth portion of a third bit length, wherein the selection circuit comprises: Selecting one of the plurality of general-purpose registers in response to a first instruction instructing a long operation, and selecting one of the plurality of general-purpose registers in response to a second instruction instructing the second bit length operation One of the first part and the second part is selected, and in response to a third instruction instructing the operation of the third bit length, one of the plurality of general-purpose registers, all SANYO for selecting any part of the portion and the fourth portion, the arithmetic and logic circuit is connected to the first portion of the general purpose register, the second bit length
And a third unit connected to the third part of the general-purpose register, and having a third bit length.
And a third unit connected to the fourth part of the general-purpose register and having a third bit length.
The data processing apparatus according to claim der Rukoto those containing a third unit capable of performing operations.
【請求項2】 上記データ処理装置は、1つの半導体基
板上に形成されて成るものであることを特徴とする請求
項1記載のデータ処理装置。
2. The data processing apparatus according to claim 1, wherein said data processing apparatus is formed on one semiconductor substrate.
【請求項3】 上記第1ビット長は上記第2ビット長の
2倍であり、上記第2ビット長は上記第3ビット長の2
倍であることを特徴とする請求項2記載のデータ処理装
置。
3. The first bit length is twice the second bit length, and the second bit length is two times the third bit length.
3. The data processing apparatus according to claim 2, wherein the number is doubled.
【請求項4】 上記第1ビット長は32ビット、上記第
2ビット長は16ビット、上記第3ビット長は8ビット
であることを特徴とする請求項記載のデータ処理装
置。
4. The data processing apparatus according to claim 3 , wherein said first bit length is 32 bits, said second bit length is 16 bits, and said third bit length is 8 bits.
【請求項5】 複数の汎用レジスタと、上記複数の汎用
レジスタに連結され命令の解読結果に応答して演算動作
を行う算術論理演算回路と、上記複数の汎用レジスタに
連結された選択回路とを有するデータ処理装置であっ
て、 上記複数の汎用レジスタの各々のビット長は4N(Nは
整数)であり、 上記複数の汎用レジスタの各々は、ビット長が2Nであ
る第1部分及びビット長が2Nである第2部分から成
り、 上記第2部分の各々は、ビット長がNである第3部分及
びビット長がNである第4部分から成り、 上記命令は、オペレーションコード領域と、レジスタ番
号指定領域と、レジスタエリア指定領域とを含むフォー
マットを有し、 上記選択回路によって、 上記複数の汎用レジスタの1つが、上記レジスタ番号指
定領域の情報、及びオペレーションコード領域によるビ
ット長4Nの演算に応答して選択され、 上記複数の汎用レジスタの1つであって上記第1部分及
び第2部分の何れかの部分が、上記レジスタ番号指定領
域の情報、上記レジスタエリア指定領域の情報、及び上
記オペレーションコード領域によるビット長2Nの演算
に応答して選択され、 上記複数の汎用レジスタの1つであって上記第3部分及
び第4部分の何れかの部分が、上記レジスタ番号指定領
域の情報、上記レジスタエリア指定領域の情報、及び上
記オペレーションコード領域によるビット長Nの演算に
応答して選択されるものであることを特徴とするデータ
処理装置。
5. An arithmetic and logic circuit connected to the plurality of general-purpose registers, connected to the plurality of general-purpose registers, and performing an arithmetic operation in response to an instruction decoding result, and a selection circuit connected to the plurality of general-purpose registers. The bit length of each of the plurality of general-purpose registers is 4N (N is an integer), and each of the plurality of general-purpose registers has a first portion having a bit length of 2N and a bit length of made from the second portion is 2N, each of said second portion, third portion and the bit length bit length is N is made from a fourth portion which is N, the instruction includes a operation code area, register and the number specified area, including Four and a register area specified area
One of the plurality of general-purpose registers is selected by the selection circuit in response to the information of the register number designation area and the operation of the bit length 4N by the operation code area; One of the first part and the second part is responsive to the calculation of the bit length 2N by the information of the register number designation area, the information of the register area designation area, and the operation code area. One of the plurality of general purpose registers, wherein one of the third part and the fourth part is the information of the register number designation area, the information of the register area designation area, and the operation code A data processing device which is selected in response to a calculation of a bit length N by a region.
【請求項6】 上記データ処理装置は、1つの半導体基
板上に形成されて成るものであることを特徴とする請求
記載のデータ処理装置。
6. The data processing apparatus according to claim 5 , wherein said data processing apparatus is formed on one semiconductor substrate.
【請求項7】 上記算術論理演算回路は、 上記汎用レジスタの第1部分に連結され、ビット長2N
の演算を実行可能な第1ユニットと、 上記汎用レジスタの第3部分に連結され、ビット長Nの
演算を実行可能な第2ユニットと、 上記汎用レジスタの第4部分に連結され、ビット長Nの
演算を実行可能な第3ユニットとを含むものであること
を特徴とする請求項記載のデータ処理装置。
7. The arithmetic logic circuit is connected to a first part of the general-purpose register and has a bit length of 2N.
And a second unit coupled to the third part of the general-purpose register and capable of performing an operation of bit length N, and a second unit coupled to the fourth part of the general-purpose register and The data processing apparatus according to claim 6 , further comprising a third unit capable of executing the calculation of (3).
【請求項8】 上記Nは8であることを特徴とする請求
記載のデータ処理装置。
8. The data processing apparatus according to claim 6 , wherein said N is eight.
【請求項9】 上記汎用レジスタ数が8であり、 上記レジスタ番号指定領域は3ビットからなり、 上記レジスタエリア指定領域は1ビットから成るもので
あることを特徴とする請求項記載のデータ処理装置。
9. A above general register number 8, the register number designated region consists of three bits, data processing according to claim 8, wherein said register area specified region, characterized in that it is made of 1 bit apparatus.
JP07615192A 1991-05-08 1992-02-27 Data processing device Expired - Lifetime JP3154542B2 (en)

Priority Applications (5)

Application Number Priority Date Filing Date Title
JP07615192A JP3154542B2 (en) 1992-02-27 1992-02-27 Data processing device
KR1019920007701A KR100272622B1 (en) 1991-05-08 1992-05-07 Data processing device
US08/583,763 US5687344A (en) 1991-05-08 1996-01-10 Single-chip microcomputer having an expandable address area
US08/582,379 US5666510A (en) 1991-05-08 1996-01-11 Data processing device having an expandable address space
US08/607,568 US5771363A (en) 1991-05-08 1996-02-27 Single-chip microcomputer having an expandable address area

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP07615192A JP3154542B2 (en) 1992-02-27 1992-02-27 Data processing device

Publications (2)

Publication Number Publication Date
JPH05241826A JPH05241826A (en) 1993-09-21
JP3154542B2 true JP3154542B2 (en) 2001-04-09

Family

ID=13597026

Family Applications (1)

Application Number Title Priority Date Filing Date
JP07615192A Expired - Lifetime JP3154542B2 (en) 1991-05-08 1992-02-27 Data processing device

Country Status (1)

Country Link
JP (1) JP3154542B2 (en)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP3583443B2 (en) * 1997-04-08 2004-11-04 株式会社ソニー・コンピュータエンタテインメント Arithmetic device and arithmetic method
JP4073721B2 (en) 2002-06-28 2008-04-09 株式会社ルネサステクノロジ Data processing device

Also Published As

Publication number Publication date
JPH05241826A (en) 1993-09-21

Similar Documents

Publication Publication Date Title
JP5199931B2 (en) 8-bit microcontroller with RISC architecture
JPH0827716B2 (en) Data processing device and data processing method
JP4226085B2 (en) Microprocessor and multiprocessor system
JP2002539519A (en) Register file indexing method and apparatus for providing indirect control of register addressing in a VLIW processor
EP0601715A1 (en) Bus of CPU core optimized for accessing on-chip memory devices
KR100272622B1 (en) Data processing device
JP2001092662A (en) Processor core and processor using the same
JPH0528097A (en) Microprocessor
US6438683B1 (en) Technique using FIFO memory for booting a programmable microprocessor from a host computer
JPH0736691A (en) Expandable central processing unit
JP3510729B2 (en) Instruction execution method and instruction execution device
KR100277805B1 (en) Data processing device
JP3154542B2 (en) Data processing device
JP2556182B2 (en) Data processing device
JP3650519B2 (en) Microcomputer
JP3669984B2 (en) Microcomputer
JP3486630B2 (en) Data processing device
JP3539951B2 (en) Data processing device
JP3027627B2 (en) Arithmetic processor of programmable controller
JP3760093B2 (en) Microcomputer
JP2741514B2 (en) Multi CPU system
JP2005353105A (en) Data processing device and microcomputer
JP3003292B2 (en) Data alignment equipment
JP3269435B2 (en) Bus interface unit
JP2696578B2 (en) Data processing device

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: 20010116

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

Free format text: PAYMENT UNTIL: 20080202

Year of fee payment: 7

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

Free format text: PAYMENT UNTIL: 20090202

Year of fee payment: 8

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

Free format text: PAYMENT UNTIL: 20090202

Year of fee payment: 8

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

Free format text: PAYMENT UNTIL: 20100202

Year of fee payment: 9

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

Free format text: PAYMENT UNTIL: 20110202

Year of fee payment: 10

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

Free format text: PAYMENT UNTIL: 20110202

Year of fee payment: 10

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

Free format text: PAYMENT UNTIL: 20130202

Year of fee payment: 12

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

Free format text: PAYMENT UNTIL: 20130202

Year of fee payment: 12

S111 Request for change of ownership or part of ownership

Free format text: JAPANESE INTERMEDIATE CODE: R313111

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

Free format text: PAYMENT UNTIL: 20130202

Year of fee payment: 12

R350 Written notification of registration of transfer

Free format text: JAPANESE INTERMEDIATE CODE: R350

EXPY Cancellation because of completion of term
FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20130202

Year of fee payment: 12