动手写CPU
文章平均质量分 68
yezhangyinge
这个作者很懒,什么都没留下…
展开
-
动手写CPU----day6验证逻辑和移位指令
目录1.验证逻辑指令2.验证移位指令1.验证逻辑指令inst_rom.S .org 0x0 .global _start .set noat_start: lui $1,0x0101 ori $1,$1,0x0101 ori $2,$1,0x1100 # $2 = $1 | 0x1100 = 0x01011101 or $1,$1,$2 # $1 = $1 | $2 = 0x01011101 andi $3,$1,0x0原创 2021-06-08 23:52:37 · 161 阅读 · 0 评论 -
动手写CPU----day5逻辑和移位指令实现
文章目录一、指令分类1. and,or,nor,xor( R )2.andi,ori,xori( I )3.lui( I )4.sll,srl,sllv,srlv,sra,srav( R )5.nop,ssnop,sync,pref ( R )二、指令实现1.一、指令分类1. and,or,nor,xor( R )格式均为 and rd,rs,rtrs:register sourcerd:register datart:register trans所以就是 rd<- rs and rt原创 2021-06-03 00:20:27 · 252 阅读 · 0 评论 -
动手写CPU----day4数据相关和ori指令优化
目录一、数据相关1.定义2.分类3.ori指令存在的数据相关二、指令优化1.相邻指令2.间隔一条指令3.间隔两条指令总结一、数据相关1.定义从名称其实就可以看出来其定义,就是指令在运行的时候前后的数据出现了相关联,或者说出现了后一条指令依赖于前一条指令的运算结果2.分类这里先给出设定:指令1:inst1指令2:inst2指令3:inst3指令4:inst4指令5:inst5RAW:inst2需要读取inst1的数据WAR:inst2提前写了inst1需要读取的数据WAW:ins原创 2021-05-16 00:22:57 · 208 阅读 · 0 评论 -
动手写CPU----day3MIPS编译环境建立
目录前言一、搭建Linux环境1.虚拟机的选择2.Linux版本的选择3.安装Oracle VM Virtual Box4.下载Ubuntu镜像5.安装Ubuntu--1可能出现问题1.VT-x is not available2.电脑未开启虚拟化5.安装Ubuntu--26.安装增强7.共享文件夹8.挂载共享文件夹二、MIPS编译环境介绍Linux开始编译可能出现问题mips-sde-elf-xx no such file or directory1.inst_rom.S2.inst_rom.o3.ram原创 2021-05-15 21:16:26 · 678 阅读 · 1 评论 -
Ubuntu的快捷键
ctrl+h//显示隐藏文件ctrl+alt+t//调出终端原创 2021-05-14 23:32:26 · 122 阅读 · 0 评论 -
动手写CPU----day2实现基本五级流水和仿真
目录一、五级流水线实现1.大体框架2.ROM3.CPU二、MIPS架构1.MIPS2.实现ORI指令三、仿真结果1.先编写testbench文件,比较简单2.决定输入到ROM也就是存储器的指令3.仿真结果一、五级流水线实现1.大体框架大体上分为两部分,一个是我们的CPU,另一个是ROM,用来存储我们的指令,等待读取,需要分布实现这两个模块2.ROM这个模块很简单,只需要提供三个接口地址访问使能指令3.CPU这个模块就是我们五级流水的重点了,day1里已经介绍了大体每个阶段的工作了,原创 2021-05-13 23:49:39 · 653 阅读 · 1 评论 -
动手写CPU----day1 CPU架构和五级流水概念
目录一、CPU采用的流水线1.采用的是五级流水线2.为什么采取五级流水线?二、五级流水线1.取指1&2:取值和译码间的寄存器2.译码2&3:译码和执行间的寄存器3.执行3&4:执行和访存间的寄存器4.访存4&5:访存和回写间的寄存器5.回写一、CPU采用的流水线1.采用的是五级流水线取指令译码执行访存回写2.为什么采取五级流水线?因为每一个阶段运行的时间不一定一致,而为了处理速度的加快,采取了并行的方式,而此时不采取流水线的设计仍会使得处理速度放缓。理解原创 2021-05-12 22:17:52 · 622 阅读 · 0 评论