En ligne avec ce que tu voulais, voici quelques bootloader code qui s'exécute une sorte de repère qui peuvent être probablement utilisé pour mesurer le MIPS. Le principal objectif ici était de bas niveau, et je crois que c'est le niveau le plus bas auquel vous pouvez réellement programme avec le PC, sauf si vous êtes prêt à remplacer votre BIOS ou quelque chose.
De toute façon, c'est le code pour une image de disquette qui, lorsqu'il est démarré, vous essayez d'exécuter quatre instructions (deux adds, l'une sub, et un saut conditionnel) un million de fois. Combien de fois les instructions sont exécutées est contrôlée par le ITERS macro. En soulevant ou en abaissant vous pouvez spécifier le nombre d'itérations est censé être fait.
Temps est mesuré à l'aide de la rdtsc instruction, qui retourne le nombre de processeur tiques accomplis depuis sa mise sous tension, comme un nombre de 64 bits dans les registres edx et eax. Par calcul de la différence de cette valeur avant l'exécution de la boucle, et avant, nous obtenons le nombre de tiques que le processeur passé à l'exécution. Cette valeur est ensuite sortie à l'écran à l'aide du BIOS 10h appel comme une valeur hexadécimale. Le temps réel passé sur il est, évidemment, dépend du processeur de fréquence de l'horloge.
Voici le code source. Si vous le compiler à l'aide de MSNA avec -f bin, vous obtiendrez l'image de la disquette qui devrait être écrit sur une disquette à l'aide de certains bloc brut programme d'écriture, par exemple dd. Puis, lors du démarrage, choisissez le lecteur de disquette comme le support d'amorçage. Tout ce qui peut également fonctionner avec une clé USB, mais c'est beaucoup plus dépendant du BIOS. Comme avec tous les trucs qui est tellement faible niveau, je ne prends aucune responsabilité pour les résultats de l'exécution de ce logiciel sur votre ordinateur.
Sur mon vieux AMD Athlon XP 1700+, j'obtiens 0x1e8596 comme un résultat de l'exécution de ce code, qui est égal à 2000278 CPU tiques. Que le CPU tourne à 1466MHz, c'est plus ou moins égal à environ 1,36 ms.
Pour mips Dhrystone, vous devez exécuter le Dhrystone suite pour obtenir le score, et de diviser le score en 1757.
en faisant cela, d'autres processus(comme les OS d'instruction,...) entraîne une augmentation de temps de fonctionnement.cette formule fonctionne lorsque le processeur ne faire que mes instructions pas d'autres instructions.Je veux que mes MIPS être très serré. Ensuite, vous aurez à exécuter votre code sans OS. Quel est le problème? oui,c'est une bonne idée...mais comment?merci beaucoup Voici quelques étapes rapides à exécuter sans un OS: 1. générer un binaire ELF, en commençant à l'offset de 1 mo (mode protégé). Utiliser un linker script pour la même chose. 2. Ajouter un multiboot exécutable en-tête. 3. S'assurer que vous avez votre simple mise en œuvre des fonctions de base de l'indice de référence telles que printf, pour imprimer les résultats, le cas échéant. Compiler et de les relier de façon statique dans votre exécutable.
Sinon, vous pouvez programmer l'indice de référence et l'exécuter (dans une console, sans beaucoup de course) ou à télécharger à l'indice de référence à partir de quelque part adn exécuter que.....
En ligne avec ce que tu voulais, voici quelques bootloader code qui s'exécute une sorte de repère qui peuvent être probablement utilisé pour mesurer le MIPS. Le principal objectif ici était de bas niveau, et je crois que c'est le niveau le plus bas auquel vous pouvez réellement programme avec le PC, sauf si vous êtes prêt à remplacer votre BIOS ou quelque chose.
De toute façon, c'est le code pour une image de disquette qui, lorsqu'il est démarré, vous essayez d'exécuter quatre instructions (deux
add
s, l'unesub
, et un saut conditionnel) un million de fois. Combien de fois les instructions sont exécutées est contrôlée par leITERS
macro. En soulevant ou en abaissant vous pouvez spécifier le nombre d'itérations est censé être fait.Temps est mesuré à l'aide de la
rdtsc
instruction, qui retourne le nombre de processeur tiques accomplis depuis sa mise sous tension, comme un nombre de 64 bits dans les registresedx
eteax
. Par calcul de la différence de cette valeur avant l'exécution de la boucle, et avant, nous obtenons le nombre de tiques que le processeur passé à l'exécution. Cette valeur est ensuite sortie à l'écran à l'aide du BIOS 10h appel comme une valeur hexadécimale. Le temps réel passé sur il est, évidemment, dépend du processeur de fréquence de l'horloge.Voici le code source. Si vous le compiler à l'aide de MSNA avec
-f bin
, vous obtiendrez l'image de la disquette qui devrait être écrit sur une disquette à l'aide de certains bloc brut programme d'écriture, par exempledd
. Puis, lors du démarrage, choisissez le lecteur de disquette comme le support d'amorçage. Tout ce qui peut également fonctionner avec une clé USB, mais c'est beaucoup plus dépendant du BIOS. Comme avec tous les trucs qui est tellement faible niveau, je ne prends aucune responsabilité pour les résultats de l'exécution de ce logiciel sur votre ordinateur.Sur mon vieux AMD Athlon XP 1700+, j'obtiens
0x1e8596
comme un résultat de l'exécution de ce code, qui est égal à 2000278 CPU tiques. Que le CPU tourne à 1466MHz, c'est plus ou moins égal à environ 1,36 ms.OriginalL'auteur Daniel Kamil Kozar
Voici un très brut moyen de le faire:
Trouvé la suite ici (en C, int+flottant)
https://llvm.org/viewvc/llvm-project/test-suite/trunk/SingleSource/Benchmarks/Dhrystone/?diff_format=h&sortby=date
Pour mips Dhrystone, vous devez exécuter le Dhrystone suite pour obtenir le score, et de diviser le score en 1757.
Ensuite, vous aurez à exécuter votre code sans OS. Quel est le problème?
oui,c'est une bonne idée...mais comment?merci beaucoup
Voici quelques étapes rapides à exécuter sans un OS: 1. générer un binaire ELF, en commençant à l'offset de 1 mo (mode protégé). Utiliser un linker script pour la même chose. 2. Ajouter un multiboot exécutable en-tête. 3. S'assurer que vous avez votre simple mise en œuvre des fonctions de base de l'indice de référence telles que printf, pour imprimer les résultats, le cas échéant. Compiler et de les relier de façon statique dans votre exécutable.
OriginalL'auteur Karthik Kumar Viswanathan
Il y a une liste de MIPS par processortype à un certain GHZ être trouvé sur
http://en.wikipedia.org/wiki/Instructions_per_second
Sinon, vous pouvez programmer l'indice de référence et l'exécuter (dans une console, sans beaucoup de course) ou à télécharger à l'indice de référence à partir de quelque part adn exécuter que.....
OriginalL'auteur IvoTops
Calcul de la mip peut être fait en sachant combien d'instructions de votre processeur execcute dans un cycle et votre vitesse de l'horloge.
MIPS = (vitesse d'horloge du Processeur * Num Instructions exécutées par cycle)/(10^6).
Par Exemple TI 6487 peut exécuter 8 32 bits instructions par cycle et la vitesse d'horloge de 1,2 GHz par cœur.
donc MIPS = ((1.2 * 10^9) * 8)/(10^6) = 9600 MIPS par cœur et cette DSP a 3 cœurs, de sorte que le total des MIPS de la DSP est 28800.
OriginalL'auteur rajez79