CN114490106A - 信息交换系统与方法 - Google Patents

信息交换系统与方法 Download PDF

Info

Publication number
CN114490106A
CN114490106A CN202011273194.4A CN202011273194A CN114490106A CN 114490106 A CN114490106 A CN 114490106A CN 202011273194 A CN202011273194 A CN 202011273194A CN 114490106 A CN114490106 A CN 114490106A
Authority
CN
China
Prior art keywords
slave
host
entries
master
upper limit
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.)
Pending
Application number
CN202011273194.4A
Other languages
English (en)
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.)
Realtek Semiconductor Corp
Original Assignee
Realtek Semiconductor Corp
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 Realtek Semiconductor Corp filed Critical Realtek Semiconductor Corp
Priority to CN202011273194.4A priority Critical patent/CN114490106A/zh
Priority to TW109141352A priority patent/TWI763145B/zh
Priority to US17/381,230 priority patent/US20220156006A1/en
Publication of CN114490106A publication Critical patent/CN114490106A/zh
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/14Handling requests for interconnection or transfer
    • G06F13/16Handling requests for interconnection or transfer for access to memory bus
    • G06F13/1668Details of memory controller
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0655Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
    • G06F3/0659Command handling arrangements, e.g. command buffers, queues, command scheduling
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/54Interprogram communication
    • G06F9/542Event management; Broadcasting; Multicasting; Notifications
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/38Information transfer, e.g. on bus
    • G06F13/42Bus transfer protocol, e.g. handshake; Synchronisation
    • G06F13/4282Bus transfer protocol, e.g. handshake; Synchronisation on a serial bus, e.g. I2C bus, SPI bus
    • G06F13/4295Bus transfer protocol, e.g. handshake; Synchronisation on a serial bus, e.g. I2C bus, SPI bus using an embedded synchronisation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/0604Improving or facilitating administration, e.g. storage management
    • G06F3/0607Improving or facilitating administration, e.g. storage management by facilitating the process of upgrading existing storage systems, e.g. for improving compatibility between host and storage device
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/0671In-line storage system
    • G06F3/0673Single storage device
    • G06F3/0679Non-volatile semiconductor memory device, e.g. flash memory, one time programmable memory [OTP]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/54Interprogram communication
    • G06F9/544Buffers; Shared memory; Pipes
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2209/00Indexing scheme relating to G06F9/00
    • G06F2209/54Indexing scheme relating to G06F9/54
    • G06F2209/548Queue
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2213/00Indexing scheme relating to interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F2213/0026PCI express

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Human Computer Interaction (AREA)
  • Software Systems (AREA)
  • Multimedia (AREA)
  • Computer And Data Communications (AREA)
  • Information Transfer Systems (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

本公开涉及信息交换系统与方法。信息交换方法由从机来执行,能节省从机的储存资源。方法包含:接收主机的提交队列尾端提醒,以得知在主机有X个SQ条目待处理,X不大于主机SQ条目上限;依据SQ尾端提醒执行多次读取操作,以从主机读取该X个SQ条目,其中在每次读取操作中,该从机从该主机读取至多Y个SQ条目,该Y小于该X,且不大于从机SQ条目上限,该从机SQ条目上限小于该主机SQ条目上限;准备P个完成队列条目;执行多次写入操作,以传送该P个CQ条目给该主机,在每次写入操作中,该从机传送至多Q个CQ条目给该主机,该Q小于该P,且不大于从机CQ条目上限;发送CQ尾端提醒给该主机,以告知该主机该从机完成写入该P个CQ条目。

Description

信息交换系统与方法
技术领域
本发明涉及信息交换系统与方法,尤其涉及提交队列条目/完成队列条目的信息交换系统与方法。
背景技术
图1显示一般的系统单芯片(SoC)100具有一到多个中央处理器(CPU)110,该/该些CPU 110的运行固件(后称固件)通过系统总线120调度与协调各个硬件130的功能以进行运算和处理流程,从而完成SoC 100的整体功能。
当固件和硬件的某个功能互动(interaction)时,硬件为了完成一次具体作业(task),需要来自固件的输入信息,该输入信息称为命令信息(command;cmd);硬件完成一次具体作业后,需回馈输出信息给固件,该输出信息称为完成信息(completion;cmpl)。图2显示基于非易失性内存快捷(Non-Volatile Memory Express;NVMe)协议的cmd与cmpl的互动形式,其中主机210的系统内存212储存cmd所形成的提交队列(submission queue;SQ)与cmpl所形成的完成队列(completion queue;CQ)。该互动模式采用消费者/生产者模型。详言之,对SQ而言,主机210是生产者,从机220是消费者;主机210藉由更新SQ的尾端提醒(tail doorbell)来通知从机220其已写入了几笔cmd;从机220藉由更新SQ的首端提醒(head doorbell)来通知主机210其已经取走了几笔cmd。另外,对CQ而言,从机220是生产者,主机210是消费者;从机220藉由更新CQ的尾端提醒来告知主机210其写入了几笔cmpl,主机210藉由更新CQ的首端提醒来通知从机220其已经处理了几笔cmpl。从机220内部的内存222会储存上述SQ的尾端提醒与SQ的首端提醒等等SQ信息,并储存上述CQ的尾端提醒与CQ的首端提醒等CQ信息。
通过前述NVMe协议的SQ/CQ的提醒(doorbell)所形成的握手机制,主机与从机的cmd/cmpl的互动可以实现。从机内部的cmd/cmpl的沟通方式如图3所示:从机220中,CPU310的固件通过总线320访问内存222资源;固件经由总线320将cmd按递增顺序写进cmd队列指定的地址范围,然后藉由缓存器330的档案(register files)提供「指向下一笔写入的cmd的地址的指针(cmd_write_pointer)」给硬件340;硬件340根据该指针计算出未处理的cmd,并通过总线320从cmd队列取得未处理的cmd以执行;硬件340处理完cmd后,产生cmpl,并经由总线320将cmpl按递增顺序写进cmpl队列指定的地址范围,接着提供「指向下一笔写入的cmpl的地址的指针(cmpl_write_pointer)」给固件,固件再藉由缓存器330的档案得到最新的cmpl_write_pointer,以从cmpl队列中取得未处理的cmpl。
据上所述,从机220的内存222会储存cmd队列与cmpl队列。依据NVMe协议,主机210会认为从机220完全支持主机210的SQ队列与CQ队列内所有条目(entry);换言之,从机220的cmd队列与cmpl队列直观上应完全对应主机210的SQ队列与CQ队列,因此从机220中用来储存cmd队列与cmpl队列的内存应相当于主机210中用来储存SQ队列与CQ队列的内存。然而,考虑到从机220与主机210的硬件资源的不对等,从机220需要大量的硬件资源以完全支持主机端的SQ内所有条目。
发明内容
本公开的目的之一在于提供一种信息交换系统与方法,以作为先前技术的改良。
本公开的信息交换系统的一实施例包含一主机与一从机,其中:该主机准备X个提交队列(submission queue;SQ)条目(entries),该X为大于一的整数,且不大于一主机SQ条目上限;该主机发送一SQ尾端提醒(SQ tail doorbell)给该从机;该从机依据该SQ尾端提醒执行多次读取操作,以从该主机读取该X个SQ条目,其中于该多次读取操作的每一次读取操作中,该从机从该主机读取至多Y个SQ条目,该Y为小于该X的正整数,且不大于一从机SQ条目上限,该从机SQ条目上限小于该主机SQ条目上限;该从机准备P个完成队列(completion queue;CQ)条目,该P为大于一的整数;该从机执行多次写入操作,以传送该P个CQ条目给该主机,其中于该多次写入操作的每一次写入操作中,该从机传送至多Q个CQ条目给该主机,该Q为小于该P的正整数,且不大于一从机CQ条目上限;以及该从机发送一CQ尾端提醒(CQ tail doorbell)给该主机,以告知该主机该从机完成写入该P个CQ条目。
本公开的信息交换方法的一实施例是由一从机来执行,该实施例包含下列步骤(1)~(5):(1)接收来自一主机的一SQ尾端提醒(SQ tail doorbell),以得知在该主机有X个SQ条目待处理,该X为大于一的整数,且不大于一主机SQ条目上限;(2)依据该SQ尾端提醒执行多次读取操作,以从该主机读取该X个SQ条目,其中于该多次读取操作的每一次读取操作中,该从机从该主机读取至多Y个SQ条目,该Y为小于该X的正整数,且不大于一从机SQ条目上限,该从机SQ条目上限小于该主机SQ条目上限;(3)准备P个CQ条目,该P为大于一的整数;(4)执行多次写入操作,以传送该P个CQ条目给该主机,其中于该多次写入操作的每一次写入操作中,该从机传送至多Q个CQ条目给该主机,该Q为小于该P的正整数,且不大于一从机CQ条目上限;(5)以及发送一CQ尾端提醒给该主机,以告知该主机该从机完成写入该P个CQ条目。
本公开的信息交换方法的另一实施例是由一从机来执行,该实施例包含前述步骤(1)~(2)。本实施例可采用已知或自行开发的方式作为前述步骤(3)~(5)的替代,以交换CQ条目的信息。
本公开的信息交换方法的又一实施例是由一从机来执行,该实施例包含前述步骤(3)~(5)。本实施例可采用已知或自行开发的方式作为前述步骤(1)~(2)替代,以交换SQ条目的信息。
有关本发明的特征、实作与效果,配合图式作优选实施例详细说明如下。
附图说明
图1显示一般系统单芯片的架构;
图2显示基于NVMe协议的命令信息与完成信息的互动形式;
图3显示从机内部的命令信息/完成信息的沟通方式;
图4显示本公开的信息交换系统的一实施例;
图5a显示主机与从机进行提交队列条目的信息交换的示意图;
图5b显示主机与从机进行完成队列条目的信息交换的示意图;
图6显示本公开的信息交换方法的一实施例;
图7显示本公开的信息交换方法的另一实施例;以及
图8显示本公开的信息交换方法的又一实施例。
具体实施方式
本公开揭示一种信息交换系统与方法,能够在主机未发觉的情形下,减少从机的硬件资源的消耗。
图4显示本公开的信息交换系统的一实施例。图4的信息交换系统400包含一主机410与一从机420。主机410与从机420是依据一传输协议(例如:非易失性内存快捷(Non-Volatile Memory Express;NVMe)协议)决定各自的角色,并按该传输协议进行信息交换。主机410包含一系统内存412。从机420包含一中央处理器422、一总线424、一内存426、一缓存器428与一硬件429。主机410与从机420的电路的每一个单独而言为已知或自行开发的电路。在单一次信息交换操作(例如:单一次读取/写入操作)中,主机410的内部操作以及从机420的内部操作(例如:中央处理器422的固件与硬件429(例如:读/写电路)之间的沟通)可由已知或自行开发的技术(例如:本说明书所述的先前技术)来实现。
请参阅图4。为了执行一作业(例如:读取/写入作业),主机410与从机420需进行信息交换。图5a和图5b显示主机410与从机420进行信息交换的示意图,其中:
步骤S1:主机410准备X个提交队列(submission queue;SQ)条目(entries),该X为大于一的整数,且不大于主机SQ条目上限(亦即:主机410在单次读取操作中所能处理的SQ条目上限)。
步骤S2:主机410发送一SQ尾端提醒(SQ tail doorbell)给从机420的硬件。
步骤S3~S9:从机420依据该SQ尾端提醒执行多次读取操作,以从主机410读取该X个SQ条目然后处理。详言之,从机420的硬件先发送「读取Y个SQ条目的要求」或「读取剩余SQ条目的要求(当剩余的SQ条目的数目小于Y时)」给主机410(S3),该Y不大于从机SQ条目上限(亦即:从机420在单次读取操作中所能处理的SQ条目上限),该从机SQ条目上限小于该主机SQ条目上限,因此,当该X不大于该从机SQ条目上限时,该Y可等于该X;但当该X大于该从机SQ条目上限时,该Y会是小于该X的正整数;为体现本实施例的优点,后续说明仅讨论该X大于该从机SQ条目上限的情形。在步骤S3之后,主机410依据该要求传送该Y个SQ条目/剩余SQ条目给从机420的硬件429(S4);从机410的硬件429接收该Y个SQ条目/剩余SQ条目并将其写到总线424上(S5);硬件429藉由中断要求(interrupt)通知中央处理器422的固件,以更新从机端的SQ尾端提醒(SQ local tail doorbell)(S6);该固件解析该Y个SQ条目/剩余SQ条目(S7);接着该固件更新该从机端的SQ首端提醒(S8);然后重复步骤S3~S9直到取回所有X个SQ条目(S9)。举例而言,若该从机SQ条目上限为YMAX,该Y等于YMAX,且X=K1×YMAX+Z1,步骤S3~S9总共会被执行(K1+1)次,以取回K1组SQ条目与Z1个SQ条目,其中每组SQ条目包含YMAX个SQ条目,Z1为前述剩余SQ条目的数目,小于YMAX
步骤C1:从机420的固件准备P个完成队列(completion queue;CQ)条目,该P为大于一的整数。举例而言,该P等于步骤S1的该X。值得注意的是,在从机420的固件完成准备所有的P个条目之前,C1之后的步骤(例如:以下步骤C2~C8)即可开始。在一范例性实作中,该P个CQ条目包含一SQ首端提醒信息,该SQ首端提醒信息用来告知主机410从机420已完成读取该X个SQ条目。
步骤C2~C9:从机420执行多次写入操作,以传送该P个CQ条目给主机410。详言之,从机420的中央处理器422的固件先发送一CQ尾端提醒(CQ tail doorbell)给从机420的硬件429(C2);然后硬件429经由总线424读取Q个CQ条目或剩余的CQ条目(当该剩余的CQ条目的数目小于Q时)(C3),该Q不大于一从机CQ条目上限(亦即:从机420在单次写入操作所能处理的CQ条目上限),该从机CQ条目上限小于主机CQ条目上限(亦即:主机410在单次写入操作中处理CQ条目的上限)。因此,当该P不大于该从机CQ条目上限时,该Q可等于该P;但当该P大于该从机CQ条目上限时,该Q会是小于该P的正整数;为体现本实施例的优点,后续说明仅讨论该P大于该从机CQ条目上限的情形。在步骤C3之后,硬件429传送该Q个CQ条目/剩余CQ条目给主机410(C4);硬件429藉由中断要求(interrupt)通知主机410(C5);然后硬件429藉由中断要求通知从机420的中央处理器422的固件CQ数据的更新已完成(C6);主机410处理该Q个CQ条目/剩余CQ条目(C7);接着主机410发送一CQ首端提醒(CQ head doorbell)给从机420的硬件429(C8);然后重复步骤C2~C9直到传送完所有P个CQ条目(C9)。举例而言,若该从机CQ条目上限为QMAX,且P=K2×QMAX+Z2,该Q等于QMAX,步骤C2~C9总共会被执行(K2+1)次,以取回K2组CQ条目与Z2个CQ条目,其中每组CQ条目包含QMAX个CQ条目,Z2为前述剩余的CQ条目的数目,小于QMAX
步骤C10:从机420的硬件发送一CQ尾端提醒(CQ tail doorbell)给主机410,以告知主机410从机420已完成写入该P个CQ条目。
请参阅图4至图5b。在单一次读取操作中,从机420能够读取的SQ条目的数目(亦即:该从机SQ条目上限)少于主机410能够准备的SQ条目的数目(亦即:该主机SQ条目上限);因此,在主机410依据前述传输协议预期从机420能够在单一次读取操作中完全支持该主机SQ条目上限的情形下,从机420实际上在单一次读取操作中能支持的SQ条目的数目少于主机410的预期,故从机420相较于先前技术需执行多次读取操作以读取所有SQ条目,但这也让从机420所储存的命令信息(cmd)队列不必在单一次的读取操作中完全对应主机410的所储存的提交队列(SQ),因此从机420中用来储存cmd队列的内存可小于主机410中用来储存SQ的内存,故从机420不必消耗太多硬件资源来储存cmd队列。
请参阅图4至图5b。在单一次写入操作中,从机420能够传送的CQ条目的数目(亦即:该从机CQ条目上限)少于主机410能够处理的CQ条目的数目(亦即:该主机CQ条目上限CQ#MAX);因此,在主机410依据前述传输协议预期从机420能够在单一次写入操作中最多提供CQ#MAX个CQ条目的情形下,从机420实际上在单一次写入操作中能提供的CQ条目少于主机410的预期,故从机420相较于先前技术需执行多次写入操作以提供所有CQ条目给主机410,但这也让从机420所储存的完成信息(cmpl)队列不必在单一次的写入操作中完全满足该主机CQ条目上限,因此从机420中用来储存cmpl队列的内存可小于主机410中用来储存完成队列(CQ)的内存,,从而从机420不必消耗太多硬件资源来储存cmpl队列。
一替代实施例包含图4与图5a的技术,而不包含图5b的技术,该实施例可采用已知或自行开发的方式作为图5b的技术的替代,以交换CQ条目的信息。另一替代实施例包含图4与图5b的技术,而不包含图5a的技术,该实施例可采用已知或自行开发的方式作为图5a的技术的替代,以交换SQ条目的信息。
图6显示本公开的信息交换方法的一实施例。图6的实施例是由一从机来执行,用来从一主机读取提交队列(submission queue;SQ)条目,以及提供完成队列(completionqueue;CQ)条目给该主机。该实施例包含下列步骤:
S610:接收来自一主机的一SQ尾端提醒,以得知在该主机有X个提交队列SQ条目待处理,该X为大于一的整数,且不大于一主机SQ条目上限。
S620:依据该SQ尾端提醒执行多次读取操作,以从该主机读取该X个SQ条目,其中在该多次读取操作的每一次读取操作中,该从机从该主机读取至多Y个SQ条目(例如:前述YMAX个或Z1个SQ条目),该Y为小于该X的正整数,且不大于一从机SQ条目上限,该从机SQ条目上限小于该主机SQ条目上限。
S630:准备P个完成队列CQ条目,该P为大于一的整数。本例中,该P大于一从机CQ条目上限。
S640:执行多次写入操作,以传送该P个CQ条目给该主机,其中在该多次写入操作的每一次写入操作中,该从机传送至多Q个CQ条目(例如:前述QMAX个或Z2个CQ条目)给该主机,该Q为小于该P的正整数,且不大于该从机CQ条目上限。
S650:发送一CQ尾端提醒给该主机,以告知该主机该从机完成写入该P个CQ条目。
图7显示本公开的信息交换方法的一实施例。图7的实施例是由一从机来执行,用来从一主机读取提交队列(submission queue;SQ)条目。该实施例包含下列步骤:
S710:接收来自该主机的一SQ尾端提醒,以得知在该主机有X个提交队列SQ条目待处理,该X为大于一的整数,且不大于一主机SQ条目上限。
S720:依据该SQ尾端提醒执行多次读取操作,以从该主机读取该X个SQ条目,其中在该多次读取操作的每一次读取操作中,该从机从该主机读取至多Y个SQ条目,该Y为小于该X的正整数,且不大于一从机SQ条目上限,该从机SQ条目上限小于该主机SQ条目上限。
图8显示本公开的信息交换方法的一实施例。图8的实施例是由一从机来执行,用来提供完成队列(completion queue;CQ)条目给一主机。该实施例包含下列步骤:
S810:准备P个CQ条目,该P为大于一的整数。本例中,该P大于一从机CQ条目上限。
S820:执行多次写入操作,以传送该P个CQ条目给该主机,其中在该多次写入操作的每一次写入操作中,该从机传送至多Q个CQ条目给该主机,该Q为小于该P的正整数,且不大于该从机CQ条目上限。
S830:发送一CQ尾端提醒给该主机,以告知该主机该从机完成写入该P个CQ条目。
由于本领域具有通常知识者能够参考图4至图5b的实施例的公开来了解图6至图8的实施例的细节与变化,亦即图4至图5b的实施例的技术特征可合理地应用于图6至图8的实施例中,重复及冗余的说明在此予以节略。
请注意,在实施为可能的前提下,本技术领域具有通常知识者可选择性地实施前述任一实施例中部分或全部技术特征,或选择性地实施前述多个实施例中部分或全部技术特征的组合,藉此增加本发明实施时的弹性。
综上所述,本发明能够在不影响主机的运作的情形下,减少从机的硬件资源的消耗。
虽然本发明的实施例如上所述,然而这些实施例并非用来限定本发明,本技术领域具有通常知识者可依据本发明的明示或隐含的内容对本发明的技术特征施以变化,凡此种种变化均可能属于本发明所寻求的专利保护范畴,换言之,本发明的专利保护范围需视本说明书的权利要求范围所界定者为准。
【符号说明】
100:系统单芯片(SoC)
110:中央处理器(CPU)
120:系统总线
130:硬件
210:主机
212:系统内存
220:从机
222:内存
SQ:提交队列
CQ:完成队列
310:中央处理器(CPU)
320:总线
330:缓存器
340:硬件
400:信息交换系统
410:主机
412:系统内存
420:从机
422:中央处理器(CPU)
424:总线
426:内存
428:缓存器
429:硬件
S1~S9:步骤
C1~C10:步骤
S610~S650:步骤
S710~S720:步骤
S812~S830:步骤。

Claims (10)

1.一种信息交换系统,包含一主机与一从机,其中:
该主机准备X个提交队列条目,该X为大于一的整数,且不大于一主机提交队列条目上限;
该主机发送一提交队列尾端提醒给该从机;
该从机依据该提交队列尾端提醒执行多次读取操作,以从该主机读取该X个提交队列条目,其中在该多次读取操作的每一次读取操作中,该从机从该主机读取至多Y个提交队列条目,该Y为小于该X的正整数,且不大于一从机提交队列条目上限,该从机提交队列条目上限小于该主机提交队列条目上限;
该从机准备P个完成队列条目,该P为大于一的整数;
该从机执行多次写入操作,以传送该P个完成队列条目给该主机,其中在该多次写入操作的每一次写入操作中,该从机传送至多Q个完成队列条目给该主机,该Q为小于该P的正整数,且不大于一从机完成队列条目上限;以及
该从机发送一完成队列尾端提醒给该主机,以告知该主机该从机完成写入该P个完成队列条目。
2.根据权利要求1的信息交换系统,其中,该P个完成队列条目包含一提交队列首端提醒信息,该提交队列首端提醒信息用来告知该主机该从机完成读取该X个提交队列条目。
3.根据权利要求1的信息交换系统,其中,该从机完成队列条目上限小于一主机完成队列条目上限,该主机完成队列条目上限表示该主机在单一次写入操作中处理完成队列条目的上限。
4.根据权利要求1的信息交换系统,其中,该从机使用硬件与固件来执行该多次读取操作以及该多次写入操作,该硬件与该主机进行信息交换,该固件处理该X个提交队列条目以及准备该P个完成队列条目。
5.根据权利要求1的信息交换系统,其中,该主机与该从机之间的传输是基于非易失性内存快捷协议。
6.根据权利要求5的信息交换系统,其中,该从机完成队列条目上限小于一主机完成队列条目上限,该主机完成队列条目上限表示该主机在单一次写入操作中完成队列条目的上限,该主机依据该非易失性内存快捷协议预期该从机提交队列条目上限等于该主机提交队列条目上限,以及预期该从机完成队列条目上限等于该主机完成队列条目上限。
7.一种信息交换方法,是由一从机来执行,该方法包含:
接收来自一主机的一提交队列尾端提醒,以得知在该主机有X个提交队列条目待处理,该X为大于一的整数,且不大于一主机提交队列条目上限;
依据该提交队列尾端提醒执行多次读取操作,以从该主机读取该X个提交队列条目,其中在该多次读取操作的每一次读取操作中,该从机从该主机读取至多Y个提交队列条目,该Y为小于该X的正整数,且不大于一从机提交队列条目上限,该从机提交队列条目上限小于该主机提交队列条目上限;
准备P个完成队列条目,该P为大于一的整数;
执行多次写入操作,以传送该P个完成队列条目给该主机,其中在该多次写入操作的每一次写入操作中,该从机传送至多Q个完成队列条目给该主机,该Q为小于该P的正整数,且不大于一从机完成队列条目上限;以及
发送一完成队列尾端提醒给该主机,以告知该主机该从机完成写入该P个完成队列条目。
8.根据权利要求7的信息交换方法,其中,该从机完成队列条目上限小于一主机完成队列条目上限,该主机完成队列条目上限表示该主机在单一次写作操作中处理完成队列条目的上限。
9.一种信息交换方法,是由一从机来执行,该方法包含:
接收来自一主机的一提交队列尾端提醒,以得知在该主机有X个提交队列条目待处理,该X为大于一的整数,且不大于一主机提交队列条目上限;以及
依据该提交队列尾端提醒执行多次读取操作,以从该主机读取该X个提交队列条目,其中在该多次读取操作的每一次读取操作中,该从机从该主机读取至多Y个提交队列条目,该Y为小于该X的正整数,且不大于一从机提交队列条目上限,该从机提交队列条目上限小于该主机提交队列条目上限。
10.一种信息交换方法,是由一从机来执行,该方法包含:
准备P个完成队列条目,该P为大于一的整数;
执行多次写入操作,以传送该P个完成队列条目给主机,其中在该多次写入操作的每一次写入操作中,该从机传送至多Q个完成队列条目给该主机,该Q为小于该P的正整数,且不大于一从机完成队列条目上限;以及
发送一完成队列尾端提醒给该主机,以告知该主机该从机完成写入该P个完成队列条目。
CN202011273194.4A 2020-11-13 2020-11-13 信息交换系统与方法 Pending CN114490106A (zh)

Priority Applications (3)

Application Number Priority Date Filing Date Title
CN202011273194.4A CN114490106A (zh) 2020-11-13 2020-11-13 信息交换系统与方法
TW109141352A TWI763145B (zh) 2020-11-13 2020-11-25 訊息交換系統與方法
US17/381,230 US20220156006A1 (en) 2020-11-13 2021-07-21 System and method for exchanging messages

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202011273194.4A CN114490106A (zh) 2020-11-13 2020-11-13 信息交换系统与方法

Publications (1)

Publication Number Publication Date
CN114490106A true CN114490106A (zh) 2022-05-13

Family

ID=81491174

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202011273194.4A Pending CN114490106A (zh) 2020-11-13 2020-11-13 信息交换系统与方法

Country Status (3)

Country Link
US (1) US20220156006A1 (zh)
CN (1) CN114490106A (zh)
TW (1) TWI763145B (zh)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20230120600A1 (en) * 2021-10-20 2023-04-20 Western Digital Technologies, Inc. Data Storage Devices, Systems, and Related Methods for Grouping Commands of Doorbell Transactions from Host Devices

Family Cites Families (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
TW563317B (en) * 2001-12-31 2003-11-21 Realtek Semiconductor Corp Switch controller using link layer protocol for control and its control method
US8566568B2 (en) * 2006-08-16 2013-10-22 Qualcomm Incorporated Method and apparatus for executing processor instructions based on a dynamically alterable delay
TW201012149A (en) * 2008-09-12 2010-03-16 Inventec Appliances Corp Instant messaging method and instant messaging system
US8561065B2 (en) * 2010-11-15 2013-10-15 International Business Machines Corporation Virtualization of vendor specific network interfaces of self-virtualizing input/output device virtual functions
US9294567B2 (en) * 2014-05-02 2016-03-22 Cavium, Inc. Systems and methods for enabling access to extensible storage devices over a network as local storage via NVME controller
US10459634B2 (en) * 2015-10-31 2019-10-29 Sandisk Technologies Llc Methods, systems, and computer readable media for aggregating completion entries in a nonvolatile storage device
KR20180045103A (ko) * 2016-10-24 2018-05-04 삼성전자주식회사 적응형 인터럽트를 생성하는 데이터 저장 장치 및 그것의 동작 방법
US10282094B2 (en) * 2017-03-31 2019-05-07 Samsung Electronics Co., Ltd. Method for aggregated NVME-over-fabrics ESSD
US10489877B2 (en) * 2017-04-24 2019-11-26 Intel Corporation Compute optimization mechanism
US10564898B2 (en) * 2018-06-11 2020-02-18 Western Digital Technologies, Inc. System and method for storage device management
US11500549B2 (en) * 2019-04-19 2022-11-15 EMC IP Holding Company LLC Secure host access to storage system resources via storage system interface and internal switching fabric
KR20210021202A (ko) * 2019-08-14 2021-02-25 삼성전자주식회사 직렬로 연결된 전자 장치들 사이의 레이턴시를 감소시키기 위한 컴퓨팅 시스템
US20220050629A1 (en) * 2020-08-13 2022-02-17 Micron Technology, Inc. Completion management

Also Published As

Publication number Publication date
TW202219785A (zh) 2022-05-16
TWI763145B (zh) 2022-05-01
US20220156006A1 (en) 2022-05-19

Similar Documents

Publication Publication Date Title
USRE49875E1 (en) Memory system having high data transfer efficiency and host controller
US9852087B2 (en) Inline PCI-IOV adapter
US7234004B2 (en) Method, apparatus and program product for low latency I/O adapter queuing in a computer system
CN111274252B (zh) 一种区块链的数据上链方法、装置、存储介质和服务器
CN106681816A (zh) PCIe中断方法和系统
US8250260B2 (en) Method, arrangement, data processing program and computer program product for exchanging message data in a distributed computer system
CN115357416B (zh) 一种跨系统进行数据处理的方法及装置
WO2023201987A1 (zh) 请求处理方法、装置、设备及介质
CN111737564A (zh) 一种信息查询方法、装置、设备及介质
US7552232B2 (en) Speculative method and system for rapid data communications
CN114817965A (zh) 基于多算法ip核实现msi中断处理的高速加解密系统及方法
CN101421791B (zh) 用于主机和外围设备之间通信的队列深度管理的方法
CN115827524A (zh) 一种数据传输方法以及装置
US20180335957A1 (en) Lock-free datapath design for efficient parallel processing storage array implementation
CN114490106A (zh) 信息交换系统与方法
US7913059B2 (en) Information processing device, data transfer method, and information storage medium
US20210223991A1 (en) System including an application processor and a data storage device providing data
US20220035564A1 (en) Systems and methods for processing commands for storage devices
US10678744B2 (en) Method and system for lockless interprocessor communication
CN114077562A (zh) 一种1553b总线控制器协议处理ip核
CN116486868A (zh) 计算高速链路(CXL)上的高速非易失性存储器(NVMe)
CN115563038A (zh) 基于dma控制器的数据处理系统、方法和数据处理设备
CN114675954A (zh) 任务调度方法及装置
CN113220608A (zh) 一种NVMe命令处理器及其处理方法
US9092581B2 (en) Virtualized communication sockets for multi-flow access to message channel infrastructure within CPU

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