自作CPU & 自作OSをやっていく (2) - 64ビットRISC-Vの "Hello World" をRustで作った

2020年1月から、趣味エンジニアリング活動として自作CPUと自作OSをやっていく。

今回は、64ビットRISC-V (RV64I) の “Hello World” をRustで作ったので、そのリポジトリの紹介。

自作CPU & 自作OS タグで、この前後の進捗とか目指しているもの(初回記事)とかを追えるようにしている。

続きを読む


自作CPU & 自作OSをやっていく (1) - 全体像(随時更新)

2020年1月から、趣味エンジニアリング活動として自作CPUと自作OSをやっていく。

第一回のこの記事では、目指してることとか、作りたい成果物とか、ロードマップとか、進捗とかを記録していく。インプットが増えたり手を動かしていくと色々と軌道修正があるだろうから、この記事は随時更新されていく。ChangeLogをご参考。
進捗報告は 自作CPU & 自作OS タグで追えるようにしておく。

続きを読む


『コンピュータの構成と設計 第5版』演習問題解答集 第4章

“パタヘネ本” でおなじみの『コンピュータの構成と設計 第5版』の解答集です。読者は書籍を保有していることを前提として解答・解説を記載します。
訂正案などありましたら本ブログ記事のリポジトリ へPull-Requestくだされば幸いです😊

この記事4章の内容は、プロセッサを実現するハードウェアユニット・パイプライン処理・命令レベル並列化など、CPUに関する中核です。

各章の解答集

  1. 『コンピュータの構成と設計 第5版』演習問題解答集 第1章 (執筆中)
  2. 『コンピュータの構成と設計 第5版』演習問題解答集 第2章
  3. 『コンピュータの構成と設計 第5版』演習問題解答集 第3章
  4. 『コンピュータの構成と設計 第5版』演習問題解答集 第4章 (この記事)
  5. 『コンピュータの構成と設計 第5版』演習問題解答集 第5章 (執筆中)
  6. 『コンピュータの構成と設計 第5版』演習問題解答集 第6章 (執筆中)

続きを読む


『コンピュータの構成と設計 第5版』演習問題解答集 第3章

“パタヘネ本” でおなじみの『コンピュータの構成と設計 第5版』の解答集です。読者は書籍を保有していることを前提として解答・解説を記載します。
訂正案などありましたら本ブログ記事のリポジトリ へPull-Requestくだされば幸いです😊

この記事3章の内容は、

  • 加算と減算
  • 乗算器
  • 除算器
  • 浮動小数点数
  • SIMD

です。

各章の解答集

  1. 『コンピュータの構成と設計 第5版』演習問題解答集 第1章 (執筆中)
  2. 『コンピュータの構成と設計 第5版』演習問題解答集 第2章
  3. 『コンピュータの構成と設計 第5版』演習問題解答集 第3章 (この記事)
  4. 『コンピュータの構成と設計 第5版』演習問題解答集 第4章
  5. 『コンピュータの構成と設計 第5版』演習問題解答集 第5章 (執筆中)
  6. 『コンピュータの構成と設計 第5版』演習問題解答集 第6章 (執筆中)

続きを読む


『コンピュータの構成と設計 第5版』演習問題解答集 第2章

“パタヘネ本” でおなじみの『コンピュータの構成と設計 第5版』の解答集です。読者は書籍を保有していることを前提として解答・解説を記載します。
訂正案などありましたら本ブログ記事のリポジトリ へPull-Requestくだされば幸いです😊

この記事2章では、ひたすらMIPSアセンブリと戯れます。

各章の解答集

  1. 『コンピュータの構成と設計 第5版』演習問題解答集 第1章 (執筆中)
  2. 『コンピュータの構成と設計 第5版』演習問題解答集 第2章 (この記事)
  3. 『コンピュータの構成と設計 第5版』演習問題解答集 第3章
  4. 『コンピュータの構成と設計 第5版』演習問題解答集 第4章
  5. 『コンピュータの構成と設計 第5版』演習問題解答集 第5章 (執筆中)
  6. 『コンピュータの構成と設計 第5版』演習問題解答集 第6章 (執筆中)

続きを読む


二分探索木 - Rustではじめるデータ構造とアルゴリズム(第2回)

簡単な二分探索木

Rustの特徴のひとつは、所有権(ownership)・移動(move)・借用(borrow)の概念です。これらがコンパイル時に厳格にチェックされることにより、古くから未定義挙動でプログラマを悩ませてきたダングリングポインタなどの問題がなくなり、メモリ安全性がもたらされます。

しかし一方で、自分で多少複雑なデータ構造を定義しようとする場合にはコンパイルを通すだけでもかなりの知識・力量が要求されます。

この(不定期)連載では、 Rustではじめるデータ構造とアルゴリズム と題し、プログラミングコンテストなどでよく見かける基礎的なデータ構造とアルゴリズムを、できるだけシンプルにRustで実装していきます。 &, &mut, Box, Rc, Cell, RefCell などの使い分けや、なぜそれを使う必要があるかの解説を、実例を通して行います。

今回第2回では、 二分探索木 を取り扱います。値の大小に沿った構造を持つ二分木であり、単純なデータ構造でありながら、検索やソートなど実用性が高いです。第1回の二分木に少し制約を付け足した構造になるので、未読の方はぜひ第1回のほうからご覧ください。

続きを読む


二分木 - Rustではじめるデータ構造とアルゴリズム(第1回)

簡単な二分木(引用元: Wikipedia)

Rustの特徴のひとつは、所有権(ownership)・移動(move)・借用(borrow)の概念です。これらがコンパイル時に厳格にチェックされることにより、古くから未定義挙動でプログラマを悩ませてきたダングリングポインタなどの問題がなくなり、メモリ安全性がもたらされます。

しかし一方で、自分で多少複雑なデータ構造を定義しようとする場合にはコンパイルを通すだけでもかなりの知識・力量が要求されます。

この(不定期)連載では、 Rustではじめるデータ構造とアルゴリズム と題し、プログラミングコンテストなどでよく見かける基礎的なデータ構造とアルゴリズムを、できるだけシンプルにRustで実装していきます。 &, &mut, Box, Rc, Cell, RefCell などの使い分けや、なぜそれを使う必要があるかの解説を、実例を通して行います。

第1回は、最もシンプルな木構造である 二分木 を取り扱います。基礎的な木構造なので、再帰・深さ優先探索・幅優先探索のエッセンスを集中的に理解することが期待できます。

各回共通し、以下のような構成を予定しています。

  1. データ構造の説明と、Rustでの定義
  2. 関連するアルゴリズムの説明と、(汎用的に実装できる場合は)Rustでの実装
  3. 定義したデータ構造とアルゴリズムを使って、プログラミングコンテストの問題を解いてみる

続きを読む


プレイイングマネージャーのポテンシャルエナジー理論

全世界のプレイングマネージャーに捧ぐ・・・

自分自身がプレイングマネージャー的な役割をこなす場面があるときに、「プレイヤー仕事たのし〜」「マネージメント仕事戻るの気が重いよ〜〜」となることがあります。多々あります。
そんな自分を慰めるために、自分の心に秘めた独自理論があります。名付けて

です。
一生自分の胸だけに秘めるつもりだったのですが、同僚と1on1してポロッと話してみたら意外とウケたので、増長してブログに書きました。

続きを読む



Backlog Worldにブログレポーター枠で参加しました

Backlog Worldにブログレポーター枠で参加しました

2018/02/18に開催された Backlog World にブログレポーター枠として参加してきました。

■ Backlog Worldとは?

Backlog Worldは、プロジェクト管理に関わる全ての方のための祭典です。一言でプロジェクト管理と言っても、業種や職種、チームの規模、プロジェクトの期間などは様々。それでも、どんなプロジェクトでも、「仲間とコラボレーションしてプロジェクトを進める」ということは必須です。

Backlog Worldでは、どのようにプロジェクト管理を行なっているのか、様々な立場の方による知見のシェアが行われます。実例に基づいたセッションの中に、あなたのチームで取り入れられるヒントがきっとあるはず。

この記事では自分の参加したセッションに触れ、その中でも特に印象に残った「アジャイル開発とプロジェクト管理ツールの相性」のセッションについて詳しく感想を書きます。

続きを読む