冯.诺依曼体系结构
从Linux 服务器开发视角来看计算机,都是符合冯.诺依曼体系结构的。
共分为4大部分:
①输入、输出设备
输入设备:向计算机输入数据,比如
通过摄像头、MIC,将图像/声音等转成二进制数据给计算机
从网卡输入数据给计算机等
其它
输出设备:从计算机输出数据,比如
通过显示器、扬声器,将二进制数据翻译成为图片/视频/声音等让人能够识别
或者通过网卡输出数据给别的计算机
其它
②存储器:实现程序和数据存储
③运算器(ALU):进行算术运算和逻辑运算
④控制器:解释(理解)程序指令,将程序指令转为对应的一条一条的微指令,这些微指令会控制运算器等部件工作,进行比如
数据的算术、逻辑运算
数据的搬移,比如从CPU的寄存器搬移到内存,或者从内存的某个位置搬移到内存的另一个位置。
等等
存储器既能充当输入设备,也能充当输出设备。因为其比较关键所以单独拎出来强调。控制器、运算器被统一做到了CPU里面。因此计算机体系结构再精简就只有3大块:CPU,总线与接口、外部设备(输入输出设备)
计算机详细体系结构
三大总线(并行通信):
地址总线:传输地址信号,通过地址信号找到要操作的寄存器、内存单元等
控制总线:传输控制信号,比如通过地址总线找到内存的某位置了,接下来到底是进行读还是写,就由控制总线发控制信号决定
数据总线:传输数据信号,比如通过地址找到内存的某个位置了,控制总线发出写的控制信号,希望对其写数据,那么写数据时,数据信号就是在数据总线上传输的
IO总线
系统总线在较新的设计中,它被称为前端总线(front side bus (FSB))。
桥间链接线一般是PCI总线。
除了常见的IDE总线,PCI总线,SCSI总线,还有很多其他技术规格的总线。这些总线往往用于IO总线。见下图
ISA总线:一种老旧的低速总线,即将被排除在PC设计之外。
PCI总线:这是一种新的高速总线。PCI总线可以终结于一个插槽(eg 单独的声卡),也可以直接与设备项链(主要指集成在主板上的设备)。
USB总线(通用串行总线):这是一种新的低速总线。
AGP总线:仅用于显卡。
每一种总线可以认为其上传输一种协议
CPU位数怎么确定?
内部寄存器到运算单元之间总线位数来确定
如何确定设备位宽?
根据数据总线
总线频率 与 CPU自身频率?
这是2个不同的概念。总线频率一般指FSB频率,相当于CPU向外部存取数据时的数据传输速率
CPU自身频率则表示CPU运算时电路产生的频率
计算机总线 对比 OSI模型
计算机总线是一个只有物理层、网络层和上三成的网络
主机 如何 寻找设备?
每个IO设备在启动时都要向内存中映射一个或者多个地址,这个地址有8bit长,又称作IO端口。针对这个地址的数据,统统被北桥芯片重定向到IO总线上实际的设备上。
IO接口
什么是接口?
PC是所有子系统的总和。在一个子系统和另一个子系统之间的边界处,就存在接口(Interface)。接口——将两个子系统连接在一起并使它们能够交换数据的电气系统。
IO桥这里指南桥 北桥
可以不用IO桥吗
可以,如果没有IO桥,所有的“外设IO接口”都是直接挂接在三大高速总线上的,但是随着发展,挂接的外部设备越来越多,直接挂接在总线上,太多了,管理是一个麻烦,慢慢的才有了IO桥这个管理者。
IO桥的好处
设备的IO接口直接挂接在IO桥上,IO桥有效的管理着众多的外设IO接口,IO桥里面会有相应的控制芯片,控制IO桥的工作。
并不是计算机都需要IO桥
IO桥是PC机特有的,并不是所有的计算机都有的,比如我们后面讲的ARM的开发板,就没有明显的IO桥这个东西。