一种星载计算机内部处理器单元和IO单元之间的数据交换系统及方法转让专利

申请号 : CN201610907762.9

文献号 : CN106528466B

文献日 :

基本信息:

PDF:

法律信息:

相似专利:

发明人 : 江耿丰冯丹文亮刘波徐建李森袁文彬史少龙张凯董暘暘

申请人 : 北京控制工程研究所

摘要 :

一种星载计算机内部处理器单元和IO单元之间的数据交换系统及方法,设计了一个具有自主执行IO访问指令能力的控制器,CPU可以直接访问IO控制器也可以通过一个高速存储器和IO控制器实现数据交互。处理器可将需要IO控制器执行的指令预存至高速存储器中,然后由IO控制器自动读取存储器指令并执行相应操作,操作完毕后等待处理器的下一步指令,本发明效果显著,规避了慢速IO对处理器运行速度的影响,充分发挥处理器性能;取消了产品内部单板之间的自定义三总线设计,有利于单板的标准化设计;避免应用软件频繁的IO访问操作,有利于软件编程实现。

权利要求 :

1.一种星载计算机内部处理器单元和IO单元之间的数据交换系统,其特征在于:包括CPU、总线控制单元、时序控制单元、SRAM、SpaceWire控制器、IO单元;

SpaceWire控制器包括主机总线接口(HOCI)、SpaceWire接口和存储器访问接口(COMI);

CPU具有本地总线LOCAL BUS;

主机总线接口HOCI用于实现CPU和SpaceWire控制器的互联,Spacewire控制器通过HOCI接口挂接在CPU的本地总线LOCAL BUS上,CPU通过HOCI接口能够直接访问SpaceWire控制器;

SpaceWire控制器通过SpaceWire接口连接IO单元,IO单元用于实现SpaceWire控制器和外设的桥接功能;

SpaceWire控制器通过COMI接口访问本地缓存SRAM;

CPU设置COMI需要数据读写的接收起始地址、接收结束地址、发送起始地址、发送结束地址;建立COMI需要数据读写的发送结束地址与接收起始地址、接收结束地址、发送起始地址之间的映射关系;CPU对COMI的设置通过直接操作HOCI口实现;

SRAM中设置多个数据存储单元,每个存储单元设置一个地址,当COMI要从SRAM中读取数据时,COMI根据设定的需要读取的数据存储单元的发送起始地址和发送结束地址从SRAM中自动顺序读取数据;当COMI要对SRAM中写入数据时,COMI根据设定的需要接收的数据存储单元的接收起始地址和接收结束地址向SRAM中自动顺序写入数据;

CPU包括通用输入输出接口GPIO,在通用输入输出接口GPIO为高电平时,通用输入输出接口GPIO给时序控制单元高电平信号,时序控制单元在收到高电平信号后,进行电平转换得到低电平,给总线控制单元输出低电平信号,总线控制单元在接收到时序控制单元发送的低电平信号时,能够导通CPU与SRAM之间的总线通信,CPU能够访问SRAM,即向SRAM写入数据,并将数据存在COMI需要写入的数据存储单元的发送起始地址和发送结束地址之间的数据存储单元内,且禁止SpaceWire控制器访问SRAM;CPU写入的数据分为两种类型,通过数据前带有的指令区分为写指令和读指令,写指令将写指令后的数据发送至外部,读指令将数据从外部读回;

在通用输入输出接口GPIO置为低电平时,通用输入输出接口GPIO给时序控制单元低电平信号,时序控制单元在收到低电平信号后,进行电平转换得到高电平,给总线控制单元输出高电平信号,总线控制单元在接收到时序控制单元发送的高电平信号时,能够断开CPU与SRAM之间的总线通信,同时允许SpaceWire控制器访问SRAM;

然后将通用输入输出接口GPIO置为低电平,设置COMI的发送结束地址,根据COMI需要数据读写的发送结束地址,SpaceWire控制器能够自动从SRAM中的发送起始地址的数据存储单元开始读取数据,到发送结束地址结束数据读取,并将读取的数据通过SpaceWire接口发送给IO单元,完成数据发送;当输入输出接口GPIO为低电平时,SpaceWire控制器通过SpaceWire接口收到的数据存储到SRAM中从接收起始地址到接收结束地址对应的数据存储单元中,完成数据接收;

当完成数据发送和数据输出后,SpaceWire控制器向时序控制单元输出一个负脉冲信号,时序控制单元在收到SpaceWire控制器发送的负脉冲信号后,向总线控制单元发送低电平信号,总线控制单元在接收到时序控制单元发送的低电平信号时,能够导通CPU与SRAM之间的总线通信,同时禁止SpaceWire控制器访问SRAM;

CPU每隔固定时间查询SpaceWire控制器的状态,当SpaceWire控制器完成数据发送和数据接收,通用输入输出接口GPIO置为高电平,CPU从接收起始地址到接收结束地址对应的数据存储单元中顺序读取数据;

IO单元接收SpaceWire控制器通过SpaceWire链路发送来的数据,包括带有写指令的数据以及读指令;

IO单元将SpaceWire控制器通过SpaceWire链路发送的带有写指令的数据发送至外设;

SpaceWire控制器向IO单元发送读指令,IO单元接收到读指令后,将外部数据读入,通过SpaceWire链路回送至SpaceWire控制器。

2.一种星载计算机内部处理器单元和IO单元之间的数据交换方法,其特征在于步骤如下:

(1)进行初始化,即SpaceWire控制器包括存储器访问接口COMI,CPU设置COMI需要数据读写的接收起始地址、接收结束地址、发送起始地址、发送结束地址;建立COMI需要数据读写的发送结束地址与接收起始地址、接收结束地址、发送起始地址之间的映射关系;

(2)将通用输入输出接口GPIO设置为高电平时,通用输入输出接口GPIO给时序控制单元高电平信号,时序控制单元在收到高电平信号后,进行电平转换得到低电平,给总线控制单元输出低电平信号,总线控制单元在接收到时序控制单元发送的低电平信号时,能够导通CPU与SRAM之间的总线通信,CPU能够向SRAM中写入数据,数据分为两种类型,通过数据前带有的指令区分为写指令和读指令,写指令将写指令后的数据发送至外部,读指令将数据从外部读回;

(3)在步骤(2)完成数据写入后,通用输入输出接口GPIO置为低电平时,通用输入输出接口GPIO给时序控制单元低电平信号,时序控制单元在收到低电平信号后,进行电平转换得到高电平,给总线控制单元输出高电平信号,总线控制单元能够断开CPU与SRAM之间的总线通信,同时允许SpaceWire控制器访问SRAM;

(4)然后设置COMI的发送结束地址,根据COMI需要数据读写的发送结束地址,SpaceWire控制器能够自动从SRAM中的发送起始地址的数据存储单元开始读取数据,到发送结束地址结束数据读取,并将读取的这些数据发送给IO接口,完成数据发送,进行步骤(5)和步骤(6);

(5)IO单元接收SpaceWire控制器发送来的数据,当IO单元接收到带有写指令的数据,将带有写指令的数据发送到外部;当IO单元接收到带有读指令,将外部数据读入,通过SpaceWire链路回送至SpaceWire控制器,SpaceWire控制器将接收到的数据存储到SRAM中从接收起始地址到接收结束地址对应的数据存储单元中,完成数据接收;

(6)CPU在设定的固定时间内查询SpaceWire控制器的状态,当查询到SpaceWire控制器完成数据发送和数据接收的状态,通用输入输出接口GPIO置为高电平,CPU从接收起始地址到接收结束地址对应的数据存储单元中顺序读取数据;当未查询到SpaceWire控制器完成数据发送和数据接收的状态,进行步骤(7);

(7)当完成数据接收后,SpaceWire控制器向时序控制单元输出一个负脉冲信号,时序控制单元在收到SpaceWire控制器发送的负脉冲信号后,向总线控制单元发送低电平信号,总线控制单元在接收到时序控制单元发送的低电平信号时,能够导通CPU与SRAM之间的总线通信,同时禁止SpaceWire控制器访问SRAM。

说明书 :

一种星载计算机内部处理器单元和IO单元之间的数据交换系

统及方法

技术领域

[0001] 本发明涉及一种星载计算机内部处理器单元和IO单元之间的数据交换系统及方法,属于星载计算机内部处理器单元和IO单元之间的数据交换技术领域,适用于各种星载高性能计算场合,特别是即需要大数据量采集又需要高性能运算的场合。

背景技术

[0002] 星载计算机内部普遍采用处理器通过数据地址控制三总线直接访问IO板的数据交换方式,如图1所示,自定义三总线方式下CPU访问外部IO时,CPU直接发出控制(读或写)信号以及相应的地址或数据信号。上述三种信号必须维持一定的信号幅度和时间(可理解为满足一定条件的波形),IO才能正确响应CPU的读写操作。
[0003] 如果IO速度比较慢,CPU在读写访问时可插入一定的等待时间,使信号时序满足IO的要求。但CPU插入的等待时间有一个上限。
[0004] 目前星载计算机处理器的主频在以较快速度提高,IO访问受制于外设速度少有变化。处理器处理速度快,IO响应速度慢,处理器又不能无限制的插入等待时间,造成处理器难以直接访问IO。处理器或者降频运行,或者通过一次长时间的握手等待完成一次IO访问。如果继续沿用三总线的结构,CPU的性能不能得到充分发挥。

发明内容

[0005] 本发明解决的技术问题为:克服现有技术不足,提供一种星载计算机内部处理器单元和IO单元之间的数据交换系统及方法,即提供一种设计简单、灵活通用的星载计算机处理器单元和IO之间的数据交换方法,解决现有的高速处理器难以直接访问慢速IO的问题,充分发挥处理器的性能。
[0006] 本发明的技术解决方案为:一种星载计算机内部处理器单元和IO单元之间的数据交换系统,其特征在于:包括CPU、总线控制单元、时序控制单元、SRAM、SpaceWire控制器、IO单元;
[0007] SpaceWire控制器包括主机总线接口(HOCI)、SpaceWire接口和存储器访问接口(COMI);
[0008] CPU具有本地总线LOCAL BUS;
[0009] 主机总线接口(HOCI)用于实现CPU和SpaceWire控制器的互联,Spacewire控制器通过HOCI接口挂接在CPU的本地总线LOCAL BUS上,CPU通过HOCI接口可直接访问SpaceWire控制器;
[0010] SpaceWire控制器通过SpaceWire接口连接IO单元,IO单元用于实现SpaceWire控制器和外设的桥接功能;
[0011] SpaceWire控制器通过COMI接口访问本地缓存SRAM;
[0012] CPU设置COMI需要数据读写的接收起始地址、接收结束地址、发送起始地址、发送结束地址;建立COMI需要数据读写的发送结束地址与接收起始地址、接收结束地址、发送起始地址之间的映射关系;CPU对COMI口上述功能的设置通过直接操作HOCI口实现;
[0013] SRAM中设置多个数据存储单元,每个存储单元设置一个地址,当COMI要从SRAM中读取数据时,COMI根据设定的需要读取的数据存储单元的发送起始地址和发送结束地址从SRAM中自动顺序读取数据;当COMI要对SRAM中写入数据时,COMI根据设定的需要接收的数据存储单元的接收起始地址和接收结束地址向SRAM中自动顺序写入数据;
[0014] CPU包括通用输入输出接口GPIO,在通用输入输出接口GPIO为高电平时,通用输入输出接口GPIO给时序控制单元高电平信号,时序控制单元在收到高电平信号后,进行电平转换得到低电平,给总线控制单元输出低电平信号,总线控制单元在接收到时序控制单元发送的低电平信号时,能够导通CPU与SRAM之间的总线通信,CPU能够访问SRAM,即向SRAM写入数据,并将数据存在COMI需要写入的数据存储单元的发送起始地址和发送结束地址之间的数据存储单元内,且禁止SpaceWire控制器访问SRAM;CPU写入的数据分为两种类型,通过数据前带有的指令区分为写指令和读指令,写指令将写指令后的数据发送至外部,读指令将数据从外部读回;
[0015] 在通用输入输出接口GPIO置为低电平时,通用输入输出接口GPIO给时序控制单元低电平信号,时序控制单元在收到低电平信号后,进行电平转换得到高电平,给总线控制单元输出高电平信号,总线控制单元在接收到时序控制单元发送的高电平信号时,能够断开CPU与SRAM之间的总线通信,同时允许SpaceWire控制器访问SRAM;
[0016] 然后将通用输入输出接口GPIO为低电平,设置COMI的发送结束地址,根据COMI需要数据读写的发送结束地址,SpaceWire控制器能够自动从SRAM中的发送起始地址的数据存储单元开始读取数据,到发送结束地址结束数据读取,并将读取的数据通过SapceWire接口发送给IO单元,完成数据发送;当输入输出接口GPIO为低电平时,SpaceWire控制器通过SpaceWire接口收到的数据存储到SRAM中从接收起始地址到接收结束地址对应的数据存储单元中,完成数据接收;
[0017] 当完成数据发送和数据输出后,SpaceWire控制器向时序控制单元输出一个负脉冲信号,时序控制单元在收到SpaceWire控制器发送的负脉冲信号后,向总线控制单元发送低电平信号,总线控制单元在接收到时序控制单元发送的低电平信号时,能够导通CPU与SRAM之间的总线通信,同时禁止SpaceWire控制器访问SRAM;
[0018] CPU每隔固定时间查询SpaceWire控制器的状态,当SpaceWire控制器完成数据发送和数据接收,通用输入输出接口GPIO置为高电平,数据CPU从接收起始地址到接收结束地址对应的数据存储单元中顺序读取数据;
[0019] IO单元将SpaceWire控制器通过SpaceWire链路发送的带有写指令的数据发送至外设;
[0020] SpaceWire控制器向IO单元发送读指令,IO单元接收到读指令后,将外部数据读入,通过SpaceWire链路回送至SpaceWire控制器。
[0021] IO接口接收SpaceWire控制器发送来的数据,将其转换为IO的本地总线(LOCAL BUS),进行对应的读写操作。
[0022] IO接口将IO接收到带有写指令的数据发送到外部;
[0023] IO接口接收到带有读指令,将外部数据读入,通过SpaceWire链路回送至SpaceWire控制器。
[0024] 本发明与现有技术相比的优点在于:
[0025] (1)本发明规避慢速IO对处理器运行速度的影响,充分发挥处理器性能;
[0026] (2)本发明取消了产品内部单板之间的自定义三总线设计,有利于单板的标准化设计;
[0027] (3)本发明避免应用软件频繁的IO访问操作,有利于软件编程实现。

附图说明

[0028] 图1为目前星载计算机内部普遍采用处理器通过数据地址控制三总线直接访问IO板的数据交换方式的系统图;
[0029] 图2为本发明的整体原理框图;
[0030] 图3为图2中虚线框部分的进一步说明;
[0031] 图4的本发明处理器和IO数据交互图,(a)为处理器写,(b)为SpaceWire发送,(c)为数据回送。

具体实施方式

[0032] 本发明的基本思路为:一种星载计算机内部处理器单元和IO单元之间的数据交换系统及方法,设计了一个具有自主执行IO访问指令能力的控制器,CPU可以直接访问IO控制器也可以通过一个高速存储器和IO控制器实现数据交互。处理器可将需要IO控制器执行的指令预存至高速存储器中,然后由IO控制器自动读取存储器指令并执行相应操作,操作完毕后等待处理器的下一步指令,本发明效果显著,规避了慢速IO对处理器运行速度的影响,充分发挥处理器性能;取消了产品内部单板之间的自定义三总线设计,有利于单板的标准化设计;避免应用软件频繁的IO访问操作,有利于软件编程实现。
[0033] 下面结合附图和具体实施例对本发明做进一步详细描述,
[0034] 如图3所示,CPU可选用任意的高速处理器,本发明选用Atmel公司生产AT697F。SpaceWire控制器选用BM4802,选用BM4802基于两方面考虑:一是其本身支持指定发送起始地址、发送终止地址后的块数据传输功能,可以外接大容量SRAM作为数据存储单元;二是BM4802可被高速处理器的访问,不限制处理器的运行速度。
[0035] 总线控制单元和时序控制单元使用分立器件搭建,主要利用CPU的一个GPIO口和BM4802的发送标志COCI和COCO等实现,通过上述电路,BM4802和CPU可共享使用一片SRAM,实现两者之间数据交换。
[0036] BM4802对外通过LVDS接口芯片可输出三路SpaceWire,每路SpaceWire连接一个IO单元,即整个系统可连接三个IO单元。如图2所示,IO单元可将通过SpaceWire传送过来的信息转化为IO单元内部的本地总线,此处的IO本地总线可以匹配访问慢速的IO外设。本发明IO单元采用FPGA(ACTEL公司A54SX72A)实现,实际应用中也可采用智能处理单元实现。
[0037] 以处理器从IO读取数据为例,可分为以下三步:
[0038] a)处理器发出指令
[0039] b)IO单元执行指令采数并搬数
[0040] c)处理器读取数据
[0041] 各步的信息流如图4(a)、图4(b)、图4(c)所示。
[0042] 在实际使用中,处理器可将多条指令或待处理数据预存于“高速缓存”之中,然后通知IO控制器开始批量执行指令,待指令执行完毕后,处理器再从高速缓存中读取数据。IO执行指令的过程无需处理器进行干预,处理器此时可执行其他任务。
[0043] 假设处理器的工作频率为f,IO访问响应时间为t1,处理器需从IO中连续获取N字节数据,但每次访问只能获取1字节。若f和t1不相匹配,如优选f=100MHz,t1=1us,处理器无法直接访问IO,除非处理器降低工作频率同时插入足够数量的等待时间,此时获取N字节的总耗时为T1=N*t1。
[0044] 采用本发明的设计之后,处理器单次访问时间只取决于IO控制器和高速缓存。本发明要求IO控制器和高速缓存可被高速处理器直接访问,假设响应时间为t2(应有t2<
[0045] 处理器在IO访问上提高的效率为
[0046]
[0047] 由于t1>>t2,Δt通常较小在大数据量访问时影响可忽略不计,处理器在IO访问时效率可大为提高。如t1=1us,t2=100ns,IO访问提高效率为90%。