当前位置: 首页 > ops >正文

ChipCamp探索系列 -- 4. Intel CPU的十八代微架构

进阶到CPU/RISC-V/GPU芯片设计之前,先梳理一下CPU架构的关键技术名词和术语,为此梳理了Intel CPU的十八代微架构。这些不是它的全部芯片,但却足以反映出现代高性能(面向桌面/服务器/通用应用的)处理器的微架构主流套路和技术术语。

以下链接是本次梳理的脉络参考:

https://en.wikipedia.org/wiki/List_of_Intel_CPU_microarchitectures

一、8086:显然没有流水线,但是对从第一性原理出发学习“如何制造计算机/CPU”却是一个很好的参考----计算机/CPU芯片,从架构原理这一级别,就是这样的/就是这么简单/要先无畏地看淡它----40多年前就可以造出计算机芯片现在应该人人都可以造出芯片&更不用说学习芯片设计。这里很有意思的一个地方是3和9,它们都是加法器,但一个是adderss加法器(对地址加一个立即数的偏移量获得新的地址),一个是用户数据的加法器,此前的关于RISC-V CPU的Chisel实现中就有这个问题/困惑/疑问。现在看来,这两者是公用,还是不共用,都是可以的&有先例的,后面还可以看到ALU和AGU的概念区分,也和这个有关。

二、80186:虽然没有看到流水线,但是外设接口+中断控制器+DMA的概念已经可以看出“通用计算”和“PC”的特征了。

三、80286:很清晰的模块划分,取指令-解码-执行-内存访问-写回这些流水线 特征已然可见。

四、80386:32位地址总线+32位数据总线+ALU里已经包含了乘除法。

五、80486:ALU+FPU亮点1。Cache亮点2。Micro-Instruction(即uop)亮点3。

六、Pentium(P5):64bit数据宽度。Branch-Target-Buffer预示着分支预测。

七、Pentium(P5) MMX:ALU+FPU+MMX Unit(整数+浮点数+向量)并列的计算部件!!

八、NetBurst (Pentium 4):ucode/uop亮点1。rename/dispatch/ROB亮点2。LoadStore和ExeEngine的“并列”关系,可能和后面AGU的概念是类似的,从内存到缓存的控制越发重要。

九:Core2(始于2006年的多核处理器微架构):保留站RS。L2共享缓存+L1分离缓存。

十、Nehalem微架构2008:uOP中的RAT+Retirement。MOB在上一幅图也有!

十一、Westmere微架构2010年:集成了GPU(显卡而非AI)。

十二、Sandy Bridge微架构2011:似乎和前面的一个图一样只是指标变大了。

十三、Ivy Bridge微架构2012:似乎和前面的一个图一样只是指标变更大了(L2Cache->L1ICache)。

换一个风格的图:

十四:SkyLake微架构2015:又又又变大了L2Cache->L1ICache之间的吞吐。

十五、Sanny Core微架构2019年(9代i7这样的):AVX-512单拎出来高亮。

十六、Golden Cove微架构2021:从图上看Vector Execution分离出来了。

十七、Raptor Lake微架构2022:这个GPU大概也是显卡而非AI。

十八、Lion Cove微架构2024:

从远古到现代的CPU微架构的核心技术名词总结和预告:

五级流水线:IF(取值),ID(指令解码),EX(指令执行),MEM(内存访问),WB(写回)。

超标量流水线:uCode(微码),uop(微操作),X Way(多路),ROB(重排序缓冲),Scheduler(调度器),Rename(重命名)、Dispatch(分发)、Issue(发射)、RS(保留站)、Retirement(退休)。

计算单元:ALU(算术裸机单元)、FPU(浮点处理单元)、Vector(向量处理单元)、AGU(地址生成单元)、LSU(加载和存储单元)、MUL/DIV(乘法/除法)。

内存和缓存:L2 Cache通常是统一缓存(地址和指令不分开),而L1 Cache则是指令和数据分开的(I Cache和D Cache)。L2-L1的Cache搬移带宽吞吐有“挤牙膏”的空间。

这些将成为下一步探讨“如何设计出/如何造出”高性能超标量CPU芯片,以及为此要理解CPU芯片的代码,做一个铺垫。Cheers。

http://www.xdnf.cn/news/18507.html

相关文章:

  • 【React Native】自定义轮盘(大转盘)组件Wheel
  • 【KO】前端面试题四
  • 今日科技热点 | 量子计算突破、AI芯片与5G加速行业变革
  • PLECS 中使用 C-Script 来模拟 NTC 热敏电阻(如 NTC3950B)
  • 【K8s】整体认识K8s之Docker篇
  • 百度面试题:赛马问题
  • 嵌入式LINUX-------------数据库
  • 循环中的阻塞风险与异步线程解法
  • 搜索体验优化:ABP vNext 的查询改写(Query Rewrite)与同义词治理
  • 前端安全之XSS和CSRF
  • 鸿蒙异步处理从入门到实战:Promise、async/await、并发池、超时重试全套攻略
  • 互联网大厂Java面试实战:核心技术栈与场景化提问解析(含Spring Boot、微服务、测试框架等)
  • 量子计算驱动的Python医疗诊断编程前沿展望(中)
  • RabbitMQ面试精讲 Day 28:Docker与Kubernetes部署实践
  • Git checkout 与 Git reset 核心区别解析(分支与版本关联逻辑)
  • 如何在 Spring Boot 中安全读取账号密码等
  • 技术演进中的开发沉思-75 Linux系列:中断和与windows中断的区分
  • 【python与生活】如何自动总结视频并输出一段总结视频?
  • 基于 FastAPI 和 OpenFeature 使用 Feature Flag 控制业务功能
  • Js逆向 拼夕夕anti_content
  • 【读代码】SQLBot:开源自然语言转SQL智能助手原理与实践
  • 怎样避免游戏检测到云手机?
  • 深入浅出:图解 glibc —— 系统与应用的沉默基石
  • 【知识】Elsevier论文接收后的后续流程
  • 可预约体验 | 一句话生成全栈应用,网易CodeWave智能开发能力全新升级!
  • TDengine IDMP 应用场景:工业锅炉监控
  • 资深产品经理个人能力提升方向:如何系统化进阶与考证规划
  • Maven快速入门
  • Day26 树的层序遍历 哈希表 排序算法 内核链表
  • 数据库服务语句应用