JPH07129398A - マイクロプロセッサ - Google Patents

マイクロプロセッサ

Info

Publication number
JPH07129398A
JPH07129398A JP5293950A JP29395093A JPH07129398A JP H07129398 A JPH07129398 A JP H07129398A JP 5293950 A JP5293950 A JP 5293950A JP 29395093 A JP29395093 A JP 29395093A JP H07129398 A JPH07129398 A JP H07129398A
Authority
JP
Japan
Prior art keywords
instruction
immediate
data
code
bus width
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
JP5293950A
Other languages
English (en)
Inventor
Tadashi Kamata
忠 鎌田
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.)
Denso Corp
Original Assignee
NipponDenso Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by NipponDenso Co Ltd filed Critical NipponDenso Co Ltd
Priority to JP5293950A priority Critical patent/JPH07129398A/ja
Publication of JPH07129398A publication Critical patent/JPH07129398A/ja
Pending legal-status Critical Current

Links

Landscapes

  • Executing Machine-Instructions (AREA)

Abstract

(57)【要約】 (修正有) 【目的】バス幅を変えることなく、コンパクトでコード
量の少ない構成を実現するマイクロプロセッサ即値導入
手段を提供する。 【構成】マイクロプロセッサ(以下MPU)即値導入手段を
実現したMPU100で、命令記憶部1に、命令バッファ2が
接続され、そのMSB(最上位ビット)にセレクタ9が接続
されている。バス幅より1ビット少ない即値データ構成
で残りの1ビットにより即値データだとセレクタが判定
した場合、命令バッファ2のデータは直接データパス5
の制御機構8へ転送される。本発明の構成で、メモリお
よび処理時間ともに短縮できた。バス幅の即値データを
必要とする場合は、バス幅回復のための命令語を付加す
るので、この分に対しては従来と同等のコード量、処理
時間で対処できる。

Description

【発明の詳細な説明】
【0001】
【産業上の利用分野】本発明は、電子制御等に使用され
るマイクロプロセッサに関し、命令記憶部から定数を即
値として演算器に導入する即値導入機構を有するマイク
ロプロセッサに関するものである。
【0002】
【従来の技術】従来、マイクロプロセッサにおいて、演
算用のバス幅と同一の幅を持つ即値データの取扱いは、
図4に示すように、演算用バスの2倍の命令語長の命令
セット(あるいは即値データが二つ必要な場合は3倍の
命令語長の命令セット)により行われるのが一般的で、
前半のバス幅の命令コード+バス幅の即値データという
構成となり、必要な即値データの2倍もしくは3倍の語
長となる。例えば2倍の命令語長の場合、8ビット=1
バイトのバス幅では2バイト=1ワードが1命令セット
となる。そのため、バス幅の即値データを多用するプロ
グラムではコード量が増大する。即値データの取扱いは
この命令語セットによるので、バス幅より少し桁の少な
い即値データでも2倍のコード量を必要とする。なお、
バス幅より十分小さい桁の即値に対しては、1コードの
前半を命令語として後半を即値領域とした命令コードが
あるので問題とはならない。このため、バス幅を大きく
することで、即値データばかりか命令語も豊富となるの
で、自然な開発展開として多ビットバスのマイクロプロ
セッサの設計が手がけられ、演算のバス幅は8ビットか
ら16ビット、32ビット、64ビットと倍々になり機
能が充実している。勿論この開発は、複雑な周辺回路や
設計を必要とし、簡単に実施はできない。
【0003】そこまでハードウエア的に機能を向上させ
なくとも、特開昭56-85159号公報に提案されているよう
に、バス幅に1ビットか2ビットの付加的語長を追加す
る提案がある。これは例えば、8ビット・バス構成なら
ば、9もしくは10ビット目のバスラインを付加した構
成にして、付加したビットに即値データを示す値をセッ
トし、即値であればそのデータが即アキュムレータへ転
送されるものである。そのため即値データを転送するた
めの命令コードをセットする必要がない。それで同一バ
ス幅の即値データに着目すれば、この場合もコード量を
抑えるのに効果がある。
【0004】
【発明が解決しようとする課題】しかしながら、上記文
献の場合では、付加的語長のためのハード的構成を余分
に必要とし、演算用のバスと付加的バスとを分離した構
造としなければならないので、回路規模の増大、チップ
面積の増大となり、設計上好ましくないという問題があ
る。さりとて、従来のままでは、どのバス幅において
も、バス幅に等しい即値データの取扱いは、バスの2倍
の命令語長の命令セットにしなければならず、必要な即
値長の2倍のコード量あるいは2つのバスサイクル、つ
まりプログラムコード量が大きくなり、処理時間が倍に
なるという問題がある。特にワンチップマイクロコンピ
ュータでは使用できるメモリ量が多くないため、コード
量の増大は処理機能や処理時間の低下をまねくという問
題になる。さらに、バス幅より大きな命令語長を有する
場合もあり、命令が2つのバスサイクルに及ぶこともあ
るため、命令が即値の導入を含むか否かを前命令のサイ
クルで解釈し、それに基づき後命令の後に即値データを
導入するというシーケンスが必要となり、機構が複雑に
なる欠点を有する。現実のプログラムに使用される即値
データは、一般にはコード量の20〜30%を占めると
言われているが、そのうちバス幅の即値が実際に必要な
頻度は低いと言える。そのため、バス幅未満の即値デー
タのためにバス幅の即値データをセットして命令コード
をさらに付加しなければならないことは、効率的とは言
いがたい。従って本発明の目的は、バス幅を変えること
なく、コンパクトでコード量の少ない構成を実現するマ
イクロプロセッサ即値導入手段を提供することである。
【0005】
【課題を解決するための手段】上記の課題を解決するた
め本発明の構成は、バス幅以下の即値データを使用し、
予め命令記憶部に記憶された即値コードおよび命令コー
ドからなる命令語の前記プログラムコードを逐次該バス
幅である1コードごと呼び出し、前記命令コードを命令
デコーダで分析して命令を実行し、前記即値コードの即
値データを演算器等を有するデータパスで処理する機構
を有するマイクロプロセッサにおいて、最長の即値デー
タを、バス幅よりも1ビット少ない数値データとし、前
記1ビットの値により、前記命令記憶部からのデータが
即値であるか命令であるかを判断するセレクタと、即値
コードである場合に、該即値コードを命令デコーダに送
らずに直ちに前記データパス内に転送する機構を有し、
前記即値データの目的内容により、前記即値データを前
記バス幅と同じ幅に拡張する演算処理を前記プログラム
コードに有することである。
【0006】また関連発明の構成は、前記1ビットは、
前記命令記憶部に接続された命令バッファのMSB(最
上位ビット)であり、前記セレクタは、前記MSBの値
が0の場合に前記データパスの制御機構を活性化させて
前記命令バッファのコードを制御機構に受け取らせ、前
記MSBの値が1の場合に命令デコーダを活性化させ、
前記コードを命令デコーダに受け取らせる回路であるこ
とを特徴とする。
【0007】上記発明に関連した第三の構成は、前記演
算処理は、前記即値コードを転送後、バス幅を回復する
命令コードを付加することであり、前記命令コードが、
前記即値データがバス幅の桁を有する数値データの場
合、MSBに1をセットするビットセット命令である、
もしくは、前記即値データが奇数アドレス配置を許さな
いアドレス指定のアドレスデータの場合、LSB(最下
位ビット)を0とする、左シフト命令である、もしく
は、前記即値データが符号付きバス幅データとしての負
値の場合、ビット反転命令して1を加える1コード命令
となっていることである。
【0008】
【作用】バス幅より1ビット少ない即値データの導入に
より、そのデータが即値コードであることを残りの1ビ
ット(MSBなど) で判定する。即値コードである判
定は、命令バッファに接続されたセレクタ回路で行わ
れ、即値コードの場合はデータを演算する回路のデータ
パス側が選択され、その制御機構へ転送される。そして
必要に応じて、バス幅の即値データとするために、即値
コードの残りの1ビットを別途付加的な命令コードでバ
ス幅に設定した後、演算に使用される。
【0009】
【発明の効果】プログラムに頻繁に使用される即値デー
タのうち、バス幅の即値データの頻度が少ないことか
ら、本発明の構成によってコード量を減少させることが
でき、メモリの利用効率を上げ、処理時間の短縮が実現
する。またバス幅を変える必要のないことから、演算操
作のために既に備わっている機構を利用できるため、機
構を簡素化でき、コンパクトなマイクロプロセッサが設
計できて、コストを抑えることができる。
【0010】
【実施例】以下、本発明を具体的な実施例に基づいて説
明する。図1は、本発明の即値導入機構を有するマイク
ロプロセッサ(以下MPUと記す)の一実施例で、MP
U100は図示しない周辺機器等と接続されてマイクロ
コンピュータシステムを構成している。命令コードおよ
び即値コードの命令語セットによるプログラムコードが
構成されており、そのプログラムコードが記憶されてい
る命令記憶部1には、命令バッファ2が接続され、命令
バッファ2のMSB(上位ビット)にセレクタ9が接続
されている。命令バッファ2からは命令デコーダ3へと
データパス5へと接続される。そして命令デコーダ3で
解読された命令はデータパス5に指示を伝えるべく接続
されている。
【0011】データパス5内では命令バッファ2からの
データが制御機構8を通じて入力レジスタ4につながれ
ている。入力されたデータは演算器6およびアキュムレ
ータ7等で演算され処理される。
【0012】MPU100は通電開始と共に、このプロ
グラムコードを読み出して逐次実行していく。読み出さ
れた命令語は、一旦命令バッファ2に保持される。命令
バッファ2のMSB(上位1ビット)は命令記憶部から
のデータが命令コードか即値コードかの区別を与えるビ
ットであり、図2の一例に示すように、バス幅16ビッ
トとして、MSBのビット15が「0」の場合は、バス幅
の即値データ導入指示であり、「1」の場合は即値導入
以外の命令となっている。そこで、即値導入以外の命令
語であるとセレクタが判定すると、その命令語は命令デ
コーダへ転送され、命令が解析されて実行指示がデータ
パス5に対してなされる。即値データであるとセレクタ
が判定した場合は、命令バッファ2のデータは直接デー
タパス5の制御機構8へ転送され、入力レジスタ4から
演算器6に至って、必要に応じてバス幅等が拡張され、
目的の演算処理がなされる。
【0013】データパス5に転送された即値データは、
必要に応じてバス幅にセットされるが、バス幅にセット
する必要がない場合も多い。例えば16ビットバス幅、
MSBを判定ビットとして、定数「146Eh」(hは
十六進法を示す。二進法では0001 0100 0110 1110)の
数値はMSBが0であるので、判定ビットをそのままデ
ータビットとみなしてデータを使用して問題を生じな
い。従ってバス幅を補正する処理を必要とせず、従来よ
り半分のコードで済む(図3(a) の場合)。
【0014】MSBが1となるような即値データ、例え
ば、16ビットの例で「946Eh」という即値データ
は、命令バッファ2に保持されている際には、バス幅で
みると、定数「146Eh」としておく。従って、これ
をビットセット命令によってMSBを1にセットするこ
とで目的の定数に設定することになる。つまり、マイク
ロプロセッサにとっては、予めプログラムするので、そ
の即値データがどのデータかはわかっているため、目標
の即値データとするための処理の命令語を付け加えるこ
とになる(図3(b) の場合)。
【0015】また、即値データが命令語のアドレスのよ
うな場合、16ビットの例でいうと、通常16ビット命
令語の格納アドレスはバイトごとにアドレッシングする
ので、即値データのLSBは「0」となる。従って、即
値データとしてはアドレスの上位15ビット分を即値デ
ータ領域にセットしておき、転送後に左シフトコマンド
一つで目的のアドレス値を得ることができ、従来と同じ
処理時間でセットできる(図3(c) の場合)。
【0016】さらに、即値データが符号付データの場合
は、MSBを符号ビット、残りの15ビットを数値デー
タとして用い、通常MSBを「1」の場合に負の場合と
することが多い。すると従来のビット構成のままでは、
命令語と判定されてしまうので、ここでは、正の数とし
て反転した即値データを用意し、後にビット反転命令
(NEG 命令)によりバス幅の符号付データとする(図3
(d) の場合)。
【0017】以上のように、バス幅の即値データを使用
したい場合は、ビット回復のための処理プロセスが必要
となる。しかし、付加的命令コードも1コードでほとん
ど対応でき、従来と同等のコード量、処理時間でよい。
即ち、プログラムで使用されるバス幅一杯のデータは頻
度が少なく、それにも係わらずバス幅以下のデータに対
してもバス幅即値のデータを用いなければならなかった
場合に比べて、本発明の構成では即値データの処理が、
メモリおよび処理時間ともに短縮することができた。
【0018】仮に、即値データの出現頻度をPi、そのう
ちMSBが0であるような即値データが導入される頻度
をPz、従来技術による即値導入の命令コード長をLo、本
発明の即値データにおける命令コード長をLi、バス幅拡
張に使用する命令コード長をLeとすると、コード量の削
減分は数1式で示される。
【数1】Pi*[1- Pz*Li/Lo -(1-Pz)*(Li+Le)/Lo] と表される。ここで一般的な例として、Pi= 0.2 , Pz=
0.8 , Lo= 4(byte) , Li=Le=2(byte) として計算すると
8%のコード量削減となる。
【0019】即ち本発明では、使用頻度の少ないバス幅
一杯の即値データを用いずに、1ビット減らした構成
で、残った1ビットを即値コードか命令コードかの判定
ビットとするので、バス幅まで必要のない15ビット分
までの即値コードに対する処理が即値コードの1コード
で済み、従ってプログラムも短くて良く、処理時間も短
くできる。そしてバス幅の即値データを必要とする場合
に、バス幅回復のための命令語を付加するので、この分
に対しては従来と同等のコード量、処理時間で対処でき
る。
【図面の簡単な説明】
【図1】本発明の即値導入機構の構成を示すブロック
図。
【図2】本発明の命令語と即値の構成例を示す説明図。
【図3】即値判定後の即値データのバス幅拡張の説明
図。
【図4】従来の命令語および即値の構成例を示す説明
図。
【符号の説明】
1 命令記憶部 2 命令バッファ 3 命令デコーダ 4 入力レジスタ 5 データパス(6、7、8を含む枠内全体) 6 演算器 7 アキュムレータ 8 制御機構 9 セレクタ 10 データバス

Claims (3)

    【特許請求の範囲】
  1. 【請求項1】 バス幅以下の即値データを使用し、予め
    命令記憶部に記憶された即値コードおよび命令コードか
    らなる命令語の前記プログラムコードを逐次該バス幅で
    ある1コードごと呼び出し、前記命令コードを命令デコ
    ーダで分析して命令を実行し、前記即値コードの即値デ
    ータを演算器等を有するデータパスで処理する機構を有
    するマイクロプロセッサにおいて、 最長の即値データを、バス幅よりも1ビット少ない数値
    データとし、 前記1ビットの値により、前記命令記憶部からのデータ
    が即値であるか命令であるかを判断するセレクタと、 即値コードである場合に、該即値コードを命令デコーダ
    に送らずに直ちに前記データパス内に転送する機構を有
    し、 前記即値データの目的内容により、前記即値データを前
    記バス幅と同じ幅に拡張する演算処理を前記プログラム
    コードに有することを特徴とするマイクロプロセッサ。
  2. 【請求項2】 前記1ビットは、前記命令記憶部に接続
    された命令バッファのMSB(最上位ビット)であり、 前記セレクタは、前記MSBの値が0の場合に前記デー
    タパスの制御機構を活性化させて前記命令バッファのコ
    ードを制御機構に受け取らせ、前記MSBの値が1の場
    合に命令デコーダを活性化させ、前記コードを命令デコ
    ーダに受け取らせる回路であることを特徴とする請求項
    1に記載のマイクロプロセッサ。
  3. 【請求項3】 前記演算処理は、前記即値コードを転送
    後、バス幅を回復する命令コードを付加することであ
    り、 前記命令コードは、 前記即値データがバス幅の桁を有する数値データの場
    合、MSBに1をセットするビットセット命令である、
    もしくは前記即値データが奇数アドレス配置を許さない
    アドレス指定のアドレスデータの場合、LSB(最下位
    ビット)を0とする、左シフト命令である、もしくは前
    記即値データが符号付きバス幅データとしての負値の場
    合、ビット反転命令して1を加える1コード命令である
    ことを特徴とする請求項2に記載のマイクロプロセッ
    サ。
JP5293950A 1993-10-29 1993-10-29 マイクロプロセッサ Pending JPH07129398A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP5293950A JPH07129398A (ja) 1993-10-29 1993-10-29 マイクロプロセッサ

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP5293950A JPH07129398A (ja) 1993-10-29 1993-10-29 マイクロプロセッサ

Publications (1)

Publication Number Publication Date
JPH07129398A true JPH07129398A (ja) 1995-05-19

Family

ID=17801281

Family Applications (1)

Application Number Title Priority Date Filing Date
JP5293950A Pending JPH07129398A (ja) 1993-10-29 1993-10-29 マイクロプロセッサ

Country Status (1)

Country Link
JP (1) JPH07129398A (ja)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2007088819A1 (ja) * 2006-02-03 2007-08-09 Matsushita Electric Industrial Co., Ltd. プロセッサ
WO2021060135A1 (ja) * 2019-09-24 2021-04-01 国立大学法人東京工業大学 少命令セット組み込みプロセッサ

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2007088819A1 (ja) * 2006-02-03 2007-08-09 Matsushita Electric Industrial Co., Ltd. プロセッサ
WO2021060135A1 (ja) * 2019-09-24 2021-04-01 国立大学法人東京工業大学 少命令セット組み込みプロセッサ

Similar Documents

Publication Publication Date Title
EP0766169B1 (en) Processor and control method for performing proper saturation operation
EP1063586B1 (en) Apparatus and method for processing data with a plurality of flag groups
JP3790619B2 (ja) 正値化処理及び飽和演算処理からなる丸め処理を好適に行うことができるプロセッサ
US5682531A (en) Central processing unit
JPH05216917A (ja) 算術論理ユニット
JPH0991197A (ja) データ転送制御装置
US20050198471A1 (en) Micro-controller for reading out compressed instruction code and program memory for compressing instruction code and storing therein
EP1143333B1 (en) Microprocessor for supporting reduction of program codes in size
US6282558B1 (en) Data processing system and register file
JP3201716B2 (ja) コンピュータ装置
US5991872A (en) Processor
US7308553B2 (en) Processor device capable of cross-boundary alignment of plural register data and the method thereof
US5077659A (en) Data processor employing the same microprograms for data having different bit lengths
US5539900A (en) Information processing system
JP3556252B2 (ja) オフセット合計を計算するデータ処理システムとその方法
JPH07129398A (ja) マイクロプロセッサ
US6005502A (en) Method for reducing the number of bits needed for the representation of constant values in a data processing device
US6144321A (en) Microprocessor dedicated to processing of bit streams in a system of compression/decompression of animated images
US5708800A (en) High speed microprocessor for processing and transferring N-bits of M-bit data
US6133859A (en) Microprocessor dedicated to processing of bit streams in a system of compression/decompression of animated images
JP3525582B2 (ja) ビット操作回路
US5142636A (en) Memory bank address calculation with reduced instruction execution cycles
JPH11163736A (ja) プロセッサ
JPH05313886A (ja) ディジタル信号処理プロセッサ
JP2004151915A (ja) データ処理装置