自動化リボンへのマルチビット演算
https://gyazo.com/d9185ec51ff12ed587d2b848b27919fa
#ONI制御工学 #ONI計算機科学 #ONI制御工学
ガチのコンピューティングやんけ
Q. 「何ができるの?」
A(普通の回答) 「割り込み処理を入れたり強制中断したりが組みやすくなります」
→ #高度な自動化
→ キャッシュメモリ
A(キチ回答) 「自動化回路で足し算/引き算/掛け算/割り算ができるようになります」
→ 論理演算(ビット演算)を使って四則演算を行う方法を解説
4bit NOT
https://gyazo.com/8c6cab7fe80197f2db2491e27f2e36b4
NOTゲート.iconNOTゲートの場合、論理入力ポート.iconに送られた全ての信号を反転する
これは数学における「1の補数」に相当する
この結果に0001 を4bit全加算器で足した結果が元のデータの2の補数になる
→ ONIの自動化回路で"引き算"を作れるようになる
プログラミングにおける z = ~x に相当
4bit XOR
https://gyazo.com/49b2ff50b949e79e563ffbc3dc0d1378
XORゲート.iconXORゲートの場合、特定のビット枠だけ選択的に反転させる操作が出来る
反転させたいビット枠に対し、噛み合うように入力する
片方の入力を全て 1111 にした状態で、マルチビットNOTと同じ操作になる
プログラミングにおける z = x ^ y
4bit AND
https://gyazo.com/a609e3a8813ef81dd9f47a2d890bc413
ANDゲート.iconANDゲートの場合は特定のビット枠の情報を無視する操作が出来る
あるいは「○ビット目と○ビット目がオンになっているかどうかだけ調べる」操作にも使える
現実では ビットマスクでよく使われる
割り込み処理の優先順位づけとかが出来るようになる
あるいは「強制的に中断させる」機構にも使える
プログラミングにおける z = x & y
4bit OR
https://gyazo.com/1ed43243afa490c1682bd10c7cba5834
こちらも特定のビット枠を無視する操作だが、ANDと逆に「無視して論理出力ポート 緑.iconにしてしまう」操作
元の信号に関わらず割り込み処理を仕掛ける用途に使える
プログラミングにおける z = x | y
自動化リボンに対するビットシフト
https://gyazo.com/05c9f01f943dec0f7f57212bfbbb1218
一束の自動化リボンを「最小0、最大15の数値データ」とみなした場合には算術演算として使える
リボンライターで「2ビット目に書き込み」の指定は「元の数値を2倍にする」操作と同じになる
プログラミングにおける z = x << 1
リボンリーダーで「2ビット目を読み込み」の指定は「元の数値を半分にする」操作と同じ
プログラミングにおける z = x >> 1
Advanced:「下位2ビットマスク」
https://gyazo.com/fb1e2f964e7ea631a999fa9add453893
「1ビット目と2ビット目を無視して、3ビット目と4ビット目の情報だけコピーする」