dポイントプレゼントキャンペーン実施中!

パソコンやプログラミングに詳しくなりたいという話を、現役バリバリのプログラマーの人に話したら極端に言うならCPUを作るのが最高だ。というふうにいわれまして、割と真剣に作れないものか考えています。
初心者でも(学生時代にC・JAVAを勉強した程度)わかりやすく導いてくれるサイトや本をさがしてます。
もしくは、そのまえに踏んだほうがいいステップなどアドバイスいただけるとたすかります。


まず、アマゾンでCPUをつくる方法などのキーワードで検索したところ
http://www.amazon.co.jp/CPU%E3%81%AE%E5%89%B5%E3 …
この本が出てきたのですが、レビューをみたところ、もうパーツが古いなどと書かれていて、評価はいいけどちょっとやめといたほうがいいのかなぁなどと考えてしまっています。

家は、都内ではないですが、秋葉原にはわりとアクセスよく行けます。

他にもRaspberry Piを先にやってみたほうが敷居が低そうでいいのかなど、いろいろ考えています。


おすすめの学習ステップはこれ!みたいなのをご指導お願いします。
ちなみに、はじめは勉強のためのCPUだったのですが、調べているうちにCPUを作ることそのものにも意義を感じてます。

A 回答 (8件)

LSIやICもブラックボックスですから、完全に全部トランジスタから自作する途方もないキットが発売されたそうです。


http://recursion.jp/comp/j/
http://internet.watch.impress.co.jp/docs/yajiuma …

このサイトでもCPUを自作されています。
http://diode.matrix.jp/

>評価はいいけどちょっとやめといたほうがいいのかなぁなどと考えてしまっています。

他にこれみたいなよく解説された本は皆無です、
プロやマニアを目指すなら参考になりそうな資料や本は惜しみなく散財して集めるものです。
先のCPUの自作やキットにしても必要な部品や道具、測定器まで揃えると結構な金額になります。
それでCPUが作れても50年以上昔の電卓などと同じレベルの物が限度でしょう。
http://www.dentaku-museum.com/1-exb/special/rika …

もし、費用対効果や学習の効率を重んずるなら、今どき「CPUの自作」は選択肢には入りません。
今なら Raspberry Piや Arduino などのマイコンを使うのが主流ですね。
主流という事は参考になる書籍や情報が豊富で探しやすく敷居が低いという事でもあります。
http://wired.jp/2014/01/07/the-difference-betwee …
    • good
    • 0
この回答へのお礼

Raspberry Piをやることにしました。
みなさんありがとうございました。

お礼日時:2014/07/13 16:30

 同じ事を考えて、同じ事をやった人は、・・・先例があるもので・・・


 次のサイト当たりどうですか?
 http://www.alles.or.jp/~thisida/mycputop.html
 汎用のICのみで、CPUから始まり、その昔一世を風靡した、TK80相当のIOまで組み込んだボードを作った記事です。
 このサイトの説明だけで、ほぼ完全な回路図が掲載されていますし、その考え方もかなりの所まで解説されています。(ただし、電子工作や論理回路の基礎は、別途補充が必要です。)(記事は良い記事なのですが・・・しょっちゅうのように横道にそれたり、妙なところがしつこくなるのが玉に瑕です。まぁ、それさえ気にしなければ、内容はかなりのものです。)

 さらに・・・多分、このキット、現在でも販売されているはずです。
 ちなみに、このサイトのトップページはこちら。
 http://www.alles.or.jp/~thisida/index.htm
 本当に作りたいのなら、チャレンジしてみるのも良いでしょう。

 CPUを自力で設計して組めば、それは力になるでしょうが、基本を学びたいと言うことであれば、同じサイトのMyCPUの隣にあるND80ZIIIを購入して遊び倒すというのも、ひとつの道です。先の記事のMyCPUと違って、システムを拡張するが楽ですから、電子回路を自分で設計して組む覚悟があれば、かなりの拡張が容易に可能です。
 この製品も、開発の経緯から回路の中身まで、同じサイトの記事に全て紹介されています。
(実際、私が大学の時の実験講義の一つに、このベースになったTK-85を使った実習がありました。このクラスのCPUだと、CPUの基礎を学習するにはぴったりの規模なんですね。)

 とこういう考え方をしたひとも、一人や二人では無いのでしょう。
 こんな製品を作った方もいます。
 http://www.gijyutu-shounen.co.jp/
 さすがに、ちょっと高いのが本当に、玉に瑕。でも、このサイトのトップページにある開発の動機に関しては、共感するところが大きいです。
 ちなみに、このサイトの主は、パーソナルコンピュータと言われていた昭和末期あたりからコンピュータをやっている人には、すごく有名な方です。
    • good
    • 0

現実的にはFPGAで作ることになると思いますが、以下のページが参考になるかも。


http://d.hatena.ne.jp/kazunori_279/20140210/1391 …

まぁ、でも現在のPCに使われているレベルのCPUを作るのは無理。
仕組みの勉強くらいに思っておいた方が良いでしょう。

それでプログラミングが上達するかと言えば、ほとんど関係ないかも。
プログラミングの上達が目的であれば、とりあえず、通常のプログラミングに不自由しないところまでやってから、どのようにメモリが扱われているかとかを勉強した方が良いと思う。
また、高度なプログラミングには数学は不可欠なので、そっち方面の勉強も。
アルゴリズムやデザインパターン、各種ライブラリの使い方など、CPUなんか作るよりも勉強すべきことはたくさんあります。
    • good
    • 0

ちら見しただけですがこの本の内容はいかにも中途半端ですね。


実用にはなりませんしCPUの構造や動作を学習するのならシミュレーターかPICあたりのアセンブラを覚えるべき。


どうせならリレーか真空管で(せいぜいトランジスタ)でエニアックあたりの再現をしましょう。
    • good
    • 0

「CPUの創りかた」で十分だと思いますが……


ちなみに電子工作自体には興味ありますか?
あるなら「CPUの創りかた」を見ながら標準ロジック(74シリーズとか)で簡単な論理回路を組んで実験してみればとても楽しいかと思いますし、無いならSPICEの様な回路シミュレーターで論理回路を組んでみるのも良いでしょう。
実用目的でなければ、CPUは十分個人でも作れます。
http://www.alles.or.jp/~thisida/mycpu_gougai.html

ただ、目標がパソコンやプログラムに詳しくなりたいのならば、CPU作りはちと回り道な気がしなくもありません。
質問の通りRaspberry PiやArduinoを使って、ハードとプログラムを両方から弄るのも良いでしょうし、プログラムの方に重きを置きたいのならば、ノイマン型コンピュータの基礎をちょっと勉強しながら、C#とかJAVAってだいぶハードウェアを隠蔽化してるんだなとか思いを馳せつつ、ゲームプログラムでも書いてみるのも良いかも知れません。
    • good
    • 0

この本は読んでないのですが



この本から入っても問題無いと思います。
「パーツが古い」というのは、次の2点から、気にする必要ありません。

・現在の主流のCPUは、こんな単純なものではありません。
しかも、もっと高機能なCPUが簡単に入手できる時代です。
わざわざICを半田付けして組み立てるなんてことはありません。
本格的に実用的なCPUを作ろうとしたら、どのみち「次のステップ」が必要になります。

・単機能なICの需要は意外とあるので、まったく同じものは入手できないかもしれませんが、同等品は入手できるはずです。
    • good
    • 0

 CPUの製作と言うと、1000億円かけて半導体工場を作って、年間何万ロットを生産してという話しか読んだ事が無いのですが、個人でゼロからCPUを製作するのは莫大な費用がかかるので無理だと思います。



 LSIに基幹チップが用意されていて、注文に応じて配線を作り替えてくれる汎用チップがあるようで、システムLSIなどでは使われているようですが、CPUとなると軍事機密絡みの問題が生じて、むやみに設計を許して貰えないようです。第三世界に輸出されて精密誘導に利用されると大変な事態になるようですから。

 性能が低くて問題にならない程度のCPUならば、自作設計出来る汎用チップが販売されているのかもしれませんが、CPUの設計をやるよりも、多種多様なCPUを集めてプログラムを作ってみた方が良いかもしれません。昔は、色々なCPUが発売されていて、面白かった時代でした。

 制御用のCPUだったら、8ビットや16ビットのものがありますし、32ビットや64ビットの実験用のCPUキットなどもあるはずです。そういうものから始めた方が良いでしょうね。
    • good
    • 0
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!