2021:アドレッシングモード メモリと汎用レジスタ間のデータをやり取りするためには対象となる汎用レジスタの番号と対象となるメモリの番地指定が必要になる。ここではメモリの番地を指定する方法について整理する。 LD Rd,[const] 絶対番地指定:メモリの番地を定数で指定する形式。定数は命令列中に埋め込まれる。操作対象の番地は静的に決まる。 LD Rd… 気持玉(0) コメント:0 2021年12月07日 ぼくのかんがえたさいきょうCPU 続きを読むread more
2021:コア内部 演算命令とフラグ ロードストアアーキテクチャでは汎用レジスタ=メモリ間のデータ転送と汎用レジスタ間でのデータ加工を区別することができる。コア内部でのデータの操作は演算命令に分類できる。もうひとつ、命令列の流れを変えたりサブルーチンを読んだりするための分岐命令(制御転送命令)を追加する。さきほどの演算命令の結果によって分岐先を変える条件分岐命令も含まれる… 気持玉(0) コメント:0 2021年12月06日 ぼくのかんがえたさいきょうCPU 続きを読むread more
2021:メモリオーダリング メモリアクセスを行うロード命令やストア命令は通常命令の発行順に行われるが、キャッシュメモリのあるシステムでは命令実行の効率を落とすことがある。無関係なロード命令Aとロード命令Bがあるとき、先行するロード命令Aがキャッシュミスすると続くロード命令Bのデータがキャッシュ上にあっても待たされる。このときメモリから読み込む動作をB,Aの順に入… 気持玉(0) コメント:0 2021年12月05日 ぼくのかんがえたさいきょうCPU 続きを読むread more
2021:キャッシュ データを加工するプロセッサ内部(コア)と外の世界であるメモリ(主記憶)では動作速度に差があり、これを吸収するためにキャッシュメモリという仕組みがある。頻繁に使用するデータは局所的であるという特性から、小容量の高速なメモリに遅い主記憶のコピーを取ってそこを操作する。キャッシュを対象にした操作は矛盾がないよう主記憶に反映され、プログラム側… 気持玉(1) コメント:0 2021年12月04日 ぼくのかんがえたさいきょうCPU 続きを読むread more
2021:エンディアン、境界アクセス ロードストアアーキテクチャではメモリとのやり取りは汎用レジスタに対してのみ行われるが、このときに意識しなければならないのがデータの並び順。バイト単位のデータをメモリ上にどのように並べるか。下位バイトからアドレス昇順に並べるのがリトルエンディアン、上位バイトからアドレス昇順に並べるのがビッグエンディアン。 どちらのエンディアンでも、… 気持玉(0) コメント:0 2021年12月03日 ぼくのかんがえたさいきょうCPU 続きを読むread more
2021:命令セットのフォーマットとアドレス空間 命令セットの大雑把なフォーマットとして、固定長命令と可変長命令がある。固定長命令は黎明期の計算機、RISCアーキで命令デコードが単純になりデコードに関わるハードウェアのリソースが少なくて済む。可変長命令はその他CISCアーキで採用され柔軟に拡張できる反面、機能追加などで安易に拡張されると命令デコードに負担がかかる。RISC-Vは可変長… 気持玉(1) コメント:0 2021年12月02日 ぼくのかんがえたさいきょうCPU 続きを読むread more
2021:整理開始 ぼくのかんがえたさいきょうCPUは近未来の計算機アーキテクチャである。それを考えることで過去の計算機アーキテクチャを調べ、その利点や欠点を整理して理解するというのも目的のひとつである。 十年くらい考えてきた間に世の中も移り変わり、たくさんあったRISCアーキは消え、x86-64とARMが主役、RISC-Vが注目されるようになっ… 気持玉(0) コメント:0 2021年12月01日 ぼくのかんがえたさいきょうCPU 続きを読むread more
SubRISC+ メモ SubRISC+という4命令のみのマイクロプロセッサに関する記事と命令セットについて。 エッジ端末に適した小型省電力プロセッサを実証(東京工業大学) 東工大、エッジ端末に適した小型省電力プロセッサを実証――従来比3.8倍のエネルギー効率(fabcross) 東工大、IoT向けCPUアーキテクチャ「SubRISC+」。エネル… 気持玉(0) コメント:0 2021年02月23日 計算機アーキテクチャ OISC 続きを読むread more
オペランド再考 オペランドについて考え直した。現行ではオペランドとオペコードを区別するMSB、即値とレジスタ指定を区別するビットを使い残り6bitで数値をあらわしていたがもうちょっと工夫する。 オペランド MSB=1 とする。オペコードはMSB=0で区別できる。 type N: オペランドなし 現オペコード|次オペコード typ… 気持玉(0) コメント:0 2020年07月31日 ぼくのかんがえたさいきょうCPU 続きを読むread more
SEX命令のすべて きっかけはこれ。SEX (computing)(Wikipedia) Sign Extend(符号拡張)命令とは、2の補数表現のデータをより大きいビット幅に変換する命令。元データの最上位にある符号ビットの値を先データの空き部分に埋める。 よく知られたMC6809のSEX命令は上位側を8bitのアキュムレータA、下位側を… 気持玉(0) コメント:0 2020年07月14日 とりとめのない話 続きを読むread more
POWER ISA 3.1の追加命令 POWER ISA 3.1が発表された。以下のページの下の方にPDFのリンクがある。 IBM Releases Power ISA v3.1; To Present POWER10 At Hot Chips 32(WikiChip) 目立つのはプレフィックス命令の追加で8バイト命令ができた。主に即値フィールドの追加に使われる… 気持玉(0) コメント:0 2020年05月25日 計算機アーキテクチャ POWER 続きを読むread more
オフコンの最期のあたりの話 90年代前半、新卒で配属されたのはオフコンのハードウェア開発の部署だった。そのあたりの思い出話。 オフコン(オフィスコンピュータ)は汎用機を導入するには金額的にも大変な中小企業や支店向けの事務処理用計算機。汎用機とくらべて特別なファシリティは不要。例えばAC100Vで動作し朝始業時に電源を入れて終業時に電源を切るような運用も可… 気持玉(3) コメント:0 2020年05月21日 とりとめのない話 続きを読むread more
ぼくのかんがえたさいきょうCPU: 明示的な命令列の並列実行 EPICじゃないよ。あれは命令の明示的な並列実行の指定。これの続き。 ぼくのかんがえたさいきょうCPU:明示的な並列実行 命令列のかたまりをランと呼ぶことにする。ランは色々な演算を行った結果、最後にレジスタライトまたはメモリ書き込みで終わるような、その中の命令をOutofOrderなどで並列に実行しづらいかたまり。前回はラン… 気持玉(0) コメント:0 2020年01月28日 ぼくのかんがえたさいきょうCPU 続きを読むread more
ぼくのかんがえたさいきょうCPU:命令エミュレーションについて 昔の汎用機(System/360以降)は上位機種から下位機種まで命令互換で価格に応じて拡張性や性能が違っていた。上位機種は最先端の半導体テクノロジーを採用し積極的に布線論理(ハードワイヤド)で実装、下位機種はこなれた半導体テクノロジーで集積度や動作速度も遅く、マイクロ命令で実装していた。ということを参考にするとよく使う命令はハードで実… 気持玉(0) コメント:0 2020年01月16日 ぼくのかんがえたさいきょうCPU 続きを読むread more
プロセッサの動作モードについて プロセッサは動作モードを切り替えることによってアクセスできるリソースを制限し、動作しているプログラムが他のプログラムの領域を覗いたり破壊することから保護することができる。これがないプロセッサはメモリもI/Oもどのプログラムからもアクセスし放題であり、すべてOSやプログラム側で注意しなければならない。 特権モード(Supervi… 気持玉(1) コメント:0 2020年01月15日 計算機アーキテクチャ 続きを読むread more
影響を受けた本の話 FPGA開発日記さんの本当に私の人生を変えた技術書10選を読んで、自分も影響を強く受けた本をまとめておこうかなと思います。年末だしね。古い本ばかりなので直接役にたつようなものではないです。 ・マイコンピュータNo.6 徹底特集 完全理解6809のすべて 手垢がつくほど読んだ本その1。マイクロプロセッサMC6809について命令… 気持玉(2) コメント:0 2019年12月28日 本 とりとめのない話 続きを読むread more
ぼくのかんがえたさいきょうCPU: ZLSアーキテクチャ 風呂で思いついた。長いデータを格納できるレジスタをどう活用するか。 作業用のスクラッチパッドメモリというのがある。巨大な主記憶とは別にコアに近い部分にアクセス速度が早い小容量のメモリを用意し、こちらで作業することにより高速に処理できるようにする。そのスクラッチパッドメモリをどう見せるかだが、あるプロセスだけに局所的に見せようと… 気持玉(0) コメント:0 2019年10月24日 ぼくのかんがえたさいきょうCPU 続きを読むread more
ぼくのかんがえたさいきょうCPU:ローテート/シフト命令 シフト命令:ビット単位 ROR 右ローテート ROL 左ローテート SHR 右シフト SHL 左シフト シフト命令:バイト単位 RORB 右ローテート ROLB 左ローテート SHRB 右シフト SHLB 左シフト ぼくのかんがえたさいきょうCPU 2018命令フォーマットメモ シフト命令は対象となる… 気持玉(0) コメント:0 2019年10月22日 ぼくのかんがえたさいきょうCPU 続きを読むread more
ぼくのかんがえたさいきょうCPU:EVAL命令詳細 EVAL命令は指定したレジスタの内容を命令列として実行する。用途は自己書き換え命令の代替、マクロ命令的な利用。 ぼくのかんがえたさいきょうCPU:eval EVAL reg,step regに格納された内容を命令列として扱い、実行する。 命令列はregの下位バイトから上位バイトに向かって順に格納する。 EVA… 気持玉(0) コメント:0 2019年09月24日 ぼくのかんがえたさいきょうCPU 続きを読むread more
ぼくのかんがえたさいきょうCPU:型とサイズとNull、符号なし演算の扱い 型: 整数型(符号付き2の補数) ー 符号なしの演算結果は%Re側に保存 アドレス型 ー 整数型に追加する属性。アドレッシングモード側に指定されたレジスタに付加。 以下はオプション: 浮動小数点型 ー IEEE754準拠と非準拠。FP16,FP32,FP64,FP128,... DP32,DP64,DP128,... BC… 気持玉(0) コメント:0 2019年09月20日 ぼくのかんがえたさいきょうCPU 続きを読むread more