mmu计算机组成原理,计算机组成原理

参考pdf 《computer basic》

CPU

英文名: Central Processing Unit

sysctl machdep.cpu.brand_string可查看CPU型号

执行过程:

(1)提取:从RAM(Random Access Memory􏹤􏳾􏴋􏻗􏴋􏻘􏴍􏹤􏳾􏴋􏻗􏴋􏻘􏴍􏹤􏳾􏴋􏻗􏴋􏻘􏴍􏹤􏳾􏴋􏻗􏴋􏻘􏴍􏹤􏳾􏴋􏻗􏴋􏻘􏴍随机存取存储器/主存)取指令。RAM速度很快,通常作为临时存储介质。

(2)解码

(3)执行

组成:控制单元和算术逻辑单元ALU

ALU:处理算数和逻辑运算

从功能来看,包括:控制器、运算器、时钟、寄存器 四部分

内存

每个字节都有一个地址编号

寄存器

dd604f949469

image.png

其中:

程序计数器(Program Counter):用于存放下一条指令所在的单元的地址,所以它控制着程序的流程/

指令寄存器:存储正在被运行的指令,供CPU内部使用,程序员无法读写

栈寄存器:存储栈区域的起始位置

标志寄存器:保存某个分支判断的值/溢出检查、奇偶校验

补充:程序的比较运算,其实是在CPU内部做减法运算

通过地址和索引实现数组

需要用到基址寄存器和变址寄存器

CPU指令执行过程

五个阶段(冯诺伊曼):取指令、指令译码、执行指令、访问取数、结果写回

内存

分为三种:

随机存储器RAM,停电信息会丢失

只读存储器ROM,停电信息不会丢失

高速缓存Cache

内存IC:

dd604f949469

9F928346-885E-4910-8C77-E657892DC926.png

RD读取,WR写数据

内存中数据存储

数据还有数据类型,需要占用特定大小的内存

数组是内存的实现

队列有循环队列,有环形队列

二进制

1字节 = 8bit

移位运算:左移代表*2。表示负数:首位符号为1。在表示负数时要用补数来表示。(补数就是用正数来表示的负数)

求补数的方法:原始数值取反,+1

右移

逻辑右移:最高位补0

算数右移:填充原来的符号值

符号扩展

不管是正数还是负数,只需要用原来的符号位填充高位即可。

压缩算法

文件是以字节为单位来存储的

RLE算法(Run Length Encoding 行程长度编码)

存储的时候,一个英文是一个半角字符,用一个字节来存储。

把文件内容用 数据 * 重复次数 来表示的方法,只有对连续的字符才会进行压缩

哈夫曼算法

磁盘

与内存的区别:内存通过电流实现存储,磁盘通过磁记录技术 来实现的。所以断电之后,内存中的数据不能保留,但是磁盘中的可以。

以前程序的运行是通过改变计算机的布线来读写指令的

磁盘缓存

为了读取相同的磁盘内容时,可以提高速率。

磁盘缓存是内存的一部分。

虚拟内存

本质:把磁盘的一部分作为假想内存来使用。它使得应用程序认为它拥有连续可用的内存,在需要运行时将虚拟内存与内存置换。

为了解决程序过大造成内存空间耗尽的问题

在Windows中是PAGEFILE.SYS页面

置换分为:分页式(windows)和分段式

分页式:Windows中页的大小为4KB

虚拟内存使用的文件是页文件

使程序大小更优化

DLL:动态链接库

_stdcall:标准调用。dll中函数的调用大多都是stdcall,C语言程序默认都不是_stdcall,而是C调用。因为函数传入参数(的个数)是可变的,导致无法清理栈空间。

C 与Java的区别是 C需要人为控制释放内存空间

默认函数的清除操作是在调用的一方

C语言中,函数的返回值是通过寄存器来传递的,而不是通过栈

dd604f949469

image.png

_stdcall为反复调用方法,执行栈清理的开销比较小

磁盘的物理结构

划分为空间的方法:可变长方式 和 扇区方式(固定长度)。

dd604f949469

image.png

扇区是读写的最小单位,Windows中扇区一般是512字节。

dd604f949469

image.png

输入输出设备

dd604f949469

image.png

dd604f949469

image.png

本文件完结🎉

参考《cxuan-os》

流水线

形式:由于CPU有单独的访问、解码、执行单元,CPU执行第N条指令,对N+1条指令解码,读取N+2条指令。

超标量(superscalar)CPU

dd604f949469

image.png

执行单元同时执行,并且只要空闲,就去缓冲区中找是否有指令。

此种设计,应用程序通常是无序执行的。大多数硬件需要保证执行结果的正确性。

CPU/内存

dd604f949469

image.png

磁盘

磁道

每个磁头可以读取一段环形区域,称为磁道(track)。

一个给定臂的位置上所有的磁道合并起来,称为柱面(cylinder)。

固态硬盘不是磁盘,数据存储在存储器(闪存)中。

虚拟内存

需要快速映像内存地址,把程序生成的地址转换为RAM中的物理地址。由CPU中的存储器管理单元MMU部件来完成。

ATA

ATA 高级技术附件(AT attachment)

SATA 串行高级技术附件(Serial ATA)

慎用高级这个词

I/O 设备

设备控制器

含有寄存器

所有设备寄存器的结合构成了 I/O端口空间。

实现输入输出的三种方式

(1)忙等待

用户程序--->系统调用--->转为驱动程序的程序调用--->启动I/O、循环检查设备---> |||(输入完成)---> 数据送到指定地方并返回 ---> 控制权交给调用者

(2)中断

设备驱动程序启动设备---> 操作完成时发生中断

(3)使用特殊的硬件

直接存储器访问(DMA):控制内存和控制器之间的位流,无需CPU的干预。

[补充中断]:CPU决定中断:

保存当前状态:程序计数器和PSW

切换内核态

中断开始:

移除栈中的程序计数器和PSW,保存。

查询设备的状态{

...中断处理程序全部完成...

}

返回到先前用户尚未执行的第一条指令。

如果正在中断,又发生了一条中断,则其他中断需要等待。

总线

参考CS224 Computer Organization- Bilkent

Chapter 1

处理器有:Intel / AMD

计算机组成:input, output, memory, datapath, control

datapath + control = CPU(processor)

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值