【笔记:第2课】学习开发一个RISC-V上的操作系统 - 汪辰 - 2021春

news2025/1/22 21:37:40

文章目录

  • 前言
  • 来源
  • 正文
  • 小结

前言

创作开始时间:2023年1月9日20:11:06

如题,学习一下RISC-V。

来源

https://www.bilibili.com/video/BV1Q5411w7z5?p=2&vd_source=73a25632b4f745be6bbcfe3c82bb7ec0

正文

在这里插入图片描述

计算机硬件组成:

  • 总线
  • CPU(central processing unit):CU控制单元(指令解析,处理,运行);算数逻辑单元(算数运算,逻辑运算);寄存器。
  • IO桥(连接总线、内存)
  • 外设(键鼠,显示器)
  • 主存

冯诺依曼体系结构 vs. 哈佛架构
前者:一根总线
后者:两根(指令和数据分开,不会挤在一根总线,所以执行效率高)

在这里插入图片描述

在这里插入图片描述

一个hello.c文件先编译和链接,得到a.out (机器指令),存放在disk硬盘,再加载到内存。
然后,控制单元从内存里面一条条取出指令。(取指:从内存取到寄存器)
译码:
执行:
(由晶振驱动,主频越快,计算机运算越快)

在这里插入图片描述

虚构的一个小型计算机:

  • 2个寄存器
  • 算数逻辑单元
  • 控制单元(指令寄存器、程序计数器:记录当前程序执行位置)
  • 内存

8位计算机:寄存器只有8位
完成加法运算。

C的话就是一行;
但是要用机器语言做出来如何操作?

算数逻辑单元只能访问寄存器,不能直接访问内存。

在这里插入图片描述
在这里插入图片描述
opcode:2位,只要2bit就够了。可以表示4个动作。(低位)
oprands:寄存器2位
instruction:地址4位,表达16个数,访问16个字节

这就是基础的东西,很多复杂的东西都是从最基础的东西(演化)出来的!
2023年1月9日21:21:01

在这里插入图片描述
要操作2个寄存器。高位2个bit没用上。
(实际上在电脑中一个位都不要浪费)

所以实际上有2种编码方式。

指令的编码格式。

在这里插入图片描述
指令(黄色)和数据(绿色)分开

0100 00 01
load(01)到00寄存器,取0100 (地址4)

程序计数器:断点后,重启,就从0开始执行。(所指向的内存位置)

在这里插入图片描述
计算机的主要工作就是从内存里把数据搬到寄存器,在寄存器中进行处理,再把数据搬到外面的内存里面。

CPU拆开来看无非就是这些东西。
软件是01的东西。而这些01的含义是我们定的。

计算机的进化:

  • 二进制编程(打孔机,打就是0,不打就是1),就是机器语言
  • 汇编语言(写成人能看懂的东西)汇编到机器码的话需要汇编器。
  • 高级语言,一条高级语言可能对应多条汇编指令。

在这里插入图片描述

存储设备的层次结构:

  • 寄存器
  • 内存
  • 硬盘

在这里插入图片描述

越往上,越靠近处理器。
寄存器容量比较小,一般只有几百个。

软件:操作系统+应用程序 (之间存在接口:系统调用)
操作系统和硬件之间存在接口:指令集架构ISA。

操作系统代为访问硬件,起到对硬件的保护。

在这里插入图片描述

小结

还可以,讲的确实挺好的!

2023年1月9日21:44:13

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/151541.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

迷宫问题 | 深度优先

目录 一、说明 二、步骤 三、代码 四、结果 一、说明 什么是深度优先? DFS即Depth First Search,深度优先搜索属于图算法的一种,是一个针对图和树的遍历算法,利用深度优先搜索算法可以产生目标图的相应拓扑排序表&#xff0c…

身兼数据科学家和自由职业者,算算我在2022赚了多少钱?

2022年,我作为自由职业者数据科学家赚了多少钱?长按关注《Python学研大本营》,加入读者群,分享更多精彩扫码关注《Python学研大本营》,加入读者群,分享更多精彩大家好,首先,我已经等了很久了。2…

保姆级 | 最新Burpsuite安装配置

文章目录 0x00 前言 0x01 环境说明 0x02 准备工作 0x03 安装JDK 0x04 配置JDK环境 0x05 Burpsuite安装 0x06 Burpsuite环境配置 0x07 Burpsuite设置代理 0x08 Burpsuite使用验证 0x09 总结 0x00 前言 Burp Suite 是用于攻击 web 应用程序的集成平台,包含了…

mongodb 中做 join 的方法

【问题】Imagine you have a collection for posts, and each of these posts has the attribute userid: ObjectId( ), where ObjectID is referencing a document in the Users collection.How would you go about retrieving the user information (in this case, the user …

GC耗时高,原因竟是服务流量小?

简介 最近,我们系统配置了GC耗时的监控,但配置上之后,系统会偶尔出现GC耗时大于1s的报警,排查花了一些力气,故在这里分享下。 发现问题 我们系统分多个环境部署,出现GC长耗时的是俄罗斯环境,…

高校舆情监控系统建设(TOOM)如何做好教育行业舆情监控方案?

高校作为高密度学生聚集地,舆情管理上,需要保持高度的警惕性。高校中大学生是活跃在互联网上的重要群体,他们作为文化水平较高、思维较活跃的特殊群体,其网络中的言论合集往往会引发社会关注。高校舆情监控系统建设(TOOM)如何做好…

Sapped of vitality 生机已被耗尽 | 经济学人社论高质量双语精翻

选自TE20221217,leaders The global economy:Sapped of vitality 世界经济:生机已被耗尽 Why are the rich world’s politicians giving up on economic growth? 为什么发达国家的政客们不再追求经济增长目标? The prospect of …

智能音箱app开发-广州app开发定制

科技高速发展,智能产品遍地都是。日常生活都是智能化时代,智能音箱app也开始被开发出来。为用户提供便捷的服务,优化体验。 智能音箱app开发特点 一:搭建快速 线上渠道在各个行业中不可或缺的,因为线上平台不管是流量…

nginx学习笔记3(小d课堂)

nginx访问日志的作用: 我们先去查看一下我们的nginx.conf文件: BAT大厂应用运维平台案例统计 awk 默认以空格进行分隔。 {print $1} 只取第一个属性 sort -n排序 sort -rn倒序 uniq -c去重 head -n 100取前100个。 自定义日志统计接口性能 我们修改完…

上半年要写的博客文章28

上半年要写的博客文章21 这里写自定义目录标题欢迎使用Markdown编辑器新的改变功能快捷键合理的创建标题,有助于目录的生成如何改变文本的样式插入链接与图片如何插入一段漂亮的代码片生成一个适合你的列表创建一个表格设定内容居中、居左、居右SmartyPants创建一个…

基于ESP32的蓝牙刷屏器自动点击器的制作

ESP32模块的选型: 这里是利用蓝牙连接手机来做点击器或刷屏器,ESP8266只有WIFI而ESP32有WIFI和蓝牙,所以选择ESP32模块。 ESP32模块可以选择ESP32-NodeMCU: 或ESP32-MiniKit: 这里使用的是ESP32 MINI KIT,Arduino环境下烧录选择如…

Nginx搭建Web服务器

环境: CentOS 7.2.1511 一、搭建静态web服务器 访问基本的静态页面(基于IP访问) 1.使用源码包编译安装nginx 启动ngin 直接在服务器测试访问: 访问nginx Web页面实现用户认证 修改nginx配置文件 2.生成密码文件&#xff…

64. 方法的值的传递及调用类内部的属性、方法

64. 方法的值的传递及调用类内部的属性、方法 文章目录64. 方法的值的传递及调用类内部的属性、方法1. 知识回顾2. 值的传递3. 没有值4. 需要向方法传递值5. 调用类内部的属性和方法6. 综合代码7. 类在爬虫中的应用7.1 创建类7.2 创建对象7.3 调用方法7.4 第2次调用方法7.5 第2…

MSE ZooKeeper 数据导入导出功能上线

作者:草谷 背景 MSE 提供了托管版的 ZooKeeper,拥有比自建开源 ZooKeeper 稳定性更高的SLA,同时管控面提供了丰富的服务自治功能。赶在2022年的岁末,MSE ZooKeeper 上线了一个非常实用的功能-数据导入导出功能,彻底解…

Mybatis自动生成增删改查代码

GitHub项目地址 Gitee项目地址 使用 mybatis generator 自动生成代码&#xff0c;实现数据库的增删改查。 1 配置Mybatis插件 在pom文件添加依赖&#xff1a; <plugins> <plugin><groupId>org.mybatis.generator</groupId><artifactId>myba…

宝塔面板Nginx开启Brotli压缩,提升网站加载速度

前言Google 认为互联网用户的时间是宝贵的&#xff0c;他们的时间不应该消耗在漫长的网页加载中&#xff0c;因此在 2015 年 9 月 Google 推出了无损压缩算法 Brotli。Brotli 通过变种的 LZ77 算法、Huffman 编码以及二阶文本建模等方式进行数据压缩&#xff0c;与 Gzip相比效率…

图解cross attention

英文参考链接&#xff1a; https://vaclavkosar.com/ml/cross-attention-in-transformer-architecture 交叉注意力与自我注意力 除了输入&#xff0c;cross-attention 计算与self-attention相同。交叉注意力不对称地组合了两个相同维度的独立嵌入序列&#xff0c;相比之下&a…

移动互联网社交江湖已定,抖音为何仍不放过微信?

进入2023年&#xff0c;抖音集团依然放不下“社交梦”。2022年12月30日&#xff0c;抖音官网上线了一款名为“抖音聊天”的桌面端聊天软件&#xff0c;提供Windows和Mac两个版本&#xff0c;进入软件需使用抖音App扫码登录。这并不是抖音集团首次推出社交产品。2019年以来&…

Day854.两阶段终止模式 -Java 并发编程实战

两阶段终止模式 Hi&#xff0c;我是阿昌&#xff0c;今天学习记录的是关于两阶段终止模式的内容。 从纯技术的角度看&#xff0c;都是启动多线程去执行一个异步任务。既启动&#xff0c;那又该如何终止呢&#xff1f; 那如何优雅地终止线程&#xff0c;正所谓有始有终。在Ja…

Kafka 概念

Kafka 属于分布式的消息引擎系统&#xff0c;主要功能 &#xff1a;提供一套完备的消息发布与订阅解决方案 生产者和消费者都是客户端&#xff08;Clients&#xff09;&#xff1a; 生产者&#xff08;Producer&#xff09;&#xff1a;向主题发布消息的客户端应用程序消费者…