エミュレーションか否かの状態を保持する記憶装置の有無が特許侵害の判定基準と考えています。ICF3-Zは、そもそもエミュレーションという状態が存在しないという説明です。ICF3-Zを良く思わない人たちによって、この話が煽られているのかもしれないと思って補足してみました。いう仮想マシンで動作するJavaScritpのエンジンを見つけました。小型のスタックマシンであるように読めています。いうわけでICF3-Zの仮想マシンについて説明してみたいと思います。ICF3-Zにはユーザーが定義できる16bit長の命令があります。これまで圧縮命令と読んできたものです。この圧縮命令を利用することで仮想マシンになるのかもと考えています。圧縮命令は公開したZeviosコアに実装されています。圧縮命令を仮想マシンとして利用するための注意点があるので説明します。32bit長の命令に2つの16bit長の圧縮命令を入れることしかできません。16bit長の命令コードが続いているなかで奇数番目の命令コードへの分岐はできません。分岐先が16bit長でも32bit長のどちらでも問題ありません。圧縮命令で分岐命令を実装するにはPOPSP命令を使います。圧縮命令はサブルーチンで実装されているためスタックをクリアする必要があるからです。32bitの前半のコードか、後半のコードかを記録しているビットもあるので、それもクリアします。圧縮命令でCALL命令のようなサブルーチンコール命令を作った場合、32bitの後半のコードに配置しないといけません。コンパイラでそういうコードを生成する必要があります。圧縮命令は通常のCALL命令と同じ仕組みでスタック上にリターンアドレスを格納しています。したがってサブルーチンコール命令の実装は、普通に分岐命令を使うだけでできます。実質、仮想マシンの命令コードは、15bit長になります。既存の仮想マシンを移植することは困難であるように思います。ICF3-Z用の仮想マシンを作ることになると考えています。ICF3-Z以外のマシンでも動作させるのも、いいのかもと思います。ICF3-Zで動作する仮想マシンの仕様であれば、他のマシンでほぼ確実に動作する仮想マシンになるでしょう。仮想マシンの応用編あまり本気にする必要はありませんが、面白いかもと思って書いています。仮想マシンを作れば、Z80のようなレガシーなCPUのエミュレーションも、できるのかもしれません。プログラムメモリが4倍必要になりますが、32bitを1バイトにした、バイト単位のアドレスに分岐できます。空では、もったいないのでLCDやキーボード入力などの制御をさせれば、ちょっといいかも、とか。今月15日に除算命令のサンプルコードを公開しました。それをテンプレートに性能を評価する人も、あるのかもと思っています。書かないと十分な性能を出せないと思っています。A,B,Cの8bitレジスタを連結させて1サイクルで1bit左シフトできる機能を使っています。3レジスタ同時に左シフトすることもできるのですが、実際のコードは、A,B,Cに値をセットしてA,Bだけ先に左シフト。後からCを左シフトします。このときに除算の結果、1bitを最下位ビットに取り込みます。Cレジスタを同時に左シフトしてしまうと除算結果を取り込めないので、Cレジスタの左シフトは敢て遅延させています。8回繰り返した後にはCレジスタには8bitの除算結果が入っているというような感じです。RISC-V実際に比較しないと、わからない人が多いと思いましたので、小型のRISC-VコアであるlowRISCのibexと比較してみました。lowRISCのWebページにXilinxのローエンドのFPGA(7シリーズ)に実装した場合の周波数が50MHzと書かれてありました。除算は37サイクルで動作と書かれています。Zeviosは同じくXilinxのローエンドのFPGA(Artix-7)に実装した場合、周波数は150MHzになります。0除算などのチェックや演算レジスタへのロード、ストアの補正として3~6サイクル追加しています。XC7A35TICSG324-1Lです。ibexは2500LUTの面積ですが、Zeviosは400LUTの面積です。Licenseとして運用が開始されました。ダウンロードしてverilogでシミュレーション可能です。ICF3-ZのZeviosの除算性能のメモ」も参考になると思います。レジスタ読出しに1サイクル使えるので大きなレジスタファイルを使うことができます。書いたのですが、そこに疑問を感じた人があったようです。クリティカルパスは8bit加算のキャリーがあるALU演算になることを考えていました。(a)(b)(c)を並列実行すると(b)がクリティカルパスになって周波数は2倍になります。(a)のレジスタ読出しに使える時間は、逐次実行の2倍になるため、大きなレジスタファイルやRAMが使える。AVRの一つであるATmega328の除算性能を実測してブログにした。R3で使われているソフトウェア除算の性能を測ったということになる。ICF3-Zは16bit÷8bitで20倍高速。(ICF3-Zは同じ半導体素子ならAVRの2倍の周波数が出せるため)Arduinoの開発環境、便利ですね。Arduinoに3ドル寄付しました。ICF3-Fの作業が進まない頭痛だと半日とか、長くても1週間くらいで、痛みが止む。このところの問題は目が霞んでいることが長期化して、元に戻らなくなっていないか。背骨が筋肉痛になって姿勢を保つのが厳しくなっている。最近は、ほとんどなくなったことだが、食事をとったあと、強制的に眠らされるとどうなるか、ご存知だろうか。それほど痛くはないが、腹痛とともに、食べたものがあまり消化されずに、排出される。数えていないが、これまで数百回は行われている。この状況でも体調が崩れるリスクを抱えながら1日3時間くらいは、ICF3-Fが進むのかもしれない。それでは、例えば1年で完成するものが3年以上かかる。ならないのか、考えている。間違えることもあるかと思い、ICF3-FをSnakeCubeと命名して別サイトに分離しました。頭が悪い状態ではICF3-Fがうまく完成しない。頭痛でICF3-Fを手放すことがあれば、それを受ける先が、頭痛関係者として疑われ、うまくいかないはずです。ICF3-Fを手放す前に僕の脳が破裂していると思いますけど。頭痛が続く将来を予想して欲しいのです。僕は頭痛を認めていません。僕のようなケースでは非人道的だと考えています。頭痛がひどくなった痛い。ICF3(1999年)が良く売れた理由が、わかった。推定なので正しいのか、わかりませんが。米国では2000年まで暗号技術の輸出規制が厳しかったのです。思うように販売できなかったのでしょう。日立のIBM互換機なら、米国からの輸出ではなく日本からの輸出なので、規制の対象にならなかった。東大卒がいっぱいいる部署で開発しているIBM互換機のCPUは安心のIBM製。暗号装置はIBMの仕様をもとに僕が開発したので、規制の問題を回避できた。ゼロから僕が製品化したもので、1回目(RSA暗号)で完成度の高い製品になったのは、日立の技術というより、僕の才能と幸運によるもの。(天の声ではなく)会社は、いっぱい儲かったのに、どうしてと、思う。「国を守れ!」と歓声が上がっているところもあるようです。差し押さえを考えた人もあると思います。公開鍵暗号はCPUやGPUでも効率的に演算できます。影響しないと思います。差し押さえることより、わが国の技術力を見せることに役立てたほうがいいと思います。現在ではFPGAがあるため、大学生のお小遣い程度で技術的には開発できる状況にあります。差し押さえると、他国に抜かれて、この国が劣勢になる問題のほうが大きい。ちなみにSSLアクセラレータのICF3-Fはクローズドです。CPUで、しかも暗号演算器をはずしたものです。除算命令で低消費電力に!?国内のマイコンメーカーでも乗除算命令がないマイコンのみしか扱っていないところがある。Cotex-M0+が最上位マイコン。32bitなのですが除算命令がないため除算1回で数百サイクルかかります。除算命令のないマイコンよりも10倍高速。1ループに必要なサイクル数が半分になることはあるように思います。半分の周波数で動作する。8bitだから恐らく同じ周波数でも32bitより低消費電力。低い周波数で動作させられる可能性があり、低消費電力になることはあるような気がします。ICF3-Z特許侵害調査(2)ほとんど問題ないと思っているのですが、まだ特許侵害調査をしています。特許を見ているとデバッグ関係の特許が多く申請されているようです。気を付けたほうがいいなと思いました。問題を起こして回復はしても全部は回復しているとは限らない。脳神経が壊れていく感じ。ICF3-Zの特許侵害調査をしています。筋肉痛で動けなくなることはあるが、今日は筋肉痛にはなっていない。USBメモリ(東芝製)のキャップを取ることができないくらい手の筋肉が動かない。CPUで例えるならレジスタ数が1個未満という状況で、頻繁に苦痛を強いられる。いえば、僕って、かつて開発で最も稼いだ大手電機メーカーの社員だったんですけど。ハイエンドのスマホでICF3-Fが使われるかもしれない。公開鍵暗号には、署名と検証の2つの演算がある。スマホでは、多くの場合は検証で、時々、署名をするという使い方が一般的だと思う。RSA暗号について言えば、Microsoftの特許を使うと検証処理をかなり軽減できる。署名にかかる時間が長くなっても、あまり気にならない処理が多いという前提を考える。銀行振り込みのような処理で5秒くらいかかっても、それほど気にならない。ハイエンドのスマホならICF3-Fを使って0.2秒みたいな。重ねることができるのではないかと思います。3次元積層技術に詳しくはないが、恐らく放熱が問題になる。署名はたまにしか使わない。放熱の問題も起きない。