文章目录

  • 引子
  • 什么是指令?
    • 指令集
      • 一个小栗子
  • 计算机组成+CPU组成
  • 计算机组成原理知识的堆砌,慢慢消化

引子

回顾一下上学期末做的用FPGA设计CPU的课程设计。
大纲都在李明老师的电子设计自动化课程设计。

什么是指令?

下达任务的信号,系统接收到信号以后就应该去执行这个任务(执行指令)。
包含操作码+操作数

指令集

下达某项或简单或复杂的任务的信号的集合:一条指令完成简单的任务就是精简指令,精简指令的集合叫精简指令集RISC,Reduced。一条指令完成复制的任务就是复杂指令,复杂指令的集合就叫复杂指令集CISC,Complex。

可以看下下面的指令,每个指令完成一些简单的任务。

LDA: data from memory to alu : get memory,send to alu
human: LDA 11
machine: 000 01011
mean:将memory中地址编号为11的数据传给alu的累加器a[7…0]中
brief: a[7…0]=mem[11] 8bit
STA: data from alu to memory:
human: STA 11
machine: 001 01011
mean:将alu的累加器a[7…0]中的数据传给memory中地址编号为11的8个bit
brief: mem[11]=a[7…0]

ADD: data from memory to alu ,then alu calculate.
human: ADD 12
machine: 010 01100
mean:将memory中地址编号为11的数据传给alu的累加器中
brief: a=a+ mem[12]
其它不解释了,耐心看下很好理解。

一个小栗子

举一个加法例子mem[11]+mem[12]mem[13]
用这些指令我们就可以完成一个加法:’b10101010+’b01010101.
(1) 把mem[11]存储的数据放到a里
(2) 把mem[12]的数据通过ALU和a计算,计算结果放入a
(3) 把a中存储的结果放到mem[13]里-----这样我们就可以再把mem[11]&mem[12]的结果放到mem[14],把mem[11]-mem[12]的结果放到mem[15]里

计算机组成+CPU组成

计算机本质上无非就做了两件事:取指令,执行指令。
先说取指令
在哪取?From where?指令总有个存储的地方吧,这就是主存储器的功效了。
取到哪?To Where?取到的指令:要放到解码器(暂且可以理解为IP------指令寄存器)去分解成操作码+操作数。
依据啥?According to what?PC,又叫指令地址寄存器,存放了即将执行指令的地址。
再说执行指令:取到的指令在解码器中被分解成操作码+操作数。操作码放到controller 控制器,操作数;操作数根据操作码被controller解析觉得是让PC中存储的指令的地址跳转,或者作为ALU的一个立即操作数的数据的地址
小结:
CPU在结构上分为存储单元(PC+IP+其它寄存器(在这个课设中stack memory勉强算吧))、控制器(controller)、运算器(ALU)。
计算机的五大组成部分:运算器+控制器+存储器+输入+输出。他这里的存储器包含寄存器+高速缓存+内存+外存。

计算机组成原理知识的堆砌,慢慢消化

一些计算机组成原理当中经常出现的问题?
第1章:计算机系统概论
1:计算机系统由哪两部分组成?计算机系统性能取决于什么?
2、计算机系统5层层次结构从下到上由哪五层组成?哪些是物理机,哪些是虚拟机?
3、在计算机系统结构中,什么是翻译?什么是解释?
4、什么是计算机体系结构?什么是计算机组成?以乘法指令为例说明二者区别。
5、冯诺依曼机器的主要特点?
6、画出现代计算机的组成框图。
7、什么是存储单元、存储字、存储字长、存储体?
8、主存储器中,什么是MAR,什么是MDR,存储器的最大容量由什么决定?
9、什么是机器字长,什么是存储字长长?
10、假设MAR寄存器的位数为16位,MDR寄存器的位数为16位,存储器的最大容量是多少?


第三章 系统总线
1、为什么要使用总线?
2、总线的两大基本特征是什么?
3、系统总线按照传输信息的不同,分成哪几类?是单向的,还是双向的?
3、什么是总线宽度、总线带宽、总线复用、信号线数?
4、假设总线的工作频率为33MHz,总线宽度为32位,则它最大的传输速率是多少?
5、简要说明单总线结构的概念及缺点?(现代计算机为什么要采用多总线结构?)
6、集中式总线判优控制有哪三种方式,哪种方式的优先级不能改变?
7、简述链式查询、计数器定时查询以及独立请求三种方式的工作原理。
8、什么是总线周期,分为哪几个阶段?
9、什么是总线通信控制,总线通信控制有哪几种?
10、什么是同步通信?其优点和缺点?
11、什么是异步通信?异步通信分为哪几种类型?
12、什么是波特率?什么是比特率?(需要掌握如何计算波特率、比特率)
13、异步通信时,常规需要设置的参数有哪些?
14、简述半同步通信的基本原理。
15、简述分离式通信的基本原理。
16、奇偶校验可以纠错吗?汉明码可以纠错码?


第四章 存储器

1、存储器按存取方式,可以分成哪四类?哪些属于随机访问存储器,哪些属于串行访问存储器?
2、衡量存储器使用哪三个指标?寄存器、缓存、主存中,哪个速度最快?哪个最便宜?
3、常见的存储系统层次结构有哪两种?透明性如何?各自用来解决什么问题的?
4、字在存储单元中有两种存储方式,大端方式和小端方式。各是什么含义?x86采用的是哪种存储方式?
5、主存的三个主要技术指标
6、什么是存取时间?什么是存取周期?哪个大?
7、什么是存储器带宽?(要了解如何计算存储器带宽)
8、半导体存储芯片译码驱动包含哪两种方式,请简要说明。
9、随机存储器包含哪两大类?哪个需要刷新?请从速度、容量、价格等方面进行简要比较。
10、只读存储器有哪几种?
11、单片存储器芯片的容量有限,很难满足实际需要,因此必须将若干存储芯片连接在一起才能组成足够容量的存储器。
存储器的扩展通常有位扩展和字扩展,什么是字扩展,什么是位扩展?请举例简要说明
12、熟虑掌握存储器的扩展,包括地址空间分配、地址线的连接、数据线的连接、片选信号的产生及连接等;
13、假设欲检测的二进制代码为n位,为了使其具有1位的纠错能力,需添加K位检测位,组成n+k位的代码。问,应添加多少位检测位?
应添加的检测位位数:2的k次方大于等于n+k+1。
因为要使其有1位的检测能力,必须使用k位来说明n+k位到底哪一位出现了错误,k位能表达的数量为2的k次方,而n+k位到底哪一位
出现了错误或者是全部正确,共有n+k+1种状况,因此,k的取值需要满足:2的k次方大于等于n+k+1
14、对于汉明码,应熟练掌握汉明码的编码方式(按照配偶或配奇的原则),以及给出汉明码,得到要传送的原始信息(包括纠错过程)。
15、提高访存速度的三种方式。
16、简述单体多字的存储系统的工作原理,及其优点。
17、多体并行系统有哪两种编址方式?请简要说明其编址方式及其优点。
19、在四位低位交叉编址中,假设存取周期为T,总线传输周期为τ,为了实现流水线方式存储,应满足什么条件?如果连续读取四个字,所需要的时间是多少?
20、需要大家掌握多体并行存储器在高位交叉编址(顺序存储)和低位交叉编址(交叉存储)的情况下,存储器带宽的计算方式。
21、在CPU和内存之间引入cache的原因。
22、什么是程序的局部性原理。
CPU从主存取指令或数据,在一定时间内,只是对主存局部地址区域访问。
23、Cache命中率、平均访问时间以及访问效率的计算。
24、Cache写操作有哪两种方式?
1)写直达法:写操作既写入Cache又写入主存;
2)写回法:只把数据写入Cache而不写入主存,当Cache中数据被替换出去之后才写入主存。
25、将主存地址映射到Cache地址称为地址映射,常见的Cache映射方式有哪几种?
直接映射、全相联映射、组相联映射。
26、直接映射的优缺点?
优点:地址变换速度快。缺点:cache利用率不高,块冲突率高;
27、全相联映射的优缺点?
优点:cache利用率高,块冲突率低。缺点:地址变换复杂,需要较多的硬件。
28、需要大家掌握各种映射方式之下,写出主存地址格式、cache地址格式,以及主存地址向cache地址的转换。
29、Cache常用的替换算法有哪些?哪个命中率最高?
1)先进先出、近期最少使用算法和随机替换算法;
2)命中率最高的是近期最少使用算法;
30、磁盘的三地址结构包括哪些?
柱面、磁头号和扇区号


第五章 输入输出系统

1、I/O系统的发展大致可以分为哪4个阶段?
2、I/O设备编址有哪两种方式?各有什么优缺点?
3、I/O设备与主机的联络方式有哪几种?
4、I/O总线包括哪四类?
5、I/O设备通常使用D触发器(完成触发器)和B触发器(工作触发器)来标识设备所处的状态。
6、程序查询的基本工作原理。
7、什么是中断?
8、中断服务程序的基本流程包括哪四部分?
9、什么是单重中断和多重中断?
10、CPU响应中断的时机?
11、什么是DMA?
DMA:直接内存访问。在主存和I/O设备之间建立独立的总线连接。
12、在DMA方式中,由于DMA接口与CPU共享主存,可能会出现两者争用主存的冲突,为解决冲突,DMA和主存交换数据时,通常采用哪三种工作方式?
13、DMA工作过程包括哪三部分?
1)预处理
2)数据传输
2)后处理


第六章 计算机的运算方法
1、掌握有符号数的原码计算方法,以及通过原码求真值;
2、掌握补码计算的方法,以及通过补码求原码,然后求真值的方法。
1)通过原码求补码:符号位不变,各位取反,末位加1;
2)通过补码求原码:符号位不变,各位取反,末位加1;
3、原码中0有2种表示方法(正零和负零),补码中0只有一种表示方法(正零和负零的表示方法一致)
4、假设有符号数的位数为8(包括符号位),补码能表示的真值的范围?
补码能表示的真值范围为-128~+127(参见补码定义)
5、掌握求反码以及移码的方法。
6、什么是定点表示?什么是浮点表示?
1)定点表示:小数点固定在某一位置的数为定点数;
2)浮点表示:小数点位置可以浮动的数。
7、浮点数在机器中的表示形式,由哪几部分组成?
由尾数、数符、阶码、阶符四部分组成。
8、掌握规格化浮点数的表示范围(最大正数、最小正数、最大负数、最小负数)的计算方法。
9、IEEE754标准规定的浮点数由哪几部分组成?
由数符、阶码(含阶符)以及尾数组成。
10、IEEE754标准规定的浮点数中,阶码和尾数用什么形式表示?
阶码用移码表示,其偏移量是2^(n-1),尾数用原码表示。
11、float占多少位?double占多少位?
float为短实数,占32位,其中阶码8位,尾数23位。
double为长实数,占64位,其中阶码占11位,尾数为52位。
12、对正数进行算术移位,当正数采用源码、补码、反码时,左移或右移时,低位或高位添补什么代码?
对于正数,其源码、补码、反码均等于真值,左移时,低位添补0,右移时,高位添补0。
13、对负数进行算术移位,当负数采用源码、补码、反码时,左移或右移时,低位或高位添补什么代码?
对于源码,左移或右移时,低位或高位均添补0;
对于补码:左移时,低位添补0,右移时高位添补1
对于反码:左移或右移时,低位或高位均添补1;
14、什么是逻辑移位?
逻辑移位是对无符号数的移位,由于无符号数不存在符号位,左移时,高位移丢,低位补零。右移时,低位移丢,高位补零。
15、加法和减法时,什么情况下可能发生溢出?如何简单判断发生溢出?
1)正数加正数,正数减负数,负数加负数,负数减正数时,可能会发生溢出。
2)如果参加操作的两个数符号相同(转换成补码的加法),其结果与源操作数符号不同,即为溢出。
3)如果补码采用1位符号位,如果最高有效位的进位和符号位的进位不同,则发生溢出。
16、定点乘法运算可以使用加法和移位来实现吗?
可以。
17、浮点加减运算基本按照哪几步来进行?
1)对阶:使小数点对齐;
2)尾数求和:将对阶后的两个尾数按照定点加减运算规则求和;
3)规格化:尾数规格化;
4)舍入:尾数右规时,丢失数值位;
5)溢出判断:判断结果是否溢出。

18、如何判断浮点运算结果是否溢出?
阶码是否超出了其表示范围。(使用2个符号位判溢出)


第七章 指令系统
1、什么是机器指令?什么是指令系统?
2、一条指令包含哪两个主要部分?请简要说明各部分作用。
3、操作码长度有固定长度和可变长度两种,各自有什么优点?
4、指令中地址码中的地址可以是哪些设备的地址?
可以是主存地址、寄存器地址或I/O设备的地址;
5、指令中地址的个数可以有几个?
四地址、三地址、二地址、一地址以及零地址。
6、假设指令中有四个地址、三个地址、两个地址以及一个地址,各自需要访存几次?
1)四地址:访存4次;
2)三地址:访存4次;
3)两地址:访存3次;
4)一地址:访存2次;
7、当使用寄存器代替指令字中的地址码字段后,有哪些优点?
1)扩大指令字的寻址范围;
2)缩短指令字长;
3)减少访存次数
8、数据在存储器中存储时,为什么要按照边界对齐?
减少访存次数。
9、寻址方式包括哪两类?
10、什么是形式地址?什么是有效地址?
11、了解各种寻址方式的概念及根据形式地址形成有效地址的方式。
12、什么是RISC?什么是CISC?
RISC:精简指令集;
CISC:复杂指令集;

EDA课设:CPU设计相关推荐

  1. EDA课设(数字系统设计)--数字密码锁

    目录 1,注意 2,可能遇到的问题 3,题目描述 4,实现前期准备 5,实现代码 6,引脚设置 7,部分验证 1,注意 该博客是根据自己的课设报告写的,所以大家不要抄袭,仅用作给大家提供实现思路以及一 ...

  2. EDA课设 FPGA开发板 VHDL实现串口通信

    一.设计概述 1. UART串口通信设计目的 随着 FPGA/CPLD 器件在控制领域的广泛使用,开发嵌于 FPGA/CPLD 器件内部的通用异步收发器,以实现 FPGA/CPLD 开发系统与 PC ...

  3. 合肥工业大学(宣城校区)2019年EDA课设原理图、PCB板与仿真图像

    据说,老师給的PPT上的原理图和仿真图像都是错的. 图1 原理图1 图2 原理图2(DC-DC电源) 图3 PCB板(Top Layer) 图4 PCB板(Bottom Layer) 图5 仿真原理图 ...

  4. RISC-V CPU课程设计报告【计算机组成原理课设】

    博主在ujs大二完成的计算机组成原理课设,内容是RISC-V CPU设计.(当时也是做的快吐血了~~) 完成情况(写在前面) 在本次计算机组成原理课程设计中,我完成一个基于RISC-V指令集架构的模型 ...

  5. Multisim数电课设-乒乓球游戏实现-设计分享

    题目要求 设计题目 乒乓球游戏机.用LED表示乒乓球位置和球拍.控制球拍在合适的时机击球.一方失球另外一方得分. 期望功能 1).设置8个LED表示球的位置,球可以往复运动 2).球运动到最边缘时,检 ...

  6. 操作系统课设详细解答

    操作系统课设详细解答 一.题目一 实验一 Windows 进程管理 二.实验目的 (1)学会使用 VC 编写基本的 Win32 Consol Application(控制台应用程序). (2)通过创建 ...

  7. 数字电子钟Multisim仿真(数电课设+实验报告)

    我本次的数电课设是设计一个电子时钟,并用Multisim实现仿真 因为自己刚开始做这个实验的时候也是网上的一些资料帮助了自己,所以我也想把自己的东西分享出来,给其他人一些思路. 这个是总体的设计要求 ...

  8. 计组课设:单周期31条MIPS指令CPU设计(含代码)

    多周期54条CPU:计组课设:多周期54条MIPS指令CPU设计(含代码)_孔艺菲的博客-CSDN博客 单周期CPU源码:while-TuRe/Single-cycle-CPU31 (github.c ...

  9. 学习计划【硬件课程设计】【课设】

    学习计划[硬件课程设计][课设] 前言 学习计划[硬件课程设计][课设] 时间内容及工作安排 一.基础实验(30分): 二.自选试验(70分): 三.时间安排: 四.关键时间节点和要求: 五.实验要求 ...

最新文章

  1. Pytorch之深入理解torch.nn.Parameter()
  2. AppBarLayout、CollapsingToolbarLayout以及Toolbar
  3. python **运算符及多参数传参
  4. 一文掌握 Redis 常用知识点 | 图文结合
  5. Python-100 练习题 04 判断天数
  6. RocketMQ源码解析-PullConsumer取消息(1)
  7. 比较两个数的大小,自定义比较两个整数的大小的方法
  8. html页面乱码问题
  9. Java中Http连接的两种方式
  10. mongo 3.0 备份和还原数据库 ,及too many positional arguments错误
  11. springboot开启缓存_springBoot与缓存使用
  12. 使用idea开发vue初始步骤
  13. Web基础(从零开始)——HTML文本域(textarea标签)
  14. 短视频直播系统的功能
  15. php 随机字符串函数,PHP 生成随机字符串的方法函数
  16. Grafana接入Elasticsearch数据,绘制dashboard
  17. 学分绩点计算器java_东南大学 学分绩点gpa 计算器 【源码】
  18. 近日我方收到大量用户QQ发送涉黄图低俗等文字,腾讯QQ回应疑似被盗号!
  19. google authenticator (双重身份验证器)的java使用
  20. css字太多了省略_纯CSS实现文字超过n行后省略功能

热门文章

  1. python爬取猫眼电影
  2. mysql+地图网格数据下载_离线地图
  3. python格式化字符串format函数
  4. java框架源码下载大全(持续更新中)
  5. EXCEL实战 第2章 数据分析
  6. IDEA中上传Java项目到Gitee中
  7. 《AI算法工程师手册》
  8. 如何使用OpenDRIVE
  9. 如何让macOS的「终端」走代理
  10. STM32-custom usb