星期四, 四月 09, 2009

ROM,RAM,DDR,DDR2,Flash

ROM和RAM指的都是半导体存储器,ROM是Read Only Memory的缩写,RAM是Random Access Memory的缩写。ROM在系统停止供电的时候仍然可以保持数据,而RAM通常都是在掉电之后就丢失数据,典型的RAM就是计算机的内存。

RAM有两大类,一种称为静态RAM(Static RAM/SRAM),SRAM速度非常快,是目前读写最快的存储设备了,但是它也非常昂贵,所以只在要求很苛刻的地方使用,譬如CPU的一级缓冲,二级缓冲。SRAM 利用寄存器来存储信息,所以一旦掉电,资料就会全部丢失,只要供电,它的资料就会一直存在,不需要动态刷新,所以叫静态随机存储器。

另一种称为动态RAM(Dynamic RAM/DRAM),DRAM保留数据的时间很短,速度也比SRAM慢,不过它还是比任何的ROM都要快,但从价格上来说DRAM相比SRAM要便宜很多,计算机内存就是DRAM的。DRAM 利用MOS管的栅电容上的电荷来存储信息,一旦掉电信息会全部的丢失,由于栅极会漏电,所以每隔一定的时间就需要一个刷新机构给这些栅电容补充电荷,并且每读出一次数据之后也需要补充电荷,这个就叫动态刷新,所以称其为动态随机存储器。由于它只使用一个MOS管来存信息,所以集成度可以很高,容量能够做的很大。SDRAM(Synchronous Dynamic Random Access Memory)比它多了一个与CPU时钟同步。

内存工作原理:

内存是用来存放当前正在使用的(即执行中)的数据和程序,我们平常所提到的计算机的内存指的是动态内存(即DRAM),动态内存中所谓的"动态",指的是当我们将数据写入DRAM后,经过一段时间,数据会丢失,因此需要一个额外设电路进行内存刷新操作。

具体的工作过程是这样的:一个DRAM的存储单元存储的是0还是1取决于电容是否有电荷,有电荷代表1,无电荷代表0。但时间一长,代表1的电容会放电,代表0的电容会吸收电荷,这就是数据丢失的原因;刷新操作定期对电容进行检查,若电量大于满电量的1/2,则认为其代表1,并把电容充满电;若电量小于1/2,则认为其代表0,并把电容放电,藉此来保持数据的连续性。

 

DDR是一种继SDRAM后产生的 内存技术,DDR,英文原意为"Double Data Rate",顾名思义,就是双数据传输模式。之所以称其为"双",也就意味着有"单",我们日常所使用的SDRAM都是"单数据传输模式"。这种内存的特性是在一个内存时钟周期中,在一个方波上升沿时进行一次操作(读或写),而DDR则引用了一种新的设计,其在一个内存时钟周期中,在方波上升沿时进行一次操作,在方波的下降沿时也做一次操作,之所以在一个时钟周期中,DDR则可以完成SDRAM两个周期才能完成的任务,所以理论上同速率的DDR内存与SDR内存相比,性能要超出一倍,可以简单理解为100MHZ DDR=200MHZ SDR。

严格的说DDR应该叫DDR SDRAM,人们习惯称为DDR,部分初学者也常看到DDR SDRAM,就认为是SDRAM。DDR SDRAM是Double Data Rate Synchronous Dynamic Random Access Memory的缩写,是双倍速率同步动态随机存储器的意思。DDR内存是在SDRAM内存基础上发展而来的,仍然沿用SDRAM生产体系,因此对于内存厂商而言,只需对制造普通SDRAM的设备稍加改进,即可实现DDR内存的生产,可有效的降低成本。

SDRAM在一个时钟周期内只传输一次数据,它是在时钟的上升期进行数据传输;而DDR内存则是一个时钟周期内传输两次次数据,它能够在时钟的上升期和下降期各传输一次数据,因此称为双倍速率同步动态随机存储器。DDR内存可以在与SDRAM相同的总线频率下达到更高的数据传输率。

DDR2(Double Data Rate 2) SDRAM是由JEDEC(电子设备工程联合委员会)进行开发的新生代内存技术标准,它与上一代DDR内存技术标准最大的不同就是,虽然同是采用了在时钟的上升/下降延同时进行数据传输的基本方式,但DDR2内存却拥有两倍于上一代DDR内存预读取能力(即:4bit数据读预取)。换句话说,DDR2内存每个时钟能够以4倍外部总线的速度读/写数据,并且能够以内部控制总线4倍的速度运行。

 

FLASH存储器又称闪存,它结合了ROM和RAM的长处,不仅具备电子可擦除可编程(EEPROM)的性能,还不会断电丢失数据同时可以快速读取数据(NVRAM的优势),U盘和MP3里用的就是这种存储器。在过去的20年里,嵌入式系统一直使用ROM(EPROM:可擦除可编程ROM)作为它们的存储设备,然而近年来Flash全面代替了ROM(EPROM)在嵌入式系统中的地位,用作存储Bootloader以及操作系统或者程序代码或者直接当硬盘使用(U盘)。

Flash ROM 是利用浮置栅上的电容存储电荷来保存信息,因为浮置栅不会漏电,所以断电后信息仍然可以保存。也由于其机构简单所以集成度可以做的很高,容量可以很大。Flash rom写入前需要用电进行擦除,而且擦除不同与EEPROM可以以byte(字节)为单位进行,flash rom只能以sector(扇区)为单位进行。不过其写入时可以byte为单位。flash rom主要用于bios,U盘,Mp3等需要大容量且断电不丢数据的设备。



Orignal From: ROM,RAM,DDR,DDR2,Flash

星期三, 四月 08, 2009

PCI-Express

PCIE

继PCI (个人计算机扩展总线接口规范)之后的规范。PCI 属于并行传输方式,即使用多条信号线同时并行传输多位数据,但 PCI Express 采用的是每次 1 位的串行传输方式,其最高数据传输速度为 8Gbit / s ,最大电缆长度 3m 。开发阶段的代号是 3GIO 。

PCI Express总线的起源和现状

2001年春季的IDF上Intel正式公布PCI Express,是取代PCI总线的第三代I/O技术,也称为3GIO。该总线的规范由Intel支持的AWG(Arapahoe Working Group)负责制定。2002 年4月17日,AWG正式宣布3GIO 1.0规范草稿制定完毕,并移交PCI-SIG进行审核。开始的时候大家都以为它会被命名为Serial PCI(受到串行ATA的影响),但最后却被正式命名为PCI Express。2006年正式推出Spec2.0(2.0规范)。

PCI Express总线技术的演进过程,实际上是计算系统I/O接口速率演进的过程。PCI总线是一种33MHz@32bit或者66MHz@64bit的并行总线,总线带宽为133MB/s到最大533MB/s,连接在PCI总线上的所有设备共享133MB/s~533MB/s带宽。这种总线用来应付声卡、10/100M网卡以及USB 1.1等接口基本不成问题。随着计算机和通信技术的进一步发展,新一代的I/O接口大量涌现,比如千兆(GE)、万兆(10GE)的以太网技术、4G/8G的FC技术,使得PCI总线的带宽已经无力应付计算系统内部大量高带宽并行读写的要求,PCI总线也成为系统性能提升的瓶颈,于是就出现了PCI Express总线。PCI Express总线技术在当今新一代的存储系统已经普遍的应用。PCI Express总线能够提供极高的带宽,来满足系统的需求。

目前,PCI-E 3.0规范也已经确定,其编码数据速率,比同等情况下的PCI-E 2.0规范提高了一倍,X32端口的双向速率高达320Gbps。

PCI Express总线的技术优势

PCI总线的最大优点是总线结构简单、成本低、设计简单,但是缺点也比较明显:

1) 并行总线无法连接太多设备,总线扩展性比较差,线间干扰将导致系统无法正常工作;

2) 当连接多个设备时,总线有效带宽将大幅降低,传输速率变慢;

3) 为了降低成本和尽可能减少相互间的干扰,需要减少总线带宽,或者地址总线和数据总线采用复用方式设计,这样降低了带宽利用率。 PCI Express总线是为将来的计算机和通讯平台定义的一种高性能,通用I/O互连总线。

与PCI总线相比,PCI Express总线主要有下面的技术优势:

1) 是串行总线,进行点对点传输,每个传输通道独享带宽。

2) PCI Express总线支持双向传输模式和数据分通道传输模式。其中数据分通道传输模式即PCI Express总线的x1、x2、x4、x8、x12、x16和x32多通道连接,x1单向传输带宽即可达到250MB/s,双向传输带宽更能够达到500MB/s,这个已经不是普通PCI总线所能够相比的了。

3) PCI Express总线充分利用先进的点到点互连、基于交换的技术、基于包的协议来实现新的总线性能和特征。电源管理、服务质量(QoS)、热插拔支持、数据完整性、错误处理机制等也是PCI Express总线所支持的高级特征。

4) 与PCI总线良好的继承性,可以保持软件的继承和可靠性。PCI Express总线关键的PCI特征,比如应用模型、存储结构、软件接口等与传统PCI总线保持一致,但是并行的PCI总线被一种具有高度扩展性的、完全串行的总线所替代。

5) PCI Express总线充分利用先进的点到点互连,降低了系统硬件平台设计的复杂性和难度,从而大大降低了系统的开发制造设计成本,极大地提高系统的性价比和健壮性。从下面表格可以看出,系统总线带宽提高同时,减少了硬件PIN的数量,硬件的成本直接下降。

PCI Express的硬件协议

PCIe的连接是建立在一个双向的序列的(1-bit)点对点连接基础之上,这称之为"传输通道"。与PCI 连接形成鲜明对比的是PCI是基于总线控制,所有设备共同分享的单向32位并行总线。PCIe是一个多层协议,由一个对话层,一个数据交换层和一个物理层构成。物理层又可进一步分为逻辑子层和电气子层。逻辑子层又可分为物理代码子层(PCS)和介质访问控制子层(MAC)。

物理层

于使用电力方面,每组流水线使用两个单向的低电压微分信号(LVDS)合计达到2.5兆波特。传送及接收不同数据会使用不同的传输通道,每一通道可运作四项资料。两个PCIe设备之间的连接成为"链接",这形成了1组或更多的传输通道。各个设备最少支持1传输通道(x1)的链接。也可以有2,4,8,16,32个通道的链接。这可以更好的提供双向兼容性。(x2模式将用于内部接口而非插槽模式)PCIe卡能使用在至少与之传输通道相当的插槽上(例如x1接口的卡也能工作在x4或x16的插槽上)。一个支持较多传输通道的插槽可以建立较少的传输通道(例如8个通道的插槽能支持1个通道)。PCIe设备之间的链接将使用两设备中较少通道数的作为标准。一个支持较多通道的设备不能在支持较少通道的插槽上正常工作,例如x4接口的卡不能在x1的插槽上正常工作,但它能在x4的插槽上只建立1个传输通道(x1)。PCI-Express卡能在同一数据传输通道内传输包括中断在内的全部控制信息。这也方便了与PCI的兼容。多传输通道上的数据传输采取交叉存取,这意味着连续字节交叉存取在不同的通道上。这一特性被称之为"数据条纹",需要非常复杂的硬件支持连续数据的同步存取,也对链接的数据吞吐量要求极高。由于数据填充的需求,数据交叉存取不需要缩小数据包。与其它高速数传输协议一样,时钟信息必须嵌入信号中。在物理层上,PCIe采用常见的8B/10B代码方式来确保连续的1和0字符串长度符合标准,这样保证接收端不会误读。编码方案用10位编码比特代替8个未编码比特来传输数据,占用20%的总带宽。有些协议(如SONET)使用另外的编码结构如"不规则"在数据流中嵌入时钟信息。PCIe的特性也定义了一种"不规则化"的运算方法,但这种方法与SONET完全不同,它的方法主要用来避免数据传输过程中的数据重复而出现数据散射。第一代PCIe采用2.5兆位单信号传输率,PCI-SIG计划在未来版本中增强到5~10兆位。

数据链接层

数据链接层采用按序的交换层信息包(Transaction Layer Packets,TLPs),是由交换层生成,按32位循环冗余校验码(CRC,本文中用LCRC)进行数据保护,采用著名的协议(Ack and Nak signaling)的信息包。TLPs能通过LCRC校验和连续性校验的称为Ack(命令正确应答);没有通过校验的称为Nak(没有应答)。没有应答的TLPs或者等待超时的TLPs会被重新传输。这些内容存储在数据链接层的缓存内。这样可以确保TLPs的传输不受电子噪音干扰。

Ack和Nak信号由低层的信息包传送,这些包被称为数据链接层信息包(Data Link Layer Packet,DLLP)。DLLP也用来传送两个互连设备的交换层之间的流控制信息和实现电源管理功能。

交换层

PCI Express采用分离交换(数据提交和应答在时间上分离),可保证传输通道在目标端设备等待发送回应信息传送其它数据信息。它采用了可信性流控制。这一模式下,一个设备广播它可接收缓存的初始可信信号量。链接另一方的设备会在发送数据时统计每一发送的TLP所占用的可信信号量,直至达到接收端初始可信信号最高值。接收端在处理完毕缓存中的TLP后,它会回送发送端一个比初始值更大的可信信号量。可信信号统计是定制的标准计数器,这一算法的优势,相对于其他算法,如握手传输协议等,在于可信信号的回传反应时间不会影响系统性能,因为如果双方设备的缓存足够大的话,是不会出现达到可信信号最高值的情况,这样发送数据不会停顿。第一代PCIe标称可支持每传输通道单向每秒250兆字节的数据传输率。这一数字是根据物理信号率2500兆波特除以编码率(10位/每字节)计算而得。这意味着一个16通道(x16)的PCIe卡理论上可以达到单向250*16=4000兆字节/秒(3.7G兆字节/每秒)。实际的传输率要根据数据有效载荷率,即依赖于数据的本身特性,这是由更高层(软件)应用程序和中间协议层决定。PCI Express与其它高速序列连接系统相似,它依赖于传输的鲁棒性(CRC校验和Ack算法)。长时间连续的单向数据传输(如高速存储设备)会造成>95%的PCIe通道数据占用率。这样的传输受益于增加的传输通道,但大多数应用程序如USB或以太网络控制器会把传输内容拆成小的数据包,同时还会强制加上确认信号。这类数据传输由于增加了数据包的解析和强制中断,降低了传输通道的效率。这种效率的降低并非只出现在PCIe上。

制式标准

半高卡微型卡: 代替Mini PCI卡 (支持x1 PCIe, USB 2.0和SMBus总线接口) 快速卡: 类似PCMCIA接口标准(支持x1 PCIe,USB 2.0;支持热插拔) 先进TCA卡: 代替CompactPCI卡

竞争协议

基于高速序列构架产生了很多传输标准。包括HyperTransport,InfiniBand,RapidIO和StarFabric等等。这些均有业界的不同企业支持,背后也都有大量的资金投入标准的研究开发,所以每一标准都声称自己与众不同,独占优势。主要的差异在于可扩展性、灵活性与反应时间、单位成本的取舍平衡各不相同。其中的一个例子是在传输包上增加一个复杂的头信息以支持复杂路由传输(PCI Express不支持这种方式)。这样的信息增加降低了接口的有效带宽也使传输更复杂,但是相应创造了新的软件支持此功能。这种架构下需要软件追踪网络拓扑结构的变化以实现系统支持热插拔。InfiniBand 和 StarFabric 标准即能实现这以功能。另一个例子是缩小信息包以减少反应时间。较小的信息包意味着包头占用了包的更大百分比,这样又降低了有效带宽。能实现此功能的标准是RapidIO 和HyperTransport。PCI Express取中庸之道,定位于设计成一种系统互连接口(总线)而非一种设备接口或路由网络协议。另外为了针对软件透明,它的设计目标限制了它作为协议,也在某种程度上增加了它的反应时间。

PCIE2.0和PCIE16插槽相比的不同和性能提升

现在的P43/45都是2.0的PCIE16插槽,2.0会比1.0电压高。

(1)2.0显卡插1.0显卡插槽

2.0的显卡可以插在1.0的PCIE16插槽上,但是需要外接6pin电源,现在的2.0显卡(HD3650/3850等)都有6pin电源接口,就是为了满足1.0PCIE16插槽的要求,而现在的主板或电源都有为显卡准备6pin电源接口,把两个接口对接就可以了。

(2)1.0显卡插2.0显卡插槽

1.0的显卡是不可以插在支持2.0的插槽上的,因为过大的电压会把1.0的显卡烧毁。

(3)2.0显卡插2.0显卡插槽

这里有个很奇怪的现象,原则上说,2.0显卡插上去后不需要外接6pin电源接口,但是实际情况是,不接的话会很不稳定,这个我也不知道为什么,所以现在的2.0显卡插2.0显卡插槽也都还有外接6pin电源。

所以,对于2.0显卡来说,提供1.0PCIE16插槽的主板(如P35)和提供2.0PCIE16插槽的主板几乎没有区别,至少在现阶段。



Orignal From: PCI-Express