自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 【计算机组成原理】单周期MIPS CPU的设计

单周期处理器是指所有指令均在一个时钟周期内完成的处理器,尽管不同指令执行时间不同,但时钟周期必须设计成对所有指令都等长,根据木桶原理,单周期处理器的时钟周期取决于执行速度最慢的指令。指令执行过程中 ALU 的两个源操作数均来自于寄存器文件输出,其中 R1是寄存器 R1#的值,R2是寄存器 R2#的值,R1#来自于指令字中的Rs 字段,R2#来自于指令字中的Rt 字段,运算结果写人目的寄存器Rd 中。指令取出后即可进入执行周期,下面就能设计支持最为简单的R型指令的数据通路,使得执行一条指令的CPU得以运行。

2024-05-21 10:22:46 332

原创 [华中科技计组实验]logisim完成8指令单周期MIPS CPU

初衷:在mooc上看见了本课觉得超赞,本人已完成了课中所有的实验,在做实验的过程中有时候实验会没有思路或者有些bug会浪费很多时间,目前呢也没找到完整的答案,所以做了份自己的答案给大家困惑的时候一份参考(大神请忽视,我自己也就一弱鸡),也就给大家卡壳的时候能有个找灵感的地方,请先独立思考,切勿抄袭。首先是regdist信号,它的作用是区分R型和J型指令的,一般来说regdist==1是R型信号因为R型指令写成汇编形式寄存器分配op rd,rs,rt是写到rd里的所以W#应是rd地址。自己动手画cpu系列。

2024-05-21 10:21:22 331

原创 【计算机硬件系统设计(华科)——单周期MIPS CPU(Logisim 实现)】

本章继续讲述计算机硬件系统设计的内容,之前已经大概说明了 ALU 和存储系统的设计,本文讲述CPU的设计。对应的有单周期、多周期 CPU 设计,以及流水线设计,中断处理会在后文中详细说明,本文不进行讲述。本文仅提供设计思路,如有错误还请指正,也希望各位读者可以提供宝贵意见与指导,共同探讨学习。设计不尽完善,还有许多需要改进的地方,希望拙笔可以抛砖引玉,之后可以出现更多完善优秀的设计提供参考。本人也因对硬件设计极为感兴趣,欢迎各位提问交流,最后也衷心祝愿各位读者万事胜意,身体健康。

2024-05-21 10:20:01 300

原创 MIPS CPU设计(基于华中科技大学计组实验)

我们可以根据指令的操作码op传送到控制器中就可以知道,当前控制的需要进行的操作是那一个,然后就是需要把Rs,Rt,Rd送到寄存器中,让寄存器在输出两个值,当不是J指令的时候我们就让PC计数器的值加上4,如果是J指令的时候就直接让PC计数器的值等于我们要跳转的地址,这个地方的值需要用到一个数据选择器实现。本次实验要求我们掌握的是MIPS CPU设计,而此实验中关注的重点是在计算机中的cpu的运行模式,这个模式可以参考冯诺伊曼的计算机架构去理解,还需要知道的是指令格式和指令在计算机中是如何解析的。

2024-05-21 10:18:46 168

原创 IDEA常用快捷键整理大全(非常详细)持续更新中...

博主将用 CSDN 记录 Java 后端开发学习之路上的经验,并将自己整理的编程经验和知识分享出来,希望能帮助到有需要的小伙伴。博主也希望和一直在坚持努力学习的小伙伴们共勉!唯有努力钻研,多思考勤动手,方能在编程道路上行至所向。由于博主技术知识有限,博文中难免会有出错的地方,还望各位大佬包涵并批评指正,博主会及时改正;如果本文对小伙伴你有帮助的话,求求给博主一个赞支持一下,可以一起交流,一起加油!!进入界面,还可以自定义模板,设置你自己喜欢的快捷键,可以使开发更加高效;IDEA。

2024-05-21 10:16:15 280

原创 IDEA中【build project】与【rebuild project】区别

编译项目中修改过的文件。

2024-05-21 10:14:32 387

原创 idea项目中子工程的pom.xml文件和工程文件字体是绿色、红色等颜色具体原因

蓝色,加入版本控制,已提交,有改动;白色,加入版本控制,已提交,无改动;绿色,已经加入版本控制暂未提交;灰色:版本控制已忽略文件。红色,未加入版本控制;

2024-05-21 10:13:54 287

原创 Logisim平台上的单周期和多周期MIPSCPU设计(计组课设)

在实现时,我首先学习了指令格式,然后设计了控制器来实现不同指令的不同操作,同时利用组合逻辑和时序逻辑来完成指令的各个步骤。最后,我测试了CPU的正确性,并通过运行一些程序验证了它的性能和运行效率。例如,可以将两个比较结果信号相连,以便仅当两个比较器的结果都为 1 时,与门的输出才为 1。例如,可以将两个比较结果信号相连,以便仅当这两个比较器的结果中至少有一个为1时,或门的输出才为1。例如,可以将两个与门的输出信号相连,以便仅当这两个信号中至少有一个为 1 时,或门的输出才为 1。

2024-05-21 10:00:41 341

原创 debug调试高级用法

在开发调试中,如果你不会debug调试,一般情况下,就只能控制台打印,然后一遍一遍重启了,所有debug是必不可少的技能,尤其当遇到问题的时候,可以清晰的看到代码每一步的执行过程,不仅如此,我们还能对于正在执行的代码值,做修改,以及给debug添加条件等等;这里简单的通过一个类的来讲述,断点的各种操作,然后如果是一个项目的话,操作与此基本一致,这里不在赘述,希望刚入门以及对于断点的高阶操作不熟悉的小伙伴可以学习后,在项目调试中如鱼得水~~,所有bug一目了然!

2024-05-21 09:53:52 281

原创 如何运行shell文件

sh文件是一种脚本文件,用于执行特定的脚本命令。.sh文件通常用于在Linux系统中进行脚本编程,可以用来实现特定的功能。.sh文件通常具有.sh扩展名。

2024-05-21 09:52:09 307

原创 计算机网络入门(问题导向式)

同样的,路由器也采用了交换机的策略,建立了映射表,这个表称为路由表,但不同的是,这个路由表的建立并不是像交换机那么简单,查不到就广播,而是有更加复杂的路由算法得到,这一点我们了解即可,这里就不再深究。比如1要发送消息给3,1首先要把消息发给中介,并且在消息中写上收件人是3,中介拿到消息后把这条消息无条件地转发给网络中的所有计算机,其他计算机拿到消息一看,这不是发给我的,就直接丢弃了,只有3这台计算机拿到一看,哦是给我的消息,于是就接收下来,这样就建立了通信。交换机1的端口4和交换机2的端口3’相连接……

2024-05-21 09:51:11 232

原创 史上最全的 IDEA Debug 调试技巧(超详细案例

Debug用来追踪代码的运行流程,通常在程序运行过程中出现异常,启用Debug模式可以分析定位异常发生的位置,以及在运行过程中参数的变化。通常我们也可以启用Debug模式来跟踪代码的运行流程去学习三方。

2024-05-17 16:47:33 949

原创 Vim安装与配置

apt是Ubuntu 16.04版本发布时进行的引入,apt引入旨在减少解决命令过于分散的问题,Linux许多发行版也是鼓励使用apt来代替apt-get。2-进入vim配置文件,在文件最后一行键入自己的配置(简单配置,丰富配置需利用插件,由于后期使用VScode进行编程,在此不给出插件安装和建议)不积跬步无以至千里,不积小流无以成江河 -----------------------1:44。4-再次输入sudo apt install vim即可安装,输入Y同意,等待安装完成即可。

2024-05-13 16:13:26 827

原创 黑马程序员RabbitMQ入门到实战教程【基础篇】学习笔记

Work模型的使用:多个消费者绑定到一个队列,同一条消息只会被一个消费者处理通过设置prefetch来控制消费者预取的消息数量交换机的作用是什么?接收publisher发送的消息将消息按照规则路由到与之绑定的队列不能缓存消息,路由失败,消息丢失FanoutExchange的会将消息路由到每个绑定的队列描述下Direct交换机与Fanout交换机的差异?Fanout交换机将消息路由给每一个与之绑定的队列Direct交换机根据RoutingKey判断路由给哪个队列。

2024-05-13 14:04:17 1278

原创 IDEA基本设置 | 自动补全 | 快捷键列表 | 使用技巧 | 调试

38 、像 Ctrl-Q ( Show Quick JavaDoc 显示简洁 Java 文档), Ctrl-P ( Show Parameter Info 显示参数信息), Ctrl-B ( Go to Declaration 跳转到声明), Shift-F1 ( External JavaDoc 外部 Java 文档)以及其它一些快捷键不仅可以在编辑器里使用,也可以应用在代码完成右键列表里。10 、 Ctrl-W (选择字)在编辑器里的功能是先选择脱字符处的单词,然后选择源代码的扩展区域。

2024-05-13 11:20:36 942

原创 《计算机操作系统》思维导图

《计算机操作系统》思维导图——期末版

2024-05-13 11:17:57 161

原创 这七张操作系统思维导图,带你深入了解操作系统

画思维导图,是学校布置的作业,感觉还蛮好的,现在也学会了如何做操作系统思维导图。

2024-05-13 11:16:37 320

原创 Vue项目的详细目录结构解析

在创建项目时,如果你选择把依赖的配置信息以独立文件形式存放,那么你的项目内,和package.json文件同级的,就还会有比如.browserslistrc, .eslintrc, babel.config.js, jest.config.js, tsconfig.json等独立配置文件。而我们现在使用的Vue.js等框架开发的项目,并不能为浏览器所识别,所以就需要编译打包这一步操作,来转换成实际生产环境(浏览器)所需的文件。这个也没什么好说的,也就是罗列一下,之后Git上传时,需要忽略的文件。

2024-05-13 11:14:34 579

原创 Nexus Repository的搭建

NexusRepository用于管理maven的jar包。java开发程序员每天都在使用,但是自己搭建或者管理的就很少。除非你是系统架构师。因为这一套东西,基本是搭建一次就不需要人来搭建了,日后打开界面维护的机会也很少,我们只需要将开发的一些jar包发布的maven仓库。

2024-05-12 23:12:55 718

原创 npm 详解

NPM 的全称是NodePackage Manager,是随同 NodeJS 一起安装的包管理和分发工具,它很方便让 JavaScript 开发者下载、安装、上传以及管理已经安装的包。npm 之于 Node.js ,就像 pip 之于 Python, gem 之于 Ruby, pear 之于 PHP。npm 是 Node.js 官方提供的包管理工具,他已经成了 Node.js 包的标准发布平台,用于 Node.js 包的发布、传播、依赖控制。

2024-05-12 23:11:46 902

原创 gitlab拉取项目到本地

5.拉取项目到本地,接着输入(master是远程仓库分支名,你要拉取哪一个就写哪一个)Bash Here(可能在 显示更多选项 中)。先找到gitlab里面的ssh链接,复制。2.在这个空文件夹内,右击,找到。1.找好位置,新建一个空。6.内容都pull到本地。

2024-05-12 23:10:20 272

原创 实习生到公司第一天应该怎么快速上手

在实际项目中,请求后端接口一般都是写后端接口对应的域名,而不会直接指定IP地址,而项目会有很多个环境,如开发环境、测试环境、线上环境等,若不修改hosts文件,则可能访问的就是线上环境(通过DNS服务器解析得到),而通过修改hosts文件可以将这个域名映射到指定的环境上。这种一般都是因为链接部署在测试环境或开发环境,而hosts没有配访问的直接是线上环境,而线上环境又没有这个路由导致的,找公司的wiki看一下是不是需要配置什么映射或者找leader问一问。

2024-05-12 23:09:08 379

原创 连接maven私服仓库

很多小伙伴刚去公司上班时候,公司领导叫你拉代码下来看下项目结构,大多数小伙伴都可能会说:‘拉代码我们会啊,git clone嘛’,然后拉下来,常规操作IDEA打开项目,随便点了一个类进去,发现好多地方爆红。那又有一些小伙伴想到了maven设置里面得仓库地址没设置啊,然后跑去设置了一波,心想这下没问题了。结果一刷新maven,还是到处找不到jar包,到处爆红,这时候就傻眼了,心想 ‘咋回事啊对吧’,然后就开始百度,csdn了。

2024-05-12 23:08:17 928

原创 实习第一天(Java开发)

MySQL:存储元数据(主页的显示信息),用户信息, 标签信息(网页显示的标签选项),主页显示的搜索历史,公司名。Redis:存储用户token,使用其它服务需要先从Redis校验tokon。ArangoDB:存储图数据,对象间的关系,如公司-人,公司-公司,人-人。早上阅读了Java开发规范文档,很棒的感觉,对以后所遇到的代码,哈哈。Nginx:用户无需关心端口的不一致问题,将根据请求来调用服务。MongoDB:存储详细信息(包含公司名),文档信息。Elasticsearch:存储索引,提高查询效率。

2024-05-12 23:06:52 257 1

原创 Github配置ssh key的步骤(大白话+包含原理解释)

在github上配置ssh key很容易,网上一大堆教程,但基本没有详细解释其原理的,为什么要配?每使用一台主机都要配?配了为啥就不用密码了?下面将简单通俗地解释一下。我们在往github上push项目的时候,如果走https的方式,每次都需要输入账号密码,非常麻烦。而采用ssh的方式,就不再需要输入,只需要在github自己账号下配置一个ssh key即可。

2024-05-12 23:06:16 951

原创 Gitlab配置SSH Key 以及配置后提示输入用户名和密码问题解决

这两个都可以,后者在生成密钥的同时会将指定的邮箱地址作为注释添加到公钥文件中,方便用户识别该密钥的用途和所有者。gitlab配置SSH Key,SSH 密钥用于在你的电脑和 GitLab 建立安全连接,不用每次操作都需要提供用户名和密码,如pull、push等。5、复制以上生成的SSH Key,到Gitlab打开【设置】–> 【SSH密钥】 --> 粘贴到Key(公钥)中,点击添加就完成了。1、第一种情况,很可能你git拉取项目使用http协议访问远程仓库,将远程地址换成SSH协议的地址。

2024-05-12 23:04:44 296

原创 GitLab拉取代码、文件到本地

③查看配置的全部信息**

2024-05-12 23:03:21 326

原创 Ubuntu运行.sh文件

添加完执行权限之后,便可以使用 ./test.sh 来执行脚本,该方式与 bash test.sh 是一样的 ,默认使用 bin/bash 来执行我们的脚本。使用 sh test.sh 来执行script文件,该方法标明使用 sh 这种shell来执行test.sh文件,sh已经是一种被bash替代的shell.尽管我们在test.sh中声明使用 #!当我们使用 sh test.sh 、bash test.sh 、 ./test.sh 执行脚本的时候,该test.sh运行脚本都会使用一个新的。

2024-05-12 23:01:40 980

原创 修改idea工具默认版本JDK

修改idea的maven默认版本的jdk修改maven默认版本jdk;例如:本地版本jdk1.8 修改maven默认版本jre指定项目编译的jdk版本修改idea默认版本编译工具;例如:本地版本jdk1.8指定构建微服务时jdk版本修改idea默认项目jdk版本;例如:本地版本jdk1.8修改idea默认微服务模块的jdk设置构建模块的jdk版本

2024-05-11 17:21:06 240

原创 [ERROR] Malformed \uxxxx encoding.报错解决

今天用idea运行完项目。想直接打包的时候,结果打包失败,一直报错 [网上查了之后,一直说是,有路径在使用斜杠的时候,使用错误。将"\"换成"/"就好了,但是我配置文件、pom文件中,所有涉及到路径的都没有"\"。还有的说,让换个仓库,重新下载jar包,但是我的项目所有jar加起来非常多,还有一些jar需要手动导入。换一个maven重新下载,肯定不太现实。直到后来看到一篇文章,但是....后来使用everthing 全局搜了文件结果发现好几个。而且看产生时间,都是在我打包失败过程中产生的。

2024-05-11 17:17:26 340

原创 超全GitLab保姆级使用教程

Owner:可以设置值项目访问权限,Visibility Level,删除项目,迁移项目,管理组成员,开发组组长可以授予该权限。Maintainer:可以创建项目,添加tag,保护分支,添加项目成员,编辑项目,核心开发可以授予该权限。1.主界面点击Create a group,创建私有组,只有组内的成员可以看到项目。Developer:可以克隆代码,开发,提交,push,普通开发可以授予该权限。Reporter:可以克隆代码,不能提交,QA、PM可以赋予这个权限。在这里敲下git命令,具体命令在第五点。

2024-05-11 11:18:37 752

原创 面试官:try catch 应该在 for 循环里面还是外面?

try catch 在 for 循环 里面 的时候, 如果 for循环过程中出现了异常,异常被catch抓掉,不影响for循环 继续执行。为啥, 因为 异常try catch 其实一早编译完就标记了 如果从哪儿(from)出现异常,会直接去到(to)的那行代码去。但是要注意一点就是,别在for循环里面去 查库调用第三方啥的,这些操作,如果必要,需要慎重考虑了。在面试的时候,如果真的连上面这个在外面在里面使用效果都没说对,那,真的会去等通知了。内存上, 如果没出异常,其实也是无差别。

2024-05-10 11:42:07 352

原创 exit()函数记录——exit(0),exit(1) 和 exit(-1)的区别

除了0之外,其他参数均代表程序异常退出,如:exit(1),exit(-1)。即: return是返回函数调用,如果返回的是main函数,则为退出程序;exit是在调用处强行退出程序,运行一次该程序就被强制结束。exit(0)则是返回0。exit(0)表示程序正常退出,非0表示非正常退出。1、exit的功能为:退出当前运行的程序,并将参数value返回给主调进程。2、exit(0),exit(1) 和 exit(-1)的区别。exit(1)和exit(-1)是分别返回1和-1到主调程序。

2024-05-09 17:56:15 306

原创 vim安装及使用

每个人都有惰性,但是好好生活的根本,共勉!

2024-05-09 17:46:40 331

原创 解放双手!IDEA常用代码一键补全,你学会了吗?

代码中输入sout回车,会自动生成。

2024-05-09 17:43:49 255

原创 Docker安装MinIO遇到的问题汇总——持续更新中

MinIO依赖中有使用到OkHttp依赖,因为客户端与服务端发送文件都是需要发送Http请求的,这个OkHttp依赖的版本会受到SpringBoot版本的影响,SpringBoot2.3版本使用的是OkHttp3,SpringBoot2.7版本使用的是OkHttp4,而我当前项目中使用的MinIO是8.5.2,这个版本最低要求是是4.x,而我使用的SpringBoot2.3,自动就引入了OkHttp3.x,导致不兼容。:指定使用的镜像名称为minio/minio,即MinIO官方提供的Docker镜像。

2024-05-09 17:37:51 258

原创 linux 如何解压.tar 文件

这个命令会将文件解压到当前目录中。如果想要将文件解压到不同的目录中,可以使用 -C 选项指定路径。这会将文件解压到 /path/to/extract 目录中。注:上述命令假设您的系统中已经安装了 tar 命令行工具。其中,“yourfile.tar”是您要解压的文件名。

2024-05-09 17:34:45 334

原创 docker - 将tar包加载成镜像

home/xxx/tar_name.tar 就是镜像tar包的文件路径, 绝对路径和相对路径都可以。一般构建我们自己的镜像有很多方式, 这里介绍根据tar包进行构建镜像images.这部分, 先从这篇开始吧, 然后根据相关工作顺序再慢慢介绍~

2024-05-09 17:33:55 320

原创 Navicat导入sql报错[Err] 1046 - No database selected

报错[Err] 1046 - No database selected。我很疑惑地又导了几次。​ 今天系统重装了,就很完蛋。所有东西都重新下载安装。​ 第一步:连接位置右键新建一个数据库,名字跟要导入的数据库名字相同。​ 第三步:点开始就可以运行成功了!显示Successsfully。​ 直接在连接位置上右击选择了运行sql文件。​ 第二步:在数据库位置右键运行sql文件。

2024-05-09 17:32:45 313

原创 windows笔记本或者双网卡配置路由分流(内外网一起用)开发必备

配置完成后ping一下测试,注意cmd请使用管理员账户处理。:公司内网全部在10.108.*.*网段,增加此路由。双有线网卡区分一下就行,设置。IP段使用不同的网卡进行通信。说明下我的需求,提供一下对比。

2024-05-09 09:35:02 298

空空如也

空空如也

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

TA关注的人

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