计算机组成原理

参考pdf 《computer basic》

CPU

  • 英文名: Central Processing Unit

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

  • 执行过程:
    (1)提取:从RAM(Random Access Memory随机存取存储器/主存)取指令。RAM速度很快,通常作为临时存储介质。
    (2)解码
    (3)执行

  • 组成:控制单元和算术逻辑单元ALU
    ALU:处理算数和逻辑运算
    从功能来看,包括:控制器、运算器、时钟、寄存器 四部分

  • 内存
    每个字节都有一个地址编号

  • 寄存器


    image.png

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

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

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

标志寄存器:保存某个分支判断的值/溢出检查、奇偶校验
补充:程序的比较运算,其实是在CPU内部做减法运算

通过地址和索引实现数组
需要用到基址寄存器和变址寄存器

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

内存

分为三种:
随机存储器RAM,停电信息会丢失
只读存储器ROM,停电信息不会丢失
高速缓存Cache

内存IC:


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语言中,函数的返回值是通过寄存器来传递的,而不是通过栈

    image.png

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

  • 磁盘的物理结构
    划分为空间的方法:可变长方式 和 扇区方式(固定长度)。


    image.png

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

image.png

输入输出设备

image.png
image.png

本文件完结

参考《cxuan-os》

流水线

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

  • 超标量(superscalar)CPU


    image.png

执行单元同时执行,并且只要空闲,就去缓冲区中找是否有指令。
此种设计,应用程序通常是无序执行的。大多数硬件需要保证执行结果的正确性。

CPU/内存

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

https://www.youtube.com/results?search_query=principles+of+computer+organization

Chapter 1

  • 处理器有:Intel / AMD

  • 计算机组成:input, output, memory, datapath, control
    datapath + control = CPU(processor)

你可能感兴趣的:(计算机组成原理)