新聞中心

        ARM -- core

        作者: 時間:2016-11-10 來源:網絡 收藏
        ARM(advanced RISC machine) 代表三層意思:
        始終代表ARM公司
        始終代表ARM技術
        始終代表ARM芯片
        為三個代表。
        1、ARM 8種工作模式
        userfiqirqsvcabortundefsystem(mon[monitor])
        非特權模式快速中斷請求(fast interrupt request )中斷請求超級用戶預存取未定義系統(特權)(contex-a特有模式(安全))
        2、指令集:
        ARM 指令集 -- 32bit
        thumb指令集 --16bit
        contex-A處理器
        16 and 32 thumb指令集
        16 and 32 thumbEE指令集
        3、ARM 約定
        byte: 8bit
        halfword: 16bit
        word:32bit
        doubleword:64-bit(8byte)
        jazelle cores 可支持 java bytecode.
        4、一般ARM處理器有37 or 40 個 寄存器(regs) --- 是這樣計算的.r0--r7 有1種八組 r8-r12有5組x2中=10.r13有7組一種=7.r14也是7組一種=7,r15 1 ,cpsr 1 .spsr 6
        8 + 10 + 7 + 7 + 1 + 1 + 6 = 40(contex - A)
        40為contex-A 四核系列
        其中1個為pc--(program counter)(r15)
        1個cpsr(current program status register)
        5個spsr(save program status register)
        30個通用regs
        其中r14為LR(link register)
        r13為SP(stack pointer)
        5、關于異常處理
        異常種類有7中、模式有五種。異常會返回偏移量
        偏移量: 異常事件 對應模式
        0x1c FIQ FIQ
        0x18 IRQ IRQ
        0x14 ....
        0x10 data abort ABORT
        0x0c prefetch abort ABORT
        0x08 software interrupt SVC
        0x04 indefined instuction Undef
        0x00 Reset svc
        處理異常為四大步、三小步。
        一:拷貝cpsr到spsr -- 保存當前程序狀態
        二:設置cpst位:
        1:改變處理器的狀態進入ARM態(4 byte)(保持word對齊)
        2:改變處理器模式就如相對應的異常模式
        3:設置中斷進制位禁止相應中斷
        三:保存返回地址到LR(r13)
        四:設置pc為相應的偏移量(c15).
        6、字節序:
        前提為:多字節數據在存儲器的存放位置
        低 低 小-- 小端序
        低 高 大--大端序
        ARM以小端為主、但是大小都支持、
        7、ARM 指令集簡介
        所有的arm指令集均為32-bits
        大部分為單周期指令 -- T = 1/F F=主頻 如contex-A8為4F為1G. 那么1/1G = 1ns.so -- 執行一條指令的時間為1ns.
        采用Load/Store 架構
        8、ARM 協處理器 多達16 (cp1 - cp15)
        9、關于jazelle 由ARM cores直接去執行.而不需要通過JVM.(買的ORCAL公司的接口)
        Normal jvn:1.0
        ARM9EJ: 5.5
        10、關于指令流水線
        ARM7 -- 3條
        ARM9 -- 5條
        ARM10E --6條
        contex-A8 -- 基于v7體系--13條流水線。
        11、ARM條件執行
        常用條件碼:
        EQ 0000 相等
        NE 0001 不相等
        GE 1010 大于等于
        LT 1011 小于等于
        GT 1100 大于
        LE 1101 小于
        AL 1110 忽略
        12、ARM數據處理指令機器碼格式
        31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
        31--------28 27--26 25 24----21 20 19------16 15 ---- 12 11------7 6--5 0 3----0
        指令條件碼 I 指令操作碼 S 第一操作數 目標寄存器編碼 移位數 移位方式 第二操作數
        即:N E C V 判斷是否立即數 是否影響CPSR 移位方式有LST LSR ASR ROR四種
        13、關于立即數
        如何判斷是否為立即數
        展開之后判斷零之間夠不夠八位
        如下面幾個數:
        0x1234 000--1,0010,0011,01--00 中間有11位、所以不是立即數.
        0x34 0011,0100 是立即數
        0xf000000f 1111,000000,1111 是
        0xFFFFFFFF 1111,1111,1111,1111,1111,1111,1111,1111, 不是立即數但是是有效數.
        0x1f08 0001,1111,0000,1000 是
        --------------------------------
        keven.


        關鍵詞: ARMcor

        評論


        技術專區

        關閉
        主站蜘蛛池模板: 呼图壁县| 上饶市| 萨迦县| 山东| 龙井市| 罗甸县| 金门县| 攀枝花市| 白城市| 芜湖市| 策勒县| 永宁县| 越西县| 浦县| 凤翔县| 平南县| 县级市| 肇庆市| 黑龙江省| 昌平区| 同仁县| 遂宁市| 宜州市| 岳西县| 保定市| 陕西省| 鹤岗市| 房产| 荥阳市| 高邑县| 濮阳县| 博乐市| 信丰县| 疏勒县| 安平县| 三门县| 蒙阴县| 云龙县| 攀枝花市| 峨边| 九龙城区|