亚洲成年人黄色一级片,日本香港三级亚洲三级,黄色成人小视频,国产青草视频,国产一区二区久久精品,91在线免费公开视频,成年轻人网站色直接看

一種cpu的硬件優(yōu)化方法

文檔序號(hào):6513640閱讀:198來源:國(guó)知局
一種cpu的硬件優(yōu)化方法
【專利摘要】一種CPU的硬件優(yōu)化方法,包括下列步驟:(1)設(shè)計(jì)系統(tǒng)的硬件:所述的系統(tǒng)包括:總控制器、存儲(chǔ)控制器、外部總線接口等模塊;(2)設(shè)定burst區(qū)域:通過burst地址編輯器,可以簡(jiǎn)單的設(shè)定內(nèi)存中的burst區(qū)和不可burst區(qū);(3)使用burst模式:當(dāng)數(shù)據(jù)長(zhǎng)度大于32位時(shí),即可啟用burst模式。其優(yōu)點(diǎn)是:和X86指令集完全兼容,burst讀寫區(qū)完全可配置,對(duì)數(shù)據(jù)讀寫進(jìn)行分段優(yōu)化;對(duì)硬件設(shè)計(jì)而言,不增加外圍電路,CPU邏輯門增加數(shù)極少,對(duì)系統(tǒng)成本沒有影響;大大縮短了指令的執(zhí)行時(shí)間,減少了CPU的總線訪問次數(shù);可推廣到其它CISC或RISC指令集的CPU設(shè)計(jì)中,應(yīng)用范圍大。
【專利說明】—種CPU的硬件優(yōu)化方法
【技術(shù)領(lǐng)域】
[0001]本發(fā)明涉及處理器的硬件設(shè)計(jì)領(lǐng)域,尤其涉及CPU (中央處理器)數(shù)據(jù)傳輸?shù)挠?件優(yōu)化設(shè)計(jì)。
【背景技術(shù)】
[0002]數(shù)據(jù)傳輸部件一直是CPU的重要組成部分,對(duì)它的優(yōu)化工作一直是處理器設(shè)計(jì)中 性能優(yōu)化的重點(diǎn)之一。國(guó)內(nèi)處理器設(shè)計(jì)中對(duì)數(shù)據(jù)傳輸部件設(shè)計(jì)的優(yōu)化主要通過提高Cache (高速緩存器)執(zhí)行效率、解決讀寫相關(guān)、增加DMAC (直接內(nèi)存訪問控制器)部件等方式來進(jìn) 行,對(duì)數(shù)據(jù)傳輸指令的執(zhí)行流程的優(yōu)化極少提及。以32位X86指令集的數(shù)據(jù)傳輸指令為 例,執(zhí)行流程全部是按照傳統(tǒng)的逐一傳輸?shù)姆绞?,將byte (字節(jié)),word (字)或double word (雙字)一個(gè)個(gè)順序從源地址傳到目的地址。這類指令會(huì)大量占據(jù)總線,造成CPU流水線的 停頓和總線帶寬負(fù)載的增加。
[0003]以32位X86指令為例,圖一和圖二分別是存儲(chǔ)器到存儲(chǔ)器數(shù)據(jù)傳輸?shù)牡湫椭噶?REP MOVS (串傳輸指令)和存儲(chǔ)器到寄存器傳輸?shù)牡湫椭噶頟OPA (出棧指令)的流程圖。對(duì) 于REP MOVS而言,假設(shè)ECX值為100,則此指令需要重復(fù)一百次步驟1-步驟5才能完成。 可以看出這類指令執(zhí)行效率低下,對(duì)總線帶寬負(fù)載較高。
[0004]本智力成果通過對(duì)X86指令集的數(shù)據(jù)傳輸指令進(jìn)行詳細(xì)分析,提出了針對(duì)其中的 連續(xù)數(shù)據(jù)傳輸指令進(jìn)行硬件優(yōu)化的方法,減少數(shù)據(jù)傳輸指令的執(zhí)行周期和CPU對(duì)總線訪問 (特別是寫訪問)的次數(shù),有效提高了 CPU的指令執(zhí)行速度。

【發(fā)明內(nèi)容】

[0005]本發(fā)明在于提供一種數(shù)據(jù)傳輸指令的硬件優(yōu)化方法,旨在提高數(shù)據(jù)傳輸指令的執(zhí) 行效率,進(jìn)而提升處理器的性能。其地址參數(shù)設(shè)定簡(jiǎn)單,可以僅在系統(tǒng)初始化(例如BIOS設(shè) 定)時(shí)設(shè)定一次,也可以根據(jù)客戶需要在系統(tǒng)執(zhí)行過程中更改參數(shù)設(shè)定;性能提高明顯,優(yōu) 化后的數(shù)據(jù)傳輸指令通常有一倍以上的效率提升。
[0006]本發(fā)明一種CPU的硬件優(yōu)化方法,包括:
(I)、設(shè)計(jì)系統(tǒng)的硬件:系統(tǒng)由總控制器、存儲(chǔ)控制器、外部總線接口等模塊構(gòu)成:其 中,總控制器為系統(tǒng)的主體部分,是能夠針對(duì)不同訪存地址執(zhí)行不同方式的存儲(chǔ)操作的 CPU,具體來說,這種CPU能夠通過BIOS程序或者設(shè)置內(nèi)部寄存器值的方式來設(shè)定可burst 地址區(qū),對(duì)于可burst區(qū)訪存按優(yōu)化后的指令方案執(zhí)行,不可burst區(qū)按原指令方案執(zhí)行, 存儲(chǔ)控制器通過接收總控制器數(shù)據(jù)信息和控制信息,對(duì)存儲(chǔ)器進(jìn)行讀寫操作,能夠支持 burst讀寫和非burst讀寫。外部總線接口則用于CPU內(nèi)部和外部的數(shù)據(jù)通信。硬件優(yōu)化后 的信息包括:數(shù)據(jù)傳輸?shù)脑吹刂沸畔?、目的地址信息、?shù)據(jù)長(zhǎng)度信息、控制信息、數(shù)據(jù)信息。
[0007](2)、設(shè)定burst區(qū)域。通過burst地址編輯器,可以簡(jiǎn)單的設(shè)定內(nèi)存中的burst 區(qū)和不可burst區(qū)??蒪urst區(qū)和不可burst區(qū)是根據(jù)用戶的內(nèi)存分配方式?jīng)Q定的可配置 區(qū)域??蒪urst區(qū)和不可burst區(qū)并不要求完全連續(xù),系統(tǒng)的內(nèi)存地址可以分配為多個(gè)可burst區(qū)和多個(gè)不可burst區(qū)。是否采用burst模式可以通過硬件和軟件兩種方式配置。外 部可以通過單個(gè)開關(guān)開啟或關(guān)閉burst模式,內(nèi)部可以通過設(shè)置特定寄存器值決定是否開 啟burst模式。除了使用burst編輯器以外,用戶還可以通過特定程序設(shè)定可burst區(qū)。通 常在系統(tǒng)初始化時(shí)通過BIOS設(shè)定一次即可,也可以根據(jù)需要在程序運(yùn)行時(shí)重新設(shè)定burst 區(qū)。執(zhí)行的數(shù)據(jù)傳輸指令的源地址、目的地址處于burst區(qū)域中時(shí),啟用優(yōu)化的指令方案。
[0008](3)、使用burst模式。當(dāng)數(shù)據(jù)長(zhǎng)度大于32位時(shí),即可啟用burst模式。Burst模 式不依賴于是否開啟cache功能,最多可支持一條cache行大小的數(shù)據(jù)的內(nèi)存讀寫。一次 burst最多支持一條cache行大小的數(shù)據(jù)這一要求并非固定的,在本智力成果中之所以選 擇一個(gè)cache行的大小作為最大值,是方便開cache模式下和cache模塊進(jìn)行數(shù)據(jù)交換, burst實(shí)際可取最大字節(jié)數(shù)并無硬性要求。當(dāng)CPU的內(nèi)部和外部進(jìn)行數(shù)據(jù)傳輸時(shí),讀取內(nèi)存 時(shí),可以一次將一條cache行的數(shù)據(jù)讀到數(shù)據(jù)傳輸單元的burst寄存器中,然后進(jìn)行寄存器 賦值等操作;寫入內(nèi)存時(shí),首先將需要寫入的數(shù)據(jù)暫存在數(shù)據(jù)傳輸單元的burst寄存器中, 然后一次性地寫入內(nèi)存。開啟cache功能對(duì)burst讀寫功能有很大的幫助,能夠有效提高 CPU執(zhí)行效率。
[0009]通過burst讀寫減少了 CPU總線訪問的次數(shù),傳統(tǒng)的指令執(zhí)行流程被縮短,對(duì)特定 指令(如REP M0VSB)優(yōu)化后指令流程可減少至傳統(tǒng)流程的1/16 (依cache行所含字節(jié)數(shù)而 定)。
[0010]這種優(yōu)化方法不僅限于X86結(jié)構(gòu)的指令集中,其它CISC或者RISC指令集也可適 用。以RISC指令集為例,應(yīng)用的非常廣泛的ARM指令中有一個(gè)指令為L(zhǎng)DMIA,可以完成多個(gè) 寄存器值的傳送,最多可傳送16個(gè)通用寄存器的值。ARM的做法是逐一執(zhí)行加載/存儲(chǔ)操 作后,存儲(chǔ)單元地址按字長(zhǎng)度增加。若使用本專利中的burst讀寫和賦值方式,可以一次性 將寄存器的值全部讀出再一次性全部賦值給16個(gè)通用寄存器,性能的提升是顯而易見的。
[0011]本發(fā)明一種CPU的硬件優(yōu)化方法的優(yōu)點(diǎn)是:和X86指令集完全兼容,操作系統(tǒng)和應(yīng) 用軟件無需任何改動(dòng);
本發(fā)明的burst讀寫區(qū)完全可配置,用戶可根據(jù)自己的需要?jiǎng)澐謆urst讀寫區(qū),對(duì)數(shù)據(jù) 讀寫進(jìn)行分段優(yōu)化;
對(duì)硬件設(shè)計(jì)而言,不增加外圍電路,CPU邏輯門增加數(shù)極少,對(duì)系統(tǒng)成本沒有影響;
進(jìn)一步,通過對(duì)數(shù)據(jù)傳輸指令進(jìn)行深入分析,本智力成果對(duì)X86的部分?jǐn)?shù)據(jù)傳輸指令 的執(zhí)行流程進(jìn)行了優(yōu)化,大大縮短了指令的執(zhí)行時(shí)間,減少了 CPU的總線訪問次數(shù),對(duì)于特 定指令(如REP MOVSB指令)總線訪問次數(shù)可減少至1/16 (依cache行所含字節(jié)數(shù)而定)。 由于總線訪問更集中,所以總線的帶寬負(fù)載也有很大的降低;
可推廣到其它CISC或RISC指令集的CPU設(shè)計(jì)中,應(yīng)用范圍大。
[0012]【專利附圖】

【附圖說明】:
圖1為存儲(chǔ)器到存儲(chǔ)器數(shù)據(jù)傳輸?shù)牡湫椭噶頡EP MOVS傳統(tǒng)執(zhí)行流程圖。
[0013]圖2為存儲(chǔ)器到寄存器傳輸?shù)牡湫椭噶頟OPA傳統(tǒng)執(zhí)行流程圖。
[0014]圖3為數(shù)據(jù)傳輸指令優(yōu)化前后通用執(zhí)行流程對(duì)比圖。
[0015]圖4為REP MOVS指令優(yōu)化后的執(zhí)行流程圖。
[0016]圖5為POPA指令優(yōu)化后的執(zhí)行流程圖。
[0017]【具體實(shí)施方式】:椐圖1?圖5所示,一種CPU的硬件優(yōu)化方法,其步驟如下:
1.通過burst地址編輯器配置burst區(qū)域
對(duì)CPU中某兩個(gè)通用寄存器進(jìn)行賦值,使其值對(duì)應(yīng)burst區(qū)域的下地址和上地址。再 對(duì)EFLAG的某一保留位進(jìn)行置一操作,將這兩個(gè)地址賦值到CPU的burst配置寄存器組中, 再對(duì)EFLAG的該保留位執(zhí)行置零操作,以便進(jìn)行下一次burst區(qū)域配置。多次重復(fù)此步驟 以配置多個(gè)burst區(qū)域。
[0018]2.通過硬件優(yōu)化加速內(nèi)存到內(nèi)存的傳輸指令
以REP MOVS指令為例,首先通過硬件判斷DS =ESI和ES =EDI的地址是否均處于burst 區(qū)域中。若處于burst區(qū)域,執(zhí)行優(yōu)化邏輯,否則執(zhí)行原邏輯。優(yōu)化邏輯中,判斷ECX值是 否大于burst_num(根據(jù)操作數(shù)大小M的區(qū)別,burst_num可以為4,8,16等),若大于操作數(shù) 大小,貝1J從DS:ESI通過一次read burst取出N個(gè)字節(jié)(N代表cache行字節(jié)數(shù))的數(shù)據(jù)暫 存在內(nèi)部burst寄存器中,然后通過一次write burst寫入ES:EDI,并將ESI/ EDI減去或 加上(加或是減取決于DF的值)N,將ECX減去burst_num ;若小于burst_num,則從DS:ESI 通過一次read burst取出(ECX*M)個(gè)字節(jié)的數(shù)據(jù)暫存在內(nèi)部burst寄存器中,然后通過一 次write burst寫入ES:EDI,并將ESI/ EDI減去或加上ECX*M,并將ECX置O。
[0019]3.通過硬件優(yōu)化加速寄存器到內(nèi)存的傳輸指令
以P0PA/PUSHA指令為例,先判斷SS:ESP是否處于burst區(qū)域中。若處于burst區(qū)域, 執(zhí)行優(yōu)化邏輯,否則執(zhí)行原邏輯。優(yōu)化邏輯中,對(duì)于POPA:將N個(gè)字節(jié)的堆棧數(shù)據(jù)讀出并 暫存在內(nèi)部burst寄存器中,依次賦值給D1、S1、BP等CPU的通用寄存器。對(duì)于PUSHA:將 D1、S1、BP等CPU的通用寄存器的值組合賦值給內(nèi)部burst寄存器,然后一次性通過write burst寫出。
[0020]除了上述實(shí)施例外,還可以在其它類型數(shù)據(jù)傳輸技術(shù)中用上本發(fā)明的方法寫出多 個(gè)實(shí)施例,在此不一一贅述。
【權(quán)利要求】
1.一種CPU的硬件優(yōu)化方法,其特征在于:包括下列步驟:(1)設(shè)計(jì)系統(tǒng)的硬件:所述的系統(tǒng)包括:總控制器、存儲(chǔ)控制器、外部總線接口等模塊;(2)設(shè)定burst區(qū)域:通過burst地址編輯器,可以簡(jiǎn)單的設(shè)定內(nèi)存中的burst區(qū)和不 可burst區(qū);(3)使用burst模式:當(dāng)數(shù)據(jù)長(zhǎng)度大于32位時(shí),即可啟用burst模式,Burst模式不依 賴于是否開啟cache功能,最多可支持一條cache行大小的數(shù)據(jù)的內(nèi)存讀寫;一次burst最 多支持一條cache行大小的數(shù)據(jù)這一要求并非固定的,之所以選擇一個(gè)cache行的大小作 為最大值,是方便開cache模式下和cache模塊進(jìn)行數(shù)據(jù)交換,burst實(shí)際可取最大字節(jié)數(shù) 并無硬性要求。
2.根椐權(quán)利要求1所述的一種CPU的硬件優(yōu)化方法,其特征在于:系統(tǒng)包括:總控制 器、存儲(chǔ)控制器、外部總線接口模塊;其中,總控制器為系統(tǒng)的主體部分,是能夠針對(duì)不同訪 存地址執(zhí)行不同方式的存儲(chǔ)操作的CPU,具體來說,這種CPU能夠通過BIOS程序或者設(shè)置 內(nèi)部寄存器值的方式來設(shè)定可burst地址區(qū),對(duì)于可burst區(qū)訪存按優(yōu)化后的指令方案執(zhí) 行,不可burst區(qū)按原指令方案執(zhí)行,存儲(chǔ)控制器通過接收總控制器數(shù)據(jù)信息和控制信息, 對(duì)存儲(chǔ)器進(jìn)行讀寫操作,能夠支持burst讀寫和非burst讀寫;外部總線接口則用于CPU內(nèi) 部和外部的數(shù)據(jù)通信;硬件優(yōu)化后的信息包括:數(shù)據(jù)傳輸?shù)脑吹刂沸畔ⅰ⒛康牡刂沸畔?、?shù)據(jù)長(zhǎng)度信息、控制 信息、數(shù)據(jù)信息。
3.根椐權(quán)利要求1所述的一種CPU的硬件優(yōu)化方法,其特征在于:所述的設(shè)定burst區(qū) 域是通過burst地址編輯器,可以簡(jiǎn)單的設(shè)定內(nèi)存中的burst區(qū)和不可burst區(qū);可burst 區(qū)和不可burst區(qū)是根據(jù)用戶的內(nèi)存分配方式?jīng)Q定的可配置區(qū)域,可burst區(qū)和不可burst 區(qū)并不要求完全連續(xù),系統(tǒng)的內(nèi)存地址可以分配為多個(gè)可burst區(qū)和多個(gè)不可burst區(qū);是 否采用burst模式可以通過硬件和軟件兩種方式配置;外部可以通過單個(gè)開關(guān)開啟或關(guān)閉 burst模式,內(nèi)部可以通過設(shè)置特定寄存器值決定是否開啟burst模式;除了使用burst編 輯器以外,用戶還可以通過設(shè)定內(nèi)部寄存器值來設(shè)定可burst區(qū);通常在系統(tǒng)初始化時(shí)通 過BIOS設(shè)定一次即可,也可以根據(jù)需要在程序運(yùn)行時(shí)重新設(shè)定burst區(qū);執(zhí)行的數(shù)據(jù)傳輸 指令的源地址、目的地址處于burst區(qū)域中時(shí),啟用優(yōu)化的指令方案。
4.根椐權(quán)利要求1所述的一種CPU的硬件優(yōu)化方法,其特征在于:所述的使用burst 模式是當(dāng)數(shù)據(jù)長(zhǎng)度大于32位時(shí),即可啟用burst模式;Burst模式不依賴于是否開啟cache 功能,最多可支持一條cache行大小的數(shù)據(jù)的內(nèi)存讀寫;一次burst最多支持一條cache行 大小的數(shù)據(jù)這一要求并非固定的,在本智力成果中之所以選擇一個(gè)cache行的大小作為最 大值,是方便開cache模式下和cache模塊進(jìn)行數(shù)據(jù)交換,burst實(shí)際可取最大字節(jié)數(shù)并無 硬性要求;當(dāng)CPU的內(nèi)部和外部進(jìn)行數(shù)據(jù)傳輸時(shí),讀取內(nèi)存時(shí),可以一次將一條cache行的 數(shù)據(jù)讀到數(shù)據(jù)傳輸單元的burst寄存器中,然后進(jìn)行寄存器賦值等操作;寫入內(nèi)存時(shí),首先 將需要寫入的數(shù)據(jù)暫存在數(shù)據(jù)傳輸單元的burst寄存器中,然后一次性地寫入內(nèi)存。
【文檔編號(hào)】G06F9/445GK103500107SQ201310450768
【公開日】2014年1月8日 申請(qǐng)日期:2013年9月29日 優(yōu)先權(quán)日:2013年9月29日
【發(fā)明者】朱鐘琦, 曾田, 阮航, 王煒 申請(qǐng)人:中國(guó)船舶重工集團(tuán)公司第七0九研究所
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評(píng)論。精彩留言會(huì)獲得點(diǎn)贊!
1