Vector Memory-Memory vs Vector Register Machines 存储器-存储器型向量机(VMMA)需要更高的存储器带宽 All operands must be read in and out of memory VMMA结构使得多个向量操作重叠执行较困难 Must check dependencies on memory addresses VMMA启动时间更长 CDC Star-100在向量元素小于100时,标量代码的性能高于向量 化代码 - For Cray-1, vector/scar均衡点在2个元素 CDC Cray-1后续的机器( Cyber205,ETA-10)都是寄存 器型向量杆 2021/1/29 计算机体系结构 17
Vector Memory-Memory vs. Vector Register Machines • 存储器-存储器型向量机 (VMMA) 需要更高的存储器带宽 − All operands must be read in and out of memory • VMMA结构使得多个向量操作重叠执行较困难 − Must check dependencies on memory addresses • VMMA启动时间更长 − CDC Star-100 在向量元素小于100时,标量代码的性能高于向量 化代码 − For Cray-1, vector/scalar 均衡点在2个元素 • CDC Cray-1后续的机器 (Cyber-205, ETA-10) 都是寄存 器型向量机 2021/1/29 计算机体系结构 17
Vector Supercomputers Cray-1的变体(1976) Scalar Unit: Load/ Store Architecture Vector extension Vector Registers Vector instructions Implementation 硬布线逻辑控制 高效流水化的功能部件 多体交叉存储系统 无 Data Cache 不支持 irtual Memory 2021/1/29 计算机体系结构 18
Vector Supercomputers • Cray-1的变体(1976): • Scalar Unit:Load/Store Architecture • Vector Extension − Vector Registers − Vector Instructions • Implementation − 硬布线逻辑控制 − 高效流水化的功能部件 − 多体交叉存储系统 − 无Data Cache − 不支持 Virtual Memory 2021/1/29 计算机体系结构 18
Vector Instruction Set Advantages 格式紧凑 一条指令包含N个操作 ·表达能力强,一条指令能告诉硬件: N个操作之间无相关性 使用同样的功能部件 访问不相交的寄存器 与前面的操作以相同模式访问寄存器 访问存储器中的连续块(unit- stride load/ store) 以已知的模式访问存储器( (strided load/ store) 可扩展性好 可以在多个并行的流水线上运行同样的代码(anes) 2021/1/29 计算机体系结构 19
Vector Instruction Set Advantages • 格式紧凑 − 一条指令包含N个操作 • 表达能力强, 一条指令能告诉硬件: − N个操作之间无相关性 − 使用同样的功能部件 − 访问不相交的寄存器 − 与前面的操作以相同模式访问寄存器 − 访问存储器中的连续块 (unit-stride load/store) − 以已知的模式访问存储器 (strided load/store) • 可扩展性好 − 可以在多个并行的流水线上运行同样的代码 (lanes) 2021/1/29 计算机体系结构 19
DLXV Vector Instructions Instr. Operands Operation Comment ADDv V1, v2, V3 V1=V2+V3 vector vector ADDSv V1,FO, v2 V1=F0+V2 scalar t vector MULTV V1, v2, V3 V1=V2XV3 vectorⅹ vector MULSV V1, FO,V2 V1=FOxV2 scalar x vector LV Ⅵ1,R1 V1=M[R1.R1+63] load stride=1 LVWS V1, R1, R2 V1=MR1.R1 +63*R2] load stride=r2 LVI V1,R1,V2 VI=M[R1+V2i, i =0.63] indir ("gather") Ceq VM, V1, V2 VMASKi=(Vli=v2i)? comp. setmask MOV TLR R1 ec. Len. Reg. =RI set vector length MOV VM, RI Vec Mask= r1 set vector mask 2021/1/29 计算机体系结构
“DLXV” Vector Instructions Instr. Operands Operation Comment • ADDV V1,V2,V3 V1=V2+V3 vector + vector • ADDSV V1,F0,V2 V1=F0+V2 scalar + vector • MULTV V1,V2,V3 V1=V2xV3 vector x vector • MULSV V1,F0,V2 V1=F0xV2 scalar x vector • LV V1,R1 V1=M[R1..R1+63] load, stride=1 • LVWS V1,R1,R2 V1=M[R1..R1+63*R2] load, stride=R2 • LVI V1,R1,V2 V1=M[R1+V2i,i=0..63] indir.("gather") • CeqV VM,V1,V2 VMASKi = (V1i=V2i)? comp. setmask • MOV VLR,R1 Vec. Len. Reg. = R1 set vector length • MOV VM,R1 Vec. Mask = R1 set vector mask 2021/1/29 计算机体系结构 20
向量处理机的基本组成单元 Vector Registe:固定长度的一块区域,存放单个向量 至少2个读端口和一个写端口(一般最少16个读端口,8个写端口) 典型的有8-32向量寄存器,每个寄存器存放64到128个64位元素 Vector functiona/ Units(F全流水化的,每一个 clock启动一个新的操作 一般4到8个FUs: FP add, FP mult, FP reciprocal(1/X), integer add, logica, shift;可能有些重复设置的部件 Vector loaa-Stoeωits(SUs全流水化地load或 store一个向量,可能会配置多个LSU部件 Scalar registers.:存放单个元素用于标量处理或存储地址 用交叉开关连接( Cross-bar)FUs,LSUs, registers 2021/1/29 计算机体系结构
向量处理机的基本组成单元 • Vector Register: 固定长度的一块区域,存放单个向量 − 至少2个读端口和一个写端口(一般最少16个读端口,8个写端口) − 典型的有8-32 向量寄存器,每个寄存器存放64到128个64位元素 • Vector Functional Units (FUs): 全流水化的,每一个 clock启动一个新的操作 − 一般4到8个FUs: FP add, FP mult, FP reciprocal (1/X), integer add, logical, shift; 可能有些重复设置的部件 • Vector Load-Store Units (LSUs): 全流水化地load 或 store一个向量,可能会配置多个LSU部件 • Scalar registers: 存放单个元素用于标量处理或存储地址 • 用交叉开关连接(Cross-bar) FUs , LSUs, registers 2021/1/29 计算机体系结构 21