2021:論理演算

 論理演算は汎用レジスタの内容をビット列とみなして、それぞれ同じ位置のビットに対してAND/OR/XORの論理演算を行い結果を返す。これらの演算の入力または出力側でビットを反転すればNOTが実現できる。組み合わせると次のようになる。

XOR A xor B
NXOR !(A xor B)
AND A and B
NAND !(A and B)
ANDN (A and !B)
NANDN !(A and !B)
OR A or B
NOR !(A or B)
ORN (A or !B)
NORN !(A or !B)

XORは入出力を反転しても等価になる場合があるので2種類、AND/ORは4種類ずつで合計10種類。命令のオペランドにビットパターンとして埋め込むには2/4/8/16といった種類になる方がよさそうなので16パターン分考えてみる。

ALL0 入力に関わらず0
ALL1 入力に関わらず1
SELA A
NSELA !A
SELB B
NSELB !B
XOR
NXOR
AND
NAND
ANDN
NANDN
OR
NOR
ORN
NORN

今あるプロセッサはAND/OR/XOR/NOTといった必要な分だけ採用している。論理演算は単純なのですべて1サイクルで完了する。


以上から考えた必要なもの:
・2項論理演算16種類以内

ブログ気持玉

クリックして気持ちを伝えよう!

ログインしてクリックすれば、自分のブログへのリンクが付きます。

→ログインへ

なるほど(納得、参考になった、ヘー)
驚いた
面白い
ナイス
ガッツ(がんばれ!)
かわいい

気持玉数 : 0

この記事へのコメント