04-Minisys-1单周期CPU的数据通路设计(上)

2023-10-30 18:50

本文主要是介绍04-Minisys-1单周期CPU的数据通路设计(上),希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

一、04-Minisys-1单周期CPU的数据通路设计(上)(1)

本节主要内容

1、CPU功能、结构与原理
2、单周期数据通路设计

1.CPU的基本功能
  1. 指令控制——控制指令执行顺序
  2. 操作控制——根据指令的功能 ,产生相应的控制信号
  3. 时序控制——对各种操作进行时间上的控制
  4. 数据加工——对数据进行算术/逻辑运算或其他处理
  5. 端口访问——对来自存储器或I/O端口的数据进行访问
  6. 中断处理——处理运行过程中的异常情况
2.计算机的基本结构

在这里插入图片描述
主要为冯诺依曼结构,五大部件组成,运算、控制、存储、输入、输出。

3.CPU的基本结构

处理器(CPU):实现指令集架构中的指令
数据通路:处理器的一部分,包含了完成处理器所要求的操作所必须的硬件(“the brawn”->处理器肌肉)
控制:处理器的一部分(也在硬件中)用以告诉数据通路需要做什么(“the brain”)

4.CPU执行指令的过程
  1. 取指
    根据程序计数器( PC )从内存中取指令,PC的值为该指令在内存中存放的地址
  2. 计算PC的值
    能自动计算PC的值以确定下一条指令的地址
  3. 译码
    对指令操作码进行解析,产生控制信号来控制指令进行相应的操作
  4. 取操作数
    根据指令字段的内容选择从存储器读取数据或直接从寄存器取数
  5. 算术/逻辑运算
    根据译码结果进行算术/逻辑运算或者计算操作数的地址
  6. 结果写回
    根据指令的要求对运算(处理)后的数据进行写回操作,如写存

这篇关于04-Minisys-1单周期CPU的数据通路设计(上)的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/309903

相关文章

MyBatis设计SQL返回布尔值(Boolean)的常见方法

《MyBatis设计SQL返回布尔值(Boolean)的常见方法》这篇文章主要为大家详细介绍了MyBatis设计SQL返回布尔值(Boolean)的几种常见方法,文中的示例代码讲解详细,感兴趣的小伙伴... 目录方案一:使用COUNT查询存在性(推荐)方案二:条件表达式直接返回布尔方案三:存在性检查(EXI

Java进程CPU使用率过高排查步骤详细讲解

《Java进程CPU使用率过高排查步骤详细讲解》:本文主要介绍Java进程CPU使用率过高排查的相关资料,针对Java进程CPU使用率高的问题,我们可以遵循以下步骤进行排查和优化,文中通过代码介绍... 目录前言一、初步定位问题1.1 确认进程状态1.2 确定Java进程ID1.3 快速生成线程堆栈二、分析

conda安装GPU版pytorch默认却是cpu版本

《conda安装GPU版pytorch默认却是cpu版本》本文主要介绍了遇到Conda安装PyTorchGPU版本却默认安装CPU的问题,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的... 目录一、问题描述二、网上解决方案罗列【此节为反面方案罗列!!!】三、发现的根本原因[独家]3.1 p

Linux CPU飙升排查五步法解读

《LinuxCPU飙升排查五步法解读》:本文主要介绍LinuxCPU飙升排查五步法,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录排查思路-五步法1. top命令定位应用进程pid2.php top-Hp[pid]定位应用进程对应的线程tid3. printf"%

Pandas进行周期与时间戳转换的方法

《Pandas进行周期与时间戳转换的方法》本教程将深入讲解如何在pandas中使用to_period()和to_timestamp()方法,完成时间戳与周期之间的转换,并结合实际应用场景展示这些方法的... 目录to_period() 时间戳转周期基本操作应用示例to_timestamp() 周期转时间戳基

判断PyTorch是GPU版还是CPU版的方法小结

《判断PyTorch是GPU版还是CPU版的方法小结》PyTorch作为当前最流行的深度学习框架之一,支持在CPU和GPU(NVIDIACUDA)上运行,所以对于深度学习开发者来说,正确识别PyTor... 目录前言为什么需要区分GPU和CPU版本?性能差异硬件要求如何检查PyTorch版本?方法1:使用命

Android如何获取当前CPU频率和占用率

《Android如何获取当前CPU频率和占用率》最近在优化App的性能,需要获取当前CPU视频频率和占用率,所以本文小编就来和大家总结一下如何在Android中获取当前CPU频率和占用率吧... 最近在优化 App 的性能,需要获取当前 CPU视频频率和占用率,通过查询资料,大致思路如下:目前没有标准的

Go使用pprof进行CPU,内存和阻塞情况分析

《Go使用pprof进行CPU,内存和阻塞情况分析》Go语言提供了强大的pprof工具,用于分析CPU、内存、Goroutine阻塞等性能问题,帮助开发者优化程序,提高运行效率,下面我们就来深入了解下... 目录1. pprof 介绍2. 快速上手:启用 pprof3. CPU Profiling:分析 C

MySQL的cpu使用率100%的问题排查流程

《MySQL的cpu使用率100%的问题排查流程》线上mysql服务器经常性出现cpu使用率100%的告警,因此本文整理一下排查该问题的常规流程,文中通过代码示例讲解的非常详细,对大家的学习或工作有一... 目录1. 确认CPU占用来源2. 实时分析mysql活动3. 分析慢查询与执行计划4. 检查索引与表

Python中的可视化设计与UI界面实现

《Python中的可视化设计与UI界面实现》本文介绍了如何使用Python创建用户界面(UI),包括使用Tkinter、PyQt、Kivy等库进行基本窗口、动态图表和动画效果的实现,通过示例代码,展示... 目录从像素到界面:python带你玩转UI设计示例:使用Tkinter创建一个简单的窗口绘图魔法:用