P6_L0_document
P6_L0_document设计草稿设计说明支持如下指令集:
add, sub, and(op==0, func==100100), or(func == 100101), slt(func == 101010), sltu(func == 101011), lui ,addi(op ==001000), andi(op==001100), ori ,lb(op == 100000), lh(op==100001), lw, sb(op == 101000), sh(op == 101001), sw, mult(func == 011000), multu(func==011001), div(func == 011010), divu(func == 011011), mfhi(func ...
P5_L0_document
P5设计草稿设计要求使用Verilog语言设计一个支持add、sub、ori、lw、sw、beq、lui、jal、jr、nop指令集的五级流水线设计。
1.对于b类和j类指令,流水线设计必须支持延迟槽,需要注意使用PC@D+8或PC@F+4(跳转指令在D阶段时)。
2.为了解决数据冒险而设计的转发数据来源应是是某一级流水线寄存器,不允许对功能部件的输出直接进行转发。
3.IM:容量为 16KiB(4096 × 32bit)。DM:容量为 12KiB(3072 × 32bit)。
大致思路先不考虑数据冒险问题,将正常运行的流水线CPU框架搭起来,再根据相关指令添加相应的冒险解决通路(如重定向、阻塞和刷新等方式),并且并不把因冒险导致增加的相关数据通路(除冲突判断信号的产生外)模块化,减轻课上加指令时的压力。
数据通路通过将单周期处理器分解成由5个流水线阶段(F(取指)、D(译码)、E(运算)、M(访存)、W(回写))构成的流水线处理器来提高CPU的吞吐量。
为保证每一个流水线阶段相应的指令时间下的状态值正确,需要在不同阶段间增加流水线寄存器堆来维持相应阶段的状态,以提供数据的流水级的简 ...
P4_L0_document
P4课下目标将P3中使用Logisim搭建的MIPS单周期CPU电路转用Verilog HDL描述,并在其基础上支持更多指令。
完成的只是从Logisim电路到Verilog代码的映射。
设计草稿整体设计
具体模块化与层次化设计单周期处理器顶层模块、控制器和数据通路,放置在顶层目录下。code.txt存储相应的机器码。处理器为32位单周期处理器,不考虑延迟槽,支持指令为add, sub, ori, lw, sw, beq, lui, jal, jr, nop,nop为空指令,不进行任何操作,add, sub 按无符号加减法处理(不考虑溢出)。
控制器模块用一个独立的Verilog HDL文件,实现控制器这个单一的职责,降低模块间耦合度。
顶层目录其中每个module都由一个独立的Verilog HDL文件组成。
顶层文件为mips.v,有效驱动信号要求包括且仅包括同步复位信号 reset 和时钟信号 clk,接口定义如下:
1234module mips( input clk, input reset);
数据通路设计P3遗产(我的丑陋的数据通路图)
注意根据设计的数据通 ...
P3_L0_document
P3课下设计草稿设计要求处理器为32位单周期处理器,支持:add(000000 rs(5) rt(5) rd(5) 00000 100000), sub(000000 rs rt rd 00000 100010), ori(001101 rs rt imm), lw(100011 base(5) rt offset), sw(101011 base rt offset), beq(000100 rs rt offset(16)), lui(001111 00000 rt immediate)(将立即数加载至高位), nop(0x00000000)
对于每一条指令的执行,应该可以拆分成取指令、译码、执行、访存和回写5个主要的步骤。
模块规格IFU(取指令单元)模块端口:
信号名
方向
描述
clk
I
时钟信号
reset
I
异步复位信号,将PC寄存器的值复位为起始地址0x00003000(即将PC置0:其中1:复位;0:无效。)
NPC
I
32位,代表下一条指令的地址,读入后用PC寄存器存储起来
PC
O
32位,代表当前指令的地址,输出给NPC模块来生成下 ...
C++
CPP环境配置g++常用命令选项
选项
解释
-ansi
只支持ANSI标准的C语法,禁止GNU C的某些特色,如asm或typeof关键词
-c
只编译并生成目标文件
-DMACRO
以字符串“1”定义MACRO宏
-DMACRO=DEFN
以“DEFN”定义宏
-E
只运行C预编译器
-g
生成调试信息
-IDIRECTORY
指定额外的头文件搜索路径DIRECTORY
-LDIRECTORY
指定额外的函数库搜索路径DIRECTORY
-lLIBRARY
连接时搜索指定的函数库LIBRARY
-m486
针对486进行代码优化
-o
FILE生成指定的输出文件,用在生成可执行文件时
-O0
不进行优化理
-O/-O1
优化生成代码
-O2
进一步优化
-O3
再进一步,包括inline函数
-shared
生成共享目标文件
-static
禁止使用共享链接
-UMACRO
取消对MACRO宏的定义
-w
不生产任何警告信息
-Wall
生成所有警告信息
基本语法命名空间存 ...
CO上机(Pre-P2)
计组上机Pre第一题(Logisim)题目大意:输出一个持续填入数组的当前数an。而an根据输入端type做相应的变化:
type == 0 , an = 0
type == 1 , an = an-1 + 1,a0 == 0
type == 2 , an = a1 + …… + an-1
并且要求有一个reset复位输入端实现同步复位的功能,且电路外观一定要如下(一定不同都不能有):
且要求是Moore状态机(输出值只与有限状态机当前状态值有关区别于Mealy状态机(输出值不仅同状态机当前状态值有关还与当前输入值有关)。
第一”坑“:因为如果左侧从上到下依次放输入,右端放一个输出的logisim默认电路外观是如下的图,在这种情况下评测机会以右侧输出端的绿线为支点,去按照上图的位置取输入的值,因此会导致下图中,左边中间的输入会对应到上图的左上输入端,其他以此类推,会得到意想不到的结果(本人是高位呈浮动数)。因此需要手动去调整,上机第一看:规定的电路外观,一定得要一模一样。
...
Git
Gitgit init该命令将创建一个名为 .git 的子目录,这个子目录含有你初始化的 Git 仓库中所有的必须文件,这些文件是 Git 仓库的骨干。 但是,在这个时候,我们仅仅是做了一个初始化的操作,你的项目里的文件还没有被跟踪(untracked)。
git clonegit clone [url]克隆仓库的作用。
git add告诉Git,将文件(文件要提前放置在建立仓库的目录中,不然Git没办法找到它)添加入仓库中。本质上是让git开始跟踪一个文件,使之变为已暂存的状态。git add 命令使用文件或目录的路径作为参数;如果参数是目录的路径,该命令将递归地跟踪该目录下的所有文件。
例:
12$ git add readme.txt$ git add .//可以将所有修改都加入暂存区中
git restore可以在文件还未通过git add加入暂存区时,来撤销对该文件的修改,使其回到上一个commit的状态,若其已加入了暂存区,可以通过git restore --staged <filename>来取消暂存。
git commit告诉Git将文件提交到仓库里:
...
English
Englishpaper’s viewChatGPT could generate text that seemed like a human wrote it. How could teachers detect whether students were using language generated by an AI chatbot to cheat on a writing assignment?(more than this the almost same score would destroy not only students’ creativity but also their motivation to create)
The author thinks that AI will not only give rise to cheating but also threaten student writing skills, the value of writing as a process, and the importance of seeing writing ...
超级计算机
超级计算机天河一号 A2.57 PFlops
天河二号33.9PFlops
升级至2A
神威太湖之光CNGrid性能响应时间提交作业到完成作业所花费的时间,CPU执行时间,CPI:指令平均执行时钟周期数,不起决定性作用
吞吐量一定时间间隔内完成的作业数(速率度量),吞吐指标:IPC
MFlpos:百万浮点数操作每秒,与整数、浮点数比例有关,1MFlops与等于3MIPS
性能影响因素指令数:ISA(指令集体系结构)、编译器
CPI
时钟周期
高性能计算机的基本性能峰值性能(排榜)、持续性能(更看重)
加速比Sn=T1/Tn,并行算法的加速性能
高性能计算机体系结构高性能计算向量计算并行计算硬件结构上作成并行结构,完成高性能计算
分布式计算分结点同时计算
网络计算网格计算(Grid Computing)像电网一样,把算力连接到一起形成基础设施,算力网。并行计算+分布式计算
云计算HPC发展历程专用时代不是只能运行某种应用,是组成部件专门设计
普及时代商品化和标准化趋势。
集群系统:一种高性能计算机架构。
巨型机萌芽阶段CDC6600:世界上第一台巨型计算机
向量机鼎盛 ...
oo
面向对象一切皆对象,面向对象语言用“类”来抽象化“对象”。类可以实例化出任意数量的对象。
面向对象编程在大型项目、复杂系统开发中具有明显优势,尤其是在需要处理多个具有相似特征的实体时。
复杂性控制机制封装黑匣子,控制内部复杂性使得外部不可见。
隐藏类实现细节的机制,降低用户代码和类实现之间的耦合度。
继承通过建立类之间的抽象层次来协同降低复杂性。
子类获得父类的设计与实现–》复用和扩展,也可改写
利用继承的方法,可以重用已存在类的方法和属性,而不用重写这些代码。被继承的类称为超类(super class),派生类称为子类(sub class)。
extends定义继承关系:
public class SubClass extends SuperClass(…)
子类可以访问父类的公共和受保护成员
私有成员无法直接被访问,需调用父类的方法来访问
Java只支持单继承,即一个类只能有一个父类
implements定义继承关系 使java具有多继承得特性,使用范围为类继承接口的情况,可同时继承多个接口(接口间采用逗号分隔)
1234567891011public interfa ...