• 
    <ul id="o6k0g"></ul>
    <ul id="o6k0g"></ul>

    MIPS平臺數(shù)據(jù)訪問方法和裝置制造方法及圖紙

    技術(shù)編號:15540644 閱讀:144 留言:0更新日期:2017-06-05 10:25
    本發(fā)明專利技術(shù)提供一種MIPS平臺數(shù)據(jù)訪問方法和裝置,其中,MIPS平臺數(shù)據(jù)訪問方法包括:獲取編譯器中訪存宏指令的輸入?yún)?shù);根據(jù)所述輸入?yún)?shù)獲取所述待訪問數(shù)據(jù)的存儲屬性集;其中,所述存儲屬性集包括:數(shù)據(jù)類型和字節(jié)數(shù);若所述待訪問數(shù)據(jù)不對齊,則根據(jù)所述存儲屬性集選擇與所述存儲屬性集相對應(yīng)的MIPS指令,將所述待訪問數(shù)據(jù)從內(nèi)存中加載到寄存器中或者將所述待訪問數(shù)據(jù)從寄存器中存儲至內(nèi)存中。本發(fā)明專利技術(shù)提供的MIPS平臺數(shù)據(jù)訪問方法,當(dāng)數(shù)據(jù)不對齊時,通過數(shù)據(jù)的存儲屬性集選擇相應(yīng)的MIPS指令對數(shù)據(jù)進行訪問,避免了系統(tǒng)內(nèi)存的浪費,提高了程序的編譯效率和執(zhí)行效率。

    Data access method and device for MIPS platform

    The present invention provides a platform for MIPS data access method and device, wherein, the MIPS platform data access method comprises the following steps: acquiring visit input parameters in the compiler save macros; according to the input parameters to obtain the attribute to store access data set; among them, the memory is set includes: data type and number of bytes if the data to be accessed; not aligned according to the stored attribute set selection and the stored attribute set corresponding to the MIPS instruction, the access data from memory to be loaded into the registers or the access to data from the register to memory storage. The data access method of MIPS platform provided by the invention, when the data is not homogeneous, by storing attribute data set to access the data to select the corresponding MIPS command, to avoid the waste of memory system, improve the compiler and runtime efficiency.

    【技術(shù)實現(xiàn)步驟摘要】
    MIPS平臺數(shù)據(jù)訪問方法和裝置
    本專利技術(shù)涉及計算機數(shù)據(jù)訪問領(lǐng)域,尤其涉及一種無互鎖流水線級的微處理器(MillionInstructionsPerSecond,簡稱MIPS)平臺數(shù)據(jù)訪問方法和裝置。
    技術(shù)介紹
    在MIPS平臺下,對不同數(shù)據(jù)類型的數(shù)據(jù)進行訪問都有其相應(yīng)的訪問指令,例如:lh指令表示從內(nèi)存中加載一個雙字節(jié)整型對齊數(shù)據(jù)并符號擴展到整個寄存器中,lw指令表示從內(nèi)存中加載一個四字節(jié)整型對齊數(shù)據(jù)并符號擴展到整個寄存器中。其中,對齊數(shù)據(jù)是指數(shù)據(jù)在內(nèi)存中的起始地址能夠被數(shù)據(jù)的數(shù)據(jù)類型對應(yīng)的字節(jié)數(shù)整除,反之,不對齊數(shù)據(jù)是指數(shù)據(jù)在內(nèi)存中的起始地址不能夠被數(shù)據(jù)的數(shù)據(jù)類型對應(yīng)的字節(jié)數(shù)整除。通常情況下,數(shù)據(jù)在內(nèi)存中都是對齊的,但是,當(dāng)數(shù)據(jù)不對齊時,就可能出現(xiàn)使用錯誤的指令對不對齊數(shù)據(jù)進行訪問的情況,例如:錯誤的使用lw指令來加載雙字節(jié)對齊的整型數(shù)據(jù)。一旦使用了錯誤指令訪問了不對齊數(shù)據(jù),則,或者硬件拋出異常導(dǎo)致程序中斷執(zhí)行,或者交給操作系統(tǒng)處理,而操作系統(tǒng)在處理過程中由于涉及上下文切換必然大幅影響程序的執(zhí)行效率。在現(xiàn)有技術(shù)中,為了防止使用錯誤指令訪問不對齊數(shù)據(jù),常用的方法是:在編譯器中為數(shù)據(jù)增加編譯器屬性,編譯器根據(jù)編譯器屬性通過填充內(nèi)存等方式強制讓數(shù)據(jù)進行對齊,然后,使用與對齊數(shù)據(jù)相對應(yīng)的指令訪問已對齊的數(shù)據(jù)。具體實現(xiàn)方式如下,定義結(jié)構(gòu)體:#pragmapack(2)structtest_t{inta;charb;shortc;chard;}其中,a為四字節(jié)整型數(shù)據(jù),b、d為單字節(jié)字符型數(shù)據(jù),c為雙字節(jié)整型數(shù)據(jù)。由于結(jié)構(gòu)體聲明前增加了#pragmapack(2),即,編譯器會保證結(jié)構(gòu)體各成員二字節(jié)對齊,具體地,結(jié)構(gòu)體成員中字節(jié)數(shù)最大的為a,所以,編譯器保證a四字節(jié)對齊,b的起始地址等于a的起始地址加a的大小,所以b為二字節(jié)對齊,但是,c的起始地址等于b的起始地址加b的大小,由于b為單字節(jié),導(dǎo)致c不對齊,此時,編譯器會在c之前插入一個空白字節(jié)以保證c為二字節(jié)對齊,以此類推,從而保證了結(jié)構(gòu)體各成員均為二字節(jié)對齊。但是,在現(xiàn)有技術(shù)中,由于通過在內(nèi)存中插入空白字節(jié)使得數(shù)據(jù)強制對齊,使得內(nèi)存利用率嚴(yán)重下降,并且,改變數(shù)據(jù)的偏移地址可能導(dǎo)致整個系統(tǒng)錯誤的數(shù)據(jù)訪問,造成程序編譯效率和執(zhí)行效率嚴(yán)重下降。
    技術(shù)實現(xiàn)思路
    本專利技術(shù)提供了一種MIPS平臺數(shù)據(jù)訪問方法和裝置,當(dāng)數(shù)據(jù)不對齊時,避免了系統(tǒng)內(nèi)存的浪費,提高了程序的編譯效率和執(zhí)行效率。本專利技術(shù)提供的MIPS平臺數(shù)據(jù)訪問方法,包括:獲取編譯器中訪存宏指令的輸入?yún)?shù),所述訪存宏指令指示將待訪問數(shù)據(jù)從內(nèi)存中加載到寄存器中,或者將所述待訪問數(shù)據(jù)從寄存器中存儲至內(nèi)存中;根據(jù)所述輸入?yún)?shù)獲取所述待訪問數(shù)據(jù)的存儲屬性集;其中,所述存儲屬性集包括:數(shù)據(jù)類型和字節(jié)數(shù);若所述待訪問數(shù)據(jù)不對齊,則根據(jù)所述存儲屬性集選擇與所述存儲屬性集相對應(yīng)的MIPS指令,將所述待訪問數(shù)據(jù)從內(nèi)存中加載到寄存器中或者將所述待訪問數(shù)據(jù)從寄存器中存儲至內(nèi)存中。本專利技術(shù)提供的MIPS平臺數(shù)據(jù)訪問裝置,包括:第一獲取模塊,用于獲取編譯器中訪存宏指令的輸入?yún)?shù),所述訪存宏指令指示將待訪問數(shù)據(jù)從內(nèi)存中加載到寄存器中,或者將所述待訪問數(shù)據(jù)從寄存器中存儲至內(nèi)存中;第二獲取模塊,用于根據(jù)所述輸入?yún)?shù)獲取所述待訪問數(shù)據(jù)的存儲屬性集;其中,所述存儲屬性集包括:數(shù)據(jù)類型和字節(jié)數(shù);第一訪問模塊,用于若所述待訪問數(shù)據(jù)不對齊,則根據(jù)所述存儲屬性集選擇與所述存儲屬性集相對應(yīng)的MIPS指令,將所述待訪問數(shù)據(jù)從內(nèi)存中加載到寄存器中或者將所述待訪問數(shù)據(jù)從寄存器中存儲至內(nèi)存中。本專利技術(shù)提供了一種MIPS平臺數(shù)據(jù)訪問方法和裝置,其中,MIPS平臺數(shù)據(jù)訪問方法包括:獲取編譯器中訪存宏指令的輸入?yún)?shù);根據(jù)所述輸入?yún)?shù)獲取所述待訪問數(shù)據(jù)的存儲屬性集;其中,所述存儲屬性集包括:數(shù)據(jù)類型和字節(jié)數(shù);若所述待訪問數(shù)據(jù)不對齊,則根據(jù)所述存儲屬性集選擇與所述存儲屬性集相對應(yīng)的MIPS指令,將所述待訪問數(shù)據(jù)從內(nèi)存中加載到寄存器中或者將所述待訪問數(shù)據(jù)從寄存器中存儲至內(nèi)存中。本專利技術(shù)提供的MIPS平臺數(shù)據(jù)訪問方法,當(dāng)數(shù)據(jù)不對齊時,編譯器在進行代碼翻譯的過程中,直接調(diào)用與存儲屬性集相對應(yīng)的MIPS指令對待訪問數(shù)據(jù)進行訪問,不需要增加內(nèi)存開銷以及改變數(shù)據(jù)的偏移地址就可以完成數(shù)據(jù)不對齊時的數(shù)據(jù)訪問,避免了內(nèi)存浪費,提高了程序的編譯效率和執(zhí)行效率。附圖說明為了更清楚地說明本專利技術(shù)實施例或現(xiàn)有技術(shù)中的技術(shù)方案,下面將對實施例或現(xiàn)有技術(shù)描述中所需要使用的附圖作一簡單地介紹,顯而易見地,下面描述中的附圖是本專利技術(shù)的一些實施例,對于本領(lǐng)域普通技術(shù)人員來講,在不付出創(chuàng)造性勞動性的前提下,還可以根據(jù)這些附圖獲得其他的附圖。圖1為本專利技術(shù)實施例一提供的MIPS平臺數(shù)據(jù)訪問方法的流程圖;圖2為本專利技術(shù)實施例二提供的MIPS平臺數(shù)據(jù)訪問方法的流程圖;圖3為本專利技術(shù)實施例三提供的MIPS平臺數(shù)據(jù)訪問方法的流程圖;圖4為本專利技術(shù)實施例四提供的MIPS平臺數(shù)據(jù)訪問方法的流程圖;圖5為本專利技術(shù)實施例一提供的MIPS平臺數(shù)據(jù)訪問裝置的結(jié)構(gòu)示意圖;圖6為本專利技術(shù)實施例二提供的MIPS平臺數(shù)據(jù)訪問裝置的結(jié)構(gòu)示意圖。具體實施方式為使本專利技術(shù)實施例的目的、技術(shù)方案和優(yōu)點更加清楚,下面將結(jié)合本專利技術(shù)實施例中的附圖,對本專利技術(shù)實施例中的技術(shù)方案進行清楚、完整地描述,顯然,所描述的實施例是本專利技術(shù)一部分實施例,而不是全部的實施例。基于本專利技術(shù)中的實施例,本領(lǐng)域普通技術(shù)人員在沒有做出創(chuàng)造性勞動前提下所獲得的所有其他實施例,都屬于本專利技術(shù)保護的范圍。圖1為本專利技術(shù)實施例一提供的MIPS平臺數(shù)據(jù)訪問方法的流程圖,本實施例提供的MIPS平臺數(shù)據(jù)訪問方法,應(yīng)用于編譯器對程序代碼翻譯過程中的數(shù)據(jù)訪存。如圖1所示,本實施例提供的MIPS平臺數(shù)據(jù)訪問方法,可以包括:步驟101、獲取編譯器中訪存宏指令的輸入?yún)?shù)。其中,訪存宏指令用于指示將待訪問數(shù)據(jù)從內(nèi)存中加載到寄存器中,或者將待訪問數(shù)據(jù)從寄存器中存儲至內(nèi)存中。其中,本實施例對于編譯器中訪存宏指令的具體宏定義形式和包含的參數(shù)不加以限制。可選的,作為訪存宏指令的一種實現(xiàn)方式,訪存宏指令的輸入?yún)?shù)可以包括:第一寄存器、第二寄存器、第一整數(shù)常量和第二整數(shù)常量。其中,第一寄存器用于存儲待訪問數(shù)據(jù),第二寄存器用于存儲待訪問數(shù)據(jù)在內(nèi)存中的起始地址,第一整數(shù)常量用于指示待訪問數(shù)據(jù)的字節(jié)數(shù),第二整數(shù)常量用于指示待訪問數(shù)據(jù)在內(nèi)存中的偏移地址。相應(yīng)的,訪存宏指令用于指示將待訪問數(shù)據(jù)從第二寄存器和第二整數(shù)常量指示的內(nèi)存地址中加載到第一寄存器中,或者將待訪問數(shù)據(jù)從第一寄存器中存儲至第二寄存器和第二整數(shù)常量指示的內(nèi)存地址中。例如:訪存宏指令的宏定義形式為:loaddest,offset(src),size,(scratch)則在上述宏指令中,第一寄存器為dest、第二寄存器為src、第一整數(shù)常量為size、第二整數(shù)常量為offset,而scratch為訪存操作過程中可能用到的臨時寄存器。上述宏指令表示將src+offset指示的內(nèi)存中的數(shù)據(jù)加載到dest中。又例如:訪存宏指令的宏定義形式為:storesrc,offset(dest),size,(scratch)則在上述宏指令中,第一寄存器為src、第二寄存器為dest、第一整數(shù)常量為siz本文檔來自技高網(wǎng)
    ...
    MIPS平臺數(shù)據(jù)訪問方法和裝置

    【技術(shù)保護點】
    一種MIPS平臺數(shù)據(jù)訪問方法,其特征在于,包括:獲取編譯器中訪存宏指令的輸入?yún)?shù),所述訪存宏指令指示將待訪問數(shù)據(jù)從內(nèi)存中加載到寄存器中,或者將所述待訪問數(shù)據(jù)從寄存器中存儲至內(nèi)存中;根據(jù)所述輸入?yún)?shù)獲取所述待訪問數(shù)據(jù)的存儲屬性集;其中,所述存儲屬性集包括:數(shù)據(jù)類型和字節(jié)數(shù);若所述待訪問數(shù)據(jù)不對齊,則根據(jù)所述存儲屬性集選擇與所述存儲屬性集相對應(yīng)的MIPS指令,將所述待訪問數(shù)據(jù)從內(nèi)存中加載到寄存器中或者將所述待訪問數(shù)據(jù)從寄存器中存儲至內(nèi)存中。

    【技術(shù)特征摘要】
    1.一種MIPS平臺數(shù)據(jù)訪問方法,其特征在于,包括:獲取編譯器中訪存宏指令的輸入?yún)?shù),所述訪存宏指令指示將待訪問數(shù)據(jù)從內(nèi)存中加載到寄存器中,或者將所述待訪問數(shù)據(jù)從寄存器中存儲至內(nèi)存中;根據(jù)所述輸入?yún)?shù)獲取所述待訪問數(shù)據(jù)的存儲屬性集;其中,所述存儲屬性集包括:數(shù)據(jù)類型和字節(jié)數(shù);若所述待訪問數(shù)據(jù)不對齊,則根據(jù)所述存儲屬性集選擇與所述存儲屬性集相對應(yīng)的MIPS指令,將所述待訪問數(shù)據(jù)從內(nèi)存中加載到寄存器中或者將所述待訪問數(shù)據(jù)從寄存器中存儲至內(nèi)存中。2.根據(jù)權(quán)利要求1所述的方法,其特征在于,所述輸入?yún)?shù)包括:第一寄存器和第一整數(shù)常量,所述第一寄存器存儲待訪問數(shù)據(jù),所述第一整數(shù)常量指示待訪問數(shù)據(jù)的字節(jié)數(shù);所述根據(jù)所述輸入?yún)?shù)獲取所述待訪問數(shù)據(jù)的存儲屬性集,包括:根據(jù)所述第一寄存器的名稱獲得所述待訪問數(shù)據(jù)的數(shù)據(jù)類型;根據(jù)所述第一整數(shù)常量的取值獲得所述待訪問數(shù)據(jù)的字節(jié)數(shù)。3.根據(jù)權(quán)利要求1所述的方法,其特征在于,所述輸入?yún)?shù)包括:第一寄存器、第二寄存器、第一整數(shù)常量和第二整數(shù)常量;其中,所述第一寄存器存儲待訪問數(shù)據(jù),所述第二寄存器存儲待訪問數(shù)據(jù)在內(nèi)存中的起始地址,所述第一整數(shù)常量指示待訪問數(shù)據(jù)的字節(jié)數(shù),所述第二整數(shù)常量指示待訪問數(shù)據(jù)在內(nèi)存中的偏移地址;所述訪存宏指令指示將待訪問數(shù)據(jù)從內(nèi)存中加載到寄存器中,或者將所述待訪問數(shù)據(jù)從寄存器中存儲至內(nèi)存中,包括:所述訪存宏指令指示將所述待訪問數(shù)據(jù)從所述第二寄存器和所述第二整數(shù)常量指示的內(nèi)存地址中加載到所述第一寄存器中,或者將所述待訪問數(shù)據(jù)從所述第一寄存器中存儲至所述第二寄存器和所述第二整數(shù)常量指示的內(nèi)存地址中。4.根據(jù)權(quán)利要求1所述的方法,其特征在于,所述根據(jù)所述存儲屬性集選擇與所述存儲屬性集相對應(yīng)的MIPS指令,將所述待訪問數(shù)據(jù)從內(nèi)存中加載到寄存器中,包括:若所述存儲屬性集為整型和八字節(jié),則選擇uld指令將所述待訪問數(shù)據(jù)從內(nèi)存中加載到寄存器中;或者,若所述存儲屬性集為浮點型和八字節(jié),則根據(jù)預(yù)先獲取到的浮點寄存器運行模式將所述待訪問數(shù)據(jù)從內(nèi)存中加載到寄存器中。5.根據(jù)權(quán)利要求1所述的方法,其特征在于,所述存儲屬性集還包括擴展方式;所述根據(jù)所述存儲屬性集選擇與所述存儲屬性集相對應(yīng)的MIPS指令,將所述待訪問數(shù)據(jù)從內(nèi)存中加載到寄存器中,包括:若所述存儲屬性集為整型、雙字節(jié)和零擴展,則選擇ulhu指令將所述待訪問數(shù)據(jù)從內(nèi)存中加載到寄存器中;或者,若所述存儲屬性集為整型、雙字節(jié)和符號擴展,則選擇ulh指令將所述待訪問數(shù)據(jù)從內(nèi)存中加載到寄存器中;或者,若所述存儲屬性集為整型、四字節(jié)和零擴展,則選擇ulwu指令將所述待訪問數(shù)據(jù)從內(nèi)存中加載到寄存器中;或者,若所述存儲屬性集為整型、四字節(jié)和符號擴展,則選擇ulw指令將所述待訪問數(shù)據(jù)從內(nèi)存中加載到寄存器中。6.根據(jù)權(quán)利要求1所述的方法,其特征在于,所述根據(jù)所述存儲屬性集選擇與所述存儲屬性集相對應(yīng)的MIPS指令,將所述待訪問數(shù)據(jù)從寄存器中存儲至內(nèi)存中,包括:若所述存儲屬性集為整型和雙字節(jié),則選擇ush指令將所述待訪問數(shù)據(jù)從寄存器中存儲至內(nèi)存中;或者,若所述存儲屬性集為整型和四字節(jié),則選擇usw指令將所述待訪問數(shù)據(jù)從寄存器中存儲至內(nèi)存中;或者,若所述存儲屬性集為整型和八字節(jié),則選擇usd指令將所述待訪問數(shù)據(jù)從寄存器中存儲至內(nèi)存中;或者,若所述存儲屬性集為浮點型和八字節(jié),則根據(jù)預(yù)先獲取到的浮點寄存器運行模式將所述待訪問數(shù)據(jù)從寄存器中存儲至內(nèi)存中。7.根據(jù)權(quán)利要求1所述的方法,其特征在于,所述方法還包括:若所述待訪問數(shù)據(jù)對齊,則根據(jù)所述存儲屬性集選擇與所述存儲屬性集相對應(yīng)的MIPS指令,將所述待訪問數(shù)據(jù)從內(nèi)存中加載到寄存器中或者將所述待訪問數(shù)據(jù)從寄存器中存儲至內(nèi)存中。8.根據(jù)權(quán)利要求1至7任一所述的方法,其特征在于,編譯器中設(shè)置有訪存宏指令控制開關(guān);該方法還包括:設(shè)置所述...

    【專利技術(shù)屬性】
    技術(shù)研發(fā)人員:余銀黃文軍彭飛
    申請(專利權(quán))人:龍芯中科技術(shù)有限公司
    類型:發(fā)明
    國別省市:北京,11

    網(wǎng)友詢問留言 已有0條評論
    • 還沒有人留言評論。發(fā)表了對其他瀏覽者有用的留言會獲得科技券。

    1
    主站蜘蛛池模板: 久久久久亚洲av无码专区喷水| 亚洲综合无码精品一区二区三区| 久久亚洲AV无码精品色午夜麻豆 | 亚洲A∨无码无在线观看| 无码国产乱人伦偷精品视频| 久久亚洲中文字幕无码| 国产成人无码18禁午夜福利p| 亚洲日韩一区二区一无码| 极品粉嫩嫩模大尺度无码视频| 亚洲一区二区三区国产精品无码 | 成人麻豆日韩在无码视频| 国产成人无码区免费内射一片色欲 | 国产亚洲精品无码成人| 亚洲中文字幕久久精品无码A | 亚洲AV无码国产精品麻豆天美| 亚洲熟妇无码一区二区三区| 亚洲精品无码国产| 精品无码人妻久久久久久| 亚洲国产成人无码AV在线影院| 无码人妻丰满熟妇区五十路百度| 中文无码熟妇人妻AV在线| 无码喷水一区二区浪潮AV | 亚洲视频无码高清在线| 国产成人无码一区二区在线播放 | 无码人妻AⅤ一区二区三区| AV无码小缝喷白浆在线观看| 全免费a级毛片免费看无码| 岛国av无码免费无禁网站| 久久亚洲中文字幕无码| 无码人妻精品一二三区免费| 日韩av片无码一区二区不卡电影 | 内射精品无码中文字幕| 日韩AV无码精品人妻系列| 无码人妻少妇色欲AV一区二区| 野花在线无码视频在线播放 | 人妻丰满熟妇AV无码区| 亚洲AV无码国产剧情| 97无码免费人妻超级碰碰夜夜| 国产精品无码亚洲一区二区三区| 日韩成人无码一区二区三区| 秋霞鲁丝片无码av|