CPU体系结构

指令系统分类

两类指令系统体系结构:

  • CISCComplex Instruction Set Computer,复杂指令集计算机)
    • 可变的指令长度,支持更复杂的指令长度
  • RISCReduced Instruction Set Computer,精简指令集计算机)
    • 固定的指令长度(32-bit,即1 word)
    • 简单的寻址模式
    • 指令数量少,指令功能简单(一条指令只完成一个操作)
    • 只有LoadStore指令可以访问存储器

指令系统发展

  • 微指令(Micro-Instructions/Micro-Ops) x86核心问题是要始终向前兼容 x86 的指令集,那么我们能不能不修改指令集,但是让 CISC 风格的指令集,用 RISC 的形式在 CPU 里面运行呢? 从 Pentium Pro 时代开始,Intel 就开始在处理器里引入了微指令(Micro-Instructions/Micro-Ops)架构。而微指令架构的引入,也让 CISC 和 RISC 的分界变得模糊了。

在微指令架构的 CPU 里面,编译器编译出来的机器码和汇编代码并没有发生什么变化。但在指令译码的阶段,指令译码器“翻译”出来的,不再是某一条 CPU 指令。译码器会把一条机器码,“翻译”成好几条“微指令”。这里的一条条微指令,就不再是 CISC 风格的了,而是变成了固定长度的 RISC 风格的了。

这些 RISC 风格的微指令,会被放到一个微指令缓冲区里面,然后再从缓冲区里面,分发给到后面的超标量,并且是乱序执行的流水线架构里面。不过这个流水线架构里面接受的,就不是复杂的指令,而是精简的指令了。在这个架构里,我们的指令译码器相当于变成了设计模式里的一个“适配器”(Adaptor)。这个适配器,填平了 CISCRISC 之间的指令差异。

为减少译码时间,Intel 就在 CPU 里面加了一层 L0 Cache。这个 Cache 保存的就是指令译码器把 CISC 的指令“翻译”成 RISC 的微指令的结果。于是,在大部分情况下,CPU 都可以从 Cache 里面拿到译码结果,而不需要让译码器去进行实际的译码操作。这样不仅优化了性能,因为译码器的晶体管开关动作变少了,还减少了功耗。

CPU体系结构

四大CPU体系结构:

  • x86/Atom x86或80x86是英代尔Intel首先开发制造的一种微处理器体系结构的泛称。 X86则是基于复杂指令集(CISC)的架构,Atom是x86或者是x86指令集的精简版。 Intel Atom(中文:凌动,开发代号:Silverthorne)是Intel的一个超低电压处理器系列。
  • ARM ARM架构,过去称作进阶精简指令集机器(Advanced RISC Machine,更早称作:Acorn RISC Machine),是一个32位精简指令集(RISC)处理器架构,其广泛地使用在许多嵌入式系统设计。
  • MIPS MIPS的意思是“无内部互锁流水级的微处理器”(Microprocessor without interlocked piped stages),其机制是尽量利用软件办法避免流水线中的数据相关问题。它最早是在80年代初期由斯坦福(Stanford)大学Hennessy教授领导的研究小组研制出来的。MIPS 采用精简指令系统计算结构(RISC)来设计芯片。
  • PowerPC PowerPC 是一种精简指令集(RISC)架构的中央处理器(CPU),其基本的设计源自IBM(国际商用机器公司)的IBM PowerPC 601 微处理器POWER(Performance Optimized With Enhanced RISC;《IBM Connect 电子报》2007年8月号译为“增强RISC性能优化”)架构。

CPU开源

  • MIPS https://www.mips.com/ 2019 年 MIPS 宣布开源。
  • RISC-V https://riscv.org/ RISC 概念的发明人,图灵奖的得主大卫·帕特森教授从伯克利退休之后,成了 RISC-V 国际开源实验室的负责人,开始推动 RISC-V 这个“CPU 届的 Linux”的开发。

市场前景

  • 台式机和服务器,采用x86处理器较多, 目前基本由 IntelAMD 占据,世界上最大的两家x86x86-64的CPU厂家。
  • 移动端,安卓支持三类处理器(CPU):ARMx86MIPSARM无疑被使用得最为广泛。 x86因为普及于台式机和服务器而被人们所熟知,然而对移动行业影响力相对较小。 MIPS在32位和64位嵌入式领域中历史悠久,获得了不少的成功,可目前Android的采用率在三者中最低。

by 斯武丶风晴 https://my.oschina.net/langxSpirit

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • 入门Android Studio使用笔记

    1、gradle是什么鬼? 类似maven的项目构建工具。 2、如何build-class ? 使用 Sync  ? 或者 Build  ? 3、如何模拟测试?...

    斯武丶风晴
  • HDD机械硬盘的性能

    注:事实上还有一个传输时间(同样位于公式的分母),即完成传输所请求的数据所需要的时间,它取决于数据传输率,其值等于数据大小除以数据传输率。由于主流的SAS、SA...

    斯武丶风晴
  • SSD固态硬盘的性能与可靠

    存储的比特数越多,能表示的数据(电压)越多,需要电压计更高精度的控制,因此读写速度有一定程度的降低。

    斯武丶风晴
  • 忘记oracle的sys用户密码怎么修改

    Java学习123
  • What happened after Master Data work center is clicked

    版权声明:署名,允许他人基于本文进行创作,且必须基于与原先许可协议相同的许可协议分发本文 (Creative Commons)

    Jerry Wang
  • 企业部署混合云亟需考虑的4大要点

    云计算的兴起对于各行各业可谓是一大福音。由于混合云具有的公共云优势,而且它还让企业用户能够充分利用内部部署私有云的附加安全性和可控性,2015年各类规模的企业都...

    静一
  • 程明明教授:关于文献阅读和科研选题

    程明明,1985年生。2012年博士毕业于清华大学,之后在英国牛津从事计算机视觉研究,并于2014年回国任教,2016年起任南开大学教授,国家“万人计划”青年拔...

    Amusi
  • TCP中的数据是怎么传输的?

    以Rlogin为例,它每次传到服务器的是一个字节的按键,并且要求服务器回显客户端输入的字符。理论上完整的交互包括4个报文段:

    爬蜥
  • 力扣287——寻找重复数

    给定一个包含 n + 1 个整数的数组 nums,其数字都在 1 到 n 之间(包括 1 和 n),可知至少存在一个重复的整数。假设只有一个重复的整数,找出这个...

    健程之道
  • day58-Django基础-初识Django

    少年包青菜

扫码关注云+社区

领取腾讯云代金券