计算机体系结构
文章平均质量分 96
《计算机体系结构基础》第3版、《计算机体系结构量化研究方法》第5版等书籍读书笔记
yelvens
我很懒,什么都没留下…
展开
-
RISC-V Optimization Guide(笔记)
使用lui/addiw将立即数加载至寄存器,当立即数低12位的最高位为1时,需要特殊处理,提前补值0x800。原创 2024-03-12 19:35:44 · 1149 阅读 · 0 评论 -
多核处理器结构
从20世纪90年代后期开始,随着半导体工艺的发展,单芯片上晶体管数目大幅增多,多核处理器得到了很好的发展。多核处理器(Multicore Processor)在单芯片上集成多个处理器核,也称为单片多处理器(Chip Multi-Processor,简称CMP),通过聚合芯片上的多个处理器核的计算能力来提高应用程序执行性能。各处理器核并行执行线程(或者进程)发出读/写(load/store)访存指令,这些访问指令的执行次序如何约定,使得应用程序员可以利用这些约定来推理程序的执行结果。片上Cache如何组织?原创 2023-04-01 20:07:17 · 3574 阅读 · 0 评论 -
计算机组成原理和结构
现代计算机都采用存储程序结构,又称为冯·诺依曼结构,是1945年匈牙利籍数学家冯·诺依曼受宾夕法尼亚大学研制的ENIAC计算机结构的启发提出的,是世界上第一个完整的计算机体系结构。冯·诺依曼结构的主要特点是:冯·诺依曼计算机的工作原理如下图5.1所示。运算器是计算机中负责计算(包括算术计算和逻辑计算等)的部件。运算器包括算术和逻辑运算部件(Arithmetic Logic Units,简称ALU)、移位部件、浮点运算部件(Floating Point Units,简称FPU)、向量运算部件、寄存器等。其中原创 2022-10-10 21:08:27 · 3830 阅读 · 1 评论 -
常见上下文切换场景
函数调用是用户主动发起的指令流和上下文改变。普通的转移指令只改变指令流不改变上下文,函数调用则通过ABI约定实现了一定的上下文变化。函数调用通常伴随着栈帧的变化,此外部分寄存器也会发生变化。根据ABI的约定,像这样约定由被调用者保存(Callee Save)的寄存器在函数调用前后保持不变,而通用暂存器、参数寄存器等则不保证维持调用前的值。不同指令系统实现函数调用的方式有所不同。LoongArch采用比较典型的RISC做法,硬件仅仅提供一个机制(bl或者jirl指令),用于在改变指令流的同时保存一个返回地址到原创 2022-09-28 18:16:12 · 391 阅读 · 0 评论 -
函数调用约定
函数调用约定,是指在不同的体系结构中,函数调用时,都会有一套怎样给被调函数传递参数以及怎样从被调函数中返回结果值的约定。这套约定的背后,遵循的原则是:将参数和返回值要么放在堆栈上,要么放在寄存器和堆栈的组合上。现代处理器体系结构基本上都是采用寄存器和堆栈的组合,即给定数目的寄存器用于存放堆栈和返回值,当寄存器的数目不够用时,再将多出来的参数放在堆栈上面。......原创 2021-11-20 18:05:08 · 1312 阅读 · 0 评论 -
寄存器和运行时栈
文章目录一、寄存器二、运行时栈一、寄存器在LoongArch体系中,有32个通用寄存器,除了0号寄存器始终为0外,其他31个寄存器物理上没有区别。但系统人为添加了一些约定,给了它们特定的名字和使用方式。对以上通用寄存器详细说明:$r0寄存器中存放的值永远是零,且不能改变,这个寄存器的用途主要是方便编码。$r3寄存器存放运行时栈的栈顶地址,会一直变化。通用寄存器有8个用于整型参数传递,寄存器名字依次是$a0~$a7(编号依次是$r4~$r11),$a0和$a1也用于存放返回结果值;浮点寄存器也原创 2021-11-29 23:16:42 · 3406 阅读 · 0 评论 -
提高流水线执行效率的技术
文章目录一、提高流水线执行效率二、多发射数据通路三、动态调度一、提高流水线执行效率看懂这一章节的前提是,掌握经典的单发射五级流水线原理,《深入理解计算机系统》第四章中有详细的讲解,配合《计算机体系结构基础》第3版一起食用,读CSAPP第四章节时做的笔记:CSAPP:第四章——处理器体系结构(上)CSAPP:第四章——处理器体系结构(下)我们通常以应用的执行时间来衡量一款处理器的性能,应用的执行时间 = 指令数 * CPI(Cycles Per Instruction,每指令执行周期数) * 时原创 2022-04-14 13:17:12 · 3188 阅读 · 2 评论 -
常见CPU指令系统
文章目录一、指令系统简介二、指令系统组成2.1 地址空间2.2 操作数2.3 指令操作和编码三、RAISC指令比较3.1 指令格式比较3.2 寻址方式比较3.3 公共指令功能3.4 不同指令系统的特色一、指令系统简介依据指令长度的不同,指令系统可分为复杂指令系统(Complex Instruction Set Computer,简称CISC)、精简指令系统(Reduced Instruction Set Computer,简称RISC)和超长指令字(Very Long Instruction Word,原创 2022-04-18 19:30:21 · 9272 阅读 · 0 评论 -
CSAPP:第六章——存储器层次结构
文章目录一、存储技术1.1 随机访问存储器1.1 随机访问存储器二、局部性三、存储器层次结构四、高速缓存存储器五、编写高速缓存有好的代码六、高速缓存对程序性能的影响如果数据在寄存器中,指令执行期间,访问需要0个始终周期;在高速缓存中,需要4~75个周期;在主存中,需要上百个周期;在磁盘中,大约要几千万个周期。一、存储技术1.1 随机访问存储器随机访问存储器(Random-Access Memory,RAM)分两类:静态(SRAM)和动态(DRAM)。都具有易失性,断电后数据丢失。SRAM比DR原创 2022-03-28 09:04:33 · 1258 阅读 · 0 评论 -
CSAPP:第四章——处理器体系结构(下)
文章目录四、流水线的通用原理4.1 计算流水线4.2 流水线操作的详细说明4.3 流水线的局限性4.4 带反馈的流水线系统五、Y86-64的流水线实现5.1 SEQ+:重新安排计算阶段5.2 插入流水线寄存器5.3 对信号进行重新排列和标号5.4 预测下一个PC5.5 流水线冒险5.6 异常处理5.7 PIPE各阶段的实现5.8 流水线控制逻辑5.9 性能分析5.10 未完成工作四、流水线的通用原理4.1 计算流水线4.2 流水线操作的详细说明4.3 流水线的局限性4.4 带反馈的流水线系统五、原创 2021-12-28 19:39:16 · 1436 阅读 · 0 评论 -
CSAPP:第四章——处理器体系结构(上)
文章目录概述一、Y86-64指令体系结构1.1 程序员可见状态1.2 Y86-64指令1.3 指令编码1.4 Y86-64异常1.5 Y86-64程序1.6 一些Y86-64指令的详情二、逻辑设计和硬件控制语言HCL三、Y86-64的顺序实现四、流水线的通用原理五、Y86-64的流水线实现概述指令被编码为由一个或多个字节序列组成的二进制格式,一个处理器支持的指令和指令的字节级编码称为它的指令集体系结构(Instruction-Set Architecture,ISA),如LoongArch ISA指令a原创 2021-10-19 20:06:47 · 1958 阅读 · 0 评论