- 1、本文档共71页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
6.1 向量数据表示方式
6.2 向量处理机的结构
6.3 向量处理方式
6.4 向量处理机的关键技术
6.5 向量处理机实例
6.6 向量处理机的性能评价
6.7 向量处理机的发展;具有向量数据表示和向量指令系统的处理机
向量处理机是解决数值计算问题的一种高性能计算机
向量处理机属大型或巨型机,也可以用微机加一台向量协处理器组成
向量处理机一般都采用流水线结构,通常有有多条并行工作的流水线
必须把要解决的问题转化为向量运算,才能发挥向量处理机的效率;6.1 向量数据表示方式;例6.1:一个简单的C语言程序如下: for (i = 10; i = 1010; i++) c[i] = a[i] + b[i+5] ;
在向量处理机上, 可以只用一条指令:C(10:1010)=A(10:1010) + B(15 :1015)一条向量指令可处理N个或N对操作数
在标量处理机上用10多条指令,其中有8条指令要循环1000次。
采用多寄存器结构的两地址指令编写??序
存储器采用字节编址方式,字长为32位;在一般标量处理机中需要如下指令序列来实现(A、B、C分别是向量a、b、c在内存中的起始地址):; LOAD R5, B(R3) ;读B向量的一个元素
ADD R4, R5 ;加一个元素
STORE R4, C(R3) ;写C向量的一个元素
ADD R3, R2 ;改变向量偏移量
INC R0 ;循环次数增1
CMP R0, R1 ;循环是否结束
BLE LOOP ;循环未结束转LOOP, ;否则继续
HALT ;停机
ST: 10 ;循环初值
ED: 1010 ;循环终值
L: 4 ;内存地址增量;三个参数表示一个等间距向量:
向量起始地址:A
向量长度:L
向量间距:f;例如:我国研制的银河向量机,有8个向量寄存器V0~V7,每个向量寄存器由64个64位的寄存器组成,存储器字长64位,采用字节编址方式,则连续向量的间距为 f=8。向量指令采用三地址形式:
例如:Vi ? Vj OP Vk,向量长度(VL)= 50,则实际完成的运算是:
V3,00~V3,49与V5,00~V5,49分别相加,
结果放在V1,00~V1,49中。;6.1.3 带位移量的向量表示法; 带位移量的向量表示法;Date;Date;6.1.4 稀疏向量表示法;Date;6.2 向量处理机的结构;1. 存储器-存储器结构
向量处理机中有多个高速流水线运算部件,
存储器的访问速度是关键
采用多个存储体交叉和并行访问来提高存
储器速度
例如:CRAY-1有64个存储体,每个处理机访问4个存储体 STAR-100采用32个存储体交叉,每个存储体并行读出8个64位数据 我国研制的YH-1向量计算机有37个存储体; 操作数缓冲栈和写结果缓冲栈主要用于解决访问存储器冲突。虽然采用质数个存储体能消除访问存储器的冲突,但是,数据经过多次运算之后,在存储体中分布必然发生改变
主要优缺点: 硬件结构简单, 造价低;速度相对较低;2. 寄存器-寄存器结构
把存储器-存储器结构中的缓冲栈改为向量
寄存器
运算部件需要的操作数从向量寄存器中读取,
运算的中间结果也写到向量寄存器中。
向量寄存器与标量寄存器的主要差别是: 一个向量寄存器能够保存一个向量,
连续访问一个向量的各个分量。
需要有标量寄存器和地址寄存器等。; 采用寄存器-寄存器结构的主要优点:
降低主存储器的流量 例如:采用寄存器-寄存器结构的CRAY-1与采用存储器-存储器结构的STAR-100比较,
运算速度高3倍多,
而主存流量低2.5倍。;8个向量寄存器
8×64×64;有三种处理方式:
横向处理方式,又称为水平处理方式,横向加工方式等。向量计算是按行的方式从左至右横向地进行。
纵向处理方式,又称为垂直处理方式,纵向加工方式等。向量计算是按列的方式自上而下纵向地进行。
纵横处理方式,又称为分组处理方式,纵横向加工方式等。横向处理和纵向处理相结合的方式。;要根据向量运算的特点和向量处理机的类型选择向量的处理方式。
以一个简单的C语言编写的程序为例,说明向量的三种处理方式的工作原理。
for (i = 1;i = n;i++) y[i] = a[i]
文档评论(0)