第一节 CPU体系结构

1.1 CPU体系结构定义

CPU体系结构可以指基于某一类CPU的计算机硬件系统给运行于其之上的软件提供的接口和界面。

从程序员的角度来看,CPU体系结构是指程序员能观察到的基于某一类CPU的计算机硬件系统具有的共同属性。如果一个二进制软件可以能直接运行在两台计算机系统之上,而且无论花费多少运行时间,所获得的结果完全相同,那么这两台计算机硬件系统具有相同的CPU体系结构。具有相同CPU体系结构的计算机硬件系统,将具有相同的软件运行结果;软件运行的速度主要取决于CPU的实现技术和计算机的组成技术。
从CPU设计者角度来看,CPU体系结构涉及到数据表示、寻址模式、通用寄存器、CPU系统寄存器、指令集、CPU状态、CPU权限级、内存子系统等各种组件;这些组件看似独立,但相互之间的关联性很大。例如,指令集本身就依赖数据表示、寻址模式、通用和CPU系统寄存器;CPU状态又和CPU系统寄存器,CPU权限级有密切关系等等。

1.2 CPU体系结构分类

CPU体系结构可以分为两大类:复杂指令集体系结构CISC,例如X86_64体系结构;精简指令集体系结构RISC,除了X86之外的其他体系结构,例如ARM64、MIPS64和PowerPC等,都属于RISC体系结构。
CISC和RISC体系结构具有以下主要差别。

首先,从指令编码长度来看,CISC采用了变长指令编码长度;RISC一般采用等长指令编码,通常采用32位指令编码长度。
其次,CISC没有定制专门的访存指令,算术指令都可以直接寻址内存单元;而RISC有专门定制的访存指令,其他指令不能直接访问内存单元。
另外,CISC将内存空间和IO空间相互独立编址,因此具有两个完全独立的内存空间和IO空间,并实现专用IO空间访问指令;而RISC将内存和IO进行统一编址,内存和IO都是在同一个地址空间上不同范围,内存单元和IO端口的都采用相同的专门访存指令进行访问。
还有,CISC体系结构的指令数量远远多于RISC体系结构;CISC体系结构提供的通用寄存器一般也少于RISC;大多数RISC对数据有严格的对齐要求,而CISC没有这方面的限制。

1.3 CPU位宽

CPU的位宽主要是指程序员编程的数据宽度和地址宽度,CPU位宽取决于两个设计因素:其一,通用寄存器的最大位宽;其二,访存指令寻址时的地址位宽。
需要特别说明的是,CPU位宽并不依赖于CPU系统寄存器的宽度,也不依赖于CPU物理地址宽度。上世纪九十年代主流是32位的CPU;当前绝大多数通用CPU是64位的并且向前兼容32位,单纯32位CPU一般应用于嵌入式。

1.4 ARM体系结构

ARM体系结构是一种精简指令集体系结构RISC,具有以下基本特点:通用寄存器数量较多;采用load/store专用访存指令,其他指令不能直接访问地址单元,地址由寄存器或指令本身决定;内存单元地址和外设端口号采用统一编址方式,系统主存和外设统一分布在CPU物理地址空间的不同范围。
飞腾CPU遵循的ARMv8标准架构,所有的指令编码长度为32位,支持64位虚拟地址,4个权限级,支持64位执行状态并兼容32位执行状态。本文重点介绍飞腾CPU的64位执行状态AArch64。

飞腾CPU体系结构(一)相关推荐

  1. 飞腾CPU体系结构(九)

    飞腾CPU体系结构(九) 向量访存指令主要包括LD1/ST1. LD2/ST2.LD3/ST3和LD4/ST4四种. LD1/ST1一般针对一个向量寄存器,也有两个.三个或四个向量寄存器的模式. LD ...

  2. 飞腾CPU体系结构(八)

    飞腾CPU体系结构(八)--标量访存指令 在阅读之前,请先查看<飞腾CPU体系结构(五)>的SIMD和浮点寄存器.飞腾CPU还提供了32个128 位SIMD和浮点寄存器,这32个128位寄 ...

  3. 飞腾CPU体系结构之虚拟地址

    飞腾CPU体系结构之虚拟地址 1. 基本概念 虚拟地址:程序运行时指令和数据对应的地址. 虚拟地址空间:一个进程运行时指令和数据能访问到的虚拟地址范围. 注意事项: 每个进程拥有自己的虚拟地址空间,进 ...

  4. 飞腾CPU体系结构简单介绍(一)

    第一章 飞腾CPU体系结构简介 ARM体系结构是一种精简指令集体系结构RISC,具有以下基本特点:通用寄存器数量较多:采用统一寻址模式,系统主存和外设分布在CPU物理地址空间的不同范围:采用load/ ...

  5. 飞腾CPU体系结构(十)

    飞腾CPU体系结构(十) 1.高速缓存模型 为了优化整体性能,飞腾CPU芯片内部提供L1高速缓存和L2高速缓存,有些飞腾CPU也提供芯片内部的L3高速缓存,本节不对这个情况进行赘述. 靠近流水线的高速 ...

  6. 飞腾CPU体系结构之低功耗指令

    飞腾CPU体系结构之低功耗指令 WFE和WFI指令 当飞腾CPU核执行两类指令:WFE或WFI之后,CPU核会进入低功耗状态: 一旦CPU核进入低功耗状态,就要一直保持低功耗状态直到相应的唤醒事件发生 ...

  7. 飞腾CPU体系结构(十二)

    飞腾CPU体系结构(十二) 1. CPU物理地址空间 飞腾CPU支持的物理地址宽度为44位,物理地址空间实际上只有16TB.系统主存(芯片外部内存)和IO外设(例如SoC设备.PCIe设备)都在这个物 ...

  8. 飞腾CPU体系结构(十四)

    飞腾CPU体系结构(十四) 1. MMU原理 MMU的大致工作原理是: 64位虚拟地址首先分成虚拟页帧号和页内偏移量两部分,虚拟页帧号即页表项索引:根据页表项索引,在进程的页表里查找到对应页表项,然后 ...

  9. 飞腾CPU体系结构(五)

    飞腾CPU体系结构(五)-- 通用寄存器 1. 64位通用寄存器 在AArch64执行状态下,飞腾CPU提供31个64位通用寄存器Xn(n=0/1/-/30),其中X30用作跳转链接寄存器. 某些指令 ...

  10. 飞腾CPU体系结构(十三)

    飞腾CPU体系结构(十三) 1. 虚拟地址到物理地址的映射 程序员编程一般都是使用虚拟地址,无论是否用到高速缓存,飞腾CPU的内存管理单元MMU都会把虚拟地址翻译成物理地址,然后根据物理地址进行数据的 ...

最新文章

  1. jar 包又冲突了?如何快速确定与哪个 jar 包冲突?
  2. 笔记-信息化与系统集成技术-区块链的特征
  3. Memcache mutex设计模式
  4. java流与文件——文本输入输出
  5. LeetCode 刷题笔记 (树)
  6. Python拾遗1:collections、itertools和内存io
  7. Spyder突然提示打开kernel时发生错误
  8. ARKit何以从同类技术中胜出?
  9. js头像裁剪实现——canvas+Jcrop+jQuery
  10. javascript 闭包理解总结
  11. pip缓存下载的包文件
  12. 微信浮窗是不是服务器保存,微信浮窗,能解决小程序留存难题吗?
  13. IDEA+Gradle搭建Spring Boot项目
  14. c语言实现模糊分类矩阵,模糊聚类分析C程序实现
  15. 《操作系统》之进程、线程、同步、死锁
  16. (每日一练C++)16. 最接近的三数之和
  17. vue图片查看器,支持放大 缩小 还原
  18. oracle 的导入导出,Oracle 导入导出详细介绍
  19. 前端展示中实现批量标签动态生成
  20. SpreadJS 纯前端表格控件应用案例:金融业数据智能分析平台

热门文章

  1. 前端-js- demo-作品集
  2. CA6140数控改造设计(数控示意总图+主轴箱装配图+纵向进给系统图+电气原理图+调隙式齿轮+横向进给系统图+横向丝杠支座+毕业设计说明书)
  3. 西安建6条地铁考验文物保护(组图)-西安-地铁-文物
  4. GPS/LBS定位技术
  5. 《统计学习方法》-读书笔记汇总贴(汇总27/27)
  6. 1602显示年月日c语言程序,1602LCD显示的秒表 C语言程序
  7. selenium中三大切换 三种等待方式
  8. Win11 桌面菜单无法创建记事本(.txt) 的解决办法
  9. 日志过大NotePad++无法打开
  10. SolidWorks二次开发类层次结构