RU2437144C2 - Method to eliminate exception condition in one of nuclei of multinuclear system - Google Patents

Method to eliminate exception condition in one of nuclei of multinuclear system Download PDF

Info

Publication number
RU2437144C2
RU2437144C2 RU2009139312/08A RU2009139312A RU2437144C2 RU 2437144 C2 RU2437144 C2 RU 2437144C2 RU 2009139312/08 A RU2009139312/08 A RU 2009139312/08A RU 2009139312 A RU2009139312 A RU 2009139312A RU 2437144 C2 RU2437144 C2 RU 2437144C2
Authority
RU
Russia
Prior art keywords
state
core
kernel
exceptional
exception
Prior art date
Application number
RU2009139312/08A
Other languages
Russian (ru)
Other versions
RU2009139312A (en
Inventor
Хиаояианг ЯН (CN)
Хиаояианг ЯН
Йиангнинг ЛИ (CN)
Йиангнинг ЛИ
Фанг ХУ (CN)
Фанг ХУ
Original Assignee
Маипу Коммуникатион Течнологы Ко., Лтд.
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 Маипу Коммуникатион Течнологы Ко., Лтд. filed Critical Маипу Коммуникатион Течнологы Ко., Лтд.
Publication of RU2009139312A publication Critical patent/RU2009139312A/en
Application granted granted Critical
Publication of RU2437144C2 publication Critical patent/RU2437144C2/en

Links

Classifications

    • 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
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/16Error detection or correction of the data by redundancy in hardware
    • G06F11/20Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements
    • G06F11/202Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements where processing functionality is redundant
    • G06F11/2023Failover techniques
    • G06F11/2028Failover techniques eliminating a faulty processor or activating a spare
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/16Error detection or correction of the data by redundancy in hardware
    • G06F11/20Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements
    • G06F11/202Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements where processing functionality is redundant
    • G06F11/2023Failover techniques
    • G06F11/2033Failover techniques switching over of hardware resources
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/16Error detection or correction of the data by redundancy in hardware
    • G06F11/20Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements
    • G06F11/202Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements where processing functionality is redundant
    • G06F11/2035Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements where processing functionality is redundant without idle spare hardware

Abstract

FIELD: information technologies.
SUBSTANCE: method includes stages, at which the following is carried out: cells are identified in the common memory, values of each nucleus are saved, and initial value of each nucleus condition is set as "normal"; when an exception situation occurs at one nucleus, it automatically performs the program of exception situation processing, sets the condition value as "exception situation" and notifies the other selected nucleus in the normal condition, then the nucleus in the exception condition automatically enters into the infinite cycle; the selected nucleus in normal condition sets the nucleus in exception condition into reset condition and notifies a system planning module, then this module transfers tasks that were initially assigned to the nucleus in exception condition, to the nucleus in normal condition for redistribution.
EFFECT: provision of system continuity and makes loss of system resources impossible before and after elimination of an exception situation in one nucleus.
5 cl, 1 dwg

Description

Область техникиTechnical field

Изобретение относится к системе с многоядерным центральным процессором (ЦПУ) и, в частности, к способу устранения исключительной ситуации в одном ядре многоядерной системы.The invention relates to a system with a multicore central processor (CPU) and, in particular, to a method for eliminating an exceptional situation in a single core of a multicore system.

Предпосылки создания изобретенияBACKGROUND OF THE INVENTION

В системах со встроенным многоядерным центральным процессорным устройством (ЦПУ) (здесь и далее именуемых как многоядерные системы) исключительные ситуации могут возникать на одном ядре, вне зависимости от того, является ли система симметричной многоядерной системой или многоядерной системой типа "главный-подчиненный". Понятие "исключительная ситуация" включает в себя недопустимые команды, ошибки выравнивания, ошибки КЭШа, ошибки шины данных и т.д. Существует много причин для возникновения исключительных ситуаций. Одной из причин может быть случайная ошибка технического оборудования или неправильные данные, которые могут вызвать исключительную ситуацию при выполнении программы, а другой причиной может быть то, что система выполняет ветвь, в которую трудно войти в программе. Однако большинство из этих ошибок просто причиняет одноразовый вред системе, так как систематические ошибки могут быть обнаружены и исправлены в ходе тестирования системы.In systems with an integrated multi-core central processing unit (CPU) (hereinafter referred to as multi-core systems), exceptional situations can occur on a single core, regardless of whether the system is a symmetric multi-core system or a multi-core master-slave system. The term "exception" includes invalid commands, alignment errors, cache errors, data bus errors, etc. There are many reasons for exceptional situations. One of the reasons may be an accidental error of technical equipment or incorrect data that can cause an exceptional situation during the execution of the program, and another reason may be that the system executes a branch that is difficult to enter into the program. However, most of these errors simply cause one-time damage to the system, since systematic errors can be detected and corrected during system testing.

В известных технических решениях обычным подходом к устранению исключительной ситуации, возникающей на одном ядре, является просто запись всей информации об исключительной ситуации и, затем, перезапуск всей системы. Хотя такой подход может восстановить функционирование системы, он вызовет паузу в работе всех служб и сократит рабочее время системы. Для существующих систем со сложной структурой, в частности, они, вообще, помещаются на позиции высокого уровня или в позиции ядра, такие как периферический маршрутизатор ядра сети, телефонная система частного пользования и т.д. Как только происходит нарушение в функционировании оборудования, его последствия могут оказаться серьезными. Кроме того, перезапуск системы и восстановление нормальной работы займет много времени, что может иметь колоссальные последствия. Поэтому особенно важно продлить рабочее время многоядерной системы. Кроме этого нет смысла перезапускать всю систему всего лишь ради некоторых нефатальных ошибок.In well-known technical solutions, the usual approach to eliminating an exception that occurs on one core is simply to record all the information about the exception and then restart the entire system. Although this approach can restore the functioning of the system, it will pause the work of all services and reduce the working time of the system. For existing systems with a complex structure, in particular, they are generally placed at high-level positions or at the core position, such as a peripheral network core router, private telephone system, etc. As soon as equipment malfunctions, its consequences can be serious. In addition, restarting the system and restoring normal operation will take a long time, which can have enormous consequences. Therefore, it is especially important to extend the working time of a multi-core system. In addition, it makes no sense to restart the entire system just for the sake of some non-fatal errors.

Содержание изобретенияThe content of the invention

Технические проблемы, которые должны быть решены в изобретении, фокусируются на упомянутых проблемах в существующей технологии. В изобретении предлагается способ восстановления для одного ядра в многоядерной системе. Когда исключительная ситуация возникает в одном ядре, это ядро будет восстановлено без паузы в работе.The technical problems that must be solved in the invention focus on the problems mentioned in the existing technology. The invention provides a recovery method for a single core in a multicore system. When an exception occurs in one core, that core will be restored without a pause in operation.

Техническая схема, примененная в изобретении, чтобы решить упомянутые технические проблемы, заключается в способе устранения исключительной ситуации в одном ядре многоядерной системы, включающей общую память и системный планирующий модуль.The technical scheme used in the invention to solve the mentioned technical problems consists in a method for eliminating an exceptional situation in one core of a multicore system, including shared memory and a system planning module.

Изобретение состоит из следующих шагов.The invention consists of the following steps.

а. Выделение ячейки общей памяти, сохранение значения состояния каждого ядра и установление начального значения состояния всех ядер в «нормальное».but. Allocation of a shared memory cell, saving the state value of each core and setting the initial state value of all cores to “normal”.

b. Когда исключительная ситуация возникает на одном ядре, это ядро автоматически выполняет программу обработки исключительной ситуации, устанавливает свое значение состояния в «исключительная ситуация» и оповещает другое выбранное ядро, находящееся в нормальном состоянии, затем ядро в исключительном состоянии автоматически входит в бесконечный цикл.b. When an exception occurs on one core, this kernel automatically executes the exception handling program, sets its state value to “exception” and notifies another selected kernel that is in a normal state, then the kernel in an exceptional state automatically enters an infinite loop.

с. Выбранное ядро в нормальном состоянии устанавливает ядро, находящееся в исключительном состоянии, в состояние сброса и оповещает системный планирующий модуль. Затем этот модуль передаст задачи, первоначально назначенные ядру, находящемуся в данный момент в исключительном состоянии, любому другому ядру, находящемуся в нормальном состоянии. Выбранное ядро в нормальном состоянии будет перераспределять все ресурсы, занятые ядром, которое находится в исключительном состоянии, и, наконец, освобождают ядро, находящееся в исключительном состоянии.from. The selected kernel in the normal state sets the kernel in the exceptional state to the reset state and notifies the system planning module. Then this module will transfer the tasks originally assigned to the kernel, which is currently in an exceptional state, to any other kernel, which is in a normal state. The selected kernel in the normal state will redistribute all resources occupied by the kernel, which is in the exceptional state, and, finally, free the kernel, which is in the exceptional state.

d. После освобождения от сброса ядро в исключительном состоянии перезапустится и установит свое состояние в значение «ожидание восстановления» после того, как запуск будет выполнен.d. After the release from the reset, the kernel in an exceptional state will restart and set its state to the value “waiting for recovery” after the launch is completed.

е. После того как выбранное ядро в нормальном состоянии обнаружит, что значением ядра в исключительном состоянии является «ожидание восстановления», оно установит значение состояния этого исключительного ядра в «нормальное» и оповестит системный планирующий модуль.e. After the selected kernel in the normal state detects that the value of the kernel in the exceptional state is “pending recovery”, it will set the state value of this exceptional kernel to “normal” and notify the system planning module.

Кроме того, на шаге b межъядерное прерывание используется, чтобы послать оповещение в многоядерную систему обмена информацией.In addition, in step b, an interrupt is used to send an alert to a multi-core information exchange system.

Кроме этого системный планирующий модуль будет отслеживать состояние каждого ядра в соответствии со значением состояния, сохраненным в ячейке памяти. В случае когда модуль определяет, что состояние одного ядра является исключительным, он более не будет назначать задач этому ядру, т.е. ядру в исключительном состоянии.In addition, the system scheduling module will monitor the state of each core in accordance with the state value stored in the memory cell. If the module determines that the state of one core is exceptional, it will no longer assign tasks to this core, i.e. core in exceptional condition.

В частности, в случае когда многоядерная система является симметричной, на шаге b выбранный модуль в нормальном состоянии может быть любым модулем, находящемся в этом состоянии.In particular, in the case where the multicore system is symmetric, in step b, the selected module in the normal state can be any module in this state.

В частности, в том случае когда многоядерная система является системой типа «главный-подчиненный», на шаге b выбранным ядром в нормальном состоянии является ядро, которое находится в состоянии «главный».In particular, in the case where the multicore system is a master-slave system, in step b, the selected core in the normal state is the core that is in the master state.

Изобретение имеет следующие полезные эффекты: когда исключительная ситуация появляется в одном ядре многоядерной системы, задачи, первоначально назначенные ядру, находящемуся в данный момент в исключительном состоянии, будут направлены другому нормальному ядру, чтобы обеспечить выполнение этих задач вовремя и эффективно обеспечить то, что функционирование всей системы не будет приостановлено и системные ресурсы не будут потеряны перед тем или после того, как ядро в исключительном состоянии будет восстановлено. После восстановления ядро, оказавшееся в исключительном состоянии, может функционировать нормально, что увеличивает полезное время работы системы и увеличивает ее надежность.The invention has the following beneficial effects: when an exception occurs in one core of a multicore system, tasks initially assigned to a core that is currently in an exceptional state will be directed to another normal core to ensure that these tasks are completed on time and effectively ensure that the entire the system will not be suspended and system resources will not be lost before or after the kernel in exceptional condition is restored. After restoration, the kernel, which is in exceptional condition, can function normally, which increases the useful time of the system and increases its reliability.

Описание чертежейDescription of drawings

Чертеж является блок-схемой программного воплощения изобретения.The drawing is a block diagram of a software embodiment of the invention.

Подробное описание предпочтительного варианта выполненияDetailed Description of a Preferred Embodiment

Техническая схема изобретения описана более детально в сочетании с прилагаемыми чертежами и вариантом выполнения.The technical scheme of the invention is described in more detail in combination with the accompanying drawings and an embodiment.

Для многоядерной системы с общей памятью и системным модулем планирования изобретение определяет специальную ячейку в общей памяти и выделяет глобальный массив для хранения состояния каждого ядра. Индекс этого массива может использовать № каждого ядра, а каждый элемент массива соответствует значению состояния каждого ядра. Все значения состояния ядра определены как «нормальное», «исключительное» и «ожидающее восстановления». Первоначальное значение состояния всех ядер устанавливается в «нормальное». В многоядерной системе все задачи, выполняемые каждым ядром, назначаются системным модулем планирования. Программа, мониторирующая состояния, находится в системном планирующем модуле. Когда системный планирующий модуль назначает задачи, прежде всего он проверит текущее состояние каждого ядра и, если состояние одного из ядер окажется исключительным, модуль не назначит задачи этому ядру. Когда исключительная ситуация возникает на одном из ядер, заработает программа ЦПУ, обрабатывающая исключительную ситуацию.For a multi-core system with shared memory and a system planning module, the invention defines a special cell in shared memory and allocates a global array for storing the state of each core. The index of this array can use the number of each core, and each element of the array corresponds to the state value of each core. All kernel state values are defined as “normal,” “exceptional,” and “pending recovery.” The initial state value of all nuclei is set to "normal". In a multi-core system, all tasks performed by each core are assigned by the system planning module. The state monitoring program is located in the system planning module. When the system planning module assigns tasks, first of all it will check the current state of each core and, if the state of one of the kernels is exceptional, the module will not assign tasks to this core. When an exception occurs on one of the cores, the CPU program that processes the exception will work.

В программе, обрабатывающей исключительную ситуацию, согласно данному изобретению, ядро в исключительном состоянии сначала устанавливает свое значение в «исключительное», а затем выбирает ядро в нормальном состоянии и использует межъядерную систему обмена информацией о прерываниях, чтобы оповестить выбранное ядро в нормальном состоянии. Затем системный планирующий модуль распределяет все задачи, назначенные ядру в исключительном состоянии, другому ядру, находящемуся в нормальном состоянии, в соответствии со своим алгоритмом планирования, так чтобы обеспечить, по возможности, более быстрое выполнение восстановления и тем самым сократить время восстановления. После того как послано оповещение, ядро в исключительном состоянии входит в бесконечный цикл и не может выйти из программы, обрабатывающей исключительное состояние, с тем чтобы не допустить появления большего количества ошибок и ущерба.In the program handling the exception according to the invention, the kernel in the exceptional state first sets its value to “exceptional”, and then selects the kernel in the normal state and uses the internuclear interrupt information exchange system to notify the selected kernel in the normal state. The system planning module then distributes all tasks assigned to the kernel in exceptional condition to another kernel in the normal state in accordance with its scheduling algorithm, so as to ensure, if possible, faster recovery and thereby reduce recovery time. After the notification is sent, the kernel in an exceptional state enters an endless loop and cannot exit the program that processes the exceptional state in order to prevent more errors and damage from occurring.

В симметричной многоядерной системе любое ядро может устанавливать состояние любого другого ядра. Поэтому, когда появляется исключительное состояние в одном ядре, это ядро может выбрать любое другое ядро в нормальном состоянии. Кроме того, любое ядро имеет функцию сброса любого другого ядра или нескольких ядер. Существует два алгоритма выбора одного ядра в нормальном состоянии, а именно последовательный поиск и случайный поиск. Преимуществом последовательного поиска является простота, в то время как его недостатком является то, что выбранное ядро в нормальном состоянии является сравнительно фиксированным. Преимуществом случайного поиска является то, что выбранное ядро в нормальном состоянии не является фиксированным, что может повысить вероятность успешного восстановления, в то время как его недостатком является то, что алгоритм сравнительно сложен.In a symmetric multicore system, any core can set the state of any other core. Therefore, when an exceptional state appears in one core, this core can select any other core in the normal state. In addition, any core has the function of resetting any other core or multiple cores. There are two algorithms for selecting one core in the normal state, namely sequential search and random search. The advantage of sequential search is simplicity, while its disadvantage is that the selected kernel in the normal state is relatively fixed. The advantage of random search is that the selected core in the normal state is not fixed, which can increase the likelihood of a successful recovery, while its disadvantage is that the algorithm is relatively complicated.

В многоядерной системе типа «главный-подчиненный» только одно ядро в состоянии «главный» может восстанавливать ядро в исключительном состоянии. Другими словами, когда одно ядро находится в исключительном состоянии, оно должно уведомлять ядро в состоянии «главный» с тем, чтобы оно могло выполнить операцию восстановления.In a multicore master-slave system, only one core in a master state can restore a kernel in an exceptional state. In other words, when one core is in an exceptional state, it must notify the core in the “master” state so that it can perform a restore operation.

Многоядерное ЦПУ (центральное процессорное устройство) имеет механизмы межъядерного обмена информацией, из которых один механизм должен использовать межъядерное прерывание. Его преимущество заключается в быстроте и в том, что этот механизм может посылать оповещение о событии в первую очередь. Как результат, это изобретение использует межъядерное прерывание для посылки оповещения.A multicore CPU (central processing unit) has internuclear information exchange mechanisms, of which one mechanism should use internuclear interruption. Its advantage lies in speed and in the fact that this mechanism can send an alert about an event in the first place. As a result, this invention uses an internuclear interrupt to send an alert.

Вариант выполненияExecution option

Как показано на чертеже, в симметричной системе со встроенным многоядерным ЦПУ на шаге 101 появляется недопустимая операция в ядре А и вызывает исключительную ситуацию. Только ядро А переходит к ветви исключительной ситуации и входит в программу ЦПУ, обрабатывающую исключительную ситуацию, а другие ядра продолжают нормальную работу. В программе, обрабатывающей исключительную ситуацию, ядро А сначала записывает информацию об исключительной ситуации, включая: тип исключительной ситуации, указатель программного счетчика исключительной ситуации, значения всех регистров состояния, структуру стека и т.д.As shown in the drawing, in a symmetric system with an integrated multi-core CPU in step 101, an invalid operation appears in core A and causes an exception. Only kernel A goes to the branch of the exception and enters the CPU program that processes the exception, while other kernels continue to work normally. In a program that processes an exception, kernel A first writes information about the exception, including: type of exception, pointer to the program counter for the exception, the values of all state registers, the structure of the stack, etc.

На шаге 102 в программе обработки исключительных ситуаций ядро А изменяет свое значение состояния в ячейке общей памяти на «исключительное». Когда системный планирующий модуль назначает задачи, он прежде всего определяет состояние каждого текущего ядра. Если текущее ядро находится в исключительном состоянии, модуль не назначает задачу этому ядру.In step 102, in the exception handling program, core A changes its state value in the shared memory cell to “exceptional”. When the system scheduling module assigns tasks, it first determines the state of each current kernel. If the current kernel is in exceptional condition, the module does not assign a task to this kernel.

На шаге 103 в программе, обрабатывающей исключительные состояния, ядро А случайным образом выбирает ядро В в нормальном состоянии, затем использует прерывание, чтобы оповестить ядро В и, наконец, оно входит в бесконечный цикл, что означает, что ядро А никогда не выйдет из программы обработки исключительных ситуаций, чтобы предотвратить дальнейшее исключение команды, когда она будет выполняться повторно.In step 103, in an exception-processing program, kernel A randomly selects kernel B in the normal state, then uses an interrupt to notify kernel B, and finally it enters an infinite loop, which means that kernel A will never exit the program exception handling to prevent further exclusion of the command when it is executed again.

На шаге 104 ядро В в нормальном состоянии получает информацию о прерывании от ядра А, затем пробуждает свой скрытый от пользователя процесс для устранения исключительной ситуации в ядре, подготавливается к поиску и находит, какое ядро находится в исключительном состоянии, и подготавливает восстановление.At step 104, the core B in the normal state receives information about the interrupt from core A, then awakens its process hidden from the user to eliminate the exceptional situation in the kernel, prepares for the search and finds which core is in the exceptional state, and prepares the recovery.

На шаге 105 ядро В использует общий управляющий регистр, чтобы установить ядро А в состояние сброса. Поскольку в многоядерных ЦПУ, когда одно ядро установлено в состояние сброса, оно не выполняет никакого кода, что означает, что оно находится в состоянии «останова». Как только это ядро освободится от состояния сброса, оно прочтет и выполнит команды, начиная от фиксированного стартового адреса, то есть выполнит операцию рестарта.In step 105, core B uses a common control register to set core A to a reset state. Since in multi-core CPUs, when one core is set to a reset state, it does not execute any code, which means that it is in a “stop” state. As soon as this kernel is freed from the reset state, it will read and execute commands starting from a fixed start address, that is, it will perform a restart operation.

На шаге 106 ядро В оповещает системный планирующий модуль. Затем этот модуль передает задачи, первоначально назначенные ядру А, другому ядру в нормальном состоянии в соответствии со своим алгоритмом планирования, обеспечивая таким образом своевременность выполнения задачи.At step 106, core B notifies the system scheduling module. This module then transfers the tasks originally assigned to kernel A to another kernel in the normal state in accordance with its scheduling algorithm, thus ensuring the timeliness of the task.

На шаге 107 ядро В перераспределяет ресурсы, изначально занятые ядром А, в системе. Эти ресурсы главным образом включают: очередь задач, пространство стека, прерывание и т.д.At step 107, core B redistributes the resources originally occupied by core A in the system. These resources mainly include: task queue, stack space, interrupt, etc.

На шаге 108 ядро В использует общий управляющий регистр ЦПУ, чтобы освободить ядро А от состояния «сброс», и ядро А стартует заново. Затем ядро В запрашивает значение состояния ядра А в ячейке общей памяти и ждет, пока оно не изменится на «ожидание восстановления».In step 108, core B uses the general control register of the CPU to free core A from the reset state, and core A starts again. Then, kernel B requests the value of the state of core A in the shared memory cell and waits until it changes to “waiting for recovery”.

На шаге 201 после того, как ядро А освобождается от состояния сброса, оно начинает читать и выполнять команды из фиксированного стартового адреса ЦПУ, а затем стартует заново.In step 201, after kernel A is freed from the reset state, it starts reading and executing commands from the fixed start address of the CPU, and then starts again.

На шаге 202 ядро А повторно выполняет операцию инициализации. Поскольку ядро А использует новые ресурсы, оно несомненно может успешно стартовать заново. После того как запуск выполнен, ядро А изменяет свое состояние в ячейке общей памяти на «ожидание восстановления», что показывает, что ядро А уже стартовало.At step 202, the core And repeatedly performs the initialization operation. Since kernel A uses new resources, it can undoubtedly be able to restart successfully. After the launch is completed, core A changes its state in the shared memory cell to “waiting for recovery”, which indicates that core A has already started.

На шаге 203 ядро В определяет, что состояние ядра А изменяется на «ожидание восстановления», что показывает, что ядро А уже стартовало. Затем ядро В изменяет состояние ядра А в ячейке общей памяти на «нормальное». Затем ядро В оповещает системный планирующий модуль о назначении задач ядру А.At step 203, core B determines that the state of core A changes to “waiting for recovery,” which indicates that core A has already started. Then, core B changes the state of core A in the shared memory cell to “normal”. Then, kernel B notifies the system planning module of the assignment of tasks to core A.

Устранение исключительной ситуации закончено.Elimination of the exception is completed.

Claims (5)

1. Способ устранения исключительной ситуации в одном из ядер многоядерной системы, включающей общую память и системный модуль-планировщик, включающий следующие шаги:
a) выделение ячейки в общей памяти, сохранение значения каждого ядра и установление начального значения состояния каждого ядра в «нормальное»;
b) когда исключительная ситуация возникает на одном ядре, это ядро автоматически выполняет программу обработки исключительной ситуации, устанавливает свое значение состояния в значение «исключительная ситуация» и оповещает другое выбранное ядро в нормальном состоянии, затем ядро в исключительном состоянии автоматически входит в бесконечный цикл;
c) выбранное ядро в нормальном состоянии устанавливает ядро в исключительном состоянии в состояние сброса и оповещает системный планирующий модуль, затем этот модуль передаст задачи, первоначально назначенные ядру, находящемуся в состоянии исключительной ситуации, любому другому ядру в нормальном состоянии, выбранное ядро в нормальном состоянии перераспределит все ресурсы, занятые ядром в исключительном состоянии, и, наконец, освободит ядро, находящееся в исключительном состоянии;
d) после освобождения от сброса ядро в состоянии исключительной ситуации перезапустится и установит свое значение состояния в «ожидание восстановления» после того, как процедура запуска завершится;
е) после того как выбранное ядро в нормальном состоянии обнаружит, что значением ядра в исключительном состоянии является «ожидание восстановления», оно установит значение состояния этого ядра в «нормальное» и оповестит системный модуль планирования.
1. A way to eliminate an exception in one of the cores of a multicore system, including shared memory and a system scheduler module, which includes the following steps:
a) allocating a cell in shared memory, storing the value of each core and setting the initial value of the state of each core to “normal”;
b) when an exception occurs on one core, this core automatically executes the exception handling program, sets its state value to the value “exception” and notifies another selected core in the normal state, then the core in the exceptional state automatically enters an infinite loop;
c) the selected kernel in the normal state sets the kernel in the exceptional state to the reset state and notifies the system planning module, then this module will transfer the tasks originally assigned to the kernel in the exceptional state to any other kernel in the normal state, the selected core in the normal state will redistribute all resources occupied by the kernel in the exceptional state, and, finally, free the core in the exceptional state;
d) after the release from the reset, the kernel in an exceptional state will restart and set its status value to “waiting for recovery” after the start procedure is completed;
f) after the selected kernel in the normal state detects that the value of the kernel in the exceptional state is “waiting for recovery”, it will set the state value of this kernel to “normal” and notify the system planning module.
2. Способ устранения исключительной ситуации по п.1 в котором на шаге b межъядерное прерывание используется, чтобы послать оповещение в систему многоядерной связи.2. The method of eliminating the exceptional situation according to claim 1, wherein in step b, an interrupt is used to send an alert to the multi-core communication system. 3. Способ устранения исключительной ситуации по п.1 в котором системный планирующий модуль будет отслеживать состояние каждого ядра по соответствующему состоянию значения, сохраненному в ячейке памяти, в случае, если этот модуль обнаружит, что состояние одного ядра является исключительным состоянием, модуль не будет более назначать задачи ядру, находящемуся в исключительном состоянии.3. The way to eliminate the exception according to claim 1, in which the system planning module will monitor the state of each core according to the corresponding state of the value stored in the memory cell, if this module detects that the state of one core is an exceptional state, the module will not be more Assign tasks to a kernel in exceptional condition. 4. Способ устранения исключительной ситуации по пп.1, 2 или 3, в котором в случае, когда многоядерная система, является симметричной многоядерной системой на шаге b выбранным ядром в нормальном состоянии может быть любое ядро, находящееся в нормальном состоянии.4. The way to eliminate the exceptional situation according to claims 1, 2 or 3, in which in the case when the multicore system is a symmetric multicore system in step b, the selected core in the normal state can be any core in the normal state. 5. Способ устранения исключительной ситуации по пп.1, 2 или 3, в котором в случае, когда многоядерная система является системой типа «главный - подчиненный», на шаге b выбранное ядро в нормальном состоянии является ядром, которое имеет состояние «главный». 5. The way to eliminate the exceptional situation according to claims 1, 2, or 3, in which, in the case where the multicore system is a “master – slave” system, in step b, the selected core in the normal state is a kernel that has the “master” state.
RU2009139312/08A 2007-01-31 2008-01-30 Method to eliminate exception condition in one of nuclei of multinuclear system RU2437144C2 (en)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
CN200710048366A CN101236515B (en) 2007-01-31 2007-01-31 Multi-core system single-core abnormity restoration method
CN200710048366.6 2007-01-31

Publications (2)

Publication Number Publication Date
RU2009139312A RU2009139312A (en) 2011-04-27
RU2437144C2 true RU2437144C2 (en) 2011-12-20

Family

ID=39709613

Family Applications (1)

Application Number Title Priority Date Filing Date
RU2009139312/08A RU2437144C2 (en) 2007-01-31 2008-01-30 Method to eliminate exception condition in one of nuclei of multinuclear system

Country Status (3)

Country Link
CN (1) CN101236515B (en)
RU (1) RU2437144C2 (en)
WO (1) WO2008101386A1 (en)

Families Citing this family (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPWO2011104824A1 (en) * 2010-02-23 2013-06-17 富士通株式会社 Multi-core processor system, control program, and control method
CN103150224B (en) * 2013-03-11 2015-11-11 杭州华三通信技术有限公司 For improving the electronic equipment and method that start reliability
EP3033676A1 (en) * 2013-08-14 2016-06-22 Intel Corporation Manageability redundancy for micro server and clustered system-on-a-chip deployments
CN103425545A (en) * 2013-08-20 2013-12-04 浪潮电子信息产业股份有限公司 System fault tolerance method for multiprocessor server
CN103870350A (en) * 2014-03-27 2014-06-18 浪潮电子信息产业股份有限公司 Microprocessor multi-core strengthening method based on watchdog
CN104866460B (en) * 2015-06-04 2017-10-10 电子科技大学 A kind of fault-tolerant adaptive reconfigurable System and method for based on SoC
CN107872397A (en) * 2016-09-27 2018-04-03 阿里巴巴集团控股有限公司 Traffic scheduling method, dispatching platform and scheduling system during pressure survey
CN106844082A (en) * 2017-01-18 2017-06-13 联想(北京)有限公司 Processor predictive failure analysis method and device
CN112199230A (en) * 2020-10-19 2021-01-08 广东电网有限责任公司佛山供电局 Storage controller supporting multi-core system exception handling
CN113672363B (en) * 2021-07-21 2024-02-02 惠州华阳通用电子有限公司 Method for recovering multi-task exception and storage medium
CN114750774B (en) * 2021-12-20 2023-01-13 广州汽车集团股份有限公司 Safety monitoring method and automobile
CN115827355B (en) * 2023-01-10 2023-04-28 深流微智能科技(深圳)有限公司 Method and device for detecting abnormal core in graphics processor and electronic equipment

Family Cites Families (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5815651A (en) * 1991-10-17 1998-09-29 Digital Equipment Corporation Method and apparatus for CPU failure recovery in symmetric multi-processing systems
JP2000181890A (en) * 1998-12-15 2000-06-30 Fujitsu Ltd Multiprocessor exchange and switching method of its main processor
US7055060B2 (en) * 2002-12-19 2006-05-30 Intel Corporation On-die mechanism for high-reliability processor
US9038070B2 (en) * 2004-09-14 2015-05-19 Synopsys, Inc. Debug in a multicore architecture
CN100361118C (en) * 2005-03-01 2008-01-09 华为技术有限公司 Multiple-CPU system and its control method
US20060212677A1 (en) * 2005-03-15 2006-09-21 Intel Corporation Multicore processor having active and inactive execution cores

Also Published As

Publication number Publication date
WO2008101386A1 (en) 2008-08-28
CN101236515B (en) 2010-05-19
RU2009139312A (en) 2011-04-27
CN101236515A (en) 2008-08-06

Similar Documents

Publication Publication Date Title
RU2437144C2 (en) Method to eliminate exception condition in one of nuclei of multinuclear system
JP6089349B2 (en) Method and system for supporting resource separation in a multi-core architecture
EP2798491B1 (en) Method and device for managing hardware errors in a multi-core environment
US5815651A (en) Method and apparatus for CPU failure recovery in symmetric multi-processing systems
CN101334721B (en) Thread livelock unit
KR101392109B1 (en) Providing state storage in a processor for system management mode
US9229789B2 (en) Transparent user mode scheduling on traditional threading systems
US6996745B1 (en) Process for shutting down a CPU in a SMP configuration
JP2016508647A5 (en)
US20130160028A1 (en) Method and apparatus for low latency communication and synchronization for multi-thread applications
TWI667588B (en) Computing device, method and machine readable storage media for detecting unauthorized memory accesses
US20100293341A1 (en) Wake-and-Go Mechanism with Exclusive System Bus Response
US10579413B2 (en) Efficient task scheduling using a locking mechanism
US20110197193A1 (en) Device and method for controlling communication between bios and bmc
EP2972852B1 (en) System management interrupt handling for multi-core processors
US20150006978A1 (en) Processor system
US10802875B2 (en) Multithread framework for use in pre-boot environment of a system-on-chip
WO2016109071A1 (en) Memory access protection using processor transactional memory support
JP5673666B2 (en) Multi-core processor system, interrupt program, and interrupt method
CN115576734B (en) Multi-core heterogeneous log storage method and system
CN111694787A (en) Chip starting method, network equipment and machine readable storage medium
US9176806B2 (en) Computer and memory inspection method
US10768940B2 (en) Restoring a processing unit that has become hung during execution of an option ROM
US8543755B2 (en) Mitigation of embedded controller starvation in real-time shared SPI flash architecture
JP5867630B2 (en) Multi-core processor system, multi-core processor system control method, and multi-core processor system control program