计算机系统概述

    1.1计算机发展历程
        1.1.1计算机硬件的发展
            (1)计算机的四代变化
                自1946年第一台电子数字计算机ENIAC(Electronic Numerical And Computer)问世,已有四代
                a.第一代计算机——电子管时代
                b.第二代计算机——晶体管时代
                c.第三代计算机——中小规模集成电路时代
                d.第四代计算机——超大规模集成电路时代
            (2)计算机元件的更新换代
                a.摩尔定律:当价格不变时,集成电路上可容纳的晶体管数目,约每隔18个月便会增加一倍,性能也将提升一倍。
                b.半导体存储器的发展:1970年,仙童公司生产出第一个较大容量的半导体存储器,至今已有十一代:单芯片1KB、4KB、16KB、64KB、256KB、1MB、4MB、16MB、64MB、256MB和1GB
                c.微处理器的发展:自1971年Intel公司开发出Intel 4004至今,经历了Intel 8080(8位)、Intel 8086(16位)、Intel 80286(16位)、Intel 80386(32位)、Intel 80486(32位)、Pentium(32位)、Pentium pro(64位)、Pentium II(64位)、Pentium III(64位)、Pentium 4(64位)等
        1.1.2计算机软件的发展
            (1)计算机语言发展经历了面向机器的机器语言和汇编语言、面向问题的高级语言
            (2)高级语言经历了从科学计算和工程计算的FORTRAN、结构化程序设计PASCAL到面向对象的C++和适应 络环境的Java
            (3)操作系统发展出现了Windows、UNIX、Linux等
        1.1.3计算机的分类与发展方向
            (1)电子计算机可分为电子模拟计算机和电子数字计算机
            (2)数字计算机又可按用途分为专用计算机和通用计算机(根据计算机的效率、速度、价格、运行的经济型和适应性划分)
            (3)通用计算机又分为巨型机、大型机、中型机、小型机、微型机和单片机6类,它们的体积、功耗、性能、数据存储量、指令系统的复杂程度和价格依次递减
            (4)此外,计算机按指令和数据流还可分为:
                a.单指令流和单数据流系统(SISD)即冯·诺依曼体系结构
                b.单指令流和多数据流系统(SIMD)包括阵列处理器和向量处理器系统
                c.多指令流和单数据流系统(MISD)这种计算机实际上不存在
                d.多指令流和多数据流系统(MIMD)包括多处理器和多计算机系统
            (5)计算机的发展趋势正向着“两极”分化,一极是微型计算机向更微型化、 络化、高性能、多用途方向发展;另一极则是巨型机向更巨型化、超高速、并行处理、智能化方向发展
    1.2计算机系统层次结构
        1.2.1计算机系统的组成
            (1)完整的计算机系统由硬件系统和软件系统构成
            (2)硬件系统是指看得见、摸得着的物理设备,是指计算机系统中物理装置的总称;软件指在硬件上运行的相关数据及控制硬件设备的指令等
            (3)如果某一功能既可以用软件实现,也可以用硬件实现,则称为软硬件在逻辑上是等效的
            (4)往往一种功能的实现,使用硬件效率更高,而使用软件可以提高灵活性
        1.2.2计算机硬件的基本组成
            (1)冯·诺依曼机特点:
                a.计算机硬件系统有由运算器、存储器、控制器、输入设备和输出设备5大部件组成
                b.指令和数据同等地位存于存储器内,并可按地址寻址
                c.指令和数据均用二进制代码表示
                d.指令由操作码和地址码组成,操作码用来表示操作的性质,地址码用来表示操作数在存储器中的位置
                e.指令在存储器内按顺序存放,通常指令是按顺序被执行的,一定条件下可改变顺序
                f.早期的冯·诺依曼机以运算器为中心,输入/输出设备通过运算器和存储器传送数据

            (2)现代计算机的组织结构
                随着微电子技术的进步,同时计算机需要处理、加工的信息量不能满足计算机发展的要求,现代计算机已经发展为以存储器为中心,使I/O操作尽可能的绕过CPU,直接在I/O设备和存储器之间完成,以提高系统的整体运行效率

 目前绝大多数计算机遵循冯·诺依曼体系结构

            (3)计算机的功能部件
                a.输入设备:主要功能是将程序和数据以机器所能识别和接收的信息形式输入到计算机,如键盘、鼠标、触摸屏
                b.输出设备:主要功能是将计算机处理的结果以人们所能接受的形式或其他系统所要求的信息形式输出,如显示器、打印机、触摸屏
                c.存储设备:存储器是计算机的存储部件,用来存放程序和数据
                    存储器分为主存储器(主存)和辅助存储器(简称辅存,也称外存储器),CPU能直接访问的存储器是主存储器,辅助存储器用于帮助主存储器记忆更多的信息,辅助存储器中的信息必须调入主存后,才能为CPU所访问
                    主存储器由许多存储单元组成,每个存储单元包含若干个存储元件,每个元件存储一位二进制0或1,存储单元可存储一串二进制代码,称这串代码为存储字,这串代码的位数称为存储字长,存储字长可以是8位(一个字节)或者是字节的偶数倍
                    主存储器的工作方式是按存储单元的地址进行存取的,这种存取方式称为按地址存取方式

下图为主存储器逻辑图:

                   

   

                   存储体存放二进制信息,地址寄存器(MAR)存放访存地址,经过地址译码后找到所选的存储单元;数据寄存器(MDR)是主存和其他部件的中介机构,用于暂存要从存储器中读或者写的信息,另外还有时序控制逻辑用于产生存储器操作所需的各种时序信
                    MAR用于寻址,其位数对应着存储单元的个数,n位的MAR对应着2的n次方个存储单元
                    MDR的位数与存储字长相等
                d.运算器
                    运算器是计算机的执行部件,用于对数据进行加工处理,完成算术运算(如加、减、乘、除等)和逻辑运算(与、或、非、异或、比较、位移等)等
                    运算器的核心是算术逻辑单元ALU,运算器包含若干通用寄存器,用于暂存操作数和中间结果,如累加器(ACC)、乘商寄存器(MQ)、操作数寄存器(X)变址寄存器(IX)、基址寄存器(BR)等,其中前三个寄存器是必须有的
                    运算器内还有程序状态寄存器(PSW),保留各类运算指令或测试指令的结果的各类状态信息,以表征系统运行状态
                e.控制器
                    控制器是计算机的指挥中心,控制器由程序计数器(PC)、指令寄存器(IR)、控制单元(CU)组成
                    PC用来存放当前欲执行指令的地址
                    IR用来存放当前的指令,其内容来自主存的MDR,指令中的操作码OP(IR)送至CU,用以分析指令并发出各种微指令命令序列,而地址码Ad(IR)送往MAR来取操作数

下图为细化的计算机组成框图:

         1.2.3计算机软件的分类
            (1)系统软件和应用软件
                系统软件是保证计算机正常、高效运行的基础软件,通常作为系统资源提供给用户使用,主要有操作系统(OS)、数据库管理系统(DBMS)、语言处理程序、分布式软件系统、 络软件系统、标准库程序、服务性程序等
                应用软件是指用户位解决某个应用领域中的各类问题而编制的程序
            (2)三个级别的语言
                a.机器语言:机器语言是计算机唯一可以直接识别和执行的语言
                b.汇编语言:用英文单词或其缩写代替二进制的指令代码,转换为机器语言后才能在计算机的硬件系统上执行
                c.高级语言:为了方便程序设计人员而发明的语言,通常需要经过编译转换成汇编语言,再汇编成机器语言或直接由高级语言翻译成机器语言程序

        1.2.4计算机的工作过程
            (1)把程序和数据装入到主存储器中
            (2)从程序的起始地址运行程序
            (3)用程序的首地址从存储器中取出第一条指令,经过译码、执行步骤等控制计算机各功能部件协同运行,完成指令,并计算下一条指令的地址(PC+1)

???????

    1.3计算机的性能指标
        1.3.1计算机的主要性能指标
            (1)机器字长
                机器字长是指计算机进行一次整数运算(即定点整数运算)所能处理的二进制数据的位数,通常与CPU的寄存器位数、加法器有关。字长越长,数的表示范围越大,计算精度越高
            (2)数据通路带宽
                数据通路带宽是指数据总线一次所能并行传递信息的位数,这里是指外部数据总线的宽度,它与CPU内部的数据总线宽度(内部寄存器的大小)有可能不同
            (3)主存容量
                主存容量是指主存储器所能存储信息的最大容量,通常以字节来衡量,也可以用字数*字长来表示存储容量,其中,MAR的位数反映了存储单元的个数,MAR的位数反映了可寻址范围的最大值(而不一定是实际存储器的存储容量)
            (4)运算速度
                a.吞吐量和响应时间
                    吞吐量:指系统在单位时间内处理请求的数量,它取决于信息能多快的输入内存,CPU能多块的取指令,数据能多快的从内存中取出或存入,以及所得结果能多快地从内存发送给另外一台设备
                    相应时间:指从用户向计算机发送一个请求,到系统对该请求做出相应并获得它所需要的结果的等待时间,通常包括CPU时间(运行一个程序所花费的时间)、与等待时间(用于磁盘访问、存储器访问、I/O操作、操作系统开销等时间)
                b.主频和CPU时钟周期
                    CPU时钟周期:通常为节拍脉冲或T周期,即主频的倒数,它是CPU中最小的时间单位,每个动作至少需要一个时钟周期
                    主频(CPU时钟频率):机器内部主时钟的频率,它是衡量机器速度的重要参数。主频的倒数是CPU的时钟周期,同型 计算机,主频越高,执行指令越快
                c.CPI:即执行一条指令所需的时钟周期数
                d.CPU执行时间,指运行一个程序所花费的时间
                CPU执行时间=CPU时钟周期/主频=(指令条数*CPI)/主频
                上式表明,CPU的性能(CPU执行时间)取决于三个要素:(1)主频(时钟频率)(2)每条指令执行所用的时钟周期数(CPI)(3)指令条数
                e.MIPS、MFLOPS、GFLOPS和TFLOPS
                    MIPS:即每秒执行多少百万条指令
                        MIPS=指令条数/(执行时间*10的6次方)=主频/CPI
                    MFLOPS:即每秒执行多少百万次浮点运算
                        MFLOPS=浮点操作次数/(执行时间*10的次方)
                    GFLOPS:即每秒执行多少十亿次浮点运算
                        GFLOPS=浮点操作次数/(执行时间*10的9次方)
                    TFLOPS:即每秒执行多少万亿次浮点运算
                        TFLOPS=浮点操作次数/(执行时间*10的12次方)
    几个专业术语的概念:
        (1)系列机:具有基本相同的体系结构,使用相同的基本指令系统的多个不同型 的计算机组成的一个产品系列
        (2)兼容:相对于软件,一种是指某个软件能稳定地工作在某操作系统之中,就说这个软件对这个操作系统是兼容的。再就是在多任务操作系统中,几个同时运行的软件之间,如果能稳定地工作,不出经常性的错误,就说它们之间的兼容性好,否则就是兼容性不好。
        (3)软件可移植性:指把使用在某个系列计算机中的软件直接或进行很少修改就能运行在另外一个系列计算机中的可能性
        (4)固件:将程序固定在ROM中组成的部件称为固件。固件是一种具有软件特性的硬件,固件的性能指标介于硬件与软件之间,吸收了软、硬件各自的优点,执行速度快于软件,灵活性优于硬件。
    常见问题和易混淆知识点:
        1.同一个功能既可以由软件实现也可以由硬件实现吗br>         软件和硬件是两种完全不同的形态,硬件是实体,是物质基础;软件是一种信息,看不见、摸不到。但是在逻辑功能上,软件和硬件是等效的。因此,在计算机系统中,许多功能既可以由硬件直接实现,也可以在硬件的配合下由软件实现。
        例如,乘法运算既可以用专门的乘法器(主要由加法器和移位器组成)实现,也可以用乘法子程序(主要由加法指令和移位指令等组成)来实现。
        2.翻译程序、汇编程序、编译程序、解释程序的区别和联系br>         翻译程序是指把高级语言源程序翻译成机器语言程序(目标代码)的软件。
        翻译程序有两种:一种是编译程序,它将高级语言源程序一次全部翻译成目标程序,每次执行程序时,只要执行目标程序,因此,只要源程序不变,就无须重新翻译,请注意同一种高级语言在不同体系结构下,编译成目标程序是不一样的,目标程序与体系结构相关,但仍不是计算机硬件能够直接执行的程序。另种是解释程序,它将源程序的条语 句翻译成对应的机器 目标代码,并立即执行,然后翻译下一条源程序语句并执行,直至所有源程序语句全部被翻译并执行完。所以解释程序的执行过程是翻译-句执行一句, 并且不会生成目标程序。汇编程序也是一 种语言翻译程序,它把汇编语言源程序翻译为机器语言程序。汇编语言是一种面向机器的低级语言,是机器语言的符 表示,与机器语言一-对应,
        编译程序与汇编程序的区别:如果源语言是诸如C、C++、Java 等“高级语言”,而目标语言是诸如汇编语言或机器语言之类的“低级语言”,这样的一个翻译程序称为编译程序。如果源语言是汇编语言,而目标语言是机器语言,这样的一个翻译程序称为汇编程序.3.什么叫透明性明是指什么都能看见吗br>         在计算机领域中,站在某一类用户的角度,如果感觉不到某个事物或属性的存在,即“看”
        1.同一个功能既可以由软件实现也可以由硬件实现吗br>         例如,乘法运算既可以用专门的乘法器(主要由加法器和移位器组成)实现,也可以用乘法子程序(主要由加法指令和移位指令等组成)来实现。
        2.翻译程序、汇编程序、编译程序、解释程序的区别和联系br>         翻译程序是指把高级语言源程序翻译成机器语言程序(目标代码)的软件。
        翻译程序有两种:一种是编译程序,它将高级语言源程序一次全部翻译成目标程序,每次执行程序时,只要执行目标程序,因此,只要源程序不变,就无须重新翻译,请注意同一种高级语言在不同体系结构下,编译成目标程序是不一样的,目标程序与体系结构相关,但仍不是计算机硬件能够直接执行的程序。另种是解释程序,它将源程序的条语 句翻译成对应的机器 目标代码,并立即执行,然后翻译下一条源程序语句并执行,直至所有源程序语句全部被翻译并执行完。所以解释程序的执行过程是翻译-句执行一句, 并且不会生成目标程序。汇编程序也是一 种语言翻译程序,它把汇编语言源程序翻译为机器语言程序。汇编语言是一种面向机器的低级语言,是机器语言的符 表示,与机器语言一-对应,
        编译程序与汇编程序的区别:如果源语言是诸如C、C++、Java 等“高级语言”,而目标语言是诸如汇编语言或机器语言之类的“低级语言”,这样的一个翻译程序称为编译程序。如果源语言是汇编语言,而目标语言是机器语言,这样的一个翻译程序称为汇编程序.3.什么叫透明性明是指什么都能看见吗br>         在计算机领域中,站在某一类用户的角度,如果感觉不到某个事物或属性的存在,即“看”不到某个事物成属性,则称为“对该用户而言,某个事物或属性是透明的”。这与日常生活中的透明”概念(公开、看得见)正好相反。
        例如,对于高级语言程序员来说,浮点数格式,乘法指令等这些指令的格式、数据如何在运器中运算等都是透明的:而对于机器语言或汇编语言程序员来说,指令的格式,机器结构、数居格式等则不是透明的。
        在CPU中,IR. MAR和MDR对各类程序员都是透明的。
        4.机器字长、指令字长、存储字长的区别和联系br>         机器字长:计算机能直接处理的二进制数据的位数,机器字长般等于内 都寄存器的大小,它决定了计算机的运算精度。
        指令字长:一个指令 字中包含二进制代码的位数。
        存储字长:一个存储单元存储进制代码的长度。 它们都必须是字节的整数倍。
        指令字长一般都取存储字长的整数倍,如果指令字长等于存储字长的2倍,就需要2次访存来取出一 条指令,因此,取指周期为机器周期的2倍, 如果指令字长等于存储字长,则取指周期等于机器周期。
        早期的计算机存储字长一般和机器的指令字长与数据字长相等,故访问次主存便可以取出一条指令或 一个数据。随着计算机的发展,指令字长可变,数据字长也可变, 但它们必须都是字节的整数倍。
        请注意64位操作系统是指特别为64位架构的计算机而设计的操作系统,能够利用64位处理器的优势。但64位机器既可以使用64位操作系统,也可以使用32位操作系统。而32位处理器是无法使用64位操作系统的,
        5.计算机体系结构和计算机组成的区别和联系br>         计算机体系结构是指机器语言或汇编语言程序员所看得到的传统机器的属性,包括指令集、数据类型、存储器寻址技术等,大都属于抽象的属性。
        计算机组成是指如何实现计算机体系结构所体现的属性,它包含许多对程序负来说是透明的硬件细节。例如,指令系统是属于结构的问题,但指令的实现。 即如何取指令、 分析指令。取操作数、如何运算等都属于组成的问题。因此,当两台机器指令系统相同时,只能认为它们具有相同的结构,至于这两台机器如何实现其指令,完全可以不同,印可以认为它们的组成方式是不同的。例如。一台机器是否具备乘法指令。是一个结构的问题, 但实现乘法指今采用什么方式,则是一个组成的问题。
        许多计算机厂商提供一系列体系结构相同的计算机。而它们的组成却有相当大的差别,即使是同一系列的不同型 机器,其性能和价格差异也很大。例如,IBM System/70结构就包含了多种价位和性能的机型。
        6.基准程序执行的越快说明机器的性能越好么br>         一股情况下,基准测试程序能够反映机器性院的好坏。但是,由于基准程序中的语句存在频度的差异。因此运行结果并不能完全说明问题。

刚刚进入计算机领域,第一次在 区写文章,如有错误还请各位前辈指出,欢迎前辈提建议,感谢。                                                                                            

                                                                                                      (参考书籍:《计算机组成原理》)

声明:本站部分文章及图片源自用户投稿,如本站任何资料有侵权请您尽早请联系jinwei@zod.com.cn进行处理,非常感谢!

上一篇 2022年1月22日
下一篇 2022年1月22日

相关推荐