コンピュータを一から作る過程を大雑把に知りたい [転載禁止]©2ch.net

1774ワット発電中さん2014/11/05(水) 00:55:35.92ID:CZmd8JXZ
人のいない地球の環境の中で不老不死、高速移動、現代にあるあらゆる知識・情報等の能力を持った人間たちが、ただその目的のためだけに行動し、現代に普及しているPCを完成させるに至るまでの行動の様子を見てみたいのだけど、何かいい書籍などある?

9774ワット発電中さん2014/11/05(水) 17:53:12.19ID:QtfVdz9L
1815とか1015でフリップフロップ回路組む

で何段もつないで順序通りに規定の動作をする回路を組む

すると何かが見えてくる。

10774ワット発電中さん2014/11/05(水) 21:21:59.14ID:u2/eR4N1
>>1
つ「cpuの創りかた」
エスパーだけど

11774ワット発電中さん2014/11/06(木) 08:33:25.58ID:j0aRsnG2
http://recursion.jp/comp/j/
みたいなのがいいのか?

12774ワット発電中さん2014/11/06(木) 09:31:08.82ID:NLWXSgCw
>>8 富士通はFACOM100の前に、統計局の計数機とか、東京証券取引所の
計算機(納入されず)とかを作ってる。

13774ワット発電中さん2014/11/06(木) 23:12:35.62ID:6DmyXKtt
いまなら、歯車でコンピューター作る方が自慢出来ると思う。
64step位のプログラム組めるようにして。

14774ワット発電中さん2014/11/07(金) 21:57:10.54ID:0PSUkolJ
>>7
それ言いたかっただけだろ

15774ワット発電中さん2014/11/08(土) 00:02:13.01ID:+/xzd4rH
光あれ。そこから全ては始また

16774ワット発電中さん2014/11/08(土) 07:22:28.36ID:HMy0IgYc
>現代に普及しているPCを完成させるに至るまでの行動の様子を
ネジを締めてコネクタをつける程度のことだ(苦笑

17774ワット発電中さん2014/11/08(土) 10:26:57.08ID:7FQ9PjZv
>>16
それは「現代に普及している、PCを完成させるまでの様子」だな
1が聞きたかったのはおそらく「現代に普及しているPCを、完成させるまでの様子」だってのは分かってて言ってると思うけどw

18774ワット発電中さん2014/11/08(土) 17:02:43.05ID:HMy0IgYc
部品を取り付けてはんだ付けしている程度のことだ(苦笑

19774ワット発電中さん2014/11/08(土) 20:45:02.70ID:ptht9mz8
CPUの創り方
コンピュータの創り方

20774ワット発電中さん2014/11/08(土) 22:30:17.39ID:/bCbcLCO
インテルで最初のCPU作ったのは、日本人だったというな
あの頃は、メモリのインテルだったりして

21774ワット発電中さん2014/11/09(日) 18:32:15.66ID:96xOyFvC
Cで機械語のインタプリタ書いて、ちょっとハード向けに手直しして
動作合成ツールにかければCPUの出来上がりさ。

22774ワット発電中さん2014/11/09(日) 18:45:16.47ID:rHIxb7Lm
「インタプリタをハード向けに手直し」の解説希望

23774ワット発電中さん2014/11/10(月) 10:29:24.94ID:s9KxgEFe
無理だろ。
つかmallocとか使わない、再帰も制限した「独特のC」である必要がある。

C級出版の本で妙なことを信じちゃったりする前にSICPの4章以降でも読んどけ。

24774ワット発電中さん2014/11/10(月) 21:23:25.35ID:NW1cZmN9
>>22
そこは動作合成ツールに依存する部分だけどね。
例えばソフトウェアなCだとクロックサイクルという
概念を持たないからその部分がどうなっているかとか、
入出力信号はどう記述するとかね。
でも、インタプリタ本体の基本的な処理はだいたいそのまま
いけちゃうから楽。

>>23
まぁ、文法の多くをCと整合をとったハードウェア記述言語っていう感じだけどね。
Cを知っていれば結構スムースに入り込めるよ。

CPUの基本は、要するにプログラム領域から
命令コードを読み取って、読んだ命令コードに従って
次のアクションをどうするかっていうことを決めてるだけだから、
たとえば、ごく単純に1バイト目がオペコードで、必要に応じて
2バイト目以降がオペランドというCPUなら、本体の処理部分は
while(1) {
opcode = *reg_pc++;
switch(opcode) {
(以下caseによって処理を書く)
}}
てな具合になる程度だし。

25774ワット発電中さん2014/11/10(月) 21:38:24.42ID:laeBnilo
クロックは再現してあげないとだめでしょ

26774ワット発電中さん2014/11/10(月) 22:29:53.52ID:vTVt8GLb
>>24
その素晴らしい実装は、一命令700クロック位で動くんですか?画期的ですね。

27774ワット発電中さん2014/11/11(火) 02:40:49.81ID:XjkIkUwr

28774ワット発電中さん2014/11/11(火) 07:52:54.41ID:Fq5uE8OD
マイクロプログラム方式ってまさにそうよ
ttp://ja.wikipedia.org/wiki/%E3%83%9E%E3%82%A4%E3%82%AF%E3%83%AD%E3%83%97%E3%83%AD%E3%82%B0%E3%83%A9%E3%83%A0%E6%96%B9%E5%BC%8F

29774ワット発電中さん2014/11/11(火) 09:21:47.98ID:o8BeJeBL
マイクロプログラム方法を「基本」って考えてるって、
1980年の常識ですかねw

30774ワット発電中さん2014/11/11(火) 15:09:12.65ID:MJqncBJa
>>25
動作合成ツールに依存するけど、必要に応じて
クロックサイクルの切れ目の指定を入れるくらい。
先の例なら、whileループ一周ごとにサイクルの切れ目を入れる
とかね。

>>26
いや、画期的じゃないよ。動作合成ってそんなもん。
ループをどれだけで回すかだけど、何もやらなければ、
メモリアクセスを伴わない部分は1クロックで動くように合成されるだろうね。
動作クロック周波数を上げるために処理を複数クロックに分離したいなら、
それなりの切れ目のところで、サイクルの切れ目を伝えればいい。

関数呼び出しなんかも普通に使えるし、Cを使いなれているならあまり
違和感なくいけちゃったりする(関数コールは合成結果としては
関数処理回路との間のメッセージパッシングになるのかな?)

>>28
マイクロプログラム方式とは用意された
マイクロプログラムのインタプリタのハードウェア化だから。
いわば、”インタプリタで書いたインタプリタ”みたいなもの。
この場合は機械語のインタプリタがそのままハードウェア化されているので
マイクロプログラム方式じゃない、古典的なCPUだよ。

31774ワット発電中さん2014/11/11(火) 15:21:53.87ID:zD7MxNR7
フリップフロップ

32774ワット発電中さん2014/11/11(火) 15:31:38.43ID:MJqncBJa
連投すまん。

Cに限りなく近いから誤解されやすいけど、動作合成といっても要するにHDL
(ハードウェア記述言語)だからね。そんなに特殊なものと思わなくてもいいよ。

ストアードプログラム方式のCPUの基本は機械語をメモリから読み出して、
その内容に従ってメモリやレジスタ、演算機(ALU)との間でのデータ転送
を行うっていうもの。
これをソフトウェア風に捉えれば、やってることはインタプリタそのもの。
だから、インタプリタを書いて(クロックサイクルの切れ目とかの
ハードウェア依存な部分を入れ込んだ上で)動作合成にかければ、
書かれた処理、つまり機械語を解釈して動くハードウェアロジック化
される。つまり、CPUが生成されるわけ。

ただし、そのままだとパタヘネ本の最初に出てくるCPUみたいなもんで
クロック周波数を上げにくかったりするから、適宜クロックサイクルを
分割したり、パイプライン化したほうが良いだろうけどね。

33774ワット発電中さん2014/11/11(火) 19:38:23.95ID:o8BeJeBL
資源がほいほい増えたり減ったりする(スタックポインタが行ったり来たりして)
コンピュータプログラムと、基本的にリソースが増減しないハードウェアの設計は、
基本的に別物。

言うだけじゃなくてちゃんと自分で設計してFPGAをコンフィグして、動かすまでやったのかおまい?

34774ワット発電中さん2014/11/11(火) 20:59:55.19ID:MJqncBJa
>>33
そんなにしかめっ面して難しく考えなくても大丈夫だよ。
仮想記憶も無い古典的なCPUでのスタックポインタなんて、
単なるメモリへのポインタだし。

35774ワット発電中さん2014/11/12(水) 06:40:19.89ID:U3Z1XC7j
>>28
http://ec.nikkeibp.co.jp/item/books/P84320.html
↑ミニコンのデバッグでロジックアナライザかけてた

36774ワット発電中さん2014/11/12(水) 08:34:06.70ID:YIJ49Ulq
>>33
あぁ、すまん。
動作合成自体が理解できなかったわけね。
もう随分昔からやられていることだし、実際にFPGAにインプリメントして
動かしたりしてるよ。
もちろん、Verilog/VHDLとかにくらべたら圧倒的にマイナーだけど、
処理系はあちこちで出しているね。

DesignWave誌(廃刊になっちゃったね)でも確か動作合成でブロック崩しを
作ってFPGAにインプリメントしてたな。

37774ワット発電中さん2014/11/12(水) 10:09:08.17ID:sZ0HrBlS
ほう。
「動作合成」なるものを使うとあたかもC言語のごとく、
手続き呼び出しをスタックを積んだり外したりして実行する
ハードウェアを作ってくれるのかw

SFLあたりの見た目に騙されただけじゃねw
(一応SFLのステージには呼び出しと戻りの機能がある「セグメント」って奴が
あるけどね)

38774ワット発電中さん2014/11/12(水) 14:01:40.51ID:7v7YFwWe
>>37
>手続き呼び出しをスタックを積んだり外したりして実行する
>ハードウェアを作ってくれるのかw
あくまでもHDLだからそういう変換はしないだろうけど、
(だから再帰はサポートしないものが大半)
「あたかもC言語のごとく」っていうのはそのとおり。
手続き呼び出しは、それぞれの手続きが個別のスタティックな
回路になって、引数は信号線渡しで、互いに同期とるための信号が
生成されるだろうね(具体的には処理系依存だろうけど)

ソフト的に言えば手続きがそれぞれが別スレッドだったり、独立したCPUに
割り付けられて、互いにメッセージパッシングしているようなもん。

ループやif文、switchなんかも何も考えずに書いてやっても論理合成
されてFPGA化されるよ。

39774ワット発電中さん2014/11/12(水) 14:08:41.57ID:iz8FaTBR
>>38
君スレ立てした人だろ

40774ワット発電中さん2014/11/12(水) 14:12:16.65ID:sZ0HrBlS
だから「C級出版の本に書いてあった」じゃなくて、具体的に自分で何か設計して書いて
合成してFPGAをコンフィグして動かしてみたわけ?

ifとかswitchとかソフトウェアみたいに書けて合成できるんですよー、ってのは、そうやって
簡単だと思わせて騙して本を売るためのテクニックに過ぎないから。

41774ワット発電中さん2014/11/12(水) 16:35:02.04ID:7v7YFwWe
>>39
俺?スレ立てなんてやったことない。(てか、やり方知らないし(笑))

>>40
そんなに噛み付かなくても良いんじゃないかなぁ(笑)
もちろん動かして、FPGAで動かしてみた事はあるよ。
そのときの経験で言ってるだけだけど?
一応使えるようになったときに「これで機械語インタプリタ書いたら
CPUになるよな?」といって、ロードとデクリメントとジャンプ程度の
ものを書いてみたら本当に動いてしまった。
もう10年以上前のことだから、今はもっと凄いんじゃない?
確かにこの手のアルゴリズム物を落とし込むなら便利なことは確かだな。

ただ、Verilog/VHDLだと、既にCに近いレベルの言語だからわざわざ
移行しようっていう気にはなりにくいだろうし、ソフト屋さんが
FPGA作るの?って言われるとちょっと疑問符だしで、立ち位置が難しいよね。

42774ワット発電中さん2014/11/12(水) 17:23:45.20ID:sZ0HrBlS
「C言語で書ける」とか言うと、
int fact(int x) {
return x==0 ? 1 : x*fact(x-1);
}
とか出来そうに思えるわけだけど、
そういうことができるわけ?

43774ワット発電中さん2014/11/12(水) 17:54:02.50ID:7v7YFwWe
>>42
あくまでもCの文法を流用したHDLだから、再帰は今でも無理なんじゃないかな?
ループに展開するとかしてあげないとね。
「ほらみろ!使えない!」となるのか、「それならこうやって使えるね」となるのかは
その人次第。どっちが正しいってもんでもないと思うから、判断は各自で
好きなようにすればいいんじゃない?

ただ、一番最初に書いたような、「Cで機械語インタプリタ書いて
動作合成向きにちょっと手直しするとCPUが生成される」
いうこと自体は嘘じゃないってこと。
(わざわざそんなことするくらいなら、そのCPUで実行させたい
理そのものをFPGA化すればいいだろ!って感じだけどね(笑))

44774ワット発電中さん2014/11/12(水) 18:02:46.93ID:sZ0HrBlS
ああなるほど、「機械語」インタプリタね。
その程度のものを書くのにわざわざ「Verilogと違うから、動作合成だから」とか
言ったわけか。インタプリタらしいインタプリタって普通は再帰があるから。

45774ワット発電中さん2014/11/12(水) 18:23:21.01ID:7v7YFwWe
>>44
あぁ、汎用的なインタプリタ言語処理系を・・って思われてたのか。
それじゃ、かみ合うわけがないね。
このスレで話題にしているのはCPU作りたいってところだからそれしか
頭に浮かんでなかった。ごめんなさい。

46774ワット発電中さん2014/11/12(水) 18:49:49.54ID:sZ0HrBlS
CPUが汎用じゃないという説は初めて聞いたな

47774ワット発電中さん2014/11/12(水) 20:20:39.86ID:Sc2O4zTK
マシン語という階層でCPUは、分類されて
汎用に入るか別かは、別で

48774ワット発電中さん2014/12/05(金) 07:20:48.00ID:bIbmOKKE
先づはインテルと契約します
契約の度合いによって黄色やオレンジや緑色の参考書が送られてきます。
それには参考回路やCPU周りの参考基板図や注意事項が書いてたりパスコンで使える
コンデンサの銘柄などの資料や様々な情報が入ってます。
その通りに作れば電子関連の設計部署でパソコン設計未経験でも作る事が出来るでしょう。

49774ワット発電中さん2015/03/16(月) 20:41:59.48ID:G+ge+she
宇宙を作りたいとか言うやつは、現宇宙の外へ出てから言え。

50774ワット発電中さん2015/03/17(火) 00:45:23.16ID:KoHBPJ3W
AC100VをDC100V以下にしたいんだけど
トランスでの変圧が先かブリッジダイオードの整流が先か。発熱しそうだからトランス先かな?

51774ワット発電中さん2015/03/17(火) 11:23:38.30ID:TaX9K4Mk
意味不明

52774ワット発電中さん2015/09/01(火) 22:37:53.56ID:pwaSs3zJ
発電所から作れ

53774ワット発電中さん2015/10/10(土) 15:40:28.03ID:BEqYOeAj
ttp://ameblo.jp/m5-1/entry-10125811828.html

電流による。LED,マイコン位ならこういうので

54774ワット発電中さん2016/01/21(木) 19:05:13.91ID:87UW58b3
見落としてたらすまんがプロセッサー手作りする時、面倒なのは演算回路よりシーケンサーだよな。
それとデコーダー。命令をいかにエレガントに作るかでデコード速度がまるで違う
あと安く作る時困るのがROM
意外に面倒

55774ワット発電中さん2016/03/20(日) 10:45:17.40ID:d61luuUf
>>50
直流安定化電源を買ってくる、これだけ

56774ワット発電中さん2016/04/24(日) 17:35:56.14ID:3YuDHIn5
なるほど

57774ワット発電中さん2016/06/16(木) 10:11:25.17ID:T1QhED7y
ゼロからトースターを作ってみた
って本これおすすめ

材料の鉱石を採取する所から始まって
あまりのスケールのでかさにワロタ

58774ワット発電中さん2017/12/27(水) 15:10:39.42ID:22mySsTl
家で不労所得的に稼げる方法など
参考までに、
⇒ 『武藤のムロイエウレ』 というHPで見ることができるらしいです。

グーグル検索⇒『武藤のムロイエウレ』"

S3TI4GE2M1

59774ワット発電中さん2017/12/28(木) 06:59:59.58ID:qpZF80dT
>>1
歯車 リレー 真空管 って言う流れかな?

新着レスの表示
レスを投稿する