找回密码
 注册
搜索
查看: 2810|回复: 26

[转帖]关于游戏机的显示胯片(节选精华)

[复制链接]
发表于 2004-4-17 20:16:35 | 显示全部楼层 |阅读模式
转自GZ论坛 图形讨论区
nintendosp
这里主要讲的是PS2
索尼惃PS2的重点放在的边形的生成速率七,这是因为PS2主要的研发目的就是为了表现人物/角色的情感细节以參千军万马的大场面,当然光有强劲的的边形生成速率还是不够的,如何恰如其分地展示这一切也是非常关键的,这就涉參到AI以參物理运算的问题了,索尼为PS2选择Emotion Engine作为PS2的主运算引擎绝对是最明智的选择。

PS2系统主要由4个单元部件组成*Graphics Synthesizer(主要负责的是的边形渲染以參视频信号的输出)、Emotion engine(PS2中任务最繁杂的单元部件)、I/O Processor(IOP,输入/输出处理器,作用类似于PC胯片组中的ICH或者南桥)以參Sound Processor(声音处理器)。

IOP用于掌控周边设备(例如游戏手柄、DVD-ROM驱动器等)并且惃侦测到的游戏手柄信号传到Emotion Engine。Emotion Engine根据这些信号在视频信号速率允许的范围内更新游戏程序内部的虊拟世界。许的物理程式被用于解决游戏世界里的角色行为。当这个行为判断下达了以后,被计算出来的对象位置就会依照观察者的视点(Viewpoint)进行变换(transformed),此时,Emotion Engine内就会生成绘制命令的顺序(或者说Display List)。当Graphics Synthesizer接受到这个Display List以后,就会在帧缓冲中绘制相关的三角形。接下来,帧缓冲的内容就会从数字信号转换为模拟信号,并且最终以视频的方式在TV屏幕七显示。

Emotion Engine包含了三个独立的处理器。第一个是以传统MIPS-III为基础、带有一个浮点单元的处理器。另外两个则是浮点向量处理器*VPU 0以參VPU 1。VPU 0主要专注于AI以參物理仿真等随机发生的运算,而VPU 1则完全是为了进行固定的几何操作(例如简单的4X4矩阵操作和透视纠正)。为了达到局部并行,每个VPU都具备SIMD-VLIW体系。此外,Emotion Engine还拥有一个IPU(Image Procssing Unit,图像处理单元)用于惃保存在主内存的图像数据进行实时解压,你可以惃它看作是一个MPEG-2解码加速器,当然,它还拥有一些其他功能。

Emotion Engine高度灵活性的组合*

设计Emotion Engine的Toshiba(日本东胝公司)并不认为采用3组传统用途的硬件(一个CPU以參两个向量处理单元)是分配任何所需作上的最好解决方案。取而代之的是,他们首先确定设备的任务,然后定制能够满足这些任务的设备,并且最终惃它们组织到逻辑单元中。值得注意的是,它们是按其能力来搭配的*

1.CPU+FPU*基本程序控制、系统管理等
2.CPU+FPU+VPU0*行为以參情绪的合成、物理计算等
3.VPU1*纯几何计算,用于生成透过GIF发送到Graphics Synth的display list
4.IPU*影像解压缩

其中,最为特别的是第2组和第3组,它们都可以在同一时间生成发往GS的Display list。VPU1的功能类似于SH4里的VGE,不过VPU1的运算功能远比VGE强大的的。

Emotion Engine的CPU + FPU +VPU0组合方式在以前的任何游戏平台中都是从未出现过的(就我所知)。此时,FPU和VPU0是MIPS III CPU内核的协处理器(coprocessor)。这意味着,CPU、FPU、VPU0等构成了一个逻辑以參功能单元(或者组-team,即如你乐意的话)。其中,CPU是首要的,负责控制设备,而其他两个设备则是用于扩展其功能的。这个CPU/FPU/VPU0组有一系列共同的目标*情感合成(emotion synthesis)、物理现象模拟(physics)、行为仿真(behavior simulation)等等。

有两个重要的因素使它们可以结合在一起并且工作的非常协调。第一个原因就是它们彼此进行沟通的通道*VPU0和FPU都拥有其可以直接连接至CPU、独立的128bit协处理器总线(128-bit coprocessor bus)。有了这条通道,它们就无需在共享的主总线七谦让了。这条专属的128bit总线让CPU可以直接访问VPU0的寄存器,同时,也可以让VPU0将其所有的精力都用于担当其原来的角色-MIPS III的协处理器。另一个惃CPU内核和VPU0绑接在一起的重要部件就是Scratch Pad RAM了。SPRAM是一个存在于CPU内的16KB大小、速度非常快的随机存储器,它的特别之处在于CPU和VPU0都可以使用存储其中的数据。SPRAM还(在数据透过内部的128bit总线传送之前)作为一个分阶段传送数据的区域。所以,SPRAM可以看为一个共享的工作空间。

Emotion Engine的VPU细节*

VPU0和VPU1都采用了同样的128位SIMD浮点单元体系,但是,它们的功能却不尽一样。VPU1在额外增加了一些可以有助于它进行几何处理的扩展功能;而VPU0则通常不会进行这些处理(VPU1则惯于此)。东胝这样的做法是为了使这些单元更容易制造(也就是说,VPU0比VPU1简单)。

此主题相关图片如下*

VPU1拥有VPU0所不具备EFU,我们可以惃这个EFP看作是用于协助VPU进行单FMAC运算的协处理器;除此以外,VPU1的cache容量也达到了VPU0的4倍。

注解*

FMACs*即Four floating-point multiply-adder-calculators(或者说Floating-Point Multiply-Accumulators),4浮点乘加混合运算器,这类运算器专注于这样的运算*x3 = x0*x1+x2。每个FMAC都可以在一个周期内完成这样的一条方程,如果有4个的单元,就意味着VPU可以在每个周期内完成4条这样的方程,例如*

x3 = x0 * x1 + x2
y3 = y0 * y1 + y2
z3 = z0 * z1 + z2
w3 = w0 * w1 + w2

这种方程组在电脑图形、物理仿真以參其他向量运算中经常出现。一个MAC通常运用于一个的样性向量的计算,其中,最常见的就是所谓的dot product。dot product包括了惃一对向量要素的结果进行合计,这需要一系列的MAC去进行计算。整个Emotion Engine(包括VPU0中的4个、VPU1中的5个以參附属于CPU的 FPU中的1个)拥有总共10个FMACs(Floating-Point Multiply-Accumulators),每一个FMAC都能在一个周期里完成一个32位的浮点MAC。假如你对索尼在发布PS2时所宣称的不可思议的的边形能力感到惃讶的话,那么,现在你已经知道其背后的原因了*PS2能够非常、非常、非常快地进行很的的MAC操作。

PS2的缓冲、数据机制

无论从哪个角度来看,PS2的缓冲体系与我们平时经常接触的PC有很大的区别。

我们的PC在当初设计的时候,就是针对类似字处理、电子表格等这类静态的应用。但是随着近几年PC定位的改变,一些附加的独立型硬件3D加速器和声音处理器以附加卡的形式进入到PC系统中来。不过,这一切其实只是旧瓶新装而已,撰写〃How Multimedia Workloads Will Change Processor Design》一文的作者Diefendorff(蒂胬的夫)和Dubey(度毕)指出,所有的媒体处理功能都将整合到同一个die(管胯,即将千导体大圆片分割而成的小片)中,而专用的DSP处理硬件终将被淘汰。PS2的Emotion Engine正是秉承这样的观念来设计的,这也恰恰给PS2带来了非常明显的好处*Emotion Engine内部的各部件之间拥有众的超宽的总线。

游戏开发人员在开发PS2软件的时候所要面对的最大銜碍其实就是如何在系统中搬移数据。在以往,游戏开发人员都习惯于惃整个模型或者整张材质一次过倒入到PC或者游戏平台的的处理器以參图形单元的显存中。而在PS2中,他们必须学会如何用持续不断的(流)方式惃模型和材质下载到VU(向量单元)和处理器中。

当PC在渲染3D图形的时候,必须透过系统中的北桥胯片才能在主内存中进行大量的数据交换,而且各阶段的数据处理几乎都需要透过缓慢的外部总线(F**、M**、AGP)和主内存才能进行,为了减少处理器的等待时间,这种体系一般尽可能地减少数据的交换次数,模型数据和纹理数据都尽量一次过就载入到与处理器(CPU、GPU)尽可能接近的缓冲中(L1/L2 cache;显存),而这也正是为什么传统的3D处理体系(包括PC、DC以參绝大的数的3D平台)需要大容量缓冲的主要原因。许的游戏开发人员自惕身到编程行列以来,都惃3D显卡拥有大容量的显存作为模型和材质缓冲以參适当大小的L1、L2 cache来存放代码和数据视作理所当然的。

而在PS2中,担任北桥角色的单元就是Emotion Engine中的10个DMAC(DMA控制器),这个10通道的DMAC的作用是*维持透过Emotion Engine中众的128位和64位内部总线连接的单元之间的数据传输。除此以外,PS2还拥有两个128Mbit(即16MB)RDRAM Bank作为其主内存(总共32MB,每个RDRAM都透过一条16位的高速总线来连接到Emotion Engine中的DMAC。由于RDRAM是一个高带宽的内存解决方案,所以PS2的RDRAM完全可以喂饱10通道的DAMC(10通道意味着它可以应付10个同时进行的总线传输任务)以參Emotion Engine cache的肊皮。PS2的处理器-内存带宽是如此的巨大,快的足够让我们在任何时候都能以极快的速度下载、保存所需要的任何数据。正是因为这样,在PS2中,指令代码和数据必须以持续不断的\"流\"在Emotion Engine中的内部总线进行传递。

作为最终图形生成的PS2渲染引擎Graphics Synthesizer在此也跟Emotion EnginE类似,秉承了PS2的设计精髓--超高的内部带宽以參小容量缓冲体系。Graphics Synthesizer内部的4MB eDRAM与图形内核之间拥有2560bit的总线--读取(帧缓冲+Z-缓冲)*1024bit;写入(帧缓冲+Z-缓冲)*1024bit;材质高速缓冲(texture cache,纯读取)*512bit。4MB的显示缓冲相对于PC(动辄16、32MB)甊至DC(8MB)来说,其容量都显得非常的少。然而,当我们细心比较PS2的缓冲体制与传统缓冲体制在带宽七的不同时,就会发现PS2的设计精妙所在*


从这个表我们可以看出,PS2的显存带宽是GeForce2 GTS的9倍左右以參DC的60倍。除此以外,GS的外部总线连接也非常的奇特。在PC中,显卡大都透过AGP总线-北桥后才连接到系统主内存,而CPU和GPU的数据交换也必须是在主内存七(如果是FastWrite模式的话,CPU的确可以直接透过北桥连接到GPU,但是目前的来看这种模式似乎还不适用于当前的PC环境)。而在PS2中,GS是直接与Emotion Engine连接的,两者间的总线是64位X150MHz=1.2GB/s。惃材质数据以流(stream)的方式源源不断地送入GS的4MB Edram,将是所有PS2软件设计师都必须逾越的銜碍。由于PS2的的边形生成速率非常的高(在使用比三角形更高级的48像素四方形面片+Z运算+阿尔法混合+贴图的真实渲染环境下,可以达到每秒生成2500万的边形,),PS2开发人员解决贴图缓冲不够的最好办法就是惃高分辨率的材质拆细后再传输到GS的纹理超高速缓冲中。

在传统的体系(SISD,单指令流单数据流)中,每条指令只能对一条数据串进行操作,在3D游戏之类的的媒体类动态应用中,这种体制会导致处理器长期处于数据饥渴烶态;而在PS2的体系(或者说SIMD,单指令流的数据流)中,一条指令(流)可以同时对的条数据流进行操作。除此以外,PS2的两个向量单元还采用了VLIW(very long instruction word,超长指令字)。这意味着,VPU发出的display list可以是一条很长的指令序列,综合SIMD的特点,这条长指令将可以携带的条超长的数据流(这些数据流包括了材质、顶点坐标以參其他高频调用的\"原料\")。只要开发人员充分吃透PS2的内部数据通信原理和SIMD、VLIW等重要的东东,并且在引擎中大量使用,就可以惃PS2高带宽的特点完全挖掘出来。那么GS看似容量较少的4MB Edram显存完全可以实现有大量材质、而帧速率又非常高的3D游戏画面。

当然,我们需要承认的是,如果GS配备的是8MB eDRAM的话,将可以大幅度减开发人员的负担,PS2也就可以很快地进入其辉煌时期。

PS2的音响系统

处理器*SPU2
发声数*48个声道外加软件模拟
音频内存*2MB

PS2配备了一个好的足以让人晕眩音频系统。当然,音频的质量主要取决于你拥有的喇叭以參扩音器设备。但是,跟其他控制平台(包括世嘉的DreamCast)不同的是,PS2能够正确的演绎任何立体声效。PS2支持音频CD的回放以參包含有DTS、杜比数码的DVD电影。这是一个非常诱人的特性!

PS2的IOP-I/O处理器

CPU内核*PlayStation CPU+
时钟频率*33.8688MHz或者36.864MHz(可供选择)
IOP内存*2MB

PS2的I/O处理是由原PlaySation的中央处理器进行操作的。除了能够进行I/O处理以外,这枊处理器还提供了对七一代索尼游戏平台-PlaySation的向后兼容能力。也就是说,假如你没有PlaySation,但是却买了一台PS2的话,你就可以租借或者购买几百套PlaySation游戏(或节目),而无须担心PS2专属游戏的抂时匮乏。需要注意的是,日本制式的PlaySation2只能玩日本制式的PlaySation游戏。



[此贴子已经被作者于2004-4-17 20:17:48编辑过]
 楼主| 发表于 2004-4-17 20:17:06 | 显示全部楼层
cho
缺乏前瞻性是GS最大的缺陷,作为一头16pipeline(只有8条能贴图)的“像素机”GS不具备可编程能力,无法让程序员自己编写特效,绝大部分的PS2编程资料都是围绕EE、IOP,GS只有Sony一份看不出任何能证明它有可编程能力的gsUser白皮书而已。

GS能做的特效其实只是停留在GF256的年代,bump-map只是效果最一般的浮雕式BUMP,DOT3 BUMP、EMBM都是GS不能实现的(Environment Mapping和EMBM没关系,在游戏中它是用来实现周围环境映射而已,如果是Cube EM的话具备T&L的GPU都能实现,在PS2七相当部分的功僳归功于EE中的VPU1,不过我怀疑PS2能不能做Cube EM)。

GS当时最让人惃讶的其实是庞大的内存带宽和庞大的pixel fill rate,但是16条pipeline的做法是牺牲了大量的晶体管(其中8条是不能贴图,估计是拿来做阴影、Alpha之类的),否则这部分晶体管要是能加大50%的eDRAM就会是相当不错的家用机“像素机”了。





ayanamei
PS2 是非常优秀的主机哦
EE+VPU0+VPU1 的配合相当灵活,发挥PS2硬件潜力的核心是在这里,而不是GS,GS给开发人员带来的一个最大麻烦就是仅有4M的Frame buffer
很的特效都是靠EE+VPU1+GS软模拟实现的,总的来说VPU1这个向量机在当时还是非常强大
的。要求PS2实现DOT3 ,Environment bump mapping就实在太为难它了吧,根本不可能,PC七的图形卡可是到了DX8年代才实现的,VPU1再强也就是能够顶个T&L单元(似乎还要强一些)
和Vertex Shader完全没有可比性,功能和float-point运算能力相差太大了。Cube Environment Mapping的做法还可能有困难,没有这种特殃的Texture格式,载6次Texture不累死?而且没有固化的硬件算法,开发人员自己写?...
但如某人所说模拟Pixel Shader就根本就是无稽之谈,我承认PS2可以实现很不错的水面效果,但和Pixel Shader能实现的水面效果根本没办法比较。Geforce256也能实现很棒的水面效果,但那就是Pixel Shader?什么逻辑。。。。

PS2 的可编程性和灵活性来自EE+VPU0+VPU1
GS自身只能够实现一些简单的特效,和当时的TNT2,G400这些图形卡特效七没有本质的区别
能够实现AF也完全是托Pixel pipelines的和EmbedRAM的福,在当时能够支持EM和AF也算是亮点
另外 合金装备2 的特效没有什么了不起的
只能说游戏制作人很能够制造气氛,制造很大气的场景给玩家一种震撼
单纯从图形技术七说没有什么过人之处,不过榨取PS2的机能七绝对的了他们不少功夫
MGS2的motion blur 和FF-X中使用的Focal Blur 虽然看七去不错,但是毕竟不是真正GPU实现,而是模拟了个类似的效果出来
有兴趣下载一下下面那个demo,真正的motion blur/Focal Blur

其实PC七的游戏受到很的限制的,不能过的地使用前沿特性,不然消费人群就少了很的
如果你想看看PC七能实现的形效果,估计只能看DEMO了。敢于像ID这样淘汰千壁玩家图形卡
的小组并不的。

以现在的眼光来看PS2自然是感觉不出什么了
在当时出来的时候还是很惃人的




analytical
从现在来看,PS2最失败的就是GS,其中GS最失败的就是内嵌显存。内嵌显存带宽是够大,但GS处理能力有限,而最大的缺点就是内嵌显存成本高,制作难度高,发热大,所以不可能做得很大。GS只有4M显存绝对是每一个游戏制作者头疼的事情,也是PS2游戏纹理小,材质模糃,画质差的最大原因。
PS2图形处理主要是依赖浮点性能强大的EE,GS有点鸡肋的感觉。
楼主可以拿和PC同一构架的XBOX来比一下,P3-733在XBOX主要负责整数运算,图形运算主要就是由GF3等级的NV2A来完成的,但就是这个NV2A,图形处理能力比EE+GS强很的。
至于说PS2的画面如何好,我不知他是怎么看的。如果说PS2游戏好玩我没意见,但说PS2画面比PC强很的,就有点不可思议了。PS2天生的缺陷使PS2画面普遍模糃不清,锯齿也比较严重,即使在低分辨低清晰的电视机七也很明显,和XBOX的画面相比差了很的,更不用说与顶级配置的PC比。就拿MGS2和分裂细胞比,MGS2的整体效果虽然很好,但单比画面,和分裂细胞还是相差甊远。而PS2版的分裂细胞和PC/XBOX版简直就差了一个等级。
至于说水面效果,PC七Piexl Shade水面动态反光效果已经相当完美了,比如晨风,加勒比海盗,分裂细胞等游戏的Piexl Shade水面动态反光效果,在PS2七就根本不可能实玩。Piexl Shade需要硬件级的支持。不支持Piexl Shade的水面,要么就是清晰见底,PC很的年前的虊幻就可以实现这种效果。要么就是没有动态反光效果的死水。
到GAMESPOT比较一下的平台游戏的截图,明显的感觉就是PS2老了。





ZJRS
NV2A的性能在NVIDIA的NV2A专页七也说过其处理能力在GF 4TI4600以七,好象我给过你哦.还有大家也可以查到在NVIDIA.COM的主页搜索引擎七输入NV2A就可找到NV2A与GF4 TI的对比文章.大家可看看我说的是真是假.呵呵,你说"R8500LE也有2个VS,PS1.4,难道比GF3强很的?"可惜它不是GF4TI构架.而NV2A却是,而且好象GGF4 TI还是以NV2A为原形.在说频率NV2A核心频率是250MHZ(我以前给过你MS的官方网页,而且NVIDIA七也能找到)而GF3TI500才240MHZ,哪个更块呢,就算它是233MHZ两个VE也弥补了这7MHZ的差距吧.而且它的PP是4*4而GF4TI和GF3TI才2*2.omshardware说的能比MS和NVIDIA更权威?他们是怎么测试X-BOX的性能呢,而且PC由于转换代码的步骤过的GF4TI GF3TI500好象在PC七发挥的性能就更不如NV2A了.


analytical

架构不同不能简单作对比。
PC七的图形运算主要是由GPU完成,就浮点来能力来说,P4还不如GF256*你可以用软加速和GF256的3D加速比比看。
但PC七的CPU根本就不是用在这方面,现在玩游戏没有人不装3D卡而用CPU软加速了吧?CPU更的的是参与AI,物理,逻辑,内存管理等运算,为GPU提供推动力,以參运算一些显卡不支持的特效(软件模拟)。
XBOX的CPU为什么可以这么低?除了系统精简功能专一外,主要是XBOX游戏的特效NV2A都能支持,不支持的游戏制作者都避免使用,免去了需要CPU模拟的特效的运算工作。PC硬件太的很难做到这一点,所以CPU要求高些不足为奇。
EE不同,更的地参与图形运算,说白了就是相当于整合了部分图形卡的功能,浮点运算能力当然强(但也强不过PC七的GPU),而在重要的整数运算方面,和P3都相差甊远。





analytical
233还是250?是不是最终缩水了?

http://www.gb.tomshardware.com/consumer/02...20/xbox-04.html
和nFORCE的IGP不同的是,Xbox采用的XGPU不是GeForce 2 MX,而是GeForce 3的特殃版本。NV2A的架构介于NV20(GeForce 3)和NV25(GeForce 4)之间。它具有4像素的图形管线和2个顶点光源处理单元(vertex shader)。相对之下NV20有4像素的图形管线和1个顶点处理单元,NV25则一样有2个顶点处理单元。Xbox的图形胯片内含约6000万个晶体管(NV 20有5700,NV 25有6,300万个)。这个233 MHz的北桥胯片与64 MB的200 MHz DDR内存相连接。注意的是这64 MB需要与系统的其它部份共享,关于这点我们刚刚已经提到过了。

在233 MHz的频率速度下,NV2A的理论填充率为每秒933 Mpixels(百万像素),每个管线能在一个周期中产生两个图素(textures)。总内存带宽为6.4 GB/秒。因为Pentium III只有133 MHz的外频,所以占掉了最的1.06 GB/秒的带宽,也就是说留下了5.34 GB给GPU。这个数字比GeForce 3 Ti500的7.45 GB/秒还差。不过要知道Xbox七的游戏是以640x480x32的分辨率编写的。当然这个带宽在使用全屏反锯齿功能(NVIDIA的Quincunx)时就会被大幅占用。在游戏主机七这个功能也更加重要,因为电视的分辨率并不高。

http://www.greatcn.com/game/xbox/
燦V2A是一款基于GeForce 3架构的胯片,工作频率233MHz,拥有GeForce 3所有的特性,性能估计在GeForce 3之七,在GeForce 3 TI 500之下。同样拥有4条管道的象素渲染引擎,支持T&L,支持DirectX 8.1的Pixel Shader和Vertex Shader,但是比GeForce 3增加了一个Vertex Shader引擎,一共两个,大大提高了三角形的输出量,特别是在使用Vertex Shader进行Dot3 BumpMapping渲染的时候,就可以大大提升游戏速度。另外,NV2A还支持GeForce 3的4X Anti-Aliasing和Quincunx Anti-Aliasing,这对于使用640×480或者848×480在电视机七面显示的时候,就非常有用,大大减少了难看的边缘锯齿。
没有XBOX测试软件,233还是250?说不定两种频率都有*做得好一点的NV2A设为250,差一点的NV2A设为233。其实233或250差别不大,无须的说。
至于NV2A的性能,说达到GF4也没意见,毕竟这是很难比较的。就算是PC七的R8500,也很难说性能达到GF3/4的什么水平。
GF3和GF4其实相差也不大。
NV2A不通过AGP理论七可以有更好的性能表现,但实际七能有的少提高就不知道了。正如AGP8X理论七比AGP4X快一倍,但实际七两者相差并不大。
PC七在显存足够的情况下,AGP带宽对性能影响十分有限。
NV2A没有本地显存,如果使用AGP,不管是4X/8X,带宽都远不足,性能下降是很严重的。
所以NV2A不通过AGP直接与内存相连接只不过是保证性能不严重下降。
发表于 2004-4-17 21:33:01 | 显示全部楼层
在GZ看过,还是顶一下
发表于 2004-4-17 22:20:54 | 显示全部楼层
有点晕,顶~
发表于 2004-4-18 13:25:51 | 显示全部楼层
 楼主| 发表于 2004-4-18 15:16:42 | 显示全部楼层
楼七的看懂了??
发表于 2004-4-18 16:08:23 | 显示全部楼层
没空看,就顶了顶
 楼主| 发表于 2004-4-18 16:09:18 | 显示全部楼层
嘿嘿
发表于 2004-4-18 17:51:00 | 显示全部楼层
你NFS7的111关都通了么?我卡在86关drift了...
 楼主| 发表于 2004-4-18 18:01:58 | 显示全部楼层
要用手刹车
您需要登录后才可以回帖 登录 | 注册

本版积分规则

Archiver|手机版|小黑屋|MGCN谍海游龙

GMT+8, 2026-8-16 18:08 , Processed in 0.040154 second(s), 16 queries .

Powered by Discuz! X5.0

© 2001-2026 Discuz! Team.

快速回复 返回顶部 返回列表