外文期刊翻译.docx
- 文档编号:30630572
- 上传时间:2023-08-18
- 格式:DOCX
- 页数:16
- 大小:446.45KB
外文期刊翻译.docx
《外文期刊翻译.docx》由会员分享,可在线阅读,更多相关《外文期刊翻译.docx(16页珍藏版)》请在冰豆网上搜索。
外文期刊翻译
毕业设计(论文)译文
题目名称:
单芯片多处理器DSP的性能分析优化
学院名称:
电子信息学院
班级:
测控091班
学号:
200900454113
学生姓名:
王伟杰
指导教师:
常静
2013年02月
单芯片多处理器DSP的性能分析优化
德州仪器金继红华盛顿大学金永民
摘要
为了实现最大性能、单片机多处理器dsp需要复杂的性能监控工具作为MVP性能监控。
使用MPM,程序员可以很容易有效地分析和优化DSP应用程序。
关键词:
DCT系统,Dsp,
支持性能监控和调优的复杂平行数字系统长期以来一直是一个活跃的研究领域。
在近年来,一直强调绩效评价大规模的并行程序。
例如,许多性能工具已经开发为调优并行程序在共享内存多处理器或分布式系统。
在本文中,我们讨论的性能监控和调优为小得多的平行架构:
单片机多处理器数字信号处理器。
为了满足重计算需求的新兴多媒体应用程序处理现实世界的数据类型,例如视频和声音,一个新一代高性能可编程dsp一直发达。
这些需求方有一个高度集成的平行架构,将专用硬件特性,大型芯片上的内存,和多个处理器到一个单一的芯片。
图1
这个芯片上的内存、I/O控制器,和处理元素通过一个互连网络连接(示例、共享的公共汽车或一个纵横开关网络)。
由于大型在多媒体应用程序的数据需求,数据传输的I/O控制器发生在与数据处理的PEs,从而改善总体性能。
大多数高性能dsp,如模拟设备以adsp-21060超级哈佛架构(Sharc)DSP,摩托罗拉DSP96002处理器、和德州仪器TMS320C80多媒体视频处理器(MVP)、属于这个建筑的家庭。
开发高效的DSP程序单片机多处理器DSP需要一个好的理解不仅算法和DSP的而且整个系统的复杂性程序的行为。
没有系统性能的理解,DSP程序可以遭受各种性能瓶颈,如资源冲突和不平衡的同步。
这个额外的开销可能极大地降低程序的整体性能。
不幸的是,这个瓶颈通常是很难预测的和识别,即使对经验丰富的DSP程序员。
由于dsp主要用于实现高性能、单片机多处理器dsp需要性能监视工具。
一个性能监视工具dsp必须满足在dsp特定需求和支持性能参数构成的需求方。
MVP的性能监视器,它是“透明国际”的MVP,是这样的工具。
演示MPM的有效性,我们使用它来分析和优化一个二维离散余弦变换(DCT)实现。
用来处理数字信号的性能监视工具
一般而言,有四个性能的仪表级别:
硬件、系统软件,运行时系统软件,和应用程序代码。
7然而,目标应用程序代码通常执行的正上方,在DSPbased硬件系统,没有多少系统软件或运行时系统支持减少开销。
因此,更多信息从硬件和应用水平有必要进一步提高性能的DSP应用程序。
根据不同的机制,用来收集性能数据,一个性能监视工具可以分类作为一个基于硬件的监视器或基于软件的监控。
一种基于硬件的性能检测显示器分开电路包含几个硬件计数器附加到一个事件检测和激活逻辑模块。
选择监视的事件由软件控制的。
一个性能计数器递增每当一个事件关联到一个计数器发生。
基于硬件的监测是最适合的收集硬件性能数据(例如,指令执行速度和缓存命中率)的现实时间。
详细的硬件性能信息有用的理解底层的行为和交互程序运行在目标系统。
因为单独的硬件逻辑是专用于性能监控,基于硬件的监视器不引人注目的(也就是说,性能监视介绍没有扰动的行为的监控应用程序)和收集准确的性能数据。
然而,收集的高级信息一般较困难,除非部分的监测已经明确用来收集这些信息。
性能监视是支持更多情况下的软件工具。
这种方法修改应用程序项目将仪器代码,收集性能数据在程序执行期间。
工具代码是手动插入通过修改程序,或者是自动添加的代码生成工具使用他们的分析特性。
通常,基于软件的监控措施原始水平活动,如过程创建和销毁,消息的发送和接收,程序进入和退出,并阻塞和分块的调度器。
软件工具允许比是否基于硬件的更灵活的和富裕的环境性能监视方法。
然而,因为监视的应用程序包括仪表代码,性能监视机制可以扰乱应用程序的行为。
这侵袭性的数据收集机制可以减少的准确性收集性能数据。
对基于dsp的性能优化,没有硬件或软件方法是足够的。
在DSP应用,小的代码段(示例中,一个单一过程的一部分)通常主导整体性能。
对于这些领域,软件工具点是不容易定义的,因为没有足够的有意义的原始水平活动存在在段。
此外,这些段通常是用汇编语言编写,使它更加困难查明原始水平的活动性能监控。
因为小的代码段的性能在DSP应用程序正在被监视,软件-插装代码添加到这些应用程序可以极大地扭曲他们的运行时行为,结果呢在不准确的性能数据。
另一方面,一种基于硬件监视器不提供足够的更高级别的信息,因为它的有限的监测范围。
收集准确的硬件性能数据,如和高级信息,没有扰乱了系统的行为,一个软件监测方法的基础在一个硬件模拟器模式是更适当的。
如果一个准确的硬件模拟器模式可用,这方法支持两个详细的硬件数据收集和高级分析没有引入任何重要的工件到测量。
开发一个准确的硬件模拟器通常需要显著努力。
在基于dsp系统,然而,这不是一个额外的负担,因为一个精确的DSP模拟器模型通常可以从DSP制造商。
对于例子,大多数低级DSP程序开发使用模拟器为一个特定的DSP。
因此,一个性能-监控工具对于这个DSP可以开发通过扩展现有的DSP模拟器。
需求
一个性能监视工具来开发DSP应用程序应该有至少四个特征:
首先,该工具应该无缝地集成在调试工具。
调试和性能监控应该统一,一个连续体之间存在吗调试正确功能和调试实现所需的性能目标。
集成尤其重要的基于dsp系统的调试工具中发挥核心作用在发展中应用程序。
模式切换函数调试和性能监控应该是简单和容易的,所以,这些集成工具是有用的。
第二,该工具应该提出一个统一的和熟悉的用户界面在它所有的组件,来减轻用户从学习许多不同的接口。
例如,用户应该能够使用相同的命令来控制程序的流在这两个这个函数调试模式和性能调试模式。
第三,该工具将在一个合理的成本中产生有用的结果。
在DSP的应用程序,一个或多个小的代码片段紧凑循环通常是候选人的性能监控和深入分析。
如果性能监控需要过量的时间生产的测量和分析结果,它的用途是显著降低。
第四,用户应该能够使用扩展工具。
例如,对于一个单片机多处理器,预测所有可能的组合的事件是不可能的。
用户应该能够添加要监视的新类型事件。
性能监视参数
我们已经描述了dsp的目标的三个主要的性能因素。
第一个是平衡I/O时间(通过I/O控制器)和计算时间(PEs)。
因为我们的目标dsp可以执行数据处理和数据运动同时,数据处理和分析数据移动要求对于一个给定的函数非常重要的。
实现一个最优的程序实现,我们必须知道一个特定的实现单个子任务(程序)是I/o限制的
或计算。
我们还必须知道每个子任务的程度的I/o有界性或计算有界性。
对于例如,如果我们发现一个subtask是I/o限制的,它的程度的I/o有界性可以引导我们在实施其他的子任务,当我们试图平衡I/O时间和计算时间对于整个程序。
第二个因素是芯片上的指令缓存行为。
因为一个I/O控制器既符合指令缓存当数据移动的失误和请求从PEs在目标dsp、指令缓存错过不仅影响特定函数的计算时间还其I/O时间。
缓存未命中提高总体I/O时间的一个I/O绑定实现,因为他们中断I/O控制器的数据传输服务。
因此,缓存遗漏直接影响整个程序的执行时间。
因为小的代码段通常主导DSP程序和缓存错过服务时间而异在I/O控制器的工作负载,一个简单的计数总的缓存未命中不会提供足够的信息理解和改善程序的缓存行为。
更详细的信息,比如源地址、频率和服务时间为每个缓存错过是必要的。
第三个因素是互连网络竞争在PEs和I/O控制器。
竞争在只会增加总计算时间,而竞争pe和之间的I/O控制器会增加要么计算时间或I/O时间,根据优先级的互连网络pe'和I/O控制器的访问。
对于互连网络论点,论点的总数为每个PE和I/O控制器提供了足够的信息改善DSP程序。
这些信息是足够的,因为互连-网络重点PEs和I/O控制器倾向于保持相对常数和可以被修改基于竞争的总数。
如果这些优先事项必须改变更动态、详细的信息对于每个争用,像这样的PEs竞争,将是必要的。
MVP的性能监控
MPM是基于一个周期准确的DSP模拟器,满足我们刚刚考虑基于dsp的监测工具和支持三个性能参数的需求。
然而,在我们讨论MPM之前,让我们简要地看一下MVP,我们为DSP设计的。
TMS320C80MVP
MVP是一个单片机、异构、多指令多数据多处理器连接到多个片装一个横梁共享内存模块。
6日,9、10它结合了一个RISC处理器,四个并行处理器,一个智能直接存储访问控制器,和两个视频控制器。
它可以处理超过每秒运算20亿次,与芯片上的数据传输每秒2.4兆个字节。
到减少数据传输开销从外部存储器和设备,MVP拥有大量芯片上的内存(252千字节模块)。
图2TMS320C80系统高电平模块
图2显示了一个高层图的MVP的主要功能模块。
主处理器是一个通用的RISC处理器与不可分割的IEEE754兼容的浮点单元。
在一个典型的操作模式中,议员作为主要的主管和分销商在MVP的任务。
同时,国会议员是首选处理器来执行浮点操作。
这四个并行处理器先进的dsp有一个高度平行架构优化了多媒体,视频和图像压缩、图像和信号处理,和计算机图形学。
每个以ADSP可以执行了到15risc等效操作在一个时钟周期通过一个长的指令字(64位)机制。
它还有许多强大的功能可能无法在传统吗dsp。
例如,每个以ADSP有三个操作数,32一点算术和逻辑单元(ALU),它可以可选地分成两个16位或四8位单位。
视频控制器(vc)支持可编程的视频定时控制两个捕捉和显示。
高性能的纵横开关网络充分互联处理器和芯片上的共享内存模块。
当五个处理器(MP和四ADSPs)提供计算能力,转移控制器,一个专用内存控制器与复杂的数据传输逻辑,管理着所有的数据传输请求和从这些处理器缓存遗漏。
TC重视不同类型的数据传输请求和传输数据之间的内部和外部记忆芯片上的和。
由于高数据所需的带宽多媒体应用程序和访问的开销直接内存芯片外,五个处理器通常工作与数据纳入芯片上的共享的内存TC。
因为处理器和TC可以操作同时,大多数数据传输由TC隐藏到处理器的优化实现。
虽然处理程序工作电流数据块在共享内存,TC为下一个平行格服务。
TC的主要数据传输机制是一个包传递,转让的两个地区之间的数据块MVP的记忆。
MP,ADSPs、VC、或外部设备启动包传输通过发送请求TC,使用软件或硬件。
一旦一个处理器提交转回申请,它可以继续程序执行不用等待传输的完成。
许多不同的模式的数据包传输是可用的,比如多维转移,表引导转移,满值转移,和串行寄存器传输。
MPM架构概述
图3显示了MPM的架构。
MPM的是紧密结合德州仪器MVPDebugger工具,它被广泛应用于发展中MVP程序。
用户可以交互式地切换业绩监督模式,使用MPM,和功能的调试模式,使用MVP调试器。
性能监视模式的大约三倍比函数调试模式慢三倍(每秒20的运行速度700年到1000年说明在太阳)。
这速度是足够的性能进行监视多个代码段之间切换以交互这两种模式。
MPM的核心是扩展的MVP模拟器,它包括:
1.MVPc++模拟器,它准确地模拟MVP到一半的分辨率(当MVP运行在50MHz,一个完整的时钟周期,所以周期20ns周期的一半是10ns);
2.定制的MPM扩展MVPc++模拟器,其中包括三种类型的监控支持和TC调试能力;
3.一个通信和同步模块,该模块与用户界面的MPM相连通。
4.MPM的用户界面生成一个子进程,监视用户指定的事件。
性能监控
MPM的支持性能参数与缓存监测、监视和自定义监视争用。
图4MPM仿真调试
图4显示了一个快照MPM的环境。
整个仿真是从MPM用户界面(左上角窗口)。
一旦MPM开始时,MVP调试器开始模拟MVP程序(右下角窗口)。
用户通常设置一个断点起始地址的一个代码段年代这将被监控的MPM。
如果模拟停在断点,用户选择一个合适的从MPM的监视类型用户界面和用户界面为选中的监测活动出现(右上角窗口)。
在图4中,缓存监控被选中。
然后用户设置另一个断点最后地址的年代和继续仿真。
当模拟停止,用户可以查看监视结果在一个单独的(左下)窗口。
对于一个典型的DSP紧循环(包括大约10到30个指令),一个数据收集会需要从几几秒到几分钟。
缓存监测,MPM显示(在左下窗口在图4)收集的信息在缓存遗漏的代码段年代,包括缓存遗漏的总数、总缓存错过服务时间,总数量的非强制性缓存想念,总服务时间为非强制性缓存遗漏缓存遗漏。
MPM的也显示了所有的缓存遗漏的总结在表格中列出源和目的地地址、平均服务时间,和每个缓存的频率小组。
基于这一信息,用户可以重组MVP程序或调整程序大小非强制性的减少缓存遗漏数量。
争用监测工作同样,每个处理器显示了横梁的竞争开关总数。
通常的监视是用来观察一个用户定义的事件与缓存和争用监测,在那里MPM的预定的监视事件。
MPM的指定一个用户定义的事件,以ADSP的检查点被选中的地址以ADSP指令。
定制监控记录执行以ADSP检查点。
以图形方式显示结果的MPM(见图5),x轴的图表表明了MVP数字时钟周期。
在连续的行上显示运动的状态数据(即数据包传输)通过一个特定的以ADSP要求。
粗线条表示当数据包传输服务是被推迟,因为这些TC是繁忙的维修高优先级的请求。
细线表示当TC服务请求的包转移。
线在低一行显示当指定以ADSP检查点执行。
(如果一个以ADSP指令在检查站只执行一次,图表显示一个点,而不是一行)。
用户可以通过单击鼠标按钮测量每个区间。
传统监测的一个主要应用是判断一个程序计算绑定实现MVP或I/O限制。
在MVP,ADSPs(或MP)提交的数据传输请求到I/O控制器(TC),并检查了数据传输完成的轮询预定的寄存器。
因此,通过自定义的监控这个以ADSP轮询指令封包传输完成,我们可以确定该请求数据传输已经完成。
例如,如果一个以ADSP检查点被设置为以ADSP投票说明书这个数据包传输完成,
图5传统模拟控制器输出结果
图5显示这轮询指令执行大量的周期(一个实线在低行)。
这表明这是在浪费一个号码以ADSP3的规律等待请求数据包传输来完成。
性能调优策略
一个算法实现对以ADSP要么是计算限制或I/O限制,这取决于处理时间或传输时间。
因此,该战略对于不同的情况下对提高MVP程序的性能是不同的。
表1总结了四例算法的年代它以ADSP实现Ws。
我们可以分类算法年代或I/O,限制的计算基于纯理论分析,利用纯处理时间t纯处理和纯数据传输时间t纯粹的I/O。
计算真正的数据传输时间MVP,我们乘t纯粹的I/O数量的ADSPs用于算法实现,因为单一I/O控制器的需要服务数据传输请求从多个ADSPs。
一旦实现了该算法年代于特定的实现Ws,将实现作为计算绑定或I/O限制的,基于监控结果。
我们使这个分类由自定义监视与一个以ADSP检查点设置的地址这个以ADSP轮询指令,检查数据包传输完成。
在所有四个例子中,第一步应该检查是否存在重大缓存超过了容量,因为缓存未命中同时影响加工时间和转移时间。
一旦非强制性缓存未命中有处理、更特定的优化可以开始。
如果实现是I/O限制的,正如预期的理论分析(情况),可能是通过改善程序的数据流部分进一步优化,以便更有效的数据传输。
纵横争用监控也可能是必要的,因为传输时间可以因为大量的横梁TC和ADSPs之间的竞争而显著增加。
如果多个例程进行整合,结合一个I/O限制的常规的计算程序和其他可能改进总体执行时间如果数据流模式这些例程是兼容和组合不引入额外的开销。
当实现是作为分析的计算理论上,优化选项仅限于提高循环的紧凑。
进一步的并行化或更有效的使用性能增强功能可以缩短执行时间。
如果这些论点以ADSP延迟,也可以改善性能降低横梁竞争的数量与其他ADSPs和TC。
当I/O部分实现执行效率低于预期,一个紧密的检查当前的数据流设计是必需的。
这个程序的数据流部分可能需要重新设计。
TC摊位数量的减少引起的横梁竞争与其他ADSPs还可以提高性能在这种情况下。
如果可能的话,从其他程序的步骤与紧凑循环结合一些必要的计算,可以降低效应较慢的I/O性能,从而缩短总执行时间。
如果计算部分实现执行效率低于分析,在紧凑循环的检查级别优化是必要的。
进一步监控横梁的论点与其他ADSPs和TC也是必要的,假设非强制性缓存已经成功被命中。
一个性能调优案例
我们使用MPM来提高媒体站5000上的一个8*8块2dDCT的性能,一个MVP建立多媒体系统。
(我们以前报道了一个更复杂的示例)程序首先将一个N*M8位头输入图像成许多(N/8*M/8)不重叠的8*8位。
然后,程序执行每8*8块一个2dDCT,通过行明智DCTs8点8分紧随其后DCTs列。
输出块具有相同的空间分辨率(8*8)作为输入块。
与8位色输入灰度形象,2dDCT系数的范围是从输出-2048年到+2047,因为重复的乘法(余弦值)和积累。
因此,在离散馀弦转换系数被存储为16位定点数字。
从16位,四个最低有效位代表小数部分,而上层十二位代表整数部分。
2D离散余弦转换程序由两个任务:
8位来16位转换(转换)和16位8基于块的82d离散馀弦转换(DCT)。
单独的转换任务必要的准备输入数据正确的离散馀弦转换任务。
使用8位输入像素dct生产16-位定点DCT系数需要一个额外的转变一个16位的余弦值之间和一个8位输入像素在每一个乘法。
额外的变化改变乘法的结果返回给一个16位的数字。
另外表1。
四种可能的情况下算法的年代和它的实现Ws。
理论分析监测结果
例1是受I/O限制的I/O限制的
例2是受I/O限制的计算
例3I/O限制的计算案例IV的计算的计算。
我们高度优化的两个处理核心的转换和dct,大量使用许多高级的ADSP功能。
转换处理核心需要1.25周期每输出像素,而dct处理核心需要352周期每8*8块;或5.5周期每输出像素。
四ADSPs并行运行在50MHz,每个以ADSP处理四分之一的形象,将采取共有8.84ms来执行8′82d离散余弦转换为一个512*512年′输入图像。
转换将1.6需要3ms,而离散余弦转换将需要7.21ms。
然而,这些估计纯粹的处理时间,不包括任何额外。
使用两个处理核心作为构建块,在一个以adsp水平(参见图6)
图62D转移模块
结合两种核函数我们实现了第一个版本的综合项目。
一个8*88位输入块带到芯片上的内存,和一个8*816位DCT系数块是写出到外部内存。
转换处理核心和dct处理核心共享相同的数据流。
这个版本执行糟糕的令人惊讶。
时间是44.5毫秒,比理论预测的8.84ms长35.66ms。
指令缓存检测
通过缓存监测两个处理器核,我们发现,使用额外的周期对于服务指令缓存每一次迭代(每个8´8块处理)大约延迟1100周期到1200周期。
图7
图7展示了这个与四ADSPs以ADSP2操作在并行的延迟。
虽然图7b显示了结果后的第四种8*8块,图7显示了缓存监测结果以ADSP2处理后第三8*8块,。
在处理这两个栈区,总缓存服务周期增加了1208周期。
我们没有预计这大量的缓存延迟服务周期,因为转换和dct处理核心使用75以ADSP汇编指令(20为转换和55dct)。
这个数字也远远低于的最大数量(256)的指令,可以适应以ADSP的2千字节指令缓存。
(2千字节指令缓存被分为四块,每一种都可以存储64位的指令。
因此,指令缓存可以同时存储四个不同的代码段)。
大量的缓存遗漏之间发生的连续的子例程调用转换和离散余弦转换处理核心的例程。
链接器将MVP这些例程在指令缓存没有任何64-指令块考虑为例,起动一个程序开始进入缓存块。
此外,链接器并没有将这两个例程接近对方时,构建一个可执行模块。
所以每个核心程序需要两个64位指令缓存块。
四个64位指令块两个核心例程和两个额外的64位指令块以adsp级别的C代码(即for语句块)缓存未命中引起每个子例程调用。
过多的这些非强制性缓存缺失造成的性能损失在22.5和24.6之间。
为了减少数量之间转换遗漏的缓存和dct,程序的第二个版本把两个处理核心单独到以adsp水平应用(参见图8)。
程序存储函数执行了DCT的图像转换到MS5000形象的外部存储器的第二栈区。
对于更高效的数据移动,转换任务每个以ADSP带来5128位像素(或四行,128像素)到芯片上的内存,而不是一个单8*88位输入块。
对于这个组织,缓存监测表明,使用两个以adsp水平功能没有造成额外的缓存遗漏。
周期执行时间从44.5下降到16.3ms,改善了28.2ms。
改进比你可能希望从减少缓存遗漏是大4到6ms。
这是因为不必要的缓存遗漏影响传输时间以及处理时间,必要的减少缓存遗漏也提高了总体I/O性能。
I/O监控的有界性
然而,这两个adsp水平的函数成为I/O绑定,以ADSP2作为自定义监控结果显示,正如我们前面所提到的,我们设置一个ADSP轮询指令检查点检查ADSP地址,检查数据包传输的完成。
在低排线在图9中显示这轮询,以ADSP2执行指令大量的周期之前,请求的包传输完成。
粗线路上行表明,对于许多周期来说,TC的无效性推迟了数据包传输服务。
细线的显示TC服务请求的包转移的时间。
由于简单计算步骤处理核心的转换,它花了大约三分之二的计算周期等待数据包传输完成,而dct花费了超过50%的周期循环等待数据包传输完成。
为了减少总体I/O时间,该计划的第三次将这两个处理核心版本结合成一个单一的核心(参见图10)。
用相同的数据流,减少的I/O时间减少了执行时间11.6ms。
新的联合处理核心没有任何非强制性缓存遗漏。
然而,自定义监测表明,实现还是I/O限制的。
图11演示了这个I/O有界性对于以ADSP2,尽管在I/O时间和处理时间结合两个I/o限制的例程到一个单独的程序能达到一个更好的平衡。
这个总长度的线在图11中比在图9中在低行要短的多,这意味着ADSP2花较少的时间完成传输数据检查。
然而,实现理想的2D离散余弦转换的不会有任何线路低行。
因为第三个版本仍然是I/O限制的,我们不得不进一步分析数据流。
因为合并后的处理核心被认为只需要6.75周期每输出像素,而数量的纯I/O周期只有48周期/64像素,或0.75周期每输出像素,我们并不期望这个版本是I/O限制的,。
(使用两个周期/内存访问和64位数据宽度、阅读在64位的8位数据64字节需要16个周期,和写到64字节的16位的数据需要另一个32个周期,共有128字节)。
在同一时间有四个ADSPs提交的数据传输请求,有效的数据传输速率对于MVP是四倍帧/0.75输出像素。
在封闭测试中,我们发现因为访问一个8*8块需要频繁的内存边界时间访问的时间大大加长了。
(MS5000主要的内存子系统支持2kb的页面。
512*512´图像,两行时间访问是必要读一个输入8´8块(8位每像素),和四行时间访问都是必要的写回8´8结果[16位/像素)。
有两个周期/内存访问和64位数据宽度、纯数据传输将为48个周期。
大约90的额外周期是必要的六行时间访问。
所以,这需要ADSP2.16输出周期每个像素。
与四ADSPs并行运行,MVP的总数据传输率为8.63周期每个输出像素,这是比合并后的处理核心大6.75周期每输出像素。
为了减少行时间访问的周期,程序的第四个版本同时引入和加工四8´8
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 外文 期刊 翻译