向量处理机的基本特性 基本思想:两个向量的对应分量进行运算,产生一个结果向量。 简单的一条向量指令包含了多个操作=> ewer instruction fetches 每一结果独立于前面的结果 ·长流水线,编译器保证操作间没有相关性 ·硬件仅需检测两条向量指令间的相关性 较高的时钟频率 ·向量指令以已知的模式访问存储器 可有效发挥多体交叉存储器的优势 可通过重叠减少存储器操作的延时64 elements 不需要数据 Cache!(仅使用指令 cache) ·在流水线控制中减少了控制相关 2021/2/1 计算机体系结构 12
向量处理机的基本特性 • 基本思想:两个向量的对应分量进行运算,产生一个结果向量。 • 简单的一条向量指令包含了多个操作=> fewer instruction fetches • 每一结果独立于前面的结果 • 长流水线,编译器保证操作间没有相关性 • 硬件仅需检测两条向量指令间的相关性 • 较高的时钟频率 • 向量指令以已知的模式访问存储器 • 可有效发挥多体交叉存储器的优势 • 可通过重叠减少存储器操作的延时 64 elements • 不需要数据Cache! (仅使用指令cache) • 在流水线控制中减少了控制相关 2021/2/1 计算机体系结构 12
向量处理机的基本结构 memory- memory vector processors:所有的向 量操作是存储器到存储器 vector-register processors:除了load和 Istore操 作外,所有的操作是向量寄存器与向量寄存 器间的操作 向量机的Load/ Store结构 1980年以后的所有的向量处理机都是这 种结构: Cray, Convex, Fujitsu, Hitachi, neC ·我们也主要针对这种结构 2021/2/1 计算机体系结构 13
向量处理机的基本结构 • memory-memory vector processors: 所有的向 量操作是存储器到存储器 • vector-register processors: 除了load 和store操 作外,所有的操作是向量寄存器与向量寄存 器间的操作 • 向量机的Load/Store结构 • 1980年以后的所有的向量处理机都是这 种结构: Cray, Convex, Fujitsu, Hitachi, NEC • 我们也主要针对这种结构 2021/2/1 计算机体系结构 13
Vector Memory-Memory versus Vector Register Machines ·存储器-存储器型向量机所有指令操作的操作数来源于存储器 第一台向量机 CDC Star-100(73) and tiao(71),是存储器-存储 器型机器 ·cray-1(76)是第一台寄存器型向量机 Vector Memory-Memory Code Example Source Code ADDV CA, B for(=0;i<;i++) SUBV D A B C[i]=A[i]+B[i]; Vector Register Code D[i]=A[i]-B[i]; IV VI A LV V2 B AddV V3, V1 V2 sv V3, C 2021/2/1 计算机体系结构 SUBV V4, V1 V2 14
Vector Memory-Memory versus Vector Register Machines • 存储器-存储器型向量机所有指令操作的操作数来源于存储器 • 第一台向量机 CDC Star-100 (‘73) and TI ASC (‘71), 是存储器-存储 器型机器 • Cray-1 (’76) 是第一台寄存器型向量机 14 for (i=0; i<N; i++) { C[i] = A[i] + B[i]; D[i] = A[i] - B[i]; } Example Source Code ADDV C, A, B SUBV D, A, B Vector Memory-Memory Code LV V1, A LV V2, B ADDV V3, V1, V2 SV V3, C SUBV V4, V1, V2 SV V4, D Vector Register Code 2021/2/1 计算机体系结构
Vector Memory-Memory vs Vector Register Machines 存储器-存储器型向量机MMA)需要更高的存储器 带宽 All operands must be read in and out of memory ·ⅥMMA结构使得多个向量操作重叠执行更困难 Must check dependencies on memory addresses VMMA启动时间更长 · CDC Star-100在向量元素小于100时,标量代码的性能高于 向量化代码 For cray-1, vector/ scalar均衡点在2个元素 CDC Cray1后续的机器( Cyber205,ETA-10)都是寄存 器型向量机 2021/2/1 计算机体系结构
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/2/1 计算机体系结构 15
向量处理机的基本组成单元 vector Register:固定长度的一块区域,存放单个向量 ·至少2个读端口和一个写端口(一般最少16个读端口,8个写 端口) 典型的有8-32向量寄存器,每个寄存器存放64到128个64位的 元素 Vector Functional Units (FUs:全流水化的,每一个cock启 动一个新的操作 一般4到8个FUs:FPad, 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/2/1 计算机体系结构 16
向量处理机的基本组成单元 • 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/2/1 计算机体系结构 16