我对PC框架和硬件的一些认识
写这篇文章,是因为CSDN不给我一分积的积分用于让我下载东西
没招了,许禇赤背上阵,乱涂了,权且是为了CSDN的一分积分吧!
学校和工作了很多年,现在很少有翻翻书,还是觉得周明德的《微机原理》是最经典的教材,只有之一,没有超越,另外,类似一些《深入理解计算机原理》一类的也是一些好教材。
虽说是只要一分的积分,但是东西好歹还能写得太烂,以次充好
经典的PC结构,实则是基于intel在最早期的时候设计的一百多个指令集,而原始的IBM PC实际上设计相当简单,所谓最初的1M物理空间主要是其硬件设计上只有20根数据线,而对于实际物理地址的访问则是其地址左移四位加上偏移量即为真实物理地址,正常情况下,比如 CS: IP 这二组寄存器所做的事情,就是把当前代码段的地址(CS)左移四位加上指令长度(IP),这个所做的事情就是把向内存单元读取指令,读取的指令进入指令缓冲区,进行预处理。
关于最早的PC的各种组寄存器,无非是(1)通用寄存器(2)段寄存器(3)指令寄存器(4)标识寄存器,其中通用寄存器又包含数据寄存器和通用指针寄存器,说一下指针寄存器,所谓计算机的程序员经常说的进程,线程一类的东西,说白了,就是用入ESP,EBP,二组指针寄存器进行入栈出栈的一个硬件操作,当然结合到操作系统上来讲的话,这个就是CPU时间片的问题了。
抛开了最原始的8086,后续的计算机无非是在原始的基础上,增加了各种寄存器,标识寄存器,可以更大范围的实现指令寻址,比如打开A20总线,进入保存模式,通过段页式管理,实现4G或者更大内存的寻址。
从宏观格局上看,本质的东西是不会变的,依然是CPU到内存间的读写,实现IO的各种挂载,当然,从硬件实现手段上那么可以类似于北桥挂VGA,南桥挂各种IO,包括于各种独立的IO内存空间的映射,各种桥接芯片的映射。
到今天,我依然固执地认为不懂硬件的程序员,其实不叫程序员。
俺今天为了一分的积分也算是拼了,写了这么多。
东西匆忙,写得不好,望各位大佬见谅