【计算机组成原理】简介

计算机组成原理学习开篇

做了几年Java Coder自认为Java相关基础还够用,但往往对一些更深底层实现只能点到为止,不能很好的融汇贯通。搜索各种资料,想一层一层的剥开,却也很难解释透彻。随着技术知识的了解越广,对技术的敬畏也越深,但值得庆幸的是对技术刨根揭底的心没死透。从最底层的计算机组成原理开始学习,还大学的4年游戏所欠的(出来混迟早都得还,以此告诫还在上学的同学们)…..
本系列文章主要围绕硬件的学习记录笔记,通过博客来跟大家一起学习探讨,如果错误之处请求大家指正,以免误导了他人


计算机发展史

发展阶段时间硬件技术速度(次/秒)
第一阶段1946-1957电子管40000
第二阶段1958-1964晶体管200000
第三阶段1965-1971中小规模集成电路1000000
第四阶段1972-1977大规模集成电路10000000
第五阶段1978-现在超大规模集成电路100000000

百度百科查的各个阶段的物理元件,至于这些元件为什么有这些物理特性,就不深挖了,毕竟我们不做硬件工程师

电子管, 是被封闭在玻璃容器(一般为玻璃管)中的阴极电子发射部分、控制栅极、加速栅极、阳极(屏极)引线被焊在管基上。利用电场对真空中的控制栅极注入电子调制信号,并在阳极获得对信号放大或反馈振荡后的不同参数信号数据。目前高端音响有用电子管的。

晶体管,是一种固体半导体器件,具有检波、整流、放大、开关、稳压、信号调制等多种功能

集成电路,是一种微型电子器件或部件。采用一定的工艺,把一个电路中所需的晶体管、电阻、电容和电感等元件及布线互连一起,制作在一小块或几小块半导体晶片或介质基片上,然后封装在一个管壳内,成为具有所需电路功能的微型结构


计算机组成结构

计算机由硬件和软件两大部分组成。本文主要从硬件结构方面介绍。自从1945年,冯·诺依曼(von Neumann)提出存储程序的概念,发展到至今计算机结构都是以此为基础构建的。现代计算机主要由处理器、存储器、IO模块以及连接这些部件总线。

冯·诺依曼理论

  • 计算机由运算器、存储器、控制器、输入设备和输出设备五大部件组成
  • 指令和数据以同等方式存放在存储器中,按地址访问
  • 指令和数据都用二进制表示
  • 指令由操作码和地址码组成,操作码用来表示操作的性质,地址码用来表示操作数在存储器中的位置
  • 指令在存储器内按顺序存放
  • 机器以运算器为中心,输入输出设备与存储器间的数据传送通过运算器完成

现代计算机结构图

计算机总体结构!

CPU

CPU是由一块超大规模的集成电路组成,是计算机的运算核心和控制核心。主要包括运算器(ALU)、控制器(CU)、寄存器和高速缓冲等部件。

主存储器

主存储器简称主存,是一个临时存储设备,存放指令和数据,CPU能直接随机存取。

总线

总线(Bus)是计算机各种功能部件之间传送信息的公共通信干线,它是由导线组成的传输线束, 按照计算机所传输的信息种类,计算机的总线可以划分为数据总线、地址总线和控制总线,分别用来传输数据、数据地址和控制信号。

I/O设备

输入/输出(Input /Output ,简称I/O),指的是一切操作、程序或设备与计算机之间发生的数据传输过程。I/O设备是计算机系统与外部联系的通道。


计算机硬件主要性能指标

  • 机器字长是指CPU一次能处理的数据位数,通常与CPU的寄存器位数有关。字长越长,数字范围越大,精度也越高;同时也会影响机器的运算速度,如运算位数多的数据,需要经过多次运算才能完成。
  • 存储容量是指主存存放的二进制代码的总位数。主存容量越大,系统功能就越强大,能处理的数据量就越庞大。
  • 运算速度是指单位时间内能执行的指令数量。一般受机器主频,取指周期,总线带宽,CPU流水线设计等因素影响。

后面再围绕这总线、存储器、I/O设备、CPU依次展开详细介绍….


参考文献
1. 《计算机组成原理》
2. 《深入理解计算机系统》
3. 《计算机组成与体系结构-性能设计》

1. 深入掌握CPU的工作原理,包括ALU、控制器、寄存器、存储器等部件的工作原理; 2. 熟悉和掌握指令系统的设计方法,并设计简单的指令系统; 3. 理解和掌握小型计算机的工作原理,以系统的方法建立起整机概念; 4. 理解和掌握基于VHDL语言和TEC-CA硬件平台设计模型机的方法。 二、设计要求   参考所给的16位实验CPU的设计与实现,体会其整体设计思路,并理解该CPU的工作原理。在此基础上,对该16位的实验CPU(称为参考CPU)进行改造,以设计得到一个8位的CPU。总的要求是将原来16位的数据通路,改成8位的数据通路,总的要求如下: 将原来8位的OP码,改成4位的OP码; 将原来8位的地址码(包含2个操作数),改成4位的地址码(包含2个操作数)。   在上述总要求的基础上,对实验CPU的指令系统、ALU、控制器、寄存器、存储器进行相应的改造。具体要求如下: 修改指令格式,将原来指令长为16位的指令格式改成8位的指令长格式; 设计总共16条指令的指令系统。此指令系统可以是参考CPU指令系统的子集,但参考CPU指令系统中A组和B组中的指令至少都要选用2条。此外,常见的算术逻辑运算、跳转等指令要纳入所设计的指令系统; 设计8位的寄存器,每个寄存器有1个输入端口和2个输出端口。寄存器的数量受控于每一个操作数的位数,具体要看指令格式如何设计; 设计8位的ALU,具体要实现哪些功能与指令系统有关。设计时,不直接修改参考CPU的VHDL代码,而是改用类似之前基础实验时设计ALU的方式设计; 设计8位的控制逻辑部件,具体结合指令功能、硬布线逻辑进行修改; 设计8位的地址寄存器IR、程序计数器PC、地址寄存器AR; 设计8位的存储器读写部件。由于改用了8位的数据通路,不能直接采用DEC-CA平台上的2片16位的存储芯片,需要按照基础实验3的方法设计存储器。此种方法不能通过DebugController下载测试指令,因此测试指令如何置入到存储器中是一个难点。设计时,可以考虑简单点地把指令写死在存储器中(可用于验证指令的执行),然后用只读方式读出来;或者考虑在reset的那一节拍里,实现存储器中待测试指令的置入; (可选项)设计8位的数据寄存器DR; (可选项)不直接设计存储器RAM,而是采用DEC-CA平台上的2片16位的存储芯片.在实现了第9个要求的基础上,实现由Debugcontroller置入待测试指令; (可选项)顶层实体,不是由BDF方式画图实现,而是用类似基础实验4(通用寄存器组)中设计顶层实体的方式,用VHDL语言来实现。 (可选项)自己设想   利用设计好的指令系统,编写汇编代码,以便测试所有设计的指令及指令涉及的相关功能。设计好测试用的汇编代码后,然后利用Quartus II软件附带的DebugController编写汇编编译规则。接着,利用DebugController软件把汇编编译之后的二进制代码置入到所采用的存储器中,并对设计好的8位CPU进行测试。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值