Thread suspension system and method

   
   

In processor architectures that support allocation of register windows to called procedures, functions or methods, register windowing mechanisms can be used to facilitate suspension of a mutator thread (or mutator threads) while imposing negligible overhead on the mutator computation during periods when thread suspension is not requested. Reduced Instruction Set Computer-(RISC)-oriented processor architectures often employ register windows (typically partially-overlapped register windows) and can therefore benefit from the technique. Variations can be employed even in processors (RISC or otherwise) that do not employ register windowing as long as the processor (by itself or in cooperation with software) provides facilities for allocating and reclaiming resources in correspondence with calls to, and returns from, procedures, functions or methods. Mechanisms are provided to spill values from the fixed set of resources to a secondary store and to fill values from the secondary store into the fixed set in correspondence with function call triggered overflows and function return triggered underflows. In some configurations, modified spill and/or fill mechanism(s) are used to suspend threads at safe points coinciding with call and/or return sites. Because the modified spill and/or fill mechanism(s) impose negligible overhead when not employed and can be engaged in response to an event (e.g., a start garbage collection event), safe points can be defined at call and/or return points throughout mutator code to reduce the latency between the event and suspension of threads.

Nelle architetture del processor che sostengono la ripartizione delle finestre del registro alle procedure di assistenza tecnica, alle funzioni o ai metodi, i meccanismi di windowing del registro possono essere usati per facilitare la sospensione di un filetto di mutator (o dei filetti di mutator) mentre spese generali trascurabili d'imposizione sul calcolo di mutator durante i periodi in cui la sospensione del filetto non è chiesta. Le architetture Calcolatore-(RISC)-orientate ridotte del processor dell'insieme delle istruzioni spesso impiegano le finestre del registro (finestre tipicamente parziale-coincise del registro) e possono quindi trarre beneficio dalla tecnica. Le variazioni possono essere impiegate anche in processor (RISC o al contrario) che non impiega finchè il windowing del registro il processor (da sè o in collaborazione con software) fornisce le facilità per lo stanziamento e la ripresa delle risorse nella corrispondenza le chiamate a e rinvia da, procedure, funzioni o metodi. I meccanismi sono forniti ai valori di caduta dall'insieme fisso delle risorse ad un deposito secondario ed ai valori del materiale di riempimento dal deposito secondario in serie fissa nella corrispondenza i trabocchi innescati di chiamata di funzione ed i underflows innescati ritorno di funzione. In alcune configurazioni, il mechanism(s) modificato del materiale di riempimento e/o di caduta è usato per sospendere i filetti ai punti sicuri che coincidono con i luoghi di ritorno e/o di chiamata. Poiché il mechanism(s) modificato del materiale di riempimento e/o di caduta impone le spese generali trascurabili una volta non impiegato e può essere agganciato in risposta ad un evento (per esempio, un evento dell'accumulazione dell'immondizia di inizio), i punti sicuri possono essere definiti ai punti di ritorno e/o di chiamata durante il codice di mutator per ridurre lo stato latente fra l'evento e la sospensione dei filetti.

 
Web www.patentalert.com

< Method and apparatus for token triggered multithreading

< Reading a selected register in a series of computational units forming a processing pipeline upon expiration of a time delay

> Method and apparatus to concurrently boot multiple processors in a non-uniform-memory-access machine

> Tamper resistant software encoding

~ 00155