国产精品久久久aaaa,日日干夜夜操天天插,亚洲乱熟女香蕉一区二区三区少妇,99精品国产高清一区二区三区,国产成人精品一区二区色戒,久久久国产精品成人免费,亚洲精品毛片久久久久,99久久婷婷国产综合精品电影,国产一区二区三区任你鲁

0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
會員中心
創作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

sparc體系架構的窗口寄存器的深入理解

嵌入式IoT ? 來源:嵌入式IoT ? 作者:嵌入式IoT ? 2021-01-07 10:39 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

sparc體系架構的窗口寄存器的深入理解

1.概述

2.窗口寄存器的特性

3.程序的設計

4.sparc設計對于嵌入式編程的優劣

1.概述

sparc這種架構有著特殊的窗口寄存器,使用sparc芯片,一定會對這種窗口寄存器產生疑惑,然而這種硬件特性卻讓軟件設計有著更加獨特的方式。下面來描述一下sparc架構中這種串口寄存器的特性以及編程模型。

2394659a-5074-11eb-8b86-12bb97331649.png

采用窗口寄存器,可以減少函數調用過程中返回時間,因為通過硬件進行壓棧操作時,可以減少指令條數以及減少訪問存儲器的次數。

窗口寄存器的本質是每當執行一次函數調用過程時,寄存器窗口會自動的指向下一個窗口,當子程序返回時,也不需要額外的出棧操作,只是將窗口偏移到上個寄存器即可。

而兩個相鄰的窗口則有重疊部分,可以對兩個父子函數之間進行參數傳遞,這樣大大的提高了訪問的效率以及寄存器的專一性。

2.窗口寄存器的特性

當在實際的程序中使用時,往往會涉及到多個函數的嵌套,這些在復雜程序設計上非常的普遍,業務邏輯的增加會顯著的增加函數調用的深度。如果函數調用超過了這些8個窗口,sparc架構又是該如何處理呢?

在sparc的架構中,CWP(當前窗口指針)是PSR(程序狀態寄存器)的一部分,在某一固定的時刻,處理器中都只會有32個整數寄存器可以被使用。這32個寄存器為8個全局寄存器、8個返回結果寄存器、8個局部寄存器、8個輸入寄存器。CWP通常會因SAVE指令(SAVE指令一般在過程調用時使用,用來開辟新的棧幀并切換寄存器窗口)而減一,因RESTORE指令(在從過程中返回前切換回調用者的寄存器窗口)而加一,陷阱事件(中斷,異常或TRAP指令)和RETT指令(從陷阱中返回)也會改變CWP,不過函數調用比陷阱更為常見。

23bbd74c-5074-11eb-8b86-12bb97331649.png

窗口無效掩碼(WIM) WIM指示了哪個窗口是無效的,無效的意思是該窗口保存了調用者的信息所以不可再使用,上圖中,WIM指向w7,而CWP指向w0,所以現在如果執行一條SAVE指令,則會觸發窗口溢出陷阱,反之,如果CWP指向w0且又執行了一條RESTORE指令,則會觸發窗口下溢陷阱。

所謂的窗口下溢則是說當前窗口不夠用了,需要將已經滿了的窗口寄存器的數據壓入到棧上,也就是內存中,壓入后的窗口寄存器又可以重新利用起來了,而上個滿了的窗口寄存器則存在內存中了。當函數返回到窗口無效寄存器時,則發生上溢陷阱,該陷阱中會執行出棧的操作,從而將寄存器進行恢復。

3.程序的設計

對于C語言來說,并不用關注架構的不同帶來的差異性,而對于匯編來說,則設計卻是完全的不同。GCC已經處理好了C轉換成匯編的邏輯。

23e62858-5074-11eb-8b86-12bb97331649.png

每個save指令都是在被調用的函數的第一條指令處開始執行。而SAVE的指令與ADD的指令相同,其功能是可以將sparcCWP減一。讓CWP-1窗口成為新的當前的窗口。

當函數執行完成后,則執行restore指令,讓窗口指令加一。窗口就回歸原位了。

4.sparc設計對于嵌入式編程的優劣

對于嵌入式來說,如果只設計可控的程序,邏輯設計上盡可能的單一可控,并且最好函數的嵌套深度不應該超過8個,最好不發生上溢或者下溢操作。這樣不用訪問存儲器,并且底層的指令很少,對于程序的執行效率很有保障。有上溢或者下溢,一次性就需要壓棧或者出棧操作,使得其程序的執行效率不在那么高效。

而對于rtos來說,設計上也稍微復雜了一些,需要不僅需要判斷當前窗口的溢出情況,還需要保存窗口寄存器的棧,這樣對于系統上下文的線程棧需要的空間消耗是非常大的。目前也沒有想到合適方式去減少棧的消耗,而且在rtos上,sparc架構所占的優勢并不是很明顯,以上僅僅是我對這種架構在嵌入式上使用的一些看法。

總結起來,sparc架構的好處是由于有了窗口寄存器模型,如果程序設計的優秀簡單,這個是非常好的,效率也可以非常高,簡潔的寄存器、簡潔的控制狀態,需要編程人員要有很高的水平。缺點就是不考慮sparc架構的編程方式,將會使得程序的效率非常的低下,sparc芯片的使用也變得十分的困難。

責任編輯:xj

原文標題:sparc體系架構的窗口寄存器的深入理解

文章出處:【微信公眾號:嵌入式IoT】歡迎添加關注!文章轉載請注明出處。

聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。 舉報投訴
  • 寄存器
    +關注

    關注

    31

    文章

    5608

    瀏覽量

    129957
  • 窗口
    +關注

    關注

    0

    文章

    66

    瀏覽量

    11282
  • SPARC
    +關注

    關注

    0

    文章

    16

    瀏覽量

    10169

原文標題:sparc體系架構的窗口寄存器的深入理解

文章出處:【微信號:Embeded_IoT,微信公眾號:嵌入式IoT】歡迎添加關注!文章轉載請注明出處。

收藏 人收藏
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

    評論

    相關推薦
    熱點推薦

    深入解析SN74SSTV16859:13位到26位寄存器緩沖的卓越性能

    深入解析SN74SSTV16859:13位到26位寄存器緩沖的卓越性能 在電子設計領域,寄存器緩沖是不可或缺的重要組件,它能夠有效地處理
    的頭像 發表于 02-10 14:20 ?128次閱讀

    深入剖析 SN74SSTVF16859 13 位至 26 位寄存器緩沖

    深入剖析 SN74SSTVF16859 13 位至 26 位寄存器緩沖 在如今高速發展的電子技術領域,寄存器緩沖在數據處理和傳輸中扮演著
    的頭像 發表于 02-10 11:45 ?335次閱讀

    深入解析STPIC6D595:8位移位寄存器的卓越性能與應用

    深入解析STPIC6D595:8位移位寄存器的卓越性能與應用 在電子設計領域,對于需要相對適中負載功率的系統,如LED驅動等,一款合適的移位寄存器至關重要。今天,我們就來深入探討STP
    的頭像 發表于 01-26 17:40 ?641次閱讀

    深入解析CY74FCT399T:一款高性能的四2輸入寄存器

    深入解析CY74FCT399T:一款高性能的四2輸入寄存器 在電子工程師的日常設計中,選擇合適的寄存器對于實現高效、穩定的電路至關重要。今天,我們就來深入了解一下德州儀器(Texas
    的頭像 發表于 01-16 17:10 ?841次閱讀

    深入解析SN74SSTVF16859:13位到26位寄存器緩沖

    深入解析SN74SSTVF16859:13位到26位寄存器緩沖 在當今的電子設計領域,高速、高效且穩定的寄存器緩沖至關重要。今天,我們就
    的頭像 發表于 01-13 16:45 ?675次閱讀

    從“能用”到“懂原理”:ARMv8寄存器架構深度拆解

    、ELR這些寄存器,只知道是保存狀態的,卻搞不清背后的設計邏輯; 其實ARMv8的寄存器架構,不是“零散知識點的堆砌”,而是圍繞“高效運算”“安全隔離”“狀態可控”三個核心目標設計的完整體系
    的頭像 發表于 01-10 07:10 ?136次閱讀
    從“能用”到“懂原理”:ARMv8<b class='flag-5'>寄存器</b><b class='flag-5'>架構</b>深度拆解

    LAT1170+如何理解 RAMECC FAR 寄存器的值

    電子發燒友網站提供《LAT1170+如何理解 RAMECC FAR 寄存器的值.pdf》資料免費下載
    發表于 01-09 16:12 ?0次下載

    【NCS隨筆】nRF54L15使用UICR寄存器保存數據

    nRF54L15使用UICR寄存器保存數據 本文章主要是講解如何使用nRF54L15的UICR寄存器保存一些基礎數據 一、UICR寄存器的說明 UICR(用戶信息配置寄存器)**是非易
    的頭像 發表于 11-27 17:09 ?1508次閱讀

    嵌入式系統必懂的 20 個寄存器

    嵌入式開發看起來很復雜,但很多操作其實都離不開寄存器寄存器就是MCU內部的存儲單元,它們控制著處理和外設的行為。熟悉這些寄存器,你就能更精確地操作硬件,提高開發效率,減少調試時間。
    的頭像 發表于 11-14 10:28 ?1085次閱讀
    嵌入式系統必懂的 20 個<b class='flag-5'>寄存器</b>

    NVMe高速傳輸之擺脫XDMA設計32:寄存器功能驗證與分析2

    寄存器最大值為 64’hFFFFFFFFFFFFFFFF,到達最大值后一個時鐘周期后翻轉回 0, 在隨機時刻使用 force 將寄存器賦值臨近最大值, 當寄存器達到最大值后, 翻轉回到 0, 讀取數值為 0, 仿真行為符合設計預
    的頭像 發表于 10-14 17:06 ?719次閱讀
    NVMe高速傳輸之擺脫XDMA設計32:<b class='flag-5'>寄存器</b>功能驗證與分析2

    ?SN74HCT595 8位移位寄存器技術解析與應用指南

    Texas Instruments SN74HCT595/SN74HCT595-Q1 8位移位寄存器包含8位串進并出移位寄存器,向8位D類存儲寄存器饋送信號。存儲寄存器具有并行 3 狀
    的頭像 發表于 09-19 14:31 ?942次閱讀
    ?SN74HCT595 8位移位<b class='flag-5'>寄存器</b>技術解析與應用指南

    TPIC6595 8位功率移位寄存器技術文檔摘要

    該TPIC6595是一款單片、高壓、大電流功率的8位移位寄存器,設計用于需要相對較高負載功率的系統。該器件在輸出端包含一個內置電壓鉗位,用于電感瞬態保護。功率驅動應用包括繼電器、螺線管和其他中電流
    的頭像 發表于 09-09 11:10 ?922次閱讀
    TPIC6595 8位功率移位<b class='flag-5'>寄存器</b>技術文檔摘要

    ?TPIC6B595 8位功率移位寄存器技術文檔總結

    TPIC6B595器件是一款單片、高壓、中電流功率8位移位寄存器,設計用于需要相對高負載功率的系統。該器件在輸出端包含一個內置電壓鉗位,用于電感瞬態保護。功率驅動應用包括繼電器、螺線管和其他中電流
    的頭像 發表于 09-09 10:16 ?1009次閱讀
    ?TPIC6B595 8位功率移位<b class='flag-5'>寄存器</b>技術文檔總結

    使用寄存器點亮LED燈

    學習本章時,配合以上芯片手冊中的“19. I/O Ports”章節一起閱讀,效果會更佳,特別是涉及到寄存器說明的部分。本章內容涉及到較多寄存器方面的深入內容,對于初學者而言這些內容豐富也較難
    的頭像 發表于 05-28 17:37 ?1308次閱讀
    使用<b class='flag-5'>寄存器</b>點亮LED燈

    第四章 什么是寄存器

    本篇文章我們講解了寄存器的概念、地址映射和寄存器操作等內容,內容比較干,大家有個概念即可,不要求全部熟記掌握,有需要時可重復查閱觀看。下一篇我們將開始進行實操內容,通過控制單片機的GPIO來點亮一顆LED,敬請期待!
    的頭像 發表于 05-21 14:23 ?1459次閱讀
    第四章 什么是<b class='flag-5'>寄存器</b>