CN101794276B - 适用于soc的dct_idct协处理器 - Google Patents

适用于soc的dct_idct协处理器 Download PDF

Info

Publication number
CN101794276B
CN101794276B CN2010101349435A CN201010134943A CN101794276B CN 101794276 B CN101794276 B CN 101794276B CN 2010101349435 A CN2010101349435 A CN 2010101349435A CN 201010134943 A CN201010134943 A CN 201010134943A CN 101794276 B CN101794276 B CN 101794276B
Authority
CN
China
Prior art keywords
module
idct
dct
computing
coprocessor
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Fee Related
Application number
CN2010101349435A
Other languages
English (en)
Other versions
CN101794276A (zh
Inventor
孙进军
周毅
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Dongguan Runfeng Electronic Science and Technology Co., Ltd.
Original Assignee
WUXI ZHIXIN TECHNOLOGIES Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by WUXI ZHIXIN TECHNOLOGIES Co Ltd filed Critical WUXI ZHIXIN TECHNOLOGIES Co Ltd
Priority to CN2010101349435A priority Critical patent/CN101794276B/zh
Publication of CN101794276A publication Critical patent/CN101794276A/zh
Application granted granted Critical
Publication of CN101794276B publication Critical patent/CN101794276B/zh
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Advance Control (AREA)

Abstract

本发明提供了一种适用于SOC的DCT_IDCT协处理器,由CP_BRIDGE模块、RAM模块、控制和状态寄存器、DCT_IDCT二维运算模块、DCT_IDCT一维运算模块、输入缓存、输出缓存、clip运算模块及add运算模块组成。本发明直接和CPU的协处理器接口相连,不需要额外挂接在AHB或APB总线上,在一定程度上节省了系统的总线资源;有一块用于存放待处理数据和处理结果的RAM,该RAM能够和其它协处理器复用。本发明通过合理的复用乘法器和调节运算的周期数,使得本发明具有面积小、速度快、功耗低等优点。

Description

适用于SOC的DCT_IDCT协处理器
技术领域
本发明涉及DCT_IDCT协处理器,尤其涉及适用于采用ARM核的SOC的DCT_IDCT协处理器。 
背景技术
在电子产品飞速发展的今天,对视频处理的速度提出了更高的要求,其中一种提高视频处理速度的方法就是视频压缩技术,DCT_IDCT(离散余弦变换及其逆变换)算法在视频压缩领域又占有很高的地位。 
纯软件的DCT_IDCT算法实现在性能上要差很多,为了提高DCT_IDCT运算的速度,在SOC(System on Chip,片上系统)芯片中通常需要设计专门的硬件加速电路,以纯硬件或软硬结合的方式来缩短运算时间。 
纯硬件或软硬件结合的DCT_IDCT实现方法具备较高的性能,但在实际的应用场合,通常要求用于实现DCT_IDCT算法的电路规模不能太大,功耗也有一定要求。现有的DCT_IDCT协处理器效率低、规模大、功耗高,因此并不能很好的解决运算速度、占用面积、功耗这三方面的问题。 
发明的内容 
针对现有DCT_IDCT协处理器的上述不足,申请人经过研究改进,提供另一种适用于SOC的DCT_IDCT协处理器,很好的解决了运算速度、占用面积、功耗三方面的问题。 
本发明的技术方案如下: 
一种适用于SOC的DCT_IDCT协处理器,挂接在CPU的协处理器端口,结构如下: 
CP_BRIDGE模块,与CPU的协处理器端口、RAM模块及控制和状态寄存器连接,用于将CPU的协处理器端口的时序转换为较简单的易于集成的接口时序; 
RAM模块,与CP_BRIDGE模块、输入缓存、输出缓存、clip9运算模块、add运算模块及clip8运算模块连接,用于存放数据; 
控制和状态寄存器,与CP_BRIDGE模块连接,用于储存控制指令和状态 数据; 
DCT_IDCT一维运算模块,与输入缓存、输出缓存连接,用于进行行或列的一维DCT_IDCT运算; 
输入缓存,与RAM模块及DCT_IDCT一维运算模块连接,用于将行数据和列数据传输到DCT_IDCT一维运算模块; 
输出缓存,与RAM模块及DCT_IDCT一维运算模块连接,用于将经过运算的行数据和列数据写回到RAM模块; 
clip9运算模块,与RAM模块及add运算模块连接,用于将运算结果规范到-256~255范围之内,即运算结果保存9个二进制位; 
add运算模块,与clip9运算模块及clip8运算模块连接,用于在IDCT的结果上加上一个输入的差值; 
clip8运算模块,与RAM模块及add运算模块连接,用于将运算结果规范到0~255范围之内,即运算结果保存8个二进制位; 
所述控制和状态寄存器、DCT_IDCT一维运算模块、输入缓存、输出缓存、clip9运算模块、add运算模块及clip8运算模块一起构成DCT_IDCT二维运算模块,用于进行二维DCT_IDCT运算,可选择DCT或IDCT运算,并且可根据要求对结果进行clip和add运算。 
本发明的有益技术效果是: 
(1)本发明实现流水线操作,整个二维DCT_IDCT运算过程可以分为以下三步:从RAM中读取待处理的行或列、行或列的一维DCT_IDCT运算、运算完的行或列写回到RAM中,以上三个步骤实现流水线操作,大大提高了协处理器运算的速度。 
(2)本发明的DCT_IDCT运算通过内部乘法器的复用来减小整个协处理器设计的逻辑规模,即减小芯片面积。本发明采用LLM算法作为DCT与IDCT变换运算的算法基础,LLM算法是由Loeffler提出的一种新的8X8点的DCT/IDCT算法,该算法只需要11个乘法,29个加法就能完成一维8位DCT运算。如果在实际应用中设计11个乘法器,这样整个设计的逻辑规模就会很大,在实际应用中并不可取。本发明在保证运算速度可以被接受的前提下尽量减少乘法器的个数,对少量的乘法器进行分时复用,来减小整个协处理器的逻辑规模。 
 (3)本发明直接挂接在ARM的协处理器端口上,ARM核可以直接通过MRC、MCR、LDC和STC指令访问本发明。不需要额外挂接在AHB或APB总线上,在一定程度上节省了系统的总线资源 
(4)本发明专用的CP_BRIDGE模块用于对ARM核的协处理器端口时序进行转换,使到达外部协处理器端口的时序变得十分简单,有利于以后更方便的扩展协处理器的个数。 
(5)本发明可以通过写控制寄存器,选择在DCT_IDCT运算完成后是否对运算的结果进行clip或add运算。clip和add运算完成后也会在状态寄存器中置起相应的标志位,通知CPU读取运算的结果。 
(6)本发明对功耗有比较合理的控制。当系统不需要使用本发明时,可以将整个协处理器的时钟关闭以减少功耗;当本发明工作时,需要访问RAM模块时,RAM模块的时钟使能才被打开,否则RAM模块的时钟使能会被关闭,也能够减少RAM模块的功耗。 
附图说明
图1是本发明的结构框图。 
具体实施方式
以下结合附图,通过实施例对本发明进行具体说明。 
在DCT_IDCT运算之前,通常需要CPU传递参数给DCT_IDCT协处理器,然后通过LDC指令装入数据,当数据装入完成后协处理器启动运算;运算结束时,协处理器将运算的结果存入其内部的RAM模块中,当CPU通过轮询方式得知运算结束后,CPU再通过STC指令将运算结果读出。 
由此可见,DCT_IDCT加速算法的效率取决于以下3项:1、CPU向协处理器装入数据的速度;2、协处理器运算的速度;3、CPU从协处理器中读出运算结果的速度。 
由于第1、第3两项是通过LDC和STC指令实现的,这两个指令执行的速度一般不可由硬件控制,所以本发明旨在提高第2项的速度,但又由于本发明不能占用太大的逻辑电路,所以在面积和功耗方面也需要考虑。 
如图1所示,本发明直接挂接在CPU 11(本实施例中为ARM核,AdvancedRISC Machines公司出品的一类微处理器的通称)的协处理器端口,其由CP_BRIDGE模块1、RAM模块2、控制和状态寄存器3、DCT_IDCT一维运算模块5、输入缓存4、输出缓存6、clip9运算模块7、add运算模块8、clip8运算模块9组成。其中,控制和状态寄存器3、DCT_IDCT一维运算模块5、输入缓存4、输出缓存6、clip9运算模块7、add运算模块8及clip8运算模块9一起构成DCT_IDCT二维运算模块10。
下面对各部分进行详细说明: 
CP_BRIDGE模块1,与CPU 11的协处理器端口、RAM模块2及控制和状态寄存器3连接,用于将CPU 11的协处理器端口的时序转换为比较简单的易于集成的接口时序。CP_BRIDGE模块1可以支持多个协处理器,本实施例中CP_BRIDGE模块1可支持四个协处理器的接口,因此CP_BRIDGE模块1可以最多挂接4个协处理器。 
RAM模块2,与CP_BRIDGE模块1、输入缓存4、输出缓存6、clip9运算模块7、add运算模块8及clip8运算模块9连接,用于存放数据。本实施例中RAM模块2为双端口RAM,整个二维DCT_IDCT运算过程可以分为以下三步:从RAM模块2中读取待处理的行或列、行或列的一维DCT_IDCT运算、运算完的行或列写回到RAM模块2中,以上三个步骤实现流水线操作,即三个步骤同时发生,这样大大提高了整个运算的速度。系统中接多个协处理器时,其他协处理器可以共用RAM模块2,其端口可以通过多路选择器进行选择哪一个协处理器访问RAM模块2,在一定程度上节省了系统资源。 
控制和状态寄存器3,与CP_BRIDGE模块1连接,用于储存控制指令和状态数据。 
DCT_IDCT一维运算模块5,与输入缓存4、输出缓存连接6,用于进行行或列的一维DCT_IDCT运算。在考虑整个设计所占用的逻辑规模时,本实施例的设计方案是在DCT_IDCT一维运算模块5内部只设计两个乘法器模块,通过对这两个乘法器的分时复用来实现一维DCT_IDCT运算的11个乘法运算。(本发明采用LLM算法作为DCT与IDCT变换运算的算法基础,LLM算法是由Loeffler提出的一种新的8X8点的DCT/IDCT算法,该算法只需要11个乘法,29个加法就能完成一维8位DCT运算)。 
输入缓存4,与RAM模块2及DCT_IDCT一维运算模块5连接,用于将行数据和列数据传输到DCT_IDCT一维运算模块5。 
输出缓存6,与RAM模块2及DCT_IDCT一维运算模块5连接,用于将经过运算的行数据和列数据写回到RAM模块2。 
clip9运算模块7,与RAM模块2及add运算模块8连接,用于将运算结果规范到-256~255范围之内,即运算结果保存9个二进制位。 
add运算模块8,与clip9运算模块7及clip8运算模块9连接,用于在IDCT的结果上加上一个输入的差值。 
clip8运算模块9,与RAM模块2及add运算模块8连接,用于将运算结果规范到0~255范围之内,即运算结果保存8个二进制位。 
chip9-add-chip8这三个运算是顺序执行的,即先选择是否进行clip9运算,然后选择是否进行add运算,最后选择是否进行clip8运算。 
上述控制和状态寄存器3、DCT_IDCT一维运算模块5、输入缓存4、输出缓存6、clip9运算模块7、add运算模块8及clip8运算模块9一起构成DCT_IDCT二维运算模块10。用于进行二维DCT_IDCT运算,可以选择DCT或IDCT运算,并且可以根据要求对结果进行clip和add运算。二维DCT_IDCT运算总共处理8*8的数据矩阵,一次二维运算可以分为16次一维运算。考虑到乘法器的运算速度和整个运算的精度要求,一维DCT_IDCT运算的中间变量设置为20bit位宽,这样在精度上软件应用也可以接受。 
图1中的CPU11仅供示意,不属于本发明。CPU9可以通过其自身的协处理器端口访问本发明,CPU11通过MRC和MCR指令对本发明的控制和状态寄存器3进行访问。通过写本发明的寄存器,让本发明运算完成后对结果进行clip或add运算,并且CPU11可以通过查询状态寄存器来判断本发明内部的运算是否完成。CPU11可以通过LDC指令将待处理的数据写入到本发明的RAM模块2中或通过STC将处理完的数据从RAM模块2中读出。 
上述各电路模块均为市售商品,其连接方式及工作过程均采用现有技术。 
上述MRC、MCR、LDC及STC指令均为常规ARM指令,关于这些内容,在ARM的技术手册中均能找到。 
以上所述的仅是本发明的优选实施方式,本发明不限于以上实施例。可以理解,本领域技术人员在不脱离本发明的精神和构思的前提下,可以做出其他改进和变化。 

Claims (1)

1.一种适用于SOC的DCT_IDCT协处理器,挂接在CPU的协处理器端口,其特征在于结构如下:
CP_BRIDGE模块,与CPU的协处理器端口、RAM模块及控制和状态寄存器连接,用于将CPU的协处理器端口的时序转换为较简单的易于集成的接口时序;
RAM模块,与CP_BRIDGE模块、输入缓存、输出缓存、clip9运算模块、add运算模块及clip8运算模块连接,用于存放数据;
控制和状态寄存器,与CP_BRIDGE模块连接,用于储存控制指令和状态数据;
DCT_IDCT一维运算模块,与输入缓存、输出缓存连接,用于进行行或列的一维DCT_IDCT运算;
输入缓存,与RAM模块及DCT_IDCT一维运算模块连接,用于将行数据和列数据传输到DCT_IDCT一维运算模块;
输出缓存,与RAM模块及DCT_IDCT一维运算模块连接,用于将经过运算的行数据和列数据写回到RAM模块;
clip9运算模块,与RAM模块及add运算模块连接,用于将运算结果规范到-256~255范围之内,即运算结果保存9个二进制位;
add运算模块,与clip9运算模块及clip8运算模块连接,用于在IDCT的结果上加上一个输入的差值;
clip8运算模块,与RAM模块及add运算模块连接,用于将运算结果规范到0~255范围之内,即运算结果保存8个二进制位;
所述控制和状态寄存器、DCT_IDCT一维运算模块、输入缓存、输出缓存、clip9运算模块、add运算模块及clip8运算模块一起构成DCT_IDCT二维运算模块,用于进行二维DCT_IDCT运算,可选择DCT或IDCT运算,并且可根据要求对结果进行clip和add运算。
CN2010101349435A 2010-03-30 2010-03-30 适用于soc的dct_idct协处理器 Expired - Fee Related CN101794276B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN2010101349435A CN101794276B (zh) 2010-03-30 2010-03-30 适用于soc的dct_idct协处理器

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN2010101349435A CN101794276B (zh) 2010-03-30 2010-03-30 适用于soc的dct_idct协处理器

Publications (2)

Publication Number Publication Date
CN101794276A CN101794276A (zh) 2010-08-04
CN101794276B true CN101794276B (zh) 2012-06-06

Family

ID=42586980

Family Applications (1)

Application Number Title Priority Date Filing Date
CN2010101349435A Expired - Fee Related CN101794276B (zh) 2010-03-30 2010-03-30 适用于soc的dct_idct协处理器

Country Status (1)

Country Link
CN (1) CN101794276B (zh)

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102737270B (zh) * 2011-04-15 2015-11-18 航天信息股份有限公司 一种基于国产算法的银行智能卡芯片安全协处理器
CN103034893B (zh) * 2011-09-29 2017-02-08 航天信息股份有限公司 射频卡芯片安全协处理器及电子标签读写器
CN111787320B (zh) * 2020-07-03 2022-02-08 北京博雅慧视智能技术研究院有限公司 一种变换编码系统和方法

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101646080A (zh) * 2009-06-18 2010-02-10 杭州高特信息技术有限公司 基于avs并行流水idct快速变换的方法和装置
CN201607728U (zh) * 2010-03-30 2010-10-13 无锡致新电子科技有限公司 适用于soc的dct_idct协处理器

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101646080A (zh) * 2009-06-18 2010-02-10 杭州高特信息技术有限公司 基于avs并行流水idct快速变换的方法和装置
CN201607728U (zh) * 2010-03-30 2010-10-13 无锡致新电子科技有限公司 适用于soc的dct_idct协处理器

Also Published As

Publication number Publication date
CN101794276A (zh) 2010-08-04

Similar Documents

Publication Publication Date Title
CN107679621B (zh) 人工神经网络处理装置
CN107679620B (zh) 人工神经网络处理装置
CN107301455B (zh) 用于卷积神经网络的混合立方体存储系统及加速计算方法
US11544191B2 (en) Efficient hardware architecture for accelerating grouped convolutions
CN107392309A (zh) 一种基于fpga的通用定点数神经网络卷积加速器硬件结构
CN107657581A (zh) 一种卷积神经网络cnn硬件加速器及加速方法
CN103970720B (zh) 基于大规模粗粒度嵌入式可重构系统及其处理方法
CN108388527B (zh) 直接存储器存取引擎及其方法
CN102208005A (zh) 一种2-d卷积器
JP7261226B2 (ja) 演算処理装置
US20220179823A1 (en) Reconfigurable reduced instruction set computer processor architecture with fractured cores
CN103336672B (zh) 数据读取方法、装置及计算设备
JPS63136167A (ja) 直交変換プロセッサ
CN114399035A (zh) 搬运数据的方法、直接存储器访问装置以及计算机系统
US12106201B2 (en) Reconfigurable hardware buffer in a neural networks accelerator framework
CN103760525A (zh) 一种补齐式原地矩阵转置方法
CN101794276B (zh) 适用于soc的dct_idct协处理器
CN104679670A (zh) 一种面向fft和fir的共享数据缓存结构及管理方法
CN117435251A (zh) 一种后量子密码算法处理器及其片上系统
CN112231625A (zh) 一种基于混合基算法的fft处理器及其工作方法
CN103455367A (zh) 用于实现可重构系统中多任务调度的管理单元和方法
CN201607728U (zh) 适用于soc的dct_idct协处理器
CN101236488B (zh) 协同分布式的处理方法及装置
CN105718421B (zh) 一种面向多个粗粒度动态可重构阵列的数据缓存更新系统
CN114265801A (zh) 一种通用、可配置的高能效池化计算多行输出方法

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C14 Grant of patent or utility model
GR01 Patent grant
ASS Succession or assignment of patent right

Owner name: WUXI ALPSCALE INTEGRATED CIRCUITS CO., LTD.

Free format text: FORMER OWNER: WUXI ZHIXIN ELECTRONIC TECHNOLOGY CO., LTD.

Effective date: 20140305

TR01 Transfer of patent right

Effective date of registration: 20140305

Address after: 2, building 214028, building F, Information Technology Industrial Park, 21 Changjiang Road, Wuxi New District, Jiangsu, China

Patentee after: Wuxi Alpscale Integrated Circuits Co., Ltd.

Address before: 1104 room 21-1, 214028 Changjiang Road, New District, Jiangsu, Wuxi, China

Patentee before: Wuxi Zhixin Technologies Co., Ltd.

TR01 Transfer of patent right
ASS Succession or assignment of patent right

Owner name: DONGGUAN RUNFENG ELECTRONIC SCIENCE AND TECHNOLOGY

Free format text: FORMER OWNER: WUXI ALPSCALE INTEGRATED CIRCUITS CO., LTD.

Effective date: 20150319

C41 Transfer of patent application or patent right or utility model
COR Change of bibliographic data

Free format text: CORRECT: ADDRESS; FROM: 214028 WUXI, JIANGSU PROVINCE TO: 523000 DONGGUAN, GUANGDONG PROVINCE

TR01 Transfer of patent right

Effective date of registration: 20150319

Address after: 523000 Guangdong city of Dongguan province Dongguan Songshan Lake Science and Technology Industrial Park Building No. 8 Room 303 Keyuan pine

Patentee after: Dongguan Runfeng Electronic Science and Technology Co., Ltd.

Address before: 2, building 214028, building F, Information Technology Industrial Park, 21 Changjiang Road, Wuxi New District, Jiangsu, China

Patentee before: Wuxi Alpscale Integrated Circuits Co., Ltd.

CF01 Termination of patent right due to non-payment of annual fee

Granted publication date: 20120606

Termination date: 20160330

CF01 Termination of patent right due to non-payment of annual fee