ARM——体系结构

devtools/2024/11/15 4:01:42/

    计算机体系结构:冯诺伊曼                          哈佛

冯·诺依曼结构

冯·诺依曼结构,也称冯·诺依曼模型或普林斯顿结构,是根据冯·诺依曼提出的存储程序概念设计的计算机体系结构。其主要特点包括:

  1. 存储程序:指令与数据都以二进制形式储存在存储器里,且两者在存储器中并无物理上的区分,都是由0和1组成的代码序列。计算机在运行时,能够自动地从存储器中取出指令并执行。
  2. 顺序执行:指令根据其存储的顺序执行,即使相关数据已经准备好,也必须逐条执行指令序列。
  3. 五大部件:由运算器、存储器、控制器、输入设备和输出设备五大部件组成计算机系统,并规定了这五部分的基本功能。
  4. 二进制表示:采用二进制形式表示数据和指令,这是计算机能够高速自动运行的基础。

冯·诺依曼结构的主要优势在于其简单性和通用性,使得计算机能够执行各种复杂的任务。然而,其也存在一些局限性,如指令和数据的串行执行限制了计算机的处理速度,以及存储器的线性编址方式可能导致高级语言与机器语言之间的语义差距较大。

哈佛结构

哈佛结构是一种将程序指令存储和数据存储分开的存储器结构,是一种并行体系结构。其主要特点包括:

  1. 独立存储:程序存储器和数据存储器是两个独立的存储器,每个存储器独立编址、独立访问。这种分离的程序总线和数据总线可允许在一个机器周期内同时获得指令字(来自程序存储器)和操作数(来自数据存储器),提高了执行速度和数据的吞吐率。
  2. 并行处理:由于程序和数据存储在两个分开的物理空间中,因此取址和执行能完全重叠,提高了系统的并行处理能力。
  3. 高带宽:哈佛结构提供了较大的存储器带宽,使数据的移动和交换更加方便,尤其适用于数字信号处理等需要高速运算的场合。

哈佛结构的主要优势在于其高效的并行处理能力和较高的数据吞吐率,这使得它在需要高速运算的场合中得到了广泛应用。然而,其设计也更为复杂,需要更多的硬件资源来支持。

总线:
地址总线:
数据总线:
控制总线:读写 片选

CPU(中央处理单元)
PC:程序计数器 指向正在执行的下下条指令。默认值为0,默认自加操作。
LR:连接寄存器 保存函数的返回地址。
SP:栈指针寄存器,指向栈顶。
CPSR:当前程序状态寄存器 。
              进/借位,结果为 负/零,中断使能。大小端配置 ,工作模式。
SPSR:保存程序状态寄存器,使CPSR的备份。
Cache:缓存 I(指令) D (数据)
             ——cache替换原则 替换最早未使用的


MMU:内存管理单元 虚拟地址到物理地址的转换

二、SOC(片上系统)S3C2440

多核异构:多核异构指的是在一个处理器或系统中存在多个核心(CPU或处理单元),且这些核心在架构、指令集、时钟频率、功耗特征等方面存在差异。这种设计使得处理器能够根据不同的任务需求,灵活地分配计算资源,以达到更高的计算效率和更低的功耗。

RISC:精简指令集(用20%实现80%的功能)相对的概念、
CISC:复杂指令集

           ARM9:
Cortex-A      消费类电子——低功耗
Cortex-R       实时性(类似于汽车刹车)---航空航天军工
Cortex-M        高性能(STM32)   ---偏控制

指令集:ARM V4

三、半导体器件

四、流水线:

  程序执行的过程:

预取   译码    执行

三级流水线  

发生跳转就会导致骑不是最佳的 

#+数字  是立即数 
               ——  一个数字(按位取反)中或将其循环右移偶数位后的所有的1都能放进低8位中
                             0xff00(循环右移最简单的的情况)
                             0xff00ffff
所以只有特别明显的立即数可以使用。
                                           

cmp之类的条件码

机器编码


http://www.ppmy.cn/devtools/97344.html

相关文章

哈啰出行Java开发工程师一面面经(校招)

牛客网最新面经分享面试过程: 小编为参加校招、秋招、金九银十面试季的小伙伴们准备了一份很全很详细的java面试宝典(包含各个大厂真题以及最常见的八股文含答案),由于平台篇幅原因,就不在这里一一展示了,…

分组汇总时保留不变列

Excel表格的ID列是分类,Value1和Value2是数值,ID相同时Descr 1和Descr 2保持不变。 ABCDE1IDValue 1Value 2Descr 1Descr 22112.51.8ax13112.31.1ax14111.91.6ax15123.73.5bx26123.91.5bx27132.50.2cx38132.64.1cx391324.8cx310132.71.8cx3 要求&#…

服务器扩容时该如何选择合适大小的CPU和内存?

服务器扩容时,CPU和内存的搭配是一个重要的考虑因素,因为它直接影响到服务器的性能和资源利用率。以下是一些关于如何搭配CPU和内存大小的建议: 1.确定工作负载 首先,了解您的服务器将运行的应用程序类型和负载特征(如CPU密集型、…

MilkV Duo256M ARM核 HWTIMER驱动调试记录

MilkV Duo256M ARM核 HWTIMER 驱动调试记录 本文记录一个在对接 cv18xx_aarch64 的 hwtimer 设备驱动时遇到的问题。 问题描述 首先该 hwtimer 设备驱动是已经对接到 c906_little 和 cv18xx_risc-v 了的,并且测试正常通过。根据芯片数据手册描述,这几…

【Linux网络】select函数

欢迎来到 破晓的历程的 博客 ⛺️不负时光,不负己✈️ 文章目录 select函数介绍select函数参数介绍select函数返回值select的工作流程TCP服务器【多路复用版】 select函数介绍 在Linux网络编程中,select 函数是一种非常有用的IO多路复用技术&#xff0…

如何用3个月零基础入门网络安全?_网络安全零基础怎么学习

前 言 写这篇教程的初衷是很多朋友都想了解如何入门/转行网络安全,实现自己的“黑客梦”。文章的宗旨是: 1.指出一些自学的误区 2.提供客观可行的学习表 3.推荐我认为适合小白学习的资源.大佬绕道哈! →点击获取网络安全资料攻略← 一、自学…

函数递归那些事

什么是递归 递归就是函数自己调用自己,而递归的本质其实是一种解决问题的方法。 递归的思想 递归的思想是把复杂问题大事化小的过程。即把一个大型复杂的问题不断的拆分成与原问题相似,但规模较小的子问题,直到子问题不能被拆分&#xff0…

[Linux][OS][信号的保存和处理]

目录 信号的处理 1. 在内核中的表示 2. 相关概念 3. 信号集操作函数 4.sigprocmask 5.sigpending 信号的捕捉 重谈地址空间 信号的处理 1. 在内核中的表示 普通信号,多次产生只会记录一次 信号范围 [1,31],每一种信号都要有自己的一种处理方式…