自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 【Linux】不同颜色文件表示的意思

2025-03-27 15:11:13 92

原创 【CPU】Hart ID是什么(草稿)

Hart ID 是计算机体系结构(尤其是 RISC-V 架构)中用于唯一标识 硬件执行线程(Hardware Thread, Hart) 的编号。

2025-03-04 20:14:26 382

原创 Makefile编译仿真相关

【代码】编译仿真相关。

2025-02-28 17:29:18 89

原创 【CPU】VIPT为什么不会出现歧义问题【个人草稿】

比如,假设物理地址的tag部分相同,但由于index来自虚拟地址的不同部分,导致相同的tag被放入不同的缓存组,这样即使tag相同,也不会冲突,因为不在同一个组里。不过,这可能不完全正确,因为如果两个不同的物理地址的tag相同,但它们的index部分在物理地址中不同,而缓存的index是来自虚拟地址的,这时候这两个物理地址可能被不同的虚拟地址映射到不同的缓存组中,但因为它们的tag相同,如果它们的index(虚拟的)不同,那么它们会被放在不同的组,但tag相同的情况下,是否会导致问题?

2025-02-12 11:22:59 908

原创 【CPU】MMU相关草稿

首先,我需要回忆一级页表和三级页表的基本区别。接下来,用户提到原来的设计是4KB页,但改进后支持多种页大小,这说明需要多级页表来支持不同大小的页面,可能通过页表项中的标志位来指示页的大小,从而合并某些层级的页表项,减少转换步骤。例如,32位地址空间下,4KB页需要2^20个页表项,每个项假设8字节,则页表大小为8MB。:假设系统使用一级页表,每个进程需要4MB的页表(假设每个页表项8字节,4KB页)。:使用三级页表,当分配1GB内存时,使用一个1GB的大页,只需一个页表项,减少页表内存占用和TLB压力。

2025-02-10 14:10:51 768

原创 【CPU】RISC-V中的PMP物理内存保护单元

NAPOT模式是最常用的地址匹配模式,适用于大多数场景,尤其是当内存区域大小为2的幂次方且起始地址对齐时。TOR模式需要两个连续的PMP条目来定义一个地址范围,适用于需要精确控制较大区域的情况。NA4模式适用于小型数据结构的保护,但由于其粒度过小,在实际应用中较少使用。理解这些地址匹配模式有助于更灵活地配置PMP,从而增强系统的安全性。

2025-01-21 14:56:29 1123

原创 【CPU】上下文切换和ASID(个人草稿)

上下文切换涉及保存当前进程的状态并恢复下一个进程的状态,以便CPU可以继续执行新的进程。ASID用于区分不同的地址空间,使得每个进程都有其独特的标识符。带有ASID的TLB条目允许系统在进程切换时更高效地利用TLB缓存。如果新进程的ASID与前一个进程相同,则可以假设TLB中已经存在的映射仍然是有效的,从而减少了重新加载页表项的需求,提高了性能。通过这种方式,ASID增强了系统的并发能力和性能,同时确保了地址空间的隔离性和安全性。

2025-01-21 11:06:54 904

原创 【CPU】Cache从零开始的知识点大全(更新版)

cache的概念和原理

2025-01-20 16:33:23 1039

原创 【CPU】cache和MMU的关系

之前想不清楚一个问题,当CPU需要获取某个数据时,是直接查找数据cache中的内容,找不到再去执行虚拟地址转换?那转换过后的物理地址是直接去内存中找数据,还是会先再拿着物理地址去cache中找,找不到再去内存?这个问题涉及到的知识点是和找到一篇文章能解答我的部分疑问。

2025-01-16 11:34:22 371

原创 【CPU】Cache和VIPT

cache的组织方式

2025-01-15 11:46:37 320

原创 【计算机组成原理】存储器系统一:存储器分类

以16GB+512GB的手机为例,前者是运行内存,也就是RAM,通常用来临时存储当前正在使用的应用程序的数据,操作系统运行时的数据以及缓存数据(网页缓存,应用缓存)等。后者是存储空间,也就是内部存储或是ROM,它用来存储长期保存数据,比如下载的应用程序,保存的图片和文件等,这类数据即使在手机关机重开后,也不会消失。注意此时ROM的定义。在现代移动设备中,“ROM”通常指的是非易失性存储器,它可以是eMMC(嵌入式多媒体卡)或UFS(通用闪存)(这类存储器不仅用于存储不可更改的固件,还用于存储可修改的数据。

2025-01-14 19:35:19 716

原创 【CPU】MMU,虚拟内存,TLB,页,页表,页表项,三级页表

以RISC-V为例,介绍了内存管理单元MMU的相关知识

2025-01-07 16:41:58 843

原创 【CPU】MMU中的三级页表和两级TLB

介绍三级页表和两级TLB之间的关系

2025-01-07 15:13:12 791

原创 【CPU】MMU的分页机制与内存碎片

是指在内存中存在许多小的、不连续的空闲空间,这些空间虽然总和起来可能足够大,但由于它们是分散的、不连续的,无法用于存储一个完整的程序或数据块。

2025-01-07 10:31:21 540

原创 【CPU】堆栈和堆栈指针(个人草稿)

什么是堆栈?堆栈(Stack)是一种后进先出(LIFO, Last In First Out)的数据结构,广泛用于计算机系统中,尤其是在程序执行过程中管理函数调用、局部变量、返回地址等。堆栈通常位于内存的特定区域,称为堆栈段或栈区。特性后进先出(LIFO):最后入栈的数据最先被弹出。自动管理:大多数编程语言和操作系统会自动管理堆栈的分配和释放,程序员不需要手动操作。快速访问:由于堆栈的操作(如压栈和弹栈)非常简单,因此访问速度较快。

2025-01-06 22:41:40 1009

原创 【CPU】编译器的功能,以及指令转换执行的过程(个人草稿)

CPU执行指令的过程看似简单,但实际上涉及到了复杂的硬件结构和优化技术。理解这些基本原理有助于你更好地掌握计算机体系结构的知识,也为学习更高级的主题打下了坚实的基础。希望这个解释能帮助你对CPU的工作方式有一个清晰的认识。如果你有任何问题或需要更详细的说明,请随时提问!要理解指令是如何被放入内存中以及CPU如何知道会执行哪些指令,我们需要探讨程序的加载和执行过程。这涉及到编译、链接、加载等多个步骤,以及操作系统在其中扮演的角色。让我们一步一步地来了解。

2024-12-31 15:52:03 781

原创 【CPU】risc-v指令集和其他指令集的差别(个人草稿)

RISC-V的寄存器字段位置固定,且立即数字段总是符号扩展,这使得处理器可以在解码指令之前就开始访问寄存器和进行符号扩展,从而提高了指令执行的速度。其他 ISA(如ARM-32和MIPS-32)中,某些指令字段在不同的指令中具有不同的含义,这虽然节省了指令编码空间并简化了指令集,但也增加了解码的复杂性和延迟。这种设计差异反映了 RISC-V 和其他 ISA 在设计理念上的不同:RISC-V 更注重简洁性和高效性,而其他 ISA 则在节省指令空间和保持灵活性方面做出了妥协。ARM-32和。

2024-12-30 22:36:42 763

原创 【CPU】RISC-V 与 x86 操作数字段的区别

在早期的 x86 架构中,指令长度是有限的,因此减少操作数的数量可以帮助节省指令空间。具体来说,RISC-V 的指令通常提供三个寄存器操作数,而 x86-32 的指令则让源操作数和目的操作数共享一个字段。在 x86-32 中,由于指令格式的限制,我们不能直接指定三个不同的寄存器。这意味着,当需要执行涉及三个不同操作数的运算时,编译器或程序员可能需要使用额外的指令来保存中间结果。在这种情况下,RISC-V 的指令可以直接指定三个不同的寄存器,而不需要额外的操作来保存中间结果。的值相加,并将结果存储到寄存器。

2024-12-30 18:04:54 1095

原创 【CPU】分支条件计算结果的等待时间与流水线级数的关系

分支条件的计算结果通常发生在流水线的较晚阶段(如执行阶段或更晚),因此,流水线越深,分支条件的结果就越晚到达。流水线越深,分支条件的结果出来之前,已经有更多的指令被送入了流水线的前几级。如果分支发生,这些指令可能会被浪费,导致流水线阻塞。分支预测可以帮助减少分支带来的性能损失,但如果预测错误,流水线的深度越大,性能损失就越严重。

2024-12-30 15:12:35 944

原创 【CPU】专业术语记录

典型的例子是ARM的big.LITTLE架构,它将高性能的核心(称为“big”核心)和低功耗的核心(称为“LITTLE”核心)组合在一起。高性能核心适合处理复杂的计算任务,而低功耗核心则用于处理轻量级任务,从而在性能和功耗之间取得平衡。集群的概念主要用于异构多核处理器(Heterogeneous Multi-Core Processor),其中不同集群的核心可能有不同的性能、功耗或功能特性。例如,Intel和AMD的大多数消费级CPU都是同构的,所有核心都可以执行相同类型的指令,并且性能一致。

2024-12-30 09:48:53 247

原创 在仿真验证过程中,ap.c和sv文件之间的关系

ap.c文件和sv文件之间的关系主要体现在硬件-软件协同设计与验证的过程中。ap.c文件中的代码用于控制硬件模块的行为,而sv文件用于描述硬件模块的功能或构建验证环境。两者通过硬件寄存器、测试平台、覆盖率分析等方式进行交互,确保硬件和软件的正确性和鲁棒性。

2024-12-04 19:11:18 743

转载 【转载】wavedrom教程

没想到上一篇发出去,前几个小时竟然基本没人看,是我写得太晦涩了吗,这篇介绍个简单但是相当好用的软件WaveDrom,可以非常方便的绘制,简直是数字人的福音啦!P.S. 照这个速度,也不知道多久能把BasicVerilog库中的模块学习完毕哇_(:з)∠)_(已经忘记了是这周第几躺了)。

2024-10-29 10:08:35 603 2

转载 【AXI】突发类型地址计算

对于burst type 值为2'b10时, 为wrap模式, 这时对于一笔burst中的每个transfer对应的地址有上限和下限的限制,在这个限制范围之内,每个transfer对应的地址也是递增的关系,这种burst type多用于cache line 访问(如MCU), 但是需要注意的是。address_n: 一笔burst中的第n个transfer对应的地址,对于第一个transfer,对应的地址为address_1,对于第n个transfer,对应的地址为address_n。

2024-10-08 10:54:17 325 1

原创 【AXI】WRAP的地址

缓存未命中:处理器需要从主内存中读取整个缓存行。初始地址:处理器发送的地址可能不是缓存行的起始地址。地址回卷:使用wrap突发类型,地址在达到上限后会自动回卷到下限,确保读取完整个缓存行。

2024-10-08 10:37:32 591

原创 DMA和DMAC

DMAC和DMA是紧密相关的术语,它们在计算机硬件和电子工程领域中经常被提及。DMAC实际上是DMA控制器(Direct Memory Access Controller)的缩写,而DMA则是直接内存存取(Direct Memory Access)的简称。

2024-07-15 15:27:09 1731

原创 【AMBA】AXI总线中的AXLEN、AXSIZE、AXBURST和4K边界

AXI总线中的AXLEN、AXSIZE、AXBURST和4K边界

2024-07-14 23:34:27 3177 1

原创 中断控制寄存器的介绍

SRCPND寄存器,INTMASK寄存器通常表示什么

2024-07-14 14:49:23 613

原创 【AMBA】漫谈AHB总线(二~四)

从机响应 主机控制主机仲裁主机仲裁时序图讲解。

2024-07-11 15:06:29 291

转载 【AMBA】漫谈AMBA总线-AHB

AHB总线系列一

2024-07-11 14:48:05 96

转载 【AMBA】AHB中hreadyout和hready_in的区别

重新拿上面的仿真图看一下,由于前一个周期的s1_hreadyout为低电平,所以s2的hready_in也为低电平,那么该周期s2不会对addr以及控制信号进行采样。上面这张时序图表明master有两笔写传输,第一笔传输为slave1(s1),传输类型为SEQ,在第一笔传输的第二个周期,也就是第一笔传输的data phase,此时slave1没有准备好被写数据,因此把s1_hreadyout拉低,但此时slave2已经看到自己的NONSEQ传输了,而且slave2已经是准备好了的。

2024-07-10 11:11:08 402

转载 【AMBA】AHB_slave的hready_in与hready_out

假如第三个周期写S1,那么S2就要在第四个周期写数据,如下图所示:此时S2就出问题了,它的hready始终没有拉低,但平白无故的数据往后延迟了一个周期,又不是burst传输,因为连续出现了两个NOSEQ,地址又没有增加,这就造成了协议错误!在第三个周期,所有的hready_out都为高,那么hready_in也为高,在该周期会写入S1,并且S2会采样地址和控制信号,然后在第四个传输周期写入S2,这样就合理了!因此,针对这种一主多从的传输冲突问题,需要引入hready_in信号,假如第三个周期写S2呢?

2024-07-10 10:53:40 364

转载 【转载】数电笔记总结

第一章、数制和码制一、常用的数制及其转换二、不同数制间地转换三、二进制算术运算四、几种常用的编码五、部分习题及小结第二章、逻辑代数基础一、三种基本运算二、逻辑代数的基本公式三、逻辑代数的基本定理四、逻辑函数及其描述方法五、逻辑函数的化简方法六、具有无关项逻辑函数的化简方法七、部分习题及小结第三章、门电路(可以不看~)一、 概述二、 半导体二极管三、CMOS门电路四、 TTL门电路第四章、组合逻辑电路一、概述二、组合逻辑电路的分析方法三、组合逻辑电路的基本设计方法四、常用的组合逻辑电路模块。

2024-07-08 11:09:28 2155

原创 【AMBA】APB总线的个人学习记录(一):理论知识

APB总线的理论知识

2024-06-28 10:03:38 1318

原创 Markdown基础教程

Markdown编辑器的简单使用教程。

2024-06-22 16:39:15 466

原创 【Linux】grep命令详解

grep是一个非常强大的文本搜索工具,用于在文件中搜索与指定模式匹配的行。grep支持正则表达式,并且可以应用于单个文件或一组文件,甚至标准输入。下面详细介绍grep。

2024-06-06 17:04:06 728

原创 【Linux】软链接和硬链接

在 Linux 中,软链接(symbolic link,也称为 symlink)是一种文件引用机制,它允许你创建一个指向另一个文件或目录的“快捷方式”。软链接可以跨文件系统,也就是说,即使目标文件或目录位于不同的磁盘分区上,软链接仍然可以正确引用。

2024-06-06 16:11:22 1117

转载 【转载】Linux简介及基本命令的使用

Linux操作系统是和windows操作系统是并列的关系。只不过只是两个操作系统的特性各有不同而已。

2024-06-04 16:05:11 73 1

转载 【转载】VCS的仿真编译命令

VCS的仿真选项分编译(compile-time)选项和运行(run-time)选项。

2024-06-04 09:53:46 405

原创 芯片设计流程中仿真和测试的概念

芯片设计流程中的概念分析

2024-03-19 10:03:41 804 1

原创 Verilog实现大小端转换(字节不变)

大小端(Endianness)是计算机存储和表示多字节数据的方式。它指定了在内存中多字节值的字节顺序。有两种常见的字节序:大端字节序(Big Endian):在大端字节序中,最高有效字节(Most Significant Byte,MSB)位于存储地址的最低位置,而最低有效字节(Least Significant Byte,LSB)位于存储地址的最高位置。例如,对于十六进制数值0x12345678地址: 0x100 0x101 0x102 0x103​​​​​​​内容: 12 34 56 78。

2024-02-04 16:37:45 1876 1

综合与时序分析的设计约束

sdc实用指南

2024-07-16

空空如也

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

TA关注的人

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