zoukankan      html  css  js  c++  java
  • 计算机的硬件结构

    (根据《程序员的自我修养》整理,整理者:华科小涛,@http://www.cnblogs.com/hust-ghtao转载请注明)

    1.计算机硬件的基本结构

        撇开计算机硬件中纷繁复杂的各种设备、芯片及外围接口等,站在软件开发者的角度看,我们只须抓住硬件的几个关键部件。对于系统程序开发者来说,计算机多如牛毛的硬件中,有三个部件最为关键,它们分别是中央处理器CPU,内存和I/O控制芯片,这三个部件几乎是计算机的核心了。

        早期的计算机没有很复杂的图形功能,CPU的核心频率也不高,跟内存的频率一样,它们都是直接连接在同一个总线(BUS)上。由于I/O设备诸如显示设备、键盘、软盘和磁盘等速度与CPU内存相比还是慢很多。为了协调I/O设备和与总线之间的速度,也为了让CPU能够和I/O设备进行通信,一般每个设备都会有一个相应的I/O控制器。早期的计算机硬件结构如下图所示:

                                                  image

        虽然现在的计算机硬件结构越来越复杂,但实际上它没有脱离最初的CPU、内存,以及I/O的基本结构。

                              

    2. SMP 与多核

       

        在过去的50年里,CPU的频率从几十kHz到现在的4GHz,整整提高了数十万倍,基本上每18个月频率就会翻倍。但是自2004年以来,这种规律似乎已经失效,CPU的频率从那时开始再也没有发生质的提高。原因是人们在制造CPU的工艺方面已经达到了物理极限。

        于是人们开始想办法从另外一个角度来提高CPU的速度,就是增加CPU的数量。其中常见的一种形式就是对称多处理器(SMP,Symmetrical Multi-Processing),简单的讲就是每个CPU在系统中所处的地位和所发挥的功能都是一样的,是相互对称的。

        理论上讲,增加CPU的数量就可以提高运算速度,并且在理想情况下,速度的提高与CPU的数量成正比。但实际上并非如此,因为我们的程序并不能分解成若干个完全不相干的子问题。

        多处理器应用最多的场合是商用服务器和需要处理大量计算的环境。在个人电脑中,使用多处理器是比较奢侈的行为。于是就将多个处理器“合并在一起打包出售”,这些被“打包”的处理器之间共享昂贵的缓存,只保留多个核心,并且以一个处理器的外包装进行销售,这就是多核处理器的基本想法。多核处理器实际上就是SMP的简化版,当然在细节上还有一些差别,但是从程序员的角度看,它们之间区别很小,逻辑上完全相同。

  • 相关阅读:
    Unity 粒子系统 特效 移除屏幕外面后再移回来 不会显示问题
    同步读取各平台StreamingAssets文件
    cocos2d-x for android 环境搭建&交叉编译
    lua 热更新
    php连接mysql超时问题
    svn仓库自动同步(主库、从库自动同步)
    游戏开发进度、状况以及结果的关系(个人感言)
    centos 重启服务命令
    编译时,输出信息重定向到文件
    vs开发的程序内存错误
  • 原文地址:https://www.cnblogs.com/hust-ghtao/p/3969383.html
Copyright © 2011-2022 走看看