KR950014179B1 - 서비스 프로세서 - Google Patents

서비스 프로세서 Download PDF

Info

Publication number
KR950014179B1
KR950014179B1 KR1019890011619A KR890011619A KR950014179B1 KR 950014179 B1 KR950014179 B1 KR 950014179B1 KR 1019890011619 A KR1019890011619 A KR 1019890011619A KR 890011619 A KR890011619 A KR 890011619A KR 950014179 B1 KR950014179 B1 KR 950014179B1
Authority
KR
South Korea
Prior art keywords
channel
register
timer
service
service processor
Prior art date
Application number
KR1019890011619A
Other languages
English (en)
Other versions
KR900003753A (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 KR900003753A publication Critical patent/KR900003753A/ko
Application granted granted Critical
Publication of KR950014179B1 publication Critical patent/KR950014179B1/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/10Program control for peripheral devices
    • G06F13/12Program control for peripheral devices using hardware independent of the central processor, e.g. channel or peripheral processor
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/10Program control for peripheral devices
    • G06F13/12Program control for peripheral devices using hardware independent of the central processor, e.g. channel or peripheral processor
    • G06F13/124Program control for peripheral devices using hardware independent of the central processor, e.g. channel or peripheral processor where hardware is a sequential transfer control unit, e.g. microprocessor, peripheral processor or state-machine

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Hardware Design (AREA)
  • Microelectronics & Electronic Packaging (AREA)
  • Bus Control (AREA)
  • Microcomputers (AREA)
  • Multi Processors (AREA)

Abstract

내용 없음.

Description

서비스 프로세서
제 1도는 본 발명의 제시된 실시예가 그 일부분을 이루는 싱글-칩 마이크로 컴퓨터의 블럭 선도.
제 2a내지 2b도는 본 발명의 제시된 실시예를 포함하는 타이머의 메모리 맵을 도시한 도면.
제 3도는 제시된 실시예의 타이머의 주요 구성부를 도시한 블럭 선도.
제 4a 내지 4d도는 제시된 실시예의 타이머 구조를 상세히 도시한 블럭 선도.
제 5도는 제시된 실시예에 따른 타이머 채널의 구조를 상세히 도시한 블럭선도.
* 도면의 주요부분에 대한 부호의 설명
10 : 마이크로 컴퓨터 15: 타이머
17 : 에뮬레이션 버스 21a 내지 21p : 타이머 채널
23 : 서비스 버스 24 : ER버스
25,26 : TCR버스
33,37,40,77,85,79,102,122,123 : 멀티플렉서
100 : 디코더 112 : 스케줄러
130 : 이벤트 레지스터 134,135,136,137 : 전송 게이트
146,149,163 : OR게이트 147,151 : AND 게이트
156,162 : 인버터
본 발명은 일반적으로 채널간 통신 특성을 가진 전용 서비스 프로세서에 관한 것이며, 특히 복수개의 채널 각각에 순차적으로 서비스하기에 적합한 프로세서에 관한 것으로서 여기서 프로세서는 채널간의 상호의존성을 촉진하도록 설계된다.
본 발명은 집적 회로 마이크로 컴퓨터의 타이머 서브 시스템과 관련하여 설명되겠다. 타이머 서브 시스템은 복수개의 채널을 가지며 채널 각각은 ㅌ이밍과 관련된 여러가지 동작을 수행할 수 있다. 싱글 마이크로-프로그램 가능 서비스 프로세서는 마이크로 컴퓨터에서 통상적으로 요구되는 타이밍 기능을 수행하기 위해서 채널 각각의 능력을 보충하기에 필요한 프로세싱 파워를 제공하는데 쓰여진다. 상기 서비스 프로세서 구조의 어떤 특성들은 복잡한 타이밍 기능을 실행하기 ㅜ이해 개인용 타이머 채널을 함께 사용하는 시스템 사용자의 능력면에서 상당한 장점을 제공한다. 또한, 프로세서 구조의 어떤 특성들은 서비스 프로세서에 의해 실행되는 마이크로 - 프로그램 '도는 " 기본 요소(primitive)"작성 업무를 상당히 쉽게 한다.
마이크로 컴퓨터의 타이머 서브 시스템에서 요구되는 타이밍 기능의 예로는 자동차 엔진의 연료 주입과 플러그 타이밍, 카메라 셔터 작동의 타이밍 등이 있다. 이러한 응용예에서 타이머 서브 시스템은 외부 상황의 발생에 응답하여 언제 다른 상황을 개시시키고 적절한 시점에서 제 2의 상황을 개시시킬 것인지 결정하기 위해 한번 이상의 계산을 실행할 필요가 있다.
종래 기술의 마이크로 컴퓨터용 타이머 서브 시스템은 타이머 서브 시스템의 작동에 필요한 계산을 실행하기 위한 프로세싱 파워를 호스트 컴퓨터에 의존하였었다. 호스트 컴퓨터는 범용 컴퓨터로서 통상적으로는 타이머와 같은 서브 시스템에서 필요한 것을 서비스하는데 특별히 효과적이 되도록 설계되지는 않는다. 본 발명의 제시된실시예는 마이크로 컴퓨터와 관련된 " 분산지능"의 응용 실시예이다. 말하자면, 국지적 프로세싱 파워를 가진 마이크로 컴퓨터 서브 시스템의 호스트 컴퓨터를 좀더 높은 수준의 처리 업무용으로 쓰여 지도록 해 주는 것이다.
따라서, 본 발명의 목적은 개선된 서비스 프로세서를 제공하려는 것이다.
본 발명의 이러한 목적 및 장점들은 다수의 작동 유니트를 서비스하기 ㅜ이한 프로세서에 의해 제공되는데, 상기 프로세서는 각각의 명령의 실행에 응답하여 제어 신호를 제공하는 명령 실행용 실행 수단과, 상기 실행 수단으로부터 상기 제어 신호를 수신하는 상기 다수의 작동 유니트중 하나의 제어 신호를 인가하기 위한 제어 수단과, 상기 다수의 작동 유니트중 상기한 하나를 타나내는 값을 저장하기 위한 제 1레지스터 수단과, 서비스 요청을 수신하도록 다수의 작동 유니트에 결합되는 상게 제 1 레지스터 수단내에 값을 저장하기 위한 스케줄러 수단을 구비하며, 여기서 상기 실행 수단은 상기 명령중 하나에 응답하여 상기 제 1 레지스터 수단내에 값을 저장한다.
본 발명의 이러한 목적 및 장점들은 도면과 함께 설명된 하기의 상세한 설명으로부터 분명해질 것이다.
용어 " 단정(assert)","부정(megate)"및 여러가지 문법적 형태의 용어등은 여기서 " 액티브 하이(active high)" 및 " 액티브 로우(active low)" 논리 신호와 섞여서 취급할 때의 혼동을 피하기 위해 사용되었다. "단정"은 논리 신호 또는 레지스터 비트를 활성 또는 논리진 상태로 되게 하는 것을 인용하는데 사용되며, "부정"은 논리 신호 또는 레지스터 비트를 비활성 또는 논리 거짓 상태로 되게 하는 것을 인용하도록 사용된다.
제 1도는 본 발명의 제시된 실시예가 그 일부가 되는 마이크로 컴퓨터를 도시한다. 마이크로 컴퓨터(10)는 한개의 집적 회로로 제조되는 것이 좋으며, 중앙 처리 장치(CPU )(11), 모듈간 버스(IMB)(12), 직렬 인터-페이스(13), 메모리 모듈(14), 타이머(15), 시스템 통합 모듈(SIM)(16)을 구비한다. CPU (11), 직렬인터페이스(13), 메모리(14), 타이머(15), SIM(16)각가은 어드레스, 데이타 및 제어 정보를 교환할 목적으로 IMB(12)에 양 방향성으로 결합된다. 또한, 타이머(15)는 에뮬레이션 버스(17)에 의해 메모리(14)에 양방향성으로 결합되며 그 목적은 하기의 설명으로 분명해 질 것이다.
직렬 인터페이스(13) 및 타이머(15) 는 마이크로 컴퓨터(10)외부의 장치와 통신하기 ㅜ이해 각각 다수의 핀 또는 커넥터와 연결된다. 또한, SIM(16)은 외부 버스를 구비하는 다스의 핀과 연결된다.
본 발명의 제시된 실시예를 이루는 타이머(15)는 비교적 자율적인 모듈이다. 타이머(15)의 목적은 가능한한 CPU(11)의 간섭을 덜 받고 마이크로 컴푸터(10)에서 필요로 하는 타이밍 작업 모두를 실행하려는 것이다. 마이크로 컴퓨터(10)에서 필요로 하는 타이밍 작업의 예로는 자동차 엔진의 연료 주입 및 점화 타이밍, 전자식 카메라의 셔터 타이밍 등이 있다. 본 발명의 제시된 실시예에서 타이머(15)는 마이크로 컴퓨터와 관련되어 있지만, 설명된 원리는 독립 타이머 모듈과 같은 다른 내용에도 쉽게 적용될 수 있다.
타이머(15)는 두개의 클럭 소스와 관계할 수 있다. 두 클럭 소스는 각각 타이머 카운ㅌ 레지스터 #1(TCR 1) 및 타이머 카운터 레지스터#2(TCR2)로 인용되는 프리-러닝 카운터 레지스터 형태를 갖는다. TCR1은 마이크로 컴퓨터(10)의 시스템 클럭과 관련된 내부 클럭 소스에 의해 클럭이 된다. TCR2는 핀에 의해 마이크로 컴퓨터(10)로 공급되는 외부 소스에 의해, 또는 외부 소스 핀에 나타나는 신호에 의해 게이트되는 내부 소스에 의해 클럭이 된다.
제시된 실시예에서, 타이머(15)는 16개의 타이머"채널"을 가지며 이들 각각은 각자의 핀을 가진다. 제시된 실시예의 시스템에서 인지되는 두가지 기본형 타이머 이벤트는 부합(match)이벤트와 포획(capture)이벤트이다. 부합 이벤트는 기본적으로 출력 기능이며 포획 이벤트는 입력 가능이다. 부합 이벤트는 두 타이머 카운ㅌ 레지스터중 하나의 카운트가 타이머 채널 중 선택된 하나에서 레지스터에 저장된 값과 선정된 관계식을 가질 때 발생된다. 포획 이벤트는 미리 규정된 천이 현상이 타이머 채널 중 하나와 연관된 핀에서 검출될 때 발생하며, 타이머 카운트 레지스터중 하나의 순간적 카운트의 "포획"을 상기 타이머 채널에서 레지스터로 트리거한다. 여러가지 타이머 채널 기증의 좀더 상세한 설명은 아래에 기재되겠다.
CPU(11)는 때때로 "호스트"CPU로 인용된다. 타이머(15)는 초기화 및 다른 기능용으로 CPU(11)의 제어에 쓰여진다. 본 실싱에서 호스트 CPU는 타이머와 동일한 직접 회로상에 설치되었지만, 이것이 본 발명의 원리를 구현하는데 필수적인 것은 아니다.
타이머(15)의 특성은 IMB(12)의 신호 및 기능의 상세한 설명을 참고로 하여 명확히 이해될 것이다. 따라서, 하기의 표에 IMB(12)의 특성들을 요약해 놓았다. INB(12)는 본 발명의 양수인이 이용가능한 통상의 마이크로 프로세서 및 마이크로 컴퓨터의 버스와 여러면에서 유사하며, 그와 관련하여 잘 이해될 것이다. 표에서의 신호 방향은 타이머(15)내에서 그들의 기능에 관하여 규정되었다.
[표 1]
Figure kpo00001
"방향" 항목에서 별표로 표시된 IMB신호들은 타이머가 이용하지 않는 것이다. 아래에 설명되는 바와 같이, 타이머(15)는 IMB(12)로 슬레이브-온리 인터페이스를 가지므로 특정 신호의 사용을 요청하지 않는다.
마이크로 컴퓨터(10)의 다른 특성들은 동시 출원중인 미국특허출원 제 115,479호의 주제이다. 상기 발명은 본 실시예와 공통 내용을 제외하면 본 발명과 무관하다.
CPU(11)의 관점에서 보면, 타이머(15)는 CPU(11)의 메모리 맵내의 다수의 위치로서 존재한다. 즉, CPU(11)는 상기 메모리 위치에 위치한 타이머 레지스터를 판독 및 기재함으로서 비록 독점적은 아니지만 기본적으로 타이머(15)와 상호 작용한다. 제 2a내지 2b도는 타이머 레지스터의 위치 및 이름을 도시한다. 어드레스는 16진수형으로, 기능 코드 비트는 2진수형으로 지정되어 있다. 상기 레지스터중 몇가지는 아래에 상세히 설명되겠지만, 하기의 설명은 각각의 기능을 요약한 것이다. 하기의 간단한 설명은 호스트CPU의 관점에서 이루어진 것이라는 점에 주목해야 한다. 타이머(15)에 의한 여러 타이머 레지스터로의 억세스는 아래에 설명되지 않겠다. 본 발명과 관련하여, 그 상세한 설명은 차후에 있겠다.
CPU(11)의 수퍼 바이저 어드레스 공간에 베타적으로 존재하는 (기능 코드 비트101로 표시된 바와 같이)모듈 구성 레지스터는 타이머(15)의 어떤 속성을 지정하는 6비트 필드를 포함한다. 이러한 속성에는 인터럽트 중재 ID, 다른 레지스터의 슈퍼 바이저/사용자 어드레스 공간 위치 정지 조건 플랙, 정지 제어 비트, TCR2소스 제어 비트, 어물레이션 모드 제어 비트, TCR1 프리-스케일러 제어 비트, TCR2 프리-스케일러 제어비트 등이 있다.
모듈 테스트 레지스터는 본 발명과는 무관한 타이머(15)의 테스트 모드의 어스팩트(aspect)를 제어하는 비트 필드를 포함한다.
개발 지원 제어 레지스터는 CPU(11)의 개발 지원 특성과 타이머의 인터액션을 결정하는 다수의 비트 필드를 포함한다. 유사하게, 개발 지원 상태 레지스터는 상기 개발 지원 특성에 관하여 타이머(15)의 상태에만 관련된다. 이러한 특성은 본 발명과는 무관하다. CPU(11)의 개발 지원 특성에 관한 상세한 점은 앞서 언급된 미국 특허출원 제 115,479호에 설명되어 있다.
인터럽트 레지스터는 타이머(15)에 의해 CPU(11)로 발생되는 인터럽트의 두가지 특성을 결정하는 2비트 필드를 포함한다. 한 필드는 타이머에 의해 발생되는 모든 인터럽트에 대한 인터럽트 벡터의 최상위 4비트를 지적한다. 다른 한 비트 필드는 타이머에 의해 발생되는 모든 인터럽트의 우선순위 레벨을 지정한다. 상기 비트 필드를 타이머(15)로부터의 모든 인터럽트를 불가능하게 세트시키며, 타이머로부터의 인터럽트가 CPU(11)에 관해서 최상위 레벨의 우선순위를 갖도록 비트 필드를 세트시키며, 상기 비트 필드를 양극단 사이으 ㅣ여러 레벨로 세트시키는 것이 가능하다. 유사하게, 인터럽트 우선순위는 다른 인터럽트 소오스에 타이머 인터럽트의 상태적 우선순위를 결정하도록 CPU(11)에 의해 사용된다.
위상 인터럽트 인에이블 레지스터는 16개의 1-비트 필드를 포함하는데 1필드는 타이머(15)의 16 "채널"의 각각에 대응한다. 각각의 비트 필드는 그 상태에 따라서 상기 비트 필드와 관련된 채널을 서비스하는 도앙ㄴ 타이머의 서비스 프로세서에 의해 인터럽트의 발생을 인에이블 또는 디스에이블시킨다(아래의 제 3도에 관한 설명 참조).
4채널 기본 요소 선책 레지스터는 타이머(15)가 특정한 채널을 서비스하고 있을 때 16개의 가능한 기본 요소 또는 타이머 프로그램 중 어떤 것이 타이머내의 서비스 프로세서에 의해 실행되는지 판별하는 16개의 4-비트 필드를 포함한다. 16개의 비트 필드 각각은 16개 타이머 채널중 하나와 연관된다. 1필드내의 4비트는 프로세서가 상기 필드와 관련된 채널을 서비스하기 시작할 때 서비스 프로세서내에 제어기억으로 공급되는 어드레스의 일부분으로 사용된다. 상기 어드레스에 응답하여 제어 기억에서 되돌겨진 데이타는 상기 채널을 서비스하는 동안 실행되는 기본 요소에 대한 엔트리 포인트, 또는 개시 어드레스로서 사용된다. 서비스 프로세서의 제어기억은 16개의 정도의 상이한 기본 요소 및 16채널 각각에 대해 16엔트리 포인트(총 256엔트리 포인트)를 포함한다. 제어 기억의 전체 크기는 고정되어 있지만, 기본 요소 코드 및 엔트리 포인트의 할당은 변화될 수 있다. 즉, 전체 256엔트리 포인트 위치보다 작게 사용하고 더 많은 기본 요소 코드를 포함하도록 " 과도" 기억 용량을 사용하는 것이 가능하다.
두개의 호스트 시퀀스 레지스터는 모듈 구성 레지스터내의 비트 필드중 하나에 따라서 슈퍼 바이저 또는 CPU(11)의 비-제한 어드레스 공간에 있게 된다. 이것은 기능 코드 비트 X01에 의해 지적되는데, 여기서 X는 모듈 구성 레지스터내의 SUPV비트에 따른다. 호스트 시퀀스 레지스터는 16개의 타이머 채널 각각에 대응하는 16개의 2-필트 필드를 포함한다. 호스트 시퀀스 비트 필드는 브랜치 조건으로서 서비스 프로세서상에서 실행되는 기본 요소에 의해 사용가능한데, 필수적으로 사용되는 것은 아니다. 다시 말해, 두개의 호스트 시퀀스 비트의 상태에 따라 기본 요소내의 명령 흐름을 변경하는 것이 가능하다.
두개의 호스트 서비스 요청 레지스터는 각각의 타이머 채널에 대응하는 16개의 2-비트 필드를 포함한다. 적당한 비트 필드에 기재함으로서, 호스트CPU는 타이머(15)의 서비스 프로세서가 서비스할 타이머 채널의 스케줄을 잡을 수 있다. 각각의 채널은 호스트 서비스 요청 레지스터 하나당 2비트를 가지므로, 채널당 4가지 값이 가능하다. 각각의 채널에 대해 요청되는 세가지 종류의 서비스가 있으며 이들은 가능한 4가지 값중 3개에 대응한다. 4번째 값은 호스트-요청 서비스가 스케줄되지 않음을 나타낸다. 호스트-개시 서비스 선택 비트와 유사한 방식으로 이용된다. 호스트 서비스 요청 비트는 엔트리 포인트 어드레스를 얻는데 집적 사용되지는 않지만, 다른 채널 조건 비트와 함께 엔코드된다.
두개의 채널 우선순위 레지스터는 각각의 채널에 하나씩 대응하는 16개의 2-비트 필드를 포함한다. 각각의 비트 필드는 연관된 채널에 대한 4가지 가능한 우선순위 레벨중 하나를 지정한다. 상기 우선순위 레벨은 여러 채널 중 어떤 값이 먼저 서비스를 받을 것인지 결정하도록 타이머의 서비스 프로세서내의 스케줄러에 의해 사용된다. 4가지 가능한 우선순위 레벨은, 불가능, 저, 중간, 고레벨이다. 서비스 스케줄러는 저레벨 우선순위 채널일지라도 일정한 시간동안 서비스를 받을 수 있도록 서비스 프로세서의 자원을 할당한다. 각각의 채널은 이용가능한 우선순위 레벨 중 어느것에도 할당될 수 있으며 16개 채널상의 우선순위 레벨의 조합도 가능하다.
위상 인터럽트 상태 레지스터는 16채널의 각각에 대해 1비트를 포함하며 상술한 위상 인터럽트 인에이블 레지스터와 관련을 갖는다. 서비스 프로세서가 특정한 채널을 서비스하는 동안 인터럽트가 발생되어야 한다고 판별하면, 상기 채널에 대응하는 위상 인터럽트 상태 레지스터내의 비트가 단정(assert)된다. 위상 인터럽트 인에이블 레지스터의 대응 비트가 단정되면, 인터럽트가 발생된다. 그렇지 않다면, 상태 비트는 단정된 채로 있지만, 호스트CPU에 인터럽트가 발생되지는 않는다.
링크 레지스터는 16타이머 채널 각각에 대해 1비트를 포함한다. 각각의 비트는 대응 채널에 대한 서비스 요청을 개시시키기 위해 특정한 형태의 서비스 요청, 링크 서비스 요청이 단정되었음을 지적한다.
서비스가 허가 래치 레지스터는 16개의 1비트 필드를 포함한다. 각각의 타이머 채널은 상기 필드중 하나와 연관된다. 단정될때, 서비스 허가 래치 레지스터내의 비트는 관련 채널이 서비스 프로세서에 의해 서비스용 " 시간 슬롯"을 허가받았음을 지적한다. 상기 레지스터내의 비튼느 서비스 프로세서의 차원을 할당하는 과정에서 서비스 프로세서내의 스케줄러에 의해 이용된다.
디코드된 채널 번호 레지스터는 각각의 타이머 채널당 1비트 필드를 포함하며, 단정되었을때 , 서비스 프로세서가 새로운 채널을 서비스 하기 시작하면 서비스 프로세서가 상기 디코드된 채널 번호 레지스터에서 지적된 채널을 서비스하고 있었음응ㄹ 나타낸다. 상기 채널 신원은 실행되는 기본 요소가 서비스 프로세서에 의해 실제로 제어되는 채널의 신원을 변경시키는 "채널 변경"기능을 수행한ㄷ 하더라도 일정하게 유지된다.
타이머(15)의 메모리 맵의 나머지 부분은 호스트CPU에 의해 관찰되는데, 다수의 채널 파라미터 래지스터를 포함한다. 16개 타이머 채널 각각은 거기에 지적된 6개 파라미터 레지스터를 갖는다. 하기에 상세히 설명되는 바와 같이, 파라미터 레지스터는 호스트 CPU 및 타이머(15)가 서로 정보를 이동시킬 수 있는 공유 작업 공간으로서 이용된다.
제3도는 마이크로 컴퓨터(10)의 나머지 부분과 분리된 타이머를 도시한다. 타이머(15)의 주요기능구성부는 서비스 프로세서(20), CH0-CH15로 표시된 16개의 타이머 채널(21a-21p), 버스 인터페이스 유니트(BIU)(22)를 구비하는 것으로 여겨진다. 각각의 타이머 채널은 마이크로 컴퓨터(10)의 싱글 핀에 연결된다. 채널 0은 핀에 TP0에 연결되고, 채널 1은 핀 TP1에 연결되는 식으로 구성된다. 마이크로 컴퓨터에서 통상적인 바와 같이, 상기 핀 각각은 타이머(15) 및 마이크로 컴퓨터(15)의 다른 기능 모듈 사이에서 "공유"되는 것이 가능하지만, 여기에 설명되는 제시된 실시예에서는 그러하지 않다.
서비스 프로세서(20)와 채널(21a-21p)사이의 상호 연결부는 서비스 버스(23), 이벤트 레지스터(ER) 버스(24), 타이머 카운트 레지스터 #1(TCR1) 버스(25), 타이머 카운트 레지스터 #2(TCR2) 버스(26), 다수의 여러가지 제어 및 상태라인(27)을 구비한다. 서비스 버스는 채널(21a-21p)에 의해 서비스 프로세서(20)의 서비스를 요청하는데 사용된다. ER버스(24)는 각각의 채널내의 이벤트 레지스터의 내용을 서비스 프로세서(20)에 전달하고 서비스 프로세서(20)로부터 상기 레지스터를 로드하는데 사용된다. 두개의 TCR버스는 서비스 프로세서(20)내에 위치한 두개의 타이머 카운트 레지스터의 현재 내용을 채널(21a-21p)에 전달하는데 사용된다.
BIU(22)는 IMB(12) 및 서비스 프로세서(20) 사이의 인터페이스로서 서비스한다. 상기 버스 인터페이스의 세세한 부분은 본 발명과는 무관한 것이며 본 기술분야에 널리 알려진 것이다. 제시된 실시예에서, BIU(22)는 "슬레이브-온리"인터페이스이다. 즉, 타이머는 IMB(12)를 거쳐 전달되는 정보를 수신하지만 IMB(12)상으로 전달하지는 않는다.
아래에 상세히 설명되는 바와 같이, 서비스 프로세서(20)는 제어 기억 장치를 포함한다. 제어 기억 장치는 서비스 프로세서에 의해 실행되는 명령을 포함하는 판독 전용 메모리 유니트를 구비한다. 제시된 실시예에서는 마스크-프로세서 가능 ROM으로서 실현된다. 본 기술 분야에 숙련된 사람에게 잘 알려진 바와 같이, 상기 제어 장치는 제어 기억 장치에 불확실하게 프로그램 되는 소프트웨어를 발전시켜 준다. 상기 문제점에 대처하기 위해, 에뮬레이션 인터페이스(17)는 서비스 프로세서(20)를 메모리(14)에 결합시킨다. 말하자면, 서비스 프로세서는 제어 기억 장치에 들어있는 명령 대신에 메모리(14)에 기억된 명령을 실행할 수 있다. 제시된 실시예에서, 메모리는 랜던 엑세스 메모리(RAM)과 같은 변경가능한 메모리이다. 에뮬레이션 인터페이스(17)는 사용자가 서비스 프로세서(20)에 대해 기본 요소를 기재, 실행, 수정할 수 있도록 서비스 한다. 완전히 디버그되면, 상기 기본 요소는 제어 기억 장치의 장래의 버전으로 편입될 수 있다.
TRC2 내에 포함된 카운트를 위한 기호를 형성하는 외부 타이밍 소오스는 서비스 프로세서(20)에 결합된다. 상술된 모듈 구성 레지스터내의 비트는 TCR2가 상기 외부 타이밍 소오스에 의해 클럭이 되는 지 또는 내부 타이밍 기준에 의해 클릭되는지를 제어한다.
일반적으로, 서비스 프로세서(20)는 구성채널(21a-21b)에 대해 책임을 가지며, 기본적으로 ER버스(24) 및 제어라인(27)을 사용하여 선정된 타이밍 타스크를 수행한다.채널은 지시된 타스크를 수행하며, 때때로 서비스 요청에 의해 이벤트의 발생등과 같은 것을 서비스 프로세서(20)에 알려준다. 서비스 프로세서(20)는 특정 채널로부터 서비스 요청에 응답하여 어떠한 액션을 채택할 것인지 결정하며 그러한 서비스르 개시하는 책임을 가진다. 서비스 프로세서(20)는 실행되는 타이밍 기능을 확인하기 위해서 또한 아래에 상세히 설명되는 다른 특정 서비스에 대해서 호스트 CPU(본 경우에 CPU(11))에 의존한다. 서비스 프로세서는 또한 호스트 CPU에 인터럽트 요청을 개시하는 책임을 갖는다. 제시된 실시예에서, 상기 기능은 서비스 프로세서(20)의 제어 기억 장치내에 있는 프로그램의 제어하에 있다.
TCR1 및 TCR2 버스는 16채널 각각을 연속적으로 이용가능하게 하며 각각ㄱ의 타이머 카운트 레지스터의 새로운 내용을 가지고 선정된 스케줄에 따라 갱신된다. 유사하게, 16채널 각각은 임의의 순간에 서비스 버스(23)를 경유하는 서비스 요청을 단정한다. 그런데, ER 버스 및 제어 및 상태 라인(27)에 관하여, 서비스 프로세서(20)는 임의의 한 순간에 16채널 중 오직 하나하고만 통신한다. ER 버스(24)를 거쳐서 이벤트 레지스터의 판독 및 기재와 제어 및 상태라인(27) 상의 제어 및 상태 신호등은 서비스 프로세서(20)에 의해 현재 서비스 되고 있는 상기 한개의 채널에 대해서만 유효하다. 필요한 정도까지, 각각의 채널은 서비스 프로세서가 다른 채널을 서비스하고 있는 동안 제어 라인(27)에 의해 통신되는 제어 정보를 유지하기 위해 제어 정보를 래치하여야 한다.
서비스 버스(23)를 거쳐서 채널에 의해 개시되는 서비스 요청에 덧붙여서, 서비스 프로세서는 호스트 CPU에 의해 개시되는 서비스 요청에도 응답한다. 상술한 호스트 서비스 요청 레지스터에 적절한 값을 기재함으로서, 호스트 CPU는 특정 채널에 대한 서비스의 스케줄링을 개시할 수 있다. 또한, 서비스 프로세서는 아래에 상세히 설명되는 링크 서비스 요청 메카니즘을 통하여 상기 스케줄링을 스스로 개시할 수 있다.
제 4a 내지 4d 도는 제 4E도에 도시된 방법과 상호 연관된 것으로서, 타이머(15)의 세부 구조를 도시한다. 일반적으로, 제 4a 도는 서비스 프로세서(20)(제3도)의 마이크로 엔진을 도시하며, 제 4b 도는 서비스 프로세서의 실행 유니트를 도시하고, 제 4c 도는 타이머 채널 하드웨어 및 장치의 나머지 부분과의 상호연결부를 도시하고, 제 4d도는 버스 인터페이스, 레지스터 및 서비스 스케줄러를 도시한다.
먼저 제 4a도를 참조하면, 마이크로 엔진의 주요기능 구성부는 우선순위 엔코더(30), 증분기(31), 복귀 어드레스 레지스터(32), 멀티플렉서(33), 멀티플렉서 제어부(34), 마이크로 프로그램 카운터(35), ROM제어기억 장치(36), 멀티플렉서(37), 마이크로 명령 레지스터(38), 마이크로 명령 디코드(39), 멀티플렉서(40), 브랜치 PLA(41), 다수의 트랙 레지스터(42)로 되어 있다. 일반적으로 다수의 가능한 소오스롭터 멀티플렉서(33)에 의해 선택된 마이크로 명령 어드레스는 마이크로 프로그램 카운터(35)에 로드되고 다음에 ROM제어 기억 장치(36)에 공급된다. 상기 어드레스에 의해 선택된 마이크로 명령은 멀티플렉서(37)를 통해서 ROM 제어 기억 장치에 의해 마이크로 명령 레지스터(38)에 제공된다. 디코더(39)는 마이크로 명령 레지스터(38)의 내용을 디코드하며 요청되는 바에 따라 서브스 프로세서를 통하여 제어 신호를 제공한다.
마이크로 명령 디코더(39)가 싱글 유니트로서 설명되고, 제어 신호가 타이머의 나머지 부분에 분산되어 있는데, 본 기술 분야에 숙련된 사람이라면 상기 체계를 변경하는 것이 유익하다는 것을 알 것이다. 마이크로 며령 레지스터(38)로부터의 비트 출력의 수가 디코드 논리 장치(39)로부터의 제어신호의 수보다 작으므로, 타이머를 통하여 마이크로 명령 레지스터(38)로부터의 출력을 분산시키고 여러 위치에 다중, 분산된 디코더를 제공하는 것이 유익하다. 절약된 신호 루팅과 중복 디코드 논리 사이의 교환은 경우별로 이루어져야 할 복잡한 설계상의 결정사항이다.
상술한 에뮬레이션 인터페이스(제 1도 및 제 3도에서 도면 번호(171)는 상기 관점에서 에뮬레이션 라인(50), 메모리 사이클 개시 라인 (51), 마이크로 명령 어드레스 라인 (52), 마이크로 명령 라인(53)을 구비하는 것으로 여겨진다. 에뮬레이션 모드가 유효할 때, 에뮬레이션 라인(50) 상의 신호의 상태에 의해 지시돈 바와같이, ram은 라인(53) 상에 마이크로 명령을 발생시키기 위해 라인(52)상에 어드레스에 응답한다. 멀티플렉서(37)는 ROM 제어 기억 장치(36)에 공급된 마이크로 명령 대신에 상기 마이크로 명령을 선택하여 RAM에서 발생된 마이크로 명령을 마이크로 레지스터(38)에 제공한다. 에뮬레이션 라인(50)의 상태는 모듈 구성 레지스터내의 어뮬레이션 모드 제어 비트에 의해 제어되며, 따라서 호스트 CPU에 제어하에 있다. 메모리 사이클 개시 신호는 단순히 시스템 클럭에서 유도된 타이밍 신호이다.
제 4a도에 도시된 마이크로 엔진의 상세한 특성 및 동작을 본 발명의 실시예 필요한 정도까지 이해하기 위해서, 제 4a도는 아래에 좀더 상세히 설명되겠다.
제 4b도로 돌아가서, 서비스 프로세서의 실행 유니트를 설명하겠다. 실행 유니트는 2개의 16비트 양방향성 버스, A버스(60) 및 B 버스(61)를 포함한다. 이벤트 레지스터 전송 레지스터(62)는 A버스(60)에 양방향성 연결된다. 유사하게, 타이머 카운트 레지스터 #1(64) 및 타이머 카운트 레지스터 #2(65)도 A 버스(60)에 양방향성으로 연결된다. 또한, 증분기(66)가 연결되어 증분기 제어기(67)로부터 제어 입력을 수신하고, 라인(68)을 거쳐서 제 4a도의 멀티플렉서 제어 (34) 및 마이크로 프로그램 카운터(35)에 출력을 제공한다. 시트프 레지스터(69)는 시프트(70)로부터 입력을 수신하도록 연결된다. 시프트(70)는 A버스(60)에 양방향성으로 연결된다.
시프트(70)는 또한 연산 기구(AU)(71)로부터 입력을 수신하도록 결합된다. AU는 두개의 입력 래치 Ain(72) 및 Bin(73)으로부터 입력을 수신한다. 래치 (72) 및 (73) 는 각각 A버스(60) 및 B 버스(61)로부터 입력을 수신하도록 연결된다. AU는 다수의 조건 코드 출력을 브랜치 PLA(41)에 제공한다.
범용 누산기(A)(74)는 A 버스에 양방향성으로 연결되며 B버스(61)에 출력을 제공하도록 연결된다. 파라미터 프리-로드 레지스터(75)는 A버스에 양방향성으로 연결되며 B버스에 출력을 제공하도록 연결된다. 또한, 파라미터 프리-포드 레지스터(75)는 라인(76)에 의해 제 4c도의 채널 제어 하드웨어에 출력을 제공하도록 연결된다. 레지스터(75)는 멀티플렉서(77)에 양방향성으로 연결된다.
데이타 입력-출력 버퍼(DIOB)레지스터(78)는 A버스(60)에 양방향성으로 연결되며 B버스(61)에 출력을 제공하도록 연결된다. DIOB(78)는 또한 멀티플렉서(77)에 양방향성으로 연결되며 멀티플렉서(79)에 출력을 제공하도록 연결된다. 멀티플렉서(79)는 파라미터 RAM 어드레스 레지스터(80)에 출력을 제공하도록 연결된다.
멀티플렉서(85)는 A버스(60) 및 라인(86)으로부터 입력을 수신하도록 연결되는데, 이는 제 4d도의 서비스 스케줄러에서 발생한다. ㅓㅁㄹ티플렉서(85)의 출력은 채널 레지스터(87)에 입력으로서 제공된다. 채널 레지스터(87)는 라인(201)에 의해 A버스로, 또한 라인(89)에 의해 제 4c도의 채널 제어 하드웨어로 출력을 제공한다. 채널 레지스터(87)의 내용에 의해서 여러가지 제어 신호 및 ER 버스 신호 사이클은 제 4c도에 도시된 채널 제어 하드웨어에서 현재 서비스되고 있는 특정 채널로 적절히 향하게 된다. 서비스 프로그램 또는 기본 요소를 실행하는 동안 채널의 신원을 변경할 수 있는 상기 설명된 장치의 능력에 기인하여, 채널 레지스터(87)의 내용은 제 2a 도 및 2b도 번호 레지스터의 내용과 항상 일치하지는 않는다. 후자의 레지스터가 현재 실행중인 기본 요소의 실행이 시작되었던 채널의 신원을 포함하는 반면, 채널 레지스터(87)는 제어 신호가 현재 향하고 있는 채널의 신원을 포함한다. 이러한 구별이 본 발명의 이해에 중요하다면 아래에 상세히 설명되겠다.
링크 레지스터(88)는 A 버스로부터 입력을 수신학 디코더(89)에 출력을 제공하도록 결합된다. 링크 레지스터(88)의 4비트는 디코더(89)에 의해 디코드 되어 16비트를 발생시키며, 이들 각각은 타이머 채널 중 하나와 연관된다. 사이 16비트는 제 4a도의 브랜치PLA(41)에 결합되며 라인(90)에 의해 제 4d도의 서비스 스케줄러에 결합된다. 링크 레지스터(88)는 서비스 프로세서가 원하는 채널의 신원을 링크 레지스터(88)에 단순히 기재함으로서 마이크로 명령 제어하에서 임의의 채널에 대한 서비스를 스케줄할 수 있는 수단을 제공한다. 링크 레지스터(88)는 제 2a 및 2b도에 관해서 상술된 링크 레지스터와는 구별된다. 링크 레지스터(88)는 링크 서비스 프로세서에 의해 현재 개시되고 있는 레지스터의 신원을 포함한다. 제 2a 및 2b도에 고나해서 상술된 링크 레지스터는 단순히 링크 서비스 요청이 개시되었음을 가리키는 채널 각각에 대한 플랙 비트를 포함하지만 거기에 응답되지는 않는다.
제 4b 도에 도시된 실행 유니트의 특성 및 동작의 상세한 이해가 본 발명의 실시에 필요하다면 제 4b도는 아래에 좀더 자세히 설명되겠다.
이제 제 4c도를 참고로 하면, 채널 하드웨어가 도시되어 있다. 싱글 채널의 상세한 구성부는 제 5도를 참고하여 아래에 설명, 도시되겠다. 타이머의 나머지 부분을 보면, 채널 하드웨어는 ER0ER15로 표시된 16개의 이벤트 레지스터, 16개의 디코터(100)중 하나, 제어 논리 장치의 블럭(100)으로 나타난다. TCR버스 각각은 16개 이벤트 레지스터의 각각에 연결된다. ERT레지스터(63)(제 4b도)와 양방향성 통신을 제공하는 ER버스는 디코더(100)에 연결된다. 이러한 수단에 의해, 이벤트 레지스터중 임의의 하나와 제 4b도에 도시된 실행 유니트 사이에서 값이 전달될 수 있다. 타이머 카운트 값은 정합 이벤트를 설정하도록 실행 유니트에서 이벤트 레지스터로 전달되며 포획 이벤트에 응답하여 이젠트 레지스터에서 실행 유니트로 전달된다.
채널 레지스터(87)(제 4b도)로부터의 라인(89)은 제어 논리 장치(101)에 연결되어 현재 서비스를 받는 채널을 지적해준다. 제어 논리 장치(101)는 또한 마이크로 명령 디코더(39)(제 4a도)로부터 멀티플렉서(102)를 통하여 직접적으로 다수의 입력을 수신한다. 덧붙여서, 제어 논리 장치는 브랜치PLA(41)(제 4a)도에 출력을 제공한다. 마지막으로, 서비스 버스(105)는 여러 채널로부터의 서비스 요청을 제 4d도의 스케줄러에 전달하기 위한 수단을 제어 논리 장치(101)에 제공한다. 채널 하드웨어의 기능은 다음에 좀더 상세히 설명되겠다.
이제 제 4d도를 보면, 타이머의 호스트 인터페이스 부분이 도시되어 있다. 상술한 바와 같이, BIU(22)는 필수 슬레이브-온리 인터페이스를 IMB(12)에 제공하며, 호스트CPU가 타이머의 레지스터에 억세스 하도록 해준다. BIU는 RAM(110)에 양방향성으로 연결되며 파라미터 RAM 어드레스 버스(111)에 출력을 제공하도록 연결된다. 제 4d도에 도시된 장치의 나머지 부분은 스케줄러(112), 시스템 레지스터(113), 파라미터 RAM (114), 기본 요소 선택 레지스터(115), 호스트 서비스 요청 레지스터(116)를 구비하는데, 이들은 모두 RAM 버스(110)에 양방향성으로 결합된다.
스케불러(112_는 16개 타이머 채널에 서비스 프로세서의 자원을 할당시키는 수단을 구비한다. 도시된 바와 같이, 두개의 채널 우선순위 레지스터, 링크 레지스터, 디코드된 채널 번호 레지스터, 서비스 허가 래치 레지스터(모두 제 2a 및 2b도 내에 배치되는 것으로 여겨지며, 이들 모두는 RAM 버스(110)에 양방향성으로 연결된다.
스케줄러(112)는 특정 채널의 서비스가 완결되었음을 나타내는 입력의 신호 비트를 마이크로 명령 디코더(39)로부터 수신한다. 다음에는, 서비스 요청중 어느 것을 다음번에 서비스할지를 스케줄러(112)가 결정하는 과정이 시작된다. 스케줄러(112)는 또한 현재 서비스가 스케줄되어 있는 채널이 없음을 나타내는 (이것은 "휴식"조건으로도 인용됨) 출력의 신호 비트를 마이크로 명령 디코더(39)에 제공한다.
스케줄러(112)는 라인(105)로부터 16비트, 라인(90)을 거쳐서 디코더(89)로부터 16비트, 호스트 서비스 요청 레지스터(116)로부터 16비트가 연결되어 이루어진 3=48비트를 포함하는 서비스 버스(120)로부터 입력을 수신한다. 상기 48비트는 채널 하드웨어 자체가 현재 서비스를 요청하고 있는 채널, 링크 레지스터(88)에 의해 현재 서비스가 요청되고 있는 채널, 호스트 서비스 요청 레지스터(116)에 의해 서비스가 요청되고 있는 채널을 각각 나타낸다. 스케줄러(112)는 상기 입력을 수신하고, 채널 우선순위 레지스터내의 값에 따라는 채널을 각각 나타낸다. 스케줄러(112)는 상기 입력을 수신하고, 채널 우선순위 레지스터내의 값에 따라 서비스가 요청된 채널의 상대적 우선순위를 고려하여, 어떤 채널이 다음에 서비스될지를 결정한다. 선택된 채널의 4비트 지정자는 라인(86)을 거쳐서 멀티플렉서(85), 기본 요소 선택 레지스터(115), 호스트 서비스 요청 레지스터(116)로 출력된다.
상술한 바와 같이, 각각의 채널은 우선순위 레지스터내의 대응 비트에 의해 지정된 4개의 우선순위 레벨 중 하나를 갖는다. 스케줄러(112)가 서비스 요청에 대하여 채널을 스케줄하는 상기 체계에서는 낮은 우선순위의 채널이라도궁극적으로 서비스를 받도록 해준다. 이러한 특성은 다른 기능을 서비스하는데 필요한 시간때문에 타이밍 기능이 빠트려지는 것을 방지하는데 중요하다. 동일한 우선순위를 가진 채널들에서는 스케줄러는 라운드 로빈 방식으로 서비스를 할당한다.
스케줄러(112)가 서비스할 새로운 채널을 선택하는(예를들면, 최소한 하나의 서비스 요청이 진행중이며 현재 서비스되고있는 채널이 없는 경우)각각의 기회를 시간 슬롯 경계로 인용한다. 스케줄러에 의해 사용되는 쳬계에서는 7개의 이용가능한 시간 슬롯중 4개를 고레벨 우선순위를 가진 채널에 할당하고, 2개를 중간 레벨 우선 순위 채널에, 1개를 저레벨 우선순위 체널에 할당한다. 특정하게 사용되는 시퀀스는 고, 중, 간, 고, 저, 고, 중간, 고레벨이다. 시간 슬롯 경계 동안에 서비스가 요청중인 적절한 우선순위 레벨을 가진 채널이 없다면, 스케줄러는 하기의 체계에 따라 다음 우선순위 레벨로 이동한다.;고-중간-저, 중간-고-저, 저-고-중간.
스케줄러(112)내에는 임의의 종류의 서비스 요청이 채널에 요청될 때마다 세트되는 채널 각각에 대해 서비스 요청 래치가 존재한다. 상기 래치는 시간 슬롯이 그 채널에 할당되었을 때 스케줄러에 의해 소거 되며 서비스가 완결되 때까지 재-단정되지 않는다. 상기한 바는 슬롯 사이에 휴식 상태가 없고 다른 채널이 현재 요청중인 서비스 요청을 갖지 않는다면, 두개의 연속적인 시간 슬롯에 채널이 할당되지 않는다는 것을 말해준다.
동일한 우선 순위를 가진 채널들 사이에서, 스케줄러는 서비스가 요청되는 모든 채널이 그들중 하나가 두번 서비스되기 전에 서비스되도록 해준다. 동일한 우선순위 채널들중에서 최하위 번호의 채널이 먼저 서비스 된다.
물론, 제한된 프로세싱 자원으로 억세스하려는 경쟁적인 요구들에 우선순위를 할당하는 체계는 공지도어 있는 것이다. 이러한 체계중 다른 것들이 방금 설명한 체계를 대신할 수도 있다. 설명된 체계는 가장 낮은 우선 순위 요청자에게도 확실한 서비스를 제공하기때문에 타이머 시스템에서 유익한 것으로 믿어진다.
파라미터 RAM(114)는 6개의 파라미터 레지스터를 구비하는데. 이들은 각각 16비트 크기로서, 16개의 타이머 채널 각각에, 전체 RAM의 192바이트에 대응한다. 파라미터 RAM(114)는 호스트 CPU 및 서비스 프로세서 모두가 데이타 판독 및 기재를 할 수 있다는 점에서 "유얼 억세스"이지만, 이들중 하나만이 한 시점에서 억세스할 수 있다. 어드레스 멀티플렉서(122) 및 데이타 멀티플렉서(123)가 서비스 프로세서와 호스트 CPU중 어떤 것이 억세스 할것인지를 선택한다.. 어떤 기능성 있는 버스 마스터가 억세스할 것인지를 실제로 결정한다. 어드레스 멀티플렉서(122)는 파라미터 RAM 어드레스 버스(11)를 거쳐서 BIU 및어드레스 레지스터(80)로부터 어드레스를 수신하도록 결합된다. 데이타 멀티플렉서(123)는 RAM 버스(110) 및 멀티플렉서(77)에 양방향성으로 결합된다. 파라이터RAM(114)를 억세스하기 위해 서비스 프로세서에 의해 어드레스가 발생되는 방법에 대해서는 본 발명과 관련된 정도까지 아래에 상세히 설명되겠다. 그런데, 어드레스는 채널 레지스터(87)(제 4b도)의 현재 내용에 따라서 또는 오프셋 값을 더하여 수정된 내용에 따라서 발생될 수 있다. 현행 채널에 관련하여 파라미터 RAM 어드레스가 지정되는 어드레싱 모드는 서비스 프로세서에 의해 실행하고자 하는 기본 요서의 작성에 있어서 상당히 증가된 유연성을 제공한다.
파라미터 RAM(114)의 설계에서 또다른 중요한 점은 일치의 문제이다. 호스트 CPU가 예를 들어 채널 0을 사용하여 파라미터들을 파라미터 RAM에 기재하는 공정중에 있다면, 서비스 프로세서에 의해 실행되는 어떤 서비스 루틴도 기재된 파라미터 몇개를 사용할 수 없는 것이 중요하다. 복수-바이트를 사용한 동일한 문제점이 반대의 방향, 즉 파라미터가 서비스 프로세서에서 호스트 CPU로 전달되는 방향에서 존재한다. 일치의 문제를 다룬 여러가지 방법들이 그 기술 분야에서 공지되어 있다. 완벽하게 하기 위해 제시된 실시예에서 사용된 일치 쳬계를 요약된 형태로 설명하겠다.
파라미터 RAM(114)을 구성하는 16-비트 워드중 하나가 일치 데이타 제어 레지스터(CDC)로서 사용하도록 지정되어 있는데, 여기서 상기 워드는 채널 0의 파라미터 레지스터(5)로서 지정되어 있다.(제 2b도 참조). 상기 레지스터의 비트 15는 시마포어(swmaphore)비트로 사용된다. 서비스 프로세소 또는 호스트 CPU가 파라미터를 억세스 하고자 할 때, 시마포어 비트가 먼저 검사된 다음, 그것이 세트되었다면, 일치 데이타 전송용으로 사용되는 위치로의 억세스는 시마포어 비트가 소거될 때까지 지체된다. 가능한 버스 마스터중 하나가 일치 전송을 하고자 한다면,먼저 시마포어 비트를 세트한 다음, 전송을 실행하고, 다음에 시마포어 비트를 소거한다. 이러한 체계가 수행되었는지 관찰하는 것은 호스트 CPU및 서비스 프로세서에 의해 실행될 프로그램을 작성하는 프로그래머의 일이다.
비트 14는 3개 또는 4개의 파라미터(각각 16비트)가 일치되게 전송되었는지를 나타내는 모드 비트로 지정된다. 만약 3개의 파라미터가 전송된다면, 채널 1의 파라미터 레지스터 0-2로서 지정된 워드가 보호 기억 장소로 사용된다. 4개의 파라미터가 전송되면, 채널 1의 파라미터 레지스터 3가 사용된다.
제시된 실시예에서 사용된 일치 체계의 자세한 부분은, 그 문제점 및 해결 방법이 그 기술에 숙련된 사람에게는 공지되어 있는 것이기때문에 여기에서 중요한 것은 아니다.
기본 요소 선택 레지스터(115)는 상술한 4채널 기본 요소 선책 레지스터를 포함한다. 상기 레지스터는 RAM 버스(110)와 양방향성으로 결합되어 있으며 라인(86)으로부터 서비스되는 채널을 가리키는 입력을 수신한다. 채널 기본 요소 선책 레지스터의 출력은 마이크로 엔진의 기본 요소 선택 논리에 제공된다.
호스트 서비스 요청 레지스터(116) 는 상술한 2개의 호스트 서비스 요청 레지스터를 구비한다. 호스트 서비스 요청 레지스터(116)는 RAM 버스에 양방향성으로 결합되며 16비트 출력을 서비스 버스(120)에 제공한다. 상술한 바와 같이, 호스트 서비스 요청 레지스터(116)는 현재 서비스되고 있는 채널을 가리키는 입력을 스케줄러로부터 수신한다. 또한, 호스크 서비스 요청 레지스터는 브랜치PLA(41)로부터 입력을 수신하고 출력을 제공한다.
제 4d도 이외에 도시되지 않은 레지스터의 나머지 부분은 단순히 시스템 레지스터를 특징지워지며 블럭(113)으로, 도시된다. 상기 그룹에 포함되는 것은 호스트 시퀀스 레지스터로서 이것은 입력을 브랜치 PLA 에 제공한다. 모듈 구성 레지스터, 모듈 테스트 레지스터, 위상 인터럽트 인에이블 레지스터 등과 같은 다른 레지스터들은 인터럽트 발생 논리와같은, 상기 관점으로 설명되ㅈ 않은 타이머 논리의 부분으로 출력을 제공한다.
제 4d도에 도시된 호스트 인터페이스 및 스케줄러 부분의 특성 및 동작의 상세한 이해가 본 발명의 실시에 필요한 정도까지는, 아래에 좀더 상세히 제 4d`도를 설명하겠다.
제 4a도 내지 4d도에 도시된 장치가 설명된 바와 같이 완벽하게 시스템의 논리 구조 각각을 포함할 수 있다고 여겨지지는 않는다, 그러나, 성명된 타이머의 전체 구조 및 기능은 본 기술 분야에 숙련된 사람이라면 잘 알 수 있을 것이다.
이제 제 5도를 보면, 싱글 타이머 채널의 제어 하드웨어가 도시되어 있다. 제시된 실시예에서, 16개의 타이머 채널 각각은 다른 타이머 채널들과 여러면에서 완전히 동일하다. "채널 직교성"으로 인용된ㄴ 시스템의 중요한 특성중 하나가 되는 상기 특성은 한 채널에 의해 수행되는 기능이 임의의 다른 채널에 의해서도 수행될 수 있음을 의미한다. 그러므로, 제 5도에 도시된 하드웨어는 아래에 특별히 언급한 부분을 제외하면 제시된 실시예의 16개 채널 타이머 동작을 그대로 만들어 놓은 것이다.
각각의 타이머 채널의 이벤트 레지스터(130)는 실제로 포획 레지스터(131) , 부합 레지스터(132), 이상 또는 동등 비교기(133)를 구비한다. 포획 레지스터의 내용이 ER 버스에 로드되도록 하기 위해 포획 레지스트(131)는 전송 게이트(134)를 통하여 ER 버스에 결합된다. 부합 레지스터는 전송 게이트(135)를 통하여 ER 버스에 양방향성으로 결합된다. 포획 레지스터(131)는 전송 게이트(136)에 의해 TCR1 버스 또는 TCR2 버스로부터 로드된다. 유사한 전송 게이트는 비교기(133)로 입력되는 것이 TCR 1 버스인지 TCR2 버스인지를 제어한다. 비교기(133)의 다른 입력은 항상 부합 레지스터(132)이다.
제 5도에 도시된 장치의 반대편 끝으로 가면, 상기 타이머 채널과 연관되어 있는 핀(140)이 핀 제어 논리의 블럭(141)에 결합된다. 핀 제어 논리 장치는 핀이 입력 타이머 핀으로 구성되는지, 출력 타이머 핀으로 구성되는 지를 결정한다. 핀이 입력 타이머 핀으로 구성될 때, 핀 논리 제어 장치(141)는 포획 이벤트를 트리거 하기 위한 양방향 전이 또는 음방향 전이를 인지하도록 만들어질 수 있다. 출력에 대하여 구성될 때, 핀 제어 논리 장치는 논리 고레벨, 논리 저레벨을 발생시키도록, 또는 부합 이벤트의 발생에 따라 레벨을 변경 또는 토글시키도록 프로그램될 수 있다. 또한, 부합 이벤트의 발생에 관계없이 상술한 세가지 가능성 중 어떤 것을 강제하는 것도 가능하다. 서비스 프로세서는 상태 제어( 핀 상태가 "강제"됨), 액션 제어( 전이가 검출되거나 발생된 레벨이 선택됨), 방향 제어(핀이 "입력 " 또는 "출력"으로 구성됨)입력을 통하여 핀 제어 논리 장치를 제어하며 상태 출력을이동하여 그 상태를 모니터할 수 있다.
전이 검출 래치(145)는 핀 제어 논리 장치 로부터 입력을 수신하도록 결합되어 있다. 핀에서 논리 장치(141)에 의해 지정된 전이가 검출 될 때, 핀이 입력용으로 구성되었다면 래치(145)는 세트된다. 래치는 마이크로 코드 제어하의 서비스 프로세서에 의해 소거 또는 부정된다. 아래에 상술되는 특정한 상황하에서, 전이 검출 래치는 연속적으로 부정된다.
부합 인식 래치(150)는 핀 제어 논리 장치에 입력을 제공하도록 결합된다. 부합 레지스터(132)의 내용이 TCR 버스 중 선택된 하나의 상태에 "부합"하고 다른 논리 조건들이 충족된다면, 부합인식 래치(150)는 세트된다. 이렇게 될때, 핀이 출력용으로 구성되었다면 핀 제어 논리 장치(141)에 의해 핀에 서 선택된 전이가 발생한다. 부합 인식 래치(150)는 마이크로 코드 제어하의 서비스 프로세서에 의해 부정된다.
전이 검출 래치(145)의 출력은 제 10R 게이트(146) 및 제 1AND게이트(147)의 입력에 결합된다. OR 게이트(146)의 출력은 포획 이벤트 논리(148)에 결합된다. 포획 이벤트 논리(148)는 또한 두개의 카운터 중 하나를 나타내는 제어신호 (시간 제어 #2)를 수신한다. 포획 이벤트 논리(148)의 출력은 전송게이트(136)에 결합된다. OR게이트(146)의 출력이 액티브될 때, 포획 이벤트 논리(148)는 시간 제어 #2에 따라서, 전송 게이트(136)가 TCR 1버스 또는 TCR 2 버스의 현행값을 포획 레지스터(131)에 로두하도록 만든다. 포획 이벤트는 전이 검출 또는 부합 이벤트에 의해 트리거 될 수 있음은 분명하다.
AND 게이트(147)의 다른 입력은 서비스 프로세서의 제어하에 있는 제어신호 MTSRE(부합/전이 서비스 요청 인에이블)이다. AND게이트의 출력은 TDL(전이 검출래치)로 인용되는 제어신호로서, 서비스 프로세서의 브랜치 PLA에 결합되며 제 2 OR게이트(149)의 한 출력을 포함한다. OR게이트의 출력은 설명된 채널용 서비스 요청 신호로 생각된다.
제 2aND 게이트(151)는 부합 인식 래치 (150)의 출력에 결합된 한 입력 및 MTSRE제어 신호에 결합된 제 2입력을 갖는다. AND 게이트의 출력은 MRL(부합인식 래치)로 인용되는 제어 신호를 포함하며서비스 프로세서의 브랜치 PLA에 결합되고 OR`게이트로 입력된다.
인버터(162)는 MTSRE 제어 신호에 결합된 입력과 OR 게이트(163)의 한 입력에 결합된 출력을 갖는다. OR게이트(163)의 다른 입력은 전이 검출 래치(145)를 부정하는 서비스 프로세서로부터의 제어 신호이다. OR게이트의 출력은 전이 검출 래치(145)의 소거 또는 리세트 입력과 결합된다.
TDL, MRL과는 다른 OR게이트(149)의 두 입력은 호스트 서비스 요청 래치(153) 및 링크 서비스 요청 래치(154)의 출력이 된다. 이들중 어느것도 타이머 채널 하드웨어 내에 실제로 위치하지는 않는다. 스케줄러내에 위치하는 것으로 생각하는 것이 좀더 정확하다. 제 4d도의 스케줄러(112)내에 있는 것으로 여겨지는 OR게이트(149)의 출력은 상기 채널 용 서비스 요청 신호이다.
제 3AND 게이트(145)는 부합 인식 래치(150)의 입력에 결합된 출력을 가진다. AND게이트(155)의 한 입력은 전이 검출 래치(145)의 출력에 결합된 입력을 가진 인버터(156)의 출력이 된다. AND게이트의 제 2입력은, 부합 인식 래치(150)의 출력 및 이벤트 레지스터 기재 제어 신호에 결합된 입력을 가진 부합 인식 인에이블 래치(157)의 출력이 된다. ER 기재 제어 신호는 전송 게이트(135)를 제어한다. AND 게이트(155)의 제 3입력은 비교기(133)의 출력이며, 제 4입력은 NAND 게이트(160)의 출력이다.
NAND 게이트의 한 입력은 부합 인에이블 래치(161)의 출력이다. 부합 입에이블 래치는 16개의 타이머 채널 모두에 공유되며 어느 한 채널의 제어 하드웨어 내에 위치하는 것으로 생각하는 것은 적절하지 않다. NAND 게이트의 다른 출력은 설명된 채널이 서비스 프로세서에의해 현재 서비스되고 있음을 지적해 주는 신호이다.(즉, 상기 신호는 제 4b도의 채널 레지스터(87)의 디코드된 출력에서 유도된다.). 부합 인에이블 래치(161)는 서비스 프로세서에 의해 어떤 채널의 서비스가 시작 될 때, 즉 각각의 시간 슬롯 경계에서, 세트신호에 의해 세트된다, 따라서, 디폴트 상태는 서비스 되는 채널에 대해 부합이 금지되는 것이다. 시간 글롯이 할당된 채널에 대한 서비스 프로그램용 엔트리 포인트 또는 초기 마이크로 프로그램 카운터 값내의 부합 인에이블 비트가 세트되었다면, 부합 인에이블 래치(161)는 소거된다. 마이크로 엔진으로부터의 부합 인에이블 신호는, 마이크로 엔진이 후식을 하여서 서비스 프로세서가 후식하고 있는 동안 채널 레지스터(87)의 내용에 대응하는 신원을 가진 채널에 대해 부합이 주주의하게 금지되지 않는 때에도 역시 존재한다.
부합 인식 인에이블 래치(157) 및 부합 인에비블 래치(161)의 상세한 기능은 본 발명와 관계되는 정도까지 아래에 상세히 설명하겠다. 요약하면, 부합 인식 인에이블 래치(157)는 부합 레지스터(132)가 서비스 프로세서에 의해 기재될 때까지 다른 부합을 디스에이블 시킴으로서 하나의 부합 레지스터 값에 여러개의 부합을 방지하는 역할을 하며, 부합 인에이블 래치(161)는 실행되고 있는 기본 요소에 의해 상기 부합이 특별히 인에이블 되지 않는 한 현재 서비스 되고 있는 채널 상에서 부합의 발생을 불가능하게 한다.
설명된 채널 하드웨어의 중요한 특성은 비교기(133)의 특질이다. 상술한 바와 같이, 상기 비교기는 이상-또는 -동등 비교기이다. 그 논리적 기능은 양의 정수 세트와같은 무한수열의 관점에서 쉽게 이해되지만, 유한한 길이를 가진 프리-러닝 카운터를 사용하는 모듈로 연산과 관련해서는 분명하지가 않다. TCR은 모두 독립된 클럭처럼 시간을 카운트한다. 상기 크럭의 주기는 클럭킹 입력의 주파수에 따르는데, 제시된 실시예에서는, 모두 216가지 다른 상태를 갖는다. 상기 상태는 0000(hex)에서 FFFF(hex)범위이다. 카운터는 FFFF(hex)카운트로부터 증가될 때 0000(hex)의 카운트로 진행한다. 특정한 부합 레지스터 값이 현행 TCR 보다 큰지(클럭 핸드의 앞),또는 작은지(클럭 핸드의 뒤)를 결정하려 할때, 어떤 경우이든지 TCR값(클럭 핸트)은 궁극적으로 부합 레지스터 값을 추월하게 되므로 개념적이 어려움이 생긴다.
비교기(133)에 대한 이상-또는 -동등 선택의 설정은 하기와 같다: 클럭 핸드에 발 앞서가는 클럭 훼이스의 전반부를 현재 시간의 앞이 되는 것으로 규정하며 후반부를 현재 시간의 뒤가 되는 것으로 규정한다. 좀 더 자세히 말해서, 선택된 TCR 값에다 8000(hex)보다 작거나 같은 비-네가티브 16진수를 더함으로서 (정상모듈로 FFFF-더하기-1(hex)연산에 따라 수행되는 합산을 하여)부합 레지스터 값이 얻어질 수 있다면, 선택된 TCR값은 부합 레지스터 값 이상-또는 동등이 되지는 않는다고 말한다. 상기 관계식이 사실로 인한 비교기에 의해 출력이 발생되지 않는다. 상기 관계식이 사실이 아니라면, 선택된 TCR 값은 부합 레지스터 값 이상-또는 -동등이라고 말하며, 비교기(133)는 그 출력을 크게 단정한다. 부합 기능에 의해 트기러되지만 서비스 프로세서가 보합 레지스터(132)와의 비교값을 "너무 늦게"기재하기 때문에 "실패"되는 핀(140)에서의 출력은 완전히 실패하는 것은 아니지만 늦게 실행되므로 상기한 바는 중요하게 된다.
종래 기술의 타이머는 대체로 동등 비교기를 사용하므로, 타이머를 사용하도록 기재된 소프트 웨어는 부합값을 기재하기 이전에 TCR 값이 너므 크지 않은지 알아보는 검사를 먼저 할 필요가 있다. 본 발명에 따른 타이머 채널의 상술된 기능은 이러한 문제점을 경감시킨다.
8000(hex)이외의 값을 가지고서, 상술된 이상-또는-동등 비교 기능을 규정하는 것도 가능하다. 상기한 숫자는 제시된 실시예에서 8000(hex)가 16-비트 카운터의 FFFF(hex)전체 범위의 절반이 되기 때문에 선택된 것이다. 상기 숫자는 즉시 출력을 발생하지 않고도 부합값이 기재되는 TCR의 전체 범위를 반으로 나누는 크기와 같은 " 윈도우"를 효과적으로 만들어준다. 주어진 응용 업무에 대해 선택되는 특정 숫자는 사용되는 카운터의 전체 범위 및 원하는 윈도우의 크기에 따른다.
본 발명의 원리는 제 4a 도 내지 4E도, 특히 실행 유니트로 인용되는 서비스 프로세서의 부분을 도시한 제 4b도를 참고로 하여 잘 이해될 수 있다. 본 발명과 가장 밀접하게 연관되어 있는 제시된 실시예의 서비스 프로세서의 능력에는 마이크로 코드 실행을 인터럽트 하지 않고도 현재 서비스 되고 있는 채널을 변경시킬 수 있는 능력(채널 변경 특성), 다른 채널에 대해 서비스를 스케줄하는 특벼한 종류의 서비스 요청을 발생시키는 능력(채널 링크 특성), 보다는 현행 채널과 관련하여 지정되는 "관련 모드"에서의 여러 기능을 수행하는 능력(채널 관련 모드 특성)등이 있다.
정상 모드 작동에 있어서, 서비스 프로세서는 스케줄러(112)에 의해 결정된 순서에 따라서 16개의 채널을 한번에 하나씩 서비스한다. 서비스 프로세서가 현행 채널과 관련되 마이크로코드 프로그램 실행을 끝마치면, 마이크로 명령 디코드 논리(39)의 출력이 이러한 사실을 스케줄러에 알려준다. 스케줄러는 서비스되는 다음번 채널을 지정하는 4비트 값을 라인(89)상으로 보내어 응답한다. 상기 값은 멀티플렉서(85)를 통하여 채널 레지스터(87)에 기억된다. 동시에, 서비스 프로세서는 새로운 채널을 서비스하도록 실행되는 기본 요소의 제 1마이크로 명령을 위치시키기 위해 사용되는 엔트리 포인트 또는 개시 어드레서를 결정한다. 상기 엔트리 포인트가 결정되면, 서비스 프로세서는 원하는 기본 요소의 실행을 시작한다.
어떤 채널이 현재 서비스되고 있는지를 결정하는 것은 채널 레지스터(87)의 내용이다. 채널 레지스터의 내용은 라인(89)을 거쳐서 채널 제어 하드웨어의 제어 논리(101)에 제공된다. 그 값은 디코드되며 16채널중 어떤 것이 서비스 프로세서로부터 수신된 제어 신호에 의해 작동되는지를 확인하는데 사용된ㄷ나. 채널 레지스터(87)의 내용은 또한 라인(87)을 거쳐서 멀티플렉서(79)에 제공되어 파라미터 RAM(114)용 어드레스 부분을 구성한다. 16개 타이머 채널 각각에 연관되는 16개 부분으로 논리적 분할되는 메카니즘이 제공된다. 파라미터 RAM(은 제 2b도를 참고로 설명된 채널 파라미터 레지스터에 대응한다.
상술한 채널 변경 특성 및 채널 링크 특성은 그것이 타이밍 문제를 해결하는 방식에 따라 하나 이상의 채널 자원을 이용하는데 필수적이라는 인식에서 나온다. 예컨데, 한 채널에서 발생하는 포획 이벤트에 응답하여 다수의 다른 채널에서 부합 이벤트를 설정하는 것이 바람직하다, 따라서, 포획이 이루어지는 채널용 서비스 프로그램은 다른 채널에 직ㆍ간접적으로 영향을 줄 수 있다.
채널 변경 특성은 프로그램 실행에 있어서 인터럽트를 하지 않고도, 서비스 프로세서에 의해 실행되고 있는 서비스 프로그램이 서비스 되고 있는 채널의 번호를 직접 변경할 수 있는 메카니즘을 제공한다. 상기 메카니즘은 멀티플렉서(85) 및 A 버스(60)로의 연결을 포함한다. 마이크로 명령 디코드 논리(39)의 출력에 의해 제어되는 멀티플렉서(85)는 A버스의 16비트중 4개로부터 얻은 값을 가진 채널 레지스터(87)에 로드될 수 있다. 따라서, 새로운 값으로 채널 레지스터를 로두함으로서, 서비스되고있는 채널의 선원을 직접적으로 변경시키는 명령을 마이크로 프로그램내에 포함할 수 있다. 마이크로 명령 시퀀스에서 인터럽트는 불필요하다. 채널 변경을 실행하는 마이크로 명령에 뒤따라서, 모든 제어신호는 새로운채널로, 되도록 오래된 ㄳ으로, 향하여 파라미터 RAM(114)으로의 억세서는 새로운 채널과 연과된 위치로 억세스한다.
채널 링크 특성은 한 채널로부터 서비스 요청에 응답하여 실행중인 마이크로 프로그램이 현행 채널을 포함한 16개 채널 중 임의의 채널에 대한 서비스 요청을 발생시킬 수 있는 능력을 제공한다. 상기 특성을 실시하는데는 링크 레지스터(88), A 버스 와의 연결부, 스케줄러가 필요하다. 상술한 채널 변경 특성의 경우에서처럼, 서비스 프로세서에 의해 실행가능한 하나 이상의 마이크로 명령을 A 버스로부터 얻은 값을 링크 레지스터(88)에 로드하는 효과를 갖는다. 채널에 대한 링크 서비스 요청을 스케줄하기 위해서, 먼저 A 버스의 적절한 비트상에 원하는 값을 위치시킨 다음 마이크로 프로그램은 상기 명령 중 하나를 실행한다. 상기 값은 링크 레지스터로부터 디코더(89)에 공급되며, 라인(90)을 거쳐 스케줄러에 공급되고 다른 서비스 요청과 마찬가지고 스케줄러에 의해 처리된다. 지적된 바와 같이, 링크 레지스터(88)는 마이크로 엔진에 결하된다. 채널이 링크 서비스 요청의 결과에 따라 서비스하도록 스케줄 된다는 사실은 엔트리 포인트 선택 프로세스의 일부분으로 사용되는 채널 조건의 하나이며, 또한 브랜치PLA(41) 에서 이용가능한 브랜치 조건이기도 하다. 상술한 채널 변경 특성을 가진 경우에서처럼, 링크 레지스터가 로드되는 값의 소스는 데이타가 A 버스 에 위치하는 소스가 된다.
채널 링크 특성을 특별히 이용하면, 몇개의 작은 시퀀스로 나누어지는 특히 긴 마이크로 명령 시퀀스가 제공된다. 상기 시퀀스는 현재 작동중이며 나중에 종결되는 동일한 채널에 링크 서비스 요청을 발생시킨다. 채널이 다시 한번 서비스 하도록 스케줄되면, 마이크로 프로그램은 계속될 수 있다. 상기 메카니즘은 서비스를 필요호 하는 다른 채널이 긴 마이크로 명령의 시퀀스를 한번에 모두 실행할 때보다 더욱 빠르게 스케줄되게 한다.
채널 관련 모드 특성은 두가지 양태를 갖는데, 그 첫번째는 관련 모드에서 채널 변경 및 링크 특성 모두를 수행할 수 있는 능력이다. 다시말해, A버스(60)로부터 채널 레지스터(87)또는 링크 레지스트(88)로 로드되는 값은 오프셋 값을 더함으로서 채널 레지스터(87) 내의 현재 값으로부터유도된다. 서비스 프로세서에 의해 실행가능한 최소한 하나의 마이크로 명령이 채널 레지스터(87)내의 현재 값으로부터 유도된다. 서비스 프로세서에 의해 실행가능한 최소한 하나의 마이크로 명령이 채널 레지스터의 내용이 라인(201)을 거쳐서 A버스 상에 위치함을 나타내는 엔코딩을 포함한다. 상기 값이 A 버스 상에 있으면, AU(71)에 의한 조작이 가능하다. 통상적인 예로는, 즉시 비트 필트(마이크로 명령자체의 일부)의 내용에는 채널 레지스터(87)로부터 얻어진 값이 더해지며 그 결과는 A버스 상에 다시 위치한다. 상기 조작된 값이 상술한 바와 같이 채널 레지스터 또는 링크 레지스터로 되돌아가 로드될 수 있다. 이는 현행 채널과 관련하여 지정된 "목적지" 채널을 가지고 채널 변경 또는 채널 링크 기능을 수행하는 효과를 갖는다. 상기 관련 모드에서 채널 변경 및 채널 링크 기능을 수행하는 능력은 마이크로 프로세서에 의해 실행하도록 기재된 마이크로 프로그램의 유연성을 상당히 증가시킨다. 마이크로 프로그램은 특정 채널 또는 채널의 그룹에 독립적으로 기재될 수 있다. 예컨데, 4개의 채널 그룹이 채널 변경 또는 링크 기능을 가지고 엔진 제어기에서 점화 타이밍으로 사용된다면, 마이크로 코드는 어떤 채널 그룹이 사용되는지에 무관하도록 기재될 수 있다.
관련 모드에서 사용될 때, 채널 링크 특성은, 맏이크로 코드가 링크를 이루는 확실한 채널 번호를 알 필요가 없기 때문에, 긴 마이크로 명령 시퀀스를 사용하기 쉽도록 분할하는 메카니즘으로서 상술되어 있는 자기 -링크 특성을 이용하게 한다는 점에 주목하자.
관련 모드의 두번 째 양태는 관련 방식에 따라 즉, 채널 레지스터(87)의 현재 내용에 근거하여, 파라미터 RAM(114)에 어드레서를 발생시키는 능력이다. 멀티플렉서(79)는, 마이크로 코드 제어하에서, 파라미터 RAM(114) 어드레싱에 사용하기 위해 레지스터(80)에 위치한 7비트 어드레스를 발생시키도록 여러 입력중에서 선택한다. 어드레스는 마이크로 명령 디코드 논리(39)의 출력으로부터 얻어진 싱글 7비트 필드를 구비하며 이것은 마이크로 명령 자체내의 비트 필드이다. 상기 어드레스는 파라미터RAM(114)내의 어떤 위치로도 억세스할 수 있다. 상기 어드레스는 파라미터 레지스터가 어드레스 되는 채널이 마이크로 명령내의 즉시 필드의 값에 의해 고정되어 있다는 점에서 절대적인 것이다.
멀티플렉서(79)에 의해 발생된 어드레스는 마이크로 명령 디코더 논리(39)의 출력으로부터 얻은 3비트 필드와 연결되는 채널 레지스터로부터 얻은 4비트 필드를 구비한다. 상기, 경우에서, 상기 어드레스는 3비트 필드에 의해 지정된 특정 레지스터를 가진 현지 서비스되고있는 채널과 연관된 파라미터RAM(114)내의 6파라미터 레지스터중 하나를 어드레싱 하도록 제한되어 있다. 상기 어드레스는 6개의 가능한 파라미터(87)에 ㅡ이해 공급되는 채널의 신원과 관련된다. 따라서, 마이크로 코드는 예컨데 특정한 값을 얻기 위해 파라미터 레지스터 번호 3에 억세스하도록 기재될 수 있으며, 이 코드는 변경하지 않고 임의의 채널에서 실행될 수 있다.
멀티플렉서(79)에 의해 발생된 어드레스는 또한 멀티플렉서(40)의 출력에서 얻은 3비트 필드와 연결되어 있는 4비트 채널 레지스터 필드를 구비한다. 상기 모드는 파라미터 프리-로드 레지스터(75)에 파라미터를 프리-로드하는 시퀀스 각각의 초기 마이크로 명령 동안에만 이용되며 여기에서 더이상 관련되지 않는다.
멀티플렉서(79)에 의해 발생된 어드레스는 또한 DIOB레지스터(78)로부터 얻어진 7비트의 선택에 의해 얻을 수 있다. 파라미터 RAM(114)에 대한 상기 어드레싱 모드를 사용하기 위해서는, 먼저 어드레스를 계산하고 그것을 DIOB레지스터에 집어 넣는다. 상기한 바는 먼저 채널 레지스터의 내용을 A 버스에 넣은 다음, 그 값에 B 버스(61) 또는 다른 소스로부터 즉시 데이타로서 얻어진 채널 오프셋을 더하는 작동을 하고, 그 결과를 DIOB 레지스터(78)에 제공함으로서 성취된다. 다음으로, 상기 값은 멀티 플렉서(79)에 의해 선택된다. 이러한 방법에 의해 발생된 어드레스는 마이크로 로드가 파라미터가 억세스 되는 채널의 신원에 관해 지정되지 않는다는 점에서 관련이 있다. 예컨대, 마이크로 코드는 현행 채널 더하기 2로 서 확인된 채널의 파라미터 레지스터 번호 3가 억세스되는 것으로 지정할 수 있다. 상기 코드는 어떤 채널에서도 실행 가능하다.
파라미터 RAM(114)에 대해 채널 관련 어드레싱을 제공하는 것은 분명히 서비스 프로세서의 유연성을 상당히 증진시킨다. 예컨대, 앞서 주어진 점화 타이밍 예에 있어서, 한 채널에 의해 발생된 결과를 다른 채널상의 이벤트 타이밍의 계산용 파라미터로서 이용하는 것이 바람직하다. 이러한 일은 채널 관련 어드레싱을 하지 않고 이루어질 수 있지만, 그 결과적인 마이크로 프로그램은 16채널 중 특정한 하나를 작동시키도록쓰여진다. 채널 관련 어드레싱을 함으로서, 마이크로 프로그램은 어떤 채널이 사용되는 지에 관계없이 기재될 수있다.
본 발명은 다중 채널 타이머 시스템내에서 사용하기에 특히 적합하지만, 다른 상황에서도 양호하게 사용될 수 있는 서비스 프로세서를 제공한다. 상기 프로세서는 타이머 채널과 같은 다수의 독립적 작동 유니트를 서비스할 수 있다. 서비스 프로세서는 유기적 관계를 가지고 복잡한 문제를 해결하는 작동 유니트의 그륩을 이용하는 프로그램을 작성하는데 있어 강력한 능력을 제공한다.
본 발명의 제시된 실시예를 참고로 하여 도시되고 설명되었지만, 본 기술 분야에 숙련된 사람이면, 본 발명의 정신 및 범주내에서 여러가지 변경 및 수정이 가능할 것이다.

Claims (3)

  1. 각각의 명령의 실행에 응답하여 제어신호를 제공하는 , 명령 실행을 위한 실행 수단과, 상기 실행 수단으로부터 상기 제어 신호를 수신하고, 상기 제어 신호를 상기 다수의 작동 유니트중 하나에 인가하기 위한 제어 수단과, 상기다수의 작동유니트중 상기한 하나를 나타내는 값을 저장하기 위한 제 1레지스터 수단과, 서비스 요청을 수신하도록 상기 다수의 작동 유니트에 결합되어 상기 제 1레지스터 수단내에 값을 저장하기 위한 스케줄러 수단을 구비하는, 다수의 작동 유니트를 서비스 하기 위한 프로세서에 있어서, 상기 실행 수단은 상기 명령 중 최소한 하나에 응답하여 상기 제 1레지스터 수단내에 값을 지정하는 것을 특징으로 하는 서비스 프로세서.
  2. 각각의 명령의 실행에 응답하여 제어신호를 제공하는 , 명령 실행을 위한 실행 수단과, 상기 실행 수단으로부터 상기 제어 신호를 수신하고, 상기 제어 신호를 상기 다수의 작동 유니트중 하나에 인가하기 위한제어 수단과, 상기다수의 작동 유니트중 하나를 선택하기 위한 선택 수단과, 상기 다수의 작동 유니트중 하나를 나타내는 값을 저장하기 위한 링크 레지스터 수단과, 서비스 요청을 수신하도록 상기 다수의 작동 유니트에 결합되어 상기 선택 수단을 작동하기 위한 스케줄러 수단을 구비하며,상기 스케줄러 수단은 상기 선택 수단을 작동하기 위해 상기 링크 레지스터 수단에 저장된 상기 값에도 응답하는, 다수의 작동 유니트를 서비스하기 위한 프로세서에 있어서, 상기 실행 수단은 상기 명령 중 최소한 하나에 응답하여 상기 링크 레지스터 수단내에 값을 저장하는 것을 특징으로 하는 서비스 프로세서.
  3. 각각의 명령의 실행에 응답하여 제어신호를 제공하는 , 명령 실행을 위한 실행 수단과, 상기 실행 수단으로부터 상기 제어 신호를 수신하고, 상기 제어 신호를 상기 다수의 작동 유니트중 하나에 인가하기 위한제어 수단과, 상기다수의 작동유니트중 하나를 선택하기 위한 선택 수단과, 데이타를 저장하기 위한 메모리 수단과, 서비스 요청을 수신하도록 상기 다수의 작동 유니트에 결합되어 상기 선택 수단을 작동하시 위한 스케줄러 수단을 구비하며, 상기 메모리 수단은 상기 다수의 작동 유니트와 동일한 숫자로 다수의 부분으로 논리적 분할되며, 상기 부분 각각은 상기 다수의 작동 유니트중 하나와 일체가 되는 다수의 작동 유니트를 서비스 하기 위한 프로세서에 있어서, 상기 실행 수단은 상기 선택 수단의 출력에 응답하여 상기 메모리 수단에 상기 선택 수단의 출력으로부터 유도된 어드레스를 제공하는 것을 특징으로 하는 서비스 프로세서.
KR1019890011619A 1988-08-19 1989-08-16 서비스 프로세서 KR950014179B1 (ko)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US233,786 1988-08-19
JP233,786 1988-08-19
US07/233,786 US5129078A (en) 1988-08-19 1988-08-19 Dedicated service processor with inter-channel communication features

Publications (2)

Publication Number Publication Date
KR900003753A KR900003753A (ko) 1990-03-27
KR950014179B1 true KR950014179B1 (ko) 1995-11-22

Family

ID=22878682

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1019890011619A KR950014179B1 (ko) 1988-08-19 1989-08-16 서비스 프로세서

Country Status (6)

Country Link
US (1) US5129078A (ko)
EP (1) EP0355462B1 (ko)
JP (1) JPH0612503B2 (ko)
KR (1) KR950014179B1 (ko)
DE (1) DE68922545T2 (ko)
HK (1) HK118397A (ko)

Families Citing this family (19)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE3931924A1 (de) * 1989-09-25 1991-04-04 Standard Elektrik Lorenz Ag Steuerung der zeitlichen zuordnung von datenverarbeitungsleistung einer rechenanlage
US5247677A (en) * 1992-05-22 1993-09-21 Apple Computer, Inc. Stochastic priority-based task scheduler
US5758157A (en) * 1992-12-31 1998-05-26 International Business Machines Corporation Method and system for providing service processor capability in a data processing by transmitting service processor requests between processing complexes
EP0762280B1 (en) * 1995-08-30 2001-11-14 Motorola, Inc. Data processor with built-in emulation circuit
US5732225A (en) * 1995-11-13 1998-03-24 Motorola Inc. Integrated circuit timer system having a global bus for transferring information between local buses
US5729721A (en) * 1995-11-13 1998-03-17 Motorola, Inc. Timebase synchronization in separate integrated circuits or separate modules
US5812833A (en) * 1995-11-13 1998-09-22 Motorola, Inc. Timer bus structure for an integrated circuit
US5701421A (en) * 1995-11-13 1997-12-23 Motorola, Inc. Pin and status bus structure for an integrated circuit
US5721888A (en) * 1995-11-13 1998-02-24 Motorola, Inc. Performing flexible logical operations with timer channel outputs
US5721889A (en) * 1995-11-13 1998-02-24 Motorola, Inc. Data transfer between integrated circuit timer channels
US5634045A (en) * 1995-11-13 1997-05-27 Motorola, Inc. Integrated circuit input/output processor having improved timer capability
US5631853A (en) * 1995-11-13 1997-05-20 Motorola Inc. Flexible configuration of timebases in a timer system
US5925103A (en) * 1996-01-26 1999-07-20 Magallanes; Edward Patrick Internet access device
US6687865B1 (en) 1998-03-25 2004-02-03 On-Chip Technologies, Inc. On-chip service processor for test and debug of integrated circuits
US6543049B1 (en) * 1999-09-03 2003-04-01 International Business Machines Corporation Ranked break points and method for debugging a computer program
CN1996993B (zh) * 2006-01-05 2010-08-04 华为技术有限公司 一种提高背板业务总线利用率的方法和系统
US7869153B1 (en) * 2007-11-16 2011-01-11 Marvell International Ltd. Self servo write tune feature for preamps
US10575055B2 (en) * 2016-07-11 2020-02-25 Sony Corporation Using automatic content recognition (ACR) to weight search results for audio video display device (AVDD)
CN107870866B (zh) * 2016-09-28 2023-09-26 厦门鑫忆讯科技有限公司 Io命令调度方法与nvm接口控制器

Family Cites Families (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
IT988956B (it) * 1973-06-12 1975-04-30 Olivetti & Co Spa Governo multiplo
FR2261565B1 (ko) * 1974-02-20 1977-09-16 Honeywell Bull Soc Ind
US4152761A (en) * 1976-07-28 1979-05-01 Intel Corporation Multi-task digital processor employing a priority
US4325119A (en) * 1977-01-19 1982-04-13 Honeywell Information Systems Inc. Process and apparatus employing microprogrammed control commands for transferring information between a control processor and communications channels
US4268902A (en) * 1978-10-23 1981-05-19 International Business Machines Corporation Maintenance interface for a service processor-central processing unit computer system
US4237535A (en) * 1979-04-11 1980-12-02 Sperry Rand Corporation Apparatus and method for receiving and servicing request signals from peripheral devices in a data processing system
JPS5848167A (ja) * 1981-09-16 1983-03-22 Sharp Corp コントロ−ル装置
US4630232A (en) * 1982-06-08 1986-12-16 Burroughs Corporation Read write system for multiple line adapter organization
US4494194A (en) * 1982-09-30 1985-01-15 Burroughs Corporation Line support processor for data transfer system
US4837677A (en) * 1985-06-14 1989-06-06 International Business Machines Corporation Multiple port service expansion adapter for a communications controller

Also Published As

Publication number Publication date
EP0355462A2 (en) 1990-02-28
KR900003753A (ko) 1990-03-27
JPH0612503B2 (ja) 1994-02-16
DE68922545D1 (de) 1995-06-14
JPH02250110A (ja) 1990-10-05
HK118397A (en) 1997-09-05
EP0355462A3 (en) 1992-07-01
DE68922545T2 (de) 1996-01-11
EP0355462B1 (en) 1995-05-10
US5129078A (en) 1992-07-07

Similar Documents

Publication Publication Date Title
KR950012052B1 (ko) 타이머 및 타이머를 구비한 집적 회로
US5117498A (en) Processer with flexible return from subroutine
KR950014179B1 (ko) 서비스 프로세서
KR960003409B1 (ko) 집적 회로 타이머
KR950012051B1 (ko) 타이머 시스템
KR960005388B1 (ko) 타이머 장치
US5212795A (en) Programmable DMA controller
KR900006549B1 (ko) 데이타 처리 시스템
US4837682A (en) Bus arbitration system and method
US8234430B2 (en) Apparatus and method with controlled switch method
US8966490B2 (en) System, method and computer program product for scheduling a processing entity task by a scheduler in response to a peripheral task completion indicator
JP4226085B2 (ja) マイクロプロセッサ及びマルチプロセッサシステム
US5204957A (en) Integrated circuit timer with multiple channels and dedicated service processor
US5671424A (en) Immediate system management interrupt source with associated reason register
EP0478127B1 (en) Microprocessor bus control system
US5713041A (en) Computer system having a host CPU and a logic for integrating peripheral control functions into the host CPU
US11604739B2 (en) Conditional direct memory access channel activation
JP3547012B2 (ja) マイクロコンピュータ
JP3323341B2 (ja) エミュレーション用プロセッサおよびそれを搭載したエミュレータ

Legal Events

Date Code Title Description
A201 Request for examination
G160 Decision to publish patent application
E701 Decision to grant or registration of patent right
GRNT Written decision to grant
FPAY Annual fee payment

Payment date: 20091012

Year of fee payment: 15

EXPY Expiration of term