RU2017103951A - Эффективная маршрутизация прерываний для многопоточного процесса - Google Patents
Эффективная маршрутизация прерываний для многопоточного процесса Download PDFInfo
- Publication number
- RU2017103951A RU2017103951A RU2017103951A RU2017103951A RU2017103951A RU 2017103951 A RU2017103951 A RU 2017103951A RU 2017103951 A RU2017103951 A RU 2017103951A RU 2017103951 A RU2017103951 A RU 2017103951A RU 2017103951 A RU2017103951 A RU 2017103951A
- Authority
- RU
- Russia
- Prior art keywords
- guest
- stream
- processing
- interrupt
- activated
- Prior art date
Links
- 238000000034 method Methods 0.000 title claims 9
- 238000001514 detection method Methods 0.000 claims 14
- 238000004590 computer program Methods 0.000 claims 7
- 230000003111 delayed effect Effects 0.000 claims 4
- 230000000977 initiatory effect Effects 0.000 claims 3
- 239000011159 matrix material Substances 0.000 claims 3
Classifications
-
- 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/44—Arrangements for executing specific programs
- G06F9/455—Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
-
- 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/44—Arrangements for executing specific programs
- G06F9/455—Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
- G06F9/45533—Hypervisors; Virtual machine monitors
- G06F9/45558—Hypervisor-specific management and integration aspects
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/14—Handling requests for interconnection or transfer
- G06F13/20—Handling requests for interconnection or transfer for access to input/output bus
- G06F13/24—Handling requests for interconnection or transfer for access to input/output bus using interrupt
- G06F13/26—Handling requests for interconnection or transfer for access to input/output bus using interrupt with priority control
-
- 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
-
- 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/48—Program initiating; Program switching, e.g. by interrupt
-
- 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/48—Program initiating; Program switching, e.g. by interrupt
- G06F9/4806—Task transfer initiation or dispatching
- G06F9/4812—Task transfer initiation or dispatching by interrupt, e.g. masked
-
- 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/44—Arrangements for executing specific programs
- G06F9/455—Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
- G06F9/45533—Hypervisors; Virtual machine monitors
- G06F9/45558—Hypervisor-specific management and integration aspects
- G06F2009/45579—I/O management, e.g. providing access to device drivers or storage
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Software Systems (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Bus Control (AREA)
- Debugging And Monitoring (AREA)
- Hardware Redundancy (AREA)
Claims (33)
1. Способ реализации измененной приоритетной маршрутизации прерываний ввода/вывода (I/O), содержащий
выявление посредством процессора того, является ли прерывание I/O отложенным для ядра,
выявление посредством процессора того, является ли какой-либо из нескольких гостевых потоков ядра активированным для обработки гостевым потоком прерывания в ответ на выявление того, что прерывание I/O является отложенным,
выявление посредством процессора того, находится ли по меньшей мере один из нескольких гостевых потоков, активированных для обработки гостевым потоком, в состоянии ожидания, и
маршрутизацию посредством процессора прерывания I/O к гостевому потоку, активированному для обработки гостевым потоком и находящемуся в состоянии ожидания, на основании выявления того, что по меньшей мере один из нескольких гостевых потоков, активированных для обработки гостевым потоком, находится в состоянии ожидания.
2. Способ по п. 1, причем прерывание I/O обозначают в матрице отложенных прерываний как отложенное.
3. Способ по п. 1, причем бит состояния и бит управления для каждого гостевого потока конфигурируют для активирования этого потока для обработки гостевым потоком прерывания.
4. Способ по п. 1, кроме того, включающий в себя маршрутизацию прерывания I/O к одному из нескольких гостевых потоков, активированных для обработки гостевым потоком, на основании выявления того, что ни один из нескольких гостевых потоков, активированных для обработки гостевым потоком, не находится в состоянии ожидания.
5. Способ по п. 1, причем в ответ на выявление того, что более чем один из нескольких гостевых потоков, активированных для обработки гостевым потоком, находятся в состоянии ожидания, для выбора гостевого потока используют алгоритм маршрутизации.
6. Способ по п. 1, кроме того, включающий в себя инициирование задержки маршрутизации прерывания I/O к хосту, на основании выявления того, что ни один из нескольких гостевых потоков не является активированным для обработки гостевым потоком.
7. Способ по п. 6, кроме того, включающий в себя выявление после инициирования задержки того, является ли какой-либо из нескольких гостевых потоков ядра активированным для обработки гостевым потоком.
8. Система для реализации измененной приоритетной маршрутизации прерываний ввода/вывода (I/O), содержащая процессор и память,
причем процессор сконфигурирован для:
выявления того, является ли прерывание I/O отложенным для ядра,
выявления того, является ли какой-либо из нескольких гостевых потоков ядра активированным для обработки гостевым потоком прерывания на основании выявления того, что прерывание I/O является отложенным,
выявления того, находится ли по меньшей мере один из нескольких гостевых потоков, активированных для обработки гостевым потоком, в состоянии ожидания, и
маршрутизации прерывания I/O к гостевому потоку, активированному для обработки гостевым потоком и находящемуся в состоянии ожидания, на основании выявления того, что по меньшей мере один из нескольких гостевых потоков, активированных для обработки гостевым потоком, находится в состоянии ожидания.
9. Система по п. 8, причем прерывание I/O обозначено в матрице отложенных прерываний как отложенное.
10. Система по п. 8, причем бит состояния и бит управления для каждого гостевого потока является сконфигурированными для активирования этого потока для обработки гостевым потоком прерывания.
11. Система по п. 8, причем процессор, кроме того, сконфигурирован для маршрутизации прерывания I/O к одному из нескольких гостевых потоков, активированных для обработки гостевым потоком, на основании выявления того, что ни один из нескольких гостевых потоков, активированных для обработки гостевым потоком, не находится в состоянии ожидания.
12. Система по п. 8, причем в ответ на выявление того, что более чем один из нескольких гостевых потоков, активированных для обработки гостевым потоком, находятся в состоянии ожидания, для выбора гостевого потока используется алгоритм маршрутизации.
13. Система по п. 8, причем процессор, кроме того, сконфигурирован для инициирования задержки маршрутизации прерывания I/O к хосту на основании выявления того, что ни один из нескольких гостевых потоков не является активированным для обработки гостевым потоком.
14. Система по п. 13, причем процессор, кроме того, сконфигурирован для выявления после инициирования задержки того, является ли какой-либо из нескольких гостевых потоков ядра активированным для обработки гостевым потоком.
15. Компьютерный программный продукт, причем компьютерный программный продукт содержит машиночитаемый информационный носитель, имеющий сохраненные на нем программные команды, реализующие измененную приоритетную маршрутизацию прерываний ввода/вывода (I/O), причем программные команды являются исполняемыми посредством процессора для принуждения процессора к:
выявлению того, является ли прерывание I/O отложенным для ядра,
выявлению того, является ли какой-либо из нескольких гостевых потоков ядра активированным для обработки гостевым потоком прерывания на основании выявления того, что прерывание I/O является отложенным,
выявлению того, находится ли по меньшей мере один из нескольких гостевых потоков, активированных для обработки гостевым потоком, в состоянии ожидания, и
маршрутизации прерывания I/O к гостевому потоку, активированному для обработки гостевым потоком и находящемуся в состоянии ожидания, на основании выявления того, что по меньшей мере один из нескольких гостевых потоков, активированных для обработки гостевым потоком, находится в состоянии ожидания.
16. Компьютерный программный продукт по п. 15, причем прерывание I/O обозначено в матрице отложенных прерываний как отложенное.
17. Компьютерный программный продукт по п. 15, причем бит состояния и бит управления для каждого гостевого потока является сконфигурированными для обработки гостевым потоком прерывания.
18. Компьютерный программный продукт по п. 15, причем программные команды являются также исполняемыми посредством процессора для принуждения процессора к маршрутизации прерывания I/O к одному из нескольких гостевых потоков, активированных для обработки гостевым потоком, на основании выявления того, что ни один из нескольких гостевых потоков, активированных для обработки гостевым потоком, не находится в состоянии ожидания.
19. Компьютерный программный продукт по п. 15, причем в ответ на выявление того, что более чем один из нескольких гостевых потоков, активированных для обработки гостевым потоком, находятся в состоянии ожидания, для выбора гостевого потока используется алгоритм маршрутизации.
20. Компьютерный программный продукт по п. 15, причем программные команды являются также исполняемыми посредством процессора для принуждения процессора к инициированию задержки маршрутизации прерывания I/O к хосту на основании выявления того, что ни один из нескольких гостевых потоков не является активированным для обработки гостевым потоком.
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US14/509,533 US9760511B2 (en) | 2014-10-08 | 2014-10-08 | Efficient interruption routing for a multithreaded processor |
US14/509,533 | 2014-10-08 | ||
PCT/EP2015/070982 WO2016055237A1 (en) | 2014-10-08 | 2015-09-14 | Efficient interruption routing for a multithreaded processor |
Publications (3)
Publication Number | Publication Date |
---|---|
RU2017103951A3 RU2017103951A3 (ru) | 2018-11-12 |
RU2017103951A true RU2017103951A (ru) | 2018-11-12 |
RU2678513C2 RU2678513C2 (ru) | 2019-01-29 |
Family
ID=54147170
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
RU2017103951A RU2678513C2 (ru) | 2014-10-08 | 2015-09-14 | Эффективная маршрутизация прерываний для многопоточного процесса |
Country Status (14)
Country | Link |
---|---|
US (1) | US9760511B2 (ru) |
EP (1) | EP3204853B1 (ru) |
JP (1) | JP6537599B2 (ru) |
KR (1) | KR101884579B1 (ru) |
CN (1) | CN107111578B (ru) |
AU (1) | AU2015330266B2 (ru) |
BR (1) | BR112017007442B1 (ru) |
CA (1) | CA2961690C (ru) |
MX (1) | MX2017004530A (ru) |
RU (1) | RU2678513C2 (ru) |
SG (1) | SG11201701614WA (ru) |
TW (1) | TWI633490B (ru) |
WO (1) | WO2016055237A1 (ru) |
ZA (1) | ZA201703081B (ru) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
RU2749649C2 (ru) * | 2018-12-21 | 2021-06-16 | Общество С Ограниченной Ответственностью "Яндекс" | Способ и система для планирования обработки операций ввода/вывода |
Families Citing this family (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9898348B2 (en) | 2014-10-22 | 2018-02-20 | International Business Machines Corporation | Resource mapping in multi-threaded central processor units |
US9836323B1 (en) * | 2017-02-24 | 2017-12-05 | Red Hat, Inc. | Scalable hypervisor scheduling of polling tasks |
EP3924818A1 (en) | 2019-02-14 | 2021-12-22 | International Business Machines Corporation | Directed interrupt for multilevel virtualization |
EP3924821A1 (en) * | 2019-02-14 | 2021-12-22 | International Business Machines Corporation | Directed interrupt virtualization with running indicator |
TWI759677B (zh) | 2019-02-14 | 2022-04-01 | 美商萬國商業機器公司 | 用於具有回退之經引導中斷虛擬化之方法、電腦系統及電腦程式產品 |
US10942875B2 (en) * | 2019-08-02 | 2021-03-09 | EMC IP Holding Company, LLC | System and method for regulating host IOs and internal background operations in a storage system |
Family Cites Families (27)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US4779188A (en) * | 1983-12-14 | 1988-10-18 | International Business Machines Corporation | Selective guest system purge control |
JPH0792761B2 (ja) * | 1985-07-31 | 1995-10-09 | 株式会社日立製作所 | 仮想計算機システムの入出力制御方法 |
US5155809A (en) | 1989-05-17 | 1992-10-13 | International Business Machines Corp. | Uncoupling a central processing unit from its associated hardware for interaction with data handling apparatus alien to the operating system controlling said unit and hardware |
US5222215A (en) * | 1991-08-29 | 1993-06-22 | International Business Machines Corporation | Cpu expansive gradation of i/o interruption subclass recognition |
US5701501A (en) * | 1993-02-26 | 1997-12-23 | Intel Corporation | Apparatus and method for executing an atomic instruction |
CN1104687C (zh) * | 1996-01-31 | 2003-04-02 | 伊普思龙网络公司 | 传输网络中在包路由选择和包交换之间动态转换的改进方法及设备 |
US5894583A (en) * | 1996-04-09 | 1999-04-13 | International Business Machines Corporation | Variable timeout method for improving missing-interrupt-handler operations in an environment having I/O devices shared by one or more systems |
US6954922B2 (en) * | 1998-04-29 | 2005-10-11 | Sun Microsystems, Inc. | Method apparatus and article of manufacture for time profiling multi-threaded programs |
US6754690B2 (en) * | 1999-09-16 | 2004-06-22 | Honeywell, Inc. | Method for time partitioned application scheduling in a computer operating system |
US7251814B2 (en) * | 2001-08-24 | 2007-07-31 | International Business Machines Corporation | Yield on multithreaded processors |
US7000051B2 (en) * | 2003-03-31 | 2006-02-14 | International Business Machines Corporation | Apparatus and method for virtualizing interrupts in a logically partitioned computer system |
US7213093B2 (en) * | 2003-06-27 | 2007-05-01 | Intel Corporation | Queued locks using monitor-memory wait |
US7493621B2 (en) * | 2003-12-18 | 2009-02-17 | International Business Machines Corporation | Context switch data prefetching in multithreaded computer |
US7213125B2 (en) * | 2004-07-31 | 2007-05-01 | Hewlett-Packard Development Company, L.P. | Method for patching virtually aliased pages by a virtual-machine monitor |
US20060150010A1 (en) * | 2005-01-03 | 2006-07-06 | Stiffler Jack J | Memory-controller-embedded apparatus and procedure for achieving system-directed checkpointing without operating-system kernel support |
US7984281B2 (en) * | 2005-10-18 | 2011-07-19 | Qualcomm Incorporated | Shared interrupt controller for a multi-threaded processor |
US7624257B2 (en) * | 2005-11-30 | 2009-11-24 | International Business Machines Corporation | Digital data processing apparatus having hardware multithreading support including a register set reserved for special class threads |
WO2007092528A2 (en) * | 2006-02-03 | 2007-08-16 | Fish Russell H Iii | Thread optimized multiprocessor architecture |
US7478185B2 (en) | 2007-01-05 | 2009-01-13 | International Business Machines Corporation | Directly initiating by external adapters the setting of interruption initiatives |
US8656145B2 (en) * | 2008-09-19 | 2014-02-18 | Qualcomm Incorporated | Methods and systems for allocating interrupts in a multithreaded processor |
US8082426B2 (en) * | 2008-11-06 | 2011-12-20 | Via Technologies, Inc. | Support of a plurality of graphic processing units |
US8571834B2 (en) * | 2010-01-08 | 2013-10-29 | International Business Machines Corporation | Opcode counting for performance measurement |
JP2011229038A (ja) * | 2010-04-22 | 2011-11-10 | Oki Data Corp | 画像処理装置 |
US8762615B2 (en) * | 2011-12-21 | 2014-06-24 | International Business Machines Corporation | Dequeue operation using mask vector to manage input/output interruptions |
KR101745640B1 (ko) * | 2012-06-15 | 2017-06-09 | 인텔 코포레이션 | 공유 메모리 자원들을 사용하는 메모리 일관성 모델에서 비순차 load들에 대한 로크 기반 및 동기화 기반 방법 |
US8943252B2 (en) | 2012-08-16 | 2015-01-27 | Microsoft Corporation | Latency sensitive software interrupt and thread scheduling |
US9891927B2 (en) * | 2013-08-28 | 2018-02-13 | Via Technologies, Inc. | Inter-core communication via uncore RAM |
-
2014
- 2014-10-08 US US14/509,533 patent/US9760511B2/en active Active
-
2015
- 2015-03-30 TW TW104110336A patent/TWI633490B/zh active
- 2015-09-14 CA CA2961690A patent/CA2961690C/en active Active
- 2015-09-14 SG SG11201701614WA patent/SG11201701614WA/en unknown
- 2015-09-14 CN CN201580054185.7A patent/CN107111578B/zh active Active
- 2015-09-14 AU AU2015330266A patent/AU2015330266B2/en active Active
- 2015-09-14 MX MX2017004530A patent/MX2017004530A/es active IP Right Grant
- 2015-09-14 EP EP15766109.1A patent/EP3204853B1/en active Active
- 2015-09-14 JP JP2017516681A patent/JP6537599B2/ja active Active
- 2015-09-14 BR BR112017007442-7A patent/BR112017007442B1/pt active IP Right Grant
- 2015-09-14 WO PCT/EP2015/070982 patent/WO2016055237A1/en active Application Filing
- 2015-09-14 KR KR1020177007062A patent/KR101884579B1/ko active IP Right Grant
- 2015-09-14 RU RU2017103951A patent/RU2678513C2/ru active
-
2017
- 2017-05-04 ZA ZA2017/03081A patent/ZA201703081B/en unknown
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
RU2749649C2 (ru) * | 2018-12-21 | 2021-06-16 | Общество С Ограниченной Ответственностью "Яндекс" | Способ и система для планирования обработки операций ввода/вывода |
Also Published As
Publication number | Publication date |
---|---|
KR20170042700A (ko) | 2017-04-19 |
KR101884579B1 (ko) | 2018-08-29 |
AU2015330266A8 (en) | 2017-03-16 |
EP3204853B1 (en) | 2020-06-17 |
AU2015330266A1 (en) | 2017-03-09 |
TWI633490B (zh) | 2018-08-21 |
AU2015330266B2 (en) | 2018-10-04 |
RU2678513C2 (ru) | 2019-01-29 |
JP6537599B2 (ja) | 2019-07-03 |
SG11201701614WA (en) | 2017-03-30 |
ZA201703081B (en) | 2018-11-28 |
BR112017007442A2 (pt) | 2018-01-16 |
WO2016055237A1 (en) | 2016-04-14 |
EP3204853A1 (en) | 2017-08-16 |
CA2961690A1 (en) | 2016-04-14 |
RU2017103951A3 (ru) | 2018-11-12 |
US9760511B2 (en) | 2017-09-12 |
JP2017538184A (ja) | 2017-12-21 |
CA2961690C (en) | 2024-02-06 |
CN107111578B (zh) | 2020-06-19 |
CN107111578A (zh) | 2017-08-29 |
BR112017007442B1 (pt) | 2023-03-28 |
TW201614492A (en) | 2016-04-16 |
US20160103774A1 (en) | 2016-04-14 |
MX2017004530A (es) | 2017-06-07 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
RU2017103951A (ru) | Эффективная маршрутизация прерываний для многопоточного процесса | |
RU2016127444A (ru) | Восстановление контекста потока в многопоточной компьютерной системе | |
JP2014016817A5 (ru) | ||
JP2015502618A5 (ru) | ||
JP2016536692A5 (ru) | ||
JP2016526205A5 (ru) | ||
JP2013504127A5 (ru) | ||
WO2012082811A3 (en) | Virtual machine branching and parallel execution | |
JP2011529603A5 (ru) | ||
WO2014116861A3 (en) | Parallel processing with proactive solidarity cells | |
RU2012148586A (ru) | Фильтрация программного прерывания в транзакционном выполнении | |
GB2517877A (en) | Controlling an order for processing data elements during vector processing | |
WO2015153121A8 (en) | A data processing apparatus and method for executing a stream of instructions out of order with respect to original program order | |
RU2016127443A (ru) | Команда запуска виртуального выполнения для диспетчеризации множественных потоков в компьютере | |
RU2012148401A (ru) | Средство процессорной поддержки | |
JP2016532180A5 (ru) | ||
ATE540353T1 (de) | Einteilen von threads in einem prozessor | |
JP2013156984A5 (ru) | ||
RU2012150400A (ru) | Обнаружение квантового исключения с плавающей десятичной точкой | |
RU2015151117A (ru) | Пары инструкций установления очерёдности исполнения инструкций, процессоры, способы и системы | |
WO2014160556A3 (en) | Populating localized fast bulk storage in a multi-node computer system | |
MX2015006489A (es) | Metodo y dispositivo para optimizar memoria. | |
WO2013185015A3 (en) | System and method for providing low latency to applications using heterogeneous processors | |
GB2539600A (en) | Exiting multiple threads in a computer | |
RU2017103676A (ru) | Управление выполнением потоков в многопоточном процессоре |