![](https://img-blog.csdnimg.cn/20201014180756925.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
计算机系统
idevede
在等待的日子里,刻苦读书,谦卑做人,养得极深,日后才能枝繁叶茂
展开
-
计算机系统原理之程序是怎么运行的
计算机的组成 计算机是由硬件和软件组成的,这两个部分共同协作完成程序的运行。这两部分如何协作完成程序的运行,是本系列的重点。 信息的表示 信息的表示说到底就是位加上下文。举个小例子,比如11011101这一串二进制,在表示整数的时候它表示221,但是如果放在Java的class文件当中,它可能代表一个JVM的指令。 程序的编译转载 2016-11-16 16:51:50 · 9096 阅读 · 0 评论 -
LLVM 后端移植 寄存器定义部分代码分析
对经过前端翻译后生成的 LLVM 中间代码,通过后端代码生成器可以生成对特定后端处理器的后端代码。生成的后端代码可以两种形式存在:一种是以目标处理器的汇编代码形式,可以通过汇编器编译后得到相应的目标处理器二进制代码, 并能运行在目标处理器上;另一种是直接以二进制代码存在,不能运行在目标处理 器上,但可以使用 JIT 编译器直接在本地运行。移植接口代码结构有用的抽象类::TargetMachin...原创 2019-05-22 13:28:02 · 7094 阅读 · 0 评论 -
LLVM TableGen 学习笔记
LLVM TableGen分析TableGen 描述文件是由许多的记录(record)组成的。每一个记录都有一个唯一的名字,包含一系列的数据,这些数据就是 TableGen 文件所描述的领域所需的信息。使用 tblgen 工具解析文件时,指定这些数据所针对的不同领域,就可以解析出该领域所需的记录信息。记录可以分为两种,一种称为定义(definition),一种成为类(class)。定义是最基本...原创 2019-05-21 23:14:14 · 7630 阅读 · 0 评论 -
Improving direct-mapped cache performance by the addition of a small fully-associative cache and pre
Improving direct-mapped cache performance by the addition of a small fully-associative cache and prefetch buffers 阅读笔记摘要总结摘要计算机预测技术在不久的将来峰值将达到1000MIPS。如果这些处理器的层次结构基于传统的缓存技术,很容易损失一半甚至更多的性能。本文介绍了提高缓存性...原创 2019-05-15 22:00:57 · 6559 阅读 · 0 评论 -
MIPS R10000 文献综述
论文地址:https://ieeexplore.ieee.org/document/491460MIPS R10000 是动态超标量RISC处理器,是为克服性能限制(存储带宽和时延)而设计的,它在每个时钟周期可以取值和编码4条指令,并且能够动态的将他们发送到5级完全流水、低时延的时钟单元中。它拥有4项分支栈,可以在分支之前预测式的执行。采用动态乱序执行技术,尽管指令的执行是无序的,但是指令...原创 2019-05-07 09:47:50 · 10014 阅读 · 0 评论 -
在RISC V 上添加custom指令并在gem5 和 spike上运行
修改RISCV工具链第一步是安装RISCV工具链:$ git clone https://github.com/riscv/riscv-tools.git$ git submodule update --init --recursive$ export RISCV=/path/to/install/riscv/toolchain$ ./build.sh第二步明确要添加的指令,以...原创 2019-05-08 11:44:06 · 15198 阅读 · 21 评论 -
[计算机体系结构] Cache 基本概念
Allocation在CACHE中发现一个位置,并把新的cache数据存到这个位置的过程。这个处理过程可能包括evicting(驱逐)cache中已存在的数据,从而为新的数据腾出空间。Associativity指每个Set(集)里包含的line frames(行帧)数。也就是cache的way(路)数。Capacity miss容量失效...转载 2019-05-05 15:32:27 · 9841 阅读 · 0 评论 -
Anaconda 管理不同版本Python
使用方法:1、首先在所在系统中安装Anaconda。可以打开命令行输入conda -V检验是否安装以及当前conda的版本。2、conda常用的命令。1)conda list 查看安装了哪些包。2)conda env list 或 conda info -e 查看当前存在哪些虚拟环境3)conda update conda 检查更新当前conda3、...原创 2019-03-20 17:12:17 · 10200 阅读 · 0 评论 -
[译]时间自动机:语义,算法和工具 UPPAAL
本文原题是《Timed Automata Semantics, Algorithms and Tools》,本人硕士毕业设计与此相关,研究了好久,现在自行翻译出来。转载请注明版权。时间自动机:语义,算法和工具Johan Bengtsson和Wang Yi Uppsala大学Email:{johanb,yi}@it.uu.se(译者:祝威http://bitzhuwei.cn...翻译 2018-11-19 19:11:25 · 14599 阅读 · 0 评论 -
RISCV的实战-二级流水线的DarkRISCV
作者一夜写成RISCV处理器,设计思路清晰,描述文档也很棒,特意翻译一下,供自己和大家学习翻译 2018-10-22 11:18:12 · 14702 阅读 · 2 评论 -
Qemu中TCG操作数的定义及注释
tcg/tcg.h: Define type and accessor macros for TCG variables. TCG variables are the inputs and outputs of TCG ops, as described in tcg/README. Target CPU front-end code uses these types to deal ...原创 2018-04-26 19:57:57 · 9694 阅读 · 0 评论 -
Rocket学习常用网址整理
1.https://github.com/ucb-bar/project-template2.https://github.com/ucb-bar/rocc-template3.关于谷歌rocket chip生成指令的搜索:https://www.google.com.ar/search?q=rocket+chip+add&oq=rocket+chip+add&aqs=chrome...原创 2018-04-26 19:55:59 · 10161 阅读 · 1 评论 -
Chisel 语言(Scala)学习 2 实例化模型和向量操作
系列文章主要用来记录学习Chisel和scala过程中遇到的难点或知识点,这篇文章主要学习实例化模型和向量操作原创 2018-03-14 16:04:29 · 10798 阅读 · 0 评论 -
RISC V Rocket-chip 模拟器使用笔记(一)
1.Rocket-chip可以做什么“Rocket是一款64bit的标量处理器,5级流水线,采用的是risc-v指令集,集成FPU,并有许多or1200没有的特性,比如:无阻塞缓存、分支预测、返回地址堆栈、硬件页表填充、cache支持ECC、支持多核等。”它允许我们生成不同配置(自定义)的SOC,包括软件工具链。2.Rocket-chip的子模块(文件目录)1.chisel3:用来进行RTL级建模...原创 2018-03-13 13:21:32 · 22282 阅读 · 7 评论 -
deepin系统(unstable 发行版 4.14)安装perf的正确姿势
想从spec入手分析程序使用状态,发现perf命令相当好用,所以打算安装一下。结果折腾了一上午才发现没有合适的方法。Perf是内置于Linux内核源码树中的性能剖析(profiling)工具。它基于事件采样原理,以性能事件为基础,支持针对处理器相关性能指标与操作系统相关性能指标的性能剖析。常用于性能瓶颈的查找与热点代码的定位。安装perf第一个错误的方法:安装perf,首先安装内核源码:sudo ...原创 2018-03-16 13:09:54 · 10795 阅读 · 3 评论 -
LLVM 后端移植 指令集代码学习笔记
实现关于目标处理器指令集的 TableGen 描述 以及继承并实现 TargetInstrInfo 类,也即需要实现文件“XXXInstrInfo.td”、 “XXXInstrInfo.h”和“XXXInstrInfo.cpp”。在文件“XXXInstrInfo.td”中,需要描述目标处理器的指令集,指令功能,指令的寻址方式,指令操作数,指令编码,指令汇编代码的输出格式,以及指令与 LLVM 虚...原创 2019-05-22 22:06:22 · 6890 阅读 · 0 评论