2021:コア内部 演算命令とフラグ

 ロードストアアーキテクチャでは汎用レジスタ=メモリ間のデータ転送と汎用レジスタ間でのデータ加工を区別することができる。コア内部でのデータの操作は演算命令に分類できる。もうひとつ、命令列の流れを変えたりサブルーチンを読んだりするための分岐命令(制御転送命令)を追加する。さきほどの演算命令の結果によって分岐先を変える条件分岐命令も含まれる…
コメント:0

続きを読むread more

2021:メモリオーダリング

 メモリアクセスを行うロード命令やストア命令は通常命令の発行順に行われるが、キャッシュメモリのあるシステムでは命令実行の効率を落とすことがある。無関係なロード命令Aとロード命令Bがあるとき、先行するロード命令Aがキャッシュミスすると続くロード命令Bのデータがキャッシュ上にあっても待たされる。このときメモリから読み込む動作をB,Aの順に入…
コメント:0

続きを読むread more

2021:キャッシュ

 データを加工するプロセッサ内部(コア)と外の世界であるメモリ(主記憶)では動作速度に差があり、これを吸収するためにキャッシュメモリという仕組みがある。頻繁に使用するデータは局所的であるという特性から、小容量の高速なメモリに遅い主記憶のコピーを取ってそこを操作する。キャッシュを対象にした操作は矛盾がないよう主記憶に反映され、プログラム側…
コメント:0

続きを読むread more

2021:エンディアン、境界アクセス

 ロードストアアーキテクチャではメモリとのやり取りは汎用レジスタに対してのみ行われるが、このときに意識しなければならないのがデータの並び順。バイト単位のデータをメモリ上にどのように並べるか。下位バイトからアドレス昇順に並べるのがリトルエンディアン、上位バイトからアドレス昇順に並べるのがビッグエンディアン。  どちらのエンディアンでも、…
コメント:0

続きを読むread more

2021:命令セットのフォーマットとアドレス空間

 命令セットの大雑把なフォーマットとして、固定長命令と可変長命令がある。固定長命令は黎明期の計算機、RISCアーキで命令デコードが単純になりデコードに関わるハードウェアのリソースが少なくて済む。可変長命令はその他CISCアーキで採用され柔軟に拡張できる反面、機能追加などで安易に拡張されると命令デコードに負担がかかる。RISC-Vは可変長…
コメント:0

続きを読むread more

2021:整理開始

 ぼくのかんがえたさいきょうCPUは近未来の計算機アーキテクチャである。それを考えることで過去の計算機アーキテクチャを調べ、その利点や欠点を整理して理解するというのも目的のひとつである。  十年くらい考えてきた間に世の中も移り変わり、たくさんあったRISCアーキは消え、x86-64とARMが主役、RISC-Vが注目されるようになっ…
コメント:0

続きを読むread more

SubRISC+ メモ

SubRISC+という4命令のみのマイクロプロセッサに関する記事と命令セットについて。 エッジ端末に適した小型省電力プロセッサを実証(東京工業大学) 東工大、エッジ端末に適した小型省電力プロセッサを実証――従来比3.8倍のエネルギー効率(fabcross) 東工大、IoT向けCPUアーキテクチャ「SubRISC+」。エネル…
コメント:0

続きを読むread more

オペランド再考

 オペランドについて考え直した。現行ではオペランドとオペコードを区別する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