版权归原作者所有,如有侵权,请联系我们

[科普中国]-扇区缓冲器

科学百科
原创
科学百科为用户提供权威科普内容,打造知识科普阵地
收藏

概述

在所有的读写操作中都会使用扇区缓冲器来对数据进行临时保存。扇区缓冲器减少了与主机进行的数据交换及从介质中进行数据读写的速度。由于扇区总是作为一个整体进行读写的,所以速度的减少是不可避免的。

最简单的情况是,扇区缓冲器就是IDE控制器上RAM(即随机存储器)中的一个区段。如果扇区缓冲器仅仅能够与介质或主机进行数据交换,我们称之为单端缓冲器。如果扇区缓冲器能够同时接收主机的数据并把数据写入磁盘中,我们称之为双端缓冲器,如右图所示。

双端缓冲器必须包含多于一个扇区的容量。因为只有当整个扇区接收了数据之后,控制器才可以开始向介质中发送数据。如果在向介质发送数据的同时,扇区缓冲器还可以接收主机的数据信息,那么系统的吞吐量将会大大提高。

再举一个比较深的例子,假设我们要读取连续的多个扇区的数据,使用单端缓冲器的驱动器就不得不使用交叉的方法,否则当第一个扇区读取完毕的时候,紧接着下一个扇区的数据将会丢失。因为对于双端缓冲器来说,当缓冲器的第二个扇区从介质中读取数据的同时,主机可以读取缓冲器中的第一个扇区的数据,所以单端的吞吐量大约是双端的一半左右。

一个双端缓冲器对主机来说,就像是一个包含了当前扇区数据的扇区缓冲器。从某种意义上讲,扇区缓冲器就像是主机和介质进行数据交换的门窗。只不过这个门窗必须不断地移动,以使门窗中的数据和当前地址寄存器中的内容保持一致。

扇区缓冲器和主机之间的通信是通过控制器(PIO)中断数据寄存器以字节或字的方式进行的。另外,这种通信也可以通过DMA进行直接内存传输。1

分类单端缓冲器单端缓冲器的基本结构并没有随着工艺尺寸的缩小而变化。主要的变化是每个工艺节点都必须支持的更高的信号速率。如果采用固定的接口,如1.8V STTL,性能问题将会减少。这使得输出缓冲器可以采用更薄的栅氧器件进行设计,提供更好的性能和更低的电容。一个更典型的情况是要求核心芯片能适应3.3V和1.5V的I/O,需要采用多个不同的I/O标准。设计者只能从下述两种方案中选用一种:使用可以支持更高电压的氧化层厚度同时能容忍低电压标准的性能问题,或使用较薄的氧化层器件同时采用复杂的结构以避免器件受到3.3V标准的过电压条件。氧化层较厚的器件所具有的较高阈值电压和接口电路要求的较低电源电压会引起性能问题。

右图是一种层叠输出缓冲器的简化电路图。当时开发的这种结构是为了用1.8V的晶体管支持1.8V、2.5V和3.3V的I/0标准。层叠I/O结构可以采用较薄氧化层器件支持多1/O标准,具有改善I/O性能的潜能。通过给 提供适当的偏置,可以产生一个受控的阻抗,实现板级信号和负载的匹配,减少反射,改善信号完整性。利用层叠结构的优点并采用一组器件实现期望的阻抗,可以改善输出阻抗控制。这种方式存在的问题包括热插孔保护、ESD保护和不使用缓冲器时的三态输出。2

双端缓冲器如果扇区缓冲器能够同时接收主机的数据并写入磁盘,则称为双端缓冲器。双端缓冲器必须包含多个扇区的容量。只有当整个扇区接收了数据之后,控制器才开始向介质中发送数据。如果在向介质传送数据的同时,扇区缓冲器还可以接收主机的数据信息,那么系统的吞吐率将大大提高。3

扇区缓冲任何文件系统的一个关键问题是怎样很好地执行。所有的应用程序的文件I/O都是通过文件系统来做的,因而常常更多地进行规模不大的性能加强。相对于计算机的速度,文件操作慢多了。从磁盘读一个扇区比在存储器中复制同样数量的数据慢100~200倍。PC上的一个典型磁盘存取操作用时在40~80ms的范围内,这取决于磁盘上扇区的位置上、读/写磁头的位置和磁盘的速度。一个512字节的存储器到存储器的移动在8MHE的机器上大约用时是0.4ms。

一种常见的性能策略是用快速的存储器到存储器拷贝代替较慢的磁盘存取。通过在存储器中保存磁盘扇区的一个“存储池",文件系统可以记住文件的这些内容,当把场区写进磁盘时,先修改这个存储器里的拷贝。当一个程序请求文件系统读数时,首先检查这个存储池。扇区的读请求在这个池中进行完全可以,实际上并未读磁盘。数据被简单地从系统存储器拷到应用程序缓冲区中。这种技术叫扇区缓冲(sector bu ffering)。

扇区缓冲的最大值,一般设置为512。4

扇区缓冲区扇区缓冲区是读写操作数据临时存放区,该缓冲区以极高的速度与处理器交换数据。一般情况下,扇区缓冲区由RAM构成,设置在驱动器内部。如果扇区缓冲区只能分时与处理器和磁盘交换数据,这种缓冲区称为单端口扇区缓冲区;反之,如果一种扇区缓冲区住从处理器接收数据的同时,又可以将数据写到磁盘上,这种缓冲区称为双端口扇区缓冲区。

双端口缓冲Ⅸ可以保存多个扇区的数据,只有当一个完整的扇Ⅸ数据接收完时,磁盘控制器才将数据写到磁盘上,如果在写盘期间,缓冲区可以从处理器接收下一个扇区的数据,整个磁盘系统的性能将大大改善。

如果使用单端口缓冲区读连续扇区,当第一个扇区读入扇区缓冲区后,再由处理器从缓冲区内把数据读入内存,由于磁头的惯性,磁头会滑过接下来的扇区,必须采用交错技术。如果采用双端口缓冲区,处理器在从缓冲区读数据的同时,控制器可以从磁盘上读下一个扇区,可以极大地提高了磁盘的数据速率。5