APP下载

乒乓缓存在地震采集系统中的应用*

2018-01-11

石油管材与仪器 2017年6期
关键词:拖缆存储器时序

(中海油田服务股份有限公司物探事业部 天津 300450)

·开发设计·

乒乓缓存在地震采集系统中的应用*

邱永成

(中海油田服务股份有限公司物探事业部 天津 300450)

由于数据处理系统的吞吐量和响应时间的限制,地震数据采集无法进行连续响炮,两炮之间必须要有一定的时间间隔,即死时间。为了消除死时间,设计并实现了一种地震数据的乒乓缓存机制,在乒乓缓存的同时进行了地震数据的时序道序转换。详细介绍了乒乓缓存控制器的硬件和FPGA设计方法。硬件上实现乒乓缓存机制和时序道序转换能够消除地震采集系统的死时间,降低上位机软件的开发难度,提高采集仪器的稳定性和实时性。

地震数据采集;乒乓缓存;时序转道序;FPGA

0 引 言

随着海上石油勘探技术的不断深入,面对越来越复杂的勘探目标,常规的地震勘探技术已无法满足新的勘探需求,高精度高密度地震勘探技术[1,2]应运而生,其分辨率和精确度都得到了大大的提高。海亮系统是由中海油田服务股份有限公司自主研发的海上高精度拖缆地震数据采集系统,该系统采用了24位模数转换和高速数据实时传输技术,能实现4条拖缆的地震数据实时采集和记录。

本文研究的内容为海亮系统的船载接口电路对接收的地震数据进行处理的过程中为保证数据采集的连续性所采用的数据缓存技术和时序转道序技术。在地震数据采集过程中,数据是连续上传,由于数据处理系统的吞吐量和响应时间限制,导致了两炮地震数据之间需要有一定的时间间隔(即死时间),为了降低和消除死时间,引入了乒乓缓存技术。缓存技术[3]是分布式计算环境中的重要技术,它可以改善系统的整体性能(如吞吐量、响应时间等),在高速数据采集系统中通常在存储设备的前端加一级缓存,可以使低速存储设备无丢失地记录高速数据;乒乓缓存是一种重要的数据缓存技术,它通过建立两个缓冲区,一个缓冲区进行读,另一个缓冲区进行写,实现数据的实时读写能力,达到数据无缝操作,从而消除数据处理死时间。时序转道序技术是地震数据采集系统中特有的技术,在采集过程中为了保证数据实时性,地震数据是按照采集的时间顺序上传的,而在地震数据显示、存储和记录过程中需要按照采集通道的顺序进行,因此需要把时序的数据转换成道序的数据,也就是需要进行时序道序转换;在传统的地震采集系统中,时序道序转换是在上位机软件上实现的,转换过程会占用大量的内存和CPU资源,本文的时序道序转换通过FPGA和DDR2芯片在硬件上实现,这样可以提高转换速度降低上位机软件的开发难度。

1 海上地震数据采集流程简介

海上地震数据正常采集、传输、处理和记录流程如图1所示。水下拖缆的所有采集板在同一时刻采集地震数据,进行数据拼接后送给本级的传输板,传输板把采集板的地震数据进行组帧后通过逐级上传的方式实时发送给船载接口电路,船载接口电路把所有采集板的地震数据进行缓存、振子抽取、时序转道序等处理后通过网络接口发送给上位机,上位机负责地震数据的显示和记录。

图1 海上地震数据采集流程图

2 乒乓缓存设计

2.1 硬件设计

水下拖缆采集到的地震数据通过高速传输方式实时上传到船载接口电路,由于船载接口电路需要存储完一炮的数据量后再发送给上位机,因此为了保证地震数据接收和缓存的稳定性,设计采用了乒乓缓存。乒乓缓存需要使用两套存储器,在设计中每套存储器使用4片MT47H32M16CC实现64位数据宽度的256 MB存储空间,两套存储器共使用8片。

每套存储器使用单独总线与FPGA相连,总线信号见表1。MT47H32M16CC有3根BANK选择线,16根地址线。BANK线实际使用了两根,多出的BA2是为了将来接128 MB芯片预留;地址线使用了13根,A13~A15是为256 MB和512 MB芯片预留,4片MT47H32M16CC的地址线复用,通过片选信号实现芯片之间的寻址;四片MT47H32M16CC的16根数据总线独立接到FPGA,实现64位的数据总线。

在设计中使用母板终端匹配的方式,需要Vtt电源,在此使用1片PTH05060YAH为两套存储器产生相应的Vtt,该器件可提供10 A的电流驱动能力。MT47H32M16CC芯片的时钟由FPGA提供,该时钟的起源为一个外接66 MHz晶振,晶振产生的66 MHz时钟进入FPGA后,由FPGA内部锁相环倍频为133 MHz,供FPGA的DDR2接口及外部DDR2芯片(MT47H32M16CC)使用。

表1 乒乓缓存总线信号

2.2 FPGA逻辑实现

乒乓操作是一种用于数据流控制的处理技术,其操作流程框图如图2所示。输入的数据经过选择单元后,分别进入缓冲模块1和缓冲模块2。当数据写入缓冲模块1的时候,数据处理单元从缓冲模块2读取数据进行处理;当数据写入缓冲模块2的时候,数据处理单元从缓冲模块1读取数据进行处理。这样做的目的是给数据处理单元赢得更多的处理时间,避免因为数据处理时无法持续接收而丢失有效数据。

图2 乒乓操作流程框图

在这里数据缓冲模块采用两组256 MB的DDRII内存(DDRII_A、DDRII_B)来缓存数据,并在FPGA中利用IP_CORE生成DDRII的接口模块,在生成IP_CORE的时候,各个参数的配置说明如下:

Clock_speed:100 MHz

Data_bus_width:64 bit

Number of chip select:1

Number of chip select per DIMM:1

Number of clock pairs from FPGA to memory:4

Row address bit:13

Column address bit:10

Bank address bit:2

Precharge address bit:10

DQ bit per DQS pin:8

同时选上‘Memory Device DLL enable’和‘enable DQS mode’,其他的使用默认值就可以;

在管脚约束一栏,在DDRII_A中使用的是‘bottom’,顺序为‘3’、‘2’、‘1’、‘0’、‘--’、‘7’、‘6’、‘5’、‘4’;在DDRII_B中使用的是‘top’,顺序为‘3’、‘2’、‘1’、‘0’、‘--’、‘7’、‘6’、‘5’、‘4’。

注意,生成IP后,需要查看顶层文件是否被改写,如果被改写(改写成IP自动生成的测试模块),则需要换回原来的顶层文件。

在FPGA中只需控制DDRII的接口模块的写入和读出数据即可完成乒乓缓存。

接口模块的读写时序如图3所示。

图3 DDR2接口IP的读写时序图

由于DDRII内存的数据位宽为64位,且DDRII接口IP的Burst长度为2,因此每个地址对应的为2个64位×2(DDRII为上升沿和下降沿采数据,因此在FPGA接口出来的数据位宽为64位×2=128位)位宽的数据。由图3中可以看出,在写的过程中地址和数据不是同时输出至DDRII-IP的Local总线端的,而是先输入地址,然后由DDRII接口模块的Local_wdata_req来取数据,于是利用FIFO缓存数据和地址,是地址和数据在FIFO的输入侧同时输入,而输出侧则按照DDRII-IP的时序进行。同时,通过一个状态机控制数据从FIFO读出到DDRII接口;每一个地址对应2个128位的数据,因此只需要控制地址FIFO中地址的数据量就可以控制存入DDRII接口的数据量而无需通过数据FIFO的empty信号来控制(DDRII接口的ddr2_local_wdata_req信号与FIFO接口的读信号相连即可)。还有,由于DDRII接口及FIFO会带来一定的数据延迟,在一炮数据准备好后,如果立刻读出DDRII中的数据,数据可能会发生冲突,因此,在数据FIFO的输出端等待ping_pang这个信号。如果ping_pang信号出现说明数据已经全部被存入DDRII存储器,可以从DDRII中读出数据了。这时,置位finish_writing信号,通知数据读取模块读出存储器中的数据,finish_writing在finish_reading信号到来归零。

乒乓控制信号ping_pang=1时数据存入DDRII_A,ping_pang=0时数据存入DDRII_B,每炮数据完成时ping_pang信号取反一次。数据存储是利用address、data_out_en以及data_mask信号对写入数据data_out进行控制。由于DDRII-IP接口的数据位宽为128位且Burst(突发读写)长度为2,因此一个地址对应的数据位宽为256位,且地址跳跃增加(每次加2)。我们采用10个传感器数据拼成一个240位的数据的方式,其他16位数据为有效标志,只有在有效标志位为高时,对应的24位数据才是有效的,否则无效。这样一个地址就对应了一个256位的数据了。采用有效位的方法可以提高系统的稳定性,防止如果系统的传感器数量不是10的整数倍时系统工作异常的情况。当第一个数据传入时,拼接计数器加1,控制着每10个数据拼接成一个240位的数据。由于每次数据只有其中的24位改变,所以使用data_mask信号来选择其中需要改变的24位。

拼接计数器功能如图4所示。

图4 拼接计数器功能图

当第二个传感器(第二道)的数据传入时,数据需要存入的地址应该是第一道数据的地址加上(采样率×记录的时间长度/10),此时,需要将道数计数器加1,然后等到最后道数计数器达到(本次采样的道数值-1)时,下次计数将返回0。N道地址 = 0道地址+N×(采样率×记录的时间长度)/10。

道数计数器的功能如下:

当每道的10个数据记录完成后,一个256位长的数据地址用完,此时需要将每道的地址加2,在下一个256位的地址空间进行记录,因此需要一个跳转计数器,而跳转计数器的最大值为:采样率×记录的时间长度/10-1。

当一炮数据写完后,置位finish_writing信号通知数据读取模块读出存储器中的数据,并把接收到的数据按照同样的方法写入另外一个存储器;而数据读取模块读取完一次数据后置位finish_reading信号清除finishi_writing信号,表示这个存储器可以进行下一次写入了,如此循环即可实现数据的乒乓缓存功能。

3 时序转道序实现

水下拖缆给船载接口电路的数据是按照时间先后顺序来传输的,而上位机显示记录时需要把数据按照检波器的顺序进行存储,因此需要将数据进行时序与道序的变换。在传输时,由水下拖缆输入的数据的速率较慢(约11.25 Mb/s),而将数据从存储器DMA至上位机的时候速度较快(约400 Mb/s),因此选择在乒乓缓存过程中做时序与道序的转换,即水下拖缆传入的数据在存入DDRII时不是连续地址存储,而是根据道序计算存储地址进行存储,从DDRII读出数据时按照连续地址读出,因此从DDRII读出的数据即为经过时序转道序的数据。

首先将缓存空间划分成N×M的阵列,其中N表示每个通道一炮采集点数,M表示一条缆上的总通道数,第一个通道(CH1)的第一个采样点数据存入地址0,第N个采样点存入地址N-1;CH2的第一个采样点数据存入地址N,第N个采样点存入地址2N-1;CHM的第一个采样点数据存入(M-1)×N,第N个采样点存入地址M×N-1。时序转道序数据结构如图5所示。即第i个通道的第p个采样点的数据会保存在地址(i-1)×N+p-1上。基于这种数据存储的机制,当数据进行写入操作时,地址是不连续的,使得存储效率降低;当数据进行读操作时,地址是连续的,因此读取效率高、速度快。这正好与水下拖缆传入数据慢而数据DMA到上位机速度快的事实相匹配,因此能够在FPGA逻辑内部很容易地实现时序与道序的转换。

图5 时序转道序数据结构图

4 测试验证

在实验室对乒乓缓存及时序转道序进行了测试,测试炮间隔与记录长度相差小于0.1 s时连续运行大于1 000炮,其乒乓缓存及时序转道序未出现错误。

乒乓缓存和时序转道序应用于船载接口电路中,在经过长期的实验室内部测试和调试等过程后,在物探船上进行了多次实际的海上试验和地震勘探采集作业。其中2015年在南海海域进行了二维采集作业,作业记录长度12 s,采样率1 ms,实际炮间隔最小达到了12.5 s,作业过程中最长测线连续工作大于500炮。上位机接收到的地震数据未出现错误,并且解决了炮间隔与记录长度相差小于1 s时数据错乱的问题。这充分验证和证明了乒乓缓存和时序转道序在地震数据采集中的有效性和实用性,有效地避免了两炮地震数据采集之间的死区,高效地完成了实时地震数据的处理和传输。

5 结束语

用硬件和FPGA逻辑实现了乒乓缓存控制器的设计,并在此方法中结合了地震数据处理中的时序转道序技术,从而实现水下地震数据流的无缝缓冲和实时传输。实践证明,乒乓操作可有效地避免两炮地震数据采集之间的死区,高效地完成实时地震数据的处理和传输。在硬件上实现乒乓缓存机制和时序道序的转换,能够降低上位机软件的开发难度,减小地震采集系统的死时间,提高采集仪器的稳定性和实时性。

[1] 朱 明.浅谈高精度地震勘探技术发展 [J].科技创新与应用,2017,36(11):127-127.

[2] 孙龙德,撒利明,董世泰.中国未来油气新领域与物探技术对策[J].石油地球物理物探,2013,48(2):317-234.

[3] 顾荣庆,杨开杰,徐汀荣.分布式数据缓存技术研究[J].计算机应用与软件, 2011, 28(6):202-204.

ApplicationofPing-pangCacheinSeismicAcquisitionSystem

QIUYongcheng

(GeophysicalDepartment,ChinaOffshoreOilfieldServicesCo.Ltd. ,Tianjin300450,China)

Due to the throughput and response time limitation of the data processing system, the airguns can not be fired continuously without time interval between two shot (i.e. dead time). In order to eliminate the dead time, a ping-pang cache mechanism of seismic data is designed and implemented. The timing sequence of seismic data is converted into channel sequence in the process of data storage. The hardware design of the ping-pang cache controller and the code based on FPGA are introduced. With the ping-pang cache and the conversion of seismic data on hardware, it can eliminate the dead time in the seismic acquisition system, and reduce the difficulty of software development in PC, also can improve the stability and real-time performance of the acquisition instrument.

seismic data acquisition; ping-pang cache; time-channel sequence conversion; FPGA

国家高技术研究发展计划(863计划)(2012AA09A211)

邱永成,男, 1980年生,工程师, 2006年毕业于电子科技大学光学工程专业,现从事地震勘探装备研发工作。E-mail:qycct@163.com

TP274+.2

A

2096-0077(2017)06-0019-04

10.19459/j.cnki.61-1500/te.2017.06.005

2017-02-10

高红霞)

猜你喜欢

拖缆存储器时序
基于Sentinel-2时序NDVI的麦冬识别研究
拖缆引绳的设计改进
静态随机存储器在轨自检算法
拖缆对水下航行器的操纵性能影响
潜水器水下拖带航行运动响应数值计算与性能分析
基于FPGA 的时序信号光纤传输系统
一种毫米波放大器时序直流电源的设计
海洋平台工作船深水大型拖缆机选型分析
存储器——安格尔(墨西哥)▲
DPBUS时序及其设定方法