lcytms
发表于 2018-3-26 21:28:13
0941
长整计算,计算完了第一个长整的任务,接着CPU可以让它做第二个长整的计算。
这个呢,就是加速器和CPU配合的,FPGA加上CPU的一种特定的模式。
其中有一些特点是共性的,有一些特点是专用的。
我们研究加速器,对于我们FPGA的深入的运用,是必不可少的一个基础知识。
因为我们FPGA很可能在工程里面,就会用到加速器。
你单独地做通信,有可能。
也有可能会遇见你做通信的几率,也有可能没有可能做通信。
也有可能你做图像,也有可能你不做图像。
但是你做加速器的这种几率会大得多。
因为无论做什么,FPGA很多的运用就是做加速,accelerator。
提速,跟CPU配合。
所以说我们必须了解加速器这种特有的一些规律和方法。
lcytms
发表于 2018-3-26 21:29:09
0942
好,下面呢,我们就通过一个例子来说明一下,其中,加速器必然的形成的一些规律。
之后呢,我们就可以了解,像绿皮书教材里面构成的加速器是怎么形成的。
我们通过一个长整加速器的例子。
如果我们要做一个长整的计算。
8086是8位的,如果我们要做长整,64位的。
8864,64个bit的计算。
那么8086它会怎么做呢?
它当然要是8个字节,要把8个字节分别地读进来。
lcytms
发表于 2018-3-26 21:30:09
0943
进行计算之后,每一次一个字节计算以后,还要写回到目标区。
8字读,8字写。
再加上中间的过程,那是很长的,而长整的计算,我们只要一个加速器,CPU通知这个加速器,执行对应的运算,告诉这个加速器,原始的数据在哪。
在memory里面是8位的。
会有8个单元来保存。
8864。
目标也是8个单元保存。
CPU就要按照我们现在的基本规律,CPU首先要加速器以从机的形式接受CPU的指挥。
CPU向它发出必要的信息,O_BASE在哪?
D_BASE在哪?
现在D也可以说成是目标,destination。
lcytms
发表于 2018-3-29 08:46:37
0944
目标的基地址。
原始数据的基地址,O_BASE,Original。
然后呢,还要发出它的start命令。
等等一系列。
好,我们首先来看看,如果是没有加速器的情况,会怎么做?
由此研究它们的共性。
CPU,就做这个长整的计算。
CPU有哪些端口?
CPU有它的地址端口。
我们刚刚完成CPU不久。
我写成cpu_addr_out,是地址的输出端。
CPU是主机。
什么是主机呢?
就是主人嘛,它有权支配资源,当然它就能够发出地址信号和控制信号。
lcytms
发表于 2018-3-29 08:48:26
0945
cpu_cmd_out。
它能够发地址,能够发控制。
主机它有这个权力嘛。
它能够访问设备,所有的设备都是根据地址映射表不同的地址上进行访问。
另外呢,它要执行对外围设备的写操作,它就必须要发出数据,有数据的输出端。
cpu_data_out。
我这里特别写上有输入输出。
夏老师的教材上直接用o来描述out,input用i来描述。
CPU必定有地址的输出端,有命令的输出端,有数据的输出端。
lcytms
发表于 2018-3-29 08:50:53
0946
这是写操作。
它要有数据的输入端。
cpu_data_in。
我们研究它的共性。
对于主机而言,必须有地址、命令、数据的输出端,有数据的输入端。
主机需不需要有地址和命令的输入端呢?
它不需要。
主机就是老大。
它说了算。
它当然不需要接收命令。
它是命令的发出者,命令的发出者,对数据的访问,就有地址的输出。
它本身并不接收命令。
当然它也不需要有地址和命令的输入端。
所以说,主机有地址、命令的输出端,没有地址命令的输入端,主机有数据的输入、数据的输出。
lcytms
发表于 2018-3-30 09:23:13
0947
它必定会有数据的输入、数据的输出,因为它要支持读写。
在没有加速器的情况之下,我们写MEMORY,从机。
MEM也有很多端口,数据、指令都在这。
它要接受访问,当然需要地址,mem_addr_in,是地址的输入端。
它有地址的输入端,指向其中一个单元。
lcytms
发表于 2018-3-30 09:24:11
0948
它要有命令的输入端,它是从机,它要接收命令,接收地址。
从机必定会有这些。
同时我们也知道,memory嘛,我们要读它的时候,它会读出数据来,是有mem_q,读出来。
或者说我写成mem_data_out。
有数据的输出端。
同时memory,至芯CPU要写他的时候,memory一定会有数据的输入端。
memory,从机。
看看从机有哪些端口?
lcytms
发表于 2018-3-30 09:25:07
0949
从机要接收命令,就会有地址和命令的输入端,从机可不可能有地址和命令的输出端。
它是从机,它是仆人,它只接收命令,所以说,它就没有发出命令的权力。
仆人的地位比较低嘛。从奴隶到将军。
当然,作为从机,它要接收数据,它就有数据的输入端,要反馈数据,就要有数据的输出端。
所以说从机和主机一样,都有数据的输入和输出。
但是从机只有地址和命令的输入端。
当非加速器模式的时候,如果我们做长整计算,CPU和Memory该如何交换它们的控制信号呢?
lcytms
发表于 2018-4-1 20:45:40
0950
当然是这样,会把命令相连,会把地址相连。
CPU的地址、命令会接入到Memory的地址和命令。
当CPU要写Memory的时候,会把CPU输出的数据连接到Memory的数据输入端,当CPU要读Memory的时候,显然会把Mem_data_out连接到它数据的输入端。
这样连。
我绘制的虚线部分,是非加速器结构,CPU和Memory的连接关系。
页:
1
2
3
4
[5]
6
7
8
9
10
11
12
13
14