设计处理器步骤ISA确定后,进行处理器设计的大致步骤
分析每条指令的功能,并用RTL(Register Transfer Language)来表示
根据指令的功能给出所需元件,并考虑如何将他们互连
确定每个与元件所需控制信号的取值
汇总所有指令所涉及到的控制信号,生成一张反映指令与控制信号之间关系的表
根据表得到每个控制信号的逻辑表达式,据此设计控制器电路
1.指令功能的描述
数据指定
...
1.CPU的基本功能2.CPU的基本组成
数据通路—指令的执行部件
操作元件(ALU)
存储元件—寄存器
控制器—指令的控制部件
译码部件
控制信号生成部件
存储元件—寄存器
数据通路
两类元件组成
组合逻辑元件
时序逻辑元件
元件间的连接方式
总线连接方式
分散连接方式
具体工作
进行数据存储、处理、传送
操作元件:组合逻辑电路
加法器
多路选择器
算逻部件(ALU...
1.RISC-V指令系统概述
核心:RV32I
扩展标准集:RV32M、RV32F、RV32D、RV32A
32位架构RV32G = RV32IMAFD
压缩指令集RV32C(指令长度16位)
32位架构RV64G = RV64MAFD
压缩指令集RV64C(指令长度16位)
2.RISC-V指令参考卡
R-型为寄存器操作数指令
I-型为短立即数或装入(Loa...
#include <thread>
thread为一个类
join:主线程会阻塞住,直到该子线程退出为止
detach:主线程丧失对子线程的控制权
主线程结束之后,子线程可能仍在运行
主线程结束伴随着资源销毁,需要保证子线程没有引用这些资源
yield:让出处理器,重新调度各执行线程
get_id:返回当前线程的id,可以以此来标识不同的线程
sleep_for:让...
1.操作数和寻址方式数据类型
地址(指针):无符号整数,寄存器编号
数值数据
定点数:一般二进制补码
浮点数:IEEE754标准
十进制数:NBCD码
位、位串、字符、字符串用来表示文本、声音、图像
逻辑(布尔)数据
操作数存放在寄存器或内存单元中,也可以立即数的方式直接出现在指令中
寻址方式
寻址方式:指令或操作数地址的指定方式
地址码编码由操作数的寻址方式决定
指令的寻址——简...
一条指令包含:
操作码:指定操作类型(对何种类型数据做何种操作)(操作码长度:固定/可变)
源操作数参照:一个或多个源操作数存在的地址(操作数来源:主(虚)存 / 寄存器 / I/O端口 / 指令本身)
结果值参照:产生的结果存放何处(目的操作数)(结果地址:主(虚)存 / 寄存器 / I/O端口)
下一条指令...
定点数加减运算1.补码加减运算[x+y]补=2n+x+y=2n+x+2n+y=[x]补+[y]补 (mod2n)
[x+y]_补 = 2^n + x+y = 2^n +x+2^n+y = [x]_补+[y]_补\ \ (mod
2^n)
[x+y]补=2n+x+y=2n+x+2n+y=[x]补+[y]补 (mod2n)
[x−y]补=2n+x−y=2n+x+2n−y=[x]补+[...
类属函数
采用通用指针类型的参数
函数模板
通用指针参数实现1234567891011121314151617typedef unsigned char byte;void sort(void *base, //需排序的数据(数组)内存首地址 unsigned int num, //数据元素的个数 unsigned int element_size, //一个数据元素所占内...
程序错误通常包括:
语法错误
逻辑错误(或语义错误)
运行异常:程序设计对程序运行环境考虑不周而造成的程序运行错误
对于x/y,给y输入了0
文件打开错误
由内存空间不足导致的内存访问错误
可以预料,但无法避免
保证程序的鲁棒性(robustness),需要加一些对可能出现的异常进行预见性处理
异常处理策略
就地处理
异地处理
就地处理常用:调用exit或abort...
I/O类库基本类ios
istream
—ifstream
—istringstream
ostream
—ofstream
—ostringstream
面向控制台的I/O
cin(istream的对象)
cout(ostream的对象)
cerr和clog(ostream的对象):对应特殊信息(如错误信息),cerr不带缓冲,clog带...