KR102202148B1 - 클럭 비교기 부호 제어 - Google Patents

클럭 비교기 부호 제어 Download PDF

Info

Publication number
KR102202148B1
KR102202148B1 KR1020197020650A KR20197020650A KR102202148B1 KR 102202148 B1 KR102202148 B1 KR 102202148B1 KR 1020197020650 A KR1020197020650 A KR 1020197020650A KR 20197020650 A KR20197020650 A KR 20197020650A KR 102202148 B1 KR102202148 B1 KR 102202148B1
Authority
KR
South Korea
Prior art keywords
clock
value
tod
clock comparator
comparator
Prior art date
Application number
KR1020197020650A
Other languages
English (en)
Other versions
KR20190096393A (ko
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 KR20190096393A publication Critical patent/KR20190096393A/ko
Application granted granted Critical
Publication of KR102202148B1 publication Critical patent/KR102202148B1/ko

Links

Images

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
    • 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/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/30003Arrangements for executing specific machine instructions
    • G06F9/30007Arrangements for executing specific machine instructions to perform operations on data operands
    • G06F9/3001Arithmetic instructions
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F1/00Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
    • G06F1/04Generating or distributing clock signals or signals derived directly therefrom
    • G06F1/14Time supervision arrangements, e.g. real time clock
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/70Software maintenance or management
    • G06F8/78Methods to solve the "Year 2000" [Y2K] problem

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • Computational Mathematics (AREA)
  • Mathematical Analysis (AREA)
  • Mathematical Optimization (AREA)
  • Pure & Applied Mathematics (AREA)
  • Executing Machine-Instructions (AREA)
  • Debugging And Monitoring (AREA)

Abstract

클럭 비교기 부호 제어
클럭 비교기 부호 제어가 비교 연산에 사용된다. 부호 없는 산술 연산 또는 부호 있는 산술 연산이 비교하는 연산에서 사용될 것인지를 결정하는 클럭 비교기 부호 제어가 획득된다. 상기 클럭 비교기 부호 제어는 그 다음 선택된 액션이 인지될 것인지를 결정하기 위해 클럭 비교기의 값과 TOD 클럭의 값의 적어도 일부분의 비교에서 사용된다.

Description

클럭 비교기 부호 제어
[0001] 본 발명의 하나 또는 그 이상의 실시 예들은, 일반적으로, 컴퓨팅 환경 내에서의 처리에 관한 것으로, 특히 그러한 처리를 개선하는 것에 관한 것이다.
[0002] 컴퓨팅 환경은 종종 상기 환경 내에서의 처리를 제어하기 위해서 사용되는 타이밍 퍼실리티들(timing facilities)을 제공한다. 일 예로서, 미국, 뉴욕주 아몽크에 소재하는 인터내셔널 비즈니스 머신즈 코포레이션에 의해 공급되는 메인프레임 프로세서들은, 타이밍 퍼실리티를 제공하는데, 이는 다양한 하드웨어 타이밍 레지스터들, 상기 타이밍 레지스터들을 세트하고(setting) 검사하는 (inspecting) 명령들, 및 타이밍 레지스터 내의 값이 임계 값(threshold value)에 도달 할 때를 위한 인터럽션 메커니즘들(interruption mechanisms)을 포함한다.
[0003] 제공될 수 있는 예시적 레지스터들은 타임-오브-데이(a time-of-day: TOD) 클럭 레지스터(clock register)와 클럭 비교기 레지스터(a clock comparator register)이다. 클럭 비교기 레지스터는 TOD 클럭 레지스터가 특정 값에 도달하는 것에 기초하여, 인터럽션과 같은, 액션(an action)을 취할 것인지를 결정하기 위해 사용된다.
[0004] 컴퓨팅 환경에서 처리를 용이하게 하기 위한 컴퓨터 프로그램 제품의 제공을 통해, 종래 기술의 단점들이 극복되고 부가적인 장점들이 제공된다. 상기 컴퓨터 프로그램 제품은 처리 회로에 의해 판독 가능하고, 방법을 수행하기 위해 명령들을 저장하는 저장 매체를 포함한다. 상기 방법은, 부호 없는 산술 연산(unsigned arithmetic) 또는 부호 있는 산술 연산(signed arithmetic)이 비교하는 연산(a comparing operation)에서 사용될 것인지를 결정하기 위해 사용될 클럭 비교기 부호 제어(a clock comparator sign control)를 획득하는 단계; 및 선택된 액션(a selected action)이 인지되는 지를 결정하기 위해 클럭 비교기의 값과 TOD 클럭의 값의 적어도 일부분의 비교에서 상기 클럭 비교기 부호 제어를 사용하는 단계를 포함한다.
[0005] 상기 비교에서 상기 클럭 비교기 부호 제어를 사용하는 단계는, 상기 TOD 클럭이 오버플로 되었는지에 무관하게, 상기 선택된 액션이 인지 될 것인지를 정확하게 표시하는 결과를 가져온다.
[0006] 일 실시 예에서, 상기 클럭 비교기 부호 제어가 제1값에 세트 되는 것에 기초하여, 부호 없는 이진 산술 연산이 상기 비교에서 사용되고, 상기 제1 값은 다양한 수준들에서 운영 체제들을 위한 호환성을 제공하기 위한 디폴트 값(a default value)이다. 또한, 일 실시 예에서, 상기 클럭 비교기 부호 제어가 제2값에 세트 되는 것에 기초하여, 부호 있는 이진 산술 연산이 상기 비교에서 사용된다.
[0007] 예로서, 상기 선택된 액션은 상기 컴퓨팅 환경 내의 처리의 인터럽션이다.
[0008] 더 나아가, 한 예에서, 상기 클럭 비교기는 하나의 크기(one size )이고 상기 TOD 클럭은 상기 클럭 비교기의 다른 크기의 확장된 TOD 클럭(an extended time-of-day clock )이며, 상기 TOD 클럭은 오버플로 될 수 있다.
[0009] 예들로서, 상기 클럭 비교기 부호 제어는 제어 레지스터에 위치하고, 상기 클럭 비교기는 클럭 비교기 레지스터로서 구현되며, 및/또는 상기 TOD 클럭은 TOD 클럭 레지스터로서 구현된다.
[0010] 또한, 일 실시 예에서, 상기 클럭 비교기 부호 제어는 상기 TOD 클럭의 비교된 부분에서 불연속성(a discontinuity)을 구성하는 것을 명시하기 위해 사용된다.
[0011] 본 발명의 하나 또는 그 이상의 실시 예들에 관한 컴퓨터-구현 방법들 및 시스템들이 여기서 또한 설명되고 청구된다. 또한, 본 발명의 하나 또는 그 이상의 실시 예들에 관한 서비스들이 여기서 또한 설명되고 청구될 수 있다.
[0012] 추가적인 특징들 및 장점들은 본 명세서에 기술 된 기술들을 통해 실현된다. 다른 실시 예들도 본 명세서에 상세히 설명되고 청구된 실시 예들의 일부로서 고려된다.
[0013] 본 발명의 하나 또는 그 이상의 실시 예들이 본 명세서에 특별하게 설명되고 청구범위의 청구항들에서 예들로서 명확하게 청구된다. 본 발명의 하나 또는 그 이상의 실시 예들의 전술한 목적, 특징들 및 장점들은 첨부 된 도면들과 함께 설명하는 다음의 상세한 설명으로부터 명백하다.
도 1a는 본 발명의 하나 또는 그 이상의 실시 예들을 구체화하고 사용하기 위한 컴퓨팅 환경의 일 예를 도시한다;
도 1b는 본 발명의 한 실시 예에 따라, 도1a의 프로세서의 더 상세한 내용들을 도시한다;
도 2a는, 본 발명의 하나 또는 그 이상의 실시 예들을 구체화하고 사용하기 위한 컴퓨팅 환경의 다른 예를 도시한다;
도 2b는 도 2a의 메모리의 더 상세한 내용들을 도시한다;
도 3a는 본 발명의 한 실시 예에 따라, TOD 클럭 레지스터의 일 예를 도시한다;
도 3b는 본 발명의 한 실시 예에 사용된 TOD 클럭 레지스터의 다른 예를 도시한다;
도 4a는 본 발명의 한 실시 예에 따라 사용된 클럭 저장 명령(a Store Clock instruction)의 일 예를 도시한다;
도 4b는 본 발명의 한 실시 예에 따라, 도 4a의 클럭 저장 명령의 결과들의 포맷의 일 예를 그림으로 도시한다;
도 5a는 본 발명의 한 실시 예에 따라 사용된 확장된 클럭 저장 명령(a Store Clock Extended instruction)의 일 예를 도시한다;
도 4b는 본 발명의 한 실시 예에 따라, 도 5a의 확장된 클럭 저장 명령의 결과들의 포맷의 일 예를 그림으로 도시한다;
도 6은 본 발명의 한 실시 예에 따라 사용된 클럭 비교기 레지스터(a clock comparator register)의 일 예를 도시한다;
도 7은 본 발명의 한 실시 예에 따라 사용된 제어 레지스터(a control register)의 일 예를 도시한다;
도 8은 본 발명의 한 실시 예에 따른, 클럭 비교기 세트 명령(a Set Clock Comparator instruction)의 일 예를 도시한다;
도 9는 본 발명의 한 실시 예에 따른, 클럭 비교기 저장 명령(a Store Clock Comparator instruction)의 일 예를 도시한다;
도 10은 본 발명의 한 실시 예에 따를, 클럭 비교기 부호 제어(a clock comparator sign control)에 관련된 처리의 일 예를 도시한다.
[0014] 본 발명의 일 실시 예에 따라, 컴퓨팅 환경 내에서 처리를 용이하게 하기 위해 타이밍 퍼실리티(a timing facility)가 향상된다. 예를 들어, 클럭 비교기 부호 제어가 제공되는데, 이는 컴퓨팅 환경 내의 타이밍 정보의 비교 처리에 사용된다. 이 부호 제어는 하나의 크기(one size)(예를 들어, 64 비트)의 클럭 비교기와 다른 크기 (예를 들어, 104 비트)의 확장된- 포맷 TOD 클럭의 적어도 일부분과의 비교를 용이하게 하기 위해 제공되는데, 이는, TOD 클럭이 오버플로되었는지 여부에 관계없이, 클럭 비교기 인터럽션들과 같은, 액션들(actions)이 인지됨(그리고 아마도 액션들이 취해짐)을 정확하게 표시한다.
[0015] 본 발명의 하나 또는 그 이상의 실시 예들을 구현하고 사용하는 컴퓨팅 환경의 일 실시 예가 도 1a를 참조하여 기술된다. 한 예에서, 컴퓨팅 환경은, 미국, 뉴욕주 아몽크에 소재하는 인터내셔널 비즈니스 머신즈 코포레이션에 의해 공급되는, z/아키텍처에 기초한다. z/아키텍처의 한 실시 예는, 2015년 3월 발표된 IBM 공보 No. SA22-7832-10의 "z/아키텍처 작동 원리"에 기술되어 있고, 이는 전체로서 참조로 본 명세서에 포함된다. Z/ARCHITECTURE는 미국, 뉴욕주 아몽크에 소재하는 인터내셔널 비즈니스 머신즈 코포레이션의 등록 상표이다.
[0016] 또 다른 예에서, 컴퓨팅 환경은 미국, 뉴욕주 아몽크에 소재하는 인터내셔널 비즈니스 머신즈 코포레이션에 의해 공급되는 파우어 아키텍처(Power Architecture)를 기반으로 할 수 있다. 파우어 아키텍처의 한 실시 예는 2015 년 4 월 9 일 발표된 인터내셔널 비즈니스 머신즈 코포레이션"Power ISA ™ Version 2.07B "에 설명되어 있고, 이는 전체로서 본 명세서에서 참조로 포함된다. POWER ARCHITECTURE 는 미국, 뉴욕주 아몽크에 소재하는 인터내셔널 비즈니스 머신즈 코포레이션의 등록 상표이다.
[0017] 컴퓨팅 환경은 또한 Intel x86 아키텍처를 포함하되, 이에 국한되지 않는 다른 아키텍처를 기반으로 할 수도 있다.  다른 예들도 또한 있다.
[0018] 도 1a에 도시 된 바와 같이, 컴퓨팅 환경(100)은, 예를 들어, 범용 컴퓨팅 장치의 형태로, 도시된 컴퓨터 시스템(102)를 포함한다. 컴퓨터 시스템(102)는 하나 또는 그 이상의 프로세서들 또는 처리 장치들(104)(예를 들어, 중앙 처리 장치들(CPU들)), 메모리 (106)(예로서, 주 메모리 또는 저장소라 함), 및, 하나 또는 그 이상의 버스들 및/또는 다른 연결들(110)을 통해 서로 결합된, 하나 또는 그 이상의 입력/출력(I/O) 인터페이스들(108)을 포함 할 수 있지만, 이에 한정되는 것은 아니다.
[0019] 버스(110)는, 메모리 버스 또는 메모리 제어기, 주변장치 버스(a peripheral bus), 가속 그래픽 포트(an accelerated graphics port), 및 다양한 종류의 버스 아키텍처들 중 어느 하나를 사용하는 프로세서 또는 로컬 버스를 포함하는, 여러 유형의 버스 구조들 중 하나 또는 그 이상을 나타낸다. 예를 들어, 이러한 아키텍처들에는 ISA(Industry Standard Architecture) 버스, MCA(Micro Channel Architecture) 버스, EISA(Enhanced ISA) 버스, VESA(Video Electronics Standards Association) 로컬 버스, 및 PCI (Peripheral Component Interconnect) 버스가 포함되지만, 이에 한정되는 것은 아니다.
[0020] 메모리 (106)는, 예를 들어, 프로세서들 (104)의 로컬 캐시들(122)에 결합 될 수 있는, 공유 캐시와 같은 캐시(120)를 포함 할 수 있다. 또한, 메모리 (106)는 하나 또는 그 이상의 프로그램들 또는 애플리케이션들 (130), 운영 체제 (132), 및 하나 또는 그 이상의 컴퓨터 판독 가능 프로그램 명령들(134)을 포함 할 수 있다. 컴퓨터 판독 가능 프로그램 명령들(134)은 본 발명의 실시 예들의 기능들을 수행하도록 구성 될 수 있다.
[0021] 컴퓨터 시스템(102)는 또한, 예를 들어 I/O 인터페이스(108)를 통해, 하나 또는 그 이상의 외부 I/O 장치들(140), 하나 또는 그 이상의 네트워크 인터페이스들(142), 및/또는 하나 또는 그 이상의 데이터 저장 장치들(144)과 통신 할 수 있다. 외부 장치들의 예에는 사용자 단말기, 테이프 드라이브, 포인팅 디바이스, 디스플레이 등이 포함된다. 네트워크 인터페이스(142)는 컴퓨터 시스템(102)이 근거리 통신망(LAN), 일반 광역 네트워크(WAN), 및/또는 공용 네트워크 (예: 인터넷)와 같은, 다른 컴퓨팅 장치들 또는 시스템들과의 통신을 제공하는, 하나 또는 그 이상의 네트워크와 통신할 수 있도록 해준다.
[0022] 데이터 저장 장치(144)(에를 들어, 디스크)는 하나 또는 그 이상의 프로그램들(146), 하나 또는 그 이상의 컴퓨터 판독 가능 프로그램 명령들(148) 및/또는 데이터 등을 저장할 수 있다. 컴퓨터 판독 가능 프로그램 명령들은 본 발명의 실시 예들의 기능들을 수행하도록 구성 될 수 있다.
[0023] 컴퓨터 시스템(102)는 착탈식/비착탈식, 휘발성/비휘발성 컴퓨터 시스템 저장 매체를 포함할 수 있거나 그러한 것에 결합될 수 있다. 예를 들어, 컴퓨터 시스템(102)는 비착탈식, 비휘발성 자기 매체(일반적으로 "하드 드라이브"로 지칭 됨), 착탈식, 비휘발성 자기 디스크(예를 들어, "플로피 디스크")로부터의 판독 및 그 자기 디스크에의 기록을 위한 자기 디스크 드라이브, 및, CD-ROM, DVD-ROM 또는 다른 광 매체와 같은, 착탈식, 비휘발성 광 디스크로부터의 판독 또는 그 광 디스크에의 기록을 위한 광 디스크 드라이브를 포함하거나 그러한 것에 결합될 수 있다. 다른 하드웨어 및/또는 소프트웨어 컴포넨트들이 컴퓨터 시스템(102)과 함께 사용될 수 있음을 이해해야 한다. 이들의 예에는 마이크로 코드, 장치 드라이버들, 리던던트 처리 장치들, 외장형 디스크 드라이브 어레이들, RAID 시스템들, 테이프 드라이브들 및 데이터 아카이브 저장 시스템들 등이 포함되지만 이에 한정되지는 않는다.
[0024] 컴퓨터 시스템(102)은 다수의 다른 범용 또는 특수 목적 컴퓨팅 시스템 환경들 또는 구성들과 동작 가능할 수 있다. 컴퓨터 시스템(102)과 함께 사용하기에 적합 할 수 있는 잘 알려진 컴퓨팅 시스템들, 환경들 및/또는 구성들의 예로는 퍼스널 컴퓨터(PC) 시스템들, 서버 컴퓨터 시스템들, 씬(thin) 클라이언트들, 씩(thick) 클라이언트들, 핸드 헬드 또는 랩탑 장치들, 멀티프로세서 시스템들, 마이크로프로세서-기반 시스템들, 셋톱 박스들, 프로그램 가능 가전 제품들, 네트워크 PC들, 미니 컴퓨터 시스템들, 메인 프레임 컴퓨터 시스템들 및, 상기 시스템들 또는 장치들 중 어느 하나를 포함하는 분산 형 클라우드 컴퓨팅 환경 등을 포함하지만 이에 한정되는 것은 아니다.
[0025] 프로세서(104)의 일 예에 관한 더 상세한 설명은 도 1b를 참조하여 기술된다. 프로세서(104)는 명령 들을 실행하는데 사용되는 복수의 기능 컴포넌트들을 포함한다. 이들 기능 컴포넌트들은, 예를 들어, 실행될 명령을 페치하기 위한 명령 페치 컴포넌트(150); 상기 페치 된 명령들을 디코드 하고 상기 디코드 된 명령들의 오퍼랜드들을 획득하기 위한 명령 디코드 장치(152); 상기 디코드 된 명령들을 실행하기 위한 명령 실행 컴포넌트들(154); 필요한 경우 명령 실행을 위해 메모리에 액세스하는 메모리 액세스 컴포넌트(156); 및 실행 된 명령들의 결과들을 제공하기 위한 라이트 백 컴포넌트(160)를 포함한다. 이들 컴포넌트들 중 하나 또는 그 이상은 본 발명의 일 실시 예에 따라, 클럭 퍼실리티의 하나 또는 그 이상의 명령들(one or more instructions of a clock facility)(166)을 실행하는데 사용될 수 있고, 이에 관해서는 후술한다.
[0026] 프로세서(104)는 또한, 일 실시 예에서, 하나 또는 그 이상의 기능 컴포넌트들에 의해 사용될 하나 또는 그 이상의 레지스터들(170)을 포함한다.
[0027] 본 발명의 하나 또는 그 이상의 실시 예들을 구현하고 사용하는 컴퓨팅 환경의 다른 실시 예가 도 2a를 참조하여 설명된다. 이 예에서, 컴퓨팅 환경(200)은, 예컨대, 네이티브 중앙 처리 장치(CPU)(202), 메모리(204), 및, 예를 들어, 하나 또는 그 이상의 버스들(208) 및/또는 다른 접속들을 통해, 서로 연결된 하나 또는 그 이상의 입출력 장치들 및/또는 인터페이스들(206)을 포함한다. 예로서, 컴퓨팅 환경(200)은 미국, 뉴욕주 아몽크에 있는 인터내셔널 비즈니스 머신즈 코포레이션이 공급하는 PowerPC 프로세서 또는 pSeries 서버; 및/또는 인터내셔널 비즈니스 머신즈 코포레이션, 또는 기타 회사들이 공급하는 아키텍처들에 기초하는 기타 머신들을 포함할 수 있다. 
[0028] 네이티브 중앙 처리 장치(202)는, 환경 내에서 처리 중에 사용되는 하나 또는 그 이상의 일반 레지스터들 및/또는 하나 또는 그 이상의 특수 목적 레지스터들과 같은 하나 또는 그 이상의 네이티브 레지스터들(210)을 포함한다. 이들 레지스터들은 특정 시점에서 환경 상태를 나타내는 정보를 포함한다.
[0029] 더 나아가서, 네이티브 중앙 처리 장치(202)는 메모리(204)에 저장된 명령들 및 코드를 실행한다. 하나의 특정 예에서, 상기 중앙 처리 장치는 메모리 (204)에 저장된 에뮬레이터 코드(212)를 실행한다. 이 코드는 한 아키텍처에서 구성된 컴퓨팅 환경이 다른 아키텍처를 에뮬레이트 할 수 있게 해 준다. 예를 들어, 에뮬레이터 코드(212)는 z/아키텍처가 아닌 아키텍처들에 기초한 머신들, 예를 들어 PowerPC 프로세서들, pSeries 서버들, 또는 다른 서버들 또는 프로세서들이 z/아키텍처를 에뮬레이트 하여 z/아키텍처에 기초하여 개발된 소프트웨어 및 명령들을 실행할 수 있게 해 준다.
[0030] 에뮬레이터 코드(212)에 관한 더 상세한 설명은 도 2b 를 참조하여 기술된다. 메모리(204)에 저장된 게스트 명령들(250)은 네이티브 CPU(202)의 아키텍쳐가 아닌 아키텍쳐에서 실행되도록 개발 된 소프트웨어 명령들(예를 들어, 머신 명령들에 관련되는)을 포함한다. 예를 들어, 게스트 명령들(250)은 z/아키텍처 프로세서 상에서 실행하도록 설계되었지만, 예를 들어 인텔프로세서일 수 있는, 네이티브 CPU(202)상에서 에뮬레이트 될 수 있다. 한 예에서, 에뮬레이터 코드(212)는 메모리(204)로부터 하나 또는 그 이상의 게스트 명령들 (250)을 획득하고 획득 된 명령들에 대한 로컬 버퍼링을 선택적으로 제공하기 위한 명령 페치 루틴(252)을 포함한다. 또한, 획득 된 게스트 명령의 유형을 결정하고 상기 게스트 명령을 하나 또는 그 이상의 대응하는 네이티브 명령들 (256)로 변환하기 위한 명령 변환 루틴(254)을 포함한다. 이 변환은, 예를 들어, 상기 게스트 명령에 의해 수행 될 기능을 식별하는 것과 그 기능을 수행하기 위한 네이티브 명령(들)을 선택하는 것을 포함한다.
[0031] 또한, 에뮬레이터(212)는 네이티브 명령들이 실행되도록 하는 에뮬레이션 제어 루틴(260)을 포함한다. 에뮬레이션 제어 루틴(260)은 네이티브 CPU(202)로 하여금 하나 또는 그 이상의 이전에 획득 된 게스트 명령들을 에뮬레이트하는 네이티브 명령들의 루틴을 실행하게 하고, 그러한 실행의 종료 시에, 다음 게스트 명령 또는 일 군의 게스트 명령들을 획득하는 것을 에뮬레이트 하기 위해 상기 명령 페치 루틴에 제어를 반환(return)하게 할 수 있다. 네이티브 명령들(256)의 실행은 메모리(204)로부터 레지스터로 데이터를 로드하는 단계; 레지스터로부터 데이터를 메모리에 다시 저장하는 단계; 또는 상기 변환 루틴에 의해 결정되는 어떤 유형의 산술 또는 논리 연산을 수행하는 단계를 포함 할 수 있다.
[0032] 각 루틴은, 예를 들어, 소프트웨어로 구현되고, 상기 소프트웨어는 메모리에 저장되며, 네이티브 중앙 처리 장치(202)에 의해 실행된다. 다른 예에서, 하나 또는 그 이상의 루틴들 또는 연산들은 펌웨어, 하드웨어, 소프트웨어 또는 이들의 조합으로 구현된다. 에뮬레이트 된 프로세서의 레지스터들은 상기 네이티브 CPU의 레지스터들(210)을 사용하여 또는 메모리(204) 내의 위치들을 사용하여 에뮬레이트 될 수 있다. 실시 예들에서, 게스트 명령들(250), 네이티브 명령들 (256) 및 에뮬레이터 코드(212)는 동일한 메모리 내에 상주 하거나 또는 다른 메모리 장치들 사이에서 분산 될 수 있다.
[0033] 본 명세서에서 사용 된 바와 같이, 펌웨어는, 예를 들어, 프로세서의 마이크로 코드 및/또는 밀리 코드를 포함한다. 펌웨어는, 예를 들어, 하드웨어 레벨 명령들(the hardware-level instructions) 및/또는 상위 레벨 머신 코드의 구현에 사용 되는 데이터 구조들(data structures used in implementation of higher level machine code)를 포함한다. 일 실시 예에서, 펌웨어는, 예를 들어, 소유권 있는 코드(proprietary code)를 포함하며, 이 소유권 있는 코드는 통상적으로 마이크로 코드로 전달되며, 하부의 하드웨어(the underlying hardware)에 특정된 신뢰 소프트웨어 또는 마이크로 코드를 포함하고 시스템 하드웨어에 대한 운영 체제 액세스를 제어한다.
[0034] 획득되고, 변환되고 실행되는 게스트 명령 (250)은, 예를 들어, 여기서 기술된 명령들 중 하나이다. 상기 명령은, 하나의 아키텍처(예: z/Architecture)를 가지고 있고, 메모리에서 페치 되어, 다른 아키텍처 (예: PowerPC, pSeries, Intel 등)의 네이티브 명령들(256)의 시퀀스로 변환되어 표현된다. 그런 다음 이들 네이티브 명령들은 실행된다.
[0035] 본 발명의 일 실시 예에 따라, 여기서 기술 된 하나 또는 그 이상의 환경들의 프로세서는 하나의 타이밍 퍼실리티(a timing facility)를 포함하는데, 이는, 예를 들어, 타이밍 레지스터들(예를 들어, 하드웨어 레지스터들), 상기 타이밍 레지스터들을 세트하고 검사하는 명령들, 및 타이밍 레지스터 내의 값이 임계 값(a threshold value)에 도달할 때를 위한 인터럽션 메커니즘을 갖는다. 그러한 타이밍 퍼실리티의 예가 z/Architecture 및 그 전신들(its predecessors)을 참조하여 설명되지만, 본 발명의 실시 예들은 다른 아키텍처들에도 동일하게 적용될 수 있다.
[0036] 타이밍 레지스터의 일례는 TOD 클럭 레지스터이고, 그 일 예가 도 3a에 도시되어 있다. 인터내셔널 비즈니스 머신즈 코포레이션이 공급한 S/370 아키텍처 (1970 년경)에서 처음으로 정의 된 바와 같이, TOD 클럭 레지스터 (300)의 내용들은 64 비트 부호 없는 2진 정수이고, 여기서 비트 위치 51(302)은 매 마이크로 초마다 증가된다(incremented every microsecond). (IBM 메인 프레임 아키텍처들에서 비트들은, 일 예로서, 왼쪽에서 오른쪽으로 오름차순으로(in ascending order) 번호가 매겨진다(numbered )는 점을 주목해야 한다) 이 해상도(resolution)라면, 비트0은 대략 71.35 년을 나타낸다. 따라서 TOD-클럭 레지스터에서 어카운트 될(accounted for) 수 있는 시간(duration)은 대략 142.7 년이다; 이 시간을 에포크(an epoch)라 한다.
[0037] 1990 년대 후반에, 예를 들어, IBM 시스템 아키텍처에서, 사용하기 위해 확장 된 TOD 클럭 퍼실리티가 도입되었는데, 이는 TOD 클럭 레지스터의 크기를 증가시켰다. 도 3b에서 도시 된 바와 같이, TOD 클럭 레지스터(350)는, 예를 들어, 104 비트로 확장된다. 이 확장은 보다 정확한 측정을 가능하게 한다 (즉, 비트들이 상기 레지스터의 오른쪽에 추가되었다). 비트 위치51(352)은 계속 1 마이크로 초를 나타내며; 따라서 상기 레지스터의 전체 시간은 증가하지 않았다.
[0038] 클럭 저장(Store Clock: STCK) 명령이 정의되는데, 이는 TOD 클럭 레지스터의 최좌측 64 비트들이 모든 애플리케이션 프로그램에 의해서 검사 될 수 있게 해 준다(즉, STCK를 실행하는 데 특별한 권한이 요구되지 않는다). 일 실시 예에서, 상기 명령은 하드웨어/소프트웨어 인터페이스에서 단일의 아키텍처 된 머신 명령 일 수 있다.
[0039] 도 4a를 참조하여 클럭 저장 명령(a Store Clock instruction)의 일 예를 설명한다. 클럭 저장 명령(400)은 클럭 저장 연산(a store clock operation)을 표시하는 오피 코드를 갖는 연산 코드(opcode)필드(402); 베이스(B2)필드 (404); 및 변위(D2)필드(406)를 포함한다. 일 실시 예에서, 상기 명령의 필드는 서로 분리되고 서로 독립적이다. 그러나, 다른 실시 예에서, 둘 이상의 필드들이 결합 될 수 있다. 또한, 상기 명령의 필드와 관련된 첨자 번호는 필드가 적용되는 오퍼랜드를 나타낸다.   예를 들어, 첨자 2를 갖는 필드는 제 2 오퍼랜드와 관련된다.
[0040] 일 예로서, B2(404)에 의해 지정된 레지스터의 내용들은 D2(406)에 의해 제공된 값에 더하여져서 후술되는 바와 같이 사용되는 제 2 오퍼랜드 어드레스를 제공한다.
[0041] 일 예의 연산에서, 예를 들어, 64 비트 TOD 클럭(300)의 비트 0-63의 현재 값은, 상기 클럭이, 예로서, 세트, 정지, 또는 세트-아닌 상태에 있다면(provided the clock is in the set, stopped, or not-set state, as examples), 상기 제2오퍼랜드 어드레스의 의해서 지정된 8-바이트 필드 내 저장된다. 이 것은 도 4b에 도시되어 있고, 도 4b는 클럭 저장 명령의 실행 결과들(452)(즉, 64 비트 TOD 클럭 값)의 포맷(450)을 도시한다.
[0042] 일 실시 예에서, 클럭이 정지 될 때, 0들이 최우측의 비트 위치의 오른쪽 위치들에 저장되며, 클럭이 실행될 때 이 위치들은 증가된다(incremented). 클럭 저장을 위해, 실행중인 클럭의 값이 저장될 때, 0이 아닌 값들(nonzero values)이 최우측 증가된 비트의 오른쪽 위치들에(in positions to the right of the rightmost incremented bit) 저장 될 수 있다; 이는 고유한 값(a unique value)이 저장되는 것을 확실히 하기 위함이다.
[0043] 예를 들어, 클럭이 오류 상태 또는 비-작동 상태에(in the error state or the not-operational state) 있을 때, 0들이 오퍼랜드 위치에 저장된다.
[0044] 일 예에서, 직렬화 기능(a serialization function)은 클럭의 값이 페치 되기 전에 수행되고 그리고 클럭의 값이 저장소에 배치 된 후에 다시 수행된다.
[0045] 상기 명령에 의해 저장된 클럭 값의 품질(quality )은 최종 조건 코드 세팅(the resultant condition code setting)에 의해 표시된다. 조건 코드들의 예는 다음과 같다: 0 - 클럭이 세트 상태에 있음(in set state); 1 - 클럭이 세트-아닌 상태에 있음(in not-set state); 2 - 클럭이 오류 상태에 있음(in error state); 및 3 - 클럭이 정지 상태 또는 비-작동 상태에 있음(in stopped state or not-operational state).
[0046] 또한 다음과 같은 프로그램 예외들이 발생할 수 있다: 예로서, 액세스 (저장, 오퍼랜드2); 및 트랜잭션 강제(transaction constraint).
[0047] 일 실시 예에서, 클럭의 비트 위치31은 매 1.048576 초마다 증가된다; 따라서 인간의 반응을 포함하는 타이밍 어플리케이션들에서, 최좌측 클럭 워드(the leftmost clock word )는 충분한 해상도(resolution)를 제공 할 수 있다.
[0048] 또한, 조건 코드 0은 클럭이 제어 프로그램(예: 운영 체제)에 의해 세트 되었음을 정상적으로 표시한다. 따라서 상기 값은 경과된 시간 측정들에(in elapsed-time measurements) 사용될 수 있고 그리고 유효한 TOD 및 달력 표시로 사용될 수 있다. 조건 코드 1은 클럭 값이 클럭의 전원이 켜진 이후 경과 된 시간임을 표시한다. 이 경우 상기 값은 경과된 시간 측정에 사용될 수는 있지만, 유효한 TOD 표시가 될 수는 없다. 일 실시 예에서, 조건 코드 2 및 3은 클럭 저장 명령에 의해 제공된 값이 시간 측정 또는 표시를 위해 사용되지 않을 수 있음을 의미한다.
[0049] 더 나아가, 일 예에서, 조건 코드 3은 클럭이 정지 상태 또는 비-작동 상태 중 하나에 있음을 표시한다. 클럭이 비-작동 상태에 있을 때, 일 예로서, 모두-0인 값(an all-zero value)이 저장되기 때문에, 이들 두 상태들은 정상적으로 구별 될 수 있다.
[0050] 확장 된 TOD 클럭 레지스터를 위해, 전체 104-비트 TOD 클럭 뿐만 아니라, TOD 클럭의 왼쪽으로 0들의 바이트 (확장을 위한 여유 공간)를 저장하는, 확장된 클럭 저장(a Store Clock Extended: STCKE) 명령이 정의된다.
[0051] 확장 된 클럭 저장 명령의 일 예가 도 5a를 참조하여 기술된다. 일 실시 예에서, 상기 명령은 하드웨어/소프트웨어 인터페이스에서 단일의 아키텍처 된 머신 명령 일 수 있다. 예로서, 확장 된 클럭 저장 명령(500)은 확장 된 클럭 저장 연산(a store clock extended operation)을 표시하는 오피 코드를 갖는 연산 코드(opcode) 필드(502); 베이스(B2)필드(504); 및 변위(D2)필드(506)를 포함한다. 일 실시 예에서, 상기 명령의 필드들은 서로 분리되고 독립적이다. 그러나, 다른 실시 예에서, 둘 이상의 필드들이 결합 될 수 있다. 또한, 명령의 필드와 관련된 첨자 번호는 필드가 적용되는 오퍼랜드를 나타낸다. 예를 들어, 첨자 2를 갖는 각 필드는 제 2 오퍼랜드와 관련된다.
[0052] 일 실시 예에서, B2(504)에 의해 지정된 레지스터의 내용들은 D2(506)에 의해 제공된 값에 더하여져서 후술하는 바와 같이 사용되는 제 2 오퍼랜드 어드레스를 제공한다.
[0053] 도 5b를 참조하여 설명하는 연산에서, TOD 클럭의 비트 0-103의 현재 값은, 클럭이, 예로서, 세트, 정지 또는 세트-아닌 상태에 있다면, 후술하는, 에포크 인덱스(an epoch index: EX)라 하는, 확장 된 필드인, 제 2 오퍼랜드 어드레스에 의해 지정된 16 바이트 필드(550 )의 바이트 위치 1 내지 13(554)에 저장 된다. 0은 바이트 위치 0(552)에 저장된다. 또한, TOD 프로그래밍 가능 필드, TOD 프로그래밍 가능 레지스터의 비트 16-31의 내용들은, 예로서, 바이트 위치들 14 및 15(556)에 저장된다.
[0054] 일 실시 예에서, 클럭이 정지 될 때, 0들이 최우측 비트 위치의 오른쪽 위치들의 클럭 값에 저장되고, 이는 클럭이 실행될 때 증가 된다. 프로그램 가능 필드가 또한 저장 될 수 있다.
[0055] 실행중인 클럭의 값이 저장 될 때, 예를 들어, 클럭의 비트 위치들 64-103 (예를 들어, 저장소 오퍼랜드의 비트 위치들 72-111)의 값은 0이 아니다: 이는 확장된 클럭 저장 명령에 의해서 저장된 값들이 클럭 저장 명령에 의해서 저장된 값들과 비교되고 0들로 확장되었을 때 고유하다(unique)는 것을 보장한다.
[0056] 예를 들어, 클럭이 오류 상태 또는 비-작동 상태에 있을 때, 0들이 상기 오퍼랜드 위치에 저장된다.
[0057] 일 예에서, 직렬화 기능은 클럭 값이 페치 되기 전에 수행되고, 그리고 클럭의 값이 저장소에 배치 된 후에도 다시 수행된다.
[0058] 상기 명령에 의해 저장된 클럭 값의 품질은 최종 조건 코드 세팅에 의해 표시된다. 조건 코드들의 예는 다음과 같다: 0 - 클럭이 세트 상태에 있음; 1 - 클럭이 세트-아닌 상태에 있음; 2 - 클럭이 오류 상태에 있음; 및 3 - 클럭이 정지 상태 또는 비-작동 상태에 있음.
[0059] 또한, 다음과 같은 프로그램 예외들이 발생할 수 있다: 액세스(저장, 오퍼랜드2); 및 트랜잭션 강제.
[0060] 일 실시 예에서, 조건 코드 0은 클럭이 제어 프로그램에 의해 세트 되었음을 정상적으로 표시한다. 따라서 상기 값은 경과된 시간 측정에 사용될 수 있고 유효한 TOD 및 달력 표시로서 사용될 수 있다. 조건 코드 1은 클럭 값이 클럭의 전원이 켜진 이후의 경과된 시간임을 표시한다. 이 경우, 상기 값은 경과된 시간 측정들에 사용될 수 있지만 유효한 TOD 표시는 아니다. 조건 코드 2 및 3은, 일 실시 예에서, 확장 된 클럭 저장 명령에 의해서 제공된 값이 시간 측정 또는 표시를 위해 사용되지 않음을 의미한다.
[0061] TOD 클럭을 사용하는 운영 체제들(확장 되었던지 또는 아니던지)은 일반적으로 모든 2진 0들의 TOD 클럭 값이 1900 년 1 월 1 일 00:00:00 a.m.을 나타내는 규약을 채택하고 있다. 이 규약은 표준 에포크(a standard epoch)라 하는 시간(duration)을 나타낸다. 표준 에포크에서 TOD 클럭의 시간을 고려할 때, 클럭은 2042 년 9 월 17 일 23:53:57.370496 국제 원자 시간 (international atomic time: TAI)에서 0들로 돌아 갈 것이다.
[0062] TOD 클럭에 더하여, 타이밍 퍼실리티에 의해 제공되고 본 발명의 하나 또는 그 이상의 실시 예들에서 사용되는 또 다른 레지스터는 클럭 비교기이다. 클럭 비교기는 TOD 클럭 값이 프로그램에 의해 명시된 값을 초과 할 때마다 프로세서에 의해 외부 인터럽션이 인지되도록 하는 수단을 제공한다. 도 6에서 도시한, 일 예시에서, 클럭 비교기 레지스터(600)는, 예를 들어, 64 비트를 갖는다. 하나의 예에서, 구성의 각 CPU는 하나의 클럭 비교기 레지스터를 갖는데, 이 것의 포맷은 TOD 클럭의 비트0-63과 동일하다. 클럭 비교기는 클럭 비교기 세트 명령(Set Clock Comparator instruction)이라 하는 특권 명령(a privileged instruction )에 의해 세트 될 수 있으며, 예를 들어, 클럭 비교기 저장 특권 명령(a privileged Store Clock Comparator instruction )에 의해서 검사될 수 있다.
[0063] 일 실시 예에서, 비교 될 TOD 클럭의 일부분의 값이 클럭 비교기 레지스터의 값보다 클 때, 클럭 비교기 인터럽션에 대한 요청이 존재할 수 있다 (만일 클럭이 오류 또는 비-작동 상태에 있다면 특정 예외들이 적용될 경우도 있다). 한 예로, 이 비교는 부호 없는 2진 산술 연산을 사용하며, 클럭 비교기 레지스터의 모든 비트들을 비교하지 않을 수도 있다; 그러나, 일 실시 예에서, 적어도 비트들 0-47은 비교된다. (다른 실시 예에서, 더 많거나 적은 비트가 비교 될 수도 있다.) 계류중인 클럭 비교기 인터럽션이 실제로 발생 하는지 여부는, 예를 들어, CPU가 클럭 비교기 외부 인터럽들에 대해 인에이블 되었는지에 따라 달라진다. 일 예에서, 인에이블먼트 (enablement)는 두 개의 제어들에 의해 결정된다.
[0064] 1. 외부 인터럽션들 (또한 인터럽트들이라고도 함)은, 프로그램 상태 워드 (PSW)의 비트 7과 같이, 제어 레지스터의 선택된 비트에 의해 인에이블 된다. 프로그램 상태 워드는 상태 레지스터 및 프로그램 카운터의 기능들을 수행하는 제어 레지스터이다. 프로그램 상태 워드는, 조건 코드, 명령 주소 및 기타 정보를 포함하되, 이에 국한되지 않는, 적절한 프로그램 실행을 위해 사용되는 정보를 포함한다. 비트 7은 외부 인터럽트들의 인에이블먼트를 표시한다. 상기 비트가 1로 세트 되면, 외부 인터럽트들이 인에이블 된다.
[0065] 2. 만일 외부 인터럽션들이 인에이블 되었다면, 제어 레지스터 0과 같은, 제어 레지스터의 제2제어에서 하나의 비트(a bit in a second control in a control register)는 외부 인터럽션들의 클럭 비교기 서브 클래스가 인에이블 되었는지를 결정한다.
[0066] 계류중인 클럭 비교기 인터럽션은 클럭 비교기 레지스터를 TOD 클럭의 값과 같거나 더 큰 값으로 세트 함으로써 철회(withdrawn) 될 수 있다.
[0067] 현재, 확장 된 클럭 저장(Store Clock Extended: STCKE) 명령은 최좌측의 8 비트 위치들(도 5b의 EX 필드(552))에 0들을 저장한다. 1900 년 1 월 1 일에 시작하는 표준 에포크를 사용하면, TOD 클럭은 2042 년 9 월 17 일에 오버플로 될 것이다. 그러한 오버플로가 발생하면 캐리가 왼쪽으로 전파될 것이다. 즉, 에포크 인덱스(EX) 필드(552)는 TOD 클럭의 논리적 확장으로 간주 될 것이다. EX 및 TOD 클럭 필드들이 이런 방식으로 연결될 때, 대략 35,000년의 확장 된 에포크(an extended epoch)를 제공한다.
[0068] 그러나, 클럭 비교기 레지스터의 크기는 증가하지 않았다. 이렇게 함으로써 회로는 보다 단순해 지지만, TOD 클럭을 클럭 비교기 값과 어떻게 비교하느냐 하는 문제를 제기한다. 위에서 설명한 개선들로, TOD 클럭은 단일 에포크 보다 256 배 더 큰 확장 된 에포크를 수용 할 수 있다; 그러나 클럭 비교기는 단일 에포크로 제한된다.
[0069] 예를 들어, 현재 TOD 클럭이 오버플로 근처에 도달한 경우, 예를 들어, FFFFFFFF, 00000000 헥스에 도달한 경우를 가정해서 설명한다. 비트 위치 51은 1 마이크로 초를 나타내므로 비트 위치 31은 1.048,576 초를 나타낸다. 따라서 TOD 클럭은 단지 1 초 이상만 지나도 오버 플로우 된다. 만일 프로그램이 정확히 2.097,152 초에 발생하도록 클럭 비교기를 세트 하기를 원한다면, 현재 TOD 클럭에 00000002,00000000헥스의 값을 더하기 할 것이다. 상기 더하기의 결과는 1,0000,0001,00000000헥스이지만, 클럭 비교기는, 일 실시 예에서, 오직 64 비트 값 (그의 비트 위치들은TOD 클럭의 비트 위치들에 대응함)만을 수용하기 때문에, 캐리의 결과는 소실되고, 클럭 비교기는 00000001,00000000헥스에 세트 된다. 부호 없는 이진 산술 연산의 규칙들에 따라, 클럭 비교기가 이제 TOD 클럭 보다 적게 되므로, 비록 예상된 이벤트가 2 초 동안 발생하지 않더라도, 클럭 비교기 인터럽션은 즉시 계류 중이 될 것이다.
[0070] 따라서, 본 발명의 일 실시 예에 따라, TOD 클럭이 오버 플로우 하는 지에 상관없이 (즉, 에포크 인덱스가 TOD클럭의 논리 확장이 되는지에 상관없이), 확장된-포맷 TOD 클럭을 갖는 64-비트 클럭 비교기를 사용하는 능력이 제공된다. 한 실시 예에서, 부호 있는 또는 부호 없는 클럭 비교기의 비교들을 허용하는, 클럭 비교기 부호 제어를 정의하는 다수-에포크 퍼실리티 (a multiple-epoch facility: MEF)가 제공된다. 운영 체제에 의해서 적절하게 사용될 때, TOD 클럭의 대응 비트들이 오버플로 되었는지에 관계없이, 클럭 비교기 부호 제어는 64비트 클럭 비교기가 정확하게 클럭 비교기 인터럽션들을 표시하도록 할 수 있다. 일 실시 예에서, 클럭 비교기 부호 제어는 다수 에포크 퍼실리티가 구성 내에 설치 될 때 이용 가능하다. (MEF는 TOD 클럭이 최대 값에 도달 할 때 오버플로 되는 에포크 인덱스를 제공한다; 그러나, 클럭 비교기 부호 제어는 상기 에포크 인덱스와 독립적으로 작동함을 주목해야 한다)
[0071] 일 실시 예에서, 클럭 비교기 부호 제어는 제어 레지스터 내의 하나의 비트로서 구현된다. 예를 들어, 도 7에 도시 된 바와 같이, 제어 레지스터 0과 같은, 제어 레지스터(700)은, 하나의 클럭 비교기 부호 제어(702) 포함한다. 특정 실시 예에서, 클럭 비교기 부호 제어(702)는 제어 레지스터0 의 비트 10이지만, 다른 가능성도 존재한다. 한 예에서, 클럭 비교기 부호 제어의 의미는 다음과 같다.
[0072]  0 = 비교는 부호 없는 이진 산술 연산의 규칙들(the rules of unsigned binary arithmetic)을 따른다;
[0073] 1 = 비교는 부호 있는 이진 산술 연산의 규칙들(the rules of signed binary arithmetic)을 따른다.
[0074] 일 실시 예에서, 제어 레지스터0의 비트10은 이전에는 할당되지 않았고(previously unassigned) 디폴트에 의해서 0의 값에 리세트 되었기 때문에, 부호 없는 비교를 제공하기 위해 0의 값을 사용하면, 비록 MEF를 지원하는 머신에서 작동하더라도, MEF 를 알지 못하는 이전(older) 운영 시스템과의 호환성이 보장된다.
[0075] 부호 제어의 사용을 추가적으로 설명하기 위해, 위에서 언급 된 예는 반복되지만, 부호 있는 비교가 수행되는 것으로 가정한다.
[0076] TOD 클럭 = FFFFFFFF, 00000000헥스 
[0077] 클럭 비교기 = 00000001,00000000헥스 
[0078] 부호 있는 산술 연산을 사용하면, 각 값의 비트0은 부호 비트이다. 따라서, TOD 클럭은 초기에는 클럭 비교기의 양의 값(the positive value )보다 작은 음의 값(a negative value)을 포함한다. TOD 클럭이 클럭 비교기를 초과하는 충분한 양만큼(예를 들어, 01,00000001,00000123의 값까지)앞서 있다(advanced)고 가정한다. 여기서 최좌측 바이트는 에포크-인덱스(epoch-index)이고, 비교에는 참여하지 않는다. 따라서, TOD 클럭 값 (00000001,00000123)은 이제 클럭 비교기 (00000001,00000000)보다 크고, 그러므로 클럭 비교기 인터럽션이 계류 중이 된다.
[0079] 일 실시 예에서, 클럭 비교기 인터럽션을 전혀 인지 하지 못하거나 또는 클럭 비교기 인터럽션을 즉시 인지하기 위해 프로그램은 클럭 비교기 값을, 다음과 같이, 세트 할 수 있다;
[0080] 클럭 비교기 부호 제어가 0일 때:
[0081] 클럭 비교기를 0들로 세트 하면 클럭 비교기 인터럽션은 즉시 계류 중이 된다.
[0082] 클럭 비교기를 1들로 세트 하면 클럭 비교기 인터럽션 조건이 인지되지 못한다.
[0083] 다수-에포크 퍼실리티가 설치되고, 클럭 비교기 부호 제어가 1일 때:
[0084] 클럭 비교기를 최대 음의 값(80000000,00000000 헥스)으로 세트 하면 클럭 비교기 인터럽션은 즉시 계류 중이 된다.
[0085] 클럭 비교기를 최대 양의 값(7 FFFFFFF,FFFFFFFF 헥스)으로 세트 하면 클럭 비교기 인터럽션 조건은 인지되지 못한다.
[0086] 추가의 실시 예에서, 다수 에포크 퍼실리티가 구성에 설치되었을 때, 클럭 비교기 부호 제어는 제어 프로그램이 최대 부호 없는 TOD 클럭 값으로부터 0으로 전이하거나 (transitioning), 또는 최대 양의 부호 있는 TOD 클럭 값으로부터 최대 음의 값으로 전이하는 것을 체크하는 클럭 비교기의 목적들을 위해 TOD 클럭의 비교 된 부분에서 불연속성을 구성하는 것을 명시 할 수 있는 수단을 제공한다. 다시 말하면, 부호 없는 비교가 사용될 때, TOD클럭의 상기 비교 된 부분에 불연속성은 상기 비교된 비트들-부호 없는 값으로 취급됨-이 증가하여 상기 값이 최대 부호 없는 값으로부터 0까지 걸칠(wrap around) 때 일어난다. 부호가 있는 비교가 사용될 때, TOD클럭의 상기 비교 된 부분에서의 불연속성은 상기 비교된 비트들-부호 있는 값으로 취급됨-이 증가 하여 상기 값이 최대 양의 값으로부터 최대 음의 값까지 걸치게 될(wrap around) 때 발생한다.
[0087] 구성이 에포크 동안 적어도 한번 다시 초기화되었다고 가정하면, 클럭 비교기 부호 제어는 프로그램이 초기화 될 때 TOD 클럭의 비트 위치0의 내용들로 세트 하는 것이, 예를 들어, 권장된다. 이것은 클럭 비교기 체크가, 예를 들어, 클럭 비교기가 미래에 에포크의 절반 이상으로 세트 되지 않는 한, TOD 클럭 내의 불연속성을 관측하지 못함을 확인해 준다. 이는 클럭 비교기의 통상적인 사용에는 중요하지 않으며, 클럭 비교기 값들은 정상적으로, 예를 들어, 1초보다 적은 짧은 구간들을 표시하기 위해 세트 된다.
[0088] 일 실시 예에서, 클럭 비교기 부호 제어를 변경할 때 일관된 결과들을 보장하기 위해, 프로그램은 (a) 클럭 비교기 인터럽션들을 디스에이블 시키고, (b) 클럭 비교기 부호 제어를 세트 하며, (c) 새로운 비교기 값을 세트 하기 위해 클럭 비교기 세트 명령을 발행하고, 그 다음(d) 클럭 비교기 인터럽션들에 대해, 적절히 인에이블 시킨다.
[0089] 일단 세트 되면, 클럭 비교기 부호 제어는 (예컨대 초기 프로그램 로드 (IPL)와 같은) 다음 시작 CPU리세트 때까지 변경 없이 그대로 유지된다. 클럭 비교기 부호 제어의 동적인 변경은 변경된 제어의 결과로서 철회된 클럭 비교기 조건의 잘못된 인지를 또는 변경된 제어의 결과로서 계류 중이 된 클럭 비교기 조건의 지연된 인지를 초래 할 수 있다.
[0090] 전술 한 바와 같이, 클럭 비교기는 클럭 비교기 세트 명령(a Set Clock Comparator instruction)을 사용하여 세트 될 수 있다. 그러한 명령에 관한 더 상세한 설명은 도 8을 참조하여 기술된다. 일 실시 예에서, 상기 명령은 하드웨어/소프트웨어 인터페이스에서 단일의 아키텍처 된 머신 명령 일 수 있다.
[0091] 일 예에서, 클럭 비교기 세트 명령(800)은, 예를 들어, 클럭 비교기 세트 연산을 명시하는 오피 코드를 갖는 연산 코드(opcode)필드(802); 베이스(B2) 필드 (804); 및 변위 (D2) 필드(806)를 포함한다. 일 실시 예에서, 상기 명령의 필드들은 서로 분리되고 독립적이다. 그러나, 다른 실시 예에서, 둘 이상의 필드들이 결합 될 수 있다. 또한, 명령의 필드와 관련된 첨자 번호는 필드가 적용되는 오퍼랜드를 나타낸다. 예를 들어, 첨자 2를 갖는 필드는 제 2 오퍼랜드와 관련된다.
[0092] 하나의 예에서, B2(804)에 의해서 지정되는 레지스터의 내용들은 D2(806)에 의해서 제공되는 값에 더해져서 이하에서 기술되는 바와 같이 사용되는 제 2 오퍼랜드의 어드레스를 제공한다.
[0093] 한 예의 동작에서, 클럭 비교기의 현재 값은 제2 오퍼랜드 어드레스에 의해 지정된 더블 워드의 내용들에 의해서 대체된다.
[0094] 하나의 예로서, 이들 상기 오퍼랜드의 비트들은 TOD 클럭과 비교되는 비트 위치들에 대응하는 클럭 비교기 내에서 세트 된다; 일 실시 예에서, 상기 오퍼랜드의 남아있는 최우측 비트 위치들의 내용들은 무시되고 클럭 비교기에서 보존되지 않는다. 
[0095] 또한, 일 실시 예에서, 상기 오퍼랜드는 더블 워드 경계에서(on a doubleword boundary) 지정 될 수 있다; 그렇지 않으면, 스펙 예외(a specification excetio)가 인지 된다.
[0096] 더 나아가, 일 예에서, 모든 어드레싱 보호 예외들에서 연산은 금지된다(suppressed). 또한 다음 프로그램 예외들이 발생할 수 있다; 액세스(페치, 오퍼랜드 2); 특권 연산(privileged operation); 스펙(specification); 및 트랜잭션 강제(transaction constraint). 
[0097] 전술한 것에 더하여, 클럭 비교기는 클럭 비교기 저장 명령(a Store Clock Comparator instruction )에 의해 검사 될 수 있다. 일 실시 예에서, 상기 명령은 하드웨어/소프트웨어 인터페이스에서 단일의 아키텍처 된 머신 명령 일 수 있다.
[0098] 클럭 비교기 저장 명령의 일 예를 도 9를 참조하여 설명한다. 일 예시에서, 클럭 비교기 저장 명령(900)은, 예를 들어, 클럭 비교기 저장 연산을 명시하는 오피코드를 갖는 연산 코드(opcode) 필드(902); 베이스(B2) 필드(904); 및 변위(D2)필드(906)를 포함한다. 일 실시 예에서, 상기 명령의 필드들은 서로 분리되고 독립적이다. 그러나, 다른 실시 예에서, 둘 이상의 필드들이 결합 될 수 있다. 또한, 명령의 필드와 관련된 첨자 번호는 필드가 적용되는 오퍼랜드를 나타낸다. 예를 들어, 첨자 2를 갖는 필드는 제 2 오퍼랜드와 관련된다.
[0099] 하나의 예에서, B2(904)에 의해서 지정되는 레지스터의 내용들은 D2(906)에 의해서 제공되는 값에 더하여져서 이하에서 기술되는 바와 같이 사용되는 제 2 오퍼랜드의 어드레스를 제공한다.
[0100] 한 예의 동작에서, 클럭 비교기의 현재 값은 상기 제2 오퍼랜드 어드레스에 의해서 지정된 더블워드 위치에 저장된다.
[0101] 하나의 예로서, 0들이 TOD 클럭과 비교되지 않는 클럭 비교기의 최우측의 비트 위치들에 대해 제공된다.
[0102] 일 실시 예에서, 상기 오퍼랜드는 더블 워드 경계에서 지정 될 수 있다; 그렇지 않으면, 스펙 예외(a specification exception )가 인지된다. 또한, 일 예에서, 다음과 같은 프로그램 예외들이, 예를 들어, 발생할 수 있다: 액세스 (저장, 오퍼랜드 2); 특권 연산; 스펙; 및 트랜잭션 강제.
[0103] 클럭 비교기의 비교들이 부호 있게 또는 부호 없게 하는 것을 가능하게 하는 클럭 비교기 부호 제어를 정의하는 퍼실리티가 본 명세서에 기술된다. 이는 TOD 오버플로 조건에서도 정확한 결과들을 제공함으로써 컴퓨팅 환경 내에서의 처리를 용이하게 한다. 본 발명의 하나 또는 그 이상의 실시 예들은 컴퓨터 시스템에 불가분하게 결합되어 시스템 내의 처리를 향상시킨다.
[0104] 클럭 비교 부호 제어와 관련된 더 상세한 설명은 도 10을 참조하여 기술된다. 일 예시에서, 부호 없는 산술 연산 또는 부호 있는 산술 연산이 비교하는 연산에서 사용될 것인지를 결정하기 위해 사용되는 클럭 비교기 부호 제어가, 예를 들어, 프로세서에 의해 획득된다(1000). 이는, 예를 들어, 제어 레지스터 (예: 제어 레지스터 0)의 부호 제어 (예: 비트 10)에 액세스함에 의해서 달성된다. 클럭 비교기 부호 제어는 선택된 액션(예: 인터럽션)이 인지될 것인지를 결정하기 위해 클럭 비교기의 값과 TOD 클럭 값의 적어도 일부분의 비교에 사용된다 (1002). 예를 들어, 클럭 비교기의 값은, 예컨대, 클럭 비교기 저장(Store Clock Comparator) 명령을 사용하여 획득되고, TOD 클럭의 값은 예를 들어, 확장된 클럭 저장(Store Clock Extended) 명령을 사용하여 획득된다. 클럭 비교기의 값과 TOD 클럭의 값의 적어도 일부분은 클럭 비교기 부호 제어의 값에 따라 부호 없는 산술 연산 또는 부호 있는 산술 연산을 사용하여 비교된다. 예를 들어, 만일 상기 비교가 TOD 클럭의 값의 적어도 일부분이 클럭 비교기의 값보다 더 크다고 표시하면, 상기 선택된 액션이 인지 될 것이다.
[0105] 일 실시 예에서, 클럭 비교기 부호 제어가 제 1 값으로 세트 되는 것에 기초하여, 부호 없는 이진 산술 연산이 상기 비교에 사용된다 (상기 제1 값은 다양한 수준들에서 운영 체제들에 대한 호환성을 제공하기 위한 디폴트 값이다) (1004); 클럭 비교기 부호 제어가 제 2 값으로 세트 되는 것에 기초하여, 부호 있는 이진 산술 연산이 상기 비교에 사용된다 (1006); 
[0106] 상기 비교에서 클럭 비교기 부호 제어를 사용하면 TOD 클럭이 오버플로 되었는지에 상관없이, 선택된 액션이 인지될 것인지를 정확하게 표시할 수 있다(1008).
[0107] 일 실시 예에서, 클럭 비교기는 하나의 크기를 가지며 TOD클럭은 클럭 비교기와 다른 크기의 확장된 TOD 클럭이고, TOD 클럭은 오버플로 될 수 있다 (1010).
[0108] 또한, 예로서, 클럭 비교기 부호 제어는 제어 레지스터(1012) 내에 위치하고, 클럭 비교기는 클럭 비교기 레지스터 (1014)로 구현되며, 그리고/또는 TOD클럭은 TOD 클럭 레지스터로 구현된다(1016).
[0109] 또한, 일 예에서, 클럭 비교기 부호 제어는 또한 TOD클럭의 비교된 부분 내에서 불연속성을 구성하는 것을 명시하는 데 사용된다.
[0110] 많은 변형들이 가능하다.
[0111] 본 발명은 시스템, 방법, 및/또는 통합의 모든 가능한 기술적 세부 수준에서 컴퓨터 프로그램 제품이 될 수 있다. 컴퓨터 프로그램 제품은 컴퓨터 판독 가능 저장 매체를 포함할 수 있으며, 이 매체 상에 프로세서가 본 발명의 실시 예들을 수행하도록 하는 컴퓨터 판독 가능 프로그램 명령들을 갖는다.
[0112] 상기 컴퓨터 판독 가능 저장 매체는 명령 실행 장치에 의해 사용될 명령들을 유지 및 저장할 수 있는 유형의(tangible) 장치일 수 있다. 상기 컴퓨터 판독 가능 저장 매체는, 예를 들면, 전자 저장 장치, 자기 저장 장치, 광 저장 장치, 전자기 저장 장치, 반도체 저장 장치, 또는 전술한 것들의 모든 적절한 조합일 수 있으며, 그러나 이에 한정되지는 않는다. 컴퓨터 판독 가능 저장 매체의 더 구체적인 예들의 비포괄적인 목록에는 다음이 포함될 수 있다: 휴대용 컴퓨터 디스켓, 하드 디스크, 랜덤 액세스 메모리(RAM), 판독-전용 메모리(ROM), 소거 및 프로그램가능 판독-전용 메모리(EPROM 또는 플래시 메모리), 정적 랜덤 액세스 메모리(SRAM), 휴대용 컴팩트 디스크 판독-전용 메모리(CD-ROM), 디지털 다용도 디스크(DVD), 메모리 스틱, 플로피 디스크, 천공-카드들 또는 명령들이 기록된 홈에 있는 융기된 구조들 같이 기계적으로 인코드 된 장치, 및 전술한 것들의 모든 적절한 조합. 본 명세서에서 사용될 때, 컴퓨터 판독 가능 저장 매체는 무선 전파들이나 다른 자유롭게 전파되는 전자기파들, 도파 관이나 기타 전송 매체(예를 들어, 광섬유 케이블을 통해 전달되는 광 펄스들)를 통해 전파되는 전자기파들, 또는 선(wire)을 통해 전송되는 전기 신호들 같이 그 자체로 일시적인(transitory) 신호들로 해석되지는 않는다.
[0113] 본 명세서에 기술되는 컴퓨터 판독 가능 명령들은, 예를 들어, 인터넷, 근거리 통신망, 광역 통신망 및/또는 무선 네트워크 등의 통신망(네트워크)을 통해 컴퓨터 판독 가능 저장 매체로부터 각각 컴퓨팅/처리 디바이스들로 또는 외부 저장 장치로부터 외부 컴퓨터로 다운로드 될 수 있다. 상기 통신망은 구리 전송 케이블들, 광 전송 섬유들, 무선 전송, 라우터들, 방화벽들, 스위치들, 게이트웨이 컴퓨터들 및/또는 엣지 서버들을 포함할 수 있다. 각 컴퓨팅/처리 장치 내 네트워크 어댑터 카드 또는 네트워크 인터페이스는 상기 통신망으로부터 컴퓨터 판독 가능 프로그램 명령들을 수신하고 그 컴퓨터 판독 가능 프로그램 명령들을 각각의 컴퓨팅/처리 장치 내의 컴퓨터 판독 가능 저장 매체에 저장하기 위해 전송한다.
[0114] 본 발명의 연산들을 실행하기 위한 컴퓨터 판독 가능 프로그램 명령들은 Smalltalk, C++ 또는 그와 유사 언어 등의 객체 지향 프로그래밍 언어와 "C" 프로그래밍 언어 또는 그와 유사한 언어 등의 종래의 절차적 프로그래밍 언어들을 포함하여, 하나 또는 그 이상의 프로그래밍 언어들을 조합하여 작성된(written) 어셈블러 명령들, 명령-세트-아키텍처(ISA) 명령들, 머신 명령들, 머신 종속 명령들, 마이크로코드, 펌웨어 명령들, 상태-셋팅 데이터, 집적회로를 위한 구성 데이터, 또는 소스 코드나 목적 코드일 수 있다. 상기 컴퓨터 판독 가능 프로그램 명령들은 전적으로 사용자의 컴퓨터상에서, 부분적으로 사용자의 컴퓨터상에서, 독립형(stand-alone) 소프트웨어 패키지로서, 부분적으로 사용자의 컴퓨터상에서 그리고 부분적으로 원격 컴퓨터상에서 또는 전적으로 원격 컴퓨터나 서버상에서 실행될 수 있다. 위에서 마지막의 경우에, 원격 컴퓨터는 근거리 통신망(LAN) 또는 광역 통신망(WAN)을 포함한 모든 종류의 네트워크를 통해서 사용자의 컴퓨터에 접속될 수 있고, 또는 이 접속은 (예를 들어, 인터넷 서비스 제공자를 이용한 인터넷을 통해서) 외부 컴퓨터에 이루어질 수도 있다. 일부 실시 예들에서, 예를 들어 프로그램 가능 로직 회로, 필드-프로그램 가능 게이트 어레이들(FPGA), 또는 프로그램 가능 로직 어레이들(PLA)을 포함한 전자 회로는 본 발명의 실시 예들을 수행하기 위해 전자 회로를 맞춤화하도록 상기 컴퓨터 판독 가능 프로그램 명령들의 상태 정보를 활용하여 상기 컴퓨터 판독 가능 프로그램 명령들을 실행할 수 있다.
[0115] 본 명세서에서 본 발명의 실시 예들에 따른 방법들, 장치들(시스템들), 및 컴퓨터 프로그램 제품들의 순서 예시도들 및/또는 블록도들을 참조하여 본 발명의 실시 예들이 기술된다. 순서 예시도들 및/또는 블록도들의 각 블록과 순서 예시도들 및/또는 블록도들 내 블록들의 조합들은 컴퓨터 판독 가능 프로그램 명령들에 의해 구현될 수 있다는 것을 이해할 수 있을 것이다.
[0116] 이들 컴퓨터 판독 가능 프로그램 명령들은 범용 컴퓨터, 특수목적용 컴퓨터, 또는 기타 프로그램가능 데이터 처리 장치의 프로세서에 제공되어 머신(machine)을 생성하고, 그렇게 하여 그 명령들이 상기 컴퓨터 또는 기타 프로그램가능 데이터 처리 장치의 프로세서를 통해서 실행되어, 상기 순서도 및/또는 블록도의 블록 또는 블록들에 명시된 기능들/동작들을 구현하기 위한 수단을 생성할 수 있다. 이들 컴퓨터 판독 가능 프로그램 명령들은 또한 컴퓨터 판독 가능 저장 매체에 저장될 수 있으며, 컴퓨터, 프로그램가능 데이터 처리 장치 및/또는 기타 장치들에 지시하여 명령들이 저장된 상기 컴퓨터 판독 가능 저장 매체가 상기 순서도 및/또는 블록도의 블록 또는 블록들에 명시된 기능/동작의 특징들을 구현하는 명령들을 포함하는 제조품(an article of manufacture)을 포함하도록 특정한 방식으로 기능하게 할 수 있다.
[0117] 상기 컴퓨터 판독 가능 프로그램 명령들은 또한 컴퓨터, 기타 프로그램가능 데이터 처리 장치, 또는 다른 디바이스에 로드 되어, 상기 컴퓨터, 기타 프로그램가능 장치 또는 다른 디바이스에서 일련의 동작 단계들이 수행되게 하여 컴퓨터 구현 프로세스를 생성하며, 그렇게 하여 상기 컴퓨터, 기타 프로그램가능 장치, 또는 다른 장치 상에서 실행되는 명령들이 순서도 및/또는 블록도의 블록 또는 블록들에 명시된 기능들/동작들을 구현할 수 있다.
[0118] 도면들 내 순서도 및 블록도들은 본 발명의 여러 실시 예들에 따른 시스템들, 방법들 및 컴퓨터 프로그램 제품들의 가능한 구현들의 아키텍처, 기능(functionality), 및 동작(operation)을 예시한다. 이와 관련하여, 상기 순서도 또는 블록도들 내 각 블록은 상기 명시된 논리적 기능(들)을 구현하기 위한 하나 또는 그 이상의 실행 가능한 명령들을 포함한 모듈, 세그먼트 또는 명령들의 일부분을 나타낼 수 있다. 일부 다른 구현들에서, 상기 블록에 언급되는 기능들은 도면들에 언급된 순서와 다르게 일어날 수도 있다. 예를 들면, 연속으로 도시된 두 개의 블록들은 실제로는 사실상 동시에 실행될 수도 있고, 또는 이 두 블록들은 때때로 관련된 기능에 따라서는 역순으로 실행될 수도 있다. 블록도들 및/또는 순서 예시도의 각 블록, 및 블록도들 및/또는 순서 예시도 내 블록들의 조합들은 특수목적용 하드웨어 및 컴퓨터 명령들의 명시된 기능들 또는 동작들, 또는 이들의 조합들을 수행하는 특수목적용 하드웨어-기반 시스템들에 의해 구현될 수 있다는 것에 또한 주목해야 한다.
[0119] 전술한 것에 추가하여, 본 발명의 하나 또는 그 이상의 실시 예들은 고객 환경들의 관리를 공급하는 서비스 제공자에 의해 제공, 공급, 배치, 관리, 서비스 등이 될 수 있다. 예를 들면, 서비스 제공자는 하나 또는 그 이상의 고객들을 위해 본 발명의 하나 또는 그 이상의 실시 예들을 수행하는 컴퓨터 코드 및/또는 컴퓨터 인프라스트럭처의 제작, 유지, 지원 등을 할 수 있다. 그 대가로, 서비스 제공자는, 예를 들어, 가입제(subscription) 및/또는 수수료 약정에 따라 고객으로부터 대금을 수령할 수 있다. 추가적으로 또는 선택적으로, 서비스 제공자는 하나 또는 그 이상의 제3자들에게 광고 콘텐츠를 판매하고 대금을 수령할 수 있다.
[0120] 한 예에서, 본 발명의 하나 또는 그 이상의 실시 예들을 수행하기 위해 하나의 애플리케이션이 배치될 수 있다. 한 예로서, 하나의 애플리케이션의 배치는 본 발명의 하나 또는 그 이상의 실시 예들을 수행하기 위해 동작 가능한 컴퓨터 인프라스트럭처를 제공하는 것을 포함할 수 있다.
[0121] 추가의 예로서, 컴퓨터 판독 가능 코드를 컴퓨팅 시스템으로 통합하는 것을 포함하는 컴퓨팅 인프라스트럭처가 배치될 수 있으며, 그 컴퓨팅 시스템에서 상기 코드는 상기 컴퓨팅 시스템과 결합하여 본 발명의 하나 또는 그 이상의 실시 예들을 수행할 수 있다.
[0122] 추가 예로서, 컴퓨터 판독 가능 코드를 컴퓨터 시스템으로 통합시키는 것을 포함하는 컴퓨팅 인프라스트럭처를 통합하기 위한 프로세스가 제공될 수 있다. 상기 컴퓨터 시스템은 컴퓨터 판독 가능 매체를 포함하고, 상기 컴퓨터 시스템에서 상기 컴퓨터 매체는 본 발명의 하나 또는 그 이상의 실시 예들을 포함한다. 상기 코드는 상기 컴퓨터 시스템과 결합하여 본 발명의 하나 또는 그 이상의 실시 예들을 수행할 수 있다.
[0123] 위에서 다양한 실시 예들이 기술되었지만, 이들은 단지 예시들일 뿐이다. 예를 들면, 다른 아키텍처들의 컴퓨팅 환경들이 본 발명의 하나 또는 그 이상의 실시 예들을 포함하고 사용하는 데 사용될 수 있다. 또한, 다른(different) 명령들, 명령 포맷들, 명령 필드들 및/또는 명령 값들이 사용될 수 있다. 추가적으로, 상기 컴퓨터 시스템 및/또는 환경은 더 많은, 더 적은 및/또는 다른 컴포넨트들을 포함할 수 있다. 많은 변형들이 가능하다.
[0124] 또한, 다른 유형의 컴퓨팅 환경들도 유익을 얻을 수 있고 사용될 수 있다. 예로서, 프로그램 코드를 저장 및/또는 실행하기에 적합한 데이터 처리 시스템이 사용될 수 있으며, 이 시스템은 시스템 버스를 통해서 메모리 엘리먼트들에 직접적으로 또는 간접적으로 결합된 적어도 두 개의 프로세서를 포함한다. 상기 메모리 엘리먼트들은, 예를 들어 프로그램 코드의 실제 실행 동안 사용되는 로컬 메모리, 대용량 스토리지(bulk storage), 및 코드가 실행 동안에 대용량 저장소로부터 검색되어야 하는 횟수를 줄이기 위해 적어도 일부 프로그램 코드의 임시 저장(temporary storage)을 제공하는 캐시 메모리를 포함한다.
[0125] 입력/출력 또는 I/O 장치들(키보드, 디스플레이, 포인팅 장치, DASD, 테이프, CD, DVD, 썸 드라이브 및 기타 메모리 매체 등을 포함하나 이에 한정되지는 않음)은 직접 또는 중개(intervening) I/O 제어기들을 통해서 상기 시스템에 결합될 수 있다. 네트워크 어댑터 또한 상기 시스템에 결합되어 상기 데이터 처리 시스템이 중개하는 사설 또는 공공 네트워크를 통해서 기타 데이터 처리 시스템 또는 원격 포인터 또는 저장 장치에 결합되는 것을 가능하게 한다. 모뎀, 케이블 모뎀, 및 이더넷 카드는 이용 가능한 유형의 네트워크 어댑터들의 단지 일부 예이다.
[0126] 본 명세서에서 사용된 용어들은 단지 본 발명의 특정 실시 예들을 기술할 목적으로 사용된 것이지 한정하려는 의도로 사용된 것은 아니다. 본 명세서에서 사용할 때, 단수 형태는 그 컨텍스트에서 그렇지 않은 것으로 명확히 명시되어 있지 않으면, 복수 형태도 또한 포함할 의도로 기술된 것이다. 또한, "포함한다" 및/또는 "포함하는" 이라는 말들은 본 명세서에서 사용될 때, 언급되는 특징들, 정수들, 단계들, 동작들, 엘리먼트들, 및/또는 컴포넌트들의 존재를 명시하지만, 하나 또는 그 이상의 다른 특징들, 정수들, 단계들, 동작들, 엘리먼트들, 컴포넌트들 및/또는 이들의 그룹들의 존재 또는 추가를 배제하는 것은 아니라는 것을 이해할 수 있을 것이다.
[0127] 이하의 청구항들에서, 대응하는 구조들(structures), 재료들(materials), 동작들(acts), 및 모든 수단의 등가물들 또는 단계 플러스 기능 엘리먼트들은, 만일 있다면, 구체적으로 청구되는 다른 청구된 엘리먼트들과 함께 그 기능을 수행하기 위한 구조, 재료, 또는 동작을 포함할 의도가 있다. 본 발명의 하나 또는 그 이상의 실시 예들에 대한 설명은 예시와 설명의 목적으로 제공되는 것이며, 개시되는 형태로 빠짐없이 총 망라하거나 한정하려는 의도가 있는 것은 아니다. 이 기술 분야에서 통상의 지식을 가진 자라면 많은 수정들 및 변형들이 있을 수 있다는 것을 알 수 있다. 본 발명의 실시 예는 여러 특징들 및 실제 응용을 가장 잘 설명하기 위해 그리고 고려되는 구체적인 용도에 적합하게 여러 수정들을 갖는 다양한 실시 예들을 이 기술 분야에서 통상의 지식을 가진 자들이 이해할 수 있도록 하기 위해, 선택되고 기술되었다.

Claims (20)

  1. 처리 회로에 의해 판독 가능하고, 컴퓨팅 환경에서 처리를 용이하게 하기 위한 방법을 수행하기 위해 명령들을 저장하는 컴퓨터 판독 가능 저장 매체에 있어서, 상기 방법은:
    부호 없는 산술 연산(unsigned arithmetic) 또는 부호 있는 산술 연산(signed arithmetic )이 비교하는 연산(a comparing operation)에서 사용될 것인지를 결정하기 위해 사용될 클럭 비교기 부호 제어(a clock comparator sign control)를 획득하는 단계;
    선택된 액션(a selected action)이 인지될(recognized) 것인지를 결정하기 위해 클럭 비교기의 값과 타임-오브-데이(a time-of-day: TOD) 클럭 값의 적어도 일부분과 비교함에서 상기 클럭 비교기 부호 제어를 사용하는 단계 - 상기 비교에서 상기 클럭 비교기 부호 제어를 사용하는 단계는, 상기 TOD클럭이 오버플로되었는 지에 무관하게, 상기 선택된 액션이 인지될 것인지를 정확하게 표시하는 결과를 가져옴-;
    프로세서에 의해서, 상기 비교에 기초하여, 상기 선택된 액션을 수행하는 단계를 포함하는
    컴퓨터 판독 가능 저장 매체.
  2. 제 1 항에 있어서, 상기 클럭 비교기 부호 제어가 제1값(a first value)에 세트 되는 것에 기초하여, 부호 없는 이진 산술 연산이 상기 비교에서 사용되고, 상기 제1 값은 다양한 수준들에서 운영 체제들을 위한 호환성을 제공하기 위해 디폴트 값이 되는
    컴퓨터 판독 가능 저장 매체.
  3. 제 2 항에 있어서, 상기 클럭 비교기 부호 제어가 제2값(a second value)에 세트 되는 것에 기초하여, 부호 있는 이진 산술 연산이 상기 비교에서 사용되는
    컴퓨터 판독 가능 저장 매체.
  4. 제 1 항에 있어서, 상기 선택된 액션은 상기 컴퓨팅 환경 내의 처리의 인터럽션인
    컴퓨터 판독 가능 저장 매체.
  5. 제 1 항에 있어서, 상기 클럭 비교기는 하나의 크기(one size )이고 상기 TOD 클럭은 상기 클럭 비교기와 다른 크기인 확장된 TOD 클럭(an extended time-of-day clock )이며, 상기 TOD 클럭은 오버플로 될 수 있는
    컴퓨터 판독 가능 저장 매체.
  6. 제 1 항에 있어서, 상기 클럭 비교기 부호 제어는 제어 레지스터(a control register)에 위치하는
    컴퓨터 판독 가능 저장 매체.
  7. 제 1 항에 있어서, 상기 클럭 비교기는 클럭 비교기 레지스터로서 구현되고 상기 TOD 클럭은 TOD 클럭 레지스터로서 구현되는
    컴퓨터 판독 가능 저장 매체.
  8. 제 1 항에 있어서, 상기 방법은 상기 TOD클럭의 비교된 부분에서 불연속성(a discontinuity)을 구성하는 것을 명시하기 위해 상기 클럭 비교기 부호 제어를 사용하는 단계(using)를 더 포함하는
    컴퓨터 판독 가능 저장 매체.
  9. 컴퓨팅 환경 내에서 처리를 용이하게 하기 위한 컴퓨터 시스템에 있어서, 상기 컴퓨터 시스템은:
    메모리; 및
    상기 메모리와 통신하는 프로세서를 포함하고, 상기 컴퓨터 시스템은 방법을 수행하도록 구성되며, 상기 방법은:
    부호 없는 산술 연산 또는 부호 있는 산술 연산이 비교하는 연산에서 사용될 것인지를 결정하기 위해 사용될 클럭 비교기 부호 제어를 획득하는 단계;
    선택된 액션(a selected action)이 인지될(recognized) 것인지를 결정하기 위해 클럭 비교기의 값과 타임-오브-데이(a time-of-day: TOD) 클럭 값의 적어도 일부분과 비교함에서 상기 클럭 비교기 부호 제어를 사용하는 단계 - 상기 비교에서 상기 클럭 비교기 부호 제어를 사용하는 단계는, 상기 TOD클럭이 오버플로되었는 지에 무관하게, 상기 선택된 액션이 인지될 것인지를 정확하게 표시하는 결과를 가져옴-;
    상기 프로세서에 의해서, 상기 비교에 기초하여, 상기 선택된 액션을 수행하는 단계를 포함하는
    컴퓨터 시스템.
  10. 제 9 항에 있어서, 상기 클럭 비교기 부호 제어가 제1값에 세트 되는 것에 기초하여, 부호 없는 이진 산술 연산이 상기 비교에서 사용되고, 상기 제1 값은 다양한 수준들에서 운영 체제들을 위한 호환성을 제공하기 위해 디폴트 값이 되는
    컴퓨터 시스템.
  11. 제 10 항에 있어서, 상기 클럭 비교기 부호 제어가 제2값에 세트 되는 것에 기초하여, 부호 있는 이진 산술 연산이 상기 비교에서 사용되는
    컴퓨터 시스템.
  12. 제 9항에 있어서, 상기 선택된 액션은 상기 컴퓨팅 환경 내의 처리의 인터럽션인
    컴퓨터 시스템.
  13. 제 9항에 있어서, 상기 클럭 비교기는 하나의 크기이고 상기 TOD 클럭은 상기 클럭 비교기와 다른 크기인 확장 된 TOD 클럭이며, 상기 TOD 클럭은 오버플로 될 수 있는
    컴퓨터 시스템.
  14. 제 9 항에 있어서, 상기 방법은 상기 TOD클럭의 비교된 부분에서 불연속성(a discontinuity)을 구성하는 것을 명시하기 위해 상기 클럭 비교기 부호 제어를 사용하는 단계(using)를 더 포함하는
    컴퓨터 시스템.
  15. 컴퓨팅 환경에서 처리를 용이하게 하기 위한 컴퓨터-구현 방법에 있어서, 상기 컴퓨터-구현 방법은:
    부호 없는 산술 연산 또는 부호 있는 산술 연산이 비교하는 연산에서 사용될 것인지를 결정하기 위해 사용될 클럭 비교기 부호 제어를, 프로세서에 의해서, 획득하는 단계; 및
    선택된 액션(a selected action)이 인지될(recognized) 것인지를 결정하기 위해 클럭 비교기의 값과 타임-오브-데이(a time-of-day: TOD) 클럭 값의 적어도 일부분을 비교함에서 상기 클럭 비교기 부호 제어를 사용하는 단계 - 상기 비교에서 상기 클럭 비교기 부호 제어를 사용하는 단계는, 상기 TOD클럭이 오버플로 되었는지에 무관하게, 상기 선택된 액션이 인지될 것인지를 정확하게 표시하는 결과를 가져옴-;
    상기 프로세서에 의해서, 상기 비교에 기초하여, 상기 선택된 액션을 수행하는 단계를 포함하는
    컴퓨터-구현 방법.
  16. 제 15 항에 있어서, 상기 클럭 비교기 부호 제어가 제1값에 세트 되는 것에 기초하여, 부호 없는 이진 산술 연산이 상기 비교에서 사용되고, 상기 제1 값은 다양한 수준들에서 운영 체제들을 위한 호환성을 제공하기 위해 디폴트 값이되는
    컴퓨터-구현 방법.
  17. 제 16 항에 있어서, 상기 클럭 비교기 부호 제어가 제2값에 세트 되는 것에 기초하여, 부호 있는 이진 산술 연산이 상기 비교에서 사용되는
    컴퓨터-구현 방법.
  18. 제 15 항에 있어서, 상기 클럭 비교기는 하나의 크기이고 상기 TOD 클럭은 상기 클럭 비교기와 다른 크기인 확장 된 TOD 클럭이며, 상기 TOD 클럭은 오버플로 될 수 있는
    컴퓨터-구현 방법.
  19. 제 15 항에 있어서, 상기 선택된 액션은 상기 컴퓨팅 환경 내의 처리의 인터럽션인
    컴퓨터-구현 방법.
  20. 제 15 항에 있어서, 상기 방법은 상기 TOD클럭의 비교된 부분에서 불연속성(a discontinuity)을 구성하는 것을 명시하기 위해 상기 클럭 비교기 부호 제어를 사용하는 단계(using)를 더 포함하는
    컴퓨터-구현 방법.
KR1020197020650A 2017-01-19 2017-12-22 클럭 비교기 부호 제어 KR102202148B1 (ko)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US15/409,601 US10423191B2 (en) 2017-01-19 2017-01-19 Clock comparator sign control
US15/409,601 2017-01-19
PCT/EP2017/084520 WO2018134032A1 (en) 2017-01-19 2017-12-22 Clock comparator sign control

Publications (2)

Publication Number Publication Date
KR20190096393A KR20190096393A (ko) 2019-08-19
KR102202148B1 true KR102202148B1 (ko) 2021-01-13

Family

ID=60923498

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020197020650A KR102202148B1 (ko) 2017-01-19 2017-12-22 클럭 비교기 부호 제어

Country Status (8)

Country Link
US (3) US10423191B2 (ko)
EP (1) EP3571588B1 (ko)
JP (1) JP6909297B2 (ko)
KR (1) KR102202148B1 (ko)
CN (1) CN110199261B (ko)
RU (1) RU2721895C1 (ko)
TW (1) TWI670580B (ko)
WO (1) WO2018134032A1 (ko)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10423191B2 (en) 2017-01-19 2019-09-24 International Business Machines Corporation Clock comparator sign control

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20060117316A1 (en) * 2004-11-24 2006-06-01 Cismas Sorin C Hardware multithreading systems and methods
US20070061605A1 (en) * 2005-09-09 2007-03-15 International Business Machines Corporation System and method for TOD-clock steering
US20150277923A1 (en) * 2014-03-27 2015-10-01 International Business Machines Corporation Idle time accumulation in a multithreading computer system

Family Cites Families (22)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE2846271C2 (de) 1978-10-24 1981-01-08 Siemens Ag, 1000 Berlin Und 8000 Muenchen Schaltung zur Ermittlung des Phasenjitters von Digitalsignalen
US4589093A (en) * 1983-03-28 1986-05-13 Xerox Corporation Timer manager
JP2907958B2 (ja) * 1990-06-06 1999-06-21 富士通株式会社 時刻機構制御方法
US5828890A (en) 1997-01-30 1998-10-27 Northbrook Services System for interrupting program operation when an out-of-range value is encountered to correct a data value
US6144980A (en) * 1998-01-28 2000-11-07 Advanced Micro Devices, Inc. Method and apparatus for performing multiple types of multiplication including signed and unsigned multiplication
JP3881763B2 (ja) * 1998-02-09 2007-02-14 株式会社ルネサステクノロジ データ処理装置
US6775789B2 (en) * 1999-06-21 2004-08-10 International Business Machines Corporation Method, system and program products for generating sequence values that are unique across operating system images
US7774455B1 (en) * 2000-09-26 2010-08-10 Juniper Networks, Inc. Method and system for providing secure access to private networks
US7856569B2 (en) 2004-10-25 2010-12-21 Robert Bosch Gmbh Method and device for a switchover and for a data comparison in a computer system having at least two processing units
CN100430890C (zh) * 2005-08-31 2008-11-05 上海海尔集成电路有限公司 一种8位risc微控制器
US9069547B2 (en) * 2006-09-22 2015-06-30 Intel Corporation Instruction and logic for processing text strings
US7752028B2 (en) * 2007-07-26 2010-07-06 Microsoft Corporation Signed/unsigned integer guest compare instructions using unsigned host compare instructions for precise architecture emulation
GB2455009B (en) * 2008-01-22 2012-02-29 Ibm Time-of-day cycle count estimation
US8073976B2 (en) * 2008-03-27 2011-12-06 Microsoft Corporation Synchronizing clocks in an asynchronous distributed system
US8289074B2 (en) 2010-03-22 2012-10-16 Qualcomm Incorporated Discrete time operational transconductance amplifier for switched capacitor circuits
JP5764985B2 (ja) * 2011-03-11 2015-08-19 富士通株式会社 情報処理装置および時刻制御方法
US9459864B2 (en) * 2012-03-15 2016-10-04 International Business Machines Corporation Vector string range compare
US10437602B2 (en) * 2012-06-15 2019-10-08 International Business Machines Corporation Program interruption filtering in transactional execution
US10120681B2 (en) * 2014-03-14 2018-11-06 International Business Machines Corporation Compare and delay instructions
US9588774B2 (en) 2014-03-18 2017-03-07 International Business Machines Corporation Common boot sequence for control utility able to be initialized in multiple architectures
US9921848B2 (en) * 2014-03-27 2018-03-20 International Business Machines Corporation Address expansion and contraction in a multithreading computer system
US10423191B2 (en) 2017-01-19 2019-09-24 International Business Machines Corporation Clock comparator sign control

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20060117316A1 (en) * 2004-11-24 2006-06-01 Cismas Sorin C Hardware multithreading systems and methods
US20070061605A1 (en) * 2005-09-09 2007-03-15 International Business Machines Corporation System and method for TOD-clock steering
US20150277923A1 (en) * 2014-03-27 2015-10-01 International Business Machines Corporation Idle time accumulation in a multithreading computer system

Also Published As

Publication number Publication date
US20220035399A1 (en) 2022-02-03
CN110199261B (zh) 2023-09-29
US20190377379A1 (en) 2019-12-12
US20180203480A1 (en) 2018-07-19
TWI670580B (zh) 2019-09-01
US11934220B2 (en) 2024-03-19
WO2018134032A1 (en) 2018-07-26
EP3571588B1 (en) 2023-12-06
JP6909297B2 (ja) 2021-07-28
RU2721895C1 (ru) 2020-05-25
EP3571588A1 (en) 2019-11-27
TW201841093A (zh) 2018-11-16
US10423191B2 (en) 2019-09-24
KR20190096393A (ko) 2019-08-19
JP2020505677A (ja) 2020-02-20
US11199870B2 (en) 2021-12-14
CN110199261A (zh) 2019-09-03

Similar Documents

Publication Publication Date Title
US11029974B2 (en) Architectural mode configuration
AU2015233763B2 (en) Common boot sequence for control utility able to be initialized in multiple architectures
KR102202146B1 (ko) 계류중인 외부 인터럽션 시험 명령
JP5588006B2 (ja) 改良型モニタ機能実装
US11934220B2 (en) Clock comparator sign control
CN110192180B (zh) 处理到间接指定位置的条件分支的方法和计算机系统

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