《奔跑吧-Linux内核 笔记》--- 第一章 处理器体系结构



1.ARM 指令集介绍

兼容ARMv4指令集的处理器架构有ARM7-TDMI,典型处理器是三星的S3C44B0X。
兼容ARMv5指令集的处理器架构有ARM920T,典型处理器是三星的S3C2440。
兼容ARMv6指令集的处理器架构有ARM11MPCore。
到了ARMv7指令集,处理器系列以Cortex命名,又分成A、R和M系列,通常A系列针对大型嵌入式系统(例如手机), R系列针对实时性系统, M系列针对单片机市场。Cortex-A7和Coxtex-A9处理器是前几年手机的主流配置。


Coxtex-A系列处理器面市后,由于处理性能的大幅提高以及杰出功耗控制,使得手机和平板电脑市场迅猛发展。 另外一些新的应用需求正在酝酿,比如大内存、虚拟化、安全特性(Trustzone)以及更好的能效比(大小核)等。

由于32位的处理器最高支持4GB的虚拟地址空间,因此不适合虚拟内存需求巨大的应用。
ARM公司设计全新的ARMv8-A指令集,支持64位指令集,并且保持向前兼容ARMv7-A指令集。
因此定义AArch64和AArch32两套运行环境分别来运行64位和32位指令集,软件可以动态切换运行环境


2.请简述精简指令集RISC和复杂指令集CISC的区别

20世纪70年代,IBM的John Cocke研究发现,处理器提供的大量指令集和复杂寻址方式并不会被编译器生成的代码用到:
20%的简单指令经常被用到,占程序总指令数的80%,而指令集里其余80%的复杂指令很少被用到,只占程序总指令数的20%。


基于这种思想,将指令集和处理器进行重新设计,在新的设计中只保留了常用的简单指令,这样处理器不需要浪费太多的晶体管去做那些很复杂又很少使用的复杂指令。

简单指令大部分时间都能在一个cycle内完成,
基于这种思想的指令集叫作 RISC(Reduced Instruction Set Computer)指令集
以前的指令集叫作 CISC(Complex Instruction Set Computer)指令集


3.请简述数值0x12345678在大小端字节序处理器的存储器中的存储方式。

在计算机系统中是以字节为单位的,每个地址单元都对应着一个字节,一个字节为8个比特位。

但在32位处理器中,C语言中除了8比特的char类型(1个字节) 之外,还有16比特的short型(2个字节)32bit的int型(4个字节)


对于位数大于8位的处理器,例如16位或者32位的处理器,由于寄存器宽度大于一个字节,
那么必然存在着如何安排多个字节的问题,因此导致了大端存储模式(Big-endian)和小端存储模式(Little-endian)

大端模式,是指数据的高字节保存在内存的低地址中,而数据的低字节保存在内存的高地址中,这样的存储模式有点儿类似于把数据当作字符串顺序处理:地址由小向大增加,而数据从高位往低位放;这和我们的阅读习惯一致。

小端模式,是指数据的高字节保存在内存的高地址中,而数据的低字节保存在内存的低地址中,这种存储模式将地址的高低和数据位权有效地结合起来,高地址部分权值高,低地址部分权值低。

发布了331 篇原创文章 · 获赞 67 · 访问量 10万+

猜你喜欢

转载自blog.csdn.net/Ciellee/article/details/104950080
今日推荐