JP2001084141A - プロセッサ - Google Patents

プロセッサ

Info

Publication number
JP2001084141A
JP2001084141A JP25997699A JP25997699A JP2001084141A JP 2001084141 A JP2001084141 A JP 2001084141A JP 25997699 A JP25997699 A JP 25997699A JP 25997699 A JP25997699 A JP 25997699A JP 2001084141 A JP2001084141 A JP 2001084141A
Authority
JP
Japan
Prior art keywords
data
instruction
operand
size
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.)
Granted
Application number
JP25997699A
Other languages
English (en)
Other versions
JP3805578B2 (ja
Inventor
Shuichi Takayama
秀一 高山
Nobuo Higaki
信生 檜垣
Masato Suzuki
正人 鈴木
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Panasonic Holdings Corp
Original Assignee
Matsushita Electric Industrial Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Matsushita Electric Industrial Co Ltd filed Critical Matsushita Electric Industrial Co Ltd
Priority to JP25997699A priority Critical patent/JP3805578B2/ja
Priority to US09/606,091 priority patent/US6802017B1/en
Publication of JP2001084141A publication Critical patent/JP2001084141A/ja
Application granted granted Critical
Publication of JP3805578B2 publication Critical patent/JP3805578B2/ja
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Classifications

    • 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/30145Instruction analysis, e.g. decoding, instruction word fields
    • G06F9/3016Decoding the operand specifier, e.g. specifier format
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F1/00Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
    • G06F1/26Power supply means, e.g. regulation thereof
    • G06F1/32Means for saving power
    • G06F1/3203Power management, i.e. event-based initiation of a power-saving mode
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F1/00Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
    • G06F1/26Power supply means, e.g. regulation thereof
    • G06F1/32Means for saving power
    • G06F1/3203Power management, i.e. event-based initiation of a power-saving mode
    • G06F1/3234Power saving characterised by the action undertaken
    • G06F1/3287Power saving characterised by the action undertaken by switching off individual functional units in the computer system
    • 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/30003Arrangements for executing specific machine instructions
    • G06F9/30007Arrangements for executing specific machine instructions to perform operations on data operands
    • G06F9/30025Format conversion instructions, e.g. Floating-Point to Integer, decimal conversion
    • 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/30003Arrangements for executing specific machine instructions
    • G06F9/30007Arrangements for executing specific machine instructions to perform operations on data operands
    • G06F9/30036Instructions to perform operations on packed data, e.g. vector, tile or matrix operations
    • 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/30003Arrangements for executing specific machine instructions
    • G06F9/3004Arrangements for executing specific machine instructions to perform operations on memory
    • G06F9/30043LOAD or STORE instructions; Clear instruction
    • 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/30145Instruction analysis, e.g. decoding, instruction word fields
    • G06F9/3016Decoding the operand specifier, e.g. specifier format
    • G06F9/30167Decoding the operand specifier, e.g. specifier format of immediate specifier, e.g. constants
    • 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/30181Instruction operation extension or modification
    • G06F9/30192Instruction operation extension or modification according to data descriptor, e.g. dynamic data typing
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
    • Y02D10/00Energy efficient computing, e.g. low power processors, power management or thermal management

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Mathematical Physics (AREA)
  • Computer Hardware Design (AREA)
  • Computing Systems (AREA)
  • Executing Machine-Instructions (AREA)
  • Power Sources (AREA)
  • Advance Control (AREA)

Abstract

(57)【要約】 【課題】 複数のサイズのデータを扱うプロセッサにお
ける電力消費の無駄を削減する。 【解決手段】 レジスタファイル2を構成する複数本の
レジスタR0〜R7の各々にSZ部2fを設け、RAM
25からレジスタファイル2への特定サイズのオペラン
ドデータのロードを要求する命令や、レジスタファイル
2への特定サイズの即値オペランドデータの転送を要求
する命令が解読されたときには、オペランドデータのサ
イズ情報をSZ部2fに保持させ、レジスタファイル2
の中のオペランドデータの参照を要求する算術論理演算
命令、又は、レジスタファイル2からRAM25へのオ
ペランドデータのストアを要求する命令が解読されたと
きには、レジスタファイル2のSZ部2fからサイズ情
報を読み出して、操作手段を構成するALU1a〜1d
等の種々の要素のうち当該サイズ情報により指定された
部分のみを動作させる。

Description

【発明の詳細な説明】
【0001】
【発明の属する技術分野】本発明は、複数のサイズのデ
ータを扱うプロセッサに関するものである。
【0002】
【従来の技術】近年、機器組み込み用途のプロセッサが
扱うデータは多様化している。例えば、32ビット、1
6ビット、8ビットのサイズのデータを扱うことが要求
される。一方では、携帯機器へプロセッサを応用する場
合、バッテリの容量に制限があるため、長時間駆動を行
うには低消費電力が要求されている。
【0003】32ビットのアーキテクチャを有する従来
のRISC(Reduced InstructionSet Computer)型プ
ロセッサは、データに算術論理演算操作を施すための3
2ビットのALU(Arithmetic and Logic Unit)と、
データを保持するための32ビットのレジスタファイル
と、データを転送するための32ビットのバスとを備え
たものであった。このプロセッサで8ビットデータを扱
う場合には、このデータのサイズが無条件で32ビット
に拡張される。具体的には、8ビットデータが符号付き
データであるならば上位24ビットに符号拡張が、8ビ
ットデータが符号なしデータであるならば上位24ビッ
トにゼロ拡張がそれぞれなされる。16ビットデータを
扱う場合にも、このデータのサイズが無条件で32ビッ
トに拡張される。このようにして得られた32ビットデ
ータが、32ビットのALUに供給され、32ビットの
レジスタファイルに保持され、また32ビットのバスを
通して転送されるようになっていた。
【0004】
【発明が解決しようとする課題】上記従来のRISC型
プロセッサによれば、2つの8ビットデータをメモリか
ら順次ロードし、これらを加算し、その結果を表す8ビ
ットデータをメモリにストアするという一連の動作を行
う場合であっても、32ビットのALUと、32ビット
のレジスタファイルと、32ビットのバスとの全てのハ
ードウェア資源が動作していたので、電力が無駄に消費
される問題があった。このことは、16ビットデータを
扱う場合にも同様であった。
【0005】本発明の目的は、複数のサイズのデータを
扱うプロセッサにおける電力消費の無駄を削減すること
にある。
【0006】
【課題を解決するための手段】上記目的を達成するた
め、本発明は、複数のサイズのデータを扱うプロセッサ
において、最大サイズに対応したビット幅を有する操作
手段のうち、指定されたオペランドのデータサイズに応
じた部分のみを動作させることとしたものである。ここ
にいう操作手段は、命令により指定されたオペランド
に、該命令により指定された操作を施すための手段であ
って、オペランドデータに算術論理演算操作を施すため
のALUと、オペランドデータを保持するためのレジス
タファイルと、オペランドデータを転送するためのバス
と、バスを駆動するためのドライバと、バス上のオペラ
ンドデータを取り込むためのラッチと、オペランドデー
タのサイズを拡張するための拡張器とを含む。例えば、
与えられた命令を解読することにより、該命令により指
定されたオペランドについて、該指定されたオペランド
のデータサイズに関するサイズ情報を得て、前記操作手
段のうち当該サイズ情報により指定された部分のみを動
作させる。
【0007】オブジェクト指向の観点によれば、オペラ
ンドデータと、該オペランドデータのサイズに関するサ
イズ情報とをレジスタファイルに保持させるようにする
とよい。この場合において、レジスタファイルへの特定
サイズのオペランドデータの設定を要求する第1の命令
が解読されて、該第1の命令により指定されたオペラン
ドのデータサイズに関するサイズ情報が得られたときに
は、オペランドデータとともにサイズ情報をレジスタフ
ァイルに保持させる。また、レジスタファイルに保持さ
れたオペランドデータの参照を要求する第2の命令が解
読されたときには、レジスタファイルからオペランドデ
ータとともに該オペランドデータのサイズに関するサイ
ズ情報を読み出して、前記操作手段のうち当該レジスタ
ファイルから読み出したサイズ情報により指定された部
分のみを動作させる。
【0008】本発明の他の観点によれば、前記第1の命
令は、オペランドデータを符号付きデータとして扱うべ
きか又は符号なしデータとして扱うべきかを指定する命
令でもある。レジスタファイルには、オペランドデータ
と、該オペランドデータのサイズに関するサイズ情報と
に加えて、該オペランドデータの符号の有無に関する符
号情報を保持させる。この場合において、前記第1の命
令が解読されて、該第1の命令により指定されたオペラ
ンドの符号の有無に関する符号情報が得られたときに
は、オペランドデータとともに符号情報をレジスタファ
イルに保持させる。また、レジスタファイルに保持され
たオペランドデータの参照を要求する前記第2の命令が
解読されたときには、レジスタファイルからオペランド
データとともに該オペランドデータの符号の有無に関す
る符号情報を読み出して、当該読み出した符号情報に従
って前記第2の命令が実行されるように前記操作手段を
制御する。
【0009】
【発明の実施の形態】図1は、本発明に係るプロセッサ
の構成例を示している。本プロセッサは、32ビットの
アーキテクチャを有するRISC型プロセッサであっ
て、32ビット(ワード)、16ビット(ハーフワー
ド)、8ビット(バイト)のサイズのデータを扱うもの
である。
【0010】本プロセッサは、データに算術論理演算操
作を施して、その結果を得るとともにフラグを生成する
ための32ビットのALUを備えている。この32ビッ
トALUは、4個の8ビットALU1a,1b,1c,
1dに分割されている。ゲート11a,11b,11c
は、これら4個の8ビットALU1a〜1dの間で桁上
げ(キャリ)に関する演算情報を選択的に伝達するため
のゲートである。4個の8ビットALU1a〜1dと3
個のゲート11a〜11cとの全てが動作するとき、リ
ップルキャリ方式の32ビットALUが実現する。2個
の8ビットALU1c,1dと1個のゲート11cのみ
が動作するとき、16ビットALUが実現する。また、
1個の8ビットALU1dのみが動作することもある。
フラグは、オペランドのデータサイズに応じたビット位
置で生成されるようになっている。なお、図1中の符号
の末尾のa,b,c,dはそれぞれ、32ビットのうち
の最上位8ビット、中上位8ビット、中下位8ビット、
最下位8ビットの位置を表すよう付されている。
【0011】本プロセッサは、8本のレジスタR0〜R
7で構成された32ビットのレジスタファイル2を更に
備えている。レジスタR0〜R7の各々は、それぞれ8
ビットデータを保持するためのデータA部(DA部)2
a、データB部(DB部)2b、データC部(DC部)
2c及びデータD部(DD部)2dと、データの符号の
有無に関する1ビット情報を保持するための符号情報部
(SU部)2eと、データのサイズに関する2ビット情
報を保持するためのサイズ情報部(SZ部)2fとから
構成される。あるレジスタのSU部2eの1ビットの値
が“1”であることは、当該レジスタに保持されたデー
タが符号付きデータとして扱われるべきことを意味す
る。同ビットの値が“0”であることは、当該レジスタ
に保持されたデータが符号なしデータとして扱われるべ
きことを意味する。あるレジスタのSZ部2fの2ビッ
トの値が“10”であることは、当該レジスタのDA部
2a、DB部2b、DC部2c及びDD部2dが32ビ
ットのデータを保持していることを意味する。同2ビッ
トの値が“01”であることは、当該レジスタの中のD
C部2c及びDD部2dのみが16ビットのデータを保
持していることを意味する。また、同2ビットの値が
“00”であることは、当該レジスタの中のDD部2d
のみが8ビットのデータを保持していることを意味する
ようになっている。
【0012】本プロセッサは、各々データを転送するた
めの、各々32ビット幅を有するAバス31、Bバス3
2及びCバス33を更に備えている。図1において、2
0は命令列を格納するためのROM(Read-Only Memor
y)、21はROM20から読み出された命令を保持す
るための命令レジスタ(IR:Instruction Registe
r)、24はロードストアユニット、25はデータを格
納するためのRAM(RandomAccess Memory)である。
【0013】命令レジスタ21から得られた即値オペラ
ンドデータは、Bバス32を駆動するための各々8ビッ
トのドライバ3a,3b,3c,3dへ供給される。3
2ビットの即値オペランドデータをBバス32へ供給す
べき場合には、ドライバ3a〜3dが動作する。16ビ
ットの即値オペランドデータをBバス32へ供給すべき
場合には、ドライバ3c,3dのみが動作する。また、
8ビットの即値オペランドデータをBバス32へ供給す
べき場合には、ドライバ3dのみが動作する。
【0014】RAM25からロードストアユニット24
により読み出されたロードデータは、Bバス32を駆動
するための各々8ビットのドライバ4a,4b,4c,
4dへ供給される。32ビットのロードデータをBバス
32へ供給すべき場合には、ドライバ4a〜4dが動作
する。16ビットのロードデータをBバス32へ供給す
べき場合には、ドライバ4c,4dのみが動作する。ま
た、8ビットのロードデータをBバス32へ供給すべき
場合には、ドライバ4dのみが動作する。
【0015】レジスタファイル2から読み出された第1
のデータは、Aバス31を駆動するための各々8ビット
のドライバ5a,5b,5c,5dへ供給される。DA
部2a、DB部2b、DC部2c及びDD部2dから読
み出された32ビットのデータをAバス31へ供給すべ
き場合には、ドライバ5a〜5dが動作する。DC部2
c及びDD部2dから読み出された16ビットのデータ
をAバス31へ供給すべき場合には、ドライバ5c,5
dのみが動作する。また、DD部2dから読み出された
8ビットのデータをAバス31へ供給すべき場合には、
ドライバ5dのみが動作する。
【0016】レジスタファイル2から読み出された第2
のデータは、Bバス32を駆動するための各々8ビット
のドライバ6a,6b,6c,6dへ供給される。DA
部2a、DB部2b、DC部2c及びDD部2dから読
み出された32ビットのデータをBバス32へ供給すべ
き場合には、ドライバ6a〜6dが動作する。DC部2
c及びDD部2dから読み出された16ビットのデータ
をBバス32へ供給すべき場合には、ドライバ6c,6
dのみが動作する。また、DD部2dから読み出された
8ビットのデータをBバス32へ供給すべき場合には、
ドライバ6dのみが動作する。
【0017】図1中の7a,7b,7c及び7dは、各
々Aバス31上のデータを取り込むための、各々8ビッ
トのラッチ(DA1,DB1,DC1及びDD1)であ
る。取り込むべきデータが32ビットのサイズを有する
場合には、ラッチ7a〜7dが動作する。取り込むべき
データが16ビットのサイズを有する場合には、ラッチ
7c,7dのみが動作する。また、取り込むべきデータ
が8ビットのサイズを有する場合には、ラッチ7dのみ
が動作する。
【0018】図1中の8a,8b,8c及び8dは、各
々Bバス32上のデータを取り込むための、各々8ビッ
トのラッチ(DA2,DB2,DC2及びDD2)であ
る。取り込むべきデータが32ビットのサイズを有する
場合には、ラッチ8a〜8dが動作する。取り込むべき
データが16ビットのサイズを有する場合には、ラッチ
8c,8dのみが動作する。また、取り込むべきデータ
が8ビットのサイズを有する場合には、ラッチ8dのみ
が動作する。
【0019】本プロセッサは、ラッチ7a〜7dに取り
込まれたデータのサイズを拡張して、その結果を表すデ
ータをALU1a〜1dの左入力へ供給するための32
ビットの拡張器を更に備えている。この32ビット拡張
器は、4個の8ビット拡張器(EA1,EB1,EC1
及びED1)9a,9b,9c,9dに分割されてい
る。4個の8ビット拡張器9a〜9dの全てが動作する
とき、8ビット又は16ビットデータのサイズを32ビ
ットへ拡張するための拡張器が実現する。2個の8ビッ
ト拡張器9c,9dのみが動作するとき、8ビットデー
タのサイズを16ビットへ拡張するための拡張器が実現
する。サイズ拡張されるべきデータが符号付きデータで
あるならば符号拡張が、サイズ拡張されるべきデータが
符号なしデータであるならばゼロ拡張がそれぞれなされ
る。
【0020】本プロセッサは、ラッチ8a〜8dに取り
込まれたデータのサイズを拡張して、その結果を表すデ
ータをALU1a〜1dの右入力へ供給するための32
ビットの拡張器を更に備えている。この32ビット拡張
器は、4個の8ビット拡張器(EA2,EB2,EC2
及びED2)10a,10b,10c,10dに分割さ
れている。4個の8ビット拡張器10a〜10dの全て
が動作するとき、8ビット又は16ビットデータのサイ
ズを32ビットへ拡張するための拡張器が実現する。2
個の8ビット拡張器10c,10dのみが動作すると
き、8ビットデータのサイズを16ビットへ拡張するた
めの拡張器が実現する。サイズ拡張されるべきデータが
符号付きデータであるならば符号拡張が、サイズ拡張さ
れるべきデータが符号なしデータであるならばゼロ拡張
がそれぞれなされる。
【0021】ALU1a〜1dの演算結果を表すデータ
は、Cバス33を駆動するための各々8ビットのドライ
バ12a,12b,12c,12dへ供給される。32
ビットのデータをCバス33へ供給すべき場合には、ド
ライバ12a〜12dが動作する。16ビットのデータ
をCバス33へ供給すべき場合には、ドライバ12c,
12dのみが動作する。また、8ビットのデータをCバ
ス33へ供給すべき場合には、ドライバ12dのみが動
作する。レジスタファイル2の中に保持すべきデータ
は、Cバス33から供給される。また、RAM25へス
トアすべきデータは、Cバス33からロードストアユニ
ット24へ供給される。
【0022】本プロセッサは、命令レジスタ21から与
えられた命令を解読するための命令解読器(ID:Inst
ruction Decoder)22と、SU部2a及びSZ部2f
の各々の情報の書き込み及び読み出しを司るコントロー
ラ23とを更に備えている。命令解読器22は、ドライ
バ3a〜3d,4a〜4dの駆動のオン・オフを含め、
図中の操作手段を構成する種々の要素を制御する。コン
トローラ23も、SU部2a及びSZ部2fの各々の情
報に応じて、図中の操作手段を構成する種々の要素の動
作ビット幅等を制御する。
【0023】図2は、本プロセッサの命令セットの一部
を示している。本プロセッサは、ロード命令群、サイズ
変更命令群、符号有無変更命令群、即値転送命令群、算
術論理演算命令群、ストア命令群、ブランチ命令群等を
実行できるように構成されている。ただし、図2では、
ブランチ命令群等の図示が省略されている。図2中のR
n及びRmは、各々レジスタR0〜R7のいずれかを意
味する。レジスタR0〜R7の各々はプログラマに対し
て32ビットレジスタとして定義され、SU部2eとS
Z部2fとはプログラマからは見えない。
【0024】(1)ロード命令群 ロード命令群には、以下の6種類の命令が含まれる。個
々の命令のオペコードフィールド(operation code fie
ld)は、オペランドの符号の有無に関する指定情報と、
オペランドのデータサイズに関する指定情報とを含んで
いる。いずれの命令でも、プロセッサの動作制御は命令
解読器22によって行われる。
【0025】(1.1) ldb mem,Rn この命令は、メモリ(mem)から8ビットデータをロ
ードして、これを符号付きデータとしてレジスタRnに
設定することを要求する命令である。この命令が解読さ
れると、ロードストアユニット24がRAM25から8
ビットのオペランドデータを読み出す。読み出されたデ
ータは、ドライバ4d、Bバス32の最下位8ビット部
分を順次経てラッチ8dに取り込まれ、拡張器10d及
びALU1dを素通りしてドライバ12dに供給され、
Cバス33の最下位8ビット部分を経てレジスタRnの
DD部2dに格納される。これと並行して、レジスタR
nのSU部2eには符号付きデータの保持を表す値
“1”が、そのSZ部2fには8ビットデータの保持を
表す値“00”がそれぞれ格納される。他のドライバは
動作せず、他のラッチやレジスタはデータの保持を続け
る。
【0026】(1.2) ldbu mem,Rn この命令は、メモリから8ビットデータをロードして、
これを符号なしデータとしてレジスタRnに設定するこ
とを要求する命令である。この命令が解読された場合の
プロセッサの動作は、レジスタRnのSU部2eに符号
なしデータの保持を表す値“0”が格納される点を除い
て、上記(1.1)と同じである。
【0027】(1.3) ldh mem,Rn この命令は、メモリから16ビットデータをロードし
て、これを符号付きデータとしてレジスタRnに設定す
ることを要求する命令である。この命令が解読される
と、ロードストアユニット24がRAM25から16ビ
ットのオペランドデータを読み出す。読み出されたデー
タは、ドライバ4c,4d、Bバス32の最下位16ビ
ット部分を順次経てラッチ8c,8dに取り込まれ、拡
張器10c,10d及びALU1c,1dを素通りして
ドライバ12c,12dに供給され、Cバス33の最下
位16ビット部分を経てレジスタRnのDC部2c及び
DD部2dに格納される。これと並行して、レジスタR
nのSU部2eには符号付きデータの保持を表す値
“1”が、そのSZ部2fには16ビットデータの保持
を表す値“01”がそれぞれ格納される。他のドライバ
は動作せず、他のラッチやレジスタはデータの保持を続
ける。
【0028】(1.4) ldhu mem,Rn この命令は、メモリから16ビットデータをロードし
て、これを符号なしデータとしてレジスタRnに設定す
ることを要求する命令である。この命令が解読された場
合のプロセッサの動作は、レジスタRnのSU部2eに
符号なしデータの保持を表す値“0”が格納される点を
除いて、上記(1.3)と同じである。
【0029】(1.5) ld mem,Rn この命令は、メモリから32ビットデータをロードし
て、これを符号付きデータとしてレジスタRnに設定す
ることを要求する命令である。この命令が解読される
と、ロードストアユニット24がRAM25から32ビ
ットのオペランドデータを読み出す。読み出されたデー
タは、ドライバ4a〜4d、Bバス32の全部を順次経
てラッチ8a〜8dに取り込まれ、拡張器10a〜10
d及びALU1a〜1dを素通りしてドライバ12a〜
12dに供給され、Cバス33の全部を経てレジスタR
nのDA部2a、DB部2b、DC部2c及びDD部2
dに格納される。これと並行して、レジスタRnのSU
部2eには符号付きデータの保持を表す値“1”が、そ
のSZ部2fには32ビットデータの保持を表す値“1
0”がそれぞれ格納される。他のドライバは動作せず、
他のラッチやレジスタはデータの保持を続ける。
【0030】(1.6) ldu mem,Rn この命令は、メモリから32ビットデータをロードし
て、これを符号なしデータとしてレジスタRnに設定す
ることを要求する命令である。この命令が解読された場
合のプロセッサの動作は、レジスタRnのSU部2eに
符号なしデータの保持を表す値“0”が格納される点を
除いて、上記(1.5)と同じである。
【0031】(2)サイズ変更命令群 サイズ変更命令群には、以下の3種類の命令が含まれ
る。個々の命令のオペコードフィールドは、オペランド
のデータサイズに関する指定情報を含むが、オペランド
の符号の有無に関する指定情報を含まない。いずれの命
令でも、プロセッサの動作制御は命令解読器22とコン
トローラ23とによって行われる。
【0032】(2.1) extb Rn この命令は、レジスタRnに保持されたデータ(Rnデ
ータ)のサイズを8ビットに変更することを要求する命
令である。この命令が解読されると、レジスタRnのS
U部2e及びSZ部2fの各々の値がコントローラ23
に送られる。以降の動作は、SZ部2fの値、すなわち
Rnデータのサイズに応じて異なる。
【0033】(i) Rnデータが8ビットデータである場
合には、何の動作も行われない。全てのドライバは動作
せず、全てのラッチやレジスタはデータの保持を続け
る。
【0034】(ii) Rnデータが16ビットデータであ
る場合には、レジスタRnのSZ部2fの値が、16ビ
ットデータの保持を表す値“01”から、8ビットデー
タの保持を表す値“00”に変更される。ただし、レジ
スタRnのSU部2eの値は変更されない。これによ
り、レジスタRnに保持された16ビットデータは、符
号の有無をそのままに、その上位8ビットが無効化され
る。全てのドライバは動作せず、全てのラッチや他のレ
ジスタはデータの保持を続ける。
【0035】(iii) Rnデータが32ビットデータであ
る場合には、レジスタRnのSZ部2fの値が、32ビ
ットデータの保持を表す値“10”から、8ビットデー
タの保持を表す値“00”に変更される。ただし、レジ
スタRnのSU部2eの値は変更されない。これによ
り、レジスタRnに保持された32ビットデータは、符
号の有無をそのままに、その上位24ビットが無効化さ
れる。全てのドライバは動作せず、全てのラッチや他の
レジスタはデータの保持を続ける。
【0036】(2.2) exth Rn この命令は、Rnデータのサイズを16ビットに変更す
ることを要求する命令である。この命令が解読される
と、レジスタRnのSU部2e及びSZ部2fの各々の
値がコントローラ23に送られる。以降の動作は、SU
部2e及びSZ部2fの値、すなわちRnデータの符号
の有無とサイズとに応じて異なる。
【0037】(i) Rnデータが8ビットデータである場
合には、データのサイズ拡張が行われる。具体的には、
レジスタRnのDD部2dから8ビットのオペランドデ
ータが読み出され、これがドライバ6d、Bバス32の
最下位8ビット部分を順次経てラッチ8dに取り込まれ
る。そして、ラッチ8dに取り込まれた8ビットデータ
のサイズが拡張器10c,10dにより16ビットに拡
張される。詳細には、レジスタRnに保持された8ビッ
トデータが符号付きデータであるならば上位8ビットに
符号拡張が、レジスタRnに保持された8ビットデータ
が符号なしデータであるならば上位8ビットにゼロ拡張
がそれぞれなされる。このサイズ拡張により得られた1
6ビットデータは、ALU1c,1dを素通りしてドラ
イバ12c,12dに供給され、Cバス33の最下位1
6ビット部分を経てレジスタRnのDC部2c及びDD
部2dに格納される。これと並行して、レジスタRnの
SZ部2fの値は、8ビットデータの保持を表す値“0
0”から、16ビットデータの保持を表す値“01”に
変更される。ただし、レジスタRnのSU部2eの値は
変更されない。これにより、レジスタRnに保持された
データの符号の有無をそのままに、該データのサイズが
8ビットから16ビットへ拡張される。他のドライバは
動作せず、他のラッチやレジスタはデータの保持を続け
る。
【0038】(ii) Rnデータが16ビットデータであ
る場合には、何の動作も行われない。全てのドライバは
動作せず、全てのラッチやレジスタはデータの保持を続
ける。
【0039】(iii) Rnデータが32ビットデータであ
る場合には、レジスタRnのSZ部2fの値が、32ビ
ットデータの保持を表す値“10”から、16ビットデ
ータの保持を表す値“01”に変更される。ただし、レ
ジスタRnのSU部2eの値は変更されない。これによ
り、レジスタRnに保持された32ビットデータは、符
号の有無をそのままに、その上位16ビットが無効化さ
れる。全てのドライバは動作せず、全てのラッチや他の
レジスタはデータの保持を続ける。
【0040】(2.3) ext Rn この命令は、Rnデータのサイズを32ビットに変更す
ることを要求する命令である。この命令が解読される
と、レジスタRnのSU部2e及びSZ部2fの各々の
値がコントローラ23に送られる。以降の動作は、SU
部2e及びSZ部2fの値、すなわちレジスタRnの保
持データの符号の有無とサイズとに応じて異なる。
【0041】(i) Rnデータが8ビットデータである場
合には、データのサイズ拡張が行われる。具体的には、
レジスタRnのDD部2dから8ビットのオペランドデ
ータが読み出され、これがドライバ6d、Bバス32の
最下位8ビット部分を順次経てラッチ8dに取り込まれ
る。そして、ラッチ8dに取り込まれた8ビットデータ
のサイズが拡張器10a〜10dにより32ビットに拡
張される。詳細には、レジスタRnに保持された8ビッ
トデータが符号付きデータであるならば上位24ビット
に符号拡張が、レジスタRnに保持された8ビットデー
タが符号なしデータであるならば上位24ビットにゼロ
拡張がそれぞれなされる。このサイズ拡張により得られ
た32ビットデータは、ALU1a〜1dを素通りして
ドライバ12a〜12dに供給され、Cバス33の全部
を経てレジスタRnのDA部2a、DB部2b、DC部
2c及びDD部2dに格納される。これと並行して、レ
ジスタRnのSZ部2fの値は、8ビットデータの保持
を表す値“00”から、32ビットデータの保持を表す
値“10”に変更される。ただし、レジスタRnのSU
部2eの値は変更されない。これにより、レジスタRn
に保持されたデータの符号の有無をそのままに、該デー
タのサイズが8ビットから32ビットへ拡張される。他
のドライバは動作せず、他のラッチやレジスタはデータ
の保持を続ける。
【0042】(ii) Rnデータが16ビットデータであ
る場合には、データのサイズ拡張が行われる。具体的に
は、レジスタRnのDC部2c及びDD部2dから16
ビットのオペランドデータが読み出され、これがドライ
バ6c,6d、Bバス32の最下位16ビット部分を順
次経てラッチ8c,8dに取り込まれる。そして、ラッ
チ8c,8dに取り込まれた16ビットデータのサイズ
が拡張器10a〜10dにより32ビットに拡張され
る。プロセッサの以降の動作は、Rnデータが8ビット
データである場合に関する上記(i)と同じである。
【0043】(iii) Rnデータが32ビットデータであ
る場合には、何の動作も行われない。全てのドライバは
動作せず、全てのラッチやレジスタはデータの保持を続
ける。
【0044】(3)符号有無変更命令群 符号有無変更命令群には、以下の2種類の命令が含まれ
る。個々の命令のオペコードフィールドは、オペランド
の符号の有無に関する指定情報を含むが、オペランドの
データサイズに関する指定情報を含まない。いずれの命
令でも、プロセッサの動作制御は命令解読器22によっ
て行われる。
【0045】(3.1) sgn Rn この命令は、レジスタRnに保持されたデータ(Rnデ
ータ)を符号付きデータに変更することを要求する命令
である。この命令が解読されると、レジスタRnのSU
部2eに符号付きデータの保持を表す値“1”が格納さ
れる。レジスタRnのSZ部2fの値は変更されない。
これにより、レジスタRnに符号なしデータが保持され
ていた場合には、そのデータサイズをそのままに、以降
は該データが符号付きデータとして扱われることとな
る。全てのドライバは動作せず、全てのラッチや他のレ
ジスタはデータの保持を続ける。
【0046】(3.2) unsgn Rn この命令は、Rnデータを符号なしデータに変更するこ
とを要求する命令である。この命令が解読されると、レ
ジスタRnのSU部2eに符号なしデータの保持を表す
値“0”が格納される。レジスタRnのSZ部2fの値
は変更されない。これにより、レジスタRnに符号付き
データが保持されていた場合には、そのデータサイズを
そのままに、以降は該データが符号なしデータとして扱
われることとなる。全てのドライバは動作せず、全ての
ラッチや他のレジスタはデータの保持を続ける。
【0047】(4)即値転送命令群 即値転送命令群には、以下の6種類の命令が含まれる。
個々の命令のオペコードフィールドは、オペランドの符
号の有無に関する指定情報と、オペランドのデータサイ
ズに関する指定情報とを含んでいる。いずれの命令で
も、プロセッサの動作制御は命令解読器22によって行
われる。
【0048】(4.1) movb imm8,Rn この命令は、オペランドフィールドで指定された8ビッ
ト即値データ(imm8)を符号付きデータとしてレジ
スタRnに転送することを要求する命令である。この命
令が解読されると、命令レジスタ21から8ビット即値
データが読み出される。読み出されたデータは、ドライ
バ3d、Bバス32の最下位8ビット部分を順次経てラ
ッチ8dに取り込まれ、拡張器10d及びALU1dを
素通りしてドライバ12dに供給され、Cバス33の最
下位8ビット部分を経てレジスタRnのDD部2dに格
納される。これと並行して、レジスタRnのSU部2e
には符号付きデータの保持を表す値“1”が、そのSZ
部2fには8ビットデータの保持を表す値“00”がそ
れぞれ格納される。他のドライバは動作せず、他のラッ
チやレジスタはデータの保持を続ける。
【0049】(4.2) movbu imm8,Rn この命令は、オペランドフィールドで指定された8ビッ
ト即値データを符号なしデータとしてレジスタRnに転
送することを要求する命令である。この命令が解読され
た場合のプロセッサの動作は、レジスタRnのSU部2
eに符号なしデータの保持を表す値“0”が格納される
点を除いて、上記(4.1)と同じである。
【0050】(4.3) movh imm16,Rn この命令は、オペランドフィールドで指定された16ビ
ット即値データ(imm16)を符号付きデータとして
レジスタRnに転送することを要求する命令である。こ
の命令が解読されると、命令レジスタ21から16ビッ
ト即値データが読み出される。読み出されたデータは、
ドライバ3c,3d、Bバス32の最下位16ビット部
分を順次経てラッチ8c,8dに取り込まれ、拡張器1
0c,10d及びALU1c,1dを素通りしてドライ
バ12c,12dに供給され、Cバス33の最下位16
ビット部分を経てレジスタRnのDC部2c及びDD部
2dに格納される。これと並行して、レジスタRnのS
U部2eには符号付きデータの保持を表す値“1”が、
そのSZ部2fには16ビットデータの保持を表す値
“01”がそれぞれ格納される。他のドライバは動作せ
ず、他のラッチやレジスタはデータの保持を続ける。
【0051】(4.4) movhu imm16,R
n この命令は、オペランドフィールドで指定された16ビ
ット即値データを符号なしデータとしてレジスタRnに
転送することを要求する命令である。この命令が解読さ
れた場合のプロセッサの動作は、レジスタRnのSU部
2eに符号なしデータの保持を表す値“0”が格納され
る点を除いて、上記(4.3)と同じである。
【0052】(4.5) mov imm32,Rn この命令は、オペランドフィールドで指定された32ビ
ット即値データ(imm32)を符号付きデータとして
レジスタRnに転送することを要求する命令である。こ
の命令が解読されると、命令レジスタ21から32ビッ
ト即値データが読み出される。読み出されたデータは、
ドライバ3a〜3d、Bバス32の全部を順次経てラッ
チ8a〜8dに取り込まれ、拡張器10a〜10d及び
ALU1a〜1dを素通りしてドライバ12a〜12d
に供給され、Cバス33の全部を経てレジスタRnのD
A部2a、DB部2b、DC部2c及びDD部2dに格
納される。これと並行して、レジスタRnのSU部2e
には符号付きデータの保持を表す値“1”が、そのSZ
部2fには32ビットデータの保持を表す値“10”が
それぞれ格納される。他のドライバは動作せず、他のラ
ッチやレジスタはデータの保持を続ける。
【0053】(4.6) movu imm32,Rn この命令は、オペランドフィールドで指定された32ビ
ット即値データを符号なしデータとしてレジスタRnに
転送することを要求する命令である。この命令が解読さ
れた場合のプロセッサの動作は、レジスタRnのSU部
2eに符号なしデータの保持を表す値“0”が格納され
る点を除いて、上記(4.5)と同じである。
【0054】(5)算術論理演算命令群 算術論理演算命令群には、以下の5種類のレジスタ間演
算命令が含まれる。個々の命令のオペコードフィールド
は、オペランドのデータサイズに関する指定情報を含ま
ず、またオペランドの符号の有無に関する指定情報を含
まない。ここでは、2オペランド形式を採用し、演算及
びフラグの生成はデスティネーションオペランドのデー
タサイズに基づくものとする。いずれの命令でも、プロ
セッサの動作制御は命令解読器22とコントローラ23
とによって行われる。
【0055】(5.1) add Rm,Rn この命令は、レジスタRmに保持されたデータ(Rmデ
ータ)と、レジスタRnに保持されたデータ(Rnデー
タ)とを加算して、その結果をレジスタRnに格納する
ことを要求する命令である。この命令が解読されると、
レジスタRnのSU部2e及びSZ部2fの各々の値
と、レジスタRmのSU部2e及びSZ部2fの各々の
値とがコントローラ23に送られる。
【0056】次に、Rmデータの転送について説明す
る。Rmデータが8ビットデータである場合には、レジ
スタRmのDD部2dから8ビットのオペランドデータ
が読み出され、これがドライバ6d、Bバス32の最下
位8ビット部分を順次経てラッチ8dに取り込まれる。
Rmデータが16ビットデータである場合には、レジス
タRmのDC部2c及びDD部2dから16ビットのオ
ペランドデータが読み出され、これがドライバ6c,6
d、Bバス32の最下位16ビット部分を順次経てラッ
チ8c,8dに取り込まれる。Rmデータが32ビット
データである場合には、レジスタRmのDA部2a、D
B部2b、DC部2c及びDD部2dから32ビットの
オペランドデータが読み出され、これがドライバ6a〜
6d、Bバス32の全部を順次経てラッチ8a〜8dに
取り込まれる。
【0057】次に、Rnデータの転送について説明す
る。Rnデータが8ビットデータである場合には、レジ
スタRnのDD部2dから8ビットのオペランドデータ
が読み出され、これがドライバ5d、Aバス31の最下
位8ビット部分を順次経てラッチ7dに取り込まれる。
Rnデータが16ビットデータである場合には、レジス
タRnのDC部2c及びDD部2dから16ビットのオ
ペランドデータが読み出され、これがドライバ5c,5
d、Aバス31の最下位16ビット部分を順次経てラッ
チ7c,7dに取り込まれる。Rnデータが32ビット
データである場合には、レジスタRnのDA部2a、D
B部2b、DC部2c及びDD部2dから32ビットの
オペランドデータが読み出され、これがドライバ5a〜
5d、Aバス31の全部を順次経てラッチ7a〜7dに
取り込まれる。
【0058】ラッチ7a〜7dに保持されたRnデータ
は、拡張器9a〜9dを素通りして、ALU1a〜1d
の左入力に与えられる。ラッチ8a〜8dに保持された
Rmデータは、RnデータのサイズがRmデータのサイ
ズより大きい場合には、拡張器10a〜10dによりR
nデータのサイズまで拡張がなされたうえ、ALU1a
〜1dの右入力に与えられる。そうでない場合には、R
mデータが拡張器10a〜10dを素通りしてALU1
a〜1dの右入力に与えられる。Rmデータのサイズ拡
張がなされる際、Rmデータの符号の有無に関する情報
に応じて、“1”ならば符号拡張が、“0”ならばゼロ
拡張がそれぞれ選択される。
【0059】ALU1a〜1d及びゲート11a〜11
cは、Rnデータのサイズに応じて動作する。Rnデー
タが8ビットデータである場合には、ALU1dのみが
動作して、8ビットの加算結果と、フラグとが得られ
る。Rnデータが16ビットデータである場合には、A
LU1c,1d及びゲート11cのみが動作して、16
ビットの加算結果と、フラグとが得られる。Rnデータ
が32ビットデータである場合には、ALU1a〜1d
及びゲート11a〜11cの全てが動作して、32ビッ
トの加算結果と、フラグとが得られる。フラグは、Rn
データのサイズに応じたビット位置において、かつRn
データの符号の有無に関する情報に応じて生成される。
【0060】レジスタファイル2への加算結果の格納
も、Rnデータのサイズに応じてなされる。Rnデータ
が8ビットデータである場合には、8ビットの加算結果
がドライバ12dに供給され、Cバス33の最下位8ビ
ット部分を経てレジスタRnのDD部2dに格納され
る。Rnデータが16ビットデータである場合には、1
6ビットの加算結果がドライバ12c,12dに供給さ
れ、Cバス33の最下位16ビット部分を経てレジスタ
RnのDC部2c及びDD部2dに格納される。Rnデ
ータが32ビットデータである場合には、32ビットの
加算結果がドライバ12a〜12dに供給され、Cバス
33の全部を経てレジスタRnのDA部2a、DB部2
b、DC部2c及びDD部2dに格納される。以上のプ
ロセッサ動作の間、他のドライバは動作せず、他のラッ
チやレジスタはデータの保持を続ける。
【0061】(5.2) sub Rm,Rn この命令は、RmデータからRnデータを減算して、そ
の結果をレジスタRnに格納することを要求する命令で
ある。この命令が解読された場合のプロセッサの動作
は、ALU1a〜1dにおける演算操作が減算である点
を除いて、上記(5.1)と同じである。
【0062】(5.3) cmp Rm,Rn この命令は、RmデータとRnデータとを比較すること
を要求する命令である。この命令が解読された場合のプ
ロセッサの動作は、ALU1a〜1dにおける演算操作
が減算である点と、ドライバ12a〜12dの全てがC
バス33を駆動しない点と、レジスタRnのDA部2
a、DB部2b、DC部2c及びDD部2dが更新され
ない点とを除いて、上記(5.1)と同じである。
【0063】(5.4) and Rm,Rn この命令は、RmデータとRnデータとの論理積をレジ
スタRnに格納することを要求する命令である。この命
令が解読された場合のプロセッサの動作は、ALU1a
〜1dにおける演算操作が論理積である点を除いて、上
記(5.1)と同じである。
【0064】(5.5) or Rm,Rn この命令は、RmデータとRnデータとの論理和をレジ
スタRnに格納することを要求する命令である。この命
令が解読された場合のプロセッサの動作は、ALU1a
〜1dにおける演算操作が論理和である点を除いて、上
記(5.1)と同じである。
【0065】(6)ストア命令群 ストア命令群には、次の1種類の命令が含まれる。命令
のオペコードフィールドは、オペランドのデータサイズ
に関する指定情報を含まず、またオペランドの符号の有
無に関する指定情報を含まない。プロセッサの動作制御
は命令解読器22とコントローラ23とによって行われ
る。
【0066】(6.1) st Rn,mem この命令は、レジスタRnに保持されたデータ(Rnデ
ータ)をメモリにストアすることを要求する命令であっ
て、メモリへのストアはRnデータのサイズに基づく。
この命令が解読されると、レジスタRnのSU部2e及
びSZ部2fの各々の値がコントローラ23に送られ
る。Rnデータが8ビットデータである場合には、レジ
スタRnのDD部2dから8ビットのオペランドデータ
が読み出され、これがドライバ6d、Bバス32の最下
位8ビット部分を順次経てラッチ8dに取り込まれ、拡
張器10d及びALU1dを素通りしてドライバ12d
に供給され、Cバス33の最下位8ビット部分を経てR
AM25に格納される。Rnデータが16ビットデータ
である場合には、レジスタRnのDC部2c及びDD部
2dから16ビットのオペランドデータが読み出され、
これがドライバ6c,6d、Bバス32の最下位16ビ
ット部分を順次経てラッチ8c,8dに取り込まれ、拡
張器10c,10d及びALU1c,1dを素通りして
ドライバ12c,12dに供給され、Cバス33の最下
位16ビット部分を経てRAM25に格納される。Rn
データが32ビットデータである場合には、レジスタR
nのDA部2a、DB部2b、DC部2c及びDD部2
dから32ビットのオペランドデータが読み出され、こ
れがドライバ6a〜6d、Bバス32の全部を順次経て
ラッチ8a〜8dに取り込まれ、拡張器10a〜10d
及びALU1a〜1dを素通りしてドライバ12a〜1
2dに供給され、Cバス33の全部を経てRAM25に
格納される。他のドライバは動作せず、他のラッチやレ
ジスタはデータの保持を続ける。
【0067】以上で図2中の全ての命令群を説明した。
次に、2つの8ビットデータをメモリから順次ロード
し、これらを加算し、その結果を表す8ビットデータを
メモリにストアするという一連の動作を行うことを要求
する命令列、すなわち、 命令1: ldb mem,R0 命令2: ldb mem,R1 命令3: add R1,R0 命令4: st R0,mem が実行される場合の、図1のプロセッサの動作を説明す
る。まず、命令1の実行により、RAM25から8ビッ
トデータがロードされ、これが符号付きデータとしてレ
ジスタR0のDD部2dに設定される。レジスタR0の
SZ部2fには、8ビットデータの保持を表す値“0
0”が格納される。次に、命令2の実行により、RAM
25から更に8ビットデータがロードされ、これが符号
付きデータとしてレジスタR1のDD部2dに設定され
る。レジスタR1のSZ部2fには、8ビットデータの
保持を表す値“00”が格納される。続いて、命令3の
実行により、レジスタR0及びR1の各々のSZ部2f
が参照されて、R0データとR1データとの8ビット加
算が行われ、その結果を表す8ビットデータがレジスタ
R0に格納される。この際、R0データは拡張器9dを
素通りしてALU1dの左入力に、R1データは拡張器
10dを素通りしてALU1dの右入力にそれぞれ与え
られる。ALU1dは8ビットの加算結果を生成し、こ
の加算結果はレジスタR0のDD部2dに格納される。
最後に、命令4の実行により、レジスタR0のSZ部2
fが参照されて、当該レジスタR0に保持された8ビッ
トの加算結果がRAM25にストアされる。
【0068】以上の一連のプロセッサ動作では、ALU
1a〜1c、レジスタR0,R1の各々のDA部2a、
DB部2b及びDC部2c、ドライバ4a〜4c,5a
〜5c,6a〜6c、ラッチ7a〜7c,8a〜8c、
拡張器9a〜9c,10a〜10c、ゲート11a〜1
1c、ドライバ12a〜12c、並びに、A、B及びC
バス31,32,33の各々の上位24ビット部分は決
して使用されないので、電力消費の無駄が削減される。
上記命令列中の例えば命令1(ロード命令)を即値転送
命令に置き換えても同様である。また、図1のプロセッ
サで16ビットデータを扱う場合にも消費電力削減効果
が得られる。
【0069】しかも、図1のプロセッサによれば、レジ
スタファイル2を構成する8本のレジスタR0〜R7の
各々にSZ部2fを設け、RAM25からレジスタファ
イル2への特定サイズのオペランドデータのロードを要
求する命令や、レジスタファイル2への特定サイズの即
値オペランドデータの転送を要求する命令が解読された
ときには、オペランドデータのサイズ情報をSZ部2f
に保持させ、レジスタファイル2の中のオペランドデー
タの参照を要求する算術論理演算命令、又は、レジスタ
ファイル2からRAM25へのオペランドデータのスト
アを要求する命令が解読されたときには、レジスタファ
イル2のSZ部2fからサイズ情報を読み出して、操作
手段を構成する種々の要素のうち当該サイズ情報により
指定された部分のみを動作させることとしたので、命令
数を増やさずに、従来のプログラム資産を活用しながら
上記消費電力削減効果を得ることができる。
【0070】なお、本発明は、複数のサイズのデータを
扱うプロセッサである限り、RISC型に限らず、例え
ばCISC(Complex Instruction Set Computer)型の
プロセッサにも適用可能である。その他、例えば次のよ
うな変形が可能である。
【0071】(a)算術論理演算命令群において、演算
及びフラグの生成はデスティネーションオペランドのデ
ータサイズに基づくとしたが、ソースオペランドとデス
ティネーションオペランドとのうちデータサイズの大き
い方に基づくとしてもよい。
【0072】(b)算術論理演算命令群は2オペランド
形式としたが、3オペランド形式であってもよい。その
場合、デスティネーションオペランドのデータサイズ
は、2つのソースオペランドのデータサイズのうち大き
い方に基づくとするのが好適である。
【0073】(c)レジスタファイル、ラッチ、拡張
器、ALU、ドライバ、バスを最上位8ビット、中上位
8ビット、中下位8ビット、最下位8ビットの4つの部
分に分けて制御しているが、最上位8ビットと中上位8
ビットとを一体化して、最上位16ビット、中位8ビッ
ト、最下位8ビットの3つの部分に区切って制御しても
よい。
【0074】(d)データサイズを8ビット、16ビッ
ト、32ビットの3種類としているが、それに24ビッ
トのデータサイズを加えて4種類としてもよい。こうす
れば、レジスタファイル、ラッチ、拡張器、ALU、ド
ライバ、バスを最上位8ビット、中上位8ビット、中下
位8ビット、最下位8ビットの4つの部分に分けて制御
する図1の構成が活かされる。
【0075】(e)データサイズを8ビット、16ビッ
ト、32ビット、64ビットの4種類とすることも可能
である。例えば、レジスタファイル、ラッチ、拡張器、
ALU、ドライバ、バスのビット幅を64ビットに拡
げ、最上位32ビット、中上位16ビット、中下位8ビ
ット、最下位8ビットの4つの部分に分けて制御するよ
うにすればよい。
【0076】(f)データサイズは8ビットの倍数に限
らない。ALUの出力からレジスタファイル2の入力に
至る経路上のいずれかの位置にオペランドデータの有効
サイズ検出機構を設け、検出した有効サイズをSZ部2
fに保持させるようにしてもよい。例えば、名目上は3
2ビットの符号なしデータであっても、実際には最上位
28ビットが全て0値ビットであることもある。このよ
うな場合には、4ビットデータの保持を意味するサイズ
情報をSZ部2fに保持させ、このサイズ情報に応答し
て、操作手段を構成する種々の要素の最下位4ビット部
分のみを動作させればよい。
【0077】(g)レジスタファイル2の中にSU部2
e及びSZ部2fを設けず、算術論理演算命令の実行時
にレジスタファイル2から2つの32ビットデータを読
み出し、両データからその有効サイズと符号付き/符号
なしの区別とを検出するためのサイズ/符号検出部を別
に設けるようにしてもよい。このサイズ/符号検出部
は、各データの最上位ビット側からビットサーチを行
い、最初に1が立っているビットの位置を検出する。そ
の値の大きい方を有効サイズとし、これをコントローラ
23に入力する。また、ビットサーチの結果、最上位ビ
ットに1が立っている場合には「符号付き」の情報を、
立っていない場合には「符号なし」の情報をコントロー
ラ23に入力する。この一連の動作によって、コントロ
ーラ23は上記と同様の信号を入力されるので、以後の
動作は同様である。ただし、ALU等の操作手段は動作
幅が1ビット単位で分割されているものとする。なお、
動作幅を1ビット単位ではなく例えば4ビット単位で分
割することとすれば、サイズ/符号検出部でビットサー
チを行わず、代わりに4ビット毎の論理操作をすればよ
いので効率的である。
【0078】(h)マルチタスク処理に対応するために
は、SU部2e及びSZ部2fをコンテキストブロック
に追加し、タスク切り換え時にはこれらを退避又は復帰
するようにすればよい。
【0079】
【発明の効果】以上説明してきたとおり、本発明によれ
ば、複数のサイズのデータを扱うプロセッサにおいて、
最大サイズに対応したビット幅を有する操作手段のう
ち、指定されたオペランドのデータサイズに応じた部分
のみを動作させることとしたので、当該プロセッサにお
ける電力消費の無駄を削減することができる。
【0080】また、オペランドデータのサイズ情報をレ
ジスタファイルに保持させ、当該オペランドデータの参
照を要求する算術論理演算命令等が解読されたときに
は、レジスタファイルからオペランドデータとともにサ
イズ情報を読み出して、前記操作手段のうち当該サイズ
情報により指定された部分のみを動作させることとすれ
ば、命令数を増やさずに、従来のプログラム資産を活用
しながら上記消費電力削減効果を得ることができる。
【図面の簡単な説明】
【図1】本発明に係るプロセッサの構成例を示すブロッ
ク図である。
【図2】図1のプロセッサの命令セットの一部を示す図
である。
【符号の説明】
1a〜1d ALU[算術論理演算手段] 2 レジスタファイル[レジスタ手段] 2a データA部(DA部) 2b データB部(DB部) 2c データC部(DC部) 2d データD部(DD部) 2e 符号情報部(SU部) 2f サイズ情報部(SZ部) 3a〜3d ドライバ[ドライバ手段] 4a〜4d ドライバ[ドライバ手段] 5a〜5d ドライバ[ドライバ手段] 6a〜6d ドライバ[ドライバ手段] 7a〜7d ラッチ[ラッチ手段] 8a〜8d ラッチ[ラッチ手段] 9a〜9d 拡張器[拡張手段] 10a〜10d 拡張器[拡張手段] 11a〜11c ゲート[演算情報伝達手段] 12a〜12d ドライバ[ドライバ手段] 20 ROM 21 命令レジスタ(IR) 22 命令解読器(ID)[操作制御手段] 23 コントローラ[操作制御手段] 24 ロードストアユニット 25 RAM 31 Aバス[バス手段] 32 Bバス[バス手段] 33 Cバス[バス手段]
───────────────────────────────────────────────────── フロントページの続き (72)発明者 鈴木 正人 大阪府門真市大字門真1006番地 松下電器 産業株式会社内 Fターム(参考) 5B011 DC01 EA08 JA06 5B013 AA17 5B033 AA05 DC01 DD09

Claims (18)

    【特許請求の範囲】
  1. 【請求項1】 複数のサイズのデータを扱うプロセッサ
    であって、 命令により指定されたオペランドに、前記命令により指
    定された操作を施すための、前記複数のサイズのうちの
    最大サイズに対応したビット幅を有する操作手段と、 前記操作手段のうち前記指定されたオペランドのデータ
    サイズに応じた部分のみを動作させるための操作制御手
    段とを備えたことを特徴とするプロセッサ。
  2. 【請求項2】 請求項1記載のプロセッサにおいて、 前記操作手段は、オペランドデータに算術論理演算操作
    を施すための、前記最大サイズに対応したビット幅を有
    する算術論理演算手段を備え、 前記算術論理演算手段のうち前記指定されたオペランド
    のデータサイズに応じた部分のみが動作するように構成
    されたことを特徴とするプロセッサ。
  3. 【請求項3】 請求項2記載のプロセッサにおいて、 前記操作手段は、前記算術論理演算手段を構成する各部
    分の間で演算情報を伝達するための演算情報伝達手段を
    更に備え、 前記演算情報伝達手段のうち前記指定されたオペランド
    のデータサイズに応じた部分のみが動作するように構成
    されたことを特徴とするプロセッサ。
  4. 【請求項4】 請求項3記載のプロセッサにおいて、 前記演算情報伝達手段により伝達される演算情報は、桁
    上げに関する情報であることを特徴とするプロセッサ。
  5. 【請求項5】 請求項1記載のプロセッサにおいて、 前記操作手段は、オペランドデータを保持するための、
    前記最大サイズに対応したビット幅を有するレジスタ手
    段を備え、 前記レジスタ手段のうち前記指定されたオペランドのデ
    ータサイズに応じた部分のみが動作するように構成され
    たことを特徴とするプロセッサ。
  6. 【請求項6】 請求項1記載のプロセッサにおいて、 前記操作手段は、 オペランドデータを転送するための、前記最大サイズに
    対応したビット幅を有するバス手段と、 前記バス手段を駆動するための、前記最大サイズに対応
    したビット幅を有するドライバ手段とを備え、 前記ドライバ手段のうち前記指定されたオペランドのデ
    ータサイズに応じた部分のみが動作するように構成され
    たことを特徴とするプロセッサ。
  7. 【請求項7】 請求項1記載のプロセッサにおいて、 前記操作手段は、 オペランドデータを転送するための、前記最大サイズに
    対応したビット幅を有するバス手段と、 前記バス手段上のオペランドデータを取り込むための、
    前記最大サイズに対応したビット幅を有するラッチ手段
    とを備え、 前記ラッチ手段のうち前記指定されたオペランドのデー
    タサイズに応じた部分のみが動作するように構成された
    ことを特徴とするプロセッサ。
  8. 【請求項8】 請求項1記載のプロセッサにおいて、 前記操作手段は、オペランドデータのサイズを拡張する
    ための、前記最大サイズに対応したビット幅を有する拡
    張手段を備え、 前記拡張手段のうち前記指定されたオペランドのデータ
    サイズに応じた部分のみが動作するように構成されたこ
    とを特徴とするプロセッサ。
  9. 【請求項9】 請求項1記載のプロセッサにおいて、 前記プロセッサは、RISC型であることを特徴とする
    プロセッサ。
  10. 【請求項10】 請求項1記載のプロセッサにおいて、 前記操作制御手段は、与えられた命令を解読することに
    より、該命令により指定されたオペランドについて、該
    指定されたオペランドのデータサイズに関するサイズ情
    報を得て、前記操作手段のうち前記サイズ情報により指
    定された部分のみを動作させる機能を更に有することを
    特徴とするプロセッサ。
  11. 【請求項11】 請求項10記載のプロセッサにおい
    て、 前記操作手段は、オペランドデータと、該オペランドデ
    ータのサイズに関するサイズ情報とを保持するためのレ
    ジスタ手段を備え、 前記操作制御手段は、 前記レジスタ手段への特定サイズのオペランドデータの
    設定を要求する第1の命令が解読されて、該第1の命令
    により指定されたオペランドのデータサイズに関するサ
    イズ情報が得られたときには、前記オペランドデータと
    ともに前記サイズ情報を前記レジスタ手段に保持させる
    機能と、 前記レジスタ手段に保持されたオペランドデータの参照
    を要求する第2の命令が解読されたときには、前記レジ
    スタ手段から前記オペランドデータとともに該オペラン
    ドデータのサイズに関するサイズ情報を読み出して、前
    記操作手段のうち前記レジスタ手段から読み出したサイ
    ズ情報により指定された部分のみを動作させる機能とを
    更に有することを特徴とするプロセッサ。
  12. 【請求項12】 請求項11記載のプロセッサにおい
    て、 前記第1の命令は、メモリから前記レジスタ手段へのオ
    ペランドデータのロードを要求する命令、又は、前記レ
    ジスタ手段への即値オペランドデータの転送を要求する
    命令であることを特徴とするプロセッサ。
  13. 【請求項13】 請求項11記載のプロセッサにおい
    て、 前記第2の命令は、オペランドのデータサイズに関する
    指定情報を含まないオペコードフィールドを有する命令
    であることを特徴とするプロセッサ。
  14. 【請求項14】 請求項12記載のプロセッサにおい
    て、 前記第2の命令は、前記レジスタ手段を参照する算術論
    理演算命令、又は、前記レジスタ手段からメモリへのオ
    ペランドデータのストアを要求する命令であることを特
    徴とするプロセッサ。
  15. 【請求項15】 請求項11記載のプロセッサにおい
    て、 前記操作制御手段は、特定サイズへのオペランドデータ
    のサイズの変更を要求する第3の命令が解読されて、該
    第3の命令により指定されたオペランドのデータサイズ
    に関する新たなサイズ情報が得られたときには、前記レ
    ジスタ手段中の前記指定されたオペランドに対応するデ
    ータのサイズ情報を変更する機能を更に有することを特
    徴とするプロセッサ。
  16. 【請求項16】 請求項11記載のプロセッサにおい
    て、 前記第1の命令は、オペランドデータを符号付きデータ
    として扱うべきか又は符号なしデータとして扱うべきか
    を指定する、オペランドの符号の有無に関する符号情報
    を含むオペコードフィールドを有する命令であり、 前記レジスタ手段は、前記オペランドデータの符号の有
    無に関する符号情報を保持する機能を更に有し、 前記操作制御手段は、 前記第1の命令が解読されて、該第1の命令により指定
    されたオペランドの符号の有無に関する符号情報が得ら
    れたときには、前記オペランドデータとともに前記符号
    情報を前記レジスタ手段に保持させる機能と、 前記レジスタ手段に保持されたオペランドデータの参照
    を要求する前記第2の命令が解読されたときには、前記
    レジスタ手段から前記オペランドデータとともに該オペ
    ランドデータの符号の有無に関する符号情報を読み出し
    て、該読み出した符号情報に従って前記第2の命令が実
    行されるように前記操作手段を制御する機能とを更に有
    することを特徴とするプロセッサ。
  17. 【請求項17】 請求項16記載のプロセッサにおい
    て、 前記操作制御手段は、オペランドデータの符号の有無の
    変更を要求する第4の命令が解読されて、該第4の命令
    により指定されたオペランドの符号の有無に関する新た
    な符号情報が得られたときには、前記レジスタ手段中の
    前記指定されたオペランドに対応するデータの符号情報
    を変更する機能を更に有することを特徴とするプロセッ
    サ。
  18. 【請求項18】 請求項17記載のプロセッサにおい
    て、 前記操作制御手段は、 与えられた命令を解読するための命令解読器と、 前記レジスタ手段への前記サイズ情報及び前記符号情報
    の書き込みと、前記レジスタ手段からの前記サイズ情報
    及び前記符号情報の読み出しとを司るコントローラとを
    備えたことを特徴とするプロセッサ。
JP25997699A 1999-09-14 1999-09-14 プロセッサ Expired - Fee Related JP3805578B2 (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP25997699A JP3805578B2 (ja) 1999-09-14 1999-09-14 プロセッサ
US09/606,091 US6802017B1 (en) 1999-09-14 2000-06-29 Partial enabling of functional unit based on data and size pair in register

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP25997699A JP3805578B2 (ja) 1999-09-14 1999-09-14 プロセッサ

Publications (2)

Publication Number Publication Date
JP2001084141A true JP2001084141A (ja) 2001-03-30
JP3805578B2 JP3805578B2 (ja) 2006-08-02

Family

ID=17341557

Family Applications (1)

Application Number Title Priority Date Filing Date
JP25997699A Expired - Fee Related JP3805578B2 (ja) 1999-09-14 1999-09-14 プロセッサ

Country Status (2)

Country Link
US (1) US6802017B1 (ja)
JP (1) JP3805578B2 (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2006043345A1 (ja) * 2004-10-19 2006-04-27 Matsushita Electric Industrial Co., Ltd. プロセッサ

Families Citing this family (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6732203B2 (en) * 2000-01-31 2004-05-04 Intel Corporation Selectively multiplexing memory coupling global bus data bits to narrower functional unit coupling local bus
US20040078608A1 (en) * 2001-04-02 2004-04-22 Ruban Kanapathippillai Method and apparatus for power reduction in a digital signal processor integrated circuit
JP2007122626A (ja) * 2005-10-31 2007-05-17 Matsushita Electric Ind Co Ltd マイクロプロセッサ
US20080141046A1 (en) * 2006-12-06 2008-06-12 International Business Machines Corporation Partial data flow functional gating using structural or partial operand value information
KR20090085944A (ko) * 2008-02-05 2009-08-10 삼성전자주식회사 전력 소모를 감소시킨 프로세서 및 반도체 장치
WO2010112970A1 (en) * 2009-03-31 2010-10-07 Freescale Semiconductor, Inc. Data processing with variable operand size
GB2478731B (en) * 2010-03-15 2013-08-21 Advanced Risc Mach Ltd Operand size control
GB2483906C (en) 2010-09-24 2019-10-09 Advanced Risc Mach Ltd Selection of debug instruction set for debugging of a data processing apparatus
US9317285B2 (en) * 2012-04-30 2016-04-19 Apple Inc. Instruction set architecture mode dependent sub-size access of register with associated status indication
US9639369B2 (en) 2013-11-11 2017-05-02 Apple Inc. Split register file for operands of different sizes

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS5833572B2 (ja) * 1977-10-21 1983-07-20 株式会社東芝 情報処理方式
US4812971A (en) * 1983-10-03 1989-03-14 Digital Equipment Corporation Central processing unit for a digital computer
DE3479356D1 (en) * 1983-12-23 1989-09-14 Hitachi Ltd A data processor with control of the significant bit lenghts of general purpose registers
US4649477A (en) * 1985-06-27 1987-03-10 Motorola, Inc. Operand size mechanism for control simplification
JPH06250818A (ja) 1993-02-24 1994-09-09 Matsushita Electric Ind Co Ltd 算術論理演算装置

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2006043345A1 (ja) * 2004-10-19 2006-04-27 Matsushita Electric Industrial Co., Ltd. プロセッサ

Also Published As

Publication number Publication date
JP3805578B2 (ja) 2006-08-02
US6802017B1 (en) 2004-10-05

Similar Documents

Publication Publication Date Title
JP6456867B2 (ja) 密結合ヘテロジニアスコンピューティングのためのハードウェアプロセッサ及び方法
KR101748535B1 (ko) 벡터 개체군 카운트 기능성을 제공하는 방법, 장치, 명령어 및 로직
US5416912A (en) System for handling exceptions occurring during parallel execution of microinstructions
KR100327777B1 (ko) 다중명령 세트를 이용한 데이터 프로세싱 장치
JP6467742B2 (ja) プロセッサ、方法、およびプロセッシングシステム
US7127593B2 (en) Conditional execution with multiple destination stores
EP3646164A1 (en) Heterogeneous multiplier
JP5201641B2 (ja) 重複オペランドを使用したsimdの内積演算
KR102472894B1 (ko) 벡터 패킹된 투플 교차 비교 기능을 제공하기 위한 방법, 장치, 명령어들 및 로직
JP6673574B2 (ja) ベクトルビットシャッフルを実行するための方法および装置
JP3805578B2 (ja) プロセッサ
JPH0895804A (ja) 中央処理装置
US5119324A (en) Apparatus and method for performing arithmetic functions in a computer system
JPH096610A (ja) データ処理システムにおいて複合命令の実行中にオペランドを交換するための方法およびシステム
JP2609618B2 (ja) データ処理装置
JPS63175932A (ja) ディジタル信号処理装置
JPS62165242A (ja) プロセツサ
US6691223B1 (en) Processing full exceptions using partial exceptions
JPH1091432A (ja) プログラム実行方法およびプログラム実行装置
JPH11175339A (ja) マイクロコンピュータ
KR19990013416A (ko) 프로세싱 시스템
JP2778583B2 (ja) 低消費電力マイクロプロセッサ
EP4202651A1 (en) Apparatus and method for vector packed concatenate and shift of specific portions of quadwords
JP2001005640A (ja) 浮動小数点ユニットにおいてロードバイパスを実行する方法及び装置
JP2000112754A (ja) データ処理装置

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20041012

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20051129

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20060127

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20060221

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20060403

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20060425

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20060510

R150 Certificate of patent or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

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

Free format text: PAYMENT UNTIL: 20100519

Year of fee payment: 4

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

Free format text: PAYMENT UNTIL: 20110519

Year of fee payment: 5

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

Free format text: PAYMENT UNTIL: 20110519

Year of fee payment: 5

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

Free format text: PAYMENT UNTIL: 20120519

Year of fee payment: 6

LAPS Cancellation because of no payment of annual fees