芯片设计方法学之--握手

1.面向对象

本文主要介绍握手的基本概念,读者可通过该篇文章对握手有个基本概念。也借此机会发表下自己对流水线中的握手反压的一些愚见。更深的理解可期待后续更新;

2. 握手简介

举个简单例子;

上图中sender拉高vld发送有效的数据给receiver,receiver拉高ready代表准备好接收数据。

  1. vld==1、ready==1:sender发送有效数据,receiver同时也准备好接收数据,完成一次有效数据传输;
  2. vld==1、ready==0:sender发送有效数据,receiver未准备好接收数据。反压sender,通常情况下sender需保持vld直到receiver拉高ready,完成一次传输;
  3. vld==0、ready==1:send没有数据需要发送,receiver已提前做好接收数据的准备;一旦send发起数据传输,即可完成一次握手;
  4. vld==0、ready==0:send没有数据需要传输,receiver也没有做好接收数据准备;

其实拿流水线的下级和上级很好理解,握手就体现了上下级之间的配合关系,使得流水能够正常运转;

握手与反压

握手的主要工作就是确保上下级之间的流量基本一致。关于反压可以有如下理解:

  1. 流水线上若上级处理速度大于下级处理速度,则下级需反馈信息给上级,我接收不过来你的数据了;即拉低ready;
  2. 流水线上若下级处理速度大于上级处理速度,则上级需反馈信息给下级,我处理速度跟不上你处理速度,给你的数据没那么快。即通过拉低一段时间的vld,使得上级得以喘息。

其实从这里我也突然悟出来了一个道理,握手是给了每级处理单元一个控制速度的权利。完美的流水线,应该来说是不需要通过握手来实现的(太理想了),因为还需要握手来控制数据的传输等等;

流水线中反压(拉低ready)

反压的目的都是为了屏蔽上级单元送数据来。但根据流水中的每级单元中是否有存储单元,可分为带存储器的反压和不带存储器的反压;在带存储器的反压根据对前级还是前前级的反压可分为:跨级反压、逐级反压;

不带存储器的反压

即流水线上的每一级都没有存储单元,后级与前级的耦合性高,当流水线中间某一级错误,导致整条流水线均停止工作;在上图中可以理解成,若C出于某种原因不能接收B_OUT,由于B中没有暂存空间,导致的结果就是B也不能接收A_OUT数据了。可以理解成工厂流水线里头,每一级都没有容器可以存放上一级的输出物。

特点:

1. 节省存储器资源,每一级都没有存储器;
2. 流水控制复杂,后级的流水停止,需对前面的每一级都有控制;(牵一发而动全身)

带存储器的逐级反压

如上图,和不带存储器的流水比起来,各级流水中都加入了一定的缓存容量。这样做的一个好处就是每一级与每一级之间的握手都变成了相对独立的握手模块。这里留个悬念,缓存的大小如何设定?

带存储器的跨级反压

如上图,C的反压直接跳过B,反压到A。目前我是没接触过这种设计,但是我认为这种设计也有一定的合理性以及局限性;这种结构需要求C可以无条件接收B_OUT数据,也就是单向握手,只要B给出B_OUT,C 100%可以接收;

握手与反压设计注意点

  1. sender发生数据的vld指示和receiver接收的ready指示应该为独立的逻辑产生,不可将二者扯上联系;
  2. 若存在流水,则是否为某一级流水添加存储单元、该存储单元多大都是需要考虑的点,出发点都是为了流水的效率;
  3. 流水除了考虑各级的存储深度外,不要忽略流水路上处理中的数据;

如有不当之处,欢迎交流讨论。

参考文章

数字芯片设计——握手与反压 - 知乎 (zhihu.com)

芯片设计-握手与反压(valid&ready) - 知乎 (zhihu.com)

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/672707.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

44、WEB攻防——通用漏洞RCE代码执行多层面检测利用

文章目录 RCE分类: REC代码执行:引用脚本代码解析执行。例如,eval(phpinfo();)以php脚本解析phpinfo();。RCE命令执行:脚本调用操作系统命令。例如,system(ver),命令执行能执行系统命令。 RCE漏洞对象&am…

相机图像质量研究(6)常见问题总结:光学结构对成像的影响--对焦距离

系列文章目录 相机图像质量研究(1)Camera成像流程介绍 相机图像质量研究(2)ISP专用平台调优介绍 相机图像质量研究(3)图像质量测试介绍 相机图像质量研究(4)常见问题总结:光学结构对成像的影响--焦距 相机图像质量研究(5)常见问题总结:光学结构对成…

Linux的打包压缩与解压缩---tar、xz、zip、unzip

最近突然用到了许久不用的压缩解压缩命令,真的陌生, 哈哈,记录一下,后续就不用搜索了。 tar的打包 tar -cvf 压缩有的文件名称 需要压缩的文件或文件夹tar -cvf virtualbox.tar virtualbox/ tar -zcvf virtualbox.tar virtualbo…

家政小程序开发,重塑家政服务体验

随着科技的飞速发展,小程序已经成为我们日常生活中不可或缺的一部分。而家政服务作为社会生活的重要环节,其数字化转型也正在逐步加速。本文将探讨家政小程序开发的重要性、功能特点以及如何提升用户体验。 一、家政小程序开发的重要性 家政服务行业在…

IDEA生成可执行jar包

1. 进入需要打包的项目,选择 最上方菜单栏的 File → Project Structure 2. 选择 左侧菜单栏 Artifacts → 加号 → JAR → from modules with dependencies 3. 选择入口类 Main Class(点击文件夹图标可以快速选择),点击 OK&#…

Vue3.4+element-plus2.5 + Vite 搭建教程整理

一、 Vue3Vite 项目搭建 说明: Vue3 最新版本已经基于Vite构建,关于Vite简介:Vite 下一代的前端工具链,前端开发与构建工具-CSDN博客 1.安装 并 创建Vue3 应用 npm create vuelatest 创建过程可以一路 NO 目前推荐使用 Vue R…

springboot 拦截器

定义 拦截器类似于javaweb中filter 功能 注意: 只能拦截器controller相关的请求 作用 举一个例子,例如我们在Controller中都有一段业务逻辑,这样我们就可以都统一放在拦截器中 因此拦截器的作用就是将controller中共有代码放入到拦截器中执行,减少co…

游戏开发中的残影效果

引言 游戏开发中的残影效果 大家好,相信大家都玩过三国战纪这款游戏,二十年经典街机,青春重燃! 它里面人物在爆气的时候,移动速度会加快,从而产生一种移形换影的感觉。 残影效果作为一种常见的视觉特效,在增强游戏…

IS-IS P2P网路类型 地址不在同一子网建立邻居关系

拓扑图 由于IS-IS是直接运行在数据链路层上的协议,并且最早设计是给CLNP使用的,IS-IS邻居关系的形成与IP地址无关。但在实际的实现中,由于只在IP上运行IS-IS,所以是要检查对方的IP地址的。如果接口配置了从IP,那么只要…

ABAP 获取屏幕字段值,field-symbols,assign..TO.. 相关知识实例

ABAP 获取屏幕字段值,field-symbols,assign..TO.. 相关知识实例 以QA32质量放行程序为例子: 由于这个两个值都在结构RQEVA中,为了方便这里获取整个结构值,最后利用指针指向这个程序的这个结构即可获取当前值&#xf…

orin nx 安装paddlespeech记录

nx配置: 模块 版本说明 CPU 8核 内存 16G Cuda版本 11.4 Opencv版本 4.5.4 Tensorrt版本 5.1 Cudnn版本 8.6.0.166 Deepstream版本 6.2 Python版本 3.8 算力 100T 安装paddlepaddle: 去飞桨官网下载jetpack版本的:下…

服务器运存使用率多少正常?

服务器运存使用率多少正常,这是一个相对主观的问题,因为服务器的正常运行不仅取决于运存使用率,还与服务器的工作负载、应用程序的特性和需求、服务器的配置和用途等多种因素有关。然而,一般来说,大多数服务器在运存使…

ideal打包,如何访问项目根目录的libs中的jar包

参考&#xff1a;idea maven 导入lib中jar 并打包_maven引入lib中的jar包-CSDN博客 解决办法&#xff0c;只需要在pom文件中加入 <includeSystemScope>true</includeSystemScope> <build><!-- <includeSystemScope>true</includeSystemScope&g…

占位程序接收到错误数据

有时候wsl2会出现如下的错误&#xff1a; 占位程序接收到错误数据。 Error code: Wsl/Service/0x800706f7解决方法是用管理员的cmd界面执行如下方法&#xff1a; netsh winsock reset

ArcGIS学习(六)地理数据库

ArcGIS学习(六)地理数据库 上个任务我们讲了一个非常重要的知识点一一坐标系。这个任务我们带来另外一个很重要的知识点一一地理数据库。 地理数据库的内容相比于坐标系简单很多! 首先,先让我们来学习下地理数据库的理论。 ArcGIS 中的地理数据库(Geodatabase)是一个用…

视频上传-分片上传那点事

在上一篇文章中&#xff0c;我们讲解了从视频上传到保存在服务端的整个过程&#xff0c;在这个过程中&#xff0c;我们又细分了前端上传视频的几种方式&#xff0c;前端处理视频的几种方式&#xff0c;在前后端通信过程中需要注意的哪些点等等。有不清楚的小伙伴可以看看 上篇文…

JVM 性能调优 - 四种引用(4)

为什么会有四种引用 我们先回顾下在 Java 虚拟机内存体系(1) 中提到了的垃圾回收算法 1、引用计数法 原理:给对象添加一个引用计数器,每当有一个地方引用它,计数器的值就加一。每当有一个引用失效,计数器的值就减一。当计数器值为零时,这个对象被认为没有其他对象引用,…

制作离线版element ui文档

链接&#xff1a;https://pan.baidu.com/s/1k5bsCK9WUlZobhFBLItw1g?pwdgeyk 提取码&#xff1a;geyk --来自百度网盘超级会员V4的分享 https://github.com/ElemeFE/element 克隆官方代码 使用nvm切换node版本&#xff0c;推荐使用14.0.0 http://doc.xutongbao.top/doc/#/zh…

Verilog刷题笔记20

题目&#xff1a; Case statements in Verilog are nearly equivalent to a sequence of if-elseif-else that compares one expression to a list of others. Its syntax and functionality differs from the switch statement in C. 解题&#xff1a; module top_module ( …

Python HTTP隧道在远程通信中的应用:穿越网络的“魔法门”

在这个数字化时代&#xff0c;远程通信就像是我们日常生活中的“魔法门”&#xff0c;让我们可以随时随地与远方的朋友、同事或服务器进行交流。而在这扇“魔法门”的背后&#xff0c;Python HTTP隧道技术发挥着举足轻重的作用。 想象一下&#xff0c;你坐在家里的沙发上&…