<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>
關(guān) 閉

新聞中心

EEPW首頁(yè) > 工控自動(dòng)化 > 設計應用 > 處理器種群及種群設計錯誤詳解

處理器種群及種群設計錯誤詳解

作者: 時(shí)間:2012-03-07 來(lái)源:網(wǎng)絡(luò ) 收藏

在那個(gè)年代所采用的一種主要方法就是實(shí)現針對HLL的,就是把一個(gè)中間ISA裁剪為一種HLL,然后,采用或開(kāi)發(fā)類(lèi)似的硬件以通過(guò)微編程來(lái)仿效經(jīng)定義的ISA。在上世紀50年代,微碼首次被劍橋大學(xué)在EDSAC項目中由Maurice Wilkes實(shí)現,人們最初開(kāi)發(fā)它是為計算機控制邏輯而開(kāi)發(fā)一種更為簡(jiǎn)單的方法1。微碼由實(shí)現中間ISA的基本指 令序列組成。它或者由一些簡(jiǎn)化的中間語(yǔ)言進(jìn)行編譯,或者以匯編形式進(jìn)行手工編寫(xiě)。微匯編程序然后把匯編代碼轉換為可執行代碼,這些可執行代碼然后被存儲在 片上本地存儲器或快速訪(fǎng)問(wèn)、低延遲存儲器上。在上世紀70年代和80年代,設計工程師把微碼存儲在由分立存儲器芯片或存儲器模塊實(shí)現的外部存儲器上。在當 今的IC集成水平上,處理器微碼幾乎總是存儲在片上RAM或ROM之上。

本文引用地址:http://dyxdggzs.com/article/202380.htm

微碼盡管曾經(jīng)獲得了普及應用,但是,本質(zhì)上已經(jīng)從現代的處理器設計消失了,因為片上可用硬件快速增加、硬件成本的關(guān)聯(lián)下降以及廣泛的采用邏輯綜合來(lái)進(jìn)行芯片設計。所有這些發(fā)展使得ISA的直接硬件實(shí)現更加容易并且更加在經(jīng)濟上有吸引力。

贊成采用微碼的案例

微碼提供的若干優(yōu)點(diǎn):

middot;目標碼在一個(gè)家族之內與其它處理器兼容或與以前一代的處理器兼容;

—以各種價(jià)格-性能特性能夠創(chuàng )建一個(gè)家族的待構建的處理器。在該家族中的高端處理器實(shí)現中間ISA更為直接或者甚至通過(guò)多功能單元而加速它,以開(kāi)發(fā)指令級并行化(ILP)。在該家族中的低端處理器把中間ISA映射至更為有限的硬件上,從而使得程序的執行更慢但是也成本更低

—在一個(gè)處理器家族中,能夠在多個(gè)處理器上 把經(jīng)編寫(xiě)的編譯器用于中間ISA。從中間ISA至較低端機器的實(shí)際指令組的映射—具體包括在微碼中—可以獨立的層編寫(xiě),并可能避免采用編譯器,或者至少需 要非常簡(jiǎn)單的編譯器。進(jìn)一步說(shuō),這樣的映射可能很少采用,因為中間ISA不會(huì )暴露給用戶(hù),并且不必按照HLL可能演化的那種方式演化。一些語(yǔ)言編譯器目前 采用中間語(yǔ)言形式(例如Pascal的P代碼或Java的虛擬機)以及一個(gè)兩步—或通過(guò)解釋或兩步編譯—的過(guò)程以產(chǎn)生最終的可執行代碼;這個(gè)過(guò)程可以簡(jiǎn)化 對接并也能夠支持針對同一ISA的多個(gè)語(yǔ)言—即使不涉及微碼。

·通過(guò)采用多個(gè)ISA和多個(gè)微碼組,由微碼編寫(xiě)的處理器能夠在運行時(shí)間上動(dòng)態(tài)地適應不同的HLL,從而能夠針對以不同的語(yǔ)言編寫(xiě)的程序實(shí)現更好的執行性能。

·對于依賴(lài)于解釋器的各種語(yǔ)言,對適當的中間ISA的形式開(kāi)發(fā)以及把那個(gè)中間ISA的微碼映射至目標ISA,能夠通過(guò)把它們的開(kāi)發(fā)分為更加簡(jiǎn)單 的兩級(對于工程設計來(lái)說(shuō)是一流的劃分和征服方法)而加快語(yǔ)言的可用性。如上所述,這可能對于在RISC上實(shí)現多語(yǔ)言支持也是一個(gè)策略,或者,對于把一個(gè) 語(yǔ)言對接至多個(gè)處理器也是一個(gè)策略。

·正如上面所討論的,通過(guò)把實(shí)現一個(gè)語(yǔ)言編譯器的過(guò)程分為兩級,就有可能為一種新的目標機提供語(yǔ)言支持,較之于編寫(xiě)特殊的目標編譯器更加快。

·利用一個(gè)中間ISA指令而不是兩個(gè)或兩個(gè)以上的目標ISA指令,代碼長(cháng)度可以被減少。此外,通過(guò)從主存儲器減少指令抓取的數量可能改善性能。在這種情形下,中間ISA可能較之于固有的機器RISC ISA而創(chuàng )建一種CISC。

·對ISA僅僅部分支持而不是全部支持,可能簡(jiǎn)化一種語(yǔ)言不常用部分的編譯器的編寫(xiě)。對于支持ISA的新型處理器的硬件設計也可能在復雜性、設計努力以及項目風(fēng)險上被減少,因此,采用經(jīng)過(guò)很好測試的微碼實(shí)現的執行來(lái)實(shí)現某些功能,可能較之于直接硬件實(shí)現來(lái)說(shuō)是更好的替代方法。

·這一技術(shù)如果利用更多的現代處理技術(shù)的優(yōu)點(diǎn)可能會(huì )更好且時(shí)鐘速率更快,以提供對較老機器以及在更新的處理器上的指令集—對較老的ISA的一種虛擬化—的后向兼容性。下一步就是在軟件上完全執行這個(gè)轉換,而完全不涉及任何微碼,這就需要各種技術(shù)改善以提供所需要的性能。這樣的改善可能包括較高頻率、邏輯、可能的多核以及更多的嵌入式存儲器。

反對采用微碼的案例

微碼還具有若干缺點(diǎn):

·與具有較為簡(jiǎn)單的ISA的機器相比,低端中間ISA機器的性能常常非常差,因為中間ISA機器的分層常常證明并不是最優(yōu)化地使用計算資源。

·與針對真實(shí)的目標機器能夠實(shí)現的根本簡(jiǎn)單的ISA的編譯器相比,在中間ISA上生成代碼的編譯器無(wú)法做到同一程度的最優(yōu)化。對編譯的最優(yōu)化只能在兩個(gè)獨立的層面上完成。瞄準一個(gè)家族中直接實(shí)現中間ISA的高端處理器的HLL編譯器無(wú)法為該家族中的低端處理器進(jìn)行最優(yōu)化,除非為它們做特別的修改,這樣會(huì )打消它們的一些優(yōu)點(diǎn)。

·為了滿(mǎn)足若干不同的語(yǔ)言的要求,一種針對若干不同ISA的機器可能結合不穩定的設計折中,從而為所有的目標語(yǔ)言提供差的性能。

·微碼編譯器、翻譯器或生成器(把固定的中間ISA翻譯為根本的目標、簡(jiǎn)單的ISA)可能極度簡(jiǎn)單或者難以適應,因為它并不打算頻繁地運行。此外,微碼可能難以改變,特別是如果被存儲在ROM之中的話(huà)(當然一些機器在片上RAM存儲的部分微碼允許改變)。

中間ISA概念的一些領(lǐng)先的支持者把它們具體表達在Burroughs處理器中 (如上所述),但是,在文獻中可以發(fā)現許多其它的努力,由多年來(lái)構建的許多不同的微可編程計算機的可用性來(lái)支持。Carlson2討論的一種微編程 Fortran計算機代表了Fortran語(yǔ)言的接近直接實(shí)現,并且僅僅需要一個(gè)簡(jiǎn)單的翻譯器,此外,他還討論了一種微編程的EULER處理器(EULER是Algol 60的變種)。Hassitt、Lageschulte和Lyon3討論的APL機器就采用了微編程。

在上世紀80年代,Flynn4調查了許多架構方法,其中,包括微碼概念,并試圖定義直接執行HLL的理想的語(yǔ)言機器。Moulton5研究了 支持HLL編譯和執行的微編程及其的一般設計。在用微編程支持的許多其它HLL當中(見(jiàn)前一節更多的討論)有LISP6和Prolog7??赡苷f(shuō)明這一概 念的最早代表就是Burroughs機器的B1700/1800系列,它支持面向Cobol、Fortran和RPG8的中間ISA。最近,我們已經(jīng)看到 這一方法的元素被用于解釋方法之中,如具有P代碼的Pascal和具有其虛擬機的Java;盡管具有足夠的動(dòng)機來(lái)改善性能并且經(jīng)過(guò)足夠的時(shí)間,但是,這些 語(yǔ)言的固有編譯器仍然會(huì )出現。在任何情況下,這些方法可能不必要采用在現代處理器上的微碼。

過(guò)去殘留下來(lái)的概念

你可能會(huì )推想,上世紀80年代VLSI的出現已經(jīng)縮減了微編程。的確,行業(yè)標準微處理器ISA的出現,那些ISA的多個(gè)世代的實(shí)現,以及利用現代IC制造工藝可用純晶體管數的增加,似乎已經(jīng)減少了微碼方法的應用。然而,這一技術(shù)的幾個(gè)發(fā)育不全的殘跡已經(jīng)在最近幾年浮出表面。例如,在上世紀80年代末,Unisys推出了所謂的單芯片A系列主機處理器(SCAMP)9,其中結合的相對低端的RISC處理器類(lèi)似于該公司在小型、低端的A3和A4主機上采用的處理器,它里面采用的幾百K微碼就是沿用從上世紀50年代以來(lái)在最初的B5000出現時(shí)所采用的Burroughs E-model指令集。SCAMP被用于Micro-A計算機,在此,SCAMP芯片利用許多微碼ROM芯片被匯編至2英寸×2英寸的多芯片模塊之中。

這一方法的另一個(gè)有趣的遺跡以及這一問(wèn)題的一個(gè)反例就是在從AMD K610開(kāi)始的、現在的奔騰級處理器之中發(fā)現的問(wèn)題。在這些處理器中,以前x86處理器世代的CISC指令利用RISC指令集實(shí)現。處理器的指令解碼單元把CISC指令分解為RISC操作,然后,匯編并把這些更為簡(jiǎn)單的操作按組流出至處理器的并行執行單元。它并不是嚴格的微碼,但是,它在一定程度上明顯從微碼而來(lái)。

這種設計方法還減輕了為更新的處理器創(chuàng )建新的CISC指令。它創(chuàng )建了一種混合CISC/RISC架構。顯然,微架構/微碼機器仍然具有一定的作用和位置,它隨著(zhù)半導體技術(shù)和處理器架構的不斷演化而興衰?;蛟S,這一蜥蜴類(lèi)家族樹(shù)的遺跡將在當今更為敏捷的哺乳類(lèi)機器上延續下去。

盡管依然存在一些中間ISA的殘留應用,如上所述,微碼已經(jīng)證明在進(jìn)化上走入了死胡同,因為它不如直接用硬件高效地執行一個(gè)ISA。一旦硬件電路豐富,微碼的硬件效率就會(huì )由它的執行低效而超越。在當今的處理器設計中,讓大量比較簡(jiǎn)單的機器通過(guò)微碼仿效更為復雜的機器顯然應用不廣泛,盡管存在偶然的例外。新的編程語(yǔ)言常常最初通過(guò)比較簡(jiǎn)單的中間表示法進(jìn)行解釋?zhuān)?,如果該語(yǔ)言普及并且如果性能成問(wèn)題,那么,不可避免地會(huì )出現針對“裸金屬”處理器的有效的編譯器,因此,仍然需要采用微編程。



關(guān)鍵詞: 處理器 詳解

評論


相關(guān)推薦

技術(shù)專(zhuān)區

關(guān)閉
国产精品自在自线亚洲|国产精品无圣光一区二区|国产日产欧洲无码视频|久久久一本精品99久久K精品66|欧美人与动牲交片免费播放
<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>