JP3432532B2 - Data processing device - Google Patents

Data processing device

Info

Publication number
JP3432532B2
JP3432532B2 JP22644792A JP22644792A JP3432532B2 JP 3432532 B2 JP3432532 B2 JP 3432532B2 JP 22644792 A JP22644792 A JP 22644792A JP 22644792 A JP22644792 A JP 22644792A JP 3432532 B2 JP3432532 B2 JP 3432532B2
Authority
JP
Japan
Prior art keywords
address
register
data
mode
bit
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
JP22644792A
Other languages
Japanese (ja)
Other versions
JPH0651981A (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 JP22644792A priority Critical patent/JP3432532B2/en
Priority to KR1019930014080A priority patent/KR100277805B1/en
Publication of JPH0651981A publication Critical patent/JPH0651981A/en
Priority to US08/582,379 priority patent/US5666510A/en
Application granted granted Critical
Publication of JP3432532B2 publication Critical patent/JP3432532B2/en
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/34Addressing or accessing the instruction operand or the result ; Formation of operand address; Addressing modes
    • G06F9/355Indexed addressing

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Software Systems (AREA)
  • Executing Machine-Instructions (AREA)
  • Advance Control (AREA)

Description

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

【0001】[0001]

【産業上の利用分野】本発明は、データ処理装置にかか
り、例えば、シングルチップマイクロコンピュータの中
央処理装置に利用して有効な技術に関するものである。
BACKGROUND OF THE INVENTION 1. Field of the Invention The present invention relates to a data processing device and, for example, to a technique effectively used for a central processing unit of a single chip microcomputer.

【0002】[0002]

【従来の技術】シングルチップマイクロコンピュータに
は、それらの中央処理装置(以下単にCPUとも記す)
が主として扱うデータ長によって4ビット、8ビット、
16ビットマイクロコンピュータなどがある。現在、こ
れらの中では8ビットシングルチップマイクロコンピュ
ータが最も多く使用され、機器組込制御用として用いら
れている。このような8ビットシングルチップマイクロ
コンピュータとしては、(株)日立製作所平成元年6月
発行『H8/330 HD6473308 HD643
3308 ハードウェアマニュアル』などがある。8ビ
ットシングルチップマイクロコンピュータの中央処理装
置(以下8ビットCPU)は主として扱うデータ長が8
ビットであり、このため、8ビットCPUは8ビット長
のレジスタまたはアキュムレータと、かつ8ビットレジ
スタの2倍長である16ビットレジスタを有する。これ
らの8ビットCPUは、特に制限はされないものの、デ
ータ処理には主として8ビットレジスタまたは16ビッ
トレジスタを使用し、メモリを参照するためのアドレス
レジスタとしては16ビットレジスタのみを使用する。
このようなアドレスレジスタとしての16ビットレジス
タはインデックスレジスタ、スタックポインタ、プログ
ラムカウンタなどと呼ばれる場合がある。
2. Description of the Related Art A single-chip microcomputer has a central processing unit (hereinafter also simply referred to as a CPU).
4 bits, 8 bits,
There are 16-bit microcomputers and the like. At present, the 8-bit single-chip microcomputer is most often used among these, and is used for device embedded control. An example of such an 8-bit single-chip microcomputer is "H8 / 330 HD6473308 HD643" issued by Hitachi, Ltd. in June 1989.
3308 hardware manual ”. A central processing unit of an 8-bit single-chip microcomputer (hereinafter referred to as an 8-bit CPU) mainly handles a data length of 8
Bits, and therefore an 8-bit CPU has a register or accumulator that is 8-bit long, and a 16-bit register that is twice as long as the 8-bit register. Although not particularly limited, these 8-bit CPUs mainly use 8-bit registers or 16-bit registers for data processing, and use only 16-bit registers as address registers for referring to a memory.
The 16-bit register as such 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 the memory, it is limited to allocating it in a continuous 2-byte area starting from an even number. Further, the operation instruction of the 8-bit CPU is allowed only between the registers inside the CPU, and the operation of the data arranged in the memory must be performed by the operation instruction after the data is once transferred to the register inside the CPU. I have to. Instead of having such restrictions,
The internal configuration of the CPU, particularly the configuration of the control unit that controls the execution state of the CPU, is simplified, and the logical and physical scales are reduced. Manufacturing costs can be reduced as a result of the reduction of the logical and physical scales. Further, as a secondary effect, it is possible to improve the operation speed. That is,
A relatively large processing performance can be realized with a relatively small manufacturing cost.

【0004】[0004]

【発明が解決しようとする課題】しかしながら、前記C
PUでは、アドレスレジスタが16ビット長であり、C
PUが参照できるメモリは65536バイト(=216
以下64kバイト)である。これに対して、8ビットシ
ングルチップマイクロコンピュータが用いられる機器組
込制御の応用では、機器の高性能化によって大容量のプ
ログラムあるいはデータを扱うことが要求されている。
かつ、この時、前記従来のCPUに対して機能が上位互
換であることがのぞましい。すなわち、使用者は、既に
前記従来のCPUで開発したソースプログラム若しくは
オブジェクトプログラムの全部又は一部をそのまま利用
できる。これにより、マイクロコンピュータの周辺機能
あるいは応用システムに依存する部分だけを変更して、
ただちにソフトウェアあるいは応用システムを開発し、
その開発期間を短縮できる。
However, the above-mentioned C
In PU, the address register is 16 bits long and C
The memory that the PU can refer to is 65,536 bytes (= 2 16 ,
The following is 64 kbytes). On the other hand, in the application of device built-in control in which an 8-bit single-chip microcomputer is used, it is required to handle a large-capacity program or data in order to improve the performance of the device.
At this time, it is desirable that the function is upward compatible with the conventional CPU. That is, the user can directly use all or part of the source program or the object program already developed by the conventional CPU. As a result, only the peripheral functions of the microcomputer or the parts that depend on the application system are changed,
Immediately develop software or application system,
The development period can be shortened.

【0005】このような要求に対して、本発明者は、前
記CPUの前記論理的・物理的規模の縮小、または相対
的に小さい製造費用で、相対的に大きな処理性能を実現
しつつ、64kバイト以上のメモリを参照できるCPU
について検討した。
In response to such a demand, the inventor of the present invention realizes a relatively large processing performance while reducing the logical / physical scale of the CPU or a relatively small manufacturing cost, while achieving 64 k. CPU that can refer to more than one byte of memory
Was examined.

【0006】これに対し、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, a memory which can be referred to by generating an address by adding an 8-bit page register to the 8-bit CPU and combining it with a 16-bit register is 16777216 bytes (= 2 24 , hereinafter 16 Mbytes).
As an example of the single-chip microcomputer, "H8 / 532" issued by Hitachi, Ltd. in December 1988
HD6475328 HD6435328 Hardware Manual ”and the like. In such a memory reference method, since the page register and the address register are completely independent, the hardware implementation method is simplified, but carry or borrow is not propagated between the page register and the address register. When writing a program or compiler, one must always be careful that a group of programs or data does not cross page boundaries. That is, in the above example, when the instruction is executed from the address 0, the program counter is initially H'0000.
(H 'indicates a hexadecimal number), and the corresponding page register (hereinafter referred to as code page register) is H'00.
Continue to execute operation instructions without using branch instructions,
When the next instruction is executed after reaching the address 535 (H'FFF), the program counter is H'FFF.
F → H'0000 and overflow. Because the carry at this time is not propagated to the code page register,
The next instruction will return to address 0. For this reason, a program is created by dividing it so that it does not exceed 64 kbytes, the divided programs are assigned to different pages, and when the execution is transferred from a program existing in one page to a program existing in another page You must use inter-branch instructions. That is, when using a branch instruction in the program, whether the branch destination is in the same page,
It is necessary to properly use the intra-page branch instruction and the inter-page branch instruction in consideration of whether they exist on another page. Similarly, it is necessary to divide the data so that it does not exceed 64 kbytes and manage it. That is, when updating the contents of the address register each time the memory is accessed, such as in the so-called post-increment register indirect mode, even if the address register overflows, the corresponding page register (hereinafter referred to as the data page register) Carry does not propagate. When using a 16-bit displacement indirectly with a register with displacement, a 16-bit displacement is added to a 16-bit address register, and even if a carry or borrow occurs, it is not propagated to the page register. An address is generated by combining the 16-bit addition result and the page register. That is, when the page register is H'00, the address register is H'FFFF, and the displacement is H'4000, the resulting address is H'003FFF. Therefore, in the address extension technique using the page register, the addressing modes that can be practically used are also limited.

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

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

【0009】 本発明の目的は、論理的・物理的規模の
増加を最小限としつつ、動作モードに応じて、下位CP
Uのような別のデータ処理装置ために既に開発されたプ
ログラムの一部若しくは全部を利用可能な、下位CPU
との上位互換を実現しつつ、連続的に使用可能なアドレ
ス空間を相対的に広げることができるデータ処理装置を
提供することにある。本発明の別の目的は、上記目的に
加えて更に、高級言語により作成されたプログラムのコ
ンパイルを容易化できるデータ処理装置を提供すること
にある。
An object of the present invention is to minimize the increase in the logical / physical scale and , depending on the operation mode, to the lower CPs.
Lower CPU capable of utilizing some or all of the programs already developed for another data processing device such as U
It is an object of the present invention to provide a data processing device capable of relatively widening the address space that can be continuously used while achieving upward compatibility with . Another object of the present invention is to provide a data processing device which can facilitate compilation of a program created in a high-level language in addition to the above objects.

【0010】本発明の前記並びにその他の目的と新規な
特徴は本明細書の記述及び添付図面から明らかになるで
あろう。
The above and other objects and novel features of the present invention will be apparent from the description of this specification and the accompanying drawings.

【0011】[0011]

【課題を解決するための手段】本願において開示される
発明のうち代表的なものの概要を簡単に説明すれば下記
の通りである。
The outline of the representative one of the inventions disclosed in the present application will be briefly described as follows.

【0012】すなわち、CPUの汎用レジスタに対し、
データ情報の保持には全部、又は2等分割して、或は2
等分割した一方を更に2等分割して使用し、アドレス情
報の保持には、下位CPUのアドレスビット数よりも多
いビット数を以って利用可能にする。例えば、8ビット
CPUの16ビット汎用レジスタに16ビットの拡張レ
ジスタを追加し、全体で32ビットのレジスタを一括し
て又はその一部分をアドレスレジスタとして使用すると
ともに、データレジスタとしては、32ビット全体を1
単位として、2分割して2個の16ビットデータレジス
タとして、さらに16ビットデータレジスタの一方を2
分割して2個の8ビットレジスタとして使用可能にす
る。斯るレジスタの利用形態の指定は次のように行う。
8ビットレジスタとして利用するか16ビットレジスタ
として利用するかは、オペレーションコードに含まれ
る、データ情報のサイズビットによって決定される。デ
ータ情報のサイズが8ビット(バイト)のとき、8ビッ
トレジスタの上位・下位は、命令に含まれるレジスタ指
定フィールドの所定1ビットによって指定される。デー
タ情報のサイズが16ビット(ワード)のとき、当該所
定1ビットは、16ビットレジスタの上位・下位を指定
することになる。そして、32ビット(ロングワード)
レジスタとしての利用は、オペレーションコードを含む
命令の前置きコード(プリフィックスコード)によって
指定する。或は、下位CPUのオペレーションコードと
同一ビット数の新たなオペレーションコードを追加して
指定する。このようなレジスタ構成に基づいて、16ビ
ットレジスタを備える下位CPUの命令実行機能を包含
する。これにより、下位CPUのために開発されたプロ
グラムは、少なくとも、ソースプログラムのレベル(高
級言語での記述レベル)で本発明に係る上位CPUに利
用可能になる。すなわち、少なくとも、ソースプログラ
ムレベルで上位互換を実現する。ここで下位CPUと
は、そのレジスタ構成並びにその命令セットが本発明に
係るCPUのようなデータ処理装置のレジスタ構成及び
命令セットに包含されるようなCPUをいう。
That is, for general-purpose registers of the CPU,
To store data information, divide it all, or divide it into two, or divide it into two.
One of the equal divisions is further divided into two and used, and the address information can be held with a bit number larger than the address bit number of the lower CPU. For example, a 16-bit extension register is added to a 16-bit general-purpose register of an 8-bit CPU, and the entire 32-bit register is used collectively or a part thereof as an address register, and the entire 32-bit data register is used. 1
As a unit, it is divided into two to form two 16-bit data registers, and one of the 16-bit data registers is divided into two.
It can be divided and used as two 8-bit registers. Designation of the usage pattern of such a register is performed as follows.
Whether it is used as an 8-bit register or a 16-bit register is determined by the size bit of the data information included in the operation code. When the size of the data information is 8 bits (bytes), the upper and lower bits of the 8-bit register are designated by a predetermined 1 bit of the register designation field included in the instruction. When the size of the data information is 16 bits (word), the predetermined 1 bit specifies the upper or lower part of the 16-bit register. And 32 bits (longword)
Usage as a register is specified by a prefix code of an instruction including an operation code. Alternatively, a new operation code having the same number of bits as the operation code of the lower CPU is added and designated. Based on such a register configuration, the instruction execution function of the lower CPU having a 16-bit register is included. As a result, the program developed for the lower CPU can be used for the upper CPU according to the present invention at least at the level of the source program (the description level in the high-level language). That is, at least at the source program level, upward compatibility is realized. Here, the lower CPU refers to a CPU whose register configuration and its instruction set are included in the register configuration and instruction set of a data processing device such as the CPU according to the present invention.

【0013】 更に、オブジェクトプログラムレベルで
の上位互換を実現するには、有効なアドレスのビット数
と、ベクタ及びスタックの単位サイズとを、前記レジス
タの利用形態に応じて切り替える動作モード、例えば
1モード若しくは上位モードとしてのマキシマムモード
第2モード若しくは下位モードとしてのミニマムモー
ドを用意しておけばよい。ミニマムモードにおいてCP
Uは下位CPUと全く同様に動作する。マキシマムモー
ドにおいてCPUはそれに備えられた最大限の機能を以
って上位CPUとして動作される。すなわち、第1モー
ドと第2モードとを有するデータ処理装置は、それぞれ
が所定のビット長を有し、それぞれが第1部分(E0〜
E7)と第2部分(R0L、R0H〜R7L,R7H)
とを有する複数の汎用レジスタと、上記複数の汎用レジ
スタの上記第1部分に結合された第1の算術論理演算ユ
ニット(ALUE)と、上記複数の汎用レジスタの上記
第2部分(ALUL,ALUH)に結合された第2の算
術論理演算ユニットとを含む。上記第1モードは、上記
第1の算術論理演算ユニットと上記第2の算術論理演算
ユニットがアドレス演算とデータ演算とを実行すること
を可能にする。上記第2モードは、上記第2の算術論理
演算ユニットがアドレス演算とデータ演算とを実行する
ことを可能にするとともに、上記第1の算術論理演算ユ
ニットがデータ演算を実行することを可能にする。
Furthermore, in order to realize upward compatibility at the object program level, an operation mode for switching the number of bits of an effective address and the unit size of a vector and a stack according to the usage form of the register, for example, the first mode
It suffices to prepare a maximum mode as one mode or a higher mode and a minimum mode as a second mode or a lower mode . CP in minimum mode
U operates exactly like a lower CPU. In the maximum mode, the CPU operates as the upper CPU with the maximum functions provided therein. That is, the first mode
And a data processing device having a second mode,
Have a predetermined bit length, and each has a first portion (E0-E0).
E7) and the second part (R0L, R0H to R7L, R7H)
And a plurality of general-purpose registers having
A first arithmetic and logic unit coupled to the first portion of the star.
The unit of the unit and the plurality of general-purpose registers
The second arithmetic connected to the second part (ALUL, ALUH)
And a logical operation unit. The first mode is
First arithmetic logic operation unit and the above second arithmetic logic operation
The unit performing address and data operations
To enable. The second mode is the second arithmetic logic.
Arithmetic unit performs address arithmetic and data arithmetic
In addition to making it possible,
Allows the knit to perform data operations.

【0014】前記前置きコードは、下位CPUの命令コ
ードと重複しないことが必要であるから、これを未定義
命令のコードに相当するコードとするのが最適である。
Since it is necessary that the preceding code does not overlap with the instruction code of the lower CPU, it is optimal to use it as the code corresponding to the undefined instruction code.

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

【0016】[0016]

【作用】上記した手段によれば、データ情報の保持には
2分割利用可能であり、下位CPUのアドレスビット数
以上のビット数を以ってアドレスレジスタとしても利用
可能なレジスタ構成を採用すること、データ情報のバイ
ト/ワードサイズはオペレーションコードのサイズビッ
トで指定されること、ロングワードサイズのデータ情報
の利用はプリフィックスコード或は下位CPUと同一ビ
ット数の新たに追加したオペレーションコードで指定さ
れること、バイトサイズのデータ情報に対して利用する
バイトサイズレジスタの上位/下位はレジスタ指定フィ
ールドの所定1ビットで指定されること、ワードサイズ
のデータ情報に対してはその所定1ビットでワードサイ
ズレジスタの上位/下位が指定されることの夫々を以っ
て、少なくともソースプログラムレベルでの上位互換を
実現する。
According to the above-mentioned means, it is possible to use the register structure which can be divided into two parts for holding the data information and can also be used as an address register with a bit number equal to or more than the address bit number of the lower CPU. The byte / word size of the data information is specified by the size bit of the operation code, and the use of the data information of the long word size is specified by the prefix code or the newly added operation code with the same number of bits as the lower CPU. The upper / lower part of the byte size register used for byte size data information is designated by a predetermined 1 bit of the register designation field, and the word size register is designated by a predetermined 1 bit for word size data information. The upper / lower order of each is specified, so that at least the To achieve upward compatibility of the nest program level.

【0017】前記マキシマムモードとミニマムモードを
用意しておくことは、オブジェクトプログラムレベルで
の上位互換を実現する。
Preparing the maximum mode and the minimum mode realizes upward compatibility at the object program level.

【0018】8ビットCPUの16ビット汎用レジスタ
に16ビットの拡張レジスタを追加して、全体で32ビ
ットで構成されるようなレジスタ構成は、ソフトウェア
上並びにハードウェア上でのデータ保持手段の使い勝手
を良好にし、ひいては、CPUのようなデータ処理装置
の論理的並びに物理的な規模の縮小を達成する。また、
データ保持手段の全体又は一部分を使用したアドレスデ
ータの保持という点に関しては、リニアに利用可能なア
ドレス空間の拡張を容易化し、また、ページレジスタに
よるアドレス空間拡張技術に比べてプログラムの作成並
びにコンパイルを容易化する。
A register configuration in which a 16-bit extension register is added to a 16-bit general-purpose register of an 8-bit CPU to constitute a total of 32 bits makes the data holding means easy to use on software and hardware. Good and thus achieves a logical as well as a physical reduction in the size of data processing devices such as CPUs. Also,
With respect to holding address data using all or part of the data holding means, it is easy to expand the linearly usable address space, and it is possible to create and compile a program as compared with the address space expansion technology using page registers. Make it easier.

【0019】[0019]

【実施例】図1には本発明に係るデータ処理装置の第一
実施例であるシングルチップマイクロコンピュータが示
される。同図に示されるシングルチップマイクロコンピ
ュータ100は、全体の制御を司るCPU(中央処理装
置)1、CPU1の動作プログラムなどを保有するRO
M(リードオンリメモリ)2、CPU1の作業領域並び
にデータの一時記憶領域などとして利用されるRAM
(ランダムアクセスメモリ)3、タイマ4、シリアルコ
ミュニケーションインタフェース(SCI)5、クロッ
クパルスジェネレータ68、及び、入出力ポート(IO
P)61乃至67などの機能ブロックから構成され、こ
れらは内部バス69で相互に接続されてなる。内部バス
69は特に制限はされないものの、アドレスバス、デー
タバス、コントロールバスを含む。斯るシングルチップ
マイクロコンピュータ100は公知の半導体集積回路製
造技術によってシリコン基板のような1つの半導体基板
上に形成されている。
DESCRIPTION OF THE PREFERRED EMBODIMENTS FIG. 1 shows a single chip microcomputer which is a first embodiment of a data processing device according to the present invention. A single-chip microcomputer 100 shown in the figure has a CPU (central processing unit) 1 that controls the entire control, an RO that holds an operation program of the CPU 1, and the like.
M (read only memory) 2, RAM used as a work area of the CPU 1 and a temporary storage area for data
(Random access memory) 3, timer 4, serial communication interface (SCI) 5, clock pulse generator 68, and input / output port (IO
P) 61 to 67 and other functional blocks, which are interconnected by an internal bus 69. The internal bus 69 includes an address bus, a data bus, and a control bus, although not particularly limited. Such a 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
It operates in synchronization with a crystal oscillator connected to L and EXTAL or a reference clock generated based on an external clock input from the outside. The minimum unit of this 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 for.

【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 the start address and performs the reset exception handling to start reading the instruction from this start address. It is assumed that the start address is stored at address 0, although it is not particularly limited.
Thereafter, although not particularly limited, the CPU 1 sequentially reads out the instruction from the ROM 2 and decodes it, and processes the data or the RAM 3, the timer 4, and the S based on the decoded result.
Data is transferred to and from the CI5 and the input / output ports 61 to 67. That is, the CPU 1 refers to data input from the input / output ports 61 to 67 or the like or instructions input from the SCI 5 or the like, performs processing based on an instruction stored in the ROM 2, and inputs / outputs according to the result. The ports 61 to 7 and the timer 4 are used to output signals to the outside to control various devices.
Although not particularly limited, the ROM2, RAM3,
It is assumed that the read / write of the timer 4 and the like is executed in two states for each of byte (eg, 8 bits) / word (eg, 16 bits).

【0022】かかるCPU1の命令の最小単位は2バイ
トとされ、また、命令または16ビットデータをメモリ
に配置する場合には、偶数から始まる連続した2バイト
の領域に配置するものとされている。
The minimum unit of the instruction of the CPU 1 is 2 bytes, and 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には前記CPU1の下位CPUに相当
するCPUのレジスタ構成例が示される。本実施例にお
いて下位CPUとは、本実施例に係るCPU1の開発以
前に提供されていたCPUである。換言すれば、本実施
例に係るCPU1は下位CPUに対するバージョンアッ
プ版として位置付けることもできる。
FIG. 2 shows an example of a register configuration of a CPU corresponding to the lower CPU of the CPU 1. In this embodiment, the lower CPU is a CPU provided before the development of the CPU 1 according to this embodiment. In other words, the CPU 1 according to this embodiment can be positioned as an upgraded version of the lower CPU.

【0024】同図に示される下位CPUは、それぞれ1
6ビット長の8本の汎用レジスタR0L,R0H〜R7
L,R7Hと、16ビット長のプログラムカウンタPC
と、8ビット長のコンディションコードレジスタCCR
とを有している。汎用レジスタR0L,R0H〜R7
L,R7Hは、特に制限はされないものの、上位8ビッ
トと下位8ビットを独立させて8ビット長のデータを格
納することも、上位・下位を連結して16ビット長のデ
ータを格納することもできる。コンディションコードレ
ジスタCCRは割込みマスクビット(I)、キャリフラ
グ(C)、ゼロフラグ(Z)、ネガティブフラグ
(N)、及びオーバフローフラグ(V)を含んでいる。
割込みマスクビットIは1のとき、CPU1を割込み禁
止状態とし、0のとき割込み許可状態とする。その他の
フラグは演算の結果などを反映する。
The lower CPUs shown in FIG.
Eight general-purpose registers R0L, R0H to R7 of 6-bit length
L, R7H and 16-bit program counter PC
And 8-bit condition code register CCR
And have. General-purpose registers R0L, R0H to R7
L and R7H are not particularly limited, but can store 8-bit length data with the upper 8 bits and the lower 8 bits independent, or can store 16-bit length data by connecting the upper and lower bits. it can. 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).
When the interrupt mask bit I is 1, the CPU 1 is in an interrupt disabled state, and when it is 0, it is in an interrupt enabled state. The other flags reflect the result of calculation.

【0025】図3には図2のレジスタ構成で利用される
データが示される。
FIG. 3 shows data used in the register configuration of FIG.

【0026】下位CPUが扱うバイトデータは、前記同
様に、汎用レジスタの上位RiHまたは下位RiLに格
納される(i=0〜7)。ワードデータは汎用レジスタ
Riに格納される。ビット15がデータの最上位ビット
に、ビット0が最下位ビットにそれぞれ対応する。アド
レス情報(アドレスデータとも記す)はワードデータと
して汎用レジスタRiに格納される。ビット15がデー
タの最上位ビットに、ビット0が最下位ビットにそれぞ
れ対応する。16ビットレジスタ8本、8ビットレジス
タ16本を利用可能である。データのサイズがバイトで
あるかワードであるかは命令のオペレーションコードに
含まれる1ビットのサイズビットによって決定される。
The byte data handled by the lower CPU is stored in the upper RiH or the lower RiL of the general-purpose register (i = 0 to 7) as described above. The word data is stored in the general register Ri. Bit 15 corresponds to the most significant bit of data and bit 0 corresponds to the least significant bit. Address information (also referred to as address data) is stored in the general-purpose register Ri as word data. Bit 15 corresponds to the most significant bit of data and bit 0 corresponds to the least significant bit. Eight 16-bit registers and 16 8-bit registers can be used. Whether the data size is byte or word is determined by the size bit of 1 bit included in the operation code of the instruction.

【0027】図4には本発明の一実施例に係る上位CP
UとしてのCPU1のレジスタ構成例が示される。
FIG. 4 shows an upper CP according to an embodiment of the present invention.
An example of the register configuration of the CPU 1 as U is shown.

【0028】CPU1はそれぞれ16ビット長の8本の
汎用レジスタR0L,R0H〜R7L,R7Hと、それ
ぞれ16ビット長の8本の拡張レジスタE0〜E7と、
24ビット長のプログラムカウンタPCと、8ビット長
のコンディションコードレジスタCCRとを有してい
る。汎用レジスタR0L,R0H〜R7L,R7Hは、
特に制限はされないものの、上位8ビットと下位8ビッ
トを独立させて8ビット長のデータを格納することも、
上位・下位を連結して16ビット長のデータを格納する
こともできる。拡張レジスタEiは、8ビットに分割し
てそれぞれ独立的に使用することはできない。
The CPU 1 includes eight general-purpose registers R0L, R0H to R7L and R7H each having a 16-bit length, and eight extension registers E0 to E7 each having a 16-bit length.
It has a 24-bit program counter PC and an 8-bit condition code register CCR. General-purpose registers R0L, R0H to R7L, R7H are
Although not particularly limited, the upper 8 bits and the lower 8 bits can be stored independently to store 8-bit length data.
Data of 16-bit length can be stored by connecting the upper and lower bits. The extension register Ei cannot be divided into 8 bits and used independently.

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

【0030】拡張レジスタE0〜E7はデータレジスタ
としては16ビットレジスタとして汎用レジスタ同様に
使用できる。すなわち、拡張レジスタ同士、及び拡張レ
ジスタと汎用レジスタとの間で、データの演算を行なう
ことができるようになっている。尚、コンディションコ
ードレジスタCCRは前記同様であるのでその詳細な説
明は省略する。プログラムカウンタPCはビット長以外
は前記同様である。
The extension registers E0 to E7 can be used as data registers in the same manner as general purpose registers as 16-bit registers. That is, it is possible to perform data operation between extension registers and between extension registers and general-purpose registers. Since the condition code register CCR is the same as the above, detailed description thereof will be omitted. The program counter PC is the same as the above except for the bit length.

【0031】図5には汎用レジスタ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. 5 shows general-purpose registers R0L, R0H to R.
7L and R7H and data configuration examples of the extension registers E0 to E7 are shown. The byte data handled by the CPU 1 is the high-order RiH (i = 0, 1, ..., 7) or the low-order R of the general-purpose register.
It is stored in iL. Word data is general register Ri
(RiH, RiL) or stored in the extension register Ei. At this time, bit 15 corresponds to the most significant bit of data and bit 0 corresponds to the least significant bit. The 32-bit longword data is stored in the general register Ri and the extension register Ei. The 24-bit address data is stored in the extension register Ei and the general register Ri as longword data. At this time, the upper 8 bits of the extension register Ei are set as a reserved area. The reserved 8-bit address data and 24-bit address data are also simply referred to as longword address data.

【0032】かかるレジスタ構成によれば、8ビットレ
ジスタ16本、16ビットレジスタ16本、24ビット
レジスタが8本使用できる。これは、前記下位CPUと
上位互換性があり、下位CPUが有するレジスタを使用
して作成されたソフトウェアを、少なくともソースプロ
グラムレベルを以って上記CPU1で利用可能であるこ
とを意味する。CPU1が下位CPUに対して上位互換
を実現するにはレジスタの指定のしかたについても共通
性を要する。これについては後で詳述するが、アドレス
レジスタとしては、レジスタ番号のみを考慮すればよ
く、8ビット演算及び16ビット演算の何れについて
も、命令のレジスタ指定フィールド中でのレジスタの指
定は4ビットで可能になっており、下位CPUと命令フ
ォーマットを共通化することができる。また、16本の
レジスタの指定に4ビットを使用するので、無駄が生ぜ
ず、この点において斯るレジスタ構成は、CPU1の内
部構成を単純化し、論理的・物理的規模の縮小し、製造
費用の削減・動作速度の向上の実現を図る目的を損なう
ことがない。
With this register configuration, 16 8-bit registers, 16 16-bit registers, and 8 24-bit registers can be used. This means that the software, which is upward compatible with the lower CPU and is created by using the register of the lower CPU, can be used in the CPU 1 at least at the source program level. In order for the CPU 1 to realize the upward compatibility with the lower CPU, it is necessary to have commonality in the way of specifying the registers. Although this will be described in detail later, it is sufficient to consider only the register number as the address register, and for both 8-bit operation and 16-bit operation, the register specification in the register specification field of the instruction is 4 bits. The instruction format can be shared with the lower CPU. In addition, since 4 bits are used to specify 16 registers, no waste occurs. In this respect, such a register configuration simplifies the internal configuration of the CPU 1, reduces the logical / physical scale, and reduces the manufacturing cost. It does not impair the purpose of reducing the cost and improving the operation speed.

【0033】図6乃至図8にはCPU1のアドレッシン
グモードと実効アドレスの計算手法の一例が示される。
6 to 8 show an example of an addressing mode of the CPU 1 and a method of calculating an effective address.

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

【0035】図6の(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. 6 is the result of adding the displacement included in the instruction code to the 24-bit address obtained in the same manner as the above register indirect. The address on the memory is specified with the address. 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 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 that of bit 15 of the 6-bit displacement. In this case, the upper 8 bits of the 24-bit displacement include a 32-bit displacement designating part in the instruction code together with the reserved area in consideration of the instruction being a 2-byte unit and future expansion. .

【0036】図7の(4)に示されるポストインクリメ
ントレジスタ間接は、前記レジスタ間接と同様に得られ
た24ビットのアドレスでメモリ上のアドレスを指定す
る。その後、このアドレスに1または2または4を加算
し、その加算結果が拡張レジスタ・汎用レジスタに格納
される。メモリ上のバイトデータを指定する場合1が、
ワードデータを指定する場合2が、アドレスデータを指
定する場合4が、それぞれ加算される。加算結果の上位
8ビットも拡張レジスタに格納される。
The post-increment register indirect shown in (4) of FIG. 7 specifies an address on the memory with 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 is
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.

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

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

【0039】図8に示される絶対アドレスは命令コード
中に含まれる、8ビット、16ビットまたは24ビット
の絶対アドレスをアドレスとしてメモリ上のアドレスを
指定する。8ビット絶対アドレスは、上位16ビットが
1拡張される。すなわちアドレスのビット23〜8は全
ビット1とされる。従って使用可能なアドレスはH’F
FFF00〜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. 8 designates the address on the memory with the 8-bit, 16-bit or 24-bit absolute address included in the instruction code as the address. In the 8-bit absolute address, the upper 16 bits are extended by 1. That is, all bits 23 to 8 of the address are set to 1. Therefore, the usable address is H'F
It is 256 bytes of FFF00 to H'FFFFFF.
The 16-bit absolute address is sign-extended with the upper 8 bits. That is, if the bit 15 of the 16-bit absolute address is 0, all the bits 23 to 16 of the address are 0, and if the bit 15 is 1, all the bits 23 to 16 of the address are 1. Therefore, usable addresses are 64 kbytes of H'000000 to H'007FFF and H'FF8000 to H'FFFFFF.

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

【0041】下位CPUはアドレス空間が64kバイト
であるため、24ビットディスプレースメント付レジス
タ間接、24ビットの絶対アドレスは存在しない。ま
た、プリデクリメントレジスタ間接などのロングワード
サイズも存在しない。図6乃至図8に示されるその他の
アドレッシングモードはアドレス情報の上位8ビットを
無視すれば、下位CPUがサポートするアドレシングモ
ード並びに実効アドレス計算と同一視できる。したがっ
て、CPU1は、アドレシングモード及びアドレス計算
という点においても下位CPUと従来CPUと機能互換
である。
Since the lower CPU has an address space of 64 kbytes, there is no register indirect with 24-bit displacement and absolute address of 24-bit. Also, there is no long word size such as indirect decrement register. The other addressing modes shown in FIGS. 6 to 8 can be equated with the addressing mode and effective address calculation supported by the lower CPU if the upper 8 bits of the address information are ignored. Therefore, the CPU 1 is functionally compatible with the lower CPU and the conventional CPU in terms of addressing mode and address calculation.

【0042】図9乃至図16には主要なアドレッシング
モードの命令の命令フォーマットを示す。
9 to 16 show the instruction formats of the main addressing mode instructions.

【0043】それぞれの命令のフォーマットは、各命令
の機能及びアドレッシングモードを示すためのオペレー
ションコード部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,e
rdの最上位1ビットは命令デコードに際して実質的に
無視される。この場合に実質的に有意の3ビットで指定
するレジスタが32ビットであることは、ロングワード
データを利用するそれ専用のオペレーションコードを新
たに追加できる場合には、そのオペレーションコードに
よって明らかにされる。その様な新たにオペレーション
コードを追加できない場合、若しくは追加することが得
策ではないと判断した場合には、後述するプリフィック
スコードを利用する。ここで、前記ロングワードデータ
を利用するそれ専用のオペレーションコードのビット数
は、下位CPUのオペレーションコードのビット数と同
じである。
The format of each instruction has an operation code section op for indicating the function and addressing mode of each instruction, and a register for designating a register to be used according to the operation code of the operation code section op. Designation part (rs, 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 uses bit 7 to bit 4, bit 3 to bit 0 of the first word of the instruction code, or bit 1 as a special form.
1 to 8 are included. The register designating unit rs designates a byte or word size source register, and the register designating unit rd designates a byte or word size destination register. Whether the register to be designated has a byte size or a word size is determined by the operation code of the operation code section. That is, when the operation code is accompanied by a 16-bit operation, the register designating parts rs and rd
The lower 3 bits of 8 specify which of the eight registers R0 to R7 is to be used, and whether the extended register or the general-purpose register is used among the specified registers is determined by the remaining register designation section. Designated by the upper 1 bit. When accompanied by an operation code involving an 8-bit operation, the lower 3 bits of the register designating unit rs, rd designate which of the eight registers R0 to R7, and the general register among the designated registers. Whether to use the upper side or the lower side of is determined by the remaining upper 1 bit of the register designating unit. The register designation unit ers designates a longword size source register, and the register designation unit erd designates a longword size destination register. Register designating part ers, e in which 4 bits are secured
The most significant 1 bit of rd is effectively ignored during instruction decoding. In this case, the fact that the register designated by 3 bits which is substantially significant is 32 bits is clarified by the operation code when a new operation code dedicated to the longword data can be newly added. . When it is not possible to add such a new operation code, or when it is determined that it is not a good idea to add such an operation code, the prefix code described below is used. Here, the number of bits of the operation code dedicated to the longword data is the same as the number of bits of the operation code of the lower CPU.

【0044】命令フォーマット中における絶対アドレス
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
Is included in the instruction code such that the least significant bit is the even-numbered bit 0. That is, the absolute address aa of 16 bits or more, the displacement d, and the immediate xx are included in units of 2 bytes. Therefore, 2
4-bit absolute address aa, displacement d
Is a 4-byte area including a reserved portion of a predetermined number of bits in the 1-byte area at the beginning (higher-order bit side). The 8-bit absolute address aa, the displacement d, and the immediate xx are contained in bits 7 to 0 of the first word.

【0045】上記命令フォーマットによれば、命令フォ
ーマット中においてレジスタを指定する部分が命令の第
一ワードの一部分に固定されているから、命令のデコー
ド論理構成が簡単になる。更に、レジスタ指定領域の下
位側3ビットによって8本のレジスタの何れを指定する
かを決定し、指定された1本のレジスタの内の何れの領
域を使用するかを上位側1ビットで決定すると共に、当
該1ビットで決定される領域のサイズは、命令中で指定
されるデータサイズによって、換言すれば、オペレーシ
ョンコード部のオペレーションコードによって、決定さ
れるから、レジスタに格納されるデータ並びにアドレス
データが、バイト、ワード、ロングワードの数種類に亘
るときにも、レジスタ指定部のビット数を最小限に抑え
ることができる。
According to the above-mentioned instruction format, the portion designating the register in the instruction format is fixed to a part of the first word of the instruction, so that the decoding logic configuration of the instruction becomes simple. Furthermore, the lower 3 bits of the register designation area determine which of the 8 registers is designated, and the upper 1 bit determines which area of the designated 1 register is to be used. At the same time, the size of the area determined by the 1 bit is determined by the data size specified in the instruction, in other words, by the operation code of the operation code section, so that the data stored in the register and the address data are stored. However, the number of bits in the register designating section can be minimized even when there are several types of bytes, words, and long words.

【0046】下位CPUは、前記同様、24ビットディ
スプレースメント付レジスタ間接、24ビットの絶対ア
ドレスの2つのアドレッシングモードおよびロングワー
ドサイズの命令が存在しない。その他の命令は下位CP
UとCPU1で共通であり、CPU1は下位CPUと命
令フォーマットを共通化している。
Similarly to the above, the lower CPU does not have a register indirect with 24-bit displacement, two addressing modes of a 24-bit absolute address, and a longword size instruction. Other commands are lower CP
U is common to the CPU 1, and the CPU 1 shares the instruction format with the lower CPU.

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

【0048】レジスタ指定部はビット0〜2でレジスタ
の番号(0〜7)を指定し、ビット3は、バイトサイズ
のとき汎用レジスタRiの上位側か下位側か(RiH/
RiL)を、ワードサイズのときには汎用レジスタRi
か拡張レジスタEiかを指定する。なお、ロングワード
サイズデータとアドレスレジスタとしての利用において
は前述のようにビット3は無視され実質的に存在しな
い。
The register designating section designates a register number (0 to 7) by bits 0 to 2, and bit 3 indicates whether it is the upper side or the lower side of the general register Ri (RiH /
RiL) is a general-purpose register Ri for word size
Or extension register Ei. In the use as long word size data and address register, bit 3 is ignored as described above and practically does not exist.

【0049】 図18にはCPU1の内部ブロック図が
示される。CPU1は、主としてマイクロROMあるい
はPLA(Plogrammable Logic A
rray)で構成される制御部CONT、汎用レジスタ
の第2部分としての前記汎用レジスタR0L,R0H〜
R7L,R7H、汎用レジスタの第1部分としての拡張
レジスタE0〜E7、プログラムカウンタPC(PC
L,PCH,PCE)、コンディションコードレジスタ
CCRなどを含む実行部EXE、及びレジスタ選択部R
EGSELから構成される。制御部CONTは命令をフ
ェッチし、これを解読して、命令の実行に必要な各種制
御信号を生成したり、命令の実行手順を制御する。レジ
スタ選択部REGSELは、前記命令の解読結果にした
がってレジスタの選択信号を生成したりする。
FIG. 18 shows an internal block diagram of the CPU 1. The CPU 1 is mainly a micro ROM or PLA (Programmable Logic A).
control unit CONT configured by rray), general-purpose register
Of the general-purpose registers R0L, R0H as the second part of
R7L, R7H, extension registers E0 to E7 as the first part of general-purpose registers , program counter PC (PC
L, PCH, PCE), an execution unit EXE including a condition code register CCR, and a register selection unit R
It is composed of EGSEL. The control unit CONT fetches an instruction, decodes it, generates various control signals necessary for executing the instruction, and controls the instruction execution procedure. The register selection unit REGSEL generates a register selection signal according to the result of decoding the instruction.

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

【0051】特に制限はされないものの、基本的に上記
実行部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. General-purpose register consists of 2 blocks of 8 bits, R0H
~ R7H corresponds to bits 15 to 8, and R0L to R7L corresponds 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. The internal bus is provided with A, B, and C in parallel corresponding to these bits 31 to 16, bits 15 to 8, and bits 7 to 0, respectively. The same applies to the temporary registers TR, ALU, read data buffer, write data buffer, and the like. The physical arrangement of these is not particularly limited.

【0052】このような汎用レジスタRi,拡張レジス
タEiを設け、下位CPUとの互換性を維持しつつ、1
6Mバイトのアドレス空間を使用可能とした場合、下位
CPUとも、主要な演算はレジスタ間で行い、メモリと
レジスタの演算は直接行わない(すなわち1命令では行
わない)命令体系とするのが得策である。
By providing such a general-purpose register Ri and an extension register Ei, while maintaining compatibility with the lower CPU,
When the 6 MB address space can be used, it is a good idea to use an instruction system in which the main operation is performed between registers and the operation of memory and register is not performed directly (that is, not performed by one instruction) in both lower CPUs. is there.

【0053】第1に、下位CPUが、メモリとレジスタ
間での直接的な演算をサポートして、命令体系を最適化
してある場合には、上位CPUのために新たな命令を追
加することが困難である。すなわち、メモリとレジスタ
の演算についてはメモリのアドレッシングモードと演算
の種類との組合せで決定されるオペレーションコードの
種類が飛躍的に多くなってしまい、新規のオペレーショ
ンコードを追加することが困難である。または、新規の
オペレーションコードは必然的に最適化できず、命令長
が長くなって、プログラムサイズを大きくし、ひいては
プログラムの実行効率も悪化してしまう。
First, if the lower CPU supports the direct operation between the memory and the register and the instruction system is optimized, a new instruction can be added for the upper CPU. Have difficulty. That is, regarding the operation of the memory and the register, the number of operation codes determined by the combination of the addressing mode of the memory and the type of operation is dramatically increased, and it is difficult to add a new operation code. Alternatively, the new operation code cannot necessarily be optimized, the instruction length becomes long, the program size becomes large, and the execution efficiency of the program also deteriorates.

【0054】第2に、16Mバイトのアドレス空間を有
効に利用するには、前記のような複雑なアドレッシング
モードが必要である。演算命令の多くにこのような複雑
なアドレッシングモードを実行可能とすると、制御部C
ONTの構成が複雑になり、論理的並びに物理的規模を
最小限とする目的に反してしまうためである。メモリの
アクセスには、前述の種々のアドレッシングモードを有
する転送命令でレジスタとのデータの転送を行い、レジ
スタ上で演算などのデータ処理を行うものとすればよ
い。汎用レジスタRiは8ビット長で最大16本分とし
て使用でき、また、汎用レジスタRi及び拡張レジスタ
Eiは16ビット長で最大16本分として使用でき、あ
る処理に必要なデータはレジスタ上に置くことができ
る。或は、少なくとも、使用頻度の高いデータの大部分
はレジスタ上に置くことができる。したがって、処理プ
ログラムの増加や実行速度の低下といった不都合が発生
する場合は少ないと考えられる。
Second, in order to effectively use the 16 Mbyte address space, the complicated addressing mode as described above is required. When such a complicated addressing mode can be executed for many arithmetic instructions, the control unit C
This is because the structure of the ONT becomes complicated and it is against the purpose of minimizing the logical and physical scale. To access the memory, data may be transferred to and from the register by a transfer instruction having the various addressing modes described above, and data processing such as calculation may be performed on the register. The general-purpose register Ri can be used as a maximum of 16 bits with an 8-bit length, and the general-purpose register Ri and the extension register Ei can be used as a maximum of 16 bits with a 16-bit length, and data necessary for a certain process must be placed on the register. You can Alternatively, at least most of the frequently used data can be placed in 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.

【0055】メモリに対する演算を行う必要がある命令
としては、ビット操作命令がある。これらは、バイト単
位で割り当てられたアドレスの第nビットとして指定さ
れるものの、バイト単位で扱われるデータではなく、そ
れぞれのビットが独立した機能を有している。たとえ
ば、タイマの動作を制御するレジスタのような場合、第
0ビット・第1ビットでタイマのクロックを選択し、第
2ビットではタイマカウンタと比較レジスタの内容が一
致した時、タイマカウンタをクリアするかしないかを指
定し、第3ビットでは前記一致した時、割込みを発生す
るかしないかを指定するものである。これらは1ビット
単位で1にセットしたり、0にクリアしたりする必要が
ある。あるいは入力ポートの所定の1ビットが0である
か1であるかによってCPU1の処理プログラムが異な
る場合、前記1ビットのデータを判定する必要がある。
かかる1ビットデータはメモリに対して直接演算しなけ
ればならない。バイト単位で一旦レジスタに転送した後
にビット操作を行うと、前記転送とビット操作の間に割
込みが入ってしまい、例えば前記入力ポートの値が変化
してしまうような不都合が発生するためである。しかし
ながらこのようなビット操作命令の対象となるアドレス
は固定的で、複雑なアドレッシングモードは必要ではな
い。絶対アドレスと、最低限レジスタ間接を実行できれ
ばよい。しかも絶対アドレスの場合も全アドレス空間を
使用できる必要はなく、前記タイマ・入出力ポートなど
の存在するアドレス範囲にのみ使用できれば十分と考え
られる。このようなアドレス範囲の指定に使用できる絶
対アドレスは8ビットで十分である。16ビットとすれ
ば使用可能なアドレス範囲が広がるが、命令長が長くな
り制御が複雑になってしまう。少なくとも24ビットと
して16Mバイトの全空間を使用可能としなければなら
ない場合は非常に稀であると考えられる。そこで、本実
施例におけるCPU1は、汎用レジスタのような内部の
レジスタと周辺回路の制御用レジスタのような外部レジ
スタとの間での直接的な演算のためのビット操作命令に
ついてはサポートするが、これによって、1ビット又は
数ビットのビット操作命令を直接外部周辺回路との間で
行っても、これによって制御部の規模や命令の種類が極
端に増大する虞はない。
A bit manipulation instruction is an instruction that needs to be operated on a memory. Although these are designated as the nth bit of the address assigned in byte units, they are not data handled in byte units, and each bit has an independent function. For example, in the case of a register for controlling the operation of the timer, the timer clock is selected by the 0th bit and the 1st bit, and the timer counter is cleared when the contents of the timer counter and the comparison register match with the 2nd bit. Whether or not to do so is specified, and the third bit specifies whether or not to generate an interrupt when the above-mentioned coincidence occurs. These must be set to 1 or cleared to 0 in 1-bit units. Alternatively, when the processing program of the CPU 1 is different depending on whether a predetermined 1 bit of the input port is 0 or 1, it is necessary to judge the 1-bit data.
Such 1-bit data must be directly operated on the memory. This is because if a bit operation is performed after the data is once transferred to the register on a byte-by-byte basis, an interrupt occurs between the transfer and the bit operation, which causes a problem that the value of the input port changes, for example. However, the target address of such a bit manipulation instruction is fixed, and a complicated addressing mode is not necessary. It is only necessary to execute absolute address and minimum register indirect. Moreover, even in the case of an absolute address, it is not necessary to be able to use the entire address space, and it is considered sufficient if it can be used only in the address range in which the timer / input / output port exists. Eight bits are sufficient as an absolute address that can be used to specify such an address range. If 16 bits are used, the usable address range is widened, but the instruction length becomes long and control becomes complicated. It is considered very rare if the entire space of 16 Mbytes must be available for at least 24 bits. Therefore, the CPU 1 in the present 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, As a result, even if a 1-bit or several-bit bit manipulation instruction is directly performed with the external peripheral circuit, there is no fear that the scale of the control unit or the type of instruction is significantly increased.

【0056】図19には命令の機能とアドレシッシング
モードの組合せとの関係の一例が示される。
FIG. 19 shows an example of the relationship between the function of the instruction and the combination of the addressing modes.

【0057】同図において#はイミディエイト、Rはレ
ジスタ直接、@Rはレジスタ間接、@(d16,R)及
び@(d24,R)はディスプレースメント付きレジス
タ間接、@−Rはプリデクリメントレジスタ間接、@R
+はポストインクリメントレジスタ間接、@a8,@a
16,@a24は絶対アドレス、@(d8,PC),@
(d16,PC)はプログラムカウンタ相対、の各アド
レシングモードを意味する。また同図においてBはバイ
ト、Wはワード、Lはロングワードを意味する。プログ
ラムカウンタ相対は分岐命令専用である。そのほかのア
ドレシッシングモードは転送命令で使用可能である。演
算命令はイミディエイトとレジスタ直接を使用可能であ
る。但し単項演算はレジスタ直接のみである。
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 pre-decrement register indirect, @R
+ Indicates indirect post increment register, @ a8, @a
16, @ a24 is an absolute address, @ (d8, PC), @
(D16, PC) means program counter relative addressing modes. In the figure, B means byte, W means word, and L means long word. The program counter relative is dedicated to branch instructions. Other addressing modes can be used in transfer instructions. Arithmetic instructions can use immediate and register direct. However, the unary operation is only direct to the register.

【0058】図19において、下位CPUでサポートす
るものは〇印を付してある。インクリメント・デクリメ
ントのロングワードは、下位CPUではアドレスレジス
タがワードサイズであるため、ワードサイズの演算にな
る。
In FIG. 19, those supported by the lower CPU are marked with a circle. The long word of increment / decrement is a word-size operation because the address register has a word size in the lower CPU.

【0059】算術演算命令は前記のとおりバイト,ワー
ド,ロングワードを使用可能であるが、キャリ付き加減
算はバイトサイズのみ使用可能である。インクリメン
ト,デクリメントはレジスタをカウンタとする場合のた
めに、±1はバイト,ワード,ロングワードを使用可能
とするが、±2,±4はアドレス計算用であるため、ロ
ングワードのみを使用可能としている。論理演算命令,
シフト命令,ローテート命令は特に制限はされないもの
のバイト,ワード,ロングワードを使用可能である。こ
れは、16Mバイトのアドレス空間を使用する応用の一
つとして、プリンタの文字データを扱う場合に、文字デ
ータの白黒反転や斜体等の加工にこれら命令が多用され
ると考えられるためである。逆に、64kバイトのアド
レス空間のサポートする下位CPUでは、論理演算命
令,シフト命令,ローテート命令は特に制限はされない
もののバイトのみを使用可能である。
As described above, the arithmetic operation instruction can use bytes, words, and longwords, but addition and subtraction with carry can use only the byte size. Increment and decrement can use bytes, words, and longwords when the register is used as a counter, but ± 2 and ± 4 are used for address calculation, so only longwords can be used. There is. Logical operation instruction,
The shift instruction and rotate instruction can use bytes, words, and longwords, although not particularly limited. This is because, as one of the applications using the 16-Mbyte address space, when handling character data of a printer, it is considered that these instructions are frequently used for black-and-white inversion of character data and processing of italics and the like. On the contrary, in the lower CPU which supports the address space of 64 kbytes, the logical operation instruction, the shift instruction and the rotate instruction are not particularly limited, but only the byte can be used.

【0060】前記の通り、主要な演算はレジスタ間で行
い、メモリとレジスタ間での直接的な演算は行わない命
令体系としても、新規のオペレーションコードの追加が
困難な場合には、例えば、ロングワードサイズの転送命
令,演算命令を、ワードサイズの相当命令に1ワードの
プリフィックスコードを追加したものとすれば、特に、
制御部の論理的・物理的規模を最低限とすることができ
る。
As described above, even if it is difficult to add a new operation code even if the instruction system is such that the main operation is performed between the registers and the direct operation between the memory and the register is not performed, for example, a long operation is performed. If a word-sized transfer instruction and operation instruction are equivalent to a word-sized instruction with a 1-word prefix code added,
The logical and physical scale of the control unit can be minimized.

【0061】図20及び21にはプリフィックスコード
を利用した一例命令フォーマットが示される。
20 and 21 show an example instruction format using a prefix code.

【0062】前記の通り、ディスプレースメント付レジ
スタ間接のワードサイズの命令フォーマットの前に、1
ワードのプリフィックスコードを設けて、ロングワード
サイズを表現している。プリフィックスコードは、下位
CPUの命令コードと重複しないことが必要であるか
ら、これを未定義命令のコードに相当するコードとする
のが最適である。その外に、オペランド指定フィールド
の情報を実質的に必要としないノン・オペレーション
(NOP)命令のような命令のオペランド指定フィール
ドを所定のコードで満たしたものを、可能ならプリフィ
ックスコードとして利用することができる。
As described above, 1 is added before the indirect word size instruction format of the register with displacement.
A word prefix code is provided to represent the long word size. Since it is necessary that the prefix code does not overlap with the instruction code of the lower CPU, it is optimal to use it as the code corresponding to the undefined instruction code. In addition, it is possible to use, as a prefix code, if the operand specification field of an instruction such as a non-operation (NOP) instruction that does not substantially require the information of the operand specification field is filled with a predetermined code. it can.

【0063】図22にはかかるマイクロコンピュータの
アドレスマップが示される。
FIG. 22 shows an address map of such a microcomputer.

【0064】内蔵ROMはアドレスH’00000から
配置され、内蔵周辺機能と内蔵RAMはH’FF800
以降に配置されており、これらの間は外部空間とされ
る。内蔵周辺機能と内蔵RAMをアドレス空間の中途、
例えば、H’0F800からH’0FFFFなどに配置
することができるが、この場合には外部空間が2ヵ所に
分離され、また、内蔵ROMに書き込んだプログラムと
外部空間に存在するプログラムを連続的に使用できず、
本発明の目的に反する。従って主としてプログラム領域
とされるべき内蔵ROMと、主としてデータ領域とされ
るべき内蔵周辺機能・内蔵RAMは互いにアドレス空間
の反対に配置し、この間は連続した空間とすべきであ
る。特に内蔵ROMはスタートアドレスまたはスタート
アドレスを格納したアドレスを含む必要がある。
The built-in ROM is arranged from the address H'00000, and the built-in peripheral functions and the built-in RAM are H'FF800.
It is arranged after that, and the space between them is an external space. Built-in peripheral functions and built-in RAM in the middle of the address space,
For example, it can be arranged from H'0F800 to H'0FFFF, etc. In this case, the external space is divided into two parts, and the program written in the internal ROM and the program existing in the external space are consecutively arranged. Can't use
Contrary to the object of the invention. Therefore, the built-in ROM, which should mainly be the program area, and the built-in peripheral function / built-in RAM, which should be mainly the data area, should be arranged opposite to each other in the address space, and a continuous space should be provided between them. In particular, the built-in ROM must include a start address or an address storing the start address.

【0065】なお、16ビット絶対アドレスは上位8ビ
ットを符号拡張して、実効アドレスを生成するため、指
定範囲はH’000000〜H’007FFFおよび
H’FF8000〜H’FFFFFFであって、内蔵R
OMの32kバイトおよび内蔵RAMと内蔵周辺機能を
指定できる。32kバイトより大きい内蔵ROMの部分
を除き、下位CPU同様に16ビット絶対アドレスで内
蔵機能ブロックを指定できる。従って、下位CPUから
のソフトウェアの移植を容易に行うことができる。ま
た、16ビットディスプレースメントレジスタ間接の場
合、ディスプレースメントを基準アドレス、レジスタの
内容を相対値と解釈したときの基準アドレスの指定範囲
と一致する。
The 16-bit absolute address sign-extends the upper 8 bits to generate an effective address. Therefore, the designated range is H'000000 to H'007FFF and H'FF8000 to H'FFFFFF, and the built-in R
OM 32 kbytes and built-in RAM and built-in peripheral functions can be specified. Like the lower CPU, the built-in functional block can be specified by a 16-bit absolute address except for the built-in ROM portion larger than 32 kbytes. Therefore, the software can be easily ported from the lower CPU. In the case of indirect 16-bit displacement register, the displacement matches the reference address and the specified range of the reference address when the contents of the register are interpreted as relative values.

【0066】以上の実施例においては、アドレス空間を
16Mバイトとしたが、また、本発明において拡張され
た機能は必要であるが、アドレス空間は従来同様に64
kバイトで十分な応用も考えられる。
In the above embodiment, the address space is set to 16 Mbytes. Further, although the function expanded in the present invention is required, the address space is 64 as in the conventional case.
A sufficient application of k bytes is also possible.

【0067】例えば、外部空間を使用せず、シングルチ
ップマイクロコンピュータの全ての端子を入出力ポート
として使用し、応用システムの実装面積を縮小したい場
合などは、内蔵領域の合計が64kバイト以下であれ
ば、アドレス空間は従来同様に64kバイトで問題な
い。
For example, when all the terminals of the single-chip microcomputer are used as input / output ports and the mounting area of the application system is to be reduced without using the external space, the total internal area should be 64 kbytes or less. For example, the address space is 64 kbytes, which is the same as in the conventional case.

【0068】かかる応用においては、ベクタのリードあ
るいはプログラムカウンタのスタックは16ビットすな
わち2バイト単位で行なえば良く、4バイト分のアクセ
スを行なうことは無駄であり、実行時間の低下・メモリ
の利用効率低下となる。
In such an application, vector reading or program counter stacking may be performed in units of 16 bits, that is, 2 bytes. Accessing 4 bytes is wasteful, which reduces execution time and memory utilization efficiency. It will decrease.

【0069】特に制限はされないものの、64kバイト
のアドレス空間で動作するモードをミニマムモード、前
記の通り、64kバイト以上のアドレス空間で動作する
モードをマキシマムモードとする。なお、これらミニマ
ムモード・マキシマムモードは図1にMODE1〜MO
DE3端子によって適宜指定される。
Although not particularly limited, the mode operating in the address space of 64 kbytes is the minimum mode, and the mode operating in the address space of 64 kbytes or more is the maximum mode as described above. The minimum mode and the maximum mode are shown in FIG.
It is designated appropriately by the DE3 terminal.

【0070】図23にはミニマムモード、マキシマムモ
ードでのCPUの動作の相異が示される。
FIG. 23 shows the difference in the operation of the CPU in the minimum mode and the maximum mode.

【0071】 前記のとおり、第1モード若しくは上位
モードとしてのマキシマムモードでは、アドレスの最大
本数は24ビットであり、ベクタ・例外処理時のスタッ
ク・サブルーチンコール時のスタックはいずれもアドレ
ス24ビットを含み4バイト単位である。
As described above, the first mode or higher order
In the maximum mode as the mode, the maximum number of addresses is 24 bits, and the vector, the stack at the time of exception processing, and the stack at the time of subroutine call all include addresses of 24 bits and are in units of 4 bytes.

【0072】 第2モード若しくは下位モードとしての
ミニマムモードでは、アドレスの最大本数は16ビット
であり、ベクタ・サブルーチンコール時のスタックはい
ずれもアドレス16ビット分の2バイトに縮小される。
また、特に制限はされないものの、CPU1がアドレッ
シングモードとして、いわゆるポストインクリメントレ
ジスタ間接・プリデクリメントレジスタ間接を有するも
のとし、アドレスレジスタの更新は下位16ビットとす
る。すなわち、拡張アドレスの更新は行なわない。ミニ
マムモードは、マキシマムモードに対して、高速化とメ
モリ利用効率の向上を実現できる。
In the minimum mode as the second mode or lower mode , the maximum number of addresses is 16 bits, and the stack at the time of vector subroutine call is reduced to 2 bytes corresponding to 16 bits of the address. .
Although not particularly limited, the CPU 1 has so-called post-increment register indirect / pre-decrement register indirect as an addressing mode, and the address register is updated in the lower 16 bits. That is, the extension address is not updated. The minimum mode can achieve higher speed and higher memory utilization efficiency than the maximum mode.

【0073】図24にはミニマムモード、マキシマムモ
ードでのメモリ上のデータ形式が示される。
FIG. 24 shows the data format on the memory in the minimum mode and the maximum mode.

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

【0075】ミニマムモードでは、ベクタは2バイト単
位で偶数番地を先頭にして配置される。これらがスター
トアドレス(下位16ビット。上位8ビットは0とみな
される。)として使用される。スタックは、例外処理時
は、4バイト単位で偶数番地を先頭にしてCCR・予約
領域とPC下位16ビットが格納される。サブルーチン
コール時は、2バイト単位で偶数番地を先頭にしてPC
下位16ビットが格納される。
In the minimum mode, the vector is arranged in 2-byte units with an even address at the beginning. These are used as a start address (lower 16 bits; upper 8 bits are regarded as 0). In the exception processing, the CCR / reserved area and the lower 16 bits of the PC are stored in units of 4 bytes at the beginning of an even address in the exception processing. At the time of subroutine call, PC with an even address at the beginning in units of 2 bytes
The lower 16 bits are stored.

【0076】係るミニマムモードとマキシマムモードを
用意しておけば、ミニマムモードで動作するCPU1
は、オブジェクトプログラムレベルで上位互換を実現す
ることができる。
If the minimum mode and the maximum mode are prepared, the CPU 1 operating in the minimum mode
Can achieve upward compatibility at the object program level.

【0077】かかるシングルチップマイクロコンピュー
タをテストすることを考えると、ミニマムモードおよび
マキシマムモードの何れにおいても、ベクタ領域を外部
メモリとすることが可能であることが望ましい。マキシ
マムモードは広いアドレスを有効に利用するため、RO
M無効拡張モードを設定すると考えられ、かかるROM
無効拡張モードではベクタ領域が外部メモリとなるので
問題はない。しかしながら、ミニマムモードをシングル
チップモードのみとした場合には、最低限テスト用にベ
クタ領域を外部メモリとする必要がある。テスト時に
は、内蔵ROMの内容は、使用者のプログラムが格納さ
れており、製造者は利用できない。このため、ミニマム
モード/マキシマムモードのベクタ構造の切り替え機能
がテストできなくなってしまうためである。
Considering testing such a single-chip microcomputer, it is desirable that the vector area can be used as an external memory in both the minimum mode and the maximum mode. Since the maximum mode effectively uses a wide address, RO
It is considered that the M invalid extended mode is set, and the ROM
In the invalid extended mode, there is no problem because the vector area becomes external memory. However, when the minimum mode is only the single chip mode, it is necessary to use the vector area as an external memory for testing at least. At the time of testing, the contents of the built-in ROM store the user's program and cannot be used by the manufacturer. For this reason, the switching function of the minimum mode / maximum mode vector structure cannot be tested.

【0078】これに対しては、例えばテストモード時に
のみリード/ライト可能なレジスタを設け、かかるビッ
トの設定によって、ミニマムモードでかつROM無効拡
張モードが設定できるようにすればよい。最低限、RO
M上のベクタ領域をリードしたときにデータを外部から
入力できるようにすればよい。
To address this, for example, a register capable of reading / writing only in the test mode may be provided so that the minimum mode and the ROM invalid extension mode can be set by setting the bit. Minimum RO
Data may be externally input when the vector area on M is read.

【0079】上記実施例によれば以下の効果を得るもの
である。すなわち、 (1)8ビットCPUの16ビット汎用レジスタに16
ビットの拡張レジスタを追加したような形態を以って、
全体で32ビットのレジスタ(Ri+Ei)を一括して
又はその一部分をアドレスレジスタとして使用するとと
もに、データレジスタとしては、32ビット全体を1単
位として、2分割して2個の16ビットデータレジスタ
(Ei,Ri)として、さらに16ビットデータレジス
タの一方を2分割して2個の8ビットレジスタ(Ri
H,RiL)として使用可能にする。そして、8ビット
レジスタとして利用するか16ビットレジスタとして利
用するかは、オペレーションコードに含まれる、データ
情報のサイズビットによって決定する。データ情報のサ
イズが8ビット(バイト)のとき、8ビットレジスタの
上位(RiH)・下位(RiL)は、命令に含まれるレ
ジスタ指定フィールドの所定1ビットによって指定す
る。データ情報のサイズが16ビット(ワード)のと
き、当該所定1ビットは、16ビットレジスタの上位
(Ei)・下位(Ri)を指定することになる。そし
て、32ビットレジスタ(Ri+Ei)としての利用
は、オペレーションコードを含む命令の前置きコード
(プリフィックスコード)によって指定する。或は、下
位CPUのオペレーションコードと同一ビット数の新た
なオペレーションコードを追加して指定する。このよう
にレジスタの指定方式をも含めてCPU1のレジスタ構
成は下位CPUのレジスタ構成を包含する。これを基
に、16ビット汎用レジスタを備える下位CPUがサポ
ートする命令実行機能をCPU1が包含する。これによ
り、下位CPUのために開発されたプログラムは、少な
くとも、ソースプログラムのレベル上位CPU1に利用
可能になる。すなわち、少なくとも、ソースプログラム
レベルで上位互換を実現することができる。 (2)有効なアドレスのビット数と、ベクタ及びスタッ
クの単位サイズとを、前記レジスタEi,Ri,Ri
H,RiLの利用形態に応じて切り替える動作モードと
して、マクシマムモードとミニマムモードを用意してお
くことにより、ミニマムモードで動作するCPI1は、
オブジェクトプログラムレベルでの上位互換を実現する
ことができる。 (3)ロングワードデータを利用する命令にプリフィッ
クスコードを採用することにより、主要な演算はレジス
タ間で行い、メモリとレジスタ間での直接的な演算は行
わない命令体系としても、新規のオペレーションコード
の追加が困難な場合に対処できると共に、制御部の論理
的・物理的規模の増大を著しく抑えることができる。 (4)プリフィックスコードとして、未定義命令のコー
ドに相当するコードを採用することにより、他のオペレ
ーションコードとの重複を完全に阻止できる。 (5)全体で32ビットのレジスタRi、Eiを一括し
て或は一部をアドレスレジスタとして使用するととも
に、2分割して16ビットデータレジスタとし、さらに
16ビットデータレジスタの一方を8ビットレジスタと
して使用可能とすることによって、データ処理を効率良
く行ないつつ、16Mバイトの広いアドレス空間を使用
することができる。 (6)命令長を2バイト単位として、24ビット絶対ア
ドレス・ディスプレースメントを予約領域を含めて4バ
イトとすることにより、将来4Gバイトのアドレス空間
を使用することができる。 (7)8ビットレジスタとして利用可能なレジスタの数
と、16ビットレジスタとして利用可能なレジスタの数
を同数とすることにより、命令長を短縮してプログラム
効率を向上することができる。 (8)命令コード中のレジスタ指定部をレジスタ全体を
指定する3ビット及びレジスタの部分を指定する1ビッ
トで構成することにより、レジスタ選択回路の論理的・
物理的規模を縮小できる。 (9)命令コード中の実効アドレス指定部の最下位ビッ
トを命令コード中のワードの最下位ビットとすることに
より、実行部及び制御部の構成を単純化し、論理的並び
に物理的規模を縮小できる。 (10)シングルチップマイクロコンピュータ100の
論理的並びに物理的規模を最小限として、64kバイト
以上のアドレス空間を使用できる。
According to the above embodiment, the following effects are obtained. (1) 16-bit general-purpose register of 8-bit CPU
With the form of adding a bit extension register,
A 32-bit register (Ri + Ei) is used as a whole or a part of it is used as an address register, and as a data register, the entire 32 bits are divided into two units and divided into two 16-bit data registers (Ei). , Ri), one of the 16-bit data registers is further divided into two, and two 8-bit registers (Ri
H, RiL). Whether to use it as an 8-bit register or a 16-bit register is determined by the size bit of the data information included in the operation code. When the size of the data information is 8 bits (bytes), the upper (RiH) / lower (RiL) of the 8-bit register is designated by a predetermined 1 bit of the register designation field included in the instruction. When the size of the data information is 16 bits (word), the predetermined 1 bit specifies the upper (Ei) / lower (Ri) of the 16-bit register. The use as a 32-bit register (Ri + Ei) is specified by the prefix code (prefix code) of the instruction including the operation code. Alternatively, a new operation code having the same number of bits as the operation code of the lower CPU is added and designated. As described above, the register configuration of the CPU 1 including the register designation system includes the register configuration of the lower CPU. Based on this, the CPU 1 includes the instruction execution function supported by the lower CPU having the 16-bit general-purpose register. As a result, the program developed for the lower CPU becomes available to at least the level higher CPU 1 of the source program. That is, upward compatibility can be realized at least at the source program level. (2) The number of effective address bits and the unit size of the vector and the stack are stored in the registers Ei, Ri, Ri.
By preparing a maximum mode and a minimum mode as operation modes to be switched according to the usage patterns of H and RiL, the CPI 1 operating in the minimum mode is
Upward compatibility at the object program level can be realized. (3) By using a prefix code for instructions that use longword data, a new operation code is used even if the instruction system does not perform direct operations between memory and registers, but performs major operations between registers. It is possible to deal with the case where it is difficult to add the control unit, and it is possible to remarkably suppress the increase in the logical and physical scale of the control unit. (4) By adopting a code corresponding to the code of the undefined instruction as the prefix code, duplication with other operation codes can be completely prevented. (5) The 32-bit registers Ri and Ei are used collectively or partially as address registers, and divided into two 16-bit data registers, and one of the 16-bit data registers is used as an 8-bit register. By making it available, a wide address space of 16 Mbytes can be used while efficiently performing data processing. (6) By setting the instruction length to 2 bytes and the 24-bit absolute address displacement to 4 bytes including the reserved area, an address space of 4 Gbytes can be used in the future. (7) By making the number of registers that can be used as 8-bit registers equal to the number of registers that can be used as 16-bit registers, the instruction length can be shortened and the program efficiency can be improved. (8) By configuring the register designating part in the instruction code with 3 bits designating the entire register and 1 bit designating the register part, the logical selection of the register selection circuit
The physical scale can be reduced. (9) By setting the least significant bit of the effective address designation section in the instruction code to be the least significant bit of the word in the instruction code, the configuration of the execution section and the control section can be simplified and the logical and physical scale can be reduced. . (10) The address space of 64 kbytes or more can be used by minimizing the logical and physical scale of the single-chip microcomputer 100.

【0080】以上本発明者によってなされた発明を実施
例に基づいて具体的に説明したが、本発明はそれに限定
されるものではなく、その要旨を逸脱しない範囲におい
て種々変更可能であることは言うまでもない。
Although the invention made by the present inventor has been specifically described based on the embodiments, the present invention is not limited to the embodiments and various modifications can be made without departing from the scope of the invention. Yes.

【0081】例えば、CPU1のブロック構成,レジス
タ構成,具体的な論理回路例などについては何ら限定さ
れない。レジスタのビット数あるいはレジスタの本数な
どは任意に選択することもできる。アドレッシングモー
ドと実効アドレスの計算方法についても種々変更可能で
ある。
For example, the block configuration of the CPU 1, the register configuration, a specific example of a logic circuit, etc. are not limited at all. The number of bits of the register or the number of registers can be arbitrarily selected. The addressing mode and the calculation method of the effective address can be changed variously.

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

【0083】[0083]

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

【0084】 (1)レジスタ指定方式も含めて下位C
PUのような別のデータ処理装置のレジスタ構成、並び
に下位CPUの命令実行機能を包含することにより、下
位CPUのために開発されたプログラムは、少なくと
も、ソースプログラムのレベルで本発明に係るデータ処
理装置に利用可能になり、少なくとも、ソースプログラ
ムレベルでの上位互換を実現することができる。 (2)有効なアドレスのビット数と、ベクタ及びスタッ
クの単位サイズとを、前記レジスタの利用形態に応じて
切り替える動作モード(第1モード、第2モード)を予
め用意しておくことにより、オブジェクトプログラムレ
ベルでの上位互換も簡単に実現できるようになる。 (3)8ビットCPUの16ビット汎用レジスタに16
ビットの拡張レジスタを追加して、全体で32ビットで
構成されるようなデータ保持手段は、データの保持には
全部、又は2分割して、或は2分割した一方を更に2分
割して使用可能であり、これによって、ソフトウェア上
並びにハードウェア上でのデータ保持手段の使い勝手が
良好になり、ひいては、データ処理装置の論理的並びに
物理的な規模の縮小を達成することができる。また、デ
ータ保持手段の全体又は一部分を使用したアドレスデー
タの保持という点に関しては、リニアに利用可能なアド
レス空間の拡張が容易になり、また、ページレジスタに
よるアドレス空間拡張技術に比べてプログラムの作成並
びにコンパイルを容易化することができる。したがっ
て、高級言語により作成されたプログラムを効率よく実
行できる。 (4)nビットデータの演算命令と2nビットデータの
演算命令とを考慮したとき、全体を2等分割して使用さ
れる部分と、2等分割された一方を更に2等分割して使
用される部分とを有するように個々のデータ保持手段を
構成すると共に、2等分割で利用される部分の全体の数
が、更に2等分割で利用される部分の全体の数と等しく
なるように、複数単位の前記データ保持手段を設けるこ
とにより、命令長を短縮してプログラム効率を向上させ
ることができる 5)したがって、論理的・物理的規模の増加を最小限
としつつ、動作モードに応じて、下位CPUのような別
のデータ処理装置ために既に開発されたプログラムの一
部若しくは全部を利用可能な、下位CPUとの上位互換
を実現しつつ、連続的に使用可能なアドレス空間を相対
的に広げることができる。
(1) Lower C including the register designation method
By including the register configuration of another data processing device such as PU and the instruction execution function of the lower CPU, the program developed for the lower CPU is at least at the level of the source program, and the data processing according to the present invention is performed. The device can be used, and at least upward compatibility at the source program level can be realized. (2) By preparing in advance an operation mode (first mode, second mode) for switching the number of bits of an effective address and the unit size of a vector and a stack according to the usage pattern of the register, Upward compatibility at the program level will be easily realized. (3) 16 bits in the 16-bit general-purpose register of the 8-bit CPU
A data holding means having a total of 32 bits by adding a bit extension register is used to hold the data, either all or divided into two, or one divided into two and used. It is possible, which makes the data holding means easy to use on software as well as on hardware, and thus it is possible to reduce the logical and physical scale of the data processing device. Further, regarding the point of holding the address data using the whole or a part of the data holding means, the linearly usable address space can be easily expanded, and the program can be created as compared with the address space expansion technique by the page register. Also, compilation can be facilitated. Therefore, a program created in a high-level language can be efficiently executed. (4) Considering an operation instruction of n-bit data and an operation instruction of 2n-bit data, a part used by dividing the whole into two equal parts and one part divided into two equal parts are further divided into two equal parts and used. And each individual data holding means is configured so that the total number of parts used in the equal division is equal to the total number of parts used in the equal division. By providing a plurality of units of data holding means, the instruction length can be shortened and the program efficiency can be improved . ( 5) Therefore, it is possible to use part or all of the program already developed for another data processing device such as a lower CPU according to the operation mode while minimizing the increase in logical and physical scale. In addition, it is possible to relatively widen the address space that can be continuously used while realizing the upper compatibility with the lower CPU.

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

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

【図2】下位CPUのレジスタ構成例の説明図である。FIG. 2 is an explanatory diagram of a register configuration example of a lower CPU.

【図3】図2のCPUの汎用レジスタのデータ構成を示
す説明図である。
FIG. 3 is an explanatory diagram showing a data configuration of a general-purpose register of the CPU of FIG.

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

【図5】本実施例に係るCPUのレジスタ上のデータ構
成図である。
FIG. 5 is a data configuration diagram on a register of the CPU according to the present embodiment.

【図6】今実施例に係るCPUによるアドレシングモー
ドと実効アドレス計算方法の一例説明図である。
FIG. 6 is an explanatory diagram showing an example of an addressing mode and an effective address calculation method by the CPU according to the present embodiment.

【図7】本実施例に係るCPUによるアドレシングモー
ドと実効アドレス計算方法の他の例の説明図である。
FIG. 7 is an explanatory diagram of another example of the addressing mode and the effective address calculation method by the CPU according to the present embodiment.

【図8】本実施例に係るCPUによるアドレシングモー
ドと実効アドレス計算方法の別の例の説明図である。
FIG. 8 is an explanatory diagram of another example of the addressing mode and the effective address calculation method by the CPU according to the present embodiment.

【図9】本実施例に係るCPUの命令フォーマットの一
例説明図である。
FIG. 9 is an explanatory diagram showing an example of an instruction format of the CPU according to the present embodiment.

【図10】本実施例に係るCPUの他の命令フォーマッ
トの説明図である。
FIG. 10 is an explanatory diagram of another instruction format of the CPU according to the present embodiment.

【図11】本実施例に係るCPUのその他の命令フォー
マットの説明図である。
FIG. 11 is an explanatory diagram of another instruction format of the CPU according to the present embodiment.

【図12】本実施例に係るCPUの別の命令フォーマッ
トの説明図である。
FIG. 12 is an explanatory diagram of another instruction format of the CPU according to the present embodiment.

【図13】本実施例に係るCPUの更に別の命令フォー
マットの説明図である。
FIG. 13 is an explanatory diagram of still another instruction format of the CPU according to the present embodiment.

【図14】本実施例に係るCPUの更に他の命令フォー
マットの説明図である。
FIG. 14 is an explanatory diagram of still another instruction format of the CPU according to the present embodiment.

【図15】本実施例に係るCPUの更にその他の命令フ
ォーマットの説明図である。
FIG. 15 is an explanatory diagram of still another instruction format of the CPU according to the present embodiment.

【図16】本実施例に係るCPUの残りの一部の命令フ
ォーマットの説明図である。
FIG. 16 is an explanatory diagram of a part of the remaining instruction formats of the CPU according to the embodiment.

【図17】図4に示されるレジスタの指定態様に関する
説明図である。
17 is an explanatory diagram related to a designation mode of the registers shown in FIG. 4. FIG.

【図18】本実施例に係るCPUの一例ブロック図であ
る。
FIG. 18 is an example block diagram of a CPU according to the present embodiment.

【図19】本実施例に係るCPUの命令とアドレッシン
グモードとの組合せを示す説明図である。
FIG. 19 is an explanatory diagram showing a combination of a CPU instruction and an addressing mode according to the present embodiment.

【図20】プリフィックスコードを利用した命令フォー
マットの説明図である。
FIG. 20 is an explanatory diagram of an instruction format using a prefix code.

【図21】プリフィックスコードを利用した別の命令フ
ォーマットの説明図である。
FIG. 21 is an explanatory diagram of another instruction format using a prefix code.

【図22】本発明の一実施例に係るマイクロコンピュー
タのアドレスマップである。
FIG. 22 is an address map of a microcomputer according to an embodiment of the present invention.

【図23】ミニマムモードとマキシマムモードでのCP
Uの動作の相異を示す説明図である。
FIG. 23 CP in minimum mode and maximum mode
It is explanatory drawing which shows the difference of operation | movement of U.

【図24】ミニマムモードとマキシマムモードでのメモ
リ上のデータ形式の相違を示す説明図である。
FIG. 24 is an explanatory diagram showing a difference in data format on a memory between the minimum mode and the maximum mode.

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

1 CPU 2 ROM 3 RAM 4 タイマ 5 SCI 100 シングルチップマイクロコンピュータ Ri(R0L,R0H〜R7L,R7H) 汎用レジス
タ E(E0〜E7) 拡張レジスタ PC プログラムカウンタ SEL セレクタ回路部 EXE 実行部 CONT 制御部 REGSEL レジスタ選択回路部 ABL,ABH,ABE アドレスバッファ ALUL,ALUH,ALUE 算術論理演算器 RDBL,RDBH,RDBE リードデータバッファ RDB1,RDB3 第1のリードデータバッファ部分 RDB2,RDB4 第2のリードデータバッファ部分 WDBL,WDBH,WDBE ライトデータバッファ WDBOL,WDBOH ライトデータ出力バッファ
1 CPU 2 ROM 3 RAM 4 timer 5 SCI 100 single-chip microcomputer Ri (R0L, R0H to R7L, R7H) general-purpose register E (E0 to E7) extension register PC program counter SEL selector circuit unit EXE execution unit CONT control unit REGSEL register Select circuit units ABL, ABH, ABE Address buffers ALUL, ALUH, ALUE Arithmetic logic operation units RDBL, RDBH, RDBE Read data buffers RDB1, RDB3 First read data buffer parts RDB2, RDB4 Second read data buffer parts WDBL, WDBH , WDBE write data buffer WDBOL, WDBOH write data output buffer

フロントページの続き (56)参考文献 特開 平2−146628(JP,A) 特開 昭63−113635(JP,A) 特開 昭64−93847(JP,A) 特開 昭64−91236(JP,A) 金田悠紀夫,マイクロプロセッサとR ISC,株式会社オーム社,1991年 5 月25日,第1版,p.27−132 中島信行,80386プロテクト・モード 活用研究,インターフェース,CQ出版 株式会社,1990年 9月 1日,第16巻 第9号,p.147−174 可児賢二ほか6名,Vシリーズマイク ロコンピュータI,丸善株式会社,1986 年 1月20日,第1版,p.32−37 可児賢二ほか6名,Vシリーズマイク ロコンピュータII,丸善株式会社, 1987年 4月30日,第1版,p.104− 109 (58)調査した分野(Int.Cl.7,DB名) G06F 9/30 - 9/36 Continuation of the front page (56) Reference JP-A-2-146628 (JP, A) JP-A-63-113635 (JP, A) JP-A-64-93847 (JP, A) JP-A-64-91236 (JP , A) Yukio Kaneda, Microprocessor and RISC, Ohmsha Co., Ltd., May 25, 1991, first edition, p. 27-132 Nobuyuki Nakajima, 80386 Protected Mode Utilization Research, Interface, CQ Publishing Co., Ltd., September 1, 1990, Volume 16, No. 9, p. 147-174 Kenji Kani and 6 others, V Series Microcomputer I, Maruzen Co., Ltd., January 20, 1986, 1st edition, p. 32-37 Kenji Kani and 6 others, V Series Microcomputer II, Maruzen Co., Ltd., April 30, 1987, 1st edition, p. 104- 109 (58) Fields investigated (Int.Cl. 7 , DB name) G06F 9/30-9/36

Claims (7)

(57)【特許請求の範囲】(57) [Claims] 【請求項1】 第1モードと第2モードとを有するデー
タ処理装置であって、 それぞれが所定のビット長を有し、それぞれが第1部分
と第2部分とを有する複数の汎用レジスタと、 上記複数の汎用レジスタの上記第1部分に結合された第
1の算術論理演算ユニットと、 上記複数の汎用レジスタの上記第2部分に結合された第
2の算術論理演算ユニットとを含み、 上記第1モードは、上記第1の算術論理演算ユニットと
上記第2の算術論理演算ユニットがアドレス演算とデー
タ演算とを実行することを可能にし、 上記第2モードは、上記第2の算術論理演算ユニットが
アドレス演算とデータ演算とを実行することを可能にす
るとともに、上記第1の算術論理演算ユニットがデータ
演算を実行することを可能にする、ものであることを特
徴とするデータ処理装置。
1. A data processing device having a first mode and a second mode, each of which has a predetermined bit length, and a plurality of general-purpose registers each having a first part and a second part, A first arithmetic logic operation unit coupled to the first portion of the plurality of general purpose registers and a second arithmetic logic operation unit coupled to the second portion of the plurality of general purpose registers; One mode enables the first arithmetic logic operation unit and the second arithmetic logic operation unit to perform an address operation and a data operation, and the second mode is the second arithmetic logic operation unit. Is capable of performing an address operation and a data operation, and the first arithmetic logic operation unit is capable of performing a data operation. Data processing equipment.
【請求項2】 上記第1モードで動作するのか上記第2
モードで動作するのかを定めるモード信号を受ける外部
端子を、更に、含んで成るものであることを特徴とする
請求項1記載のデータ処理装置。
2. Whether to operate in the first mode or the second mode
2. The data processing device according to claim 1, further comprising an external terminal for receiving a mode signal that determines whether to operate in a mode.
【請求項3】 上記複数の汎用レジスタと、上記第1と
第2の算術論理演算ユニットとを有するセントラルプロ
セッシングユニットと、 上記セントラルプロセッシングユニットに結合され、上
記複数の汎用レジスタの内の一つからアドレス信号が供
給される内部バスと、 上記内部バスに結合され、上記データ処理装置のプログ
ラムデータを保持する第1メモリと、 上記内部バスに結合され、上記セントラルプロセッシン
グユニットに対してワーキングエリアを提供する第2メ
モリとを有し、 上記セントラルプロセッシングユニットのアドレス空間
は、上記第1メモリのアドレスが配置された領域を含む
第1領域と、上記第2メモリのアドレスが配置された領
域を含む第2領域と、上記第1領域と上記第2領域との
間であって、外部空間のアドレスのための第3領域とを
含み、 上記第1モードの際の上記第3領域のアドレス空間は、
上記第2モードの際の上記第3領域のアドレス空間より
も広いことを特徴とする請求項1記載のデータ処理装
置。
3. A central processing unit having the plurality of general-purpose registers, the first and second arithmetic and logic operation units, and a central processing unit coupled to the central processing unit, wherein one of the plurality of general-purpose registers is connected to the central processing unit. An internal bus supplied with an address signal, a first memory coupled to the internal bus for holding program data of the data processing device, and coupled to the internal bus to provide a working area for the central processing unit. The central processing unit has an address space including a first region including a region in which the address of the first memory is arranged and a region including a region in which the address of the second memory is arranged. Between the second area and the first area and the second area, and And a third region for less, the address space of the third area when the first mode,
2. The data processing device according to claim 1, wherein the data processing device is wider than the address space of the third area in the second mode.
【請求項4】 上記第1部分は上位側レジスタであり、
上記第2部分は下位側レジスタであり、上記上位側レジ
スタと上記下位側レジスタは、上記第1モードの際に、
組み合わせレジスタを規定するために協調して動作し、
上記組み合わせレジスタにはアドレスデータが保持さ
れ、上記第2モードの際には、上記下位側レジスタにア
ドレスデータが保持される、ものであることを特徴とす
る請求項3記載のデータ処理装置。
4. The first part is an upper register,
The second portion is a lower register, and the upper register and the lower register are:
Work in concert to define combinational registers,
4. The data processing apparatus according to claim 3, wherein address data is held in the combination register, and address data is held in the lower register in the second mode.
【請求項5】 それぞれが第1所定ビット長を有する第
1部分と、第2所定ビット長を有する第2部分とを含む
複数の汎用レジスタと、 上記複数の汎用レジスタの第1部分に結合された第1の
算術論理演算ユニットと、 上記複数の汎用レジスタの第2部分に結合された第2の
算術論理演算ユニットと、 上記第1と第2の算術論理演算ユニットに結合され、
作モードに応じて上記第1と第2の算術論理演算ユニッ
の動作状態を制御するモード制御手段とを含み、 上記モード制御手段は、 上位モードの場合、上記第1及び第2の算術論理演算ユ
ニットの両方が協調して、上記第1の部分から第1アド
レス部を取り出し、上記第2の部分から第2アドレス部
を取り出し、第1のアドレス空間をアクセスするための
アドレス演算を実行する様に、上記第1と第2の算術論
理演算ユニットを制御し、 下位モードの場合、上記第2の算術論理演算ユニット
は、上記第2アドレス部を取り出して、上記第1アドレ
ス空間よりも小さな第2のアドレス空間をアクセスする
ためのアドレス演算を実行し、上記第1と第2の算術論
理演算ユニットを制御する、ものであることを特徴とす
るデータ処理装置。
5. A plurality of general-purpose registers, each of which includes a first portion having a first predetermined bit length and a second portion having a second predetermined bit length, and coupled to the first portion of the plurality of general-purpose registers. and a first arithmetic logic unit, a second arithmetic logic unit coupled to the second portion of the plurality of general purpose registers, coupled to said first and second arithmetic logic unit, the dynamic
Depending on the work mode and a mode control means for controlling an operating state of said first and second arithmetic logic unit, said mode control means, in the case of higher order modes, said first and second arithmetic logic Both of the units cooperate to extract the first address part from the first part, the second address part from the second part, and execute the address operation for accessing the first address space. And controlling the first and second arithmetic logic operation units, and in the case of the lower mode, the second arithmetic logic operation unit takes out the second address part and stores the first address space smaller than the first address space. A data processing device, which executes an address operation for accessing two address spaces and controls the first and second arithmetic logic operation units.
【請求項6】 上記第1部分は上位側レジスタであり、
上記第2部分は下位側レジスタであり、上記上位側レジ
スタと上記下位側レジスタは、上記上位モードの際に、
組み合わせレジスタを規定するために協調して動作し、
上記組み合わせレジスタにはアドレスデータが保持さ
れ、上記下位モードの際には、上記下位側レジスタにア
ドレスデータが保持されることを特徴とする請求項5記
載のデータ処理装置。
6. The first part is an upper register,
The second part is a lower register, and the upper register and the lower register are:
Work in concert to define combinational registers,
6. The data processing apparatus according to claim 5, wherein address data is held in the combination register, and address data is held in the lower register in the lower mode.
【請求項7】 それぞれが第1ビット長を有する第1部
分と第2ビット長を有する第2部分とを含む複数の汎用
レジスタと、上記複数の汎用レジスタの第1部分に結合
された第1の算術論理演算ユニットと、上記複数の汎用
レジスタの第2部分に結合された第2の算術論理演算ユ
ニットとを含み2モード、第1モード及び第2モードを
有するデータ処理装置を準備するステップと、 上記第1モードにおいて、上記第2ビット長よりも大き
なアドレスを処理するために、上記第1と第2の算術論
理演算ユニットを協調して使用して、アドレス演算を実
行するか、又は上記第1ビット長よりも大きなデータを
処理するために、上記第1と第2の算術論理演算ユニッ
トを協調して使用して、データ演算を実行するステップ
と、 上記第2モードにおいて、上記第2ビット長のアドレス
を処理するために、上記第2の算術論理演算ユニットを
使用して、アドレス演算を実行するとともに、上記第1
ビット長のデータを処理するために、上記第1の算術論
理演算ユニットを使用して、データ演算を実行するステ
ップとを含むことを特徴とするデータ処理方法。
7. A plurality of general purpose registers, each including a first portion having a first bit length and a second portion having a second bit length, and a first portion coupled to the first portion of the plurality of general purpose registers. And a second arithmetic logic operation unit coupled to the second portion of the plurality of general purpose registers to prepare a data processing device having two modes, a first mode and a second mode. In the first mode, in order to process an address larger than the second bit length, the first and second arithmetic logic operation units are cooperatively used to perform an address operation, or Performing a data operation using the first and second arithmetic logic operation units in cooperation to process data larger than a first bit length; and in the second mode. , In order to process the address of the second bit length, using said second arithmetic logic unit, and executes the address calculation, the first
Performing a data operation using the first arithmetic and logic unit for processing bit-length data.
JP22644792A 1991-05-08 1992-08-03 Data processing device Expired - Lifetime JP3432532B2 (en)

Priority Applications (3)

Application Number Priority Date Filing Date Title
JP22644792A JP3432532B2 (en) 1992-08-03 1992-08-03 Data processing device
KR1019930014080A KR100277805B1 (en) 1992-08-03 1993-07-24 Data processing device
US08/582,379 US5666510A (en) 1991-05-08 1996-01-11 Data processing device having an expandable address space

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP22644792A JP3432532B2 (en) 1992-08-03 1992-08-03 Data processing device

Related Child Applications (1)

Application Number Title Priority Date Filing Date
JP2003037571A Division JP3539951B2 (en) 2003-02-17 2003-02-17 Data processing device

Publications (2)

Publication Number Publication Date
JPH0651981A JPH0651981A (en) 1994-02-25
JP3432532B2 true JP3432532B2 (en) 2003-08-04

Family

ID=16845245

Family Applications (1)

Application Number Title Priority Date Filing Date
JP22644792A Expired - Lifetime JP3432532B2 (en) 1991-05-08 1992-08-03 Data processing device

Country Status (2)

Country Link
JP (1) JP3432532B2 (en)
KR (1) KR100277805B1 (en)

Families Citing this family (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP3839835B2 (en) * 1999-04-30 2006-11-01 株式会社ルネサステクノロジ Data processing apparatus and microcomputer
JP2001202243A (en) * 1999-04-30 2001-07-27 Hitachi Ltd Data processor
JP4545777B2 (en) * 2002-06-28 2010-09-15 ルネサスエレクトロニクス株式会社 Data processing device
JP4073721B2 (en) 2002-06-28 2008-04-09 株式会社ルネサステクノロジ Data processing device
JP2005196729A (en) * 2003-12-10 2005-07-21 Renesas Technology Corp Compiler and instruction code output device
KR100788913B1 (en) * 2005-11-18 2007-12-27 주식회사디아이 Pre-Branch Pattern Generator for Test System of Semiconductor Apparatus
JP2008204249A (en) * 2007-02-21 2008-09-04 Renesas Technology Corp Data processor
JP5357475B2 (en) * 2008-09-09 2013-12-04 ルネサスエレクトロニクス株式会社 Data processor
US8914619B2 (en) * 2010-06-22 2014-12-16 International Business Machines Corporation High-word facility for extending the number of general purpose registers available to instructions

Non-Patent Citations (4)

* Cited by examiner, † Cited by third party
Title
中島信行,80386プロテクト・モード活用研究,インターフェース,CQ出版株式会社,1990年 9月 1日,第16巻第9号,p.147−174
可児賢二ほか6名,VシリーズマイクロコンピュータI,丸善株式会社,1986年 1月20日,第1版,p.32−37
可児賢二ほか6名,VシリーズマイクロコンピュータII,丸善株式会社,1987年 4月30日,第1版,p.104−109
金田悠紀夫,マイクロプロセッサとRISC,株式会社オーム社,1991年 5月25日,第1版,p.27−132

Also Published As

Publication number Publication date
JPH0651981A (en) 1994-02-25
KR940004440A (en) 1994-03-15
KR100277805B1 (en) 2001-01-15

Similar Documents

Publication Publication Date Title
US10514922B1 (en) Transfer triggered microcontroller with orthogonal instruction set
US6405302B1 (en) Microcomputer
US4449184A (en) Extended address, single and multiple bit microprocessor
JP4130654B2 (en) Method and apparatus for adding advanced instructions in an extensible processor architecture
KR100462951B1 (en) Eight-bit microcontroller having a risc architecture
US5666510A (en) Data processing device having an expandable address space
KR20010043826A (en) Microcontroller instruction set
US6401197B1 (en) Microprocessor and multiprocessor system
US6745320B1 (en) Data processing apparatus
JP3694531B2 (en) 8-bit microcontroller with RISC architecture
JP3432532B2 (en) Data processing device
JP2006313561A (en) Data processor
JP4004915B2 (en) Data processing device
US5687344A (en) Single-chip microcomputer having an expandable address area
US6253305B1 (en) Microprocessor for supporting reduction of program codes in size
US5680632A (en) Method for providing an extensible register in the first and second data processing systems
JP2556182B2 (en) Data processing device
JP3539951B2 (en) Data processing device
Phillips The Z80000 microprocessor
JP3839835B2 (en) Data processing apparatus and microcomputer
JP3669984B2 (en) Microcomputer
JPH09505428A (en) Microcontroller with page address mode
JP3154542B2 (en) Data processing device
US20030101333A1 (en) Data processor
JP3486630B2 (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: 20030513

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

Free format text: PAYMENT UNTIL: 20080523

Year of fee payment: 5

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

Free format text: PAYMENT UNTIL: 20080523

Year of fee payment: 5

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

Free format text: PAYMENT UNTIL: 20090523

Year of fee payment: 6

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

Free format text: PAYMENT UNTIL: 20100523

Year of fee payment: 7

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

Free format text: PAYMENT UNTIL: 20110523

Year of fee payment: 8

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

Free format text: PAYMENT UNTIL: 20110523

Year of fee payment: 8

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

Year of fee payment: 8

R350 Written notification of registration of transfer

Free format text: JAPANESE INTERMEDIATE CODE: R350

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

Free format text: PAYMENT UNTIL: 20120523

Year of fee payment: 9

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

Free format text: PAYMENT UNTIL: 20120523

Year of fee payment: 9

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

Free format text: PAYMENT UNTIL: 20130523

Year of fee payment: 10

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

Free format text: PAYMENT UNTIL: 20130523

Year of fee payment: 10