单片机把逻辑线性物理地址内存管理与实模式保护模式表现得更清晰

1、序言

计算机硬件除了将0和1全加产生溢出进位标志并输出结果状态,学计算机的对这东西是太了解不过的。但是,这0和1变化起来,尤其是快速变化的时候,就出了四相八卦,甚至演绎出宇宙变化。有些人思维好,看看操作系统管理这些书就明白了; 有些人硬件认识好,一看硬件亮灯就知道个大体。对逻辑线性物理地址内存管理与实模式保护模式这些东西,我们可以从单片机角认识,比枯燥的概念可能容易些。

2、MCU8031的内存

Atemel的8031是大家比较熟悉的,内存128B就用着挺好了。寄存器是全加器的储料池,操作它全加器就出不同的东西,但要操作还要有源源不断的原料给寄存器,来源就是内存,计算出的结果也放到内存。内存很小,那就外存,再不够就硬盘,只是磁盘太慢了,虽然后来技术先进了可以做虚拟内存,但计算机开锅煮水的声音还是说明和真内存比还是很不行的。

27512的存储器是64KB,这与我们说DOS用16位线完成64KB操作类似。给出地址,对应上储存器的某个单,这就是实实在在的地址,也是可以线性计算的地址。但这存储空间太小了,程序代码没地方放,数据也没地方放,得扩大能力。

那就再加一片27512,就是二个64KB。把芯片看成段地址,把存储单元看成是偏移量,用片编码+偏移量经计算就是物理地址,也是能逐个对应的。如果把其中的一片储存器换成双端口RAM,一个单片机写数据,用另一片单片机读数据然后驱动I/O线,再然后挂接RAM芯片,那一个简单的8031可以管理的RAM芯片多了去了,换句话说,8031管理8GB存储器那不是问题,只要外部逻辑电路配套就能行。看清了单片机,就看清了PC机的内存管理结构。

3、硬件虚拟化

这个词是后来出现的,实际上,保护模式和这概念差不多。有了芯片,有了偏移,管理简单程序应该没问题的,但是,每个程序都要CS SS DS 而且有的一个段还不够,程序一多存放就乱七八糟,出个混乱计算机错把原料送给寄存器,结果错了是轻的,严重的就死机了。于是,有人在上面做了虚拟化,用软件产生一个全局描述表,每个程序又有本地描述表,具体数据存在哪了在表中作描述,程序间就分开了,而且还可以设置共享或隔离,就出现了所谓的保护模式。保护模式是OS干的,硬件基本上还是那样(CPU有点点不同),我理解这和现在讲的硬件资源池化很有类同。硬件虚拟化了,管理方式可以更抽象化,于是后来出现了页式管理 - 先找图书索引、从索引上看书名、从书名上看目录、从目录上找到某个具体页,硬件还是那个硬件并没有变化。后来硬件多核多CPU了,软件还是page页式没多大变化。

4、结尾

高性能CPU的不断发展,PCem可以仿真bios运行Win32以下的程序,DOSBox可以直接虚拟DOS主机,VPC、VMWare、VirtualBox、KVM、Proxmox等等虚拟机技术都发展起来了。逻辑电路、PLD、单片机好像也不是啥技术活儿了,FPGA和写一般软件差不多还能软件仿真。未来,什么技术能让世界再度像DOS启步时那样,大众参与,全球推波助澜,再度让业界生机蓬勃呢。

猜你喜欢

转载自blog.csdn.net/weixin_45707491/article/details/115378625