SOA
SOA 试图通过将应用系统模块化来组合现有的信息技术资源,搭积木一般的构建复杂但灵活的信息技术架构。
SOA 中,每个独立运行的应用系统通过统一定义的接口规范(如果没有,就创造这个接口和规范)将独立的系统“模块化”,然后按照业务需要组合拼接,通过“企业应用总线”连接起来,形成更复杂的大系统。
FPGA
FPGA (Field Programmable Gate Array)则在一块芯片上集成大量的逻辑单元,并通过 SRAM(或者 Antifuse)控制每个逻辑单元之间的连接,在不更换芯片和重新焊接电路的前提下,利用软件编程来设计数字电路。
下面是一个逻辑单元的示例:
在一块 FPGA 芯片内部,有很多个这样的逻辑单元,通过片内的可编程开关连接在一起(一般几千个逻辑单元,最多的目前做到了 2 百万个):
上图中,每个 CLB 都是一个逻辑单元。
最后,通过软件编程,将这些逻辑单元拼接成数字电路。
结论
软硬件,大家都在往一个方向努力呢 :)
不过,明显目前硬件做得更好。