求真百科歡迎當事人提供第一手真實資料,洗刷冤屈,終結網路霸凌。

變更

前往: 導覽搜尋

缓冲器

增加 11,671 位元組, 2 年前
创建页面,内容为“{| class="wikitable" align="right" |- | style="background: #66CCFF" align= center| '''<big>缓冲器</big> ''' |- |[[File:|缩略图|居中|[ 原图链接]]] |…”
{| class="wikitable" align="right"

|-

| style="background: #66CCFF" align= center| '''<big>缓冲器</big> '''

|-

|[[File:|缩略图|居中|[ 原图链接]]]

|-

| style="background: #66CCFF" align= center|

|-

| align= light|

|}

'''缓冲器'''在不同的领域有不同的含义。

在计算机领域,缓冲器指的是缓冲寄存器,它分输入缓冲器和输出缓冲器两种。前者的作用是将外设送来的数据暂时存放,以便处理器将它取走;后者的作用是用来暂时存放处理器送往外设的数据。有了数控缓冲器,就可以使高速工作的CPU与慢速工作的外设起协调和缓冲作用,实现数据传送的同步。由于缓冲器接在数据总线上,故必须具有三态输出功能。

在其他领域,还有电梯缓冲器,汽车弹簧缓冲器等,其目的是用于减缓速度,提高安全性和舒适性。<ref>[ ], , --</ref>

缓冲寄存器又称缓冲器,它分输入缓冲器和输出缓冲器两种。前者的作用是将外设送来的数据暂时存放,以便处理器将它取走;后者的作用是用来暂时存放处理器送往外设的数据。由于缓冲器接在数据总线上,故必须具有三态输出功能。

==释义:==

buffer英音:['bʌfə]美音:['bʌfɚ]

英文名:buffer  中文译名: 缓冲、缓冲器、缓冲液。

解释:

1、电信设备。在数据传输中,用来弥补不同数据处理速率速度差距的存储装置叫做缓冲器。把数据存放到缓冲器中的技术叫做缓冲。

2、生化术语。缓冲液:化学试剂。用于缓冲PH的变化,常用于生物工程实验,如DNA、RNA等物质的提取和提纯,酶的性质的测定,蛋白质的分离等等。缓冲:某些试剂具有使溶液在加入酸或碱性物质的时候PH变化不明显的作用,这种作用叫做缓冲。

主要用来完成介质液体或气体波动压力趋向于平稳的容器。

==专用语==

接口集成电路专用语

最基本线路构成的门电路存在着抗干扰性能差和不对称等缺点。为了克服这些缺点,可以在输出或输入端附加反相器作为缓冲级;也可以输出或输入端同时都加反相器作为缓冲级。这样组成的门电路称为带缓冲器的门电路。

带缓冲输出的门电路输出端都是1个反相器,输出驱动能力仅由该输出级的管子特性决定,与各输入端所处逻辑状态无关。而不带缓冲器的门电路其输出驱动能力与输入状态有关。另一方面。带缓冲器的门电路的转移特性至少是由3级转移特性相乘的结果,因此转换区域窄,形状接近理想矩形,并且不随输入使用端数的情况而变化、加缓冲器的门电路,抗干扰性能提高10%电源电压。此外,带缓冲器的门电路还有输出波形对称、交流电压增益大、带宽窄、输入电容比较小等优点。不过,由于附加了缓冲级,也带来了一些缺点。例如传输延迟时间加大,因此,带缓冲器的门电路适宜用在高速电路系统中。

==基本原理==

在CPU的设计中,一般输出线的直流负载能力可以驱动一个TTL负载,而在连接中,CPU的一根地址线或数据线,可能连接多个存储器芯片,但存储器芯片都为MOS电路,主要是电容负载,直流负载远小于TTL负载。故小型系统中,CPU可与存储器直接相连,在大型系统中就需要加缓冲器。

任何程序或数据要为CPU所使用,必须先放到主存储器(内存)中,即CPU只与主存交换数据,所以主存的速度在很大程度上决定了系统的运行速度。程序在运行期间,在一个较短的时间间隔内,由程序产生的地址往往集中在存储器的一个很小范围的地址空间内。指令地址本来就是连续分布的,再加上循环程序段和子程序段要多次重复执行,因此对这些地址中的内容的访问就自然的具有时间集中分布的倾向。数据分布的集中倾向不如程序这么明显,但对数组的存储和访问以及工作单元的选择可以使存储器地址相对地集中。这种对局部范围的存储器地址频繁访问,而对此范围外的地址访问甚少的现象被称为程序访问的局部化(Locality of Reference)性质。由此性质可知,在这个局部范围内被访问的信息集合随时间的变化是很缓慢的,如果把在一段时间内一定地址范围被频繁访问的信息集合成批地从主存中读到一个能高速存取的小容量存储器中存放起来,供程序在这段时间内随时采用而减少或不再去访问速度较慢的主存,就可以加快程序的运行速度。这个介于CPU和主存之间的高速小容量存储器就称之为高速缓冲存储器,简称Cache。不难看出,程序访问的局部化性质是Cache得以实现的原理基础。同理,构造磁盘高速缓冲存储器(简称磁盘Cache),也将提高系统的整体运行速度CPU一般设有一级缓存(L1 Cache)和二级缓存(L2 Cache)。一级缓存是由CPU制造商直接做在CPU内部的,其速度极快,但容量较小,一般只有十几K。PⅡ以前的PC一般都是将二级缓存做在主板上,并且可以人为升级,其容量从256KB到1MB不等,而PⅡ CPU则采用了全新的封装方式,把CPU内核与二级缓存一起封装在一只金属盒内,并且不可以升级。二级缓存一般比一级缓存大一个数量级以上,另外,在CPU中,已经出现了带有三级缓存的情况。

==高速缓冲存储器==

高速缓冲存储器,即Cache。我们知道,数据分布的集中倾向不如程序这么明显,如果把在一段时间内一定地址范围被频繁访问的信息集合成批地从主的系统中,CPU访问数据时,在Cache中能直接找到的概率,它是Cache的一个重要指标,与Cache的大小、替换算法、程序特性等因素有关。增加Cache后,CPU访问主存的速度是可以预算的,64KB的Cache可以缓冲4MB的主存,且命中率都在90%以上。以主频为100MHz的CPU(时钟周期约为10ns)、20ns的Cache、70ns的RAM、命中率为90%计算,CPU访问主存的周期为:有Cache时,20×0.9+70×0.1=34ns;无Cache时,70×1=70ns。由此可见,加了Cache后,CPU访问主存的速度大大提高了,但有一点需注意,加Cache只是加快了CPU访问主存的速度,而CPU访问主存只是计算机整个操作的一部分,所以增加Cache对系统整体速度只能提高10~20%左右。

java.nio.Buffer直接已知子类:ByteBuffer,CharBuffer,DoubleBuffer,FloatBuffer,IntBuffer,LongBuffer,ShortBufferpublic abstract classBufferextendsObject一个用于特定基本类型数据的容器。

缓冲区是特定基本类型元素的线性有限序列。除内容外,缓冲区的基本属性还包括容量、限制和位置:

缓冲区的容量是它所包含的元素的数量。缓冲区的容量不能为负并且不能更改。

缓冲区的限制是第一个不应该读取或写入的元素的索引。缓冲区的限制不能为负,并且不能大于其容量。

缓冲区的位置是下一个要读取或写入的元素的索引。缓冲区的位置不能为负,并且不能大于其限制。

对于每个非 boolean 基本类型,此类都有一个子类与之对应。

==传输数据==

此类的每个子类都定义了两种获取和放置操作:

相对操作读取或写入一个或多个元素,它从当前位置开始,然后将位置增加所传输的元素数。如果请求的传输超出限制,则相对获取操作将抛出BufferUnderflowException,相对放置操作将抛出BufferOverflowException;这两种情况下,都没有数据被传输。

绝对操作采用显式元素索引,该操作不影响位置。如果索引参数超出限制,绝对获取操作和放置操作将抛出IndexOutOfBoundsException。

当然,通过适当通道的 I/O 操作(通常与当前位置有关)也可以将数据传输到缓冲区或从缓冲区传出数据。

==做标记和重置==

缓冲区的标记是一个索引,在调用reset方法时会将缓冲区的位置重置为该索引。并非总是需要定义标记,但在定义标记时,不能将其定义为负数,并且不能让它大于位置。如果定义了标记,则在将位置或限制调整为小于该标记的值时,该标记将被丢弃。如果未定义标记,那么调用reset方法将导致抛出InvalidMarkException。

==不变式==

标记、位置、限制和容量值遵守以下不变式:

0<=标记<=位置<=限制<=容量新创建的缓冲区总有一个 0 位置和一个未定义的标记。初始限制可以为 0,也可以为其他值,这取决于缓冲区类型及其构建方式。一般情况下,缓冲区的初始内容是未定义的。

==清除反转重绕==

除了访问位置、限制、容量值的方法以及做标记和重置的方法外,此类还定义了以下可对缓冲区进行的操作:

clear()使缓冲区为一系列新的通道读取或相对放置操作做好准备:它将限制设置为容量大小,将位置设置为 0。

flip()使缓冲区为一系列新的通道写入或相对获取操作做好准备:它将限制设置为当前位置,然后将位置设置为 0。

rewind()使缓冲区为重新读取已包含的数据做好准备:它使限制保持不变,将位置设置为 0。

==只读缓冲区==

每个缓冲区都是可读取的,但并非每个缓冲区都是可写入的。每个缓冲区类的转变方法都被指定为可选操作,当对只读缓冲区调用时,将抛出ReadOnlyBufferException。只读缓冲区不允许更改其内容,但其标记、位置和限制值是可变的。可以调用其isReadOnly方法确定缓冲区是否为只读。

==线程安全==

多个当前线程使用缓冲区是不安全的。如果一个缓冲区由不止一个线程使用,则应该通过适当的同步来控制对该缓冲区的访问。

==调用链==

指定此类中的方法返回调用它们的缓冲区(否则它们不会返回任何值)。此操作允许将方法调用组成一个链;例如,语句序列

b.flip(); b.position(23); b.limit(42);可以由以下更紧凑的一个语句代替 b.flip().position(23).limit(42);

从以下版本开始:1.4

==电梯缓冲器==

缓冲器是电梯安全系统的最后一个环节,在电梯出现故障或事故蹲底时起到缓冲的作用。从而缓解电梯或电梯里的人免受直接的撞击。

电梯缓冲器主要分为:油压缓冲器、弹簧缓冲器和聚氨酯缓冲器,其中油压缓冲器由于适应各种速度吨位要求应用比较普遍,弹簧缓冲器用于低速电梯。

==汽车弹簧缓冲器==

汽车弹簧缓冲器(缓冲胶)是一种高弹性高韧度的橡胶类制品,属汽车改装类配件。用来安装在汽车悬挂系统的螺旋弹簧处,主要起到缓冲避震作用并对避震器起来保护,这种功能是一种物理作用。

缓冲胶外观是有开口的圆环状,上下各有一条凹槽(用来容置螺旋弹簧),侧边有两个、三个或多个孔位。根据弹簧间距的标准规格,缓冲胶分为 A+A、A、B、C、D、E、F 七种标准型号。理论上,这七款型号可以囊括全球极大部分螺旋弹簧避震车型所需。

缓冲胶亦有称之为缓冲器、缓冲垫、缓冲块、减震胶、避震胶等等,最广泛最正确的全称是“汽车弹簧缓冲胶”,英文名称是 Car Spring Buffer Retainer

== 参考来源 ==

{{reflist}}

[[Category: ]]
26,395
次編輯