文章目录
- 前言
- 来源
- 正文
- 小结
前言
创作开始时间: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