- 博客(27)
- 收藏
- 关注

原创 操作系统学习笔记-虚拟内存
虚拟内存是什么呢?举个例子,在学习c语言的时候我们尝试输出过一个指针的地址,其实这里打印出来的地址就是虚拟地址,也就是说我们好像从未真正的了解过计算机,从未见过他的真实地址在内存的映射,如果你对它有兴趣,不妨继续读下去。
2022-10-24 19:31:40
1490
8

原创 CSAPP:BombLab 详细解析
Bomb Lab来自《深入理解计算机系统》(CSAPP)一书的第三章的配套实验,该实验的目的是通过反汇编可执行程序,来反推出程序执行内容,进而能够正确破解”密码“,解除“炸弹”。本实验共有6个phase,对于每个phase,你需要输入一段字符串,然后让代码中explode_bomb函数不执行,这样就不会boom!
2022-09-27 19:45:14
16829
10

原创 自己动手写CPU(2)第一条ori指令
上一篇文章介绍了一下流水线思想、设计流程等,下面我们可以实操一下实现第一条ori指令。其实实现一条ori指令不难,我目前对这一条指令的理解简单来说就是,先看图对应每一个接口连线。
2022-05-03 10:18:57
2759
6

原创 CSAPP:DataLab详细解析
做题的时候看了好多博客,一点一点更深入的了解、学习。不得不说lab真的很好,学到很多。做题准备我已经在上一个博客提到了,建议写之前看一下README。
2022-03-20 20:55:00
5087
3
原创 运用位运算管理状态标志—以SDWebImage为例
在看SDWebImage图片加载库的时候,看到了一个位运算的高级使用,之前对位运算深入了解只是在datalab中,但也只是处于“学会”的阶段,本篇介绍位运算在实践中管理状态的使用,希望能打开你的思路,对你有所帮助
2024-01-17 15:49:53
502
原创 CSAPP学习笔记-缓冲区溢出(AttackLab前言)
向程序缓冲区写入超出其长度的内容,造成缓冲区溢出,造成程序破坏以执行其他程序,达到攻击目的
2023-04-17 16:06:17
528
原创 自己动手写CPU(8)转移指令+延迟槽解决流水线控制相关
流水线中存在的三种相关:数据相关、结构相关、控制相关。其中控制相关是指流水线中的转移指令或者其他需要改写PC的指令造成的相关。这些指令改写了PC的值,所以导致后面已经进入流水线的几条指令无效。......
2022-06-27 12:17:56
2591
2
原创 自己动手写CPU(7)流水线暂停机制+乘累加累减+除法指令
流水线暂停机制因为OpenMIPS设计乘累加、乘累减、除法指令在流水线执行阶段占用多个时钟周期,因此需要暂停流水线,以等待这些多周期指令执行完毕。OpenMIPS采用的是一种改进的方法:假如位于流水线第n阶段的指令需要多个时钟周期,进而请求流水线暂停,那么需保持取指令地址PC的值不变,同时保持流水线第n阶段、第n阶段之前的各个阶段的寄存器不变,而第n阶段后面的指令继续运行。为此设计添加了CTRL模块,其作用是接收各阶段传递过来的流水线暂停请求信号,从而控制流水线各阶段的运行。 ...
2022-05-09 17:19:30
1633
原创 自己动手写CPU(6)简单算术操作指令
本博客先记录简单算术操作指令简单算术操作指令一共有15条指令分别是:add、addi、addiu、addu、sub、subu、clo、clz、slt、slti、sltiu、sltu、mul、mult、multu
2022-05-07 11:34:05
13772
原创 自己动手写CPU(5) 移动操作指令的实现
MIPS32指令集架构中定义的移动操作指令共有6条: movn、movz、mfhi、mthi、mflo、mtlo,后4条指令涉及对特殊寄存器HI、LO的读/写操作。
2022-05-06 19:45:56
817
原创 自己动手写CPU(4)解决流水线数据相关+逻辑、移位操作和空指令的实现
流水线数据相关指的是在流水线中执行的几条指令中,一条指令依赖于前面指令的执行结果
2022-05-06 17:36:13
5534
1
原创 自己动手写CPU(3)虚拟机和GNU工具链的安装不坑版+如何利用GNU交叉编译
上一篇博客介绍了实现一条ori指令,但用到的寄存器初始化文件是已经写好了的,下面我们学习如何利用CNU工具链交叉编译。绝对不坑版!!
2022-05-04 11:02:01
622
原创 Verilog语言基础1
访问量破8k啦!好开心,会持续更新的😊1、Verilog中的模块结构Verilog模块完全定义在module与endmodule关键字之间每个模块包括四个主要部分:模块声明、端口定义、数据类型说明和逻辑功能描述
2022-03-25 16:28:24
2667
原创 处理器与MIPS简单介绍&Verilog硬件描述语言
看了CSAPP之后不得不感慨能设计出计算机的人真的很伟大,最近刚刚把链接部分看完,想多了解了解就搜了点资料。
2022-03-24 18:02:25
1130
1
原创 CSAPP环境配置&如何验证题目( macOS 新架构环境配置)
看过CSAPP后做lab巩固一下学过的东西,但因为实验环境是unix,这里不建议大家安装虚拟机,可以使用Docker的linux容器来搭建实验环境。
2022-03-20 12:28:55
2320
原创 2021牛客暑期多校训练营1
2021牛客暑期多校训练营1A- Alice and Bob博弈题,当面临结果为(0,0)时为失败,用二维数组 a[i][j]表示其中i为第一堆石头的数量,j为第二堆石头的数量,再枚举s和k找出必胜的状态。用bool数组节省时间ios::sync_with_stdio(0);cin.tie(0);加快cin,或者直接用scanf。#include<bits/stdc++.h>using namespace std;bool a[5001][5001];int main(){.
2021-07-24 19:31:25
125
原创 湖南大学第十六届程序设计竞赛
湖南大学第十六届程序设计竞赛蒟蒻第一次写,只写了部分题目A-Triangles给出三个点的坐标,判断三个点构成的三角形是直角三角形还是钝角三角形还是锐角三角形或者不能构成三角形。其中不能构成三角形的情况就是三个点共线即斜率相等。当三角形两个边的平方和大于最长边的平方和时为锐角三角形,等于时为直角三角形,小于时为钝角三角形。#include<bits/stdc++.h>using namespace std;int main(){ int n;cin>&
2021-07-24 16:21:37
214
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人