一种用以进行大整数乘法运算的装置和方法。大整数乘法运算装置包括被乘数暂存器,乘数暂存器,乘法模块,加法模块,进位值储存暂存器以及乘法结果储存暂存器。被乘数暂存器储存包括m个被乘数元素A↓[k]的被乘数数据,k为被乘数元素A↓[k]的序号。乘数暂存器储存包括n个乘数元素B↓[j]的乘数数据,j为乘数元素B↓[j]的序号。乘法模块将被乘数元素A↓[k]与乘数元素B↓[j]相乘,而得到积值A↓[k]B↓[j]。加法模块将积值A↓[k]B↓[j]与右下方乘法结果值R↓[k-1,j+1]及右方进位值C↓[k-1,j]相加,以得到乘法结果值R↓[k,j]与进位值C↓[k,j]。进位值储存暂存器储存进位值C↓[k,j],并提供加法模块右方进位值C↓[k-1,j]。乘法结果储存暂存器储存乘法结果值R↓[k,j],并提供加法模块右下方乘法结果值R↓[k-1,j+1]。
【技术实现步骤摘要】
本专利技术有关于一种大整数乘法运算的装置和方法,特别是 有关于绘图处理单元的大整数乘法运算。
技术介绍
绘图处理单元(Graphic Processing Unit)系用以进行绘图 运算的核心。图l是一 已知绘图处理单元100的区块图。绘图处 理单元100包括一存储器102及一着色模块(Shader Module) 104。存储器102用以储存顶点数据(Vertex data) 112,材质数 据(Texture data ) 114以及最终处理得到的绘图结果数据116。 着色模块104包括一顶点着色(Vertex Shader)模块122, 一几 何着色(Geometry Shader )模块124, 一裁剪处理(Clipping & Setup)才莫块126以及一像素着色(Pixel Shader )才莫块128。首先,顶点数据112与材质数据114经由顶点着色模块122 及几何着色才莫块124转换为屏幕坐标数据(Screen Corodinates )。 接着,裁剪处理模块126依据屏幕坐标数据进行几何图形运算 (Primitive Processing )处理,以将坐标数据转换为以多个孩史小 三角形构成的几何图形。最后,像素着色模块(Pixel Shading Module ) 128将裁剪处理模块126输出的几何图形以像素着色, 而输出最后的绘图结果数据116。在绘图处理单元100中,以输出最终绘图结果数据116的像 素着色模块128为核心,而像素着色模块128需要进行大量的乘 法运算。尤其是像素着色模块128经常进行大整数(Large Integer)的乘法运算。图2为已知像素着色模块进行乘法运算的 示意图。假设像素着色模块欲进行数据A与数据B的乘法运算AxB。被乘数数据A包含一 系列的元素(block),包括箭头200 所指的Am, Am.!, ..., A2, A,等m个元素。乘数数据B亦包含一 系列的元素,包括箭头201所指的Bn, B^, ..., B2, B!等n个元素。于一实施例中,所述元素Am, Am." A2, A,及Bn, Bn-,,...,B2, B为像素区块(block )。数据A与数据B的乘法运算AxB如下进行。首先,以乘数数 据B的元素Bi分别乘上^皮乘数数据A所包含的一 系列的元素 (Am, Am-,,…,A2, AJ,而得到暂存器202中的(AmB。 Am—,B,, A3B,, AzBp A!BJ,其中暂存器202着色部分的值为O,而AkBt的进位值必须加到Ak+1B1(J接着,以乘数数据B 的元素B2分别乘上被乘数数据A所包含的一系列的元素(Am,Am.,,…,A2, AJ,而得到(AmB2, Am.iB2,…,A2B2, A,B2), 并移动一位后储存于暂存器204中,其中暂存器204着色部分的 值为O,而AkB2的进位值必须加到AkwB2。接下来以同样的方式, 分别以乘数数据B的元素B3, ..., Bn.n Bn分别乘上被乘数数据 A所包含的元素(Am, Am",…,A2, Ai),而得到暂存器206,…, 208, 210中的值,其中着色部分的值为O,而AkBn的进位值必须加到Ak+iBn。其中,k为被乘数元素Ak的序号。接着,将暂存器202 210中每一纵列相对应的元素值累加, 以分别得到积AxB对应的元素值Rm + n〗举例来iJi,将^v列221上的各元素(A!B!)相加,而得到积AxB 对应的元素值R"将纵列222上的各元素(A2B!, AiB2)相加, 而得到积AxB对应的元素值R2。将纵列223上的各元素(A3B,, A2B2, A^3)相力卩,而得到积AxB对应的元素值R3。因此,最 终得到包含一系列元素值Rm + n, Rm+",…,R3, R2, Ri的积AxB,其中R針n为由Rm+n-,进位而得。图2的已知乘法运算的复杂度分析如下。在进行AxBi的运算中,共需要进行(mxn)个乘法及(mxn)个加法。当在进 行纵列221, 222, 223等相加总运算时,共需要(n隱l ) x ( n+m ) 个加法。另外,进位运算共需nx ( n+m)次加法。因此,图2 的已知乘法运算总共需要(m x n )次乘法及(2n2+3 mn-m-n J 次 加法。这是非常大的运算量。由于像素着色模块128需要频繁的 执行大量的大整数乘法运算,而同时图2的已知乘法运算的复杂 度很高,会造成绘图处理单元100很大的负荷。因此,需要一种 复杂度低的大整数乘法运算,以降低像素着色模块及绘图处理 单元的运算负荷量。
技术实现思路
有鉴于此,本专利技术的目的在于提供一种乘法运算装置,以 解决已知技术存在的问题。于一实施例中,该乘法运算装置包 括一被乘数暂存器, 一乘数暂存器, 一乘法模块, 一加法模块, 一进位值储存暂存器以及一乘法结果储存暂存器。该被乘数暂 存器储存包括m个被乘数元素Ak的 一被乘数数据,其中k为被乘 数元素Ak的序号。该乘数暂存器储存包括n个乘数元素B」的一乘 数数据,其中j为乘数元素Bj的序号。该乘法模块将该被乘数元 素Ak与该乘数元素Bj相乘,而得到一积值AkBj。该加法才莫块将 该积值AkBj与 一 右下方乘法结果值Rkd,jH及 一 右方进位值Ck.,,j 相加,以得到一乘法结果值Rk, j与一进位值Ckj。该进位值储存 暂存器储存该进位值C k, j,并提供该加法模块该右方进位值 Cw,j。该乘法结果储存暂存器储存该乘法结果值Rk, j,并提供 该加法^f莫块该右下方乘法结果值RiM,jw 。本专利技术亦提供一种进行大整数乘法运算的方法。首先以一 被乘数暂存器储存包括m个被乘数元素Ak的一被乘数数据,其 中k为被乘数元素Ak的序号。接着以 一乘数暂存器储存包括n个乘数元素Bj的一乘数数据,其中j为乘数元素Bj的序号。接着将 该被乘数元素Ak与该乘数元素Bj相乘,而得到一积值AkBj。接 着将该积值A k B j与 一 右下方乘法结果值Rk i,j + i及 一 右方进位值 Ck-j,j相加,以得到一乘法结果值Rk, j与一进位值Ck,j。接着以一 进位值储存暂存器储存该进位值Ck,j并提供该右方进位值Ck-,,j。 接着以 一乘法结果储存暂存器储存该乘法结果值Rk, j并提供该 右下方乘法结果值Rk-i,j+,。本专利技术所述的,有 较已知技术高的运算能力与较已知技术快的数据处理效率。附图说明图i为一已知《会图处理单元的区块图;图2为已知像素着色模块进行乘法运算的示意图;图3为依据本专利技术进行乘法运算的示意图;图4为依据本专利技术的进行乘法运算的装置的区块图;图5为依据本专利技术的乘法结果值Rk,j形成的乘法结果值阵列;图6显示依据本专利技术的乘法结果暂存器与进位值暂存器。具体实施方式为了让本专利技术的上述和其他目的、特征和优点能更明显易 懂,下文特举数较佳实施例,并配合所附图示,作详细说明如 下。图3为依据本专利技术进行大整数乘法运算的示意图。假设像素 着色模块欲进行数据A与数据B的乘法运算AxB。被乘数数据A 包含一系列的元素(block),包括Am, Am",…,A2, A!等m个元素。乘数数据B亦包含一系列的元素,包括Bn本文档来自技高网...
【技术保护点】
一种大整数乘法运算装置,其特征在于,包括: 一被乘数暂存器,储存包括m个被乘数元素A↓[k]的一被乘数数据,其中k为被乘数元素A↓[k]的序号; 一乘数暂存器,储存包括n个乘数元素B↓[j]的一乘数数据,其中j为乘数元素B↓[j]的序号; 一乘法模块,将该被乘数元素A↓[k]与该乘数元素B↓[j]相乘,而得到一积值A↓[k]B↓[j]; 一加法模块,将该积值A↓[k]B↓[j]与一右下方乘法结果值R↓[k-1,j+1]及一右方进位值C↓[k-1,j]相加,以得到一乘法结果值R↓[k,j]与一进位值C↓[k,j]; 一进位值储存暂存器,储存该进位值C↓[k,j],并提供该加法模块该右方进位值C↓[k-1,j];以及 一乘法结果储存暂存器,储存该乘法结果值R↓[k,j],并提供该加法模块该右下方乘法结果值R↓[k-1,j+1]。
【技术特征摘要】
【专利技术属性】
技术研发人员:张国峰,
申请(专利权)人:威盛电子股份有限公司,
类型:发明
国别省市:71[中国|台湾]
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。