- 博客(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的技术详解与应用规范
2025-01-12
DesignWare Cores DDR5/4内存控制器详细数据手册与配置指南
2025-01-12
《Synthesizing SystemVerilog Busting the Myth that SystemVerilog》
2024-09-22
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人