- 締切済み
どうやって何億個ものトランジスタを処理してるのでしょうか
質問内容がこのカテゴリにあてはまるかどうか分からないのですが,他に該当するものがなく,どうかよろしくお願いします. コンピューターの中のCPUやメモリはとてもたくさんのトランジスタから成り立っているのですよね.それこそ何億個?という数だとか.でも,そのチップの外見では,電気的な接点は100個もなさそうです.どうやって,少ない数の接点で,中身の数億個を相手にしているのでしょうか? 多層構造になっていて何億個もスタックしてあるということを聞いてことがあります.また,とても小さく加工できる技術が発達して,すんごく小さいトランジスタを作ってそれをとても密に収めることもできることもそれとなく聞いたことがあります.しかし,中身がどうスタックしてあって,何億個積むことができようとも,とにかく,外から我々がアクセスできるのは100個もない電気接点(ピン)ですよね.例えば,縦が100個の接点,横が100個の接点,だとして,(縦,横)のアドレスを各トランジスタに与えても,10000個が限界と思えるのですが・・・.きっと何かトリックか凄い仕組みがあるような気がするのですが,いかがでしょううか. とても疑問です.手が二本しかないのに,同時に何千個のものに触れる,そんなマジックがあるのでしょうか. どうか宜しくお願いします.
- みんなの回答 (10)
- 専門家の回答
みんなの回答
- sanori
- ベストアンサー率48% (5664/11798)
No.5の回答者です。 >>> 『「もしかして、アドレス信号を時間で分割しているのでは?」と思いました。』 私がお尋ねしたかったのは,おそらくこれです! いえ。私はそうだとは思いません。DRAMの件は余談として書いただけで、 その上までの文章が 「どうやって何億個ものトランジスタを処理してるのでしょうか」 に対する回答です。 とはいえ、アドレス信号の時分割についてお尋ねですので、回答しましょう。 こちらのサイトをご覧ください。 http://www.atmarkit.co.jp/icd/root/35/5785735.html 「関連用語」という目次の中に「RAS」「CAS」という用語があります。 そこをクリックしてご覧ください。 下記の図を見ながら説明を見るとわかりやすいと思います。 http://www.jipdec.or.jp/icot/FTS/REPORTS/H14-reports/H1503-AITEC-Report2/AITEC0203R3-images/image058.gif >>> しかし,その配線上で, a)一つのトランジスタがon b)二つのトランジスタがon c)20個のトランジスタがon これらの違いをどうやって見極めているのでしょうか? 実際測るとすれば、テスターという高価な装置で測ることになります。 PAD以外となると、内部回路のものすごく小さい箇所の電圧を測ることになるからです。 近年は回路が小さく、針を立てるのは困難になっているでしょうから、 電磁波で測るようにしていると思います。 測定しない手段というのもあります。 それは、シミュレーションです。 回路設計者がCADで作成した回路は、LSI工場で使うマスクパターンを作るレイアウト設計者に引き継がれます。 レイアウト設計もCADでやります。 そして、最終的には回路とパターンが一致しているかを、これまたCADで検証します。 そしてまた、回路のどこの電圧が何ナノ秒のときに何ボルトになっているかも、CADで確かめることができるのです。 >>> a)よりもb),b)よりもc)の方が電圧信号が高い, とかではないですよね. まったく違います。 ちなみに、SRAMの例を挙げられている方が2名いらっしゃいますので、ちょっと補足しますが、 SRAMは2つのインバータ(NOT)をフリップフロップ接続したもので、 2つのノードのうち一方にHIGH、他方にLOWを記憶します。 CMOSインバータ2個なので、NMOSとPMOSを各2個、合計4個使いますが、それでは不足で、 もう2つトランジスタが要ります。 なぜならば、読み出しや書き込みを行うに当たって、2つのノードへの信号の出入り口を 開けたり閉めたりする機能が必要だからです。 その役目(トランスファ・ゲート)をするトランジスタとしては、通常、NMOSが使われます。 ですから、CMOSのSRAMのセルを構成するトランジスタは通常6個となります。 (PMOSの代わりに抵抗を用いる場合もあり、その場合はNMOSを4個、抵抗を2個使います) なお、ここまで皆さん一所懸命回答してくれているのに、お礼の言葉がないのははなはだ残念です。 皆さん、かわいそうです。 一人の質問者は回答者全員を相手にしましょう。
- fba
- ベストアンサー率26% (64/241)
#1氏の説明で不足ないと思うんですけど。 やろうと思えば線4本(電源+-、信号+-)だけでもまかなえます。信号線にコマンド(データを読むのか書くのか)、アドレス(どのデータを読み書きするのか)、データを1bitずつ順番に流せば。 さすがに全部1組の信号線でまかなうのは何かと大変な事が多いので、用途しだいでコマンド関係、アドレス、データそれぞれ何本ずつか引き出します。例えばアドレス16本分の容量だけど線は8本しか引けないので前半と後半に分けて前半と後半の識別用にコマンド線を1本増やす、とかね。 ごく単純な例としては行と列それぞれに線を用意(例えば10×10本)し、1列目と3行目の信号線にアクセスすれば交点にあるトランジスタにアクセスできます。この例だと20本のアドレス線で100個のトランジスタにアクセスできることになります(データ読み書き線や電源などは別途)。この行と列のデータを前半後半とか分割して送れば外に出す線は中に存在する線より少なくても済みます。こんな感じでどんどん複雑にすれば億でも兆でも少ない線でアクセスは出来ます(目いっぱいやれば信号線+-一組で全てまかなえる)。 別にICの中のトランジスタ一つ一つに直接アクセスできる必要はないんです。質問者氏が高級フランス料理のフルコースを食べたくなったとして、自分で作れなくてもレストランに行って注文すれば食べられるように、複数の信号線を組み合わせてICに指示を出せば中のデータなり演算結果を信号線に出力します。
- SortaNerd
- ベストアンサー率43% (1185/2748)
>縦が100個の接点,横が100個の接点 >10000個が限界 以前私も同じ疑問を抱いたことがあります。 これを解決するには2通りの方法があります。一つは内部に記憶装置を設けておき、入力されたデータを見て処理を分ける方法です。 もうひとつが「デマルチプレクサ」を使う方法なのですが、なぜかみなさん誰も触れられていないようですので、こちらについて実例を挙げて説明してみます。 例えば、ここに32KBのSRAMメモリがあります。足の数は28本で、そのうち15本がアドレス線です。 仕様書を見ると、中のメモリセルは512行×64列並んでいるそうです。 これを512+64本ではなく15本で指定する必要があります。 ひとつひとつのメモリセルは、詳しいことはよく知りませんが、行と列の両方に電圧がかかると情報を読み書きできるのでしょう。電圧がかかった状態を「1」、かかっていない状態を「0」と呼びましょう。 さて、512行64列のメモリセルがある以上、この時点では確かに512+64本の電線が存在しています。 では縦横に並んだメモリセルの中から一つを選ぶときにその512+64本に与える電圧の情報はどうなっているかといえば、512本のうち1本だけ1で他は0、64本のうち1本だけ1で他は0です。 512本の線のうちのどれが1かは512通りの場合がありますので、9ビットの情報を持ちます。つまり9本の線の0/1で表すことができます。 さてやっと本題です。 9本の線の0/1でもって、512本の線のうちどれを1にするのかが指示されています。 この指示を、実際の512本の線の0/1に変換する装置が、冒頭で言ったデマルチプレクサなのです。 http://ja.wikipedia.org/wiki/%E3%83%9E%E3%83%AB%E3%83%81%E3%83%97%E3%83%AC%E3%82%AF%E3%82%B5#.E3.83.87.E3.83.9E.E3.83.AB.E3.83.81.E3.83.97.E3.83.AC.E3.82.AF.E3.82.B5 デマルチプレクサはNOTとANDで構成された単純な回路です。 というわけでこのメモリの構造を説明すると、 ICの15本の足はまず9本と6本に分かれてそれぞれデマルチプレクサに入力されます。 デマルチプレクサからは512本と64本の線が出ています。 まず512本の線が並んだメモリセルのどの行を読むかを決めます。 そこから読み取った64バイトのデータのうち、64本の線で選ばれた1バイトのみが外に出ます。 その1バイトを読み取るために8本のI/Oポートがあります。
- semikuma
- ベストアンサー率62% (156/251)
質問者さんは、もう一度回答No.4を熟読された方がよいかと思います。 CPUやメモリーなどの論理回路では、トランジスタの1個1個がonであろうがoffであろうが関係なく、ある入力に対して出力が0か1かが重要です。 いくつかのスイッチがつながっている回路を想像してください。 スイッチが直列につながっている場合、全部のスイッチがONのとき出力はONですが、1つでもOFFであれば出力はOFFです。 逆に並列の場合、全部がOFFであれば出力はOFFですが、1つでもONであれば出力はONです。 LSIでは、トランジスタの1個1個がこのようなスイッチの働きをし、ほとんどのトランジスタが同じ入力電圧でON/OFFの動作をします。 そして、ある入力に対して所望の出力が得られるよう、回路が構成されます。 つまりトランジスタが何個あろうとも、最低限必要なピンは、入力、出力、バイアス、グランドの4本です。 実際は、高速動作させるために入出力データはシリアル/パラレル変換されるので、16ビットを基本とするCPUやメモリーでは、入出力データ線はそれぞれ16本ずつとなり、場合によっては、バイアスやグランドも含めて、予備の線が配線されているかもしれません。 また、例えば32本のアドレス線を用いれば、16×16=256のアドレスを一括で指定できます。 もっとアドレスが必要なときは、これを何段階か重ねて、数ギガのアドレスを指定します。 そして各トランジスタがバラバラに動作しては困るので、タイミングを合わせるためのクロック信号が供給されます。 更に、1つのLSIの中にもいくつかの機能ブロックが構成されていて、それぞれに入出力とバイアスが接続されているものと思います。 こうして、100本×100本程度のピンで数億個のトランジスタを動作させています。
- KEN_2
- ベストアンサー率59% (930/1576)
質問の内容は半導体チップの製造過程の良否を判定する処理で、電気接点(ピン)を当てて全てのトランジスタを個々に良否判定しているかとの質問と判断します。 答えは外部に引き出すボンディングパッドに電気接点(ピン)を当てて電気的試験で良否判定を実施して、内部のトランジスタの良否を予測するのです。 よって、全ての内部のトランジスタ個々には電気接点(ピン)を当てません。 ではどうやって半導体の良否を判定しているかと概略を説明すると、 1.ウエハー上に出来たダイチップの良否は、表面の外観で欠損品をマークします。 2.電気的に電気接点(ピン)のオープン・ショートと抵抗値で良否をマークします。 (インサーキットテスターで抵抗値を測定するだけでも内部の欠損は予測できます。) 3.パッケージ上に搭載しボンディングワイヤーで接続して、各種の試験に合格したら外装のパッケージ封印します。 4.この後は、テストパターンやベンチマークテストのプログラムで最終動作試験を通過した物が製品になるのです。 5.最終試験に合格した物でも、性能にバラツキがあるので性能の良いものは高速品(A級品)に、性能の悪い物は低速品(B級品)に区分けして販売します。 ちなみに、ウエハー上に作られたダイチップの良品率(イールド)が30%から40%以上あれば量産すると採算が取れるとの試算があり、市場価格が低価格になる頃にはイールドが70%から80%に達するようです。 (最終製品のイールドは各メーカの利益と原価を知られてしまいますので、公表してはいませんが・・・)
- sanori
- ベストアンサー率48% (5664/11798)
こんばんは。 まずは実例をご覧ください。 http://static.astamuse.com/image/JP/2008/529/358/A/000002.png 漢字の「元」を90°回転したような記号は、MOSのトランジスタです。 小さい丸がついているのがPチャネルMOSトランジスタで、ついていないのがNチャネルMOSトランジスタです。 右向きの三角印で右端に小さい丸がついているものは、最低2つのMOSトランジスタからなるインバータ(NOTゲート)です。 この回路の入出力は、左端の2つの信号入力と右端に1つの信号出力の合計3つだけです。 このうち、出力には「PAD」と書かれているので、ボンディングパッド、すなわち質問者様がおっしゃっている「ピン」です。 2つの入力には「PAD」と書かれていないので、左側にまだまだ他の回路につながっています。 これでイメージわかりますか? ちなみに、 私が会社員1年目のときに、ちょっとだけDRAMの勉強をしたことがあるのですが、 記憶容量に対してピンの数がどう考えても不足していることに気づきました。 そこで私は素人ながら、「もしかして、アドレス信号を時間で分割しているのでは?」と思いました。 後日調べたら、私の推測が正しかったことがわかりました。
- midare_oni
- ベストアンサー率24% (6/25)
メモリ(SRAM)の場合、1bitのデータを保存するのに4個のトランジスタが必要となる場合があります。(メモリの構成方法にもよるので、数が少し違うことはあります) なので例えば1Mbitのメモリで考えると、400万個のトランジスタで構成されていることになります。 このとき1Mbit=2^20となるので20本の線があれば400万個のトランジスタで構成された回路を制御することができるのです。 回路の制御は0/1の2つの状態の組合せで考えるので、例えばアドレスで考えれば10本の線があれば2^10=1024個のアドレスとして扱うことができます。 なので、何億個のトランジスタが合ったとしても100本のピンで内部の回路を動かすようにすることは可能です。 尚、CPUの構造はまだシリコンの平面上にトランジスタがならんだ構造で、配線がすごく複雑になるので配線層が多層(8層位)になっていると思います。(多層にすることで複数の線が交差しなければならない場合でも層を変えることで対応できるようになります)
- moritan2
- ベストアンサー率25% (168/670)
メモリには「アドレスバス」と「データバス」があります。アドレスバスでどの番地のメモリを読み書きするかを指定し、読み書きするデータはデータバスで送られます。 たとえば、32ビットのメモリならデータバスは32あれば足ります。またアドレスバスは4Gバイトならやはり32でたります。2^32は約40億すなわち4Gになるからです。
補足
ちょっと問い合わせの内容とずれています. 一本の配線があってその上にトランジスタが何個いようがいいですよ. しかし,その配線上で, a)一つのトランジスタがon b)二つのトランジスタがon c)20個のトランジスタがon これらの違いをどうやって見極めているのでしょうか? a)よりもb),b)よりもc)の方が電圧信号が高い, とかではないですよね.
- okweb-goo
- ベストアンサー率29% (283/952)
まさかそれらの部品を、人間がハンダ付けして製作しているとお考えではないですよね? 簡単に言えば、トランジスタその他の機能を実現する粒子を、薄いシリコンウェハー上に、何層にも「製版/印刷」しているんです。 ちなみにインテルの最新プロセッサ「i7」では、となりの配線までの距離は最小で「32nm」だそうです。
補足
残念ながら,回答者の方々の中で,一番内容がずれています. 「人間がハンダ付けして製作しているとお考えではないですよね?」 考えていません.
- 4500rpm
- ベストアンサー率51% (3212/6290)
コンピューターは全ての信号を、電気のonかoffで出力しています。 たとえば、手の叩き方で1回叩くと前へ進む、2回叩くと後ろへ進む、 3回叩くと右へ進む、4回叩くと左へ進むとか取り決めておくと、 手は2本しかなくても、叩き方を変えることで他の人に伝えることができます。 これと同じ事を、CPUはしています。 ですので、接点は少なくて済みます。 実際は、もっと複雑ですが。
お礼
ありがとうございます. かなり分かりやすいような気がするのですが,まだ見えてきません. もう少し実際に近い内容で説明して頂けると,道が明るくなると思います.どうか宜しくお願いします.
お礼
sanori様が,私の意図した問いに一番近いと思います. 『「もしかして、アドレス信号を時間で分割しているのでは?」と思いました。』 私がお尋ねしたかったのは,おそらくこれです! 一本の配線があってその上にトランジスタが何個いようがいいですよ. しかし,その配線上で, a)一つのトランジスタがon b)二つのトランジスタがon c)20個のトランジスタがon これらの違いをどうやって見極めているのでしょうか? a)よりもb),b)よりもc)の方が電圧信号が高い, とかではないですよね. 「アドレス信号を時間で分割」とうことのようなのですが, これを教えてくれる資料やウェブサイトはないでしょうか・・・