System.ArgumentOutOfRangeException: 索引和長度必須引用該字符串內的位置。 參數名: length 在 System.String.Substring(Int32 startIndex, Int32 length) 在 zhuanliShow.Bind() 中文字幕AV中文字无码亚,亚洲毛片av日韩av无码,精品高潮呻吟99av无码视频
  • 
    <ul id="o6k0g"></ul>
    <ul id="o6k0g"></ul>

    能夠快速處理內存拷貝指令的CPU及其方法技術

    技術編號:42690074 閱讀:20 留言:0更新日期:2024-09-10 12:39
    本發明專利技術公開了一種能夠快速處理內存拷貝指令的CPU及其方法,包括:指令譯碼器、通用寄存器、內存拷貝控制器、總線接口、緩沖器、加法器及比較器,內存拷貝控制器包含狀態機,所述狀態機包括空閑狀態、讀狀態、寫狀態,在空閑狀態下,等待接收有效的內存拷貝指令;在讀狀態下,通過總線接口讀取源地址的數據并將數據暫存至緩沖器中;在寫狀態下,通過總線接口將緩沖器中暫存的數據寫至目標地址處,加法器用于更新地址,比較器用于判斷拷貝結束。本發明專利技術能夠最大化利用存儲器帶寬,大幅提高內存拷貝效率,支持任意對齊方式,支持中斷打斷,降低取指功耗,結構簡單。

    【技術實現步驟摘要】

    本專利技術屬于計算機,尤其涉及一種能夠快速處理內存拷貝指令的cpu及其方法。


    技術介紹

    1、內存拷貝(memcpy)是一種簡單而多樣的操作,一般分為軟件方法和硬件方法兩種實現方式。

    2、軟件方式:有很多種代碼可以實現,但是均需要運行一個循環體程序,需重復取指令,功耗更大;同時總體拷貝性能受到指令總線latency的影響;cpu的分支指令預測失敗,會在流水線中引入氣泡,降低執行效率;需要在源地址對齊字節數、目標地址對齊字節數及cpu寄存器寬度中選取最小的值作為單次拷貝最大字節數(n),對于任意地址的內存拷貝,其延遲波動較大;由于單次拷貝受限于cpu寄存器的最大寬度,無法最大化利用存儲器帶寬,導致內存拷貝效率較低。

    3、硬件方式:依賴dma實現,但是dma普遍不支持源/目標地址任意對齊的方式;此外,軟件需等待上次dma完成才可以進行下次dma操作,無法在中斷/線程切換等場景中實現dma掛起,此外,dma屬于非標準類硬件資源,各設計廠商設計的dma使用方式、寄存器地址各不相同,需要保證兼容性的應用程序往往都采用軟件方式進行內存拷貝,例如操作系統、協議棧、系統庫等。


    技術實現思路

    1、專利技術目的:為了解決現有技術中內存拷貝效率低的問題,本專利技術提供一種能夠快速處理內存拷貝指令的cpu及其方法。

    2、技術方案:一種能夠快速處理內存拷貝指令的cpu,包括:

    3、指令譯碼器,輸入端輸入cpu指令,輸出端連接通用寄存器的讀端口及內存拷貝控制器,用于譯碼有效的內存拷貝指令,有效的內存拷貝指令包括源地址寄存器標號、目標地址寄存器標號及拷貝結束信息寄存器標號;

    4、通用寄存器,連接內存拷貝控制器,用于存儲源地址、目標地址、拷貝結束信息;

    5、內存拷貝控制器,包含狀態機,所述狀態機包括空閑狀態、讀狀態、寫狀態,在空閑狀態下,等待接收有效的內存拷貝指令;在讀狀態下,控制總線接口讀取源地址的數據并將數據暫存至緩沖器中;在寫狀態下,控制總線接口將緩沖器中暫存的數據寫至目標地址處;

    6、總線接口,連接內存拷貝控制器及緩沖器,且外接外部存儲器;

    7、緩沖器,連接內存拷貝控制器;

    8、加法器,輸入端連接通用寄存器的讀端口及內存拷貝控制器,輸出端連接通用寄存器的寫端口,用于更新源地址、目標地址;

    9、比較器,輸入端連接通用寄存器的讀端口,輸出端連接內存拷貝控制器,用于根據拷貝結束信息判斷拷貝是否完成。

    10、進一步地,緩沖器空間為m*2n字節,其中m為正整數,2n為總線接口寬度。

    11、進一步地,所述拷貝結束信息為源地址的結束地址、目標地址的結束地址、拷貝總長度中的一種或多種。

    12、進一步地,所述狀態機、加法器、總線接口均有一個;占用通用寄存器一個寫端口,用于分時寫入更新后的源地址或目標地址;占用兩個通用寄存器的讀端口,第一讀端口用于讀取拷貝結束信息,第二讀端口用于分時讀取當前的源地址和目標地址;還包括第一選擇器,第一選擇器的兩個輸入端分別輸入源地址寄存器標號、目標地址寄存器標號,控制端連接內存拷貝控制器,輸出端連接通用寄存器的第二讀端口和寫端口;在讀狀態下,第一選擇器輸出源地址寄存器標號;在寫狀態下,第一選擇器輸出目標地址寄存器標號。

    13、進一步地,所述狀態機、加法器、總線接口均有兩個,包括用于讀操作的讀狀態機、讀加法器、讀總線接口,用于寫操作的寫狀態機、寫加法器、寫總線接口,讀狀態機包含空閑狀態和讀狀態,寫狀態機包含空閑狀態和寫狀態;占用通用寄存器兩個寫端口,分別用于寫入更新后的源地址、目標地址;占用通用寄存器的三個讀端口,第一讀端口、第二讀端口、第三讀端口分別用于讀取拷貝結束信息、源地址、目標地址。

    14、一種使用上述能夠快速處理內存拷貝指令的cpu的快速處理內存拷貝指令的方法,包括以下步驟:

    15、內存拷貝控制器的狀態機初始處于空閑狀態;

    16、當指令譯碼器接收到有效的內存拷貝指令時,從有效的內存拷貝指令中讀取源地址寄存器標號、目標地址寄存器標號、拷貝結束信息寄存器標號至通用寄存器,同時向內存拷貝控制器發送啟動信號,通用寄存器通過源地址寄存器標號、目標地址寄存器標號、拷貝結束信息寄存器標號得到并輸出源地址、目標地址的初始值及拷貝結束信息;

    17、內存拷貝控制器接收到啟動信號時,狀態機跳轉至讀狀態,通過總線接口從源地址讀取數據暫存至緩沖器中,至少讀取一次數據后跳轉至寫狀態;在寫狀態下,通過總線接口按照先入先出的原則,將緩沖器中的數據依次寫入目標地址處,并清除緩沖器中的已寫數據,至少寫一次數據后跳轉至讀狀態;不斷在讀狀態和寫狀態間進行切換,利用加法器更新源地址、目標地址,利用比較器根據拷貝結束信息判斷拷貝是否完成,若拷貝完成則回到空閑狀態。

    18、進一步地,在讀狀態下,每次讀取1~2n字節數據;在寫狀態下,每次寫1~2n字節數據,2n為總線接口寬度。

    19、進一步地,在讀狀態下,若緩沖器空位小于2n字節,則跳轉至寫狀態,否則保持在讀狀態;在寫狀態下,若緩沖器有效位小于2n字節,則跳轉至讀狀態,否則保持在寫狀態。

    20、進一步地,根據拷貝結束信息判斷拷貝是否完成的方法為:

    21、在讀狀態下,利用比較器根據源地址、拷貝結束信息預判讀操作是否即將完成,若讀操作即將完成,在讀之后進入清空狀態而不是寫狀態,否則正常執行讀操作并跳轉至寫操作;

    22、在清空狀態下,將緩沖器中的數據寫至目標地址處,并將已寫數據清除,直到緩沖器清空,內存拷貝完成。

    23、進一步地,若狀態機處于非空閑狀態,內存拷貝控制器接收到指令譯碼器的中斷請求信號或調試信號時,狀態機先跳轉至清空狀態,待狀態機回到空閑狀態后,處理器正常響應中斷或調試請求;若狀態機處于空閑狀態,內存拷貝控制器接收到指令譯碼器的中斷請求信號或調試信號時,處理器正常響應中斷或調試請求;中斷或調試響應過程中,返回程序指針保存為當前內存拷貝指令的程序指針,通用寄存器按照應用程序二進制接口進行軟硬件保存及恢復;中斷或調試退出后,程序指針恢復為返回程序指針,處理器重新執行該內存拷貝指令,并從內存拷貝斷點處繼續執行,完成剩余拷貝。

    24、一種使用上述能夠快速處理內存拷貝指令的cpu的快速處理內存拷貝指令的方法,包括以下步驟:

    25、內存拷貝控制器的讀狀態機及寫狀態機初始均處于空閑狀態;

    26、當指令譯碼器接收到有效的內存拷貝指令時,從有效的內存拷貝指令中讀取源地址寄存器標號、目標地址寄存器標號、拷貝結束信息寄存器標號至通用寄存器,同時向內存拷貝控制器發送啟動信號;通用寄存器通過源地址寄存器標號、目標地址寄存器標號、拷貝結束信息寄存器標號得到并輸出源地址、目標地址的初始值及拷貝結束信息;

    27、內存拷貝控制器接收到啟動信號后,讀狀態機跳轉至讀狀態,通過讀總線接口不斷從源地址讀取數據暫存至緩沖器中,利用本文檔來自技高網...

    【技術保護點】

    1.一種能夠快速處理內存拷貝指令的CPU,其特征在于,包括:

    2.根據權利要求1所述的能夠快速處理內存拷貝指令的CPU,其特征在于,緩沖器空間為M*2N字節,其中M為正整數,2N為總線接口寬度。

    3.根據權利要求1所述的能夠快速處理內存拷貝指令的CPU,其特征在于,所述拷貝結束信息為源地址的結束地址、目標地址的結束地址、拷貝總長度中的一種或多種。

    4.根據權利要求1至3任一所述的能夠快速處理內存拷貝指令的CPU,其特征在于,所述狀態機、加法器、總線接口均有一個;占用通用寄存器一個寫端口,用于分時寫入更新后的源地址或目標地址;占用兩個通用寄存器的讀端口,第一讀端口用于讀取拷貝結束信息,第二讀端口用于分時讀取當前的源地址和目標地址;還包括第一選擇器,第一選擇器的兩個輸入端分別輸入源地址寄存器標號、目標地址寄存器標號,控制端連接內存拷貝控制器,輸出端連接通用寄存器的第二讀端口和寫端口;在讀狀態下,第一選擇器輸出源地址寄存器標號;在寫狀態下,第一選擇器輸出目標地址寄存器標號。

    5.根據權利要求1至3任一所述的能夠快速處理內存拷貝指令的CPU,其特征在于,所述狀態機、加法器、總線接口均有兩個,包括用于讀操作的讀狀態機、讀加法器、讀總線接口,用于寫操作的寫狀態機、寫加法器、寫總線接口,讀狀態機包含空閑狀態和讀狀態,寫狀態機包含空閑狀態和寫狀態;占用通用寄存器兩個寫端口,分別用于寫入更新后的源地址、目標地址;占用通用寄存器的三個讀端口,第一讀端口、第二讀端口、第三讀端口分別用于讀取拷貝結束信息、源地址、目標地址。

    6.一種使用如權利要求1-4任一所述的能夠快速處理內存拷貝指令的CPU的快速處理內存拷貝指令的方法,其特征在于,包括以下步驟:

    7.根據權利要求6所述的快速處理內存拷貝指令的方法,其特征在于,在讀狀態下,每次讀取1~2N字節數據;在寫狀態下,每次寫1~2N字節數據,2N為總線接口寬度。

    8.根據權利要求7所述的快速處理內存拷貝指令的方法,其特征在于,在讀狀態下,若緩沖器空位小于2N字節,則跳轉至寫狀態,否則保持在讀狀態;在寫狀態下,若緩沖器有效位小于2N字節,則跳轉至讀狀態,否則保持在寫狀態。

    9.根據權利要求6至8任一所述的快速處理內存拷貝指令的方法,其特征在于,根據拷貝結束信息判斷拷貝是否完成的方法為:

    10.根據權利要求9所述的快速處理內存拷貝指令的方法,其特征在于,若狀態機處于非空閑狀態,內存拷貝控制器接收到指令譯碼器的中斷請求信號或調試信號時,狀態機先跳轉至清空狀態,待狀態機回到空閑狀態后,處理器正常響應中斷或調試請求;若狀態機處于空閑狀態,內存拷貝控制器接收到指令譯碼器的中斷請求信號或調試信號時,處理器正常響應中斷或調試請求;中斷或調試響應過程中,返回程序指針保存為當前內存拷貝指令的程序指針,通用寄存器按照應用程序二進制接口進行軟硬件保存及恢復;中斷或調試退出后,程序指針恢復為返回程序指針,處理器重新執行該內存拷貝指令,并從內存拷貝斷點處繼續執行,完成剩余拷貝。

    11.一種使用如權利要求5所述的能夠快速處理內存拷貝指令的CPU的快速處理內存拷貝指令的方法,其特征在于,包括以下步驟:

    12.根據權利要求11所述的快速處理內存拷貝指令的方法,其特征在于,在讀狀態下,每次讀取1~2N字節數據;在寫狀態下,每次寫1~2N字節數據,2N為總線接口寬度。

    13.根據權利要求11或12所述的快速處理內存拷貝指令的方法,其特征在于,判斷讀操作結束的方法為:利用比較器根據源地址、拷貝結束信息判斷讀操作是否完成;

    14.根據權利要求13所述的快速處理內存拷貝指令的方法,其特征在于,若讀狀態機、寫狀態機中至少一個處于非空閑狀態,內存拷貝控制器接收到指令譯碼器的中斷請求信號或調試信號時,讀狀態機先跳轉至空閑狀態,待寫狀態機也跳轉至空閑狀態后,處理器正常響應中斷或調試請求;若讀狀態機、寫狀態機均處于空閑狀態,內存拷貝控制器接收到指令譯碼器的中斷請求信號或調試信號時,處理器正常響應中斷或調試請求;中斷或調試響應過程中,返回程序指針保存為當前內存拷貝指令的程序指針,通用寄存器按照應用程序二進制接口進行軟硬件保存及恢復;中斷或調試退出后,程序指針恢復為返回程序指針,處理器重新執行該內存拷貝指令,并從內存拷貝斷點處繼續執行,完成剩余拷貝。

    ...

    【技術特征摘要】

    1.一種能夠快速處理內存拷貝指令的cpu,其特征在于,包括:

    2.根據權利要求1所述的能夠快速處理內存拷貝指令的cpu,其特征在于,緩沖器空間為m*2n字節,其中m為正整數,2n為總線接口寬度。

    3.根據權利要求1所述的能夠快速處理內存拷貝指令的cpu,其特征在于,所述拷貝結束信息為源地址的結束地址、目標地址的結束地址、拷貝總長度中的一種或多種。

    4.根據權利要求1至3任一所述的能夠快速處理內存拷貝指令的cpu,其特征在于,所述狀態機、加法器、總線接口均有一個;占用通用寄存器一個寫端口,用于分時寫入更新后的源地址或目標地址;占用兩個通用寄存器的讀端口,第一讀端口用于讀取拷貝結束信息,第二讀端口用于分時讀取當前的源地址和目標地址;還包括第一選擇器,第一選擇器的兩個輸入端分別輸入源地址寄存器標號、目標地址寄存器標號,控制端連接內存拷貝控制器,輸出端連接通用寄存器的第二讀端口和寫端口;在讀狀態下,第一選擇器輸出源地址寄存器標號;在寫狀態下,第一選擇器輸出目標地址寄存器標號。

    5.根據權利要求1至3任一所述的能夠快速處理內存拷貝指令的cpu,其特征在于,所述狀態機、加法器、總線接口均有兩個,包括用于讀操作的讀狀態機、讀加法器、讀總線接口,用于寫操作的寫狀態機、寫加法器、寫總線接口,讀狀態機包含空閑狀態和讀狀態,寫狀態機包含空閑狀態和寫狀態;占用通用寄存器兩個寫端口,分別用于寫入更新后的源地址、目標地址;占用通用寄存器的三個讀端口,第一讀端口、第二讀端口、第三讀端口分別用于讀取拷貝結束信息、源地址、目標地址。

    6.一種使用如權利要求1-4任一所述的能夠快速處理內存拷貝指令的cpu的快速處理內存拷貝指令的方法,其特征在于,包括以下步驟:

    7.根據權利要求6所述的快速處理內存拷貝指令的方法,其特征在于,在讀狀態下,每次讀取1~2n字節數據;在寫狀態下,每次寫1~2n字節數據,2n為總線接口寬度。

    8.根據權利要求7所述的快速處理內存拷貝指令的方法,其特征在于,在讀狀態下,若緩沖器空位小于2n字節,則跳轉至寫狀態,否則保持在讀狀態;在寫狀態下,若緩沖器有效位小于2n字節...

    【專利技術屬性】
    技術研發人員:闕慶河楊勇
    申請(專利權)人:南京沁恒微電子股份有限公司
    類型:發明
    國別省市:

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

    1
    主站蜘蛛池模板: 日韩毛片无码永久免费看| 无码欧精品亚洲日韩一区夜夜嗨 | 无码专区久久综合久中文字幕| 国产精品无码av在线播放| 亚洲精品无码专区| 国产精品无码专区| heyzo专区无码综合| 亚洲天堂2017无码中文| 亚洲午夜国产精品无码老牛影视| 亚洲av无码成人精品区一本二本 | 日韩va中文字幕无码电影| 伊人天堂av无码av日韩av| 中出人妻中文字幕无码| aⅴ一区二区三区无卡无码| 精品久久久久久无码不卡| 国产成人精品无码一区二区三区 | 日韩美无码五月天| 西西人体444www大胆无码视频| 曰批全过程免费视频在线观看无码 | 精品人妻无码一区二区色欲产成人| 亚洲国产精品无码久久久蜜芽| 无码无套少妇毛多69XXX| 无码人妻丰满熟妇区96| 亚洲熟妇无码久久精品| 亚洲国产精品无码专区| 国产在线拍偷自揄拍无码| 国产成人无码免费看片软件 | 无码中文字幕日韩专区| 亚洲色无码一区二区三区| 中文字幕无码乱人伦| 野花在线无码视频在线播放 | 丰满亚洲大尺度无码无码专线 | 九九无码人妻一区二区三区| 中文字幕无码精品亚洲资源网久久| 无码精品国产一区二区三区免费| 亚洲av中文无码乱人伦在线r▽| 亚洲精品无码鲁网中文电影| 亚洲中文字幕无码一区二区三区| 亚洲国产精品无码专区影院| 无码精品日韩中文字幕| 亚洲最大天堂无码精品区|