显卡和处理器和显卡哪个重要是什么

CPU到底是怎么操作独立显卡的?
首先我最关心CPU和显卡交互部分,显卡内部原理并不是很在乎。&br&&br&一、我大概知道早期DOS时代的VGA卡的原理:首先系统将高端的128K物理地址映射到VGA卡,然后CPU就可以直接操作VGA卡的显存了。同时VGA卡根据显存的内容以一定的频率刷新显示器。(如果有理解错误的地方也请指正,谢谢!)&br&&br&二、我对当代的PCI显卡了解如下:在现在经典的南北桥+各种PCI总线架构下,首先系统将一部分物理地址空间(大概256M)映射到显存,然后就不知道了,而且这仅有的一点理解也不一定准确。&br&&br&三、问题来了(主要针对当代经典的显卡):&br&1.请看下图的三个范围,我算了下分别是256M, 128K,256B,它们都是什么?&br&我的猜测是映射到物理地址的部分显存,控制寄存器和端口。&br&2.CPU是如何访问显存的(拿写为例子),是通过物理地址直接访问(如果上面256M是映射的显存的话);还是通过控制寄存器间接访问,即先把要写的数据放到寄存器,再发出命令让显卡取走,最后显卡把来自寄存器的数据写入显存。&br&3.很多人说显存的地址和内存的地址是统一编址的,那么CPU就可以直接访问显存,而不是通过控制器接口间接访问。我认为这是不对的,原因如下:我的显卡是1G的,但是下图显示只有256M地址空间分配给了显卡。&br&4.我的显卡是1G的为什么只分配了256M的地址空间给它?&br&5.要了解这方面的知识要看什么书或哪方面知识,求推荐。。。&img data-rawheight=&430& data-rawwidth=&414& src=&/0f5f86efda43ab37ac780a387cbf167a_b.jpg& class=&content_image& width=&414&&
首先我最关心CPU和显卡交互部分,显卡内部原理并不是很在乎。一、我大概知道早期DOS时代的VGA卡的原理:首先系统将高端的128K物理地址映射到VGA卡,然后CPU就可以直接操作VGA卡的显存了。同时VGA卡根据显存的内容以一定的频率刷新显示器。(如果有理解错误的地方也请指正,谢谢!)二、我对当代的PCI显卡了解如下:在现在经典的南北桥+各种PCI总线架构下,首先系统将一部分物理地址空间(大概256M)映射到显存,然后就不知道了,而且这仅有的一点理解也不一定准确。三、问题来了(主要针对当代经典的显卡):1.请看下图的三个范围,我算了下分别是256M, 128K,256B,它们都是什么?我的猜测是映射到物理地址的部分显存,控制寄存器和端口。2.CPU是如何访问显存的(拿写为例子),是通过物理地址直接访问(如果上面256M是映射的显存的话);还是通过控制寄存器间接访问,即先把要写的数据放到寄存器,再发出命令让显卡取走,最后显卡把来自寄存器的数据写入显存。3.很多人说显存的地址和内存的地址是统一编址的,那么CPU就可以直接访问显存,而不是通过控制器接口间接访问。我认为这是不对的,原因如下:我的显卡是1G的,但是下图显示只有256M地址空间分配给了显卡。4.我的显卡是1G的为什么只分配了256M的地址空间给它?5.要了解这方面的知识要看什么书或哪方面知识,求推荐。。。…
问题1:设备管理器属性里:内存范围,表示的是MMIO(内存映射)的范围,这个范围是通过PCI配置寄存器读出来的,Windows里,在驱动里用HalGetBusData可以获得,用户态好像没有直接访问的方法。关于PCI寄存器的描述,详见:鉴于篇幅原因,只贴一个图:其中你能看到的属性里的那些描述,都是Base Address Registers里的东西。I/O范围,表示的是I/O端口号,如果你熟悉汇编,你就知道汇编里有IN/OUT指令,这个I/O范围指的就是操作这个设备使用IN/OUT指令时的端口范围,这个范围跟内存就没什么关系了。有些I/O范围也写在PCI配置里,但是没有严格的规定。这段MMIO映射的内存大小代表什么意思呢?如果准确点说,我也不知道。因为显卡厂商一般不太愿意公开这方面的信息,从我看到的一些资料上看,各个厂商对MMIO映射的地址空间的描述也完全不同,没有任何规范可言。如果能拿到厂商的白皮书的话,也许还好办,但显卡厂商出于保密原因一般不给这方面的资料。一般来说,这里包含的内容有:1) 操作显卡的寄存器映射,用于发送控制命令,你的图里的那128K可能就是这个用途,这类地址一般都可以直接读写;2) 映射显卡的一部分显存(注意不是全部),你的图里的那256M可能就是这个用途,这类地址读写的特性不确定。问题2:Linux一般是向Frame Buffer()里写数据,然后显卡会周期性的取走数据。写之前可能会通过I/O端口或者其它MMIO地址去操作显卡寄存器发送一部分控制命令,具体是什么就不清楚了,厂商一般都保密。Windows应该采取的是类似的动作,Frame Buffer就是你截图里的那256M的一部分。问题3:你截图肯定不全,滚动条向下,你还能找到更多的MMIO内存地址范围,但一般情况下,不会把全部显存都映射过去。原因是显存可能很大,这么做太浪费地址空间,对于32位系统来说,地址空间实在有限。那么CPU是如何通过256M地址空间访问1G的显存的?原因是256M只是一个窗口,它可以把显存的某一段映射到内存中去,如果CPU要操作其它的位置,就发送控制命令改变映射的范围即可。这个技术有点类似于:问题4:MMIO映射空间小于实际显卡显存,有些时候是为了刷新更多帧的需要,以题主你自己的显卡为例,可以先映射1G空间里的第一个256M,把要显示的图像写进去,再映射第二个256M,把后面要显示的图像写进去……以此类推,这样就能操作完整的显存了,甚至这么做可以提前把未来要绘制的图像先写到显存里。不同的显卡每次能映射的最大显存数是不同的,可能是显卡本身DMA的限制,或者显卡本身处理能力有限,毕竟一次传输完一个完整显存大小的数据对于显卡来说负担还是太大了。问题5:你可以去了解一下PCI驱动的开发,但这方面真的没有书可以推荐,因为显卡技术涉及到的保密内容太多,其中很多东西甚至没有专利,只有一些小厂商公开了一部分2D加速的技术资料,但具体如何操作寄存器,如何渲染图像,资料实在太难找。-----------------------------------
的一些解释我不是特别认同,说CPU不能直接访问显存这个问题,我觉得说法不太严谨。一般来说,Linux里都是用Frame Buffer驱动来向显卡写数据的,Frame Buffer最终是把数据送到显存里,这个过程是可以直接操作显存的,只不过这个“操作”的概念很模糊,因为有些是用DMA把数据传走的,如果说不能直接访问,也不对,至少DMA控制器是看见这部分显存了,只不过直接用CPU的指令MOV肯定会失败。通常情况下操作显卡的动作是:第一步:准备一个命令字,通过I/O端口或者MMIO映射的寄存器发送;第二步:利用MMIO做DMA把内存里的东西送到显存里;第三步:如果有返回命令,这里可能要等待DMA中断完成之类的动作;如果是频繁的刷新图像,可能会有一个专门的线程不停的向MMIO映射的那部分显存里做DMA,目的就是不停的刷新显存,让显卡那边图像更新。统一编址的用途是给DMA控制器做DMA的时候用的,否则DMA操作起来会很麻烦。所以,严格的说,看具体什么样的显卡,有些显卡的显存是可以被CPU直接访问的,有些是不能的,但所有显存都是可以被DMA的。-----------------------------------题外话:显卡的具体操作技术都是保密的,很多显卡驱动也都是闭源的,包括在Linux上(有办法可以规避GPL),显卡的3D加速之类的具体如何操作硬件,基本上不会有厂商公布,所以对外表现出来的这些特性只能猜。一些有合作的企业会公布一些代码,但看代码有时候很难理解它的行为,所以不要指望说看几本书就会写显卡驱动,很不现实,要做显卡驱动最好是到显卡厂商那边去。-----------------------------------睡不着,做了一个比较有意思的实验:在虚拟机里写一个简单的驱动,工作在内核态,然后找到显卡的MMIO的第一段地址,在驱动里加一段代码去读这个地址,结果发现这段地址上的数据正好就是屏幕上显示的像素信息。VOID ReadGPUMem()
LARGE_INTEGER p;
p.QuadPart =
0xE8000000;
np = MmMapIoSpace(p, PAGE_SIZE, MmNonCached);
if (np != NULL)
KdPrint(("%08x %08X %08X %08X %08X\n", np, np[0], np[1], np[2], np[3]));
KdPrint(("Map fail\n"));
因为是读的前4个int,所以用截图键(print screen)截图比较了一下,像素点像素值完全等于我通过debug打印的数值,这说明0xE8000000这个地址就是我虚拟机上的显存地址。然后我又在打印的后面加了一句:RtlZeroMemory(np, PAGE_SIZE);
屏幕显示似乎没有变化,但通过截图键截图发现,屏幕的上面有一条黑线,正好是我ZeroMemory的位置:这说明至少虚拟机里显卡映射的这部分是肯定可以读写的,甚至会影响系统截图的效果。
推荐题主一本书。windows内核原理与实现。潘爱民著。
这个事情非常复杂,跟显卡类型有关,跟系统的架构有关,也跟操作系统有关。题主问的是windows系统,我不懂,不敢说。Linux略知一二,写过几年Linux的显卡驱动。但显卡驱动实在是太复杂了,这儿写不下,只能简单说一说,具体还是得查资料才能明白。好在设备驱动其实原理都差不多,相信能有一点帮助。古代的显卡就不去提它们了,只说现代的。一块PCIe显卡,首先是个PCIe设备,要理解CPU如何操作显卡,首先得对PCIe设备的操作有些基本概念。需要的知识主要是:1.地址空间。搞清楚内存空间(Memory Space)、I/O空间(I/O Space)和配置空间(Configuration Space)三者的区别和联系。可以先google和维基百科,详情则可以去翻大部头的PCI Express System Architecture,这里有电子版2.CPU配置设备的过程。一般来说,是到总线上扫一下(Enumerate)看看,找到设备之后,按照规定去检测(probe)、初始化(init)。最开始的配置工作,是在配置空间做的,这个配置工作可以设置好I/O空间,以及别的一些基础工作。之后,CPU就可以通过I/O来更加方便地操作设备了。这篇维基百科可以参考:然后回到题主的几个问题:***2.CPU是如何访问显存的(拿写为例子),是通过物理地址直接访问(如果上面256M是映射的显存的话);还是通过控制寄存器间接访问,即先把要写的数据放到寄存器,再发出命令让显卡取走,最后显卡把来自寄存器的数据写入显存。***首先CPU不会通过物理地址直接访问现存。物理地址是什么?是相对于逻辑地址和虚拟地址来说的,只用来访问系统内存。而显卡的现存,是在设备之中的,CPU无法直接给出其物理地址。实际上现代的显卡一般都自己带一个MMU,做内存管理用的,CPU可以配置显卡的MMU,但无法直接访问它。好吧其实也不绝对,因为不少移动设备的显卡并不是独立的,只是作为SoC的一个core(即GPU)存在,虽然也号称有显存,其显存却是由BIOS从系统内存中划分出固定的一块出来给它。于是乎,CPU是可以用物理地址访问显存的。这时候,CPU的MMU把一段虚地址空间映射到某一段物理内存上,GPU的MMU也把一段虚地址空间映射到同一段物理内存上,然后两边可以各自访问,比如CPU写了一段数据进去,然后让GPU去渲染显示。甚至CPU写了一段代码进去,请GPU去执行,即可以是3D渲染任务,也可以是利用GPU做一些加速运算。所以说,一般CPU不直接访问显存。但在3D加速、GPGPU等场景中,有时是CPU和GPU共享一段物理内存,此时数据传输主要通过内存,而寄存器主要是传递控制命令用的。需要注意的是,3D加速、OpenCL、CUDA等场景下一般也是不共享内存的,而是从系统内存把数据和程序传输到显卡中、运行之、最后将结果传输回系统内存。***3.很多人说显存的地址和内存的地址是统一编址的,那么CPU就可以直接访问显存,而不是通过控制器接口间接访问。我认为这是不对的,原因如下:我的显卡是1G的,但是下图显示只有256M地址空间分配给了显卡。***显存地址和内存地址统一编址,这个概念很含糊,一般可以算错。然而还是有例外,具体请查Aperture Graphics Memory这个概念,但这东西比较古老,学习意义不大。但是题主觉得显存是1G,而显示只有256M空间分配给了显卡,所以显存和内存地址一定不是统一编址的,这个逻辑也比较混乱。具体而言又不知从何说起,感觉题主对CPU如何访问内存还不是很清楚,这个需要翻一翻计算机体系结构的教材。然后也参考一下设备驱动开发的入门资料吧,Linux有Linux Device Driver,Windows我就不清楚了。问题1和4我不清楚,不懂Windows。声明:上述内容大多数是凭模糊的记忆写的,相信有不少错误,欢迎指正。论文还没写完,暂时没时间查证,也许以后会更新完善。谢谢阅读!
或许可以尝试另外一种方式来了解这个问题的本质,PC上的显卡太复杂,也过于封闭。在下在工作中接触了一款嵌入式"显卡",或许"显卡"不太适合这个名字,然而确实是一款很类似显卡工作模式的IC,可以说这款IC的设计者起码对PC的显卡有着足够的了解才去做设计的,思想完全是一致的。==========================================================================这款IC被称作是Embedded Video Engine(EVE),官方的数据手册和App Note都是开放的,可以去看看,芯片是FTDI的FT80x系列。==========================================================================一些概念:Display_List (DL)SwapREG & OBJ DRAM==========================================================================//DL显示开始
HAL_CmdBufIn(CMD_DLSTART);
HAL_CmdBufIn(CLEAR_COLOR_RGB(0, 0, 0));
HAL_CmdBufIn(CLEAR(1, 1, 1));
//线条加载显示
HAL_CmdBufIn(BEGIN(LINES));
HAL_CmdBufIn(CLEAR_COLOR_RGB(255, 255, 255));
HAL_CmdBufIn(LINE_WIDTH(1*16));
HAL_CmdBufIn(VERTEX2F(319*FT800_PIXEL_UNIT, 199*FT800_PIXEL_UNIT));
HAL_CmdBufIn(VERTEX2F(1*FT800_PIXEL_UNIT, 199*FT800_PIXEL_UNIT));
HAL_CmdBufIn(END());
//DL显示结束
HAL_CmdBufIn(DISPLAY());
HAL_CmdBufIn(CMD_SWAP);
HAL_BufToReg(RAM_CMD,0);
以上是完整的过程,是否有一些体会呢,建议对着手册看看一些细节的东西。
3.很多人说显存的地址和内存的地址是统一编址的,那么CPU就可以直接访问显存,而不是通过控制器接口间接访问。我认为这是不对的,原因如下:我的显卡是1G的,但是下图显示只有256M地址空间分配给了显卡。显存的地址和物理内存的地址是统一编址的意思是,它们逻辑上是属于一个地址空间,就是说对CPU来说,只要往总线上提供一个“数”,就可以明确向总线表达它到底想访问的是哪个地址。假如不是统一编址的,那就必须再提供一个“名字空间的标记”同这个“数”一起确定一个唯一的地址,这样带来的是给写软件的人的复杂性,硬件发展的一个目标之一就是向软件开发者屏蔽一切值得屏蔽的东西。至于通不通过独立显卡的控制器接口间接访问,那当然是要通过。你CPU就算要访问普通的DDR物理内存,也不是“直接”访问啊,不也是要先把访问请求送给PCI桥芯片来“间接”访问的吗。毕竟不管是物理内存还是独立显卡的显存,都不是直接连在CPU的地址总线上的。所以肯定要通过其他控制器。要了解这方面的知识要看什么书或哪方面知识,求推荐。。。个人觉得看书的帮助有限,不知道你要研究它们的目的是什么?你开车时要求对引擎,变速箱的工作原理了解吗?你如果是处女座不能接受你不理解的东西,那么最高效获取这些知识的方法就是去做相关东西的公司去上班,很快就可以了解了。
已有帐号?
无法登录?
社交帐号登录您的位置:
GPU是如何工作的?与CPU、DSP有什么区别?
发布时间:
来源:论坛
作者: 佚名
GPU,CPU,DSP,
 是显示卡的“心脏”,也就相当于CPU在电脑中的作用,它决定了该显卡的档次和大部分性能,同时也是2D显示卡和3D显示卡的区别依据。
  2D在处理3D图像和特效时主要依赖CPU的处理能力,称为“软加速”。3D显示是将三维图像和特效处理功能集中在显示芯片内,也即所谓的“硬件加速”功能。显示芯片通常是显示卡上最大的芯片(也是引脚最多的)。GPU使显卡减少了对CPU的依赖,并进行部分原本CPU的工作,尤其是在3D图形处理时。GPU所采用的核心技术有硬体T&L、立方环境材质贴图和顶点混合、纹理压缩和凹凸映射贴图、双重纹理四像素256位渲染引擎等,而硬体T&L技术可以说是GPU的标志。
  工作原理
  简单的说GPU就是能够从硬件上支持T&L(Transform and Lighting,多边形转换与光源处理)的显示芯片,因为T&L是3D渲染中的一个重要部分,其作用是计算多边形的3D位置和处理动态光线效果,也可以称为“几何处理”。一个好的T&L单元,可以提供细致的3D物体和高级的光线特效;只不过大多数PC中,T&L的大部分运算是交由CPU处理的(这就也就是所谓的软件T&L),由于CPU的任务繁多,除了T&L之外,还要做内存管理、输入响应等非3D图形处理工作,因此在实际运算的时候性能会大打折扣,常常出现显卡等待CPU的情况,其运算速度远跟不上今天复杂三维游的要求。即使CPU的工作频率超过 1GHz或更高,对它的帮助也不大,由于这是PC本身设计造成的问题,与CPU的速度无太大关系。
  GPU图形处理,可以大致分成 5 个步骤,如下图箭头的部分。分别为 vertex shader、primitive processing、rasterisation、fragment shader、testing and blending。
  三维座标绘图并产生屏幕输出的图形
  第一步,vertex shader。是将三维空间中数个(x,y,z)顶点放进 GPU 中。在这一步骤中,电脑会在内部模拟出一个三维空间,并将这些顶点放置在这一空间内部。接着,投影在同一平面上,也是我们将看到的画面。同时,存下各点距离投影面的垂直距离,以便做后续的处理。
  这个过程就像是本地球观看星星一般。地球的天空,就像是一个投影面,所有的星星,不管远近皆投影在同一面上。本地球的我们,抬起头来观看星星,分不出星星的远近,只能分辨出亮度。GPU 所投影出的结果,和这个情况类似。
  从地球所看到的星空,星星就像是投影到一球面上,除非使用特别的仪器,不然分不出星星和地球的距离
  第二步,primitive processing。是将相关的点链接在一起,以形成图形。在一开始输入数个顶点进入 GPU 时,程序会特别注记哪些点是需要组合在一起,以形成一线或面。就像是看星座的时候一样,将相关连的星星连起来,形成特定的图案。
[ 责任编辑:刘英 ]怎么看显卡好坏?我从设备处理器上看显卡.
是 一串英文字母+数字.
这些代表什么意思?谁举个例子
落落为君14221
用GPU-Z可以清楚看到 显卡的一切指标,还能看主板,内存.CPU的一切指标?很强大?.鲁大师靠边?
哥问的是显卡型号里,字母和数字代表的意思--
好吧。慢慢给你说说?显卡的显示芯片也就是核心代号决定显卡的性能?比如 HD4600 和HD5600显然显示芯片不一样?在其他完全一样的情况下肯定5600要强好多哦?就是因为显示芯片的问题?而在显示芯片一样的情况下 核心频率 显存频率 着色器频率 显存容量 显存位宽 越大越好
显存速度越小越好?而DDR5〉DDR4〉DDR3〉DDR2〉DDR
显存带宽=显存频率X显存位宽/8
显存位宽=显存颗粒位宽×显存颗粒数 这个管到的?其次还有DirectX 9.0〈DirectX 10.1〈DirectX 11
SP也是越多越好?当然这都是在显示芯片
显示代号一样才能比
还有厂家一般在显示颗粒和显示频率都处理了的?也就是它用了DDR5的显存颗粒 那莫他就会把显存频率降低?因为价格问题???不能单单看一方面???
为您推荐:
扫描下载二维码显卡与CPU_图文_百度文库
两大类热门资源免费畅读
续费一年阅读会员,立省24元!
上传于||文档简介
&&显​卡​与​C​P​U​ ​主​要​参​数​ ​对​比
阅读已结束,如果下载本文需要使用0下载券
想免费下载更多文档?
定制HR最喜欢的简历
你可能喜欢独立显卡、集成显卡和CPU核心显卡有什么区别
独立显卡、集成显卡和CPU核心显卡有什么区别
  处理器集成显卡就是指集成在cpu内部的显卡,通常称为核心显卡,如Intel酷睿i3 i5 i7系列处理器以及AMD APU系列处理器中多数都集成了显卡。主板集成显卡是指集成在主板北桥中的显卡,如g41或者880G主板上面的都集成显卡,目前处理器核心显卡性能已经抢先于主板集成的显卡,并且将显卡中心集成处理器中相比集成主板中优势更明显,因而主板集成显卡至今已经终结了,除了老平台外,估量已经不会再有主板集成显卡的新品出现了。   另外独立显卡就是有独立的显示芯片,自己自身是一张独立的卡的显卡,一般均有独立显卡,采用PCI接口插槽。其中cpu集成的核心显卡和主板集成显卡统称集成显卡,但CPU集成显卡和主板集成显卡是不一样的。总的说来,集成显卡的性能是比不是独立显卡,可以看做是买cpu或是买主板时送的显卡,所以可以了解为不花钱的。(其实钱还是算在板或是U里面了),但毕竟收体积于散热限制,集成显卡性能无法完全与独立显卡抗衡。   独立显卡要单独花钱买,游戏性能也比集成显卡要好得多了。独立显卡适用于对显卡要求较高的大型单机游戏的用户,当然就是要玩效果游戏的了,还有就是绘图或是方面的。集成显卡适用于只玩玩普通网络游戏和办公用户,这样整机预算可降落。另外随着处理器中心显卡技术在不断发展,CPU集成的中心显卡性能也在逐步加强,比方最前的AMD A8处理器内部的中心显卡性能就可以媲美目前一些独门独立显卡的性能,因而处理器中心显卡也可以运行多数游戏。装机显卡的选择:  装配电脑时一定要依据自己的应用对显卡的需求来选择使用集成显卡还是独立显卡。假如是入门或者办公用户使用集成显卡足够了,这样可降低电脑投入本钱,同时集成显卡还有更好的稳定性。目前处理器集成的中心显卡在高清以及性能上全面抢先主板的集成显卡,因而入门装机用户应该尽量选择处理器中心显卡,比方Intel入门的G530、G620以及AMD平台的入门A3、A4系列APU处理器就相当值得推荐。  假如是主流游戏用户,那么购置一款独立显卡也是必不可少的, 毕竟目前主流独立显卡才具备真正的主流游戏性能,对于购置独立显卡的用户,建议不要购置过于入门的低价独立显卡,目前400元以下的入门独立显卡基本已经没有必要购置了,由于处理器核心显卡的性能都与之相近,多花钱购置就不值得了,500元以上较主流显卡才值得考虑,目前主流游戏用户显卡选购的预算均在700元上下,这个价位的显卡一般均具有较强性能,可以满足各类主流游戏需求。  假如是发烧友或是主要玩大型单机游戏或是主要从事效果绘图视频编辑方面的话就一定得使用独立显卡而以一定要使用一线的显卡,并且价钱不能低于700元,不然跟集成的显卡没太大的区别,影响用户使用。&&&&&&&&&&&&&&&&&&
发表评论:
TA的最新馆藏[转]&[转]&[转]&[转]&}

我要回帖

更多关于 建筑学显卡和处理器 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信