[發(fā)明專利]工具生成器無(wú)效
| 申請(qǐng)?zhí)枺?/td> | 201180065596.8 | 申請(qǐng)日: | 2011-09-20 |
| 公開(kāi)(公告)號(hào): | CN103329097A | 公開(kāi)(公告)日: | 2013-09-25 |
| 發(fā)明(設(shè)計(jì))人: | 瑟雷許·凱迪耶拉;馬達(dá)維·凱迪耶拉;桑杰·班奈杰;薩蒂許·帕德馬納班;詹姆斯·普雷爾 | 申請(qǐng)(專利權(quán))人: | 艾爾葛托奇普股份有限公司 |
| 主分類號(hào): | G06F9/44 | 分類號(hào): | G06F9/44 |
| 代理公司: | 北京林達(dá)劉知識(shí)產(chǎn)權(quán)代理事務(wù)所(普通合伙) 11277 | 代理人: | 劉新宇 |
| 地址: | 美國(guó)加利*** | 國(guó)省代碼: | 美國(guó);US |
| 權(quán)利要求書(shū): | 查看更多 | 說(shuō)明書(shū): | 查看更多 |
| 摘要: | |||
| 搜索關(guān)鍵詞: | 工具 生成器 | ||
技術(shù)領(lǐng)域
本發(fā)明涉及一種用于自動(dòng)生成針對(duì)定制集成電路(IC)或?qū)S眉呻娐?ASIC)的軟件開(kāi)發(fā)工具的方法。
背景技術(shù)
為了開(kāi)發(fā)處理器所用的軟件,需要一組軟件開(kāi)發(fā)工具。這些工具包括但不限于圖1所示的編譯器、匯編器、鏈接器、仿真器和剖析器。
編譯器采用如C/C++等那樣的高級(jí)語(yǔ)言,并且將該高級(jí)語(yǔ)言變換成例如x86、MIPS、ARM那樣的特定處理器的匯編語(yǔ)言。匯編器接收手寫的或編譯器所生成的匯編語(yǔ)言,并且產(chǎn)生對(duì)象文件。該對(duì)象文件包含特定處理器能理解的一系列二進(jìn)制指令。因而,匯編器將匯編代碼轉(zhuǎn)譯成如x86、MIPS、ARM等那樣的特定處理器能理解的二進(jìn)制形式。鏈接器采用匯編器所產(chǎn)生的一個(gè)或多個(gè)對(duì)象文件,通過(guò)對(duì)二進(jìn)制代碼進(jìn)行所有的再定位來(lái)使這些對(duì)象文件鏈接到一起,并且生成可執(zhí)行文件。
在開(kāi)發(fā)新處理器的過(guò)程中,由于該處理器不存在,因此通常開(kāi)發(fā)仿真器,其中該仿真器仿真設(shè)計(jì)中的處理器。該仿真器是針對(duì)開(kāi)發(fā)中的處理器的軟件模型。該模型可以在該處理器的功能等效物到該處理器的周期精確模型之間的范圍內(nèi)改變。采用該模型來(lái)開(kāi)發(fā)仿真器,并且該模型是設(shè)計(jì)中的處理器的忠實(shí)反映,因而是設(shè)計(jì)中的處理器完全專用的。該仿真器接收一個(gè)或多個(gè)可執(zhí)行程序(程序)及其相應(yīng)的數(shù)據(jù)矢量,并且執(zhí)行該程序,正如該仿真器正模仿的處理器那樣。該仿真器可選地能夠輸出其執(zhí)行追蹤,其中該執(zhí)行追蹤相當(dāng)于指令追蹤和數(shù)據(jù)追蹤這兩者。
軟件開(kāi)發(fā)工具包(SDK)始終包括用于調(diào)試用戶應(yīng)用程序的調(diào)試器。使用該調(diào)試器來(lái)調(diào)試用戶程序并且支持例如斷點(diǎn)、監(jiān)視點(diǎn)、單步執(zhí)行、堆棧回溯那樣的各種調(diào)試命令。
軟件開(kāi)發(fā)所需的所有這些軟件工具是處理器特有的,即在想要開(kāi)發(fā)針對(duì)例如IBM?PowerPC或SUN-SPARC的MIPS處理器的軟件的情況下,需要針對(duì)MIPS處理器開(kāi)發(fā)C編譯器、匯編器、鏈接器、仿真器和調(diào)試器。對(duì)于各處理器而言,開(kāi)發(fā)所有這些工具花費(fèi)若干人年(man?year)。
發(fā)明內(nèi)容
公開(kāi)了一種通過(guò)以下操作來(lái)自動(dòng)生成用于自動(dòng)生成的處理器架構(gòu)的軟件開(kāi)發(fā)工具的系統(tǒng)和方法:接收目標(biāo)處理器的描述;使用編譯器生成器來(lái)自動(dòng)生成目標(biāo)編譯器;使用匯編器生成器來(lái)自動(dòng)生成目標(biāo)匯編器;使用鏈接器生成器來(lái)自動(dòng)生成目標(biāo)鏈接器;使用仿真器生成器來(lái)自動(dòng)生成目標(biāo)仿真器;使用剖析器生成器來(lái)自動(dòng)生成目標(biāo)剖析器;使用所生成的目標(biāo)編譯器、目標(biāo)匯編器、目標(biāo)鏈接器、目標(biāo)仿真器和目標(biāo)剖析器,通過(guò)改變所述處理器架構(gòu)的一個(gè)或多個(gè)參數(shù)來(lái)迭代地生成新處理器架構(gòu)直到滿足所有的用戶制約或要求為止;針對(duì)各新處理器架構(gòu),再生成用于該新處理器架構(gòu)的目標(biāo)編譯器、目標(biāo)匯編器、目標(biāo)鏈接器、目標(biāo)仿真器和目標(biāo)剖析器;以及將最佳生成的處理器架構(gòu)綜合為定制集成電路的計(jì)算機(jī)可讀描述以用于半導(dǎo)體制造。
上述方面的實(shí)現(xiàn)可以包括以下中的一個(gè)或多個(gè)。編譯器生成器讀入考慮中的處理器的高層級(jí)描述。該編譯器生成器讀入處理器ISA中的各種指令的語(yǔ)義,構(gòu)建目標(biāo)處理器流水線和針對(duì)這些指令的注釋語(yǔ)義樹(shù)的模型,并且生成目標(biāo)處理器代碼生成所需的代碼、調(diào)用堆棧布局、寄存器分配、指令調(diào)度、分支預(yù)測(cè)、指令和數(shù)據(jù)預(yù)取、以及在該目標(biāo)處理器上可能的各種其它優(yōu)化。匯編器生成器讀入各種指令的句法、它們的二進(jìn)制編碼、以及需要應(yīng)用于各種指令的可能再定位。基于該信息,該匯編器生成器隨后生成匯編器。該匯編器生成器接收用于目標(biāo)處理器的指令列表以及它們的句法和有效操作數(shù)及范圍,并且構(gòu)建匯編器,以針對(duì)任何未解決的符號(hào),檢查指令的句法,并且按處理器規(guī)格對(duì)指令進(jìn)行編碼并輸出任何相關(guān)的再定位記錄。鏈接器生成器生成用于接收對(duì)象文件和庫(kù)的對(duì)象文件鏈接器,并且生成向?qū)ο蟠a應(yīng)用所有的再定位的可執(zhí)行文件。仿真器生成器讀入機(jī)器描述,其中在該機(jī)器描述中定義了流水線結(jié)構(gòu)、ISA、指令的語(yǔ)義以及各硬件塊的特性。基于該架構(gòu)的所有元素的定義,仿真器生成器生成處理器的包括高速緩存建模、存儲(chǔ)器模型和中斷模型的周期精確模型。該仿真器是由仿真器生成器自動(dòng)生成的,并且所生成的仿真器精確反映了實(shí)際硬件模型。剖析器生成器接收目標(biāo)機(jī)器寄存器的描述以及指令集等,并且生成針對(duì)目標(biāo)處理器的剖析器,其中該剖析器生成運(yùn)行在目標(biāo)機(jī)器上的應(yīng)用程序的靜態(tài)以及動(dòng)態(tài)執(zhí)行配置文件。調(diào)試器生成器接收目標(biāo)處理器的指令集的描述以及調(diào)用堆棧布局,并且生成目標(biāo)處理器專用的調(diào)試器。可以將如此生成的調(diào)試器與上述基于周期的仿真器或與實(shí)際硬件芯片相掛鉤。調(diào)用堆棧解譯、調(diào)用堆棧的解開(kāi)、指令的解匯編、目標(biāo)機(jī)器上的寄存器的數(shù)量和性質(zhì),這些全部是作為調(diào)試器生成器的一部分而自動(dòng)生成的。
該專利技術(shù)資料僅供研究查看技術(shù)是否侵權(quán)等信息,商用須獲得專利權(quán)人授權(quán)。該專利全部權(quán)利屬于艾爾葛托奇普股份有限公司,未經(jīng)艾爾葛托奇普股份有限公司許可,擅自商用是侵權(quán)行為。如果您想購(gòu)買此專利、獲得商業(yè)授權(quán)和技術(shù)合作,請(qǐng)聯(lián)系【客服】
本文鏈接:http://www.szxzyx.cn/pat/books/201180065596.8/2.html,轉(zhuǎn)載請(qǐng)聲明來(lái)源鉆瓜專利網(wǎng)。





