WO2016089628A1 - Memory access by dual processor systems - Google Patents

Memory access by dual processor systems Download PDF

Info

Publication number
WO2016089628A1
WO2016089628A1 PCT/US2015/061942 US2015061942W WO2016089628A1 WO 2016089628 A1 WO2016089628 A1 WO 2016089628A1 US 2015061942 W US2015061942 W US 2015061942W WO 2016089628 A1 WO2016089628 A1 WO 2016089628A1
Authority
WO
WIPO (PCT)
Prior art keywords
processor
data
threshold
memory
disabling
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.)
Ceased
Application number
PCT/US2015/061942
Other languages
English (en)
French (fr)
Inventor
Abhijeet Singh
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.)
Qualcomm Technologies International Ltd
Original Assignee
Qualcomm Technologies International Ltd
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 Qualcomm Technologies International Ltd filed Critical Qualcomm Technologies International Ltd
Priority to KR1020177014529A priority Critical patent/KR20170129674A/ko
Priority to CA2965826A priority patent/CA2965826A1/en
Priority to EP15805685.3A priority patent/EP3227782B1/en
Priority to BR112017011658A priority patent/BR112017011658A2/pt
Priority to JP2017525968A priority patent/JP2017537392A/ja
Priority to CN201580064825.2A priority patent/CN107111577B/zh
Publication of WO2016089628A1 publication Critical patent/WO2016089628A1/en
Anticipated expiration legal-status Critical
Ceased legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING OR CALCULATING; 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 OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/3003Monitoring arrangements specially adapted to the computing system or computing system component being monitored
    • G06F11/3024Monitoring arrangements specially adapted to the computing system or computing system component being monitored where the computing system component is a central processing unit [CPU]
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/3055Monitoring arrangements for monitoring the status of the computing system or of the computing system component, e.g. monitoring if the computing system is on, off, available, not available
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; 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 OR CALCULATING; 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/52Program synchronisation; Mutual exclusion, e.g. by means of semaphores
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; 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/52Program synchronisation; Mutual exclusion, e.g. by means of semaphores
    • G06F9/526Mutual exclusion algorithms

Definitions

  • the present invention relates generally to computer systems, and more particularly to methods and apparatuses for memory access by dual processor systems.
  • Processor systems may utilise a common memory store (for example flash memory) for instructions and data. There may therefore be a need to control access to that memory to avoid conflicts between instruction read and data read and write processes.
  • a common memory store for example flash memory
  • GNSS Global Navigation Satellite System
  • a method for controlling access to memory by a system comprising first and second processors, the method comprising the steps of generating or receiving data at the second processor for storage, disabling operation of the first processor by the second processor, disabling interrupts of the second processor, storing the data to the memory by the second processor, enabling interrupts of the second processor, and enabling the first processor.
  • the method may further comprise the step of ascertaining the period for which the first processor was disabled.
  • the processor may be reset if the period is greater than a threshold.
  • the method may further comprise the step of monitoring the state of the first processor using the second processor.
  • the method may further comprise the step of performing a reset of the first processor if the state of that first processor does not change for greater than a threshold time.
  • the system may be a GNSS receiver, and the first processor is performing tracking operations.
  • the threshold may be 50ms.
  • the threshold time may be 2 seconds.
  • the first and second processors may be in a single integrated circuit package.
  • the method may further comprise the step of determining the stability of the first processor prior to disabling that processor, and only disabling the processor if it is stable. Determining the stability of the first processor comprises comparing the number of consecutive position calculations to a threshold, wherein the first processor is determined to be stable if the number of consecutive calculations exceeds the threshold. Determining the stability of the first processor comprises comparing the time since the processor was last disabled to a threshold, wherein the first processor is determined to be stable if the time is greater than the threshold. Determining the stability of the first processor comprises verifying that there is sufficient time prior to the next scheduled event to complete storing the data. [0016] The method may further comprise the step of assigning a priority to data to be stored, and storing data in an order defined at least in part by that priority.
  • a dual-processor device comprising first and second processors, and a port for communication with a memory, wherein the device is configured to perform the method described herein.
  • Figure 1 shows an outline schematic diagram of a dual-processor system
  • Figure 2 shows a flow-chart of a method of controlling access to memory.
  • FIG. 1 shows a simplified schematic diagram of a dual-processor GNSS receiver 10.
  • the receiver comprises first 1 1 and second 12 processors, and is in communication with flash memory 13 via an appropriate port.
  • the flash memory may be serial or parallel memory.
  • Each processor conducts aspects of signal processing, position calculation, and other supporting tasks.
  • the first and second processors are connected to exchange data and to allow interaction of the two processors.
  • the first processor is a DSP processor performing tracking and signal processing tasks
  • the second processor is a general-purpose processor, such as a RISC processor, performing general control tasks.
  • the first and second processor are typically integrated in a single integrated circuit package.
  • GNSS receivers need to store data such as Extended Ephemeris, Almanac, RTC, Crystal Learning tables, and UTC data at the same time as processing received signals.
  • this data is stored to the same external flash memory from which both the processors are fetching their instructions.
  • flash memory writes are controlled by one of the two processors. If data for storage is generated at the non-controlling processor it is transferred to the controlling processor for storage. The non-controlling processor is disabled and the controlling processor writes the data to the flash memory using a process which cannot be interrupted. Once the write has completed the non-controlling processor is re-enabled by the controlling processor and processing continues. Disabling the non-controlling processor pauses the processor such that it resumes operation at the same point.
  • FIG. 2 shows a flow-chart of a specific method to control access to memory in a dual-processor GNSS device.
  • the device comprises a tracking processor, which is typically a DSP processor and is utilised to processed received signals, and a general processor which provides position calculation and general control processes.
  • step 20 data generated by the tracking processor and the general processor which must be stored to flash memory.
  • Data generated by the tracking processor is first transferred to the general processor.
  • step 21 it is verified at step 21 whether the receiver is stable.
  • the receiver may be determined to be stable by counting consecutive valid position outputs. In an example, the receiver is determined to be stable after ten valid consecutive outputs. As set out in more detail below, further checks may also be made to ensure the data can be stored without excessive disruption.
  • the tracking processor is disabled.
  • Disabling the tracking processor may comprise issuing a pause command, turning the processor off, disabling all interrupts, or preventing any reads from the flash memory.
  • the purpose of disabling the processor is to prevent access to the flash memory by the tracking processor, thus avoiding memory conflicts.
  • a state machine is started on the general processor to monitor the status of the tracking processor. This state machine is used to ensure the tracking processor is re-enabled correctly.
  • the data is packaged by the general processor such that it can be stored to the flash memory in a single operation and at step 25 the general processor writes the data to the flash memory. This is done using a critical section of code to ensure the process is not interrupted. Other techniques can also be utilised to ensure the process completes without interruption, for example by disabling all interrupts in the general processor before commencing the write operation, and then re-enabling them after completion.
  • the general processor monitors (step 27) the time for which the tracking processor's interrupts were disabled and takes appropriate steps to ensure tracking operation is resumed correctly.
  • the threshold applied at step 27 is determined according to the specific characteristics of the time required to write data and the ability of the receiver to handle periods of being disabled. Both of these values can vary very significantly and specific values may be selected for each configuration.
  • the tracking processor may be reset if it was disabled for more than 50ms for Parallel Flash and 400ms for SQIF. After the reset satellite signals being tracked can re-synchronise with the general processor. Timings of this magnitude are most likely to be encountered when it is necessary to erase sectors of the flash memory during the write process. The process then completes at step 29.
  • a state machine is started (step 23) in the general processor to monitor the state of the tracking processor. It is possible that the wake-up signal from the general processor to the tracking processor (step 26) is missed by the tracking processor and the tracking processor does not resume full operation.
  • the state machine monitors the state of the tracking processor (step 30) and if that state machine has not moved for more than a threshold time then a reset is performed of the tracking processor at step 31 to resume operation.
  • This threshold may be set to, for example, 2 seconds.
  • the state machine may be de-activated once all data storage operations have been completed, and the tracking processor is in an operational state.
  • the data storage operation may be initiated once it is detected that the receiver system is stable. It may also be important to ensure the data storage operation is run at an appropriate time to ensure time- sensitive features (for example generation of the 1PPS signal in a GNSS receiver) are not affected. Stability is determined in the above example by ensuring at least 10 consecutive positions have been calculated, but other means may also be used in addition or instead. For example, it may also be a requirement that all measurements from the tracking processor have been received and processed by the general processor. The general processor may also verify that there is sufficient time to allow the data storage operation before the next scheduled task. Furthermore, the stability check could utilise the time since completion of the last flash write or erase process. That is, the time the tracking processor has been enabled for since it was last disabled.
  • Data for storage may be tagged with an indication of priority so that data stores can be scheduled appropriately to store the most important data first. All different data types for storage are prioritised. Additionally data for storage can be received from a host processor via a communication port. This type of data received from a host processor is assigned the highest priority for storage as soon as possible.
  • An example of externally generated data is Server Generated Extended Ephemeris (SGEE) data.
  • SGEE Server Generated Extended Ephemeris
  • Priority may be assigned by the general processor, or by the originator of the data (for example the tracking processor may tag data with a priority).
  • flash memory functions may not be appropriate for a dual-processor system operating as described herein.
  • utilising erase suspend mode of a flash memory can lead to a significant increase in the time required for the operation and lead to greater disruption of the tracking processor while the general processor conducts memory operations.
  • data write and erase operations are managed as described above such that the tracking processor is disabled according to a calculated schedule and can resume operation as quickly as possible.
  • Any reference to 'an' item refers to one or more of those items.
  • the term 'comprising' is used herein to mean including the method blocks or elements identified, but that such blocks or elements do not comprise an exclusive list and a method or apparatus may contain additional blocks or elements.

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Software Systems (AREA)
  • Computing Systems (AREA)
  • Quality & Reliability (AREA)
  • Mathematical Physics (AREA)
  • Techniques For Improving Reliability Of Storages (AREA)
  • Multi Processors (AREA)
PCT/US2015/061942 2014-12-02 2015-11-20 Memory access by dual processor systems Ceased WO2016089628A1 (en)

Priority Applications (6)

Application Number Priority Date Filing Date Title
KR1020177014529A KR20170129674A (ko) 2014-12-02 2015-11-20 이중 프로세서 시스템들에 의한 메모리 액세스
CA2965826A CA2965826A1 (en) 2014-12-02 2015-11-20 Memory access by dual processor systems
EP15805685.3A EP3227782B1 (en) 2014-12-02 2015-11-20 Memory access by dual processor systems
BR112017011658A BR112017011658A2 (pt) 2014-12-02 2015-11-20 acesso à memória por sistemas de processador duplo
JP2017525968A JP2017537392A (ja) 2014-12-02 2015-11-20 デュアルプロセッサシステムによるメモリアクセス
CN201580064825.2A CN107111577B (zh) 2014-12-02 2015-11-20 双处理器系统的存储器存取

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US14/558,147 US9720861B2 (en) 2014-12-02 2014-12-02 Memory access by dual processor systems
US14/558,147 2014-12-02

Publications (1)

Publication Number Publication Date
WO2016089628A1 true WO2016089628A1 (en) 2016-06-09

Family

ID=53785083

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/US2015/061942 Ceased WO2016089628A1 (en) 2014-12-02 2015-11-20 Memory access by dual processor systems

Country Status (10)

Country Link
US (1) US9720861B2 (enExample)
EP (1) EP3227782B1 (enExample)
JP (1) JP2017537392A (enExample)
KR (1) KR20170129674A (enExample)
CN (1) CN107111577B (enExample)
BR (1) BR112017011658A2 (enExample)
CA (1) CA2965826A1 (enExample)
DE (1) DE102015111270A1 (enExample)
GB (1) GB2535249A (enExample)
WO (1) WO2016089628A1 (enExample)

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP6360387B2 (ja) 2014-08-19 2018-07-18 ルネサスエレクトロニクス株式会社 プロセッサシステム、エンジン制御システム及び制御方法
CN114253729B (zh) * 2021-12-23 2025-05-09 上海商米科技集团股份有限公司 适用于pos机双处理器间的通信系统、方法和装置
CN118915955A (zh) * 2023-05-08 2024-11-08 芯翼信息科技(上海)有限公司 Flash存储器的控制方法、装置、设备及存储介质

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP0871307A2 (en) * 1997-04-08 1998-10-14 International Business Machines Corporation Apparatus for flexible control of interrupts in multiprocessor systems
US20080256348A1 (en) * 2007-03-21 2008-10-16 Prabhudesai Shantanu Prasad Method for configuration of a processing unit
US20090228895A1 (en) * 2008-03-04 2009-09-10 Jianzu Ding Method and system for polling network controllers
US20120166685A1 (en) * 2010-12-22 2012-06-28 Western Digital Technologies, Inc. Selectively enabling a host transfer interrupt
US20130139156A1 (en) * 2011-11-30 2013-05-30 Michael Tsirkin Application-driven shared device queue polling in a virtualized computing environment

Family Cites Families (21)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4591975A (en) 1983-07-18 1986-05-27 Data General Corporation Data processing system having dual processors
JPH052529A (ja) * 1991-06-24 1993-01-08 Iwaki Electron Corp Ltd フラツシユ・メモリのアクセス方法及びその回路
US6161162A (en) * 1993-12-08 2000-12-12 Nec Corporation Multiprocessor system for enabling shared access to a memory
US5845130A (en) 1996-09-11 1998-12-01 Vlsi Technology, Inc. Mailbox traffic controller
US5918248A (en) * 1996-12-30 1999-06-29 Northern Telecom Limited Shared memory control algorithm for mutual exclusion and rollback
US5875342A (en) 1997-06-03 1999-02-23 International Business Machines Corporation User programmable interrupt mask with timeout
US6393590B1 (en) * 1998-12-22 2002-05-21 Nortel Networks Limited Method and apparatus for ensuring proper functionality of a shared memory, multiprocessor system
JP2001216284A (ja) * 1999-11-25 2001-08-10 Denso Corp 電子制御装置
US7130951B1 (en) 2002-04-18 2006-10-31 Advanced Micro Devices, Inc. Method for selectively disabling interrupts on a secure execution mode-capable processor
US7290080B2 (en) 2002-06-27 2007-10-30 Nazomi Communications Inc. Application processors and memory architecture for wireless applications
JP2005215924A (ja) * 2004-01-29 2005-08-11 Dainichi Co Ltd 制御装置の通信方法および制御装置
US7685354B1 (en) * 2004-06-30 2010-03-23 Sun Microsystems, Inc. Multiple-core processor with flexible mapping of processor cores to cache banks
US7873776B2 (en) * 2004-06-30 2011-01-18 Oracle America, Inc. Multiple-core processor with support for multiple virtual processors
JP2006323617A (ja) * 2005-05-19 2006-11-30 Fujitsu Ten Ltd メモリ管理方法及びメモリ管理装置
KR100772841B1 (ko) * 2006-07-28 2007-11-02 삼성전자주식회사 프로세서들간 호스트 인터페이싱 기능을 갖는 멀티패쓰억세스블 반도체 메모리 장치
US7617403B2 (en) * 2006-07-26 2009-11-10 International Business Machines Corporation Method and apparatus for controlling heat generation in a multi-core processor
US7808428B2 (en) 2007-10-08 2010-10-05 Hemisphere Gps Llc GNSS receiver and external storage device system and GNSS data processing method
GB2458499A (en) * 2008-03-20 2009-09-23 Cambridge Silicon Radio Ltd Sharing access to a data store by a host processor and a signal processor in a mobile phone
US20110179311A1 (en) * 2009-12-31 2011-07-21 Nachimuthu Murugasamy K Injecting error and/or migrating memory in a computing system
US8510492B2 (en) 2010-09-08 2013-08-13 Integrated Device Technology Inc. System and method for communication handshaking between a master processors and a slave processor
US20150006962A1 (en) * 2013-06-27 2015-01-01 Robert C. Swanson Memory dump without error containment loss

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP0871307A2 (en) * 1997-04-08 1998-10-14 International Business Machines Corporation Apparatus for flexible control of interrupts in multiprocessor systems
US20080256348A1 (en) * 2007-03-21 2008-10-16 Prabhudesai Shantanu Prasad Method for configuration of a processing unit
US20090228895A1 (en) * 2008-03-04 2009-09-10 Jianzu Ding Method and system for polling network controllers
US20120166685A1 (en) * 2010-12-22 2012-06-28 Western Digital Technologies, Inc. Selectively enabling a host transfer interrupt
US20130139156A1 (en) * 2011-11-30 2013-05-30 Michael Tsirkin Application-driven shared device queue polling in a virtualized computing environment

Also Published As

Publication number Publication date
BR112017011658A2 (pt) 2018-01-02
DE102015111270A1 (de) 2016-06-02
KR20170129674A (ko) 2017-11-27
CN107111577B (zh) 2020-07-14
CN107111577A (zh) 2017-08-29
CA2965826A1 (en) 2016-06-09
GB201509869D0 (en) 2015-07-22
EP3227782A1 (en) 2017-10-11
US20160154751A1 (en) 2016-06-02
JP2017537392A (ja) 2017-12-14
US9720861B2 (en) 2017-08-01
GB2535249A (en) 2016-08-17
EP3227782B1 (en) 2022-06-15

Similar Documents

Publication Publication Date Title
US11263081B2 (en) Checkpointing
US20070198768A1 (en) Apparatus and method for operating flash memory according to priority order
TWI498820B (zh) 具有用於分支錯誤預測之第二跳躍執行單元的處理器
GB2579316A (en) On-chip supply noise voltage reduction or mitigation using local detection loops in a processor core
EP3227782B1 (en) Memory access by dual processor systems
KR20140024060A (ko) 랭크-특정 순환 중복 검사
CN104461468A (zh) 基于处理器指令快速完成的精确异常维护方法及装置
US11861181B1 (en) Triple modular redundancy (TMR) radiation hardened memory system
US20200311000A1 (en) Processor and interrupt controller
US20120102303A1 (en) Exception control in a multiprocessor system
TW201349112A (zh) 用於分支預測錯誤之賦能及去能第二跳越執行單元之技術
US20110185156A1 (en) Executing watchpoint events for debugging in a "break before make" manner
CN109564511B (zh) 调度用于处理的独立和从属操作
JP2017537392A5 (enExample)
US20130191616A1 (en) Instruction control circuit, processor, and instruction control method
US10041998B2 (en) Method of debugging PLC by using general-purpose microprocessor
US9983932B2 (en) Pipeline processor and an equal model compensator method and apparatus to store the processing result
US9405546B2 (en) Apparatus and method for non-blocking execution of static scheduled processor
CN104837064B (zh) 开放式操作系统的媒体播放器的控制方法及媒体播放器
CN104809024A (zh) 推测中断信号
US20140340974A1 (en) Apparatus and method for writing data into storage of electronic device
US11768735B2 (en) Checkpointing
TW200719141A (en) Flash memory access method and circuit of an embedded system
US9542188B2 (en) Hardware debugging apparatus and method for software pipelined program
JP2665039B2 (ja) マイクロプログラム制御装置

Legal Events

Date Code Title Description
121 Ep: the epo has been informed by wipo that ep was designated in this application

Ref document number: 15805685

Country of ref document: EP

Kind code of ref document: A1

DPE1 Request for preliminary examination filed after expiration of 19th month from priority date (pct application filed from 20040101)
WWE Wipo information: entry into national phase

Ref document number: 2965826

Country of ref document: CA

REEP Request for entry into the european phase

Ref document number: 2015805685

Country of ref document: EP

ENP Entry into the national phase

Ref document number: 2017525968

Country of ref document: JP

Kind code of ref document: A

ENP Entry into the national phase

Ref document number: 20177014529

Country of ref document: KR

Kind code of ref document: A

NENP Non-entry into the national phase

Ref country code: DE

REG Reference to national code

Ref country code: BR

Ref legal event code: B01A

Ref document number: 112017011658

Country of ref document: BR

ENP Entry into the national phase

Ref document number: 112017011658

Country of ref document: BR

Kind code of ref document: A2

Effective date: 20170601