自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(17)
  • 收藏
  • 关注

原创 AMBA 总线及AXI协议介绍

高级微控制器总线架构 (AMBA) 是一种开放标准的片上互连规范,用于连接和管理片上系统 (SoC) 设计中的功能块。从本质上讲,AMBA 协议定义了功能块如何相互通信。图1 :SOC 系统图此 SoC 具有多个功能块,这些功能块使用 AMBA 协议:APB、ACE-lite、 AXI和CHI 总线进行通信和互联。AXI 是一种接口规范,用于定义 IP 模块的接口,而不是互连本身。图 1. AXI 接口。

2025-03-07 19:59:38 1054

原创 AI 学习入门之概述篇

老生常谈,首先是人工智能的基本概念和分类。人工智能分为弱人工智能和强人工智能,弱人工智能是能够完成某种特定任务的人工智能,换个角度看,就是一种计算机科学的非平凡的应用。强人工智能或通用人工智能(Artificial General Intelligence, AGI),能表现正常人类所具有的各种智能行为。行为主义:基于控制论,构建感知-动作型控制系统符号主义:基于符号逻辑的方法,用逻辑表示知识和求解问题连接主义:基于大脑中神经元细胞连接的计算模型,用人工神经网络来拟合智能行为。

2025-02-15 13:07:44 927

原创 Sifive Tilelink (V1.8.1) spec 文档学习(上)

TileLink 是作为 RISC-V 生态系统的一部分被开发和推广的,它是开源的芯片级互连标准,主要应用在片上系统(SoC)设计、RISC-V 处理器相关系统、数据中心加速器、物联网(IoT)设备和移动与无线设备。这篇技术博客以Sifive Tilelink (V1.8.1) spec 为主,介绍相关的规范要求。下一篇讲分别介绍TL-UL、TL-UH和TL-C的具体内容。

2025-01-12 12:41:39 935

原创 《超标量处理器设计》之执行(execute)

在超标量处理器的流水线中,执行(Execute)阶段负责指令的执行,接收指令的源操作数,对其进行规定的操作,例如加减法、访问存储器、判断条件等,然后这个执行的结果会对处理器的状态进行更新,例如写到物理寄存器堆(Physical Register File)中,写到存储器中,或者从指定的地址取指令等,同时这个执行结果可以作为其他指令的源操作数(这就是旁路)。

2025-01-04 16:27:55 910

原创 《超标量处理器设计》之发射(issue)

在流水线的发射阶段之前读取寄存器的这种方式,所需要的寄存器堆的读端口个数会比较少,但是由于需要在发射队列中存储操作数,所以发射队列所占用的面积会更大一些。而且,在这种方法中,很多源操作数都需要经历两次读和一次写的过程,即从寄存器中读取出来,写到发射队列中,然后再从发射队列中读取出来送到FU中执行,不利于实现低功耗的处理器。而采用在流水线的发射阶段之后读取寄存器的方式,需要寄存器堆有着更多的读端口,但是在发射队列中不再需要存储源操作数,所以发射队列在面积和速度方面会好一些。

2024-12-16 22:15:38 1059

原创 《超标量处理器设计》之寄存器重命名(rename)

这里需要提到两个重点概念,物理寄存器和逻辑寄存器。物理寄存器(Physical Register)是在处理器内部实际存在的寄存器,与之对应的,寄存器称为逻辑寄存器(Logical Register,或Architecture Register)是在指令集中定义的寄存器。逻辑寄存器指的是在指令集中定义的通用寄存器,例如MIPS处理器定义了R0~R31这32个通用寄存器,而物理寄存器是指经过寄存器重命名之后使用的寄存器,它才是在处理器中真正存在的寄存器。

2024-12-07 17:12:14 1245

原创 《超标量处理器设计》之分支预测

在处理器中,除了Cache之外,另一个重要的内容就是分支预测(branch prediction)它和Cache一起决定处理器的性能。对于超标量处理器来说,准确度高的分支预测更为重要,在取指令阶段,除了需要从 I-Cache中取出多条指令,同时还需要决定下个周期取指令的地址。

2024-11-30 11:33:48 1199

原创 Genus 预综合中的Retime 设置

retime是一种在不改变输入输出延迟的情况下,通过重新定位寄存器以减少周期时间或面积来改善顺序电路性能的技术,这种技术通常用于数据路径设计。流水线是重新计时的一个子集,其中在设计中添加了足够的寄存器阶段。这可以是一个简单的流水线设计,其中包含描述功能的组合逻辑,然后是许多满足延迟要求的流水线寄存器。顶层模块称为Top。此外手册里还讲到了手动Retiming的设置,实际上用的比较少,这里就不再介绍,详细参考文档。在这一步骤中,会对带有“重定时”属性标记的模块自动执行重定时操作,并着重于将延迟降至最低。

2024-11-16 11:27:13 1064 1

原创 TLB 和cache 的设计及实现

在没有用户手册的情况下,很难记住协处理器中每个寄存器的用处,不过考虑到ARM采用了硬件方式来解决TLB缺失,一般情况下并不需要直接使用指令对TLB进行操作,因此这种协处理器的控制风格也是无可厚非的。二、Cache的设计TLB只是加速了从虚拟地址到物理地址的转换,可以很快地得到所需要的数据(或指令)在物理内存中的位置,也就是得到了物理地址,但是,如果直接从物理内存中取数据(或指令),显然也是很慢的,因此可以使用在以前章节提到的Cache 来缓存物理地址到数据的转换过程。实际上,

2024-11-08 21:24:30 1350

原创 缓存预取技术综述(指令和数据)

三、Data Prefetching数据缺失模式源自算法和高级编程构造在内存中组织和遍历数据时固有的结构。在传统的冯·诺依曼计算机系统中,指令缺失模式往往相当简单,遵循顺序模式或在结构良好的控制流图中进行重复的控制转移。然而,数据访问模式可以更加多样化,特别是在支持多次遍历的指针链接数据结构中。此外,代码往往是静态的,因此容易进行预取(除了最近的虚拟化和即时编译机制,这些机制往往会阻碍指令预取)。而数据结构在执行过程中会发生变化,导致遍历模式也随之改变。

2024-10-19 12:30:00 3963

原创 可综合system verilog语法及优势总结

近期学习了《Synthesizing SystemVerilog Busting the Myth that SystemVerilog is only for Verification》这篇文档,发现对于IC 设计工程师,用SV 做RTL 设计,优势比verilog强大很多。首先纠正一个误区,SystemVerilog-2005 不是一种独立的语言——它只是一组Verilog-2005 之上的扩展。

2024-10-12 19:47:11 3485

原创 超标量处理器设计之虚拟存储器MMU

本节讲述了在虚拟存储器的系统中,如何将虚拟地址转换成为物理地址,以及单级页表和多极页表的实现原理,并介绍了Page Fault发生时如何进行处理。

2024-09-21 13:22:49 2150

原创 SRAM 替换经验总结

在芯片设计中使用SRAM 进行数据的缓存是比不可少的,在后端实现时需要根据具体的工艺库完成对SRAM 的替换,mem 主要包括2种类型:单口sram和双口sram。这里把替换前的SRAM 称为LM(local memory),一般是比较大的sim-model ,是纯RTL 代码做功能实现;替换后的mem 称为IM(implemented memory),是根据工艺库选出来的真实的mem,本文分享进行mem替换时的步骤和注意事项。

2024-09-21 12:17:25 1542

原创 超标量处理器设计cache篇之超标量处理器的取指令

对于一个n-way 超标量处理器,需要每周期同时解码n 条指令,为了“喂饱”后续流水线,避免流水线的浪费,取指阶段就需要在一个周期内至少icache 中取出n条指令,这n条指令称为。

2024-09-07 10:12:12 1059

原创 超标量处理器设计合集cache篇之多端口cache

在超标量处理器中,为了提高性能,处理器需要能够在每周期同时执行多条load/store指令,这需要一个多端口的D-cache,以便能够支持多条load/store指令的同时访问,因此多端口的D-cache是在超标量处理器中必须要面对的问题,其实在超标量处理器中,有很多部件都是多端口结构的,例如寄存器堆(Register file)、发射队列(issue Queue)和重排序缓存(ROB)等。

2023-11-02 16:22:04 603

原创 超标量处理器设计合集cache篇之提高cache的性能

上一篇介绍了cache的基本原理,在真实世界的处理器中。会采用更复杂的方法来提高cache的性能。写缓存(write buffer)、流水线(pipeline cache)、多级结构(multilevel cache)、victim cache 和预取(prefetching)等方法。对于乱序执行的超标量处理器来说,还有一些其他的方法来提高cache的性能,例如非阻塞cache、关键字优先和提前开始等方法。

2023-10-31 18:24:43 515

原创 超标量处理器设计学习合集cache篇之cache的一般设计

在超标量处理器中,有2部分直接影响性能:分支预测和cache。了解cache的基本结构及cache一致性对CPU设计者来说是必不可少的。本篇笔记就从cache 概念入手,介绍关于cache 一般设计的相关知识,本合集会持续更新CPU设计相关知识,为CPU设计者提供参考。

2023-10-09 15:14:00 1293

芯片间互连UCIe标准1.0的技术详解与应用规范

内容概要:该文档详细介绍了 Universal Chiplet Interconnect Express (UCIe) 规范修订版 1.0 的主要内容和技术细节。它解释了 UCIe 组件(协议层、片到片适配器、物理层、接口)、配置方式(单模块和多模块配置)、重定时器、关键性能指标以及互操作性的实现方法。文档还涵盖了 PCI Express 和 Compute Express Link 协议在 UCIe 中的具体应用场景,包括工作模式、侧带消息交互机制及其相关电气参数定义等内容。 适用人群:硬件设计师、嵌入式系统开发者及对芯片封装与互连感兴趣的科研人员。 使用场景及目标:适用于多裸晶封装的设计流程,在不同模块间的高速数据传输时提高互操作性和可靠性,解决高频率信号在短距离内的可靠传输难题。该文档能够帮助工程师更好地理解和实施最新的多芯封装技术和通信标准。 其他说明:本规格说明书强调了小焊盘间距带来的挑战,提出了降低最大频宽来优化面积并满足供电和散热约束的方法,从而为未来更细粒度集成提供更多指导方针。同时,提供了各版本变更记录表供查阅。

2025-01-12

DesignWare Cores DDR5/4内存控制器详细数据手册与配置指南

内容概要:本文档详细介绍了由Synopsys公司开发的DesignWare Cores DDR5/4 内存控制器的数据手册。内容涵盖了产品的概述、特性(如性能特性、功耗节省功能)、时钟与复位要求、支持的标准、系统接口及地址映射等内容。特别提及了DDR4与DDR5特有的功能及其编程方法,以及针对关键命令和操作的解释和编程指导。还讨论了故障检测机制,诸如致命的CA奇偶校验错误及其处理方式。 适合人群:硬件设计人员、嵌入式系统开发者、内存子系统的工程师和技术负责人。对于需要深入了解DDR4/DDR5内存控制器设计和应用的人士尤其有价值。 使用场景及目标:本文档可用于帮助用户全面理解DesignWare DDR内存控制器的操作流程与参数设置,为正确地集成并优化控制器到具体项目提供了详尽的技术参考和支持。目标是确保在实际应用场景中充分发挥内存控制器的优势,实现高效的存储管理和访问速度。 阅读建议:由于涉及众多技术细节与专业术语,在阅读过程中可能需要对照提供的附录章节进行进一步理解和研究。建议读者结合具体的实验环境逐步验证所学到的概念和方法论,尤其是关于初始化序列部分。

2025-01-12

Low Power Methodology Manual For System-on-Chip Design.pdf

低功耗设计必读文档

2024-10-13

《Synthesizing SystemVerilog Busting the Myth that SystemVerilog》

主要内容:介绍了SystemVerilog语言在ASIC和FPGA设计中进行RTL建模的优点,并详细解释了其与传统Verilog的区别。文章强调了SystemVerilog可以帮助设计师用更少行数创建精确的设计模型,在减少潜在错误的同时,提高了综合QoR(Quality of Results)。具体讨论的主题包括数据类型如枚举、自定义类型等。 适合人群:涉及RTL设计和综合任务的相关电子工程师以及硬件设计人员。 使用场景及目标:旨在让从事集成电路设计的人士更好地利用SystemVerilog的强大特性和优点来进行更为高效的硬件描述,降低设计风险并改进最终的设计效果。 其他说明:此资源基于Symplyfi-Pro和Design Compiler的具体版本,并对其合成能力和特性提供了实际指导,有助于提升系统级设计工程师的工作效率和代码质量。

2024-09-22

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除