自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(43)
  • 收藏
  • 关注

原创 Chrome CSDN开发助手初体验

一、安装下载直接从Chrome商店,一键点击安装应用二、初始界面 第一眼确实惊艳到我,因为预期它会和CSDN首页一样“见缝插针”式地填充网页。但是配合这个恰到好处的背景图,我想简约、醒目是比较合适的形容词。点击右上角的开发助手,会有按类别划分的常用网站,如资讯类、视频娱乐类工具类也设计得挺好的,百度网盘、PDF转换、翻译之类的都是作为学生党的我常用的,如果能加上谷歌翻译(国内能用),还有常用的电子书等资源的搜集网站(名字我忘了)就更好了。有一个让我介意的缺点就是应用CSDN助手

2021-01-02 15:18:47 257

原创 华科Logisim实验改RISV指令集

参考书目:数字逻辑与计算机组成熟悉RISC-V指令格式官方文档之类的可以搜索到熟悉Logisim操作Logisim自带的手册或者网络资源具体实现步骤实现立即数拼接器InstrToImm1、采用"工程"->“分析组合电路”,构造立即数拼接器。由P221,给出的Verilog代码逻辑表达式可得我们需要将32位指令划分为9个输入。(原因是不同类型RISC-V指令格式内Imm的位置不一样)序号输入1Instr_312Instr_31_123Instr_3

2020-12-06 15:49:56 2252 3

原创 CSGO手套武器箱直接卖还是开了再卖?

一、背景今日群友发文,“我有4个手套武器箱,是直接卖掉还是开了再卖?好兄弟们给给建议”于是就想作为好兄弟利用Python计算一下开CSGO手套武器箱的期望收入来提提建议,顺便学习Python的数据爬取。二、方法概述1、选择国内的CSGO饰品交易平台网易BUFF,来统计今天的CSGO饰品价格情况2、确定手套武器箱相关参数3、确定收入期望计算公式,得到预期结果1、网易BUFF的CSGO饰品数据  在网页端,网易BUFF的CSGO饰品数据是基于HTML5的动态数据,实时传输更新。截图时

2020-11-11 19:54:34 2318

原创 Quantum Computation

理解P、NP、NPC、NP-HardDouble-slit experiment——Heisenberg’s Uncertainty PrincipleQubitHilbert Space

2020-10-29 11:05:46 386 1

原创 Raspberry Pi 4B 使用日志-1

一、环境Raspberry Pi 4BUbuntu 20.04.1mkdir uport二、操作步骤sudo apt-get install gccsudo apt-get install make1、准备交叉编译器参考链接sudo apt-cache search aarch64sudo apt-get install XXXXXX选择合适的版本安装,搜索到的都是和PC gcc版本匹配的gnu。2、选择一个U-Bootu-boot资源网站选择了u-boot-2020.

2020-08-25 22:51:07 207

原创 Linux驱动程序入门-1

#include <linux/module.h>WritingInstalling : 函数Int init_module()Removing Modules: 函数void cleanup_module()#include <linux/kernel.h>#include <linux/fs.h>#include <linux/init.h>#include <linux/delay.h>

2020-08-21 17:12:00 119

原创 OS Review3 并发进程

并发进程顺序程序设计顺序性不但指一个程序模块内部,也指两个程序模块之间内部顺序性一个程序在处理器上的执行是严格按序的,只有前一个操作结束后,才能开始后继操作外部顺序性一个计算任务需要若干不同程序完成,这些程序也按照调用次序严格有序执行顺序程序设计特点程序执行的顺序性在处理器上是严格按序执行的程序环境的封闭性运行程序独占全机资源,资源状态只能由此程序本身决定和改变,也不受外界因素影响执行结果的确定性执行过程中允许出现中断,但中断不会对程序最终结果产生影响,程序执行结果与执行速度

2020-07-03 15:41:58 1040

原创 多线程编程入门——C++ 「semaphore.h」

回顾OS,发现自己基本没有实际操作过多线程编程,所以想从今天开始学习。从Leedcode的 1114.按序打印开始:信号量类型 sem_t原型:extern int sem_init __P ((sem_t *__sem, int __pshared, unsigned int __value))pshared为其值,不为0时在进程间共享,否则只能被当前进程使用。value为其初始值sem_post(sem_t* sem)用来增加信号量的值(value + 1)sem_wait(sem_

2020-07-03 00:55:26 4556 2

原创 OS Review2 处理器管理

处理器状态Intel x86特权等级Intel x86的处理器状态有四个特权级别:0级权限最高,3级权限最低0级:内核级处理I/O操作、执行中断处理等关键操作1级:系统调用级可以执行系统调用,获得特定的和受保护的程序的服务2级:共享库级可被多个运行进程共享,允许调用库函数,读取但不修改相关数据3级:应用程序级所受到的保护最少处理器状态及其转换导致处理器从用户态向内核态转换的时机程序请求操作系统服务,执行系统调用程序运行时,产生中断,转向中断处理程序程序运行时,产生异常事件

2020-07-02 23:02:44 478

原创 OS Review1 操作系统概论

声明:本blog基于Theacher yebl, NJU OS 整理而成操作系统概论1、操作系统概观硬件层:提供基本的可计算资源软件层:由程序、数据及文档组成软件层分类:系统软件(操作系统):直接和硬件交互,将复杂性封装起来,管理和控制硬件并对其做首次扩充和改造;与上层支撑软件和应用软件交互,将它们与硬件隔离,为程序员提供编程接口、功能及环境支撑支撑软件层:利用操作系统提供的扩展指令集,实现编译、汇编、语言处理等其他使用程序,支持应用软件开发应用软件层:解决特定的或者不同应用所需的信息

2020-07-01 23:53:54 799

原创 OS Labs Review

声明:本blog基于2019 NJU OS LabsLab1 系统引导1、任务通过 start.s 从实模式切换到保护模式,进入 boot.c 中调用 app 完成 hello world 的打印2、细节……cli #clearinteruption 关闭中断是为了保证 cpu 在开启 A20 地址线时不被外部中断打扰inb $0x92, %al #Fast set up A20 Line with port 0x92,necessary or not?……必须要打开 A20 地址

2020-06-30 19:33:41 329 1

原创 Computer Network Labs Review

声明:本blog基于2019夏 NJU Computer Network Labs, Teacher Chen TianLab1 基本网络工具集的使用和协议数据单元(PDU)观测1、任务完成5台虚拟机随机拓扑网络的配置利用Wireshark观测PDU2、细节基于VMware虚拟机分配网络适配器利用ifconfig 配置 IP地址与掩码利用route 添加网关利用ip route 添加路由规则完成拓扑网络的配置Lab2 RAW SOCKET编程与以太网帧分析基础1、任务利

2020-06-30 18:00:45 187

原创 Computer Network Review

This blog is based on the course of Teacher Chen Tian of NJU1、Switched networks1) Circuit network:Time division multiplexingFrequency division multiplexingPros: Predicted performance,simple or fast switchingCons:delay 、inefficient and complexity of

2020-06-30 11:04:08 159

原创 Process in Memory——Investigation report

一、PRIME: A Novel Processing-in-memory Architecture for Neural Network Computation in ReRAM-based Main Memory文章链接关键词:neural network, resistive random access memory优化对象:NN —— 因为计算单元需要获取突触权重,所以高性能的NN加速需要高存储带宽优化方法:利用ReRAM设计新的内存处理架构PRIME——基于ReRAM crossbar a

2020-06-19 15:29:45 1324

原创 Notebook——A New Golden Age in Computer Architecture: Empowering the MachineLearning Revolution

一、影响ML硬件设计的六个因素1、Trainingtraining(训练)和inference(推理)同样重要,但是training需要的运算操作以及硬件资源远超inference。所以ML硬件设计通常选择更简单,更容易扩展的推理部分入手2、Batch SizeBatch Siz(批处理大小)对体系结构具有根本性意义,是操作数重用的实现形式。某些情况批处理大小会限制ML性能,这时增加Batch Size即可;有时候训练速率小于批处理大小,意味着Batch Size不是瓶颈,需要寻找其他算法或者体系结

2020-06-17 13:41:24 385

原创 人工智能基础回顾

参考彭成磊老师人工智能基础课程一、什么是机器学习:不需要确定性编程就可以赋予机器某项技能的研究领域(第一个机器学习程序:Samuel的跳棋程序)一个程序被认为能从经验E中学习,解决任务T,达到性能度量值P。当且仅当,有了经验E后经过P评判,程序在处理T时的性能有所提升。1、监督学习与无监督学习:监督学习:训练数据都有正确标记的答案无监督学习:让算法在大料数据中学习出某种结构(聚类)2、回归与分类:回归:连续型预测分类:离散型预测3、线性回归1、多元线性回归2、梯度

2020-06-11 17:39:50 324 1

原创 体系结构学习18(Last)-Data Center

1、Data CenterRLP:请求级并行,松耦合2、Cloud ComputingEconomic of ScaleSupported by Data CentersIssues:(1)Multi-Tenant IsolationResource Allocation:CPU、Memory、IO devices、NetworkApplication Isolation:(2)Load BalancingTraffic PatternSolution:Background

2020-06-01 18:05:45 160

原创 体系结构学习17-Interconnections

1、通信模式同一台计算机硬件的互联Shared Memory:紧耦合,严格考虑coherence和一致性,但不需要单独指定数据目的地址(适用于多线程共享数据)Message Passing:松耦合,更好的独立性,通信环境简洁,但通常需要数据目的地址。(适用于Producer and Consumer)(1)send->Receive(Data)/Receive(Source&Data)(2)Message Passing Interface(MPI):MPI_Init,Send,R

2020-06-01 17:28:04 471

原创 体系结构学习16-Memory Consistency

1、Memory Consistency来源保证每一个处理器接触一致的数据Global Ordering of Access to all location而cache Consistency 只是local ordering of access to each cache blockMemory Ordering 情况:Single Processor:in-order(与程序代码顺序一致) , Out-of-OrderMIMD ProcessorI/O DevicesSoftware

2020-06-01 16:31:37 390

原创 体系结构学习15-cache coherence

1、Cache Coherence现代处理器的并行代码或线程共享内存,需要保证数据一致性。从软件、硬件两个角度考虑解决cache一致性。现代处理器cache一般对程序员透明,ISA一般只提供cache flush命令。如果靠软件解决,对程序员负担太大。Hardware Based:所有核心共享一个L1cache,但是cache通常需要追平CPU频率,很可能无法完成所有核心的读写请求而且容量也成限制,并且核心与cache的连线会变长导致latency边长,最终使得cache成为瓶颈。采用多个L1

2020-05-18 20:37:07 3413

原创 面向人工智能新特性的计算系统设计讲座笔记

本文基于:上海交通大学 过敏意教授 2020-5-18 ”面向人工智能新特性的计算系统设计“ 讲座,以记录学习为目的。若侵权,立删除。1 TPU = 3 GPU = 1000 CPUDavid Patterson:A New Golden Age for Computer Architecture1、常见人工智能模型的计算特性模型计算量大、模型存储量大、计算模式单一(建立在采用的模型单一前提下?)Google TPU、华为昇腾等2、新的计算特性及其挑战算法迭代更新、模型黑盒特性、模型稀疏特

2020-05-18 15:06:28 328

原创 体系结构学习14-Multiprocessor

1、Multiprocessor同一时间多个任务同时运行在多个处理器,并行计算。降低功耗:通过多个低频处理器降低电压从而降低功耗。提高灵活性和可扩容性,降低复杂度。提高鲁棒性:在部分机器出问题可以运行其他机器。2010年后基本只有单芯片晶体管数量提高(单芯片上核心数量增加),即主要依靠线程级并行提升性能。2、如何生成多任务同一个任务细分后分配到多个核多个独立的任务分配到多个核3、Multiprocessor TypeLoosely Coupled 没有共享内存:联系不紧密,多用

2020-05-16 17:11:28 368

原创 机器学习1——核函数

如何证明一个函数为核函数?1、数学基础特征值与特征向量设A是n阶方阵,如果数λ和n维非零列向量x使关系式Ax=λx成立,那么这样的数λ称为矩阵A特征值,非零向量x称为A的对应于特征值λ的特征向量。式Ax=λx也可写成( A-λE)X=0。这是n个未知数n个方程的齐次线性方程组,它有非零解的充分必要条件是系数行列式| A-λE|=0。实对称矩阵实对称矩阵 (来自百度百科)如果有n阶矩阵A,其矩阵的元素都为实数,且矩阵A的转置等于其本身(aij=aji)(i,j为元素的脚标),则称A为

2020-05-16 11:24:26 1707

原创 体系结构学习13-Memory

1、Memory 概述Processor and Cache <—> Memory <—> Storage( SSD/HDD)速度快于外部存储系统,但是断电后丢失数据2、现代计算机主存成为瓶颈对于一个系统来说,主存是一个共享资源,需要保证资源分配公平公正。容量、带宽、能耗(率先频率)、DRAM尺寸(工艺决定其内存密度、功耗、访存速度上限)DRAM:一个晶体管存电荷,读取时需要先充电然后放大信号,读取速度慢并且电容会漏电需要定期刷新耗电。SRAM:六

2020-05-16 11:22:48 474

原创 Niagara: A 32-Way Multithreaded Sparc Processor——学习笔记

2005 IEEE Published by the IEEE computer Society1、主要特征该处理器采用多线程架构(TLP),支持32个线程,显著提高吞吐量(数据中心、网络服务器)2、为什么提出这样架构的处理器传统加速方式主要针对单线程(多发射和乱序这样的ILP,以及分支预测等方式),这些方法受限于内存访问的延迟以及代码本身的并行性,而且导致了微处理器的复杂度爆炸式的增长以及功耗增加。3、使用环境Commercial sever environment4、面临的主要挑战

2020-05-10 15:47:31 424

原创 体系结构学习12-Cahce

1、Cache的必要性:CPU处理速度远超内存访问速度(Processor-Memory Gap)主要体现在latency :主存50~100ns,CPU <1nsBandwidth:指令和数据都需要访问内存Bandwidth-Delay Product:Little‘s Law现实中存储单元的问题越大地址越多驱动单元越多线越长访问越慢越快越昂贵带宽越宽越昂贵2、...

2020-05-06 20:28:04 693

原创 体系结构学习11-VLIW处理器

1、VLIW为什么需要VLIW:乱序处理中硬件需要复杂的控制电路来检查数据依赖关系。(MIPS R10K)编译时确定哪些指令可以同时执行,然后将它们打包为同一个指令,这样减少了CPU的硬件复杂度,但是增加了软件的负担,导致编译器制作难度增加。2、VLIW Scheduling ModelEQ:指令执行完成前可以使用其目的寄存器LEQ:指令发射后就不能使用其目的寄存器3、循环展开...

2020-05-05 21:50:04 1840

原创 体系结构学习10-DLP

DLP类型SISD、SIMD、MISD(TPU:脉动网络)、MIMDSIMD实现形式同一时间不同部件共同工作(Array processor)在同一部件顺序工作(Vector processor)Vector ProcessorsVector RegisterVector Operation:多为同一种操作,若不同数据需要不同操作可能需要使用Vector Mask.在执行时...

2020-04-27 12:46:27 512

原创 体系结构学习9-多线程

乱序处理器的同时多线程2010 ILP差不多到了尽头,程序员的免费的午餐到头了。TLP(多线程)· 相同进程的线程-将大型任务切分,单个任务利用线程。· 不同进程的线程-提高整体CPU利用率,但是降低了单个任务效率。代价:每个线程都需要GRP、PC以及相应状态。SMT· Vertical Multithreading:利用不同时钟周期issue不同指令。缺点:不能利用指令is...

2020-04-19 11:28:53 660

原创 体系结构学习8-乱序中的数据访问

精确中断点前面的指令都完成写回到相应的寄存器,后面的还没有。好处易于debug,切换程序,贴切冯诺依曼结构更易于理解方法1、顺序执行——浪费时间,无法判断每个指令的执行时间(lS)2、Reorder Buffer——指令乱序执行结束后存储在ROB,然后按冯诺依曼结构顺序写回到真实地址,让程序员看见结果。在写回(retire)时处理中断,错误的branch prediction。优劣...

2020-04-06 21:35:31 446

原创 体系结构学习7-乱序执行

乱序执行解决RAW数据依赖(True dependency),提高指令并行。WAW,WAR事实上是处理器寄存器资源不足导致的。issue:准备将某条指令送入某个队列执行 dispath:某条指令进入某个队列开始执行Load/Store指令需要和内存交互,执行时间是无法静态确定的(如cache miss,TLB miss等等)内部执行实际是数据流控制。超标量执行和乱序执...

2020-04-06 17:37:22 1634

原创 linux移植日记-day5-中断向量表基地址的选择

由CP0的status寄存器的BEV位(1 bit)来决定中断向量入口的基地址。BEV = 1 :意味着"Bootstrap",以0xbfc00200为基地址BEV = 0 :意味着"Normal",以0x80000000为基地址然后结合status寄存器的EXL(0 normal level ; 1 exception level),与相应的中断号来选择中断向量入口的偏移量。如上图,...

2020-03-19 20:50:59 439

原创 linux移植日记-day4

TLB相关指令1、TEQ (R):if rs == rt then trap2、TEQI(I):if rs == sex_imm then trap3、TGE ® : if rs >= rt then trap4、TGEI (I):if rs >= sex_imm then trap5、TGEIU (I):if rs >= sex_imm.asUInt th...

2020-03-18 19:46:57 184

原创 linux移植日记-day 3

目标: 完成页表一、数据结构1、TLB Entry元素功能pagemask控制页面大小,默认为0,页面大小为4kB第二行(VPN2…)对应CP0寄存器的Entry_hi寄存器第三行、第四行对应CP0寄存器的Entry_lo0和Entry_lo1寄存器class TLBEntry_lo extends Bundle{ val pfn = UIn...

2020-03-17 21:38:21 124

原创 体系结构学习-6-超标量处理器

 MIPS32-5段流水线采用了指令级并行方式(5个流水段同时运行5条指令)提升系统吞吐率,是一种标量处理器(CPI≥1CPI \ge 1CPI≥1),但是一个周期一条指令以及无法满足现代计算机需求了。超标量处理器(Superscalar)1、基本思想:增强指令集并行,让每个周期执行更多指令,实现 CPI<1CPI<1CPI<1 。(IPC=1/CPIIPC = 1...

2020-03-16 20:30:42 1059 1

原创 体系结构学习-5-Local Predictor

A set of Local History Register: 根据branch PC的后位索引向相应的Local History Register查询(跳转后更新值),也可以再用LHR的值作为PHT(唯一共用)的索引去查看相应项跳转state状态。不同预测器的选择:两者结合,拓宽适应场景,提升准确度不同的预测方式可能需要不同的训练准备时间,训练时间常常和准确度成反比,可以在...

2020-03-14 21:20:57 359

原创 体系结构学习-4-Global predictor

Global Predictor : Branch History Register记录了全局的跳转信息,每有一个分支语句跳转便在低位移入1,没有跳转便移入0。每次访问时得到的值是该分支语句之前的全局历史跳转信息,本次分支执行后结果才被写入。同时运用该值作为索引去读取Pattern History Table的状态信息。缺点: 如果是不同的分支指令遇见了一样的BHR值,那...

2020-03-14 20:40:19 320

原创 体系结构学习-3-基本分支预测方法

静态分支预测(Static Branch Prediction):  静态分支预测的基本原理就是“Static”:遇到跳转指令后是否跳转由标志位 valid 是否为1来决定,采用静态分支预测的方法就是在代码运行前就决定好这个分支的 valid=1(始终跳转) or valid = 0 (始终不跳转)性能评估: 按之前文章-1-中提到过的 数据进行估算程序中的分支指令大约占据2...

2020-03-13 20:32:59 1726

原创 体系结构学习-2-现代处理器最常用的分支预测

现代处理器最常用的解决控制冒险的方法就是分支预测法(Branch Prediction).2018年年初Intel承认的"Meltdown"漏洞就是有关于"分支预测"。Meltdown漏洞相关报道上述报道中对Meltdown漏洞生动的诠释:赵晓峰打比方说:“我拿着假的录取通知书去拿宿舍钥匙,我虽然会被发现是假冒的,但是在这一过程中,我会发现相应学号对应的相应宿舍。这样,我就能推测出不同专...

2020-03-12 18:42:18 928

原创 Linux 移植日记 day2

今日任务预测:完成cache以及TLB设计与异常处理继续在尝试运行u-bootError:bfc007a0: bc500000 cache 0x10,0(v0)==============nemu registers================$pc: 0xbfc007a0 $hi: 0x00000000 $lo: 0x00000000$ninstr: 00...

2020-03-12 17:06:07 167

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除