『计算机网络』计算机网络理论——期末复习
『计算机网络』计算机网络理论复习——期末复习概述
时延:
我们通常下载看到的xx Mb/s都是指发送速率,传播速率我们普遍认为光速。
体系结构:
实体:任何可发送或接收信息的硬件或软件进程
协议:控制两个对等实体进行通信的规则的集合
物理层 —— 比特流(Bit)
四个特性:机械特性,电气特性,功能特性,过程特性
码元:数字信号,代表不同离散数值的基本波形
码元速率(波特率):单位时间内通过信道的码元个数。
数据速率(比特率):码元可以携带多比特,这取决于码元离散取值的数量,但信号电平级数较多可能出现串扰。
复用技术
频分复用(FDM)与时分复用(TDM)
光的波分复用(WDM)
码分复用(CDM):码分多址,用于无线通信,一个比特时间划分m个间隔,每个站分配一个唯一的m bit序列,且互相正交。即每个通信使用不同的m比特序列表示0和1,例如 00011011表示0,11100100表示1
传输介质
导引型:双绞线,同轴电缆,光纤
非导引型:无线电波传播
奈奎斯特公式:$带宽 = 最大频率 - 最小频率$
香农公式(考虑信噪比): ...
『数据库系统』与爱同航——系统实现文档
『数据库系统』与爱同航——系统实现文档系统实现文档一、实现环境1.1 客户端环境依赖12345678910111213141516171819202122232425262728{ "name": "vue3", "version": "0.0.0", "private": true, "scripts": { "dev": "vite", "build": "vite build", "preview": "vite preview", "lint": "eslint . --ext .vue,.js,.jsx,.cjs,.mjs --fix --ignore-path .gitignore" }, "dependencies&quo ...
『数据库系统』与爱同航——系统设计文档
『数据库系统』与爱同航——系统设计文档一. 需求分析1.1 需求描述1.1.1 背景调研大学生进入大学以后,随着心理和生理的逐渐成熟,加之大学学习,生活压力减小,课余时间相对增多,大学生们会开始春心萌动,对异性产生爱慕之情,据统计相当大部分的大学生在大学最想得到的便是一场甜甜的恋爱,却由于各种阻碍的屡屡碰壁,使大家纷纷变成了“看破红尘,专心学术”的卷卷怪,这些阻碍包括但不限于,兴趣爱好不合,性格不合,聊不到一起去,人品不行,被渣男/渣女伤害,甚至有人“出师未捷身先死”,永远嘴上说着想找一个志同道合的恋人,却又永远由于各种原因跨不出最关键的第一步。
无论如何,整体大学生的恋爱情况稳中向好,无需我们过度担心。回归到日夜陪伴我们的母校,北京航天航空大学,一所纯正的理工科大学,一间纯正的人才加工厂。一进入到你航就仿佛徜徉在了知识的海洋,在如此情况下,大学生的恋爱问题日益突出,据开发组人员就六系计算机学院众人的恋爱经历与态度统计,有68%的人从未谈过恋爱,有23%的人正在谈恋爱,其余人并不愿意透露更多信息,猜测是受到过情伤;而进一步对68%并未谈过恋爱的同学进行调查,87%的同学对爱情充满着向往 ...
『编译技术』SysY-Mips编译器设计——实验总结
『编译技术』SysY-Mips编译器设计——实验总结章节目录
『编译技术』SysY-Mips编译器设计——总体设计概述
『编译技术』SysY-Mips编译器设计——词法分析
『编译技术』SysY-Mips编译器设计——语法分析
『编译技术』SysY-Mips编译器设计——语义分析(符号表管理与错误处理)
『编译技术』SysY-Mips编译器设计——中间代码LLVM生成
『编译技术』SysY-Mips编译器设计——目标代码Mips生成
『编译技术』SysY-Mips编译器设计——中端代码优化
『编译技术』SysY-Mips编译器设计——后端代码优化
『编译技术』SysY-Mips编译器设计——实验总结
实验得分最终八个点得分如下所示,排名除第六个点外均位于20名附近,而第六个点来到50+。第六个点较为反常,出现了分配给其的寄存器越多,cycle反而越高的情况,mem执行较多,猜测是使用了较深的递归而产生了大量寄存器传参冲突。
实验总结总而言之,从一个月前正式着手进行优化,再到如今优化后代码来到1w+行,即使循环外提等关键优化未来得及细细琢磨,排名似乎也不是很理想,这场优化之路至此也 ...
『编译技术』SysY-Mips编译器设计——后端代码优化
『编译技术』SysY-Mips编译器设计——后端代码优化章节目录
『编译技术』SysY-Mips编译器设计——总体设计概述
『编译技术』SysY-Mips编译器设计——词法分析
『编译技术』SysY-Mips编译器设计——语法分析
『编译技术』SysY-Mips编译器设计——语义分析(符号表管理与错误处理)
『编译技术』SysY-Mips编译器设计——中间代码LLVM生成
『编译技术』SysY-Mips编译器设计——目标代码Mips生成
『编译技术』SysY-Mips编译器设计——中端代码优化
『编译技术』SysY-Mips编译器设计——后端代码优化
『编译技术』SysY-Mips编译器设计——实验总结
零. 前言本部分任务为对Mips后端代码做出代码优化,主要是配合中端优化的后端消PHI和图着色寄存器分配。实际上,后端优化更多涉及特定的体系结构,这里实现的仅仅是冰山一角。
一. 后端消PHI这一步说是优化,然而是LLVM经历过mem2reg优化后不得不做的一步。
消PHI即将PHI指令消去,换句话说,PHI指令的Value值应该保留,但后面的数据流应当通过Move指令消去。LLV ...
『编译技术』SysY-Mips编译器设计——中端代码优化
『编译技术』SysY-Mips编译器设计——中端代码优化章节目录
『编译技术』SysY-Mips编译器设计——总体设计概述
『编译技术』SysY-Mips编译器设计——词法分析
『编译技术』SysY-Mips编译器设计——语法分析
『编译技术』SysY-Mips编译器设计——语义分析(符号表管理与错误处理)
『编译技术』SysY-Mips编译器设计——中间代码LLVM生成
『编译技术』SysY-Mips编译器设计——目标代码Mips生成
『编译技术』SysY-Mips编译器设计——中端代码优化
『编译技术』SysY-Mips编译器设计——后端代码优化
『编译技术』SysY-Mips编译器设计——实验总结
零. 前言本部分任务为对LLVM中间代码做出代码优化,实际上大量的优化都集中于此。不要指望看这份文档就能看明白优化,因为笔者整理时也看不明白了。
一. Mem2Reg0. 何为Mem2Reg?在sysY中定义的变量称作原始变量,而在LLVM中的一个个变量我会称作虚拟变量(后续很有可能会统称为变量…但实际不一样),定义和赋值的概念不再区分。
本优化不考虑全局变量和数组,仅针对单值in ...
『编译技术』SysY-Mips编译器设计——目标代码Mips生成
『编译技术』SysY-Mips编译器设计——目标代码Mips生成章节目录
『编译技术』SysY-Mips编译器设计——总体设计概述
『编译技术』SysY-Mips编译器设计——词法分析
『编译技术』SysY-Mips编译器设计——语法分析
『编译技术』SysY-Mips编译器设计——语义分析(符号表管理与错误处理)
『编译技术』SysY-Mips编译器设计——中间代码LLVM生成
『编译技术』SysY-Mips编译器设计——目标代码Mips生成
『编译技术』SysY-Mips编译器设计——中端代码优化
『编译技术』SysY-Mips编译器设计——后端代码优化
『编译技术』SysY-Mips编译器设计——实验总结
零. 任务目标由生成的中间代码LLVM转化为目标代码Mips,实现简单的寄存器分配,不考虑后端优化。
一. 前置准备Mips基本分区data常量段包含所有准备输出的字符串。
text代码段全局变量:使用GP做偏移
函数和主函数代码段:其中变量定义,入栈时使用FP做偏移
关键寄存器
$gp:全局寄存器 记录全局变量
$sp:栈顶寄存器
$fp:栈帧寄存器,记录的是活动记录基地 ...
『编译技术』SysY-Mips编译器设计——中间代码LLVM生成
『编译技术』SysY-Mips编译器设计——中间代码LLVM生成章节目录
『编译技术』SysY-Mips编译器设计——总体设计概述
『编译技术』SysY-Mips编译器设计——词法分析
『编译技术』SysY-Mips编译器设计——语法分析
『编译技术』SysY-Mips编译器设计——语义分析(符号表管理与错误处理)
『编译技术』SysY-Mips编译器设计——中间代码LLVM生成
『编译技术』SysY-Mips编译器设计——目标代码Mips生成
『编译技术』SysY-Mips编译器设计——中端代码优化
『编译技术』SysY-Mips编译器设计——后端代码优化
『编译技术』SysY-Mips编译器设计——实验总结
任务目标狭义的LLVM(Low Level Virtual Machine)是一种常用的通用中间代码表示。在本部分内容中,我们由建立好的语法树生成中间代码LLVM,不考虑复杂优化方法。
前置准备
LLVM生成时将常量全部带入,在后续中我们了解到属于常量折叠优化。
在编译开始前遍历字符串,清 +,- 连着的长串符号,这样可以减少部分无意义的运算指令。
将错误处理和中间代码生成 ...
『编译技术』SysY-Mips编译器设计——语义分析(符号表管理与错误处理)
『编译技术』SysY-Mips编译器设计——语义分析(符号表管理与错误处理)章节目录
『编译技术』SysY-Mips编译器设计——总体设计概述
『编译技术』SysY-Mips编译器设计——词法分析
『编译技术』SysY-Mips编译器设计——语法分析
『编译技术』SysY-Mips编译器设计——语义分析(符号表管理与错误处理)
『编译技术』SysY-Mips编译器设计——中间代码LLVM生成
『编译技术』SysY-Mips编译器设计——目标代码Mips生成
『编译技术』SysY-Mips编译器设计——中端代码优化
『编译技术』SysY-Mips编译器设计——后端代码优化
『编译技术』SysY-Mips编译器设计——实验总结
零. 作业要求设计并实现错误处理程序,能够诊断出题目要求的常见语法语义错误,并进行适当的局部化容错处理,输出程序中所有错误信息,包括类型与位置。
一. 错误编码本次作业只针对如下数条错误情况予以考虑。
a 非法符号:在字符串中出现的非法符号
b 名字重定义:变量名在当前作用域下的重复定义,内层覆盖外层定义是合法的,必须是同层作用域才出错
c 未定义的名字:使用 ...
『杂谈』What makes a good PhD student?
『杂谈』What makes a good PhD student?翻译自一篇Nature文章,作者是电气工程专业。
读博士应该是一趟充满乐趣且充满回报的旅程,因为你能够花费你的全部工作时间去发现探寻新想法,并且从中的得到回报,还不需要承担行政上的责任。尽管他们会得到很少的报酬,还会长时间工作,并且缺少安全感,但是那些执着于科学事业的研究者之所以如此做,是因为这是他们想要追求的全部。
不幸地是,大多数新博士生都是缺少提前准备的,并且因此他们之中的很少数将来会实现自己成为独立科研者的抱负。这主要的原因一是在多数大学存在固有的“成绩膨胀”情况,使得很难从毕业生中辨别出真正有天赋的一流学生,二是目前大学承担着培养越来越多博士生的压力。(The main reasons for this are the ‘grade creep’ inherent at most universities, making it difficult to identify the really talented first-class graduates from the rest, and the press ...