Suprafață tare și moale

Ca parte a multor procesoare moderne, există o unitate cu puncte în virgulă mobilă (FPU), o parte a procesorului pentru a efectua o gamă largă de operații matematice pe numere reale. Dacă specificați compilatorul în stadiul de compilare că programul în care programul va avea un FPU, programul îl poate folosi direct, ceea ce are un efect pozitiv asupra performanței. Aceasta se numește ansamblu sub Hard float. Există, de asemenea, procesoare care nu au un astfel de bloc, prin urmare, programele compilate folosind instrucțiunile FPU nu vor funcționa pe ele. Pentru ca programul să funcționeze pe orice procesor, indiferent de prezența FPU în ele, este necesar să împiedicăm compilatorul să utilizeze instrucțiunile FPU pentru a construi programul, chiar dacă există. Acest lucru reduce în mod serios viteza programului, dar face posibilă compilarea programului pentru o gamă mai largă de echipamente. Un astfel de ansamblu se numește soft: emulația completă a software-ului FPU (punctul plin de software plin). Cu toate acestea, dacă încercați să executați programul compilat sub soft pe procesor cu FPU, sistemul asamblat cu punctul moale va utiliza în continuare acest modul, totuși costurile pentru utilizarea indirectă a blocului sunt foarte semnificative. Pentru aplicația medie, acestea sunt de la 5 la 40%, iar în cazul în care aplicația utilizează în mod activ calcule în virgulă mobilă, atunci până la 200%!













Să rezumăm.În sistemul asamblat cu Hardfp, numai aplicațiile asamblate pentru a lucra pe procesoare cu FPU, dar repede. În sistemul asamblat cu Softfp, aplicațiile care sunt construite pentru a lucra pe orice procesor (soft) lucrează, indiferent de prezența FPU, dar mai lent. Aplicațiile construite cu Hardfp pe sistemul asamblat cu softfp nu funcționează.

Cum să distingi

readelf -a / usr / bin / ar







Articole similare

Trimiteți-le prietenilor: