[發(fā)明專利]代碼處理方法和代碼處理系統(tǒng)有效
| 申請(qǐng)?zhí)枺?/td> | 201280048815.6 | 申請(qǐng)日: | 2012-10-01 |
| 公開(公告)號(hào): | CN103858101B | 公開(公告)日: | 2016-10-26 |
| 發(fā)明(設(shè)計(jì))人: | R.J.布萊尼;M.K.格施溫德;J.L.麥金尼斯;S.J.芒羅;M.邁斯納 | 申請(qǐng)(專利權(quán))人: | 國(guó)際商業(yè)機(jī)器公司 |
| 主分類號(hào): | G06F9/45 | 分類號(hào): | G06F9/45 |
| 代理公司: | 北京市柳沈律師事務(wù)所 11105 | 代理人: | 黃劍飛 |
| 地址: | 美國(guó)紐*** | 國(guó)省代碼: | 美國(guó);US |
| 權(quán)利要求書: | 查看更多 | 說明書: | 查看更多 |
| 摘要: | |||
| 搜索關(guān)鍵詞: | 代碼 處理 方法 系統(tǒng) | ||
技術(shù)領(lǐng)域
本發(fā)明涉及計(jì)算機(jī)系統(tǒng),并且尤其涉及采用解碼時(shí)間指令優(yōu)化連接用于增強(qiáng)應(yīng)用二進(jìn)制接口(ABI)的被編譯代碼。
背景技術(shù)
在計(jì)算機(jī)軟件中,應(yīng)用二進(jìn)制接口(ABI)描述應(yīng)用程序和操作系統(tǒng)之間或應(yīng)用程序和另一應(yīng)用之間的低級(jí)接口。ABI涉及諸如數(shù)據(jù)類型、大小以及對(duì)齊(alignment)的明細(xì)(details);控制如何傳遞函數(shù)變量以及如何搜索返回值的調(diào)用規(guī)則;系統(tǒng)調(diào)用號(hào)以及應(yīng)用應(yīng)如何使得系統(tǒng)調(diào)用操作系統(tǒng);以及在完整操作系統(tǒng)ABI的情況下涉及目標(biāo)文件的二進(jìn)制格式、程序庫(kù)等等。如果存在必要的共享庫(kù)以及滿足相似的前提,幾種ABI(例如,容許在用于Intel?x86架構(gòu)的各種Unix和Linux變化形式上運(yùn)行的廣泛程序的交互式UnixABI)容許來自支持該ABI的一個(gè)操作系統(tǒng)的應(yīng)用程序在不修改的情況下運(yùn)行在任意其他這種系統(tǒng)上。
通常應(yīng)用程序的程序開發(fā)周期包括寫源代碼、將源代碼編譯成目標(biāo)文件、構(gòu)建共享庫(kù)以及將目標(biāo)文件鏈接到主可執(zhí)行程序。在特定硬件平臺(tái)上執(zhí)行該應(yīng)用之前,還要進(jìn)行額外準(zhǔn)備,包括加載主可執(zhí)行程序以及加載用于應(yīng)用啟動(dòng)的共享庫(kù)。
編譯器在某時(shí)對(duì)單一源文件(編譯單位)進(jìn)行工作以便生成目標(biāo)文件。編譯器生成目標(biāo)代碼而不知道該代碼/數(shù)據(jù)的最終地址或位移。具體而言,編譯器生成在不知道TOC的最終大小或各種數(shù)據(jù)段的偏移/地址的情況下將為了變量值訪問TOC的目標(biāo)代碼。用于這種信息的占位符被留在該目標(biāo)代碼中并由連接器更新。TOC是變量地址參考表,其例如在AIX環(huán)境中被利用來以支持共享庫(kù)和數(shù)據(jù)位置獨(dú)立的方式存取程序變量。被稱之為全局偏移量表(GOT)的類似結(jié)構(gòu)在LINUX環(huán)境中執(zhí)行類似功能(例如,對(duì)變量的間接和動(dòng)態(tài)可再定位存取)。TOC和GOT之間的差別在于TOC可以包含實(shí)際數(shù)據(jù),而GOT僅僅包含數(shù)據(jù)的地址(指針)。在Power?Pc64-比特環(huán)境中,TOC含有GOT部分加小數(shù)據(jù)變量。
連接器將目標(biāo)文件匯集(collect)成可執(zhí)行程序/共享對(duì)象并為代碼/數(shù)據(jù)賦予偏移。連接器在程序開發(fā)期間解析內(nèi)部引用并且外部引用在加載時(shí)間被解析。連接器匯集來自目標(biāo)文件的TOC輸入項(xiàng)(entry)、賦予TOC偏移以及生成TOC段。連接器知曉TOC的最終尺寸但是不對(duì)編譯器生成的TOC存取代碼序列執(zhí)行主編輯(major?edit)。連接器知曉具體內(nèi)部引用TOC輸入項(xiàng)的偏移但是不知曉用于大部分外部引用TOC輸入項(xiàng)的最終解析值。該外部引用TOC輸入項(xiàng)由加載器/動(dòng)態(tài)連接器解析。
IBM于2010年7月23日發(fā)布的并且通過引用被整體包含在本說明書中的“Power?ISATMVersion2.06Revision?B”教導(dǎo)了一種示例性精簡(jiǎn)指令集計(jì)算機(jī)(RISC)指令集架構(gòu)(ISA)。在此將使用所述Power?ISA來解釋例示實(shí)施例,不過,本發(fā)明并不限于Power?ISA或RISC架構(gòu)。本領(lǐng)域技術(shù)人員將容易理解到本發(fā)明能用于各種架構(gòu)。
IBM的并且通過引用被整體包含在本說明書中的“z/Architecture?Principles?of?Operation”SA22-7832-08,第9版(2010年8月)教導(dǎo)了一種示例CISC(復(fù)雜指令集計(jì)算機(jī))指令集架構(gòu)。
IBM的并且通過引用被整體包含在本說明書中的“64-bit?PowerPC?ELF?Application?Binary?Interface?Supplement1.9”(2004)描述了PowerPC可連接執(zhí)行格式(ELF)ABI的64-比特補(bǔ)碼(supplement)。
power.org的并且通過引用被整體包含在本說明書中的“Power?Architecture32-bit?Application?Binary?Interface?Supplement1.0Linux”(2011年4月19日)以及“Power?Architecture32-bit?Application?Binary?Interface?Supplement1.0-Embedded”(2011年4月19日)描述了32-比特ABI。
發(fā)明內(nèi)容
該專利技術(shù)資料僅供研究查看技術(shù)是否侵權(quán)等信息,商用須獲得專利權(quán)人授權(quán)。該專利全部權(quán)利屬于國(guó)際商業(yè)機(jī)器公司,未經(jīng)國(guó)際商業(yè)機(jī)器公司許可,擅自商用是侵權(quán)行為。如果您想購(gòu)買此專利、獲得商業(yè)授權(quán)和技術(shù)合作,請(qǐng)聯(lián)系【客服】
本文鏈接:http://www.szxzyx.cn/pat/books/201280048815.6/2.html,轉(zhuǎn)載請(qǐng)聲明來源鉆瓜專利網(wǎng)。
- 遙控器代碼格式結(jié)構(gòu)及其收發(fā)信方法及裝置
- 在虛擬機(jī)中驗(yàn)證代碼模塊的方法及裝置
- 一種用于代碼的管理方法及裝置
- 虛擬代碼提供系統(tǒng)、生成裝置、驗(yàn)證裝置、提供方法
- 一種自動(dòng)化代碼質(zhì)量檢查方法及系統(tǒng)
- 代碼掃描方法、裝置、計(jì)算設(shè)備及計(jì)算機(jī)存儲(chǔ)介質(zhì)
- 用于更新代碼的方法和裝置
- 前端代碼打包方法、裝置、電子設(shè)備及存儲(chǔ)介質(zhì)
- 一種代碼審查服務(wù)同步方法、裝置及計(jì)算機(jī)設(shè)備
- 一種高效智能源代碼安全管理平臺(tái)
- 一種數(shù)據(jù)庫(kù)讀寫分離的方法和裝置
- 一種手機(jī)動(dòng)漫人物及背景創(chuàng)作方法
- 一種通訊綜合測(cè)試終端的測(cè)試方法
- 一種服裝用人體測(cè)量基準(zhǔn)點(diǎn)的獲取方法
- 系統(tǒng)升級(jí)方法及裝置
- 用于虛擬和接口方法調(diào)用的裝置和方法
- 線程狀態(tài)監(jiān)控方法、裝置、計(jì)算機(jī)設(shè)備和存儲(chǔ)介質(zhì)
- 一種JAVA智能卡及其虛擬機(jī)組件優(yōu)化方法
- 檢測(cè)程序中方法耗時(shí)的方法、裝置及存儲(chǔ)介質(zhì)
- 函數(shù)的執(zhí)行方法、裝置、設(shè)備及存儲(chǔ)介質(zhì)





