现代处理器设计学习笔记(二)

现代处理器设计——超标量处理器基础1-4 现代处理器设计——超标量处理器基础(1-4) 体系结构(architecture):通常称为指令集体系结构,对指令集处理器的指令集合进行说明,并定义处理器的功能性行为。 逻辑实现:体系结构的具体设计,也称为微体系结构(microarchitecture)。某种体系结构在其ISA的生命周期内可以有多种逻辑实现。逻辑实现通常在硬件中实现,对软件透明。 物理实现:设计的具体物理表现形式。对于微处理器... 阅读详情

1 流水线局限性

1)流水线地每一段可以看作是一个组合逻辑F加上一个锁存器L,信号通过F后在L锁存;

        T_MAX通过F地最大传输延迟;

        T_MIN通过F地最小传输延迟;

        T_L正确建立时钟信号所需要地额外时间,包括必要地建立和保持时间。

时钟周期 T > T_MAX - T_MIN + T_L

T_MAX - T_MIN可以趋向于0(延长最小传输路径)

T_L受整个系统内时钟信号分布影响;

性能权衡:流水线深度和价格;

2 指令流水线

指令周期:逻辑概念,处理一条指令地时间延迟;

机器周期:物理概念,流水线的时钟周期;

1)一致的运算分量

        量化流水段,将指令周期分解成多个机器周期的过程。

        尽量减少内部碎片,对存储器的访问是关键,寻址方式优化;

        保持流水线均衡;

2)重复的运算

        多功能流水线,处理多种不同的指令,减少每种指令的无效或空闲的机器周期

        即减少外部碎片,要对不同指令需要的子运算序列资源进行整合。

        统一指令类型;

3)独立的运算

        减少流水线停顿,内部机制检测指令间发生的相关,并保证指令相关不会导致错误。

        尤其是存储器访问有关,指令相关有可能导致流水线停顿,导致失效。

3 流水线处理器

1)流水线保持均衡;

取指 --> 译码 --> 执行 --> 访存 --> 回写

取值 --> 译码 --> 取操作数 --> 执行 --> 存储

基本的是分为5个分量,但不局限;

量化流水线可以将多个分量合成一个分量,也可以将1个分量进一步分成多个分量;

同时需要考虑硬件能力,一个机器周期内可以处理几次读写请求;

2)指令类型统一

指令分成3种类型:

ALU指令:完成算数和逻辑运算;(寄存器)

ld/st指令:完成数据在寄存器及存储器间的移动;(memory,带偏移的寄存器寻址)

分支指令:控制指令执行的顺序;(PC相对寻址,带偏移的寄存器寻址)

 

资源整合为6级流水,load使用6级,其他3种指令使用5级;

ALU:一个空闲周期MEM

ST:不需要WB

branch:不需要WB

三个优化目标:

1. 减少所有指令类型需要的资源总量

2. 提高所有流水段的利用率

3. 减少每种指令类型的总延迟(如果某指令的空闲周期不可避免,尝试把它放到流水线末尾)

3)流水线停顿减少

如果有指令相关,化解相关可能会导致流水线停顿;

真相关:RAW,先写后读

反相关:WAR,先读后写

输出相关:WAW,写后写

存储器数据相关/寄存器数据相关/控制相关

1. 停止执行发生相关的指令,并保证对相关寄存器的读写是按正常顺序进行的;

2. 通过定向路径减少开销:新增物理的定向路径 forwarding path输出数据;

3. 流水线互锁机制:检测出所有的流水线相关,并保证所有相关得到满足;

4 流水线处理器

1)RISC

        以MIPS 32bit为例

 

 2)CISC

 

计组(8)CPU的优化——流水线设计 流水线技术和其他技术一样,都讲究一个“折衷”。一个合理的流水线深度,会提升我们 CPU 执行计算机指令的吞吐率。我们一般用 IPC来衡量 CPU 执行指令的效率。IPC其实就是CPI的倒数。因为数据的依赖关系和指令先后执行的顺序问题,很多时候,流水线不得不“阻塞”在特定的指令上。即使后续别的指令,并不依赖正在执行的指令和阻塞的指令,也不能继续执行。而乱序执行,则是在指令执行的阶段通过一个类似线程池的保留站,让系统自己去动态调度先执行哪些指令。这个动态调度巧妙地解决了流水线阻塞的问题。 阅读详情

相关推荐

《大话处理器》简要学习笔记

这本书介绍了处理器的方方面面,是初学者必读书之一 第1章漫游计算机世界 你对以往知道的越多,对未来就看的越远。 --丘吉尔 如果人们不相信数学很简单,那时因为他们没有认识到生活有多复杂。--冯诺依曼   1.1计算机前世、今生、来世 1、计算机之父,3个人,最出名的是冯诺依曼,更好的称他们为“计算机之叔” 2、程序思想:计算机是织布机的后代 3、计算机第一人:巴贝奇,机械结

u013106054的专栏 1411

现代处理器设计学习笔记(一)

1)基本概念 ISA:指令集体系结构 Instruction-Set Architecture 不同类型的ISA不同点主要集中在如何定义操作类型以及操作数上。 ISA定义一套汇编指令,每条指令都指定一种操作类型和一个或多个操作数。 2)处理器性能公式 指令/程序:instruction/program,特定的程序需要执行的动态指令的数目 周期数/指令:cycles/instruction,平均执行每一条指令需要耗费的时钟周期数 一般由CPI表...

叮咯咙咚呛36的博客 445

现代处理器设计

无水印,有书签,完整版! 主要讲述现代处理器超标量设计的原理!

NIOS II入门学习笔记【一】--- NIOS II软核处理器开发入门

Intel FPGA Nios II处理器设计开发流程。

qq_33931911的博客 1万+

现代处理器设计Modern Processor Design

现代处理器设计--超标量处理器基础Modern Processor Design Fundamentals of Superscalar Processors,中英文版

现代处理器设计 超标量处理器基础 PDF

《超标量处理器设计》讲述超标量(SuperScalar)处理器的设计,现代的高性能处理器都采用了超标量结构,大至服务器和高性能PC的处理器,小至平板电脑和智能手机的处理器,无一例外。《超标量处理器设计》以超标量处理器的流水线为主线展开内容介绍。《超标量处理器设计》主要内容包括超标量处理器的背景知识、流水线、顺序执行和乱序执行两种方式的特点;Cache的一般性原理、提高Cache性能的方法以及超标量处理器中的Cache,尤其是多端口的Cache;虚拟存储器的基础知识、页表、TLB和Cache加入流水线后的工作流程;分支预测的一般性原理、在超标量处理器中使用分支预测时遇到的问题和解决方法以及如何在分支预测失败时对处理器的状态进行恢复;一般的RISC指令集体系的简单介绍;指令解码的过程,尤其是超标量处理器中的指令解码;寄存器重命名的一般性原理、重命名的方式、超标量处理器中使用寄存器重命名时遇到的问题和解决方法以及如何对寄存器重命名的过程实现状态恢复;指令的分发(Dispatch)和发射(Issue)、发射过程中的流水线、选择电路和唤醒电路的实现过程;处理器中使用的基本运算单元、旁路网络、Cluster结构以及如何对Load/Store指令的执行过程进行加速;重排序缓存(ROB)、处理器状态的管理以及超标量处理器中对异常的处理过程;经典的Alpha21264处理器的介绍。在本书中使用了一些现实世界的超标量处理器作为例子,以便于读者加深对超标量处理器的理解和认识。 《超标量处理器设计》可用作高等院校电子及计算机专业研究生和高年级本科生教材,也可供自学者阅读。

RISC-V学习笔记【协处理器】

RISC-V扩展指令子集 RISC-V具有很高的可扩展性,既预留出了指令编码空间,也提供了预定义的Custom指令 RISC-V的标准指令集仅使用了少部分指令编码空间,更多的指令编码空间被预留给用户进行扩展指令 用户可向自己的RISC-V内核中加入16位宽和32位宽的不同指令,每个指令的编码空间除了用于寄存器操作数的索引外,还剩余众多位的编码空间,这些未定义的编码空间可以通过自定义指令加以利用,这也就让RISC-V灵活性得到了很大提高,为FPGA实现软核与挂载附加硬件加速电路提供方便。总体上来说用户可使用的

qq_40500005的博客 4004

现代处理器的核心技术与基本结构

现代处理器的核心技术与基本结构现代处理器的核心技术与基本结构

【20】面向流水线的指令设计(上):一心多用的现代CPU

单指令周期处理器:程序的 CPU 执行时间 =指令数×CPI×时钟周期时间 中的CPI为1【每条指令的平均时钟周期数(Cycles Per Instruction,简称 CPI)】,即 在一个时钟周期内,处理器正好能处理一条指令。 现代的手机和电脑CPU都不使用 单指令周期处理器。 现代处理器的流水线设计:指令流水线(Instruction Pipeline),可提升 CPU 的吞吐率;类似产线的流水线;现代的 ARM 或者 Intel 的 CPU,流水线级数都已经到了14

星Yeah 的博客 771

保姆级教程:在STM32CubeIDE上快速部署micro_ros到STM32F407(附常见问题解决)

本文提供了一份详细的保姆级教程,指导开发者如何在STM32CubeIDE上快速部署micro_ros到STM32F407微控制器。内容涵盖从Windows与Ubuntu双环境搭建、micro-ROS静态库编译、STM32CubeIDE工程深度集成,到串口通信联调与常见问题解决的完整流程,旨在帮助读者构建稳定可靠的ROS2与嵌入式设备通信系统。

o4p5q6r7s的博客 323

ESP32S3电池电量监测实战:从分压电路到IDF组件配置(附GitHub源码)

本文详细介绍了ESP32S3电池电量监测的完整实战方案。从硬件分压电路的电阻选型、滤波设计,到软件层面利用ESP-IDF的ADC校准机制提升精度,并重点讲解了如何集成bat_monitor开源组件快速实现电压采集、电量计算、充电检测与事件通知。文章提供了从原理到调试的完整指南和GitHub源码,帮助开发者构建稳定可靠的物联网设备电源管理系统。

ee345的博客 530

(学习笔记)第四章 处理器体系结构

计算机体系结构核心在于理解指令集架构(ISA)作为软硬件契约的关键作用。现代处理器通过并行执行机制突破顺序执行模型限制,Y86-64指令集作为教学工具简化了x86-64的复杂性。学习处理器设计具有多重价值:理解计算机系统原理、培养工程思维、掌握嵌入式开发基础。本章采用渐进式教学路径:从顺序处理器到流水线优化,通过HCL语言描述硬件控制逻辑,配合模拟工具实现理论验证。重点揭示抽象模型与物理实现的辩证关系,以及如何通过指令级并行提升性能,为后续内存系统等学习奠定基础。

2302_78081749的博客 758

金蝶云星空初级实施认证考题

Q4.[单选题] (1.5分) 总账中的多账簿账表主要是基于什么进行查看的Q47.[多选题] (2.5分) 销售订单的收款计划页签勾选预收之后,预收控制环节可以控制哪些节点?

m0_51994557的博客 3120

[学习笔记:处理器设计]寄存器重命名

寄存器重命名(Register Rename) 重命名缓存类型(Rename Buffer Type) merged architectural and rename register file 每个物理寄存器处于4状态中的一个,4个状态如下: available: uncommitted state AR(architectural register): 作为指令集寄存器 RB(rena...

poena的博客 4284

PCIE Lane Margining Linux 环境配置

Copy all the provided files in folder PYC38 or PYC310 to the created pcie_lmt folder. Index of /ftp/python/3.8.10/Copy below commands to a file and rename it as "scan_pcie.py", the commands are from "685662 PCIe-LMT-Gen4_Gen5-r0p77.pdf" in the lane margi

mysongshine的博客 1436

Go游戏服务器开发的一些思考(一):语言层面

Go是比C++更好用的高级语言使用Go作为服务器开发的主语言前,首先需要对Go语言做下定性。在接触Go前,可能给人的印象(至少是我),Go是一门脚本语言。看了 官方文档 ,才知道Go是一门高级语言。与C++相比,它有以下优势: 面向接口的编程没有C++复杂的面向对象语法,如类、继承、多态、虚函数等等。Go中只有结构与接口,从语言层面上,直接指导功能与功能间的解耦。直接且语法简单 提供语言反射机制提供

范安崇的博客 9559

数字IC前端学习笔记:脉动阵列的设计方法学(二)

脉动结构(也称为脉动阵列)表示一种有节奏地计算并通过系统传输数据的处理单元(PEs)网络。这些处理单元有规律地泵入泵出数据以保持规则的数据流。因此,脉动阵列的特征是模块化和规则化,这对于VLSI设计来说是一个重要的性质。脉动阵列可以作为与主机配合的协处理器,从主机接收数据进行计算并将最终结果返回主机。这个操作类似心脏的血液流动,因此被称为“脉动”。

保持终身学习的能力,温故而知新 1977

系规备考论文:论IT服务规划设计

系规备考论文:论IT服务规划设计

liuxu324的博客 1144

《超标量处理器设计》学习笔记—第一章-超标量处理器概览

该文章是对《超标量处理器设计》(-姚永斌编著)的学习笔记整理,便于自学和回顾。更新速度不定,还是建议零基础的同学阅读原书。

qq_43186162的博客 1370

ZYNQ系列PS侧和PL侧DDR3或DDR4在AD(Altium Designer 25)中的layout布线规则约束

DDR3或DDR4的PCB布线规则通常有相对固定的要求,对应的,在PCB设计时有固定的约束设置。

FPGA艺术家的博客 787

时间序列预测 | 决策树时间序列预测建模,单步、多步(Python)

时间序列预测 | 决策树时间序列预测建模,单步、多步(Python)

天天酷科研的博客 744

现代操作系统学习笔记------计算机硬件1.处理器

处理器 计算机的“大脑”是CPU,从内存中取出指令并执行之。在每个CPU基本周期中,首先从内存中取出指令,解码以确定其类型和操作数,接着执行之,然后取指,解码并执行下一条指令。按照这一方式,程序被执行完成。 每个CPU都有一套可执行的专门指令集。 由于访问内存以得到指令或数据的时间比执行指令花费的时间长得多。因此,所有的CPU内部都有一些用来保存关键变量和临时数据的寄存器。 除了用来保存变量和临时结果的通用寄存器外,多数计算机还有一些对程序员可见的专用寄存器。其中之一是——程序计数器,它保存了将要取

m0_52427988的博客 527

ssm框架搭建

这个是一个在idea上成功跑起来的ssm框架项目,保存在这里方便以后使用直接下载

计算机组成原理的学习笔记(11)-- CPU·其三 中断和异常/多处理器相关概念

​本文主要是对于b站尚硅谷的计算机组成原理的学习笔记,仅用于学习交流。一、中断中断的基本概念中断是计算机用于处理异步事件的重要机制,可打断当前指令的执行,切换到对应的中断服务程序进行处理。中断响应:保存断点、关闭中断、切换到中断处理程序。保护现场:保存被中断程序的状态(如寄存器等)。中断服务:执行特定中断处理程序。恢复现场:恢复被中断程序的状态。中断返回:返回断点,继续原程序执行。中断与异常中断:由外部设备或硬件请求触发,如 I/O 设备的完成信号。异常。

Rinai的博客 1673

温度PID控制PLC程序

温度PID稳定控制程序,适用于欧姆龙PLC,对其他PLC也具有很大参考价值

jdk-8u144-linux-x64.tar.gz.

该资源为搭建Linux系统Java环境用,资源的后缀为tar.gz格式的压缩包

css预处理器(less学习笔记)

什么是css预处理器?CSS 预处理器定义了一种新的语言,其基本思想是,用一种专门的编程语言,为 CSS 增加了一些编程的特性,将 CSS 作为目标生成文件,然后开发者就只要使用这种语言进行编码工作。CSS 预处理器用一种专门的编程语言,进行 Web 页面样式设计,然后再编译成正常的 CSS 文件,以供项目使用。CSS 预处理器为 CSS 增加一些编程的特性,无需考虑浏览器的兼容性问题通俗的说:

xi_2130的博客 2271

RU DOS版、EFI版32bit/64bit BIOS常用工具

DOS版、EFI版的RU工具,可用来查看IO、MEM、PCI、SMBIOS等资源。亲测在EFI SHELL下可用。

《动手学深度学习》学习笔记 第7章 现代卷积神经网络

笔记是从第四章开始,前面三章为基础知识,有需要的可以自己去看看 关于本系列笔记: 书里为了让读者更好的理解,有大篇幅的描述性的文字,内容很多,笔记只保留主要内容,同时也是对之前知识的查漏补缺

weixin_42046845的博客 1968

《超标量处理器设计》学习笔记—第二章-Cache

《超标量处理器设计》学习笔记—第二章-Cache

qq_43186162的博客 754
上一篇: 现代处理器设计学习笔记(一)
下一篇: ARM SOC体系结构阅读笔记 一
叮咯咙咚呛36
博客等级 码龄14年 169粉丝 44原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值