Dalam mikroprosesor 8-bit bus datanya terdiri dari 8 jalur data. Dalam mikroprosesor 16-bit, bus datanya terdiri dari 16 jalur data dan seterusnya.
Mengapa tidak ada mikroprosesor 256-bit atau mikroprosesor 512-bit? Mengapa mereka tidak hanya menambah jumlah baris data dan membuat mikroprosesor 256-bit atau mikroprosesor 512-bit?
Apa kendala yang mencegah pembuatan mikroprosesor 256-bit atau mikroprosesor 512-bit?
microcontroller
microprocessor
architecture
Michael harris
sumber
sumber
Jawaban:
Pikirkan tentang itu. Apa sebenarnya yang Anda bayangkan dari prosesor "256 bit"? Apa yang membuat bit-ness dari sebuah prosesor di tempat pertama?
Saya pikir jika tidak ada kualifikasi lebih lanjut yang dibuat, bit-ness dari sebuah prosesor mengacu pada lebar ALU-nya. Ini adalah lebar dari angka biner yang dapat ditangani secara asli dalam satu operasi. Prosesor "32 bit" karena itu dapat beroperasi secara langsung pada nilai hingga lebar 32 bit dalam instruksi tunggal. Prosesor 256 bit Anda karenanya akan mengandung ALU yang sangat besar yang mampu menambah, mengurangi, ORing, ANDing, dll, angka 256 bit dalam operasi tunggal. Mengapa kamu menginginkan itu? Masalah apa yang membuat ALU besar dan mahal layak dimiliki dan dibayar, bahkan untuk kasus-kasus di mana prosesor hanya menghitung 100 iterasi dari loop dan sejenisnya?
Intinya adalah, Anda harus membayar untuk ALU luas apakah Anda kemudian banyak menggunakannya atau hanya sebagian kecil dari kemampuannya. Untuk membenarkan ALU 256 bit, Anda harus menemukan masalah yang cukup penting yang dapat benar-benar mendapat manfaat dari memanipulasi 256 bit kata dalam instruksi tunggal. Meskipun Anda mungkin dapat membuat beberapa contoh, tidak ada cukup masalah seperti itu yang membuat produsen merasa mereka akan mendapatkan pengembalian atas investasi yang signifikan yang diperlukan untuk menghasilkan chip seperti itu. Jika ada masalah niche tetapi penting (didanai dengan baik) yang benar-benar dapat mengambil manfaat dari ALU yang luas, maka kita akan melihat prosesor yang sangat bertarget sangat mahal untuk aplikasi itu. Namun harga mereka akan mencegah penggunaan yang luas di luar aplikasi sempit yang dirancang untuk itu. Sebagai contoh, jika 256 bit memungkinkan aplikasi kriptografi tertentu untuk militer, prosesor 256 bit khusus dengan biaya 100 hingga 1000 dolar masing-masing mungkin akan muncul. Anda tidak akan memasukkannya ke pemanggang roti, catu daya, atau bahkan mobil.
Saya juga harus jelas bahwa ALU yang lebar tidak hanya membuat ALU lebih mahal, tetapi juga bagian lain dari chip. Lebar 256 bit ALU juga berarti harus ada jalur data selebar 256 bit. Itu saja akan memakan banyak area silikon. Data itu harus datang dari suatu tempat dan pergi ke suatu tempat, jadi perlu ada register, cache, memori lain, dll, agar ALU lebar dapat digunakan secara efektif.
Poin lain adalah Anda dapat melakukan aritmatika lebar pada prosesor lebar apa pun. Anda dapat menambahkan kata memori 32 bit ke dalam kata memori 32 bit lainnya pada instruksi 18 PIC dalam 8, sedangkan Anda bisa melakukannya pada arsitektur yang sama diskalakan menjadi 32 bit hanya dalam 2 instruksi. Intinya adalah bahwa ALU sempit tidak membuat Anda tidak melakukan perhitungan luas, hanya saja perhitungan lebar akan lebih lama. Karena itu pertanyaannya adalah kecepatan, bukan kemampuan. Jika Anda melihat spektrum aplikasi yang perlu menggunakan angka lebar tertentu, Anda akan melihat sangat sedikit yang membutuhkan kata 256 bit. Biaya mempercepat hanya beberapa aplikasi dengan perangkat keras yang tidak akan membantu yang lain tidak sepadan dan tidak membuat investasi yang baik untuk pengembangan produk.
sumber
Yah, saya tidak tahu tentang 256 atau 512 bit, tapi saya pernah mendengar tentang prosesor 1024 bit (saya tidak dapat menemukannya sekarang). Kata itu adalah VLIW , untuk kata instruksi yang sangat panjang . Jadi itu bus instruksi, bukan lebar bus data. Keuntungannya adalah Anda dapat mengimplementasikan Instruction Level Parallelism (ILP) dalam skala besar.
Pertemuan pertama saya dengan ILP pasti 20 tahun yang lalu dengan Motorola DSP, yang memiliki instruksi untuk melakukan MAC (Multiply dan ACcumulate) saat memindahkan data ke dan dari memori, sehingga Anda dapat melakukan MAC baru pada instruksi berikutnya, tanpa membuang-buang waktu antara dua MAC untuk memindahkan data.
Hari ini ada juga pengendali keperluan umum yang menawarkan opsi ini. VLIW menerapkan ini pada skala yang jauh lebih tinggi.
Bacaan lebih lanjut
Arsitektur VLIW
sumber
"Bitness" dari mikroprosesor biasanya didefinisikan dalam hal ukuran register tujuan umum. Ukuran menentukan seberapa besar jumlah yang dapat ditangani prosesor secara asli dan berapa banyak memori yang dapat diakses. Angka 64bit sudah cukup untuk hampir semua algoritma dan jumlah memori yang dapat dialamatkan (16 juta terabyte) sudah cukup untuk beberapa waktu mendatang. Tidak ada keuntungan untuk meningkatkan ukuran register tujuan umum. Di sisi lain, area unit aritmatika logika (ALU) digunakan untuk melakukan operasi pada skala register dengan kuadrat jumlah bit. ALU 256bit akan 16x lebih besar dan lebih lambat secara signifikan.
Di sisi lain, ada gunanya memperlebar prosesor untuk memungkinkan melakukan banyak operasi kecil sekaligus. Bahkan prosesor Sandy Bridge dan Ivy Bridge dari Intel melakukan hal itu, mereka memiliki register 256 bit SIMD dan dapat melakukan dua operasi aritmatika dan satu operasi memori per siklus. Jadi orang dapat membenarkan menyebut mereka 256bit, atau bahkan prosesor 768bit, jika seseorang adalah seorang pemasar yang licik yang ingin membengkokkan istilah yang digunakan secara teratur.
sumber
Pertama, ukuran bit prosesor biasanya ditentukan oleh arsitektur abstrak yang dapat dilihat oleh pemrogram bahasa mesin, bukan oleh detail implementasi seperti ukuran bus data.
Sebagai contoh, Motorola 68000 adalah prosesor 32 bit. Ini memiliki register data 32-bit dan register alamat 32-bit. Sekarang, versi pertama dari keluarga arsitektur itu hanya mengekspos 24 bit garis alamat. Selain itu, ada varian yang hanya memiliki bus data 8 bit (sehingga operasi memori 32 bit dilakukan oleh prosesor sebagai beberapa siklus akses).
Sekarang tentang pertanyaan, mengapa tidak pergi ke 256 dan 512. Prosesor "secara alami" memanipulasi beberapa jenis tipe data, jadi sangat membantu untuk melihat apa arti 256 atau 512 bit untuk masing-masing tipe data ini secara individual. Kami memiliki bilangan bulat, pointer dan tipe floating-point.
Integer: Program mendapatkan banyak jarak tempuh dari integer 32 dan 64 bit. Jika 64 bit adalah batasan, perbaikan untuk itu adalah memiliki bignum integer yang diimplementasikan perangkat lunak. Bahasa tingkat tinggi dapat menerapkan tipe integer sehingga operasi dapat dengan lancar beralih antara "fixnums" dan "bignum". Tentu saja Anda mendapatkan hit kinerja dengan bignum, tetapi Anda harus mempertimbangkan bahwa dalam gambaran besar: berapa banyak operasi dalam suatu program adalah operasi bignum. Angka 256 atau 512 bit tidak menghilangkan kebutuhan akan bignum, mereka hanya menambah ruang kepala sebelum kita harus beralih ke bignum. Jika Anda ingin memanipulasi kunci publik 2048 bit, integer 512 bit tidak akan melakukannya (tetapi bignum dengan digit 512 bit bisa cepat).
Pointer: Pointer yang lebih luas memungkinkan dua hal: ruang alamat yang lebih luas, dan meta-data tambahan yang disimpan dalam sebuah pointer. Ruang alamat adalah virtual hari ini dan sehingga mereka dapat tumbuh bahkan jika ingatan tidak tumbuh. Telah diusulkan bahwa jika Anda memiliki pointer 128 bit, ruang alamat sangat luas sehingga Anda dapat menempatkan semua proses ruang pengguna sistem operasi, dan kernel, di tempat acak dalam satu ruang tanpa perlindungan, dan mereka tidak mungkin berbenturan. Daripada hanya membuat ruang alamat yang lebih besar, pointer lebih gemuk dapat digunakan untuk membawa bit yang bukan bit alamat, seperti informasi tentang objek referensi (jenis, ukuran dan info lainnya) atau informasi terkait keamanan. Mungkin ada "kegemukan optimal" untuk hal semacam ini, dan jika saya menebak, saya masih akan membatasi 128 bit. Tidak Tampaknya masuk akal untuk pergi ke 256 bit pointer, apalagi 512. Fatter pointer memiliki kelemahan: mereka mengasapi semua struktur data yang mengandung pointer. Dan, secara umum, Anda ingin pointer memiliki ukuran yang sama, jika tidak, Anda perlu komplikasi dalam arsitektur set instruksi (seperti segmen memori) di mana Anda kemudian memiliki pointer penuh (deskriptor dan offset segmen) atau hanya pointer lokal (offset dalam beberapa segmen yang dipahami) .
Jenis floating-point: Semakin banyak bit dalam angka floating point berarti lebih presisi. Saya akan mengatakan bahwa tipe floating-point paling diuntungkan dari representasi yang lebih luas. Tipe mengambang 256 atau 512 bit akan meningkatkan stabilitas kode numerik dan kualitas perhitungan ilmiah yang membutuhkan banyak iterasi, dan mengakumulasi kesalahan di sepanjang jalan. Presisi dalam floating-point tidak sama dengan presisi dalam integer: kami tidak dapat memisahkan tipe floating point ke dalam rentang seperti fixnum versus bignum. Lebih presisi dalam floating point mempengaruhi kualitas semua angka yang tidak tepat, apakah mereka mendekati nol atau memiliki besaran besar. Lebih banyak bit dalam eksponen floating point juga dapat sangat memperluas kisaran angka floating point, dan jauh lebih cepat daripada menambahkan bit ke bignum integer.
Untuk alasan ini, saya menduga bahwa tren masa depan yang dominan adalah peningkatan dalam jumlah angka floating-point perangkat keras, tidak harus diikuti oleh peningkatan lebar pointer dan bilangan bulat.
Ingat bahwa angka floating-point sudah lebih dulu dari jenis lainnya di masa lalu. Sebagai contoh, untuk sementara kami memiliki dominasi prosesor 32 bit yang mendukung 64 bit IEEE double float. Ini karena walaupun Anda dapat melakukan banyak hal dengan pointer dan integer 32 bit, float 32 bit sangat terbatas untuk pekerjaan numerik yang serius.
Satu fitur yang sangat, sangat berguna yang akan menyenangkan untuk dilihat muncul dalam representasi floating-point akan menjadi beberapa bit cadangan untuk tag tipe. Menerapkan tipe titik-mengambang dalam bahasa tingkat tinggi yang dinamis (di mana objek memiliki tipe, tetapi lokasi penyimpanan memiliki nilai jenis apa pun) adalah perjuangan karena sedangkan bit cadangan dapat ditemukan dalam pointer dan objek bilangan bulat seperti untuk menempatkan bagian-bagian dari suatu mengidentifikasi tag tipe, ini sulit dilakukan dengan angka floating-point. Jadi yang sering terjadi adalah angka floating-point mendapatkan heap-dialokasikan. Beberapa skema mencuri bit dari mantissa, jadi tipe floating-point dalam bahasa itu kehilangan presisi dibandingkan dengan float dalam bahasa lain pada mesin yang sama.
sumber
Sebenarnya tidak membantu Anda melakukan sesuatu yang bermanfaat. Angka 64 bit memberikan Anda presisi yang cukup untuk hampir semua tujuan (sistem Intel memiliki titik apung 80-bit), tetapi jalur ekstra meningkatkan biaya dan konsumsi daya sambil memiliki dampak negatif kecil pada kecepatan clock.
Secara historis CPU menggunakan jumlah bit minimum yang masuk akal praktis untuk tujuan yang dimaksudkan. Dengan kemajuan teknologi, bus yang lebih luas dan ALU menjadi mungkin, maka peningkatan ukuran bus untuk melayani penerapan yang lebih luas:
sumber
Sebenarnya, prosesor seperti itu ada dan umum, tergantung pada bagaimana Anda mendefinisikan bitness. Anda hampir pasti menggunakan satu sekarang. Seperti yang dijelaskan Olin, tidak banyak digunakan untuk angka 256-bit, tetapi bagaimana dengan angka 4 x 32-bit? Bagaimana jika ALU dapat menambahkan 4 pasang angka 32-bit secara bersamaan. ALU semacam itu (yang saya tahu) pertama kali diimplementasikan dalam superkomputer vektor pada 1970-an. Pertama kali saya memiliki komputer seperti itu adalah ketika saya memiliki salah satu Intel Pentium dengan MMX.
Ingat mereka?
Chip MMX memiliki Satu Instruksi Tunggal - Beberapa Data instruksi set ( SIMD ), memungkinkan Anda untuk menambahkan pasangan 1 × 64-bit, 2 × 32-bit pasangan, 4 × 16-bit pasangan atau 8 × 8-bit pasangan.
Tapi itu bukan apa-apa. Kartu grafis modern memiliki GPU (yang dulunya singkatan dari Graphics Processing Unit, tetapi sekarang singkatan dari General Processing Unit). Ini sering kali merupakan implementasi SIMD yang luas, mampu melakukan cabang, memuat, dan menyimpan pada 128 atau 256 bit sekaligus. Mikroarsitektur prototipe Larrabee Intel mencakup lebih dari dua register SIMD 512-bit pada masing-masing inti.
Harap dicatat bahwa SIMD tidak harus bingung dengan multi-core. Setiap inti dari CPU akan memiliki ALU sendiri yang luas yang mampu menambahkan satu set integer.
sumber
Karena kita belum membutuhkannya.
Biasanya, bitness (yang saya definisikan sebagai jumlah bit dalam register) menerjemahkan kurang lebih secara langsung ke dalam jumlah memori yang dapat dialamatkan. Ini tentu saja disederhanakan, karena tergantung pada prosesor, mungkin ada register memiliki 2 kali panjang bitness, atau ada teknik untuk menghindari keterbatasan memori (ada orang di luar sana yang ingat melakukan pemrograman pada windows 16-bit?).
sumber
"Mengapa mereka tidak menambah jumlah garis data dan membuat 256-bit"
Semua prosesor Intel yang sesuai dengan Soket LGA-2011, pada kenyataannya, memiliki 256 pin data, menghubungkan ke 256 jalur data pada motherboard yang mengarah ke DRAM. Saya akan sedikit terkejut jika laptop atau mesin desktop terbaru yang Anda gunakan tidak memiliki setidaknya 256 baris data. Bolehkah saya bertanya di mana Anda mendapatkan gagasan keliru ini bahwa mereka "tidak ... hanya menambah jumlah baris data"?
The LGA-2011 Socket datasheet , bagian 6.1, menunjukkan bahwa CPU ini memiliki 256 pin data dan 76 pin alamat (address Bank + alamat memori).
sumber
karena tidak ada aplikasi yang membutuhkan atau memiliki kemungkinan untuk merepresentasikan data menggunakan lebih dari 128 bit sekaligus.
dan Anda tahu, prosesor multimedia dan kartu grafis akan sampai di sana sebelum mainboards CPU, hanya karena dengan foto / video masuk akal untuk menggunakan panjang data yang besar untuk diproses sekaligus.
sumber
Sistem komputer dalam artinya adalah mesin komputer, yang membutuhkan beberapa input dan memberikan beberapa output. Kita harus memuaskan komputer di jalur ini, maka para pengembang datang untuk memiliki tolok ukur dengan memiliki 3 Bus, yaitu Bus Alamat, Bus Data dan Bus Kontrol. 1) Bus Alamat mengambil / Pilih Alamat tertentu dalam Memori, untuk Operasi Baca / Tulis. 2) Bus Data kemudian Mengambil Data Tunjukkan Data ini ke / dari prosesor dan Memori untuk Tujuan Pengolahan / Penyimpanan. 3) Bus Kontrol Buat Protokol Pengendali Antarmuka dan minta Sistem untuk Menghormatinya.
Ini diperlukan untuk melakukan beberapa Komputasi yang berguna untuk Pengguna / Server / Klien. Secara umum Kinerja (Kecepatan Penyelesaian Tugas, Gangguan Kurang, dll) Tergantung pada Membersihkan Leher Botol dalam Sistem. yaitu Jika CPU mampu memproses pada Tingkat yang Jauh Lebih Tinggi dari Kecepatan Transfer dari Hard Disk Drive, maka leher botol terjadi pada HDD. Demikian pula kita perlu memiliki Kecepatan Pemrosesan yang tepat untuk Kecepatan Data dan Lebar Kode tertentu.
Dari Awal, Karena berbagai alasan seperti Kompleksitas H / W, Biaya, Persyaratan, Algoritma Efektif, dan alasan utama Lingkup Pasar adalah penghalang utama untuk produksi Lebar Bus Data Tinggi, sebagaimana disebutkan oleh Host Pertanyaan, katakan 256 bit atau 512 bit. Ini mungkin! Tetapi persyaratan belum ada, ruang lingkup pasar belum terlihat dengan kebutuhan saat ini dan tidak adanya dukungan Perangkat Lunak memuji.
Prosesor 256 bit menandakan lebar Bus Data, yang dapat ditangani oleh prosesor tertentu, atau ALU dapat memproses dalam satu Eksekusi tunggal. Kami Mulai membentuk 4 bit, kemudian 8,16,32 dan saat ini 64 dan bahkan 128 bit yang merupakan Produk Lingkup Pasar saat ini.
Jadi sebelum Mengajukan Pertanyaan ini, Anda harus selalu melihat Permintaan Sisi Pasar dan Lingkupnya, Dalam sejarah itu adalah satu-satunya cara Lurus ke Depan untuk memahami cara hidup. Jika Anda tidak mampu, bagaimana Anda bisa membelinya? dan jika Anda tidak dapat membelinya, bagaimana produsen dapat menghasilkan? dan jika dia tidak dapat memproduksi, maka tidak ada keberadaan untuk produk itu !!
sumber