ARM [ SoC&CPU CISC&RISC I/O与内存的编址 ] 相关概念

一、CPU设计方式的发展历程

1. CISC

CPU ( central processing unit,中央处理器 )作为计算机系统的运算和控制核心,是信息处理、程序运行的最终执行单元。

计算机处理器包含有实现各种功能的指令或微指令,指令集越丰富,为微处理器编写程序就越容易,但是丰富的微指令集会影响其性能。复杂指令集计算机 (CISC) 体系结构的设计策略是使用大量的指令,包括复杂指令。与其他设计相比,在 CISC 中进行程序设计要比在其他设计中容易,因为每一项简单或复杂的任务都有一条对应的指令。程序设计者不需要写一大堆指令去完成一项复杂的任务。但指令集的复杂性使得CPU和控制单元的电路非常复杂

CISC 包括一个丰富的微指令集,这些微指令简化了在处理器上运行的程序的创建。指令由汇编语言所组成,把一些原来由软件实现的常用的功能改用硬件的指令系统实现,编程者的工作因而减少许多,在每个指令期同时处理一些低阶的操作或运算,以提高计算机的执行速度,这种系统就被称为复杂指令系统。

在 CISC 指令集的各种指令中,其使用频率却相差悬殊,大约有20%的指令会被反复使用,占整个程序代码的80%。而余下的80%的指令却不经常使用,在程序设计中只占20%。


2. RISC

RISC (精简指令集计算机) 设计方案,如它的名字所蕴涵的那样,有一个简化的指令集,该指令集提高处理器的效率但是需要有更复杂的外部程序RISC 结构优先选取使用频最高的简单指令,避免复杂指令;将指令长度固定,指令格式和寻地方式种类减少;以控制逻辑为主,不用或少用微码控制等措施来提高运算速度。

RISC 设计方案是根据John Cocke在IBM所做的工作形成的。John Cocke发现大约20%的计算机指令完成大约80%的工作。因此,基于RISC 的系统通常比 CISC 系统速度快。它的80/20规则促进了RISC体系结构的发展。

当然,和 CISC 架构相比较,尽管RISC架构有上述的优点,但不能认为 RISC 架构就可以取代 CISC 架构,事实上,RISC 和 CISC 各有优势,而且界限并不那么明显。现代的CPU往往采用 CISC 的外围,内部加入了 RISC 的特性,如超长指令集 CPU 就是融合了RISC和CISC的优势,成为未来的CPU发展方向之一。


简单地说:

  1. CISC CPU 功能扩展依赖于指令集的扩展,实质是CPU内部组合逻辑电路的扩展。几乎每一条指令都依靠设计相应的逻辑电路来实现对应的功能。因此, CISC CPU 工艺复杂,成本高,而且不适用于低功耗场景。

CISC 体系的设计理念是用最少的指令来完成任务(譬如计算乘法只需要一条MU儿指令即可),因此 CISC 的 CPU 本身设计复杂,
工艺复杂,但好处是编译器好设计。CISC 出现较早,至今Inteli还一直采用 CISC 设计。

  1. RISC CPU 仅提供基础功能指令(譬如内存与寄存器通信指令,基本运算与判断指令等),功能扩展由使用CPU的人利用基础架构来灵活实现。因此,RISC CPU 的工艺相对不复杂,成本也低,而且由于不像 RISC 那样包含大量的复杂组合逻辑电路,因此功耗也很低。

二、IO 与 内存

1. 概念

  • 内存是程序的运行场所,内存和CPU之间通过总线连接,CPU通过一定的地址来访问具体内存单元。
  • IO (input and output) 是输入输出接口,是CPU和其他外部设备(如串口、LCD、触摸屏、LED等)之间通信的道路。一般的,IO 就是指CPU的各种内部或外部外设

CPU 访问外设,一般指的就是 CPU 访问 外设设备的内部寄存器,从而实现 CPU 与 外设的数据交互和通信,而 IO 用来指 CPU 的各种内部或外部的设备。因此,我们把外设的设备寄存器,就称为 IO 空间。


2. IO 的访问方式

CPU 访问各种外设有2种方式:

  • 一种是类似于访问内存的方式,即把外设的寄存器当作一个内存地址来读写,从而以访问内存相同的方式来操作外设,叫 IO 与内存统一编址方式;

在这里插入图片描述

  • 另一种是使用专用的CPU指令来访问某种特定外设,叫 IO与内存独立编址。

三、SoC 与 CPU

SoC = System on Chip,意思是集成在单一个硅片上的系统。

芯片的发展方向:从 CPU 到 SoC。

现在已经没有纯粹的CPU了,都是SoC。

ARM出卖的内核其实就是CPU(当然还需要总线),各种外设是半导体厂商自己添加的。

在这里插入图片描述

图解:

1) 如左图,中间的红色部分就是 CPU,CPU 只包含控制逻辑和运算逻辑。如果想要正常工作,还需要连接各种外设控制器,如 UART 控制器,LCD 控制器,Nand 控制器; CPU 加上各种外设控制器,全都集成在一块 PCB 硬件板子上,CPU 与各种外设控制器的连接线是 PCB 走线。

这种形式称为板上系统,Systom on board。

2)如右图,其中的 “主要控制器和 CPU” 与左图相比,并无差异。只是这些 CPU 和外设控制器都是集成在一块芯片上,而且它们的连接线属于芯片内部总线。像这样 CPU和外设控制器全都集成在一块芯片上,就是片上系统,Systom on chip。


外设(Peripheral)
  • 外设就是外部设备
  • SoC中 外设大部分都跑进去 SoC 内部了
  • 网卡、音频编解码等个别还经常在 SoC 外面
  • 芯片设计的趋势是更大集成度,近年甚至将音视频编解码、DDR都集成进 SoC 内做成所谓单芯片解决方案。如海思Hi3518E
  • 裸机学习其实就是学习 SoC 的内核(CPU,表现为汇编指令集) 和各种外设(如串口)

ARM 是哈佛结构
  • 常见ARM(除ARM7外)都是哈佛结构的
  • 哈佛结构保证了 ARM CPU 运行的稳定性和安全性,因此 ARM 适用于嵌入式领域
  • 哈佛结构也决定了 ARM 裸机程序(使用实地址,即物理地址)的链接比较麻烦,必须使用复杂的链接脚本告知链接器如何组织程序;对于OS之上的应用(工作在虚拟地址之中) 则不需考虑这么多

注:源自B站朱有鹏老师.

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
CISC(Complex Instruction Set Computing)和RISC(Reduced Instruction Set Computing)是两种不同的计算机指令集架构。 CISC是一种复杂指令集计算机,它的指令集非常丰富,每个指令可以完成多个操作,包括数据加载、运算、存储和控制等。CISC架构的优点是可以实现高级语言的直接编译,使得编译器的设计变得简单,程序员可以用更少的代码实现更复杂的操作。但是,CISC指令集的实现比较复杂,需要较大的芯片面积和功耗,并且由于指令集的多样性,执行效率不如RISCRISC是一种精简指令集计算机,它的指令集非常简单,每个指令只能完成一个基本操作,如算术运算、逻辑运算、数据移动和分支控制等。RISC架构的优点是指令集简单,执行速度快,可以利用更少的周期完成相同的操作,从而提高了计算机的运行效率。此外,RISC指令集的实现比较简单,可以在较小的芯片面积和功耗下实现高性能。 RISC架构的主要特点包括: 1. 精简指令集:RISC指令集非常简单,每个指令只能完成一个基本操作,如算术运算、逻辑运算、数据移动和分支控制等。 2. 流水线技术:RISC架构采用流水线技术,将指令的执行划分为多个阶段,每个阶段可以并行执行不同的指令,从而提高了计算机的运行效率。 3. 寄存器窗口:RISC架构采用寄存器窗口技术,将寄存器划分为多个不同的窗口,每个窗口可以存储不同的数据,从而提高了程序的并发性和执行效率。 4. 延迟槽技术:RISC架构采用延迟槽技术,将分支指令的执行延迟到下一个指令周期,从而避免了流水线的停顿,提高了计算机的运行效率。 总之,RISC架构的特点是指令集简单、执行速度快、流水线技术和寄存器窗口等技术的采用,从而提高了计算机的运行效率和执行效率。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值