我想知道如何知道我的处理器使用哪个指令集;我正在运行Linux。
我还想了解处理器如何处理许多指令集。
当我输入.PRECIOUS: %.s
时,我得到:
cat /proc/cpuinfo
我也看到很多旗帜:model name : AMD FX(tm)-6350 Six Core Processor
,fpu
,vme
,......
答案 0 :(得分:3)
我也看到很多标志:fpu,vme,mmxext,...
这是你的答案:标志行告诉你处理器支持的指令集功能。请参阅Unix.SE上的this question。
我还想了解处理器如何处理许多指令集。
x86指令集数十年来有机增长,主要由两家公司Intel和AMD推动。当然,英特尔只对增加与之前的指令集没有冲突的功能感兴趣,并且AMD有很强的经济利益与英特尔兼容。
我只知道AMD能够更改英特尔支持的指令集的一个案例,即英特尔复制AMD64 instruction set,首先调用EM64T,然后调用英特尔64指令集。
将此与英特尔的其他64位处理器Itanium进行对比,后者与传统的16位和32位版本的x86指令集完全不兼容,因此与AMD64 /不兼容Intel 64指令集。为了实现不同的目标,它被故意设计为不同的。 AMD的替代Itanium特意与传统的Intel x86指令集兼容,这在某些方面使实现变得复杂并降低了潜在的性能。如果您的目的是为了实现大众市场的成功,那么与数十年的遗留软件兼容,最好是设计一些全新的东西,如果要求所有旧软件都必须重建或抛出,那就更好了进行。
兼容性并不是CPU设计的全部和最终目标,否则Transmeta,Cyrix和VIA会取得更大的成功。但是,软件兼容性也是ARM Chromebooks和ARM Windows RT PC无法击败其基于英特尔的竞争对手的原因之一,尽管它们具有许多优势。 (成本更低,电池寿命更长等)。