本願は、電子技術の分野に関連し、特に、乗算器及びオペレータ(operator:演算子、演算処理)回路に関連する。
人工知能(artificial intelligence, AI)技術の継続的な開発及び成熟に伴い、AI技術は、サーバ及び端末等の通信装置において徐々に普及している。AI技術は、通信装置内の中央処理装置(central processing unit, CPU)、ニューラルネットワーク処理装置(neural-network processing unit, NPU)、グラフィックス処理装置(graphics processing unit, GPU)、又はデジタル信号プロセッサ(digital signal processor, DSP)等のプロセッサの計算能力に対して高い要件を与える。プロセッサのコアコンピューティングユニットとして、乗算器は、益々重要な役割を果たす。
既存の乗算器のアーキテクチャは、標準的なエンコーダ及び標準的な加算器に基づいて設計される。図1に示されるように、特定の設計実施態様は、3つのステップ:(1)Radix(基数)-4ブースのアルゴリズムを使用して、Radix-4ブースエンコーダで第1の値及び第2の値を符号化して、部分積を取得する;(2)ウォレス(Wallace)ツリーを使用して部分積を圧縮する;(3)圧縮によって得られた2つの部分積を合計して、乗算演算の結果を取得する;に要約され得る。図1は、第1の値と第2の値との両方が16ビットの2進数であり、乗算演算の結果が32ビットの2進数である例を示しており、ここで、a[15:0]は第1の値を示し、b[15:0]は第2の値を示し、y[31:0]は乗算演算の結果を示す。しかしながら、Radix-4ブースアルゴリズム及びウォレスツリーに基づいて実装された前述の乗算器では、多くの標準的なエンコーダ及び標準的な加算器が使用される。標準的なエンコーダ及び標準的な加算器には、金属酸化物半導体(metal-oxide-semiconductor, MOS)トランジスタが大数あり、トランジスタの面積が大きい。その結果、乗算器の面積が大きくなる。つまり、既存の乗算器の設計実施多様は複雑である。従って、実装がより容易な乗算器を設計することが期待される。
本願は、乗算器の実装の難しさを軽減するための、乗算器及びオペレータ回路を提供する。前述の目的を達成するために、本願では次の技術的解決策が使用される。
第1の態様によれば、乗算器が提供され、この乗算器は、Mビット(bits)の第1の値とNビットの第2の値との乗算を行うように構成され、ここで、M及びNは1より大きい整数である。乗算器には、P個のエンコーダグループ及びW個のレイヤの反転コンプレッサが含まれる。P個のエンコーダグループの各グループにはN個のエンコーダが含まれ、Wは正の整数であり、Pは1より大きい整数である。各エンコーダグループは非反転符号化演算子又は反転符号化演算子を使用して、各エンコーダグループに対応するグループ選択信号及びシンボル制御入力信号と、第2の値のビットの一部とを符号化して、1つの部分積を取得するように構成される。グループ選択信号及びシンボル制御入力信号は、第1の値のビットの一部に基づいて生成され、P個のエンコーダグループは符号化を行ってP個の部分積を取得する。W個のレイヤの反転コンプレッサは、反転圧縮演算子を使用してP個の部分積を圧縮して、2つの累積値を取得するように構成され、ここで、2つの累積値の合計は、第1の値と第2の値との積である。前述の技術的解決策では、P個のエンコーダグループは、非反転符号化演算子又は反転符号化演算子を使用して符号化を行い、W個のレイヤの反転コンプレッサは、反転圧縮演算子を使用して圧縮を行う。この実施態様の解決策は簡素である。例えば、この解決策には、面積が小さく、消費電力が少ないという利点があるため、乗算器の面積が小さく、消費電力が少なくなる。
第1の態様の可能な実施態様において、N個のエンコーダの各エンコーダは、第2の値の第1ビット及び第2ビットに対応し、グループ選択信号は、第1信号及び第2信号を含む。各エンコーダは、非反転符号化演算子又は反転符号化演算子を使用して、第1ビット、第2ビット、グループ選択信号、及びシンボル制御入力信号を符号化して、1つの部分積で1つの出力ビットを取得するように特に構成される。第1ビット及び第2ビットは、第2の値における隣接する2つのビット、又は第2の値における同じビットであり得る。前述の可能な実施態様において、エンコーダの符号化方法が提供され、符号化方法の実施態様の解決策は簡素である。例えば、エンコーダの面積を減らすことができる。
第1の態様の可能な実施態様において、エンコーダが非反転符号化演算子を使用する場合に、エンコーダは、非反転エンコーダであり、且つ以下の符号化演算を行うように特に構成され、その符号化演算には、第1信号と第1ビットとの両方が1であるか、又は第2信号と第2ビットとの両方が1である場合に、エンコーダが取得する出力ビットは、シンボル制御入力信号の反転であること;又は、第1信号及び第1ビットの少なくとも一方が0であり、且つ第2信号及び第2ビットの少なくとも一方が0である場合に、エンコーダが取得する出力ビットは、シンボル制御入力信号であること;が含まれる。前述の可能な実施態様において、非反転エンコーダが提供され、非反転エンコーダの実施態様の解決策は、簡素であり、例えば、面積が小さく、消費電力が少ない。
第1の態様の可能な実施態様において、エンコーダが反転符号化演算子を使用する場合に、エンコーダは、反転エンコーダであり、且つ以下の符号化演算を行うように特に構成され、その符号化演算には、第1信号と第1ビットとの両方が1である場合、又は、第2信号と第2ビットとの両方が1である場合に、エンコーダが取得する出力ビットは、シンボル制御入力信号であること;又は、第1信号及び第1ビットの少なくとも一方が0であり、且つ第2信号及び第2ビットの少なくとも一方が0である場合に、エンコーダが取得する出力ビットは、シンボル制御入力信号の反転であること;が含まれる。前述の可能な実施態様において、反転エンコーダが提供され、反転エンコーダの実施態様の解決策は、簡素であり、例えば、面積が小さく、消費電力が少ない。
第1の態様の可能な実施態様において、Wは1であり、W個のレイヤの反転コンプレッサは、第1レイヤの反転コンプレッサを含む。第1レイヤの反転コンプレッサは、反転圧縮演算子を低い桁の重みから高い桁の重みまで順序に使用して、各桁の重みに対応する残りのビット数が3未満になるまで、P個の部分積のマトリックス内の各桁の重みを圧縮して、第1の圧縮マトリックスを取得するように構成される。第1の圧縮マトリックスには2つの行が含まれ、各行は1つの累積値に対応する。各桁の重みに対する圧縮は、3ビット毎に桁の重みに対して実行される。そして、P個の部分積のマトリックスでは、各行には1つの部分積が含まれ、各列には、P個の部分積の同じ桁の重み(same digit bit)に対応する複数のビットが含まれる。前述の可能な実施態様において、提供する反転コンプレッサは、高い圧縮効率を有する。
第1の態様の可能な実施態様において、Wは1より大きい整数であり、W個のレイヤの反転コンプレッサには、第1レイヤの反転コンプレッサ~W番目のレイヤの反転コンプレッサまでが含まれる。第1レイヤの反転コンプレッサは、反転圧縮演算子を低い桁の重みから高い桁の重みまで順序に使用して、各桁の重みに対応する残りのビット数が3未満になるまで、P個の部分積のマトリックス内の各桁の重みを圧縮して、第1の圧縮マトリックスを取得するように構成される。i番目のレイヤの反転コンプレッサは、反転圧縮演算子を低い桁の重みから高い桁の重みまで順番に使用して、各桁の重みに対応する残りのビット数が3未満になるまで、(i-1)番目の圧縮マトリックス内の各桁の重みを圧縮して、i番目の圧縮マトリックスを取得するように構成され、ここで、iの値の範囲が2~Wである。W番目の圧縮マトリックスには2つの行が含まれ、各行は1つの累積値に対応する。各レイヤの反転コンプレッサによる各桁の重みに対する圧縮は、桁の重みの3ビットに対して実行される。P個の部分積のマトリックスでは、各行には1つの部分積が含まれ、各列には、P個の部分積の同じ桁の重みに対応する複数のビットが含まれる。前述の可能な実施態様において、提供するW個のレイヤの反転コンプレッサは、高い圧縮効率を有する。
第1の態様の可能な実施態様において、各桁の重みの3ビット毎に、各反転コンプレッサは、以下の圧縮を行うように特に構成され、その圧縮には、3ビットが全て0である場合に、出力キャリービットは1であり、現在の出力合計ビットは1であること;又は、3ビットが全て1である場合に、出力キャリービットは0であり、現在の出力合計ビットは0であること;又は、3ビットのうちの1ビットが1であり、他の2ビットが0である場合に、出力キャリービットは1であり、現在の出力合計ビットは0であること;又は、3ビットのうちの2ビットが1であり、他のビットが0である場合に、出力キャリービットは0であり、現在の出力合計ビットは1であること;が含まれる。前述の可能な実施態様は、反転コンプレッサの簡素で効果的な圧縮方法を提供する。
第1の態様の可能な実施態様において、エンコーダによって使用される同じ桁の重みに対応する符号化演算子の位相(phase)は、反転コンプレッサによって出力される現在の出力合計ビット又は出力キャリービットの位相に関連する。同じ桁の重みに対応するエンコーダは、同じ桁の重みに対応する出力ビットを取得するために符号化を行うエンコーダであり、同じ桁の重みに対応する反転コンプレッサは、同じ桁の重みの3ビットを圧縮する反転コンプレッサである。前述の可能な実施態様は、エンコーダによって使用される符号化演算子の位相を決定するための高速で効果的な方法を提供する。
第1の態様の可能な実施態様において、乗算器は、1つ又は複数のインバータをさらに含み、このインバータは、W個のレイヤの反転コンプレッサ内の1つ又は複数の反転コンプレッサによって出力される現在の出力合計ビット及び出力キャリービットの位相を反転するか、或いは1つ又は複数の反転コンプレッサに入力された3ビットのうちの少なくとも1ビットの位相を反転するように構成される。前述の可能な実施態様は、圧縮結果の精度を保証し、W個のレイヤの反転コンプレッサの圧縮効率を向上させることができる。
第1の態様の可能な実施態様において、乗算器は、プリコーダをさらに含み、このプリコーダは、第1の値を受け取り、第1の値のビットの一部に基づいてグループ選択信号及びシンボル制御入力信号を生成するように構成される。
第1の態様の可能な実施態様において、乗算器は、加算器をさらに含み、この加算器は、2つの累積値を受け取り、2つの累積値を合計(sum up)して積(product)を得るように構成される。
第2の態様によれば、オペレータ回路が提供され、このオペレータ回路には、第1トランジスタ、第2トランジスタ、第3トランジスタ、第4トランジスタ、第5トランジスタ、第6トランジスタ、第7トランジスタ、第8トランジスタ、第9トランジスタ、第10トランジスタ、第11トランジスタ、第12トランジスタ、第13トランジスタ、第14トランジスタ、及び第15トランジスタが含まれる。第1トランジスタ及び第2トランジスタは、電源端子と第1ノードとの間で並列に結合され、第3トランジスタ及び第4トランジスタは、第1ノードと第2ノードとの間で並列に結合され、第5トランジスタ及び第7トランジスタは、第2ノードと接地端子との間に直列に結合され、そして第6トランジスタ及び第8トランジスタは、第2ノードと接地端子との間に直列に結合される。第3トランジスタ及び第5トランジスタの制御端子は、第1入力を受け取るように構成され、第1トランジスタ及び第6トランジスタの制御端子は、第2入力を受け取るように構成され、第4トランジスタ及び第7トランジスタの制御端子は、第3入力を受け取るように構成され、そして第2トランジスタ及び第8トランジスタの制御端子は、第4入力を受け取るように構成される。第9トランジスタは、第5入力の反転と出力端子との間に結合され、第9トランジスタの制御端子は、第2ノードに結合される。第10トランジスタは、第2ノードと出力端子との間に結合され、第10トランジスタの制御端子は、第5入力の反転に結合される。第11トランジスタ及び第13トランジスタは、出力端子と接地端子の間に直列に結合される。第11トランジスタの制御端子は、第2ノードに結合される。第13トランジスタの制御端子は、第5入力の反転を受け取るように構成される。第12トランジスタは、出力端子と第2ノードとの間に結合され、第12トランジスタの制御端子は、第5入力を受け取るように構成される。第14トランジスタ及び第15トランジスタは、電源端子と接地端子との間に直列に結合され、第14トランジスタと第15トランジスタとの間の直列結合ノードは、第5入力の反転に結合される。第14トランジスタ及び第15トランジスタの制御端子は、第5入力を受け取るように構成される。前述の技術的解決策では、非反転符号化オペレータ回路が提供される。非反転符号化オペレータ回路は、トランジスタの数が少なく、占有面積が小さく、実装が簡素である。従って、オペレータ回路を乗算器に適用すると、乗算器の面積を減らすことができる。
第2の態様の可能な実施態様において、第1トランジスタ、第2トランジスタ、第3トランジスタ、第4トランジスタ、第9トランジスタ、第10トランジスタ、及び第14トランジスタは、P型MOS(PMOS)トランジスタである。第5トランジスタ、第6トランジスタ、第7トランジスタ、第8トランジスタ、第11トランジスタ、第12トランジスタ、第13トランジスタ、及び第15トランジスタは、N型MOS(NMOS)トランジスタである。前述の可能な実施態様において、提供するオペレータ回路がデータを符号化するときに、トランジスタのトグルレートは小さい。従って、オペレータ回路を乗算器に適用すると、乗算器の消費電力を低減することができる。
第3の態様によれば、オペレータ回路が提供され、このオペレータ回路には、第1トランジスタ、第2トランジスタ、第3トランジスタ、第4トランジスタ、第5トランジスタ、第6トランジスタ、第7トランジスタ、第8トランジスタ、第9トランジスタ、第10トランジスタ、第11トランジスタ、第12トランジスタ、第13トランジスタ、第14トランジスタ、及び第15トランジスタが含まれる。第1トランジスタ及び第2トランジスタは、電源端子と第1ノードとの間で並列に結合され、第3トランジスタ及び第4トランジスタは、第1ノードと第2ノードとの間で並列に結合され、第5トランジスタ及び第7トランジスタは、第2ノードと接地端子との間に直列に結合され、そして第6トランジスタ及び第8トランジスタは、第2ノードと接地端子との間に直列に結合される。第3トランジスタ及び第5トランジスタの制御端子は、第1入力を受け取るように構成され、第1トランジスタ及び第6トランジスタの制御端子は、第2入力を受け取るように構成され、第4トランジスタ及び第7トランジスタの制御端子は、第3入力を受け取るように構成され、そして第2トランジスタ及び第8トランジスタの制御端子は、第4入力を受け取るように構成される。第9トランジスタ及び第10トランジスタは、電源端子と出力端子の間に直列に結合され、第9トランジスタの制御端子は第5入力の反転に結合され、第10トランジスタの制御端子は、第2ノードに結合される。第11トランジスタは第2ノードと出力端子との間に結合され、第11トランジスタの制御端子は第5入力に結合される。第12トランジスタは、出力端子と第5入力の反転との間に結合され、第12トランジスタの制御端子は、第2ノードに結合される。第13トランジスタは、出力端子と第2ノードとの間に結合され、第13トランジスタの制御端子は第5入力の反転に結合される。第14トランジスタ及び第15トランジスタは、電源端子と接地端子との間に直列に結合され、第14トランジスタと第15トランジスタとの間の直列結合ノードは、第5入力の反転に結合される。第14トランジスタ及び第15トランジスタの制御端子は、第5入力を受け取るように構成される。前述の技術的解決策では、反転符号化オペレータ回路が提供される。反転符号化オペレータ回路は、トランジスタの数が少なく、占有面積が小さく、実装が簡素である。従って、オペレータ回路を乗算器に適用すると、乗算器の面積を減らすことができる。
第3の態様の可能な実施態様において、第1トランジスタ、第2トランジスタ、第3トランジスタ、第4トランジスタ、第9トランジスタ、第10トランジスタ、第11トランジスタ、及び第14トランジスタは、PMOSトランジスタである。第5トランジスタ、第6トランジスタ、第7トランジスタ、第8トランジスタ、第12トランジスタ、第13トランジスタ、及び第15トランジスタは、NMOSトランジスタである。前述の可能な実施態様において、提供するオペレータ回路がデータを符号化するときに、トランジスタのトグルレートは小さい。従って、オペレータ回路を乗算器に適用すると、乗算器の消費電力を低減することができる。
第4の態様によれば、オペレータ回路が提供され、このオペレータ回路には、第1トランジスタ、第2トランジスタ、第3トランジスタ、第4トランジスタ、第5トランジスタ、第6トランジスタ、第7トランジスタ、第8トランジスタ、第9トランジスタ、第10トランジスタ、第11トランジスタ、第12トランジスタ、第13トランジスタ、第14トランジスタ、第15トランジスタ、第16トランジスタ、第17トランジスタ、第18トランジスタ、第19トランジスタ、第20トランジスタ、第21トランジスタ、及び第22トランジスタが含まれる。第1トランジスタ及び第2トランジスタは、電源端子と第1ノードとの間で並列に結合され、第3トランジスタは、第1ノードと第1出力端子との間に結合され、第4トランジスタは、第1出力端子と第2ノードとの間に結合される。第5トランジスタ及び第6トランジスタは、第2ノードと接地端子との間で並列に結合され、第7トランジスタは電源端子と第3ノードとの間に結合され、第8トランジスタは第3ノードと第1出力端子との間に結合され、そして第9トランジスタは第1出力端子と第4ノードとの間に結合される。第10トランジスタは第4ノードと接地端子との間に結合され、第11トランジスタ及び第12トランジスタは、第3ノードと第2出力端子との間に直列に結合され、第13トランジスタ及び第14トランジスタは、第2出力端子と第4ノードとの間に直列に結合される。第15トランジスタ、第16トランジスタ、及び第17トランジスタは、電源端子と第5ノードとの間で並列に結合され、第18トランジスタは第5ノードと第2出力端子との間に結合され、第19トランジスタは第2出力端子と第6ノードとの間に結合され、そして第20トランジスタ、第21トランジスタ、及び第22トランジスタは、第6ノードと接地端子との間で並列に結合される。第3トランジスタ、第4トランジスタ、第12トランジスタ、第13トランジスタ、第15トランジスタ、及び第20トランジスタの制御端子は、第1入力を受け取るように構成される。第1トランジスタ、第5トランジスタ、第7トランジスタ、第10トランジスタ、第16トランジスタ、及び第21トランジスタの制御端子は、第2入力を受け取るように構成される。第2トランジスタ、第6トランジスタ、第8トランジスタ、第9トランジスタ、第11トランジスタ、第14トランジスタ、第17トランジスタ、及び第22トランジスタの制御端子は、第3入力を受け取るように構成される。第18トランジスタ及び第19トランジスタの制御端子は、第1出力端子に結合される。前述の技術的解決策では、反転圧縮オペレータ回路が提供される。反転圧縮オペレータ回路は、トランジスタの数が少なく、占有面積が小さく、実装が簡素である。従って、オペレータ回路を乗算器に適用すると、乗算器の面積を減らすことができる。
第4の態様の可能な実施態様において、第1トランジスタ、第2トランジスタ、第3トランジスタ、第7トランジスタ、第8トランジスタ、第11トランジスタ、第12トランジスタ、第15トランジスタ、第16トランジスタ、第17トランジスタ、及び第18トランジスタは、PMOSトランジスタである。第4トランジスタ、第5トランジスタ、第6トランジスタ、第9トランジスタ、第10トランジスタ、第13トランジスタ、第14トランジスタ、第19トランジスタ、第20トランジスタ、第21トランジスタ、及び第22トランジスタは、NMOSトランジスタである。前述の可能な実施態様において、提供するオペレータ回路がデータを圧縮するときに、トランジスタのトグルレートは小さい。従って、オペレータ回路を乗算器に適用すると、乗算器の消費電力を低減することができる。
第5の態様によれば、乗算器又はオペレータ回路を含むプロセッサが提供される。乗算器は、第1の態様又は第1の態様の可能な実施態様のいずれか1つで提供される乗算器であり、オペレータ回路は、第2の態様~第4の態様又は第2の態様~第4の態様の可能な実施態様のいずれか1つで提供されるオペレータ回路である。オプションで、プロセッサは、ニューラルネットワーク処理装置を含む。
第6の態様によれば、乗算器又はオペレータ回路を含むチップが提供される。乗算器は、第1の態様又は第1の態様の可能な実施態様のいずれか1つで提供される乗算器であり、オペレータ回路は、第2の態様~第4の態様又は第2の態様~第4の態様の可能な実施態様のいずれか1つで提供されるオペレータ回路である。
上記で提供する任意のプロセッサ又はチップは、上記で提供する乗算器又はオペレータ回路を含むことが理解され得る。従って、プロセッサ又はチップによって達成できる有利な効果については、上記の乗算器又はオペレータ回路の有利な効果を参照されたい。詳細については、ここでは再び説明しない。
従来技術による乗算器のアーキテクチャの図である。
本願の一実施形態による通信装置の構造の概略図である。
本願の一実施形態による乗算器の構造の概略図である。
本願の一実施形態による非反転エンコーダの論理ブロック図である。
本願の一実施形態による反転エンコーダの論理ブロック図である。
本願の一実施形態によるW個のレイヤの反転コンプレッサの圧縮例の図である。
本願の一実施形態によるW個のレイヤの反転コンプレッサの圧縮例の図である。
本願の一実施形態によるW個のレイヤの反転コンプレッサの圧縮例の図である。
本願の一実施形態によるW個のレイヤの反転コンプレッサの圧縮例の図である。
本願の一実施形態による反転コンプレッサの論理ブロック図である。
本願の一実施形態によるプリコーダ及びエンコーダの例示的な図である。
本願の一実施形態によるプリコーダ及びエンコーダの例示的な図である。
本願の一実施形態によるプリコーダ及びエンコーダの例示的な図である。
本願の一実施形態によるプリコーダ及びエンコーダの例示的な図である。
本願の一実施形態によるプリコーダ及びエンコーダの例示的な図である。
本願の一実施形態によるプリコーダ及びエンコーダの例示的な図である。
本願の一実施形態によるW個のレイヤの反転コンプレッサの別の圧縮例の図である。
本願の一実施形態による非反転エンコーダの回路図である。
本願の一実施形態による反転エンコーダの回路図である。
本願の一実施形態による反転コンプレッサの回路図である。
本願において、「少なくとも1つ」は1つ又は複数を意味し、「複数」は2つ以上を意味する。「及び/又は」という用語は、関連するオブジェクトを説明するための関連性の関係を説明し、3つの関係が存在し得ることを表す。例えば、A及び/又はBは、次の場合:Aのみが存在する、AとBとの両方が存在する、及びBのみが存在することを示し得、ここで、A及びBは単数形又は複数形であり得る。以下のアイテム(ピース)のうちの少なくとも1つ又はその類似の表現は、単一のアイテム(ピース)又は複数のアイテム(ピース)の任意の組合せを含む、これらのアイテムの任意の組合せを示す。例えば、a、b、又はcの少なくとも1つ(ピース)は、a;b;c;a及びb;a及びc;b及びc;又はa、b及びcを示し得、ここで、a、b及びcは単数形又は複数形であり得る。さらに、本願の実施形態では、「第1」及び「第2」等の単語は、基本的に類似した名前、機能、又は目的を有するオブジェクトを区別するために使用される。当業者は、「第1」及び「第2」等の単語が、数量又は実行順序を制限しないことを理解し得る。「結合」という用語は、ワイヤ又は接続端を介した直接接続又は別の装置を介した間接接続を含む、電気的接続を示すために使用される。従って、「結合」は、広範な意味での電子通信接続と見なすべきである。
図2は、本願の一実施形態による通信装置の構造の概略図である。通信装置は、端末、サーバ等であり得る。図2に示されるように、通信装置は、メモリ201、プロセッサ202、通信インターフェイス203、及びバス204を含み得る。メモリ201、プロセッサ202、及び通信インターフェイス203は、バス204を介して互いに接続される。メモリ201は、データ、ソフトウェアプログラム、及びモジュールを記憶するように構成され、且つ主にプログラム記憶領域及びデータ記憶領域を含む。プログラム記憶領域は、オペレーティングシステム、少なくとも1つの機能に必要なアプリケーションプログラム等を記憶することができる。データ記憶領域は、装置の使用中に作成されたデータ等を記憶することができる。プロセッサ202は、通信装置の動作を制御及び管理するように構成され、例えば、メモリ201に記憶したソフトウェアプログラム及び/又はモジュールを起動又は実行することによって、及びメモリ201に記憶しれたデータを呼び出すことによって、装置の様々な機能を実行し、データを処理するように構成される。通信インターフェイス203は、装置の通信をサポートするように構成される。
プロセッサ202は、中央処理装置(Central Processing Unit, CPU)、ネットワーク処理装置(Network Processing Unit, NPU)、グラフィックス処理装置(Graphics Processing Unit, GPU)、デジタル信号プロセッサ(Digital Signal Processor, DSP)、汎用プロセッサ等を含むが、これらに限定されるものではない。プロセッサ202は、1つ又は複数の乗算器を含み、例えば、乗算器マトリックスを含む。乗算器は、プロセッサ202において乗算演算を行う構成要素である。
バス204は、周辺機器相互接続(Peripheral Component Interconnect, PCI)バス、拡張業界標準アーキテクチャ(Extended Industry Standard Architecture, EISA)バス等であり得る。バスは、アドレスバス、データバス、制御バス等に分類することができる。表現を容易にするために、図2のバスを表すために1本の太い線のみが使用されているが、これはバスが1つしかない、又はバスの種類が1つしかないという意味ではない。
技術的解決策をさらに説明するために、図3は、本願の一実施形態による乗算器の構造の概略図である。乗算器は、Mビットの第1の値とNビットの第2の値との乗算を行うように構成され、ここで、M及びNは1より大きい整数である。図3を参照すると、乗算器は、P個のプリコーダ308、P個のエンコーダグループ302、W個のレイヤの反転コンプレッサ303、及び加算器304を含む。P個のエンコーダグループ302内の各エンコーダグループ3021は、N個のエンコーダを含み、Wは正の整数であり、Pは1より大きい整数である。従来の設計と比較して、乗算器は実装が容易であり、この乗算器について以下で詳細に説明する。
P個のプリコーダ310内の各プリコーダ3011は、第1の値のビットの一部に基づいて、グループ選択信号及びシンボル制御入力信号を生成するように構成され、それによって、P個のプリコーダ310は、それに応じてP個のグループ選択信号及びP個のシンボル制御入力信号を生成する。P個のグループ選択信号及びP個のシンボル制御入力信号は、P個のエンコーダグループと1対1で対応している。つまり、1つのグループ選択信号及び1つのシンボル制御入力信号は1つのエンコーダグループに対応する。グループ選択信号は、第1の値における隣接する2つ又は3つのビットに基づいて生成され得る。シンボル制御入力信号は、第1の値における1ビットであってもよく、或いは第1の値における隣接する2つ又は3つのビットに基づいて生成してもよい。
例えば、第1の値が、4ビットの2進数であり且つa[3:0]として示され、Pが2に等しい場合に、2つのプリコーダは、a[3:0]に基づいて、2つのグループ選択信号及び2つのシンボル制御入力信号を生成し得る。2つのグループ選択信号において、第1のグループ選択信号は、a[0]及びa[1]に基づいて生成され得、第2のグループ選択信号は、a[1]~a[3]に基づいて生成され得る。2つのシンボル制御入力信号において、第1のシンボル制御入力信号はa[1]であり得、第2のシンボル制御入力信号はa[3]であり得る。a[i]は、a[3:0]における右から左へのi番目のビットを示し、iの値の範囲は0~3である。
各エンコーダグループ3021は、非反転符号化演算子又は反転符号化演算子を使用して、エンコーダグループに対応するグループ選択信号及びシンボル制御入力信号、並びに第2の値を符号化して、1つの部分積を取得するように構成される。P個のエンコーダグループは、符号化を行ってP個の部分積を取得する。
各エンコーダグループ3021は、N個のエンコーダを含み、N個のエンコーダの各エンコーダは、第2の値における第1ビット及び第2ビットに対応し、グループ選択信号は、第1信号及び第2信号を含む。各エンコーダは、非反転符号化演算子又は反転符号化演算子を使用して、第1ビット、第2ビット、グループ選択信号、及びシンボル制御入力信号を符号化して、1つの部分積で1つの出力ビットを取得するように特に構成される。各エンコーダグループ3021のN個のエンコーダはそれぞれ符号化を行って、1つの部分積でN個の出力ビットを取得する、つまり、部分積を取得する。第1ビット及び第2ビットは、第2の値における隣接する2つのビット、又は第2の値における同じビットであり得る。以下の実施形態は、これを詳細に説明し得る。
例えば、第2の値が、3ビットの2進数であり且つb[2:0]として示され、Nが3に等しい場合に、各エンコーダグループ3021には、3つのエンコーダが含まれる。3つのエンコーダのうち、第1エンコーダはb[2:0]における隣接する2つのビットb[0]及びb[1]に対応し、第2エンコーダはb[2:0]における隣接する2つのビットb[1]及びb[2]に対応し、第3エンコーダに対応する第1ビットと第2ビットとの両方がb[2:0]におけるb[2]である。つまり、1つのビットb[2]のみが最後の第3エンコーダに第1ビットと第2ビットとの両方として入力される。b[i]は、b[2:0]における右から左へのi番目のビットを示す。
第1の値がa[3:0]であり、第2の値がb[2:0]である前述の例を例として使用する。第1の符号化グループ内の第1のエンコーダが第2の値b[2:0]における隣接する2つのビットb[0]及びb[1]に対応する場合に、対応するグループ選択信号は、a[0]及びa[1]に基づいて生成された第1のグループ選択信号(A及びBとして示される)であり、対応するシンボル制御入力信号がa[1]である場合に、第1のエンコーダは、非反転符号化演算子又は反転符号化演算子を使用して、b[0]、b[1]、A、B、及びa[1]を符号化して、第1の部分積で1つの出力ビットを取得するように特に構成され得る。
具体的には、エンコーダが非反転符号化演算子を使用する場合に、そのエンコーダは、非反転エンコーダと呼ばれ得る。エンコーダが反転符号化演算子を使用する場合に、そのエンコーダは、反転エンコーダと呼ばれ得る。以下では、非反転エンコーダ及び反転エンコーダについて個別に詳しく説明する。
非反転エンコーダは、以下の符号化演算を行うように特に構成され、その符号化演算には、第1信号と第1ビットとの両方が1である場合、又は第2信号と第2ビットとの両方が1である場合に、非反転エンコーダが取得する出力ビットは、シンボル制御入力信号の反転であること;又は、第1信号及び第1ビットの少なくとも一方が0であり、且つ第2信号及び第2ビットの少なくとも一方が0である場合に、非反転エンコーダが取得する出力ビットは、シンボル制御入力信号であること;が含まれる。
図4は、本願の一実施形態による非反転エンコーダの論理ブロック図である。論理ブロック図には、符号化ゲートユニット、反転ユニット、及びスイッチ制御ユニットが含まれている。符号化ゲートユニットの機能は次の通りである。A及びSel_Aが両方とも1である場合、又はB及びSel_Bが両方とも1である場合に、1を出力する;それ以外の場合は、0を出力する。反転ユニットの機能は、符号化ゲートユニットの出力に対して反転を行うことである。スイッチ制御ユニットの機能は、反転ユニットの出力が1である場合に、Sを出力し、反転ユニットの出力が0である場合に、/Sを出力する。図4では、Aは第1信号を表し、Bは第2信号を表し、Sel_Aは第1ビットを表し、Sel_Bは第2ビットを表し、Sはシンボル制御入力信号を表し、/Sはシンボル制御入力信号の反転を表し、OUTは出力ビットを表す。
換言すると、非反転エンコーダは、以下の表1に示される論理表に基づいて符号化を特に実行することができ、ここで、表1のxは、「0」又は「1」のいずれか1つを表し、A、B、Sel_A、Sel_B、S、及びOUTは、図4のA、B、Sel_A、Sel_B、S、及びOUTと一致している。
反転エンコーダは、以下の符号化演算を行うように特に構成され、その符号化演算には、第1信号と第1ビットとの両方が1である場合、又は第2信号と第2ビットとの両方が1である場合に、反転エンコーダが取得する出力ビットは、シンボル制御入力信号であること;又は、第1信号及び第1ビットの少なくとも一方が0であり、且つ第2信号及び第2ビットの少なくとも一方が0である場合に、反転エンコーダが取得する出力ビットは、シンボル制御入力信号の反転であること;が含まれる。
図5は、本願の一実施形態による反転エンコーダの論理ブロック図である。論理ブロック図には、符号化ゲートユニット、反転ユニット、及びスイッチ制御ユニットが含まれている。符号化ゲートユニットの機能は次の通りである。A及びSel_Aが両方とも1である場合、又はB及びSel_Bが両方とも1である場合に、1を出力する;それ以外の場合は、0を出力する。反転ユニットの機能は、符号化ゲートユニットの出力に対して反転を行うことである。スイッチ制御ユニットの機能は、反転ユニットの出力が0である場合に、Sを出力し、反転ユニットの出力が1である場合に、/Sを出力する。図5では、Aは第1信号を表し、Bは第2信号を表し、Sel_Aは第1ビットを表し、Sel_Bは第2ビットを表し、Sはシンボル制御入力信号を表し、/Sはシンボル制御入力信号の反転を表し、OUTは出力ビットを表す。
換言すると、反転エンコーダは、以下の表2に示される論理表に基づいて符号化を特に実行することができ、ここで、表2のxは、「0」又は「1」のいずれか1つを表し、A、B、Sel_A、Sel_B、S、及びOUTは、図5のA、B、Sel_A、Sel_B、S、及びOUTと一致している。
W個のレイヤの反転コンプレッサ303は、反転圧縮演算子を使用して、P個の部分積を圧縮して、2つの累積値を取得するように構成される。
具体的には、Wが1である場合に、W個のレイヤの反転コンプレッサ303は、第1レイヤの反転コンプレッサを含み、この第1レイヤの反転コンプレッサは、反転圧縮演算子を低い桁の重みから高い桁の重みまで順番に使用して、各桁の重みに対応する残りのビット数が3未満になるまで、P個の部分積のマトリックス内の各桁の重みを圧縮して、2つの行を含む第1の圧縮マトリックスを取得するように構成され、ここで、各行は1つの累積値に対応する。具体的には、Wが1より大きい整数である場合に、W個のレイヤの反転コンプレッサ303は、第1レイヤの反転コンプレッサからW番目のレイヤの反転コンプレッサまでを含む。第1レイヤの反転コンプレッサは、反転圧縮演算子を低い桁の重みから高い桁の重みまで順序に使用して、各桁の重みに対応する残りのビット数が3未満になるまで、P個の部分積のマトリックス内の各桁の重みを圧縮して、第1の圧縮マトリックスを取得するように構成される。i番目のレイヤの反転コンプレッサは、反転圧縮演算子を低い桁の重みから高い桁の重みまで順番に使用して、各桁の重みに対応する残りのビット数が3未満になるまで、(i-1)番目の圧縮マトリックス内の各桁の重みを圧縮して、i番目の圧縮マトリックスを取得するように構成され、ここで、iの値の範囲が2~Wである。W番目の圧縮マトリックスには2つの行が含まれ、各行は1つの累積値に対応する。
各レイヤの反転コンプレッサによる各桁の重みに対する圧縮は、桁の重みの3ビットに対して実行され、そのレイヤの反転コンプレッサによる圧縮によって得られる出力キャリービット及び現在の合計ビットは圧縮されない。P個の部分積のマトリックスでは、各行には1つの部分積が含まれ、各列にはP個の部分積の同じ桁の重みに対応する複数のビットが含まれ、各桁の重みに対する圧縮が桁の重みの3ビットに対して実行される。P個の部分積のマトリックスでは、各行には1つの部分積が含まれ、各列にはP個の部分積の同じ桁の重みに対応する複数のビットが含まれる。
例えば、P個のエンコーダグループが符号化を行って8つの部分積を取得し、各部分積には16ビットが含まれると仮定する。この場合に、8つの部分積のマトリックスが図6(a)に示され得、ここでPP[1]~PP[8]は8つの部分積を表し、20、21、21、...、及び232は異なる桁の重みを示す。桁の重みは、W個のレイヤの反転コンプレッサの出力結果に関するものである。10進法の1ビット、10ビット、又は100ビットと同様に、桁の重みは、出力結果のバイナリ値の1ビットを示すために使用される。例えば、W個のレイヤの反転コンプレッサの出力結果が32ビットのバイナリ値である場合に、出力結果には32桁の重みが含まれる。桁の重みとは反対に、ビットは0又は1に対応し、1つのバイナリ情報を示す。W個のレイヤの反転コンプレッサの出力結果では、1桁の重みが1ビットであると考えることができる。
理解を容易にするために、図6(a)から変換した図6(b)に示されるように、W個のレイヤの反転コンプレッサ303の各レイヤの圧縮プロセスを、例を用いて説明する。具体的には、出力結果には32桁の重みが含まれ、第1レイヤの反転コンプレッサは、3ビット毎に圧縮し、マトリックス内の2
4~2
29の各桁の重みに対応するビット数が3未満のビットを予約し、2
4~2
29以外の他の桁の重みに対応するビット数が3未満になるビットを予約するように特に構成される。図6(b)の中実(solid)の各長方形ボックスは、第1レイヤの反転コンプレッサにおける1つの反転コンプレッサを表すために使用され得る。第1レイヤの反転コンプレッサによる圧縮によって得られた第1の圧縮マトリックスが図6(c)に示される。この図では、
は、第1レイヤの反転コンプレッサによって出力された現在の出力合計ビットを示し、
は、第1レイヤの反転コンプレッサによって出力された出力キャリービットを示す。第2レイヤの反転コンプレッサは、3ビット毎に圧縮し、第1の圧縮マトリックス内の2
6~2
23及び2
26の各桁の重みに対応するビット数が3未満のビットを予約し、2
6~2
23及び2
26以外の他の桁の重みに対応するビット数が3未満のビットを予約するように特に構成される。図6(c)の長方形ボックスは、第2レイヤの反転コンプレッサにおける1つの反転コンプレッサを表すために使用され得る。第2レイヤの反転コンプレッサによる圧縮によって得られた第2の圧縮マトリックスが図6(d)に示される。図では、
は、第2レイヤの反転コンプレッサによって出力された現在の出力合計ビットを示し、
は、第2レイヤの反転コンプレッサによって出力された出力キャリービットを示している。第3レイヤの反転コンプレッサからW番目のレイヤの反転コンプレッサへの後続の特定の圧縮プロセスは、第1レイヤの反転コンプレッサ及び第2レイヤの反転コンプレッサの特定の圧縮プロセスと同様である。本願のこの実施形態では、詳細について、ここでは再び説明しない。
各桁の重みの3ビット毎に、各反転コンプレッサは、以下の圧縮を行うように特に構成される:3ビットが全て0である場合に、出力キャリービットは1であり、現在の出力合計ビットは1である;3ビットが全て1である場合に、出力キャリービットは0であり、現在の出力合計ビットは0である;3ビットのうちの1ビットが1であり、他の2ビットが0である場合に、出力キャリービットは1であり、現在の出力合計ビットは0である;又は、3ビットのうちの2ビットが1であり、他のビットが0である場合に、出力キャリービットは0であり、現在の出力合計ビットは1である。
出力キャリービットは、圧縮した現在の桁の重みの次の桁の重みを指す出力ビットであり、現在の出力合計ビットは、圧縮した現在の桁の重みの圧縮によって得られる出力ビットである。例えば、圧縮した現在の桁の重みが25であり、圧縮した現在の桁の重みの次の桁の重みが26であると仮定する。25の3ビットが全て0である場合に、1つの1は25に対する圧縮によって生成され、1つの1は26に対して生成される。
図7は、本願の一実施形態による反転コンプレッサの論理ブロック図である。論理ブロック図には、反転キャリー出力ユニット及び反転合計出力ユニットが含まれている。反転キャリー出力ユニットの機能は次の通りである。Ai、Bi、及びCiのうちの少なくとも2つが有効である場合に(1又は0が有効であり得る)、出力は無効である(1が有効である場合に、0は無効である。又は、0が有効である場合に、1は無効である);それ以外の場合に、出力は有効である。反転合計出力ユニットの機能は次の通りである。Ai、Bi、及びCiのうちの2つが有効であるか、又は全てが無効である場合に、出力は有効である;それ以外の場合に、出力は無効である。反転合計出力ユニットへのnCip1入力が有効である場合に、それは、Ai、Bi、及びCiのうちの2つが有効であるか、Ai、Bi、及びCiの全てが無効であるかを区別するために使用することができる。図7のAi、Bi、及びCiは3つの入力ビットを表し、nCip1は出力キャリービットを表し、nSiは現在の出力合計ビットを表す。換言すると、各レイヤの反転コンプレッサは、以下の表3に示される論理表に基づいて圧縮を特に実行することができ、ここで、表3のAi、Bi、及びCiは3つの入力ビットを表し、nCip1は出力キャリービットを表し、nSiは現在の出力合計ビットを表す。
さらに、乗算器は、1つ又は複数のインバータをさらに含むことができ、このインバータは、W個のレイヤの反転コンプレッサ303内の1つ又は複数の反転コンプレッサによって出力される現在の出力合計ビット及び出力キャリービットの位相を反転する、又は1つ又は複数の反転コンプレッサに入力された3ビットのうちの少なくとも1ビットの位相を反転するように構成される。
W個のレイヤの反転コンプレッサ303は、複数レイヤの反転コンプレッサを含み得、複数レイヤの反転コンプレッサの各レイヤは、少なくとも1つの反転コンプレッサを含み得る。各反転コンプレッサの出力位相は要件に基づいて設定することができ、各反転コンプレッサの出力位相は入力位相と反対であるため、各反転コンプレッサの入力位相も設定される。
反転コンプレッサの出力位相は、反転コンプレッサによって出力される現在の出力合計ビット及び出力キャリービットの位相、並びに現在の出力合計ビット及び出力キャリービットの位相が、同じである、つまり、両方とも正又は負であり得ることに留意されたい。反転コンプレッサの入力位相は、反転コンプレッサに入力される3ビットの構成された位相であり得、そして3ビットの構成された位相は同じである、すなわち、全て正又は負である。
W個のレイヤの反転コンプレッサ303内の1つ又は複数の反転コンプレッサの出力位相が構成された出力位相と異なる場合に、1つ又は複数のインバータは、1つ又は複数の反転コンプレッサによって出力される現在の出力合計ビット及び出力キャリービットの位相を反転するように構成され、それによって、位相が構成された出力位相と一致する。同様に、1つ又は複数の反転コンプレッサに入力される3ビットのうちの少なくとも1ビットの位相が構成された入力位相と異なる場合に、1つ又は複数のインバータは、1つ又は複数の反転コンプレッサに入力される3ビットのうちの少なくとも1ビットの位相を反転するように構成され、それによって、位相が構成された入力位相と一致する。
可能な実施態様において、各レイヤの反転コンプレッサに含まれる少なくとも1つの反転コンプレッサの出力位相は、以下の方法で設定され得る:最後のレイヤの反転コンプレッサの出力位相が正に設定され、第2から最後のレイヤの反転コンプレッサの出力位相が負に設定され、第3から最後のレイヤの反転コンプレッサの出力位相が正に設定され、...等、第1レイヤの出力位相が設定されるまで続く。本明細書の第1レイヤの反転コンプレッサは、各桁の重みに対応する複数のビットを上から下の順序で圧縮する最上位レイヤの反転コンプレッサを指し得、第2レイヤの反転コンプレッサは、次の上位レイヤの反転コンプレッサを指し得、...等である。例えば、W個のレイヤの反転コンプレッサ303が4つのレイヤの反転コンプレッサを含む場合に、出力位相は、以下の方法で設定され得る。第4レイヤの反転コンプレッサの出力位相が正に設定され、第3レイヤの反転コンプレッサの出力位相が負に設定され、第2レイヤの反転コンプレッサの出力位相が正に設定され、第1レイヤの反転コンプレッサの出力位相が負に設定される。
オプションで、反転コンプレッサの出力位相が構成された出力位相と一致しない場合、又は反転コンプレッサの入力位相が構成された入力位相と一致しない場合に、少なくとも3つのインバータが、構成された出力位相及び構成された入力位相の要件を満たすために反転を行う必要があり、反転コンプレッサの出力位相の設定は、必要なインバータの数を減らすために部分的に調整され得る。例えば、反転コンプレッサの設定された出力位相が正である場合(この場合に、反転コンプレッサの入力位相は負である)であって、反転コンプレッサの出力位相が正である場合に、反転コンプレッサに入力される3ビットの位相も正であり、反転コンプレッサは、3ビットの位相を反転するために3つのインバータを必要とし、これにより、構成された出力位相及び構成された入力位相の要件を満たすことができる。この場合に、反転コンプレッサの出力位相を負にリセットすることにより(この場合に、反転コンプレッサの入力位相は正である)、反転コンプレッサは2つの出力ビット(つまり、現在の出力合計ビット及び出力キャリービット)の出力位相を反転するために2つのインバータのみを必要とし、これにより、構成された出力位相及び構成された入力位相の要件を満たすことができる。
さらに、P個のエンコーダグループ302内の少なくとも1つのエンコーダによって使用される符号化演算子の位相は、W個のレイヤの反転コンプレッサ303内の少なくとも1つのレイヤの反転コンプレッサによって出力される現在の出力合計ビット又は出力キャリービットの位相に関連している。オプションで、少なくとも1つのエンコーダのそれぞれによって使用される符号化演算子の位相は、そのエンコーダに接続された反転コンプレッサの入力位相と同じになるように設定される。各エンコーダで使用される符号化演算子の位相は、正又は負の場合がある。エンコーダが使用する符号化演算子の位相が正である場合(つまり、非反転符号化演算子が使用される場合)に、エンコーダは非反転エンコーダであり得る。エンコーダが使用する符号化演算子の位相が負である場合(つまり、反転符号化演算子が使用される場合)に、エンコーダは反転エンコーダであり得る。
加算器304は、2つの累積値を受け取り、2つの累積値を合計(sum up)して積(product)を得るように構成される。W個のレイヤの反転コンプレッサ303がP個の部分積を圧縮して2つの累積値を取得した後に、W個のレイヤの反転コンプレッサ303は2つの累積値を加算器304に送信することができる。2つの累積値を受信すると、加算器304は、2つの累積値を合計して、第1の値と第2の値との積を取得する。
理解を容易にするために、以下では、第1の値がa[10:0]であり、第2の値がb[12:0]である例を使用して、本願における乗算器を説明する。図8A~図8Fに示されるように、乗算器は、6つのプリコーダ、6つのエンコーダグループ、及び3つのレイヤの反転コンプレッサを含み得る。
具体的には、第1のプリコーダは、a[0]及びa[1]に基づいて、グループ選択信号S0及びS1と、シンボル制御入力信号a[1]とを生成するように構成される。第2のプリコーダは、a[1]、a[2]、及びa[3]に基づいて、グループ選択信号S2及びS3と、シンボル制御入力信号a[3]とを生成するように構成される。第3のプリコーダは、a[3]、a[4]、及びa[5]に基づいて、グループ選択信号S4及びS5と、シンボル制御入力信号a[5]とを生成するように構成される。第4のプリコーダは、a[5]、a[6]、及びa[7]に基づいて、グループ選択信号S6及びS7と、シンボル制御入力信号a[7]とを生成するように構成される。第5のプリコーダは、a[7]、a[8]、及びa[9]に基づいて、グループ選択信号S8及びS9と、シンボル制御入力信号a[9]とを生成するように構成される。第6のプリコーダは、a[9]及びa[10]に基づいて、グループ選択信号S10と、シンボル制御入力信号S_11とを生成するように構成される。対応して、第1のエンコーダグループは、b[12:0]、S0、S1、及びa[1]を符号化して、第1の部分積PP[1]を取得するように構成される。第2のエンコーダグループは、b[12:0]、S2、S3、及びa[3]を符号化して、第2の部分積PP[2]を取得するように構成される。第3のエンコーダグループは、b[12:0]、S4、S5、及びa[5]を符号化して、第3の部分積PP[3]を取得するように構成される。第4のエンコーダグループは、b[12:0]、S6、S7、及びa[7]を符号化して、第4の部分積PP[4]を取得するように構成される。第5のエンコーダグループは、b[12:0]、S8、S9、及びa[9]を符号化して、第5の部分積PP[5]を取得するように構成される。第6のエンコーダグループは、b[12:0]、S10、及びS_11を符号化して、第6の部分積PP[6]を取得するように構成される。各エンコーダグループの各エンコーダは、b[12:0]の1ビット又は2ビット、対応するグループ選択信号、及び対応するシンボル制御入力信号を符号化するように個別に構成される。詳細については、図8A~図8Fを参照されたい。最後に、6つの部分積PP[1]~PP[6]に対応するマトリックスが図9に示され得る。乗算器内のW個のレイヤの反転コンプレッサ303の関連する説明によれば、図9に示されるマトリックスは、3つのレイヤの反転コンプレッサによって圧縮され得る。詳細な圧縮プロセスは、図6(a)~図6(d)の関連する説明と同様であり、本願のこの実施形態では、詳細について、ここでは再び説明しない。
本願のこの実施形態で提供される乗算器において、P個のプリコーダは、異なる構造を有するプリコーダを含み得る。例えば、図8A~図8Fでは、第1のプリコーダは、NOTゲート及びANDゲートを含み、第2のプリコーダ~第5のプリコーダはそれぞれ、XORゲート、XNORゲート、及びNORゲートを含み、第6のプリコーダは、XORゲート及びANDゲートを含む。さらに、本願のこの実施形態では、第1のエンコーダは、同じエンコーダグループ内の別のエンコーダの構造とは異なる構造を有し得、異なるグループ内のエンコーダの構造もまた異なり得る。例えば、図8A~図8Eの第1のグループ~第5のエンコーダグループにおいて、第1のエンコーダは、ANDゲート及びXORゲートを含み、第2エンコーダ~第13のエンコーダはそれぞれ、非反転エンコーダ又は反転エンコーダである。図8Fの第6のエンコーダグループ内の各エンコーダは、ANDゲート及びXNORゲートを含む。
図8A~図8FのPP[1]_i(iの値は1~14の範囲である)は第1の部分積PP[1]のi番目のビットを表し、Aは第1信号を表し、Bは第2信号を表し、Sel_Aは第1ビットを表し、Sel_Bは第2ビットを表し、Sはシンボル制御入力信号を表し、OUTは出力ビットを表すことに留意されたい。
図10は、本願の一実施形態による非反転符号化オペレータ回路の構造の概略図である。非反転符号化オペレータ回路は、非反転エンコーダとも呼ばれ得る。非反転エンコーダには、第1トランジスタM1、第2トランジスタM2、第3トランジスタM3、第4トランジスタM4、第5トランジスタM5、第6トランジスタM6、第7トランジスタM7、第8トランジスタM8、第9トランジスタM9、第10トランジスタM10、第11トランジスタM11、第12トランジスタM12、第13トランジスタM13、第14トランジスタM14、及び第15トランジスタM15が含まれる。
第1トランジスタM1及び第2トランジスタM2は、電源端子と第1ノード(1)(左記の(1)は、「丸1」を表す、以下同様)との間で並列に結合され、第3トランジスタM3及び第4トランジスタM4は、第1ノード(1)と第2ノード(2)(左記の(2)は「丸2」を表す、以下同様)との間で並列に結合され、第5トランジスタM5及び第7トランジスタM7は、第2ノード(2)と接地端子との間に直列に結合され、そして第6トランジスタM6及び第8トランジスタM8は、第2ノード(2)と接地端子との間に直列に結合される。第3トランジスタM3及び第5トランジスタM5の制御端子は、第1入力Aを受け取るように構成され、第1トランジスタM1及び第6トランジスタM6の制御端子は、第2入力Sel_Aを受け取るように構成され、第4トランジスタM4及び第7トランジスタM7の制御端子は、第3入力Bを受け取るように構成され、そして第2トランジスタM2及び第8トランジスタM8の制御端子は、第4入力Sel_Bを受け取るように構成される。
第9トランジスタM9は、第5入力Sの反転/Sと出力端子OUTとの間に結合され、第9トランジスタM9の制御端子は第2ノード(2)に結合され、第2ノード(2)の信号は/Yである。第10トランジスタM10は、第2ノード(2)と出力端子OUTとの間に結合され、第10トランジスタM10の制御端子は、第5入力Sの反転/Sに結合される。第11トランジスタM11及び第13トランジスタM13は、出力端子OUTと接地端子との間に直列に結合される。第11トランジスタM11の制御端子は第2ノード(2)に結合される。第13トランジスタM13の制御端子は、第5入力Sの反転/Sを受け取るように構成される。第12トランジスタM12は、出力端子OUTと第2ノード(2)との間に結合され、第12トランジスタM12の制御端子は、第5入力Sを受け取るように構成される。第14トランジスタM14及び第15トランジスタM15は、電源端子と接地端子との間に直列に結合され、第14トランジスタM14と第15トランジスタM15との間の直列結合ノードは、第5入力Sの反転/Sに結合される。第14トランジスタM14及び第15トランジスタM15の制御端子は、第5入力Sを受け取るように構成される。
本願のこの実施形態では、第1入力A~第5入力Sはそれぞれ、乗算器の前述の実施形態における非反転エンコーダの関連する説明における第1信号、第1ビット、第2信号、第2ビット、及びシンボル制御入力信号であり得る。
オプションで、第1トランジスタM1、第2トランジスタM2、第3トランジスタM3、第4トランジスタM4、第9トランジスタM9、第10トランジスタM10、及び第14トランジスタM14は、PMOSトランジスタである。第5トランジスタM5、第6トランジスタM6、第7トランジスタM7、第8トランジスタM8、第11トランジスタM11、第12トランジスタM12、第13トランジスタM13、及び第15トランジスタM15は、NMOSトランジスタである。対応して、制御端子は、対応するPMOSトランジスタ又はNMOSトランジスタのゲートを特に指す場合がある。
前述の例における第1トランジスタM1~第15トランジスタM15は、MOSトランジスタであり得るか、又はバイポーラ接合トランジスタによって置き換えられ得ることに留意されたい。図10に示されるトランジスタの種類は、単なる例であり、本願の実施形態に対する制限を構成するものではない。
図11は、本願の一実施形態による反転符号化オペレータ回路の構造の概略図である。反転符号化オペレータ回路は、反転エンコーダとも呼ばれ得る。反転エンコーダには、第1トランジスタM1、第2トランジスタM2、第3トランジスタM3、第4トランジスタM4、第5トランジスタM5、第6トランジスタM6、第7トランジスタM7、第8トランジスタM8、第9トランジスタM9、第10トランジスタM10、第11トランジスタM11、第12トランジスタM12、第13トランジスタM13、第14トランジスタM14、及び第15トランジスタM15が含まれる。
第1トランジスタM1及び第2トランジスタM2は、電源端子と第1ノード(1)との間で並列に結合され、第3トランジスタM3及び第4トランジスタM4は、第1ノード(1)と第2ノード(2)との間で並列に結合され、第5トランジスタM5及び第7トランジスタM7は、第2ノード(2)と接地端子との間に直列に結合され、そして第6トランジスタM6及び第8トランジスタM8は、第2ノード(2)と接地端子との間に直列に結合される。第3トランジスタM3及び第5トランジスタM5の制御端子は、第1入力Aを受け取るように構成され、第1トランジスタM1及び第6トランジスタM6の制御端子は、第2入力Sel_Aを受け取るように構成され、第4トランジスタM4及び第7トランジスタM7の制御端子は、第3入力Bを受け取るように構成され、そして第2トランジスタM2及び第8トランジスタM8の制御端子は、第4入力Sel_Bを受け取るように構成される。
第9トランジスタM9及び第10トランジスタM10は、電源端子と出力端子OUTとの間に直列に結合され、第9トランジスタM9の制御端子は第5入力Sの反転/Sに結合され、第10トランジスタM10の制御端子は第2ノード(2)に結合され、そして第2ノード(2)の信号は/Yである。第11トランジスタM11は、第2ノード(2)と出力端子OUTとの間に結合され、第11トランジスタM11の制御端子は第5入力Sに結合される。第12トランジスタM12は、出力端子OUTと第5入力Sの反転/Sとの間に結合され、第12トランジスタM12の制御端子は、第2ノード(2)に結合される。第13トランジスタM13は、出力端子OUTと第2ノード(2)の間に結合され、第13トランジスタM13の制御端子は、第5入力Sの反転/Sに結合される。第14トランジスタM14及び第15トランジスタM15は、電源端子と接地端子の間で直列に結合され、第14トランジスタM14と第15トランジスタM15との間の直列結合ノードは、第5入力Sの反転/Sに結合される。第14トランジスタM14及び第15トランジスタM15の制御端子は、第5入力Sを受け取るように構成される。
本願のこの実施形態では、第1入力A~第5入力Sはそれぞれ、乗算器の前述の実施形態における反転エンコーダの関連する説明における第1信号、第1ビット、第2信号、第2ビット、及びシンボル制御入力信号であり得る。
オプションで、第1トランジスタM1、第2トランジスタM2、第3トランジスタM3、第4トランジスタM4、第9トランジスタM9、第10トランジスタM10、第11トランジスタM11、及び第14トランジスタM14は、PMOSトランジスタである。第5トランジスタM5、第6トランジスタM6、第7トランジスタM7、第8トランジスタM8、第12トランジスタM12、第13トランジスタM13、及び第15トランジスタM15は、NMOSトランジスタである。対応して、制御端子は、対応するPMOSトランジスタ又はNMOSトランジスタのゲートを特に指す場合がある。
前述の例における第1トランジスタM1~第15トランジスタM15は、MOSトランジスタであり得るか、又はバイポーラ接合トランジスタによって置き換えられ得ることに留意されたい。図11に示されるトランジスタの種類は、単なる例であり、本願の実施形態に対する制限を構成するものではない。
図12は、本願の一実施形態による反転圧縮オペレータ回路の構造の概略図である。反転圧縮オペレータ回路は、反転コンプレッサとも呼ばれ得る。反転コンプレッサには、第1トランジスタM1、第2トランジスタM2、第3トランジスタM3、第4トランジスタM4、第5トランジスタM5、第6トランジスタM6、第7トランジスタM7、第8トランジスタM8、第9トランジスタM9、第10トランジスタM10、第11トランジスタM11、第12トランジスタM12、第13トランジスタM13、第14トランジスタM14、第15トランジスタM15、第16トランジスタM16、第17トランジスタM17、第18トランジスタM18、第19トランジスタM19、第20トランジスタM20、第21トランジスタM21、及び第22トランジスタM22が含まれる。
第1トランジスタM1及び第2トランジスタM2は、電源端子と第1ノード(1)との間で並列に結合され、第3トランジスタM3は、第1ノード(1)と第1出力端子nCip1との間に結合され、第4トランジスタM4は、第1出力端子nCip1と第2ノード(2)との間に結合される。第5トランジスタM5及び第6トランジスタM6は、第2ノード(2)と接地端子との間で並列に結合され、第7トランジスタM7は、電源端子と第3ノード(3)(左記は、「丸3」を表す、以下同様)との間に結合され、第8トランジスタM8は、第3ノード(3)と第1出力端子nCip1との間に結合され、そして第9トランジスタM9は、第1出力端子nCip1と第4ノード(4)(左記は、「丸4」を表す、以下同様)との間に結合される。第10トランジスタM10は第4ノード(4)と接地端子との間に結合され、第11トランジスタM11及び第12トランジスタM12は、第3ノード(3)と第2出力端子nSiとの間に直列に結合され、そして第13トランジスタM13及び第14トランジスタM14は、第2出力端子nSiと第4ノード(4)との間に直列に結合される。第15トランジスタM15、第16トランジスタM16、及び第17トランジスタM17は、電源端子と第5ノード(5)(左記は、「丸5」を表す、以下同様)との間で並列に結合され、第18トランジスタM18は、第5ノード(5)と第2出力端子nSiとの間に結合され、第19トランジスタM19は、第2出力端子nSiと第6のノード(6)(左記は、「丸6」を表す、以下同様)との間に結合され、そして第20トランジスタM20、第21トランジスタM21、及び第22トランジスタM22は、第6のノード(6)及び接地端子との間で並列に結合される。
第3トランジスタM3、第4トランジスタM4、第12トランジスタM12、第13トランジスタM13、第15トランジスタM15、及び第20トランジスタM20の制御端子は、第1入力Aiを受け取るように構成される。第1トランジスタM1、第5トランジスタM5、第7トランジスタM7、第10トランジスタM10、第16トランジスタM16、及び第21トランジスタM21の制御端子は、第2入力Biを受け取るように構成される。第2トランジスタM2、第6トランジスタM6、第8トランジスタM8、第9トランジスタM9、第11トランジスタM11、第14トランジスタM14、第17トランジスタM17、及び第22トランジスタM22の制御端子は、第3の入力Ciを受け取るように構成される。第18トランジスタM18及び第19トランジスタM19の制御端子は、第1出力端子nCip1に結合される。
本願のこの実施形態では、第1入力Ai、第2入力Bi、及び第3入力Ciは、乗算器の前述の実施形態における反転コンプレッサの関連する説明における3ビットであり得る。第1出力端子nCip1は、反転コンプレッサの出力キャリービットを出力するように構成され、第2出力端子nSiは、反転コンプレッサの現在の出力合計ビットを出力するように構成される。
オプションで、第1トランジスタM1、第2トランジスタM2、第3トランジスタM3、第7トランジスタM7、第8トランジスタM8、第11トランジスタM11、第12トランジスタM12、第15トランジスタM15、第16トランジスタM16、第17トランジスタM17、及び第18トランジスタM18は、PMOSトランジスタである。第4トランジスタM4、第5トランジスタM5、第6トランジスタM6、第9トランジスタM9、第10トランジスタM10、第13トランジスタM13、第14トランジスタM14、第19トランジスタM19、第20トランジスタM20、第21トランジスタM21、及び第22トランジスタM22は、NMOSトランジスタである。対応して、制御端子は、対応するPMOSトランジスタ又はNMOSトランジスタのゲートを特に指す場合がある。
前述の例における第1トランジスタM1~第22トランジスタM22は、MOSトランジスタであり得るか、又はバイポーラ接合トランジスタによって置き換えられ得ることに留意されたい。図12に示されるトランジスタの種類は、単なる例であり、本願の実施形態に対する制限を構成するものではない。
本願のこの実施形態では、上記で提供した非反転エンコーダ、反転エンコーダ、及び反転コンプレッサを使用する乗算器を、標準的なエンコーダ及び標準的な加算器を使用する既存の乗算器と比較する。詳細を表4及び表5に示す。本願の一実施形態では、この実施形態は、以下の特定のパラメータ値に限定されない。
表4から、標準的な各エンコーダは、22個のトランジスタを使用し、0.2736の面積を占有し、面積比率は1.18であり、各非反転エンコーダ又は反転エンコーダは、15個のトランジスタを使用し、0.23256の面積を占有し、面積比率は1であることが分かり得る。標準的な各加算器は28個のトランジスタを使用し、0.2736の面積を占有し、面積比率は1.10であり、各反転コンプレッサは、24個のトランジスタを使用し、0.24816の面積を占有し、面積比率は1である。従って、本願の実施形態で提供される乗算器の面積は、より小さい。
表5から、標準的なエンコーダは、1ビットのデータ毎に符号化するために4回トグルし、静的電力消費は0.44522であり、静的電力消費比率は1.18であり、動的電力消費比率は1.09であることが分かり得る。非反転エンコーダ又は反転エンコーダは、1ビットのデータ毎に符号化するために3回トグルし、静的消費電力は0.4084であり、静的消費電力の比率と動的消費電力の比率は両方とも1である。標準的な加算器は、1ビットのデータ毎に圧縮するために4回トグルし、静的消費電力は0.57685であり、静的消費電力は1.10であり、動的消費電力は1.80である。反転コンプレッサは、1ビットのデータ毎に圧縮するために2回トグルし、静的電力消費は0.32122であり、静的電力消費比率及び動的電力消費比率は両方とも1である。従って、本願の実施形態で提供される乗算器の電力消費は、より低い。
本願の実施形態で提供される乗算器のエンコーダは、非反転符号化演算子又は反転符号化演算子を使用して符号化を行う。すなわち、乗算器は、非反転エンコーダ又は反転エンコーダを使用して符号化を行う。また、コンプレッサは、反転コンプレッサを使用して圧縮を行う。乗算器の実施態様の解決策は簡素である。例えば、乗算器内のMOSトランジスタの数を減らして、乗算器の面積を減らすことができる。さらに、乗算器が1ビットのデータ毎に符号化又は圧縮する場合に、対応するエンコーダ又はコンプレッサのトグル時間の量が少ないため、乗算器の消費電力は低くなる。
最後に、前述の説明は、本願の実施形態の単なる特定の実施態様であり、本願の保護範囲を制限することを意図するものではないことに留意されたい。本願で開示する技術的範囲内の変更又は交換は、本願の保護範囲内に含まれるものとする。従って、本願の保護範囲は、特許請求の範囲の保護範囲に従うものとする。
本願は、電子技術の分野に関連し、特に、乗算器及びオペレータ(operator:演算子、演算処理)回路に関連する。
人工知能(AI)技術の継続的な開発及び成熟に伴い、AI技術は、サーバ及び端末等の通信装置において徐々に普及している。AI技術は、通信装置内の中央処理装置(CPU)、ニューラルネットワーク処理装置(NPU)、グラフィックス処理装置(GPU)、又はデジタル信号プロセッサ(DSP)等のプロセッサの計算能力に対して高い要件を与える。プロセッサのコアコンピューティングユニットとして、乗算器は、益々重要な役割を果たす。
既存の乗算器のアーキテクチャは、標準的なエンコーダ及び標準的な加算器に基づいて設計される。図1に示されるように、特定の設計実施態様は、3つのステップ:(1)Radix(基数)-4ブースのアルゴリズムを使用して、Radix-4ブースエンコーダで第1の値及び第2の値を符号化して、部分積を取得する;(2)ウォレス(Wallace)ツリーを使用して部分積を圧縮する;(3)圧縮によって得られた2つの部分積を合計して、乗算演算の結果を取得する;に要約され得る。図1は、第1の値と第2の値との両方が16ビットの2進数であり、乗算演算の結果が32ビットの2進数である例を示しており、ここで、a[15:0]は第1の値を示し、b[15:0]は第2の値を示し、y[31:0]は乗算演算の結果を示す。しかしながら、Radix-4ブースアルゴリズム及びウォレスツリーに基づいて実装された前述の乗算器では、多くの標準的なエンコーダ及び標準的な加算器が使用される。標準的なエンコーダ及び標準的な加算器には、金属酸化物半導体(MOS)トランジスタが大数あり、トランジスタの面積が大きい。その結果、乗算器の面積が大きくなる。つまり、既存の乗算器の設計実施多様は複雑である。従って、実装がより容易な乗算器を設計することが期待される。
本願は、乗算器の実装の難しさを軽減するための、乗算器及びオペレータ回路を提供する。前述の目的を達成するために、本願では次の技術的解決策が使用される。
第1の態様によれば、乗算器が提供され、この乗算器は、Mビットの第1の値とNビットの第2の値との乗算を行うように構成され、ここで、M及びNは1より大きい整数である。乗算器には、P個のエンコーダグループ及びW個のレイヤの反転コンプレッサが含まれる。P個のエンコーダグループの各グループにはN個のエンコーダが含まれ、Wは正の整数であり、Pは1より大きい整数である。各エンコーダグループは非反転符号化演算子又は反転符号化演算子を使用して、各エンコーダグループに対応するグループ選択信号及びシンボル制御入力信号と、第2の値のビットの一部とを符号化して、1つの部分積を取得するように構成される。グループ選択信号及びシンボル制御入力信号は、第1の値のビットの一部に基づいて生成され、P個のエンコーダグループは符号化を行ってP個の部分積を取得する。W個のレイヤの反転コンプレッサは、反転圧縮演算子を使用してP個の部分積を圧縮して、2つの累積値を取得するように構成され、ここで、2つの累積値の合計は、第1の値と第2の値との積である。前述の技術的解決策では、P個のエンコーダグループは、非反転符号化演算子又は反転符号化演算子を使用して符号化を行い、W個のレイヤの反転コンプレッサは、反転圧縮演算子を使用して圧縮を行う。この実施態様の解決策は簡素である。例えば、この解決策には、面積が小さく、消費電力が少ないという利点があるため、乗算器の面積が小さく、消費電力が少なくなる。
第1の態様の可能な実施態様において、N個のエンコーダの各エンコーダは、第2の値の第1ビット及び第2ビットに対応し、グループ選択信号は、第1信号及び第2信号を含む。各エンコーダは、非反転符号化演算子又は反転符号化演算子を使用して、第1ビット、第2ビット、グループ選択信号、及びシンボル制御入力信号を符号化して、1つの部分積で1つの出力ビットを取得するように特に構成される。第1ビット及び第2ビットは、第2の値における隣接する2つのビット、又は第2の値における同じビットであり得る。前述の可能な実施態様において、エンコーダの符号化方法が提供され、符号化方法の実施態様の解決策は簡素である。例えば、エンコーダの面積を減らすことができる。
第1の態様の可能な実施態様において、エンコーダが非反転符号化演算子を使用する場合に、エンコーダは、非反転エンコーダであり、且つ以下の符号化演算を行うように特に構成され、その符号化演算には、第1信号と第1ビットとの両方が1であるか、又は第2信号と第2ビットとの両方が1である場合に、エンコーダが取得する出力ビットは、シンボル制御入力信号の反転であること;又は、第1信号及び第1ビットの少なくとも一方が0であり、且つ第2信号及び第2ビットの少なくとも一方が0である場合に、エンコーダが取得する出力ビットは、シンボル制御入力信号であること;が含まれる。前述の可能な実施態様において、非反転エンコーダが提供され、非反転エンコーダの実施態様の解決策は、簡素であり、例えば、面積が小さく、消費電力が少ない。
第1の態様の可能な実施態様において、エンコーダが反転符号化演算子を使用する場合に、エンコーダは、反転エンコーダであり、且つ以下の符号化演算を行うように特に構成され、その符号化演算には、第1信号と第1ビットとの両方が1である場合、又は、第2信号と第2ビットとの両方が1である場合に、エンコーダが取得する出力ビットは、シンボル制御入力信号であること;又は、第1信号及び第1ビットの少なくとも一方が0であり、且つ第2信号及び第2ビットの少なくとも一方が0である場合に、エンコーダが取得する出力ビットは、シンボル制御入力信号の反転であること;が含まれる。前述の可能な実施態様において、反転エンコーダが提供され、反転エンコーダの実施態様の解決策は、簡素であり、例えば、面積が小さく、消費電力が少ない。
第1の態様の可能な実施態様において、Wは1であり、W個のレイヤの反転コンプレッサは、第1レイヤの反転コンプレッサを含む。第1レイヤの反転コンプレッサは、反転圧縮演算子を低い桁の重みから高い桁の重みまで順序に使用して、各桁の重みに対応する残りのビット数が3未満になるまで、P個の部分積のマトリックス内の各桁の重みを圧縮して、第1の圧縮マトリックスを取得するように構成される。第1の圧縮マトリックスには2つの行が含まれ、各行は1つの累積値に対応する。各桁の重みに対する圧縮は、3ビット毎に桁の重みに対して実行される。そして、P個の部分積のマトリックスでは、各行には1つの部分積が含まれ、各列には、P個の部分積の同じ桁の重み(same digit bit)に対応する複数のビットが含まれる。前述の可能な実施態様において、提供する反転コンプレッサは、高い圧縮効率を有する。
第1の態様の可能な実施態様において、Wは1より大きい整数であり、W個のレイヤの反転コンプレッサには、第1レイヤの反転コンプレッサ~W番目のレイヤの反転コンプレッサまでが含まれる。第1レイヤの反転コンプレッサは、反転圧縮演算子を低い桁の重みから高い桁の重みまで順序に使用して、各桁の重みに対応する残りのビット数が3未満になるまで、P個の部分積のマトリックス内の各桁の重みを圧縮して、第1の圧縮マトリックスを取得するように構成される。i番目のレイヤの反転コンプレッサは、反転圧縮演算子を低い桁の重みから高い桁の重みまで順番に使用して、各桁の重みに対応する残りのビット数が3未満になるまで、(i-1)番目の圧縮マトリックス内の各桁の重みを圧縮して、i番目の圧縮マトリックスを取得するように構成され、ここで、iの値の範囲が2~Wである。W番目の圧縮マトリックスには2つの行が含まれ、各行は1つの累積値に対応する。各レイヤの反転コンプレッサによる各桁の重みに対する圧縮は、桁の重みの3ビットに対して実行される。P個の部分積のマトリックスでは、各行には1つの部分積が含まれ、各列には、P個の部分積の同じ桁の重みに対応する複数のビットが含まれる。前述の可能な実施態様において、提供するW個のレイヤの反転コンプレッサは、高い圧縮効率を有する。
第1の態様の可能な実施態様において、各桁の重みの3ビット毎に、各反転コンプレッサは、以下の圧縮を行うように特に構成され、その圧縮には、3ビットが全て0である場合に、出力キャリービットは1であり、現在の出力合計ビットは1であること;又は、3ビットが全て1である場合に、出力キャリービットは0であり、現在の出力合計ビットは0であること;又は、3ビットのうちの1ビットが1であり、他の2ビットが0である場合に、出力キャリービットは1であり、現在の出力合計ビットは0であること;又は、3ビットのうちの2ビットが1であり、他のビットが0である場合に、出力キャリービットは0であり、現在の出力合計ビットは1であること;が含まれる。前述の可能な実施態様は、反転コンプレッサの簡素で効果的な圧縮方法を提供する。
第1の態様の可能な実施態様において、エンコーダによって使用される同じ桁の重みに対応する符号化演算子の位相(phase)は、反転コンプレッサによって出力される現在の出力合計ビット又は出力キャリービットの位相に関連する。同じ桁の重みに対応するエンコーダは、同じ桁の重みに対応する出力ビットを取得するために符号化を行うエンコーダであり、同じ桁の重みに対応する反転コンプレッサは、同じ桁の重みの3ビットを圧縮する反転コンプレッサである。前述の可能な実施態様は、エンコーダによって使用される符号化演算子の位相を決定するための高速で効果的な方法を提供する。
第1の態様の可能な実施態様において、乗算器は、1つ又は複数のインバータをさらに含み、このインバータは、W個のレイヤの反転コンプレッサ内の1つ又は複数の反転コンプレッサによって出力される現在の出力合計ビット及び出力キャリービットの位相を反転するか、或いは1つ又は複数の反転コンプレッサに入力された3ビットのうちの少なくとも1ビットの位相を反転するように構成される。前述の可能な実施態様は、圧縮結果の精度を保証し、W個のレイヤの反転コンプレッサの圧縮効率を向上させることができる。
第1の態様の可能な実施態様において、乗算器は、プリコーダをさらに含み、このプリコーダは、第1の値を受け取り、第1の値のビットの一部に基づいてグループ選択信号及びシンボル制御入力信号を生成するように構成される。
第1の態様の可能な実施態様において、乗算器は、加算器をさらに含み、この加算器は、2つの累積値を受け取り、2つの累積値を合計(sum up)して積(product)を得るように構成される。
第2の態様によれば、オペレータ回路が提供され、このオペレータ回路には、第1トランジスタ、第2トランジスタ、第3トランジスタ、第4トランジスタ、第5トランジスタ、第6トランジスタ、第7トランジスタ、第8トランジスタ、第9トランジスタ、第10トランジスタ、第11トランジスタ、第12トランジスタ、第13トランジスタ、第14トランジスタ、及び第15トランジスタが含まれる。第1トランジスタ及び第2トランジスタは、電源端子と第1ノードとの間で並列に結合され、第3トランジスタ及び第4トランジスタは、第1ノードと第2ノードとの間で並列に結合され、第5トランジスタ及び第7トランジスタは、第2ノードと接地端子との間に直列に結合され、そして第6トランジスタ及び第8トランジスタは、第2ノードと接地端子との間に直列に結合される。第3トランジスタ及び第5トランジスタの制御端子は、第1入力を受け取るように構成され、第1トランジスタ及び第6トランジスタの制御端子は、第2入力を受け取るように構成され、第4トランジスタ及び第7トランジスタの制御端子は、第3入力を受け取るように構成され、そして第2トランジスタ及び第8トランジスタの制御端子は、第4入力を受け取るように構成される。第9トランジスタは、第5入力の反転と出力端子との間に結合され、第9トランジスタの制御端子は、第2ノードに結合される。第10トランジスタは、第2ノードと出力端子との間に結合され、第10トランジスタの制御端子は、第5入力の反転に結合される。第11トランジスタ及び第13トランジスタは、出力端子と接地端子の間に直列に結合される。第11トランジスタの制御端子は、第2ノードに結合される。第13トランジスタの制御端子は、第5入力の反転を受け取るように構成される。第12トランジスタは、出力端子と第2ノードとの間に結合され、第12トランジスタの制御端子は、第5入力を受け取るように構成される。第14トランジスタ及び第15トランジスタは、電源端子と接地端子との間に直列に結合され、第14トランジスタと第15トランジスタとの間の直列結合ノードは、第5入力の反転に結合される。第14トランジスタ及び第15トランジスタの制御端子は、第5入力を受け取るように構成される。前述の技術的解決策では、非反転符号化オペレータ回路が提供される。非反転符号化オペレータ回路は、トランジスタの数が少なく、占有面積が小さく、実装が簡素である。従って、オペレータ回路を乗算器に適用すると、乗算器の面積を減らすことができる。
第2の態様の可能な実施態様において、第1トランジスタ、第2トランジスタ、第3トランジスタ、第4トランジスタ、第9トランジスタ、第10トランジスタ、及び第14トランジスタは、P型MOS(PMOS)トランジスタである。第5トランジスタ、第6トランジスタ、第7トランジスタ、第8トランジスタ、第11トランジスタ、第12トランジスタ、第13トランジスタ、及び第15トランジスタは、N型MOS(NMOS)トランジスタである。前述の可能な実施態様において、提供するオペレータ回路がデータを符号化するときに、トランジスタのトグルレートは小さい。従って、オペレータ回路を乗算器に適用すると、乗算器の消費電力を低減することができる。
第3の態様によれば、オペレータ回路が提供され、このオペレータ回路には、第1トランジスタ、第2トランジスタ、第3トランジスタ、第4トランジスタ、第5トランジスタ、第6トランジスタ、第7トランジスタ、第8トランジスタ、第9トランジスタ、第10トランジスタ、第11トランジスタ、第12トランジスタ、第13トランジスタ、第14トランジスタ、及び第15トランジスタが含まれる。第1トランジスタ及び第2トランジスタは、電源端子と第1ノードとの間で並列に結合され、第3トランジスタ及び第4トランジスタは、第1ノードと第2ノードとの間で並列に結合され、第5トランジスタ及び第7トランジスタは、第2ノードと接地端子との間に直列に結合され、そして第6トランジスタ及び第8トランジスタは、第2ノードと接地端子との間に直列に結合される。第3トランジスタ及び第5トランジスタの制御端子は、第1入力を受け取るように構成され、第1トランジスタ及び第6トランジスタの制御端子は、第2入力を受け取るように構成され、第4トランジスタ及び第7トランジスタの制御端子は、第3入力を受け取るように構成され、そして第2トランジスタ及び第8トランジスタの制御端子は、第4入力を受け取るように構成される。第9トランジスタ及び第10トランジスタは、電源端子と出力端子の間に直列に結合され、第9トランジスタの制御端子は第5入力の反転に結合され、第10トランジスタの制御端子は、第2ノードに結合される。第11トランジスタは第2ノードと出力端子との間に結合され、第11トランジスタの制御端子は第5入力に結合される。第12トランジスタは、出力端子と第5入力の反転との間に結合され、第12トランジスタの制御端子は、第2ノードに結合される。第13トランジスタは、出力端子と第2ノードとの間に結合され、第13トランジスタの制御端子は第5入力の反転に結合される。第14トランジスタ及び第15トランジスタは、電源端子と接地端子との間に直列に結合され、第14トランジスタと第15トランジスタとの間の直列結合ノードは、第5入力の反転に結合される。第14トランジスタ及び第15トランジスタの制御端子は、第5入力を受け取るように構成される。前述の技術的解決策では、反転符号化オペレータ回路が提供される。反転符号化オペレータ回路は、トランジスタの数が少なく、占有面積が小さく、実装が簡素である。従って、オペレータ回路を乗算器に適用すると、乗算器の面積を減らすことができる。
第3の態様の可能な実施態様において、第1トランジスタ、第2トランジスタ、第3トランジスタ、第4トランジスタ、第9トランジスタ、第10トランジスタ、第11トランジスタ、及び第14トランジスタは、PMOSトランジスタである。第5トランジスタ、第6トランジスタ、第7トランジスタ、第8トランジスタ、第12トランジスタ、第13トランジスタ、及び第15トランジスタは、NMOSトランジスタである。前述の可能な実施態様において、提供するオペレータ回路がデータを符号化するときに、トランジスタのトグルレートは小さい。従って、オペレータ回路を乗算器に適用すると、乗算器の消費電力を低減することができる。
第4の態様によれば、オペレータ回路が提供され、このオペレータ回路には、第1トランジスタ、第2トランジスタ、第3トランジスタ、第4トランジスタ、第5トランジスタ、第6トランジスタ、第7トランジスタ、第8トランジスタ、第9トランジスタ、第10トランジスタ、第11トランジスタ、第12トランジスタ、第13トランジスタ、第14トランジスタ、第15トランジスタ、第16トランジスタ、第17トランジスタ、第18トランジスタ、第19トランジスタ、第20トランジスタ、第21トランジスタ、及び第22トランジスタが含まれる。第1トランジスタ及び第2トランジスタは、電源端子と第1ノードとの間で並列に結合され、第3トランジスタは、第1ノードと第1出力端子との間に結合され、第4トランジスタは、第1出力端子と第2ノードとの間に結合される。第5トランジスタ及び第6トランジスタは、第2ノードと接地端子との間で並列に結合され、第7トランジスタは電源端子と第3ノードとの間に結合され、第8トランジスタは第3ノードと第1出力端子との間に結合され、そして第9トランジスタは第1出力端子と第4ノードとの間に結合される。第10トランジスタは第4ノードと接地端子との間に結合され、第11トランジスタ及び第12トランジスタは、第3ノードと第2出力端子との間に直列に結合され、第13トランジスタ及び第14トランジスタは、第2出力端子と第4ノードとの間に直列に結合される。第15トランジスタ、第16トランジスタ、及び第17トランジスタは、電源端子と第5ノードとの間で並列に結合され、第18トランジスタは第5ノードと第2出力端子との間に結合され、第19トランジスタは第2出力端子と第6ノードとの間に結合され、そして第20トランジスタ、第21トランジスタ、及び第22トランジスタは、第6ノードと接地端子との間で並列に結合される。第3トランジスタ、第4トランジスタ、第12トランジスタ、第13トランジスタ、第15トランジスタ、及び第20トランジスタの制御端子は、第1入力を受け取るように構成される。第1トランジスタ、第5トランジスタ、第7トランジスタ、第10トランジスタ、第16トランジスタ、及び第21トランジスタの制御端子は、第2入力を受け取るように構成される。第2トランジスタ、第6トランジスタ、第8トランジスタ、第9トランジスタ、第11トランジスタ、第14トランジスタ、第17トランジスタ、及び第22トランジスタの制御端子は、第3入力を受け取るように構成される。第18トランジスタ及び第19トランジスタの制御端子は、第1出力端子に結合される。前述の技術的解決策では、反転圧縮オペレータ回路が提供される。反転圧縮オペレータ回路は、トランジスタの数が少なく、占有面積が小さく、実装が簡素である。従って、オペレータ回路を乗算器に適用すると、乗算器の面積を減らすことができる。
第4の態様の可能な実施態様において、第1トランジスタ、第2トランジスタ、第3トランジスタ、第7トランジスタ、第8トランジスタ、第11トランジスタ、第12トランジスタ、第15トランジスタ、第16トランジスタ、第17トランジスタ、及び第18トランジスタは、PMOSトランジスタである。第4トランジスタ、第5トランジスタ、第6トランジスタ、第9トランジスタ、第10トランジスタ、第13トランジスタ、第14トランジスタ、第19トランジスタ、第20トランジスタ、第21トランジスタ、及び第22トランジスタは、NMOSトランジスタである。前述の可能な実施態様において、提供するオペレータ回路がデータを圧縮するときに、トランジスタのトグルレートは小さい。従って、オペレータ回路を乗算器に適用すると、乗算器の消費電力を低減することができる。
第5の態様によれば、乗算器又はオペレータ回路を含むプロセッサが提供される。乗算器は、第1の態様又は第1の態様の可能な実施態様のいずれか1つで提供される乗算器であり、オペレータ回路は、第2の態様~第4の態様又は第2の態様~第4の態様の可能な実施態様のいずれか1つで提供されるオペレータ回路である。オプションで、プロセッサは、ニューラルネットワーク処理装置を含む。
第6の態様によれば、乗算器又はオペレータ回路を含むチップが提供される。乗算器は、第1の態様又は第1の態様の可能な実施態様のいずれか1つで提供される乗算器であり、オペレータ回路は、第2の態様~第4の態様又は第2の態様~第4の態様の可能な実施態様のいずれか1つで提供されるオペレータ回路である。
上記で提供する任意のプロセッサ又はチップは、上記で提供する乗算器又はオペレータ回路を含むことが理解され得る。従って、プロセッサ又はチップによって達成できる有利な効果については、上記の乗算器又はオペレータ回路の有利な効果を参照されたい。詳細については、ここでは再び説明しない。
従来技術による乗算器のアーキテクチャの図である。
本願の一実施形態による通信装置の構造の概略図である。
本願の一実施形態による乗算器の構造の概略図である。
本願の一実施形態による非反転エンコーダの論理ブロック図である。
本願の一実施形態による反転エンコーダの論理ブロック図である。
本願の一実施形態によるW個のレイヤの反転コンプレッサの圧縮例の図である。
本願の一実施形態によるW個のレイヤの反転コンプレッサの圧縮例の図である。
本願の一実施形態によるW個のレイヤの反転コンプレッサの圧縮例の図である。
本願の一実施形態によるW個のレイヤの反転コンプレッサの圧縮例の図である。
本願の一実施形態による反転コンプレッサの論理ブロック図である。
本願の一実施形態によるプリコーダ及びエンコーダの例示的な図である。
本願の一実施形態によるプリコーダ及びエンコーダの例示的な図である。
本願の一実施形態によるプリコーダ及びエンコーダの例示的な図である。
本願の一実施形態によるプリコーダ及びエンコーダの例示的な図である。
本願の一実施形態によるプリコーダ及びエンコーダの例示的な図である。
本願の一実施形態によるプリコーダ及びエンコーダの例示的な図である。
本願の一実施形態によるW個のレイヤの反転コンプレッサの別の圧縮例の図である。
本願の一実施形態による非反転エンコーダの回路図である。
本願の一実施形態による反転エンコーダの回路図である。
本願の一実施形態による反転コンプレッサの回路図である。
本願において、「少なくとも1つ」は1つ又は複数を意味し、「複数」は2つ以上を意味する。「及び/又は」という用語は、関連するオブジェクトを説明するための関連性の関係を説明し、3つの関係が存在し得ることを表す。例えば、A及び/又はBは、次の場合:Aのみが存在する、AとBとの両方が存在する、及びBのみが存在することを示し得、ここで、A及びBは単数形又は複数形であり得る。以下のアイテム(ピース)のうちの少なくとも1つ又はその類似の表現は、単一のアイテム(ピース)又は複数のアイテム(ピース)の任意の組合せを含む、これらのアイテムの任意の組合せを示す。例えば、a、b、又はcの少なくとも1つ(ピース)は、a;b;c;a及びb;a及びc;b及びc;又はa、b及びcを示し得、ここで、a、b及びcは単数形又は複数形であり得る。さらに、本願の実施形態では、「第1」及び「第2」等の単語は、基本的に類似した名前、機能、又は目的を有するオブジェクトを区別するために使用される。当業者は、「第1」及び「第2」等の単語が、数量又は実行順序を制限しないことを理解し得る。「結合」という用語は、ワイヤ又は接続端を介した直接接続又は別の装置を介した間接接続を含む、電気的接続を示すために使用される。従って、「結合」は、広範な意味での電子通信接続と見なすべきである。
図2は、本願の一実施形態による通信装置の構造の概略図である。通信装置は、端末、サーバ等であり得る。図2に示されるように、通信装置は、メモリ201、プロセッサ202、通信インターフェイス203、及びバス204を含み得る。メモリ201、プロセッサ202、及び通信インターフェイス203は、バス204を介して互いに接続される。メモリ201は、データ、ソフトウェアプログラム、及びモジュールを記憶するように構成され、且つ主にプログラム記憶領域及びデータ記憶領域を含む。プログラム記憶領域は、オペレーティングシステム、少なくとも1つの機能に必要なアプリケーションプログラム等を記憶することができる。データ記憶領域は、装置の使用中に作成されたデータ等を記憶することができる。プロセッサ202は、通信装置の動作を制御及び管理するように構成され、例えば、メモリ201に記憶したソフトウェアプログラム及び/又はモジュールを起動又は実行することによって、及びメモリ201に記憶しれたデータを呼び出すことによって、装置の様々な機能を実行し、データを処理するように構成される。通信インターフェイス203は、装置の通信をサポートするように構成される。
プロセッサ202は、中央処理装置(CPU)、ネットワーク処理装置(NPU)、グラフィックス処理装置(GPU)、デジタル信号プロセッサ(DSP)、汎用プロセッサ等を含むが、これらに限定されるものではない。プロセッサ202は、1つ又は複数の乗算器を含み、例えば、乗算器マトリックスを含む。乗算器は、プロセッサ202において乗算演算を行う構成要素である。
バス204は、周辺機器相互接続(PCI)バス、拡張業界標準アーキテクチャ(EISA)バス等であり得る。バスは、アドレスバス、データバス、制御バス等に分類することができる。表現を容易にするために、図2のバスを表すために1本の太い線のみが使用されているが、これはバスが1つしかない、又はバスの種類が1つしかないという意味ではない。
技術的解決策をさらに説明するために、図3は、本願の一実施形態による乗算器の構造の概略図である。乗算器は、Mビットの第1の値とNビットの第2の値との乗算を行うように構成され、ここで、M及びNは1より大きい整数である。図3を参照すると、乗算器は、P個のプリコーダ308、P個のエンコーダグループ302、W個のレイヤの反転コンプレッサ303、及び加算器304を含む。P個のエンコーダグループ302内の各エンコーダグループ3021は、N個のエンコーダを含み、Wは正の整数であり、Pは1より大きい整数である。従来の設計と比較して、乗算器は実装が容易であり、この乗算器について以下で詳細に説明する。
P個のプリコーダ310内の各プリコーダ3011は、第1の値のビットの一部に基づいて、グループ選択信号及びシンボル制御入力信号を生成するように構成され、それによって、P個のプリコーダ310は、それに応じてP個のグループ選択信号及びP個のシンボル制御入力信号を生成する。P個のグループ選択信号及びP個のシンボル制御入力信号は、P個のエンコーダグループと1対1で対応している。つまり、1つのグループ選択信号及び1つのシンボル制御入力信号は1つのエンコーダグループに対応する。グループ選択信号は、第1の値における隣接する2つ又は3つのビットに基づいて生成され得る。シンボル制御入力信号は、第1の値における1ビットであってもよく、或いは第1の値における隣接する2つ又は3つのビットに基づいて生成してもよい。
例えば、第1の値が、4ビットの2進数であり且つa[3:0]として示され、Pが2に等しい場合に、2つのプリコーダは、a[3:0]に基づいて、2つのグループ選択信号及び2つのシンボル制御入力信号を生成し得る。2つのグループ選択信号において、第1のグループ選択信号は、a[0]及びa[1]に基づいて生成され得、第2のグループ選択信号は、a[1]~a[3]に基づいて生成され得る。2つのシンボル制御入力信号において、第1のシンボル制御入力信号はa[1]であり得、第2のシンボル制御入力信号はa[3]であり得る。a[i]は、a[3:0]における右から左へのi番目のビットを示し、iの値の範囲は0~3である。
各エンコーダグループ3021は、非反転符号化演算子又は反転符号化演算子を使用して、エンコーダグループに対応するグループ選択信号及びシンボル制御入力信号、並びに第2の値を符号化して、1つの部分積を取得するように構成される。P個のエンコーダグループは、符号化を行ってP個の部分積を取得する。
各エンコーダグループ3021は、N個のエンコーダを含み、N個のエンコーダの各エンコーダは、第2の値における第1ビット及び第2ビットに対応し、グループ選択信号は、第1信号及び第2信号を含む。各エンコーダは、非反転符号化演算子又は反転符号化演算子を使用して、第1ビット、第2ビット、グループ選択信号、及びシンボル制御入力信号を符号化して、1つの部分積で1つの出力ビットを取得するように特に構成される。各エンコーダグループ3021のN個のエンコーダはそれぞれ符号化を行って、1つの部分積でN個の出力ビットを取得する、つまり、部分積を取得する。第1ビット及び第2ビットは、第2の値における隣接する2つのビット、又は第2の値における同じビットであり得る。以下の実施形態は、これを詳細に説明し得る。
例えば、第2の値が、3ビットの2進数であり且つb[2:0]として示され、Nが3に等しい場合に、各エンコーダグループ3021には、3つのエンコーダが含まれる。3つのエンコーダのうち、第1エンコーダはb[2:0]における隣接する2つのビットb[0]及びb[1]に対応し、第2エンコーダはb[2:0]における隣接する2つのビットb[1]及びb[2]に対応し、第3エンコーダに対応する第1ビットと第2ビットとの両方がb[2:0]におけるb[2]である。つまり、1つのビットb[2]のみが最後の第3エンコーダに第1ビットと第2ビットとの両方として入力される。b[i]は、b[2:0]における右から左へのi番目のビットを示す。
第1の値がa[3:0]であり、第2の値がb[2:0]である前述の例を例として使用する。第1の符号化グループ内の第1のエンコーダが第2の値b[2:0]における隣接する2つのビットb[0]及びb[1]に対応する場合に、対応するグループ選択信号は、a[0]及びa[1]に基づいて生成された第1のグループ選択信号(A及びBとして示される)であり、対応するシンボル制御入力信号がa[1]である場合に、第1のエンコーダは、非反転符号化演算子又は反転符号化演算子を使用して、b[0]、b[1]、A、B、及びa[1]を符号化して、第1の部分積で1つの出力ビットを取得するように特に構成され得る。
具体的には、エンコーダが非反転符号化演算子を使用する場合に、そのエンコーダは、非反転エンコーダと呼ばれ得る。エンコーダが反転符号化演算子を使用する場合に、そのエンコーダは、反転エンコーダと呼ばれ得る。以下では、非反転エンコーダ及び反転エンコーダについて個別に詳しく説明する。
非反転エンコーダは、以下の符号化演算を行うように特に構成され、その符号化演算には、第1信号と第1ビットとの両方が1である場合、又は第2信号と第2ビットとの両方が1である場合に、非反転エンコーダが取得する出力ビットは、シンボル制御入力信号の反転であること;又は、第1信号及び第1ビットの少なくとも一方が0であり、且つ第2信号及び第2ビットの少なくとも一方が0である場合に、非反転エンコーダが取得する出力ビットは、シンボル制御入力信号であること;が含まれる。
図4は、本願の一実施形態による非反転エンコーダの論理ブロック図である。論理ブロック図には、符号化ゲートユニット、反転ユニット、及びスイッチ制御ユニットが含まれている。符号化ゲートユニットの機能は次の通りである。A及びSel_Aが両方とも1である場合、又はB及びSel_Bが両方とも1である場合に、1を出力する;それ以外の場合は、0を出力する。反転ユニットの機能は、符号化ゲートユニットの出力に対して反転を行うことである。スイッチ制御ユニットの機能は、反転ユニットの出力が1である場合に、Sを出力し、反転ユニットの出力が0である場合に、/Sを出力する。図4では、Aは第1信号を表し、Bは第2信号を表し、Sel_Aは第1ビットを表し、Sel_Bは第2ビットを表し、Sはシンボル制御入力信号を表し、/Sはシンボル制御入力信号の反転を表し、OUTは出力ビットを表す。
換言すると、非反転エンコーダは、以下の表1に示される論理表に基づいて符号化を特に実行することができ、ここで、表1のxは、「0」又は「1」のいずれか1つを表し、A、B、Sel_A、Sel_B、S、及びOUTは、図4のA、B、Sel_A、Sel_B、S、及びOUTと一致している。
反転エンコーダは、以下の符号化演算を行うように特に構成され、その符号化演算には、第1信号と第1ビットとの両方が1である場合、又は第2信号と第2ビットとの両方が1である場合に、反転エンコーダが取得する出力ビットは、シンボル制御入力信号であること;又は、第1信号及び第1ビットの少なくとも一方が0であり、且つ第2信号及び第2ビットの少なくとも一方が0である場合に、反転エンコーダが取得する出力ビットは、シンボル制御入力信号の反転であること;が含まれる。
図5は、本願の一実施形態による反転エンコーダの論理ブロック図である。論理ブロック図には、符号化ゲートユニット、反転ユニット、及びスイッチ制御ユニットが含まれている。符号化ゲートユニットの機能は次の通りである。A及びSel_Aが両方とも1である場合、又はB及びSel_Bが両方とも1である場合に、1を出力する;それ以外の場合は、0を出力する。反転ユニットの機能は、符号化ゲートユニットの出力に対して反転を行うことである。スイッチ制御ユニットの機能は、反転ユニットの出力が0である場合に、Sを出力し、反転ユニットの出力が1である場合に、/Sを出力する。図5では、Aは第1信号を表し、Bは第2信号を表し、Sel_Aは第1ビットを表し、Sel_Bは第2ビットを表し、Sはシンボル制御入力信号を表し、/Sはシンボル制御入力信号の反転を表し、OUTは出力ビットを表す。
換言すると、反転エンコーダは、以下の表2に示される論理表に基づいて符号化を特に実行することができ、ここで、表2のxは、「0」又は「1」のいずれか1つを表し、A、B、Sel_A、Sel_B、S、及びOUTは、図5のA、B、Sel_A、Sel_B、S、及びOUTと一致している。
W個のレイヤの反転コンプレッサ303は、反転圧縮演算子を使用して、P個の部分積を圧縮して、2つの累積値を取得するように構成される。
具体的には、Wが1である場合に、W個のレイヤの反転コンプレッサ303は、第1レイヤの反転コンプレッサを含み、この第1レイヤの反転コンプレッサは、反転圧縮演算子を低い桁の重みから高い桁の重みまで順番に使用して、各桁の重みに対応する残りのビット数が3未満になるまで、P個の部分積のマトリックス内の各桁の重みを圧縮して、2つの行を含む第1の圧縮マトリックスを取得するように構成され、ここで、各行は1つの累積値に対応する。具体的には、Wが1より大きい整数である場合に、W個のレイヤの反転コンプレッサ303は、第1レイヤの反転コンプレッサからW番目のレイヤの反転コンプレッサまでを含む。第1レイヤの反転コンプレッサは、反転圧縮演算子を低い桁の重みから高い桁の重みまで順序に使用して、各桁の重みに対応する残りのビット数が3未満になるまで、P個の部分積のマトリックス内の各桁の重みを圧縮して、第1の圧縮マトリックスを取得するように構成される。i番目のレイヤの反転コンプレッサは、反転圧縮演算子を低い桁の重みから高い桁の重みまで順番に使用して、各桁の重みに対応する残りのビット数が3未満になるまで、(i-1)番目の圧縮マトリックス内の各桁の重みを圧縮して、i番目の圧縮マトリックスを取得するように構成され、ここで、iの値の範囲が2~Wである。W番目の圧縮マトリックスには2つの行が含まれ、各行は1つの累積値に対応する。
各レイヤの反転コンプレッサによる各桁の重みに対する圧縮は、桁の重みの3ビットに対して実行され、そのレイヤの反転コンプレッサによる圧縮によって得られる出力キャリービット及び現在の合計ビットは圧縮されない。P個の部分積のマトリックスでは、各行には1つの部分積が含まれ、各列にはP個の部分積の同じ桁の重みに対応する複数のビットが含まれ、各桁の重みに対する圧縮が桁の重みの3ビットに対して実行される。
例えば、P個のエンコーダグループが符号化を行って8つの部分積を取得し、各部分積には16ビットが含まれると仮定する。この場合に、8つの部分積のマトリックスが図6(a)に示され得、ここでPP[1]~PP[8]は8つの部分積を表し、20、21、2
2 、...、及び232は異なる桁の重みを示す。桁の重みは、W個のレイヤの反転コンプレッサの出力結果に関するものである。10進法の1ビット、10ビット、又は100ビットと同様に、桁の重みは、出力結果のバイナリ値の1ビットを示すために使用される。例えば、W個のレイヤの反転コンプレッサの出力結果が32ビットのバイナリ値である場合に、出力結果には32桁の重みが含まれる。桁の重みとは反対に、ビットは0又は1に対応し、1つのバイナリ情報を示す。W個のレイヤの反転コンプレッサの出力結果では、1桁の重みが1ビットであると考えることができる。
理解を容易にするために、図6(a)から変換した図6(b)に示されるように、W個のレイヤの反転コンプレッサ303の各レイヤの圧縮プロセスを、例を用いて説明する。具体的には、出力結果には32桁の重みが含まれ、第1レイヤの反転コンプレッサは、3ビット毎に圧縮し、マトリックス内の2
4~2
29の各桁の重みに対応するビット数が3未満のビットを予約し、2
4~2
29以外の他の桁の重みに対応するビット数が3未満になるビットを予約するように特に構成される。図6(b)の中実(solid)の各長方形ボックスは、第1レイヤの反転コンプレッサにおける1つの反転コンプレッサを表すために使用され得る。第1レイヤの反転コンプレッサによる圧縮によって得られた第1の圧縮マトリックスが図6(c)に示される。この図では、
は、第1レイヤの反転コンプレッサによって出力された現在の出力合計ビットを示し、
は、第1レイヤの反転コンプレッサによって出力された出力キャリービットを示す。第2レイヤの反転コンプレッサは、3ビット毎に圧縮し、第1の圧縮マトリックス内の2
6~2
23及び2
26の各桁の重みに対応するビット数が3未満のビットを予約し、2
6~2
23及び2
26以外の他の桁の重みに対応するビット数が3未満のビットを予約するように特に構成される。図6(c)の長方形ボックスは、第2レイヤの反転コンプレッサにおける1つの反転コンプレッサを表すために使用され得る。第2レイヤの反転コンプレッサによる圧縮によって得られた第2の圧縮マトリックスが図6(d)に示される。図では、
は、第2レイヤの反転コンプレッサによって出力された現在の出力合計ビットを示し、
は、第2レイヤの反転コンプレッサによって出力された出力キャリービットを示している。第3レイヤの反転コンプレッサからW番目のレイヤの反転コンプレッサへの後続の特定の圧縮プロセスは、第1レイヤの反転コンプレッサ及び第2レイヤの反転コンプレッサの特定の圧縮プロセスと同様である。本願のこの実施形態では、詳細について、ここでは再び説明しない。
各桁の重みの3ビット毎に、各反転コンプレッサは、以下の圧縮を行うように特に構成される:3ビットが全て0である場合に、出力キャリービットは1であり、現在の出力合計ビットは1である;3ビットが全て1である場合に、出力キャリービットは0であり、現在の出力合計ビットは0である;3ビットのうちの1ビットが1であり、他の2ビットが0である場合に、出力キャリービットは1であり、現在の出力合計ビットは0である;又は、3ビットのうちの2ビットが1であり、他のビットが0である場合に、出力キャリービットは0であり、現在の出力合計ビットは1である。
出力キャリービットは、圧縮した現在の桁の重みの次の桁の重みを指す出力ビットであり、現在の出力合計ビットは、圧縮した現在の桁の重みの圧縮によって得られる出力ビットである。例えば、圧縮した現在の桁の重みが25であり、圧縮した現在の桁の重みの次の桁の重みが26であると仮定する。25の3ビットが全て0である場合に、1つの1は25に対する圧縮によって生成され、1つの1は26に対して生成される。
図7は、本願の一実施形態による反転コンプレッサの論理ブロック図である。論理ブロック図には、反転キャリー出力ユニット及び反転合計出力ユニットが含まれている。反転キャリー出力ユニットの機能は次の通りである。Ai、Bi、及びCiのうちの少なくとも2つが有効である場合に(1又は0が有効であり得る)、出力は無効である(1が有効である場合に、0は無効である。又は、0が有効である場合に、1は無効である);それ以外の場合に、出力は有効である。反転合計出力ユニットの機能は次の通りである。Ai、Bi、及びCiのうちの2つが
無効であるか、又は全てが無効である場合に、出力は有効である;それ以外の場合に、出力は無効である。反転合計出力ユニットへのnCip1入力が有効である場合に、それは、Ai、Bi、及びCiのうちの2つが
無効であるか、Ai、Bi、及びCiの全てが無効であるかを区別するために使用することができる。図7のAi、Bi、及びCiは3つの入力ビットを表し、nCip1は出力キャリービットを表し、nSiは現在の出力合計ビットを表す。換言すると、各レイヤの反転コンプレッサは、以下の表3に示される論理表に基づいて圧縮を特に実行することができ、ここで、表3のAi、Bi、及びCiは3つの入力ビットを表し、nCip1は出力キャリービットを表し、nSiは現在の出力合計ビットを表す。
さらに、乗算器は、1つ又は複数のインバータをさらに含むことができ、このインバータは、W個のレイヤの反転コンプレッサ303内の1つ又は複数の反転コンプレッサによって出力される現在の出力合計ビット及び出力キャリービットの位相を反転する、又は1つ又は複数の反転コンプレッサに入力された3ビットのうちの少なくとも1ビットの位相を反転するように構成される。
W個のレイヤの反転コンプレッサ303は、複数レイヤの反転コンプレッサを含み得、複数レイヤの反転コンプレッサの各レイヤは、少なくとも1つの反転コンプレッサを含み得る。各反転コンプレッサの出力位相は要件に基づいて設定することができ、各反転コンプレッサの出力位相は入力位相と反対であるため、各反転コンプレッサの入力位相も設定される。
反転コンプレッサの出力位相は、反転コンプレッサによって出力される現在の出力合計ビット及び出力キャリービットの位相、並びに現在の出力合計ビット及び出力キャリービットの位相が、同じである、つまり、両方とも正又は負であり得ることに留意されたい。反転コンプレッサの入力位相は、反転コンプレッサに入力される3ビットの構成された位相であり得、そして3ビットの構成された位相は同じである、すなわち、全て正又は負である。
W個のレイヤの反転コンプレッサ303内の1つ又は複数の反転コンプレッサの出力位相が構成された出力位相と異なる場合に、1つ又は複数のインバータは、1つ又は複数の反転コンプレッサによって出力される現在の出力合計ビット及び出力キャリービットの位相を反転するように構成され、それによって、位相が構成された出力位相と一致する。同様に、1つ又は複数の反転コンプレッサに入力される3ビットのうちの少なくとも1ビットの位相が構成された入力位相と異なる場合に、1つ又は複数のインバータは、1つ又は複数の反転コンプレッサに入力される3ビットのうちの少なくとも1ビットの位相を反転するように構成され、それによって、位相が構成された入力位相と一致する。
可能な実施態様において、各レイヤの反転コンプレッサに含まれる少なくとも1つの反転コンプレッサの出力位相は、以下の方法で設定され得る:最後のレイヤの反転コンプレッサの出力位相が正に設定され、第2から最後のレイヤの反転コンプレッサの出力位相が負に設定され、第3から最後のレイヤの反転コンプレッサの出力位相が正に設定され、...等、第1レイヤの出力位相が設定されるまで続く。本明細書の第1レイヤの反転コンプレッサは、各桁の重みに対応する複数のビットを上から下の順序で圧縮する最上位レイヤの反転コンプレッサを指し得、第2レイヤの反転コンプレッサは、次の上位レイヤの反転コンプレッサを指し得、...等である。例えば、W個のレイヤの反転コンプレッサ303が4つのレイヤの反転コンプレッサを含む場合に、出力位相は、以下の方法で設定され得る。第4レイヤの反転コンプレッサの出力位相が正に設定され、第3レイヤの反転コンプレッサの出力位相が負に設定され、第2レイヤの反転コンプレッサの出力位相が正に設定され、第1レイヤの反転コンプレッサの出力位相が負に設定される。
オプションで、反転コンプレッサの出力位相が構成された出力位相と一致しない場合、又は反転コンプレッサの入力位相が構成された入力位相と一致しない場合に、少なくとも3つのインバータが、構成された出力位相及び構成された入力位相の要件を満たすために反転を行う必要があり、反転コンプレッサの出力位相の設定は、必要なインバータの数を減らすために部分的に調整され得る。例えば、反転コンプレッサの設定された出力位相が正である場合(この場合に、反転コンプレッサの入力位相は負である)であって、反転コンプレッサの出力位相が正である場合に、反転コンプレッサに入力される3ビットの位相も正であり、反転コンプレッサは、3ビットの位相を反転するために3つのインバータを必要とし、これにより、構成された出力位相及び構成された入力位相の要件を満たすことができる。この場合に、反転コンプレッサの出力位相を負にリセットすることにより(この場合に、反転コンプレッサの入力位相は正である)、反転コンプレッサは2つの出力ビット(つまり、現在の出力合計ビット及び出力キャリービット)の出力位相を反転するために2つのインバータのみを必要とし、これにより、構成された出力位相及び構成された入力位相の要件を満たすことができる。
さらに、P個のエンコーダグループ302内の少なくとも1つのエンコーダによって使用される符号化演算子の位相は、W個のレイヤの反転コンプレッサ303内の少なくとも1つのレイヤの反転コンプレッサによって出力される現在の出力合計ビット又は出力キャリービットの位相に関連している。オプションで、少なくとも1つのエンコーダのそれぞれによって使用される符号化演算子の位相は、そのエンコーダに接続された反転コンプレッサの入力位相と同じになるように設定される。各エンコーダで使用される符号化演算子の位相は、正又は負の場合がある。エンコーダが使用する符号化演算子の位相が正である場合(つまり、非反転符号化演算子が使用される場合)に、エンコーダは非反転エンコーダであり得る。エンコーダが使用する符号化演算子の位相が負である場合(つまり、反転符号化演算子が使用される場合)に、エンコーダは反転エンコーダであり得る。
加算器304は、2つの累積値を受け取り、2つの累積値を合計(sum up)して積(product)を得るように構成される。W個のレイヤの反転コンプレッサ303がP個の部分積を圧縮して2つの累積値を取得した後に、W個のレイヤの反転コンプレッサ303は2つの累積値を加算器304に送信することができる。2つの累積値を受信すると、加算器304は、2つの累積値を合計して、第1の値と第2の値との積を取得する。
理解を容易にするために、以下では、第1の値がa[10:0]であり、第2の値がb[12:0]である例を使用して、本願における乗算器を説明する。図8A~図8Fに示されるように、乗算器は、6つのプリコーダ、6つのエンコーダグループ、及び3つのレイヤの反転コンプレッサを含み得る。
具体的には、第1のプリコーダは、a[0]及びa[1]に基づいて、グループ選択信号S0及びS1と、シンボル制御入力信号a[1]とを生成するように構成される。第2のプリコーダは、a[1]、a[2]、及びa[3]に基づいて、グループ選択信号S2及びS3と、シンボル制御入力信号a[3]とを生成するように構成される。第3のプリコーダは、a[3]、a[4]、及びa[5]に基づいて、グループ選択信号S4及びS5と、シンボル制御入力信号a[5]とを生成するように構成される。第4のプリコーダは、a[5]、a[6]、及びa[7]に基づいて、グループ選択信号S6及びS7と、シンボル制御入力信号a[7]とを生成するように構成される。第5のプリコーダは、a[7]、a[8]、及びa[9]に基づいて、グループ選択信号S8及びS9と、シンボル制御入力信号a[9]とを生成するように構成される。第6のプリコーダは、a[9]及びa[10]に基づいて、グループ選択信号S10と、シンボル制御入力信号S_11とを生成するように構成される。対応して、第1のエンコーダグループは、b[12:0]、S0、S1、及びa[1]を符号化して、第1の部分積PP[1]を取得するように構成される。第2のエンコーダグループは、b[12:0]、S2、S3、及びa[3]を符号化して、第2の部分積PP[2]を取得するように構成される。第3のエンコーダグループは、b[12:0]、S4、S5、及びa[5]を符号化して、第3の部分積PP[3]を取得するように構成される。第4のエンコーダグループは、b[12:0]、S6、S7、及びa[7]を符号化して、第4の部分積PP[4]を取得するように構成される。第5のエンコーダグループは、b[12:0]、S8、S9、及びa[9]を符号化して、第5の部分積PP[5]を取得するように構成される。第6のエンコーダグループは、b[12:0]、S10、及びS_11を符号化して、第6の部分積PP[6]を取得するように構成される。各エンコーダグループの各エンコーダは、b[12:0]の1ビット又は2ビット、対応するグループ選択信号、及び対応するシンボル制御入力信号を符号化するように個別に構成される。詳細については、図8A~図8Fを参照されたい。最後に、6つの部分積PP[1]~PP[6]に対応するマトリックスが図9に示され得る。乗算器内のW個のレイヤの反転コンプレッサ303の関連する説明によれば、図9に示されるマトリックスは、3つのレイヤの反転コンプレッサによって圧縮され得る。詳細な圧縮プロセスは、図6(a)~図6(d)の関連する説明と同様であり、本願のこの実施形態では、詳細について、ここでは再び説明しない。
本願のこの実施形態で提供される乗算器において、P個のプリコーダは、異なる構造を有するプリコーダを含み得る。例えば、図8A~図8Fでは、第1のプリコーダは、NOTゲート及びANDゲートを含み、第2のプリコーダ~第5のプリコーダはそれぞれ、XORゲート、XNORゲート、及びNORゲートを含み、第6のプリコーダは、XORゲート及びANDゲートを含む。さらに、本願のこの実施形態では、第1のエンコーダは、同じエンコーダグループ内の別のエンコーダの構造とは異なる構造を有し得、異なるグループ内のエンコーダの構造もまた異なり得る。例えば、図8A~図8Eの第1のグループ~第5のエンコーダグループにおいて、第1のエンコーダは、ANDゲート及びXORゲートを含み、第2エンコーダ~第13のエンコーダはそれぞれ、非反転エンコーダ又は反転エンコーダである。図8Fの第6のエンコーダグループ内の各エンコーダは、ANDゲート及びXNORゲートを含む。
図8A~図8FのPP[1]_i(iの値は1~14の範囲である)は第1の部分積PP[1]のi番目のビットを表し、Aは第1信号を表し、Bは第2信号を表し、Sel_Aは第1ビットを表し、Sel_Bは第2ビットを表し、Sはシンボル制御入力信号を表し、OUTは出力ビットを表すことに留意されたい。
図10は、本願の一実施形態による非反転符号化オペレータ回路の構造の概略図である。非反転符号化オペレータ回路は、非反転エンコーダとも呼ばれ得る。非反転エンコーダには、第1トランジスタM1、第2トランジスタM2、第3トランジスタM3、第4トランジスタM4、第5トランジスタM5、第6トランジスタM6、第7トランジスタM7、第8トランジスタM8、第9トランジスタM9、第10トランジスタM10、第11トランジスタM11、第12トランジスタM12、第13トランジスタM13、第14トランジスタM14、及び第15トランジスタM15が含まれる。
第1トランジスタM1及び第2トランジスタM2は、電源端子と第1ノード(1)(左記の(1)は、「丸1」を表す、以下同様)との間で並列に結合され、第3トランジスタM3及び第4トランジスタM4は、第1ノード(1)と第2ノード(2)(左記の(2)は「丸2」を表す、以下同様)との間で並列に結合され、第5トランジスタM5及び第7トランジスタM7は、第2ノード(2)と接地端子との間に直列に結合され、そして第6トランジスタM6及び第8トランジスタM8は、第2ノード(2)と接地端子との間に直列に結合される。第3トランジスタM3及び第5トランジスタM5の制御端子は、第1入力Aを受け取るように構成され、第1トランジスタM1及び第6トランジスタM6の制御端子は、第2入力Sel_Aを受け取るように構成され、第4トランジスタM4及び第7トランジスタM7の制御端子は、第3入力Bを受け取るように構成され、そして第2トランジスタM2及び第8トランジスタM8の制御端子は、第4入力Sel_Bを受け取るように構成される。
第9トランジスタM9は、第5入力Sの反転/Sと出力端子OUTとの間に結合され、第9トランジスタM9の制御端子は第2ノード(2)に結合され、第2ノード(2)の信号は/Yである。第10トランジスタM10は、第2ノード(2)と出力端子OUTとの間に結合され、第10トランジスタM10の制御端子は、第5入力Sの反転/Sに結合される。第11トランジスタM11及び第13トランジスタM13は、出力端子OUTと接地端子との間に直列に結合される。第11トランジスタM11の制御端子は第2ノード(2)に結合される。第13トランジスタM13の制御端子は、第5入力Sの反転/Sを受け取るように構成される。第12トランジスタM12は、出力端子OUTと第2ノード(2)との間に結合され、第12トランジスタM12の制御端子は、第5入力Sを受け取るように構成される。第14トランジスタM14及び第15トランジスタM15は、電源端子と接地端子との間に直列に結合され、第14トランジスタM14と第15トランジスタM15との間の直列結合ノードは、第5入力Sの反転/Sに結合される。第14トランジスタM14及び第15トランジスタM15の制御端子は、第5入力Sを受け取るように構成される。
本願のこの実施形態では、第1入力A~第5入力Sはそれぞれ、乗算器の前述の実施形態における非反転エンコーダの関連する説明における第1信号、第1ビット、第2信号、第2ビット、及びシンボル制御入力信号であり得る。
オプションで、第1トランジスタM1、第2トランジスタM2、第3トランジスタM3、第4トランジスタM4、第9トランジスタM9、第10トランジスタM10、及び第14トランジスタM14は、PMOSトランジスタである。第5トランジスタM5、第6トランジスタM6、第7トランジスタM7、第8トランジスタM8、第11トランジスタM11、第12トランジスタM12、第13トランジスタM13、及び第15トランジスタM15は、NMOSトランジスタである。対応して、制御端子は、対応するPMOSトランジスタ又はNMOSトランジスタのゲートを特に指す場合がある。
前述の例における第1トランジスタM1~第15トランジスタM15は、MOSトランジスタであり得るか、又はバイポーラ接合トランジスタによって置き換えられ得ることに留意されたい。図10に示されるトランジスタの種類は、単なる例であり、本願の実施形態に対する制限を構成するものではない。
図11は、本願の一実施形態による反転符号化オペレータ回路の構造の概略図である。反転符号化オペレータ回路は、反転エンコーダとも呼ばれ得る。反転エンコーダには、第1トランジスタM1、第2トランジスタM2、第3トランジスタM3、第4トランジスタM4、第5トランジスタM5、第6トランジスタM6、第7トランジスタM7、第8トランジスタM8、第9トランジスタM9、第10トランジスタM10、第11トランジスタM11、第12トランジスタM12、第13トランジスタM13、第14トランジスタM14、及び第15トランジスタM15が含まれる。
第1トランジスタM1及び第2トランジスタM2は、電源端子と第1ノード(1)との間で並列に結合され、第3トランジスタM3及び第4トランジスタM4は、第1ノード(1)と第2ノード(2)との間で並列に結合され、第5トランジスタM5及び第7トランジスタM7は、第2ノード(2)と接地端子との間に直列に結合され、そして第6トランジスタM6及び第8トランジスタM8は、第2ノード(2)と接地端子との間に直列に結合される。第3トランジスタM3及び第5トランジスタM5の制御端子は、第1入力Aを受け取るように構成され、第1トランジスタM1及び第6トランジスタM6の制御端子は、第2入力Sel_Aを受け取るように構成され、第4トランジスタM4及び第7トランジスタM7の制御端子は、第3入力Bを受け取るように構成され、そして第2トランジスタM2及び第8トランジスタM8の制御端子は、第4入力Sel_Bを受け取るように構成される。
第9トランジスタM9及び第10トランジスタM10は、電源端子と出力端子OUTとの間に直列に結合され、第9トランジスタM9の制御端子は第5入力Sの反転/Sに結合され、第10トランジスタM10の制御端子は第2ノード(2)に結合され、そして第2ノード(2)の信号は/Yである。第11トランジスタM11は、第2ノード(2)と出力端子OUTとの間に結合され、第11トランジスタM11の制御端子は第5入力Sに結合される。第12トランジスタM12は、出力端子OUTと第5入力Sの反転/Sとの間に結合され、第12トランジスタM12の制御端子は、第2ノード(2)に結合される。第13トランジスタM13は、出力端子OUTと第2ノード(2)の間に結合され、第13トランジスタM13の制御端子は、第5入力Sの反転/Sに結合される。第14トランジスタM14及び第15トランジスタM15は、電源端子と接地端子の間で直列に結合され、第14トランジスタM14と第15トランジスタM15との間の直列結合ノードは、第5入力Sの反転/Sに結合される。第14トランジスタM14及び第15トランジスタM15の制御端子は、第5入力Sを受け取るように構成される。
本願のこの実施形態では、第1入力A~第5入力Sはそれぞれ、乗算器の前述の実施形態における反転エンコーダの関連する説明における第1信号、第1ビット、第2信号、第2ビット、及びシンボル制御入力信号であり得る。
オプションで、第1トランジスタM1、第2トランジスタM2、第3トランジスタM3、第4トランジスタM4、第9トランジスタM9、第10トランジスタM10、第11トランジスタM11、及び第14トランジスタM14は、PMOSトランジスタである。第5トランジスタM5、第6トランジスタM6、第7トランジスタM7、第8トランジスタM8、第12トランジスタM12、第13トランジスタM13、及び第15トランジスタM15は、NMOSトランジスタである。対応して、制御端子は、対応するPMOSトランジスタ又はNMOSトランジスタのゲートを特に指す場合がある。
前述の例における第1トランジスタM1~第15トランジスタM15は、MOSトランジスタであり得るか、又はバイポーラ接合トランジスタによって置き換えられ得ることに留意されたい。図11に示されるトランジスタの種類は、単なる例であり、本願の実施形態に対する制限を構成するものではない。
図12は、本願の一実施形態による反転圧縮オペレータ回路の構造の概略図である。反転圧縮オペレータ回路は、反転コンプレッサとも呼ばれ得る。反転コンプレッサには、第1トランジスタM1、第2トランジスタM2、第3トランジスタM3、第4トランジスタM4、第5トランジスタM5、第6トランジスタM6、第7トランジスタM7、第8トランジスタM8、第9トランジスタM9、第10トランジスタM10、第11トランジスタM11、第12トランジスタM12、第13トランジスタM13、第14トランジスタM14、第15トランジスタM15、第16トランジスタM16、第17トランジスタM17、第18トランジスタM18、第19トランジスタM19、第20トランジスタM20、第21トランジスタM21、及び第22トランジスタM22が含まれる。
第1トランジスタM1及び第2トランジスタM2は、電源端子と第1ノード(1)との間で並列に結合され、第3トランジスタM3は、第1ノード(1)と第1出力端子nCip1との間に結合され、第4トランジスタM4は、第1出力端子nCip1と第2ノード(2)との間に結合される。第5トランジスタM5及び第6トランジスタM6は、第2ノード(2)と接地端子との間で並列に結合され、第7トランジスタM7は、電源端子と第3ノード(3)(左記は、「丸3」を表す、以下同様)との間に結合され、第8トランジスタM8は、第3ノード(3)と第1出力端子nCip1との間に結合され、そして第9トランジスタM9は、第1出力端子nCip1と第4ノード(4)(左記は、「丸4」を表す、以下同様)との間に結合される。第10トランジスタM10は第4ノード(4)と接地端子との間に結合され、第11トランジスタM11及び第12トランジスタM12は、第3ノード(3)と第2出力端子nSiとの間に直列に結合され、そして第13トランジスタM13及び第14トランジスタM14は、第2出力端子nSiと第4ノード(4)との間に直列に結合される。第15トランジスタM15、第16トランジスタM16、及び第17トランジスタM17は、電源端子と第5ノード(5)(左記は、「丸5」を表す、以下同様)との間で並列に結合され、第18トランジスタM18は、第5ノード(5)と第2出力端子nSiとの間に結合され、第19トランジスタM19は、第2出力端子nSiと第6のノード(6)(左記は、「丸6」を表す、以下同様)との間に結合され、そして第20トランジスタM20、第21トランジスタM21、及び第22トランジスタM22は、第6のノード(6)及び接地端子との間で並列に結合される。
第3トランジスタM3、第4トランジスタM4、第12トランジスタM12、第13トランジスタM13、第15トランジスタM15、及び第20トランジスタM20の制御端子は、第1入力Aiを受け取るように構成される。第1トランジスタM1、第5トランジスタM5、第7トランジスタM7、第10トランジスタM10、第16トランジスタM16、及び第21トランジスタM21の制御端子は、第2入力Biを受け取るように構成される。第2トランジスタM2、第6トランジスタM6、第8トランジスタM8、第9トランジスタM9、第11トランジスタM11、第14トランジスタM14、第17トランジスタM17、及び第22トランジスタM22の制御端子は、第3の入力Ciを受け取るように構成される。第18トランジスタM18及び第19トランジスタM19の制御端子は、第1出力端子nCip1に結合される。
本願のこの実施形態では、第1入力Ai、第2入力Bi、及び第3入力Ciは、乗算器の前述の実施形態における反転コンプレッサの関連する説明における3ビットであり得る。第1出力端子nCip1は、反転コンプレッサの出力キャリービットを出力するように構成され、第2出力端子nSiは、反転コンプレッサの現在の出力合計ビットを出力するように構成される。
オプションで、第1トランジスタM1、第2トランジスタM2、第3トランジスタM3、第7トランジスタM7、第8トランジスタM8、第11トランジスタM11、第12トランジスタM12、第15トランジスタM15、第16トランジスタM16、第17トランジスタM17、及び第18トランジスタM18は、PMOSトランジスタである。第4トランジスタM4、第5トランジスタM5、第6トランジスタM6、第9トランジスタM9、第10トランジスタM10、第13トランジスタM13、第14トランジスタM14、第19トランジスタM19、第20トランジスタM20、第21トランジスタM21、及び第22トランジスタM22は、NMOSトランジスタである。対応して、制御端子は、対応するPMOSトランジスタ又はNMOSトランジスタのゲートを特に指す場合がある。
前述の例における第1トランジスタM1~第22トランジスタM22は、MOSトランジスタであり得るか、又はバイポーラ接合トランジスタによって置き換えられ得ることに留意されたい。図12に示されるトランジスタの種類は、単なる例であり、本願の実施形態に対する制限を構成するものではない。
本願のこの実施形態では、上記で提供した非反転エンコーダ、反転エンコーダ、及び反転コンプレッサを使用する乗算器を、標準的なエンコーダ及び標準的な加算器を使用する既存の乗算器と比較する。詳細を表4及び表5に示す。本願の一実施形態では、この実施形態は、以下の特定のパラメータ値に限定されない。
表4から、標準的な各エンコーダは、22個のトランジスタを使用し、0.2736の面積を占有し、面積比率は1.18であり、各非反転エンコーダ又は反転エンコーダは、15個のトランジスタを使用し、0.23256の面積を占有し、面積比率は1であることが分かり得る。標準的な各加算器は28個のトランジスタを使用し、0.2736の面積を占有し、面積比率は1.10であり、各反転コンプレッサは、24個のトランジスタを使用し、0.24816の面積を占有し、面積比率は1である。従って、本願の実施形態で提供される乗算器の面積は、より小さい。
表5から、標準的なエンコーダは、1ビットのデータ毎に符号化するために4回トグルし、静的電力消費は0.44522であり、静的電力消費比率は1.18であり、動的電力消費比率は1.09であることが分かり得る。非反転エンコーダ又は反転エンコーダは、1ビットのデータ毎に符号化するために3回トグルし、静的消費電力は0.4084であり、静的消費電力の比率と動的消費電力の比率は両方とも1である。標準的な加算器は、1ビットのデータ毎に圧縮するために4回トグルし、静的消費電力は0.57685であり、静的消費電力は1.10であり、動的消費電力は1.80である。反転コンプレッサは、1ビットのデータ毎に圧縮するために2回トグルし、静的電力消費は0.32122であり、静的電力消費比率及び動的電力消費比率は両方とも1である。従って、本願の実施形態で提供される乗算器の電力消費は、より低い。
本願の実施形態で提供される乗算器のエンコーダは、非反転符号化演算子又は反転符号化演算子を使用して符号化を行う。すなわち、乗算器は、非反転エンコーダ又は反転エンコーダを使用して符号化を行う。また、コンプレッサは、反転コンプレッサを使用して圧縮を行う。乗算器の実施態様の解決策は簡素である。例えば、乗算器内のMOSトランジスタの数を減らして、乗算器の面積を減らすことができる。さらに、乗算器が1ビットのデータ毎に符号化又は圧縮する場合に、対応するエンコーダ又はコンプレッサのトグル時間の量が少ないため、乗算器の消費電力は低くなる。
最後に、前述の説明は、本願の実施形態の単なる特定の実施態様であり、本願の保護範囲を制限することを意図するものではないことに留意されたい。本願で開示する技術的範囲内の変更又は交換は、本願の保護範囲内に含まれるものとする。従って、本願の保護範囲は、特許請求の範囲の保護範囲に従うものとする。