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…...
XML Group端口详解
在XML数据映射过程中,经常需要对数据进行分组聚合操作。例如,当处理包含多个物料明细的XML文件时,可能需要将相同物料号的明细归为一组,或对相同物料号的数量进行求和计算。传统实现方式通常需要编写脚本代码,增加了开…...
调用支付宝接口响应40004 SYSTEM_ERROR问题排查
在对接支付宝API的时候,遇到了一些问题,记录一下排查过程。 Body:{"datadigital_fincloud_generalsaas_face_certify_initialize_response":{"msg":"Business Failed","code":"40004","sub_msg…...
RocketMQ延迟消息机制
两种延迟消息 RocketMQ中提供了两种延迟消息机制 指定固定的延迟级别 通过在Message中设定一个MessageDelayLevel参数,对应18个预设的延迟级别指定时间点的延迟级别 通过在Message中设定一个DeliverTimeMS指定一个Long类型表示的具体时间点。到了时间点后…...
简易版抽奖活动的设计技术方案
1.前言 本技术方案旨在设计一套完整且可靠的抽奖活动逻辑,确保抽奖活动能够公平、公正、公开地进行,同时满足高并发访问、数据安全存储与高效处理等需求,为用户提供流畅的抽奖体验,助力业务顺利开展。本方案将涵盖抽奖活动的整体架构设计、核心流程逻辑、关键功能实现以及…...
使用分级同态加密防御梯度泄漏
抽象 联邦学习 (FL) 支持跨分布式客户端进行协作模型训练,而无需共享原始数据,这使其成为在互联和自动驾驶汽车 (CAV) 等领域保护隐私的机器学习的一种很有前途的方法。然而,最近的研究表明&…...
Mac软件卸载指南,简单易懂!
刚和Adobe分手,它却总在Library里给你写"回忆录"?卸载的Final Cut Pro像电子幽灵般阴魂不散?总是会有残留文件,别慌!这份Mac软件卸载指南,将用最硬核的方式教你"数字分手术"࿰…...
佰力博科技与您探讨热释电测量的几种方法
热释电的测量主要涉及热释电系数的测定,这是表征热释电材料性能的重要参数。热释电系数的测量方法主要包括静态法、动态法和积分电荷法。其中,积分电荷法最为常用,其原理是通过测量在电容器上积累的热释电电荷,从而确定热释电系数…...
Kubernetes 节点自动伸缩(Cluster Autoscaler)原理与实践
在 Kubernetes 集群中,如何在保障应用高可用的同时有效地管理资源,一直是运维人员和开发者关注的重点。随着微服务架构的普及,集群内各个服务的负载波动日趋明显,传统的手动扩缩容方式已无法满足实时性和弹性需求。 Cluster Auto…...
Django RBAC项目后端实战 - 03 DRF权限控制实现
项目背景 在上一篇文章中,我们完成了JWT认证系统的集成。本篇文章将实现基于Redis的RBAC权限控制系统,为系统提供细粒度的权限控制。 开发目标 实现基于Redis的权限缓存机制开发DRF权限控制类实现权限管理API配置权限白名单 前置配置 在开始开发权限…...
Android Framework预装traceroute执行文件到system/bin下
文章目录 Android SDK中寻找traceroute代码内置traceroute到SDK中traceroute参数说明-I 参数(使用 ICMP Echo 请求)-T 参数(使用 TCP SYN 包) 相关文章 Android SDK中寻找traceroute代码 设备使用的是Android 11,在/s…...
