正文

指令集體系結(jié)構(gòu)(6)

大話處理器 作者:萬木楊


 

3.4.3  ARM、MIPS之戰(zhàn)

由于ARM公司和MIPS公司的商業(yè)模式相同,因此它們也經(jīng)常被人們拿來作對比。很長一段時間內(nèi),在處理器本身的技術(shù)路線上,MIPS要強(qiáng)于ARM,但是在商業(yè)上,ARM要更強(qiáng)一些。

設(shè)計ARM的原始想法完全來自于MIPS研究小組發(fā)表的論文,兩位優(yōu)秀并敏感的英國工程師Sophie Wilson和Steve Furber看到論文后專門跑到美國去參觀實習(xí)了一把,回去后就說服老板開始設(shè)計ARM1。ARM十幾年磕磕碰碰走來,從ARM1一直做到現(xiàn)在的Cortex,其中有幾個系列取得了巨大的商業(yè)成功:ARM7、ARM9、ARM11和Cortex。

一直到2000年前后,ARM和MIPS兩個公司在業(yè)務(wù)規(guī)模上還是基本旗鼓相當(dāng)?shù)?,差距出現(xiàn)在之后的IT泡沫破滅,MIPS的地盤在電信和網(wǎng)絡(luò)市場,受到了慘重的打擊。而手機(jī)日漸成為普通消費(fèi)品,因此ARM的市場風(fēng)生水起,從此這兩家公司的差距增大。

人們買東西都會有一個特點(diǎn):喜歡去人多的地方買。越擁擠,就會覺得店子越好,就越要擠進(jìn)去。股市也有類似的一句話,叫:追漲殺跌。ARM這幾年過的是越來越好,而MIPS的發(fā)展則相差甚遠(yuǎn)。

現(xiàn)在MIPS和ARM的市場定位有大量的重合,它們之間的競爭將會更加激烈。

3.5  匯編語言格式——沒有規(guī)矩不成方圓

我對上帝說西班牙語,

對女人說意大利語,

對男人說法語,

對我的馬說德語。  

——查理五世,法國國王

有這樣一個笑話:中國留學(xué)生在國外的高速公路出車禍了,連人帶車翻下懸崖,交警趕到后向下喊話:“How are you?”留學(xué)生回答:“I’m fine, thank you.”然后交警就走了,留學(xué)生于是死了。

由此可見,語言是很重要的,程序員學(xué)習(xí)處理器的語言也是很重要的,一來可以更了解處理器,二來在某些領(lǐng)域,如從事破解的,都需要知道一些匯編知識。、

3.5.1  機(jī)器字長

機(jī)器字長表示處理器一次處理數(shù)據(jù)的長度,主要由運(yùn)算器、寄存器決定,如32位處理器,每個寄存器能存儲32bit數(shù)據(jù),加法器支持兩個32bit數(shù)進(jìn)行相加。

x86指令集的鼻祖是1978年出的16位處理器8086,現(xiàn)在Intel的處理器都是32位/64位的了,但是仍然能兼容傳統(tǒng)的16位匯編進(jìn)行編程。

32位處理器的地址總線通常都是32位,可尋址范圍是4Gbyte,地址總線越寬,可尋址范圍越大。通常數(shù)據(jù)總線的帶寬都要高于機(jī)器字長,32位處理器很多都采用64bit、128bit的數(shù)據(jù)帶寬,這樣可以一次讀取更多的數(shù)據(jù)。

目前嵌入式處理器大都以32位為主,而服務(wù)器和PC已經(jīng)進(jìn)入了64位時代。最早將x86擴(kuò)展到64位的并不是大哥Intel,而是小弟AMD。2003年,AMD 推出 Opteron(皓龍),這是第一款含 x86-64 技術(shù)的處理器。AMD x86-64完美的兼容性和不錯的性能贏得了一片喝彩,Intel立即意識到了問題的嚴(yán)重性,并迅速推出了自己的64位架構(gòu)——EM64T,總算是扳回了一局。

3.5.2  操作數(shù)個數(shù)

x86處理器由于設(shè)計時間很早,那個時候晶體管緊張,寄存器數(shù)目較少,因此指令集在設(shè)計時,只使用了兩個寄存器:

ADD  BX,  AX;源和目的操作數(shù)共用一個寄存器。

Intel后來擴(kuò)充了一些SSE指令,有些SSE指令也使用3個操作數(shù),1個源操作數(shù),1個目的操作數(shù),還有1個操作數(shù)作為mask(掩碼)使用。

后來的RISC指令集,基本運(yùn)算都使用了3個操作數(shù),2個源操作數(shù),1個目的操作數(shù):

ADD  A1,  A2,  A3

3.5.3  操作數(shù)順序

在x86處理器中,目的操作數(shù)放在前面,在C6000 DSP中,目的操作數(shù)放在最后。

x86指令格式:ADD  BX,  AX;表示將BX和AX的值相加,結(jié)果放到BX中。

C6000 DSP指令格式:ADD  A1,  A2,  A3;表示將A1和A2的值相加,結(jié)果放到A3中。

MIPS指令集也是3個操作數(shù),不過和C6000 DSP不同的是:目的操作數(shù)是第一個操作數(shù)。


上一章目錄下一章

Copyright ? 讀書網(wǎng) ranfinancial.com 2005-2020, All Rights Reserved.
鄂ICP備15019699號 鄂公網(wǎng)安備 42010302001612號