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

文章目录

前言

创作开始时间: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

猜你喜欢

转载自blog.csdn.net/weixin_39278265/article/details/128620516