KR20140001887A - 다중프로세서 시스템에서의 예외 제어 - Google Patents
다중프로세서 시스템에서의 예외 제어 Download PDFInfo
- Publication number
- KR20140001887A KR20140001887A KR1020137011489A KR20137011489A KR20140001887A KR 20140001887 A KR20140001887 A KR 20140001887A KR 1020137011489 A KR1020137011489 A KR 1020137011489A KR 20137011489 A KR20137011489 A KR 20137011489A KR 20140001887 A KR20140001887 A KR 20140001887A
- Authority
- KR
- South Korea
- Prior art keywords
- exception
- processing
- group
- state
- processing unit
- Prior art date
Links
- 230000004913 activation Effects 0.000 claims abstract description 8
- 238000000034 method Methods 0.000 claims description 23
- 230000003247 decreasing effect Effects 0.000 claims 1
- 230000000977 initiatory effect Effects 0.000 description 2
- 230000001960 triggered effect Effects 0.000 description 2
Images
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/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/38—Concurrent instruction execution, e.g. pipeline or look ahead
-
- 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
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F15/00—Digital computers in general; Data processing equipment in general
- G06F15/16—Combinations of two or more digital computers each having at least an arithmetic unit, a program unit and a register, e.g. for a simultaneous processing of several programs
-
- 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
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Software Systems (AREA)
- Computer Hardware Design (AREA)
- Advance Control (AREA)
- Hardware Redundancy (AREA)
Abstract
각각의 처리 스레드에 대응하는 프로그램 명령들의 각각의 스트림을 실행하는 복수의 처리 유닛(4 내지 18; 32 내지 38)을 구비한 데이터 처리장치가 제공된다. 예외 제어회로(20, 42)가 예외 기동 이벤트에 응답하여 처리 유닛의 그룹에 대한 예외처리를 제어한다. 각각의 처리 유닛은 주어진 예외 이벤트에 응답하여 정규 상태, 예외 상태 및 예외 완료 상태 사이에서 한번만 순차적으로 이동한다. 처리 유닛들의 그룹이 예외 이벤트에 응답하여 정규 상태, 기동 상태 및 완료 상태 사이에서 순차적으로 이동한다. 카운터 값을 이용하여, 예외처리에 진입한 처리 유닛들의 수를 추적한 후, 예외처리를 완료한 처리 유닛들의 수를 추적한다.
Description
본 발명은 데이터 처리 시스템 분야에 관한 것이다. 특히, 본 발명은 데이터 처리 시스템 내부에서의 예외처리의 제어에 관한 것이다.
프로세싱 스레드에 대응하는 프로그램 명령들의 스트림을 각각 실행하는 다수의 처리 유닛을 포함하는 데이터 처리 시스템을 제공하는 것이 알려져 있다. 이와 같은 시스템의 예로는, 프로그램 명령들의 스트림을 각각 실행하여 그래픽 처리 유닛에 의해 행해지고 있는 전체적인 처리의 다른 부분을 행하는 다수의 그래픽 처리 코어들을 포함하는 일이 많은 그래픽 처리 유닛을 들 수 있다. 일례로는, 타일 기반의(tile-based) 그래픽 처리가 행해지고 각각의 그래픽 처리 코어가 전체 이미지 내부의 다른 타일에 대해 쉐이딩(shading) 연산 등의 연산을 행하는 경우를 들 수 있다. 다수의 처리 유닛을 포함하는 시스템의 다른 예로는, 범용 처리에 대해 점점 더 일상화되고 있는 대칭형 다중처리 시스템을 들 수 있다. 이와 같은 시스템에서는, 다른 처리 유닛들에 대해 처리의 다른 부분들이 행해지는 것이 알려져 있는데, 예를 들면 1개의 프로세서 코어가 수치 결과를 산출하는데 전용으로 사용되고 다른 처리 코어가 이들 수치 결과를 디스플레이하기 위한 그래픽 데이터를 생성하는데 전용으로 사용된다.
또한, 실행되고 있는 현재의 처리를 인터럽트하고 예외처리 코드의 실행으로 프로그램 흐름을 다시 보내는 역할을 하는 인터럽트 신호를 프로세서가 겪는 것도 데이터 처리 분야에서 공지되어 있다. 이와 같은 인터럽트는 물리 이벤트를 처리하는 실시간 처리 시스템 내에서 빈번하게 발견된다. 인터럽트를 이용하여 멀티태스킹 시스템 내에서 스케줄링을 제어하는 것도 가능하다.
일면에 따르면, 본 발명은,
처리 스레드에 대응하는 프로그램 명령들의 스트림을 각각 실행하는 복수의 처리 유닛과,
상기 복수의 처리 유닛들의 그룹에 대한 예외 기동 이벤트에 응답하여 각각의 처리 스레드들을 실행하는 상기 그룹의 예외처리를 제어하도록 구성된 예외 제어회로를 구비한 데이터 처리장치를 제공한다.
본 발명은, 처리 스레드에 대응하는 프로그램 명령들의 스트림을 각각 실행하는 다수의 처리 유닛들을 포함하는 시스템과 관련해서, 개별적인 처리 유닛들의 인터럽트 거동을 연결시킬 필요성이 존재한다는 것을 인식하고 있다. 본 발명은, 처리 유닛들의 그룹에 대한 예외 기동 이벤트에 응답하여 그룹 기준으로 처리 유닛들을 제어하는 예외 제어회로를 제공한다. 따라서, 예외는 처리 유닛들의 그룹과 연결되어도 되고, 예외 상태(예를 들면, 물리적인 신호 또는 소프트웨어 생성된 인터럽트)의 발생은 이 그룹의 처리 유닛들 각각 내부에 예외 처리의 기동을 일으킨다.
그룹의 각 구성원 내부의 예외 제어회로에 의해 기동된 예외 처리는, (동일한 지점에 또는 다른 지점에) 프로그램 명령들의 현재 스트림의 실행의 인터럽션(interruption), 예외처리 프로그램 명령들의 스트림의 실행과, 그후의 원래의 프로그램 명령들의 실행의 재개이다. 따라서, 예외처리 프로그램 명령의 실행후에 원래의 처리가 재개되므로, 예외처리는 프로세서들의 리셋과 구별된다.
이때, 그룹 내부의 처리 유닛들 각각은, 예외 이벤트가 기동할 때 다른 상태를 가져도 되고, 예외처리중에 다르게 응답하여도 된다는 것을 알 수 있다. 이와 같은 이유로 인해, 예외 제어회로는 처리 유닛들 각각에 의한 예외처리를 추적할 필요가 있다. 이것은, 예외 제어회로가 처리 유닛 예외 상태들의 시퀀스의 예외 기동 이벤트에 대해 처리 유닛들 각각에 의한 운행법(traversal)을 한번만 제어함으로써 달성된다. 따라서, 각각의 처리 유닛들은 개별적으로 균일하고 조직적으로 관리되어도 된다.
처리 유닛 예외 상태들의 시퀀스는, 순차적으로, 프로그램 명령들의 스트림의 처리에 대응하는 정규(normal) 상태, 예외처리 프로그램 명령들의 처리에 대응하는 예외(in-exception) 상태와, 원래의 프로그램 명령들의 스트림의 재개된 처리에 대응하는 예외 완료(done-exception) 상태를 포함해도 된다. 다른 실시예들은 3보다 많은 상태, 예를 들어, 정규, 예외, 캐시 소거 및 완료 상태를 가져도 된다.
처리 유닛들 전체가 그들의 예외 처리를 완료함으로써 처리 유닛들이 정규 상태로 복귀할 때까지, 그룹의 처리 유닛들은 그들 각각의 예외처리의 완료시에 예외 완료 상태에서 멈추게 된다.
처리 유닛들은 예외 상태 및 예외 완료 상태의 어느것에 있는 동안 추가적인 예외 기동 이벤트에 응답하지 않게 하여도 된다. 이것은 그룹에 대해 내포된(nested) 예외의 문제를 발생한다.
간편하게 서로 다른 처리 유닛들의 제어를 용이하게 하기 위해, 각각의 처리 유닛은, 예외처리 프로그램 명령들의 실행후에 실행이 재개되어야 하는 원래의 프로그램 명령들의 스트림 내부의 지점(이것은 동일한 지점이거나 다른 지점이어도 된다)에 대응하는 복귀 프로그램 카운터 값과, 처리 유닛이 현재 갖고 있는 정규, 예외 및 예외 완료 상태들 중 어느 것을 나타내는 현재 처리 유닛 예외 상태를 표시하는 관련된 처리 유닛 상태 변수들을 갖는다.
이들 처리 유닛 상태 변수들은 설계의 크기조정(scaling)을 용이하게 하기 위해 각각의 처리 유닛 내부에 간편하게 기억되어도 되지만, 이와 달리, 예외 제어회로 내부 등과 같이 중앙에 기억되어도 된다.
그룹에 대해, 그룹 예외 상태들의 시퀀스의 예외 기동 이벤트에 대해 예외 제어회로가 운행법을 제어하는 실시예들에서는 그룹의 예외처리의 제어가 한층 더 용이하게 된다.
이들 그룹 예외 상태들은, 그룹 내부의 모든 처리 유닛들(예를 들어 그것의 정규 스레드를 실행하는 각각의 처리 유닛)에 의한 프로그램 명령들의 각각의 스트림의 처리에 대응하는 정규 상태와, 예외 기동 이벤트가 발생하였지만 그룹 내부의 모든 처리 유닛이 이 예외 기동 이벤트에 응답하여 예외처리를 개시한 것은 아닌 기동 상태와, 그룹 내부의 모든 처리 유닛에 의한 예외처리의 완료에 대응하지만 모든 처리 유닛이 그들의 원래의 프로그램 명령들의 스트림의 처리를 재개하지는 않은 완료 상태이어도 된다.
이 그룹 내부의 모든 처리 유닛들이 그들의 원래의 프로그램 명령들의 스트림의 처리를 재개하였을 때, 예외 처리회로가 이 그룹을 완료 상태로부터 정규 상태로 이동한다. 따라서, 모든 처리 유닛이 예외처리 프로그램 명령들의 예외에 뒤따르는 처리를 재개한 그들의 정규 상태로 되돌아갈 때까지 그룹이 완료 단계에서 유지된다.
그룹 내부의 처리 유닛들은, 기동 상태 또는 완료 상태의 어느 것에 있는 동안, 추가적인 예외 기동 이벤트에 응답하지 않아도 된다. 이것은 이와 같은 실시예에서 내포된 예외를 방지한다.
현재 그룹 예외 상태, 그룹 내부의 처리 유닛들의 총수(이것은 소프트웨어 제어 등에 의해 동적으로 구성되어도 된다)와, 예외처리를 개시하였지만 완료하지 않은 처리 유닛들을 나타내는 카운터 값을 표시하는 그룹 상태 변수들의 기억에 의해, 처리 유닛들의 그룹의 제어를 용이하게 하여도 된다. 이들 그룹 상태 변수들은 간편하게 예외 제어회로 내부에 기억되어도 된다.
적어도 일부의 실시예들에서는, 각각의 처리 유닛이 실행될 프로그램 명령을 스케줄에 포함시키려고 시도할 때, 처리 유닛은, 현재의 처리 유닛 상태가 정규 상태인지와 그룹 상태가 기동 상태인지 여부를 판정한다. 그런 경우에는, 처리 유닛이 정규 상태로부터 예외 상태로 변경되고, (복귀 어드레스로서 사용되는) 처리 유닛에 대한 현재의 프로그램 카운터 값을 저장하고, 예외처리를 개시하고, 예외 상태에 있는 처리 유닛들의 수를 표시하는 카운터 값을 증분한다.
카운터 값이 증분될 때, 이 카운터 값을 그룹 내부의 처리 유닛들의 총수와 비교해도 된다. 카운터 값이 그룹 내부의 총수에 도달하면, 이 시점에서는 모든 처리 유닛이 기동하여 예외처리에 진입하였지만 모든 처리 유닛이 이 예외처리를 완료하지는 않았기 때문에, 그룹 상태가 기동 상태로부터 완료 상태로 변경된다.
각각의 프로세서가 예외 프로그램 명령으로부터의 복귀를 실행할 때, 이 처리 유닛에 대한 처리 상태가 예외 완료 상태로 변경되어도 된다.
처리 유닛이 예외 완료 상태로서 그것의 상태를 갖고 그룹 상태가 완료인 경우에, 처리 유닛 상태가 정규 상태로 변경되고 카운터 값이 감소되어도 된다.
카운터 값을 감소시킬 때, 이 카운터 값을 0의 값과 비교하여, 같으면 그룹 상태가 정규 상태로 변경된다.
따라서, 각각의 처리 유닛이 그것의 예외처리를 기동하고 있을 때 카운터 값이 그룹 내부의 총수까지 증분된 후, 각각의 처리 유닛이 모든 처리 유닛들 내부의 예외처리의 기동에 뒤따르는 예외처리를 완료한 것으로 검출될 때 이 카운터 값이 다시 0의 값으로 감소해도 된다는 것을 알 수 있다.
또 다른 일면에 따르면, 본 발명은,
프로그램 명령들을 실행하고, 처리 스레드에 대응하는 프로그램 명령들의 스트림을 각각 실행하는 복수의 처리수단과,
상기 복수의 처리수단들의 그룹에 대한 예외 기동 이벤트에 응답하여 각각의 처리 스레드들을 실행하는 상기 그룹의 예외처리를 제어하는 예외 제어수단을 구비한 데이터 처리장치를 제공한다.
또 다른 일면에 따르면, 본 발명은,
처리 스레드에 대응하는 프로그램 명령들의 스트림을 각각 실행하는 복수의 처리 유닛을 사용하여 프로그램 명령들을 실행하는 단계와,
상기 복수의 프로세서 유닛의 그룹에 대한 예외 기동 이벤트에 응답하여 각각의 처리 스레드를 실행하는 상기 그룹의 예외처리를 제어하는 단계를 포함하는 데이터 처리방법을 제공한다.
이하, 다음의 첨부도면을 참조하여 본 발명을 더욱 상세히 설명한다:
도 1은 각각의 프로그램 스레드에 대응하는 프로그램 명령들의 분리된 스트림들을 실행하는 다수의 처리 유닛을 포함하는 그래픽 처리 유닛을 개략적으로 나타낸 것이고,
도 2는 각각의 처리 유닛 내부에 유지된 처리 유닛 상태를 개략적으로 나타낸 것이고,
도 3은 다수의 프로세서 코어를 포함하는 시스템 온 칩 대칭형 다중처리 유닛을 개략적으로 나타낸 것이고,
도 4는 처리 유닛 예외 상태들을 개략적으로 나타낸 것이고,
도 5는 그룹 예외 상태들을 개략적으로 나타낸 것이고,
도 6은 예외 제어회로 내부에 기억된 그룹 상태 변수들을 개략적으로 나타낸 것이고,
도 7은 처리 유닛 내부의 프로그램 명령들의 스케줄링을 개략적으로 나타낸 흐름도이고,
도 8은 기동 상태로부터 완료 상태로 이동하는 그룹 상태의 제어를 개략적으로 나타낸 흐름도이고,
도 9는 예외 상태로부터 예외 완료 상태로 이동하는 처리 유닛 상태의 제어를 개략적으로 나타낸 흐름도이고,
도 10은 예외 완료 상태로부터 정규 상태로 이동하는 처리 유닛 상태의 제어를 개략적으로 나타낸 흐름도이고,
도 11은 완료 상태로부터 정규 상태로 이동하는 그룹 상태의 제어를 개략적으로 나타낸 흐름도이다.
도 1은 각각의 프로그램 스레드에 대응하는 프로그램 명령들의 분리된 스트림들을 실행하는 다수의 처리 유닛을 포함하는 그래픽 처리 유닛을 개략적으로 나타낸 것이고,
도 2는 각각의 처리 유닛 내부에 유지된 처리 유닛 상태를 개략적으로 나타낸 것이고,
도 3은 다수의 프로세서 코어를 포함하는 시스템 온 칩 대칭형 다중처리 유닛을 개략적으로 나타낸 것이고,
도 4는 처리 유닛 예외 상태들을 개략적으로 나타낸 것이고,
도 5는 그룹 예외 상태들을 개략적으로 나타낸 것이고,
도 6은 예외 제어회로 내부에 기억된 그룹 상태 변수들을 개략적으로 나타낸 것이고,
도 7은 처리 유닛 내부의 프로그램 명령들의 스케줄링을 개략적으로 나타낸 흐름도이고,
도 8은 기동 상태로부터 완료 상태로 이동하는 그룹 상태의 제어를 개략적으로 나타낸 흐름도이고,
도 9는 예외 상태로부터 예외 완료 상태로 이동하는 처리 유닛 상태의 제어를 개략적으로 나타낸 흐름도이고,
도 10은 예외 완료 상태로부터 정규 상태로 이동하는 처리 유닛 상태의 제어를 개략적으로 나타낸 흐름도이고,
도 11은 완료 상태로부터 정규 상태로 이동하는 그룹 상태의 제어를 개략적으로 나타낸 흐름도이다.
도 1은, 본 실시예에서는, 8개의 그래픽 처리 코어들(4, 6, 8, 10, 12, 14, 16, 18)을 포함하는 그래픽 처리 유닛(18)을 개략적으로 나타낸 것이다. 이들 그래픽 처리 코어들 4 내지 18은 처리 스레드에 각각 대응하는 프로그램 명령들의 각각의 스트림들을 실행한다. 스레드들은 매우 큰 관련성을 갖고, 실용상 프로그램 명령들은 동일해도 된다. 예를 들어, 서로 다른 처리 스레드들이, 처리되고 있는 전체 이미지 내부의 서로 다른 영역들에 관해 실행되고 있는 동일한 처리 명령에 대응해도 된다. 그래픽 처리 유닛 내부에서는 병렬로 실행되는 다수의 그래픽 처리 코어들 4 내지 18을 가져, 처리 작업량을 분할하고 전체 처리 스루풋을 더 높게 만드는 것이 일반적이다. 이때, 그래픽 처리 유닛(2)은 일반적으로 다수의 추가 회로 구성요소들을 포함하지만, 간략을 기하기 위해 도 1에서는 이들 구성요소를 생략하였다는 것을 알 수 있다.
또한, 그래픽 처리 유닛(2) 내부에는, 그래픽 처리 코어들 4 내지 18의 각각과 접속되는 예외 제어회로(20)가 더 포함된다. 예외 제어회로(20)는 인터럽트 신호에 응답하는데, 이 인터럽트 신호는 외부 인터럽트 신호 irq이거나, 소프트웨어 인터럽트 swi 등의 내부에서 생성된 인터럽트 신호이어도 된다. 예외 제어회로(20)는, 이와 같은 예외 기동 신호 irq, swi에 응답하여, 이 예외 기동 이벤트에 연결된 관련된 처리 유닛들의 그룹(그래픽 처리 코어들) 내부에서 예외처리를 기동한다. 그래픽 처리 코어들 4 내지 8에 대해 어떤 그래픽 스레드가 할당되어 처리가 개시되었는지에 의존하여, 처리 유닛들의 그룹은 소프트웨어 구성되거나 및/또는 동적으로 구성되어도 된다.
일례로서, 처리 유닛들 4, 8, 10 및 18이 모두 처리중인 이미지 내부의 서로 다른 영역들에 대해 특정한 쉐이딩 연산을 행하는 동일한 프로그램 명령들을 실행하고 있어도 된다. 그후, 이들 그래픽 처리 코어들 4, 8, 10, 18의 각각이 실행하고 있었던 원래의 처리 스레드를 재개하기 전에, 예외처리 프로그램 명령들을 실행하기 위해 그룹 내부의 처리 유닛들 4, 8, 10, 18 각각에 의한 처리를 우회시킬 의도로 소프트웨어 인터럽트 swi 등의 인터럽트가 발생한다. 예외 제어회로(20)는, 어떤 그래픽 처리 코어들 4 내지 18이 어떤 그룹들 내부에 있는지와 이들 그룹의 그룹 상태를 추적하는 그룹 상태 변수들을 기억하는 그룹 상태 기억장치(22)를 구비한다.
도 2는, 개별적인 처리 유닛 4를 나타낸 것으로, 현재 프로그램 카운터(24), (예외처리의 종료시 예외처리 프로그램 명령들로부터의 복귀시에 실행할 명령들의 명령 어드레스를 표시하는) 복귀 포인터(26)와, (처리 유닛 4의 현재 예외 상태를 표시하는) 처리 유닛 예외 상태(28)를 포함하는 추가 상태 변수들에 대한 기억장치를 이 처리 유닛이 포함하는 것으로 도시되어 있다.
도 3은 다른 예시적인 실시예를 나타낸 것이다. 본 실시예는, 스누프(snoop) 제어 유닛(40)을 거쳐 접속되고 프로그램 명령들의 개별적인 스트림에 응답하여 각각의 처리 스레드들을 실행하는 다수의 범용 처리 코어들(32, 34, 36, 38)을 포함하는 시스템 온 칩 대칭형 대중처리 시스템(30)으로 구성된다. 각각의 이들 범용 처리 코어들(32, 34, 36, 38)은 마찬가지로 현재 프로그램 카운터 값, 복귀 명령 어드레스 및 처리 유닛 예외 상태 변수를 기억한다. 이들 서로 다른 범용 처리 유닛 코어들 32 내지 38은, 발생한 인터럽트 기동 이벤트(irq, swi)가 그룹의 처리 유닛 코어들 32 내지 38 각각의 내부에서 예외처리를 기동하도록 연결된 그룹들로 형성되어도 된다. 처리 유닛 코어들 32 내지 38의 각각에 접속된 예외 처리회로(42)는, 예외 기동 신호들에 응답하여, 해당 처리 유닛들의 그룹에 의한 예외처리를 제어한다.
도 4는 도 1의 그래픽 처리 코어들 4 내지 18과 도 3의 범용 처리 코어들 32 내지 38과 개별적으로 연관되는 처리 유닛 예외 상태들을 개략적으로 나타낸 것이다. 도시된 것과 같이 순차적으로, 그리고 개별 처리 유닛에 의한 각각의 인터럽트 신호에 대해 1회만 가로지르는 이들 상태는 정규 상태, 예외 상태, 예외 완료 상태이다. 그룹 상태가 완료하고 있을 때 처리 유닛 예외 상태가 예외 완료 상태로부터 정규 상태로 복귀한다. 예외 상태나 예외 완료 상태에서는, 처리 유닛이 추가적인 인터럽트에 응답하지 않게 된다. 예외 제어회로 42 및 개별적인 처리 유닛 내부의 회로(이 회로의 분포는 실시예들마다 다를 수 있다)는, 예외처리 이벤트의 발생에 응답하여 도 4에 도시된 상태들 사이에서의 처리 유닛 예외 상태의 이동을 추적 및 제어하는 역할을 한다.
도 5는 처리 유닛들의 그룹에 대한 그룹 예외 상태들을 나타낸 것이다. 이들 상태는 정규 상태, 기동 상태 및 완료 상태를 포함한다. (증분하는 카운터를 이용하여 추적하는 것과 같이) 모든 처리 유닛이 그들의 예외처리를 개시하였을 때, 그룹 예외 상태가 기동 상태로부터 완료 상태로 이동한다. 그룹이 기동 상태 또는 완료 상태에 있을 때에는, 이 그룹 내부의 처리 유닛들과 그룹 그 자체의 어느 것도 추가적인 인터럽트에 응답하지 않게 된다.
도 6은, 예외 제어회로 20, 42 내부에 기억되고 처리 유닛들의 그룹에 의해 예외처리를 제어하는데 사용될 수 있는 그룹 상태 변수들을 개략적으로 나타낸 것이다. 이들 상태 변수는, 현재 그룹 예외 상태(44), 그룹 내부의 처리 유닛들의 총수(46)와, 예외처리를 개시하였지만 아직 완료하지 않은 처리 유닛들의 수를 표시하는 (관련된 증분 및 감소하는 카운터가 갖는) 카운터 값(48)을 포함한다.
도 7 내지 도 11은 예외 제어회로 20, 42와 개별적인 처리 유닛 4 내지 18과 32 내지 38 내부의 회로에 의해 행해지는 것으로 이전에 언급된 예외처리 유닛 상태 및 그룹 상태의 제어를 나타낸 흐름도이다. 이때, 도 7 내지 도 11에 도시된 제어를 행하는 회로는, 형태가 상당히 변경될 수 있으며, 물리 구현의 서로 다른 부분들 사이에서 다양한 방식으로 제공될 수 있다는 것을 알 수 있다. 모든 이들 변형은 본 발명에 포함된다.
도 7은 프로그램 명령의 처리 유닛 명령 스케줄링을 나타낸 것이다. 스텝 50에서는, 스케줄에 포함시킬 다음 프로그램 명령을 사용할 수 있을 때까지(예를 들어, 이전 명령이 완료할 때까지) 처리를 대기한다. 그후, 스텝 52는, 처리 유닛이 정규 상태에 있는지 여부를 판정한다. 처리 유닛이 정규 상태에 있지 않으면, 스텝 54에서 다음 프로그램 명령이 처리하도록 스케줄에 포함되고, 처리가 스텝 50으로 되돌아간다. 처리 유닛이 스텝 52에서 판정될 때 정규 상태에 있는 경우에는, 스텝 56이 그룹 상태가 현재 기동 상태인지 여부를 판정한다. 스텝 52 및 56에서 판정할 때 처리 유닛 상태가 정규이고 그룹 상태가 기동 상태인 경우에는, 처리 유닛이 그것의 예외처리를 개시해야 하는 것이 적절하다. 그렇지 않은 경우에는, 처리다 가시 스텝 54로 진행하고 다음 프로그램 명령이 스케줄에 포함된다.
스텝 56에서의 판정 결과 그룹 상태가 기동 상태인 경우에는, 스텝 58에서 처리 유닛 상태를 예외 상태로 변경한다. 스텝 60은, 예외처리 루틴이 실행된 후 예외처리로부터 복귀가 행해질 수 있도록, 현재 프로그램 카운터 값을 복귀 프로그램 카운터 어드레스에 저장한다. 이때, 일부 실시예에서는 복귀가 다른 지점으로 행해질 수도 있다는 것은 자명하다. 스텝 62에서는, 다른 처리 유닛이 예외 상태에 진입하였다는 것을 표시하기 위해 그룹 추적(tracking) 카운터 값이 증분된다. 스텝 64에서는, 예외처리 프로그램 명령의 실행이 개시된다(예를 들어, 예외 벡터로의 분기). 그후, 스텝 50으로 처리가 되돌아간다.
도 8은 완료 상태로 이동시의 그룹 상태의 제어를 나타낸 것이다. 물리 인터럽트 신호 irq 또는 소프트웨어 인터럽트 swi 등의 인터럽트가 처음으로 검출되면, 그룹 상태가 정규 상태로부터 기동 상태로 이동한다. 그후, 스텝 66에서는 카운터 값으로의 증분이 언제 일어나는가를 판정한다(도 7의 스텝 62 참조). 이와 같은 증분이 발생할 때마다, 스텝 68에서는, 카운트 값이 추적되고 있는 예외와 관련된 그룹 내부의 처리 유닛들의 총수에 도달하였는지 여부를 판정한다. 카운터 값이 이와 같은 그룹 총수 값에 도달하면, 이 시점에서는 그룹 내부의 모든 처리 유닛이 기동되어 예외 프로그램 명령 실행을 개시하였고 이에 따라 적어도 이 예외처리의 완료를 향해 진행중이므로, 스텝 70에서 그룹 상태를 기동 상태로부터 완료 상태로 변경한다.
도 9는 예외 상태로부터 예외 완료 상태로 이동하는 처리 유닛 상태의 제어를 나타낸 것이다. 스텝 72에서는 처리 유닛이 언제 예외 프로그램 명령으로부터의 복귀를 실행하는지 검출한다. 이와 같은 프로그램 명령은, 예를 들면, 저장된 복귀 프로그램 카운터 값을 현재의 프로그램 카운터로 복귀하여, 프로그램 흐름을 원래의 프로그램 흐름으로 방향을 바꾸려고 시도하여도 된다. 스텝 72에서 예외 프로그램 명령으로부터의 복귀가 검출되면, 스텝 74에서는 해당 처리 유닛의 처리 유닛 상태를 예외 상태로부터 예외 완료 상태로 변경한다. 처리 유닛은, 예외 완료 상태에 있는 동안 인터럽트에 응답하지 않은 상태로 유지되며, 해당 그룹 내부의 모든 처리 유닛이 예외 완료 상태에 진입할 때까지 정규 상태로 복귀하지 않는다. 그룹 내부의 모든 처리 유닛이 이전의 예외처리를 완료할 때까지 처리 유닛이 추가적인 인터럽트에 반응하지 않게 되므로, 이와 같은 구성은 인터럽트 처리의 순서를 보존하도록 돕는다.
도 10은 예외 완료 상태로부터 정규 상태로의 처리 유닛 상태의 이동 제어를 나타낸 것이다. 처리 유닛에 대해, 스텝 76은 예외 상태가 예외 완료 상태인지 여부를 판정한다. 그후, 스텝 78에서는, 그룹 상태가 완료 상태인지 여부를 판정한다. 처리 유닛 상태가 예외 완료 상태이고 그룹 상태가 완료 상태이면, 스텝 80으로 처리를 진행하여, 이 처리 유닛에 대한 처리 유닛 상태가 예외 완료 상태로부터 정규 상태로 변경된다. 그후, 스텝 82에서는, 카운터 값을 감소시킨다.
도 11은 완료 상태로부터 정규 상태로 이동하는 그룹 상태의 제어를 나타낸 것이다. 스텝 84에서는, 카운터 값의 감소가 언제 발생하였는지 검출한다(도 10의 스텝 82 참조). 이와 같은 감소가 일어나면, 스텝 86에서는, 카운터 값이 제로값에 도달하였는지 판정한다. 스텝 86에서 판정할 때 카운터 값이 제로값에 도달하면, 이 시점에서는, 그룹 내부의 모든 처리 유닛이 예외 완료 상태로부터 정규 상태로 변경되고 이에 따라 그룹이 완료 상태로부터 정규 상태로 변경되어 추가적인 예외 신호에 한번 더 응답하게 될 수 있으므로, 스텝 88에서 그룹 상태를 완료 상태로부터 정규 상태로 변경한다.
본 발명은, 동일한 클록 사이클에 복수의 처리 유닛이 상태를 변경할 수 있는 시스템에서 사용되어도 된다. 이와 같은 경우에, 카운터 값(48)을 관리하는 카운터는, 얼마나 많은 처리 유닛이 이 클록 사이클 내에서 상태를 변경하였는가에 의존하여, 임의의 양만큼 증분되거나 감소되어도 된다. 다른 실시예에서, 카운터 값(48)은 1 비트가 각각의 처리 유닛에 대응하는 비트들의 어레이로 표시되어도 된다. 이들 비트는 모두 제로값으로 초기화된 후, 대응하는 처리 유닛이 예외 상태에 진입할 때 1로 설정되어도 된다. 각각의 처리 유닛이 예외 완료 상태로부터 정규 상태로 이동할 때, 이 처리 유닛은 대응하는 비트를 소거한다. 모든 비트가 소거되면, 그룹 상태가 정규 상태로 이동한다. 그룹 상태가 정규 상태로부터 기동 상태로 이동하면, 이것이 각각의 처리 유닛을 기동하여 예외 상태에 진입하게 하므로, 대응하는 비트가 설정되도록 한다.
Claims (21)
- 처리 스레드에 대응하는 프로그램 명령들의 스트림을 각각 실행하는 복수의 처리 유닛과,
상기 복수의 처리 유닛들의 그룹에 대한 예외 기동 이벤트에 응답하여 각각의 처리 스레드들을 실행하는 상기 그룹의 예외처리를 제어하도록 구성된 예외 제어회로를 구비한 데이터 처리장치.
- 제 1항에 있어서,
상기 예외 제어회로는, 상기 프로그램 명령들의 현재 스트림의 실행의 인터럽트, 예외처리 프로그램 명령들의 스트림의 실행과, 상기 프로그램 명령들의 스트림의 실행의 재개를 순차적으로 행함으로써, 상기 예외 기동 이벤트에 응답하도록 상기 그룹 내부의 상기 처리 유닛들 각각을 제어하도록 구성된 데이터 처리장치.
- 제 2항에 있어서,
상기 그룹 내부의 상기 처리 유닛들 각각에 대해, 상기 예외 제어회로는, 처리 유닛 예외 상태들의 시퀀스의 상기 예외 기동 이벤트에 대해 운행법을 한번만 제어하는 데이터 처리장치.
- 제 3항에 있어서,
상기 처리 유닛 예외 상태들의 시퀀스는, 순차적으로,
(i) 상기 프로그램 명령들의 스트림의 처리에 대응하는 정규 상태,
(ii) 상기 예외처리 프로그램 명령들의 처리에 대응하는 예외 상태와,
(iii) 상기 프로그램 명령들의 스트림의 재개된 처리에 대응하는 예외 완료 상태인 데이터 처리장치.
- 제 4항에 있어서,
상기 예외 제어회로는, 상기 그룹 내부의 모든 상기 처리 유닛들에 의한 예외처리의 완료시에, 상기 그룹 내부의 상기 처리 유닛들 전체를 상기 예외 완료 상태로부터 상기 정규 상태로 이동하는 데이터 처리장치.
- 제 4항 또는 제 5항에 있어서,
처리 유닛은, 상기 예외 상태 및 상기 예외 완료 상태 중 어느 한 개에 있는 동안, 추가적인 예외 기동 이벤트에 응답하지 않는 데이터 처리장치.
- 제 4항, 제 5항 또는 제 6항 중 어느 한 항에 있어서,
상기 처리 유닛들 각각은,
(i) 상기 예외처리 프로그램 명령들의 실행후에 실행이 재개되어야 하는 상기 프로그램 명령들의 스트림 내부의 지점에 대응하는 복귀 프로그램 카운터 값과,
(ii) 상기 처리 유닛의 현재의 처리 유닛 예외 상태
를 표시하는 관련된 처리 유닛 상태 변수들을 갖는 데이터 처리장치.
- 제 7항에 있어서,
상기 처리 유닛 상태 변수들은 각각의 처리 유닛 내부에 기억되는 데이터 처리장치.
- 제 1항 내지 제 8항 중 어느 한 항에 있어서,
상기 그룹에 대해, 상기 예외 제어회로는, 그룹 예외 상태들의 시퀀스의 상기 예외 기동 이벤트에 대해 운행법을 제어하는 데이터 처리장치.
- 제 9항에 있어서,
상기 그룹 예외 상태들의 시퀀스는, 순차적으로,
(i) 상기 그룹 내부의 모든 상기 처리 유닛들에 의한 프로그램 명령들의 각각의 스트림의 처리에 대응하는 정규 상태와,
(ii) 예외 기동 이벤트가 발생하였지만 상기 그룹 내부의 모든 상기 처리 유닛들이 예외처리를 아직 개시하지는 않은 것에 대응하는 기동 상태와,
(iii) 상기 그룹 내부의 모든 상기 처리 유닛에 의한 예외처리의 완료에 대응하지만 모든 상기 처리 유닛들이 상기 프로그램 명령들의 스트림의 처리를 재개하지는 않은 완료 상태인 데이터 처리장치.
- 제 10항에 있어서,
상기 그룹 내부의 모든 상기 처리 유닛들이 상기 프로그램 명령들의 스트림의 처리를 재개하였을 때, 상기 예외 처리회로가 상기 그룹을 상기 완료 상태로부터 상기 정규 상태로 이동하는 데이터 처리장치.
- 제 10항 또는 제 11항에 있어서,
상기 그룹은, 상기 기동 상태 및 상기 완료 상태의 어느 것에 있는 동안, 추가적인 예외 기동 이벤트에 응답하지 않는 데이터 처리장치.
- 제 10항, 제 11항 또는 제 12항 중 어느 한 항에 있어서,
상기 그룹은,
상기 그룹의 현재 그룹 예외 상태,
상기 그룹 내부의 처리 유닛들의 총수와,
상기 예외처리를 개시하였지만 완료하지 않은 처리 유닛들을 나타내는 카운터 값
을 표시하는 관련된 그룹 상태 변수들을 갖는 데이터 처리장치.
- 제 13항에 있어서,
상기 그룹 상태 변수들은 상기 예외 제어회로 내부에 기억되는 데이터 처리장치.
- 제 4항, 제 5항, 제 6항, 제 7항, 제 8항, 제 13항 또는 제 14항 중 어느 한 항에 있어서,
상기 그룹 내부의 각각의 처리 유닛이 프로그램 명령을 상기 프로그램 명령들의 스트림 내부에 스케줄에 포함시킬 때, 상기 처리 유닛은, 상기 처리 유닛 상태가 정규 상태인지와 상기 그룹 상태가 기동 상태인지 여부를 판정하여, 그런 경우에는, 상기 처리 유닛 상태를 예외 상태로 변경하고, 상기 처리 유닛에 대한 현재의 프로그램 카운터 값을 저장하고, 상기 예외처리를 개시하고, 상기 카운터 값을 증분하는 데이터 처리장치.
- 제 15항에 있어서,
상기 카운터 값의 상기 증분시에, 상기 카운터 값을 상기 총수와 비교하여, 동일하면, 상기 그룹 상태가 완료 상태로 변경되는 데이터 처리장치.
- 제 4항 내지 제 8항 중 어느 한 항에 있어서,
처리 유닛의 상기 처리 유닛 상태가 예외 상태이고 상기 처리 유닛이 예외 프로그램 명령으로부터의 복귀를 실행할 때, 상기 처리 유닛 상태가 예외 완료 상태로 변경되는 데이터 처리장치.
- 제 4항, 제 5항, 제 6항, 제 7항, 제 8항, 제 13항 또는 제 14항 중 어느 한 항에 있어서,
처리 유닛 상태가 예외 완료 상태이고 상기 그룹 상태가 완료 상태이면, 상기 처리 유닛 상태가 정규 상태로 변경되고 상기 카운터 값이 감소하는 데이터 처리장치.
- 제 18항에 있어서,
상기 카운터 값의 상기 감소시에, 상기 카운터 값을 제로값과 비교하여, 동일하면, 상기 그룹 상태가 정규 상태로 변경되는 데이터 처리장치.
- 프로그램 명령들을 실행하고, 처리 스레드에 대응하는 프로그램 명령들의 스트림을 각각 실행하는 복수의 처리수단과,
상기 복수의 처리수단들의 그룹에 대한 예외 기동 이벤트에 응답하여 각각의 처리 스레드들을 실행하는 상기 그룹의 예외처리를 제어하는 예외 제어수단을 구비한 데이터 처리장치.
- 처리 스레드에 대응하는 프로그램 명령들의 스트림을 각각 실행하는 복수의 처리 유닛을 사용하여 프로그램 명령들을 실행하는 단계와,
상기 복수의 프로세서 유닛의 그룹에 대한 예외 기동 이벤트에 응답하여 각각의 처리 스레드를 실행하는 상기 그룹의 예외처리를 제어하는 단계를 포함하는 데이터 처리방법.
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
GB1017853.1 | 2010-10-22 | ||
GB1017853.1A GB2484729A (en) | 2010-10-22 | 2010-10-22 | Exception control in a multiprocessor system |
PCT/GB2011/051593 WO2012052733A1 (en) | 2010-10-22 | 2011-08-24 | Exception control in a multiprocessor system |
Publications (2)
Publication Number | Publication Date |
---|---|
KR20140001887A true KR20140001887A (ko) | 2014-01-07 |
KR101838474B1 KR101838474B1 (ko) | 2018-04-26 |
Family
ID=43334229
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1020137011489A KR101838474B1 (ko) | 2010-10-22 | 2011-08-24 | 다중프로세서 시스템에서의 예외 제어 |
Country Status (10)
Country | Link |
---|---|
US (1) | US9430419B2 (ko) |
EP (1) | EP2630577B1 (ko) |
JP (1) | JP5738999B2 (ko) |
KR (1) | KR101838474B1 (ko) |
CN (1) | CN103154919B (ko) |
GB (1) | GB2484729A (ko) |
IL (1) | IL225073A (ko) |
MY (1) | MY164770A (ko) |
TW (1) | TWI511042B (ko) |
WO (1) | WO2012052733A1 (ko) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR20160132437A (ko) * | 2014-03-14 | 2016-11-18 | 에이알엠 리미티드 | 마이크로프로세서 시스템에서의 예외 처리 |
Families Citing this family (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10606679B2 (en) * | 2017-12-04 | 2020-03-31 | Arm Limited | Debug apparatus and method |
US11782602B2 (en) | 2021-06-24 | 2023-10-10 | Western Digital Technologies, Inc. | Providing priority indicators for NVMe data communication streams |
US11960730B2 (en) | 2021-06-28 | 2024-04-16 | Western Digital Technologies, Inc. | Distributed exception handling in solid state drives |
Family Cites Families (21)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
IT998437B (it) * | 1973-08-22 | 1976-01-20 | Honeywell Inf Systems | Sistema di accesso a scansione ciclica variabile delle richieste di interruzione |
US5193187A (en) * | 1989-12-29 | 1993-03-09 | Supercomputer Systems Limited Partnership | Fast interrupt mechanism for interrupting processors in parallel in a multiprocessor system wherein processors are assigned process ID numbers |
US5179702A (en) * | 1989-12-29 | 1993-01-12 | Supercomputer Systems Limited Partnership | System and method for controlling a highly parallel multiprocessor using an anarchy based scheduler for parallel execution thread scheduling |
WO1991020042A1 (en) | 1990-06-11 | 1991-12-26 | Supercomputer Systems Limited Partnership | Fast interrupt mechanism for a multiprocessor system |
US5717947A (en) * | 1993-03-31 | 1998-02-10 | Motorola, Inc. | Data processing system and method thereof |
US5805470A (en) * | 1996-10-10 | 1998-09-08 | Hewlett-Packard Company | Verification of instruction and data fetch resources in a functional model of a speculative out-of order computer system |
US6691223B1 (en) * | 1999-07-30 | 2004-02-10 | Intel Corporation | Processing full exceptions using partial exceptions |
US6775728B2 (en) * | 2001-11-15 | 2004-08-10 | Intel Corporation | Method and system for concurrent handler execution in an SMI and PMI-based dispatch-execution framework |
IL151251A0 (en) * | 2002-08-14 | 2003-04-10 | Elta Systems Ltd | Parallel processing platform with synchronous system halt-resume |
US20060020852A1 (en) * | 2004-03-30 | 2006-01-26 | Bernick David L | Method and system of servicing asynchronous interrupts in multiple processors executing a user program |
US7188052B2 (en) * | 2005-04-12 | 2007-03-06 | International Business Machines Corporation | Using highly skewed clocks for application based tracing and application based normalization of processor clocks in an SMP environment |
US7461275B2 (en) | 2005-09-30 | 2008-12-02 | Intel Corporation | Dynamic core swapping |
US7433985B2 (en) * | 2005-12-28 | 2008-10-07 | Intel Corporation | Conditional and vectored system management interrupts |
US20080034193A1 (en) * | 2006-08-04 | 2008-02-07 | Day Michael N | System and Method for Providing a Mediated External Exception Extension for a Microprocessor |
US20080082710A1 (en) * | 2006-09-29 | 2008-04-03 | Dell Products L.P. | System and method for managing system management interrupts in a multiprocessor computer system |
GB2448523B (en) * | 2007-04-19 | 2009-06-17 | Transitive Ltd | Apparatus and method for handling exception signals in a computing system |
US20090172229A1 (en) * | 2007-12-28 | 2009-07-02 | Krystof Zmudzinski | Methods for selecting cores to execute system management interrupts |
US7802042B2 (en) * | 2007-12-28 | 2010-09-21 | Intel Corporation | Method and system for handling a management interrupt event in a multi-processor computing device |
US7991933B2 (en) * | 2008-06-25 | 2011-08-02 | Dell Products L.P. | Synchronizing processors when entering system management mode |
JP2010015364A (ja) * | 2008-07-03 | 2010-01-21 | Renesas Technology Corp | マルチプロセッサシステム及び情報処理装置 |
US20100115236A1 (en) * | 2008-10-31 | 2010-05-06 | Cray Inc. | Hierarchical shared semaphore registers |
-
2010
- 2010-10-22 GB GB1017853.1A patent/GB2484729A/en not_active Withdrawn
-
2011
- 2011-08-24 MY MYPI2013700417A patent/MY164770A/en unknown
- 2011-08-24 WO PCT/GB2011/051593 patent/WO2012052733A1/en active Application Filing
- 2011-08-24 CN CN201180048212.1A patent/CN103154919B/zh active Active
- 2011-08-24 JP JP2013534378A patent/JP5738999B2/ja active Active
- 2011-08-24 KR KR1020137011489A patent/KR101838474B1/ko active IP Right Grant
- 2011-08-24 EP EP11752623.6A patent/EP2630577B1/en active Active
- 2011-10-07 TW TW100136555A patent/TWI511042B/zh active
- 2011-10-13 US US13/317,246 patent/US9430419B2/en active Active
-
2013
- 2013-03-06 IL IL225073A patent/IL225073A/en active IP Right Grant
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR20160132437A (ko) * | 2014-03-14 | 2016-11-18 | 에이알엠 리미티드 | 마이크로프로세서 시스템에서의 예외 처리 |
Also Published As
Publication number | Publication date |
---|---|
GB2484729A (en) | 2012-04-25 |
EP2630577B1 (en) | 2015-04-15 |
WO2012052733A1 (en) | 2012-04-26 |
IL225073A (en) | 2017-05-29 |
US9430419B2 (en) | 2016-08-30 |
CN103154919B (zh) | 2016-02-17 |
JP5738999B2 (ja) | 2015-06-24 |
KR101838474B1 (ko) | 2018-04-26 |
MY164770A (en) | 2018-01-30 |
TW201229896A (en) | 2012-07-16 |
US20120102303A1 (en) | 2012-04-26 |
TWI511042B (zh) | 2015-12-01 |
GB201017853D0 (en) | 2010-12-01 |
CN103154919A (zh) | 2013-06-12 |
EP2630577A1 (en) | 2013-08-28 |
JP2013540329A (ja) | 2013-10-31 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US8424021B2 (en) | Event-based bandwidth allocation mode switching method and apparatus | |
US7631307B2 (en) | User-programmable low-overhead multithreading | |
CN101681261B (zh) | 运算处理装置及其控制方法 | |
US10871982B2 (en) | Virtual processor scheduling via memory monitoring | |
US20170004005A1 (en) | Exception handling in microprocessor systems | |
US9354934B2 (en) | Partitioned shared processor interrupt-intensive task segregator | |
WO2016014182A1 (en) | Mid-thread pre-emption with software assisted context switch | |
US9715403B2 (en) | Optimized extended context management for virtual machines | |
JP2010152458A (ja) | 性能測定プログラム及び性能測定方法並びに性能測定機能を有する情報処理装置。 | |
KR20140001887A (ko) | 다중프로세서 시스템에서의 예외 제어 | |
US20200341792A1 (en) | Reducing ipi overhead with cpu overcommit support via ipi broadcast | |
GB2538985A (en) | Flushing control within a multi-threaded processor | |
JP5201140B2 (ja) | 同時マルチスレッドの命令完了制御装置 | |
US8214574B2 (en) | Event handling for architectural events at high privilege levels | |
US9836323B1 (en) | Scalable hypervisor scheduling of polling tasks | |
US7434039B2 (en) | Computer processor capable of responding with comparable efficiency to both software-state-independent and state-dependent events | |
US20240134669A1 (en) | Paravirtual pause loops in guest user space | |
JPH03188530A (ja) | プログラム先取り装置 | |
US9218186B2 (en) | Software compiler generated threaded environment | |
JP2006146641A (ja) | マルチスレッドプロセッサ及びマルチスレッドプロセッサの割込み方法 | |
JP2014211890A (ja) | マルチスレッドプロセッサ及びその割り込み処理方法 | |
JPH0368033A (ja) | プログラム実行制御方式 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A201 | Request for examination | ||
E902 | Notification of reason for refusal | ||
E701 | Decision to grant or registration of patent right | ||
GRNT | Written decision to grant |