TWI680375B - 具有分散式信箱架構的多處理器系統及其處理器錯誤檢查方法 - Google Patents
具有分散式信箱架構的多處理器系統及其處理器錯誤檢查方法 Download PDFInfo
- Publication number
- TWI680375B TWI680375B TW107139472A TW107139472A TWI680375B TW I680375 B TWI680375 B TW I680375B TW 107139472 A TW107139472 A TW 107139472A TW 107139472 A TW107139472 A TW 107139472A TW I680375 B TWI680375 B TW I680375B
- Authority
- TW
- Taiwan
- Prior art keywords
- processor
- mailbox
- dedicated
- data
- signal
- Prior art date
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/14—Handling requests for interconnection or transfer
- G06F13/16—Handling requests for interconnection or transfer for access to memory bus
- G06F13/1605—Handling requests for interconnection or transfer for access to memory bus based on arbitration
- G06F13/1652—Handling requests for interconnection or transfer for access to memory bus based on arbitration in a multiprocessor architecture
- G06F13/1663—Access to shared memory
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/0703—Error 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/0766—Error or fault reporting or storing
- G06F11/0772—Means for error signaling, e.g. using interrupts, exception flags, dedicated error registers
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/08—Error detection or correction by redundancy in data representation, e.g. by using checking codes
- G06F11/10—Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
- G06F11/1076—Parity data used in redundant arrays of independent storages, e.g. in RAID systems
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/16—Error detection or correction of the data by redundancy in hardware
- G06F11/20—Error 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/202—Error 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/2043—Error 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
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/14—Handling requests for interconnection or transfer
- G06F13/16—Handling requests for interconnection or transfer for access to memory bus
- G06F13/1668—Details of memory controller
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/14—Handling requests for interconnection or transfer
- G06F13/20—Handling requests for interconnection or transfer for access to input/output bus
- G06F13/24—Handling requests for interconnection or transfer for access to input/output bus using interrupt
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/0604—Improving or facilitating administration, e.g. storage management
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/061—Improving I/O performance
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0655—Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
- G06F3/0656—Data buffering arrangements
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0655—Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
- G06F3/0658—Controller construction arrangements
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0655—Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
- G06F3/0659—Command handling arrangements, e.g. command buffers, queues, command scheduling
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0668—Interfaces specially adapted for storage systems adopting a particular infrastructure
- G06F3/0671—In-line storage system
- G06F3/0673—Single storage device
- G06F3/0679—Non-volatile semiconductor memory device, e.g. flash memory, one time programmable memory [OTP]
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0668—Interfaces specially adapted for storage systems adopting a particular infrastructure
- G06F3/0671—In-line storage system
- G06F3/0683—Plurality of storage devices
- G06F3/0689—Disk arrays, e.g. RAID, JBOD
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/32—Address formation of the next instruction, e.g. by incrementing the instruction counter
- G06F9/322—Address formation of the next instruction, e.g. by incrementing the instruction counter for non-sequential address
- G06F9/327—Address formation of the next instruction, e.g. by incrementing the instruction counter for non-sequential address for interrupts
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/46—Multiprogramming arrangements
- G06F9/48—Program initiating; Program switching, e.g. by interrupt
- G06F9/4806—Task transfer initiation or dispatching
- G06F9/4812—Task transfer initiation or dispatching by interrupt, e.g. masked
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/46—Multiprogramming arrangements
- G06F9/54—Interprogram communication
- G06F9/546—Message passing systems or structures, e.g. queues
-
- Y—GENERAL 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
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE 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/00—Energy 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)
- Techniques For Improving Reliability Of Storages (AREA)
- Multi Processors (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是本發明實施例所提供的處理器錯誤檢查方法的流程示意圖。
Claims (12)
- 一種具有分散式信箱(Distributed Mailbox)架構的多處理器系統(Multi-Processor),包括:多個處理器,每一該些處理器被配置有相應的一專屬信箱與一專屬通道;其中,當該些處理器的一第一處理器要與一第二處理器進行溝通時,該第一處理器是通過一公共匯流排(Public Bus)來寫入資料到該第二處理器的該專屬信箱中;以及當該第二處理器的該專屬信箱收到該資料時,該第二處理器的該專屬信箱是開始進行計時,並且直到該計時的結果超過一門檻值時,該第二處理器的該專屬信箱是發出一逾時信號給該第二處理器,收到該逾時信號後的該第二處理器則來對該第一處理器進行重置。
- 如請求項第1項所述的多處理器系統,其中在該第一處理器要與該第二處理器進行溝通時,該第一處理器是確認該第二處理器的該專屬信箱是否具有足夠的一儲存空間以儲存該資料,如果是,該第一處理器則通過該公共匯流排來寫入該資料到該第二處理器的該專屬信箱中。
- 如請求項第2項所述的多處理器系統,其中每一該些專屬信箱更用來輸出一狀態信號以指示其是否具有足夠的該儲存空間以儲存該資料,且每一該些專屬信箱是收到來自其他該些專屬信箱所輸出的該些狀態信號。
- 如請求項第3項所述的多處理器系統,其中在該第一處理器是確認該第二處理器的該專屬信箱是否具有足夠的該儲存空間以儲存該資料時,該第一處理器是讀取該第二處理器的該專屬信箱所輸出的該狀態信號,並且根據該狀態信號,判斷該第二處理器的該專屬信箱是否具有足夠的該儲存空間以儲存該資料。
- 如請求項第4項所述的多處理器系統,其中在該第二處理器的該專屬信箱接收完成該資料時,該第二處理器的該專屬信箱是停止並歸零該計時,並且發出一中斷信號給該第二處理器,收到該中斷信號後的該第二處理器則通過相應的該專屬通道來讀取該專屬信箱內的該資料。
- 如請求項第5項所述的多處理器系統,其中每一該些專屬信箱更包括:一控制暫存器,用來設定該專屬信箱的一中斷條件;以及一信箱控制器,用來管理該儲存空間,以及產生該逾時信號、該中斷信號與該狀態信號;其中,當該中斷條件滿足時,該專屬信箱發出該中斷信號給該第二處理器。
- 一種處理器錯誤檢查方法,執行於一多處理器系統中,該多處理器系統包括多個處理器,每一該些處理器被配置有相應的一專屬信箱與一專屬通道,該處理器錯誤檢查方法包括:當該些處理器的一第一處理器要與一第二處理器進行溝通時,該第一處理器是通過一公共匯流排來寫入資料到該第二處理器的該專屬信箱中;以及當該第二處理器的該專屬信箱收到該資料時,該第二處理器的該專屬信箱是開始進行計時,並且直到該計時的結果超過一門檻值時,該第二處理器的該專屬信箱是發出一逾時信號給該第二處理器,收到該逾時信號後的該第二處理器則來對該第一處理器進行重置。
- 如請求項第7項所述的處理器錯誤檢查方法,其中在該第一處理器要與該第二處理器進行溝通時,該第一處理器是確認該第二處理器的該專屬信箱是否具有足夠的一儲存空間以儲存該資料,如果是,該第一處理器則通過該公共匯流排來寫入該資料到該第二處理器的該專屬信箱中。
- 如請求項第8項所述的處理器錯誤檢查方法,其中每一該些專屬信箱更用來輸出一狀態信號以指示其是否具有足夠的該儲存空間以儲存該資料,且每一該些專屬信箱是收到來自其他該些專屬信箱所輸出的該些狀態信號。
- 如請求項第9項所述的處理器錯誤檢查方法,其中在該第一處理器是確認該第二處理器的該專屬信箱是否具有足夠的該儲存空間以儲存該資料時,該第一處理器是讀取該第二處理器的該專屬信箱所輸出的該狀態信號,並且根據該狀態信號,判斷該第二處理器的該專屬信箱是否具有足夠的該儲存空間以儲存該資料。
- 如請求項第10項所述的處理器錯誤檢查方法,其中在該第二處理器的該專屬信箱接收完成該資料時,該第二處理器的該專屬信箱是停止並歸零該計時,並且發出一中斷信號給該第二處理器,收到該中斷信號後的該第二處理器則通過相應的該專屬通道來讀取該專屬信箱內的該資料。
- 如請求項第11項所述的處理器錯誤檢查方法,其中每一該些專屬信箱更包括:一控制暫存器,用來設定該專屬信箱的一中斷條件;以及一信箱控制器,用來管理該儲存空間,以及產生該逾時信號、該中斷信號與該狀態信號;其中,當該中斷條件滿足時,該專屬信箱發出該中斷信號給該第二處理器。
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 |
---|---|
TWI680375B true TWI680375B (zh) | 2019-12-21 |
TW202009731A TW202009731A (zh) | 2020-03-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 After (2)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
TW107139473A TWI703501B (zh) | 2018-08-23 | 2018-11-07 | 具有分散式信箱架構的多處理器系統及其溝通方法 |
TW108102013A TWI703499B (zh) | 2018-08-23 | 2019-01-18 | 資料儲存裝置及其共享控制器中記憶體的方法 |
Country Status (3)
Country | Link |
---|---|
US (3) | US11314571B2 (zh) |
CN (3) | CN110858188B (zh) |
TW (3) | TWI680375B (zh) |
Families Citing this family (7)
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 |
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 |
TWI821965B (zh) * | 2021-09-29 | 2023-11-11 | 慧榮科技股份有限公司 | 編碼歷程資訊的存取方法及電腦程式產品及裝置 |
Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
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 |
US20070101206A1 (en) * | 2005-10-31 | 2007-05-03 | Hewlett-Packard Development Company, Lp. | Timeouts on accessing a shared resource |
TW200832133A (en) * | 2006-10-17 | 2008-08-01 | Advanced Risc Mach Ltd | Handling of write access requests to shared memory in a data processing apparatus |
TW200839523A (en) * | 2007-03-27 | 2008-10-01 | 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 |
TW201305772A (zh) * | 2011-07-20 | 2013-02-01 | Hon Hai Prec Ind Co Ltd | 連續處理網路資料的系統及方法 |
TW201321993A (zh) * | 2011-11-16 | 2013-06-01 | Innostor Technology Corp | 用於通用序列匯流排裝置的全雙工控制器與其方法 |
TW201734748A (zh) * | 2016-03-18 | 2017-10-01 | 慧榮科技股份有限公司 | 資料儲存裝置、記憶體控制器及其操作方法 |
Family Cites Families (45)
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 |
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 |
US7415576B2 (en) * | 2002-09-30 | 2008-08-19 | Renesas Technology Corp. | Data processor with block transfer control |
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 |
TWI309773B (en) * | 2006-03-14 | 2009-05-11 | Fulhua Microelectronics Corp | Memory accessing system and method |
KR100822468B1 (ko) * | 2006-09-11 | 2008-04-16 | 엠텍비젼 주식회사 | 공유 메모리를 구비한 장치 및 코드 데이터 전송 방법 |
KR100871700B1 (ko) * | 2007-02-13 | 2008-12-08 | 삼성전자주식회사 | 불휘발성 메모리 장치에서 전하 손실에 기인한 오류 데이터정정 방법 |
US8055982B2 (en) * | 2007-02-21 | 2011-11-08 | Sigmatel, Inc. | Error correction system and method |
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 |
US9098430B2 (en) * | 2010-03-22 | 2015-08-04 | Conversant Intellectual Property Management Inc. | 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 |
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 | 杭州朔天科技有限公司 | 一种降低响应延时提高系统效率的中断控制器及控制方法 |
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 | 慧榮科技股份有限公司 | 資料儲存裝置與資料儲存方法 |
-
2018
- 2018-11-07 TW TW107139472A patent/TWI680375B/zh active
- 2018-11-07 TW TW107139473A patent/TWI703501B/zh active
-
2019
- 2019-01-18 TW TW108102013A patent/TWI703499B/zh active
- 2019-02-14 CN CN201910114084.4A patent/CN110858188B/zh active Active
- 2019-02-14 CN CN201910114012.XA patent/CN110858187B/zh active Active
- 2019-04-30 US US16/398,280 patent/US11314571B2/en active Active
- 2019-05-06 CN CN201910370082.1A patent/CN110858128B/zh active Active
- 2019-06-30 US US16/458,175 patent/US20200065177A1/en not_active Abandoned
- 2019-07-04 US US16/503,504 patent/US11334415B2/en active Active
Patent Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
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 |
US20070101206A1 (en) * | 2005-10-31 | 2007-05-03 | Hewlett-Packard Development Company, Lp. | Timeouts on accessing a shared resource |
TW200832133A (en) * | 2006-10-17 | 2008-08-01 | Advanced Risc Mach Ltd | Handling of write access requests to shared memory in a data processing apparatus |
TW200839523A (en) * | 2007-03-27 | 2008-10-01 | 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 |
TW201305772A (zh) * | 2011-07-20 | 2013-02-01 | Hon Hai Prec Ind Co Ltd | 連續處理網路資料的系統及方法 |
TW201321993A (zh) * | 2011-11-16 | 2013-06-01 | Innostor Technology Corp | 用於通用序列匯流排裝置的全雙工控制器與其方法 |
TW201734748A (zh) * | 2016-03-18 | 2017-10-01 | 慧榮科技股份有限公司 | 資料儲存裝置、記憶體控制器及其操作方法 |
Also Published As
Publication number | Publication date |
---|---|
TW202009699A (zh) | 2020-03-01 |
US20200065177A1 (en) | 2020-02-27 |
US11314571B2 (en) | 2022-04-26 |
TWI703501B (zh) | 2020-09-01 |
CN110858128B (zh) | 2023-04-18 |
TW202009695A (zh) | 2020-03-01 |
CN110858128A (zh) | 2020-03-03 |
CN110858188A (zh) | 2020-03-03 |
TWI703499B (zh) | 2020-09-01 |
US20200065190A1 (en) | 2020-02-27 |
US11334415B2 (en) | 2022-05-17 |
US20200065167A1 (en) | 2020-02-27 |
CN110858187B (zh) | 2023-07-04 |
TW202009731A (zh) | 2020-03-01 |
CN110858187A (zh) | 2020-03-03 |
CN110858188B (zh) | 2023-08-01 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
TWI680375B (zh) | 具有分散式信箱架構的多處理器系統及其處理器錯誤檢查方法 | |
US11036650B2 (en) | System, apparatus and method for processing remote direct memory access operations with a device-attached memory | |
CN102414671B (zh) | 对于不同源的分级内存仲裁技术 | |
US6779036B1 (en) | Method and apparatus for achieving correct order among bus memory transactions in a physically distributed SMP system | |
US6606676B1 (en) | Method and apparatus to distribute interrupts to multiple interrupt handlers in a distributed symmetric multiprocessor system | |
US6535941B1 (en) | Method and apparatus for avoiding data bus grant starvation in a non-fair, prioritized arbiter for a split bus system with independent address and data bus grants | |
US7500059B2 (en) | Inter-processor communication method using a shared cache memory in a storage system | |
US9003091B2 (en) | Flow control for a Serial Peripheral Interface bus | |
JP4891405B2 (ja) | バリア操作の条件付き伝搬のための方法および装置 | |
TW200534110A (en) | A method for supporting improved burst transfers on a coherent bus | |
US6523076B1 (en) | Method and apparatus for synchronizing multiple bus arbiters on separate chips to give simultaneous grants for the purpose of breaking livelocks | |
JP2001117859A (ja) | バス制御装置 | |
US5793994A (en) | Synchronous event posting by a high throughput bus | |
JP2017016660A (ja) | マスタサイドフィルタを含むキャッシュコヒーレントシステムとそれを含むデータ処理システム | |
US6697904B1 (en) | Preventing starvation of agents on a bus bridge | |
US20150213853A1 (en) | Implementing simultaneous read and write operations utilizing dual port dram | |
US6442597B1 (en) | Providing global coherence in SMP systems using response combination block coupled to address switch connecting node controllers to memory | |
JP3600536B2 (ja) | 書き込みデータの破壊を制限する方法及びシステムとpciバス・システム | |
US6542949B1 (en) | Method and apparatus for increased performance of a parked data bus in the non-parked direction | |
CN117472815A (zh) | 一种axi协议下的存储模块转换接口及其转换方法 | |
CN112559434B (zh) | 一种多核处理器及核间数据转发方法 | |
JPH1125036A (ja) | 調停システム、およびアクセスを調停する方法 | |
CN112612424A (zh) | 一种NVMe提交队列控制装置及方法 | |
JP3206585B2 (ja) | バス制御装置、マスタ装置及びスレーブ装置並びにバス制御方法 | |
JPH0844661A (ja) | 情報処理装置 |