fjt7tdmi のノート

メモ帳みたいなもの

低レイヤの規格書・仕様書についてのメモ

今までに(一部でもいいから)読んだ規格書・仕様書や、読んでみたい規格書・仕様書、あるいはそれらに関係が深そうなものについて記載する。 「アレの規格書・仕様書ってどこにあるんだっけ…?」となった時の備忘録のつもり。 入手方法などについてもコメントしているが、もしかしたら不正確な情報もあるかもしれない。やる気があれば、適宜アップデートする。

CPU の規格書・仕様書

ARM

昔は ARM Info Center という名前だった気がするが、ここ 1,2 年でサイトがリニューアルされた。 ARM の ISA の規格書だけでなく、AXI バスや Cortex シリーズのデートシートもダウンロードできる。 ユーザー登録しないと読めないドキュメントも多いが、低レイヤ・組込み開発者ならユーザー登録しておいて損はないだろう。 個人的に、学生時代から非常にお世話になっている。

Intel x86

言わずと知れた Intel の SDM. 実は、私はほとんど読んだことが無い。 正直なところ、このまま読まずに人生を過ごせた方が幸せかなー、などとも思っている。 現在良く使われる CPU アーキテクチャの中で Intel x86 は最も歴史が古く、過去の名残みたいなものが多いのだが、それを把握していくことにあまり喜びを感じられない。

RISCV

RISCV は、オープンな規格を標榜しているだけあって、ユーザー登録しなくても仕様書が読めるようになっている。 新進の ISA なので、分量も ARM/x86 に比べて少ない。CPU 仕様書の初心者にもお勧めできる。

GPU の規格書・仕様書

AMD

こちらも数多くのドキュメントがある。私が一番気にあるアーキテクチャ関連について、NVIDIA よりはドキュメントが多そう、という気がする。 RDNA の ISA のマニュアルなどがある。個人的に興味があるので読んでみたいが、最近時間が…

NVIDIA

ドキュメントは数多くあるが、私が一番気になるアーキテクチャ関連については、それほどドキュメントが無い気がする。NVIDIA が ARM を買収するということだし、ARM のドキュメント並みに詳しいドキュメントで溢れていくことを期待したい。

インターコネクトの規格書・仕様書

インターコネクトは、実用的に使われているものだけでも本当に多くの種類がある。 とりあえず、自分が知っているやつだけまとめる。分類方法も迷ったので、とりあえずアルファベット順に並べた。

AXI

ARM のチップ内インターコネクトだが、ARM 製品に限らず至るところで使われている。ARM のサイトからダウンロードして読むことができる。

Display Port

基本的に VESA という業界団体に加入しないと、規格書は読めない。

ただし、Display Port 1.2a など一部の規格書は、フリーでダウンロードできる。

Ethernet

Ethernet の規格は事実上 IEEE 802.3 である。 試していないが、ユーザー登録すれば以下のページからフリーでダウンロードできるようだ。

また、以下のページに過去の規格書のアーカイブがあったりする。

HDMI

基本的には HDMI アダプタという業界団体に加入しないと、規格書は読めない。 ただし、一部の規格書は Web サイトに登録すると無料で読めるらしい。

また HDMI の元となった DVI の規格書は無料で読めた…らしいのだが、今はドメインが失効している。

I2C

 I2C はフィリップスが策定した規格で、現在は NXP セミコンダクターズの Web サイトで規格書が配布されている。なんと日本語の規格書もある。内容も難しくないので、規格書初心者にオススメ。

PCIe

PCIe の規格書は、PCI-SIG という業界団体のメンバになったりお金を払ったりしないと読むことができない。

SATA

SATA の規格書は、SATA-IO という業界団体にお金を払わないと読むことができない。

規格書・仕様書があるかはよく知らないが、SPI 自体そんなに難しくないので、Wikipedia 読んどけばいい気がする。

UART

UART は規格書・仕様書ってあるんだっけ…これも難しくないので、Wikipedia でも読めば十分だと思う。

https://en.wikipedia.org/wiki/Universal_asynchronous_receiver-transmitter

USB

USB はオープンな規格なので、誰でも仕様書をダウンロードして読むことができる。

ホストコントローラの IF である EHCI, xHCI については Intel のサイトから仕様書をダウンロードする。

プログラミング言語の規格書・仕様書

プログラミング言語は星の数ほどあるが、私が触ったものの中で低レイヤのものについてだけ記載。Rust は詳しくないので、含まれていない。

C

cpprefence に、C 言語や ABI の規格のリンク集がある。

C++

cpprefjp に、標準規格へのリンクがある。

SystemVerilog

これかなー。