RU2005129301A - Способ организации многопроцессорной эвм - Google Patents
Способ организации многопроцессорной эвм Download PDFInfo
- 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
Links
- 238000000034 method Methods 0.000 title claims 6
- 239000000203 mixture Substances 0.000 claims 2
- 230000005540 biological transmission Effects 0.000 claims 1
- 230000015572 biosynthetic process Effects 0.000 claims 1
- 230000000694 effects Effects 0.000 claims 1
- 238000001125 extrusion Methods 0.000 claims 1
- 230000003179 granulation Effects 0.000 claims 1
- 238000005469 granulation Methods 0.000 claims 1
- 239000007788 liquid Substances 0.000 claims 1
- 238000005086 pumping Methods 0.000 claims 1
- 238000005070 sampling Methods 0.000 claims 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/0802—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
- G06F12/0893—Caches characterised by their organisation or structure
- G06F12/0897—Caches characterised by their organisation or structure with two or more cache hierarchy levels
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/10—Address translation
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/46—Multiprogramming arrangements
- G06F9/461—Saving 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)
- Способ организации многопроцессорной ЭВМ в виде множества мониторов нитей, множества функциональных исполнительных кластеров и поддерживающего межпроцессную контекстную защиту устройства управления виртуальной памятью, взаимодействующих через поддерживающую приоритетный обмен широкополосную сеть пакетной коммутации, отличающийся тем, что вместо известных сосредоточенных представлений виртуального процессора, требующих перезагрузки совокупности архитектурных регистров физического процессора для исполнения нити в виртуальной памяти процесса-хозяина, используют создаваемое операционной системой не требующее перезагрузки хранимое в системной виртуальной памяти распределенное представление дескриптора нити, размещаемый в первичном кэше данных монитора и связываемый указателями с размещаемым в первичном кэше архитектурных команд монитора текущим буфером команд корень которого включает глобальный для ЭВМ идентификатор нити, определяющий ее принадлежность к создаваемому операционной системой контексту процесса во всех кэшах и в устройстве управления виртуальной памятью ЭВМ, также включает глобальный приоритет, полностью определяющий порядок обслуживания нити монитором, порядок отработки порожденных нитью команд в исполнительных кластерах, устройстве управления памятью, порядок передачи пакетов по сети и частично в сочетании с известными способами оценки частоты обращений порядок замещения элементов представления во всех кэшах, а также включает часть представления архитектурных регистров, которая необходима и достаточна для первичной выборки архитектурных команд и формирования из них транзакций, а остальные части распределенного представления дескриптора нити в соответствии с их функциональным назначением размещают в первичных кэшах исполнительных кластеров и вторичном кэше устройства управления памятью и, используя такое распределенное представление дескриптора нити, параллельно исполняют нити вычислений, единообразно представляющие все последовательные независимые активности, соответствующие созданным операционной системой нитям мультипрограммной смеси, назначаемым программно обработчикам асинхронно выдаваемых программных сигналов и аппаратных прерываний, причем мониторами нитей выполняют первичную выборку архитектурных команд из упорядоченной по приоритетам резидентной очереди активных нитей, формируют содержащие команды и описывающий частичную упорядоченность их исполнения граф информационных зависимостей транзакции в единой для мониторов разной архитектуры форме, которые последовательно выдают через сеть в исполнительные кластеры соответствующего типа, переводят активную нить в резидентную очередь ждущих завершения транзакции и выбирают следующую активную нить, а секвенсорами исполнительных кластеров принимают транзакции и переписывают их команды и граф информационных зависимостей в регистровый файл кластера, переписывают готовые к исполнению команды в упорядоченные по приоритетам резидентные очереди вторичной выборки, выполняют вторичную выборку и передачу готовых команд с подготовленными операндами на вход функциональных исполнительных устройств кластера, выполняют прием исполненных команд и результатов, корректируют по ним граф информационных зависимостей и по результату коррекции либо переписывают появившуюся готовую команду в очередь вторичной выборки либо передают результат завершения транзакции породившему монитору, которым переводят соответствующую нить в очередь готовых с коррекцией корня представления дескриптора нити, причем известное программное управление мультипрограммной смесью с приоритетным вытеснением с грануляцией на уровне отдельной команды реализуют полностью аппаратно за счет откачки элементов распределенного представления дескрипторов длительно неактивных нитей из первичных кэшей по известной технике виртуальной памяти и синхронизации прохождения нитями критических интервалов и связанных с прохождениями ожиданиями и объявлениями событий на основе пяти не требующих программной поддержки аппаратных команд, распределение отрабатываемых как неделимые секвенсорами и устройствами чтения/записи исполнительных кластеров с одной стороны и контроллером вторичного кэша устройства управления памятью с другой, первой из которых создают в первично не кэшируемой памяти структурную переменную - семафор с двумя инициализированными пустыми значениями полями, в которые в динамике помещают указатели размещаемых в контроллере вторичного кэша упорядоченных по приоритетам и порядку поступления очередей ожидания, в первую из которых заносят идентификаторы ожидающих вход в критический интервал нитей, причем в ее голове находится идентификатор единственной находящейся в критическом интервале нити, а в очередь по второму полю заносят идентификаторы ожидающих связанного с критическим интервалом события, вторую команду с первым операндом-семафором и вторым операндом тайм-аутом ожидания используют для ввода нити в критический интервал при пустом значении первого поля семафора либо для ее перевода при непустом значении в состояние ожидания в указываемой первым полем семафора очереди, третью команду с операндом-семафором используют для выхода из критического интервала с удалением идентификатора исполнившей нити из головы очереди по первому полю семафора, причем при непустой скорректированной очереди идентифицируемую ее первым элементом нить вводят в критический интервал, четвертую команду исполняют внутри заданного первым операндом-семафором критического интервала для ожидания события или заданного вторым операндом тайм-аута, причем команду переводят в состояние ожидания в идентифицируемую вторым полем семафора очередь, а критический интервал освобождают с удалением идентификатора исполнившей нити из головы очереди по первому полю семафора, причем при непустой скорректированной очереди идентифицируемую ее первым элементом нить вводят в критический интервал, пятую команду с одним операндом-семафором исполняют для выхода нити из критического интервала с оповещением об этом событии и реализуют таким образом, что при непустой очереди ожидания по второму полю в критический интервал вводят первую нить из этой очереди, а при ее отсутствии в критический интервал вводят либо первую нить из очереди по первому полю либо при ее отсутствии делают критический интервал свободным, причем при завершении второй и четвертой команды по тайм-ауту исполнившую нить не вводят в критический интервал, а просто удаляют из очереди ожидания, а причину завершения по тайм-ауту или по наступлению события в обоих случаях выдают как программно-доступный для анализа результат.
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)
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)
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 |
-
2005
- 2005-09-22 RU RU2005129301/09A patent/RU2312388C2/ru not_active IP Right Cessation
-
2006
- 2006-04-26 WO PCT/RU2006/000209 patent/WO2007035126A1/ru active Application Filing
- 2006-04-26 US US11/991,331 patent/US20090138880A1/en not_active Abandoned
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 |