计算机组成原理

CPU 的组成部分:

算数逻辑单元 ALU ,负责执行算数和逻辑的运算,对应着"冯.诺依曼 结构"的运算器
控制器,负责发送电信号和译码(即解码指令,以便让 ALU 认识并执行),对应着"冯.诺依曼 结构"的控制器
寄存器,一些集成在 CPU 中的访问速度极快的存储单元,算是"冯.诺依曼 结构"存储器的一小部分

CPU 指令集可分为复杂指令集 cisc (指令复杂,参数多,不是原子指令,类似“指令糖”)和精简指令集 risc (指令简洁,原子操作)两种思路。

CPU 执行一条指令的步骤如下:

取指 fetch ,从寄存器中获取指令
译码 decode ,交给控制器来译码
执行 excute,将译码结构交给 ALU 来执行
回写 write-back ,将计算结果填写回寄存器

现代计算机的存储结构基本是:CPU —> SRAM —> DRAM —> Disk 。越往后访问速度越慢,但价格越便宜、容量越大。

一个硬盘有多张盘片叠成,不同盘片有编号
每张盘片上的存储颗粒成环形一圈圈地排布,每一圈称为磁道,有编号
每条磁道上都有一圈存储颗粒,每512*8(512字节,0.5KB)个存储颗粒作为一个扇区,扇区是硬盘上存储的最小物理单位
N个扇区可以组成簇,N取决于不同的文件系统或是文件系统的配置,簇是此文件系统中的最小存储单位
所有盘面上的同一磁道构成一个圆柱,称为柱面,柱面是系统分区的最小单位

MDR:memory data register

MAR:memory address register

RAM:random access memory

ROM:Read-Only Memory

Boot

Master Boot Record,MBR with Bios,not support disk bigger than 2T.used 512byte.
in (0,0,1) address
柱面(Cylinder)
磁头(Heads)
扇区(Sector)
446byte MBR,4*16DPT,and the end 2byte of 0x55AA.

DPT
80 01 01 00 0B FE BF FC 3F 00 00 00 7E 86 BB 00

我们可以看到,最前面的"80"是一个分区的激活标志,表示系统可引导;"01 01 00"表示分区开始的磁头号为1,开始的扇区号为1,开始的柱面号为0;"0B"表示分区的系统类型是FAT32,其他比较常用的有04(FAT16)、07(NTFS);"FE BF FC"表示分区结束的磁头号为254,分区结束的扇区号为63、分区结束的柱面号为764;"3F 00 00 00"表示首扇区的相对扇区号为63(小端序);"7E 86 BB 00"表示总扇区数为12289662(小端序)。

偏移 长度(字节) 意义
00H 1 分区状态:00-->非活动分区;80-->活动分区;其它数值没有意义
01H 1 分区起始磁头号(HEAD),用到全部8位
02H 2 分区起始扇区号(SECTOR),占据02H的位0-5;该分区的起始磁柱号(CYLINDER),占据02H的位6-7和03H的全部8位
04H 1 文件系统标志位
05H 1 分区结束磁头号(HEAD),用到全部8位
06H 2 分区结束扇区号(SECTOR),占据06H的位0-5;该分区的结束磁柱号(CYLINDER),占据06H的位6-7和07H的全部8位
08H 4 分区起始相对扇区号
0CH 4 分区总的扇区数

GUID Partition Table,GPT with UEFI

Ventoy

Grub

Bios

UEFI

Hard Disk Drive,HDD

Solid-state drive/disk,SSD

reference:

计算机组成

Linux文件系统详解

计算机是如何启动的?

Memory

Boot

每个程序员都应该了解的内存知识