ITTO20000643A1 - Procedimento e apparecchiuatura per l'arbitrio di processi concorrenti in sistemi multiprocessore. - Google Patents

Procedimento e apparecchiuatura per l'arbitrio di processi concorrenti in sistemi multiprocessore. Download PDF

Info

Publication number
ITTO20000643A1
ITTO20000643A1 IT2000TO000643A ITTO20000643A ITTO20000643A1 IT TO20000643 A1 ITTO20000643 A1 IT TO20000643A1 IT 2000TO000643 A IT2000TO000643 A IT 2000TO000643A IT TO20000643 A ITTO20000643 A IT TO20000643A IT TO20000643 A1 ITTO20000643 A1 IT TO20000643A1
Authority
IT
Italy
Prior art keywords
bus
processor
main processor
secondary processor
external
Prior art date
Application number
IT2000TO000643A
Other languages
English (en)
Inventor
Marco Gandini
Valter Bella
Original Assignee
Cselt Centro Studi Lab Telecom
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 Cselt Centro Studi Lab Telecom filed Critical Cselt Centro Studi Lab Telecom
Priority to IT2000TO000643A priority Critical patent/IT1320466B1/it
Publication of ITTO20000643A0 publication Critical patent/ITTO20000643A0/it
Priority to PCT/EP2001/007193 priority patent/WO2002001345A2/en
Publication of ITTO20000643A1 publication Critical patent/ITTO20000643A1/it
Application granted granted Critical
Publication of IT1320466B1 publication Critical patent/IT1320466B1/it

Links

Classifications

    • 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
    • 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/48Program initiating; Program switching, e.g. by interrupt
    • G06F9/4806Task transfer initiation or dispatching
    • G06F9/4843Task transfer initiation or dispatching by program, e.g. task dispatcher, supervisor, operating system
    • G06F9/4881Scheduling strategies for dispatcher, e.g. round robin, multi-level priority queues

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Multi Processors (AREA)
  • Communication Control (AREA)
  • Electrotherapy Devices (AREA)
  • Computer And Data Communications (AREA)

Description

Descrizione dell'invenzione avente per titolo:
"Procedimento e apparecchiatura per l'arbitrio di processi concorrenti in sistemi multiprocessore"
Riassunto
Il procedimento e l'apparecchiatura della presente invenzione si applicano ad un sistema multi-processore, in cui un processore principale RISC e un processore secondario DSP condividono le stesse risorse di memoria esterne. Il procedimento consente di effettuare l'arbitrio dei processi concorrenti, in particolare le operazioni di lettura e scrittura nelle memorie condivise, permettendo al DSP di svolgere compiutamente il compito assegnatogli, senza per questo precludere al RISC la possibilità di riprendere il controllo del sistema quando necessario ed evitando così ridondanze di accessi alle risorse di memoria.
Testo della descrizione
La- presente invenzione riguarda i sistemi gestiti da microprocessori e in particolare si riferisce ad un procedimento e ad un'apparecchiatura per l'arbitrio di processi concorrenti in sistemi multi-processore.
Nei sistemi a multi-processore utilizzati nei più diversi ambiti della tecnica, per esempio nelle apparecchiature per radio-mobile di seconda e, presumibilmente, di terza generazione, coesistono più processori che, pur svolgendo compiti diversi, devono accedere in modo asincrono a risorse comuni. Fra queste, vi sono solitamente gli elementi di memoria esterni, attestati ad un bus condiviso sul quale comunicano tra di loro i diversi dispositivi del sistema. Occorre quindi prevedere un procedimento per l'arbitrio di tali processi concorrenti.
Tra i diversi dispositivi del sistema, ve ne sono alcuni che appartengono alla categoria "master" ed altri alla categoria "slave". Sono master i processori, quali i RISC (Reduced Instruction Set Computer) e i DSP (Digital Signal Processor), sono slave le più diverse interfacce, quali le UART (Universal Asynchronous Receiver/Transmitter), i gestori di display, di tastiera, i coprocessori, i buzzer, ecc.
Per contenere al minimo il numero di componenti, riducendo per quanto possibile i costi del sistema finale, gli elementi di memoria esterni, richiesti dai processori per il loro funzionamento, sono solitamente ridotti a due: una memoria FLASH e una RAM (Random Access Memory). Poiché entrambe devono poter essere lette o scritte dai processori presenti, in istanti di tempo indeterminati, senza correre il rischio di provocare conflitti di accesso, occorre effettuare un arbitraggio in grado di regolamentare le connessioni con una gestione a priorità.
Questa funzione è generalmente svolta dai processore RISC, il quale ha in carico la gestione del sistema operativo RTOS (Reai Time Operative System), ossia la gestione dei compiti elaborativi (Task) e degli accessi alle memorie esterne di tutti i dispositivi che si affacciano al bus condiviso.
Al processore DSP sono invece demandate tutte le operazioni di elaborazione dati, quali i dati del canale di comunicazione radio, i campioni della sorgente audio, eventualmente compressi, nel caso si tratti di un sistema radio-mobile.
Risulta evidente che la comunicazione tra il processore RISC e il processore DSP è di primaria importanza e che deve avvenire in condizioni di massima sicurezza. Generalmente essa avviene non in modo diretto, ma tramite una zona di memoria condivisa posta all'interno della RAM, accessibile dall'uno o dall'altro processore secondo un codice di priorità. Inoltre, sempre per ragioni economiche, viene usualmente impiegata, una sola memoria FLASH contenente i programmi dei due processori, il cosiddetto "Firmware", anch'essa accessibile attraverso l'unico bus condiviso in base al codice di priorità.
In questo contesto, si ha una condizione di criticità quando uno dei due processori ha necessità di accedere alle risorse di memoria, mentre la connessione è già stabilita con l'altro processore. Ciò è dovuto al fatto che, operando i due processori ad alta priorità, l'accesso alle memorie deve necessariamente avvenire in modo alternato ed esclusivo, per cui, se uno dei due è impegnato nella lettura o nella scrittura dì dati, l’altro deve attendere fino alla fine delle operazioni. Queste possono avere durate anche molto diverse per i due processori, per cui uno di questi si troverebbe penalizzato. Infatti, il modo di operare del RISC è una successione di veloci assegnamenti di task e priorità agli altri dispositivi, mentre il DSP, una volta ricevuta l'abilitazione ad operare alla massima priorità, intraprende una considerevole mole di elaborazioni, che possono protrarsi considerevolmente nel tempo. Nello svolgimento di queste operazioni, il DSP nega la restituzione del controllo a! RISC, che pertanto non può accedere alle memorie esterne da cui estrarre le istruzioni per i compiti successivi: di conseguenza, il sistema operativo resta di fatto bloccato.
Per ovviare a questo inconveniente, il controllo viene riassegnato periodicamente al RISC, secondo leggi di priorità empiriche basate su esperienze pregresse. In particolare, si assegnano ai diversi processori tempi di funzionamento determinati a priori sulla base di valutazioni statistiche, non collegate alle effettive necessità del momento.
É evidente che questo tipo di soluzione è causa di una grande frammentazione dei task assegnati al DSP, il quale viene interrotto periodicamente, in modo disgiunto dall'attività di trasmissione dei dati, creando ridondanze di accessi ai processi sia del DSP, sia del RISC, e causando quindi-rallentamenti.
L’altra soluzione possibile è ovviamente quella di duplicare le memorie FLASH e RAM, in modo da evitare i conflitti dì accesso sopra descritti. Tuttavia, l'adozione di memorie aggiuntive renderebbe più costoso il dispositivo realizzato.
Ovvia ai suddetti inconvenienti e risolve il problema tecnico descritto il procedimento e l'apparecchiatura della presente invenzione, i quale consentono al DSP di svolgere compiutamente il compito assegnatogli, senza per questo precludere al RISC la possibilità di riprendere il controllo del sistema quando necessario ed evitando le ridondanze di accesso alle risorse di memoria sopra descritte.
E' particolare oggetto della presente invenzione un procedimento ed un'apparecchiatura per l’arbitrio di processi concorrenti in sistemi multi-processore, come descritto nella parte caratterizzante della rivendicazione 1.
Queste ed altre caratteristiche della presente invenzione saranno meglio chiarite dalla seguente descrizione di una forma preferita di realizzazione della stessa, data a titolo di esempio non limitativo, e dai disegni annessi in cui:
la fig. t è uno schema a blocchi di un sistema multi-processore con memorie condivise;
la fig. 2 è uno schema a blocchi del blocco indicato con IME in fig. 1.
Secondo il procedimento dell'invenzione, all’avvio del sistema il processore RISC carica dalla memoria FLASH un insieme di istruzioni costituenti il sistema operativo, deputato a gestire l'assegnazione dei compiti agli altri dispositivi del sistema, e le informazioni per effettuare l'arbitrio dei processi concorrenti, cioè per assegnare le diverse priorità per l'accesso alle memorie esterne condivise.
In particolare, prima di assegnare la priorità al DSP, il RISC fissa il numero di transazioni, che il DSP stesso può eseguire quando accede alle memorie esterne, prima di restituire il controllo al RISC. Questo numero-viene regolarmente -variato ad ogni ciclo, per esempio decrementato, fino a raggiungere un valore prefissato, che determina la fine forzosa del task svolto dal DSP.
Nella successiva fase di lavoro, sulla base dell'insieme di istruzioni caricate all'inizio, il RISC può assegnare un nuovo numero di transazioni al DSP, che quindi risulta facilmente programmabile a priori. Lo stesso insieme di istruzioni iniziale può essere periodicamente aggiornato sotto il controllo dei software di controllo gestionale esterno.
Lo schema a blocchi di fìg. 1 è una tipica apparecchiatura in cui trova applicazione il procedimento oggetto dell’invenzione.
In esso sono indicati con BD e BR i bus dedicati al processore DSP, indicato con DS, e il processore RISC, indicato con RI. Entrambi i bus accedono attraverso un dispositivo di interfaccia IME agli elementi di memoria esterni F ed R, rispettivamente una memoria FLASH e una memoria RAM.
Al bus BR sono attestate diverse periferiche SL1. SLn, atte a svolgere le normali funzioni proprie di un sistema multi-processore evoluto, quali UART, interfaccia display, interfaccia tastiera, buzzer, ecc., e una memoria locale MR, per la gestione dei dati temporanei.
Analogamente, al bus BD è attestata una memoria locale MD.
Durante il normale funzionamento, su entrambi i bus possono essere avanzate richieste di accesso alle memorie esterne F ed R. In caso di richieste simultanee, uno ed uno solo dei due bus viene abilitato dal RISC mediante un’assegnazione di priorità effettuata tramite un filo FP. Se la priorità è assegnata ai DSP, questi impegna tramite l'interfaccia IME un bus BE, attestato alle memorie esterne F ed R, ed effettua tramite questo il necessario trasferimento di dati.
Per realizzare il procedimento dell'invenzione, all'interno dell'interfaccia IME è posto un contatore programmabile, che può essere presettato dinamicamente, tramite il bus BR sotto il controllo del RISC, ad un valore ottimale per lo svolgimento del compito assegnato al DSP in quel momento. Quando il DSP assume il controllo del bus, il valore impostato nel contatore viene decrementato ad ogni transazione di accesso agli elementi di memoria esterni e, quando raggiunge il valore zero, il controllo del sistema viene riassegnato al bus BR e quindi a! RISC,
Questa procedura si ripete per tutti i passi successivi con un valore iniziale, impostato nel contatore dal RISC, eventualmente diverso da quello precedente, in modo da ottimizzare i tempi di elaborazione concessi al DSP in vista del compito assegnatogli.
L’interfaccia IME è rappresentata con maggiori dettagli in fig. 2.
Essa comprende una logica combinatoria LC, a cui accedono i bus BD, BR e BE, una macchina a stati finiti FSM, che gestisce le priorità degli accessi, e un contatore C, presettabile dinamicamente tramite il bus BR.
La macchina a stati finiti FSM, quando riscontra attraverso un bus FL che il DSP ha degli accessi al bus BE attraverso LC, decrementa attraverso il bus FC il valore impostato nel contatore C di un'unità per ogni transazione. Quando C raggiunge il valore zero, anche se la priorità più alta compete al DSP, il bus BE viene forzatamente assegnato al RISC, che riprende il controllo delle operazioni. Questa azione viene esercitata mediante la logica LC, la quale consente la connessione in modo mutuamente esclusivo del bus BD o BR con il bus esterno BE, sulla base del segnale che FSM genera sul bus FL. La macchina FSM consente che queste operazioni in LC avvengano nella dovuta sequenza, sulla base dei comandi in arrivo su BD o BR.
E' evidente che quanto descritto è stato dato a titolo di esempio non limitativo. Varianti e modifiche sono possibili- senza per questo uscire dall'ambito di protezione delle rivendicazioni.

Claims (6)

  1. Rivendicazioni 1. Procedimento per l'arbitrio di processi concorrenti in sistemi multi-processore, comprendenti un processore principale (RI), un processore secondario (DS), memorie esterne condivise (F, R) ed altri dispositivi (MD, MR, SL1. SLn), in cui all'avvio del sistema il processore principale (RI) carica.da una memoria esterna (F) un-insieme di istruzioni costituenti il sistema operativo, deputato a gestire ì compiti affidati agli altri dispositivi del sistema, e le informazioni per effettuare l'arbitrio dei processi concorrenti, assegnando le diverse priorità per l'accesso alle memorie esterne condivise (F, R), caratterizzato dal fatto che, prima di assegnare la priorità al processore secondario (DS), il processore principale (RI) fissa il numero di transazioni di accesso alle memorie esterne (R, F) che il processore secondario (DS) stesso può eseguire prima di restituire il controllo al processore principale (RI), numero di transazioni che viene regolarmente variato ad ogni ciclo fino al raggiungimento di un valore prefissato, in modo da determinare la fine forzosa del compito svolto da! processore secondario (DS).
  2. 2. Procedimento come nella rivendicazione 1 , caratterizzato dal fatto che ad ogni ciclo, sulla base dell'insieme di istruzioni caricate all'inizio, il processore principale (RI) assegna il numero di transazioni che il processore secondario (DS) può effettuare.
  3. 3. Procedimento come nella rivendicazione 1, caratterizzato dal fatto che l'insieme di istruzioni iniziale, in cui è contenuto il numero di transazioni di accesso alle memorie esterne (R, F) che. il processore secondario (DS) può eseguire prima di restituire il controllo al processore principale (RI), è periodicamente aggiornabile.
  4. 4. Apparecchiatura atta a realizzare il procedimento delle rivendicazioni precedenti, in cui un primo e un secondo bus (BD, BR) sono dedicati ai processore principale (RI) e al processore secondario (DS) e accedono attraverso un dispositivo di interfaccia (IME) e un terzo bus esterno (BE) a dette memorie esterne (F, R), per l'accesso alle quali possono essere avanzate richieste simultanee, caratterizzato dal fatto che il primo o il secondo bus (BD, BR) viene abilitato dal processore principale (RI) mediante un’assegnazione di priorità effettuata tramite un filo (FP) che comanda detto dispositivo di interfaccia (IME), in cui è posto un contatore programmabile (C), che può essere presettato dinamicamente, tramite detto secondo bus (BR) sotto il controllo del processore principale (RI), ad un valore ottimale per lo svolgimento del compito assegnato al processore secondario (DS) in quel momento, detto valore essendo aggiornato ad ogni transazione del processore secondario (DS), fino al raggiungimento di un valore prefissato, quando il controllo del sistema viene riassegnato al secondo bus (BR) e quindi al processore principale (Ri).
  5. 5. Apparecchiatura come nella rivendicazione 4, caratterizzato dal fatto che detto dispositivo di interfaccia (IME) comprende una logica combinatoria (LC), a cui accedono detti primo, secondo e terzo bus (BD, BR, BE), una macchina a stati finiti (FSM), che gestisce le priorità degli accessi, e detto contatore (C), presettabile dinamicamente tramite detto secondo bus (BR), detta macchina a stati finiti (FSM), quando riscontra attraverso un quarto bus (FL) che il processore secondario (DS) ha degli accessi al terzo bus (BE) attraverso la logica combinatoria (LC), varia attraverso un quinto bus (FC) il valore impostato nel contatore (C) ad ogni transazione fino al raggiungimento del valore prefissato, quando il secondo bus (BE) viene forzatamente assegnato al processore principale (RI) mediante la logica combinatoria (LC).
  6. 6. Apparecchiatura come nella rivendicazione 5, caratterizzato dal fatto che detta logica combinatoria (LC) consente la connessione in modo mutuamente esclusivo del primo o del secondo bus (BD, BR) con il terzo bus esterno (BE), sulla base del segnale che la macchina a stati finiti (FSM) genera sul quarto bus (FL), sulla base dei comandi in arrivo sul primo o sul secondo bus (BD, BR).
IT2000TO000643A 2000-06-29 2000-06-29 Procedimento e apparecchiuatura per l'arbitrio di processi concorrenti in sistemi multiprocessore. IT1320466B1 (it)

Priority Applications (2)

Application Number Priority Date Filing Date Title
IT2000TO000643A IT1320466B1 (it) 2000-06-29 2000-06-29 Procedimento e apparecchiuatura per l'arbitrio di processi concorrenti in sistemi multiprocessore.
PCT/EP2001/007193 WO2002001345A2 (en) 2000-06-29 2001-06-25 Method and apparatus for arbitration of concurrent processes in multiprocessor systems

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
IT2000TO000643A IT1320466B1 (it) 2000-06-29 2000-06-29 Procedimento e apparecchiuatura per l'arbitrio di processi concorrenti in sistemi multiprocessore.

Publications (3)

Publication Number Publication Date
ITTO20000643A0 ITTO20000643A0 (it) 2000-06-29
ITTO20000643A1 true ITTO20000643A1 (it) 2001-12-29
IT1320466B1 IT1320466B1 (it) 2003-11-26

Family

ID=11457869

Family Applications (1)

Application Number Title Priority Date Filing Date
IT2000TO000643A IT1320466B1 (it) 2000-06-29 2000-06-29 Procedimento e apparecchiuatura per l'arbitrio di processi concorrenti in sistemi multiprocessore.

Country Status (2)

Country Link
IT (1) IT1320466B1 (it)
WO (1) WO2002001345A2 (it)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8705636B2 (en) 2009-06-04 2014-04-22 Telefonaktiebolaget L M Ericsson (Publ) Passive single-ended line test

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4679166A (en) * 1983-01-17 1987-07-07 Tandy Corporation Co-processor combination
EP0426413B1 (en) * 1989-11-03 1997-05-07 Compaq Computer Corporation Multiprocessor arbitration in single processor arbitration schemes
GB2283596B (en) * 1993-11-01 1998-07-01 Ericsson Ge Mobile Communicat Multiprocessor data memory sharing
US6078338A (en) * 1998-03-11 2000-06-20 Compaq Computer Corporation Accelerated graphics port programmable memory access arbiter

Also Published As

Publication number Publication date
ITTO20000643A0 (it) 2000-06-29
WO2002001345A3 (en) 2003-03-06
WO2002001345A2 (en) 2002-01-03
IT1320466B1 (it) 2003-11-26

Similar Documents

Publication Publication Date Title
US4590555A (en) Apparatus for synchronizing and allocating processes among several processors of a data processing system
TWI522792B (zh) 用以產生要求之設備、用於記憶體要求之方法、及運算系統
US20060136640A1 (en) Apparatus and method for hardware semaphore
US20100125717A1 (en) Synchronization Controller For Multiple Multi-Threaded Processors
EA035760B1 (ru) Структура по сертифицируемой системы управления с постоянными параметрами для приложений жесткого реального времени, критических с точки зрения безопасности, в системах бортового радиоэлектронного оборудования с использованием многоядерных процессоров
KR100615659B1 (ko) 다수의 가상 직접 메모리 액세스 채널들을 지원하기 위한 직접 메모리 액세스 엔진
WO2003010667A1 (en) Resource locking and thread synchronization in a multiprocessor environment
US20110246695A1 (en) Controlling bandwidth reservations method and apparatus
JPS5812611B2 (ja) デ−タテンソウセイギヨホウシキ
CN104866443A (zh) 可中断存储独占
CN105765541A (zh) 用于机动车的控制器
US5649209A (en) Bus coupling information processing system for multiple access to system bus
US20120079306A1 (en) Memory Reconfiguration During System Run-Time
JP2007219816A (ja) マルチプロセッサシステム
US7587543B2 (en) Apparatus, method and computer program product for dynamic arbitration control
US5305442A (en) Generalized hierarchical architecture for bus adapters
JP2015158936A (ja) データ処理装置
ITTO20000643A1 (it) Procedimento e apparecchiuatura per l'arbitrio di processi concorrenti in sistemi multiprocessore.
US8689230B2 (en) Determination of running status of logical processor
CN101044459B (zh) 在具有混合体系结构的系统中使用原子操作来修改信息单元的方法和装置
WO2007039933A1 (ja) 演算処理装置
JP2004192052A (ja) ソフトウェア処理方法およびソフトウェア処理システム
KR960005395B1 (ko) 최소 경합 프로세서 및 시스템 버스 시스템
WO2019188177A1 (ja) 情報処理装置
CA1172381A (en) Process and device for selectively assigning the resources of a control unit to a selected user among a plurality of potential users