arm内核,cpu如何保护内核空间的?
arm cpu保护内核空间的三种方法:

1. 将内存标记为只读/不可执行
该功能将内核内存划分为多个逻辑区段,并限定每个区段的页访问权限。将代码标记为只读可执行。将数据区段标记为不可执行,并进一步将其细分为只读区段和读写区段。该功能通过配置选项 CONFIG_DEBUG_RODATA 启用。
该功能是由 Kees Cook 汇集 Grsecurity 中的 KERNEXEC 部分功能(由 Brad Spengler 实现)和 Qualcomm 的 CONFIG_STRICT_MEMORY_RWX 部分功能(由 Larry Bassel 和 Laura Abbott 合作实现)而实现的。位于 arm/arm64 上游内核的 CONFIG_DEBUG_RODATA 已向后移植到 Android 的 3.18+ arm/arm64 通用内核。
2. 限制内核对用户空间的访问
该功能通过阻止内核直接访问用户空间内存来增强对内核的保护。这样可以增大许多攻击的难度,这是因为攻击者对于可执行的内核内存(特别是启用 CONFIG_DEBUG_RODATA 的内存)的控制力要弱得多。
类似的功能已经存在,Grsecurity 的 UDEREF 最早提供了此项功能。该功能通过配置选项 CONFIG_CPU_SW_DOMAIN_PAN 启用,由 Russell King 完成了该功能的 ARMv7 实现,并由 Russell King 向后移植到 Android 4.1 内核。
3. 增强对堆叠缓冲区的溢出保护
与其前身 stack-protector 非常类似,stack-protector-strong 不但可以防止系统出现堆叠缓冲区溢出,还额外提供对更多数组类型的保护,而其前身仅保护字符型数组。Stack-protector-strong 由 Han Shan 实现并添加到 gcc 4.9 编译器。
华为麒麟芯片是基于ARM内核开发的SOC芯片?
指令集是软件硬件协同设计的一个结果。有难度但,但难度有限。其难度是在硬件解码规划和编译器设计规划两个层面中设计一种规范。而此规范的设定同时兼顾cpu硬件思路和编译器软件设计思路。而两个领域本身都是非常专业的,一般人才只在一边工作就够烧脑的了。和所有接口规范的设计一样,这种设计必须由一个人最多两个人来完成原理性设计,其余是相对简单的文字性工作。更为困难的是这个人的身份、技术能力必须在cpu设计和编译器设计两边都具有权威性或在产业中已经具备地位的厂商跟进。
一个设计良好的指令集可以大大简化编译器和cpu的设计。比如 risc v 是risc指令体系的第五代,arm是基于risc 体系的2代到3代见的,而mips是一代。结果就是risc v在同等频率下比arm的芯片算力高、芯片面积小、功耗低,而且还不是差百分之几、而是差别在20%左右。这还是risc v实体芯片时间很短,而arm演进多年后,换句话说,risc v的潜力没充分挖掘,编译器优化不充分情况下的。而arm与mips比较市场已经说明问题。而且risc v 不像arm,从一开始就不仅考虑了嵌入式市场,而是从超大计算到iot芯片的全产业链设计。因此,后发企业能不断延展其设计。
也许有人说intel不是risc体系也是性能王者。其实,从486以后,Intel和amd两大x86玩家都在核心走了risc线路,兼容x86指令其实是花了大量芯片面积硬布线翻译了x86到其内部risc指令集的。而且,都在内部放弃了冯诺依曼结构而采用哈佛结构才有目前的结果。这也是为什么我们看到x86一级缓存才用了指令和数据分开的结构,而这种结构是risc设计中最常见的提高cpu吞吐设计方法,数据侧只用load和store,区分两种访问及其简单。所以cisc其实早已被业界放弃,而更先进的vliw指令集体系,因编译器设计超级复杂,几乎在通用处理器设计中被放弃了。因此,risc事实上是目前最主要的指令体系。而risc v是目前最先进的risc 指令集,而且是开源的。谁都可以按risc v设计自己的cpu。
处理器的微结构是纯硬件的逻辑设计,risc处理器有一整套教科书式的结构化、可量化设计方法。只要指令集确定,其设计是比较呆定的。各处理器差别在一些部件的创新,这也是为什么risc v给出了一些开源实现来示范设计。
正是这些示范性实现,就达到了比arm更具性价比可能。arm才有点气急败坏。
risc 微结构已经没有多少秘密可言。
学习应用都没想象的难。相反,正是与制成匹配等实际制造的烧钱实验难度大得多。因为,频率、功耗、芯片内外的布线等等问题和流片的巨大成本后面等着,一大堆接口知识产权费用等着支付。
arm微控制器内核及其特点?
48MHz arm® Cortex®-M23
高达 128kB 的闪存以及 16kB SRAM
4kB 数据闪存,提供与 EEPROM 类似的数据存储功能
从 25 引脚封装扩展至 64 引脚封装
1.6V - 5.5V 的宽工作电压范围
增强型电容式触摸感应单元 (CTSU)
12 位 ADC,LPACMP,温度传感器
32 位通用 PWM 定时器,16 位通用 PWM 定时器,低功耗异步通用定时器
实时时钟
SCI(UART、简单 SPI、简单 I2C)
独立的 SPI 接口/I2C 多主接口
安全功能
加密功能
多种封装选择(LQFP、QFN、LGA、BGA 及 WLCSP)
arm内核中断返回后需要做哪些工作?
开启中断 配置中断触发方式 配置中断函数向量表 书写中断函数。
8xARMCortex?
看到8核,我就想到了联发科,估计性能不会好哪去


还没有评论,来说两句吧...