- 博客(80)
- 收藏
- 关注
原创 Gray Code
在跨时钟域时,使用二进制的方式很容易出现错误,容易出现亚稳态,相邻二进制地址变化时,不止一位发生变化。可以观察到,对于二进制码来说,当fifo深度为8时,低三位用来表示读和写的指针的位置,最高位(即第3位)用来判断读空和写满,而对于格雷码来说是要用高两位(即第3位和第2位)来判断读空和写满。当读和写指针的高两位不同,低两位相同时,判断为写满。但是异步FIFO读写时钟不同,而读写指针又是分属各自的时钟域,在进行空满检测的时候,是需要将读写指针进行跨时钟域处理的,即读指针跨时钟到写指针,写指针跨时钟到读指针。
2025-11-20 17:50:00
9
原创 初始Tmux
在普通的终端中,窗口和其中由于session(任务)而启动的进程是连在一起的,关闭窗口,session就结束了,session内部的进程也会终止,不管是否运行完。但是在具体使用中,我们希望当前的session隐藏起来,在终端中做其他事情,但是又不希望session及其进程被关闭。对于一个session,可以创建好几个window,对于每一个窗口,都可以将其分解为几个pane小窗格。session的名字,这个名字可以用于解绑后快速的重新进入该session。对于window可以理解为一个工作区,一个窗口。
2025-10-31 16:09:42
701
原创 Verdi与EDA配合的使用方法
3.交互式接口,控制灵活,仿真过程可修改dump信息,如dumpon/dumpoff。1.需要重新编译系统,浪费时间(不使用valuevalueplusargs时);2.使用高级语言接口,容易完成复杂处理,例如传递变量,例如使用正则表达式;2.Verilog是低级语言,对于文本处理比较困难,不支持正则表达式。其中dump_fsdb_vcs.tcl(ucli脚本为tcl语言)(VCS使用tcl脚本,irun、questa与该脚本类似)也可以使用交互式仿真:注释内容可以在仿真过程中键入。
2025-10-15 14:59:12
366
原创 Ultra Accelerator Link(UALink)Consortium
联盟于 2024 年 10 月成立,是一个开放的行业标准组织,致力于制定 UALink 规范,一种高速、可扩展的加速器互连技术,能够提升下一代人工智能和高性能计算集群的性能。成员包括阿里巴巴、AMD、苹果、Astera Labs、AWS、Cisco、谷歌、HPE、英特尔、Meta、微软和Synopsys。该联盟制定的技术规范有助于推动新兴人工智能应用模式的突破性性能,并支持数据中心加速器的开放生态系统。欲了解 UALink 联盟的更多信息,请访问 www.UALinkConsortium.org。
2025-08-26 17:21:06
322
原创 UALink是什么?
根据UALink推广组的说法,基于包括AMD的Infinity Fabric在内的“开放标准”,UALink 1.0将允许AI加速器所附带的内存之间的直接加载和存储,并且与现有互连规范相比,总体上将提高速度,同时降低数据传输延迟。与NVLink不同,UALink的目标是提供一个可扩展的、高性能的连接解决方案,支持AI和HPC应用,并允许多达1024个GPU AI加速器的连接,组成一个计算“集群”(pod),意指服务器中的一个或多个机架。使用增强的Ethernet来作为InfiniBand的替代方案。
2025-08-25 20:51:44
445
原创 如何查看VSIX文件?
vsix 文件是 Visual Studio Code 扩展的安装包,实际上是一个 ZIP 压缩文件。你可以通过解压缩 .vsix 文件或者改为.zip文件来查看其源代码和内容。
2025-08-20 17:20:26
245
原创 如何代开VSCode的settigns.json文件
使用命令面板(Ctrl+Shift+P或Cmd+Shift+P),输入“Preferences: Open XXX Settings (JSON)”并回车,迅速定位到该文件。
2025-08-20 17:15:40
418
原创 内网环境给VSCode安装插件
如果遇到插件不能安装成功可以升级一下本地的vscode版本,或者将.vsix文件改成.zip文件,同时修改里面package.json里面vscode的版本号和你本地的版本号一致就可以.点击“Download VSIX”;下载VSIX文件后,复制到内网。
2025-08-20 17:10:13
615
原创 Perl——qw()函数
qw()是用来指定了很多小单引号的句字是一个快速的方法。例如,qw(foo bar baz) 相当于 ('foo', 'bar', 'baz')。实际上,你可以使用任何,而不仅仅是括号组。
2025-08-13 19:20:08
394
原创 Perl——$_
在迭代循环中,当前循环的字符串会放在 $_ 中, 然后 通过 print 输出。另外 print 在不指定输出变量,默认情况下使用的也是 $_。
2025-08-12 20:51:28
267
原创 Perl——Error Handling
在Perl编程语言中,错误处理是非常重要的一部分。错误处理能够帮助开发者有效地管理程序运行过程中可能出现的各种问题,比如文件操作失败、资源获取不到等。本文将详细介绍Perl中用于错误处理的三个关键函数:`die`、`warn` 和 `eval`。这些函数能够帮助程序员更好地理解和控制程序的行为,特别是在遇到错误时如何优雅地处理。
2025-08-12 20:49:47
286
原创 CXL与PCIe的关系
CXL(Compute Express Link)是一种基于PCIe物理层的开放标准互连协议,旨在解决CPU与加速器、内存扩展设备之间的高效通信需求。CXL的核心目标包括:1.共享内存访问:允许加速器直接访问主机内存,减少数据复制开销。2.低延迟通信:通过优化协议栈实现更快的数据传输。3.异构计算支持:为AI、机器学习和其他高性能计算任务提供强大的硬件加速能力。CXL作为PCIe的扩展技术,通过引入共享内存访问、缓存一致性和低延迟通信等功能,为异构计算和高性能计算提供了强大的支持。
2025-05-23 09:57:58
1281
原创 光模块的产品形态
和 Co-package 、 Pluggable Optics 相比,In-package Optics 更符合它们的技术目标。市面上光模块的产品形态有三类,分别是 Pluggable Optics,Co-Package Optics和In-Package Optics,Pluggable Optics 是当下最主流的方案,• IPO 通过采用硅互连,跳过传统铜线,彻底解放了光模块的性能极限,在带宽、能耗和延迟和Pluggable Optics、CPO 两个仍需要使用铜线的方案比有极大的优势。
2025-05-23 09:54:13
498
原创 硅光子学&Chiplet
传统可插拔光学模组解决的是 Floors/Racks/Systems 之间(> 1m)的光互联问题,但片间通讯(Card/Die,< 1m)对光子收发器的密度和性能要求更高,更短距离的互联需要进一步提升光子收发器的密度,从而部署在体积较小的显卡或是加速卡上,硅光子学的成熟让光子收发器的体积压缩从制作上成为可能,随着 Chiplet 技术的萌发,硅光子收发器更是能被直接安装在 Card/Die 旁,硅光子学模块有望在未来几年内渗透到这个计算中心的最后一米。铜缆的最大互联距离是光纤的 1/100 左右。
2025-05-22 10:56:07
1110
原创 片间互联现状
,CXL 的主要作用是让各个计算机部件(计算芯片、内存、硬盘和互联设备等)之间进行高速数据传输,让它们更好的协同工作,将服务器的每一个部件都分解并池化,CXL 的最终愿景是在计算中心里替代以太网(Ethernet),侧重于 Chip-to-Chip 的通讯,并且可以提供极高带宽和较低延迟。LLM 热潮带来对算力需求的升级,算力的可扩展性(Scalability)也成为芯片公司的重要竞争指标,NVIDIA 凭借 NVLINK 在模型训练市场占据了领先优势,也驱动计算中心的互联架构从。
2025-05-22 10:55:17
658
原创 Optical IO技术的两个典型应用
其中Gen2为Ayar Labs当前产品的指标,仍然采用的是AIB接口,单颗TeraPHY芯片含8个光学端口,每个通道中含有8个波长,每个波长的信号速率为32Gbps, 总的双向带宽为4Tbps。对于Ayar Labs来说,optical IO技术可以将不同机架上的GPU、GPU与交换机芯片互联起来,摆脱铜缆传输距离的限制,提供更高带宽、更低延迟、更低功耗的互联方案。在AIGC领域,大模型的参数比较多,而单颗GPU的计算与存储能力有限,需要将多颗GPU组成一个计算能力更强的计算单元来完成计算任务。
2025-05-21 10:02:31
518
原创 LLM的应用
提示词工程,也称为 Prompt Engineering,是一种致力于优化和提高大型语言模型(LLM)输出质量的技术和方法。它主要关注如何设计、构造和优化提示词(Prompt),以引导 LLM 生成更准确、更有用、更符合用户需求的文本。可以说,掌握了提示词工程就掌握了打开 LLM 知识大门的钥匙。
2025-05-20 12:01:48
1128
原创 初始LLM
离线模型的部署方案比较成熟,每个离线模型的部署都有可以参考的文档。ChatGpt 的 token 贵的原因除了训练模型比较耗钱外,我们向LLM发起请求时,每个请求都会在 LLM 的内部发起比较复杂的运算,这些运算对硬件的要求也很高,所以每次发起请求时都有不少的运行时成本。我浅显的经济学知识告诉我 OpenAI 的 ChatGpt 模型虽说远不是垄断企业,但是也绝对不是竞争市场企业,可以大致的把 OpenAI 看成是寡头企业,再考虑到当前 ChatGpt 的良好表现,贵一些还是有贵一些的道理。
2025-05-20 11:57:20
987
原创 D2D&C2C
D2D(Die-to-Die)互联指的是同一封装内部的裸片(die)之间的直接互联。通过封装内的互连结构,例如硅通孔(Through-Silicon Vias, TSV)或重新分布层(Redistribution Layer, RDL),实现裸片之间的高带宽、低延迟通信。C2C(Chip-to-Chip)互联指的是两个独立封装芯片之间的通信,通常通过PCB(印刷电路板)、互连电缆、或无线通信技术实现数据交换。属性封装关系裸片间通信(同一封装内部)独立芯片间通信(不同封装之间)通信距离微米至毫米级。
2025-05-19 14:31:50
1467
原创 PSA Certified
设计领域的黄金标准。通过对安全启动、加密服务以及更新协议等方面制定全面的要求,PSA Certified为芯片制造商提供了清晰的路线图,使其能将安全机制深植于定制芯片解决方案的基础架构中。作为对PSA Certified的补充,物联网平台安全评估标准 () 为定制芯片的安全评估提供了结构化的方法。该标准深入剖析多个关键安全领域,涵盖从安全初始化流程到敏感数据彻底清除的全过程,确保定制芯片在整个运行生命周期内始终保持其完整性与安全性。
2025-05-16 14:49:02
266
原创 初识 Cache 一致性
如果输入将数据放在Cache中,而且输出从Cache中读取数据,那I/O和处理器会看到相同Data。这种方法的难点在于它干扰了处理器,可能会导致处理器因为等待I/O而停顿。在带有Cache的计算机中,I/O系统的目标应当是防止出现数据过期问题,同时尽可能减少干扰。因此,许多系统喜欢直接对主存进行I/O操作,把主存当做一个I/O缓冲区。只要处理器是唯一修改或读取数据的组件,并且缓存位于处理器和存储器之间,那处理器看到旧副本或者说过期副本的危险性就很低。对于I/O而言,出现多个数据副本是非常罕见的。
2025-05-15 11:29:33
261
原创 CBFC(基于信用的流量控制)
随着网络规模和应用的快速增长,拥塞已经成为一个日益重要而突出的问题。尽管拥塞控制策略已经广泛应用,但是提高网络吞吐还是一个重要方向,本文介绍一种基于信用的流量控制方式(credit-based。
2025-05-15 11:24:40
854
原创 cache一致性协议之MESI与MOESI协议
Valid;Valid;Valid;协议的不便之处在于:假设CPU A有个一个M态的cache line,而此时CPU B想获取此cache line,那么总线必须通知CPU A将cache line同步到主存中。在这个过程中,总线与主存的交互会消耗较长的时间,如果可以在不将数据同步回主存的情况,将CPU A的数据通过总线发送给CPU B,将会节省时间,提高效率。协议就优化了这一不便之处。MOESI协议允许cache之间共享dirty cache line。
2025-05-14 11:21:10
563
原创 集成设备管理(IDM)
集成设备管理 (IDM) 是 CI-700 上的一项功能,可提高系统的稳健性,从而减少设备重新启动的需要。当这种情况发生时,它将把有问题的设备与系统的其余部分隔离。最后,它将通知软件并允许其采取补救措施,例如重置设备、启动设备(例如,通过一些积极的电源管理等)。总体而言,Arm 预计此功能将减少用户最终为解决问题而重新启动设备(例如机顶盒、WiFi、路由器等)的次数。相反,软件可以正常访问设备,并且 IDM 可以自动尝试重新启动设备,并使这一切透明地发生在软件上,尽管会造成一些延迟。
2025-05-13 14:59:18
409
原创 CMN-700的发布
Arm表示,通常情况下,snoop过滤器的大小需要至少是核心独占缓存总量的1.5倍,所以在80核的Altra Q中,每核1MB的L2,在网格上至少需要120MB的snoop过滤器缓存,以及32MB的SLC。其中一部分是通过代际更高的网格频率实现的,但新设计更重要的是现在允许节点之间的网格通道加倍。Arm在这里透露了每个die的最大SLC高达512MB,这意味着每个节点4MB,而奇怪的是,CMN-600只支持128MB,这在技术上是不正确的,因为参考手册说它在64个节点上每个节点4MB可达到256MB。
2025-05-13 11:37:51
1436
原创 cacheline state
首先在SOC里面知道,CPU2要往地址0x0010这个地址写一个数据进去,L02里面必须要有这个地址的数据。所以如果没有UCE这个状态,CPU2就必须去把地址0x0010的数据读到自己的cache里面去,但CPU2知道他要改写这个地址,你读回来的数据我不用,读了就是浪费时间浪费带宽呀。假设现在CPU2要这个地址,但是不需要这个数据,为什么不需要这个数据呢,因为CPU2即将自己给这个地址赋值,那CPU2就申请说我的L02要这个地址是UCE的,然后要把CPU0和CPU1里面的这个地址的数据invalid掉。
2025-05-12 15:42:52
319
原创 cache state
为啥要更新主存呢,就是因为cache里面的数据跟主存里面的数据不一样,有新数据了。:Unique的意思是这个地址的数据,只在我这个cache里面有,其他的cache都没有这个数据。比如说:cpu0读到的这个数据,然后改写了,原来数据地址是0x0010,数据是0x1111,现在跟主存里面的数据是一样的,所以没有责任更新主存,是clean的。:这个好理解呀,你读回来一个数据,你这个cache这个数据就是valid的,如果这个数据在其他cache修改了,你这就是个旧数据,那就是invalid。
2025-05-12 15:29:35
383
原创 snoop操作怎么维护一致性?
假设cpu0要读地址addr=0x08的数据,这个数据L01有一份,DDRC里肯定也有一份,但是CPU0不知道这个事情,然后CPU0会发出一个读请求到HN,它会发一个snoop请求给到CPU1,然后CPU1把数据“可以”给HN,然后HN再把数据回给CPU0。另一种:就是CHI这种,HN要搞个directory记录着各个cacheline,所以来了一个请求,我HN是知道哪个cpu有这个地址的数据的,所以每来一个请求,HN就查directory,查到哪个节点有数据,什么状态,就精准的往对应节点发snoop。
2025-05-12 15:13:04
620
原创 AXI&ACE&CHI的对比
的AR/R/AW通道相比AXI也增加了一些一致性的接口。因此互连需要大量的线和增加的通道来进行snoops和响应。AXI/ACE的spec参见:"IHI0022E_amba_axi_and_ace_protocol_spec.pdf"协议使用了master/slave之间的信号电平通信,ACE和AXI相比除了AR/R/AW/W/B通道外还增加了。CHI的spec参见:"IHI0050G_amba_chi_architecture_spec.pdf"可以说CHI和以往的AXI/ACE是完全不同的架构。
2025-05-12 14:51:53
658
原创 ARM系统中,不同芯粒之间该怎么通信?
过去标准化常被视为放弃自身的 IP 或竞争优势。但如今,鉴于系统的高度复杂性以及合作模式的演变,标准化变得尤为重要——所有参与方都将从中获得多重益处。芯片到芯片互连协议等倡议的落地实施,确保来自不同供应商的不同芯粒通过一个统一的接口协议来确保芯粒之间的互操作性。Arm 推出的芯粒系统架构 (Chiplet System Architecture,),旨在对各个芯粒之间及在整个系统内的通信方式等多个方面实现标准化。此外,Arm 携手合作伙伴共同推动。
2025-05-12 09:56:01
214
原创 AI Coding
2024年6月20日,Anthropic 公司发布 Claude-3.5-Sonnet 模型,该模型在编程能力上取得重大突破,显著推动了业界 Cursor、Devin、Windsurf 等标杆产品的破圈应用。AI Coding 产品的发展可极大地提升专业开发者的编程效率,使其能够将重复性工作交给 AI 处理,把更多精力投入到创造性工作中。这种演进不仅有望进一步降低编程的门槛,使更多泛开发者、非专业人士能够进入编程行业,推动编程的民主化,为后续的软件开发、产品交互及流量生态带来新的发展可能性。
2025-05-09 10:40:44
487
原创 内存条的组成、编址、寻址和读写方式
由此可知:Rank其实就是一组内存颗粒位宽的集合,也可以叫Chips,在PCB上,往往把一面上的内存颗粒组成一个Rank,另一面是另外一个Rank(假若有的话),这样也可以将Rank理解内存条的Side(面)。所以我们可以把内存简单的看成一个线性数组,数组每个元素的大小为8bit,我们称为一个存储单元,对这些存储单元我们从0x00000000开始沿着Rank的访问编址,每8个Cell加1,这样数组里的每个元素都由地址,超过一个Rank的,从上一个Rank的最后一个Cell的地址加1作为基地址。
2025-05-08 14:31:17
1043
原创 PCIe之Link Training
进入configuration.Idle之后发送idle data,及发送data( before scramble) 8’h0,rx收到8个idle,tx发送16个idle之后进入l0,此时linkup首次被拉高。第一步,dsp的link num=0,lane num=pad,usp收到后回复ts1的link num=0,lane num=pad;主要用作握手功能,告诉对方自己已经准备好了,至少收发8个ts2之后进入configuration.idle。
2025-05-08 14:26:14
495
原创 初始AMBA总线
数字IC从基于时序驱动的设计方法,发展到基于IP复用的设计方法,并在SOC设计中得到了广泛应用。为此,业界出现了很多片上总线标准。其中,由ARM公司推出的AMBA片上总线受到了广大IP开发商和SoC系统集成者的青睐,已成为一种流行的工业标准片上结构。AMBA总线是ARM研发的(Advanced Microcontroller Bus Architecture)提供的一种特殊的机制,可以将RISC处理器集成在其他IP芯核和外设中,它是有效连接IP核的“数字胶”,并且是ARM复用策略的重要组件。
2025-05-08 14:24:00
160
原创 Synthesis的分类
EDA工具自动将上一个设计层次的数据转换成下一个层次的设计数据,可大大减少人工消耗,提高设计效率、准确度和复用性。分为行为综合、逻辑综合和物理综合。将基于HDL描述的RTL代码自动转换成门级网表,所用连线延时是布局布线后提取的真实值。将基于HDL代码描述的行为级代码自动转换为RTL级代码,只考虑逻辑不考虑延时。将基于HDL描述的RTL代码自动转换为门级网表,所用连线延时是理论预估值。
2025-05-02 17:29:36
266
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅