电子计算机三大核心部件: CPU(Central Processing Unit)、内部存储器(Memory)和 输入/输出(I/O)设备。
CPU :是一块超大规模的集成电路,是一台计算机的运算核心(Core)和控制核心( Control Unit)。它的功能主要是解释计算机指令以及处理计算机软件中的数据。
CPU的结构 :主要包括 ALU(Arithmetic and Logic Unit)运算器、CU(Control Unit)控制单元、寄存器(Register)、高速缓存器(Cache)和它们之间通讯的数据、控制及状态的总线(Bus)。
CPU遵循的是冯诺依曼架构,其核心就是:存储程序,顺序执行。
CPU的架构中需要大量的空间去放置存储单元(橙色部分)和控制单元(黄色部分),相比之下计算单元(绿色部分)只占据了很小的一部分,所以它在大规模并行计算能力上极受限制,而更擅长于逻辑控制。
GPU : 用很多简单的计算单元去完成大量的计算任务,纯粹的人海战术。这种策略基于一个前提,就是小学生A和小学生B的工作没有什么依赖性,是互相独立的。GPU是为了图像处理而生的,但它在结构上并没有专门为图像服务的部件,只是对CPU的结构进行了优化与调整,所以现在GPU不仅可以在图像处理领域大显身手,它还被用来科学计算、密码破解、数值分析,海量数据处理(排序,Map-Reduce等),金融分析等需要大规模并行计算的领域。
SoC : System-on-a-Chip, 芯片级系统,也有称片上系统,意指它是一个产品,是一个有专用目标的集成电路,其中包含完整系统并有嵌入软件的全部内容。一般用在移动设备上。特点:1.硬件规模庞大,通常基于IP设计模式;2.软件比重大,需要进行软硬件协同设计。
FPGA : (Field Programmable Gate Array),是在PAL、GAL等可编程器件的基础上进一步发展的产物。它是作为专用集成电路(ASIC)领域中的一种半定制电路而出现的,既解决了定制电路的不足,又克服了原有可编程器件门电路数有限的缺点
FPGA器件属于专用集成电路中的一种半定制电路,是可编程的逻辑列阵,能够有效的解决原有的器件门电路数较少的问题。FPGA 的基本结构包括可编程输入输出单元,可配置逻辑块,数字时钟管理模块,嵌入式块RAM,布线资源,内嵌专用硬核,底层内嵌功能单元
CPU和GPU的互访 :大多数显卡对于RAM没有直接的访问权利,
渲染所需要的数据 -> 硬盘 -> 系统内存(RAM) -> 显存
有这样的架构,叫UMA,unified memory access。其实CPU和GPU早就可以互访空间了,只要驱动做一个mapping就行,没有任何难度。问题在于两者的访存模式差别太大,任意互访并不能带来人和性能优势,反而会带来很多问题,比如cache一致性。所以PC上直到win10才放开。
独立CPU和独立GPU,现在是PCIe连接,下一代应该上CCIX.
而手机上又不一样,一般使用Soc ----- 手机上的gpu几乎都不配备单独的显存,需要的memory从系统memory里面分,系统启动的时候会分一部分给gpu用,这部分memory是gpu可以直接访问的。如果还需要的话,再从系统里面分一部分,这部分memory gpu不能直接使用的,只有经过mmu映射后才能用明出处。
双核四线程的CPU,在不发生资源冲突的情况下,每个计算核心可能同时进行两个计算,但超线程通常只是使逻辑计算核心翻倍。
云渲染 :就是在云计算的基础上加入图形渲染,它可以将3D图形渲染搬到了互联网上。