Bagaimana mikrokontroler mencapai kinerja> 1 MIPS / MHz?


19

Seperti ini , yang tidak 1,49 DMIPS / MHz. Bahkan dengan pipelining masih ada hanya 1 tahap eksekusi per siklus bukan?


Satu-satunya hal superscalar pada segmen mikrokontroler ini adalah MADD - gandakan & tambahkan dalam satu siklus. Meskipun, itu tidak banyak membantu di Drystone.
BarsMonster

DSP adalah mikrokontroler, dan mereka dapat memiliki implementasi perangkat keras transformasi Fourier, perkalian array, dll. Apakah mereka juga menghitung? Apakah pengukuran ini berlaku di sini? Bahkan DPS yang sangat tua dapat melakukan 8 perkalian pada 16 register berbeda dalam satu instruksi.
vsz

5
Ada kebohongan, kebohongan, dan tolok ukur ...

Jawaban:


18

DMIPS dan MIPS tidak sama. DMIPS adalah singkatan dari "Dhrystone MIPS", dan merupakan standar untuk membandingkan kinerja mikrokontroler / mikroprosesor yang berbeda di seluruh rangkaian instruksi yang berbeda. Standar tidak begitu baru lagi (*), jadi apa yang bisa dilakukan prosesor referensi pada 1 DMIPS / MHz dalam 1 detik dapat mengambil pengontrol yang lebih maju 670 ms pada kecepatan jam yang sama, hanya karena akan melakukan beberapa tindakan dalam 1 instruksi sedangkan pengontrol lain mungkin membutuhkan 2 instruksi, atau instruksi yang membutuhkan lebih banyak siklus mesin.

Arsitektur 16-bit, misalnya, biasanya akan memiliki kinerja Dhrystone yang lebih baik daripada arsitektur 8-bit, dan 32-bit, seperti yang Anda maksudkan, bahkan lebih.


(*) m.Alin mengacu pada patokan CoreMark yang lebih baru . Perhatikan bahwa ini ditulis dalam C, jadi sebenarnya Anda juga menyertakan kinerja kompiler dalam hasilnya (seperti Dhrystone, BTW).


Tetapi hasil Dhrystone juga tergantung pada kompiler (itu juga ditulis dalam C), kan? Dari Wikipedia: Sebagian besar Dhrystone rentan terhadap kemampuan kompiler untuk mengoptimalkan pekerjaan; jadi itu lebih merupakan patokan kompiler kemudian patokan perangkat keras
m.Alin

1
@ m.Alin - Tentu, saya tidak ingin menyarankan sebaliknya. Saya akan mengklarifikasi jawaban saya. Terima kasih untuk umpan baliknya.
stevenvh

10

DMIPS adalah pengukuran relatif daripada absolut. Berbeda dengan MIPS, ini sebenarnya mengukur seberapa cepat UC dapat melakukan sesuatu yang bermanfaat, bukan hanya seberapa cepat menjalankan instruksi.

Seperti halnya tolok ukur apa pun ia memiliki keterbatasan, tetapi cara sederhana untuk melihatnya adalah seberapa cepat dapat menyelesaikan kode tolok ukur dibandingkan dengan VAX 11/780 (mesin 1 MIPS)
Jadi misalnya jika UC Anda menyelesaikan tolok ukur 100 kali lebih cepat dari VAX 11/780, Anda memiliki mesin 100DMIPS. Jika beroperasi pada 100MHz, maka nilainya 1 DMIPS / MHz.

Perhatikan bahwa DMIPS yang diiklankan biasanya tidak dapat dicapai dalam penggunaan normal, terutama pada UC besar dengan kecepatan blitz, prefetch, waktu tunggu / kesalahan, dll. Berikut ini adalah diskusi yang baik tentang kinerja DMIPS PIC32. Tautan ini memiliki beberapa kode Dhrystone untuk mikrokontroler.


Tautan wikipedia Anda mengatakan bahwa standar Drystone sudah berusia 28 tahun. Apakah Anda tahu jika ada lebih banyak alat pengukur kinerja terbaru? Terima kasih.
Federico Russo

3
@FedericoRusso CoreMark
m.Alin

@FedericoRusso: Hal tentang pengukuran kinerja adalah komparatif. Jika Anda mengubah metode perbandingan, semua hasil yang ada dianggap tidak berguna. Karena itu umur panjang Dhrystone.
Clifford
Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.