【精品博文】解析 软件、硬件、固件;软核、硬核、固核
在电子信息学界一直有六个名词纠缠不清,它们分别是:软件、硬件、固件;软核、硬核、固核。
首先来谈谈软件、硬件和固件。在很久很久以前,软件和硬件之间的分野是很明显的。所谓软件就是指存放在存储器中01编码,通过CPU通过读取这些编码然后加以解释后完成对数据的处理。这些01编码可以被反复改写,所以很“柔软”,于是被称为“软”件。而硬件呢?是一种物理世界真实存在的部件,例如芯片、接插件、电子元器件,电路板。这些东西一旦制作出来就不能被改变,因此是“硬”件。软件是逐条执行的,所以是顺序的。硬件是实际存在的,一上电以后所有的物理器件都在工作,所以是并行的。但是一种东西的出现,让软硬件的界限陡然打破,这就是可编程逻辑。说它是硬件吧,它可以被反复改写,很“软”。说它是软件吧,它的工作模式确实按照逻辑电路的方式工作的,标准的传统硬件工作模式,只有姑且认为是变“软”了的硬件。虽然可以被反复改写,但其工作模式是硬件的。那么固件又是什么呢?固件就是固化在硬件中的软件,对于用户不可见的。比如主板上的BIOS,其实是一段软件。但是被封锁在硬件内部了,一上电以后自动的执行,看上去就好像是硬件完成的功能一样。
再来谈谈软核、硬核和固核。首先谈谈什么叫核,核其实是IP核的简称。所谓IP又是知识产权(Intellectual Property )的缩写。所谓IP核其实一种大型的集成电路单元。最著名的IP核就是ARM,一个处理器。IP核有三种不同的存在形式:HDL语言形式,版图形式、网表形式。HDL语言形式是讲这种电路单元用HDL语言描述出来,由于直接是HDL代码,因此可修改性最高,甚至可以在功能上大修改,所以是“软”的。而被做成版图的IP核基本不可修改,只能对应特定的工艺库,所以是“硬”的。做成网表的IP从功能上来说基本不可修改,但是没有和特定的工艺库绑定,从选择工艺库的角度来说是可改的。所以借鉴了“固件”的说法,是一种介于“软”和“硬”之间的状态。
行文匆匆,多有疏漏,请予以指正。