RU2005129301A - Способ организации многопроцессорной эвм - Google Patents

Способ организации многопроцессорной эвм Download PDF

Info

Publication number
RU2005129301A
RU2005129301A RU2005129301/09A RU2005129301A RU2005129301A RU 2005129301 A RU2005129301 A RU 2005129301A RU 2005129301/09 A RU2005129301/09 A RU 2005129301/09A RU 2005129301 A RU2005129301 A RU 2005129301A RU 2005129301 A RU2005129301 A RU 2005129301A
Authority
RU
Russia
Prior art keywords
thread
queue
critical interval
semaphore
commands
Prior art date
Application number
RU2005129301/09A
Other languages
English (en)
Other versions
RU2312388C2 (ru
Inventor
Андрей Игоревич Ефимов (BY)
Андрей Игоревич Ефимов
Original Assignee
Андрей Игоревич Ефимов (BY)
Андрей Игоревич Ефимов
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 Андрей Игоревич Ефимов (BY), Андрей Игоревич Ефимов filed Critical Андрей Игоревич Ефимов (BY)
Priority to RU2005129301/09A priority Critical patent/RU2312388C2/ru
Priority to US11/991,331 priority patent/US20090138880A1/en
Priority to PCT/RU2006/000209 priority patent/WO2007035126A1/ru
Publication of RU2005129301A publication Critical patent/RU2005129301A/ru
Application granted granted Critical
Publication of RU2312388C2 publication Critical patent/RU2312388C2/ru

Links

Classifications

    • 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/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0893Caches characterised by their organisation or structure
    • G06F12/0897Caches characterised by their organisation or structure with two or more cache hierarchy levels
    • 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/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/10Address translation
    • 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/461Saving or restoring of program or task context

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Software Systems (AREA)
  • Memory System Of A Hierarchy Structure (AREA)
  • Debugging And Monitoring (AREA)
  • Multi Processors (AREA)

Claims (1)

  1. Способ организации многопроцессорной ЭВМ в виде множества мониторов нитей, множества функциональных исполнительных кластеров и поддерживающего межпроцессную контекстную защиту устройства управления виртуальной памятью, взаимодействующих через поддерживающую приоритетный обмен широкополосную сеть пакетной коммутации, отличающийся тем, что вместо известных сосредоточенных представлений виртуального процессора, требующих перезагрузки совокупности архитектурных регистров физического процессора для исполнения нити в виртуальной памяти процесса-хозяина, используют создаваемое операционной системой не требующее перезагрузки хранимое в системной виртуальной памяти распределенное представление дескриптора нити, размещаемый в первичном кэше данных монитора и связываемый указателями с размещаемым в первичном кэше архитектурных команд монитора текущим буфером команд корень которого включает глобальный для ЭВМ идентификатор нити, определяющий ее принадлежность к создаваемому операционной системой контексту процесса во всех кэшах и в устройстве управления виртуальной памятью ЭВМ, также включает глобальный приоритет, полностью определяющий порядок обслуживания нити монитором, порядок отработки порожденных нитью команд в исполнительных кластерах, устройстве управления памятью, порядок передачи пакетов по сети и частично в сочетании с известными способами оценки частоты обращений порядок замещения элементов представления во всех кэшах, а также включает часть представления архитектурных регистров, которая необходима и достаточна для первичной выборки архитектурных команд и формирования из них транзакций, а остальные части распределенного представления дескриптора нити в соответствии с их функциональным назначением размещают в первичных кэшах исполнительных кластеров и вторичном кэше устройства управления памятью и, используя такое распределенное представление дескриптора нити, параллельно исполняют нити вычислений, единообразно представляющие все последовательные независимые активности, соответствующие созданным операционной системой нитям мультипрограммной смеси, назначаемым программно обработчикам асинхронно выдаваемых программных сигналов и аппаратных прерываний, причем мониторами нитей выполняют первичную выборку архитектурных команд из упорядоченной по приоритетам резидентной очереди активных нитей, формируют содержащие команды и описывающий частичную упорядоченность их исполнения граф информационных зависимостей транзакции в единой для мониторов разной архитектуры форме, которые последовательно выдают через сеть в исполнительные кластеры соответствующего типа, переводят активную нить в резидентную очередь ждущих завершения транзакции и выбирают следующую активную нить, а секвенсорами исполнительных кластеров принимают транзакции и переписывают их команды и граф информационных зависимостей в регистровый файл кластера, переписывают готовые к исполнению команды в упорядоченные по приоритетам резидентные очереди вторичной выборки, выполняют вторичную выборку и передачу готовых команд с подготовленными операндами на вход функциональных исполнительных устройств кластера, выполняют прием исполненных команд и результатов, корректируют по ним граф информационных зависимостей и по результату коррекции либо переписывают появившуюся готовую команду в очередь вторичной выборки либо передают результат завершения транзакции породившему монитору, которым переводят соответствующую нить в очередь готовых с коррекцией корня представления дескриптора нити, причем известное программное управление мультипрограммной смесью с приоритетным вытеснением с грануляцией на уровне отдельной команды реализуют полностью аппаратно за счет откачки элементов распределенного представления дескрипторов длительно неактивных нитей из первичных кэшей по известной технике виртуальной памяти и синхронизации прохождения нитями критических интервалов и связанных с прохождениями ожиданиями и объявлениями событий на основе пяти не требующих программной поддержки аппаратных команд, распределение отрабатываемых как неделимые секвенсорами и устройствами чтения/записи исполнительных кластеров с одной стороны и контроллером вторичного кэша устройства управления памятью с другой, первой из которых создают в первично не кэшируемой памяти структурную переменную - семафор с двумя инициализированными пустыми значениями полями, в которые в динамике помещают указатели размещаемых в контроллере вторичного кэша упорядоченных по приоритетам и порядку поступления очередей ожидания, в первую из которых заносят идентификаторы ожидающих вход в критический интервал нитей, причем в ее голове находится идентификатор единственной находящейся в критическом интервале нити, а в очередь по второму полю заносят идентификаторы ожидающих связанного с критическим интервалом события, вторую команду с первым операндом-семафором и вторым операндом тайм-аутом ожидания используют для ввода нити в критический интервал при пустом значении первого поля семафора либо для ее перевода при непустом значении в состояние ожидания в указываемой первым полем семафора очереди, третью команду с операндом-семафором используют для выхода из критического интервала с удалением идентификатора исполнившей нити из головы очереди по первому полю семафора, причем при непустой скорректированной очереди идентифицируемую ее первым элементом нить вводят в критический интервал, четвертую команду исполняют внутри заданного первым операндом-семафором критического интервала для ожидания события или заданного вторым операндом тайм-аута, причем команду переводят в состояние ожидания в идентифицируемую вторым полем семафора очередь, а критический интервал освобождают с удалением идентификатора исполнившей нити из головы очереди по первому полю семафора, причем при непустой скорректированной очереди идентифицируемую ее первым элементом нить вводят в критический интервал, пятую команду с одним операндом-семафором исполняют для выхода нити из критического интервала с оповещением об этом событии и реализуют таким образом, что при непустой очереди ожидания по второму полю в критический интервал вводят первую нить из этой очереди, а при ее отсутствии в критический интервал вводят либо первую нить из очереди по первому полю либо при ее отсутствии делают критический интервал свободным, причем при завершении второй и четвертой команды по тайм-ауту исполнившую нить не вводят в критический интервал, а просто удаляют из очереди ожидания, а причину завершения по тайм-ауту или по наступлению события в обоих случаях выдают как программно-доступный для анализа результат.
RU2005129301/09A 2005-09-22 2005-09-22 Способ организации многопроцессорной эвм RU2312388C2 (ru)

Priority Applications (3)

Application Number Priority Date Filing Date Title
RU2005129301/09A RU2312388C2 (ru) 2005-09-22 2005-09-22 Способ организации многопроцессорной эвм
US11/991,331 US20090138880A1 (en) 2005-09-22 2006-04-26 Method for organizing a multi-processor computer
PCT/RU2006/000209 WO2007035126A1 (fr) 2005-09-22 2006-04-26 Procede d'organisation d'ordinateurs multiprocesseurs

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
RU2005129301/09A RU2312388C2 (ru) 2005-09-22 2005-09-22 Способ организации многопроцессорной эвм

Publications (2)

Publication Number Publication Date
RU2005129301A true RU2005129301A (ru) 2007-03-27
RU2312388C2 RU2312388C2 (ru) 2007-12-10

Family

ID=37889091

Family Applications (1)

Application Number Title Priority Date Filing Date
RU2005129301/09A RU2312388C2 (ru) 2005-09-22 2005-09-22 Способ организации многопроцессорной эвм

Country Status (3)

Country Link
US (1) US20090138880A1 (ru)
RU (1) RU2312388C2 (ru)
WO (1) WO2007035126A1 (ru)

Families Citing this family (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9052826B2 (en) * 2006-07-28 2015-06-09 Condusiv Technologies Corporation Selecting storage locations for storing data based on storage location attributes and data usage statistics
US7870128B2 (en) * 2006-07-28 2011-01-11 Diskeeper Corporation Assigning data for storage based on speed with which data may be retrieved
US20090132621A1 (en) * 2006-07-28 2009-05-21 Craig Jensen Selecting storage location for file storage based on storage longevity and speed
US9015720B2 (en) * 2008-04-30 2015-04-21 Advanced Micro Devices, Inc. Efficient state transition among multiple programs on multi-threaded processors by executing cache priming program
US8640133B2 (en) * 2008-12-19 2014-01-28 International Business Machines Corporation Equal duration and equal fetch operations sub-context switch interval based fetch operation scheduling utilizing fetch error rate based logic for switching between plurality of sorting algorithms
JP5444477B2 (ja) * 2009-12-16 2014-03-19 テレフオンアクチーボラゲット エル エム エリクソン(パブル) キャッシングのための方法、サーバ、コンピュータプログラム及びコンピュータプログラム製品
RU2547618C2 (ru) * 2013-05-21 2015-04-10 Закрытое акционерное общество Научно-внедренческая компания "Внедрение информационных систем и технологий" Способ организации арифметического ускорителя для решения больших систем линейных уравнений
US9417876B2 (en) * 2014-03-27 2016-08-16 International Business Machines Corporation Thread context restoration in a multithreading computer system
RU2571575C1 (ru) * 2014-06-20 2015-12-20 Александр Сергеевич Зубачев Общественный компьютер
US10445009B2 (en) * 2017-06-30 2019-10-15 Intel Corporation Systems and methods of controlling memory footprint

Family Cites Families (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5353418A (en) * 1989-05-26 1994-10-04 Massachusetts Institute Of Technology System storing thread descriptor identifying one of plural threads of computation in storage only when all data for operating on thread is ready and independently of resultant imperative processing of thread
US6212542B1 (en) * 1996-12-16 2001-04-03 International Business Machines Corporation Method and system for executing a program within a multiscalar processor by processing linked thread descriptors
JP2001518218A (ja) * 1997-03-21 2001-10-09 カナル プラス ソシエテ アノニム コンピュータメモリ編成
US6240440B1 (en) * 1997-06-30 2001-05-29 Sun Microsystems Incorporated Method and apparatus for implementing virtual threads
US6408325B1 (en) * 1998-05-06 2002-06-18 Sun Microsystems, Inc. Context switching technique for processors with large register files
US6738846B1 (en) * 1999-02-23 2004-05-18 Sun Microsystems, Inc. Cooperative processing of tasks in a multi-threaded computing system
US7234139B1 (en) * 2000-11-24 2007-06-19 Catharon Productions, Inc. Computer multi-tasking via virtual threading using an interpreter
US7167916B2 (en) * 2002-08-30 2007-01-23 Unisys Corporation Computer OS dispatcher operation with virtual switching queue and IP queues
US20050066302A1 (en) * 2003-09-22 2005-03-24 Codito Technologies Private Limited Method and system for minimizing thread switching overheads and memory usage in multithreaded processing using floating threads
US7653904B2 (en) * 2003-09-26 2010-01-26 Intel Corporation System for forming a critical update loop to continuously reload active thread state from a register storing thread state until another active thread is detected
US20050251662A1 (en) * 2004-04-22 2005-11-10 Samra Nicholas G Secondary register file mechanism for virtual multithreading
US8607235B2 (en) * 2004-12-30 2013-12-10 Intel Corporation Mechanism to schedule threads on OS-sequestered sequencers without operating system intervention
US20070055839A1 (en) * 2005-09-06 2007-03-08 Alcatel Processing operation information transfer control systems and methods
US8321849B2 (en) * 2007-01-26 2012-11-27 Nvidia Corporation Virtual architecture and instruction set for parallel thread computing
US8473964B2 (en) * 2008-09-30 2013-06-25 Microsoft Corporation Transparent user mode scheduling on traditional threading systems

Also Published As

Publication number Publication date
US20090138880A1 (en) 2009-05-28
WO2007035126A1 (fr) 2007-03-29
RU2312388C2 (ru) 2007-12-10

Similar Documents

Publication Publication Date Title
RU2005129301A (ru) Способ организации многопроцессорной эвм
US7020871B2 (en) Breakpoint method for parallel hardware threads in multithreaded processor
EP1839146B1 (en) Mechanism to schedule threads on os-sequestered without operating system intervention
US8539485B2 (en) Polling using reservation mechanism
US9830158B2 (en) Speculative execution and rollback
US5887166A (en) Method and system for constructing a program including a navigation instruction
US6212542B1 (en) Method and system for executing a program within a multiscalar processor by processing linked thread descriptors
US5961639A (en) Processor and method for dynamically inserting auxiliary instructions within an instruction stream during execution
US6671827B2 (en) Journaling for parallel hardware threads in multithreaded processor
US5913925A (en) Method and system for constructing a program including out-of-order threads and processor and method for executing threads out-of-order
US5420991A (en) Apparatus and method for maintaining processing consistency in a computer system having multiple processors
US5838988A (en) Computer product for precise architectural update in an out-of-order processor
US20100223611A1 (en) Reducing the latency of virtual interrupt delivery in virtual machines
US20020038332A1 (en) Techniques for an interrupt free operating system
US20080040524A1 (en) System management mode using transactional memory
CN110659115A (zh) 具有硬件辅助任务调度的多线程处理器核
Keckler et al. Concurrent event handling through multithreading
KR100694212B1 (ko) 다중-프로세서 구조에서 데이터 처리 수행성능을증가시키기 위한 분산 운영 시스템 및 그 방법
US7203821B2 (en) Method and apparatus to handle window management instructions without post serialization in an out of order multi-issue processor supporting multiple strands
EP2630577B1 (en) Exception control in a multiprocessor system
GB2321544A (en) Concurrently executing multiple threads containing data dependent instructions
US20080065804A1 (en) Event handling for architectural events at high privilege levels
Hong Hardware-based Synchronization Support for Shared Accesses in Multi-core Architectures
JPH10187464A (ja) マルチスカラ・プログラムを作成する方法およびシステム
US20040128488A1 (en) Strand switching algorithm to avoid strand starvation

Legal Events

Date Code Title Description
MM4A The patent is invalid due to non-payment of fees

Effective date: 20120923