オペランド再考

 オペランドについて考え直した。現行ではオペランドとオペコードを区別するMSB、即値とレジスタ指定を区別するビットを使い残り6bitで数値をあらわしていたがもうちょっと工夫する。  オペランド MSB=1 とする。オペコードはMSB=0で区別できる。 type N: オペランドなし 現オペコード|次オペコード typ…
コメント:0

続きを読むread more

SEX命令のすべて

 きっかけはこれ。SEX (computing)(Wikipedia)  Sign Extend(符号拡張)命令とは、2の補数表現のデータをより大きいビット幅に変換する命令。元データの最上位にある符号ビットの値を先データの空き部分に埋める。  よく知られたMC6809のSEX命令は上位側を8bitのアキュムレータA、下位側を…
コメント:0

続きを読むread more

オフコンの最期のあたりの話

 90年代前半、新卒で配属されたのはオフコンのハードウェア開発の部署だった。そのあたりの思い出話。  オフコン(オフィスコンピュータ)は汎用機を導入するには金額的にも大変な中小企業や支店向けの事務処理用計算機。汎用機とくらべて特別なファシリティは不要。例えばAC100Vで動作し朝始業時に電源を入れて終業時に電源を切るような運用も可…
コメント:0

続きを読むread more

ぼくのかんがえたさいきょうCPU: 明示的な命令列の並列実行

 EPICじゃないよ。あれは命令の明示的な並列実行の指定。これの続き。 ぼくのかんがえたさいきょうCPU:明示的な並列実行  命令列のかたまりをランと呼ぶことにする。ランは色々な演算を行った結果、最後にレジスタライトまたはメモリ書き込みで終わるような、その中の命令をOutofOrderなどで並列に実行しづらいかたまり。前回はラン…
コメント:0

続きを読むread more

ぼくのかんがえたさいきょうCPU:命令エミュレーションについて

 昔の汎用機(System/360以降)は上位機種から下位機種まで命令互換で価格に応じて拡張性や性能が違っていた。上位機種は最先端の半導体テクノロジーを採用し積極的に布線論理(ハードワイヤド)で実装、下位機種はこなれた半導体テクノロジーで集積度や動作速度も遅く、マイクロ命令で実装していた。ということを参考にするとよく使う命令はハードで実…
コメント:0

続きを読むread more

プロセッサの動作モードについて

 プロセッサは動作モードを切り替えることによってアクセスできるリソースを制限し、動作しているプログラムが他のプログラムの領域を覗いたり破壊することから保護することができる。これがないプロセッサはメモリもI/Oもどのプログラムからもアクセスし放題であり、すべてOSやプログラム側で注意しなければならない。  特権モード(Supervi…
コメント:0

続きを読むread more

影響を受けた本の話

 FPGA開発日記さんの本当に私の人生を変えた技術書10選を読んで、自分も影響を強く受けた本をまとめておこうかなと思います。年末だしね。古い本ばかりなので直接役にたつようなものではないです。 ・マイコンピュータNo.6 徹底特集 完全理解6809のすべて  手垢がつくほど読んだ本その1。マイクロプロセッサMC6809について命令…
コメント:0

続きを読むread more

ぼくのかんがえたさいきょうCPU: ZLSアーキテクチャ

 風呂で思いついた。長いデータを格納できるレジスタをどう活用するか。  作業用のスクラッチパッドメモリというのがある。巨大な主記憶とは別にコアに近い部分にアクセス速度が早い小容量のメモリを用意し、こちらで作業することにより高速に処理できるようにする。そのスクラッチパッドメモリをどう見せるかだが、あるプロセスだけに局所的に見せようと…
コメント:0

続きを読むread more

ぼくのかんがえたさいきょうCPU:ローテート/シフト命令

シフト命令:ビット単位 ROR 右ローテート ROL 左ローテート SHR 右シフト SHL 左シフト シフト命令:バイト単位 RORB 右ローテート ROLB 左ローテート SHRB 右シフト SHLB 左シフト ぼくのかんがえたさいきょうCPU 2018命令フォーマットメモ  シフト命令は対象となる…
コメント:0

続きを読むread more

ぼくのかんがえたさいきょうCPU:EVAL命令詳細

 EVAL命令は指定したレジスタの内容を命令列として実行する。用途は自己書き換え命令の代替、マクロ命令的な利用。 ぼくのかんがえたさいきょうCPU:eval EVAL reg,step regに格納された内容を命令列として扱い、実行する。 命令列はregの下位バイトから上位バイトに向かって順に格納する。 EVA…
コメント:0

続きを読むread more

ぼくのかんがえたさいきょうCPU:型とサイズとNull、符号なし演算の扱い

型: 整数型(符号付き2の補数) ー 符号なしの演算結果は%Re側に保存 アドレス型 ー 整数型に追加する属性。アドレッシングモード側に指定されたレジスタに付加。 以下はオプション: 浮動小数点型 ー IEEE754準拠と非準拠。FP16,FP32,FP64,FP128,... DP32,DP64,DP128,... BC…
コメント:0

続きを読むread more

プロセサ命令セットアーキテクチャクイズ!

 半年ほど更新をサボってましたがリハビリがてらクイズを作ったので遊んでみてください。 プロセサ命令セットアーキテクチャクイズ! 追加したよ! プロセサ命令セットアーキテクチャクイズ2! Panasonic フードプロセッサー ホワイト MK-K48P-W ¥ …
トラックバック:0
コメント:0

続きを読むread more

ぼくのかんがえたさいきょうCPU:バリア命令

 メモリオーダリングでロードやストアの順序を入れ替えて効率よく実行させるが、いったん実行中のメモリアクセスを完了させる用途にバリア命令を用意。 命令フォーマット:01110xxx 8種類 メモリ関係: FENCE #LD この命令以前のストア命令を完了 FENCE #ST この命令以前のロード命令を完了 #…
トラックバック:0
コメント:0

続きを読むread more

スーパバイザモードでやるメモリ管理について

 今回は思いつきです。  RISC-V原典を読んで、割り込みの分類を外部から非同期で割り込むインタラプトとその他のトラップに分類していることに気付いた。その他のトラップには従来の例外(エクセプション)も含まれている。例外が発生した命令から例外処理に移り、原因が解決できたらその命令からリトライする。この仕組みでユーザモードのメモリ管…
トラックバック:0
コメント:0

続きを読むread more

ぼくのかんがえたさいきょうCPU:明示的な並列実行

 アウトオブオーダ実行は自動的に命令の実行順を入れ替えてできる分から効率的に済ましていく方式だが、命令で明示的に並列実行を指示するにはどうしたらよいか考えてみた。  先行する命令列Aと後続の命令列Bについて考える。  並列実行ができない実装のプロセッサでは命令列Aの実行を済ませてから命令列Bの実行を行う。並列実行ができるプロ…
トラックバック:1
コメント:0

続きを読むread more

第10章 RV32/64特権アーキテクチャ (1)

 第10章  RV32/64特権アーキテクチャ (1) 10.3まで RISC-V原典9章 RISC-V原典8章 RISC-V原典 6,7章 RISC-V原典 3,4,5章 RISC-V原典 1,2章 ・一般のプロセッサにあるユーザモード(U)、スーパバイザモード(S)に加えて最も特権が強いマシンモード(M)を持つ …
トラックバック:2
コメント:0

続きを読むread more