程序员必须要知道的硬件知识
2022-06-06 10:43:22 0 举报
程序员必须要知道的硬件知识
作者其他创作
大纲/内容
Central Process Unit (CPU)
ITLB
运算器(Arithmetic Logic Unit)
4K page
电子计算器
安提凯希拉仪器、滚轮式加法器、步进计算器、巴贝奇差分机等
是计算机的神经中枢和指挥中心从内存中取指令、翻译指令、分析指令,然后根据指令的内存向有关部件发送控制命令,控制相关部件执行指令所包含的操作。
5.3 语言在整个计算机中的位置
初始状态
发展
输出数据output device
读取数据 VP
一个不可见的黑盒,专门用来进行计算
存储器 (Memory Unit)
磁盘
程序A
程序B
输入数据
0xB0000
费诺依曼结构
L2
主要功能就是在控制信号的作用下,完成加、减、乘、除等算术运算以及与、或、非、异或等逻辑运算以及移位、补位等运算。大多数通用计算机是以16、32、64位数据作为运算器一次处理数据的长度
这里读取到的信息可能是数据、地址、指令中的任意一种
存在问题
冯诺依曼结构计算机->存储程序计算机一个是“可编程”计算机,一个是“存储”计算机计算机是由各种门电路组合而成的,然后通过组装出一个固定的电路板,来完成一个特定的计算程序。一旦需要修改功能,就要重新组装电路。这样的话,计算机就是“不可编程”的,因为程序在计算机硬件层面是“写死”的。“存储”计算机。这其实是说,程序本身是存储在计算机的内存里,可以通过加载不同的程序来解决不同的问题
计算机
CPU
1级
晶体管
Front Side Bus(FSB)
ArithmeticLogicUnit
MMA
缓存一致性协议
进程
Controller Unit
逻辑运算
4:计算机结构发展演变过程
手工计算器
演变
0x40000
图灵机模型解析A : Tape 拥有一个双端无限长的卡带,称之为存储带;存储带上分成了一个一个的格子,格子上保存着各种不同的数据(字母或者是数字)B :Table 就是一个盒子,盒子内部包含 head : 包含一个读写头 可以读写以及修改存储带上的数据 它的工作内容: i : 读写存储带上的值 ii : 确定head的下一步的操作 往左挪动还是往右挪动 iii : 改变当前状态寄存器中的状态 工作流程: i : 根据当前机器所处的状态以及当前读写头所指的格子上的符号来确定读写头下一步的动作 ii : 并改变状态寄存器的值,令机器进入一个新的状态,按照以下顺序告知图灵机命令 工作顺序: 1. 写入(替换)或擦除当前存储带上的数据; 2. 移动 HEAD, 'L'向左, 'R'向右或者'N'不移动; 3. 保持当前状态或者转到另一状态。C : Current State 状态寄存器。它用来保存图灵机当前所处的状态。图灵机的所有可能状态的数目是有限的,并且有一个特殊的状态,称为停机状态。停机状态保证当期那计算机可以暂停下来。
CPU访问主存
程序是用来告诉计算机对数据进行处理的指令集合
CPU2
OS
IO
Memory
Memory Bus
典型冯诺依曼结构
真空管
图灵机执行过程
寄存器表
USB控制器
5.2 CPU内部细节
其他设备
TLB
首先是一个包含算术逻辑单元(Arithmetic Logic Unit,ALU)和处理器寄存器(Processor Register)的处理器单元(Processing Unit),用来完成各种算术和逻辑运算。因为它能够完成各种数据的处理或者计算工作,因此也有人把这个叫作数据通路(Datapath)或者运算器。然后是一个包含指令寄存器(Instruction Register)和程序计数器(Program Counter)的控制器单元(Control Unit/CU),用来控制程序的流程,通常就是不同条件下的分支和跳转。在现在的计算机里,上面的算术逻辑单元和这里的控制器单元,共同组成了我们说的 CPU。接着是用来存储数据(Data)和指令(Instruction)的内存。以及更大容量的外部存储,在过去,可能是磁带、磁鼓这样的设备,现在通常就是硬盘。最后就是各种输入和输出设备,以及对应的输入和输出机制。我们现在无论是使用什么样的计算机,其实都是和输入输出设备在打交道。个人电脑的鼠标键盘是输入设备,显示器是输出设备。我们用的智能手机,触摸屏既是输入设备,又是输出设备。而跑在各种云上的服务器,则是通过网络来进行输入和输出。这个时候,网卡既是输入设备又是输出设备。任何一台计算机的任何一个部件都可以归到运算器、控制器、存储器、输入设备和输出设备中,而所有的现代计算机也都是基于这个基础架构来设计开发的。 -- 引用自《First Draft of a Report on the EDVAC》
桥间总线(PCI Bus )
DTLB
技术支持
读取数据PA
在冯诺依曼结构中cpu从主存中可以读取A:地址信息B:数据信息C:指令信息
总线控制
集成电路
读取内存中的数据
计算机的发展历史
Z3、埃尼阿克、巨像计算机等
读取数据
内存
1:CPU核心频率提升 2:内存跟不上CPU的速度3:图形化操作系统普及、3D游戏(图形芯片和CPU的交互)
BUS总线
Hard Disk
............
细节
Output Device
包含
慢速设备VS高速设备
L3
South Bridge
memory
CPU和内存交互
2级
图形控制器
arithmeticlogicunit
图灵物理机
L1
高速缓存
多核超线程
Input Device
Java语言所处的位置
PC: program counter存储当前需要执行的指令的地址
CPU内部存在后端总线 BSB(Back Side Bus)
输入数据input device
依赖
为了计算
USB
冯诺依曼结构体系
读入
PC
图灵模型
SATA Bus
IO总线
north bridge
控制器(Control Unit)
1:发展历史
输出数据
硬件
问题: 1:为什么现在的计算机看不到北桥?2:为什么显卡会分为集显和独显?
2:图灵模型
是否装配
.........
程序员必须要了解的硬件知识
5:CPU的演变过程以及内部细节
PCI总线是一种高性能局部总线,其不受CPU限制,构成了CPU和外设之间的高速通道。比如现在的显卡一般都是用的PCI插槽,PCI总线传输速度快,能够很好地让显卡和CPU进行数据交换PCI规范规定了该总线的物理尺寸(包括线宽)、电气特性、总线时序和协议。
指令总线
虚拟内存
程序
文件
读取数据PP
高速缓冲区
计算机的通用理解
BIOS
二进制
graphics
算盘、纳皮尔的骨头、计算尺等
3:冯诺依曼结构
PCI Bus
数据总线
数据单元,存储数据
地址总线
ISA Bus
磁盘控制器
JVM
USB Bus
系统总线(System Bus)
5.1 CPU读取内存中数据
系统总线
机械计算器
串行总线
CPU1
Graphics
.java
controllerunit
将数据载入
North Bridge
前端总线(FSB)是指中央处理器数据总线的专门术语,此总线负责中央处理器和北桥芯片间的数据传递。现在的x86处理器内置了存储器控制器,FSB已被Intel QPI和AMD HyperTransport取代。
读取数据 VA
收藏
0 条评论
下一页