Skip to content

Latest commit

 

History

History
122 lines (90 loc) · 6.77 KB

Computer.md

File metadata and controls

122 lines (90 loc) · 6.77 KB
title date tags categories
计算机组成
2018-11-21 02:56:52 -0800
基础
计算机基础

💠

💠 2024-09-30 00:05:08


计算机历史

起源

硬件系统

博客:【不周山之读薄 CSAPP】零 系列概览 CSAPP:深入理解计算机系统

内存

硬盘

存储单位 kb kilobyte; kib kibibyte 的区别: wikipedia

CPU

码农翻身:CPU阿甘 梳理了CPU 内存 操作系统 BIOS 硬盘之间的关系和特性

versus 中央处理器对比CPU对比和天梯图
cpu.userbenchmark.com用户基准测试公开数据

中断

最早的CPU设计是轮询设备去处理事件(轮询键盘 鼠标 网卡等等),导致多设备多任务无法并行,响应速度也会慢

TODO 时钟周期

中断模式设计

  1. 硬件中断
    1. 可屏蔽中断:常由计算机的外设或一些接口功能产生,如键盘、打印机、串行口等这种类型的中断可以在CPU要处理其它紧急操作时,被软件屏蔽或忽略
    2. 非屏蔽中断:由意外事件导致,如电源断电、内存校验错误等 对于这种类型的中断事件,无法通过软件进行屏蔽,CPU必须无条件响应
  2. 软件中断(又称内部中断 软中断 异常): 在程序中调用INTR中断指令引起的中断
    1. 陷阱 是一种有意的,预先安排的异常事件,一般是在编写程序时故意设下的陷阱指令,而后执行到陷阱指令后,CPU将会调用特定程序进行相应的处理,处理结束后返回到陷阱指令的下一条指令。如系统调用,程序调试功能等。
    2. 故障 故障是在引起故障的指令被执行,但还没有执行结束时,CPU检测到的一类的意外事件。出错时交由故障处理程序处理,如果能处理修正这个错误,就将控制返回到引起故障的指令即CPU重新执这条指令。如果不能处理就报错。
    3. 终止 执行指令的过程中发生了致命错误,不可修复,程序无法继续运行,只能终止,通常会是一些硬件的错误。终止处理程序不会将控制返回给原程序,而是直接终止原程序

中断处理过程

  1. 中断请求触发: 中断请求是由中断源向CPU发出中断请求信号。外部设备发出中断请求信号要具备以下两个条件:
    1. 外部设备的工作已经告一段落。 例如输入设备只有在启动后,将要输入的数据送到接口电路的数据寄存器(即准备好要输入的数据)之后,才可以向CPU发出中断请求。
    2. 系统允许该外设发出中断请求。 如果系统不允许该外设发出中断请求,可以将这个外设的请求屏蔽。当这个外设中断请求被屏蔽,虽然这个外设准备工作已经完成,也不能发出中断请求。
  2. 中断响应、处理、返回
    1. 关闭中断信号接收器
    2. 保存现场(或称 Context、上下文)
    3. 给出中断入口,转入中断服务程序执行
    4. 处理完成,返回并恢复现场
    5. 开启中断信号接收器

中断排队和中断判优

中断申请是随机的,有时会出现多个中断源同时提出中断申请, CPU每次只能响应一个中断源的请求。 CPU不可能对所有中断请求一视同仁,它会根据各中断源工作性质的轻重缓急,预先安排一个优先级顺序。当多个中断源同时申请中断时,即按此优先级顺序进行排队,等候CPU处理。

多核CPU的中断处理和单核有很大不同。多核的各处理器核心之间需要通过中断方式进行通信,所以CPU芯片内部既有各处理器核心的本地中断控制器,又有负责仲裁各核之间中断分配的全局中断控制器。
现今的多核处理器在中断处理和中断控制方面主要使用的是APIC(Advanced Programmable Interrupt Controllers),即高级编程中断控制器。它是基于中断控制器两个基础功能单元——本地单元以及I/O单元的分布式体系结构。在多核系统中,多个本地和I/O APIC单元能够作为一个整体通过APIC总线互相操作

作用和优点

  1. 可以使CPU和外设同时工作,使系统可以及时地响应外部事件。
  2. 可允许多个外设同时工作,大大提高了CPU的利用率,也提高了数据输入、输出的速度。
  3. 可以使CPU及时处理各种软硬件故障(比如计算机在运行过程中,出现了难以预料的情况或一些故障,如电源掉电、存储出错、运算溢出等等。计算机可以利用中断系统自行处理,而不必停机或报告工作人员。)

MESI

MESI(Modified Exclusive Shared Or Invalid)


键盘

Keyboard input

go evdev
Python evdev

https://keyboardtestt.com/在线测试键盘无冲


操作系统

码农翻身:操作系统是个大骗子? 描述了程序从硬盘中读取到内存执行的整个过程


编程语言

语言的的演化

码农翻身:一个翻译家族的发家史 低级语言到高级语言的演化


通用概念

缓存

常见缓存淘汰策略 先进先出策略 FIFO(First In,First Out)、最少使用策略 LFU(Least Frequently Used)、最近最少使用策略 LRU(Least Recently Used)

Tips

死机

计算机死机的时候,它在干什么?