首页 > 其他分享 >计算机发展历史

计算机发展历史

时间:2022-09-07 21:56:35浏览次数:94  
标签:历史 发展 计算机 并行 指令 处理器 寄存器 操作系统

计算机发展历史

Author: Chance Zhang

Contact: [email protected]

version: 0.0.1

目录

Note: 这篇博客主要参考的是一些网页, 没有进行逐项检验, 细节可能与真实情况有出入.

主要参考https://www.jianshu.com/nb/44304102的内容.

前三代计算机: 电路技术的发展; 体系结构从运算器的设计到提出乱序执行, 后期提出了ISA的概念; 操作系统方面从每台处理器一个到提出统一的操作系统, 提出了分时, 多任务操作系统;

70年代, 8位和16位计算机: 体系结构进一步完善, 出现为外设设计的中断, 出现为操作系统设计的硬件; 操作系统方面进一步完善, 出现磁盘操作系统(Win-DOS);

80-90年代, 32位计算机: 体系结构方面重点在提升微处理器性能, 出现RISC指令集, 提出指令集并行技术, 除此提出数据级并行和线程级并行; 操作系统方面DOS与x86处理器相处支持, 提出Windows操作系统;

前三代计算机 (1946 - 1970)

第一代计算机 真空管计算机

时间段: 1946 - 1954

代表: ENIAC

性能: 几千IPS, Kb为单位的主存

处理器: 冯·诺依曼带领团队对ENIAC进行改进->二进制进行运算; 计算机内部保存运算程序(从而能够立即执行运算);

工作方式: 程序员预约计算机使用时间, 在预约的时间段内独享计算机, 使用插件板/ 穿孔卡片写入程序

编程语言: 机器指令/ 汇编语言, 出现了原始的加载器

第二代计算机: 晶体管计算机

时间段: 1954 - 1963

代表: TRADIC 1954

性能: 几十万IPS, Mb为单位的主存

处理器: 因为集成度不高, 几乎就是Computer Arithmetic上的优化

工作方式: 使用磁带输入程序, 批处理系统-序列化了工作的建立和执行, 每台计算机的系统都不同

编程语言: 机器指令/ 汇编语言, FORTRAN

第三代计算机: 中小规模集成电路

时间段: 1963 - 1971

代表: CDC 6600 (1963), IBM System 360 (1964), DEC PDP-7 (1964)

性能: 几个MIPS

处理器: 提出了Instruction Set Architecture(ISA)以统一数据存储格式, IO设备接口, 定点/浮点数, ASCII, BCD编码, 内存对齐, 通用寄存器, 累加器等方面; CDC 6600使用了十个外围处理器, 可以执行向量指令; CDC 6600使用ScoreBoard算法乱序执行; System 360使用Tomasulo算法乱序执行;

存储器: 出现硬盘(IBM称为DASD)

操作系统: Multics (1963), 分时, 多任务; System 360系列的计算机共享OS/360 (1964)的操作系统; UNIX操作系统 (1969);

编程语言: 机器指令/ 汇编语言, FORTRAN

第四代计算机

第四代计算机: 超大规模集成电路 -> 微型计算机

1970 - 1980 8位和16位计算机

1971 8位微处理器 C64电脑 (使用6510处理器)

外设: 64Kb存储器, 显示器, 键盘, 喇叭

操作系统: 没有操作系统, 以一个8Kb的BIOS初始化彩色显示器, 键盘以及软盘驱动器和打印机; 使用8Kb的只读存储器BASIC语言直接操作BIOS, 由此撰写程序;

1972 8位微处理器 Intel 8008处理器

体系结构: 寻址16K内存; 栈有8个入口, 即最多支持8层函数嵌套; 寄存器包括一个累加器A, 六个寄存器BCDEHL, 一个伪寄存器M; 有四个Flag寄存器; 控制流指令包括jump, call和return, halt使处理器暂停工作等待中断; 支持最多8个中断, 对应的中断处理程序在内存固定位置; 没有屏蔽中断的指令, 也没有中断发生时的保存任何寄存器的指令;

编程语言: C (1973) -> 重写UNIX;

1974 16位微处理器 8008处理器

体系结构: 寻址64K内存; Flag值放入到一个8位寄存器, 并保留了一些位, 为eflags的雏形; 加入了Load/Store指令, 新的寄存器指令, Carry指令, 扩展IO指令和中断指令;

1978 16位微处理器 VAX-11处理器

体系结构: 出现为操作系统设计的硬件, 例如栈寄存器, 分页, 硬件TLB, 中断, 用户态核心态访问权限控制, 机器状态字, 上下文切换等; UNIBUS, Cache, 为性能增加的额外的浮点单元和预译码技术;

1978 16位微处理器 8088处理器

体系结构: 完全兼容8080的寄存器和指令集, 性能高出一个量级; 支持可重入代码, 位置无关代码, 动态可定位代码; 支持1M内存寻址, 这些地址空间划分为一系列的段, 每个段包含64K的空间, 微处理器可以直接访问当前的代码段, 数据段, 栈段和额外段; 寄存器文件逻辑上分为了三个组: 通用寄存器, 指针和索引寄存器, 段寄存器; 一共有13个16位寄存器和9个flag位, 其中增加了4个位, 分别用于指示溢出, 地址方向, 中断开关和调试; 指令集扩展到133条, 支持8位和16位有符号数和无符号数的计算, 并且支持5种方寸模式; 可以支持64个IO接口;

操作系统: 磁盘操作系统(Disk Operating System, DOS), 可以合并任意数量的扇区 -> 在一张磁盘片上放置任意数量与大小的文件, 文件之间以文件名区别; MS-DOS (1980)出现, 可以直接让程序操作BIOS与文件系统; Mac OS (1980)出现; POSIX (1980), GNU (1984), Linus' Minix -> Linux (1991);

1980 - 2003

体系结构: 从指令集并行, 数据级并行和线程级并行等方面提升微处理器的并行度.

RISC技术优点: 指令集复杂会导致编译器选择指令困难; RISC能够方便VLIW设计, 降低设计成本, 更好利用芯片面积, 更高指令速度;

现代的计算机: 要不就是基于RISC的(MIPS, ARM, RISCV), 要不前端仍然是CISC, 通过译码转换成RISC在执行(Intel, AMD, IBM)

超长指令字与超标量: 超长指令字VLIW和超标量Super Scalar都是试图在一个周期内发射多条指令. 差别在于, 超长指令字需要编译器分析指令间的依赖关系, 并进行打包, 以提升未处理并行发射; 超标零则完全是硬件执行的动作, 由硬件完成依赖分析和发射. 目前超标量技术使用较多, 以减轻编译器的负担.

分支预测器: 通过查询历史记录, "预测"跳转指令的下一条指令, 从而减少流水线的停顿. 主要有静态分支预测, 动态分支预测(1-bit/ n-bit)和协同分支预测.

指令级并行的极限: 有文章证明指令级并行是有极限的, 大概是20-60左右, 一些轻微的不完美都会将其降至10左右.

数据级并行: 为了突破指令集并行的极限, 一种方式是数据级并行, 多用于多媒体应用. 例如Intel的MMX, SSE. AVX指令集; 同时其运算部件支持SIMD功能, 并逐步提升向量宽度. 而NVDIA公司的GPU则是通过专用硬件为图形应用加速.

线程级并行: 通过操作系统的帮助完成线程之间的切换, 达到多线程同时运行的假象.

这个时间段发展的较成熟的样例: R10000 (1996), DEC Alpha 21264 (1999), Intel Pentium 4 (2000), IBM Power 4 (2001), AMD Optron (2003)

2003 - 2022

参考 https://www.jianshu.com/nb/44304102

标签:历史,发展,计算机,并行,指令,处理器,寄存器,操作系统
From: https://www.cnblogs.com/chancebeauty/p/16667409.html

相关文章

  • 第一章、计算机网络体系结构
    1计算机网络的概念、功能、组成和分类1.1网络的概念计算机网络:将分散的、具有独立功能的计算机系统,通过通信设备(交换机、路由器)和线路连接起来,由功能完善的软件实现......
  • 电子商务发展现状与趋势
     电子商务源于英文ELECTRONICCOMMERCE,简写为EC。顾名思义,其内容包含两方面,一是电子方式,二是商贸活动。一般来说是指利用电子信息网络等电子化手段进行的商务活动,是指......
  • 计算机科学速成课第四课:二进制
    1、二进制的原理,存储单元MB/GB/TB解释0计算机中的二进制表示:单个数字1或0,1位二进制数字命名为位(bit),也称1比特。 1字节(byte)的概念:1byte=8bit,即1byte代......
  • 从图灵机到计算机
    从图灵机到计算机图灵机给出了一个可实现的通用计算机模型,它能模拟现代计算机的所有计算行为,为了纪念这一伟大构想,美国计算机协会(ACM)设立计算机奖项图灵奖,旨在奖励对计算......
  • 计算机的理论模型——图灵机
    1.图灵机的由来图灵机由英国数学家阿兰·麦席森·图灵(AlanMathisonTuring)于1936年提出的一种抽象的计算模型,即一切可计算问题都可以由一个虚拟的机器代替人类进行计算......
  • 第 12 题:JS 异步解决方案的发展历程以及优缺点。
    JS异步已经告一段落了,这里来一波小总结1.回调函数(callback)setTimeout(()=>{//callback函数体},1000)缺点:回调地狱,不能用trycatch捕获错误,不能return......
  • 计算机硬件系统
    只有硬件系统而没有软件系统的计算机被称为“裸机”。计算机一般由控制器、运算器、存储器、输入设备和输出设备五个基本部分组成。 1.控制器(CU)基本功能:从内存中读取......
  • 2022知识图谱发展报告[附下载]
      2022年《知识图谱发展报告》是中国中文信息学会语言与知识计算专委会发布的报告,算是国内最权威的关于知识图谱领域的最全和最新进展了。包括知识表示与建模、知识表示......
  • 干货 | Elasticsearch Java 客户端演进历史和选型指南
    1、Elasticsearchjava客户端为什么要选型?Elasticsearch官方提供了很多版本的Java客户端,包含但不限于:Transport客户端JavaREST客户端LowLevelREST客户端Hi......
  • 助教总结(计算机组成原理)
    一、助教工作的具体职责和任务1.收作业在收集软件工程的作业后和与班级学委进行统计,并且批改卷子2.收集平时问题在一些理论性问题中我可以解决的,我会尽量给他们讲解,如果......