TWI650648B - 系統晶片及存取系統晶片中記憶體的方法 - Google Patents

系統晶片及存取系統晶片中記憶體的方法 Download PDF

Info

Publication number
TWI650648B
TWI650648B TW107104639A TW107104639A TWI650648B TW I650648 B TWI650648 B TW I650648B TW 107104639 A TW107104639 A TW 107104639A TW 107104639 A TW107104639 A TW 107104639A TW I650648 B TWI650648 B TW I650648B
Authority
TW
Taiwan
Prior art keywords
processor
parameter
specific area
access
indicate
Prior art date
Application number
TW107104639A
Other languages
English (en)
Other versions
TW201935256A (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 慧榮科技股份有限公司
Priority to TW107104639A priority Critical patent/TWI650648B/zh
Priority to CN201810666207.0A priority patent/CN110134637B/zh
Priority to US16/027,387 priority patent/US10915269B2/en
Application granted granted Critical
Publication of TWI650648B publication Critical patent/TWI650648B/zh
Publication of TW201935256A publication Critical patent/TW201935256A/zh

Links

Classifications

    • 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
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/0223User address space allocation, e.g. contiguous or non contiguous base addressing
    • G06F12/023Free address space management
    • G06F12/0238Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory
    • G06F12/0246Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory in block erasable memory, e.g. flash memory
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • G06F15/16Combinations of two or more digital computers each having at least an arithmetic unit, a program unit and a register, e.g. for a simultaneous processing of several programs
    • G06F15/163Interprocessor communication
    • G06F15/167Interprocessor communication using a common memory, e.g. mailbox
    • 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/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
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/72Details relating to flash memory management
    • G06F2212/7206Reconfiguration of flash memory system
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/72Details relating to flash memory management
    • G06F2212/7207Details relating to flash memory management management of metadata or control data

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)
  • Computer Hardware Design (AREA)
  • Software Systems (AREA)
  • Multi Processors (AREA)
  • Storage Device Security (AREA)

Abstract

本發明揭露一種系統晶片,其包含有一第一處理器、一第二處理器以及一記憶體,其中該記憶體儲存了一第一參數以及一第二參數,該第一參數係由該第一處理器所設定以表示該記憶體的一特定區域是鎖定狀態或是非鎖定狀態,且該第二參數係由該第二處理器所設定以表示該特定區域是鎖定狀態或是非鎖定狀態。在系統晶片的操作中,該第一處理器在存取該特定區域之前會先參考該第二參數,以決定是否可以存取該特定區域;以及該第二處理器在存取該特定區域之前會先參考該第一參數,以決定是否可以存取該特定區域。

Description

系統晶片及存取系統晶片中記憶體的方法
本發明係有關於系統晶片(System on Chip,SoC),尤指一種包含多個處理器的系統晶片。
在具有兩個中央處理器的系統晶片中,兩個中央處理器有可能會同時存取記憶體的同一個區域/位址,這時候便有可能導致中央處理器讀取到一個不完整的資料,或是兩個中央處理器同時寫入資料而造成資料遺失。因此,如何設計出一個有效的機制來防止這種情況是一個重要的課題。
因此,本發明的目的之一在於提出一個系統晶片及一種存取系統晶片中記憶體的方法,其可以利用簡單的參數設計與存取流程來有效地避免兩個處理器同時存取記憶體的情形。
在本發明的一個實施例中,揭露了一種系統晶片,其包含有一第一處理器、一第二處理器以及一記憶體,其中該記憶體儲存了一第一參數以及一第二參數,該第一參數係由該第一處理器所設定以表示該記憶體的一特定區域是鎖定狀態或是非鎖定狀態,且該第二參數係由該第二處理器所設定以表示該特定區域是鎖定狀態或是非鎖定狀態。在系統晶片的操作中,該第一處理器在存取該特定區域之前會先參考該第二參數,以決定是否可以存取該特定區域;以及該第二處理器在存取該特定區域之前會先參考該第一參數,以決定是否可以存取該特定區域。
在本發明的另一個實施例中,揭露了一種存取一系統晶片中一記憶體的方法,其中該記憶體儲存了一第一參數以及一第二參數,該第一參數係由一第一處理器所設定以表示該記憶體的一特定區域是鎖定狀態或是非鎖定狀態,且該第二參數係由一第二處理器所設定以表示該特定區域是鎖定狀態或是非鎖定狀態,且該方法包含有:在該第一處理器存取該特定區域之前,先參考該第二參數以決定是否可以存取該特定區域;以及在該第二處理器存取該特定區域之前,先參考該第一參數以決定是否可以存取該特定區域。
第1圖為根據本發明一實施例之系統晶片100的示意圖。如第1圖所示,系統晶片100包含了一第一處理器110、一第二處理器120以及一記憶體130,其中記憶體130儲存了一第一參數132以及一第二參數134,且記憶體130包含了可供第一處理器110與第二處理器120存取的一特定區域136。在本實施例中,第一處理器110與第二處理器120可以是中央處理器(Central Processing Unit,CPU),記憶體130可以是靜態隨機存取記憶體(Static Random-Access Memory,SRAM),但本發明並不以此為限,在其他實施例中,第一處理器110與第二處理器120可為任何其他種類的處理器,且記憶體130可以包含一或多個不同種類的記憶元件,例如靜態隨機存取記憶體、快閃記憶體(Flash memory)、暫存器(register)…等等。此外,雖然第1圖中僅繪出記憶體130中包含特定區域136,但記憶體130亦可包含其他僅供第一處理器110與第二處理器120其中之一存取的區域。
在本實施例中,記憶體130中的特定區域136可用來供第一處理器110與第二處理器120溝通之用,因此第一處理器110與第二處理器120均可以對特定區域136進行存取以進行資料溝通/交換。如先前技術中所述,若是第一處理器110與第二處理器120同時存取特定區域136時可能會造成讀取或寫入上的錯誤,因此本發明在記憶體130中設計了第一參數132以及第二參數134以解決第一處理器110與第二處理器120可能對特定區域136同時存取的問題。
具體來說,第一參數132係由第一處理器110來進行設定以表示記憶體130的特定區域136是鎖定狀態或是非鎖定狀態,其中鎖定狀態指的是第一處理器110預備存取特定區域136或是正在存取特定區域136,而非鎖定狀態指的是第一處理器110此時並未對特定區域136進行存取。此外,第二參數134係由第二處理器120來進行設定以表示記憶體130的特定區域136是鎖定狀態或是非鎖定狀態,其中鎖定狀態指的是第二處理器120預備存取特定區域136或是正在存取特定區域136,而非鎖定狀態指的是第二處理器120此時並未對特定區域136進行存取。在本實施例中,為了方便後續的說明,第一參數132與第二參數134可以被設為具有邏輯值“1”來表示特定區域136是鎖定狀態,且設為具有邏輯值“0”來表示特定區域136是非鎖定狀態,但本發明並不以此為限。如上所述,由於第一參數132與第二參數134係分別用來表示特定區域136是否正在被第一處理器110與第二處理器120存取、或是第一處理器110與第二處理器120有打算或預備要存取特定區域136,因此,第一處理器110在預備要存取特定區域136時會先讀取第二參數134以判斷第二處理器120是否準備存取或是正在存取特定區域136,若是第二參數134為“1”,則第一處理器110此時便放棄存取特定區域136並等待一段時間之後再嘗試存取特定區域136;而若是第二參數134為“0”,則第一處理器110此時便可立即對特定區域136進行存取。同理,第二處理器120在預備要存取特定區域136時會先讀取第一參數132以判斷第一處理器110是否準備存取或是正在存取特定區域136,若是第一參數132為“1”,則第二處理器120此時便放棄存取特定區域136並等待一段時間之後再嘗試存取特定區域136;而若是第一參數132為“0”,則第二處理器120此時便可立即對特定區域136進行存取。
如上所述,透過使用第一處理器110與第二處理器120來設定第一參數132與第二參數134,可以確實避免第一處理器110與第二處理器120同時存取特定區域136。此外,為了維持第一參數132與第二參數134的正確性,第一參數132可以透過硬體設計而僅可以由第一處理器110來設定而無法由第二處理器120來修改,且第二參數134也可以透過硬體設計而僅可以由第二處理器120來設定而無法由第一處理器110來修改。
第2圖為根據本發明一實施例之第一處理器110存取特定區域136的流程圖。在步驟200中,流程開始。在步驟202中,第一處理器110預備存取特定區域136,在本實施例中,第一處理器110可能是需要將資料傳送給第二處理器120而將資料寫入至特定區域136中,或是接收到第二處理器120的觸發而需要自特定區域136讀取資料。在步驟204中,在存取特定區域136之前,第一處理器110將第一參數132設為“1”以表示特定區域136是鎖定狀態。接著在步驟206中,第一處理器110讀取第二參數134。在步驟208中,第一處理器110判斷第二參數134是否為“1”,亦即判斷第二參數134是否記錄了特定區域136是鎖定狀態,若是則流程進入步驟210,若否則流程進入步驟214。在步驟210,由於第二參數134表示了特定區域136是鎖定狀態,亦即第二處理器110預備存取或是正在存取特定區域136,因此第一處理器110此時便放棄存取特定區域136,以避免發生兩個處理器同時存取特定區域136的情形。在步驟212中,由於第一處理器110此時放棄存取特定區域136,故第一處理器110立即將第一參數132改設為“0”,以避免影響到其他處理器的操作。在步驟214中,由於第二參數134表示了特定區域136是非鎖定狀態,即代表了第二處理器120並未預備存取或是正在存取特定區域136,因此第一處理器110可以立即存取特定區域136。在步驟216中,當第一處理器110完成存取操作之後,將第一參數132改設為“0”。
第2圖的實施例中係以第一處理器110來作為範例說明,而第二處理器120的操作亦類似於第一處理器110,因此相關細節便不再贅述。
在本發明的一個實施例中,若是第一處理器110與第二處理器120同時都預備要存取特定區域136,則第一處理器110與第二處理器120會分別先設定第一參數132與第二參數134為“1”以表示特定區域136是鎖定狀態,之後第一處理器110與第二處理器120再分別參考第二參數134與該第一參數132以決定是否存取特定區域。在此狀況中,由於第一參數132與第二參數134均表示特定區域136是鎖定狀態,故第一處理器110與第二處理器120此時都會放棄存取特定區域136,並分別將第一參數132與第二參數134重新設為“0”。
在第2圖所示的實施例中,當第一處理器110發現第二參數134為“1”(鎖定狀態)時便會放棄存取共用區域136,並將第一參數132由“1”改設為“0”,然而,在本發明的另一個實施例中,若是第一處理器110在設定上的優先順序高於第二處理器120,則第一處理器110在發現第二參數134為“1”時可以不需要放棄存取共用區域136,而只是延後存取共用區域136,此時第一參數132可以一直維持著“1”(鎖定狀態);且第一處理器110會持續觀察第二參數134,一旦第二參數134被第二處理器120重新設為“0”時,第一處理器110便可以立即存取共用區域136。具體的流程可參見第3圖。
第3圖為根據本發明另一實施例之第一處理器110存取特定區域136的流程圖。在步驟300中,流程開始。在步驟302中,第一處理器110預備存取特定區域136,在本實施例中,第一處理器110可能是需要將資料傳送給第二處理器120而將資料寫入至特定區域136中,或是接收到第二處理器120的觸發而需要自特定區域136讀取資料。在步驟304中,在存取特定區域136之前,第一處理器110將第一參數132設為“1”以表示特定區域136是鎖定狀態。接著在步驟306中,第一處理器110讀取第二參數134。在步驟308中,第一處理器110判斷第二參數134是否為“1”,亦即判斷第二參數134是否記錄了特定區域136是鎖定狀態,若是則流程進入步驟310,若否則流程進入步驟314。在步驟310,雖然第二參數134表示了特定區域136是鎖定狀態,亦即第二處理器110預備存取或是正在存取特定區域136,但由於第一處理器110具有高的優先順序,故第一處理器110此時並不會直接放棄存取特定區域136,而是持續觀察第二參數134的狀態。在步驟312中,當第二參數134由“1”被設為“0”之後,第一處理器110便可以立即存取特定區域136。在步驟314,第一處理器110完成對特定區域的存取,故將第一參數132由“1”設為“0”。在步驟316中,由於第二參數134表示了特定區域136是非鎖定狀態,即代表了第二處理器120並未預備存取或是正在存取特定區域136,因此第一處理器110可以立即存取特定區域136。在步驟318中,當第一處理器110完成存取操作之後,將第一參數132改設為“0”。
在第3圖所示的實施例中,由於第一處理器110具有高的優先順序,故在預備存取特定區域136的時候即使發現第二參數134是“1”,也不需要將第一參數132改設為“0”,以確保在第二參數134變為“0”的時候(亦即,第二處理器120完成存取或是放棄存取的時候)第一處理器110可以立即地存取特定區域136。而需注意的是,第一處理器110與第二處理器120並無法同時具有3圖所示的機制(即,無法兩個處理器110、120同時具有高的優先順序),亦即在第3圖的實施例中,若是第二處理器120在預備存取特定區域136時發現第一參數132為“1”,則第二處理器120需要立即放棄存取特定區域136並將第二參數134重新設為“0”,以避免發生錯誤。
在以上的實施例中系統晶片100只包含了兩個處理器,但此並非是作為本發明的限制。在其他的實施例中,系統晶片100可以包含兩個以上的多個處理器,且記憶體130包含了分別對應到多個處理器的多個參數。而每一個處理器在預備存取特定區域136時均會先將對應到自己的參數設為“1”,之後再參考其他處理器所對應的參數來決定是否可以存取特定區域136,而若是有任何一個其他參數為“1”則放棄存取。由於本領域具有通常知識者在閱讀過以上實施例後應能了解到應用在兩個以上之處理器的情況,故細節不再贅述。
簡要歸納本發明,在本發明的系統晶片中,透過在記憶體中設置第一變數與第二變數以分別表示第一處理器與第二處理器是否預備存取或是正在存取特定區域,且第一變數與第二變數係分別供第二處理器與第一處理器作參考以判斷目前是否可以存取特定區域,可以有效地避免兩個處理器同時存取記憶體,以解決先前技術中同時存取記憶體而造成讀取或寫入錯誤的情形。 以上所述僅為本發明之較佳實施例,凡依本發明申請專利範圍所做之均等變化與修飾,皆應屬本發明之涵蓋範圍。
100‧‧‧系統晶片
110‧‧‧第一處理器
120‧‧‧第二處理器
130‧‧‧記憶體
132‧‧‧第一參數
134‧‧‧第二參數
136‧‧‧特定區域
200~216、300~318‧‧‧步驟
第1圖為根據本發明一實施例之系統晶片的示意圖。 第2圖為根據本發明一實施例之第一處理器存取特定區域的流程圖。 第3圖為根據本發明另一實施例之第一處理器存取特定區域的流程圖。

Claims (20)

  1. 一種系統晶片(System on Chip,SoC),包含有:一第一處理器;一第二處理器;以及一記憶體,其中該記憶體儲存了一第一參數以及一第二參數,該第一參數係由該第一處理器所設定以表示該記憶體的一特定區域是鎖定狀態或是非鎖定狀態,且該第二參數係由該第二處理器所設定以表示該特定區域是鎖定狀態或是非鎖定狀態;其中該第一處理器在存取該特定區域之前會在不透過該第二處理器的情形下先參考該第二參數,以決定是否可以存取該特定區域;以及該第二處理器在存取該特定區域之前會在不透過該第一處理器的情形下先參考該第一參數,以決定是否可以存取該特定區域。
  2. 如申請專利範圍第1項所述之系統晶片,其中該第一參數僅可以由該第一處理器來設定而無法由該第二處理器來修改,且該第二參數僅可以由該第二處理器來設定而無法由該第一處理器來修改。
  3. 如申請專利範圍第1項所述之系統晶片,其中當該第一處理器預備存取該特定區域時,該第一處理器會先設定該第一參數以表示該特定區域是鎖定狀態,之後再參考該第二參數以決定是否可以存取該特定區域。
  4. 如申請專利範圍第3項所述之系統晶片,其中當該第二參數表示該特定區域是鎖定狀態時,該第一處理器放棄存取該特定區域並重新設定該第一參數以表示該特定區域是非鎖定狀態;以及當該第二參數表示該特定區域是非鎖定狀態時,該第一處理器開始對該特定區域進行存取。
  5. 如申請專利範圍第4項所述之系統晶片,其中當該第一處理器完成對該特定區域的存取之後,該第一處理器重新設定該第一參數以表示該特定區域是非鎖定狀態。
  6. 如申請專利範圍第1項所述之系統晶片,其中當該第一處理器與該第二處理器同時預備存取該特定區域時,該第一處理器會先設定該第一參數以表示該特定區域是鎖定狀態,且該第二處理器會先設定該第二參數以表示該特定區域是鎖定狀態,之後該第一處理器與該第二處理器再分別參考該第二參數與該第一參數以決定放棄存取該特定區域。
  7. 如申請專利範圍第6項所述之系統晶片,其中在該第一處理器與該第二處理器決定放棄存取該特定區域之後,並該第一處理器與該第二處理器分別重新設定該第一參數與該第二參數以表示該特定區域是非鎖定狀態。
  8. 如申請專利範圍第1項所述之系統晶片,其中當該第一處理器預備存取該特定區域時,該第一處理器會先設定該第一參數以表示該特定區域是鎖定狀態,之後再參考該第二參數以決定是否可以立即存取該特定區域或是延後存取該特定區域。
  9. 如申請專利範圍第8項所述之系統晶片,其中當該第二參數表示該特定區域是非鎖定狀態時,該第一處理器立即開始對該特定區域進行存取;以及當該第二參數表示該特定區域是鎖定狀態時,該第一處理器持續偵測該第二參數直到該第二參數被該第二處理器設定為表示該特定區域為非鎖定狀態時才存取該特定區域。
  10. 如申請專利範圍第9項所述之系統晶片,其中在該第一處理器持續偵測該第二參數的過程中該第一參數係一直表示該特定區域是鎖定狀態。
  11. 如申請專利範圍第9項所述之系統晶片,其中當該第一處理器完成對該特定區域的存取之後,該第一處理器重新設定該第一參數以表示該特定區域是非鎖定狀態。
  12. 如申請專利範圍第8項所述之系統晶片,其中當該第二處理器預備存取該特定區域時,該第二處理器會先設定該第二參數以表示該特定區域是鎖定狀態,之後再參考該第一參數以決定是否可以存取該特定區域或是放棄存取該特定區域。
  13. 如申請專利範圍第12項所述之系統晶片,其中當該第一參數表示該特定區域是鎖定狀態時,該第二處理器放棄存取該特定區域並重新設定該第二參數以表示該特定區域是非鎖定狀態;以及當該第一參數表示該特定區域是非鎖定狀態時,該第二處理器開始對該特定區域進行存取。
  14. 如申請專利範圍第13項所述之系統晶片,其中當該第二處理器完成對該特定區域的存取之後,該第二處理器重新設定該第二參數以表示該特定區域是非鎖定狀態。
  15. 一種存取一系統晶片中一記憶體的方法,其中該記憶體儲存了一第一參數以及一第二參數,該第一參數係由一第一處理器所設定以表示該記憶體的一特定區域是鎖定狀態或是非鎖定狀態,且該第二參數係由一第二處理器所設定以表示該特定區域是鎖定狀態或是非鎖定狀態,且該方法包含有:在該第一處理器存取該特定區域之前,在不透過該第二處理器的情形下先參考該第二參數以決定是否可以存取該特定區域;以及在該第二處理器存取該特定區域之前,在不透過該第一處理器的情形下先參考該第一參數以決定是否可以存取該特定區域。
  16. 如申請專利範圍第15項所述之方法,其中該第一參數僅可以由該第一處理器來設定而無法由該第二處理器來修改,且該第二參數僅可以由該第二處理器來設定而無法由該第一處理器來修改。
  17. 如申請專利範圍第15項所述之方法,另包含有:當該第一處理器預備存取該特定區域時,使用該第一處理器以設定該第一參數以表示該特定區域是鎖定狀態,之後再參考該第二參數以決定是否可以存取該特定區域。
  18. 如申請專利範圍第17項所述之方法,其中參考該第二參數以決定是否可以存取該特定區域的步驟包含有:當該第二參數表示該特定區域是鎖定狀態時,該第一處理器放棄存取該特定區域並重新設定該第一參數以表示該特定區域是非鎖定狀態;以及當該第二參數表示該特定區域是非鎖定狀態時,使用該第一處理器以開始對該特定區域進行存取。
  19. 如申請專利範圍第15項所述之方法,另包含有:當該第一處理器與該第二處理器同時預備存取該特定區域時,使用該第一處理器會先設定該第一參數以表示該特定區域是鎖定狀態,並使用該第二處理器會先設定該第二參數以表示該特定區域是鎖定狀態;以及該第一處理器與該第二處理器分別參考該第二參數與該第一參數以決定放棄存取該特定區域。
  20. 如申請專利範圍第15項所述之方法,另包含有:當該第一處理器預備存取該特定區域時,使用該第一處理器會先設定該第一參數以表示該特定區域是鎖定狀態,之後再參考該第二參數以決定是否可以立即存取該特定區域或是延後存取該特定區域。
TW107104639A 2018-02-09 2018-02-09 系統晶片及存取系統晶片中記憶體的方法 TWI650648B (zh)

Priority Applications (3)

Application Number Priority Date Filing Date Title
TW107104639A TWI650648B (zh) 2018-02-09 2018-02-09 系統晶片及存取系統晶片中記憶體的方法
CN201810666207.0A CN110134637B (zh) 2018-02-09 2018-06-26 系统芯片及存取系统芯片中内存的方法
US16/027,387 US10915269B2 (en) 2018-02-09 2018-07-05 Method for using set parameters to determine processor priority for accessing memory within system on chip having multiple processors

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
TW107104639A TWI650648B (zh) 2018-02-09 2018-02-09 系統晶片及存取系統晶片中記憶體的方法

Publications (2)

Publication Number Publication Date
TWI650648B true TWI650648B (zh) 2019-02-11
TW201935256A TW201935256A (zh) 2019-09-01

Family

ID=66213683

Family Applications (1)

Application Number Title Priority Date Filing Date
TW107104639A TWI650648B (zh) 2018-02-09 2018-02-09 系統晶片及存取系統晶片中記憶體的方法

Country Status (3)

Country Link
US (1) US10915269B2 (zh)
CN (1) CN110134637B (zh)
TW (1) TWI650648B (zh)

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN100504791C (zh) * 2007-05-16 2009-06-24 杭州华三通信技术有限公司 多cpu对临界资源进行互斥访问的方法和装置
CN102301343A (zh) * 2011-06-14 2011-12-28 华为技术有限公司 软件监测方法、装置以及系统
CN102567275A (zh) * 2010-12-08 2012-07-11 中国科学院声学研究所 一种多核处理器上多个操作系统间内存访问的方法及系统
TW201416856A (zh) * 2012-05-09 2014-05-01 Nvidia Corp 有記憶體分配限制的協同處理器的虛擬記憶體結構
CN106030522A (zh) * 2014-03-27 2016-10-12 英特尔公司 利用基于二进制翻译的处理器的锁省略

Family Cites Families (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5321825A (en) * 1991-06-18 1994-06-14 Advanced Micro Devices, Inc. Processing system with lock spaces for providing critical section access
US6263425B1 (en) * 1997-07-08 2001-07-17 National Semiconductor Corporation Circuit that implements semaphores in a multiprocessor environment without reliance on atomic test and set operations of the processor cores
US6247025B1 (en) * 1997-07-17 2001-06-12 International Business Machines Corporation Locking and unlocking mechanism for controlling concurrent access to objects
JP3963372B2 (ja) * 2001-02-24 2007-08-22 インターナショナル・ビジネス・マシーンズ・コーポレーション マルチプロセッサ・システム
US7159220B2 (en) * 2001-09-28 2007-01-02 Intel Corporation Flexible acceleration of java thread synchronization on multiprocessor computers
US6779090B2 (en) * 2002-05-21 2004-08-17 International Business Machines Corporation Spinlock for shared memory
US7529895B2 (en) * 2003-08-22 2009-05-05 International Business Machines Corporation Method for prefetching non-contiguous data structures
US7698523B2 (en) * 2006-09-29 2010-04-13 Broadcom Corporation Hardware memory locks
US8495642B2 (en) * 2008-04-23 2013-07-23 Red Hat, Inc. Mechanism for priority inheritance for read/write locks
US8560524B2 (en) * 2008-10-30 2013-10-15 Hewlett-Packard Development Company, L.P. Allocating priorities to prevent deadlocks in a storage system
JP2010140290A (ja) * 2008-12-12 2010-06-24 Panasonic Corp マルチプロセッサシステム及びその排他制御の調停方法
GB2513727B (en) * 2012-06-27 2015-06-24 Nordic Semiconductor Asa Memory protection
WO2017018976A1 (en) * 2015-07-24 2017-02-02 Hewlett Packard Enterprise Development Lp Lock manager
US10417056B2 (en) * 2015-08-04 2019-09-17 Oracle International Corporation Systems and methods for performing concurrency restriction and throttling over contended locks

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN100504791C (zh) * 2007-05-16 2009-06-24 杭州华三通信技术有限公司 多cpu对临界资源进行互斥访问的方法和装置
CN102567275A (zh) * 2010-12-08 2012-07-11 中国科学院声学研究所 一种多核处理器上多个操作系统间内存访问的方法及系统
CN102301343A (zh) * 2011-06-14 2011-12-28 华为技术有限公司 软件监测方法、装置以及系统
TW201416856A (zh) * 2012-05-09 2014-05-01 Nvidia Corp 有記憶體分配限制的協同處理器的虛擬記憶體結構
CN106030522A (zh) * 2014-03-27 2016-10-12 英特尔公司 利用基于二进制翻译的处理器的锁省略

Also Published As

Publication number Publication date
TW201935256A (zh) 2019-09-01
US20190250854A1 (en) 2019-08-15
CN110134637B (zh) 2022-09-23
CN110134637A (zh) 2019-08-16
US10915269B2 (en) 2021-02-09

Similar Documents

Publication Publication Date Title
US8001334B2 (en) Bank sharing and refresh in a shared multi-port memory device
US9152474B2 (en) Context aware synchronization using context and input parameter objects associated with a mutual exclusion lock
JP6815723B2 (ja) メモリシステム及びその動作方法
KR101746735B1 (ko) 고신뢰성 동작을 위한 메모리 제어기를 갖는 데이터 프로세서 및 방법
US9619303B2 (en) Prioritized conflict handling in a system
JP2000076217A (ja) コンピュ―タ・システムにおいてロック動作を最適化するシステムおよび方法
US20210382832A1 (en) Securing a memory device
US8904073B2 (en) Coherence processing with error checking
RU2618938C2 (ru) Управление временем обращения к памяти
US10783075B2 (en) Data security for multiple banks of memory
US20080091883A1 (en) Load starvation detector and buster
US10942798B2 (en) Watchdog timer hierarchy
WO2019001334A1 (zh) 一种栈溢出处理的方法及装置
TWI650648B (zh) 系統晶片及存取系統晶片中記憶體的方法
WO2021036259A1 (zh) 在区块链中并发执行交易的方法和装置
EP3782066B1 (en) Nop sled defense
US20060236040A1 (en) Multiprocessor system for preventing starvation in case of occurring address competition and method thereof
US20230117060A1 (en) Read-write method and apparatus, electronic device, and readable memory medium
JP2011085989A (ja) メモリ調停回路及びメモリ調停方法
US20230244779A1 (en) System and method for inhibiting debugger in non-secure region
US11860804B2 (en) Direct memory access (DMA) controller, electronic device using the DMA controller and method of operating the DMA controller
TWI774095B (zh) 直接記憶體存取控制器、使用直接記憶體存取控制器之電子裝置以及操作直接記憶體存取控制器的方法
JP2009187327A (ja) 情報通信システムの処理要求調停方法及びそのシステム並びにそのための制御プログラム
JP2005242929A (ja) 共有メモリのアクセス方法及びデータ処理装置
US20190370041A1 (en) Semiconductor device for providing a virtualization technique