[go: up one dir, main page]

JP2011159174A - ロジスティック写像の演算装置 - Google Patents

ロジスティック写像の演算装置 Download PDF

Info

Publication number
JP2011159174A
JP2011159174A JP2010021548A JP2010021548A JP2011159174A JP 2011159174 A JP2011159174 A JP 2011159174A JP 2010021548 A JP2010021548 A JP 2010021548A JP 2010021548 A JP2010021548 A JP 2010021548A JP 2011159174 A JP2011159174 A JP 2011159174A
Authority
JP
Japan
Prior art keywords
input
adder
column
output
stage
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
JP2010021548A
Other languages
English (en)
Other versions
JP5603609B2 (ja
Inventor
Shinya Kobayashi
真也 小林
Shigeki Sano
茂樹 佐野
Yosuke Maekawa
陽介 前川
Masaharu Imai
正治 今井
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.)
Yazaki Corp
Original Assignee
Yazaki 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 Yazaki Corp filed Critical Yazaki Corp
Priority to JP2010021548A priority Critical patent/JP5603609B2/ja
Publication of JP2011159174A publication Critical patent/JP2011159174A/ja
Application granted granted Critical
Publication of JP5603609B2 publication Critical patent/JP5603609B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Abstract

【課題】ロジステック写像の演算を高速で実行することが可能な演算装置を提供する。
【解決手段】ロジステック写像の桁数が6桁である場合に、6段、5列の加算器を備える配列型乗算器を用いてロジステック写像の漸化式を展開した「Xt*notXt+Xt」の演算を実行する。この場合、第1段の各加算器に「Xt」のビット列であるx0〜x5を入力することにより「Xt」の加算処理が実行さえる。従って、別途「Xt」を加算する処理を実行することなく、ロジステック写像を演算することができ、従来と対比して「Xt」を反転して「+1」とする処理が不要となるので、ロジステック写像の演算速度を高速化することが可能となる。
【選択図】 図1

Description

本発明は、ロジスティック写像を演算する演算装置に係り、特に、演算速度を高速化する技術に関する。
従来より質の良い疑似乱数を生成するため、ロジスティック写像が用いられている。ロジスティック写像は、例えば、特開2000−252751号公報(特許文献1)に記載されているように、漸化式「Xt+1=4Xt(1−Xt)」にて求められる。一般に、漸化式における入力値「Xt」は2進N桁の数値で示され、上記漸化式で求められる出力値「Xt+1」は2N桁(N=6の場合には12桁)の2進数となるので、上位3ビット目からN個のビットで示されるN桁の数値を出力値「Xt+1」としている。例えば、N=6の場合には、2進12桁の数値が得られるので、第4桁から第9桁までの6桁の数値を出力値「Xt+1」とする。この出力値「Xt+1」は次回の入力値「Xt」として用いられる。
上記の漸化式を演算する上で、右辺の「1−Xt」は、入力値「Xt」の2の補数であるから、反転してプラス1とすれば求められる。即ち、(1−Xt)=(notXt+1)で示すことができる。
図5は、「Xt=001011」である場合の漸化式の演算手順を示す説明図である。上述したように(1−Xt)=(notXt+1)であるから、(1−Xt)=「110101」となる。そして、図5に示すように「Xt(1−Xt)」の演算を実行することにより、「001001000111」を得ることができる。
また、漸化式はこれを4倍するので、演算結果の下位に「00」を付加し、更に、上位の2ビットの「00」を削除した結果、即ち、「100100011100」が「4Xt(1−Xt)」の演算結果として得られる。この上位6桁である「100100」が出力値「Xt+1」となる。
また、上記の演算を高速に実行するために、配列型乗算器を用いることが考えられる。図6は、「Xt=001011」と「notXt+1=110101」との乗算(2進6桁の乗算)を、6段、5列の加算器を有する配列型乗算器51を用いて演算する手順を示す説明図である。
図6に示すように、この配列型乗算器51は、第1段〜第6段にそれぞれ5個の加算器が設けられている。以下では、最上段を第1段、最下段を第6段とし、右端を第1列、左端を第5列として示すことにする。
上記の各加算器のうち、第6段、第1列の加算器が半加算器(HA)であり、それ以外の加算器は全て全加算器(FA)である。
全加算器(FA)は、図7(a)に示すように3つの入力、及び2つの出力を有しており、このうち上側からの入力をa入力、右上からの入力をb入力、右側からの入力をc入力とする。また、下側への出力を和としてS(サム)出力、左下への出力を桁上がりとしてC(キャリー)出力とする。また、図7(b)に示す如くの論理回路で示すことができる。故に、a入力、b入力、c入力に入力されるデータが全て1である場合には、S出力、C出力を共に1とし、1が2個存在する場合にはS出力を0、C出力を1とし、1が1個存在する場合にはS出力を1、C出力を0とし、1が存在しない場合(全て0の場合)にはS出力、C出力共に0とする。
また、半加算器(HA)は、図12(a)に示すように、図7に示した全加算器(FA)のc入力が存在しない構成である。また、図12(b)に示す論理回路で示すことができる。従って、a入力、b入力に入力されるデータが共に1である場合には、S出力を0、C出力を1とし、いずれか一方が1である場合にはS出力を1、C出力を0とし、1が存在しない場合(双方が0の場合)にはS出力、C出力共に0とする。
ここで、被乗算値である「Xt=001011」の右側の桁から左側の桁に向けて符号x0〜x5で示す。従って、x0=1、x1=1、x2=0、x3=1、x4=0、x5=0である。
また、乗算値である「notXt+1=110101」の右側の桁から左側の桁に向けて符号y0〜y5で示す。従って、y0=1、y1=0、y2=1、y3=0、y4=1、y5=1である。
そして、図6に示すように、第1段、第1〜第5列の全加算器(FA)のa入力には、「xm*y0」(但し、m=1〜5)の演算結果が入力される。また、「x0*y0」の演算結果はP0として出力される。なお、図6中の括弧内の数字は演算結果の数値を示す。例えば、第2段、第1列の全加算器(FA)のc入力に入力される「x0y2(1)」の括弧内の数値である「1」は、「x0*y2」の演算の結果が「1」であることを示している。更に、図6では乗算を示す記号「*」を省略している。例えば、「x0y0」は「x0*y0」を示す。後述する図2〜図4も同様である。
また、第1段、第1〜第5列の全加算器(FA)のb入力には全て「0」が入力される。更に、第1段の第1〜第5列の全加算器(FA)のc入力には、「xm-1*y1」(但し、1≦m≦5)の演算結果が入力される。
一方、第2段、第1〜第4列の全加算器(FA)のa入力には、第1段、第2〜第5列の全加算器(FA)のS出力が入力され、第2段、第5列の全加算器(FA)のa入力には「x5*y1」の演算結果が入力される。第2段、第1〜第5列の全加算器(FA)のb入力には、第1段の第1〜第5列のC出力が入力される。更に、第2段、第1〜第5列の全加算器のc入力には、「xm-1*y2」(但し、1≦m≦5)の演算結果が入力される。
同様に、第3段、第4段、第5段における第1〜第5列の全加算器のa、b、c入力に各種のデータが入力され、S出力、C出力を出力する。
更に、第6段の第1〜第4列の加算器(FA、HA)のa入力には、第5段、第2〜第5列の全加算器のS出力が入力され、第6段、第5列の全加算器のa入力には「x5*y5」の演算結果が入力される。第6段、第1〜第5列の加算器(FA、HA)のb入力には、第5段、第1〜第5列のC出力が入力される。更に、第6段の第2〜第5列の全加算器(FA)のc入力には、第6段、第1列〜第4列の加算器(FA、HA)のC出力が入力される。
そして、第1段、第1列の全加算器(FA)のS出力をP1とし、第2段、第1列の全加算器(FA)のS出力をP2とし、第3段、第1列の全加算器(FA)のS出力をP3とし、第4段、第1列の全加算器(FA)のS出力をP4とし、第5段、第1列の全加算器(FA)のS出力をP5とし、第6段、第1列の半加算器(HA)のS出力をP6とし、第6段、第2列の全加算器(FA)のS出力をP7とし、第6段、第3列の全加算器(FA)のS出力をP8とし、第6段、第4列の全加算器(FA)のS出力をP9とし、第6段、第5列の全加算器(FA)のS出力をP10とし、第6段、第5列の全加算器(FA)のC出力をP11として、P0〜P11からなる2進12桁の演算結果が得られる。
そして、上述したように、上位3ビット目から6桁目までの数値を取り出して、出力値「Xt+1」とすることができる。図6に示す例では、P4〜P9までの6桁の数値が出力値「Xt+1」となる。
特開2000−252751号公報
しかしながら、上述したロジスティック写像の演算方法では、「Xt」に「notXt+1」を乗じる構成としており、配列型乗算器を用いて乗算を実行する前に「Xt」を反転して「+1」する加算処理が必要になる。
図8は、「notX0」〜「notX5」からなる6桁の2進数に、1を加算する演算処理を示す説明図であり、6個の半加算器101-1〜101-6を用いて逐次加算により、演算処理を行っている。この場合には、6桁分の半加算器チェーンに要する演算時間が必要になる。即ち、半加算器101-1による演算処理が終了した後に、半加算器101-2による演算処理を実行し、順次101-3〜101-6での演算を行うので、逐次型加算器を用いて加算処理するのであれば処理時間が大きくなる。また、ロジステック写像の桁数が、例えば100桁、1000桁と増大すると、この処理時間による遅れがより顕著となり、演算処理時間の短縮化を妨げていた。
本発明は、このような従来の課題を解決するためになされたものであり、その目的とするところは、ロジスティック写像を高速に演算することが可能なロジスティック写像の演算装置を提供することにある。
上記目的を達成するため、本願請求項1に記載の発明は、図2に示す第1実施形態、図3に示す第2実施形態及び図4に示す第3実施形態に係り、漸化式「Xt+1=4Xt(1−Xt)」で定義されるロジスティック写像Xt+1を演算する演算装置において、前記「Xt」、「Xt+1」はN桁の2進数で示され、且つ前記「Xt」はx(0)〜x(N-1)のビット列で示され、少なくともN段、(N−1)列の加算器からなる配列型乗算器を備え、このうち第1段の(N−1)個の加算器は、少なくとも2つの入力を有する加算器であり、前記漸化式を展開して「Xt+1=4(Xt*notXt+Xt)」とした場合に、前記配列型乗算器を用いて右辺の「Xt*notXt」を演算すると共に、該配列型乗算器の第1段、第m列(但し、1≦m≦N−1)の加算器の1つの入力に、x(m)の数値を入力して加算することにより、前記展開式の「Xt」を加算する処理を実行することを特徴とする。
請求項2に記載の発明は、図2に示す第1実施形態に係り、漸化式「Xt+1=4Xt(1−Xt)」で定義されるロジスティック写像Xt+1を演算する演算装置において、前記「Xt」、「Xt+1」はN桁の2進数で示され、前記漸化式を展開して「Xt+1=4(Xt*notXt+Xt)」とした場合に、下記構成を備える(A)配列型乗算器、及び(B)加算回路を用いて前記展開した漸化式の「Xt*notXt+Xt」で示される演算を行うことを特徴とするロジスティック写像の演算装置である。(A)前記配列型乗算器は、第1列から第(N−1)列までの(N−1)個の全加算器からなる加算器群が、第1段から第N段まで設けられ、且つ、前記各全加算器は各段毎に1列ずつシフトして配置する。この前記各全加算器は、図7に示すように3つの入力a、b、c及び2つの出力C、Sを有し、前記各入力a、b、cに含まれる「1」の個数が0個のときに出力S、C共に「0」とし、1個のときに出力Sのみを「1」とし、2個のときに出力Cのみを「1」とし、3個のときに出力S、C共に「1」とする演算を行う。該配列型乗算器には、各桁がx(0)〜x(N-1)で示される2進N桁の被乗算値(Xt)と、各桁がy(0)〜y(N-1)で示される2進N桁の乗算値(notXt)との乗算を実施する際に、第1段、第m列(但し、1≦m≦N−1)の全加算器のa入力に「x(m)*y(0)」の演算結果を入力し、b入力にそれぞれx(m)を入力し、c入力に「x(m-1)*y(1)」の演算結果を入力する。第n段、第m列(但し、2≦n≦N−1、1≦m≦N−2)の全加算器は、a入力に第(n−1)段、第(m+1)列の全加算器のS出力を入力し、b入力に第(n−1)段、第m列の全加算器のC出力を入力し、c入力に「x(m-1)*y(n)」の演算結果を入力する。第n段(但し、2≦n≦N−1)、第(N−1)列の全加算器は、a入力に「x(N-1)*y(n-1)」の演算結果を入力し、b入力に第(n−1)段、第(N−1)列の全加算器のC出力を入力し、c入力に「x(N-2)*y(n)」の演算結果を入力する。第N段、第m列(但し、1≦m≦N−2)の全加算器は、a入力に第(N−1)段、第(m+1)列の全加算器のS出力を入力し、b入力に第(N−1)段、第m列の全加算器のC出力を入力し、c入力にはm≠1の場合に第N段、第(m−1)列の全加算器のC出力を入力する。第N段、第(N−1)列の全加算器は、a入力に「x(n-1)*y(n-1)」の演算結果を入力し、b入力に第(N−1)段、第(N−1)列の全加算器のC出力を入力し、c入力に第(N−2)列の全加算器のC出力を入力するように構成する。(B)前記加算回路は、2つの入力a、b及び2つの出力C、Sを有し、前記各入力a、bに含まれる「1」の個数が0個のときに出力S、C共に「0」とし、1個のときに出力Sのみを「1」とし、2個のときに出力Cのみを「1」とする演算を行う第1〜第(N−1)の半加算器(HA)を有する。前記第nの半加算器(n=1〜N−1)は、a入力に第n段、第1列の全加算器のS出力が入力され、b入力には、n=2〜N−1の場合に第(n−1)の半加算器のC出力が入力されn=1の場合に「0」が入力され、第(N−1)の半加算器のC出力を第N段、第1列の全加算器のc入力に出力し、第1〜第(N−1)の半加算器のS出力を、それぞれP(1)〜P(N−1)とし、第N段、第m列(但し、m=1〜N−1)の全加算器のS出力を、それぞれP(N)〜P(2N−2)とし、前記P(1)〜P(2N−2)の各ビットから、連続したN桁のビットを取り出して、前記展開した漸化式の「Xt*notXt+Xt」の演算結果とする。
また、請求項2において、前記P(1)〜P(2N−2)の各ビットのうち、P(N−2)〜P(2N−3)までのN桁のビットを取り出して、前記展開した漸化式の「Xt*notXt+Xt」の演算結果とすることも可能である。
請求項3に記載の発明は、図3に示す第2実施形態に係り、漸化式「Xt+1=4Xt(1−Xt)」で定義されるロジスティック写像Xt+1を演算する演算装置において、前記「Xt」、「Xt+1」はN桁の2進数で示され、前記漸化式を展開して「Xt+1=4(Xt*notXt+Xt)」とした場合に、下記構成を備える(A)配列型乗算器、及び(B)加算回路を用いて前記展開した漸化式の「Xt*notXt+Xt」で示される演算を行うことを特徴とするロジスティック写像の演算装置である。(A)前記配列型乗算器は、第1列から第(N−1)列までの(N−1)個の全加算器からなる加算器群が、第1段から第(N−1)段まで設けられ、且つ、第N段には(N−2)個の加算器からなる加算器群が設けられ、更に、前記各段の全加算器は各段毎に1列ずつシフトして配置する。この前記各全加算器は、図7に示すように、3つの入力a、b、c及び2つの出力C、Sを有し、前記各入力a、b、cに含まれる「1」の個数が0個のときに出力S、C共に「0」とし、1個のときに出力Sのみを「1」とし、2個のときに出力Cのみを「1」とし、3個のときに出力S、C共に「1」とする演算を行う。該配列型乗算器は、各桁がx(0)〜x(N-1)で示される2進N桁の被乗算値「Xt」と、各桁がy(0)〜y(N-1)で示される2進N桁の乗算値「notXt」との乗算を実施する際に、第1段、第m列(但し、1≦m≦N−1)の全加算器は、a入力に「x(m)*y(0)」の演算結果を入力し、b入力にそれぞれx(m)を入力し、c入力に「x(m-1)*y(1)」の演算結果を入力する。第n段、第m列(但し、2≦n≦N−1、m≠N−1)の全加算器は、a入力に第(n−1)段、第(m+1)列の全加算器のS出力を入力し、b入力に第(n−1)段、第m列の全加算器のC出力を入力し、c入力に「x(m-1)*y(n)」の演算結果を入力する。第n段(但し、2≦n≦N−1)、第(N−1)列の全加算器は、a入力に「x(N-1)*y(n-1)」の演算結果を入力し、b入力に第(n−1)段、第(N−1)列の全加算器のC出力を入力し、c入力に「x(N-2)*y(n)」の演算結果を入力する。第N段、第m列(但し、1≦m≦N−2)の全加算器は、a入力に第(N−1)段、第(m+1)列の全加算器のS出力を入力し、b入力に第(N−1)段、第m列の全加算器のC出力を入力し、c入力にはm≠1の場合に第N段、第(m−1)列の全加算器のC出力を入力するように構成する。(B)前記加算回路は、(N−3)個の、第1〜第(N−3)のキャリー計算器、及び2個の、第(N−2)の半加算器、及び第(N−1)の半加算器を備え、前記半加算器は、2つの入力a、b及び2つの出力C、Sを有し、前記各入力a、bに含まれる「1」の個数が0個のときに出力S、C共に「0」とし、1個のときに出力Sのみを「1」とし、2個のときに出力Cのみを「1」とする演算を行う。また、前記キャリー計算器は、2つの入力a、b及び1つの出力Cを有し、前記各入力a、bに含まれる「1」の個数が2個のときに出力Cを「1」とし、それ以外の場合に「0」とする演算を行う。第nのキャリー計算器(但し、n=1〜N−3)は、a入力に第n段、第1列の全加算器のS出力が入力され、b入力にはn≠1の場合に第(n−1)のキャリー計算器のC出力が入力され、n=1の場合に「0」が入力される。前記第(N−2)の半加算器は、a入力に第(N−2)段、第1列の全加算器のS出力が入力され、b入力に第(N−3)のキャリー計算器のC出力が入力される。前記第(N−1)の半加算器は、a入力に第(N−1)段、第1列の全加算器のS出力が入力され、b入力に第(N−2)のキャリー計算器のC出力が入力され、且つ、C出力を第N段、第1列の全加算器のc入力に出力し、前記第(N−2)の半加算器のS出力をP(N−2)、第(N−1)の半加算器のS出力をP(N−1)とし、第N段、第m列(但し、m=1〜N−2)の全加算器のS出力を、それぞれP(N)〜P(2N−3)とし、P(N−2)〜P(2N−3)のN桁のビットを前記展開した漸化式の「Xt*notXt+Xt」の演算結果とする。
また、請求項3において、図9に示すように、前記第1〜第(N−3)のキャリー計算器は2入力のAND回路で構成することも可能である。
請求項4に記載の発明は、図4に示す第3実施形態に係り、漸化式「Xt+1=4Xt(1−Xt)」で定義されるロジスティック写像Xt+1を演算する演算装置において、前記「Xt」、「Xt+1」はN桁の2進数で示され、前記漸化式を展開して「Xt+1=4(Xt*notXt+Xt)」とした場合に、下記構成を備える(A)配列型乗算器を用いて前記展開した漸化式の「Xt*notXt+Xt」で示される演算を行うことを特徴とするロジスティック写像の演算装置である。(A)前記配列型乗算器は、第1列から第(N−1)列までの(N−1)個の加算器からなる加算器群が、第1段から第(N−1)段まで設けられ、且つ、第N段には(N−2)個の加算器からなる加算器群が設けられ、更に、前記各段の加算器は各段毎に1列ずつシフトして配置される。前記各加算器は3つの入力a、b、cと2つの出力C、Sを有する全加算器、2つの入力a、bと2つの出力C、Sを有する半加算器、3つの入力a、b、cと1つの出力Cを有するキャリー計算器、及び、3つの入力a、b、cと1つの出力Sを有するサム計算器のうちのいずれかである。前記各加算器は、各入力a、b、cに含まれる「1」の個数が0個のときに出力S、C共に「0」とし、1個のときに出力Sのみを「1」とし、2個のときに出力Cのみを「1」とし、3個のときに出力S、C共に「1」とする演算を行う。該配列型乗算器は、各桁がx(0)〜x(N-1)で示される2進N桁の被乗算値「Xt」と、各桁がy(0)〜y(N-1)で示される2進N桁の乗算値「notXt」との乗算を実施する際に、第1段の加算器群は、第1列が前記キャリー計算器、第2列が前記半加算器、その他の列が前記全加算器で構成される。第m列(但し、1≦m≦N−1)の加算器はa入力に「x(m)*y(0)」の演算結果を入力し、b入力にそれぞれx(m)を入力し、更に、第2列を除く各列の加算器のc入力に「x(m-1)*y(1)」の演算結果を入力する。第n段(但し、2≦n≦N−3)の加算器群は、第1列が前記キャリー計算器、第(n+1)列が前記半加算器、その他の列が前記全加算器で構成される。第(N−1)列の加算器はa入力に「x(N-1)*y(n-1)」の演算結果を入力し、第m列(但し、1≦m≦N−2)の加算器は、a入力に第(n−1)段、第(m+1)列の加算器のS出力を入力し、第m列(但し、1≦m≦N−1)の加算器は、b入力に、第(n−1)段、第m列の加算器のC出力を入力し、第m列(但し、1≦m≦N−1、(n+1)を除く)の加算器は、c入力に「x(m-1)*y(n)」の演算結果を入力する。第(N−2)段の加算器群は、第(N−1)列が前記半加算器、その他の列が前記全加算器で構成される。第(N−1)列の加算器は、a入力に「x(N-1)*y(N-3)」の演算結果を入力し、第m列(但し、1≦m≦N−2)の加算器は、a入力に第(N−3)段、第(m+1)列の加算器のS出力を入力し、第m列(但し、1≦m≦N−1)の加算器は、b入力に、第(N−3)段、第m列の加算器のC出力を入力し、第m列(但し、1≦m≦N−2)の加算器のc入力に「x(m-1)*y(N-2)」の演算結果を入力する。第(N−1)段の加算器群は、第(N−1)列が前記サム計算器、その他の列が前記全加算器で構成される。第(N−1)列の加算器は、a入力に「x(N-1)*y(N-2)」の演算結果を入力し、第m列(但し、1≦m≦N−2)の加算器は、a入力に第(N−2)段、第(m+1)列、の加算器のS出力を入力し、第m列(但し、1≦m≦N−1)の加算器は、b入力に、第(N−2)段、第m列の加算器のC出力を入力し、第m列(但し、1≦m≦N−1)の加算器は、c入力に「x(m-1)*y(N-1)」の演算結果を入力する。第N段の加算器群は、第1列が前記半加算器、第(N−2)列が前記サム計算器、その他の列が前記全加算器で構成される。第m列(但し、1≦m≦N−2)の加算器は、a入力に第(N−1)段、第(m+1)列の加算器のS出力を入力し、b入力に第(N−1)段、第m列、の加算器のC出力を入力し、第m列(但し、2≦m≦N−2)のc入力に第N段、第(m−1)列の加算器のC出力を入力するように構成される。第(N−2)段、1列の加算器のS出力をP(N−2)、第(N−1)段、1列の加算器のS出力をP(N−1)とし、且つ、第N段、第1〜第(N−2)列の加算器のS出力をそれぞれP(N)〜P(2N−3)とし、P(N−2)〜P(2N−3)のN桁のビットを前記展開した漸化式の「Xt*notXt+Xt」の演算結果とすることを特徴とする。
また、請求項4において、前記半加算器は、前記c入力が常にゼロである全加算器で構成することも可能である。
更に、請求項4において、前記キャリー計算器は、図10に示すように、一つの半加算器、一つのAND回路と一つのOR回路で構成することも可能である。
また、請求項4において、前記サム計算器は、図11に示すように、3入力の排他的論理和回路で構成することも可能である。
本発明に係るロジスティック写像の演算装置では、ロジスティック写像の漸化式「Xt+1=4Xt(1−Xt)」を展開して「Xt+1=4(Xt*notXt+Xt)」とし、配列型乗算器を用いて右辺の「Xt*notXt」を演算する。また、配列型乗算器の第1段、各列に設けられた加算器の一つの入力(例えば、b入力)に「Xt」のビット列であるx0、x1、x2、・・・、xn-1(nは桁数)をそれぞれ入力するので実質的にXtが加算されており、「Xt*notXt+Xt」が実行されていることになる。従って、従来の演算方法と比較してロジスティックス写像の漸化式を演算する前に、予め演算する必要がある「notXt」、即ち「Xt」の値を反転して「+1」とする処理を省略できるので、演算速度を高速化することができる。
本発明の実施形態に係るロジスティック写像の演算装置の構成を示すブロックである。 本発明の第1実施形態に係るロジスティック写像の演算装置の、演算手段の構成を示すブロック図である。 本発明の第2実施形態に係るロジスティック写像の演算装置の、演算手段の構成を示すブロック図である。 本発明の第3実施形態に係るロジスティック写像の演算装置の、演算手段の構成を示すブロック図である。 従来における「Xt*(notXt+1)」の演算手順を示す説明図である。 従来における2進数で表す2つの値を乗算する配列型乗算器を示す説明図である。 全加算器の入力、出力の関係を示す説明図である。 6桁の全加算器を用いて「+1」の演算を実行する手順を示す説明図である。 本発明の実施形態に係るロジスティックス写像の演算装置で用いられる2入力のキャリー計算器の論理回路を示す図である。 本発明の実施形態に係るロジスティックス写像の演算装置で用いられる3入力のキャリー計算器の論理回路を示す図である。 本発明の実施形態に係るロジスティックス写像の演算装置で用いられる3入力のサム計算器の論理回路を示す図である。 本発明の実施形態に係るロジスティックス写像の演算装置で用いられる半加算器、及び半加算器の論理回路を示す図である。 本発明の実施形態に係るロジスティックス写像の演算装置で用いられる桁上げ先見加算器の論理回路を示す図である。
以下、本発明の実施形態を図面に基づいて説明する。図1は、本発明の実施形態に係るロジスティック写像の演算装置の構成を示すブロック図である。図1に示すように、この演算装置10は、初期値X0或いは前回の演算で求められた出力値Xt+1を入力値Xtとして入力する入力部11と、該入力部11に入力された入力値Xtを反転させたnotXtを演算する反転演算部12と、後述する手順で「Xt*notXt+Xt」を演算する演算手段13と、この演算手段13で求められた演算結果の上位3ビット目からNビット分の数値を出力値Xt+1として出力し、且つ、入力部11にフィードバックするセレクタ14と、を備えている。
そして、後述する第1〜第3実施形態では、ロジスティック写像の漸化式「Xt+1=4Xt(1−Xt)」を展開して「Xt+1=4(Xt*notXt+Xt)」とし、配列型乗算器を用いて右辺の「Xt*notXt+Xt」を演算することにより、従来方法で必要とされていた「+1」の処理を不要として演算速度を高速化する。以下、詳細に説明する。
[第1実施形態]
図2は、本発明の第1実施形態に係るロジスティック写像の演算装置の演算手段13の構成を示す説明図である。図2に示すように、この演算手段13は、配列型乗算器21と、加算回路22を備えている。なお、本実施形態では、ロジステック写像の入力値「Xt」が6桁の2進数であり、「Xt=001011」、「notXt=110100」である場合を例に挙げて説明する。
図2に示すように、配列型乗算器21は、第1段〜第6段(N桁の場合には第1段〜第N段)にそれぞれ5個(N−1個)の全加算器(FA)が設けられている。以下では、最上段を第1段、最下段を第6段とし、右端を第1列、左端を第5列として示すことにする。
全加算器(FA)は、前述した図7に示したように、3つの入力、及び2つの出力を有しており、このうち上側からの入力をa入力、右上からの入力をb入力、右側からの入力をc入力とする。また、下側への出力をS出力、左下への出力をC出力とする。そして、a入力、b入力、c入力に入力されるデータが全て1である場合には、S出力、C出力を共に1とし、1が2個存在する場合にはS出力を0、C出力を1とし、1が1個存在する場合にはS出力を1、C出力を0とし、1が存在しない場合(全て0の場合)にはS出力、C出力共に0とする。
ここで、第1〜第5段に設けられる加算器は、桁上げ保存加算器という。図2の最終段(第6段)では、順次桁上げ加算器が用いられているが、この加算器は桁上げ先見加算器で置き換えることができる。また、周知の技術として、桁上げ先見加算器は、順次桁上げ加算器よりも演算時間が短いことが知られている。但し、桁上げ先見加算器は桁数の2乗に比例してハードウェア量が増えるため、順次桁上げ加算器よりも演算時間の短い桁上げ先見加算器を用いる。なお、桁上げ先見加算器の詳細については後述する。
また、加算回路22は、6個の半加算器(HA)22-1〜22-6を備えている。半加算器(HA)22-1〜22-6は、前述した全加算器(FA)と対比してc入力を備えていない点で相違する。そして、a入力、b入力に入力されるデータが共に1である場合には、S出力を0、C出力を1とし、入力データのいずれか一方が1である場合にはS出力を1、C出力を0とし、1が存在しない場合(双方が0の場合)にはS出力、C出力共に0とする。
ここで、「Xt=001011」の右側の桁から左側の桁に向けて符号x0〜x5で示す。従って、x0=1、x1=1、x2=0、x3=1、x4=0、x5=0である。また、「notXt=110100」の右側の桁から左側の桁に向けて符号y0〜y5で示す。従って、y0=0、y1=0、y2=1、y3=0、y4=1、y5=1である。
そして、図2に示すように、第1段の第1〜第5列の全加算器(FA)のa入力には、「xm*y0」(但し、m=1〜5)の演算結果が入力される。また、「x0*y0」の演算結果は半加算器(HA)22-1のa入力に入力される。
また、第1段の第1〜第5列の全加算器(FA)のb入力にはxm(但し、1≦m≦5)が入力される。更に、x0は半加算器(HA)22-1のb入力に入力される。
また、第1段の第1〜第5列の全加算器(FA)のc入力には、「xm-1*y1」(但し、1≦m≦5)の演算結果が入力される。第1段、第1列の全加算器(FA)のS出力は、半加算器(HA)22-2のa入力に入力される。
一方、第2段、第1〜第4列の全加算器(FA)のa入力には、第1段、第2〜第5列の全加算器(FA)のS出力が入力され、第2段、第5列の全加算器(FA)のa入力には「x5*y1」の演算結果が入力される。第2段、第1〜第5列の全加算器(FA)のb入力には、第1段、第1〜第5列の全加算器(FA)のC出力が入力される。更に、第2段、第1〜第5列の全加算器(FA)のc入力には、「xm-1*y2」(但し、1≦m≦5)の演算結果が入力される。第2段、第1列のS出力は半加算器(HA)22-3のa入力に入力される。
同様に、第3段、第4段、第5段における第1〜第5列の全加算器(FA)のa、b、c入力に各種のデータが入力され、S出力、C出力を出力する。そして、第3段、第1列の全加算器(FA)のS出力は、半加算器(HA)22-4のa入力に入力され、第4段、第1列の全加算器(FA)のS出力は、半加算器(HA)22-5のa入力に入力され、第5段、第1列の全加算器(FA)のS出力は、半加算器(HA)22-6のa入力に入力される。
半加算器(HA)22-1のC出力は、隣接する半加算器(HA)22-2のb入力に入力され、半加算器(HA)22-2のC出力は、隣接する半加算器(HA)22-3のb入力に入力され、半加算器(HA)22-3のC出力は、隣接する半加算器(HA)22-4のb入力に入力され、半加算器(HA)22-4のC出力は、隣接する半加算器(HA)22-5のb入力に入力され、半加算器(HA)22-5のC出力は、隣接する半加算器(HA)22-6のb入力に入力され、半加算器(HA)22-6のC出力は、第6段、第1列の全加算器(FA)のc入力に入力される。
また、第6段、第1〜第4列の全加算器(FA)のa入力には、第5段、第2〜第5列の全加算器(FA)のS出力が入力され、第6段、第5列の全加算器(FA)のa入力には「x5*y5」の演算結果が入力され、第6段、第1〜第5列の全加算器(FA)のb入力には、第5段、第1〜第5列の全加算器(FA)のC出力が入力され、第6段、第2〜第5列の全加算器(FA)のc入力には、第6段、第1〜第4列の全加算器(FA)のC出力が入力され、第6段、第1列の全加算器(FA)のc入力には半加算器(HA)22-6のC出力が入力される。
そして、半加算器(HA)22-1のS出力をP0、半加算器(HA)22-2のS出力をP1、半加算器(HA)22-3のS出力をP2、半加算器(HA)22-4のS出力をP3、半加算器(HA)22-5のS出力をP4、半加算器(HA)22-6のS出力をP5とし、且つ、第6段、第1列の全加算器(FA)のS出力をP6とし、第6段、第2列の全加算器(FA)のS出力をP7とし、第6段、第3列の全加算器(FA)のS出力をP8とし、第6段、第4列の全加算器(FA)のS出力をP9とし、第6段、第5列の全加算器(FA)のS出力をP10とし、第6段、第5列の全加算器(FA)のC出力をP11とする。
そして、P0〜P11のビット列で構成される2進12桁の数値が「Xt」と「notXt」との乗算結果となり、このうち、上位3ビット目から6ビット分の数値、即ちP4〜P9の6桁の数値を出力値「Xt+1」とする。また、この出力値「Xt+1」を図1に示した入力部11に供給して次回の入力値とする。こうして、「Xt」と「notXt」との乗算が実行されることになる。
上述した演算によれば、第1段の各全加算器(FA)のb入力に、「Xt+1」のビット列であるx1〜x5が入力され、且つ半加算器(HA)22-1のb入力にx0が入力されるので、実質的に「Xt」(x0〜x5)の加算処理が実行されている。換言すれば、「Xt*notXt」の演算と同時に「Xt」を加算する処理が実行されていることになり、「Xt*notXt」の演算を実行するための所要時間とほぼ同一の所要時間で「Xt*notXt+Xt」の演算が実行可能であることが理解される。
即ち、第1実施形態に係るロジスティック写像の演算装置では、ロジスティック写像の漸化式「Xt+1=4Xt(1−Xt)」を展開して「Xt+1=4(Xt*notXt+Xt)」とし、上述した演算手段13により、右辺の「Xt*notXt+Xt」の演算を実行しているので、従来の演算方法と対比して、「+1」の演算(notXt+1)が不要となり、N桁(この例では6桁)の加算を実行するための所要時間を省略することができ、ロジスティック写像の演算速度を高速化することができる。
また、第1実施形態では、図2に示す最終段(第6段)に設けられる加算器として、順次桁上げ加算器よりも演算時間が短い桁上げ先見加算器を用いている。以下、図13に示す回路図を参照して桁上げ先見加算器について説明する。
図13は、6桁の桁上げ先見加算器の構成を示す回路図であり、半加算器51と、6個の全加算器52-1〜52-6、及び桁上げ先見回路53を備えている。各全加算器52-1〜52-6の「C入力」は、図7に示すb入力に相当する。
そして、桁上げ先見回路53は、各全加算器52-1〜52-6のC入力の入力値C0〜C5を、1つのORゲートと、互いに並列に設けられる1または複数個のANDゲートで構成することができる。従って、桁数が何桁であっても2段の演算でC入力の入力値を求めることができる。
このため、各全加算器52-1〜52-6では、下位の桁での演算結果を待つことなく、A入力、B入力、C入力が決定されるので、ほぼ同時に演算を実行することができ、演算速度を高速化することができる。
[第2実施形態]
次に、本発明の第2実施形態について説明する。図3は、第2実施形態に係るロジスティック写像の演算装置の演算手段13の構成を示す説明図である。図3に示すように、この演算手段13は、前述した第1実施形態と同様に、配列型乗算器31と、加算回路32を備えている。
図2に示した第1実施形態と対比すると、第2実施形態では図2に示した第6段、第5列に設けた全加算器(FA)を割愛した点、及び、加算回路32に設けられる6個の加算器のうち、右側から4個が半加算器(HA)からキャリー計算器(C)に変更された点で相違している。即ち、加算回路32は、キャリー計算器(C)32-1〜32-4、及び半加算器(HA)32-5、32-6を備えている。
第2実施形態で使用するキャリー計算器(C)は、2入力、1出力型であり、2つの入力a、bと、1つの出力Cを有し、a入力とb入力の双方が1である場合にC出力を1とし、それ以外の場合にはC出力を0とする。該キャリー計算器(C)の論理回路は、図9に示すように、AND回路で構成することができる。
次に、図3に示した第2実施形態の演算手段13で「Xt*notXt+Xt」を演算する手順について説明する。なお、第1実施形態と同様に「Xt=001011」、「notXt=110100」であるとする。
いま、「Xt=001011」の右側の桁から左側の桁に向けて符号x0〜x5で示す。従って、x0=1、x1=1、x2=0、x3=1、x4=0、x5=0である。また、「notXt=110100」の右側の桁から左側の桁に向けて符号y0〜y5で示す。従って、y0=0、y1=0、y2=1、y3=0、y4=1、y5=1である。
そして、図3に示すように、第1段、第1〜第5列の全加算器(FA)のa入力には、「xm*y0」(但し、m=1〜5)の演算結果が入力される。また、「x0*y0」の演算結果はキャリー計算器(C)32-1のa入力に入力される。
また、第1段、第1〜第5列の全加算器(FA)のb入力には、xm(但し、1≦m≦5)が入力される。更に、x0はキャリー計算器(C)32-1のb入力に入力される。
また、第1段、第1〜第5列の全加算器のc入力には、「xm-1*y1」(但し、1≦m≦5)の演算結果が入力される。第1段、第1列の全加算器のS出力は、キャリー計算器(C)32-2のa入力に入力される。
一方、第2段、第1〜第4列の全加算器(FA)のa入力には、第1段、第2〜第5列の全加算器(FA)のS出力が入力され、第2段、第5列の全加算器(FA)のa入力には「x5*y1」の演算結果が入力される。第2段、第1〜第5列の全加算器(FA)のb入力には、第1段、第1〜第5列のC出力が入力される。更に、第2段、第1〜第5列の全加算器(FA)のc入力には、「xm-1*y2」(但し、1≦m≦5)の演算結果が入力される。第2段、第1列の全加算器(FA)のS出力は、キャリー計算器(C)32-3のa入力に入力される。
同様に、第3段、第4段、第5段における第1〜第5列の全加算器(FA)のa、b、c入力に各種のデータが入力され、S出力、C出力を出力する。そして、第3段、第1列の全加算器(FA)のS出力は、キャリー計算器(C)32-4のa入力に入力され、第4段、第1列の全加算器(FA)のS出力は、半加算器(HA)32-5のa入力に入力され、第5段、第1列の全加算器(FA)のS出力は、半加算器(HA)32-6のa入力に入力される。
キャリー計算器(C)32-1のC出力は、隣接するキャリー計算器(C)32-2のb入力に入力され、キャリー計算器(C)32-2のC出力は、隣接するキャリー計算器(C)32-3のb入力に入力され、キャリー計算器(C)32-3のC出力は、隣接するキャリー計算器(C)32-4のb入力に入力され、キャリー計算器(C)32-4のC出力は、隣接する半加算器(HA)32-5のb入力に入力され、半加算器(HA)32-5のC出力は、隣接する半加算器(HA)32-6のb入力に入力され、半加算器(HA)32-6のC出力は、第6段、第1列の全加算器(FA)のc入力に入力される。
また、第6段、第1〜第4列の全加算器(FA)のa入力には、第5段、第2〜第5列の全加算器(FA)のS出力が入力され、第6段、第1〜第4列の全加算器(FA)のb入力には、第5段、第1〜第4列の全加算器(FA)のC出力が入力され、第6段、第2〜第4列の全加算器(FA)のc入力には、第6段、第1〜第3列の全加算器(FA)のC出力が入力され、第6段、第1列の全加算器(FA)のc入力には半加算器(HA)32-6のC出力が入力される。
そして、半加算器(HA)32-5のS出力をP4、半加算器(HA)32-6のS出力をP5とし、且つ、第6段、第1列の全加算器(FA)のS出力をP6とし、第6段、第2列の全加算器(FA)のS出力をP7とし、第6段、第3列の全加算器(FA)のS出力をP8とし、第6段、第4列の全加算器(FA)のS出力をP9とする。上記の処理で得られたP4〜P9の2進6桁のビット列を出力値「Xt+1」とする。これを、第1実施形態で説明した図2と対比すると、第2実施形態ではP0〜P3、P10、P11を取得していない点で相違する。
しかし、第1実施形態で説明したように、P0〜P11で示される2進12桁のビット列が得られた場合に、このうち、上位3ビット目から6ビット分の数値、即ちP4〜P9のN桁の数値を出力値「Xt+1」とするので、P0〜P3、P10、P11の値は不要である。第2実施形態では、この不要となるP0〜P3、P10、P11の演算を省略することにより、第6段、第5列の全加算器(FA)を省略し、且つ、加算回路32に設けられた6個の加算器のうちの4個をキャリー計算器(C)とすることにより、回路規模を簡素化している。
即ち、第2実施形態に係るロジステック写像の演算装置に用いられる演算手段13では、前述した第1実施形態と同様に、従来の演算方法と対比して、「+1」の演算(notXt+1)が不要となるので、N桁(この例では6桁)の加算を実行するための時間を省略できるという効果を達成し、且つ、回路規模を簡素化でき、小型軽量化、低コスト化を図ることができる。
なお、上述した第2実施形態では、加算回路32に設けられる加算器を半加算器(HA)またはキャリー計算器(C)とする例について説明したが、全ての加算器を半加算器(HA)で代用することも可能である。即ち、図3に示したキャリー計算器(C)はS出力を使用しない半加算器(HA)で代用できる。このような構成とした場合でも、第1実施形態と対比して、第6段、第5列の加算器を省略している点で回路規模を小型化できるという効果を達成できる。
[第3実施形態]
次に、本発明の第3実施形態について説明する。図4は、第3実施形態に係るロジスティック写像の演算装置の演算手段13の構成を示す説明図である。図4に示すように、この演算手段13は、前述した第1実施形態と対比して加算回路22を備えていない点で相違する。即ち、第3実施形態に係る演算手段13は、配列型乗算器41のみで構成されている。
更に、図2に示した第1実施形態の配列型乗算器21と対比して、第3実施形態では図2に示した第6段、第5列に設けた全加算器(FA)を省略している点、第1段、第1列の全加算器(FA)をキャリー計算器(C)とした点、第2段、第1列の全加算器(FA)をキャリー計算器(C)とした点、第3段、第1列の全加算器(FA)をキャリー計算器(C)とした点で相違する。更に、第1段、第2列の全加算器(FA)を半加算器(HA)とした点、第2段、第3列の全加算器(FA)を半加算器(HA)とした点、第3段、第4列の全加算器(FA)を半加算器(HA)とした点、第5段、第5列の全加算器(FA)をサム計算器(S)とした点、及び第6段、第5列の全加算器(FA)をサム計算器(S)とした点で相違する。
ここで、第3実施形態で用いるキャリー計算器(C)は3入力型であり、3つの入力a、b、cのうち、2以上の入力値が1である場合に1を出力し、それ以外の場合には0を出力する。該キャリー計算器(C)は、図10に示すように、AND回路、OR回路、排他的OR回路で構成することができる。また、サム計算器(S)は3入力型であり、3つの入力a、b、cのうち、1個、または3個が1である場合1を出力し、それ以外の場合には0を出力する。該サム計算器(S)は、図11に示すように、3入力の排他的OR回路で構成することができる。
なお、図4に示す点線で囲んだ加算器(HA、FA)は、第1実施形態で説明した図2の演算手段に対して省いた加算器を示している。つまり、点線で囲んだ加算器(HA、FA)は、第3実施形態では不要な構成要素である。
次に、図4に示した第3実施形態の演算手段13で「Xt*notXt+Xt」を演算する手順について説明する。なお、第1、第2実施形態と同様に「Xt=001011」、「notXt=110100」であるとする。
いま、「Xt=001011」の右側の桁から左側の桁に向けて符号x0〜x5で示す。従って、x0=1、x1=1、x2=0、x3=1、x4=0、x5=0である。また、「notXt=110100」の右側の桁から左側の桁に向けて符号y0〜y5で示す。従って、y0=0、y1=0、y2=1、y3=0、y4=1、y5=1である。
そして、図4に示すように、第1段、第1〜第5列の各加算器(FA、HA、C)のa入力には、「xm*y0」(但し、1≦m≦5)の演算結果が入力される。また、「x0*y0」の演算結果は後述する理由により不要であるから破棄する。
また、第1段、第1〜第5列の各加算器(FA、HA、C)のb入力にはxm(但し、1≦m≦5)が入力される。また、x0は後述する理由により不要であるので破棄する。
第1段、第1〜第5列の各加算器(FA、HA、C)のc入力には、「xm-1*y1」(但し、1≦m≦5)の演算結果が入力される。
一方、第2段、第1〜第4列の各加算器(FA、HA、C)のa入力には、第1段、第2〜第5列の各加算器(FA、HA)のS出力が入力され、第2段、第5列の全加算器(FA)のa入力には「x5*y1」の演算結果が入力される。第2段、第1〜第5列の各加算器(FA、HA、C)のb入力には、第1段、第1〜第5列の各加算器(FA、HA、C)のC出力が入力される。更に、第2段、第1〜第5列の各加算器(FA、HA、C)のc入力には、「xm-1*y2」(但し、1≦m≦5)の演算結果が入力される。
同様に、第3段、第4段、第5段における第1〜第5列の各加算器(FA、HA、C、S)の各入力に各種のデータが入力され、各出力を出力する。
また、第6段、第1〜第4列の各加算器(FA、S)のa入力には、第5段、第2〜第5列の各加算器(FA、S)のS出力が入力され、第6段、第1〜第4列の各加算器(FA、S)のb入力には、第5段、第1〜第4列のC出力が入力され、第6段、第2〜第4列の各加算器(FA、S)のc入力には、第6段、第1〜第3列の各加算器(FA、HA)C出力が入力される。
そして、第4段、第1列の全加算器(FA)のS出力をP4、第5段、第1列の全加算器(FA)のS出力をP5とし、且つ、第6段、第1列の半加算器(HA)のS出力をP6とし、第6段、第2列の全加算器(FA)のS出力をP7とし、第6段、第3列の全加算器(FA)のS出力をP8とし、第6段、第4列のサム計算器(S)のS出力をP9とする。上記の処理で得られたP4〜P9の2進6桁のビット列を出力値「Xt+1」とする。これを、第1実施形態で説明した図2と対比すると、第3実施形態ではP0〜P3、P10、P11を取得していない点、第6段、第5列の加算器を省略している点、加算回路22を不要としている点、いくつかの全加算器(FA)を半加算器(HA)やキャリー計算器(C)に変更している点で相違する。この構成の相違は、配列型乗算器41をロジステック写像の演算に特化した機能としていることに起因する。以下、詳細に説明する。
ロジステック写像の演算では、上述したように「Xt」と「notXt」を乗算しており、両者の同一桁の数値は互いに背反であるので(一方が1であれば他方が0であるという関係であるので)、「x0*y0」、「x1*y1」、「x2*y2」・・・のように、同一桁どうしの乗算結果は必ず0になる。
従って、第1段、第2列の加算器、第2段、第3列の加算器、第3段、第4列の加算器、第4段、第5列の加算器はc入力が不要であり、半加算器(HA)としている。また、P0のデータを取得する必要がないので、x0のデータを破棄し、「x0*y0」の演算結果を破棄する。更に、P1〜P3のデータを取得する必要がないので、第1段、第1列の加算器のS出力は不要となり、この加算器をキャリー計算器(C)とすることができ、同様に、第2段、第1列の加算器、及び第3段、第1列の加算器をキャリー計算器(C)とすることができる。
更に、ロジステック写像の演算として、上位2ビットの数値(この例ではP10,P11)は共に0となることが知られているので、第5段、第5列の加算器はC出力が不要である。従って、この加算器をC出力を備えないサム計算器(S)としている。同様に、第6段、第5列の加算器もC出力が不要であるので、これをサム計算器(S)としている。
このようにして、第3実施形態に係るロジステック写像の演算装置に用いられる演算手段13では、前述した第1実施形態と同様に、従来の演算方法と対比して、「+1」の演算(notXt+1)が不要となるので、N桁(この例では6桁)の加算を実行するための時間を省略できるという効果を達成することができる。
また、配列型乗算器41に設けられる各加算器の構成を簡素化することができるので、装置規模をより一層小型化することができ、省スペース化、低コスト化を図ることができる。
なお、上述した第3実施形態では、複数の加算器の一部を半加算器(HA)、キャリー計算器(C)、サム計算器(S)とする例について説明したが、これらを全加算器(FA)で代用することも可能である。例えば、半加算器(HA)はc入力を0とした全加算器(FA)で代用でき、キャリー計算器(C)はS出力を使用しない全加算器(FA)で代用でき、サム計算器(S)はC出力を使用しない全加算器(FA)で代用することができる。このような構成とした場合でも、第1実施形態と対比して、第6段、第5列の加算器を省略できる点、及び加算回路22を備えない点で回路規模を小型化できるという効果を達成できる。
以上、本発明のロジステック写像の演算装置を図示の実施形態に基づいて説明したが、本発明はこれに限定されるものではなく、各部の構成は、同様の機能を有する任意の構成のものに置き換えることができる。
例えば、上述した各実施形態では、ロジステック写像の桁数を6桁としたが、これは一例を示したに過ぎず、他の桁数においても適用することが可能である。
本発明は、ロジスティック写像を高速に演算する場合に利用することができる。
10 演算装置
11 入力部
12 反転演算部
13 演算手段
14 セレクタ
21,31,41 配列型乗算器
22,32 加算回路
51 半加算器
52-1〜52-6 全加算器
53 桁上げ先見回路

Claims (4)

  1. 漸化式「Xt+1=4Xt(1−Xt)」で定義されるロジスティック写像Xt+1を演算する演算装置において、
    前記「Xt」、「Xt+1」はN桁の2進数で示され、且つ前記「Xt」はx(0)〜x(N-1)のビット列で示され、
    少なくともN段、(N−1)列の加算器からなる配列型乗算器を備え、このうち第1段の(N−1)個の加算器は、少なくとも2つの入力を有する加算器であり、
    前記漸化式を展開して「Xt+1=4(Xt*notXt+Xt)」とした場合に、前記配列型乗算器を用いて右辺の「Xt*notXt」を演算すると共に、該配列型乗算器の第1段、第m列(但し、1≦m≦N−1)の加算器の1つの入力に、x(m)の数値を入力して加算することにより、前記展開式の「Xt」を加算する処理を実行することを特徴とするロジスティック写像の演算装置。
  2. 漸化式「Xt+1=4Xt(1−Xt)」で定義されるロジスティック写像Xt+1を演算する演算装置において、
    前記「Xt」、「Xt+1」はN桁の2進数で示され、前記漸化式を展開して「Xt+1=4(Xt*notXt+Xt)」とした場合に、下記構成を備える(A)配列型乗算器、及び(B)加算回路を用いて前記展開した展開した漸化式の「Xt*notXt+Xt」で示される演算を行うことを特徴とするロジスティック写像の演算装置、
    (A)前記配列型乗算器は、
    第1列から第(N−1)列までの(N−1)個の全加算器からなる加算器群が、第1段から第N段まで設けられ、且つ、前記各全加算器は各段毎に1列ずつシフトして配置され、
    前記各全加算器は3つの入力a、b、c及び2つの出力C、Sを有し、前記各入力a、b、cに含まれる「1」の個数が0個のときに出力S、C共に「0」とし、1個のときに出力Sのみを「1」とし、2個のときに出力Cのみを「1」とし、3個のときに出力S、C共に「1」とする演算を行い、
    該配列型乗算器により、各桁がx(0)〜x(N-1)で示される2進N桁の被乗算値(Xt)と、各桁がy(0)〜y(N-1)で示される2進N桁の乗算値(notXt)との乗算を実施する際に、
    第1段、第m列(但し、1≦m≦N−1)の全加算器のa入力に「x(m)*y(0)」の演算結果を入力し、b入力にそれぞれx(m)を入力し、c入力に「x(m-1)*y(1)」の演算結果を入力し、
    第n段、第m列(但し、2≦n≦N−1、1≦m≦N−2)の全加算器のa入力に第(n−1)段、第(m+1)列の全加算器のS出力を入力し、b入力に第(n−1)段、第m列の全加算器のC出力を入力し、c入力に「x(m-1)*y(n)」の演算結果を入力し、
    第n段(但し、2≦n≦N−1)、第(N−1)列の全加算器のa入力に「x(N-1)*y(n-1)」の演算結果を入力し、b入力に第(n−1)段、第(N−1)列の全加算器のC出力を入力し、c入力に「x(N-2)*y(n)」の演算結果を入力し、
    第N段、第m列(但し、1≦m≦N−2)の全加算器のa入力に第(N−1)段、第(m+1)列の全加算器のS出力を入力し、b入力に第(N−1)段、第m列の全加算器のC出力を入力し、c入力にはm≠1の場合に第N段、第(m−1)列の全加算器のC出力を入力し、
    第N段、第(N−1)列の全加算器のa入力に「x(n-1)*y(n-1)」の演算結果を入力し、b入力に第(N−1)段、第(N−1)列の全加算器のC出力を入力し、c入力に第(N−2)列の全加算器のC出力を入力するように構成され、
    (B)前記加算回路は、
    2つの入力a、b及び2つの出力C、Sを有し、前記各入力a、bに含まれる「1」の個数が0個のときに出力S、C共に「0」とし、1個のときに出力Sのみを「1」とし、2個のときに出力Cのみを「1」とする演算を行う第1〜第(N−1)の半加算器(HA)を有し、
    前記第nの半加算器(n=1〜N−1)は、a入力に第n段、第1列の全加算器のS出力が入力され、b入力には、n=2〜N−1の場合に第(n−1)の半加算器のC出力が入力されn=1の場合に「0」が入力され、第(N−1)の半加算器のC出力を第N段、第1列の全加算器のc入力に出力し、
    第1〜第(N−1)の半加算器のS出力を、それぞれP(1)〜P(N−1)とし、第N段、第m列(但し、m=1〜N−1)の全加算器のS出力を、それぞれP(N)〜P(2N−2)とし、
    前記P(1)〜P(2N−2)の各ビットから、連続したN桁のビットを取り出して、前記展開した漸化式の「Xt*notXt+Xt」の演算結果とする。
  3. 漸化式「Xt+1=4Xt(1−Xt)」で定義されるロジスティック写像Xt+1を演算する演算装置において、
    前記「Xt」、「Xt+1」はN桁の2進数で示され、前記漸化式を展開して「Xt+1=4(Xt*notXt+Xt)」とした場合に、下記構成を備える(A)配列型乗算器、及び(B)加算回路を用いて前記展開した漸化式の「Xt*notXt+Xt」で示される演算を行うことを特徴とするロジスティック写像の演算装置、
    (A)前記配列型乗算器は、
    第1列から第(N−1)列までの(N−1)個の全加算器からなる加算器群が、第1段から第(N−1)段まで設けられ、且つ、第N段には(N−2)個の加算器からなる加算器群が設けられ、更に、前記各段の全加算器は各段毎に1列ずつシフトして配置され、
    前記各全加算器は3つの入力a、b、c及び2つの出力C、Sを有し、前記各入力a、b、cに含まれる「1」の個数が0個のときに出力S、C共に「0」とし、1個のときに出力Sのみを「1」とし、2個のときに出力Cのみを「1」とし、3個のときに出力S、C共に「1」とする演算を行い、
    該配列型乗算器により、各桁がx(0)〜x(N-1)で示される2進N桁の被乗算値「Xt」と、各桁がy(0)〜y(N-1)で示される2進N桁の乗算値「notXt」との乗算を実施する際に、
    第1段、第m列(但し、1≦m≦N−1)の全加算器のa入力に「x(m)*y(0)」の演算結果を入力し、b入力にそれぞれx(m)を入力し、c入力に「x(m-1)*y(1)」の演算結果を入力し、
    第n段、第m列(但し、2≦n≦N−1、m≠N−1)の全加算器のa入力に第(n−1)段、第(m+1)列の全加算器のS出力を入力し、b入力に第(n−1)段、第m列の全加算器のC出力を入力し、c入力に「x(m-1)*y(n)」の演算結果を入力し、
    第n段(但し、2≦n≦N−1)、第(N−1)列の全加算器のa入力に「x(N-1)*y(n-1)」の演算結果を入力し、b入力に第(n−1)段、第(N−1)列の全加算器のC出力を入力し、c入力に「x(N-2)*y(n)」の演算結果を入力し、
    第N段、第m列(但し、1≦m≦N−2)の全加算器のa入力に第(N−1)段、第(m+1)列の全加算器のS出力を入力し、b入力に第(N−1)段、第m列の全加算器のC出力を入力し、c入力にはm≠1の場合に第N段、第(m−1)列の全加算器のC出力を入力するように構成され、
    (B)前記加算回路は、
    (N−3)個の、第1〜第(N−3)のキャリー計算器、及び2個の、第(N−2)の半加算器、及び第(N−1)の半加算器を備え、
    前記半加算器は、2つの入力a、b及び2つの出力C、Sを有し、前記各入力a、bに含まれる「1」の個数が0個のときに出力S、C共に「0」とし、1個のときに出力Sのみを「1」とし、2個のときに出力Cのみを「1」とする演算を行い、
    前記キャリー計算器は、2つの入力a、b及び1つの出力Cを有し、前記各入力a、bに含まれる「1」の個数が2個のときに出力Cを「1」とし、それ以外の場合に「0」とする演算を行い、
    第nのキャリー計算器(但し、n=1〜N−3)は、a入力に第n段、第1列の全加算器のS出力が入力され、b入力にはn≠1の場合に第(n−1)のキャリー計算器のC出力が入力され、n=1の場合に「0」が入力され、
    前記第(N−2)の半加算器は、a入力に第(N−2)段、第1列の全加算器のS出力が入力され、b入力に第(N−3)のキャリー計算器のC出力が入力され、
    前記第(N−1)の半加算器は、a入力に第(N−1)段、第1列の全加算器のS出力が入力され、b入力に第(N−2)のキャリー計算器のC出力が入力され、且つ、C出力を第N段、第1列の全加算器のc入力に出力し、
    前記第(N−2)の半加算器のS出力をP(N−2)、第(N−1)の半加算器のS出力をP(N−1)とし、
    第N段、第m列(但し、m=1〜N−2)の全加算器のS出力を、それぞれP(N)〜P(2N−3)とし、
    P(N−2)〜P(2N−3)のN桁のビットを前記展開した漸化式の「Xt*notXt+Xt」の演算結果とする。
  4. 漸化式「Xt+1=4Xt(1−Xt)」で定義されるロジスティック写像Xt+1を演算する演算装置において、
    前記「Xt」、「Xt+1」はN桁の2進数で示され、前記漸化式を展開して「Xt+1=4(Xt*notXt+Xt)」とした場合に、下記構成を備える(A)配列型乗算器を用いて前記展開した漸化式の「Xt*notXt+Xt」で示される演算を行うことを特徴とするロジスティック写像の演算装置、
    (A)前記配列型乗算器は、
    第1列から第(N−1)列までの(N−1)個の加算器からなる加算器群が、第1段から第(N−1)段まで設けられ、且つ、第N段には(N−2)個の加算器からなる加算器群が設けられ、更に、前記各段の加算器は各段毎に1列ずつシフトして配置され、
    前記各加算器は3つの入力a、b、cと2つの出力C、Sを有する全加算器、2つの入力a、bと2つの出力C、Sを有する半加算器、3つの入力a、b、cと1つの出力Cを有するキャリー計算器、及び、3つの入力a、b、cと1つの出力Sを有するサム計算器のうちのいずれかであり、
    前記各加算器は、各入力a、b、cに含まれる「1」の個数が0個のときに出力S、C共に「0」とし、1個のときに出力Sのみを「1」とし、2個のときに出力Cのみを「1」とし、3個のときに出力S、C共に「1」とする演算を行い、
    該配列型乗算器により、各桁がx(0)〜x(N-1)で示される2進N桁の被乗算値「Xt」と、各桁がy(0)〜y(N-1)で示される2進N桁の乗算値「notXt」との乗算を実施する際に、
    第1段の加算器群は、第1列が前記キャリー計算器、第2列が前記半加算器、その他の列が前記全加算器であり、第m列(但し、1≦m≦N−1)の加算器のa入力に「x(m)*y(0)」の演算結果を入力し、b入力にそれぞれx(m)を入力し、更に、第2列を除く各列の加算器のc入力に「x(m-1)*y(1)」の演算結果を入力し、
    第n段(但し、2≦n≦N−3)の加算器群は、第1列が前記キャリー計算器、第(n+1)列が前記半加算器、その他の列が前記全加算器であり、第(N−1)列の加算器のa入力に「x(N-1)*y(n-1)」の演算結果を入力し、第m列(但し、1≦m≦N−2)の加算器のa入力に第(n−1)段、第(m+1)列の加算器のS出力を入力し、第m列(但し、1≦m≦N−1)の加算器のb入力に、第(n−1)段、第m列の加算器のC出力を入力し、第m列(但し、1≦m≦N−1、(n+1)を除く)の加算器のc入力に「x(m-1)*y(n)」の演算結果を入力し、
    第(N−2)段の加算器群は、第(N−1)列が前記半加算器、その他の列が前記全加算器であり、第(N−1)列の加算器のa入力に「x(N-1)*y(N-3)」の演算結果を入力し、第m列(但し、1≦m≦N−2)の加算器のa入力に第(N−3)段、第(m+1)列の加算器のS出力を入力し、第m列(但し、1≦m≦N−1)の加算器のb入力に、第(N−3)段、第m列の加算器のC出力を入力し、第m列(但し、1≦m≦N−2)の加算器のc入力に「x(m-1)*y(N-2)」の演算結果を入力し、
    第(N−1)段の加算器群は、第(N−1)列が前記サム計算器、その他の列が前記全加算器であり、第(N−1)列の加算器のa入力に「x(N-1)*y(N-2)」の演算結果を入力し、第m列(但し、1≦m≦N−2)の加算器のa入力に第(N−2)段、第(m+1)列、の加算器のS出力を入力し、第m列(但し、1≦m≦N−1)の加算器のb入力に、第(N−2)段、第m列の加算器のC出力を入力し、第m列(但し、1≦m≦N−1)の加算器のc入力に「x(m-1)*y(N-1)」の演算結果を入力し、
    第N段の加算器群は、第1列が前記半加算器、第(N−2)列が前記サム計算器、その他の列が前記全加算器であり、第m列(但し、1≦m≦N−2)の加算器のa入力に第(N−1)段、第(m+1)列の加算器のS出力を入力し、b入力に第(N−1)段、第m列、の加算器のC出力を入力し、第m列(但し、2≦m≦N−2)のc入力に第N段、第(m−1)列の加算器のC出力を入力するように構成され、
    第(N−2)段、1列の加算器のS出力をP(N−2)、第(N−1)段、1列の加算器のS出力をP(N−1)とし、且つ、第N段、第1〜第(N−2)列の加算器のS出力をそれぞれP(N)〜P(2N−3)とし、
    P(N−2)〜P(2N−3)のN桁のビットを前記展開した漸化式の「Xt*notXt+Xt」の演算結果とする。
JP2010021548A 2010-02-02 2010-02-02 ロジスティック写像の演算装置 Active JP5603609B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2010021548A JP5603609B2 (ja) 2010-02-02 2010-02-02 ロジスティック写像の演算装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2010021548A JP5603609B2 (ja) 2010-02-02 2010-02-02 ロジスティック写像の演算装置

Publications (2)

Publication Number Publication Date
JP2011159174A true JP2011159174A (ja) 2011-08-18
JP5603609B2 JP5603609B2 (ja) 2014-10-08

Family

ID=44591056

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2010021548A Active JP5603609B2 (ja) 2010-02-02 2010-02-02 ロジスティック写像の演算装置

Country Status (1)

Country Link
JP (1) JP5603609B2 (ja)

Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2000003267A (ja) * 1998-06-15 2000-01-07 Sony Corp 演算処理装置およびその方法
JP2000252751A (ja) * 1999-02-25 2000-09-14 Yazaki Corp スペクトル拡散信号発生方法、スペクトル拡散信号発生器、ストリーム暗号化方法、及びストリーム暗号通信方法
JP2003050545A (ja) * 2001-08-06 2003-02-21 Chaos Sangyo Gijutsu Kenkyusho:Kk 固定小数点演算を用いた擬似乱数の生成方法
JP2004093756A (ja) * 2002-08-30 2004-03-25 Torex Device Co Ltd ロジスティック写像用固定小数点演算器
JP2004127210A (ja) * 2002-10-01 2004-04-22 Chaos Sangyo Gijutsu Kenkyusho:Kk ロジスティック写像の固定小数点乗算器
JP2004227344A (ja) * 2003-01-23 2004-08-12 Internatl Business Mach Corp <Ibm> 乗算器及び暗号回路
JP2005228169A (ja) * 2004-02-16 2005-08-25 Bittech Inc 乱数生成装置

Patent Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2000003267A (ja) * 1998-06-15 2000-01-07 Sony Corp 演算処理装置およびその方法
JP2000252751A (ja) * 1999-02-25 2000-09-14 Yazaki Corp スペクトル拡散信号発生方法、スペクトル拡散信号発生器、ストリーム暗号化方法、及びストリーム暗号通信方法
JP2003050545A (ja) * 2001-08-06 2003-02-21 Chaos Sangyo Gijutsu Kenkyusho:Kk 固定小数点演算を用いた擬似乱数の生成方法
JP2004093756A (ja) * 2002-08-30 2004-03-25 Torex Device Co Ltd ロジスティック写像用固定小数点演算器
JP2004127210A (ja) * 2002-10-01 2004-04-22 Chaos Sangyo Gijutsu Kenkyusho:Kk ロジスティック写像の固定小数点乗算器
JP2004227344A (ja) * 2003-01-23 2004-08-12 Internatl Business Mach Corp <Ibm> 乗算器及び暗号回路
JP2005228169A (ja) * 2004-02-16 2005-08-25 Bittech Inc 乱数生成装置

Also Published As

Publication number Publication date
JP5603609B2 (ja) 2014-10-08

Similar Documents

Publication Publication Date Title
US8671129B2 (en) System and method of bypassing unrounded results in a multiply-add pipeline unit
JP5640081B2 (ja) 飽和を伴う整数乗算および乗算加算演算
JPH0612229A (ja) 乗累算回路
CN101371221B (zh) 预饱和固定点乘法器
US5023827A (en) Radix-16 divider using overlapped quotient bit selection and concurrent quotient rounding and correction
Takagi et al. A hardware algorithm for integer division
JP4273071B2 (ja) 除算・開平演算器
US7016930B2 (en) Apparatus and method for performing operations implemented by iterative execution of a recurrence equation
US5867413A (en) Fast method of floating-point multiplication and accumulation
JPH1195982A (ja) 演算処理回路及び演算処理方法並びに演算処理システム
RU2348965C1 (ru) Вычислительное устройство
JP5603609B2 (ja) ロジスティック写像の演算装置
RU2717915C1 (ru) Вычислительное устройство
JP5262248B2 (ja) 積和演算回路
KR102286101B1 (ko) 데이터 처리장치 및 내로우잉 앤 라운딩 산술연산을 행하는 방법
JP3563043B2 (ja) 平方根の逆数計算方法、計算回路、及びプログラム
JP4850884B2 (ja) べき乗剰余演算器
US11281428B2 (en) Conversion circuitry
KR101007259B1 (ko) 패리티 생성 회로, 계수 회로 및 계수 방법
EP3528107B1 (en) Increment/decrement apparatus and method
RU2797164C1 (ru) Конвейерный умножитель по модулю
RU2804380C1 (ru) Конвейерный вычислитель
JP3517162B2 (ja) 除算・開平演算装置
EP3289445B1 (en) Floating point computation apparatus and method
JP3226823B2 (ja) 高精度高桁乗算装置

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20130117

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20131218

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20140121

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20140324

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20140822

R150 Certificate of patent or registration of utility model

Ref document number: 5603609

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

S531 Written request for registration of change of domicile

Free format text: JAPANESE INTERMEDIATE CODE: R313531

R350 Written notification of registration of transfer

Free format text: JAPANESE INTERMEDIATE CODE: R350

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250