<meter id="pryje"><nav id="pryje"><delect id="pryje"></delect></nav></meter>
          <label id="pryje"></label>

          新聞中心

          ARM -- core

          作者: 時(shí)間:2016-11-10 來(lái)源:網(wǎng)絡(luò) 收藏
          ARM(advanced RISC machine) 代表三層意思:
          始終代表ARM公司
          始終代表ARM技術(shù)
          始終代表ARM芯片
          為三個(gè)代表。
          1、ARM 8種工作模式
          userfiqirqsvcabortundefsystem(mon[monitor])
          非特權(quán)模式快速中斷請(qǐng)求(fast interrupt request )中斷請(qǐng)求超級(jí)用戶預(yù)存取未定義系統(tǒng)(特權(quán))(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 個(gè) 寄存器(regs) --- 是這樣計(jì)算的.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個(gè)為pc--(program counter)(r15)
          1個(gè)cpsr(current program status register)
          5個(gè)spsr(save program status register)
          30個(gè)通用regs
          其中r14為L(zhǎng)R(link register)
          r13為SP(stack pointer)
          5、關(guān)于異常處理
          異常種類有7中、模式有五種。異常會(huì)返回偏移量
          偏移量: 異常事件 對(duì)應(yīng)模式
          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 -- 保存當(dāng)前程序狀態(tài)
          二:設(shè)置cpst位:
          1:改變處理器的狀態(tài)進(jìn)入ARM態(tài)(4 byte)(保持word對(duì)齊)
          2:改變處理器模式就如相對(duì)應(yīng)的異常模式
          3:設(shè)置中斷進(jìn)制位禁止相應(yīng)中斷
          三:保存返回地址到LR(r13)
          四:設(shè)置pc為相應(yīng)的偏移量(c15).
          6、字節(jié)序:
          前提為:多字節(jié)數(shù)據(jù)在存儲(chǔ)器的存放位置
          低 低 小-- 小端序
          低 高 大--大端序
          ARM以小端為主、但是大小都支持、
          7、ARM 指令集簡(jiǎn)介
          所有的arm指令集均為32-bits
          大部分為單周期指令 -- T = 1/F F=主頻 如contex-A8為4F為1G. 那么1/1G = 1ns.so -- 執(zhí)行一條指令的時(shí)間為1ns.
          采用Load/Store 架構(gòu)
          8、ARM 協(xié)處理器 多達(dá)16 (cp1 - cp15)
          9、關(guān)于jazelle 由ARM cores直接去執(zhí)行.而不需要通過(guò)JVM.(買的ORCAL公司的接口)
          Normal jvn:1.0
          ARM9EJ: 5.5
          10、關(guān)于指令流水線
          ARM7 -- 3條
          ARM9 -- 5條
          ARM10E --6條
          contex-A8 -- 基于v7體系--13條流水線。
          11、ARM條件執(zhí)行
          常用條件碼:
          EQ 0000 相等
          NE 0001 不相等
          GE 1010 大于等于
          LT 1011 小于等于
          GT 1100 大于
          LE 1101 小于
          AL 1110 忽略
          12、ARM數(shù)據(jù)處理指令機(jī)器碼格式
          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 第一操作數(shù) 目標(biāo)寄存器編碼 移位數(shù) 移位方式 第二操作數(shù)
          即:N E C V 判斷是否立即數(shù) 是否影響CPSR 移位方式有LST LSR ASR ROR四種
          13、關(guān)于立即數(shù)
          如何判斷是否為立即數(shù)
          展開(kāi)之后判斷零之間夠不夠八位
          如下面幾個(gè)數(shù):
          0x1234 000--1,0010,0011,01--00 中間有11位、所以不是立即數(shù).
          0x34 0011,0100 是立即數(shù)
          0xf000000f 1111,000000,1111 是
          0xFFFFFFFF 1111,1111,1111,1111,1111,1111,1111,1111, 不是立即數(shù)但是是有效數(shù).
          0x1f08 0001,1111,0000,1000 是
          --------------------------------
          keven.


          關(guān)鍵詞: ARMcor

          評(píng)論


          技術(shù)專區(qū)

          關(guān)閉
          看屁屁www成人影院,亚洲人妻成人图片,亚洲精品成人午夜在线,日韩在线 欧美成人 (function(){ var bp = document.createElement('script'); var curProtocol = window.location.protocol.split(':')[0]; if (curProtocol === 'https') { bp.src = 'https://zz.bdstatic.com/linksubmit/push.js'; } else { bp.src = 'http://push.zhanzhang.baidu.com/push.js'; } var s = document.getElementsByTagName("script")[0]; s.parentNode.insertBefore(bp, s); })();