Understanding the LLVM Compiler

https://medium.com/@abhilashkrish/understanding-the-llvm-compiler-a-comprehensive-guide-to-code-translation-and-optimization-decea91fe29d#:~:text=Middle%2Dend%3A%20Optimizes%20the%20LLVM,%2C%20registers%2C%20and%20instruction%20set. https://www.npopov.com/2023/04/07/LLVM-middle-end-pipeline.html Components of LLVM: LLVM is designed with a three-phase architecture: Frontend, Middle-end, and Backend. Each component plays a crucial role in translating high-level source code into machine-executable code, while allowing modularity and optimizations…

【计算机体系结构】Tomasulo算法

https://zhuanlan.zhihu.com/p/499978902 1、数据冒险 数据相关有四种,分别是RAR、WAR、WAW、RAW。其中“RAR”不会影响指令的执行,所以提数据相关的时候一般忽略,而WAR、WAW、RAW的重要差别就出在“数据依赖”上。“WAR”和“WAW”这两种数据相关其实没有数据依赖,即发生冒险的指令之间其实没有数据流动,通过寄存器重命名就可以消除冒险。“RAW”冒险则无法解决,因为后序指令读取的数据由前序指令算得,这个过程有明确的数据依赖。 2、Tomasulo算法 Tomasulo是计算机硬件架构的一种指令动态调度算法,其通过寄存器重命名消除了假数据冒险,提高了机器的乱序性能。Tomasulo算法的调度分为三个步骤:发射、执行、写回。 Tomasulo算法的实现结构 发射:Tomasulo算法是顺序发射的,即指令按照程序中的顺序一条接一条被发射到保留站。判断能否发射的唯一标准是指令对应通路的保留站是否有空余位置,只要保留站有空余,就可以把指令发射到保留站中。周期结束时会更新保留站和寄存器结果状态表,如果指令有可以读取的数据,就会立刻拷贝到保留站中;寄存器结果状态表中总是存有最新的值,即如果后序指令的目的寄存器和前序指令的目的寄存器重合,那就只保留后序指令的写信息。 执行:指令通过拷贝数据和监听CDB获得源数据,然后开始执行,执行可能是多周期的,在执行过程中不改变处理器状态。 写回:指令在写回阶段通过CDB总线将数据直通到寄存器堆和各个保留站;周期结束时,根据寄存器结果状态表来更新寄存器堆,并且清除保留站和寄存器结果状态表的信息。 保留站 寄存器结果状态 Tomuasulo调度流程中的要点: 一条指令能否发射,要看对应配置通路的保留站是否有空余,只要有空余,就可以发射到保留站中等待执行;发射的同时会把能读取的数据直接拷贝到保留站,这样做就不用考虑WAR冒险。 指令在发射的时候会更新寄存器状态表,如果后序指令和前序指令的目的寄存器重合了,就用后序指令的写信息标志寄存器,即只会把后序指令的计算结果写进寄存器,这样可以解决WAW冒险。 如果执行单元中有指令正在执行,其他指令就在保留站中等待;如果指令缺少源数据,就留在保留站中,时刻监听CDB总线,如果CDB总线广播了需要的数据,就立马拷贝下来,然后准备执行。 一条指令在源数据全部准备好之后就可以执行,执行可能是多周期的。 一条指令只要完成计算,就可以写回,写回的数据通过CDB总线直通寄存器堆和各个保留站。但是指令的结果未必会写进寄存器堆,因为寄存器结果状态表中总是存有最新的状态,即如果发生WAW冒险,Tomasulo算法会记录下最新的写指令,而抛弃前序的写指令结果,前序写指令的结果不会写回到寄存器堆。 Tomasulo算法不支持精确中断,即在指令和指令之间如果出现了中断/异常,那么处理器要确保中断/异常之前的所有指令都执行完毕,而中断/异常之后的所有指令都没有执行。这使得程序的正确执行无法保证,为分支指令的处理和程序员调试程序带来了巨大的麻烦。要支持精确中断,就要确保指令按序提交,因此,设计人员提出了重排序缓冲的概念,对Tomasulo算法进行改进,从而实现处理器的按序发射-乱序执行-按序提交。

Presentation Template

较为规范的报告纲要 报告文档应包含三个部分: 1)论文(介绍自己的工作时可以缺或是草稿) 2)PPT 3)作为对PPT的补充的论文阅读笔记 报告内容应大致包括: 0)相关信息:哪一年哪个会,作者、research group, 及affiliation 1)工作意义:试图解决什么问题?这个问题有多大意义?(宏观上,这项project能解决什么棘手的问题?) 2)相关工作:针对这一或相似问题,(最近)有哪些(其它的)有关的工作,解决到什么地步,仍然存在的困难分别是什么?(具体地,为什么这个想法就可能能解决某些问题?) 3)基本设想:为什么这样就(可能)可以(部分)解决问题?(例如:如果我能得到XX,就能分析出YY,进而计算出ZZ,……) 4)技术思路:具体的设计方法和工作步骤,需要哪些基础工具,怎样实现?最大的困难在哪儿? 5)评价方法:首先,回头看看,最初提出的问题/目标有没有解决/达成;其次,此问题的解决技术常用的评价方法是什么?有没有公认的benchmark或testbed,准备如何给出结论? 6)总结,并有没有进一步的设想。 无论是介绍别人的project,还是讲自己的idea/project,基本上都是应该明确按照上述的思路讲,不要试图跳步骤。 by 茅兵老师

RISC-V simulation with Qemu

https://medium.com/@e1d1/risc-v-simulation-with-qemu-61ea8f2d8f4b Installation of Qemu On the Qemu website, you can find a lot of information on how to get it running. But for the specific purpose of this tutorial, a…

Installing & Building RISC-V Toolchain

https://bernardnongpoh.github.io/posts/riscv https://github.com/riscv-collab/riscv-gnu-toolchain Prerequisites Several standard packages are needed to build the toolchain $ sudo apt-get install autoconf automake autotools-dev curl python3 python3-pip libmpc-dev libmpfr-dev libgmp-dev gawk build-essential bison flex texinfo…

Personal Statement

https://open.spotify.com/track/6KfoDhO4XUWSbnyKjNp9c4?si=4b5dd8377f6c42bb 天赋,与生俱来; 幸运,不期而遇; 努力,宁缺毋滥! Art is never finished, only abandoned! Let life be beautiful like summer flowers, and death like autumn leaves!

Code Is Poetry

https://open.spotify.com/track/4u26EevCNXMhlvE1xFBJwX?si=c1fd95c908cd4152 There's a difference between knowing the path and walking the path. Don't believe in any of this fate crap! You're in control of your own life, remember? Abracadabra!

Modern Zen Poem

https://open.spotify.com/track/4tgyXJGY7pdxub6XuC9Dam?si=5d5d07c6d81849f8 To follow the path:look to the master,follow the master,walk with the master,see through the master,become the master.

How To Become A Hacker

https://open.spotify.com/track/3AVrVz5rK8Hrqo9YGiVGN5?si=f09c5d158aba4c35 The world is full of fascinating problems waiting to be solved. No problem should ever have to be solved twice. Boredom and drudgery are evil. Freedom is good. Attitude…