開発日記

Erlangをダラダラ書きます。

2021-01-01から1年間の記事一覧

基本命令セット RV32I

ロード / ストア 加算 減算 論理演算 シフト 比較 条件分岐 ジャンプ 即値ロード CSR 例外 ロード / ストア LW (I) ... add, op1, op2_imi SW (S) ... add op1, op2_ims 加算 ADD (R) ... add, op1, op2 ADDI (I) ... add, op1, imi 減算 SUB (R) ... sub op…

ハードウェア実装における耐タンパ性

耐タンパー性とは 耐タンパー性とは、コンピュータシステムの内部構造の解析・改ざんの困難性を指す.(計算機性能とは別) ハードウェアの回路やソフトウェアのプログラムは,リバースエンジニアリングによって構造の仕組みを解析・改ざんすることが可能で…

RISC-V MMU

ハードウェアページテーブルウォークを採用 仮想メモリの仕様 RV32 RV64 ページングアルゴリズム(ページテーブル検索) Sv32 ハードウェアページテーブルウォークを採用 RISC-Vではページ入れ替え処理(ページテーブルウォーク)をハードウェアで制御する. …

RISC-V 割り込みと例外処理

割り込みとは 割り込み番号 割込み優先度 特権レベルスタック 割り込み流れ PLIC(プラットフォームレベル割り込みコントローラ) RISC-Vの処理(割り込み / 例外 発生後) <trap_vector>アドレス <trap_vector>アドレスの追加 実行モード Trap Delegation Register(トラップ代理レジ</trap_vector></trap_vector>…

RISC-V アーキテクチャ(2)

RV32E(組み込み分野向け) 利点 拡張命令 問題 リトルエンディアン エンディアン変換 16ビット可変長命令 命令エンコードの工夫 汎用レジスタの位置を固定 符号拡張した即値が,各命令形式で同じ桁 符号拡張した即値の符号ビット / 最上位ビット(MSB)の位…

RISC-V アーキテクチャ(1)

レジスタ長 汎用レジスタ 32本(x0 - x31) 汎用レジスタ本数が少ないと? 汎用レジスタ本数が多いと? 基本命令と命令形式 基本命令 6種類の命令形式 拡張命令 13種類 推奨ISA レジスタ長 32 / 64 / 128 ビットの3種類. マイコンからスパコンまで幅広くサ…

Dockerコマンド

DockerコマンドでDockerデーモンとやり取り. 管理用コマンド バージョン確認 イメージ用コマンド イメージの作成 イメージの確認 イメージの取得 イメージの削除 コンテナ用コマンド コンテナの作成 コンテナの確認 コンテナの削除 イメージへのcommit リフ…

GitHubへの認証

1. Personal Access Token コマンドライン上でのトークンの使用 2. Caching credentials Github CLI Github CLI の LinuxおよびBSDへのインストール 認証方法は主に2種類ある. 1. Personal Access Token パーソナルアクセストークン(PAT)は,GitHub API…

riscv-gnu-toolchain 使い方メモ

riscv-gnu-toolchain インストール方法 hexファイルの生成(FPGA書き込み用) ソースコード準備 riscv64-unknown-elf-gcc 使用 riscv32-unknown-linux-gnu-gcc 使用 riscv-gnu-toolchain インストール方法 yuyargon.hatenablog.com hexファイルの生成(FPGA…

RISC-Vとは?

RISC-VっどんなCPU? riscv.orgのISA仕様書 SiFiveのISA仕様書 RISC-VっどんなCPU? UCバークレーで2010年に開発が始まったRISC(縮小命令セットコンピュータ)のプロジェクト. ISA(命令セットアーキテクチャ),つまり命令の仕様書(ハードウェアが機械語…

ローカルでの開発環境構築(RISC-V)

各種ツールのインストール Open JDK sbt Verilator Vivado サポートしているOS Chisel template 各種ツールのインストール Open JDK ScalaおよびJavaのためのオープンソースの開発環境. sudo apt install openjdk-8-jdk sbt ScalaおよびJavaのためのオープ…

riscv-gnu-toolchain

RISC-V用のクロスコンパイラ 昔 今 インストール方法 サポートされているアーキテクチャ サポートされているABI 使用方法 RISC-V用のクロスコンパイラ RISC-V向けのgccやldなどのコマンドを提供してくれる。 昔 2019年までは riscv-tools リポジトリからイン…

ChiselでRISC-Vコア開発(1)

本日から「ChiselでRISC-Vコア開発」のプロジェクトを始める. 出来る限り,毎日投稿していく予定だ. 本プロジェクトは,書籍「RISC-VとChiselで学ぶはじめてのCPU自作」(以下Chisel本)で学んだことを活かして,自作のRISC-VコアをChiselで実装していく.…

RISC-V初心者の開発日記0日目

毎日更新を目標に... 日記の趣旨 目標 学習するプロジェクト 毎日更新を目標に... 日記の趣旨 この日記は,学習のアウトプットの場として利用する. 主にRISC-V関連を投稿する予定だ. また,この日記を通して苦手な物書きを克服したいと思っている. …