今の人はどうやってCPUについて学ぶんだろう、とふと思って調べてみたんだけどよくわからないなぁ...なにかいい資料はないものか。
16728097 journal jizouの日記: むずかしいなぁ... 20 日記 by jizou 2023年08月20日 12時33分 今の人はどうやってCPUについて学ぶんだろう、とふと思って調べてみたんだけどよくわからないなぁ...なにかいい資料はないものか。
CPUの何について学ぶか (スコア:1)
CPUの何について学ぶか明らかにすると、Webの資料とか書籍にたどり着きやすくなるのでは。
アセンブリ、ハードのアーキテクチャレベル、RTLレベル、ゲートレベル、究極的にはMOS素子や電子レベル。
別の切り口では商業的なお話とか、歴史、もしかしたら製造工程についてかもしれないですね。
Re: (スコア:0)
一般プログラマとして理解しておいて絶対に損しないCPUの知識はキャッシュまわりかな。
キャッシュを意識したプログラミングをすることでより高速なコードが書けるようになるかも。
たくさんありがとうございます。 (スコア:1)
私が読んでいないものもたくさんありましたので、
調べてみます。
ありがとうございました。
コンピュータの構成と設計 (スコア:0)
「コンピュータの構成と設計 第6版」あたりとちゃうの?
https://www.amazon.co.jp/dp/B0BLTQS81T/ [amazon.co.jp]
「入門書」となると分からんなあ。
コンピュータアーキテクチャ (スコア:1)
CPUを創るレベルまで知識を深めたいならヘネパタ本(「コンピュータアーキテクチャ」ヘネシー&パターソン [amazon.co.jp])も。
通常パタヘネ本こと、「コンピュータの構成と設計」パターソン&ヘネシーとは
「ヘネパタ」と「パタヘネ」で紛らわしいですが別の本。
この2冊は鉄板だと思います。
パタヘネが上流(システム寄り)でヘネパタが下流(CPU実装より)寄りなので、まずパタヘネ読んでからヘネパタかなぁ。
CPUとはなんぞや、ってレベルの知識ですませるなら、パタヘネだけでいいかも
でも、どちらにせよ、入門書としては厳しいと思うので、
その前段階の何かがほしいけど、何がいいかと問われると…ちょうどいいものが思い浮かばないですねぇ…
Re: (スコア:0)
昔だったら、とりあえず入門書として「はじめて読む8086」とか読んでから、
アセンブラやCを囓ったあとくらいにヘネパタやって、それでもキツいなあ
という感じだったんですよね。
いまさら8086じゃあさすがにねえ。
いまamazonでぐぐったら、「はじめて読む486」がKindle化されてるのを
初めて知った。意外とまだ需要があるってことか?やはり入門書として?
https://www.amazon.co.jp/dp/B00OCF5YUA/ [amazon.co.jp]
Re: (スコア:0)
手元にあるはじめて読むシリーズ。機械語とアセンブラはPC-8001、6809はFM7を使って演習するという古さ。
はじめて読む機械語
はじめて読むアセンブラ
はじめて読む6809
はじめて読むMASM
はじめて読む8086
はじめて読む486
はじめて読むC言語
はじめて読むPentium
CPUって何ってレベルからの入門書なら以下の順に読んでからパタヘネとヘネパタに進むといいと思います。
マンガでわかるCPU
CPUの創りかた
作って学ぶコンピュータアーキテクチャ
Re: (スコア:0)
それらの本を読むのと並行して、OpencoresなんかでオープンソースCPUコアのRTL読むのもおすすめです。
簡単な物なら1ファイル数百行しかないですし。
環境があればFPGAのシミュレータで動作させてみるとより理解できます。
ここまでできると、中国の沿岸部では高年収で引く手数多なんですが…
日本だと中々生かせる場所が無いですね。
Re: (スコア:0)
RTLってどの時点で教えるのがいいのか、というのもありますね。
自分は先に回路図(ロジック)ベースでASICやFPGAの設計をやってたので
RTLは比較的すんなり理解出来た(ただしemacsのvhdl-modeがないと
今でもほとんど書けないという話はある)けど、そういう経験の無い
人だと下手にRTLやるよりHSLをやったほうがいいのかも。
最近だとフィルタ設計なんかだとmatlabから一気に合成まで
進めるところも多いですし。
# CPUの話を全然してないなあorz
TTLでCPUをつくろう (スコア:0)
汎用ロジックICでCPUを作るとか
https://userweb.alles.or.jp/chunichidenko/mycputop.html [alles.or.jp]
昔語りしてすまぬ、が、自分もわからん (スコア:0)
8BITの時代は、BASICの次がマシン語だったので、自分はガキの頃にこれで学びましたがw。
https://www.amazon.co.jp/dp/B000J77GSS [amazon.co.jp]
自分LinuxのOSサポートをしてますが、確かに若い人にCPUを学ばせる方法がわからない。
ソフト面に限って言えばCASL&COMETとかなんですかねぇ。
ヘネパタ (スコア:1)
「マシン語を学ぶ」と「CPUを学ぶ」って、似てるようでちょっと違うように思います。
私が最初に(BASICの次に)マシン語をやった頃は、
CPUを完全にブラックボックスとして扱ってたし。
CPUというものの理解へ進んだのは、「Z-80の使い方」 [amazon.co.jp]って本を読んでからかな。
Re:ヘネパタ (スコア:2)
元の「CPUを学ぶ」の趣旨が明確でないので、なんとも言えませんが、このネタ盛り上がりますねw。
taka2さん、自分の境遇にちょっと(だいぶ)近いかも。自分も最初はマシン語から入って、
趣味でPICマイコンやハンダ付けやり始めてそっち側に広げてきた感じです。ちなアラフィフ。
だからこそ、GUIから入る最近の若い人をどう誘導したものか想像がつかないという…。
Re: (スコア:0)
GUIから入るんだから回路図をエクセルで引くとこから誘導すればいいを
Re: (スコア:0)
エクセルはともかく、マイクラからとかはアリかもしれない。
Re: (スコア:0)
自分も同じ本を当時読んでました。(なんか自分のドッペル君見てるみたいな)
マシン語を理解した(腑に落ちた)ときの「ユーレカ感」には、
あれ以来出会っていない気がします。
ずっとこの業界にいますが。
# 最近の抽象化/複雑化には必死こいてついていっ・・・けてるのか疑問。
Re: (スコア:0)
CASLは今年の4月から廃止されました。
https://www.arcanum.work/index.cgi/contents?id=10#1-1 [arcanum.work]
代わって導入された擬似言語は高級言語の記述レベルなので、CPUについて学ぶ目的には適さないでしょう。
ここ最近のものだと (スコア:0)
# といっても既に4年も前のものですが…
Raspberry Piで学ぶコンピュータアーキテクチャ [oreilly.co.jp]がよかった。
小~中校生がコンピュータの中身を知りたいという時は結構わかりやすくていいかな、と。
理系の大学生とかエンジニアだとこの内容じゃ暇つぶしぐらいにしかならないんだけど…。
それでも8~16bit時代のCPUでハードウェア的な構成の知識が止まってる人にはいいかも。
ただこの本を読んでCPUが作れるか、と言われると多分無理。あくまで理解するための本。
これを理解した上でRISC-Vの本でも読むと先に進むのが多少は楽かな、ぐらいかな?
Re: (スコア:0)
私ですね。参考になります。
「CPUを学ぶ」とは違うかもしれませんが、やっぱり保護モードが悪いんですよ。いきなり、ラズパイでLinuxカーネルは難しい。
DOSでアプリから割り込みコントローラ制御してデータブック見ながらハードウェアレジスタいじって……という経験なしに、保護モード下のプリエンプティブなマルチタスクOSではドライバ作るのさえ難しいような。
現代の回路づくりは (スコア:0)
ソフトウェアで仮想的にやれちゃうから山本五十六的にリモートでやってみせでやれなくもない
まずはチープな回路からはじめてでいいんじゃない?
# オレはようやくのぼりはじめたばかりだからな このはてしなく遠いCPU坂をよ