TW202009699A - 具有分散式信箱架構的多處理器系統及其溝通方法 - Google Patents

具有分散式信箱架構的多處理器系統及其溝通方法 Download PDF

Info

Publication number
TW202009699A
TW202009699A TW107139473A TW107139473A TW202009699A TW 202009699 A TW202009699 A TW 202009699A TW 107139473 A TW107139473 A TW 107139473A TW 107139473 A TW107139473 A TW 107139473A TW 202009699 A TW202009699 A TW 202009699A
Authority
TW
Taiwan
Prior art keywords
processor
dedicated
mailbox
data
storage space
Prior art date
Application number
TW107139473A
Other languages
English (en)
Other versions
TWI703501B (zh
Inventor
李安邦
Original Assignee
慧榮科技股份有限公司
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 慧榮科技股份有限公司 filed Critical 慧榮科技股份有限公司
Publication of TW202009699A publication Critical patent/TW202009699A/zh
Application granted granted Critical
Publication of TWI703501B publication Critical patent/TWI703501B/zh

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)排程,以致於造成公共匯流排的等待並使整個系統效能下降。
有鑑於此,本發明實施例提供一種具有分散式信箱架構的多處理器系統及其溝通方法。所述多處理器系統包括多個處理器,每一處理器被配置有相應的一專屬信箱與一專屬通道,且所述溝通方法包括如下步驟。當這些處理器的第一處理器要與第二處理器進行溝通時,第一處理器是通過公共匯流排來寫入資料到第二處理器的專屬信箱中,以及當該資料寫入完成時,第二處理器的專屬信箱是發出一中斷信號(Interrupt)給第二處理器,收到中斷信號後的第二處理器則通過相應的專屬通道來讀取其專屬信箱內的該資料。
此外,本發明實施例另提供一種處理器錯誤檢查方法。所述處理器錯誤檢查方法可同樣執行於前述多處理器系統中,且其包括如下步驟。當這些處理器的第一處理器要與第二處理器進行溝通時,第一處理器是通過公共匯流排來寫入資料到第二處理器的專屬信箱中,以及當第二處理器的專屬信箱收到該資料時,第二處理器的專屬信箱是開始進行計時,並且直到計時的結果超過一門檻值時,第二處理器的專屬信箱是發出一逾時(Timeout)信號給第二處理器,收到逾時信號後的第二處理器則來對第一處理器進行重置。
為使能更進一步瞭解本發明之特徵及技術內容,請參閱以下有關本發明之詳細說明與附圖,但是此等說明與所附圖式僅係用來說明本發明,而非對本發明的權利範圍作任何的限制。
在下文中,將藉由圖式說明本發明之各種實施例來詳細描述本發明。然而,本發明概念可能以許多不同形式來體現,且不應解釋為限於本文中所闡述之例示性實施例。此外,在圖式中相同參考數字可用以表示類似的元件。
請參閱圖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的前端(Front End,FE)處理器,例如處理器CPU_0是率先處理主機命令,例如自傳輸介面中取得主機命令並排序,並且再將其處理過的主機命令寫到要溝通的後端(Back End,BE)處理器,例如處理器CPU_1的專屬信箱MB_1中,以使得處理器CPU_1根據經前端處理器所處理過的主機命令來執行特定功能。這也就是說,上述所謂的「資料」即可是指經前端處理器所處理過的主機命令,或者單純是指多個處理器間所彼此傳送的命令,但本發明皆不以此為限制。
類似地,在本實施例中,每一處理器較佳可根據進階延伸介面(Advanced eXtensible 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內的該資料。由於詳盡細節亦如同前述內容所述,故於此就不再多加贅述。
綜上所述,本發明實施例所提供的具有分散式信箱架構的多處理器系統及其溝通方法,可以是不需要有習知的共享記憶體,而是改設計讓每一處理器均配有專屬信箱,這樣不同處理器間的溝通方案就可以通過公共匯流排來寫入資料到對映處理器的專屬信箱中,並且由於每一處理器是通過專屬通道來存取專屬信箱內的資料,因此,在每一處理器讀取專屬信箱時,本發明實施例也就不會影響到公共匯流排,以致於降低公共匯流排的使用率,並使整個系統效能提升。此外,本發明實施例另所提供的處理器錯誤檢查方法,可以是用這些專屬信箱檢查出寫入資料的處理器是否發生錯誤,並且協助重置發生錯誤的該處理器,以避免其造成整個多處理器系統的卡死。
以上所述僅為本發明之實施例,其並非用以侷限本發明之專利範圍。
1、2‧‧‧多處理器系統110‧‧‧共享記憶體CPU_0~CPU_N‧‧‧處理器MB_0~MB_N‧‧‧專屬信箱210~21N‧‧‧專屬通道IS‧‧‧中斷信號TS‧‧‧逾時信號ST_0~ST_N‧‧‧狀態信號S110~S160、S510~S570‧‧‧流程步驟410‧‧‧儲存空間420‧‧‧控制暫存器430‧‧‧信箱控制器
圖1是習知的多處理器系統的功能方塊示意圖; 圖2是本發明實施例所提供具有分散式信箱架構的多處理器系統的功能方塊示意圖; 圖3A是本發明實施例所提供的溝通方法中有關第一處理器的流程示意圖; 圖3B是本發明實施例所提供的溝通方法中有關第二處理器的流程示意圖; 圖4是圖2的多處理器系統中的專屬信箱的功能方塊示意圖; 圖5是本發明實施例所提供的處理器錯誤檢查方法的流程示意圖。
2‧‧‧多處理器系統
CPU_0~CPU_N‧‧‧處理器
MB_0~MB_N‧‧‧專屬信箱
210~21N‧‧‧專屬通道
IS‧‧‧中斷信號
TS‧‧‧逾時信號
ST_0~ST_N‧‧‧狀態信號

Claims (10)

  1. 一種具有分散式信箱(Distributed Mailbox)架構的多處理器系統(Multi-Processor),包括: 多個處理器,每一該些處理器被配置有相應的一專屬信箱與一專屬通道; 其中,當該些處理器的一第一處理器要與一第二處理器進行溝通時,該第一處理器是通過一公共匯流排(Public Bus)來寫入資料到該第二處理器的該專屬信箱中;以及 當該資料寫入完成時,該第二處理器的該專屬信箱是發出一中斷信號給該第二處理器,收到該中斷信號後的該第二處理器則通過相應的該專屬通道來讀取該專屬信箱內的該資料。
  2. 如請求項第1項所述的多處理器系統,其中在該第一處理器要與該第二處理器進行溝通時,該第一處理器是確認該第二處理器的該專屬信箱是否具有足夠的一儲存空間以儲存該資料,如果是,該第一處理器則通過該公共匯流排來寫入該資料到該第二處理器的該專屬信箱中。
  3. 如請求項第2項所述的多處理器系統,其中每一該些專屬信箱更用來輸出一狀態信號以指示其是否具有足夠的該儲存空間以儲存該資料,且每一該些專屬信箱是收到來自其他該些專屬信箱所輸出的該些狀態信號。
  4. 如請求項第3項所述的多處理器系統,其中在該第一處理器是確認該第二處理器的該專屬信箱是否具有足夠的該儲存空間以儲存該資料時,該第一處理器是讀取該第二處理器的該專屬信箱所輸出的該狀態信號,並且根據該狀態信號,判斷該第二處理器的該專屬信箱是否具有足夠的該儲存空間以儲存該資料。
  5. 如請求項第4項所述的多處理器系統,其中每一該些專屬信箱更包括: 一控制暫存器,用來設定該專屬信箱的一中斷條件;以及 一信箱控制器,用來管理該儲存空間,以及產生該中斷信號與該狀態信號。
  6. 一種溝通方法,執行於一多處理器系統中,該多處理器系統包括多個處理器,每一該些處理器被配置有相應的一專屬信箱與一專屬通道,該溝通方法包括: 當該些處理器的一第一處理器要與一第二處理器進行溝通時,該第一處理器是通過一公共匯流排來寫入資料到該第二處理器的該專屬信箱中;以及 當該資料寫入完成時,該第二處理器的該專屬信箱是發出一中斷信號給該第二處理器,收到該中斷信號後的該第二處理器則通過相應的該專屬通道來讀取該專屬信箱內的該資料。
  7. 如請求項第6項所述的溝通方法,其中在該第一處理器要與該第二處理器進行溝通時,該第一處理器是確認該第二處理器的該專屬信箱是否具有足夠的一儲存空間以儲存該資料,如果是,該第一處理器則通過該公共匯流排來寫入該資料到該第二處理器的該專屬信箱中。
  8. 如請求項第7項所述的溝通方法,其中每一該些專屬信箱更用來輸出一狀態信號以指示其是否具有足夠的該儲存空間以儲存該資料,且每一該些專屬信箱是收到來自其他該些專屬信箱所輸出的該些狀態信號。
  9. 如請求項第8項所述的溝通方法,其中在該第一處理器是確認該第二處理器的該專屬信箱是否具有足夠的該儲存空間以儲存該資料時,該第一處理器是讀取該第二處理器的該專屬信箱所輸出的該狀態信號,並且根據該狀態信號,判斷該第二處理器的該專屬信箱是否具有足夠的該儲存空間以儲存該資料。
  10. 如請求項第9項所述的溝通方法,其中每一該些專屬信箱更包括: 一控制暫存器,用來設定該專屬信箱的一中斷條件;以及 一信箱控制器,用來管理該儲存空間,以及產生該中斷信號與該狀態信號。
TW107139473A 2018-08-23 2018-11-07 具有分散式信箱架構的多處理器系統及其溝通方法 TWI703501B (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
TW202009699A true TW202009699A (zh) 2020-03-01
TWI703501B TWI703501B (zh) 2020-09-01

Family

ID=69582259

Family Applications (3)

Application Number Title Priority Date Filing Date
TW107139472A TWI680375B (zh) 2018-08-23 2018-11-07 具有分散式信箱架構的多處理器系統及其處理器錯誤檢查方法
TW107139473A TWI703501B (zh) 2018-08-23 2018-11-07 具有分散式信箱架構的多處理器系統及其溝通方法
TW108102013A TWI703499B (zh) 2018-08-23 2019-01-18 資料儲存裝置及其共享控制器中記憶體的方法

Family Applications Before (1)

Application Number Title Priority Date Filing Date
TW107139472A TWI680375B (zh) 2018-08-23 2018-11-07 具有分散式信箱架構的多處理器系統及其處理器錯誤檢查方法

Family Applications After (1)

Application Number Title Priority Date Filing Date
TW108102013A TWI703499B (zh) 2018-08-23 2019-01-18 資料儲存裝置及其共享控制器中記憶體的方法

Country Status (3)

Country Link
US (3) US11314571B2 (zh)
CN (3) CN110858187B (zh)
TW (3) TWI680375B (zh)

Families Citing this family (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111191777B (zh) * 2019-12-27 2022-07-26 深圳云天励飞技术股份有限公司 一种神经网络处理器及其控制方法
CN112506847B (zh) * 2021-02-04 2021-04-30 上海励驰半导体有限公司 多处理器通信方法及系统
TWI798680B (zh) * 2021-04-14 2023-04-11 群聯電子股份有限公司 主機記憶體緩衝區管理方法、記憶體儲存裝置與記憶體控制電路單元
CN112965670B (zh) * 2021-04-22 2023-08-01 群联电子股份有限公司 主机存储器缓冲区管理方法、存储装置与控制电路单元
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
TWI821965B (zh) * 2021-09-29 2023-11-11 慧榮科技股份有限公司 編碼歷程資訊的存取方法及電腦程式產品及裝置
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

Family Cites Families (52)

* 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
IT1184553B (it) * 1985-05-07 1987-10-28 Honeywell Inf Systems Architettura di sistema a piu' processori
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 インターナショナル・ビジネス・マシーンズ・コーポレイション ランダム・アクセス可能かつ書換え可能メモリを用いる外部記憶装置におけるプログラム直接実行の制御方法および装置
EP0640929A3 (en) * 1993-08-30 1995-11-29 Advanced Micro Devices Inc Interprocessor communication via a post MEV.
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
US6912716B1 (en) * 1999-11-05 2005-06-28 Agere Systems Inc. Maximized data space in shared memory between processors
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
WO2004031943A1 (ja) * 2002-09-30 2004-04-15 Renesas Technology Corp. データプロセッサ
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
US8230180B2 (en) * 2008-06-11 2012-07-24 Samsung Electronics Co., Ltd. Shared memory burst communications
KR20100041309A (ko) * 2008-10-14 2010-04-22 삼성전자주식회사 각 프로세서들의 어플리케이션 기능을 모두 활용 가능한 멀티 프로세서 시스템
KR20110013868A (ko) * 2009-08-04 2011-02-10 삼성전자주식회사 멀티 코멘드 셋 동작 및 우선처리 동작 기능을 갖는 멀티 프로세서 시스템
US8255603B2 (en) * 2009-08-14 2012-08-28 Advanced Micro Devices, Inc. User-level interrupt mechanism for multi-core architectures
TW201111991A (en) * 2009-09-23 2011-04-01 Tatung Co Memory access system and method for virtualizing off-chip memory of a processor
JP2013522779A (ja) * 2010-03-22 2013-06-13 モサイド・テクノロジーズ・インコーポレーテッド 誤り訂正を有する複合半導体メモリデバイス
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
US9720830B2 (en) * 2015-07-10 2017-08-01 Macom Connectivity Solutions, Llc Systems and methods facilitating reduced latency via stashing in system on chips
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
KR102407917B1 (ko) * 2015-11-12 2022-06-10 삼성전자주식회사 멀티 프로세서에 의해 공유되는 메모리를 포함하는 멀티 프로세서 시스템 및 상기 시스템의 동작 방법
CN105487989A (zh) * 2015-11-27 2016-04-13 杭州朔天科技有限公司 一种降低响应延时提高系统效率的中断控制器及控制方法
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 慧榮科技股份有限公司 資料儲存裝置與資料儲存方法

Also Published As

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

Similar Documents

Publication Publication Date Title
TWI703501B (zh) 具有分散式信箱架構的多處理器系統及其溝通方法
US9003091B2 (en) Flow control for a Serial Peripheral Interface bus
CN112559399A (zh) 一种多axi接口的ddr控制器及其控制方法
US8806232B2 (en) Systems and method for hardware dynamic cache power management via bridge and power manager
WO2018120780A1 (zh) PCIe中断方法和系统
US20190196989A1 (en) Method, Apparatus, and System for Accessing Memory Device
JP2001117859A (ja) バス制御装置
US7783817B2 (en) Method and apparatus for conditional broadcast of barrier operations
US5793994A (en) Synchronous event posting by a high throughput bus
JP2017016660A (ja) マスタサイドフィルタを含むキャッシュコヒーレントシステムとそれを含むデータ処理システム
JP4350808B2 (ja) バースト・ダイレクトメモリアクセスを備えた表示制御装置を有するデータ処理システム、および同システムにおいて命令を周期的に供給する方法
US6425071B1 (en) Subsystem bridge of AMBA's ASB bus to peripheral component interconnect (PCI) bus
EP1894108A2 (en) Memory controller
US7774513B2 (en) DMA circuit and computer system
US7284077B2 (en) Peripheral interface system having dedicated communication channels
US20220253238A1 (en) Method and apparatus for accessing solid state disk
US20200210123A1 (en) Memory Control Method, Memory Control Apparatus, and Image Forming Method That Uses Memory Control Method
US20030182517A1 (en) Method and system for buffering multiple requests from multiple devices to a memory
US10614001B1 (en) Memory control method, memory control apparatus, and image forming method that uses memory control method
JPH1125036A (ja) 調停システム、およびアクセスを調停する方法
US7930459B2 (en) Coherent input output device
KR101517835B1 (ko) 프로세서간 통신을 위한 아이피씨 드라이버를 포함하는프로세서, 시스템 및 기록 매체
JP2004334840A (ja) システムバスの制御方法及び関連装置
US20030204684A1 (en) Distributed caching mechanism for pending memory operations within a memory controller
CN114385529A (zh) 直接记忆体存取控制器、使用其之电子装置以及操作其的方法