在龍芯中科的官方網(wǎng)站上,現(xiàn)在已經(jīng)提供《龍芯架構(gòu)參考手冊(cè)(卷一:基礎(chǔ)架構(gòu))》和《龍芯架構(gòu)32位精簡(jiǎn)版參考手冊(cè)》的下載。在官網(wǎng)上點(diǎn)開“龍芯產(chǎn)品-下載中心”即可找到下載鏈接。
龍芯中科不是國(guó)內(nèi)第一家自主設(shè)計(jì)CPU指令集的,但龍芯中科是第一家公開提供指令集參考手冊(cè)下載的,這說明龍芯自主設(shè)計(jì)的指令集確實(shí)已經(jīng)通過了嚴(yán)苛的知識(shí)產(chǎn)權(quán)評(píng)估,不存在任何的侵權(quán)成分。無論是Intel的還是MIPS或ARM的指令集手冊(cè),無疑都是用英文編寫,這是我第一次見到CPU設(shè)計(jì)企業(yè)用中文編寫指令集手冊(cè),不管能不看懂,至少每個(gè)字都認(rèn)識(shí),特別有親切感。
雖然指令集手冊(cè)是用中文編寫的,但指令助記符肯定還是英文字母,中文編程的鼓吹者還請(qǐng)口下留德。畢竟英文字母只有26個(gè),對(duì)于任何人都沒有學(xué)習(xí)障礙,敲三四個(gè)字母表示一個(gè)指令,要比敲三四個(gè)漢字快速得多。指令助記符格式主要包括指令名和操作數(shù)兩部分,龍芯架構(gòu)對(duì)指令名和操作數(shù)的前、后綴進(jìn)行了統(tǒng)一考慮,以方便匯編編程人員和編譯器開發(fā)人員的使用。
龍芯架構(gòu)采用基礎(chǔ)部分(Loongson Base)加擴(kuò)展部分的組織形式,其擴(kuò)展部分包括:
二進(jìn)制翻譯擴(kuò)展(Loongson Binary Translation,簡(jiǎn)稱LBT);虛擬化擴(kuò)展(Loongson Virtualization,簡(jiǎn)稱LVA);向量擴(kuò)展(Loongson SIMD Extension,簡(jiǎn)稱LSX);高級(jí)向量擴(kuò)展(Loongson Advanced SIMD Extension,簡(jiǎn)稱LASX)。
當(dāng)前公開的只有“基礎(chǔ)架構(gòu)”部分,含32位(LA32)和64位(LA64)基礎(chǔ)指令說明。其向量擴(kuò)展、虛擬化和二進(jìn)制翻譯擴(kuò)展的手冊(cè)還需要再等待一段時(shí)間。同時(shí)公開的還有“32位精簡(jiǎn)版”,是對(duì)LA32的基礎(chǔ)部分的進(jìn)一步簡(jiǎn)化,目的是易于實(shí)現(xiàn),方便在教學(xué)和科研領(lǐng)域推廣使用。
我個(gè)人覺得龍芯架構(gòu)的存儲(chǔ)管理最有特色,與其它架構(gòu)不同的是,它提供了對(duì)內(nèi)存虛實(shí)地址映射的翻譯,提高了以二進(jìn)制翻譯方式運(yùn)行其它架構(gòu)的應(yīng)用程序時(shí),從虛擬地址轉(zhuǎn)換到物理地址的效率,也就是與原生架構(gòu)有相近的內(nèi)存訪問效率。QEMU等純軟件的二進(jìn)制翻譯,把進(jìn)程的虛擬地址映射到物理地址至少需要十幾條指令進(jìn)行計(jì)算,LoongArch的LBT則只需要2條指令,由于訪問內(nèi)存本身就需要數(shù)十個(gè)CPU周期,因此可以認(rèn)為使用LBT時(shí)只會(huì)降低幾十分之一的內(nèi)存訪問效率。
暫時(shí)就寫到這里,我得去詳細(xì)看看這本指令集手冊(cè)了,畢竟里面沒有不認(rèn)識(shí)的字,看的時(shí)候不需要翻譯軟件和詞典的輔助,大幅度地提高了閱讀效率!!!