Get Things Right

My English blog is here http://getthingsright.blogspot.com/

IT技術の階層、下から上まで  其の二(アーキテクチャ)

IT技術はL1(Layer1)からLnまでの階層構造になっている。以下に階層構造の一例をあげる。

L1:問題
L2:アルゴリズム
L3:高級言語
L4:中間言語
L5:アセンブリ言語
L6:Runtime (VM)
L7:Runtime (OS)
L8:ISA (instruction Set Architecture ), MIPS, x86, RISC-Vなど
L9:マイクロアーキテクチャ
L:10シークエンス回路(フリップフロップ、制御回路など)
L:11組合せ論理回路(NAND-NAND,AND-OR,マリチプレサ、など)
L:12基本論理回路(NANDもしくはANDとOR、NOTなど)
L:13スイッチ素子(P-Mos FET,N-Mos FETなど)
L:14半導体(リレースイッチ素子ならコイルか)
L:15電子(物理)
L:16量子(物理)

上記例では、L1からL7がソフトウエアであり、L8以下はハードウェアとなり、L8(ISA)ソフトウエアプログラマから見えるハードウェアの論理的仕様であり、CPUの命令セットを定義する。この命令セットをG.M Amdahlアーキテクチャと呼んだ。

上の階層は下の階層で代替可能であり、1+1=2とういう問題はL3の高級言語で記述しても、電卓のようにハードワイアードのハードウェアで記述して解を求めて良い。どの階層を作成し、どの階層を省くかはどれだけの人的、財政的資源を投入するかで決まる。

例えばCPUは表面積によってトランジスタスイッチの数が決まり、組み込める論理(論理量)の上限が決まる。論理量の多さによって設計やテストの複雑さが決まり、必要となる人的、財政的資源が見えてくる。

1969年の世界初マイクロプロセッサ4004は高コストで柔軟性の乏しいハードウェアで構成した論理回路を、安価で柔軟性のあるソフトウェアで置き換えることを可能にした。またFPGA技術はハードワイアード論理回路に柔軟性をもたらし、IT技術の階層構造に大きな影響をもたらす可能性を秘めていると自分は考える。

L8:ISAはCPU設計の話となり、CPUの良し悪しは実行時間で測られる。

I(i): Instruction 命令(i)の実行回数
CPI(i): Clock Cycle Per Instruction 命令(i)の実行に必要な平均クロックサイクル数
Ck: Clock Cycle time

実行時間=ΣI(i)*CPI(i)*Ck

I(i)は良いコンパイラは、実行時間の短い命令の使用、もしくは命令自体の数を最小にすることで速度を上げ、CPI(i)は理想的にはすべての命令(i)は1クロックサイクル数で実行されるように論理回路を設計することで速度を上げる。Ckはスイッチの開閉速度を上げることで、CPU処理速度を上げることができる。

トランジスタスイッチは大きさが1/k倍と小さくなるたびにk倍の速さとなり、ムーアの法則によりトランジスタの集積率が1.5年で2倍となるため破竹の勢いで速くなってきた。しかし昨今、スイッチの電圧を約1ボルト以下に下げることができず、トランジスタの高集積により単位面積あたりの発熱が深刻な問題とり、CPUの進化を妨げている。マルチコアの進化は、上位レイヤに並列処理という複雑な問題を押し付け、かつアムダールの法則による推定では95%が並列可能でも、最大20倍にまでしか性能は向上しない。原子スイッチなどトランジスタに変わるスイッチ素子の実用化が望まれる。

L8:ISAを単純化し、良いコンパイラを期待してI(i)の数を最小化したり、最近だとブロックチェーンのマイニングやAIのディープラーニングに特化したハードウェアを作成したり、はたまたL:16量子物理学のレイヤーにまで深掘りしたIT技術まである。L1:問題を解くのに、L2-Lnのどこのレイヤーで問題を解くのか、またどのような階層構造を構築するのかが大きく変わってきている。今まで処理速度の進化を支えてきた、ムーアの法則が発熱の問題で、役に立たなくなってきているからだ。

IT技術の理解には以下の3つの理解がある。
A)概念的な理解(上からの理解)
B) 原理的な理解(下からの要素積み上げ型の理解)
C)経験的理解(自分でやってみて初めて得られる理解)

L1:問題に対して、L2-Lnのどの階層に人的、財政的資源を投入するの判断は、今後企業や、国家の競争優位に大きな影響を与える。そのためにもL1-Ln、すべての層においてA)だけの理解でなく、B)C)の理解をもち、階層の選択に対してのトレード・オフ関係を適切に言語化し、判断できる人材教育が望まれる。またその教育に成功しているのがイスラエルなのではないか。

参考:

Carnegie Mellon   
http://www.ece.cmu.edu/~ece447/s15/doku.php?id=schedule
Bilkent Online Courses
https://www.youtube.com/watch?v=CDO28Esqmcg&list=PLhwVAYxlh5dvB1MkZrcRZy6x_a2yORNAu

http://ocw.ouj.ac.jp/tv/1570102/ 放送大学 コンピュータの仕組み 

コンピュータアーキテクチャ 改訂4版

コンピュータアーキテクチャ 改訂4版

コンピュータのしくみを理解するための10章

コンピュータのしくみを理解するための10章

エピソードでたどるパソコン誕生の謎

エピソードでたどるパソコン誕生の謎

The Elements of Computing Systems: Building a Modern Computer from First Principles (The MIT Press)

The Elements of Computing Systems: Building a Modern Computer from First Principles (The MIT Press)

シュミレーションを使ってハードウェアから作らせ、駆け足でコンピュータの階層構造を俯瞰させる
知立国家 イスラエル (文春新書)

知立国家 イスラエル (文春新書)

https://ja.wikipedia.org/wiki/%E3%83%A0%E3%83%BC%E3%82%A2%E3%81%AE%E6%B3%95%E5%89%87
https://ja.wikipedia.org/wiki/%E3%82%A2%E3%83%A0%E3%83%80%E3%83%BC%E3%83%AB%E3%81%AE%E6%B3%95%E5%89%87