你知道X86构架,你知道SH构架吗?
https://www.eefocus.com/mcu-dsp/363100
前面我们讲到了 8 位处理器,32 位处理器,以及 X86 构架,那么除了这些还有哪些构架呢?我们知道日本也是以电子产业著名的国度,那么在标准上一定有他们的一笔,今天我们就来讲讲 SH 构架。
SH 架构的发展
Sh 处理器又称 SuperH 处理器 ,最先由日本 Hitachi 公司开发,后由 Hitachi 及 ST Microelectronics 两家公司共同开发,2003 年,瑞萨科技从 Hitachi 公司继承到拥有权。
SuperH 的标识
Sh 属于 MCU 型的处理器。
1. 什么是 MCU?
MCU 是什么,看起来与前面关注的 CPU 有些相像,那么 MCU 和 CPU 有什么关系?它们的区别又在哪里?
别急,慢慢往下看。
首先回顾一下 CPU(Central Processing Unit,中央处理器)的发展,从上世纪 70 年代的 4 位到今天的 64 位,不论何时,它一直是计算机的核心,其重要性好比大脑对于人一样,因为它负责处理、运算计算机内部的所有数据,而主板芯片组则更像是心脏,它控制着数据的交换,同时,CPU 的种类决定了所使用的操作系统和相应的软件。
众所周知,20 世纪 70 年代出现的微型计算机,在科学技术界引起了影响深远的变革。但是大家未必知道,在 70 年代中期,微型计算机家族中又分裂出一个小小的派系——单片机(MCU,Micro Controller Unit)。
与 CPU 的发展一样,随着 4 位单片机出现之后,又推出了 8 位的单片机。MCS-48 系列,特别是 MCS-51 系列单片机的出现,确立了单片机作为微控制器(MCU)的地位,引起了微型计算机领域新的变革。
从上面的发展可以看出,MCU 源自 CPU,到目前为止,CPU 发展出来三个分枝,一个是 DSP(Digital Signal Processing/Processor,数字信号处理),另外两个是 MCU(Micro Control Unit,微控制器单元)和 MPU(Micro Processor Unit,微处理器单元)。
在当今世界上,微处理器(MPU)和微控制器(MCU)形成了各具特色的两个分支。它们互相区别,但又互相融合、互相促进。与微处理器(MPU)以运算性能和速度为特征的飞速发展不同,微控制器(MCU)则是以其控制功能的不断完善为发展标志的。
如今 MCU 已经自成体系,而且发展日益壮大,引发了越来越多的关注,其种类之多,应用之广泛已经超越了 CPU。
MCU(Micro Controller Unit),又称单片微型计算机(Single Chip Microcomputer),简称单片机。是指随着大规模集成电路的出现及其发展,将计算机的 CPU、RAM、ROM、定时数器和多种 I/O 接口集成在一片芯片上,形成芯片级的计算机。
MCU 按其存储器类型可分为无片内 ROM 型和带片内 ROM 型两种。对于无片内 ROM 型的芯片,必须外接 EPROM 才能应用;带片内 ROM 型的芯片又分为片内 EPROM 型、MASK 片内掩模 ROM 型、片内 FLASH 型等类型。
本是同根生,那么 MCU,MPU 和 DSP 三者之间的差别区别在哪里呢?请看下面的表格:
区别 | 特点 | |
MPU | 是高度集成的通用结构的处理器。 | 不带外围器件(例如存储器阵列),是去除了集成外设的 MCU |
MCU | MPU+集成了片上外围器件, 适合不同信息源的多种数据的处理诊断和运算。 | 通用性强,侧重于控制,速度并不如 DSP |
DSP | 运算能力强。 | 擅长很多的重复数据运算 |
MCU 区别于 DSP 的最大特点在于它的通用性,反应在指令集和寻址模式中。DSP 与 MCU 的结合是 DSC,它终将取代这两种芯片。
总结一下:
MCU=MPU + 外设;
DSC = DSP+MCU;
因此,可以得出这样的结论:
DSC = DSP+ MPU + 外设。
是这样吗?
看到这里,想必下面的问题便迎刃而解了:同样具有运算和控制能力的 MCU、CPU 和 DSP,三者之间是什么关系?
这个问题的关键点在于它们的不同之处:运算处理能力,以及侧重的应用领域。基于上面的观点,把三者的差异,各自简单地归纳为一句话:
MCU 专注于工业控制,功能简单,有一个(算数逻辑运算单元),成熟的经典的是 8051。
CPU 功能强大,但是不侧重于任何一点,优势均衡,适合于对于处理没有严格要求的复杂系统,成熟经典的是 x86、ARM 体系。
DSP 专注于数据处理,有多个 ALU,多用于多媒体应用等,需要大数据量的地方。
强调一点:MCU、CPU 和 DSP 三者按处理能力来排列是正序,但是基本的原理是一致的。所以,如果打算学习的话,那么建议从相对简单的 MCU 入门,这是明智的选择。
2. RISC 和 CISC
现在继续进行有关 SuperH 的话题。
SuperH 是一种性价比、体积小、功耗低的 32 位、64 位的 RISC 嵌入式微处理器,可以广泛应用到消费电子、汽车电子、通信设备等领域。
RISC,这里再次提到了 RISC,在深入了解 SuperH 之前,有必要先解释一下“RISC”。
RISC(Riduced Instruction Set Computer)精简指令集计算机。简单,总是相对而言的,那么复杂指令集计算机是什么呢?
CISC(Complex Instruction Set Computer)复杂指令集计算机。
那么所谓的“精简”,精简在哪里?所谓的“复杂”,是在哪些方面复杂呢?别急,详见下文。
RISC 是精简指令集 CPU,指令位数较短,内部还有快速处理指令的电路,使得指令的译码与数据的处理较快,所以执行效率比 CISC 高,不过,必须经过编译程序的处理,才能发挥它的效率。
例如,大家都知道的 IBM 的 Power PC 为 RISC CPU 的结构。
除此之外,经常见到的 PC 中的 CPU,Pentium-Pro(P6)、Pentium-II,Cyrix 的 M1、M2、AMD 的 K5、K6 实际上是改进了的 CISC,也可以说是结合了 CISC 和 RISC 的部分优点。
现在有必要把两者放在一起,比较一下,这样看起来更加一目了然,见下表。
RISC 与 CISC 的主要特征对比表
比较内容 | CISC | RISC |
指令系统 | 复杂,庞大 | 简单,精简 |
指令数目 | 一般大于 200 | 一般小于 100 |
指令格式 | 一般大于 4 | 一般小于 4 |
寻址方式 | 一般大于 4 | 一般小于 4 |
指令字长 | 不固定 | 等长 |
可访存指令 | 不加限制 | 只有 LOAD/STORE 指令 |
各种指令使用频率 | 相差很大 | 相差不大 |
各种指令执行时间 | 相差很大 | 绝大多数在一个周期内完成 |
优化编译实现 | 很难 | 较容易 |
程序源代码长度 | 较短 | 较长 |
控制器实现方式 | 绝大多数为微程序控制 | 绝大多数为硬布线控制 |
软件系统开发时间 | 较短 | 较长 |
如果到这里对于 RISC 与 CISC 还是不清楚的话,那么请记住下面的这句话:
对于 CISC 和 RISC 的实现而言,它们所侧重的复杂性不同:CISC 处理器的实现复杂性更高,而 RISC 编译器的复杂性更高。
那么一个新的问题来了,为什么需要 RISC 呢?
当使用高级语言进行程序设计时,编译器为了兼容早期的 CPU,一般不会生成特殊的复杂指令。
如果舍弃这些不常用的复杂指令,就能简化 CPU 的设计。这正是 RISC 的出发点。
下面从纯技术的角度出发,来概括 RISC 的特点:
1)RISC 指令系统较小:种类的数量较少,只提供简单指令。这些指令大多都能在 4,5 个时钟周期内完成。
2)指令的操作数必须预存于寄存器中,这样取指操作的时间也统一了。
3)指令长度,寻址方式,格式都整齐划一:这样可以充分利用流水线,基本上可实现一个时钟脉冲执行一条指令的目标。
4)RISC 的子程序调用与 CISC 的不同:在 CISC 中,程序调用、返回时需将上下文保存在堆栈中,需要内存操作。而 RISC 将它们存放在寄存器中,而且参数也使用寄存器传递 。
5)RISC 中断可视为特殊的子程序链接:CISC 中发生中断时,所有的寄存器内容都被压入堆栈,而 RISC 对中断进行区分对待,分为轻量级和重量级。对轻量级中断 只保存需要保存的寄存器内容;对重量级中断的处理如同常规中断。