Semua orang tahu kecepatan komputasi telah meningkat secara drastis sejak penemuan mereka, dan tampaknya akan terus berlanjut. Tetapi satu hal yang membingungkan saya: jika Anda menjalankan arus listrik melalui bahan hari ini, itu akan bergerak dengan kecepatan yang sama seperti jika Anda melakukannya dengan bahan yang sama 50 tahun yang lalu.
Dengan mengingat hal itu, bagaimana komputer menjadi lebih cepat? Apa bidang utama dari desain prosesor yang telah memberikan peningkatan kecepatan yang luar biasa ini?
Saya pikir mungkin itu bisa satu atau lebih hal berikut ini:
- Prosesor yang lebih kecil (jarak yang lebih jauh untuk perjalanan saat ini, tetapi bagi saya sepertinya Anda hanya akan dapat membuat keuntungan kecil di sini).
- Bahan yang lebih baik
computer-architecture
leylandski
sumber
sumber
Jawaban:
Anda mendapatkan kesimpulan yang salah karena hipotesis awal Anda salah: Anda berpikir bahwa kecepatan CPU setara dengan kecepatan elektron dalam CPU.
Bahkan, CPU adalah beberapa logika digital yang sinkron. Batas kecepatannya adalah bahwa output dari persamaan logis harus stabil dalam periode satu jam. Dengan logika yang diimplementasikan dengan transistor, batasnya terutama terkait dengan waktu yang diperlukan untuk membuat transistor beralih. Dengan mengurangi ukuran saluran mereka, kami dapat membuatnya beralih lebih cepat. Ini adalah alasan utama untuk peningkatan frekuensi maks CPU selama 50 tahun. Hari ini, kami juga memodifikasi bentuk transistor untuk meningkatkan kecepatan switching mereka, tetapi, sejauh yang saya tahu , hanya Intel, Global Foundries, dan TSMC yang dapat membuat FinFET hari ini.
Namun, ada beberapa cara lain untuk meningkatkan kecepatan clock maksimum CPU: jika Anda membagi persamaan logis Anda menjadi beberapa yang lebih kecil, Anda dapat membuat setiap langkah lebih cepat, dan memiliki kecepatan clock yang lebih tinggi. Anda juga membutuhkan lebih banyak periode jam untuk melakukan tindakan yang sama, tetapi, menggunakan teknik perpipaan , Anda dapat membuat laju instruksi per detik mengikuti laju jam Anda.
Saat ini, kecepatan elektron telah menjadi batas: pada 10GHz, sinyal listrik tidak dapat diperbanyak pada lebih dari 3cm. Ini kira-kira ukuran prosesor saat ini. Untuk menghindari masalah ini, Anda mungkin memiliki beberapa domain sinkron independen dalam chip Anda, mengurangi kendala pada propagasi sinyal. Tapi ini hanya satu faktor pembatas, antara kecepatan switching transistor, disipasi panas, EMC, dan mungkin yang lainnya (tapi saya tidak di industri pengecoran silikon).
sumber
Ada banyak variabel kompleks yang mempengaruhi kecepatan CPU secara keseluruhan, tetapi yang utama adalah kecepatan clock yang meningkat hingga pertengahan 2000-an dan kemudian datar karena keterbatasan fisik. Konsumsi daya per chip juga meningkat selama periode itu untuk menebus kehilangan / kebocoran chip. Chip CPU menjadi terlalu panas dan teknologi pendinginan menjadi lebih penting, dan lebih banyak watt tidak dapat diterapkan (tanpa melelehkannya!).
Extremetech.com memberikan survei yang bagus yang menunjukkan bahwa hukum Moore dianggap benar-benar dipicu oleh skala Dennard . Yang terakhir runtuh pada pertengahan 2000-an. Ada banyak faktor desain lain / peningkatan yang terlibat dalam "kecepatan" chip (di mana "kecepatan" diukur sebagai keseluruhan waktu eksekusi kode dan bukan hanya kecepatan clock) yang cenderung menutupi titik belok dalam kemampuan perangkat keras seperti cache, paralelisme CPU / multicore , prediksi cabang, dll., yang ditambahkan dengan lebar gerbang yang lebih kecil (dan karenanya jauh lebih banyak gerbang per chip untuk fungsi tambahan). Lebar gerbang juga cenderung berhenti berkurang atau setidaknya berkurang kurang cepat setiap generasi.
Mengapa tren yang membatasi ini tidak terlalu dikenal? Beberapa entitas yang memiliki pengetahuan paling banyak tentang tren ini "memiliki kerugian terbesar" dan sebenarnya paling tidak mungkin mempublikasikannya. Misalnya Intel, bernilai miliaran dolar, kemungkinan besar tidak akan mempublikasikan data internal hak milik yang menunjukkan batas atau penurunan kinerja di masa mendatang.
Ada kemungkinan baru di cakrawala yang dapat mengarah pada tren yang sama sekali baru (tetapi beberapa melibatkan teknologi yang hampir berbeda / teknik manufaktur) termasuk chip fotonik, chip 3-D di mana chip diletakkan dalam beberapa lapisan, komputasi kuantum, nanoteknologi seperti nanotube transistor, dll.
sumber
Delegasi ke Prosesor Tambahan
Pertimbangan lain (selain jawaban hebat lainnya) adalah pendelegasian tugas ke prosesor lain. Pada masa komputasi awal, hanya ada satu prosesor. Untuk grafik, perhitungan dibagi dengan perhitungan lain dalam CPU yang sama. Sekarang, kami memiliki prosesor terpisah untuk pemrosesan grafis.
Beberapa core
Banyak prosesor modern memiliki banyak inti, dalam bentuk silikon yang sama. Karena mereka menggunakan bagian silikon yang sama, mereka tidak terlalu terpengaruh oleh melambatnya chip ke inti / prosesor lain. Contoh: Prosesor Grafik.
Memori dan Ekspansi Alamat
Mikroprosesor 8 bit awal memiliki jangkauan pengalamatan yang lebih kecil daripada prosesor 32-bit dan 64-bit saat ini. Prosesor modern memiliki rentang memori yang meningkat, yang berarti lebih banyak komputasi dapat dilakukan dalam memori daripada harus mengakses penyimpanan eksternal.
Ini juga berlaku untuk memori on-chip. Ruang alamat yang lebih besar memungkinkan untuk memori yang lebih besar lebih dekat ke inti pusat, sementara masih meninggalkan ruang alamat yang besar di luar silikon.
Pipa dan Cache
Dengan memori menjadi lebih murah, komputer modern sekarang menerapkan data yang lebih canggih dan jalur pipa instruksi serta cache data dan instruksi. Ini mempercepat eksekusi dengan mengurangi kebutuhan untuk mengambil dari memori yang lebih lambat (di luar silikon) ke cache internal. Beberapa prosesor memiliki kemampuan untuk memuat
for
loop dalam cache instruksi mereka.Ringkasan
Komputer saat ini jauh lebih cepat, tidak hanya karena kemajuan teknologi transistor dan silikon, tetapi juga karena pendelegasian tugas ke prosesor / core lainnya. Memori menjadi lebih cepat dan lebih murah memungkinkan prosesor memiliki banyak memori yang dekat dengan CPU. Mengatasi rentang memungkinkan lebih banyak memori yang berarti lebih sedikit pengambilan ke penyimpanan eksternal. Ukuran register yang lebih besar memungkinkan lebih banyak data diambil per siklus (4 byte dengan sistem 32-bit, 1 byte dengan sistem 8-bit). Beberapa core memungkinkan operasi paralel dan bukan serialisasi.
sumber
Hampir semua kemajuan dalam kecepatan komputer berasal dari salah satu bidang ini:
Transistor yang lebih kecil
Dua hal hasil dari membuat transistor lebih kecil:
Lebih banyak "pekerjaan yang bermanfaat" per instruksi
Misalnya, beberapa prosesor tidak memiliki instruksi untuk melipatgandakan atau membagi bilangan bulat; alih-alih tugas ini harus dilakukan dengan rutinitas perangkat lunak yang lambat. Menambahkan multiply dan membagi instruksi mempercepat segalanya. Menambahkan instruksi floating-point dapat mempercepat perangkat lunak yang membutuhkan angka floating-point.
Cara penting untuk melakukan lebih banyak "pekerjaan bermanfaat" per instruksi adalah meningkatkan ukuran kata . CPU yang dapat melakukan operasi pada angka 32-bit sering membutuhkan instruksi yang jauh lebih sedikit untuk melakukan tugas yang sama seperti CPU 16-bit atau 8-bit.
Beberapa prosesor mendukung instruksi yang melakukan beberapa hal sekaligus, khususnya instruksi yang melakukan operasi yang sama pada beberapa item data ( SIMD ).
Lebih banyak instruksi per siklus
"Clock cycle" adalah bagaimana prosesor beralih dari kondisi saat ini ke status berikutnya. Dalam arti tertentu itu adalah unit kerja terkecil yang dapat dilakukan prosesor pada satu waktu. Namun, jumlah siklus jam yang diambil instruksi tertentu tergantung pada desain prosesor.
Dengan munculnya prosesor pipelined , menjadi mungkin untuk instruksi terpisah untuk "tumpang tindih", yaitu seseorang akan mulai sebelum yang sebelumnya selesai. Namun, instruksi tertentu dapat membatalkan instruksi berikutnya, yang tidak akan diketahui sampai instruksi berikutnya sebagian dieksekusi, sehingga hal-hal dapat menjadi rumit. (Prosesor pipelined menyertakan logika untuk memastikan semuanya berjalan dengan baik — tetapi karakteristik kinerja lebih kompleks.)
Prosesor Superscalar membawa ini ke tingkat berikutnya, secara harfiah memungkinkan dua instruksi untuk dieksekusi pada saat yang sama, dan eksekusi out-of-order membawanya selangkah lebih maju, memungkinkan instruksi dieksekusi keluar dari urutan. Fitur-fitur ini memerlukan analisis aliran instruksi, mengetahui instruksi mana yang tidak saling bertentangan.
Meskipun ada trik lain (mis. Prediksi cabang , eksekusi spekulatif ), yang lebih penting adalah gambaran keseluruhan:
Lebih banyak siklus per detik
Dengan kata lain, kecepatan clock lebih tinggi . Meningkatkan kecepatan clock tidak hanya meningkatkan panas yang dihasilkan, tetapi juga membutuhkan desain chip yang jauh lebih disiplin, karena ada batas waktu yang lebih kecil untuk menstabilkan sirkuit. Kami mendapat banyak jarak tempuh dari yang ini sampai tahun 2000 ketika kami mencapai beberapa batasan praktis.
Data di tempat yang tepat pada waktu yang tepat
Meskipun komponen-komponen dalam CPU telah semakin dekat karena penyusutan transistor, CPU dan RAM masih terpisah 5-10cm. Jika suatu instruksi membutuhkan sesuatu dari RAM, instruksi itu tidak akan membutuhkan 5 atau 6 siklus untuk menyelesaikannya, itu akan memakan waktu sekitar 200. Ini adalah masalah bottleneck von Neumann .
Senjata utama kami untuk melawan ini adalah cache . Data yang diakses baru-baru ini lebih mungkin diakses lagi, sehingga disimpan dalam memori khusus (disebut cache) yang ada dalam chip CPU, membuatnya jauh lebih cepat untuk diakses.
Namun, teknik lain (seperti pipelining dan prediksi cabang ) membantu dengan memungkinkan prosesor melakukan pekerjaan yang bermanfaat sambil menunggu data tiba, dan juga memprediksi data mana yang mungkin segera dibutuhkan.
Banyak dan / atau prosesor khusus
Jauh lebih mudah untuk menulis perangkat lunak untuk prosesor tunggal daripada untuk beberapa prosesor. Namun, terkadang manfaat kinerja / biaya / konsumsi daya membuatnya berharga.
Juga, prosesor tertentu sangat cocok untuk tugas-tugas tertentu. Misalnya, GPU dirancang khusus untuk perhitungan yang diperlukan untuk rendering grafik dan efek 2D dan 3D.
Prosesor multi-inti pada dasarnya adalah beberapa prosesor dalam satu chip.
sumber
Ketika komputer dapat melakukan lebih banyak perhitungan per unit waktu, mereka dianggap lebih cepat. Setiap perhitungan mungkin tidak dilakukan lebih cepat dari sebelumnya, tetapi ada lebih banyak perhitungan yang dilakukan. Analogi yang baik adalah jumlah langkah yang dilakukan pelari. Jika pelari berperilaku sesuai dengan hukum Moore, pelari akan dapat mengambil langkah dua kali lebih banyak setiap dua tahun. Intinya, pelari akan menempuh jarak dua kali lipat dalam jumlah waktu yang sama yang dilakukan pelari dua tahun lalu. Jarak dibagi dengan waktu sama dengan kecepatan. 2 X Distance sama dengan 2 X Speed.
sumber
Kekuatan pemrosesan komputer / CPU sebenarnya adalah seberapa cepat perjalanan listrik tetapi seberapa cepat dapat dinyalakan dan dimatikan. Semakin cepat Anda dapat beralih di antara arus yang mengalir dan yang tidak mengalir, semakin banyak informasi yang dapat Anda proses dalam cpu atau mentransmisikannya.
sumber
Untuk prosesor khas yang digunakan dalam PC, pembuangan panas telah menjadi faktor pembatas selama lebih dari satu dekade, di mana prosesor berpendingin udara di PC dibatasi hingga sekitar 4 ghz. Pendinginan air meningkatkan ini menjadi sekitar 5 ghz, dan pendinginan nitrogen telah digunakan untuk mendorong laju clock menjadi sekitar 6 ghz hingga 6,5 ghz.
Clock rate pada dasarnya adalah fungsi dari voltase versus ukuran logika sirkuit (berapa lama waktu yang dibutuhkan untuk mengubah status). Semakin tinggi tegangan atau semakin kecil logika sirkuit, semakin cepat laju, tetapi ini menghadirkan masalah disipasi panas karena kepadatan biasanya meningkat seiring dengan pengurangan ukuran logika sirkuit. Dengan kepadatan tinggi, tidak ada banyak ruang tersisa untuk bahan penghantar panas untuk menghilangkan panas. Mengurangi kepadatan meningkatkan biaya, dan juga meningkatkan penundaan propagasi karena panjangnya sirkuit yang lebih panjang.
CPU belum mendapatkan yang lebih cepat dalam beberapa tahun terakhir, Intel i7 4790K (4,0 ghz, 4,4 ghz turbo) saat ini tidak lebih cepat dari Intel i7 2700K generasi kedua (3,5 ghz, 3,9 ghz turbo), lainnya daripada itu laju jam lebih cepat (sekitar 14,3% lebih cepat). Di sisi lain, karena grafik 3d dapat memanfaatkan operasi paralel, kartu video telah meningkat kinerjanya dengan faktor sekitar 3 dalam 4 atau 5 tahun terakhir, beberapa memiliki setara dengan 3.000+ sub-core.
sumber
Meskipun jawaban yang sudah diberikan bagus, semuanya tampak sangat rumit!
Jawaban "TLDR" yang cepat adalah "jumlah gerbang logika", dan "seberapa cepat gerbang logika itu menyala". Pikirkan gerbang logika seperti 1s dan 0s. Ini hanyalah tabung transistor / vaccum / apa pun yang menghidupkan atau mematikan. 1 aktif 0 mati.
Listrik tidak bergerak lebih cepat atau lebih lambat, tetapi Anda dapat menjejalkan lebih banyak dan nol ke dalam chip Anda karena yang dan nol sendiri lebih kecil. Dan Anda dapat membuatnya membalik lebih cepat dari waktu ke waktu. Apakah itu membuat jawaban yang sedikit lebih sederhana?
sumber
Dua faktor terbesar sejauh ini adalah fakta bahwa transistor telah menyusut dengan tingkat yang konyol dan oleh karena itu sekarang kita memiliki smartphone dengan jauh lebih dari satu miliar transistor, dan fakta bahwa perpindahan transistor dari satu negara ke negara lain telah menjadi jauh lebih cepat. Perpindahan yang lebih cepat diterjemahkan secara langsung menjadi lebih cepat. Semakin banyak jumlah transistor meningkatkan kecepatan secara tidak langsung karena ia merupakan enabler dari banyak perbaikan lain yang disebutkan: Kami memiliki cache karena kami memiliki lebih banyak transistor. Kami memiliki lebih banyak dan lebih banyak register karena kami memiliki lebih banyak transistor. Kami memiliki instruksi vektor karena kami memiliki lebih banyak transistor. Kami memiliki prosesor ganda, quad core, atau sepuluh core karena kami memiliki lebih banyak transistor.
Untuk tingkat yang jauh lebih kecil, kami memiliki peningkatan kecepatan karena desain yang lebih baik. Misalnya, pengganda bukan hanya lebih cepat karena kami memiliki lebih banyak transistor, tetapi karena kami menggunakan metode yang lebih baik. Prediksi cabang telah meningkat lebih dari sekadar memiliki lebih banyak transistor yang tersedia. Tetapi secara keseluruhan, ini adalah efek kecil dibandingkan dengan kekuatan kasar satu miliar transistor.
(Prosesor pada Mac pertama disebut prosesor Motorola 68000 karena memiliki 68.000 transistor. IPad baru memiliki sekitar 20.000 kali lebih banyak).
sumber
Saya seorang insinyur mesin, jadi saya tidak terbiasa dengan seberapa banyak ini mempengaruhi kecepatan prosesor atau apakah itu telah menjadi faktor pembatas atau tidak, tetapi fisika di baliknya adalah suara. Induktansi dan kapasitansi sirkuit akan mempengaruhi seberapa cepat sinyal tegangan digital dapat naik dan turun - sehingga mempengaruhi kecepatan switching. Idealnya, sinyal switching akan menjadi gelombang persegi yang bagus. Pada kenyataannya mereka sedikit cacat dan miring di tepinya. Sinyal harus tinggi dan cukup tinggi untuk dibaca sebelum siklus jam berikutnya. Pada dasarnya, gelombang sinyal membutuhkan "titik datar" di bagian atas. Jika Anda beralih terlalu cepat, Anda akan mendapatkan lebih banyak sinyal gelombang runcing. Anda yang lebih terbiasa dengan sinyal digital dapat mengklarifikasi jika diperlukan, tetapi idenya benar.
sumber