KR20200139706A - 트랜잭션에서의 예외처리 - Google Patents

트랜잭션에서의 예외처리 Download PDF

Info

Publication number
KR20200139706A
KR20200139706A KR1020207030034A KR20207030034A KR20200139706A KR 20200139706 A KR20200139706 A KR 20200139706A KR 1020207030034 A KR1020207030034 A KR 1020207030034A KR 20207030034 A KR20207030034 A KR 20207030034A KR 20200139706 A KR20200139706 A KR 20200139706A
Authority
KR
South Korea
Prior art keywords
exception
transaction
data processing
response
circuit
Prior art date
Application number
KR1020207030034A
Other languages
English (en)
Inventor
매튜 제임스 호스넬
그리고리오스 맥클리스
스테판 디에스텔호스트
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 KR20200139706A publication Critical patent/KR20200139706A/ko

Links

Images

Classifications

    • 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/14Error detection or correction of the data by redundancy in operation
    • G06F11/1402Saving, restoring, recovering or retrying
    • G06F11/1474Saving, restoring, recovering or retrying in transactions
    • 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/0703Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation
    • G06F11/0706Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation the processing taking place on a specific hardware platform or in a specific software environment
    • G06F11/0721Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation the processing taking place on a specific hardware platform or in a specific software environment within a central processing unit [CPU]
    • 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/0703Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation
    • G06F11/0751Error or fault detection not based on redundancy
    • G06F11/0754Error or fault detection not based on redundancy by exceeding limits
    • G06F11/076Error or fault detection not based on redundancy by exceeding limits by exceeding a count or rate limit, e.g. word- or bit count limit
    • 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/466Transaction processing
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2201/00Indexing scheme relating to error detection, to error correction, and to monitoring
    • G06F2201/81Threshold
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2201/00Indexing scheme relating to error detection, to error correction, and to monitoring
    • G06F2201/87Monitoring of transactions
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2201/00Indexing scheme relating to error detection, to error correction, and to monitoring
    • G06F2201/88Monitoring involving counting

Abstract

장치와 데이터 처리장치의 작동방법과, 그것의 시뮬레이터가 개시된다. 데이터 처리회로는 명령들에 응답하여 데이터 처리 연산들을 행하고, 이때 명령들의 일부 세트들은 데이터 처리회로에 의해 행해진 다른 연산들에 대해 원자적으로 행해지는 트랜잭션으로서 정의된다. 트랜잭션 중에 동기 예외가 발생하면, 트랜잭션이 중단되고 예외 카운터가 증분된다. 카운터가 임계값에 도달하면, 트랜잭션 실패 신호가 발생되어, 적절하다면 트랜잭션 중단을 일으키는 이와 같은 다수의 예외에 대한 응답이 실행될 수 있도록 한다.

Description

트랜잭션에서의 예외처리
본 발명은 데이터 처리에 관한 것이다. 특히, 본 발명의 예외처리에 관한 것이다.
명령들에 응답하여 데이터 처리연산을 행하는 데이터 처리장치는 한 개 이상의 명령들과 관련된 데이터 처리연산을 "트랜잭션"으로서 행할 수 있어, 명령 또는 이들 명령들이 장치에 의해 행해진 다른 연산들에 대해 원자적으로 행해진다. 즉, 이들 명령이 전체적으로 그리고 완전히 행해지거나 전혀 행해지지 않으므로, "일부가 행해진" 상태를 시스템의 나머지가 결코 인지할 수 없다. 이와 같은 트랜잭션은, 예를 들어, 명령들의 트랜잭션 세트에 선행하는 트랜잭션 초기화 명령에 의해 정의되고 트랜잭션 종료 명령으로 끝난다. 데이터 처리장치는 소정의 예외 응답을 행함으로써 동기 예외(즉, 명령 실행에서 발생된 예외)에 응답하도록 더 구성되어도 된다. 전술한 트랜잭션 명령 실행을 처리할 수 있는 장치와 관련된 예외의 발생의 한가지 결과는, 트랜잭션이 현재 진행중일 때 트랜잭션이 중단되는 것으로, 이것은 보통 하드웨어 레벨에서 처리되므로, 동기 예외가 트랜잭션 중단을 발생하였는지 운용체계가 알지 못한다.
적어도 한 개의 예시적인 실시예에서는, 데이터 처리 명령들에 응답하여 데이터 처리 연산들을 행하고, 트랜잭션을 정의하는 명령들의 시퀀스에 응답하여 상기 명령들의 시퀀스에 의해 정의된 데이터 처리 연산들의 트랜잭션 세트가 데이터 처리회로에 의해 행해진 다른 데이터 처리 연산들에 대해 원자적으로 행해지게 하는 트랜잭션 지원회로를 포함하는 상기 데이터 처리회로와, 상기 트랜잭션을 정의하는 명령들의 시퀀스의 수행중에 동기 예외의 발생에 응답하여, 상기 트랜잭션 지원회로가 상기 트랜잭션을 중단시켜, 상기 데이터 처리연산들의 트랜잭션 세트가 행해지지 않게 하는 예외 처리회로를 구비하고, 상기 예외 처리회로는, 상기 트랜잭션을 정의하는 명령들의 시퀀스의 수행중에 상기 동기 예외의 발생에 응답하여 예외 계수회로에 의해 유지된 계수값을 증분하는 상기 예외 계수회로를 구비하고, 상기 예외 처리회로는 상기 계수값이 임계값에 도달하는 것에 응답하여 트랜잭션 실패 신호를 발생하는 장치가 제공된다.
적어도 한 개의 예시적인 실시예에서는, 데이터 처리 명령들에 응답하여 데이터 처리 연산들을 행하는 단계와, 트랜잭션을 정의하는 명령들의 시퀀스에 응답하여, 상기 명령들의 시퀀스에 의해 정의된 데이터 처리 연산들의 트랜잭션 세트가 다른 데이터 처리 연산들에 대해 원자적으로 행해지게 하는 단계와, 상기 트랜잭션을 정의하는 명령들의 시퀀스의 수행중에 동기 예외의 발생에 응답하여, 상기 트랜잭션을 중단시켜, 상기 데이터 처리연산들의 트랜잭션 세트가 행해지지 않게 하는 단계와, 상기 트랜잭션을 정의하는 명령들의 시퀀스의 수행중에 상기 동기 예외의 발생에 응답하여, 계수값을 증분하는 단계와, 상기 계수값이 임계값에 도달하는 것에 응답하여, 트랜잭션 실패 신호를 발생하는 단계를 포함하는 데이터 처리장치의 작동방법이 제공된다.
적어도 한 개의 예시적인 실시예에서는,
호스트 데이터 처리장치를 제어하여 타겟 프로그램 코드의 명령들의 실행을 위한 명령 실행 환경을 제공하는 컴퓨터 프로그램으로서,
데이터 처리 명령들에 응답하여 데이터 처리 연산들을 행하고, 트랜잭션을 정의하는 명령들의 시퀀스에 응답하여 상기 명령들의 시퀀스에 의해 정의된 데이터 처리 연산들의 트랜잭션 세트가 데이터 처리 로직에 의해 행해진 다른 데이터 처리 연산들에 대해 원자적으로 행해지게 하는 트랜잭션 지원 로직을 포함하는 상기 데이터 처리 로직과,
상기 트랜잭션을 정의하는 명령들의 시퀀스의 수행중에 동기 예외의 발생에 응답하여, 상기 트랜잭션 지원 로직이 상기 트랜잭션을 중단시켜, 상기 데이터 처리연산들의 트랜잭션 세트가 행해지지 않게 하는 예외 처리 로직을 포함하고,
상기 예외 처리 로직은, 상기 트랜잭션을 정의하는 명령들의 시퀀스의 수행중에 상기 동기 예외의 발생에 응답하여 예외 계수 로직에 의해 유지된 계수값을 증분하는 상기 예외 계수 로직을 포함하고, 상기 예외 처리 로직은 상기 계수값이 임계값에 도달하는 것에 응답하여 트랜잭션 실패 신호를 발생하는 컴퓨터 프로그램이 제공된다.
기억매체는 전술한 컴퓨터 프로그램을 기억한다. 기억매체는 비일시적인 기억매체이어도 된다.
이하, 다음의 첨부도면에 도시된 실시예를 참조하여 본 발명을 더욱 상세히 설명한다.
도 1은 일 실시예에서의 장치를 개략적으로 나타낸 것이다.
도 2는 일 실시예에서의 예외 처리회로를 개략적으로 나타낸 것이다.
도 3은 일 실시예에서의 예외 처리회로를 개략적으로 나타낸 것이다.
도 4는 일 실시예에서의 예외 처리회로를 개략적으로 나타낸 것이다.
도 5는 일 실시예에서의 예외 처리방법을 나타낸 흐름도이다.
도 6은 데이터 처리 로직과 예외 처리 로직을 지원하는 시뮬레이터의 일례를 나타낸 것이다.
적어도 일부 실시예는, 데이터 처리 명령들에 응답하여 데이터 처리 연산들을 행하고, 트랜잭션을 정의하는 명령들의 시퀀스에 응답하여 상기 명령들의 시퀀스에 의해 정의된 데이터 처리 연산들의 트랜잭션 세트가 데이터 처리회로에 의해 행해진 다른 데이터 처리 연산들에 대해 원자적으로 행해지게 하는 트랜잭션 지원회로를 포함하는 상기 데이터 처리회로와, 상기 트랜잭션을 정의하는 명령들의 시퀀스의 수행중에 동기 예외의 발생에 응답하여, 상기 트랜잭션 지원회로가 상기 트랜잭션을 중단시켜, 상기 데이터 처리연산들의 트랜잭션 세트가 행해지지 않게 하는 예외 처리회로를 구비하고, 상기 예외 처리회로는, 상기 트랜잭션을 정의하는 명령들의 시퀀스의 수행중에 상기 동기 예외의 발생에 응답하여 예외 계수회로에 의해 유지된 계수값을 증분하는 상기 예외 계수회로를 구비하고, 상기 예외 처리회로는 상기 계수값이 임계값에 도달하는 것에 응답하여 트랜잭션 실패 신호를 발생하는 장치를 제공한다.
데이터 처리 명령들에 응답하여 데이터 처리 연산을 행하고 데이터 처리 명령들의 트랜잭션 세트가 다른 데이터 처리 연산들에 대해 원자적으로 행해지게 하는 "트랜잭션"을 지원하는 장치에서, 예외의 발생에 대한 한가지 접근방법은, 동기 예외를 금지하고(즉, 이와 같이 하지 않은 경우에 호출되었을 통상의 예외 처리 루틴을 호출하지 않고) 트랜잭션이 단순히 실패하여 트랜잭션 이전 상태로 상태를 복구하는 것이다. 그 결과, 예외가 발생되었고 트랜잭션이 실패한 것을 운영체계가 알지 못한다. 이와 같이 구성하지 않았다면 비교적 빈번하고 이에 따라 비교적 지장을 줄 수 있었을 동기 예외가 발생하고 트랜잭션이 실패할 때 상기한 구성이 운용체계의 교란을 방지하기 때문에, 이것이 일반적으로 유리한 것으로 생각될 수 있지만, 본 발명은, 그 결과 동기 예외가 발생하고 트랜잭션이 실패한 사실이 어떤 방식으로 통보되는 경우 바람직한 상황이 존재할 수도 있다는 것을 인식하고 있다. 따라서, 본 발명은, 동기 예외에 의해 인터럽트되는 경우 트랜잭션이 중단되게 하지만, 이와 같은 발생(즉, 트랜잭션중의 동기 예외)의 계수값을 기억하고, 이 계수값이 임계값에 도달하는 경우 트랜잭션 실패 신호를 발생하는 예외 처리회로가 설치되는 접근방법을 제공한다. 이와 같은 트랜잭션 실패 신호는, 다양하게 사용될 수 있지만, 특히 트랜잭션시 예외의 임계값이 발생하였다는 것을 운영체계에게 통지하고, 예를 들어, 운영체계가 이것이 (악의적인 소프트웨어에 의한) 불법 활동을 표시할 수도 있다고 판정하면, 이와 같은 활동에 대해 방어하기 위한 경감 조치가 행해질 수 있다. 예를 들어, 본 발명은, 운영체계가 알지 못한 상태에서 사용자 공간 프로그램이 트랜잭션 내부에서 불법적인 메모리 액세스 패턴들을 시도할 수 있다는 것을 인식하고 있다. 본 발명은 이 문제를 해소한다. 따라서, 특권을 갖는 코드는 (가끔) 카운터에 대한 임계값의 선택에 따라 동기 예외 활동을 관찰할 수 있다. 데이터 처리장치 내부의 특권 레벨의 문맥 내에서, 임계값의 정의가 특권 레벨에 의해 설정될 수 있으며, 그후 이들 예외의 발생이 유저 레벨로부터 특권 레벨로 상승하기 전에, 이 정의된 수치 한계까지 동기 예외가 생략된다(즉, 금지된다).
임계값은, 장치를 위해 사전에 정의되거나, 또는 일부 실시예에서는, 예외 계수회로에 의해 유지되는 프로그래밍가능한 값일 수 있다. 이것은, 장치가 그것의 데이터 처리 연산을 실행하고 있는 상황에 따라, 장치의 환경설정에 있어서 유연성을 허용한다. 보안 조치로서, 프로그래밍가능한 값이 장치 내부의 특권 레벨에 의해서만 설정가능하므로, 비특권 레벨(예를 들어, 유저 레벨)이 그것을 수정할 수 없는 것이 제안된다.
예외 계수회로는 모든 예외를 계수하고, 예를 들어 한 개의 카운터를 사용하여 모든 예외를 계수할 수 있지만, 일부 실시예에서, 예외 계수회로는, 트랜잭션을 정의하는 명령들의 시퀀스의 수행중에 동기 예외의 발생에 응답하여, 동기 예외의 종류에 따라 계수회로에 의해 유지된 계수값을 증분한다. 예를 들어, 예외 계수회로는, 다른 종류들이 잠재적인 트랜잭션 실패 신호가 없이 계속해서 완전히 금지되는 경우, 특정한 종류(종류들)의 예외가 트랜잭션 실패를 발생할 가치가 있다는 것이 결정되면, 이 종류(또는 종류들)의 예외에 대해서만 계수값을 증분(따라서 결국 트랜잭션 실패신호를 발생)하도록 구성된다.
실제로, 예외 계수회로는 특정한 예외 종류들을 무시하도록 구성되며, 이 때문에 일부 실시예에서 예외 계수회로는 동기 예외의 발생을 나타내는 예외 종류 착신(incoming)신호들에 의해 필터링하도록 구성된 예외 종류 마스크를 구비한다. 따라서, 그 자체가 프로그래밍가능한 이와 같은 예외 종류 마스크를 사용하여, 예외 계수회로가 트랜잭션 내에서 발생하는 예외의 종류들을 계수하는 방식을 구성할 수 있다.
예외 계수회로는 (전술한 것과 같이) 트랜잭션 중에 발생한 한 개 이상의 종류의 예외들의 발생을 계수하는데 사용되는 단지 한 개의 카운터를 구비할 수도 있지만, 일부 실시예에서, 예외 계수회로는 복수의 카운터들을 구비하고, 예외 계수회로는 동기 예외의 종류에 따라 복수의 카운터들 중에서 선택된 카운터를 증분하도록 구성된다. 따라서, 예외 계수회로는 트랜잭션 중에 발생하는 다양한 종류(또는 종류들의 세트들)의 동기 예외들에 대한 개별적인 계수값들을 유지할 수 있다.
트랜잭션 실패 신호는 단순히 동기 예외의 결과로써의 트랜잭션 실패들의 횟수가 동기 예외의 종류들을 구별하지 않고 이제 임계값에 도달했다는 것을 나타내지만, 일부 실시예에서, 예외 처리회로는 계수값이 임계값에 도달한 것에 응답하여 계수값이 임계값에 도달하게 한 동기 예외의 종류를 나타내는 트랜잭션 실패 예외 종류 신호를 발생한다. 따라서, 예외 처리회로가 다양한 종류들의 동기 예외들을 구별하는 경우, 예외 처리회로는 계수값이 임계값에 도달하게 한 동기 예외의 종류에 대한 정보를 수신자에게 제공하는 트랜잭션 실패 예외 종류 신호를 더 발생한다. 이것은, 예를 들어, 어떤 종류의 불법 활동이 진행중인지의 더 명확한 관점을 운영체계에게 제공한다.
더구나, 트랜잭션 실패 신호와, 일부 실시예에서는 트랜잭션 실패 예외 프로파일의 형태를 취하는 트랜잭션 실패 예외 종류 신호와 관련하여 추가 정보가 제공되어도 된다. 이와 같은 실시예에서, 예외 처리회로는 계수값이 임계값에 도달하는 것에 응답하여, 다수의 예외들, 다수의 예외 종류들, 및 계수값이 임계값에 도달하게 한 예외 종류들의 세트 각각의 다수의 예외들 중에서 적어도 한 개를 나타내는 트랜잭션 실패 예외 프로파일을 출력한다. 즉, 추가 정보가 예외 처리회로로부터 출력되어, 수신자가 무엇이 계수값 또는 카운터들이 임계값(또는 값들)에 도달하게 하였는지의 더욱 상세한 이해를 할 수 있도록 한다. 전술한 것과 같이, 예외에 응답하여 트랜잭션 실패의 통지를 금지하는 한가지 이유는 이와 같은 정보로 수신자에게 과중하게 부담을 지우는 것(예를 들어, 너무 빈번하게 운용체계에게 통지하는 것)을 피하는 것이며, 따라서 일부 실시예에서, 예외 계수회로는 소정의 기간을 측정하는 타이밍 회로를 구비하고, 계수회로는 타이밍 회로가 소정의 기간의 결과를 나타내는 것에 응답하여 계수회로에 의해 유지된 계수값을 리셋한다. 이와 같은 접근방법은, 카운터가 그것의 임계값에 도달한 이후, 이 계수값이 소정의 기간 내에 임계값에 도달한 것을 아는 것이 수신자에게 유용하며, 타이밍 회로는 이것이 발생하는 것을 허용하여, 소정의 시간 간격에서 리셋함으로써, 이 기간내에 임계값에 도달한 계수값만이 트랜잭션 실패 신호의 수신자에게 통지된다.
일반적으로, 트랜잭션의 중단은, 장치의 다른 구성요소들에게 알려지는 것은, 트랜잭션이 실패할 때 트랜잭션이 개시하기 전의 상태로 상태가 롤백하는 것이 트랜잭션의 특징이기 때문에, 트랜잭션 내에서 실패를 일으킨 것이 무엇인지 정확히 알지 못하고, 트랜잭션이 실패하였다는 것 뿐이며, 본 발명은, 동기 예외의 결과로써 트랜잭션 실패의 원인과 관련된 추가 정보가 유익하다는 것을 인식하고 있다. 따라서, 일부 실시예에서, 예외 처리회로는 트랜잭션을 정의하는 명령들의 시퀀스의 수행중에 동기 예외의 발생과 관련된 프로그램 카운터 값을 기억하는 예외 프로그램 카운터 스토리지를 구비하고, 예외 처리회로는 카운터가 임계값에 도달한 것에 응답하여 프로그램 카운터 값을 출력한다. 그후, 수신자는 프로그램 카운터 값을 이용하여, 동기 예외의 소스와 이에 따른 트랜잭션 실패를 더욱 구체적으로 식별할 수 있다.
적어도 한 개의 예시적인 실시예에서는, 데이터 처리 명령들에 응답하여 데이터 처리 연산들을 행하는 단계와, 트랜잭션을 정의하는 명령들의 시퀀스에 응답하여, 상기 명령들의 시퀀스에 의해 정의된 데이터 처리 연산들의 트랜잭션 세트가 다른 데이터 처리 연산들에 대해 원자적으로 행해지게 하는 단계와, 상기 트랜잭션을 정의하는 명령들의 시퀀스의 수행중에 동기 예외의 발생에 응답하여, 상기 트랜잭션을 중단시켜, 상기 데이터 처리연산들의 트랜잭션 세트가 행해지지 않게 하는 단계와, 상기 트랜잭션을 정의하는 명령들의 시퀀스의 수행중에 상기 동기 예외의 발생에 응답하여, 계수값을 증분하는 단계와, 상기 계수값이 임계값에 도달하는 것에 응답하여, 트랜잭션 실패 신호를 발생하는 단계를 포함하는 데이터 처리장치의 작동방법을 제공한다.
적어도 일부 실시예에서는, 호스트 데이터 처리장치를 제어하여 타겟 프로그램 코드의 명령들의 실행을 위한 명령 실행 환경을 제공하는 컴퓨터 프로그램으로서,
데이터 처리 명령들에 응답하여 데이터 처리 연산들을 행하고, 트랜잭션을 정의하는 명령들의 시퀀스에 응답하여 상기 명령들의 시퀀스에 의해 정의된 데이터 처리 연산들의 트랜잭션 세트가 데이터 처리 로직에 의해 행해진 다른 데이터 처리 연산들에 대해 원자적으로 행해지게 하는 트랜잭션 지원 로직을 포함하는 상기 데이터 처리 로직과,
상기 트랜잭션을 정의하는 명령들의 시퀀스의 수행중에 동기 예외의 발생에 응답하여, 상기 트랜잭션 지원 로직이 상기 트랜잭션을 중단시켜, 상기 데이터 처리연산들의 트랜잭션 세트가 행해지지 않게 하는 예외 처리 로직을 포함하고,
상기 예외 처리 로직은, 상기 트랜잭션을 정의하는 명령들의 시퀀스의 수행중에 상기 동기 예외의 발생에 응답하여 예외 계수 로직에 의해 유지된 계수값을 증분하는 상기 예외 계수 로직을 포함하고, 상기 예외 처리 로직은 상기 계수값이 임계값에 도달하는 것에 응답하여 트랜잭션 실패 신호를 발생하는 컴퓨터 프로그램을 제공한다.
적어도 일부 실시예는 전술한 컴퓨터 프로그램을 기억하는 기억매체를 제공한다. 기억매체는 비일시적인 기억매체이어도 된다.
이하, 도면을 참조하여 특정한 실시예를 설명한다.
도 1은 일 실시예에 있어서의 장치(10)를 개략적으로 나타낸 것이다. 장치(10)는, 예를 들어, (도면에서 좌측으로부터 우측으로 진행하는) 파이프라인 스테이지들의 시퀀스의 형태를 갖는 데이터 처리회로(12)를 구비한다. 데이터 처리회로(12)는, 메모리(14)에서 검색되어 명령 캐시(16) 내부에 임시로 캐시된 명령들에 응답하여 데이터 처리 연산을 행한다. 데이터 처리 연산들은 메모리(14)에서 데이터 항목의 검색을 일으키고, 이 데이터 항목은 데이터 캐시(18) 내부에 임시로 캐시된다. 데이터 처리회로(12)가 행하는 데이터 처리 연산은 레지스터들(20)에 유지된 값들을 참조하고 수정한다. 데이터 처리회로(12)는, (예를 들어, "트랜잭션 개시" 명령으로 시작하고 "트랜잭션 종료" 명령으로 끝나는) 식별된 세트의 명령들에 의해 정의된 트랜잭션이 다른 데이터 처리 연산에 대해 원자적으로 행해지게 하는 트랜잭션 연산들을 데이터 처리회로가 지원할 수 있도록 할 수 있는 트랜잭션 처리회로(22)를 구비하는 것으로 도시되어 있다. 트랜잭션을 원자적으로 행하려고 할 경우, 실패하면 상태가 트랜잭션의 시작점으로 롤백할 필요가 있고, 레지스터들(20)의 세트에 있는 해당 레지스터들의 콘텐츠의 스냅샷이 이와 같은 용도로 사용됨으로써, 트랜잭션이 중단되는 경우, 트랜잭션의 개시시에 생성된 레지스터 스냅샷을 사용하여 미수에 그친 트랜잭션에서 행해진 이들 레지스터들에 대한 수정을 "되감는다(unwind)". 장치(10)는, 장치(10) 내부에서 발생하는 다양한 연산들에 관한 신호를 수신하고 이에 응답하여 예외신호를 발생할 수 있는 예외 제어회로(24)를 더 구비하는데, 이것은 일반적으로 보통 소정의 예외처리 루틴이 행해지게 한다. 더구나, 예외 제어회로(24)는 언제 트랜잭션이 진행중인지를 나타내는 신호를 트랜잭션 처리회로에서 수신하고, 이것은 이하의 도면을 참조하여 이하에서 더욱 상세히 설명하는 것과 같이 예외 제어회로(24)의 거동을 수정하지만, 특히 예외 제어회로(24)는, 예외에 응답하여 예외처리 루틴이 행해지게 하는 것 대신에, 예외가 트랜잭션중에서 발생하는 경우 이 예외를 금지하고, 트랜잭션이 중단된다. 더구나, 이 예외가 발생한 횟수의 계수값이 임계값에 도달하면, 트랜잭션 실패 신호가 발생하게 한다.
도 2는 일 실시예에 있어서의 예외 처리회로(30)를 개략적으로 나타낸 것이다. 예외 처리회로(30)는 예외회로(32)와 예외 계수회로(34)를 포함하는 것으로 도시되어 있다. 장치의 다양한 구성요소들로부터 복수의 신호들을 수신하고 이들 신호에 응답하여 예외를 발생하는 예외회로(32)는, 데이터 처리장치에서 예외 발생을 위해 본 발명이 속하는 기술분야의 당업자에게 있어서 자명한 방식으로 행하는 것으로 생각할 수 있다. 그러나, 특정한 상황에서는 예외신호가 예외 계수회로(36)와 이에 따라 예외 처리회로(30)로부터 영향을 받지 않고 송신되지만, 다른 상황에서는 그 대신에 트랜잭션 실패 신호가 발생된다는 점에서, 본 발명에 의해 제안된 예외 계수회로(34)는 예외신호에 대한 다양한 필터로서 생각될 수 있다. 이를 위해, 예외 계수회로는, 예외 카운터(36)와, 임계값 스토리지(38)와, 비교회로(40)와, 언제 예외가 수신되었는지와 언제 트랜잭션이 진행되지 않았는지 판정하는 회로 42를 구비한다. 예외 처리회로(30)는, (예를 들어, 도 1의 실시예에서 도시된 트랜잭션 처리회로(22)로부터) 트랜잭션이 언제 진행중인지 표시하는 신호를 수신한다. 이것은, 특히, 트랜잭션이 진행중인 동안 예외회로(32)에 의해 예외가 발생되는 경우에만 증분하도록 구성되는 예외 카운터(36)에 의해 수신된다. 예외 카운터(36)에 의해 표시된 값은 기억된 임계값(38)과 비교회로(40)에 의해 비교된다. 임계값은 (적절한 레벨의 특권을 갖는 시스템 내부의 에이전트, 예를 들어, 특권 레벨 코드에 의해) 프로그래밍가능한데, 이 변종은 도 2에 점선으로 표시된다. 예외 카운터가 임계값에 도달하였다고 비교회로(40)가 판정하면, 트랜잭션 실패 신호가 발생된다. 이것은 예를 들면 특권 레벨에 있는(예를 들어, 적절하다고 생각되는 경우에는, 예를 들어, 방어식으로 응답하기 위해 운영체계 레벨에 있는) 에이전트에 의해 수신된다. 그렇지 않고, 트랜잭션이 진행중인 동안 예외가 수신되었지만, 예외 카운터가 아직 임계값에 도달하지 않은 경우, 예외가 단순히 금지되어 트랜잭션시 예외 회로(44)에 의해 발생되고 있는 신호에 의해 트랜잭션이 중단된다. 그러나, 역으로 예외가 진행중이 아닌 동안에 예외가 수신되면, 이것을 식별하도록 구성된 회로 44가 예외신호가 발생되게 한다(즉, 사실상 이 예외신호는 영향을 받지 않고 예외 계수회로(34)를 통과한다). 그 결과 이 예외를 위해 정의된 예외처리 루틴이 행해진다.
도 3은 일 실시예에서의 예외 처리회로를 개략적으로 나타낸 것이다. 예외회로(50)는 전술한 것과 같은 다양한 시스템 구성요소들로부터 신호를 수신하고 이것에 응답하여 예외신호를 발생한다. 더구나, 그러나 도 3의 실시예에서 나타낸 것과 같이, 예외회로는 예외의 종류의 표시를 더 발생한다. 예외신호와 예외의 종류의 표시는 예외 처리회로(52) 내부의 예외 처리회로(52)에 의해 수신된다. 예외신호와 예외 종류 신호는 그 자체가 프로그래밍가능하여 수신된 예외신호에 대한 필터로서 동작하는 마스크(54)에 의해 수신된다. 그러나, 이때 마스크(54)에서 나온 도면의 점선은, 예외신호가 마스크(54)를 직접 우회하여 회로 56으로 마스크되지 않고 더 통과하는 것을 나타내는데, 이 회로 56은 트랜잭션이 진행중이 아닐 때 예외가 언제 수신되었는지 식별하여, 예외 처리회로(52)를 거쳐 예외신호를 "필터링되지 않은" 상태에서 통과시킬 수 있다. 예외신호는 AND 로직(58)에 의해 더 수신되는데, 이 AND 로직은 그것의 다른 입력에서 트랜잭션 진행 신호를 수신한다. 그 결과, 트랜잭션이 진행되는 동안 예외가 수신될 때, 중단 트랜잭션 신호가 발생된다. 마스크된 예외신호들은 예외신호의 종류에 따라 서로 다른 종류의 예외에 대한 각각의 계수값을 유지하는 2개의 카운터(60, 62) 중에서 한 개에 전달된다. 이들 카운터는 한가지 특정한 종류의 예외에 대해서만 계수값을 유지하거나, 또는 이들 카운터들 중에서 어느 한 개 또는 양쪽이 한 개보다 많은 종류의 예외에 대한 예외 계수값들을 합칠 수도 있다. 더구나, 다른 실시예에서는 2개보다 많은 수의 카운터들이 설치될 수도 있지만, 간략을 위해 도 3에는 단지 2개만 도시한다. 각각의 카운터는 관련된 임계값(64, 66)을 갖고, 관련된 비교회로(68, 70)가 각각의 카운터가 그것의 각각의 임계값에 도달하였다고 판정하면, 종류를 나타내는 트랜잭션 실패 신호가 발생된다. 도 3의 실시예에서는, 2가지 종류의 트랜잭션 실패 신호가 발생될 수 있다. 발생되는 트랜잭션 실패 신호의 수는 당연히 설치된 카운터들의 수에 의존한다. 이때, 카운터는 트랜잭션 진행 신호를 수신하여, 트랜잭션이 진행중인 동안 해당 종류의 예외가 수신되는 경우에만 카운터들이 구현된다.
도 4는 일 실시예에서의 예외 처리회로를 개략적으로 나타낸 것이다. 예외회로(80)는, 도 3의 예외회로(50)와 동일하게, 장치의 다양한 구성요소들로부터 다양한 신호들을 수신하고, 그 결과 예외신호와 예외의 종류의 표시를 발생한다. 이것들은 예외 처리회로(82)에 의해, 특히 그 내부에 설치된 필터(84)에 의해 수신되고, 이 필터는, 도 3의 마스크(54)와 마찬가지로, 예외들 또는 예외들의 종류들을 필터링하도록 구성되고, 수신된 해당 종류의 예외신호들의 표시를 카운터들(86, 88, 90) 중에서 한 개에 전달한다. 이들 각각의 카운터들에 의해 유지된 값들은, 예외 처리회로(82)에 대한 다양한 제어 기능을 제공하고 카운터들 각각에 대한 정의된 임계값을 유지하는 제어회로(92)에 의해 수신된다. 이들 카운터 중에서 한 개가 그것의 임계값에 도달하면, 제어회로(92)는 트랜잭션 실패 신호를 발생할 수 있다. 더구나, 카운터가 그것의 임계값에 도달하였는지 여부에 무관하게, 트랜잭션이 진행되는 동안 예외회로(80)로부터 예외가 수신될 때, 제어회로((2)가 트랜잭션 중단 신호를 발생한다. 역으로, 트랜잭션이 진행중이 아닐 때(제어신호가 장치의 트랜잭션 처리회로로부터 트랜잭션 진행중 신호를 수신할 때) 예외가 수신되면, 제어신호는 예외신호를 발생한다(즉, 유효하게 예외회로(80)에 의해 발생된 예외신호가 예외 처리회로(82)를 수정되지 않은 채 통과한다). 카운터들 중에서 한 개가 그것의 임계값에 도달할 때 트랜잭션 실패 신호를 발생하는 것 이외에, 제어회로(92)는 트랜잭션 실패에 관한 추가 정보를 제공하는 실패 프로파일 신호를 더 발생한다. 이것은, 예를 들어, 카운터들(86, 88, 90) 각각의 현재값들의 스냅값일 수도 있으며, 수신된 다수의 특정한 종류들의 예외를 나타낼 수도 있고, 특히 지정된 카운터가 그것의 임계값에 도달하게 한 다수의 특정한 종류의 예외들을 나타낼 수도 있다. 더구나, 제어회로(92)는 현재의 PC 값(94)의 표시를 수신하여, 트랜잭션 실패 신호가 발생되고 이와 관련된 실패 프로파일이 발생되는 상황에서, 제어회로(92)가 이의 대안으로, 또는 덧붙여, 현재의 PC 값(94)의 표시를 출력함으로써, 트랜잭션 실패 신호의 수신자가, 트랜잭션 내부의 어떤 명령이 해당 카운터가 그것의 임계값에 도달하게 만든 동기 예외를 발생하였는지 알 수 있다. 그렇지 않고, 트랜잭션이 단순히 중단되는 경우, 트랜잭션 세트를 정의하는 명령들의 세트 내부의 어떤 명령이 동기 예외와 이에 따른 트랜잭션 중단을 일으켰는지의 표시를 트랜잭션 실패 신호의 수신자가 갖지 않을 수도 있다. 최종적으로, 예외 처리회로(82)는 소정의 시간 간격에 신호를 제어회로(92)에 전송하도록 구성된 타이머(96)를 더 구비한다. 이 타이밍 신호의 수신에 응답하여, 제어회로(2)는 카운터들(86, 88, 90) 각각이 리셋되게 하여, 이 소정의 기간 내에 임계 수의 예외들이 수신될 때에만, 트랜잭션 실패 신호 등이 발생된다. 이것은, 트랜잭션 중단을 일으키는 예외들이 특정한 빈도보다 적게 발생하는 경우 이 예외들이 허용되는 것으로 판정되는 경우, 트랜잭션 실패 신호의 수신자가 트랜잭션 실패 신호에 의해 너무 빈번하게 교란되지 않게 된다는 것을 의미한다. 일반적으로, 도 2, 도 3 및 3h 4에 도시된 예외 처리회로 실시예의 다양한 구성요소들은 이들 실시예들 내부에 배타적으로 설치되는 것으로 생각되어서는 안되며, 본 발명의 보호범위 내에서 다른 실시예들에서 이들 특징들의 다양한 조합이 행해질 수도 있다는 것에 주목하기 바란다. 역으로, 도 2, 도 3 및 도 4의 각각에 개별적으로 도시된 구성요소들의 조합이 서로와 관련하여 반드시 설치되는 것으로 생각되어서는 안되는데, 예를 들어, 도 2가 단지 한 개의 예외 카운터를 갖는 실시예를 나타내고 도 4가 복수의 예외 카운터들과 프로그램 카운터 및 리셋 타이머 등의 추가적인 옵션의 특징을 갖는 실시예를 나타내는 경우, 프로그램 카운터와 리셋 타이머가 복수의 카운터들을 갖는 실시예에서만 설치되는 것으로 결론을 내려서는 안되며, 이들은 각각 또는 모두가 단지 한 개의 카운터를 갖는 실시예에 설치될 수도 있다. 이 내용은 기본적으로 서로 상호작용하는 것으로 달리 설명하지 않은 도 2, 도 3 및 도 4의 실시예 내부의 구성요소들에도 적용된다.
도 5는 일 실시예의 방법에서 취해지는 단계들의 시퀀스를 나타낸 것이다. 스텝 100에서 흐름이 시작하는 것으로 생각할 수 있는데, 이 스텝에서는 명령들에 의해 정의된 데이터 처리가 행해진다. 그후, 스텝 102에서, 예를 들어, "트랜잭션 개시" 명령을 사용하여, 명령 실행이 명령들의 트랜잭션 세트를 입력하였는지 판정한다. 입력하지 않은 경우에는, 전술한 방법이 트랜잭션이 진행중일 때에만 발생하는 프로세스에 관련되지 때문에, 스텝 100으로 흐름이 되돌아간다. 트랜잭션이 진행중이면, 스텝 102로부터 스텝 104로 흐름이 진행하여, 스텝 104에서 예외가 발생되었는지 판정한다. 예외가 발생되지 않은 경우에는, 스텝 112로 흐름이 진행하여, 예를 들어, "트랜잭션 종료" 명령을 사용하여, 트랜잭션이 완료하였는지 판정한다. 트랜잭션이 종료한 경우에는, 스텝 100으로 흐름이 되돌아간다. 그러나, 트랜잭션이 여전히 진행중인 경우, 스텝 104로 흐름이 되돌아간다. 더구나, 스텝 104에서, 예외가 수신된 것으로 판정되는 경우, 스텝 106에서 예외 카운터가 증분되고, 스텝 108에서 카운터가 그것의 임계값에 있는지 판정한다. 임계값에 있지 않은 경우에는, 스텝 110으로 흐름을 진행하여, 트랜잭션이 중단되고 스텝 100으로 흐름이 되돌아간다. 그러나, 스텝 108에서, 카운터가 그것의 임계값에 있는 것으로 밝혀지는 경우, 먼저 스텝 114에서 트랜잭션이 중단되고, 그후 스텝 116에서 트랜잭션 실패 신호가 발생된다. 마지막으로, 스텝 118에서, 예외 카운터가 리셋되고 스텝 100으로 흐름이 되돌아간다.
도 6은 사용될 수 있는 시뮬레이터 구현예를 나타낸 것이다. 전술한 실시예는 해당 기술을 지원하는 특정한 처리 하드웨어를 작동하기 위한 장치 및 방법에 관해 본 발명을 구현하지만, 컴퓨터 프로그램의 사용을 통해 구현되는 본 발명에서 설명한 실시예에 따라 명령 실행 환경을 제공하는 것도 가능하다. 이와 같은 컴퓨터 프로그램은, 하드웨어 아키텍처의 소프트웨어 기반의 구현을 제공하는 한, 시뮬레이터로 부르는 경우가 많다. 다양한 시뮬레이터 컴퓨터 프로그램은 에뮬레이터, 가상머신, 모델, 및 동적 이진 변환기를 포함하는 이진 변환기를 포함한다. 보통, 시뮬레이터 구현은, 옵션으로 시뮬레이터 프로그램(210)을 지원하는 호스트 운영체계(220)를 실행하는 호스트 프로세서(230) 상에서 실행된다. 일부 구성에서는, 하드웨어와 제공된 명령 실행 환경 사이에 복수 층의 시뮬레이션이 존재하고, 및/또는 동일한 호스트 프로세서 상에서 복수의 별개의 명령 실행 환경이 제공된다. 역사적으로, 합당한 속도에서 실행되는 시뮬레이터 구현을 제공하기 위해 강력한 프로세서들이 요구되었지만, 이와 같은 접근방법은, 호환성이나 재사용 이유로 인해 다른 프로세서에 대해 네이티브한 코드를 실행하려는 요구가 있을 때 등과 같은, 특정한 상황에서 정당화된다. 예를 들어, 시뮬레이터 구현은, 호스트 프로세서 하드웨어에 의해 지원되지 않는 추가적인 기능을 갖는 명령 실행 환경을 제공하거나, 보통 다양한 하드웨어 아키텍처와 관련된 명령 실행 환경을 제공한다. 시뮬레이터의 개관에 대해서는 "Some Efficient Architecture Simulation Techniques", Robert Bedichek, Winter 1990 USENIX Conference, Pages 53-63에 기재되어 있다.
본 실시예를 특정한 하드웨어 구성 또는 특징을 참조하여 설명하였지만, 시뮬레이션된 실시예에서는, 적절한 소프트웨어 구성 또는 특징에 의해 동등한 기능이 제공된다. 예를 들어, 특정한 회로가 시뮬레이션된 실시예에서는 컴퓨터 프로그램 논리로 구현된다. 마찬가지로, 레지스터 또는 캐시 등의 메모리 하드웨어도 시뮬레이션된 실시예에서는 소프트웨어 데이터 구조로 구현된다. 전술한 실시예에서 참조한 한 개 이상의 하드웨어 구성요소들이 호스트 하드웨어(예를 들어, 호스트 프로세서(230) 상에 존재하는 구성에서는, 적절한 경우에, 일부 시뮬레이션된 실시예가 호스트 하드웨어를 이용한다.
시뮬레이터 프로그램(210)은, 컴퓨터 판독가능한 기억매체(212)(이것은 비일시적인 매체일 수도 있다)에 기억되고, 시뮬레이터 프로그램(210)에 의해 모델링되고 있는 하드웨어 아키텍처의 응용 프로그램 인터페이스와 동일한 타겟 코드(200)(이것은 어플리케이션, 운영체계 및 하이퍼바이저를 포함한다)에 대한 프로그램 인터페이스(명령 실행 환경)를 제공한다. 따라서, 타겟 코드(200)의 프로그램 명령들은 시뮬레이터 프로그램(210)을 사용하여 명령 실행 환경 내에서 실행됨으로써, 전술한 장치(60)의 하드웨어 특징을 실제로 갖지 않는 호스트 컴퓨터(230)가 이들 특징을 에뮬레이트할 수 있다. 예를 들어, 시뮬레이터 프로그램(210)은 데이터 처리 로직(214) 및 예외처리 로직(216)을 구비하여 전술한 데이터 처리회로 및 예외 처리회로의 거동을 시뮬레이트한다. 따라서, 시뮬레이터 프로그램(210)은 트랜잭션을 정의하는 명령들의 시퀀스에 응답하여 명령들의 시퀀스에 의해 정의된 데이터 처리 연산들의 트랜잭션 세트가 데이터 처리 로직에 의해 행해진 다른 데이터 처리 연산들에 대해 원자적으로 행해지게 하는 트랜잭션 지원 로직을 더 포함한다.
간단하게 요약하면, 장치와 데이터 처리장치의 작동방법과, 그것의 시뮬레이터가 개시된다. 데이터 처리회로는 명령들에 응답하여 데이터 처리 연산들을 행하고, 이때 명령들의 일부 세트들은 데이터 처리회로에 의해 행해진 다른 연산들에 대해 원자적으로 행해지는 트랜잭션으로서 정의된다. 트랜잭션 중에 동기 예외가 발생하면, 트랜잭션이 중단되고 예외 카운터가 증분된다. 카운터가 임계값에 도달하면, 트랜잭션 실패 신호가 발생되어, 적절하다면 트랜잭션 중단을 일으키는 이와 같은 다수의 예외에 대한 응답이 실행될 수 있도록 한다.
본 발명에서, 단어 "하도록 구성된"은 장치의 구성요소가 정의된 동작을 행할 수 있는 구성을 갖는다는 것을 의미하기 위해 사용된다. 이와 관련하여, "구성"은 하드웨어 또는 소프트웨어의 배치 또는 상호접속 방식을 의미한다. 예를 들어, 장치는 정의된 동작을 제공하는 전용 하드웨어를 갖거나, 프로세서 또는 기타의 처리장치가 기능을 행하도록 프로그래밍되어도 된다. "하도록 구성된"은 이 장치의 구성요소가 정의된 동작을 제공하기 위해 어떤 식으로 변경될 필요가 있는 것을 시사하는 것은 아니다.
첨부도면을 참조하여 본 발명의 예시적인 실시예들을 상세히 설명하였지만, 본 발명은 이들 실시예에 한정되지 않으며, 첨부된 청구범위의 보호범위 및 사상을 벗어나지 않으면서 본 발명이 속한 기술분야의 당업자에 의해 다양한 변경, 부가 및 변화가 행해질 수 있다는 것은 자명하다. 예를 들면, 종속항들의 특징들의 다양한 조합이 독립항들의 특징과 행해질 수도 있다.

Claims (12)

  1. 데이터 처리 명령들에 응답하여 데이터 처리 연산들을 행하고, 트랜잭션을 정의하는 명령들의 시퀀스에 응답하여 상기 명령들의 시퀀스에 의해 정의된 데이터 처리 연산들의 트랜잭션 세트가 데이터 처리회로에 의해 행해진 다른 데이터 처리 연산들에 대해 원자적으로 행해지게 하는 트랜잭션 지원회로를 포함하는 상기 데이터 처리회로와,
    상기 트랜잭션을 정의하는 명령들의 시퀀스의 수행중에 동기 예외의 발생에 응답하여, 상기 트랜잭션 지원회로가 상기 트랜잭션을 중단시켜, 상기 데이터 처리연산들의 트랜잭션 세트가 행해지지 않게 하는 예외 처리회로를 구비하고,
    상기 예외 처리회로는, 상기 트랜잭션을 정의하는 명령들의 시퀀스의 수행중에 상기 동기 예외의 발생에 응답하여 예외 계수회로에 의해 유지된 계수값을 증분하는 상기 예외 계수회로를 구비하고, 상기 예외 처리회로는 상기 계수값이 임계값에 도달하는 것에 응답하여 트랜잭션 실패 신호를 발생하는 장치.
  2. 제 1항에 있어서,
    상기 임계값은 상기 예외 계수회로에 의해 유지된 프로그래밍가능한 값인 장치.
  3. 제 1항 또는 제 2항에 있어서,
    상기 예외 계수회로는 상기 트랜잭션을 정의하는 명령들의 시퀀스의 수행중에 상기 동기 예외의 발생에 응답하여 상기 동기 예외의 종류에 따라 상기 예외 계수회로에 의해 유지된 계수값을 증분하는 장치.
  4. 제 3항에 있어서,
    상기 예외 계수회로는 상기 동기 예외의 발생을 나타내는 예외 종류 착신신호들에 의해 필터링하도록 구성된 예외 종류 마스크를 구비한 장치.
  5. 제 3항 또는 제 4항에 있어서,
    상기 예외 계수회로는 복수의 카운터들을 구비하고, 상기 예외 계수회로는 상기 동기 예외의 종류에 따라 상기 복수의 카운터들 중에서 선택된 한 개의 카운터를 증분하도록 구성된 장치.
  6. 제 3항 내지 제 5항 중 어느 한 항에 있어서,
    상기 예외 처리회로는, 상기 계수값이 상기 임계값에 도달하는 것에 응답하여, 상기 계수값이 상기 임계값에 도달하게 한 상기 동기 예외의 종류를 나타내는 트랜잭션 실패 예외 종류 신호를 발생하는 장치.
  7. 제 3항 내지 제 6항 중 어느 한 항에 있어서,
    상기 예외 처리회로는, 상기 계수값이 상기 임계값에 도달하는 것에 응답하여,
    다수의 예외들,
    다수의 예외 종류들, 및
    상기 계수값이 상기 임계값에 도달하게 한 예외 종류들의 세트 각각의 다수의 예외들
    중에서 적어도 한 개를 나타내는 트랜잭션 실패 예외 프로파일을 출력하는 장치.
  8. 선행하는 청구항 중 어느 한 항에 있어서,
    상기 예외 계수회로는 소정의 기간을 측정하는 타이밍 회로를 구비하고, 상기 예외 계수회로는 상기 타이밍 회로가 상기 소정의 기간의 경과를 표시하는 것에 응답하여 상기 예외 계수회로에 의해 유지된 계수값을 리셋하는 장치.
  9. 선행하는 청구항 중 어느 한 항에 있어서,
    상기 예외 처리회로는, 상기 트랜잭션을 정의하는 명령들의 시퀀스의 수행중에 상기 동기 예외의 발생과 관련된 프로그램 카운터 값을 기억하는 예외 프로그램 카운터 스토리지를 구비하고, 상기 예외 처리회로는 상기 계수값이 상기 임계값에 도달하는 것에 응답하여 상기 프로그램 카운터 값을 출력하는 장치.
  10. 데이터 처리 명령들에 응답하여 데이터 처리 연산들을 행하는 단계와,
    트랜잭션을 정의하는 명령들의 시퀀스에 응답하여, 상기 명령들의 시퀀스에 의해 정의된 데이터 처리 연산들의 트랜잭션 세트가 다른 데이터 처리 연산들에 대해 원자적으로 행해지게 하는 단계와,
    상기 트랜잭션을 정의하는 명령들의 시퀀스의 수행중에 동기 예외의 발생에 응답하여, 상기 트랜잭션을 중단시켜, 상기 데이터 처리연산들의 트랜잭션 세트가 행해지지 않게 하는 단계와,
    상기 트랜잭션을 정의하는 명령들의 시퀀스의 수행중에 상기 동기 예외의 발생에 응답하여, 계수값을 증분하는 단계와,
    상기 계수값이 임계값에 도달하는 것에 응답하여, 트랜잭션 실패 신호를 발생하는 단계를 포함하는 데이터 처리장치의 작동방법.
  11. 호스트 데이터 처리장치를 제어하여 타겟 프로그램 코드의 명령들의 실행을 위한 명령 실행 환경을 제공하는 컴퓨터 프로그램으로서,
    데이터 처리 명령들에 응답하여 데이터 처리 연산들을 행하고, 트랜잭션을 정의하는 명령들의 시퀀스에 응답하여 상기 명령들의 시퀀스에 의해 정의된 데이터 처리 연산들의 트랜잭션 세트가 데이터 처리 로직에 의해 행해진 다른 데이터 처리 연산들에 대해 원자적으로 행해지게 하는 트랜잭션 지원 로직을 포함하는 상기 데이터 처리 로직과,
    상기 트랜잭션을 정의하는 명령들의 시퀀스의 수행중에 동기 예외의 발생에 응답하여, 상기 트랜잭션 지원 로직이 상기 트랜잭션을 중단시켜, 상기 데이터 처리연산들의 트랜잭션 세트가 행해지지 않게 하는 예외 처리 로직을 포함하고,
    상기 예외 처리 로직은, 상기 트랜잭션을 정의하는 명령들의 시퀀스의 수행중에 상기 동기 예외의 발생에 응답하여 예외 계수 로직에 의해 유지된 계수값을 증분하는 상기 예외 계수 로직을 포함하고, 상기 예외 처리 로직은 상기 계수값이 임계값에 도달하는 것에 응답하여 트랜잭션 실패 신호를 발생하는 컴퓨터 프로그램.
  12. 청구항 11에 기재된 컴퓨터 프로그램을 기억하는 기억매체.
KR1020207030034A 2018-04-11 2019-04-08 트랜잭션에서의 예외처리 KR20200139706A (ko)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
GR20180100155 2018-04-11
GR20180100155 2018-04-11
PCT/GB2019/051020 WO2019197811A1 (en) 2018-04-11 2019-04-08 Exception handling in transactions

Publications (1)

Publication Number Publication Date
KR20200139706A true KR20200139706A (ko) 2020-12-14

Family

ID=66379942

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020207030034A KR20200139706A (ko) 2018-04-11 2019-04-08 트랜잭션에서의 예외처리

Country Status (7)

Country Link
US (1) US11481290B2 (ko)
EP (1) EP3776196A1 (ko)
JP (1) JP7377812B2 (ko)
KR (1) KR20200139706A (ko)
CN (1) CN111936972A (ko)
IL (1) IL277508A (ko)
WO (1) WO2019197811A1 (ko)

Families Citing this family (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11436187B2 (en) 2020-10-20 2022-09-06 Micron Technology, Inc. Method of notifying a process or programmable atomic operation traps
US11740929B2 (en) 2020-10-20 2023-08-29 Micron Technology, Inc. Registering a custom atomic operation with the operating system
US11586439B2 (en) * 2020-10-20 2023-02-21 Micron Technology, Inc. Detecting infinite loops in a programmable atomic transaction
US11403023B2 (en) 2020-10-20 2022-08-02 Micron Technology, Inc. Method of organizing a programmable atomic unit instruction memory
US11693690B2 (en) 2020-10-20 2023-07-04 Micron Technology, Inc. Method of completing a programmable atomic transaction by ensuring memory locks are cleared
US11803324B2 (en) 2021-12-10 2023-10-31 Nxp B.V. System and method for managing transactions in integrated circuits

Family Cites Families (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP3100834B2 (ja) 1994-06-30 2000-10-23 三菱電機株式会社 電動式パワーステアリング回路装置
US6643765B1 (en) * 1995-08-16 2003-11-04 Microunity Systems Engineering, Inc. Programmable processor with group floating point operations
US6597777B1 (en) * 1999-06-29 2003-07-22 Lucent Technologies Inc. Method and apparatus for detecting service anomalies in transaction-oriented networks
US7814372B2 (en) 2007-09-07 2010-10-12 Ebay Inc. Method and system for exception detecting and alerting
US8255673B2 (en) * 2008-04-25 2012-08-28 Arm Limited Monitoring transactions in a data processing apparatus
US8924692B2 (en) 2009-12-26 2014-12-30 Intel Corporation Event counter checkpointing and restoring
US9442737B2 (en) * 2012-06-15 2016-09-13 International Business Machines Corporation Restricting processing within a processor to facilitate transaction completion
US20150189426A1 (en) * 2013-01-01 2015-07-02 Aliphcom Mobile device speaker control
US9317379B2 (en) * 2014-01-24 2016-04-19 International Business Machines Corporation Using transactional execution for reliability and recovery of transient failures
US9329946B2 (en) * 2014-02-27 2016-05-03 International Business Machines Corporation Salvaging hardware transactions
GB2536871A (en) * 2015-03-04 2016-10-05 Advanced Risc Mach Ltd An apparatus and method to generate trace data in response to transactional execution

Also Published As

Publication number Publication date
EP3776196A1 (en) 2021-02-17
IL277508A (en) 2020-11-30
US11481290B2 (en) 2022-10-25
JP7377812B2 (ja) 2023-11-10
US20210103503A1 (en) 2021-04-08
WO2019197811A1 (en) 2019-10-17
CN111936972A (zh) 2020-11-13
JP2021520548A (ja) 2021-08-19

Similar Documents

Publication Publication Date Title
KR20200139706A (ko) 트랜잭션에서의 예외처리
KR101740224B1 (ko) 불법 모드 변경처리
KR102075372B1 (ko) 안전한 도메인과 덜 안전한 도메인을 갖는 데이터 처리장치에서의 예외처리
JP5905904B2 (ja) デバッグ例外生成の制御
TWI612439B (zh) 用以偵測未經授權之記憶體存取的計算裝置、方法及機器可讀儲存媒體
KR101249693B1 (ko) 서브루틴 복귀 메카니즘 선택
KR20140123545A (ko) 안전 도메인 및 덜 안전 도메인을 갖는 데이터 처리장치에서의 예외 핸들링
JP2002268914A (ja) 特権命令の実行を監視する方法
KR20160147903A (ko) 액세스 제어 및 코드 스케줄링
JP6367490B2 (ja) プロセッサトランザクショナルメモリサポートを用いるメモリアクセス保護
CN107491373A (zh) 一种任务栈溢出监测方法及系统
CN112805710A (zh) 验证堆栈指针
JP2005316599A (ja) 割込制御装置
TWI748934B (zh) 資料處理設備中的系統錯誤處置
CN106354560B (zh) 一种系统的维护进程运行方法及装置
JPWO2012104950A1 (ja) 起動制御装置、情報機器および起動制御方法
US7409713B2 (en) Method of protecting software code
GR20180200121U (el) Διαχειριση εξαιρεσεων σε συναλλαγες
JP7069870B2 (ja) 情報処理装置
JP7444610B2 (ja) コンテキスト・データ管理
KR101961818B1 (ko) 프로세스 중단 없는 메모리 랜덤화 방법 및 이를 수행하기 위한 컴퓨팅 장치
JP2019020869A (ja) 車両制御装置
US20190197235A1 (en) Server and setting method thereof
CN113885887A (zh) 一种并发应用运行时加固方法与装置
JP2016053882A (ja) 半導体集積回路