CN110858188A - 具有分布式信箱结构的多处理器***及其沟通方法 - Google Patents

具有分布式信箱结构的多处理器***及其沟通方法 Download PDF

Info

Publication number
CN110858188A
CN110858188A CN201910114084.4A CN201910114084A CN110858188A CN 110858188 A CN110858188 A CN 110858188A CN 201910114084 A CN201910114084 A CN 201910114084A CN 110858188 A CN110858188 A CN 110858188A
Authority
CN
China
Prior art keywords
processor
mailbox
proprietary
data
multiprocessor system
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
CN201910114084.4A
Other languages
English (en)
Other versions
CN110858188B (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.)
Silicon Motion Inc
Original Assignee
Silicon Motion Inc
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 Silicon Motion Inc filed Critical Silicon Motion Inc
Publication of CN110858188A publication Critical patent/CN110858188A/zh
Application granted granted Critical
Publication of CN110858188B publication Critical patent/CN110858188B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/0703Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation
    • G06F11/0766Error or fault reporting or storing
    • G06F11/0772Means for error signaling, e.g. using interrupts, exception flags, dedicated error registers
    • 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/1605Handling requests for interconnection or transfer for access to memory bus based on arbitration
    • G06F13/1652Handling requests for interconnection or transfer for access to memory bus based on arbitration in a multiprocessor architecture
    • G06F13/1663Access to shared memory
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/08Error detection or correction by redundancy in data representation, e.g. by using checking codes
    • G06F11/10Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
    • G06F11/1076Parity data used in redundant arrays of independent storages, e.g. in RAID systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/16Error detection or correction of the data by redundancy in hardware
    • G06F11/20Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements
    • G06F11/202Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements where processing functionality is redundant
    • G06F11/2043Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements where processing functionality is redundant where the redundant components share a common memory address space
    • 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
    • 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/20Handling requests for interconnection or transfer for access to input/output bus
    • G06F13/24Handling requests for interconnection or transfer for access to input/output bus using interrupt
    • 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
    • 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/061Improving I/O performance
    • 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/0656Data buffering arrangements
    • 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/0658Controller construction arrangements
    • 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
    • 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
    • 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/0683Plurality of storage devices
    • G06F3/0689Disk arrays, e.g. RAID, JBOD
    • 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/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/32Address formation of the next instruction, e.g. by incrementing the instruction counter
    • G06F9/322Address formation of the next instruction, e.g. by incrementing the instruction counter for non-sequential address
    • G06F9/327Address formation of the next instruction, e.g. by incrementing the instruction counter for non-sequential address for interrupts
    • 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/48Program initiating; Program switching, e.g. by interrupt
    • G06F9/4806Task transfer initiation or dispatching
    • G06F9/4812Task transfer initiation or dispatching by interrupt, e.g. masked
    • 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/546Message passing systems or structures, e.g. queues
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
    • Y02D10/00Energy efficient computing, e.g. low power processors, power management or thermal management

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)
  • Quality & Reliability (AREA)
  • Multi Processors (AREA)
  • Techniques For Improving Reliability Of Storages (AREA)
  • Hardware Redundancy (AREA)

Abstract

一种具有分布式信箱结构的多处理器***及其沟通方法。所述多处理器***包括多个处理器,每一处理器被配置有相应的一专有信箱与一专有信道,且所述沟通方法包括如下步骤。当这些处理器的第一处理器要与第二处理器进行沟通时,第一处理器是通过公共总线来写入数据到第二处理器的专有信箱中,以及当该数据写入完成时,第二处理器的专有信箱是发出中断信号给第二处理器,收到中断信号后的第二处理器则通过相应的专有信道来读取其专有信箱内的该数据,因此,在第二处理器读取该数据时,它就不会占用到公共总线。

Description

具有分布式信箱结构的多处理器***及其沟通方法
技术领域
本发明涉及一种多处理器(Multi-Processor)***,尤其涉及一种具有分布式信箱(Distributed Mailbox)结构的多处理器***及其沟通方法。
背景技术
在习知的多处理器***中,通常会有个共享存储器(Share Memory)来作为沟通方案。举例来说,请参阅图1,图1是习知的多处理器***的功能方块示意图。多处理器***1包括共享存储器110与多个处理器,例如处理器CPU_0~CPU_N。然而,由于共享存储器110与每一处理器均耦接在同一公共总线(Public Bus)上,因此,只要有一个以上的处理器欲读写共享存储器110时,多处理器***1就需要作公共总线的排队(Queue)调度,以致于造成公共总线的等待并使整个***效能下降。
发明内容
有鉴于此,本发明实施例提供一种具有分布式信箱结构的多处理器***及其沟通方法。所述多处理器***包括多个处理器,每一处理器被配置有相应的一专有信箱与一专有信道,且所述沟通方法包括如下步骤。当这些处理器的第一处理器要与第二处理器进行沟通时,第一处理器是通过公共总线来写入数据到第二处理器的专有信箱中,以及当该数据写入完成时,第二处理器的专有信箱是发出一中断信号给第二处理器,收到中断信号后的第二处理器则通过相应的专有信道来读取其专有信箱内的该数据。
此外,本发明实施例另提供一种处理器错误检查方法。所述处理器错误检查方法可同样执行于前述多处理器***中,且其包括如下步骤。当这些处理器的第一处理器要与第二处理器进行沟通时,第一处理器是通过公共总线来写入数据到第二处理器的专有信箱中,以及当第二处理器的专有信箱收到该数据时,第二处理器的专有信箱是开始进行计时,并且直到计时的结果超过一阈值时,第二处理器的专有信箱是发出一超时信号给第二处理器,收到超时信号后的第二处理器则来对第一处理器进行重置。
本发明的其他目的和优点可以从本发明所揭露的技术特征中得到进一步的了解。为让本发明的上述和其他目的、特征和优点能更明显易懂,下文特举实施例并配合所附图式,作详细说明如下。
附图说明
图1是习知的多处理器***的功能方块示意图;
图2是本发明实施例所提供具有分布式信箱结构的多处理器***的功能方块示意图;
图3A是本发明实施例所提供的沟通方法中有关第一处理器的流程示意图;
图3B是本发明实施例所提供的沟通方法中有关第二处理器的流程示意图;
图4是图2的多处理器***中的专有信箱的功能方块示意图;
图5是本发明实施例所提供的处理器错误检查方法的流程示意图。
具体实施方式
在下文中,将通过附图说明本发明的各种实施例来详细描述本发明。然而,本发明概念可能以许多不同形式来体现,且不应解释为限于本文中所阐述的例示性实施例。此外,在附图中相同参考数字可用以表示类似的组件。
请参阅图2,图2是本发明实施例所提供具有分布式信箱结构的多处理器***的功能方块示意图。如图2所示,多处理器***2包括多个处理器,且每一处理器被配置有相应的一专有信箱与一专有信道。例如,处理器CPU_0被配置有专有信箱MB_0与专有信道210,处理器CPU_1则被配置有专有信箱MB_1与专有信道211,以此类推,处理器CPU_N被配置有专有信箱MB_N与专有信道21N。可以理解的是,上述N即为大于1的任意正整数,且每一专有信箱均可由任意存储媒体所组成,例如静态随机存储器(SRAM)或动态随机存储器(DRAM)等,但本发明皆不以此为限制。
如图2所示,因为所有处理器与专有信箱均耦接在同一公共总线上,所以在本实施例中,当这些处理器的第一处理器,例如处理器CPU_0要向第二处理器,例如处理器CPU_1写入数据时,第一处理器CPU_0是通过公共总线来写入数据到第二处理器CPU_1的专有信箱MB_1中,并且再由第二处理器CPU_1自其专有信箱MB_1中读取被写入的该数据,以藉此进行多处理器间的沟通方法。需说明的是,当第一处理器CPU_0要写入数据到第二处理器CPU_1的专有信箱MB_1前,第一处理器CPU_0较佳可先确认第二处理器CPU_1的专有信箱MB_1是否具有足够的存储空间以存储该数据,如果是,第一处理器CPU_0才通过公共总线来写入该数据到第二处理器CPU_1的专有信箱MB_1中,并且当数据写入完成时,专有信箱MB_1较佳可发出一中断信号IS给第二处理器CPU_1,或者设定第二处理器CPU_1的寄存器(未绘示),以便告知第二处理器CPU_1目前有数据被写入到其专有信箱MB_1中。收到中断信号IS或读取寄存器的值后,第二处理器CPU_1则通过相应的专有信道211来读取其专有信箱MB_1内的该数据,并且再对该数据进行相关处理。
也就是说,每一处理器被配置有相应的专有信箱,而非多个处理器共用同一信箱或存储器,因此,专有信箱所存储数据的管理程序就可简化许多。再者,由于每一处理器是通过相应的专有信道来存取其专有信箱内的数据,因此在每一处理器读取其专有信箱时,本实施例就不需要通过公共总线,以致于不会占用公共总线的资源,并可使整个***效能提升。另外,当任一处理器要写入数据到其专有信箱时,该处理器除了可通过专有信道来写入数据以避免占用公共总线的资源外,该处理器亦可通过公共总线而将数据写入到其专有信箱中。
值得注意的是,由于本实施例的多处理器***2较佳可是以数据存储装置来实现,因此,在主机(未绘示)下达主机命令给多处理器***2时,多处理器***2的前端(FrontEnd,FE)处理器,例如处理器CPU_0是率先处理主机命令,例如自传输界面中取得主机命令并排序,并且再将其处理过的主机命令写到要沟通的后端(Back End,BE)处理器,例如处理器CPU_1的专有信箱MB_1中,以使得处理器CPU_1根据经前端处理器所处理过的主机命令来执行特定功能。这也就是说,上述所谓的「数据」即可是指经前端处理器所处理过的主机命令,或者单纯是指多个处理器间所彼此传送的命令,但本发明皆不以此为限制。
类似地,在本实施例中,每一处理器较佳可根据进阶延伸界面(AdvancedeXtensible Interface,AXI)协议来在公共总线上进行数据传送,例如第一处理器要写入数据到其他处理器的专有信箱中,公共总线较佳可具有一仲裁器(未绘示)来处理所有或大部份处理器的写入需求,并且依据写入需求、多个处理器间的优先顺序,或者发出写入需求的先后顺序,以及多个处理器间的先后顺序等,来依序准许第一处理器的写入需求。因此,当写入需求被准许后的第一处理器才可通过公共总线来写入数据到其他处理器的专有信箱中,而写入需求未被准许的第一处理器,则需等待至写入需求被准许后才能存取公共总线。
另外,每一处理器较佳可根据自我登录(Self Register)协议来读取其专有信箱内的数据。例如,当有数据被写入到第二处理器的专有信箱后,专有信箱则发出中断信号IS给第二处理器。接着,第二处理器可根据自我登录协议来读取其专有信箱内的该数据,并且当该数据读取完毕后,第二处理器更可根据自我登录协议来告知其专有信箱删除或无效化该数据,如此一来,该专有信箱就可回收旧数据所占的存储空间,以从而用来存储新数据。相对地,在本实施例中,第一处理器较佳可写入一笔或多笔的数据到第二处理器的专有信箱中,且第二处理器较佳亦可自其专有信箱中读取一笔或多笔的数据,但本发明皆不以此为限制。
此外,在本实施例中,每一专有信箱更可输出一状态信号以指示其是否具有足够的存储空间以存储数据,且每一专有信箱较佳可收到来自其他专有信箱所输出的状态信号。例如,专有信箱MB_0输出状态信号ST_0,且专有信箱MB_0收到来自专有信箱MB_1到专有信箱MB_N所分别输出的状态信号ST_1~ST_N。相对地,专有信箱MB_1输出状态信号ST_1,且专有信箱MB_1收到来自专有信箱MB_0及专有信箱MB_2到专有信箱MB_N所分别输出的状态信号ST_0及ST_2~ST_N,以此类推,专有信箱MB_N则输出状态信号ST_N,且专有信箱MB_N收到来自专有信箱MB_0到专有信箱MB_N-1所分别输出的状态信号ST_0~ST_N-1。因此,当第一处理器,例如处理器CPU_0要与第二处理器,例如处理器CPU_1进行沟通时,第一处理器CPU_0是可根据其专有信箱MB_0所收到的状态信号ST_1来确认专有信箱MB_1是否具有足够的存储空间以存储该数据。又或者,在其他实施例中,所有专有信箱的状态信号较佳亦可输出至每一处理器中,如此一来,第一处理器CPU_0即可直接依据所收到的状态信号ST_1来判断是否写入数据到专有信箱MB_1中。
举例来说,每一状态信号均较佳可由一比特值来实现,且在比特值为0时,此状态信号所代表的专有信箱具有足够的存储空间以存储数据,而在比特值为1时,此状态信号所代表的专有信箱不具有足够的存储空间以存储数据,但本发明并不以此为限制。接着,以下将再使用图3A与图3B来进一步说明本实施例的沟通方法的一种实施方式,其中图3A是本发明实施例所提供的沟通方法中有关第一处理器的流程示意图,而图3B则是本发明实施例所提供的沟通方法中有关第二处理器的流程示意图。由于详尽细节亦如同前述内容所述,故于此就不再多加赘述。
如图3A所示,当第一处理器,例如处理器CPU_0要与第二处理器,例如处理器CPU_1进行沟通时,在步骤S110中,第一处理器CPU_0是从专有信箱MB_0中读取专有信箱MB_1所输出的状态信号ST_1,并且在步骤S120中,根据状态信号ST_1,判断专有信箱MB_1是否具有足够的存储空间以存储该数据。如果是,即继续执行步骤S130。如果不是,则返回执行步骤S110。也就是说,若依前述内容为例,在专有信箱MB_1尚未具有足够的存储空间以存储该数据前,即状态信号ST_1为1时,第一处理器CPU_0是会持续执行步骤S110及步骤S120的回圈,并且直到判断状态信号ST_1为0为止。
需说明的是,在本实施例中,每一专有信箱较佳可藉由自行检查其存储空间是否低于一预设值来决定产生为0或1的状态信号,但本发明并不以此为限制。总而言之,本发明并不限制每一专有信箱所产生或输出状态信号时的具体实现方式,本技术领域中具有通常知识者应可依据实际需求或应用来进行相关设计。此外,必须了解的是,专有信箱里的内容格式较佳可由多处理器***2的固件(Firmware)来定义,因此本实施例也就能够轻易改变数据的内容格式,从而作到易于延伸且弹性的结构优点。接着,在步骤S130中,第一处理器CPU_0则通过公共总线来写入该数据到专有信箱MB_1中,并当该数据写入完成时,专有信箱MB_1是发出中断信号IS给第二处理器CPU_1。
在本实施例中,中断信号IS较佳亦可由一比特值来实现,例如当第二处理器CPU_1收到并判断专有信箱MB_1发出为1的中断信号IS时,第二处理器CPU_1便可得知其专有信箱MB_1已被成功写入新数据。因此,如图3B所示,在步骤S140中,第二处理器CPU_1是会等待专有信箱MB_1发出中断信号IS,并且在步骤S150中,判断是否收到中断信号IS。如果是,即继续执行步骤S160。如果不是,则返回执行步骤S140。也就是说,若依前述内容为例,在该数据尚未写入完成前,即中断信号IS不为1时,第二处理器CPU_1是会持续执行步骤S140及步骤S150的回圈,并且直到收到为1的中断信号IS为止。最后,在步骤S160中,第二处理器CPU_1则通过相应的专有信道211来读取专有信箱MB_1内的该数据。
另一方面,本发明进一步提供专有信箱的一种实施方式。请一并参阅图4,图4是图2的多处理器***中的专有信箱的功能方块示意图。值得注意的是,为了方便以下说明,本实施例将仅以处理器CPU_1的专有信箱MB_1作为例子来进行说明,但其并非用以限制本发明。如图4所示,专有信箱MB_1包括存储空间410、控制寄存器(Control Register)420与信箱控制器(Mailbox Controller)430。值得一提的是,上述控制寄存器420与信箱控制器430可以是通过纯硬件电路来实现,或者是通过硬件电路搭配固件或软件来实现,但本发明皆不以此为限制。此外,上述各元件可以是整合或是分开设置,但本发明亦不以此为限制。总而言之,本发明并不限制专有信箱MB_1的具体实现方式。
在本实施例中,存储空间410较佳为SRAM,并较佳可采用先进先出(FIFO)的排队方式来存储(暂存)数据。存储空间410的大小例如是1KB,在此设定下,存储空间410可存储64个大小为16B的数据,或32个大小为32B的数据,或16个大小为64B的数据。控制寄存器420则存储专有信箱MB_1的相关设定,例如控制寄存器420可用来设定专有信箱MB_1的一中断条件,并当该中断条件满足时,例如有一笔或超过一笔的数据被成功写入到信箱MB_1时,信箱MB_1则发出中断信号IS到处理器CPU_1。另外,信箱控制器430用来写入设定值到控制存储器420中,并且管理存储空间410,以及产生中断信号IS与状态信号ST_1。
在本实施例中,信箱控制器430较佳可依据处理器CPU_1的设定来管理存储空间410中的数据大小及数量。假如数据大小的设定为64B,当存储空间410的剩余可用空间小于等于预设值,例如64B(即存储空间410仅能够再存储一笔数据)时,信箱控制器430则产生为1的状态信号ST_1,如此一来,所有处理器就不能再对专有信箱MB_1进行数据的写入。接着,在处理器CPU_1读取专有信箱MB_1所存储的数据后,专有信箱MB_1则回收已读取过数据的存储空间,使得剩余可用空间例如增加为128B。此时,因为剩余可用空间大于该预设值,所以信箱控制器430则产生为0的状态信号ST_1,而当状态信号ST_1为0时,欲写入数据到专有信箱MB_1的处理器CPU_0就可以对公共总线提出写入需求,待写入需求被准许后,处理器CPU_0就能将数据写入到专有信箱MB_1中。
也就是说,如图4所示,当处理器CPU_0要与处理器CPU_1进行沟通时,处理器CPU_0是根据收到专有信箱MB_1所输出的状态信号ST_1,判断专有信箱MB_1是否具有足够的存储空间410以存储数据。如果是,处理器CPU_0即通过公共总线来写入数据到专有信箱MB_1的存储空间410中。接着,当数据写入完成时,专有信箱MB_1的信箱控制器430则产生并发出中断信号IS给处理器CPU_1。收到中断信号IS后的处理器CPU_1则通过相应的专有信道211来存取存储空间410内的数据。由于详尽细节亦如同前述内容所述,故于此就不再多加赘述。
另一方面,本实施例所提供的专有信箱除了可作为不同处理器间的沟通方案外,还可用来检查出写入数据的处理器是否发生错误,并且协助重置(Reset)发生错误的该处理器,以避免其造成整个多处理器***2的卡死(Stuck)。因此,请一并参阅图5,图5是本发明实施例所提供的处理器错误检查方法的流程示意图。需说明的是,图5的处理器错误检查方法是可以执行于图2的多处理器***2中,但本发明亦不限制图5的处理器错误检查方法仅能够执行于图2的多处理器***2中。另外,图5中部分与图4相同之流程步骤以相同之图号标示,故于此便不再多加详述其细节。
如图5所示,当第一处理器,例如处理器CPU_0要与第二处理器,例如处理器CPU_1进行沟通时,在步骤S110中,第一处理器CPU_0读取专有信箱MB_1所输出的状态信号ST_1,并且在步骤S120中,根据状态信号ST_1,判断专有信箱MB_1是否具有足够的存储空间以存储数据。如果是,即继续执行步骤S130。如果不是,则返回执行步骤S110。接着,在步骤S130中,第一处理器CPU_0通过公共总线来写入该数据到专有信箱MB_1中,而当专有信箱MB_1收到该数据时,在步骤S510中,专有信箱MB_1是开始进行计时,并且在步骤S520中,判断是否接收完成该数据,亦即判断是否该数据写入完成。如果不是,即继续执行步骤S530。需说明的是,由于专有信箱MB_1所根据收到的数据来判断是否完成接收的运作原理已为本技术领域中具有通常知识者所习知,因此有关上述步骤S520的细部内容于此就不再多加赘述。
然后,在步骤S530中,第二处理器CPU_1的专有信箱MB_1则判断计时的结果是否超过一阈值。如果不是,即返回执行步骤S520。如果是,则继续执行步骤S540与步骤S550。在步骤S540中,专有信箱MB_1是发出一超时信号TS给第二处理器CPU_1,以便告知第二处理器CPU_1目前写入数据的第一处理器CPU_0发生错误,并且在步骤S550中,收到超时信号TS后的第二处理器CPU_1则来对第一处理器CPU_0进行重置,例如第二处理器CPU_1较佳可发出一重置讯号(未绘示)到第一处理器CPU_0中,使得第一处理器CPU_0可根据该重置讯号来进行重置,但本发明并不以此为限制。
也就是说,假设第一处理器CPU_0是要写入64B的数据到专有信箱MB_1中,且在专有信箱MB_1收到来自第一处理器CPU_0的数据而开始进行计时后,如果第一处理器CPU_0仅写入24B的数据就停止写入的话,这表示第一处理器CPU_0可能发生内部错误,从而导致第一处理器CPU_0无法及时完成数据的写入,所以直到计时的结果超过阈值,例如1000毫秒时,专有信箱MB_1则产生超时信号TS来通知第二处理器CPU_1,第二处理器CPU_1再依据超时信号TS所指示的第一处理器CPU_0,或者依据写入数据的请求端资讯而判断出数据来源为第一处理器CPU_0,以对第一处理器CPU_0进行重置。需说明的是,由于该计时及各类判断功能的设定较佳由信箱控制器430将设定值写入控制寄存器420来实现,而信箱控制器430较佳由对应的处理器CPU_1所控制。因此,信箱控制器430除了可用来产生并输出中断信号IS与状态信号ST_1外,还可用来产生并输出超时信号TS。
另一方面,在步骤S520中,如果专有信箱MB_1是判断接收完成该数据的话,亦即当该数据写入完成至专有信箱MB_1时,本实施例就继续执行步骤S560、步骤S570及步骤S160。在步骤S560中,专有信箱MB_1停止并归零该计时,并且在步骤S570中,专有信箱MB_1是发出中断信号IS给第二处理器CPU_1。最后,在步骤S160中,收到中断信号IS后的第二处理器CPU_1则通过相应的专有信道211来读取专有信箱MB_1内的该数据。由于详尽细节亦如同前述内容所述,故于此就不再多加赘述。
综上所述,本发明实施例所提供的具有分布式信箱结构的多处理器***及其沟通方法,可以是不需要有习知的共享存储器,而是改设计让每一处理器均配有专有信箱,这样不同处理器间的沟通方案就可以通过公共总线来写入数据到对映处理器的专有信箱中,并且由于每一处理器是通过专有信道来存取专有信箱内的数据,因此,在每一处理器读取专有信箱时,本发明实施例也就不会影响到公共总线,以致于降低公共总线的使用率,并使整个***效能提升。此外,本发明实施例另所提供的处理器错误检查方法,可以是用这些专有信箱检查出写入数据的处理器是否发生错误,并且协助重置发生错误的该处理器,以避免其造成整个多处理器***的卡死。
以上所述仅为本发明的实施例,其并非用以局限本发明的专利范围。

Claims (10)

1.一种具有分布式信箱结构的多处理器***,其特征在于,该多处理器***包括:
多个处理器,每一该些处理器被配置有相应的一专有信箱与一专有信道;
其中,当该些处理器的一第一处理器要与一第二处理器进行沟通时,该第一处理器是通过一公共总线来写入数据到该第二处理器的该专有信箱中;以及
当该数据写入完成时,该第二处理器的该专有信箱是发出一中断信号给该第二处理器,收到该中断信号后的该第二处理器则通过相应的该专有信道来读取该专有信箱内的该数据。
2.如权利要求1所述的多处理器***,其特征在于,在该第一处理器要与该第二处理器进行沟通时,该第一处理器是确认该第二处理器的该专有信箱是否具有足够的一存储空间以存储该数据,如果是,该第一处理器则通过该公共总线来写入该数据到该第二处理器的该专有信箱中。
3.如权利要求2所述的多处理器***,其特征在于,每一该些专有信箱更用来输出一状态信号以指示其是否具有足够的该存储空间以存储该数据,且每一该些专有信箱是收到来自其他该些专有信箱所输出的该些状态信号。
4.如权利要求3所述的多处理器***,其特征在于,在该第一处理器是确认该第二处理器的该专有信箱是否具有足够的该存储空间以存储该数据时,该第一处理器是读取该第二处理器的该专有信箱所输出的该状态信号,并且根据该状态信号,判断该第二处理器的该专有信箱是否具有足够的该存储空间以存储该数据。
5.如权利要求4所述的多处理器***,其特征在于,每一该些专有信箱更包括:
一控制寄存器,用来设定该专有信箱的一中断条件;以及
一信箱控制器,用来管理该存储空间,以及产生该中断信号与该状态信号。
6.一种沟通方法,执行于一多处理器***中,其特征在于,该多处理器***包括多个处理器,每一该些处理器被配置有相应的一专有信箱与一专有信道,该沟通方法包括:
当该些处理器的一第一处理器要与一第二处理器进行沟通时,该第一处理器是通过一公共总线来写入数据到该第二处理器的该专有信箱中;以及
当该数据写入完成时,该第二处理器的该专有信箱是发出一中断信号给该第二处理器,收到该中断信号后的该第二处理器则通过相应的该专有信道来读取该专有信箱内的该数据。
7.如权利要求6所述的沟通方法,其特征在于,在该第一处理器要与该第二处理器进行沟通时,该第一处理器是确认该第二处理器的该专有信箱是否具有足够的一存储空间以存储该数据,如果是,该第一处理器则通过该公共总线来写入该数据到该第二处理器的该专有信箱中。
8.如权利要求7所述的沟通方法,其特征在于,每一该些专有信箱更用来输出一状态信号以指示其是否具有足够的该存储空间以存储该数据,且每一该些专有信箱是收到来自其他该些专有信箱所输出的该些状态信号。
9.如权利要求8所述的沟通方法,其特征在于,在该第一处理器是确认该第二处理器的该专有信箱是否具有足够的该存储空间以存储该数据时,该第一处理器是读取该第二处理器的该专有信箱所输出的该状态信号,并且根据该状态信号,判断该第二处理器的该专有信箱是否具有足够的该存储空间以存储该数据。
10.如权利要求9所述的沟通方法,其特征在于,每一该些专有信箱更包括:
一控制寄存器,用来设定该专有信箱的一中断条件;以及
一信箱控制器,用来管理该存储空间,以及产生该中断信号与该状态信号。
CN201910114084.4A 2018-08-23 2019-02-14 具有分布式信箱结构的多处理器***及其沟通方法 Active CN110858188B (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US201862721767P 2018-08-23 2018-08-23
US62/721767 2018-08-23

Publications (2)

Publication Number Publication Date
CN110858188A true CN110858188A (zh) 2020-03-03
CN110858188B CN110858188B (zh) 2023-08-01

Family

ID=69582259

Family Applications (3)

Application Number Title Priority Date Filing Date
CN201910114084.4A Active CN110858188B (zh) 2018-08-23 2019-02-14 具有分布式信箱结构的多处理器***及其沟通方法
CN201910114012.XA Active CN110858187B (zh) 2018-08-23 2019-02-14 具有分布式信箱结构的多处理器***及其处理器错误检查方法
CN201910370082.1A Active CN110858128B (zh) 2018-08-23 2019-05-06 数据存储装置及其共享控制器中存储器的方法

Family Applications After (2)

Application Number Title Priority Date Filing Date
CN201910114012.XA Active CN110858187B (zh) 2018-08-23 2019-02-14 具有分布式信箱结构的多处理器***及其处理器错误检查方法
CN201910370082.1A Active CN110858128B (zh) 2018-08-23 2019-05-06 数据存储装置及其共享控制器中存储器的方法

Country Status (3)

Country Link
US (3) US11314571B2 (zh)
CN (3) CN110858188B (zh)
TW (3) TWI703501B (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112506847A (zh) * 2021-02-04 2021-03-16 上海励驰半导体有限公司 多处理器通信方法及***

Families Citing this family (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111191777B (zh) * 2019-12-27 2022-07-26 深圳云天励飞技术股份有限公司 一种神经网络处理器及其控制方法
TWI798680B (zh) * 2021-04-14 2023-04-11 群聯電子股份有限公司 主機記憶體緩衝區管理方法、記憶體儲存裝置與記憶體控制電路單元
CN112965670B (zh) * 2021-04-22 2023-08-01 群联电子股份有限公司 主机存储器缓冲区管理方法、存储装置与控制电路单元
US11860775B2 (en) 2021-09-29 2024-01-02 Silicon Motion, Inc. Method and apparatus for programming data into flash memory incorporating with dedicated acceleration hardware
CN115878020A (zh) * 2021-09-29 2023-03-31 慧荣科技股份有限公司 编码历程信息的存取方法和计算机可读取存储介质和装置
US11972150B2 (en) 2021-09-29 2024-04-30 Silicon Motion, Inc. Method and non-transitory computer-readable storage medium and apparatus for programming data into flash memory through dedicated acceleration hardware

Citations (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4862354A (en) * 1985-05-07 1989-08-29 Honeywell Bull Italia S.P.A. Multiprocessor system with interrupt notification and verification unit
US5608873A (en) * 1993-08-30 1997-03-04 Advanced Micro Devices, Inc. Device and method for interprocessor communication using mailboxes owned by processor devices
US6912716B1 (en) * 1999-11-05 2005-06-28 Agere Systems Inc. Maximized data space in shared memory between processors
US20090313440A1 (en) * 2008-06-11 2009-12-17 Young Lak Kim Shared memory burst communications
US20100095089A1 (en) * 2008-10-14 2010-04-15 Samsung Electronics Co., Ltd. Multiprocessor system with multiport memory
CN105487989A (zh) * 2015-11-27 2016-04-13 杭州朔天科技有限公司 一种降低响应延时提高***效率的中断控制器及控制方法
US20170010966A1 (en) * 2015-07-10 2017-01-12 Applied Micro Circuits Corporation Systems and methods facilitating reduced latency via stashing in system on chips
US20170139850A1 (en) * 2015-11-12 2017-05-18 Samsung Electronics Co., Ltd. Multi-processor system including memory shared by multi-processor and method thereof

Family Cites Families (44)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4872106A (en) * 1983-04-06 1989-10-03 New Forney Corp. Industrial process control system with back-up data processors to take over from failed primary data processors
US5142683A (en) * 1987-03-09 1992-08-25 Unisys Corporation Intercomputer communication control apparatus and method
CA2009780C (en) * 1989-05-17 1999-07-27 Ernest D. Baker Method and apparatus for the direct transfer of information between application programs running on distinct processors without utilizing the services of one or both operating systems
US5423008A (en) * 1992-08-03 1995-06-06 Silicon Graphics, Inc. Apparatus and method for detecting the activities of a plurality of processors on a shared bus
JPH0778766B2 (ja) * 1992-09-25 1995-08-23 インターナショナル・ビジネス・マシーンズ・コーポレイション ランダム・アクセス可能かつ書換え可能メモリを用いる外部記憶装置におけるプログラム直接実行の制御方法および装置
US5737240A (en) * 1996-01-25 1998-04-07 International Business Machines Corporation Programmable hardware mailbox message technique and system
US5978953A (en) * 1996-12-19 1999-11-02 Compaq Computer Corporation error detection and correction
JP3230485B2 (ja) * 1998-04-09 2001-11-19 日本電気株式会社 1チップマイクロコンピュータ
US6070255A (en) * 1998-05-28 2000-05-30 International Business Machines Corporation Error protection power-on-self-test for memory cards having ECC on board
US7233977B2 (en) * 1998-12-18 2007-06-19 Emc Corporation Messaging mechanism employing mailboxes for inter processor communications
US6735173B1 (en) * 2000-03-07 2004-05-11 Cisco Technology, Inc. Method and apparatus for accumulating and distributing data items within a packet switching system
US6938253B2 (en) * 2001-05-02 2005-08-30 Portalplayer, Inc. Multiprocessor communication system and method
JP3841810B2 (ja) * 2002-09-30 2006-11-08 株式会社ルネサステクノロジ データプロセッサ
TWI222597B (en) * 2003-03-14 2004-10-21 Mediatek Inc Method for accessing external memory of a microprocessor
CN1232918C (zh) * 2003-04-11 2005-12-21 大唐移动通信设备有限公司 一种基于共享存储器的多处理器间数据交互方法及装置
GB0308991D0 (en) * 2003-04-17 2003-05-28 Psion Digital Ltd A data access replication or communication system comprising a distributed software application
KR100506366B1 (ko) * 2003-11-20 2005-08-10 현대모비스 주식회사 복합마이컴형 제품 및 슬레이브 리셋 방법
US7203889B2 (en) * 2004-04-01 2007-04-10 Intel Corporation Error correction for memory
US7467247B2 (en) * 2005-10-31 2008-12-16 Hewlett-Packard Development Company, L.P. Timeouts on accessing a shared resource
TWI309773B (en) * 2006-03-14 2009-05-11 Fulhua Microelectronics Corp Memory accessing system and method
KR100822468B1 (ko) * 2006-09-11 2008-04-16 엠텍비젼 주식회사 공유 메모리를 구비한 장치 및 코드 데이터 전송 방법
GB2442984B (en) * 2006-10-17 2011-04-06 Advanced Risc Mach Ltd Handling of write access requests to shared memory in a data processing apparatus
KR100871700B1 (ko) * 2007-02-13 2008-12-08 삼성전자주식회사 불휘발성 메모리 장치에서 전하 손실에 기인한 오류 데이터정정 방법
US8055982B2 (en) * 2007-02-21 2011-11-08 Sigmatel, Inc. Error correction system and method
TWI346873B (en) * 2007-03-27 2011-08-11 Ind Tech Res Inst A direct memory access controller with dynamic data width adjustment, method thereof, and computer accessible storage media to store program thereof
US20090138673A1 (en) * 2007-11-28 2009-05-28 Apple Inc. Internal memory mapped external memory interface
KR20110013868A (ko) * 2009-08-04 2011-02-10 삼성전자주식회사 멀티 코멘드 셋 동작 및 우선처리 동작 기능을 갖는 멀티 프로세서 시스템
US8285904B2 (en) * 2009-08-14 2012-10-09 Advanced Micro Devices, Inc. Flexible notification mechanism for user-level interrupts
TW201111991A (en) * 2009-09-23 2011-04-01 Tatung Co Memory access system and method for virtualizing off-chip memory of a processor
WO2011116454A1 (en) * 2010-03-22 2011-09-29 Mosaid Technologies Incorporated Composite semiconductor memory device with error correction
TWI465916B (zh) * 2010-09-01 2014-12-21 Tatung Co 異質雙核心之非對稱傳輸系統與方法
CN102654858B (zh) * 2011-03-04 2015-02-04 国基电子(上海)有限公司 双处理器***及双处理器***的通信方法
CN102137310A (zh) * 2011-03-15 2011-07-27 崔莉莉 分布式实时控制的楼宇对讲***
US8621113B2 (en) * 2011-05-31 2013-12-31 Micron Technology, Inc. Apparatus including host bus adapter and serial attachment programming compliant device and related methods
CN102891762B (zh) * 2011-07-20 2016-05-04 赛恩倍吉科技顾问(深圳)有限公司 连续处理网络数据的***及方法
TWI452471B (zh) * 2011-11-16 2014-09-11 Sk Hynix Inc 用於通用序列匯流排裝置的全雙工控制器與其方法
US9009566B2 (en) * 2012-09-12 2015-04-14 Macronix International Co., Ltd. Outputting information of ECC corrected bits
CN103324599A (zh) * 2013-06-04 2013-09-25 北京创毅讯联科技股份有限公司 处理器间通信方法与***级芯片
US9329931B2 (en) * 2013-07-24 2016-05-03 Seagate Technology Llc Solid state drive emergency pre-boot application providing expanded data recovery function
US9823968B1 (en) * 2015-08-21 2017-11-21 Datadirect Networks, Inc. Data storage system employing a variable redundancy distributed RAID controller with embedded RAID logic and method for data migration between high-performance computing architectures and data storage devices using the same
TWI585676B (zh) * 2016-03-18 2017-06-01 慧榮科技股份有限公司 資料儲存裝置、記憶體控制器及其操作方法
US10282251B2 (en) * 2016-09-07 2019-05-07 Sandisk Technologies Llc System and method for protecting firmware integrity in a multi-processor non-volatile memory system
US10127103B2 (en) * 2016-09-07 2018-11-13 Sandisk Technologies Llc System and method for detecting and correcting mapping table errors in a non-volatile memory system
TWI645295B (zh) * 2017-06-20 2018-12-21 慧榮科技股份有限公司 資料儲存裝置與資料儲存方法

Patent Citations (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4862354A (en) * 1985-05-07 1989-08-29 Honeywell Bull Italia S.P.A. Multiprocessor system with interrupt notification and verification unit
US5608873A (en) * 1993-08-30 1997-03-04 Advanced Micro Devices, Inc. Device and method for interprocessor communication using mailboxes owned by processor devices
US6912716B1 (en) * 1999-11-05 2005-06-28 Agere Systems Inc. Maximized data space in shared memory between processors
US20090313440A1 (en) * 2008-06-11 2009-12-17 Young Lak Kim Shared memory burst communications
US20100095089A1 (en) * 2008-10-14 2010-04-15 Samsung Electronics Co., Ltd. Multiprocessor system with multiport memory
US20170010966A1 (en) * 2015-07-10 2017-01-12 Applied Micro Circuits Corporation Systems and methods facilitating reduced latency via stashing in system on chips
US20170139850A1 (en) * 2015-11-12 2017-05-18 Samsung Electronics Co., Ltd. Multi-processor system including memory shared by multi-processor and method thereof
TW201719446A (zh) * 2015-11-12 2017-06-01 三星電子股份有限公司 包含多處理器所共享之記憶體的多處理器系統
CN105487989A (zh) * 2015-11-27 2016-04-13 杭州朔天科技有限公司 一种降低响应延时提高***效率的中断控制器及控制方法

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112506847A (zh) * 2021-02-04 2021-03-16 上海励驰半导体有限公司 多处理器通信方法及***

Also Published As

Publication number Publication date
TW202009699A (zh) 2020-03-01
US11334415B2 (en) 2022-05-17
CN110858187B (zh) 2023-07-04
CN110858128A (zh) 2020-03-03
US20200065190A1 (en) 2020-02-27
US20200065177A1 (en) 2020-02-27
TWI703501B (zh) 2020-09-01
TW202009731A (zh) 2020-03-01
TW202009695A (zh) 2020-03-01
TWI680375B (zh) 2019-12-21
US20200065167A1 (en) 2020-02-27
TWI703499B (zh) 2020-09-01
US11314571B2 (en) 2022-04-26
CN110858187A (zh) 2020-03-03
CN110858128B (zh) 2023-04-18
CN110858188B (zh) 2023-08-01

Similar Documents

Publication Publication Date Title
CN110858188B (zh) 具有分布式信箱结构的多处理器***及其沟通方法
CN102414671B (zh) 对于不同源的分级内存仲裁技术
US7783817B2 (en) Method and apparatus for conditional broadcast of barrier operations
US5793994A (en) Synchronous event posting by a high throughput bus
CN109799959B (zh) 一种提高开放通道固态盘写并行性的方法
KR102538679B1 (ko) 메모리 시스템 및 메모리 시스템의 동작 방법
CN112948293A (zh) 一种多用户接口的ddr仲裁器及ddr控制器芯片
US6782463B2 (en) Shared memory array
WO2013148439A1 (en) Hardware managed allocation and deallocation evaluation circuit
US7774513B2 (en) DMA circuit and computer system
CN117472815A (zh) 一种axi协议下的存储模块转换接口及其转换方法
US8719542B2 (en) Data transfer apparatus, data transfer method and processor
WO2017054139A1 (en) Methods for processing return entities associated with multiple requests in single interrupt service routine thread and apparatuses using the same
CN113220608B (zh) 一种NVMe命令处理器及其处理方法
US7472212B2 (en) Multi CPU system
CN116601616A (zh) 一种数据处理装置、方法及相关设备
CN112612424A (zh) 一种NVMe提交队列控制装置及方法
JP2944280B2 (ja) インタフェース回路
CN116860185B (zh) Sram阵列的数据访问装置、***、方法、设备、芯片和介质
KR101517835B1 (ko) 프로세서간 통신을 위한 아이피씨 드라이버를 포함하는프로세서, 시스템 및 기록 매체
CN116974963B (zh) 一种访问存储器的装置及其方法、芯片、存储介质
US11113102B2 (en) Data storage device
CN115129623A (zh) 功耗控制方法、装置、板卡、电子设备及存储介质
CN117762836A (zh) 加速单元、专用数据处理器、主机和读写信号传递方法
CN114385529A (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