Bagaimana cara meningkatkan jumlah transistor dalam sebuah chip meningkatkan kecepatannya?

8

Apakah satu-satunya tujuan transistor dalam CPU untuk bertindak sebagai sakelar yang menentukan set instruksinya? Dan jika demikian, mengapa menambah jumlah transistor meningkatkan kecepatannya?

tyler
sumber
Pertanyaan ini dijawab secara lebih terperinci di pertanyaan Teknik Elektro Stack Exchange ini: electronics.stackexchange.com/questions/5592/… (Tidak jelas apakah detail seperti itu sesuai di sini.)
Paul A. Clayton

Jawaban:

9

Dari atas kepala saya:

  • Lebih banyak cache , yang lebih cepat dari RAM

  • Lebih banyak instruksi SIMD , yang memproses lebih cepat daripada instruksi data tunggal

  • Lebih banyak inti , sehingga Anda bisa melakukan dua atau lebih hal sekaligus

  • Unit lebih fungsional, seperti built-in FPU s, dan beberapa ALU s

  • Jalur pipa , sehingga setiap inti dapat melakukan lebih banyak hal sekaligus

  • Logika pemrosesan yang lebih baik, seperti logika prediksi cabang yang lebih canggih

Ken
sumber
2

Jika Anda ingin tahu tentang hal semacam ini saya sangat merekomendasikan buku The Elements of Computing oleh Noam Nisan dan Shimon Schocken (setidaknya paruh pertama). Setelah melalui itu Anda akan dapat menjawab pertanyaan Anda sendiri dengan sangat rinci dengan apresiasi penuh dari bagian-bagian yang terlibat.

Situs web pendamping sebenarnya memiliki beberapa bab dan catatan sampel. Ini buku yang sangat mudah didekati. Saya menjalaninya sendiri tanpa masalah dan kemudian mengambil kelas baru di universitas saya yang menggunakannya sebagai teks utamanya.

colithium
sumber
2

Jawaban sederhana adalah bahwa lebih banyak transistor tidak membuat sisanya berjalan lebih cepat , tetapi alih-alih melakukan satu hal per periode waktu, kita sekarang dapat melakukan dua (dengan beberapa batasan).

Darth Android
sumber
2

Ken sudah merangkum beberapa alasan dalam jawabannya . Untuk memperluas itu lebih jauh

  • Lebih banyak cache , yang lebih cepat dari RAM

Jelas cache yang lebih besar membutuhkan lebih banyak transistor. Tetapi dengan lebih banyak transistor, kami juga memiliki pilihan untuk menggunakan cache yang lebih cepat . Cache CPU hanya SRAM yang biasanya terbuat dari 6 transistor (AKA 6T SRAM). Namun ketika ada cukup transistor, mungkin layak menggunakan sel SRAM yang lebih cepat tetapi lebih besar yang terbuat dari lebih dari 6 transistor (seperti 8T, 10T SRAM)

  • Lebih banyak instruksi SIMD , yang memproses lebih cepat daripada instruksi data tunggal

Bukan hanya SIMD tetapi semua jenis instruksi percepatan. Misalnya arsitektur modern sering memiliki unit AES untuk enkripsi / dekripsi yang lebih cepat, FMA untuk perhitungan matematika yang lebih baik (terutama pemrosesan sinyal digital), atau virtualisasi untuk mesin virtual yang lebih cepat. Mendukung lebih banyak instruksi berarti lebih banyak sumber daya diperlukan untuk memecahkan kode dan menjalankannya

  • Lebih banyak inti , sehingga Anda bisa melakukan dua atau lebih hal sekaligus
  • Jalur pipa , sehingga setiap inti dapat melakukan lebih banyak hal sekaligus

Ini cukup jelas

  • Unit lebih fungsional, seperti built-in FPU s, dan beberapa ALU s

Di masa lalu tidak ada daerah mati yang cukup untuk FPU sehingga orang harus membeli yang terpisah jika mereka memiliki persyaratan aritmatika titik-mengambang yang tinggi. Dengan transistor yang jauh lebih banyak, FPU built-in memungkinkan, mempercepat matematika floating-point

Selain itu, CPU modern adalah superscalar dan akan mencoba melakukan banyak hal sekaligus dengan menemukan potongan data independen dan menghitungnya lebih awal, meskipun aliran instruksi adalah linier dan serial. Semakin banyak hal yang dapat mereka lakukan secara paralel semakin cepat. Untuk melakukan itu CPU dapat memiliki beberapa ALU dan ALU dapat memiliki beberapa unit eksekusi. Jika misalnya CPU memiliki 5 adders dibandingkan dengan 4 pada generasi sebelumnya maka itu sudah berjalan 25% lebih cepat dalam situasi paling optimis tanpa perubahan jam. CPU yang lebih canggih bahkan menggunakan eksekusi out-of-order (yang merupakan kasus untuk kebanyakan CPU berkinerja tinggi modern)

  • Logika pemrosesan yang lebih baik, seperti logika prediksi cabang yang lebih canggih

Operasi biasanya dapat dilakukan dengan berbagai cara. Jika Anda memiliki lebih banyak transistor, Anda akan memiliki lebih banyak sumber daya untuk menggunakan teknik yang lebih cepat. Beberapa contoh sederhana:

  • Pergeseran bit:

  • Tambahan:

    • Adder sederhana juga dibuat dengan menghubungkan seri full adders . Dengan cara ini penambah N-bit membutuhkan N jam untuk menyelesaikan tugasnya, yang tentu saja tidak seperti yang diharapkan orang dalam sebuah CPU Penambah 4-bit
    • Dengan lebih banyak transistor, kita dapat mempercepat penambahan dengan pra-kalkulasi membawa dengan carry-lookahead atau carry-save adder. Adders lengkap masih digunakan, tetapi dibutuhkan lebih banyak ruang untuk unit carry-precalculation

Hal yang sama berlaku untuk unit lain seperti pengganda, pembagi, penjadwal ... Misalnya kita dapat melakukan perkalian sangat cepat dalam satu jam menggunakan logika kombinasional . Anda dapat melihat beberapa contoh sederhana dalam pertanyaan pengganda 3-bit - bagaimana cara kerjanya? . Tetapi transistor yang dibutuhkan akan tumbuh hingga kuadrat lebar input, oleh karena itu CPU kecil dengan pengali menggunakan logika sekuensial sebagai gantinya untuk menghemat banyak ruang untuk pengali:

Arsitektur multiplier yang lebih tua menggunakan shifter dan akumulator untuk menjumlahkan setiap produk parsial, seringkali satu produk parsial per siklus, menukar kecepatan untuk area die. Arsitektur multiplier modern menggunakan algoritma Baugh-Wooley (Modified), Wallace tree, atau pengganda Dadda untuk menambahkan produk parsial bersamaan dalam satu siklus tunggal. Kinerja implementasi pohon Wallace kadang-kadang ditingkatkan dengan Booth yang dimodifikasi yang menyandikan salah satu dari dua multiplisand, yang mengurangi jumlah produk parsial yang harus dijumlahkan

https://en.wikipedia.org/wiki/Binary_multiplier#Implementations

Setelah Anda memiliki kumpulan transistor yang sangat besar, Anda bahkan dapat menggunakan logika kombinasional untuk melakukan FMA yang jauh lebih banyak sumber daya daripada pengganda

Komputer modern dapat berisi MAC khusus, terdiri dari pengali yang diimplementasikan dalam logika kombinasional diikuti oleh penambah dan register akumulator yang menyimpan hasilnya. Output dari register diumpankan kembali ke satu input dari adder, sehingga pada setiap siklus clock, output dari pengali ditambahkan ke register. Pengganda kombinasional membutuhkan sejumlah besar logika, tetapi dapat menghitung suatu produk jauh lebih cepat daripada metode pemindahan dan penambahan tipikal komputer sebelumnya.

Mengalikan-mengakumulasi operasi

phuclv
sumber
1

Meningkatkan jumlah transistor biasanya dilakukan dengan membuatnya lebih kecil, yang membuat mereka lebih dekat bersama, yang mengurangi waktu propagasi sinyal.

pjc50
sumber