JPH10187664A - 読み出し専用メモリ及び演算装置 - Google Patents

読み出し専用メモリ及び演算装置

Info

Publication number
JPH10187664A
JPH10187664A JP34689796A JP34689796A JPH10187664A JP H10187664 A JPH10187664 A JP H10187664A JP 34689796 A JP34689796 A JP 34689796A JP 34689796 A JP34689796 A JP 34689796A JP H10187664 A JPH10187664 A JP H10187664A
Authority
JP
Japan
Prior art keywords
memory
output
value
redundant binary
counter value
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
JP34689796A
Other languages
English (en)
Other versions
JP3916277B2 (ja
Inventor
Yoji Kanie
洋二 蟹江
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.)
Sharp Corp
Original Assignee
Sharp Corp
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 Sharp Corp filed Critical Sharp Corp
Priority to JP34689796A priority Critical patent/JP3916277B2/ja
Priority to US08/992,575 priority patent/US6047302A/en
Publication of JPH10187664A publication Critical patent/JPH10187664A/ja
Application granted granted Critical
Publication of JP3916277B2 publication Critical patent/JP3916277B2/ja
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Classifications

    • G—PHYSICS
    • G06—COMPUTING OR CALCULATING; COUNTING
    • G06F—ELECTRIC DIGITAL DATA PROCESSING
    • G06F7/00—Methods or arrangements for processing data by operating upon the order or content of the data handled
    • G06F7/38—Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation
    • G06F7/48—Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation using non-contact-making devices, e.g. tube, solid state device; using unspecified devices
    • G06F7/50—Adding; Subtracting
    • G06F7/505—Adding; Subtracting in bit-parallel fashion, i.e. having a different digit-handling circuit for each denomination
    • G06F7/5055—Adding; Subtracting in bit-parallel fashion, i.e. having a different digit-handling circuit for each denomination in which one operand is a constant, i.e. incrementers or decrementers
    • G—PHYSICS
    • G06—COMPUTING OR CALCULATING; COUNTING
    • G06F—ELECTRIC DIGITAL DATA PROCESSING
    • G06F17/00—Digital computing or data processing equipment or methods, specially adapted for specific functions
    • G06F17/10—Complex mathematical operations
    • G06F17/14—Fourier, Walsh or analogous domain transformations, e.g. Laplace, Hilbert, Karhunen-Loeve, transforms
    • G06F17/147—Discrete orthonormal transforms, e.g. discrete cosine transform, discrete sine transform, and variations therefrom, e.g. modified discrete cosine transform, integer transforms approximating the discrete cosine transform
    • G—PHYSICS
    • G06—COMPUTING OR CALCULATING; COUNTING
    • G06F—ELECTRIC DIGITAL DATA PROCESSING
    • G06F7/00—Methods or arrangements for processing data by operating upon the order or content of the data handled
    • G06F7/38—Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation
    • G06F7/48—Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation using non-contact-making devices, e.g. tube, solid state device; using unspecified devices
    • G06F7/52—Multiplying; Dividing
    • G06F7/523—Multiplying only
    • G—PHYSICS
    • G06—COMPUTING OR CALCULATING; COUNTING
    • G06F—ELECTRIC DIGITAL DATA PROCESSING
    • G06F7/00—Methods or arrangements for processing data by operating upon the order or content of the data handled
    • G06F7/38—Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation
    • G06F7/48—Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation using non-contact-making devices, e.g. tube, solid state device; using unspecified devices
    • G06F7/4824—Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation using non-contact-making devices, e.g. tube, solid state device; using unspecified devices using signed-digit representation

Landscapes

  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Engineering & Computer Science (AREA)
  • Computational Mathematics (AREA)
  • Mathematical Analysis (AREA)
  • Pure & Applied Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Mathematical Optimization (AREA)
  • General Engineering & Computer Science (AREA)
  • Mathematical Physics (AREA)
  • Computing Systems (AREA)
  • Data Mining & Analysis (AREA)
  • Discrete Mathematics (AREA)
  • Algebra (AREA)
  • Databases & Information Systems (AREA)
  • Software Systems (AREA)
  • Read Only Memory (AREA)
  • Complex Calculations (AREA)
  • Compression, Expansion, Code Conversion, And Decoders (AREA)

Abstract

(57)【要約】 【課題】 消費電力が低く、かつ、寿命が長い演算装置
を提供する。 【解決手段】 演算過程において読み出し専用メモリの
出力データを使用する演算装置において、出力値を、出
力値の冗長2進表現の各桁を、冗長2進表現の各桁がと
り得る値に割り当てられたそれぞれ異なる複数ビット列
で置き換えることによって得られるビット列で出力する
読み出し専用メモリ3−1、3−2、…、3−11を設
けている。

Description

【発明の詳細な説明】
【0001】
【発明の属する技術分野】本発明は、読み出し専用メモ
リ、及び、演算過程において読み出し専用メモリの出力
データを使用する演算装置に関するものである。
【0002】
【従来の技術】演算過程において読み出し専用メモリ
(以下、「メモリ」と省略する)の出力データを使用す
る演算装置の一例のブロック図を図9に示す。同図にお
いて、数値演算処理装置100は、当該演算装置への入
力Xと、メモリ200の出力データとに基づいて演算を
行い、出力Yを得ている。
【0003】そして、メモリ200は出力値を2進表現
で出力している。つまり、メモリ200からは、例え
ば、その出力ビット数を12ビットとすると、出力値が
724であるときは、724の2進表現である0010
11010100が出力され、また、出力値が−256
と負値であるときは、−256を2の補数を用いて2進
表現した111100000000が出力される。
【0004】
【発明が解決しようとする課題】しかしながら、上記の
演算装置においては、入力Xの変化、あるいは、演算処
理の対象となる入力の変化などによって、メモリ200
の出力データも当然変化するわけであるが、上述したよ
うに、メモリ200の出力データは2進表現であるた
め、メモリの出力データのビットの変化回数(以下、
「遷移回数」と呼ぶ)が多く、これは、消費電力の増大
につながり、また、装置の摩耗を促進し、装置の寿命を
短くする原因となっている。
【0005】そこで、本発明は、消費電力を低減し、か
つ、装置の寿命を延ばすことができるメモリ、及び、消
費電力が低く、かつ、寿命が長い演算装置を提供するこ
とを目的とする。
【0006】
【課題を解決するための手段】上記の目的を達成するた
め、請求項1に記載のメモリでは、出力値を、出力値の
冗長2進表現の各桁を、冗長2進表現の各桁がとり得る
値に割り当てられたそれぞれ異なる複数ビット列で置き
換えることによって得られるビット列で出力するように
している。
【0007】以上の構成によって、後述するように、各
出力値の前あるいは後の少なくともどちらか一方に出力
される出力値が決まっているメモリについては、出力値
を2進表現で出力するメモリよりも、遷移回数を少なく
することができる。また、一部の出力値に対して、その
前あるいは後の少なくともどちらか一方に出力される出
力値が決まっているメモリであれば、上記作用が生じる
可能性がある。
【0008】また、請求項2に記載の演算装置では、演
算過程においてメモリの出力データを使用する演算装置
において、出力値を、出力値の冗長2進表現の各桁を、
冗長2進表現の各桁がとり得る値に割り当てられたそれ
ぞれ異なる複数ビット列で置き換えることによって得ら
れるビット列で出力するメモリを設けている。
【0009】以上の構成によって、後述するように、メ
モリの各出力データを使用するに際して、その前あるい
は後の少なくともどちらか一方に使用する出力データが
決まっている演算装置については、出力値を2進表現で
出力するメモリを設けた場合よりも、遷移回数を少なく
することができる。また、メモリの一部の出力データを
使用するに際して、その前あるいは後の少なくともどち
らか一方に使用するデータが決まっている演算装置であ
れば、上記作用が生じる可能性がある。
【0010】
【発明の実施の形態】以下に、本発明の実施形態を図面
を参照しながら説明する。本発明の一実施形態であるメ
モリは、出力値の冗長2進表現の各桁を、冗長2進表現
の各桁がとり得る値に割り当てられたそれぞれ異なる2
ビット列で置き換えることによって得られるビット列で
出力値を出力する(以下、冗長2進表現の各桁を、冗長
2進表現の各桁がとり得る値に割り当てられたそれぞれ
異なるxビット列で置き換えることを、「冗長2進表現
をxビット列で符号化する」と呼び、冗長2進表現をx
ビット列で符号化することによって得られるビット列を
「冗長2進表現符号」と呼ぶ)。
【0011】ここで、冗長2進表現とは、2を固定基数
とし、−1と0と1との3つを用いて数値を表したもの
である。すなわち、冗長2進表現と2進表現とでは各桁
の重みが同じ(2)であり、各桁のとり得る値が異なっ
ている(2進表現では0と1との2つであるのに対し、
冗長2進表現では−1と0と1との3つである)。そし
て、この冗長2進表現では、1つの数値について複数の
表し方が可能である。具体的には、例えば、5桁の冗長
2進表現では、数値1を「00001」、「0001−
1」、「001−1−1」、「01−1−1−1」、
「1−1−1−1−1」と表すことができる。
【0012】次に、冗長2進表現の各桁がとり得る値は
−1、0、1の3つであり、2ビット列としては(0
0)、(01)、(10)、(11)の4つが考えられ
るので、冗長2進表現を2ビット列で符号化するには、
4P3=24通りの方法がある。しかしながら、今、問題
としているのは、遷移回数(ビットの変化数)であっ
て、冗長2進表現の桁においては、−1と0との間、0
と1との間、1と−1との間での3通りの変化が考えら
れ、−1、0、1の3つにそれぞれ異なる2ビット列を
割り当てると、その割り当て方によらず、前記3通りの
変化のうちのいずれか1つにおいて遷移回数が2となり
(割り当てた2ビットが両方ともに変化し)、残りの2
つにおいては遷移回数が1となる(割り当てた2ビット
の一方しか変化しない)ので、冗長2進表現を2ビット
列で符号化するには、遷移回数が2となるのを、−1と
0との間での変化の際とするか、0と1との間での変化
の際とするか、1と−1との間での変化の際とするか、
の3通りの方法があることになる。
【0013】この3通りの方法のそれぞれの一例を図1
に示す。同図において、−1に(10)を、0に(0
0)を、1に(11)を、それぞれ割り当てたものを定
義1とし、−1に(11)を、0に(00)を、1に
(01)を、それぞれ割り当てたものを定義2とし、−
1に(10)を、0に(00)を、1に(01)を、そ
れぞれ割り当てたものを定義3としており、定義1によ
れば0と1との間での変化の際に、定義2によれば−1
と0との間での変化の際に、定義3によれば−1と1と
の間での変化の際に、それぞれ遷移回数が2となる。
【0014】そして、出力の順番が決められていたり、
出力値が限定され完全に自由ではないメモリについて
は、冗長2進表現符号で出力値を出力することによっ
て、2進表現で出力値を出力するよりも、遷移回数を少
なくすることができる可能性が生じる。というのは、冗
長2進表現では、前述したように、1つの数値について
複数の表し方が可能であるので、メモリの各出力値の前
あるいは後に出力される出力値が決まっていれば、遷移
回数が少なくなるように、各出力値の前あるいは後に出
力される出力値に応じて、各出力値の表し方を適切に選
択することができるからである。
【0015】これを具体的な例を挙げて確認してみる。
例えば、図2に示すように、メモリの出力値が0から3
1に変化するとき、2進表現では0は「00000」で
あり、31は「11111」であるので、メモリの出力
データが2進表現である場合は遷移回数が5であるのに
対し、冗長2進表現では、桁数を6桁とすると、0は
「000000」であり、31は「011111」、
「1−11111」、「10−1111」、「100−
111」、「1000−11」、「10000−1」と
表すことができるが、「10000−1」を選択するこ
とによって、冗長2進表現の各桁の変化回数としては、
−1と0との間での変化が1回、0と1との間での変化
が1回であるので、メモリの出力データが冗長2進表現
を2ビット列で符号化したものである場合は、冗長2進
表現を符号化する方法が、図1に示す定義1であれば遷
移回数を3、図1に示す定義2であれば遷移回数を3、
図1に示す定義3であれば遷移回数を2、とそれぞれす
ることができる。
【0016】以上の内容からして、本実施形態のメモリ
によれば、各出力値の前あるいは後の少なくともどちら
か一方に出力される出力値が決まっているメモリについ
ては、出力値を2進表現で出力するメモリよりも、遷移
回数を少なくすることができるので、消費電力を低減
し、メモリの出力データを使用する装置の寿命を延ばす
ことができる。また、一部の出力値に対して、その前あ
るいは後の少なくともどちらか一方に出力される出力値
が決まっているメモリであれば、上記作用効果を奏する
可能性がある。
【0017】以下、本発明の演算装置について説明す
る。尚、演算過程においてメモリの出力データを使用す
る演算装置としては、定数加算器、定数乗算器、定数係
数の積和演算器、係数の決まったマトリクス演算器、デ
ィジタル比較器、マトリクス演算器を応用した離散コサ
イン変換器など様々なものが存在するが、離散コサイン
変換器を例にとって行うものとする。
【0018】まず、離散コサイン変換について説明を行
う。例えば、1次元の8個のnビットのデータX1、
X2、…、X8に対する離散コサイン変換式は次に示す
(数1)で表され、この変換式で得られる8個のデータ
Y1、Y2、…、Y8は離散コサイン変換係数と呼ばれ
る。
【0019】
【数1】
【0020】(数1)を変形すると、次の(数2)が得
られる。
【0021】
【数2】
【0022】(数2)の係数を整数にするために、係数
を29倍して小数点以下を切り捨てると、次の(数3)
が得られる。
【0023】
【数3】
【0024】(数3)より、Yj(j=1、2、…、
8)は次に示す(数4)で表される。
【0025】
【数4】
【0026】次に、(数4)のZk(k=1、2、3、
4)は2つのnビットのデータXjの和あるいは差であ
るので、Zkをn+1ビットとし、Zkのビット位iのビ
ットをZk(i)とおくと、Zkは次に示す(数5)で表
される。尚、ビット位iとは、最下位のi−1個上の桁
を意味しており、例えば、ビット位1のビットは最下位
ビットを表しており、Zkのビット位n+1のビットは
最上位ビットを表している。
【0027】
【数5】
【0028】(数5)より、(数4)は次に示す(数
6)で表される。
【0029】
【数6】
【0030】(数4)で示したように、jに応じて
T1、T2、T3、T4が固定されているので、(数6)よ
り、Yjはn+1個の4ビット列(Z1(1)Z2(1)
Z3(1)Z4(1))、(Z1(2)Z2(2)Z
3(2)Z4(2))、…、(Z1(n+1)Z2(n+
1)Z3(n+1)Z4(n+1))の関数であることが
わかる。
【0031】尚、ここで、T1・Z1(i)+T2・Z
2(i)+T3・Z3(i)+T4・Z4(i)をYjの部分
和と定義し、以下、必要に応じて、Zkのビット位1の
ビットを要素とするYjの部分和、つまり、T1・Z
1(1)+T2・Z2(1)+T3・Z3(1)+T4・Z4
(1)をYjの第1部分和、Zkのビット位2のビットを
要素とするYjの部分和、つまり、T1・Z1(2)+T2
・Z2(2)+T3・Z3(2)+T4・Z4(2)をYjの
第2部分和、…、Zkのビット位n+1のビットを要素
とするYjの部分和、つまり、T1・Z1(n+1)+T2
・Z2(n+1)+T3・Z3(n+1)+T4・Z4(n
+1)をYjの第n+1部分和、というように表現す
る。
【0032】そこで、Zkのビット数と同数(n+1
個)のメモリを設け、各メモリにYjの部分和がとり得
る値の全て(8×24=128個)を記憶させておき、
各メモリが、例えば、jの値を示すデータ及び4ビット
列(Z1(i)Z2(i)Z3(i)Z4(i))を入力す
ると、その入力に応じたYjの部分和を出力するように
しておけば、jの値を示すデータを各メモリに与え、ま
た、Zkの各同一ビット位のビットからなる全て(n+
1個)の4ビット列(Z1(1)Z2(1)Z3(1)Z4
(1))、(Z1(2)Z2(2)Z3(2)Z
4(2))、…、(Z1(n+1)Z2(n+1)Z3(n
+1)Z4(n+1))をそれぞれ異なるメモリに与
え、その際に各メモリが出力する部分和を、(数6)に
示すように、その要素である4ビット列を構成するビッ
トのZkにおけるビット位に応じてシフトさせて加算す
ることによって、Yjを算出することができる。
【0033】以上のような方法を用いることによって、
8個の入力データX1、X2、…、X8に対して離散コサ
イン変換係数Y1、Y2、…、Y8を出力する1次元8要
素の離散コサイン変換器のブロック図を図3に示す。
尚、入力データX1、X2、…、X8はそれぞれ10ビッ
トとする。同図において、1はカウンタ、2は加減算
器、3−1、3−2、…、3−11はメモリ、4は加算
器である。
【0034】以下、各部の動作について説明する。ま
ず、カウンタ1の出力(以下、「カウンタ値」と呼ぶ)
は所定時間毎にサイクリックに変化し、8種類の信号が
存在している、つまり、8種類の信号をa、b、c、
d、e、f、g、hと表現すれば、カウンタ値はa→b
→c→d→e→f→g→h→a→…と変化する。そし
て、カウンタ値は加減算器2とメモリ3−1、3−2、
…、3−11とに与えられている。
【0035】次に、加減算器2は当該1次元8要素の離
散コサイン変換器への入力である8個のデータX1、
X2、…、X8に対して、4つのデータZ1、Z2、Z3、
Z4を生成し、カウンタ値がa、b、c、dであるとき
は、Z1=X1+X8、Z2=X2+X7、Z3=X3+X6、
Z4=X4+X5であり、カウンタ値がe、f、g、hで
あるときは、Z1=X1−X8、Z2=X2−X7、Z3=X3
−X6、Z4=X4−X5である。尚、Z1、Z2、Z3、Z4
は、X1、X2、…、X8がそれぞれ10ビットであり、
これらについて1回加算あるいは減算したものであるの
で、それぞれ11ビットとなる。
【0036】そして、Z1、Z2、Z3、Z4はそれぞれビ
ット分配され、Z1、Z2、Z3、Z4の各同一ビット位の
ビットからなる11組の4ビット列(Z1(i)Z
2(i)Z3(i)Z4(i))(i=1〜11)が加減
算器2から出力され、このうち、Z1、Z2、Z3、Z4の
ビット位1のビットからなるもの、つまり、(Z
1(1)Z2(1)Z3(1)Z4(1))がメモリ3−1
に、Z1、Z2、Z3、Z4のビット位2のビットからなる
もの、つまり、(Z1(2)Z2(2)Z3(2)Z
4(2))がメモリ3−2に、…、Z1、Z2、Z3、Z4
のビット位11のビットからなるもの、つまり、(Z1
(11)Z2(11)Z3(11)Z4(11))がメモ
リ3−11にというように、それぞれ異なるメモリに与
えられる。
【0037】メモリ3−1、3−2、…、3−11の出
力値はそれぞれ、図4に示すように、入力であるカウン
タ値と4ビット列(Z1(i)Z2(i)Z3(i)Z
4(i))について、カウンタ値がaである場合に、4
ビット列が(0000)であるときは0、4ビット列が
(0001)であるときは362、…、4ビット列が
(1111)であるときは1448であり、カウンタ値
がbである場合に、4ビット列が(0000)であると
きは0、4ビット列が(0001)であるときは−43
7、…、4ビット列が(1111)であるときは0であ
り、………、カウンタ値がhである場合に、4ビット列
が(0000)であるときは0、4ビット列が(000
1)であるときは−362、…、4ビット列が(111
1)であるときは−188である。
【0038】これにより、カウンタ値とZkとの関係、
(数4)に示すYjのjの値とZkの係数Tkの値との関
係、及び、各メモリが入力する4ビット列を構成するビ
ットのZkにおけるビット位からして、カウンタ値がa
であるときは、メモリ3−1はY1の第1部分和を、メ
モリ3−2はY1の第2部分和を、…、メモリ3−11
はY1の第11部分和を、それぞれ出力し、カウンタ値
がbであるときは、メモリ3−1はY3の第1部分和
を、メモリ3−2はY3の第2部分和を、…、メモリ3
−11はY3の第11部分和を、それぞれ出力し、カウ
ンタ値がcであるときは、メモリ3−1はY5の第1部
分和を、メモリ3−2はY5の第2部分和を、…、メモ
リ3−11はY5の第11部分和を、それぞれ出力し、
カウンタ値がdであるときは、メモリ3−1はY7の第
1部分和を、メモリ3−2はY7の第2部分和を、…、
メモリ3−11はY7の第11部分和を、それぞれ出力
し、カウンタ値がeであるときは、メモリ3−1はY2
の第1部分和を、メモリ3−2はY2の第2部分和を、
…、メモリ3−11はY2の第11部分和を、それぞれ
出力し、カウンタ値がfであるときは、メモリ3−1は
Y4の第1部分和を、メモリ3−2はY4の第2部分和
を、…、メモリ3−11はY4の第11部分和を、それ
ぞれ出力し、カウンタ値がgであるときは、メモリ3−
1はY6の第1部分和を、メモリ3−2はY6の第2部分
和を、…、メモリ3−11はY6の第11部分和を、そ
れぞれ出力し、カウンタ値がhであるときは、メモリ3
−1はY8の第1部分和を、メモリ3−2はY8の第2部
分和を、…、メモリ3−11はY8の第11部分和を、
それぞれ出力することになる。尚、各メモリの出力ビッ
ト数は、後述するように、今の場合、22ビット以上と
すればよい。
【0039】次に、加算器4はメモリ3−1、3−2、
…、3−11が出力する部分和を入力し、これらを、メ
モリ3−1が出力するものはシフトさせないが、メモリ
3−2が出力する部分和は1ビット上に、メモリ3−3
が出力する部分和は2ビット上に、…、メモリ3−11
が出力する部分和は10ビット上に、それぞれシフトさ
せた後、加算する。
【0040】これにより、前述したように、メモリ3−
1、3−2、…、3−11がそれぞれYjの第1部分
和、第2部分和、…、第11部分和を出力すること、及
び、(数6)に示すYjとその部分和との関係からし
て、Yjが算出されることになる。尚、加算器4は加算
結果、すなわち、Yjを出力するに際して、必要に応じ
て所定ビット数に丸めるという処理を行うようになって
いる。また、この1次元8要素の離散コサイン変換器に
おいては、図4に示す各メモリの入出力関係、及び、前
述したカウンタ値の変化態様からして、Y1、Y3、
Y5、Y7、Y2、Y4、Y6、Y8の順にYjが算出される
ことになる。
【0041】そして、図4に示す各メモリの出力値は冗
長2進表現を2ビット列で符号化した冗長2進表現符号
で出力される。つまり、例えば、メモリに入力される4
ビット列が(0101)で、カウンタ値がaであるとき
には、出力値は724であるので、この冗長2進表現の
1つである「010−100−10−1−100」を2
ビット列で符号化したもの、すなわち、冗長2進表現を
2ビット列で符号化する方法が図1に示す定義3である
場合は、(00010010000010001010
0000)が出力される。
【0042】ここで、メモリに出力値を冗長2進表現符
号で出力させるには、まず、出力値を冗長2進表現に変
換する必要があるが、前述したように、1つの数値を表
す冗長2進表現は複数存在するので、その中から1つを
選択しなければならない。これについて以下に説明す
る。本実施形態の1次元8要素の離散コサイン変換器に
おいては、カウンタ値がa→b→c→dと変化する間、
及び、e→f→g→hと変化する間は、Zkが変化せ
ず、よって、メモリへの入力4ビット列が変化しないの
で、メモリの各入力4ビット列に対する、カウンタ値が
aのときの出力値、カウンタ値がbのときの出力値、カ
ウンタ値がcのときの出力値、及び、カウンタ値がdの
ときの出力値、の4つの出力値の間では出力の順番が固
定されており、同じく、カウンタ値がeのときの出力
値、カウンタ値がfのときの出力値、カウンタ値がgの
ときの出力値、及び、カウンタ値がhのときの出力値、
の4つの出力値の間では出力の順番が固定されている。
したがって、遷移回数を少なくするという観点からし
て、これらの4つの出力値が順に出力される際の、それ
ぞれの冗長2進表現間での桁の変化回数が最も少なくな
るように、各出力値の冗長2進表現を(冗長2進表現を
符号化する方法も踏まえて)選択することになる。
【0043】具体的な例を図5を用いて示す。メモリの
出力値は、入力4ビット列(0101)に対して、カウ
ンタ値がaのときのは724、カウンタ値がbのときは
−256、カウンタ値がcのときは0、カウンタ値がd
のときは−512であるので、724の冗長2進表現と
しては「010−100−10−1−100」を、−2
56の冗長2進表現としては「000−1000000
00」を、−512の冗長2進表現としては「00−1
000000000」を、それぞれ選択することによっ
て(0の冗長2進表現は「000000000000」
である)、カウンタ値がa→b→c→dと変化する間の
1つのメモリの遷移回数が6と最も少なくなる(図5の
(イ))。また、メモリの出力値は、入力4ビット列
(0011)に対して、カウンタ値がeのときのは37
7、カウンタ値がfのときは−708、カウンタ値がg
のときは447、カウンタ値がhのときは−55である
ので、377の冗長2進表現としては「0010−10
000−1−1−1」を、−708の冗長2進表現とし
ては「0−110−1−1000−100」を、447
の冗長2進表現としては「00100−100000−
1」を、−55の冗長2進表現としては「00000−
100101−1」を、それぞれ選択することによっ
て、カウンタ値がe→f→g→hと変化する間の1つの
メモリの遷移回数が11と最も少なくなる(図5の
(ロ))。尚、冗長2進表現を符号化する方法として
は、図1に示す定義3を用いている。
【0044】そして、上記2つの例において、カウンタ
値がd→eと変化する間の1つのメモリの遷移回数は6
となるので(図5の(ハ))、1次元8要素の離散コサ
イン変換器が8個のデータX1、X2、…、X8を入力し
てから8個の離散コサイン変換係数Y1、Y2、…、Y8
を出力するまでの間の1つのメモリにおける遷移回数
(以下、「総遷移回数」と表現する)は、カウンタ値が
a、b、c、dであるときの入力4ビット列が(010
1)、カウンタ値がe、f、g、hであるときの入力4
ビット列が(0011)であるメモリでは、6+11+
6=23となる。
【0045】このようにして、メモリの各入力4ビット
列に対するカウンタ値がa、b、c、dのときの4つの
出力値とそれらの出力順、及び、カウンタ値がe、f、
g、hのときの4つの出力値とそれらの出力順に基づい
て、メモリが格納している128個の全ての出力値につ
いて冗長2進表現が選択されている。
【0046】尚、比較のため、従来通りメモリの出力値
を2進表現で出力する場合の1つのメモリにおける遷移
回数を求めてみると、図7に示すように、カウンタ値が
a、b、c、dであるときの4ビット列が(0101)
であり、カウンタ値がe、f、g、hであるときの4ビ
ット列が(0011)である場合、カウンタ値がa→b
→c→dと変化する間の遷移回数は14となり(図7の
(イ))、また、カウンタ値がe→f→g→hと変化す
る間の遷移回数は18となり(図7の(ロ))、また、
カウンタ値がd→eと変化する間の遷移回数は9となる
(図7の(ハ))。よって、カウンタ値がa、b、c、
dであるときの4ビット列が(0101)であり、カウ
ンタ値がe、f、g、hであるときの4ビット列が(0
011)であるメモリでは、総遷移回数が14+18+
9=41となる。
【0047】ここで、メモリの出力ビット数について
は、上記例(図5)によれば、出力値の冗長2進表現を
12桁としており、メモリからは冗長2進表現符号(冗
長2進表現を2ビット列で符号化したもの)が出力され
るので、12桁×2=24ビットとなるが、n桁の冗長
2進表現では−2n+1〜2n−1の数値を表すことがで
きるので、本実施形態の1次元8要素の離散コサイン変
換器においては、メモリの出力値が−798〜1448
である(図4参照)ことから、11桁の冗長2進表現で
メモリの出力値を全て表すことができ、11桁×2=2
2ビットとしてもよい。また、逆に、メモリの出力ビッ
ト数を24ビットよりも多くしてもよく、こうすること
によって、冗長2進表現の桁数が多くなり、1つの数値
をより多くの態様で表すことができるので、遷移回数を
より一層少なくすることが可能である。結論として、本
実施形態の1次元8要素の離散コサイン変換器では、メ
モリの出力ビット数を22ビット以上確保しておけばよ
い。
【0048】尚、n桁の2進表現では、負数を2の補数
で表現するとして、−2n-1〜2n-1−1の数値を表すこ
とができ、一方、n−1桁の冗長2進表現では−2n-1
+1〜2n-1−1の数値を表すことができるので、n桁
の2進表現では表すことができて、n−1桁の冗長2進
表現では表すことができない数値は−2n-1の1つだけ
であり、ほとんどの場合、n桁の2進表現はn−1桁の
冗長2進表現で置き換えることができる。したがって、
メモリに出力値を2進表現で出力させるときに、メモリ
の出力ビット数がnビット以上必要であった場合に、メ
モリに出力値を冗長2進表現符号で出力させるには、メ
モリの出力ビット数を(n−1)×2=2n−2ビット
以上としておけばよい。
【0049】そして、全ての入力4ビット列について、
1つのメモリにおける、カウンタ値がa→b→c→dと
変化するときの遷移回数、カウンタ値がe→f→g→h
と変化するときの遷移回数、及び、カウンタ値がd→e
と変化するときの遷移回数を求め、その結果をまとめた
ものが図6である。
【0050】同図において、「遷移回数」と記入されて
いる欄の各下欄は、カウンタ値がa、b、c、dである
ときの入力4ビット列がその左隣の欄に記入されている
ものである場合に、カウンタ値がa→b→c→dと変化
する間の遷移回数を示しており、これらの合計がその最
下欄に記入されている。
【0051】また、「遷移回数」と記入されている欄の
各右欄は、カウンタ値がe、f、g、hであるときの入
力4ビット列がその上隣の欄に記入されているものであ
る場合に、カウンタ値がe→f→g→hと変化する間の
遷移回数を示しており、これらの合計がその最右欄に記
入されている。
【0052】また、上記2つの各欄が交わる欄は、カウ
ンタ値がa、b、c、dであるときの入力4ビット列が
最左隣の欄に記入されているものであり、カウンタ値が
e、f、g、hであるときの入力4ビット列が最上隣の
欄に記入されているものである場合に、カウンタ値がd
→eと変化する間の遷移回数を示しており、これらの合
計が同図の右下隅の欄に記入されている。
【0053】そして、1次元8要素の離散コサイン変換
器が8個の入力データX1、X2、…、X8に対して8個
の離散コサイン変換係数Y1、Y2、…、Y8を出力する
までには、1つのメモリについて、カウンタ値がa、
b、c、dであるときの入力4ビット列が16種類であ
り、カウンタ値がe、f、g、hであるときの入力4ビ
ット列が16種類であるので、16×16=256通り
のパターンが考えられるが、これらの各パターンにおけ
る総遷移回数の合計は、166×16+180×16+
1574=7110となる。そして、この総遷移回数の
合計をパターン数(256)で割ったもの(以下、「平
均総遷移回数」と表現する)は27.77となり、この
値は各パターンが同じ確率で発生するとした場合の総遷
移回数の指標となるものである。
【0054】尚、比較のため、従来通りメモリの出力値
を2進表現で出力する場合についても、同様に、全ての
入力4ビット列について、1つのメモリにおける、カウ
ンタ値がa→b→c→dと変化するときの遷移回数、カ
ウンタ値がe→f→g→hと変化するときの遷移回数、
及び、カウンタ値がd→eと変化するときの遷移回数を
求め、その結果を図8にまとめている。尚、各欄の数値
が意味する内容については図6と同じであり、総遷移回
数の合計は244×16+272×16+1442=9
698、平均総遷移回数は9698÷256≒37.8
8となっている。
【0055】したがって、1次元8要素の離散コサイン
変換器においては、メモリが出力値を、2進表現で出力
する代わりに、冗長2進表現符号で出力することによっ
て、平均総遷移回数が37.88から27.77と約2
6.7%少なくすることが可能であることがわかる。
【0056】以上のように、本実施形態の1次元8要素
の離散コサイン変換器によれば、出力値を2進表現で出
力するメモリを設けた場合よりも、遷移回数を少なくす
ることができるので、装置の消費電力が低くなり、か
つ、装置の寿命が長くなるという効果につながる。
【0057】尚、本発明の演算装置の実施形態として、
1次元8要素の離散コサイン変換器を示したが、本発明
の演算装置はこれに限定されるものではなく、演算過程
においてメモリの出力データを使用し、メモリの各出力
データを使用するに際して、その前あるいは後の少なく
ともどちらか一方に使用する出力データが決まっている
演算装置であればよい。
【0058】また、メモリの一部の出力データを使用す
るに際して、その前あるいは後の少なくともどちらか一
方に使用するデータが決まっている演算装置に対して本
発明を実施した場合にも、上記作用効果を奏する可能性
があると言える。
【0059】また、上記実施形態においては、冗長2進
表現を符号化するにあたって、2ビット列を用いたが、
場合によってはより多くのビット数のビット列を用いて
もよい。
【0060】
【発明の効果】以上説明したように、請求項1に記載の
メモリによれば、各出力値の前あるいは後の少なくとも
どちらか一方に出力される出力値が決まっているメモリ
については、出力値を2進表現で出力するメモリより
も、遷移回数を少なくすることができ、したがって、消
費電力を低減し、かつ、装置の寿命を延ばすことができ
る。尚、一部の出力値に対して、その前あるいは後の少
なくともどちらか一方に出力される出力値が決まってい
るメモリであれば、上記効果が得られる可能性がある。
【0061】また、請求項2に記載の演算装置によれ
ば、メモリの各出力データを使用するに際して、その前
あるいは後の少なくともどちらか一方に使用する出力デ
ータが決まっている演算装置については、出力値を2進
表現で出力するメモリを設けた場合よりも、遷移回数を
少なくすることができ、これは、装置の消費電力が低く
なり、かつ、装置の寿命が長くなるという効果をもたら
す。尚、メモリの一部の出力データを使用するに際し
て、その前あるいは後の少なくともどちらか一方に使用
するデータが決まっている演算装置であれば、上記効果
が得られる可能性がある。
【図面の簡単な説明】
【図1】 冗長2進表現を2ビット列で符号化する3通
りの方法のそれぞれの一例を説明する図である。
【図2】 出力値が0から31に変化する際に、2進表
現で出力する場合と冗長2進表現で出力する場合との遷
移回数を比較するための図である。
【図3】 本発明の一実施形態である1次元8要素の離
散コサイン変換器のブロック図である。
【図4】 メモリ3−1、3−2、…、3−11の出力
値を示す図である。
【図5】(イ)カウンタ値がa、b、c、dであるとき
の入力4ビット列が(0101)である場合に、カウン
タ値がa→b→c→dと変化する間の1つのメモリの遷
移回数を示す図である。 (ロ)カウンタ値がe、f、g、hであるときの入力4
ビット列が(0011)である場合に、カウンタ値がe
→f→g→hと変化する間の1つのメモリの遷移回数を
示す図である。 (ハ)カウンタ値がa、b、c、dであるときの入力4
ビット列が(0101)であり、カウンタ値がe、f、
g、hであるときの入力4ビット列が(0011)であ
る場合に、カウンタ値がd→eと変化する間の1つのメ
モリの遷移回数を示す図である。
【図6】 全ての入力4ビット列について、1つのメモ
リにおける、カウンタ値がa→b→c→dと変化すると
きの遷移回数、カウンタ値がe→f→g→hと変化する
ときの遷移回数、及び、カウンタ値がd→eと変化する
ときの遷移回数をまとめた図である。
【図7】(イ)メモリが出力値を2進表現で出力すると
した場合の、カウンタ値がa、b、c、dであるときの
入力4ビット列が(0101)である場合に、カウンタ
値がa→b→c→dと変化する間の1つのメモリの遷移
回数を示す図である。 (ロ)メモリが出力値を2進表現で出力するとした場合
の、カウンタ値がe、f、g、hであるときの入力4ビ
ット列が(0011)である場合に、カウンタ値がe→
f→g→hと変化する間の1つのメモリの遷移回数を示
す図である。 (ハ)メモリが出力値を2進表現で出力するとした場合
の、カウンタ値がa、b、c、dであるときの入力4ビ
ット列が(0101)であり、カウンタ値がe、f、
g、hであるときの入力4ビット列が(0011)であ
る場合に、カウンタ値がd→eと変化する間の1つのメ
モリの遷移回数を示す図である。
【図8】 メモリが出力値を2進表現で出力するとした
場合の、全ての入力4ビット列について、1つのメモリ
における、カウンタ値がa→b→c→dと変化するとき
の遷移回数、カウンタ値がe→f→g→hと変化すると
きの遷移回数、及び、カウンタ値がd→eと変化すると
きの遷移回数をまとめた図である。
【図9】 演算過程においてメモリの出力データを使用
する演算装置の一例のブロック図である。
【符号の説明】
1 カウンタ 2 加減算器 3−1、3−2、…、3−11 メモリ(出力データ
が冗長2進表現符号) 4 加算器 100 数値演算処理装置 200 メモリ(出力データが2進表現)

Claims (2)

    【特許請求の範囲】
  1. 【請求項1】 出力値を、出力値の冗長2進表現の各桁
    を、冗長2進表現の各桁がとり得る値に割り当てられた
    それぞれ異なる複数ビット列で置き換えることによって
    得られるビット列で出力することを特徴とする読み出し
    専用メモリ。
  2. 【請求項2】 演算過程において読み出し専用メモリの
    出力データを使用する演算装置において、出力値を、出
    力値の冗長2進表現の各桁を、冗長2進表現の各桁がと
    り得る値に割り当てられたそれぞれ異なる複数ビット列
    で置き換えることによって得られるビット列で出力する
    読み出し専用メモリを設けたことを特徴とする演算装
    置。
JP34689796A 1996-12-26 1996-12-26 読み出し専用メモリ及び演算装置 Expired - Fee Related JP3916277B2 (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP34689796A JP3916277B2 (ja) 1996-12-26 1996-12-26 読み出し専用メモリ及び演算装置
US08/992,575 US6047302A (en) 1996-12-26 1997-12-17 Memory storing redundant binary codes and arithmetic unit and discrete cosine transformer using such memory

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP34689796A JP3916277B2 (ja) 1996-12-26 1996-12-26 読み出し専用メモリ及び演算装置

Publications (2)

Publication Number Publication Date
JPH10187664A true JPH10187664A (ja) 1998-07-21
JP3916277B2 JP3916277B2 (ja) 2007-05-16

Family

ID=18386568

Family Applications (1)

Application Number Title Priority Date Filing Date
JP34689796A Expired - Fee Related JP3916277B2 (ja) 1996-12-26 1996-12-26 読み出し専用メモリ及び演算装置

Country Status (2)

Country Link
US (1) US6047302A (ja)
JP (1) JP3916277B2 (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2015038698A (ja) * 2013-08-19 2015-02-26 富士通株式会社 半導体記憶装置および半導体記憶装置の制御方法

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP4860160B2 (ja) * 2004-02-10 2012-01-25 株式会社半導体エネルギー研究所 半導体装置

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4866655A (en) * 1986-07-18 1989-09-12 Matsushita Electric Industrial Co., Ltd. Arithmetic processor and divider using redundant signed digit
US4868777A (en) * 1986-09-12 1989-09-19 Matsushita Electric Industrial Co., Ltd. High speed multiplier utilizing signed-digit and carry-save operands
EP0520650A1 (en) * 1991-06-19 1992-12-30 AT&T Corp. Low power signaling using gray codes
JPH07152730A (ja) * 1993-11-30 1995-06-16 Toshiba Corp 離散コサイン変換装置

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2015038698A (ja) * 2013-08-19 2015-02-26 富士通株式会社 半導体記憶装置および半導体記憶装置の制御方法

Also Published As

Publication number Publication date
US6047302A (en) 2000-04-04
JP3916277B2 (ja) 2007-05-16

Similar Documents

Publication Publication Date Title
US5329475A (en) Data round-off device for rounding-off m-bit digital data into (m-n) bit digital data
JP2819006B2 (ja) サーモメータ・バイナリ・エンコード方法
JP3017379B2 (ja) 符号化方法、符号化装置、復号方法、復号器、データ圧縮装置及び遷移マシン生成方法
JP2800880B2 (ja) 高速復号算術符号化装置
US5008668A (en) Method and apparatus for encoding and decoding data in residue number system
JP3772264B2 (ja) 連続した入力ブロックを符号化する方法
CN114866091A (zh) 基于划分组参考数的差值编码压缩及解压缩方法
CN1110903C (zh) 编码装置和译码装置
KR100406330B1 (ko) 매칭스펙트럼널부호화기/복호화기
JPH0374418B2 (ja)
JP3916277B2 (ja) 読み出し専用メモリ及び演算装置
US20030113030A1 (en) Encoding apparatus, decoding apparatus, encoding/decoding apparatus, encoding method, decoding method, encoding/decoding method, and programs
JPH0312738B2 (ja)
CN114840173B (zh) 一种混合概率逻辑的计算方法和装置
KR102856644B1 (ko) 싸인 비트 감산기 및 비트 최적화를 적용한 프리 엠퍼시스 회로
US20240045653A1 (en) Method and Apparatus for Converting to Enhanced Block Floating Point Format
JPH07120267B2 (ja) カウンタ回路
US4118786A (en) Integrated binary-BCD look-ahead adder
KR0129751B1 (ko) 잉여수시스템에 있어서의 데이타의 엔코딩장치 및 디코딩장치와 방법
TWI898521B (zh) 將二進制字符相加的方法及電路
JPH0869372A (ja) 2進乗算器
JP3106767B2 (ja) 乗算方法及び乗算回路
KR100256463B1 (ko) 임의의 베이스의 심볼을 가산하거나 감산하는 프로세스 및 시스템
CN117639791A (zh) 紧凑型csd编码器及编码方法
CN118018034A (zh) Csd编码器及其编码方法

Legal Events

Date Code Title Description
A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20060227

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20060404

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20060531

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20070206

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

Year of fee payment: 3

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

Free format text: PAYMENT UNTIL: 20110216

Year of fee payment: 4

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

Free format text: PAYMENT UNTIL: 20120216

Year of fee payment: 5

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

Free format text: PAYMENT UNTIL: 20120216

Year of fee payment: 5

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

Free format text: PAYMENT UNTIL: 20130216

Year of fee payment: 6

LAPS Cancellation because of no payment of annual fees