草庐IT

【使用verilog、五级流水和MIPS指令集设计CPU】

内容大概描述设计思想设计内容设计处理器的结构和方法处理器的操作过程代码测试部分总结参考文献备注大概描述参考《自己动手写CPU》这本书,这本书算是手把手教学写CPU,比较适合初学者。这里完成五级流水结构的处理器,实现70条左右的指令,基本实现全部整数指令,开发工具是Vivado。设计思想设计的处理器是五级流水处理器,取指,译码,执行,访存,回写。(1)取指:取出指令存储器中的指令,PC值递增,准备取下一条指令。(2)译码:对指令进行译码,依据译码结果,从32个通用寄存器中取出源操作数,有的指令要求两个源操作数都是寄存器的值,比如or指令,有的指令要求其中一个源操作数是指令中立即数的扩展,比如or

【使用verilog、五级流水和MIPS指令集设计CPU】

内容大概描述设计思想设计内容设计处理器的结构和方法处理器的操作过程代码测试部分总结参考文献备注大概描述参考《自己动手写CPU》这本书,这本书算是手把手教学写CPU,比较适合初学者。这里完成五级流水结构的处理器,实现70条左右的指令,基本实现全部整数指令,开发工具是Vivado。设计思想设计的处理器是五级流水处理器,取指,译码,执行,访存,回写。(1)取指:取出指令存储器中的指令,PC值递增,准备取下一条指令。(2)译码:对指令进行译码,依据译码结果,从32个通用寄存器中取出源操作数,有的指令要求两个源操作数都是寄存器的值,比如or指令,有的指令要求其中一个源操作数是指令中立即数的扩展,比如or

代码随想录算法训练营第41天 | 动态规划 part03 ● 343. 整数拆分 ● 96.不同的二叉搜索树

day40休息日#343 整数拆分 花了好久理解intintegerBreak(intn){vectordp(n+1,0);dp[1]=1;dp[2]=1;for(inti=3;i=1;j--//intj=1;j自己AC花了30min,但后来理解随想录和我的不同的时候,想了一个多小时(也有放弃去做别的然后再返回来想,反正花了好久)主要在推导公式上,dp在把n需要的乘积分成两个部分,第二个部分找dp[]我写的:dp[i]=max(max(j,dp[j])*max(i-j,dp[i-j]),dp[i]);随想录的:dp[i]=max(j*max(i-j,dp[i-j]),dp[i]);我的能AC但

吞吐量和 IOPS 及测试工具 FIO 使用

磁盘I/O的概念I/O的概念,从字义来理解就是输入输出。操作系统从上层到底层,各个层次之间均存在I/O。比如,CPU有I/O,内存有I/O,VMM有I/O,底层磁盘上也有I/O,这是广义上的I/O。通常来讲,一个上层的I/O可能会产生针对磁盘的多个I/O,也就是说,上层的I/O是稀疏的,下层的I/O是密集的。磁盘的I/O,顾名思义就是磁盘的输入输出。输入指的是对磁盘写入数据,输出指的是从磁盘读出数据。我们常见的磁盘类型有ATA、SATA、FC、SCSI、SAS,如图1所示。这几种磁盘中,服务器常用的是SAS和FC磁盘,一些高端存储也使用SSD盘。每一种磁盘的性能是不一样的。性能评价指标SAN(

吞吐量和 IOPS 及测试工具 FIO 使用

磁盘I/O的概念I/O的概念,从字义来理解就是输入输出。操作系统从上层到底层,各个层次之间均存在I/O。比如,CPU有I/O,内存有I/O,VMM有I/O,底层磁盘上也有I/O,这是广义上的I/O。通常来讲,一个上层的I/O可能会产生针对磁盘的多个I/O,也就是说,上层的I/O是稀疏的,下层的I/O是密集的。磁盘的I/O,顾名思义就是磁盘的输入输出。输入指的是对磁盘写入数据,输出指的是从磁盘读出数据。我们常见的磁盘类型有ATA、SATA、FC、SCSI、SAS,如图1所示。这几种磁盘中,服务器常用的是SAS和FC磁盘,一些高端存储也使用SSD盘。每一种磁盘的性能是不一样的。性能评价指标SAN(

stm32使用模拟IIC控制四针0.96寸OLED

STM32系列模拟IIC控制0.96寸OLED方法首先说为什么要采用模拟IIC来控制OLED,采用STM32系列单片机硬件IIC时有可能出现程序死掉的情况,我遇到的情况是与程序while的使用有关(听说原因很随机)。这个时候我们可以采用两个GPIO来模拟IIC通信控制OLED屏幕。顺带说一下OLED的使用原理,IIC通信只是命令或者数据信息传输的方式,主要还是写入不同的指令信息来控制OLED,可以参考B站https://www.bilibili.com/video/BV1H34y1m7Yh/?spm_id_from=333.880.my_history.page.click&vd_source

【训练营day41|动态规划|343. 整数拆分、96.不同的二叉搜索树】

训练营day41|动态规划|343.整数拆分、96.不同的二叉搜索树343.整数拆分要点代码96.不同的二叉搜索树要点代码343.整数拆分要点标准的递归状态,dp[i]=max(dp[i],(i-j)*j,dp[i-j]*j);最初的思路是dp[i]=max(dp[i],dp[i-j]*dp[j]);这个思路的问题就在于初始化的dp不符合动态规划的定义,代码是可以ad的也可以用贪心算法,当n大于4后每次拆分为n个3和剩余的数,就是对的,直观上非常合理。只是没有研究数学证明代码classSolution:defintegerBreak(self,n:int)->int:dp=[0]*(n+1)d

STM32F103硬件SPI控制6针/7针0.96寸OLED显示屏

目录OLED介绍取字模程序main.coled.coled.hspi2.cspi2.holedfont.h效果源码模拟SPI控制方式OLED介绍OLED主要参数1、高分辨率:12864(和12864LCD相同分辨率,但该OLED屏的单位面积像素点多)。2、广可视角度:大于160°。3、低功耗:正常显示时0.04W。4、宽供电范围:直流3.3V-5V。5、工业级:工作温度范围-30°℃~70°℃。6、体积小:28.8mm28.5mm。7、通信方式:lIC、SPI。8、亮度、对比度可以通过程序指令控制。9、OLED屏幕内部驱动芯片:SSD1306。6针OLED如下图所示引脚定义分别为引脚定义GND

代码随想录|day41| 动态规划part03● 343. 整数拆分 ● 96.不同的二叉搜索树

今天两题都挺有难度,建议大家思考一下没思路,直接看题解,第一次做,硬想很难想出来。  343.整数拆分链接:代码随想录视频讲解很详细,链接动态规划,本题关键在于理解递推公式!|LeetCode:343.整数拆分_哔哩哔哩_bilibili classSolution{public:/*使这些整数的乘积最大化,乘积最大化没有见过,没思路//看了讲解dp[i]意味着对数字i进行拆分后,拆分数的最大值拆成2个数,j,i-j。拆成3个或者3个以上的数,j,dp[i-j](个数未知)初始值,dp[0]----------------对0拆分无意义dp[1]-----------------1*1=1dp

代码随想录|day41| 动态规划part03● 343. 整数拆分 ● 96.不同的二叉搜索树

今天两题都挺有难度,建议大家思考一下没思路,直接看题解,第一次做,硬想很难想出来。  343.整数拆分链接:代码随想录视频讲解很详细,链接动态规划,本题关键在于理解递推公式!|LeetCode:343.整数拆分_哔哩哔哩_bilibili classSolution{public:/*使这些整数的乘积最大化,乘积最大化没有见过,没思路//看了讲解dp[i]意味着对数字i进行拆分后,拆分数的最大值拆成2个数,j,i-j。拆成3个或者3个以上的数,j,dp[i-j](个数未知)初始值,dp[0]----------------对0拆分无意义dp[1]-----------------1*1=1dp