JP2017157181A - コンピューターのcpuで複素数を実数で計算する方法 - Google Patents
コンピューターのcpuで複素数を実数で計算する方法 Download PDFInfo
- 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
Links
Landscapes
- Complex Calculations (AREA)
Abstract
【課題】 今までのCPUは、ハードウェア・レベルで複素数の四則演算を計算する事が出来ず、プログラムで複素数の四則演算の計算方法を記述していた。この複素数の四則演算の計算をハードウェア・レベルで計算できる様にする物である。【解決手段】 この為、この発明においては、コンピューターのCPUで複素数の四則演算をハードウェア・レベルで計算出来る様にする為に、複素数を行列表現する。そうすれば、複素数を普通の実数と同じように単なる数として記述できて、複素数の四則演算も簡単に出来る。
Description
この発明はデジタル回路に関する。
この発明は、コンピューターのCPUで、複素数の四則演算を実数で計算する方法である。
今までのコンピューターのCPUでは、複素数の四則演算をそのまま計算する事が出来ず、プログラムで複素数の四則演算の計算方法を記述し、計算している。
今までのCPUは、ハードウェア・レベルで複素数の四則演算を計算する事が出来ず、プログラムで複素数の四則演算の計算方法を記述していた。この複素数の四則演算の計算をハードウェア・レベルで計算できる様にする物である。
この為、この発明においては、コンピューターのCPUで複素数の四則演算をハードウェア・レベルで計算出来る様にする為に、複素数を行列表現する。そうすれば、複素数を普通の実数と同じように単なる数として記述できて、複素数の四則演算も簡単に出来る。
虚数単位を行列表現すると
と表現できて、実数の単位を行列表現すると
と表現できる。
複素数Z=aE+bIは
と表現できる。
複素数Z1=aE+bIとZ2=cE+dIの掛け算は
となり、複素数Z1=aE+bIとZ2=cE+dIの割り算は
と表現出来る。Z2で、c=1、d=0とすれば、実数の1で掛け算、
割り算をしている事になるので、単に複素数Zを代入している事になる。
複素数の実数部と虚数部の成分の抽出は行列の1列目を見れば、
符号が正の実数であり、1行1列目が実数部、2行1列目が虚数部である。
虚数単位を行列表現すると
と表現できて、実数の単位を行列表現すると
と表現できる。
複素数Z=aE+bIは
と表現できる。
複素数Z1=aE+bIとZ2=cE+dIの掛け算は
となり、複素数Z1=aE+bIとZ2=cE+dIの割り算は
と表現出来る。Z2で、c=1、d=0とすれば、実数の1で掛け算、
割り算をしている事になるので、単に複素数Zを代入している事になる。
複素数の実数部と虚数部の成分の抽出は行列の1列目を見れば、
符号が正の実数であり、1行1列目が実数部、2行1列目が虚数部である。
この発明により、ハードウェア・レベルで複素数の四則演算が実数の演算として簡単に計算できて、複素数を普通の実数と同じ様に単なる数として記述する事が出来る。しかも、CPUで数値計算は頻繁にするので、ハードウエア・レベルで複素数の四則演算が出来れば、さらに科学技術計算が速くなる。
この為、この発明においては、コンピューターのCPUで複素数の四則演算をハードウェア・レベルで計算出来る様にする為に、複素数を行列表現する。そうすれば、複素数を普通の実数と同じように単なる数として記述できて、複素数の四則演算も簡単に出来る。
虚数単位を行列表現すると
と表現できて、実数の単位を行列表現すると
と表現できる。
複素数Z=aE+bIは
と表現できる。
複素数Z1=aE+bIとZ2=cE+dIの足し算は
となり、複素数Z1=aE+bIとZ2=cE+dIの引き算は
と表現できる。
また、複素数Z1=aE+bIとZ2=cE+dIの掛け算は
となり、複素数Z1=aE+bIとZ2=cE+dIの割り算は
と表現出来る。Z2で、c=1、d=0とすれば、実数の1で掛け算、割り算をしている事になるので、単に複素数Zを代入している事になる。
複素数の実数部と虚数部の成分の抽出は行列の1列目を見れば、符号が正の実数であり、1行1列目が実数部、2行1列目が虚数部である。
この複素数の計算を高速に計算する為に、掛け算回路が6個、FAが3個、割り算回路が2個あれば、内部の複素数の四則演算の、それぞれの計算回数はレジスターへのコピーも含めて
Z1+Z2 :1回
Z1−Z2 :1回
Z1・Z2 :2回
Z1/Z2 :2回
となる。但し、内部の計算用のレジスターが3個必要となる。
CPUのALUがアクセス出来るレジスターとして必要な数は、複素数をZ1=aE+bI と Z2=cE+dI とすれば、a、b、c、dの4個が必要となる。
足し算
引き算
掛け算
割り算
括弧でくっくた部分が、それぞれ1回のマシン・サイクルで同時にレジスターの移動・計算できる複素数の計算で、計算結果は、複素数の実数部分がレジスターaに、虚数部分がレジスターbに入って来る。掛け算命令で、レジスターaからレジスターeに数値をコピーするのは、実数部分をレジスターaに代入して戻す為にレジスターaの数値が書き換わり、複素数の実数部分と虚数部分の計算は、レジスターの中身の数値が影響する為に、新しいレジスターに数値をコピーし、実数部分と虚数部分の計算自体は、レジスターの数値とその計算する順番に依存する為である。割り算命令は、途中の計算結果を内部の計算用のレジスターに出力し、そのレジスターを参照して割り算を実行するので、レジスターa〜dの数値には影響しない為、レジスターをコピーする必要は無い。割り算命令は掛け算命令に数ステート、ステート数を増やせば良い。これで、アセンブラのニーモニック1行で複素数の四則演算がそれぞれ計算可能となる。コンピューターの高級言語の記述としては、複素数を意識する事無く、単なる数として四則演算を記述すれば良い。
CPUに掛け算回路が6個、FAが3個、割り算回路が2個あれば、CPUのALUがアクセス出来るレジスターとして必要な数は、複素数を
Z1=aE+bI と Z2=cE+dI とすれば、a、b、c、dの4個が必要となる。但し、ALUが直接アクセス出来ない、掛け算回路、割り算回路、FAが参照する内部の計算用のレジスターが3個必要となる。
虚数単位を行列表現すると
と表現できて、実数の単位を行列表現すると
と表現できる。
複素数Z=aE+bIは
と表現できる。
複素数Z1=aE+bIとZ2=cE+dIの足し算は
となり、複素数Z1=aE+bIとZ2=cE+dIの引き算は
と表現できる。
また、複素数Z1=aE+bIとZ2=cE+dIの掛け算は
となり、複素数Z1=aE+bIとZ2=cE+dIの割り算は
と表現出来る。Z2で、c=1、d=0とすれば、実数の1で掛け算、割り算をしている事になるので、単に複素数Zを代入している事になる。
複素数の実数部と虚数部の成分の抽出は行列の1列目を見れば、符号が正の実数であり、1行1列目が実数部、2行1列目が虚数部である。
この複素数の計算を高速に計算する為に、掛け算回路が6個、FAが3個、割り算回路が2個あれば、内部の複素数の四則演算の、それぞれの計算回数はレジスターへのコピーも含めて
Z1+Z2 :1回
Z1−Z2 :1回
Z1・Z2 :2回
Z1/Z2 :2回
となる。但し、内部の計算用のレジスターが3個必要となる。
CPUのALUがアクセス出来るレジスターとして必要な数は、複素数をZ1=aE+bI と Z2=cE+dI とすれば、a、b、c、dの4個が必要となる。
足し算
引き算
掛け算
割り算
括弧でくっくた部分が、それぞれ1回のマシン・サイクルで同時にレジスターの移動・計算できる複素数の計算で、計算結果は、複素数の実数部分がレジスターaに、虚数部分がレジスターbに入って来る。掛け算命令で、レジスターaからレジスターeに数値をコピーするのは、実数部分をレジスターaに代入して戻す為にレジスターaの数値が書き換わり、複素数の実数部分と虚数部分の計算は、レジスターの中身の数値が影響する為に、新しいレジスターに数値をコピーし、実数部分と虚数部分の計算自体は、レジスターの数値とその計算する順番に依存する為である。割り算命令は、途中の計算結果を内部の計算用のレジスターに出力し、そのレジスターを参照して割り算を実行するので、レジスターa〜dの数値には影響しない為、レジスターをコピーする必要は無い。割り算命令は掛け算命令に数ステート、ステート数を増やせば良い。これで、アセンブラのニーモニック1行で複素数の四則演算がそれぞれ計算可能となる。コンピューターの高級言語の記述としては、複素数を意識する事無く、単なる数として四則演算を記述すれば良い。
CPUに掛け算回路が6個、FAが3個、割り算回路が2個あれば、CPUのALUがアクセス出来るレジスターとして必要な数は、複素数を
Z1=aE+bI と Z2=cE+dI とすれば、a、b、c、dの4個が必要となる。但し、ALUが直接アクセス出来ない、掛け算回路、割り算回路、FAが参照する内部の計算用のレジスターが3個必要となる。
Claims (1)
- コンピューターのCPUで複素数を実数で計算する方法
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)
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 | 画像形成装置、画像形成方法、画像形成システムおよび画像形成プログラム |
-
2016
- 2016-03-04 JP JP2016057589A patent/JP2017157181A/ja active Pending
Patent Citations (3)
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) | 一种非线性函数的快速运算装置及其方法 | |
US9678716B2 (en) | Apparatus and method for performing absolute difference operation | |
EP3447634A1 (en) | Non-linear function computing device and method | |
GB2522194A (en) | Multiply adder | |
JP6309196B2 (ja) | 多項式演算のための部分積発生装置及び方法 | |
US11947964B2 (en) | Carry chain for SIMD operations | |
TW201030607A (en) | Instruction and logic for performing range detection | |
JP2015527642A5 (ja) | ||
GB2553010A (en) | Efficient data selection for a processor | |
JP2009271598A (ja) | プロセッサ | |
TWI396130B (zh) | 預飽和固定點乘法器 | |
JP3600026B2 (ja) | 浮動小数点演算器 | |
KR102584001B1 (ko) | 벡터 산술 명령 | |
TW201721580A (zh) | 用於影像處理器之多功能執行道 | |
JP2017157181A (ja) | コンピューターのcpuで複素数を実数で計算する方法 | |
JP2018045520A5 (ja) | ||
KR20140138053A (ko) | 특히 함수 모델을 순수 하드웨어에 기초하여 연산하기 위한 함수 모델 유닛 내에서 사용하기 위한 fma 유닛 | |
EP3214566B1 (en) | Preventing side channel attacks on a cpu | |
Sangwan et al. | Design and implementation of single precision pipelined floating point co-processor | |
JP2006127469A (ja) | 演算装置 | |
JP2015185076A5 (ja) | ||
US9928803B2 (en) | Method for generating a control program that can be executed on a control system | |
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 |