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将文件提交到仓库里:
...
超级计算机
超级计算机天河一号 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 ...
MIPS
MIPS汇编语言为了阅读和理解机器码(CPU所直接处理的是一条条二进制机器码指令),人们发明了汇编语言(低级语言,稍比机器语言高级)——本质上是一种==助记符==(用一些易于理解的符号代表特定含义的机器码,基本上贴着机器码描述,用标签(Label)来替代地址)。
注意:经常会用到的概念:比特(bit)、位、字节(byte)、半字节、字。
一比特就是一位,一字节是八位,半字节是四位,一个字的大小在不同的计算机架构不同,其中32位CPU中一个字为4个字节,16位CPU中一个字为2个字节,即一个字是能一次处理的最大位数。
寄存器介绍寄存器是 CPU 的组成部分之一,是一种高速存储器(甚至是 CPU 可以使用的最高速的一种存储器),可以用来暂存指令,数据,地址等。由于寄存器的成本较高,一般的 CPU 中只有数量很有限的寄存器可供使用。
在 MIPS 体系结构中,CPU 对数据的操作均是基于寄存器的。内存中的数据需要先使用读取(load)类指令保存到寄存器才可使用。操作完成的数据也不能直接保存到内存中,需要使用装载(store)类指令保存至内存中。
MIP ...
CO理论
计算机性能1.机器字节:运算器一次运算所处理的二进制数的位数。常见的机器字长有16位、32位、64位。
2.主存容量主存储器信息存储量,一般以字节为单位。1KB(kilobyte)=2^10^字节,1MB(Megabyte)=2^20^字 节,1GB(Gigabyte)=2^30^字 节,1TB(terabyte)=2^40^字 节,1PB(Petabyte)=2^50^字节。
3.时钟周期计算机硬件最小时间单位,决定了计算机硬件完成基本功能的速度。时钟周期由计算机的主时钟电路决定,计算机硬件电路的构建都基于主时钟电路。
4.CPI(Clock Cycles Per Instruction):、计算机执行每条机器指令所需时钟周期平均数。
5.MIPS(Million Instructions Per Second):每秒执行的百万条机器指令数,是衡量计算机性能(速度)的一个指标,更大的单位有GIPS(Giga Instructions Per Second);
6.**MFLOPS(Million Floating-Point Oper ...
Verilog与仿真工具
Verilog与仿真工具Verilog建模Verilog 模型可以描述实际电路中不同级别的抽象。所谓不同的抽象级别,是指同一个物理电路,可以在不同的层次上用 Verilog 语言来描述它。在这里,不同的层次可以理解为:电路的某个功能部件是由更小的、功能较为简单的部件连接组合而成的,因此可以将不同的部件划分在不同的层次。使用硬件描述语言(HDL)对系统进行抽象,可以在不同层次观察系统。类似于 C 语言当中,函数调用是对一组表达式集合的抽象。我们将着重于硬件设计的两类仿真级别:结构级建模以及行为级建模。
结构级建模和行为级建模是一对相辅相成的关系。在电路中,我们既需要对某一模块(部件)的行为、功能进行描述,也要在已设计好的模块之间进行连接,完成上层结构的建模。进一步讲,其又可以作为新的功能模块,供更上层的结构建模中使用,以此类推。
在进行电路刻画时,可用原理图(Schematic)进行表示。原理图通常包括器件(components)以及连线(wires),其中连线用于连接各器件。原理图具有输入输出,因此原理图描述的电路本身也可以作为器件使用,从而易于层次化设计。
使用 Verilog 语言 ...
C语言
C语言一、二进制和位运算——异或的高端操作### 问题导入:
袋子里一共有a个白球,b个黑球,每次从袋子里拿2个球,每个球每次被拿出的机会均等,如果拿出的是2个白球、或者2个黑球,那么就往袋子中重新放入一个白球,如果拿出的是1个白球和1个黑球,那么就往袋子中重新放入1个黑球。那么最终袋子中一定只会有1个球,请问最终的球是黑球的概率是多少?用a和b来表达这个概率。
答案: ==若原始黑球数量为偶数,则最终的球是黑球的概率为0%,若原始黑球数量为奇数,则最终的球是黑球的概率为100%。完全和白球的数量无关,通过异或运算的 性质解决。==
1.异或运算性质:1)异或运算就是无进位相加,即1与0异或为1,0与0、1与1异或为0例:(8位)A:01101110 B:10011101 则C=A ^ B:11110011
2)异或运算满足交换律、结合律,即同一批数字,无论异或顺序如何,结果都一致。
3)0 ^ n=n,n ^ n=0
4)整体异或和(所有数字异或的结果)如果为x,若整体其中某个部 ...
Linux
Linux主目录~是一个缩写,代表用户的主目录(home),课程所用虚拟机中用户的主目录的路径为/home/co-eda。双击虚拟机桌面上的“文件管理器”图标,即可进入用户主目录。
在表示文件路径时,我们常用这个缩写,例如 ~/VCS-Example 表示 /home/co-eda/VCS-Example。
==目录与文件夹==
目录 (directory) 又称文件夹 (folder),这两者一般表示相同的含义。
终端与shell在虚拟机桌面上双击“终端”图标,即可打开终端。终端是一个==程序==,它使我们能以==文本方式==以计算机交互。
打开终端后,其中将运行一个被称作shell的程序,在终端中的提示文本都是 shell 负责输出的,你的输入也将交由shell处理。shell启动后,会显示co-eda@co-eda ~>提示,向用户展示一些基本的运行状态信息。
==shell 提示格式==
1234 ...
数制
数制介绍:此处指的数制指一般计算机系统中数字的表示方式。限于篇幅和实验需求,这里暂且只介绍整数的表示方式。
进制:进位制(positional notation 或 place-value notation),是一种编码数的方式。这里我们不形式化地介绍这个概念,只描述一个在应用层面较为准确的概念。在下面的说明中,默认十进制表示是个先验概念,如无特殊记号指明,所有数均为十进制表示。同时我们约定:在下面的说明中,位都是从==0==开始编号的。不难修改相关定义使得位从 1 开始编号。
一个 n 位 b 进制数(base-b number)为一个字符串 (bn−1bn−2…b1b0)(b),其中 bi∈{0,1,…,b−1}。定义其表示的值为
(bn−1bn−2…b1b0)b=∑bi×b^i^(i从0取到n-1,水平有限,打不出正规的∑来)
其中 bi称为第 i位的位权。当不特殊指明位数时,代表在当前上下文中,位数不重要。b进制数也称作基数(base)为 b 的数。
比如 10b(16)=1×16^2^+0×16^1^+11×1 ...









