
计算机组成原理
文章平均质量分 90
寒泉Hq
当你试图解决一个你不理解的问题时,复杂化就产生了
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
Purpose of cmove instruction in x86 assembly? | cmove 指令如何避免错误的分支预测带来的开销?
cmove 指令是用来做什么的?(Purpose of cmove instruction in x86 assembly?)The purpose of cmov is to allow software (in some cases) to avoid a branch.For example, if you have this code: cmp eax,ebx jne .l1 mov eax,edx.l1:…then when a modern CPU sees t原创 2022-01-03 01:08:34 · 38073 阅读 · 2 评论 -
M.2 固态硬盘的两种类型:SATA 和 NVMe 的区别?
参考https://www.kingston.com.cn/cn/solutions/pc-performance/two-types-m2-vs-ssd前言在存储技术领域,当我们讨论 M.2 时,通常是指固态硬盘的外形尺寸。M.2 是与一块口香糖相似的固态硬盘外形尺寸。它外形小巧纤薄,非常适合便携式计算机、笔记本电脑、NUC 迷你电脑和超级本等轻便、便携的计算机。占用空间小于 2.5 英寸固态硬盘或机械硬盘,存储容量高达 2TB。现在,我们已经介绍了 M.2 是什么,接下来让我们回答“M.2 比固转载 2021-09-21 10:28:37 · 100854 阅读 · 0 评论 -
MIPS指令以及数据通路
MIPS指令以及数据通路MIPS 1字=4字节 1字节=8位 即:1字=32位每一个时钟周期:IM取指令->译码->ALU执行->DM访存->回写RegADDIaddi 加立即数,支持溢出 addi $22,$24,6格式: ADDI rt,rs,imm16运算: rt<=rs+imm16数据通路:NPC:把当前指令地址传送给PCPC:把当前PC地址...原创 2019-04-25 12:26:44 · 28136 阅读 · 0 评论 -
【MIPS汇编】ADDI,ADDIU,ADD,ADDU的区别、有符号无符号的谬误
分析1、忽略溢出,addi与addiu等价addi是加立即数指令,支持溢出检测,具体表现为:遇到溢出时,溢出错误标志变为高电平,传送到控制器cu中,导致此时的寄存器写使能信号regwr无效,最终结果为不将运算结果写入目的寄存器。addiu是加立即数指令,不受溢出限制,具体表现为:遇到溢出时,对溢出的结果进行32bit求模,将求模结果写入目的寄存器中,因而不受溢出限制。在忽略溢出的前提下,a...原创 2019-04-25 11:06:13 · 63754 阅读 · 4 评论 -
【Verilog语法】分支延迟槽
参考:MIPS中的跳转/分支指令关于跳转指令Branch delay slot 分支延迟槽第一次看见分支延迟槽是在这里查了一下解释:以下内容摘自:MIPS中的分支延迟槽和存储延时槽在最初的MIPS五级流水线中,一条指令被分成了5个阶段:取指,从源寄存器读取内容,逻辑运算,内存读取,写回到寄存器。当第一条指令的ALU结束时,第二条指令的RD阶段也已经结束了。那么如果第一条指令...原创 2019-04-06 10:50:58 · 15594 阅读 · 0 评论 -
【Verilog语法】PC-relatve branch 以及 Delay Slot 的含义
[讨论] 谈谈SH系列的Delay Slot 延迟槽 和 branch指令今天在调试SH2A时,CPU很意外的进入了delay slot中断。对于Delay Slot这个概率,不是很清楚,于是网上搜索了一下资料。我们可以将Delay Slot翻译为延迟槽。流水线结构的CPU在执行分支branch或者跳转jump指令时,由于此过程时间比较长,需要延迟一下,故可在此段时间内执行下一条指令,这就...原创 2019-04-05 08:31:26 · 11897 阅读 · 0 评论 -
汇编MIPS指令集 add两数相加、syscall输出字符串、bgt分支语句、ble循环语句
第一个程序: li add 指令的使用功能:两数相加运行效果第二个程序:li la syscall指令的使用 程序的分段功能:输出Hello World运行结果:在run I/O中输出了Hello World第三个程序 bgt分支语句功能:用户输入两个数字a,b如果a>b,则输出yes否自输出noC语言代码对应的汇编代码以下可复制#C program ...原创 2019-03-24 16:19:22 · 19186 阅读 · 0 评论 -
CPU缓存一致性协议MESI - 笔记
CPU缓存一致性协议MESICPU高速缓存(Cache Memory)CPU为何要有高速缓存CPU在摩尔定律的指导下以每18个月翻一番的速度在发展,然而内存和硬盘的发展速度远远不及CPU。这就造成了高性能能的内存和硬盘价格及其昂贵。然而CPU的高度运算需要高速的数据。为了解决这个问题,CPU厂商在CPU中内置了少量的高速缓存以解决I\O速度和CPU运算速度之间的不匹配问题。在CPU...原创 2020-04-08 19:49:19 · 67051 阅读 · 0 评论 -
【计组实验】P4 Verilog多周期处理器微系统 MIPS指令集
代码打包链接: https://pan.baidu.com/s/1KeEhbk5jIgCN00Q89SjO6A提取码: h6ws最后一次更新时间:2019-6-13 11:53:58设计说明*我只完成了CP0的MTC0,MFC0指令控制信号真值表各控制信号含义测试指令及运行结果...原创 2019-06-13 11:56:47 · 19932 阅读 · 3 评论 -
【计组实验】P3 Verilog多周期处理器开发 MIPS指令集
实验要求处理器应 MIPS-Lite2 指令集。a) MIPS-Lite2={MIPS-Lite1,lb,sb}。b) MIPS-Lite1={addu,subu,ori,lw,sw,beq,j,lui,addi,addiu,slt,jal,jr }。c) 所有运算类指令均可以不支持溢出。处理器为多周期设计。控制信号各控制信号含义控制信号真值表状态转移图...原创 2019-05-07 22:36:14 · 20039 阅读 · 15 评论 -
Logisim 一个PLA电路
这个电路描述如下logisim的效果按照真值表的输入验证,输出全部正确原创 2019-03-26 14:56:24 · 11997 阅读 · 2 评论 -
Logisim 构建一个1-bit全加器 Tunnel、Splitter、Extenders的使用
上面是别人的,下面是我的经过测试,两个电路结果相同还没有十分理解为什么要这样设计,大概是两个普通输入,一个进位输入吧原创 2019-03-26 16:41:28 · 20626 阅读 · 1 评论 -
【计组实验】P2 Modelsim Verilog单周期处理器开发 MIPS指令集
ALUalu.v/* * Module Name: ALU * File Created: 2019-4-4 16:11:12 * Notes: * 没有添加溢出判断 * OF为溢出标志位(有溢出为1,无溢出为0)如果溢出 要用两个GPR表示这个结果 */ module ALU( input [31:0] A, //输入32位A input [31:0] B, ...原创 2019-04-04 19:45:21 · 17225 阅读 · 2 评论 -
【计组实验】P1 logisim完成单周期处理器开发 MIPS指令集
半加器半加器电路是指对两个输入数据位相加,输出一个结果位和进位,没有进位输入的加法器电路。是实现两个一位二进制数的加法运算电路。全加器 full adder用门电路实现两个二进制数相加并求出和的组合线路,称为一位全加器。一位全加器可以处理低位进位,并输出本位加法进位。多个一位全加器进行级联可以得到多位全加器。判断是否进位的电路或门的使用下面这个电路用来判断是否进位,有3个...原创 2019-03-27 17:05:07 · 44843 阅读 · 18 评论 -
【Win10 64位 Modelsim安装教程】双击patch_dll.bat时一闪而过/找不到文件mgls.dll的解决方法
关于双击patch_dll.bat之后一闪而过,没有生成 LICENSE.TXT的解决方案其实不是一闪而过,仔细看一下显示的是“找不到文件 - mgls.dll”win+R,输入cmd在cmd中从根目录一步一步进入win64文件夹,运行patch_dll.bat即可。我安装的时候等了两分钟才生成LICENSE.TXT,所以回车后没反应的话,多等一会试试。如图:完整的破解教程其实破解...转载 2020-07-04 21:21:16 · 102769 阅读 · 50 评论 -
【Modelsim入门】新建项目,添加verilog文件,经编译的程序进行仿真
以下操作在ModelSim SE PLUS 6.2b中完成1.新建一个工程 file -> new -> project… 此时会弹出一个Creat Project对话框,输入一个工程名,选择保存路径 (不要包含中文),其他默认就行了;2.点OK后会弹出一个Add items to the Project,里面有几个可选项,应该很容易明白;3.添加好文件后,点close把Ad...原创 2019-04-02 08:26:54 · 15628 阅读 · 0 评论 -
verilog入门笔记
教材:ModelSim电子系统分析及仿真把设计当成黑盒子/白盒子把mux当做一个黑盒子,称为行为级(系统级)描述寄存器传输级(从语法角度的说法)门级描述:直接描述mux的内部关系,里面有哪些门(部件),不把mux当做一个黑盒子一个加法器的实现行为描述↓一个比较器的实现行为描述↓一个多路选择器module mux(out, in0, in1, sel) paramet...原创 2019-04-02 09:36:26 · 10465 阅读 · 0 评论 -
Modelsim 第一个仿真程序 四位加法器
4位全加器//4位全加器module a4(sum,cout,a,b,cin);input [3:0] a,b;input cin;output cout;output [3:0] sum;assign {count,sum} = a+b+cin;endmodule4位全加器的仿真程序//4位全加器的仿真程序`timescale 1ns/1ns `include "My...原创 2019-04-02 14:04:46 · 19760 阅读 · 3 评论 -
Logisim 组合电路设计 七段数码管的使用
步骤真值表然后点击这个:四进七出,按照如下设置:填写完毕之后,点击:会产生一个电路在main里面添加:然后按照真值表上的图,连接接口完成~效果测试真值表可以看 二进制 分别对应的十进制数字...原创 2019-03-22 11:00:47 · 39955 阅读 · 3 评论