Met alle respect hoor, maar bij welke opleiding heb jij dan computer architectuur gevolgd, want dáár wil ik dan dus nooit terecht komen.
Ik wilde eigenlijk geen woorden meer aan deze thread vuil maken, maar jij blijft op de man spelen en dus zal ik even moeten reageren door elk punt dat je probeert te maken tot de grond toe af te branden.
je kan het niet apart zien. smt is een soort ooo execution op grotere schaal. (das dan wel heel grof gezegd).
Nee, het heeft niks met OOO te maken, het is hooguit Multiple Issue op grote schaal, maar dat is niet onlosmakelijk aan OOO verbonden.
ooo zou zoals je weet ook met goede compiler bouw software matig opgelost kunnen worden.
Zoals jij blijkbaar niet weet kan een compiler in principe geen OOO overnemen. Teneerste heb je het runtime aspect waar een compiler met wat profiling maar gedeeltelijk rekening kan houden. Veel belangrijker is (dit punt gaat aantonen dat jij totaal geen verstand van zaken hebt) is het feit dat een compiler naar een instructie set optimaliseert en niet naar een specifieke implementatie daarvan. Om OOO te kunnen heb je hele specifieke informatie nodig over de architectuur van de proc waar de code op wordt uitgevoerd, b.v. het aantal en de aard van de issue sloten, dit is informatie die een compiler niet heeft of geen gebruik van maakt omdat het nadelig zou zijn voor de performance op andere systemen. Wat een compiler hooguit kan doen is instructies iets anders ordenen in de hoop dat een proc hier gebruik van kan maken, maar dat kan nooooit op tegen hardwired OOO die is toegespits op één specifieke proc. Daarnaast, als een compiler de code anders gaat schedulen om die taak van de proc over te nemen spreek je per definitie natuurlijk niet meer van OOO omdat de proc alle (weliswaar anders dan normaal geschedulde) instructies dan gewoon In Order uitvoert.
Het zou zelfs na de compilerbouw kunnen worden aangepast. een goed voorbeeld is jvm en natuurlijk de codemorphing van de C3.
Je bewering was al fout, dus je kunt er geen goede voorbeelden van geven. Overigens mag jij mij uitleggen wat jvm en codemorphing met OOO te maken heeft.
de ooo execution word toch helemaal software matig gedaan op de c3. smt zou ook softwarematig gedaan kunnen worden.
Je praat hier over een heel ander niveau van software. Er zijn inderdaad procs die je als het ware kunt herprogrammeren, en dat zou je software kunnen noemen. In de huidige context denk ik dat met software het OS en aanverwante zaken moet worden bedoelt. Als je b.v. een audio filter op een FPGA programmeerd, noem je het resulterende IC dan hardware of software (ga nu aub niet software zeggen, please....)
alles kan in software gedaan worden.
Hangt zoals ik al zei van je definitie van software af. Het kan als je software bedoelt die de functionaliteit van een chip beïnvloed/specificeerd, niet met software die van een chip gebruikmaakt.
in principe zit veel software op de processor geintegreerd. veel instructies zijn te doen met veel basischere functies (het principe van risc)
Ik neem aan dat je hier naar een microcode rom refereerd? Zo'n rom kun je idd software noemen ja, maar niet in de gebruikelijke context. Leuk dat je weer met een verwijzing naar RISC laat zien hoe weinig je er eigenlijk van weet. Microcode is typisch iets CISCs, in veel implementaties van een CISC ISA worden ingewikkelde instructies intern vertaald naar eenvoudigere instructies, maar deze eenvoudigere instructieset kun je geen volwaardige RISC ISA noemen.
overigens hoeft smt niet eens sneller te zijn. er zijn genoeg voorbeelden te bedenken waarin smt juist langzamer is dan geen smt. zowel in dual als in single proc opstelling.
Zulke voorbeelden zul je altijd houden ja, maar in theorie is SMT een techniek die tegen weinig extra kosten (hardware) een interesante performance winst kan opleveren, door performance die anders verloren zou gaan beter uit te buiten. Er een single/dual aspect bijhalen is je zoveelste irrelevante opmerking.
je zal gerust computerarchitectuur gedaan hebben maar een processor moet je als geheel zien. en je meot je niet blindstaren op afzonderlijke componenten.
Het component waar ik me zogenaamd op blindstaar is toevallig wel het onderwerp van deze discussie. Daarnaast is SMT een techniek die vrij goed te isoleren is en toepasbaar is op zeer uiteenlopende processor architecturen, zowel RISC als CISC, maar ook VLIW en SIMD.
Fijn met je gediscuseerd te hebben.