種蒔式二進一桁卓上半加算機 (1996)


 半加算器(=ハーフアダー)は演算部内の算術論理演算部を構成する各回路の基本部品の一つで、前の桁からの桁上げを考慮しない加算を行う装置。

この作品は植物の種が発芽して伸びる力を利用し、二進一桁の半加算演算を最初の一回に限り実現する加算器として設計された。(二回目以降は機構の都合上不正確な解答が出力されるため、一回ごとにリセットしなくてはならない。)

 実際にコンピュータの中で使われている半加算機と同じに入出力されるだけでなく、回路内にある各演算子の機能が、そのまま植物の発芽力を使う装置となるように形を変えて引きうつしている。

装置を駆動するのに十分な力を得られるかどうかによって、その回の計算の成功の確率が変化することから、計算の精度は種子の発芽率に依存し、また一回の計算の完了に要する時間は植物が発芽して成長するまでの期間に左右されるため、季節にもよるが、大体2~3週間位と予想される。

 なお動力源となる種子の種類は特に限定されておらず、入力部に入る大きさであれば何を用いても構わないが、演算終了後の有効な再利用を考慮すると、食用可能な野菜の種子などが妥当ではないかと思われる。



ANDとは直列回路、ORとは並列回路、NOTとはブレークコンタクトスイッチ(スイッチを押さないときに接して、押すと切れる)と考えることができる。

それに相当する装置を作ることで、どのようなものや現象でもデジタル計算機の素材として利用し得るだろう。

この作品では次のように各部を対応させている。

 二重のシヤッター    ………… AND

 和Sに出力する2本のパイプ ……  OR

 逆さまに付けられた入力アーム…… NOT

 

<入力用ピストン内部>
動力/信号源として使われている、カイワレダイコンの種の発芽途中の様子。

<入力部からの動力を回転軸へ分配するアーム>
入力部から伝達てこを介して伝えられた動力は、このアームから回転角へと変換され、入力の4つのパターンによって次の演算部への伝達のタイミングが異なる様に角度と位置を変え、分配される。

<ANDゲートの役割をする2重シャッター>
この上に蓄えられている出力用の種は、この2重シャッターによって制御される。

2つのシャッターが同時に開かない限り上の種は下へ落ちて行かないため、この部分は、2つの入力が同時に真でなければ出力が真とならない、ANDゲートと同じに見なすことができる。

<ORゲートの役割をする並列した2本のパイプ、及び和出力部>
この2本のパイプのうちどちらか一方に出力があれば、和に1が出力されたことになる。
これは、どちらか一方の入力が真ならば、出力が真になるORゲートと同じ働きをすると考えられる。





動作

*各部の名称は、作品のそれぞれ対応する部分に、記号でしるされている。



(1) 入力方法


(a) 1を入力するとき

ピストンA、Bのどちらか、もしくは両方を取り外し、中に種を蒔き、水を注ぐ。それらをもとの位置に戻し、てこA、Bをそれぞれの上に置き、入力部のアームが動いていたら、水平状態に戻す。

(b) 0を入力するとき

ピストンA、Bどちらか、もしくは両方を取り外す。てこA、もしくはBは、自重で傾き、aもしくはbのアームを押し上げる。(0入力の場合は、常にaもしくはbになる)



(2) 加算の基本4パターンでの作品の動作


(a) 0+0の場合

ピストンA、B、はどちらも取り除かれる。

 入力は、a、b(A=0、B=0)

b・a1シヤッター部では、bシヤッターは開くが、a1シヤッターは閉まる。

したがって全体としては開通していない。

a・b1シヤッター部では、aシヤッターは開くが、b1シヤッターは閉まる。

したがって全体としては開通していない。

以上より、和Sには種は落ちない。

 和S=0

またb2・a2シヤッター部では、b2シヤッターもa2シヤッターも開かない。したがって全体としては開通していない。

以上より、桁上げCには種が落ちない。

 桁上げC=0


(b) 1+0の場合

ピストンAに1入力が行われ、ピストンBは取り除かれる。

 入力はa、b(A=1、B=0)

b・a1シヤッター部では、bシヤッターが開き、a1シヤッターも開く。

したがって全体としては開通する。

a・b1シヤッター部では、aシヤッターは閉まり、b1シヤッターも閉まる。

したがって全体としては開通しない。

以上より、和Sにはb・a1シヤッター部から種が落ちて行く。

 和S=1

b2・a2シヤッター部では、b2シヤッターは閉まり、a2シヤッターは開いている。したがって全体としては開通していない。

以上より、桁上げCには種が落ちない。

 桁上げC=0


(c) 0+1の場合

Aピストンは取り外され、Bピストンに1入力が行われる。

 入力はa、b(A=0、B=1)

b・a1シヤッター部では、bシヤッターは閉まり、a1シヤッターも閉まる。

したがって全体としては開通していない。

a・b1シヤッター部では、aシヤッターは開き、b1シヤッターも開く。

したがって全体としては開通している。

以上より、和Sには、a・b1シヤッター部より種が落ちて行く。

 和S=1

b2・a2シヤッター部では、b2シヤッターは開き、a2シヤッターは閉まる。したがって全体としては開通していない。

以上より、桁上げCには種は落ちない。

 桁上げC=0


(d) 1+1の場合

ピストンA、ピストンB、に1入力が行われる。

 入力はa、b(A=1、B=1)

b・a1シヤッター部では、bシヤッターは閉まり、a1シヤッターは開く。

したがって全体としては開通していない。

a・b1シヤッター部では、aシヤッターは閉まり、b1シヤッターは開く。

したがって全体としては開通していない。

以上より、和Sには種は落ちない。

 和S=0

b2・a2シヤッター部では、b2シヤッターは開き、a2シヤッターも開く。したがって全体としては開通している。

以上より、桁上げCにはb2・a2シヤッター部より種が落ちる。

 桁上げC=1



半加算器

 

(1)

二進数の演算では、加算が基本となっている。乗算は加算の繰り返し、除算は減算の繰り返し、そして減算は演算数の補数をとることによって

     被演算数+(演算数の補数)

という形の加算として扱うことができる。つまり加算回路を設計することによって、その他の演算をまかなえることになる。

今回制作したのは、半加算器とよばれているものでである。これはデジタル計算機の最も基本となっている回路で、二進一桁の下位からの桁あげを考えない加算を行う。

また半加算器を二つ組み合わせることによって、下位からの桁上げを考慮した全加算器を作ることができる。

この加算器をn個組み合わせることによってn桁の二進加算が可能になる。

 

 

(2)

補数とは、与えられた数値をある特定の基準値から引いて得られる数のことである。

ある進数が持つ基数について、(基数)、(基数ー1)についての補数が存在する。

例えば10進数の場合は、(10の補数)、(9の補数)となり、Nをn桁の10進数と考えた場合、

 (10の補数)は 10n−N

 (9の補数)は 10n−N−1

で表される。

 

 

(3)

二進一桁の加算は以下の4通りの基本パターンにわけられる。

 

  被加数  加数    和  桁上げ

    A + B  =  S   C

 (a)  0 + 0  =  0   0

(b)  1 + 0  =  1   0

(c)  0 + 1  =  1   0

(d)  1 + 1  =  10  1

 (d)の場合の10は、二進数で、これは十進数での2のことである。

 

ここで、以下のように記号を定める。

     A、Bが1のとき    A、B

     A、Bが0のとき    A、B

    (A、Bの否定:NOT)

      かつ(AND)     ・

      または(OR)     +

 

和が1になるのは(b)と(c)の場合だけなので、それぞれを記号を使って表わすことにする。

 

(b)の場合

 A=1(A=0)「かつ」B=1のとき、        Sは1 S=A・B=1

(c)の場合

 A=1「かつ」B=1(B=0)のとき、        Sは1 S=A・B=1

(b)「または」(c)のとき和が1となる ので

 

    S=A・B+A・B  …………(Ⅰ)

 

また桁上げが1となるのは(d)の場合だけである。つまり

 A=1「かつ」B=1のとき

 

    C=A・B      …………(Ⅱ)

 

(Ⅰ)と(Ⅱ)の式により、半加算処理に必要な論理回路は、

              AND 3個

               OR 1個

              NOT 2個