JP2017157181A - コンピューターのcpuで複素数を実数で計算する方法 - Google Patents

コンピューターのcpuで複素数を実数で計算する方法 Download PDF

Info

Publication number
JP2017157181A
JP2017157181A JP2016057589A JP2016057589A JP2017157181A JP 2017157181 A JP2017157181 A JP 2017157181A JP 2016057589 A JP2016057589 A JP 2016057589A JP 2016057589 A JP2016057589 A JP 2016057589A JP 2017157181 A JP2017157181 A JP 2017157181A
Authority
JP
Japan
Prior art keywords
complexes
complex
numbers
cpu
arithmetic operations
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
JP2016057589A
Other languages
English (en)
Inventor
正仁 櫨田
Masahito Utsugida
正仁 櫨田
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.)
Individual
Original Assignee
Individual
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 Individual filed Critical Individual
Priority to JP2016057589A priority Critical patent/JP2017157181A/ja
Publication of JP2017157181A publication Critical patent/JP2017157181A/ja
Pending legal-status Critical Current

Links

Abstract

【課題】 今までのCPUは、ハードウェア・レベルで複素数の四則演算を計算する事が出来ず、プログラムで複素数の四則演算の計算方法を記述していた。この複素数の四則演算の計算をハードウェア・レベルで計算できる様にする物である。【解決手段】 この為、この発明においては、コンピューターのCPUで複素数の四則演算をハードウェア・レベルで計算出来る様にする為に、複素数を行列表現する。そうすれば、複素数を普通の実数と同じように単なる数として記述できて、複素数の四則演算も簡単に出来る。

Description

この発明はデジタル回路に関する。
この発明は、コンピューターのCPUで、複素数の四則演算を実数で計算する方法である。
今までのコンピューターのCPUでは、複素数の四則演算をそのまま計算する事が出来ず、プログラムで複素数の四則演算の計算方法を記述し、計算している。
今までのCPUは、ハードウェア・レベルで複素数の四則演算を計算する事が出来ず、プログラムで複素数の四則演算の計算方法を記述していた。この複素数の四則演算の計算をハードウェア・レベルで計算できる様にする物である。
この為、この発明においては、コンピューターのCPUで複素数の四則演算をハードウェア・レベルで計算出来る様にする為に、複素数を行列表現する。そうすれば、複素数を普通の実数と同じように単なる数として記述できて、複素数の四則演算も簡単に出来る。
虚数単位を行列表現すると
Figure 2017157181
と表現できて、実数の単位を行列表現すると
Figure 2017157181
と表現できる。
複素数Z=aE+bIは
Figure 2017157181
と表現できる。
複素数Z=aE+bIとZ=cE+dIの掛け算は
Figure 2017157181
となり、複素数Z=aE+bIとZ=cE+dIの割り算は
Figure 2017157181
と表現出来る。Zで、c=1、d=0とすれば、実数の1で掛け算、
割り算をしている事になるので、単に複素数Zを代入している事になる。
複素数の実数部と虚数部の成分の抽出は行列の1列目を見れば、
符号が正の実数であり、1行1列目が実数部、2行1列目が虚数部である。
この発明により、ハードウェア・レベルで複素数の四則演算が実数の演算として簡単に計算できて、複素数を普通の実数と同じ様に単なる数として記述する事が出来る。しかも、CPUで数値計算は頻繁にするので、ハードウア・レベルで複素数の四則演算が出来れば、さらに科学技術計算が速くなる。
この為、この発明においては、コンピューターのCPUで複素数の四則演算をハードウェア・レベルで計算出来る様にする為に、複素数を行列表現する。そうすれば、複素数を普通の実数と同じように単なる数として記述できて、複素数の四則演算も簡単に出来る。
虚数単位を行列表現すると
Figure 2017157181
と表現できて、実数の単位を行列表現すると
Figure 2017157181
と表現できる。
複素数Z=aE+bIは
Figure 2017157181
と表現できる。
複素数Z=aE+bIとZ=cE+dIの足し算は
Figure 2017157181
となり、複素数Z=aE+bIとZ=cE+dIの引き算は
Figure 2017157181
と表現できる。
また、複素数Z=aE+bIとZ=cE+dIの掛け算は
Figure 2017157181
となり、複素数Z=aE+bIとZ=cE+dIの割り算は
Figure 2017157181
と表現出来る。Zで、c=1、d=0とすれば、実数の1で掛け算、割り算をしている事になるので、単に複素数Zを代入している事になる。
複素数の実数部と虚数部の成分の抽出は行列の1列目を見れば、符号が正の実数であり、1行1列目が実数部、2行1列目が虚数部である。
この複素数の計算を高速に計算する為に、掛け算回路が6個、FAが3個、割り算回路が2個あれば、内部の複素数の四則演算の、それぞれの計算回数はレジスターへのコピーも含めて
+Z :1回
−Z :1回
・Z :2回
/Z :2回
となる。但し、内部の計算用のレジスターが3個必要となる。
CPUのALUがアクセス出来るレジスターとして必要な数は、複素数をZ=aE+bI と Z=cE+dI とすれば、a、b、c、dの4個が必要となる。
足し算
Figure 2017157181
引き算
Figure 2017157181
掛け算
Figure 2017157181
割り算
Figure 2017157181
括弧でくっくた部分が、それぞれ1回のマシン・サイクルで同時にレジスターの移動・計算できる複素数の計算で、計算結果は、複素数の実数部分がレジスターaに、虚数部分がレジスターbに入って来る。掛け算命令で、レジスターaからレジスターeに数値をコピーするのは、実数部分をレジスターaに代入して戻す為にレジスターaの数値が書き換わり、複素数の実数部分と虚数部分の計算は、レジスターの中身の数値が影響する為に、新しいレジスターに数値をコピーし、実数部分と虚数部分の計算自体は、レジスターの数値とその計算する順番に依存する為である。割り算命令は、途中の計算結果を内部の計算用のレジスターに出力し、そのレジスターを参照して割り算を実行するので、レジスターa〜dの数値には影響しない為、レジスターをコピーする必要は無い。割り算命令は掛け算命令に数ステート、ステート数を増やせば良い。これで、アセンブラのニーモニック1行で複素数の四則演算がそれぞれ計算可能となる。コンピューターの高級言語の記述としては、複素数を意識する事無く、単なる数として四則演算を記述すれば良い。
CPUに掛け算回路が6個、FAが3個、割り算回路が2個あれば、CPUのALUがアクセス出来るレジスターとして必要な数は、複素数を
=aE+bI と Z=cE+dI とすれば、a、b、c、dの4個が必要となる。但し、ALUが直接アクセス出来ない、掛け算回路、割り算回路、FAが参照する内部の計算用のレジスターが3個必要となる。

Claims (1)

  1. コンピューターのCPUで複素数を実数で計算する方法
JP2016057589A 2016-03-04 2016-03-04 コンピューターのcpuで複素数を実数で計算する方法 Pending JP2017157181A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2016057589A JP2017157181A (ja) 2016-03-04 2016-03-04 コンピューターのcpuで複素数を実数で計算する方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2016057589A JP2017157181A (ja) 2016-03-04 2016-03-04 コンピューターのcpuで複素数を実数で計算する方法

Publications (1)

Publication Number Publication Date
JP2017157181A true JP2017157181A (ja) 2017-09-07

Family

ID=59809955

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2016057589A Pending JP2017157181A (ja) 2016-03-04 2016-03-04 コンピューターのcpuで複素数を実数で計算する方法

Country Status (1)

Country Link
JP (1) JP2017157181A (ja)

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH05233682A (ja) * 1992-02-21 1993-09-10 Matsushita Electric Ind Co Ltd ディジタル信号処理装置
JP2011048860A (ja) * 2003-12-09 2011-03-10 Arm Ltd Simd処理における定数の生成
JP2012111053A (ja) * 2010-11-19 2012-06-14 Konica Minolta Business Technologies Inc 画像形成装置、画像形成方法、画像形成システムおよび画像形成プログラム

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH05233682A (ja) * 1992-02-21 1993-09-10 Matsushita Electric Ind Co Ltd ディジタル信号処理装置
JP2011048860A (ja) * 2003-12-09 2011-03-10 Arm Ltd Simd処理における定数の生成
JP2012111053A (ja) * 2010-11-19 2012-06-14 Konica Minolta Business Technologies Inc 画像形成装置、画像形成方法、画像形成システムおよび画像形成プログラム

Similar Documents

Publication Publication Date Title
US10318290B2 (en) Merged floating point operation using a modebit
WO2017088457A1 (zh) 一种非线性函数的快速运算装置及其方法
JP4232838B2 (ja) 再構成可能なsimd型プロセッサ
EP3447634A1 (en) Non-linear function computing device and method
US10089078B2 (en) Circuit for performing a multiply-and-accumulate operation
JP6309196B2 (ja) 多項式演算のための部分積発生装置及び方法
US11520582B2 (en) Carry chain for SIMD operations
GB2522194A (en) Multiply adder
JP2015527642A5 (ja)
GB2553010A (en) Efficient data selection for a processor
JP2009271598A (ja) プロセッサ
TWI396130B (zh) 預飽和固定點乘法器
JP3600026B2 (ja) 浮動小数点演算器
KR102584001B1 (ko) 벡터 산술 명령
TW201721580A (zh) 用於影像處理器之多功能執行道
JP2017157181A (ja) コンピューターのcpuで複素数を実数で計算する方法
KR102208274B1 (ko) 특히 함수 모델을 순수 하드웨어에 기초하여 연산하기 위한 함수 모델 유닛 내에서 사용하기 위한 fma 유닛
JP2018045520A5 (ja)
Sangwan et al. Design and implementation of single precision pipelined floating point co-processor
US9804998B2 (en) Unified computation systems and methods for iterative multiplication and division, efficient overflow detection systems and methods for integer division, and tree-based addition systems and methods for single-cycle multiplication
JP2006127469A (ja) 演算装置
JP2015185076A5 (ja)
US20180046459A1 (en) Data processing
JP5813484B2 (ja) Vliwプロセッサと命令構造と命令実行方法
JP7119543B2 (ja) 加減算回路および加減算回路の制御方法

Legal Events

Date Code Title Description
A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20170815

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20171212