CN109101456A - 一种仿真ssd中的数据交互通信方法、装置及终端 - Google Patents

一种仿真ssd中的数据交互通信方法、装置及终端 Download PDF

Info

Publication number
CN109101456A
CN109101456A CN201811003452.XA CN201811003452A CN109101456A CN 109101456 A CN109101456 A CN 109101456A CN 201811003452 A CN201811003452 A CN 201811003452A CN 109101456 A CN109101456 A CN 109101456A
Authority
CN
China
Prior art keywords
emulation
data interaction
thread
port
ssd
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
CN201811003452.XA
Other languages
English (en)
Other versions
CN109101456B (zh
Inventor
尹作刚
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Inspur Electronic Information Industry Co Ltd
Original Assignee
Inspur Electronic Information Industry Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Inspur Electronic Information Industry Co Ltd filed Critical Inspur Electronic Information Industry Co Ltd
Priority to CN201811003452.XA priority Critical patent/CN109101456B/zh
Publication of CN109101456A publication Critical patent/CN109101456A/zh
Application granted granted Critical
Publication of CN109101456B publication Critical patent/CN109101456B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • G06F15/16Combinations of two or more digital computers each having at least an arithmetic unit, a program unit and a register, e.g. for a simultaneous processing of several programs
    • G06F15/163Interprocessor communication
    • G06F15/167Interprocessor communication using a common memory, e.g. mailbox

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)
  • Computer And Data Communications (AREA)

Abstract

本发明公开了一种仿真SSD中的数据交互通信方法,包括:构建各CPU对应的仿真线程;构建各仿真线程之间的数据交互端口的映射关系;利用映射关系初始化各仿真线程对应的输出端口以及输入端口的缓存器;根据API接口输入的通信指令,通过对应仿真线程利用相应的缓存器执行通信指令对应的通信操作;该方法能够实现面向多CPU间的SSD数据交互通信的仿真,可最大化的仿真真实固件平台,并可有效的提高代码的使用率,克服了现有技术中只能对单CPU的SSD数据交互通信的仿真所带来的不能真实反应现有通信过程的缺点;本发明还公开了一种仿真SSD中的数据交互通信装置、终端及计算机可读存储介质,同样具有上述有益效果。

Description

一种仿真SSD中的数据交互通信方法、装置及终端
技术领域
本发明涉及SSD仿真技术领域,特别涉及一种仿真SSD中的数据交互通信方法、装置、终端及计算机可读存储介质。
背景技术
目前,在SSD(Solid State Drives,固态硬盘)领域,需要有一套完整的仿真平台进行一些通信仿真、算法仿真、错误注入等,从而利用仿真方式实现有效的SSD产品开发和验证。
现有技术中针对SSD的通信仿真都是基于单核即单CPU通信仿真。但是目前SSD大多都是基于多CPU的交互通信及相应的多硬件单元(list engine,DMA(Direct MemoryAccess,直接内存访问),XOR)进行SSD产品平台开发。显然现有的SSD的通信仿真并不能适应SSD中多CPU的交互通信的过程。因此,为了尽可能的有效进行SSD的通信仿真,需要一种CPU间,CPU与硬件单元交互的数据通信机制。
发明内容
本发明的目的是提供一种仿真SSD中的数据交互通信方法、装置、终端及计算机可读存储介质,能够有效进行多CPU的SSD的通信仿真,可最大化的仿真真实固件平台,并有效的提高代码的使用率。
为解决上述技术问题,本发明提供一种仿真SSD中的数据交互通信方法,包括:
构建各CPU对应的仿真线程;
构建各所述仿真线程之间的数据交互端口的映射关系;
利用所述映射关系初始化各所述仿真线程对应的输出端口以及输入端口的缓存器;
根据API接口输入的通信指令,通过对应仿真线程利用相应的缓存器执行所述通信指令对应的通信操作。
可选的,所述构建各所述仿真线程之间的数据交互端口的映射关系,包括:
构建各所述仿真线程之间的输出端口outbound以及输入端口inbound之间的IPCmap映射关系。
可选的,利用所述映射关系初始化各所述仿真线程对应的输出端口以及输入端口的缓存器,包括:
利用所述映射关系初始化各所述仿真线程对应的所述输出端口outbound中fifo缓存器中的消息缓冲地址;
设置各所述仿真线程对应的所述输入端口inbound中fifo缓存器为空以及设置各所述输入端口inbound的空闲条目数。
可选的,所述通信指令为全部输入端口inbound消息句柄查询指令、指定输入端口inbound消息句柄查询并返回消息句柄指令、指定输入端口inbound消息句柄获取指令、指定输入端口inbound消息句柄获取后释放指令、指定输出端口outbound消息句柄获取指令、指定输出端口outbound消息句柄内容填写指令、指定输出端口outbound消息句柄发送指令、指定输出端口outbound消息挂起指令中任一项。
本发明还提供一种仿真SSD中的数据交互通信装置,包括:
构建模块,用于构建各CPU对应的仿真线程;以及构建各所述仿真线程之间的数据交互端口的映射关系;
初始化模块,用于利用所述映射关系初始化各所述仿真线程对应的输出端口以及输入端口的缓存器;
通信仿真模块,用于根据API接口输入的通信指令,通过对应仿真线程利用相应的缓存器执行所述通信指令对应的通信操作。
可选的,所述构建模块包括:
第一构建单元,用于构建各CPU对应的仿真线程;
第二构建单元,用于构建各所述仿真线程之间的输出端口outbound以及输入端口inbound之间的IPC map映射关系。
可选的,所述初始化模块包括:
输出端口初始化单元,用于利用所述映射关系初始化各所述仿真线程对应的所述输出端口outbound中fifo缓存器中的消息缓冲地址;
输入端口初始化单元,用于设置各所述仿真线程对应的所述输入端口inbound中fifo缓存器为空以及设置各所述输入端口inbound的空闲条目数。
本发明还提供一种终端,包括:
API接口,用于接收输入的通信指令;
处理器,用于利用存储的计算机程序时实现如上述任一项所述的仿真SSD中的数据交互通信方法的步骤。
本发明还提供一种计算机可读存储介质,所述计算机可读存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现如上述任一项所述的仿真SSD中的数据交互通信方法的步骤。
本发明所提供的仿真SSD中的数据交互通信方法,包括:构建各CPU对应的仿真线程;构建各仿真线程之间的数据交互端口的映射关系;利用映射关系初始化各仿真线程对应的输出端口以及输入端口的缓存器;根据API接口输入的通信指令,通过对应仿真线程利用相应的缓存器执行通信指令对应的通信操作。
可见,该方法利用线程仿真CPU,并利用映射关系确定各个仿真CPU之间的数据交互端口的通信对应关系,进而能够实现面向多CPU间的SSD数据交互通信的仿真,可最大化的仿真真实固件平台,并可有效的提高代码的复用率和代码验证的正确性,在此基础上能够有效实现SSD中的软件算法的真实性和准确性;克服了现有技术中只能对单CPU的SSD数据交互通信的仿真所带来的不能真实反应现有通信过程的缺点;本发明还提供了一种仿真SSD中的数据交互通信装置、终端及计算机可读存储介质,具有上述有益效果,在此不再赘述。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据提供的附图获得其他的附图。
图1为本发明实施例所提供的仿真SSD中的数据交互通信方法的流程图;
图2为本发明实施例所提供的通信指令执行的示意图;
图3为本发明实施例所提供的仿真SSD中的数据交互通信装置的结构框图。
具体实施方式
为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
目前,多任务同时并发或并行地在同一台计算机中已成为大多数现代操作系统中的必备功能之一。因此本实施例为了实现最大化的仿真真实固件平台,可有效的提高代码的复用率和代码验证的正确性。需要实现对多CPU间的SSD数据交互通信的仿真。在linux系统中多进程间通信的方法主要有实时FIFO、共享内存等。本实施例可以参考Linux平台通过共享内存进行数据间的交互通信,多核通过多线程进行仿真的方式,实现对多CPU间的SSD数据交互通信的仿真。具体请参考图1,图1为本发明实施例所提供的仿真SSD中的数据交互通信方法的流程图;该方法可以包括:
S101:构建各CPU对应的仿真线程。
本实施例为了实现对多CPU间的SSD数据交互通信的仿真,首先需要对各个核也就是各个CPU进行仿真。本实施例中利用线程来仿真CPU。即为每一个CPU构件一个仿真线程以实现对该CPU的仿真。本实施例中并不限定仿真线程的数量,其和用户需要进行仿真的CPU数量一致;即仿真线程与CPU关系是一一对应的。每个仿真线程用于执行该CPU对应的通信任务。
S102:构建各仿真线程之间的数据交互端口的映射关系。
本实施例中并不对映射关系进行具体限定,用户可以根据实际应用场景的需求进行设置和修改。通常情况下多线程的交互通信,每个线程(即仿真CPU)都存在输入端口和输出端口两个方向上的数据流。因此具体构建映射关系的过程可以是:构建各仿真线程之间的输出端口outbound(后续输出端口outbound可以简称为outbound)以及输入端口inbound(后续输入端口inbound可以简称为inbound)之间的IPC map映射关系,得到outbound/inbound之间的映射关系map[]。其中,IPC(Inter Process Communication,进程间通信)。
具体的,在步骤S101构建了各个CPU对应的仿真线程后,为了实现各个仿真CPU也就是各个仿真线程之间的数据通信过程,需要构建各仿真线程之间的数据交互端口的映射关系。进而各个仿真线程在接收到通信指令时,就可以实现对应输出端口到目标输入端口的通信。简单可以理解为通过映射关系为各个仿真线程对应的每个输出端口设置了对应的输入端口。一般来说每个输出端口对应一个输入端口;多个输出端口(多个输出端口均可以来自一个仿真线程,也可以是来自多个仿真线程对应的输出端口(如有3个输出端口对应一个输入端口,这3个输出端口可以分别来自3个仿真线程的输出端口,一个仿真线程一个))可以对应同一个输入端口,即输出端口和输入端口是多对一的关系。且每一个仿真线程对应的输入端口和输出端口的数量可以是多个,具体个数可以由用户设定(例如输入端口22个,输出端口也是22个),本实施例并不对此进行限定。通过用户设置的各仿真线程之间的数据交互端口的映射关系,可以实现仿真CPU中的输入端口和输出端口交互通信按照硬件机制进行交互通信。
本实施例中采用共享内存的交互通信方式,建立多仿真CPU之间的通信的IPC map映射关系;具体的,对每个仿真线程的inbound和outbound的映射关系进行初始化,对应的每个仿真线程都有独立的内存空间,并且各个仿真线程具有共同访问的权限,因此各个仿真线程可以按照固定内存地址的寻址方式进行通信。本实施例中并不对内存地址寻址的具体方式进行限定。
例如固定内存地址的寻址方式为:nodeID+qID+Message buffer_index可唯一确定每条IPC消息的访问地址。其中,nodeID:每个仿真CPU作为node定义的ID标识(其取值可以是0-n),qID为仿真CPU的数据交互端口号(即可以是inbound或者outbound),Message_buffer_index为消息缓冲的索引号(例如每个仿真线程具有22个输出端口和22个输入端口时,对应的Message buffer_index:noden.Message buffer[22][8])。
S103:利用映射关系初始化各仿真线程对应的输出端口以及输入端口的缓存器。
其中,每一个仿真线程的每一个输出端口都具有一个缓冲器,同时每一个仿真线程的每一个输入端口都具有一个缓冲器。本实施例中并不对具体的每一个仿真线程中每个输出端口对应的缓存器以及每个输入端口对应的缓存器的类型以及缓冲器的大小进行限定。例如fifo缓存器(即先进先出的数据缓冲器)。
本实施例根据映射关系对各个缓冲器的初始情况进行设置。例如输出端口对应的输入端口信息,输入端口中缓冲器大小等。优选的,利用映射关系初始化各仿真线程对应的输出端口outbound中fifo缓存器中的消息缓冲地址;设置各仿真线程对应的输入端口inbound中fifo缓存器为空以及设置各输入端口inbound的空闲条目数。
具体的,初始化每个仿真CPU的仿真线程中的outbound中fifo队列缓冲器的内容即消息缓冲的地址。即记录映射关系中对此仿真线程的outbound到inbound的映射信息(该仿真CPU的一个outbound到目的仿真CPU的ID号及inbound端口号);初始化每个仿真CPU的仿真线程中的inbound中fifo队列缓冲器为空以及空闲条目数。
S104:根据API接口输入的通信指令,通过对应仿真线程利用相应的缓存器执行通信指令对应的通信操作。
经过上述步骤S101至步骤S103完成了对多CPU的通信仿真过程即能够实现仿真CPU之间的有效实时交互通信。步骤S104为利用上述建立好的仿真信道执行对应的通信操作。本实施例中通过API接口(Application Programming Interface,应用程序编程接口)接收用户输入的通信指令,再根据通信指令的具体内容,确定对应的仿真线程,对应的仿真线程利用相关的缓存器执行通信指令对应的通信操作。即使用IPC交互的API接口进行多仿真CPU之间的数据交互通信(如获取消息句柄,发送消息句柄,查询消息句柄,处理消息句柄)。通过每个仿真CPU的inbound和outbound进行数据的发送、接收、处理机制,实现多CPU的交互仿真平台,有效的进行了产品算法的实现验证,提高了产品的研发周期。
本实施例并不对通信指令的具体内容进行限定。例如获取消息句柄,发送消息句柄,查询消息句柄,处理消息句柄等。优选的,本实施例中的通信指令可以为全部输入端口inbound消息句柄查询指令、指定输入端口inbound消息句柄查询并返回消息句柄指令、指定输入端口inbound消息句柄获取指令、指定输入端口inbound消息句柄获取后释放指令、指定输出端口outbound消息句柄获取指令、指定输出端口outbound消息句柄内容填写指令、指定输出端口outbound消息句柄发送指令、指定输出端口outbound消息挂起指令中任一项或者多项。当然用户可以对上述各个通信指令进行任意组合,以实现其对应的仿真内容。具体的上述各个通信指令的具体形式可以如下:
(1)IPCInboundTest()对仿真CPU的所有Inbound进行查询是否有接收消息存在,即全部输入端口inbound消息句柄查询指令。
(2)IPCInboundHandlePeek()从指定的inbound进行接收消息的查询并返回消息句柄(消息句柄不会从inbound队列fifo中进行删除),指定输入端口inbound消息句柄查询并返回消息句柄指令。
(3)IPCInboundHandleGet()从指定的inbound进行消息句柄的获取(消息句柄获取后从fifo中进行删除),即指定输入端口inbound消息句柄获取指令。
(4)IPCInboundFree()从指定的inbound获取消息处理后,进行将消息句柄释放以使得下次使用,即指定输入端口inbound消息句柄获取后释放指令。
(5)IPCOutboundGet()指定到oubound进行消息句柄的获取,进行填充发送消息内容,即指定输出端口outbound消息句柄获取指令。
(6)IPCWriteData()将数据内容写入到指定的oubound中的消息句柄,即指定输出端口outbound消息句柄内容填写指令。
(7)IPCOutboundPost()指定的ouboud将消息发送出去以便于目的cpu的inbound的获取,即指定输出端口outbound消息句柄发送指令。
(8)IPCOutboundPending()指定的ouboud消息挂起,即指定输出端口outbound消息挂起指令。其中,Pending即消息挂起的意思。PendingIPC.Pending可以通过PendingIPC.list[n]来确定,即通过list[n]来查找对应的outbound,可以理解为通过list[n]确定目标outbound。再根据该具体数值确定目标outbound是否挂起。例如数值为非0时表示挂起。在inbound中对应的{IPC_list_t ipclist;//用于存放回调函数及相应的回调函数参数}_*_ctxt_t。根据上述过程通过PendingIPC.messageQueued[n]将当前的上下文挂接到单链表中。其中,上述(4)和(7)的过程可以参考图2。Inbound[n]_queue为输入端口队列,Outbound[n]_queue为输入端口队列。
本实施例中根据接收到的通信指令的具体内容,确定对应的对象(即对应仿真线程以及相关的缓存器)执行通信指令对应的通信操作。例如当通信指令为指定输出端口outbound消息句柄发送指令时,对应的指定输出端口outbound对应的仿真线程获取该outbound中fifo缓存器中的发送消息句柄。当通信指令为指定输出端口outbound消息句柄内容填写指令时,对应的仿真线程根据发送消息句柄对发送消息的内容数据进行填写。当通信指令为指定输出端口outbound消息句柄发送指令时,对应的仿真线程在填写后将发送消息句柄通过IPC交互机制写入到目标仿真线程的输入端口inbound。当通信指令为指定输入端口inbound消息句柄获取指令时,对应的目标仿真线程(即指定输入端口inbound)通过预设调度策略获取该inbound中的消息处理句柄并根据消息处理句柄进行处理。当通信指令为指定输入端口inbound消息句柄获取后释放指令时,对应的目标仿真线程(即指定输入端口inbound)在处理完成后释放消息处理句柄(对应outbound中获取freehandle)。
在上述过程中outbound发送消息句柄后设置相应的message handle为无效,当inbound接收到消息进行处理后将发送方outbound的message handle置为有效。
基于上述技术方案,本发明实施例提供的仿真SSD中的数据交互通信方法,采用的数据交互通信的仿真实现方法即设计合理的多核仿真CPU之间的数据交互通信机制,能够实现仿真CPU之间到有效实时交互通信,并且能在最大程度上进行固件平台的仿真,从而有效的提高了代码的复用率和代码验证的正确性,在此基础上能够有效实现SSD中的软件算法的真实性和准确性。
下面对本发明实施例提供的仿真SSD中的数据交互通信装置、终端及计算机可读存储介质进行介绍,下文描述的仿真SSD中的数据交互通信装置、终端及计算机可读存储介质与上文描述的仿真SSD中的数据交互通信方法可相互对应参照。
请参考图3,图3为本发明实施例所提供的仿真SSD中的数据交互通信装置的结构框图;该装置可以包括:
构建模块100,用于构建各CPU对应的仿真线程;以及构建各仿真线程之间的数据交互端口的映射关系;
初始化模块200,用于利用映射关系初始化各仿真线程对应的输出端口以及输入端口的缓存器;
通信仿真模块300,用于根据API接口输入的通信指令,通过对应仿真线程利用相应的缓存器执行通信指令对应的通信操作。
基于上述实施例,构建模块100可以包括:
第一构建单元,用于构建各CPU对应的仿真线程;
第二构建单元,用于构建各仿真线程之间的输出端口outbound以及输入端口inbound之间的IPC map映射关系。
基于上述实施例,初始化模块200可以包括:
输出端口初始化单元,用于利用映射关系初始化各仿真线程对应的输出端口outbound中fifo缓存器中的消息缓冲地址;
输入端口初始化单元,用于设置各仿真线程对应的输入端口inbound中fifo缓存器为空以及设置各输入端口inbound的空闲条目数。
需要说明的是,基于上述任意实施例,所述装置可以是基于可编程逻辑器件实现的,可编程逻辑器件包括FPGA,CPLD,单片机等。
本发明实施例还提供一种终端,包括:API接口,用于接收输入的通信指令;处理器,用于利用存储的计算机程序时实现上述任意实施例所述的仿真SSD中的数据交互通信方法的步骤。如处理器用于执行计算机程序时实现构建各CPU对应的仿真线程;构建各仿真线程之间的数据交互端口的映射关系;利用映射关系初始化各仿真线程对应的输出端口以及输入端口的缓存器;根据API接口输入的通信指令,通过对应仿真线程利用相应的缓存器执行通信指令对应的通信操作。
本发明还提供一种计算机可读存储介质,计算机可读存储介质上存储有计算机程序,计算机程序被处理器执行时实现上述任意实施例所述的仿真SSD中的数据交互通信方法的步骤。如计算机程序被处理器执行时实现构建各CPU对应的仿真线程;构建各仿真线程之间的数据交互端口的映射关系;利用映射关系初始化各仿真线程对应的输出端口以及输入端口的缓存器;根据API接口输入的通信指令,通过对应仿真线程利用相应的缓存器执行通信指令对应的通信操作。
该计算机可读存储介质可以包括:U盘、移动硬盘、只读存储器(Read-OnlyMemory,ROM)、随机存取存储器(Random Access Memory,RAM)、磁碟或者光盘等各种可以存储程序代码的介质。
说明书中各个实施例采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似部分互相参见即可。对于实施例公开的装置而言,由于其与实施例公开的方法相对应,所以描述的比较简单,相关之处参见方法部分说明即可。
专业人员还可以进一步意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、计算机软件或者二者的结合来实现,为了清楚地说明硬件和软件的可互换性,在上述说明中已经按照功能一般性地描述了各示例的组成及步骤。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本发明的范围。
结合本文中所公开的实施例描述的方法或算法的步骤可以直接用硬件、处理器执行的软件模块,或者二者的结合来实施。软件模块可以置于随机存储器(RAM)、内存、只读存储器(ROM)、电可编程ROM、电可擦除可编程ROM、寄存器、硬盘、可移动磁盘、CD-ROM、或技术领域内所公知的任意其它形式的存储介质中。
以上对本发明所提供的一种仿真SSD中的数据交互通信方法、装置、终端及计算机可读存储介质进行了详细介绍。本文中应用了具体个例对本发明的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本发明的方法及其核心思想。应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以对本发明进行若干改进和修饰,这些改进和修饰也落入本发明权利要求的保护范围内。

Claims (9)

1.一种仿真SSD中的数据交互通信方法,其特征在于,包括:
构建各CPU对应的仿真线程;
构建各所述仿真线程之间的数据交互端口的映射关系;
利用所述映射关系初始化各所述仿真线程对应的输出端口以及输入端口的缓存器;
根据API接口输入的通信指令,通过对应仿真线程利用相应的缓存器执行所述通信指令对应的通信操作。
2.根据权利要求1所述的仿真SSD中的数据交互通信方法,其特征在于,所述构建各所述仿真线程之间的数据交互端口的映射关系,包括:
构建各所述仿真线程之间的输出端口outbound以及输入端口inbound之间的IPC map映射关系。
3.根据权利要求2所述的仿真SSD中的数据交互通信方法,其特征在于,利用所述映射关系初始化各所述仿真线程对应的输出端口以及输入端口的缓存器,包括:
利用所述映射关系初始化各所述仿真线程对应的所述输出端口outbound中fifo缓存器中的消息缓冲地址;
设置各所述仿真线程对应的所述输入端口inbound中fifo缓存器为空以及设置各所述输入端口inbound的空闲条目数。
4.根据权利要求1所述的仿真SSD中的数据交互通信方法,其特征在于,所述通信指令为全部输入端口inbound消息句柄查询指令、指定输入端口inbound消息句柄查询并返回消息句柄指令、指定输入端口inbound消息句柄获取指令、指定输入端口inbound消息句柄获取后释放指令、指定输出端口outbound消息句柄获取指令、指定输出端口outbound消息句柄内容填写指令、指定输出端口outbound消息句柄发送指令、指定输出端口outbound消息挂起指令中任一项。
5.一种仿真SSD中的数据交互通信装置,其特征在于,包括:
构建模块,用于构建各CPU对应的仿真线程;以及构建各所述仿真线程之间的数据交互端口的映射关系;
初始化模块,用于利用所述映射关系初始化各所述仿真线程对应的输出端口以及输入端口的缓存器;
通信仿真模块,用于根据API接口输入的通信指令,通过对应仿真线程利用相应的缓存器执行所述通信指令对应的通信操作。
6.根据权利要求5所述的仿真SSD中的数据交互通信装置,其特征在于,所述构建模块包括:
第一构建单元,用于构建各CPU对应的仿真线程;
第二构建单元,用于构建各所述仿真线程之间的输出端口outbound以及输入端口inbound之间的IPC map映射关系。
7.根据权利要求6所述的仿真SSD中的数据交互通信装置,其特征在于,所述初始化模块包括:
输出端口初始化单元,用于利用所述映射关系初始化各所述仿真线程对应的所述输出端口outbound中fifo缓存器中的消息缓冲地址;
输入端口初始化单元,用于设置各所述仿真线程对应的所述输入端口inbound中fifo缓存器为空以及设置各所述输入端口inbound的空闲条目数。
8.一种终端,其特征在于,包括:
API接口,用于接收输入的通信指令;
处理器,用于利用存储的计算机程序时实现如权利要求1至4任一项所述的仿真SSD中的数据交互通信方法的步骤。
9.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现如权利要求1至4任一项所述的仿真SSD中的数据交互通信方法的步骤。
CN201811003452.XA 2018-08-30 2018-08-30 一种仿真ssd中的数据交互通信方法、装置及终端 Active CN109101456B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201811003452.XA CN109101456B (zh) 2018-08-30 2018-08-30 一种仿真ssd中的数据交互通信方法、装置及终端

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201811003452.XA CN109101456B (zh) 2018-08-30 2018-08-30 一种仿真ssd中的数据交互通信方法、装置及终端

Publications (2)

Publication Number Publication Date
CN109101456A true CN109101456A (zh) 2018-12-28
CN109101456B CN109101456B (zh) 2021-10-15

Family

ID=64864391

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201811003452.XA Active CN109101456B (zh) 2018-08-30 2018-08-30 一种仿真ssd中的数据交互通信方法、装置及终端

Country Status (1)

Country Link
CN (1) CN109101456B (zh)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112416849A (zh) * 2020-11-25 2021-02-26 杭州和利时自动化有限公司 一种双cpu数据交互方法、装置及系统
EP4280070A1 (en) * 2022-05-17 2023-11-22 Samsung Electronics Co., Ltd. Systems and methods for solid state device (ssd) simulation

Citations (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2001256267A (ja) * 2000-03-09 2001-09-21 Hitachi Ltd 並列分散シミュレーション方式
CN101158936A (zh) * 2007-11-21 2008-04-09 中国科学院计算技术研究所 一种节点之间的数据传输系统和装置及方法
US20090216518A1 (en) * 2008-02-25 2009-08-27 International Business Machines Corporation Emulated multi-tasking multi-processor channels implementing standard network protocols
CN102760114A (zh) * 2011-04-29 2012-10-31 无锡江南计算技术研究所 多处理器系统的通信仿真方法、引擎及系统
CN102867018A (zh) * 2012-07-27 2013-01-09 上海方正数字出版技术有限公司 一种数据库系统中线程间的模拟信号通信方法
CN103098032A (zh) * 2010-08-20 2013-05-08 国际商业机器公司 仿真方法、系统和程序
CN103150220A (zh) * 2011-12-07 2013-06-12 腾讯科技(深圳)有限公司 进程间的通信方法和通信系统
KR20130067098A (ko) * 2011-12-13 2013-06-21 한국전자통신연구원 내장형 프로세서 코어 디버깅 방법
CN103440373A (zh) * 2013-08-25 2013-12-11 浙江大学 一种多dsp系统的互联配置模拟方法
CN104750603A (zh) * 2013-12-30 2015-07-01 联芯科技有限公司 一种多核dsp软件仿真器及其物理层软件测试方法
CN105159755A (zh) * 2015-10-12 2015-12-16 无锡还有网络科技有限公司 多处理器的仿真处理系统
WO2016207249A1 (en) * 2015-06-25 2016-12-29 Commissariat A L'energie Atomique Et Aux Energies Alternatives Computer-implemented method of performing parallelized electronic-system level simulations
WO2017142547A1 (en) * 2016-02-19 2017-08-24 Hewlett Packard Enterprise Development Lp Simulator based detection of a violation of a coherency protocol in an incoherent shared memory system

Patent Citations (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2001256267A (ja) * 2000-03-09 2001-09-21 Hitachi Ltd 並列分散シミュレーション方式
CN101158936A (zh) * 2007-11-21 2008-04-09 中国科学院计算技术研究所 一种节点之间的数据传输系统和装置及方法
US20090216518A1 (en) * 2008-02-25 2009-08-27 International Business Machines Corporation Emulated multi-tasking multi-processor channels implementing standard network protocols
CN103098032A (zh) * 2010-08-20 2013-05-08 国际商业机器公司 仿真方法、系统和程序
CN102760114A (zh) * 2011-04-29 2012-10-31 无锡江南计算技术研究所 多处理器系统的通信仿真方法、引擎及系统
CN103150220A (zh) * 2011-12-07 2013-06-12 腾讯科技(深圳)有限公司 进程间的通信方法和通信系统
KR20130067098A (ko) * 2011-12-13 2013-06-21 한국전자통신연구원 내장형 프로세서 코어 디버깅 방법
CN102867018A (zh) * 2012-07-27 2013-01-09 上海方正数字出版技术有限公司 一种数据库系统中线程间的模拟信号通信方法
CN103440373A (zh) * 2013-08-25 2013-12-11 浙江大学 一种多dsp系统的互联配置模拟方法
CN104750603A (zh) * 2013-12-30 2015-07-01 联芯科技有限公司 一种多核dsp软件仿真器及其物理层软件测试方法
WO2016207249A1 (en) * 2015-06-25 2016-12-29 Commissariat A L'energie Atomique Et Aux Energies Alternatives Computer-implemented method of performing parallelized electronic-system level simulations
CN105159755A (zh) * 2015-10-12 2015-12-16 无锡还有网络科技有限公司 多处理器的仿真处理系统
WO2017142547A1 (en) * 2016-02-19 2017-08-24 Hewlett Packard Enterprise Development Lp Simulator based detection of a violation of a coherency protocol in an incoherent shared memory system

Non-Patent Citations (3)

* Cited by examiner, † Cited by third party
Title
NAVIN KUMAR 等: "DDGSim: GPU based simulator for large multicore with bufferless NoC", 《2014 ANNUAL IEEE INDIA CONFERENCE (INDICON)》 *
何贵翔: "面向Android应用的ARM多核处理器核间通信开销建模", 《中国优秀硕士学位论文全文数据库 信息科技辑》 *
戴鹏等: "一种多核处理系统通信机制的仿真模型", 《微电子学与计算机》 *

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112416849A (zh) * 2020-11-25 2021-02-26 杭州和利时自动化有限公司 一种双cpu数据交互方法、装置及系统
EP4280070A1 (en) * 2022-05-17 2023-11-22 Samsung Electronics Co., Ltd. Systems and methods for solid state device (ssd) simulation

Also Published As

Publication number Publication date
CN109101456B (zh) 2021-10-15

Similar Documents

Publication Publication Date Title
CN110232034A (zh) 主机系统及其方法和加速模块
CN106201349B (zh) 一种在物理主机中处理读/写请求的方法和装置
CN104702474B (zh) 一种基于FPGA的EtherCAT主站装置
CN104205050B (zh) 访问远程机器上的设备
CN105144637B (zh) 用于交换用户数据的接口装置和方法
CN103942087B (zh) 虚拟机热迁移方法及相关装置和集群系统
CN109690510A (zh) 用于将数据分发到高性能计算网络和基于云的网络中的多个接收器的多播装置和方法
CN102609298B (zh) 基于硬件队列扩展的网卡虚拟化系统及其方法
CN104699525B (zh) 消息通信技术
CN106850565A (zh) 一种高速的网络数据传输方法
CN110462599A (zh) 用于循环缓冲器的自主硬件管理的设备和方法
CN107003892A (zh) Gpu虚拟化方法、装置、系统及电子设备、计算机程序产品
CN102339343A (zh) 产生系统模型的方法与在此系统模型中传输数据的方法
CN103970031B (zh) 一种卫星模拟器集成仿真系统及仿真方法
CN103562895B (zh) 通过选择性聚合相邻数据单元来便于路由
CN103885840B (zh) 一种基于AXI4总线的FCoE协议加速引擎IP核
CN109101456A (zh) 一种仿真ssd中的数据交互通信方法、装置及终端
CN107870879A (zh) 一种数据搬移方法、加速器板卡、主机及数据搬移系统
CN109983438A (zh) 使用直接存储器访问(dma)重新映射来加速半虚拟化网络接口
CN111813522A (zh) 一种虚拟arinc 653仿真验证平台
CN108333566A (zh) 一种基于zynq的便携式雷达测试系统及测试方法
CN110502861A (zh) 基于卫星信息流的全数字化仿真系统
CN101630343B (zh) 仿真方法及系统
CN105988948A (zh) 一种数据传输的方法及设备
CN107451025A (zh) 控制存储芯片的测试方法及系统

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant