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
Links
- 230000008859 change Effects 0.000 claims description 9
- 230000005540 biological transmission Effects 0.000 claims description 3
- 230000006870 function Effects 0.000 claims 6
- 239000002699 waste material Substances 0.000 abstract description 4
- 239000004606 Fillers/Extenders Substances 0.000 description 25
- 230000014759 maintenance of location Effects 0.000 description 12
- 238000001514 detection method Methods 0.000 description 4
- 230000000694 effects Effects 0.000 description 3
- 238000010586 diagram Methods 0.000 description 2
- 230000009467 reduction Effects 0.000 description 2
- 230000007246 mechanism Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000004044 response Effects 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/30145—Instruction analysis, e.g. decoding, instruction word fields
- G06F9/3016—Decoding the operand specifier, e.g. specifier format
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F1/00—Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
- G06F1/26—Power supply means, e.g. regulation thereof
- G06F1/32—Means for saving power
- G06F1/3203—Power management, i.e. event-based initiation of a power-saving mode
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F1/00—Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
- G06F1/26—Power supply means, e.g. regulation thereof
- G06F1/32—Means for saving power
- G06F1/3203—Power management, i.e. event-based initiation of a power-saving mode
- G06F1/3234—Power saving characterised by the action undertaken
- G06F1/3287—Power saving characterised by the action undertaken by switching off individual functional units in the computer system
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/30003—Arrangements for executing specific machine instructions
- G06F9/30007—Arrangements for executing specific machine instructions to perform operations on data operands
- G06F9/30025—Format conversion instructions, e.g. Floating-Point to Integer, decimal conversion
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/30003—Arrangements for executing specific machine instructions
- G06F9/30007—Arrangements for executing specific machine instructions to perform operations on data operands
- G06F9/30036—Instructions to perform operations on packed data, e.g. vector, tile or matrix operations
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/30003—Arrangements for executing specific machine instructions
- G06F9/3004—Arrangements for executing specific machine instructions to perform operations on memory
- G06F9/30043—LOAD or STORE instructions; Clear instruction
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/30145—Instruction analysis, e.g. decoding, instruction word fields
- G06F9/3016—Decoding the operand specifier, e.g. specifier format
- G06F9/30167—Decoding the operand specifier, e.g. specifier format of immediate specifier, e.g. constants
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/30181—Instruction operation extension or modification
- G06F9/30192—Instruction operation extension or modification according to data descriptor, e.g. dynamic data typing
-
- Y—GENERAL 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
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE 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/00—Energy 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
ける電力消費の無駄を削減する。 【解決手段】 レジスタファイル2を構成する複数本の
レジスタR0〜R7の各々にSZ部2fを設け、RAM
25からレジスタファイル2への特定サイズのオペラン
ドデータのロードを要求する命令や、レジスタファイル
2への特定サイズの即値オペランドデータの転送を要求
する命令が解読されたときには、オペランドデータのサ
イズ情報をSZ部2fに保持させ、レジスタファイル2
の中のオペランドデータの参照を要求する算術論理演算
命令、又は、レジスタファイル2からRAM25へのオ
ペランドデータのストアを要求する命令が解読されたと
きには、レジスタファイル2のSZ部2fからサイズ情
報を読み出して、操作手段を構成するALU1a〜1d
等の種々の要素のうち当該サイズ情報により指定された
部分のみを動作させる。
Description
ータを扱うプロセッサに関するものである。
扱うデータは多様化している。例えば、32ビット、1
6ビット、8ビットのサイズのデータを扱うことが要求
される。一方では、携帯機器へプロセッサを応用する場
合、バッテリの容量に制限があるため、長時間駆動を行
うには低消費電力が要求されている。
の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ビットのバスを
通して転送されるようになっていた。
プロセッサによれば、2つの8ビットデータをメモリか
ら順次ロードし、これらを加算し、その結果を表す8ビ
ットデータをメモリにストアするという一連の動作を行
う場合であっても、32ビットのALUと、32ビット
のレジスタファイルと、32ビットのバスとの全てのハ
ードウェア資源が動作していたので、電力が無駄に消費
される問題があった。このことは、16ビットデータを
扱う場合にも同様であった。
扱うプロセッサにおける電力消費の無駄を削減すること
にある。
め、本発明は、複数のサイズのデータを扱うプロセッサ
において、最大サイズに対応したビット幅を有する操作
手段のうち、指定されたオペランドのデータサイズに応
じた部分のみを動作させることとしたものである。ここ
にいう操作手段は、命令により指定されたオペランド
に、該命令により指定された操作を施すための手段であ
って、オペランドデータに算術論理演算操作を施すため
のALUと、オペランドデータを保持するためのレジス
タファイルと、オペランドデータを転送するためのバス
と、バスを駆動するためのドライバと、バス上のオペラ
ンドデータを取り込むためのラッチと、オペランドデー
タのサイズを拡張するための拡張器とを含む。例えば、
与えられた命令を解読することにより、該命令により指
定されたオペランドについて、該指定されたオペランド
のデータサイズに関するサイズ情報を得て、前記操作手
段のうち当該サイズ情報により指定された部分のみを動
作させる。
ンドデータと、該オペランドデータのサイズに関するサ
イズ情報とをレジスタファイルに保持させるようにする
とよい。この場合において、レジスタファイルへの特定
サイズのオペランドデータの設定を要求する第1の命令
が解読されて、該第1の命令により指定されたオペラン
ドのデータサイズに関するサイズ情報が得られたときに
は、オペランドデータとともにサイズ情報をレジスタフ
ァイルに保持させる。また、レジスタファイルに保持さ
れたオペランドデータの参照を要求する第2の命令が解
読されたときには、レジスタファイルからオペランドデ
ータとともに該オペランドデータのサイズに関するサイ
ズ情報を読み出して、前記操作手段のうち当該レジスタ
ファイルから読み出したサイズ情報により指定された部
分のみを動作させる。
令は、オペランドデータを符号付きデータとして扱うべ
きか又は符号なしデータとして扱うべきかを指定する命
令でもある。レジスタファイルには、オペランドデータ
と、該オペランドデータのサイズに関するサイズ情報と
に加えて、該オペランドデータの符号の有無に関する符
号情報を保持させる。この場合において、前記第1の命
令が解読されて、該第1の命令により指定されたオペラ
ンドの符号の有無に関する符号情報が得られたときに
は、オペランドデータとともに符号情報をレジスタファ
イルに保持させる。また、レジスタファイルに保持され
たオペランドデータの参照を要求する前記第2の命令が
解読されたときには、レジスタファイルからオペランド
データとともに該オペランドデータの符号の有無に関す
る符号情報を読み出して、当該読み出した符号情報に従
って前記第2の命令が実行されるように前記操作手段を
制御する。
の構成例を示している。本プロセッサは、32ビットの
アーキテクチャを有するRISC型プロセッサであっ
て、32ビット(ワード)、16ビット(ハーフワー
ド)、8ビット(バイト)のサイズのデータを扱うもの
である。
作を施して、その結果を得るとともにフラグを生成する
ための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ビットの位置を表すよう付されている。
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ビットのデータを保持していることを意味する
ようになっている。
めの、各々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)である。
ンドデータは、Bバス32を駆動するための各々8ビッ
トのドライバ3a,3b,3c,3dへ供給される。3
2ビットの即値オペランドデータをBバス32へ供給す
べき場合には、ドライバ3a〜3dが動作する。16ビ
ットの即値オペランドデータをBバス32へ供給すべき
場合には、ドライバ3c,3dのみが動作する。また、
8ビットの即値オペランドデータをBバス32へ供給す
べき場合には、ドライバ3dのみが動作する。
により読み出されたロードデータは、Bバス32を駆動
するための各々8ビットのドライバ4a,4b,4c,
4dへ供給される。32ビットのロードデータをBバス
32へ供給すべき場合には、ドライバ4a〜4dが動作
する。16ビットのロードデータをBバス32へ供給す
べき場合には、ドライバ4c,4dのみが動作する。ま
た、8ビットのロードデータをBバス32へ供給すべき
場合には、ドライバ4dのみが動作する。
のデータは、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のみが動作する。
のデータは、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のみが動作する。
々Aバス31上のデータを取り込むための、各々8ビッ
トのラッチ(DA1,DB1,DC1及びDD1)であ
る。取り込むべきデータが32ビットのサイズを有する
場合には、ラッチ7a〜7dが動作する。取り込むべき
データが16ビットのサイズを有する場合には、ラッチ
7c,7dのみが動作する。また、取り込むべきデータ
が8ビットのサイズを有する場合には、ラッチ7dのみ
が動作する。
々Bバス32上のデータを取り込むための、各々8ビッ
トのラッチ(DA2,DB2,DC2及びDD2)であ
る。取り込むべきデータが32ビットのサイズを有する
場合には、ラッチ8a〜8dが動作する。取り込むべき
データが16ビットのサイズを有する場合には、ラッチ
8c,8dのみが動作する。また、取り込むべきデータ
が8ビットのサイズを有する場合には、ラッチ8dのみ
が動作する。
込まれたデータのサイズを拡張して、その結果を表すデ
ータを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ビットへ拡張するための拡張器が実現
する。サイズ拡張されるべきデータが符号付きデータで
あるならば符号拡張が、サイズ拡張されるべきデータが
符号なしデータであるならばゼロ拡張がそれぞれなされ
る。
込まれたデータのサイズを拡張して、その結果を表すデ
ータを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ビットへ拡張するた
めの拡張器が実現する。サイズ拡張されるべきデータが
符号付きデータであるならば符号拡張が、サイズ拡張さ
れるべきデータが符号なしデータであるならばゼロ拡張
がそれぞれなされる。
は、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へ供給される。
えられた命令を解読するための命令解読器(ID:Inst
ruction Decoder)22と、SU部2a及びSZ部2f
の各々の情報の書き込み及び読み出しを司るコントロー
ラ23とを更に備えている。命令解読器22は、ドライ
バ3a〜3d,4a〜4dの駆動のオン・オフを含め、
図中の操作手段を構成する種々の要素を制御する。コン
トローラ23も、SU部2a及びSZ部2fの各々の情
報に応じて、図中の操作手段を構成する種々の要素の動
作ビット幅等を制御する。
を示している。本プロセッサは、ロード命令群、サイズ
変更命令群、符号有無変更命令群、即値転送命令群、算
術論理演算命令群、ストア命令群、ブランチ命令群等を
実行できるように構成されている。ただし、図2では、
ブランチ命令群等の図示が省略されている。図2中のR
n及びRmは、各々レジスタR0〜R7のいずれかを意
味する。レジスタR0〜R7の各々はプログラマに対し
て32ビットレジスタとして定義され、SU部2eとS
Z部2fとはプログラマからは見えない。
々の命令のオペコードフィールド(operation code fie
ld)は、オペランドの符号の有無に関する指定情報と、
オペランドのデータサイズに関する指定情報とを含んで
いる。いずれの命令でも、プロセッサの動作制御は命令
解読器22によって行われる。
ードして、これを符号付きデータとしてレジスタ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”がそれぞれ格納される。他のドライバは
動作せず、他のラッチやレジスタはデータの保持を続け
る。
これを符号なしデータとしてレジスタRnに設定するこ
とを要求する命令である。この命令が解読された場合の
プロセッサの動作は、レジスタRnのSU部2eに符号
なしデータの保持を表す値“0”が格納される点を除い
て、上記(1.1)と同じである。
て、これを符号付きデータとしてレジスタ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”がそれぞれ格納される。他のドライバ
は動作せず、他のラッチやレジスタはデータの保持を続
ける。
て、これを符号なしデータとしてレジスタRnに設定す
ることを要求する命令である。この命令が解読された場
合のプロセッサの動作は、レジスタRnのSU部2eに
符号なしデータの保持を表す値“0”が格納される点を
除いて、上記(1.3)と同じである。
て、これを符号付きデータとしてレジスタ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”がそれぞれ格納される。他のドライバは動作せず、
他のラッチやレジスタはデータの保持を続ける。
て、これを符号なしデータとしてレジスタRnに設定す
ることを要求する命令である。この命令が解読された場
合のプロセッサの動作は、レジスタRnのSU部2eに
符号なしデータの保持を表す値“0”が格納される点を
除いて、上記(1.5)と同じである。
る。個々の命令のオペコードフィールドは、オペランド
のデータサイズに関する指定情報を含むが、オペランド
の符号の有無に関する指定情報を含まない。いずれの命
令でも、プロセッサの動作制御は命令解読器22とコン
トローラ23とによって行われる。
ータ)のサイズを8ビットに変更することを要求する命
令である。この命令が解読されると、レジスタRnのS
U部2e及びSZ部2fの各々の値がコントローラ23
に送られる。以降の動作は、SZ部2fの値、すなわち
Rnデータのサイズに応じて異なる。
合には、何の動作も行われない。全てのドライバは動作
せず、全てのラッチやレジスタはデータの保持を続け
る。
る場合には、レジスタRnのSZ部2fの値が、16ビ
ットデータの保持を表す値“01”から、8ビットデー
タの保持を表す値“00”に変更される。ただし、レジ
スタRnのSU部2eの値は変更されない。これによ
り、レジスタRnに保持された16ビットデータは、符
号の有無をそのままに、その上位8ビットが無効化され
る。全てのドライバは動作せず、全てのラッチや他のレ
ジスタはデータの保持を続ける。
る場合には、レジスタRnのSZ部2fの値が、32ビ
ットデータの保持を表す値“10”から、8ビットデー
タの保持を表す値“00”に変更される。ただし、レジ
スタRnのSU部2eの値は変更されない。これによ
り、レジスタRnに保持された32ビットデータは、符
号の有無をそのままに、その上位24ビットが無効化さ
れる。全てのドライバは動作せず、全てのラッチや他の
レジスタはデータの保持を続ける。
ることを要求する命令である。この命令が解読される
と、レジスタRnのSU部2e及びSZ部2fの各々の
値がコントローラ23に送られる。以降の動作は、SU
部2e及びSZ部2fの値、すなわちRnデータの符号
の有無とサイズとに応じて異なる。
合には、データのサイズ拡張が行われる。具体的には、
レジスタ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ビットへ拡張される。他のドライバは
動作せず、他のラッチやレジスタはデータの保持を続け
る。
る場合には、何の動作も行われない。全てのドライバは
動作せず、全てのラッチやレジスタはデータの保持を続
ける。
る場合には、レジスタRnのSZ部2fの値が、32ビ
ットデータの保持を表す値“10”から、16ビットデ
ータの保持を表す値“01”に変更される。ただし、レ
ジスタRnのSU部2eの値は変更されない。これによ
り、レジスタRnに保持された32ビットデータは、符
号の有無をそのままに、その上位16ビットが無効化さ
れる。全てのドライバは動作せず、全てのラッチや他の
レジスタはデータの保持を続ける。
ることを要求する命令である。この命令が解読される
と、レジスタRnのSU部2e及びSZ部2fの各々の
値がコントローラ23に送られる。以降の動作は、SU
部2e及びSZ部2fの値、すなわちレジスタRnの保
持データの符号の有無とサイズとに応じて異なる。
合には、データのサイズ拡張が行われる。具体的には、
レジスタ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ビットへ拡張される。他
のドライバは動作せず、他のラッチやレジスタはデータ
の保持を続ける。
る場合には、データのサイズ拡張が行われる。具体的に
は、レジスタRnのDC部2c及びDD部2dから16
ビットのオペランドデータが読み出され、これがドライ
バ6c,6d、Bバス32の最下位16ビット部分を順
次経てラッチ8c,8dに取り込まれる。そして、ラッ
チ8c,8dに取り込まれた16ビットデータのサイズ
が拡張器10a〜10dにより32ビットに拡張され
る。プロセッサの以降の動作は、Rnデータが8ビット
データである場合に関する上記(i)と同じである。
る場合には、何の動作も行われない。全てのドライバは
動作せず、全てのラッチやレジスタはデータの保持を続
ける。
る。個々の命令のオペコードフィールドは、オペランド
の符号の有無に関する指定情報を含むが、オペランドの
データサイズに関する指定情報を含まない。いずれの命
令でも、プロセッサの動作制御は命令解読器22によっ
て行われる。
ータ)を符号付きデータに変更することを要求する命令
である。この命令が解読されると、レジスタRnのSU
部2eに符号付きデータの保持を表す値“1”が格納さ
れる。レジスタRnのSZ部2fの値は変更されない。
これにより、レジスタRnに符号なしデータが保持され
ていた場合には、そのデータサイズをそのままに、以降
は該データが符号付きデータとして扱われることとな
る。全てのドライバは動作せず、全てのラッチや他のレ
ジスタはデータの保持を続ける。
とを要求する命令である。この命令が解読されると、レ
ジスタRnのSU部2eに符号なしデータの保持を表す
値“0”が格納される。レジスタRnのSZ部2fの値
は変更されない。これにより、レジスタRnに符号付き
データが保持されていた場合には、そのデータサイズを
そのままに、以降は該データが符号なしデータとして扱
われることとなる。全てのドライバは動作せず、全ての
ラッチや他のレジスタはデータの保持を続ける。
個々の命令のオペコードフィールドは、オペランドの符
号の有無に関する指定情報と、オペランドのデータサイ
ズに関する指定情報とを含んでいる。いずれの命令で
も、プロセッサの動作制御は命令解読器22によって行
われる。
ト即値データ(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”がそ
れぞれ格納される。他のドライバは動作せず、他のラッ
チやレジスタはデータの保持を続ける。
ト即値データを符号なしデータとしてレジスタRnに転
送することを要求する命令である。この命令が解読され
た場合のプロセッサの動作は、レジスタRnのSU部2
eに符号なしデータの保持を表す値“0”が格納される
点を除いて、上記(4.1)と同じである。
ット即値データ(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”がそれぞれ格納される。他のドライバは動作せ
ず、他のラッチやレジスタはデータの保持を続ける。
n この命令は、オペランドフィールドで指定された16ビ
ット即値データを符号なしデータとしてレジスタRnに
転送することを要求する命令である。この命令が解読さ
れた場合のプロセッサの動作は、レジスタRnのSU部
2eに符号なしデータの保持を表す値“0”が格納され
る点を除いて、上記(4.3)と同じである。
ット即値データ(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”が
それぞれ格納される。他のドライバは動作せず、他のラ
ッチやレジスタはデータの保持を続ける。
ット即値データを符号なしデータとしてレジスタRnに
転送することを要求する命令である。この命令が解読さ
れた場合のプロセッサの動作は、レジスタRnのSU部
2eに符号なしデータの保持を表す値“0”が格納され
る点を除いて、上記(4.5)と同じである。
算命令が含まれる。個々の命令のオペコードフィールド
は、オペランドのデータサイズに関する指定情報を含ま
ず、またオペランドの符号の有無に関する指定情報を含
まない。ここでは、2オペランド形式を採用し、演算及
びフラグの生成はデスティネーションオペランドのデー
タサイズに基づくものとする。いずれの命令でも、プロ
セッサの動作制御は命令解読器22とコントローラ23
とによって行われる。
ータ)と、レジスタRnに保持されたデータ(Rnデー
タ)とを加算して、その結果をレジスタRnに格納する
ことを要求する命令である。この命令が解読されると、
レジスタRnのSU部2e及びSZ部2fの各々の値
と、レジスタRmのSU部2e及びSZ部2fの各々の
値とがコントローラ23に送られる。
る。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に
取り込まれる。
る。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に
取り込まれる。
は、拡張器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”ならばゼロ
拡張がそれぞれ選択される。
cは、Rnデータのサイズに応じて動作する。Rnデー
タが8ビットデータである場合には、ALU1dのみが
動作して、8ビットの加算結果と、フラグとが得られ
る。Rnデータが16ビットデータである場合には、A
LU1c,1d及びゲート11cのみが動作して、16
ビットの加算結果と、フラグとが得られる。Rnデータ
が32ビットデータである場合には、ALU1a〜1d
及びゲート11a〜11cの全てが動作して、32ビッ
トの加算結果と、フラグとが得られる。フラグは、Rn
データのサイズに応じたビット位置において、かつRn
データの符号の有無に関する情報に応じて生成される。
も、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に格納される。以上のプ
ロセッサ動作の間、他のドライバは動作せず、他のラッ
チやレジスタはデータの保持を続ける。
の結果をレジスタRnに格納することを要求する命令で
ある。この命令が解読された場合のプロセッサの動作
は、ALU1a〜1dにおける演算操作が減算である点
を除いて、上記(5.1)と同じである。
を要求する命令である。この命令が解読された場合のプ
ロセッサの動作は、ALU1a〜1dにおける演算操作
が減算である点と、ドライバ12a〜12dの全てがC
バス33を駆動しない点と、レジスタRnのDA部2
a、DB部2b、DC部2c及びDD部2dが更新され
ない点とを除いて、上記(5.1)と同じである。
スタRnに格納することを要求する命令である。この命
令が解読された場合のプロセッサの動作は、ALU1a
〜1dにおける演算操作が論理積である点を除いて、上
記(5.1)と同じである。
スタRnに格納することを要求する命令である。この命
令が解読された場合のプロセッサの動作は、ALU1a
〜1dにおける演算操作が論理和である点を除いて、上
記(5.1)と同じである。
のオペコードフィールドは、オペランドのデータサイズ
に関する指定情報を含まず、またオペランドの符号の有
無に関する指定情報を含まない。プロセッサの動作制御
は命令解読器22とコントローラ23とによって行われ
る。
ータ)をメモリにストアすることを要求する命令であっ
て、メモリへのストアは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に
格納される。他のドライバは動作せず、他のラッチやレ
ジスタはデータの保持を続ける。
次に、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にストアされる。
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ビットデータを扱う場合にも消費電力削減効果
が得られる。
スタファイル2を構成する8本のレジスタR0〜R7の
各々にSZ部2fを設け、RAM25からレジスタファ
イル2への特定サイズのオペランドデータのロードを要
求する命令や、レジスタファイル2への特定サイズの即
値オペランドデータの転送を要求する命令が解読された
ときには、オペランドデータのサイズ情報をSZ部2f
に保持させ、レジスタファイル2の中のオペランドデー
タの参照を要求する算術論理演算命令、又は、レジスタ
ファイル2からRAM25へのオペランドデータのスト
アを要求する命令が解読されたときには、レジスタファ
イル2のSZ部2fからサイズ情報を読み出して、操作
手段を構成する種々の要素のうち当該サイズ情報により
指定された部分のみを動作させることとしたので、命令
数を増やさずに、従来のプログラム資産を活用しながら
上記消費電力削減効果を得ることができる。
扱うプロセッサである限り、RISC型に限らず、例え
ばCISC(Complex Instruction Set Computer)型の
プロセッサにも適用可能である。その他、例えば次のよ
うな変形が可能である。
及びフラグの生成はデスティネーションオペランドのデ
ータサイズに基づくとしたが、ソースオペランドとデス
ティネーションオペランドとのうちデータサイズの大き
い方に基づくとしてもよい。
形式としたが、3オペランド形式であってもよい。その
場合、デスティネーションオペランドのデータサイズ
は、2つのソースオペランドのデータサイズのうち大き
い方に基づくとするのが好適である。
器、ALU、ドライバ、バスを最上位8ビット、中上位
8ビット、中下位8ビット、最下位8ビットの4つの部
分に分けて制御しているが、最上位8ビットと中上位8
ビットとを一体化して、最上位16ビット、中位8ビッ
ト、最下位8ビットの3つの部分に区切って制御しても
よい。
ト、32ビットの3種類としているが、それに24ビッ
トのデータサイズを加えて4種類としてもよい。こうす
れば、レジスタファイル、ラッチ、拡張器、ALU、ド
ライバ、バスを最上位8ビット、中上位8ビット、中下
位8ビット、最下位8ビットの4つの部分に分けて制御
する図1の構成が活かされる。
ト、32ビット、64ビットの4種類とすることも可能
である。例えば、レジスタファイル、ラッチ、拡張器、
ALU、ドライバ、バスのビット幅を64ビットに拡
げ、最上位32ビット、中上位16ビット、中下位8ビ
ット、最下位8ビットの4つの部分に分けて制御するよ
うにすればよい。
らない。ALUの出力からレジスタファイル2の入力に
至る経路上のいずれかの位置にオペランドデータの有効
サイズ検出機構を設け、検出した有効サイズをSZ部2
fに保持させるようにしてもよい。例えば、名目上は3
2ビットの符号なしデータであっても、実際には最上位
28ビットが全て0値ビットであることもある。このよ
うな場合には、4ビットデータの保持を意味するサイズ
情報をSZ部2fに保持させ、このサイズ情報に応答し
て、操作手段を構成する種々の要素の最下位4ビット部
分のみを動作させればよい。
e及びSZ部2fを設けず、算術論理演算命令の実行時
にレジスタファイル2から2つの32ビットデータを読
み出し、両データからその有効サイズと符号付き/符号
なしの区別とを検出するためのサイズ/符号検出部を別
に設けるようにしてもよい。このサイズ/符号検出部
は、各データの最上位ビット側からビットサーチを行
い、最初に1が立っているビットの位置を検出する。そ
の値の大きい方を有効サイズとし、これをコントローラ
23に入力する。また、ビットサーチの結果、最上位ビ
ットに1が立っている場合には「符号付き」の情報を、
立っていない場合には「符号なし」の情報をコントロー
ラ23に入力する。この一連の動作によって、コントロ
ーラ23は上記と同様の信号を入力されるので、以後の
動作は同様である。ただし、ALU等の操作手段は動作
幅が1ビット単位で分割されているものとする。なお、
動作幅を1ビット単位ではなく例えば4ビット単位で分
割することとすれば、サイズ/符号検出部でビットサー
チを行わず、代わりに4ビット毎の論理操作をすればよ
いので効率的である。
は、SU部2e及びSZ部2fをコンテキストブロック
に追加し、タスク切り換え時にはこれらを退避又は復帰
するようにすればよい。
ば、複数のサイズのデータを扱うプロセッサにおいて、
最大サイズに対応したビット幅を有する操作手段のう
ち、指定されたオペランドのデータサイズに応じた部分
のみを動作させることとしたので、当該プロセッサにお
ける電力消費の無駄を削減することができる。
ジスタファイルに保持させ、当該オペランドデータの参
照を要求する算術論理演算命令等が解読されたときに
は、レジスタファイルからオペランドデータとともにサ
イズ情報を読み出して、前記操作手段のうち当該サイズ
情報により指定された部分のみを動作させることとすれ
ば、命令数を増やさずに、従来のプログラム資産を活用
しながら上記消費電力削減効果を得ることができる。
ク図である。
である。
Claims (18)
- 【請求項1】 複数のサイズのデータを扱うプロセッサ
であって、 命令により指定されたオペランドに、前記命令により指
定された操作を施すための、前記複数のサイズのうちの
最大サイズに対応したビット幅を有する操作手段と、 前記操作手段のうち前記指定されたオペランドのデータ
サイズに応じた部分のみを動作させるための操作制御手
段とを備えたことを特徴とするプロセッサ。 - 【請求項2】 請求項1記載のプロセッサにおいて、 前記操作手段は、オペランドデータに算術論理演算操作
を施すための、前記最大サイズに対応したビット幅を有
する算術論理演算手段を備え、 前記算術論理演算手段のうち前記指定されたオペランド
のデータサイズに応じた部分のみが動作するように構成
されたことを特徴とするプロセッサ。 - 【請求項3】 請求項2記載のプロセッサにおいて、 前記操作手段は、前記算術論理演算手段を構成する各部
分の間で演算情報を伝達するための演算情報伝達手段を
更に備え、 前記演算情報伝達手段のうち前記指定されたオペランド
のデータサイズに応じた部分のみが動作するように構成
されたことを特徴とするプロセッサ。 - 【請求項4】 請求項3記載のプロセッサにおいて、 前記演算情報伝達手段により伝達される演算情報は、桁
上げに関する情報であることを特徴とするプロセッサ。 - 【請求項5】 請求項1記載のプロセッサにおいて、 前記操作手段は、オペランドデータを保持するための、
前記最大サイズに対応したビット幅を有するレジスタ手
段を備え、 前記レジスタ手段のうち前記指定されたオペランドのデ
ータサイズに応じた部分のみが動作するように構成され
たことを特徴とするプロセッサ。 - 【請求項6】 請求項1記載のプロセッサにおいて、 前記操作手段は、 オペランドデータを転送するための、前記最大サイズに
対応したビット幅を有するバス手段と、 前記バス手段を駆動するための、前記最大サイズに対応
したビット幅を有するドライバ手段とを備え、 前記ドライバ手段のうち前記指定されたオペランドのデ
ータサイズに応じた部分のみが動作するように構成され
たことを特徴とするプロセッサ。 - 【請求項7】 請求項1記載のプロセッサにおいて、 前記操作手段は、 オペランドデータを転送するための、前記最大サイズに
対応したビット幅を有するバス手段と、 前記バス手段上のオペランドデータを取り込むための、
前記最大サイズに対応したビット幅を有するラッチ手段
とを備え、 前記ラッチ手段のうち前記指定されたオペランドのデー
タサイズに応じた部分のみが動作するように構成された
ことを特徴とするプロセッサ。 - 【請求項8】 請求項1記載のプロセッサにおいて、 前記操作手段は、オペランドデータのサイズを拡張する
ための、前記最大サイズに対応したビット幅を有する拡
張手段を備え、 前記拡張手段のうち前記指定されたオペランドのデータ
サイズに応じた部分のみが動作するように構成されたこ
とを特徴とするプロセッサ。 - 【請求項9】 請求項1記載のプロセッサにおいて、 前記プロセッサは、RISC型であることを特徴とする
プロセッサ。 - 【請求項10】 請求項1記載のプロセッサにおいて、 前記操作制御手段は、与えられた命令を解読することに
より、該命令により指定されたオペランドについて、該
指定されたオペランドのデータサイズに関するサイズ情
報を得て、前記操作手段のうち前記サイズ情報により指
定された部分のみを動作させる機能を更に有することを
特徴とするプロセッサ。 - 【請求項11】 請求項10記載のプロセッサにおい
て、 前記操作手段は、オペランドデータと、該オペランドデ
ータのサイズに関するサイズ情報とを保持するためのレ
ジスタ手段を備え、 前記操作制御手段は、 前記レジスタ手段への特定サイズのオペランドデータの
設定を要求する第1の命令が解読されて、該第1の命令
により指定されたオペランドのデータサイズに関するサ
イズ情報が得られたときには、前記オペランドデータと
ともに前記サイズ情報を前記レジスタ手段に保持させる
機能と、 前記レジスタ手段に保持されたオペランドデータの参照
を要求する第2の命令が解読されたときには、前記レジ
スタ手段から前記オペランドデータとともに該オペラン
ドデータのサイズに関するサイズ情報を読み出して、前
記操作手段のうち前記レジスタ手段から読み出したサイ
ズ情報により指定された部分のみを動作させる機能とを
更に有することを特徴とするプロセッサ。 - 【請求項12】 請求項11記載のプロセッサにおい
て、 前記第1の命令は、メモリから前記レジスタ手段へのオ
ペランドデータのロードを要求する命令、又は、前記レ
ジスタ手段への即値オペランドデータの転送を要求する
命令であることを特徴とするプロセッサ。 - 【請求項13】 請求項11記載のプロセッサにおい
て、 前記第2の命令は、オペランドのデータサイズに関する
指定情報を含まないオペコードフィールドを有する命令
であることを特徴とするプロセッサ。 - 【請求項14】 請求項12記載のプロセッサにおい
て、 前記第2の命令は、前記レジスタ手段を参照する算術論
理演算命令、又は、前記レジスタ手段からメモリへのオ
ペランドデータのストアを要求する命令であることを特
徴とするプロセッサ。 - 【請求項15】 請求項11記載のプロセッサにおい
て、 前記操作制御手段は、特定サイズへのオペランドデータ
のサイズの変更を要求する第3の命令が解読されて、該
第3の命令により指定されたオペランドのデータサイズ
に関する新たなサイズ情報が得られたときには、前記レ
ジスタ手段中の前記指定されたオペランドに対応するデ
ータのサイズ情報を変更する機能を更に有することを特
徴とするプロセッサ。 - 【請求項16】 請求項11記載のプロセッサにおい
て、 前記第1の命令は、オペランドデータを符号付きデータ
として扱うべきか又は符号なしデータとして扱うべきか
を指定する、オペランドの符号の有無に関する符号情報
を含むオペコードフィールドを有する命令であり、 前記レジスタ手段は、前記オペランドデータの符号の有
無に関する符号情報を保持する機能を更に有し、 前記操作制御手段は、 前記第1の命令が解読されて、該第1の命令により指定
されたオペランドの符号の有無に関する符号情報が得ら
れたときには、前記オペランドデータとともに前記符号
情報を前記レジスタ手段に保持させる機能と、 前記レジスタ手段に保持されたオペランドデータの参照
を要求する前記第2の命令が解読されたときには、前記
レジスタ手段から前記オペランドデータとともに該オペ
ランドデータの符号の有無に関する符号情報を読み出し
て、該読み出した符号情報に従って前記第2の命令が実
行されるように前記操作手段を制御する機能とを更に有
することを特徴とするプロセッサ。 - 【請求項17】 請求項16記載のプロセッサにおい
て、 前記操作制御手段は、オペランドデータの符号の有無の
変更を要求する第4の命令が解読されて、該第4の命令
により指定されたオペランドの符号の有無に関する新た
な符号情報が得られたときには、前記レジスタ手段中の
前記指定されたオペランドに対応するデータの符号情報
を変更する機能を更に有することを特徴とするプロセッ
サ。 - 【請求項18】 請求項17記載のプロセッサにおい
て、 前記操作制御手段は、 与えられた命令を解読するための命令解読器と、 前記レジスタ手段への前記サイズ情報及び前記符号情報
の書き込みと、前記レジスタ手段からの前記サイズ情報
及び前記符号情報の読み出しとを司るコントローラとを
備えたことを特徴とするプロセッサ。
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)
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)
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)
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 | 算術論理演算装置 |
-
1999
- 1999-09-14 JP JP25997699A patent/JP3805578B2/ja not_active Expired - Fee Related
-
2000
- 2000-06-29 US US09/606,091 patent/US6802017B1/en not_active Expired - Fee Related
Cited By (1)
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 |