DDR与PCIe:高性能SoC的双引擎
SoC芯片无处不在,小到家电控制的MCU,大到手机芯片,我们都会接触到。如今大部分芯片设计公司都在开发SoC芯片,一颗SoC芯片可以集成越来越多的功能,俨然它已成为IC设计业界的焦点。
高性能、高速、高带宽的互联和存储的性能需求日渐占据主流。掌握PCle协议和DDR协议可以有效地提升SoC的设计验证、FPGA的设计、亦或是系统级的开发效率。
今天移知小编就带大家了解一下高性能SoC的“双引擎”——DDR与PCIe。
一、何为SoC
1、 SoC概念与传统的FPGA/MCU单片机的优势
SoC是一种集成电路设计,将计算机系统的各个功能组件集成在一块芯片上。传统的FPGA和MCU单片机也是集成电路,但SoC在功能上更加复杂、完整。与传统的FPGA/MCU相比,SoC的优势在于它将CPU、GPU、NPU、IO接口、存储器控制器等功能模块集成在一颗芯片上,形成一个高度集成、高性能的计算平台。
SoC芯片让电子设备变得更加智能,使人们的生活变得更加便捷。
2、SoC包含哪些功能模块
SoC集成了多个功能模块,常见的包括:
● 中央处理器(CPU):执行计算任务和控制任务的核心处理单元。
● 图形处理器(GPU):专门用于图形和图像处理,加速图形渲染、计算和加速深度学习等任务。
● 神经网络处理单元(NPU):专门用于加速人工智能和深度学习任务。
● 存储器控制器:管理内存和外部存储器的读写操作。
● 输入/输出接口(IO):用于与外部设备通信,如USB、Ethernet、HDMI等接口。
● 电源管理单元(PMU):管理芯片的电源供应和功耗控制。
● 安全单元:提供芯片级别的安全功能,保护数据和系统免受攻击。
二、SoC高性能体现在哪里?
高性能SoC在多个方面体现出卓越的表现:
● 计算能力:SoC集成了强大的CPU和GPU,能够处理复杂的计算任务和图形渲染,满足高性能应用的要求。
● AI加速:通过集成专用的NPU,SoC能够在处理人工智能和深度学习任务时加速运算,提升效率。
● 数据处理速度:SoC内部的高速总线和存储器控制器使得数据访问速度更快,减少数据处理瓶颈。
● 低功耗:虽然拥有强大性能,但高性能SoC也注重功耗的优化,以延长电池寿命和降低能源消耗。
三、SoC高性能是如何实现的?
1、更快的数据处理来源于高速接口PCIe
PCIe(Peripheral Component Interconnect Express)芯片是高性能SoC中的重要组成部分。它是一种高速传输接口,连接计算机内部的各种硬件组件,如CPU、GPU、存储器、网络接口等。PCIe具有高速传输和可靠性的特点,使得数据在各个组件之间的传输更加快速和稳定。这使得高性能计算、数据中心和企业级应用等领域得到极大的受益,加快了数据处理速度,提升了整体系统性能。
在数字IC工程师的职业生涯中,了解PCle还可以为他们提供更多的职业发展机会。掌握PCle技术可以使数字IC工程师在芯片设计、系统架构、嵌入式系统等领域中有更广泛的应用。掌握PCIe协议不管是对SoC的设计验证,FPGA的设计,还是系统级的开发都提升效率,掌握PCIe协议更是成为芯片设计、验证工程师、SoC的求职加分项,PCIe并没有想象中那么容易掌握。
● PCIe的协议难以掌握?
国外的参考文献的理解难易度,没有实际项目纸上谈兵的学习;空有公开协议,没有结合案例理解上手,哪怕是已经翻译的中文教材,也容易导致无从下手。
移知教育特邀资深工程师精心打磨《PCIe协议全面解析》本课程介绍了PCle总线协议的方方面面,包括系统架构、设备互联、分层结构等,让大家深刻理解PCle的高带宽、低延时的特性。
从形象到抽象,让学习PCIe不再晦涩难懂,讲解最新Spec的协议特性和演进,通过协议分析仪实际抓取的数据包,生动介绍PCIe设备上的电、枚举、及工作过程。
● PCIe设计的各种层级问题如何理解,如何解决?
PCIe 协议测试在物理层、数据链路层和传输层上都需要进行协议确认测试。链路训练和状态机(LTSSM)是协议测试里面的一个关键方面。链路训练可以确保数据包在链路伙伴之间可靠地传输。协议分析和训练器工具可以确定PCIe 器件是否能与其链接伙伴成功通信。
随着数据速率的提升,高速串行数据链路的设计变得非常复杂。通道拓扑越来越复杂多变。
PCIe 互连测试通道是 PCIe 系统中最关键的元素之一快速确认测试PCIe 设计的参数,确保它们符合 PCIe 规范定义的性能要求,这是测试过程的一个重要环节。
● 向下兼容的难,各个版本迭代的兼容问题
各个版本的迭代兼容处理,实际的公司业务场景处理。
移知教育 新课升级《PCIe IP之UVM验证实战》,一课搞定设计和验证,本课程以可流片的PCIe代码为基础,介绍了PCIe理论以及PCIe实战的内容,目标是大家能在实际的PCIe项目中可以上手干活。共22个章节,理论和实战相结合,从验证环境的搭建,到DUT data path的梳理,学完即可上手做PCIe RTL设计以及验证工作。
2、连接计算和存储两个体系的桥梁 -DDR
在高性能SoC中,计算和存储是两个重要的体系,它们之间的连接和协调对于整个系统性能至关重要。冯·诺依曼架构是当今SoC常用的计算架构,但在高性能SoC中,内存和互联带宽常常成为性能瓶颈。
为了解决这一问题,新一代的高带宽存储技术应运而生。其中,DDR、LPDDR、GDDR等技术作为连接计算和存储两个体系的桥梁,有效地突破了“内存墙”。
高性能 SoC 通常具有多个存储器通道。图示显示的简化 DDR 存储器可以是上述任何 DDR 类别的 DRAM 存储器。
SoC 中的存储器通道框图
大型SoC芯片不能没有DDR,就像大战役中离不开军火库一样,如果你想涉猎SoC芯片领域,了解或掌握DDR技术,对你来说是必不可少的,可以这么说,CPU+总线+DDR+一些简单外设就可以组成一个SoC系统,可见DDR的地位不言而喻。
移知教育《DDR3全面解析》带你掌握SoC的核心技术:memory子系统。
通过课程的学习,你可以在 1-2 个月内快速从零基础起 ,学会 DDR3的协议,掌握DDR控制器的设计原理,了解DDR PHY的功能以及training过程,知道如何验证DDR的控制器及其效率,并能从模块和系统的角度对DDR的效率进行分析,同时你可以站在前辈的肩膀上去分析和解决问题,并在通往DDR设计成功之路的最后也最难一站上汲取必不可少的营养。
高性能SoC作为连接计算和存储的桥梁,在计算能力、AI加速和数据处理速度等方面展现出优越的性能。通过采用高速接口PCIe和最新的高带宽存储技术,高性能SoC能够满足越来越复杂的计算需求,推动着计算领域的不断发展和创新。
掌握PCle协议和DDR协议可以有效地提升SoC的设计验证、FPGA的设计、亦或是系统级的开发效率。移知的目标是希望通过契合实际学习情况的难点进行针对性讲解,帮助各位快速入门。
大家加油,祝大家早日掌握PCle协议和DDR协议!
相关文章:

DDR与PCIe:高性能SoC的双引擎
SoC芯片无处不在,小到家电控制的MCU,大到手机芯片,我们都会接触到。如今大部分芯片设计公司都在开发SoC芯片,一颗SoC芯片可以集成越来越多的功能,俨然它已成为IC设计业界的焦点。 高性能、高速、高带宽的互联和存储的…...

C#_特性反射详解
特性是什么? 为程序元素额外添加声明信息的一种方式。 字面理解:相当于把额外信息写在干胶标签上,然后将其贴在程序集上。 反射是什么? 反射是一种能力,运行时获取程序集中的元数据。 字面理解:程序运行…...

【跟小嘉学 Rust 编程】十三、函数式语言特性:迭代器和闭包
系列文章目录 【跟小嘉学 Rust 编程】一、Rust 编程基础 【跟小嘉学 Rust 编程】二、Rust 包管理工具使用 【跟小嘉学 Rust 编程】三、Rust 的基本程序概念 【跟小嘉学 Rust 编程】四、理解 Rust 的所有权概念 【跟小嘉学 Rust 编程】五、使用结构体关联结构化数据 【跟小嘉学…...

时间复杂度和空间复杂度
全文目录 算法的复杂度时间复杂度大O渐进表示法空间复杂度常见算法复杂度对比 算法的复杂度 算法在编写成可执行程序后,运行时需要耗费时间资源和空间(内存)资源 。因此衡量一个算法的好坏,一般是从时间和空间两个维度来衡量的,即时间复杂度…...

mac docker 卡住解决
文章目录 1、问题简述2、重新安装docker3、docker守护进程4、问题解决方案 1、问题简述 在docker desktop上更改了daemon.json的文件内容,应该是参数写的有问题,修改完配置再启动docker desktop就失败了,然后想着卸载docker desktop…...

linux/centos zookeeper 使用记录
配置cfg 下载zookeeper-3.4.14.tar.gz负责到centos服务器解压 /xxx/zookeeper-3.4.14/conf/下创建zoo.cfg文件并配置以下属性,/bsoft/zookeeperdata/目录先预先创建 tickTime2000 initLimit10 syncLimit5 dataDir/bsoft/zookeeperdata/ clientPort2181zk启动/重启/关…...

用wireshark流量分析的四个案例
目录 第一题 1 2 3 4 第二题 1 2 3. 第三题 1 2 第四题 1 2 3 第一题 题目: 1.黑客攻击的第一个受害主机的网卡IP地址 2.黑客对URL的哪一个参数实施了SQL注入 3.第一个受害主机网站数据库的表前缀(加上下划线例如abc) 4.…...

Oracle 时区详解
1 简介 由于地球经纬度及地球自转引起的经度方向,不同的经度的地方,所感受到的昼夜是不同 的。有关国际会议决定将地球表面按经线从东到西,每隔经度15度划分一个时区,并且规定 相邻区域的时间相差1小时。 这就是时区的由来。 而实际使用中,…...

仿mudou高性能高并发服务器
"这个结局是我的期待,我会一直为你祝福。" 项目实现目标: 仿muduo库One Thread One Loop式主从Reacto模型实现高并发服务器。通过实现高并发服务器组件,简洁快速完成搭建一个高性能服务器。并且,通过组件内提供的不同应⽤层协议⽀…...

vue权限管理——菜单权限设置
1.前提:后端提供菜单对应数据 此处用mockjs模拟 const menuList [{id: 1, path:/uploadSpec,authName: "上传spec", icon: User, children:[], rights:[view,add,edit,delete]},{id: 2, path:/showSpec, authName: "Spec预览", icon: DataAn…...

【LeetCode】228.汇总区间
题目 给定一个 无重复元素 的 有序 整数数组 nums 。 返回 恰好覆盖数组中所有数字 的 最小有序 区间范围列表 。也就是说,nums 的每个元素都恰好被某个区间范围所覆盖,并且不存在属于某个范围但不属于 nums 的数字 x 。 列表中的每个区间范围 [a,b]…...

Qt快速学习(二)--QMainWindow,对话框,布局管理器,常用控件
目录 1 QMainWindow 1.1 菜单栏 1.2 工具栏 1.3 状态栏 1.4 铆接部件 1.5 核心部件(中心部件) 1.6 资源文件 2 对话框QDialog 2.1 基本概念 2.2 标准对话框 2.3 自定义消息框 2.4 消息对话框 2.5 标准文件对话框 3 布局管理器 3.1 系统…...

群晖DSM下套件及系统网页服务器ssl证书自动更新
关键字: DSM ssl 证书 起因 群晖下自建服务(alist3)和系统服务在外部网络访问需要加ssl安全证书来实现基础的传输保护。 申请证书和续期手动操作都还好,不算太麻烦,但是每个应用单独证书需要复制和重启,再配合服务重启一套下来就…...

【Flink】Flink架构及组件
我们学习大数据知识的时候,需要知道大数据组件如何安装以及架构组件,这将帮助我们更好的了解大数据组件 对于大数据Flink,架构图图下: 整个架构图有三种关键组件 1、Client:负责作业的提交。调用程序的 main 方法&am…...

React Navigation 开发准备
需要 React Native 使用 React Navigation 的话,我们需要首先安装如下几个包: npm install react-navigation/native npm install react-native-screens react-native-safe-area-context开发之前做一些处理 如果您使用的是 Mac 并针对 iOS 进行开发&am…...

前端面试:【前端安全】安全性问题与防范措施
嗨,亲爱的前端开发者!在构建Web应用程序时,确保安全性是至关重要的。本文将深入讨论前端开发中的安全性问题,并提供一些防范措施,以确保你的应用程序和用户数据的安全性。 前端安全性问题: 跨站脚本攻击&am…...

[Linux]进程
文章目录 1. 进程控制1.1 进程概述1.1.1 并行和并发1.1.2 PCB1.1.4 进程状态1.1.5 进程命令 1.2 进程创建1.2.1 函数1.2.2 fork() 剖析 1.3 父子进程1.3.1 进程执行位置1.3.2 循环创建子进程1.3.3 终端显示问题1.3.4 进程数数 1.4 execl和execlp函数1.4.1 execl()1.4.2 execlp(…...
01-jupyter notebook的使用方法
一、Tab补全 在shell中输入表达式,按下Tab,会搜索已输入变量(对象、函数等等)的命名空间: 除了补全命名、对象和模块属性,Tab还可以补全其它的。当输入看似文件路径时 (即使是Python字符串&…...

pytestx容器化执行引擎
系统架构 前端、后端、pytest均以Docker容器运行服务,单独的容器化执行引擎,项目环境隔离,即用即取,用完即齐,简单,高效。 前端容器:页面交互,请求后端,展示HTML报告 后…...

(动态规划) 剑指 Offer 42. 连续子数组的最大和 ——【Leetcode每日一题】
❓ 剑指 Offer 42. 连续子数组的最大和 难度:简单 输入一个整型数组,数组中的一个或连续多个整数组成一个子数组。求所有子数组的和的最大值。 要求时间复杂度为 O(n)。 示例1: 输入: nums [-2,1,-3,4,-1,2,1,-5,4] 输出: 6 解释: 连续子数组 [4,-1…...

OLED透明屏曲面技术:创新突破引领显示行业未来
OLED透明屏曲面技术作为一项重要的显示技术创新,正在成为显示行业的焦点,其引人注目的优势和广泛应用领域使其备受关注。 本文将详细介绍OLED透明屏曲面技术的优势、应用领域以及市场前景,同时展望其未来的发展趋势,以期带给读者…...

视频云存储/安防监控EasyCVR视频汇聚平台分发rtsp流时,出现“用户已过期”提示该如何解决?
视频云存储/安防监控EasyCVR视频汇聚平台基于云边端智能协同,支持海量视频的轻量化接入与汇聚、转码与处理、全网智能分发、视频集中存储等。音视频流媒体视频平台EasyCVR拓展性强,视频能力丰富,具体可实现视频监控直播、视频轮播、视频录像、…...

调用paddleocr接口实现文本检测与识别,并在图像中显示识别结果
目录 一、按照官网步骤安装paddlepaddle和paddleocr(paddlepaddle我安装的是cpu版本) 二、运行下面的脚本 三、图像结果 一、按照官网步骤安装paddlepaddle和paddleocr(paddlepaddle我安装的是cpu版本) doc/doc_ch/quickstart.md PaddlePaddle/PaddleOCR - Gitee.com 二、…...

如何提升winform程序性能
提升WinForms程序性能是一个关键的优化任务,以下是一些可以帮助你提升性能的方法: 1. **UI延迟加载:** 如果你的WinForms界面很复杂,可以考虑将不必要的UI元素延迟加载,只在需要时加载,以减少启动时间和内…...

按钮权限控制
搜索关键字: 自定义指令传参| "自定义指令""dataset"|自定义指令dataset| "Vue""directives"|vue按钮权限实现 1、完整代码: <template> <div> <el-breadcrumb separator-class"el-icon…...

【脚本式设置环境变量】
在linux系统中,如果我打开一个软件需要如下操作,那将会是一件很麻烦的事情 cd dir #软件的文件路径 conda deactivate conda activate chatgpt python main.py【首先写一个chatgpt.sh脚本内容如下】 #!/bin/bash cd dir conda run -n chatgpt python m…...

软件开发bug问题跟踪与管理
一、Redmine 项目管理和缺陷跟踪工具 官网:https://www.redmine.org/ Redmine 是一个开源的、基于 Web 的项目管理和缺陷跟踪工具。它用日历和甘特图辅助项目及进度可视化显示,同时它又支持多项目管理。Redmine 是一个自由开源软件解决方案,…...

springboot+mp完成简单案例
目录 1.框架搭建 2.前端搭建 3.后端编写 需求:完成简单的连表条件查询以及添加即可 1.框架搭建 1.创建springboot项目 2.相关依赖 <!--web依赖--><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boo…...

cuml机器学习GPU库 sklearn升级版AutoDL使用
CUML库 最近在做机器学习任务的时候发现我自己的数据集太大,直接用sklearn 跑起来时间很长,然后问GPT得知了有CUML库,后来去研究了一下,发现这个库只支持linux系统,从官网直接获取下载命令基本上也实现不了最后&#…...

C语言练习题Day1
从今天开始分享C语言的练习题,每天都分享,差不多持续16天,看完对C语言的理解可能更进一步,让我们开始今天的分享吧! 题目一 执行下面的代码,输出结果是() int x5,y7; void swap()…...