ハードウェア
CPU
4bit, 8bit, 16bit, 32bit, 64bitおよびGPU中心処理などの種類がある。
4bit CPUでは、ハードウェア設計がほとんどで、ソフトウェアは論理的な制御部分を担当する。
1bit CPU
1bit CPU 状態機械から始めるplantUML
https://qiita.com/kaizen_nagoya/items/b6530dc4ab6ddf0815d6
2bit CPU
2bit 計算機を設計する. 仮説(213)
https://qiita.com/kaizen_nagoya/items/c0285c8ad5b45f512328
4bit CPU
CPU リモコンで、各国語対応(処理・表示)したり、各国時間に調整したり、温度・気圧対応、文化依存設定などを担当するかもしれない。各国語対応、各国時間対応、温度・気圧対応、文化依存設定は、ハードウェアで実現することもあり、すべてがソフトウェアで行うとは限らない。
8bit CPU
では、POSIX OSは普及しておあらず、ベアメタル処理、BASIC処理、CP/MなどのOS対応になる。
8bit CPUのC言語は、16bit Registerを持つCPUでは容易に実現し、Subsetも存在する。
BDS C
https://www.bdsoft.com/resources/bdsc.html
16bit CPU
当初C言語、UNIXの開発を行っており、ほとんどの16bit CPUで、C言語またはUNIXなどのPOSIX系OSが動作する。
WATCOM C Compilerは、1990年頃には、C言語標準に最も準拠した16bit CPU Cコンパイラとして、C言語のアプリの互換性確認に用いることがあった。
https://winworldpc.com/product/watcom-c-c/70
その後、Open WATCOM C Compilerとして16bit CPUでの挙動確認のために幅広く利用している。
https://github.com/open-watcom/open-watcom-v2
32bit CPU
GNU C Compiler/Gnu Compiler Collection(GCC)は、オープンソースのCコンパイラとして、32bit Intel CPUでの最適化が商用コンパイラと並ぶようになり、急速に用いるようになり、Open Sourceの活動の拠点となった。
https://gcc.gnu.org
64bit CPU
C言語仕様が、64bit CPUへの拡張を実現しておらず、Cの精神に基づいた拡張は続けている。
一つの解決策として、32bit C言語、64bit C言語という2つのC言語仕様に分けるという考え方がある。
32bit C言語は、16bit C言語をひきずっており、そのまま再規定するか、ARMのように16bit CPUがないシリーズを想定した32bit 限定の仕様にするかでの合意が取れるかどうかがわかっていない。
GPU拡張を64bit C言語にだけ適用するという方針で合意できれば、可能性がないわけではないかもしれない。
GPU
GPUの処理は、並列FORTRANのライブラリを利用した並列Cコンパイラなどを利用したり、GPUに適したライブラリを用意した言語をもhc位いることがある。
Ethernet/Wi-Fi
Ethernet/Wi-Fiは、IEEE802委員会で標準化しており、継ぎ目ない(seamless)接続が可能である。
RPC(remote procedure call)のようなAUTOSARでも指向している仕組みなど、POSIX OS以外でも幅広く適用している。
USB
USB-Cは、逆挿がなく、とても便利。
操作の際の無駄時間が省略できるだけで十分嬉しい。
bluetooth
IEEE 802.15は、一時的な仕様。
原則BlueToothSIGで仕様を決めている感じ。
GPS
博論はPHSで実験した。柏村審査会の前日から大学に泊まり込み、GPSでの測定を行った。
PHSと同じように、測定プログラムを下記、遅延差が測定できた。
「PHSでしか成り立たない現象ですか?」
という質問に対して、
「GPSでも同様です。」
って答えられるようにしておいた。
「PHSでは時代遅れで、最新の通信プロトコルではどうですか?」
という質問への回答としても準備。
前日、徹夜でプログラム書いてて寝ていない状態での発表が、プログラマらしい迫力があったのか、該当する質問はなかった。
教授会では最高得票だったらしい。主席卒業?
HDMI
画面を表示するのに、Display Portの種類がいろいろ提唱された。
Raspberry PIが対応しているHDMIが圧倒的なシェアをとっているかもしれない。
Raspberry PI
Raspberry PIは、各種ハードウェアの基本機能を試すのによい基盤である。
標準でPythonを同梱したOSを提供していることも特筆できるかもしれない。
Raspberrpy PI(0) 記事見直し
https://qiita.com/kaizen_nagoya/items/b242287666c453a3d5d7
Raspberry PI 再出発 5でっていう
https://qiita.com/kaizen_nagoya/items/70c2e3da6c8c815dc3ac
FPGA
自動車業界でBMWがいち早く商用車にFPGAを搭載したらしい。
日本の部品メーカが、Watchdogの試作をVerilog HDLで行おうとした。
コンパイルエラーをとることと、STARC RTL 設計スタイルガイドにもとづいた警告への対応を指導した。
RTL設計スタイルガイド Verilog HDL編(System Verilog対応版)coding(73)
https://qiita.com/kaizen_nagoya/items/4c02f1575db1f28310a7
IoT(Internet of Things)
IoTには、ハードウェア側面と、ソフトウェア側面がある。
ハードウェア側面には、Raspberry PIのようなPOSIX互換OSであるLinuxを搭載するシステムと、
C言語のFreeStanding環境のみのベアメタル、POSIX非互換のRealTime OSを搭載するシステムがある。
Ethernet/Wi-Fi, USB, Bluetoothは、Raspberry PIについては、前章で紹介している。
.net micro framework
Microsoftとの歴史 Basicに始まり、Cコンパイラ、Windows95、Git(9)hubまで
https://qiita.com/kaizen_nagoya/items/d7c0cc257e99de0573cf
各種無線
Wi-Fi, bluetooth以外の各種無線はいくつかは試用した。
両方を凌駕する無線にはまだ出会っていない。
関連資料
職業訓練(IT) オープンソースとユーザビリティ教育。構造化とUMLを使って。
https://qiita.com/kaizen_nagoya/items/c41988c2f8ce1b61a08a
セキュリティ記事まとめ
https://qiita.com/kaizen_nagoya/items/f8fa4228c45a04c74fc2
サービス、アプリケーション
https://qiita.com/kaizen_nagoya/items/3acf38aaf744e73677e1
ライブラリ・フレームワークの創り方
https://qiita.com/kaizen_nagoya/items/459cb3f499f9faf71e55