KR880001401B1 - 데이타 처리 시스템의 공통 버스 이용검출 논리회로 - Google Patents

데이타 처리 시스템의 공통 버스 이용검출 논리회로 Download PDF

Info

Publication number
KR880001401B1
KR880001401B1 KR1019830000130A KR830000130A KR880001401B1 KR 880001401 B1 KR880001401 B1 KR 880001401B1 KR 1019830000130 A KR1019830000130 A KR 1019830000130A KR 830000130 A KR830000130 A KR 830000130A KR 880001401 B1 KR880001401 B1 KR 880001401B1
Authority
KR
South Korea
Prior art keywords
bus
signal
memory
binary
flip
Prior art date
Application number
KR1019830000130A
Other languages
English (en)
Other versions
KR840003370A (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 KR840003370A publication Critical patent/KR840003370A/ko
Application granted granted Critical
Publication of KR880001401B1 publication Critical patent/KR880001401B1/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/36Preventing errors by testing or debugging software
    • G06F11/362Software debugging
    • G06F11/3648Software debugging using additional hardware
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/34Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment
    • G06F11/3466Performance evaluation by tracing or monitoring
    • G06F11/349Performance evaluation by tracing or monitoring for interfaces, buses
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/36Preventing errors by testing or debugging software
    • G06F11/362Software debugging
    • G06F11/3636Software debugging by tracing the execution of the program

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Quality & Reliability (AREA)
  • Software Systems (AREA)
  • Debugging And Monitoring (AREA)
  • Bus Control (AREA)

Abstract

내용 없음.

Description

데이타 처리 시스템의 공통 버스 이용검출 논리회로
제1도는 본 발명의 공통버스 이용검출 논리를 도입한 소프트웨어 분석기를 전반적으로 예시한 블럭 구성도.
제2도는 본 발명의 공통버스 이용검출 논리의 논리 구성도.
제3도는 중앙의 프로세서와, 공통 버스상의 타유니트들 간에 접속된 소프트웨어 분석기를 도시하는 공통버스를 지닌 데이타 처리 시스템을 예시한 전반적인 블럭 구성도.
제4도 내지 제8도는 제3도에 예시한 데이타 처리 시스템의 공통버스를 통해 이송되는 다양한 정보의 포오맷을 예시한 도면.
제9도는 제3도에 도시한 데이타 처리 시스템의 공통버스의 타이밍 구성도.
제10도는 제3도에 도시한 데이타 처리 시스템의 공통버스 상의 동작들의 타이밍 구성도.
제11도 및 제11(a)도는 제3도에 도시한 데이타 처리 시스템의 공통버스에 결합된 메모리 제어기 우선순위 회로망의 논리 구성도.
제12도는 제3도의 데이타 처리 시스템의 버스에 결합된 전형적인 메모리 제어기의 공통버스 인터페이스 논리 회로를 예시한 도면.
제13도 및 제13(a)도의 제3도의 데이타 처리 시스템의 공통버스와 결합된 중앙프로세서의 공통버스 인터페이스 논리 회로.
제14도는 이중 호출(fetch)메모리 동작을 행할 동안의 제3도에 도시한 데이타 처리 시스템의 중앙 프로세서, 공통 버스 및 메모리 제어기의 동작은 나타낸 타이밍 구성도.
* 도면의 주요부분에 대한 부호의 설명
200 : 공통버스 301 : CPU 버스사용 검출논리 회로
302 : 어드레스 레지스터 303 : 데이타 레지스터
304 : 자동 어드레스(개발논리 회로) 305 : 버스 인터페이스
306 : 마이크로 프로세서 307 : 입 출력 제어기
308 : 프롬 309 : 램
310 : 제어기 311 : 상태 레지스터
312 : 사이클 비교기 313 : 데이타 비교기
314 : 어드레스 비교기 315 : 상태 레지스터
316 : 추적 제어기 317 : 추적 어드레스 제어기
318 : 멀티 플렉서 319 : 추적 램
320 : CPU FW 어드레스 디코드 322 : CPU 채널번호 검출 논리 회로
일반적으로 본 발명의 방법 및 장치는 데이타 처리 시스템 분석기에 관한 것이고, 특히 공통 입 출력 버스에 의해 메모리 및 기타 주변장치들에 접속된 중앙처리장치(CPU)를 지닌 데이타 처리 시스템에다 소프트 웨어 분석기를 부착시키는 방법에 관한 것이다.
본 발명은 중앙처리장치에 의한 공통 버스의 이용 검출에 관한 것이다. 특히 공통 버스로의 액세스를 요구하고 장치들의 우선 순위 레벨을 모니터함으로써 이러한 이용을 검출하는 것에 관한 것이다.
데이타 처리 시스템 동작을 분석하기 위한 현재의 방법에는 데이타를 추출하거나 또는 동작중인 데이타 처리 시스템의 실행을 모니터하기 위한 것등의 다양한 방법이 있다. 이러한 데이타 처리 시스템 분석기들은 2가지 범주로 구분지을 수 있는바, 하드웨어 분석기와 소프트웨어 분석기이다.
하드웨어 분석기는 데이타 처리 시스템 하드웨어의 동작의 다양한 양상을 모니터하고 분석하는 것을 목적으로 한다. 예를 들어, 하드웨어 분석기는 중앙처리장치내의 다양한 타이밍이나 또는 버스에 연결된 유니트 들간의 정보 이송을 모니터할 수도 있다. 또 예를 들어, 이 하드웨어 분석기는 메모리로부터 워어드를 판독 하기 위해 메모리가 중앙처리장치 요구에 응답하는데 걸리는 시간-이 시간은 판독을 행하기 위해 메모리가 즉시 이용 가능한 경우들 및 메모리가 주변장치로의 데이타 이송을 실행하기에 바쁘기 때문에 판독이 지연되는 경우들을 반영하는 평균 시간임-을 분석할 수도 있다. 하드웨어 분석기들은 사용인자들 예를 들어, 중앙 처리장치가 메모리로 부터의 데이타나 또는 입 출력동작 완료를 기다리면서 유효 시간의 백분율에 비교해서 중앙처리장치가 사용되는 시간의 백분율을 결정하는데 사용된다. 또한 이 하드웨어 분석기는 주변장치들 및 메모리 서브 시스템들 등과 같은 시스템내의 다양한 부품들에 대한 응답시간 및 사용인자들을 결정하게 사용 될 수 있다. 이 하드웨어 분석기에 의해 마련되는 데이타는 다양하게 사용될 수 있다. 예를 들어, 시스템 디자인 문제점들의 진단이나 또는 데이타 처리 시스템으로서의 시스템 형태의 최적화가, 시스템을 현존하는 데이타 처리 작업량에 최적화시키거나 또는 변화하는 데이타 처리 작업량을 수용하는 것에 반응하여 장비를 부가시키거나 제거시킴으로써 압축되거나 신장된다.
데이타 처리 동작의 하드웨어 분석을 실행하는 현재의 방법은 다양한 하드웨어 신호들을 모니터하여 하드웨어 분석에 요구되는 데이타를 제공할 수 있게끔 하드웨어 분석기를 데이타 처리 시스템 내의 포인트들에 접속시킬 수 있을 정도로 분석될 데이타 처리 시스템의 하드웨어에 대한 상세한 지식을 필요로 한다. 하드웨어 분석기를 데이타 처리 시스템에 얼마나 용이하게 연결시키느냐는 시스템마다 다르고 아울러 모니터 또는 프로우브포인트들이 그 시스템안에 설계되어 있느냐에 달려있다. 현재의 하드웨어 분석기들은 종종 신호들을 모니터하여 필요한 데이타를 수집할 수 있도록 인쇄회로기판상에 설치된 부품들의 다양한 핀에다 모니터용 신호 와이어를 연결시키는 것을 필요로 한다.
소프트웨어 분석기는 소프트웨어 프로그램들이 데이타 처리 시스템에서 실행되는 동안 그 동작을 분석하는 것이다. 이 소프트웨어 분석기는 특정화된 메모리 위치점에로의 액세스를 모니터하거나, 특정화된 주변장치로의 액세스를 모니터하며, 메모리 워어드내의 특정 비트의 설정을 모니터하고, 특정 하드웨어 우선 순위 레벨에서의 프로그램의 실행을 모니터하며, 또는 소프트웨어 프로그램의 실행을 추적하는데 사용될 수 있다. 이 소프트웨어 분석기의 기능들은 예를 들어 누가 부주의하게 특정 위치에서의 데이타를 파괴하는 가의 결정을 시도하는데 있어서 또는 동작 시스템에 있어 코우드의 특정 부분이 기록되어 보다 빠르게 실행될 수 있도록 어디서 가장 많은 양의 시간이 소요되는가를 결정함으로써 소프트웨어 프로그램을 최적화시키기 위해 소프트 시프템들의 디버깅을 행하는 동안 실행될 수 있다.
이러한 소프트웨어 분석기의 기능들은, 분석될 소프트웨어가 실행되어질 데이타처리 시스템의 다양한 하드웨어 특징들을 사용함으로써 다양한 분석 루우틴들을 포함하여 분석될 소프트웨어를 수정함으로써, 또는 데이타 처리 시스템에 부착된 소프트웨어 분석기에 의해, 또는 이들 방법의 결합에 의해 실행될 수 있다. 예를 들어, 중앙처리 장치가 입 출력동작을 완료를 기다리면서 유휴시간의 양을 소프트웨어 분석기가 분석해야 할 경우, 이 유휴 루우프는 그것이 실행될때마다 카운터가 증분하도록 유휴 루우프내에다 카운터를 포함시키게 수정할 수 있다. 이때 이 카운트는 동작중인 시스템이 전체 경과 시간중 유휴 루우프에 소요하는 시간의 양을 결정하는 데 사용할 수 있다. 실행되는 소프트웨어내의 우선 순위 레벨을 변화시키는 동작중인 시스템내의 루우틴은 상기 우선 순위 레벨이 변화할때마다 데이타를 수집하도록 변경될 수 있다. 분석될 소프트웨어에다 데이타 수집이나 또는 프로우브 포인트들을 삽입시키는 것을 요구하는 이런 종류의 수정은 이러한 프로우브 포인트들 및 그 데이타 수집을 삽입시킬 수 있을 정도로 상세한 소프트웨어 지식을 필요로 한다. 또한 이러한 기술은 많은 경우에 분석될 시스템의 동작이 소프트웨어 분석을 위한 데이타 수집을 실행하는데 요구되는 실행시간의 증가에 기인하여 변화되는 단점을 갖고 있다.
또한 중앙의 프로세서 시스템에 형성된 하드웨어 특징들은 소프트웨어 분석기능을 실행하게 사용될 수도 있다. 예를 들어, 누가 어떤 특정 메모리 위치를 변화시키고 있는가를 결정하고자 한다면, 이것이 내포된 메모리 위치나 블럭은 이 시스템에 그 능력이 있을 경우 기록 보호될 수 있고, 메모리 기록 위반이 검출되는 매시간마다 메모리 위치가 검출된 특정 위치점이냐에 대해 분석이 이루어질 수 있게끔 루우틴이 기록된다. 그후 이 루우틴은 특정 위치로 기록되는 명령의 위치에 대해 데이타를 수집할 것이다. 또한, 특정 중앙처리장치가 각각의 점프(jump) 또는 브랜치(branch) 소프트웨어 명령의 실행을 트랩시키거나 인터럽트 시킬 능력을 갖고 있는 경우에는 루우틴을 기입하여 그 점프/브랜치의 트램/인터럽트의 감시를 할 수 있다. 그후 이 루우틴은 어느 프로그램 위치가 그 특정 위치에 점프/브랜치 명령의 실행을 시도하였는가를 분석하는데 사용될 수 있다.
대안으로, 시스템내의 소프트웨어 실행을 모니터하고 분석하기 위해 데이타 처리 시스템에다 장비를 부착시킬 수도 있다. 이 경우, 하드웨어 모니터를 행하기 위해 사용한 것과 유사한 다양한 프로우브 포인트들에다 상술한 장비를 부착시킬 수 있고, 이들 프로우브 포인트들에서 수집된 신호들을 사용하여 시스템 동작을 모니터하고 분석할 수 있다. 데이타 처리 시스템에다 장비를 부착시키는 이 방법의 잇점은 시스템웨어 시스템의 분석이 보통 시스템내의 소프트웨어 실행을 관측하면서 간섭하거나 변화시킴이 없이 행해질 수 있다는 것이다. 또한 스프트웨어를 모니터하기 위해 이렇게 부가적인 장비를 사용하는 부가적인 잇점은 이것이 일반적으로 모니터될 특정의 동작중인 시스템의 소프트웨어와 독립적이다는 것이다. 이 방법은 일반적으로 데이타 처리 시스템 하드웨어에 대한 상세한 지식을 요구하지만, 다양한 소프트웨어 프로우브 포인트들이 동작중인 시스템 소프트웨어내에 삽입되어질 경우 요망되는 그런 상세한 지식은 요구되지 않는다.
일련의 모니터 및 분석기를 데이타 처리 시스템에다 부착시키는데에 있어서의 문제점은 그것이 소프트웨어 실행이나 또는 하드웨어 동작을 분석하기 위한 것이라면 분석기를 가능한한 편리하게 시스템에다 부착시키는 것이다. 데이타 처리 시스템내에 사용된 소자들과 전자 패케이징이 현대의 집적회로에 사용된 것같이 밀집되지 않은 종래에는 프로우브 포인트들은 인쇄 회로기판에 설치된 각종의 구성소자들의 리이드 선들에다 클립을 끼움으로써 데이타 처리 시스템에 부착시킬 수가 있었다. 과거에는 이러한 인쇄 회로기판들은, 분석기 프로우브들이 시스템에 연결되는 한편, 인쇄 회로기판이 데이타 처리 시스템 캐비넷내에 들어갈 수 있게끔, 시스템내에서 간격을 이루고 있었다. 그러나, 집적회로와 현재의 패케이징 밀도의 진전에 따라서 불가능하지는 않지만 인쇄 회로기판이 통상의 동작위치에 있는 동안에 프로우브들을 인쇄 회로기판상의 포인트들에다 접속 하는 것이 가끔 곤란하게 된다. 많은 경우 신호전파 지연제한 때문에, 시스템은 프로우브들을 접속시키는 연장용 카드에 의해 인쇄 회로기판이 접속되는 동안에 시스템은 통상의 속도로 동작할 수 없다.
따라서, 필요한 것은 모니터나 분석기를 모니터되거나 분석될 기능의 동작에 영향을 주지 않고서 용이하게 데이타 처리 시스템에 접속시킬 수 있는 방법이다.
[본 발명의 목적]
따라서, 본 발명의 목적은 분석기를 시스템에 편리하게 접속시킬 수 있는 방법 및 장치를 제공하는 것이다.
본 발명의 다른 목적은 시스템에 대한 상세한 지식이 없이 그 시스템에다 분석기를 연결시킬 수 있는 방법 및 장치를 제공하는 것이다.
본 발명의 또 다른 목적은 시스템의 동작에 영향을 주지 않고서 그 시스템에다 분석기를 연결시킬 수 있는 방법 및 장치를 제공하는 것이다.
본 발명의 더욱 다른 목적은 시스템에다 분석기를 접속시킬 수 있는 저렴한 방법 및 장치를 제공하는 것이다.
[발명의 요약]
본 발명은 버스등과 같은 공통원에 연결된 특정장치에 의해, 그 공통원의 사용을 검출하기 위한 방법 및 장치인바, 여기서 그 공통원의 사용은 어떤 요구를 행하는 최고의 우선 순위를 가진 장치에 허용된다. 관련된 특정장치에 직접 접속되지 않은 검출 논리회로는 그 특정장치의 우선 순위에 인접한 우선 순위 공통원에 접속된다. 공통원의 사용을 요구하는 장치들의 우선 순위를 모니터 함으로써, 이 검출 논리회로는 공통원이 관련된 특정장치에 대하여 허가된 시점을 추론할 수 있다.
본 발명은 특히 특허 청구의 범위에 지적 되어 있다. 본 발명에 대한 상술한 그리고 추가적인 목적 및 잇점들은 첨부 도면을 보면서 다음의 설명을 참조하면 이해할 수 있을 것이다 특히, 본 발명의 방법이 실행되는 양태, 본 발명의 장치가 구성되는 양태, 그리고 그 동작 양상은 첨부도면과 함껜 다음의 상세한 설명의 관점에서 이해될 수 있을 것이다. 그리고 도면에서 유사한 참조번호들은 여러도면에서 유사한 요소들을 나타낸다.
[우선적인 실시예의 설명]
[발명의 설명]
본 발명이 도입된 분석기는 실시간에 중앙처리장치(CPU)를 기록할 능력이 있는 소프트웨어 분석기이다. 이 소프트웨어 분석기는 우선적으로 소프트웨어 디버깅 및 검사를 위해 사용된다. 이 소프트웨어 분석기는 분석 될 소프트웨어가 실행될 데이타 처리 시스템의 공통 버스에 부착된다. 이 소프트웨어 분석기는 다른 주변장치들이 공통 버스에 부착되는 것과 동일한 양식으로 중앙처리장치 바로 아래의 공통 버스에 부착된다. 이 소프트웨어 분석기는 공통 버스를 통하여 이루어진 접속과 중앙처리장치 펌웨어(firmware) 어드레스 라인 테스트 커넥터에 대한 접속을 갖고 있으나 데이타 처리 시스템에 대한 접속을 갖고 있지는 않다.
[소프트웨어 분석기]
이 소프트웨어 분석기는 공통 버스상의 대화를 따라가야할 필요성이 있기 때문에 메모리 속도가 매우 빠른 기록 메모리를 지니고 있다. 이 소프트웨어 분석기는 이 메모리에 리버스(reverse)에셈블리를 생성하기에 충분한 정보를 기록한다. 소프트웨어 분석기 메모리에 기억된 이러한 정보로부터, 소프트웨어 분석기는 정보를 분해하여 소프트웨어 프로그래머에게 이해 가능한 소프트웨어 실행을 기록한다. 이러한 분해로서 소프트웨어 프로그래머에게 익숙한 포오멧이 생성된다.
이 소프트웨어 분석기는 3가지 유형의 중앙처리장치 활동을 모니터할 수가 있다 이들 3가지의 중앙처리장치 활동 유형은, 모든 종류의 메모리 활동, 모든 종류의 입 출력(I/O)활동, 그리고 인터럽트 활동이다. 각각의 중앙처리장치 활동 유형내에서, 소프트웨어 분석기의 사용자는 자기가 모니터하기 원하는 처리가 어떤 종류인가를 선택할 수 있다. 예를 들어, 중앙처리장치 메모리를 참조하는 경우에는, 이 분석기의 사용자는 메모리 기록 또는 메모리 판독을 모니터할 수가 있다. 메모리 판독을 어떤 명령을 호출할 목적의 판독 또는 어떤 명령에 의해 조종될 오피런드(operand) 데이타를 호출할 목적의 판독으로 구분지을 수 있다.
따라서 소프트웨어 분석기는 공통 버스상의 중앙처리 장치 활동들을 모니터하고 이 버스를 이용하는 주변 제어기들 등과 같은 기타 모든 장치들을 무시할 수 있도록 설계되어 있다. 이러한 능력에 따라 공통 버스를 중앙처리장치가 이용하는 것과 소프트웨어 분석기가 정확하게 작용하게 하는 기존 장치들을 이용하는 것으로 구별된다. 그러므로, 이 소프트제어 분석기는, 중앙의 프로세서가 메모리로 데이타를 기록하거나 또는 그로부터 데이타를 판독할 때를 결정하고, 공통 버스상의 디스크 제어기 등과 같은 다른 장치와 이 메모리 간에 일어나는 기타의 메모리 판독 또는 기록들을 무시할 수 있는 능력을 갖게 된다.
중앙처리장치에 의한 공통 버스의 사용에 의해 야기된 공통버스 활동과 기타 장치들에 의한 공통버스의 사용에 의해 야기된 공통버스 활동을 구별지을 수 있는 소프트웨어 분석기의 능력에 의해 소프트웨어 분석기는 중앙처리장치와 관련된 활동들만 모니터할 수 있게 된다. 이 소프트웨어 분석기는 공통버스의 사용을 허용하기 위한 우선 순위가 공통버스를 따라서 앞으로의 버스 사용자의 위치에 의해 결정할 수 있다는 사실을 이용한다. 중앙처리장치와 공통버스상의 모든 장치들을 접속시킴으로써, 이 소프트웨어 분석기는 중앙처리장치가 공통버스를 사용하고 있는 때를 결정하기 위해 이러한 위치적인 우선순위를 사용한다. 후술하는 바에 의해 알 수 있듯이, 우선적인 실시예에 있어서 중앙처리장치가 공통버스에 대해 요구를 행할때, 메모리 판독 요구는 중앙처리장치간 어떤 요구를 행하고 있음을 가리키는 식별자(중앙처리장치의 채널번호)를 따라가면서 표시된다. 이것은 식별자를 따라가면서 표시가 되지않은 메모리 기록 요구들에 대해서는 그렇치가 않다. 따라서, 버스 활동이 중앙 처리장치와 관련될 때를 결정하는 것은 사용되는 공통버스를 따르는 위치적인 우선권이다.
공통버스의 우선 순위 배치를 사용하도록 소프트웨어 분석기를 설계함으로써, 소프트웨어 분석기는 핵심이 되는 정보가 공통버스상에 나타남에 따라 제때에 그것을 포착할 수가 있다. 공통버스 활동이 중앙처리장치와 관련되는 때를 결정하는 이러한 능력은 우선적인 실시예의 분할된 버스 사이클 동작에 견주어 볼때 더 복잡하게 된다. 즉, 바람직한 실시예로서 메모리에 대한 판독 또는 기록 요구는 적어도 2개의 버스 사이클로 나누어진다. 요구 사이클인 제1사이클(첫번째 반 사이클로서 인용함)동안, 요구하는 장치는 공통버스상에 판독되거나 기록될 위치에 어드레스를 설정한다. 응답사이클이고 첫번째 반 버스 사이클에 관해 비동기적으로 일어나는 두번째 사이클(두번째 반 사이클로서 인용함)동안, 메모리에 기록되거나 메모리로 부터 판독될 데이타가 공통버스상에 놓인다. 소프트웨어 분석기는 첫번째 반 버스 사이클동안 메모리 어드레스를 포착하고 그것을 두번째 반 버스 사인클동안 포착한 메모리 데이타와 정렬시키며 소프트웨어 분석기의 추적 메모리내 의 1위치점에 어드레스 및 데이타를 저장시킬 수 있는 능력을 지니고 있다.
소프트웨어 분석기는 중앙처리장치가 공통버스상에서 활동중일 때를 결정하기 위해 공통버스 이용 검출논리를 사용한다. 전술한 바와 같이 바람직한 실시예에서 데이타 처리 시스템의 공통버스를 따른 우선 순위는 위치에 의해 결정된다. 소프트웨어 분석기를 중앙처리장치와 기타 모든 장치들간의 공통버스상에 배치시킴으로써, 이 공통버스 이용 검출논리는 중앙처리장치가 공통버스에 액세스 되는 것을 결정할 수 있다. 바람직한 실시예에서, 중앙처리장치는 공통버스상에서 우선순위가 가장 낮은 장치이고 메모리는 우선순위가 가장 높은 장치이다. 소프트웨어 분석기를 중앙처리장치 근처에 위치시킴으로써, 소프트웨어 분석기는 공통버스상에서 우선순위가 2번째로 낮은 장치가 된다. 요구중인 어떤 장치로의 공통버스 허용을 결정하는데 사용되는 우선 순위 회로망 때문에, 공통버스상에는 개방 슬로트가 존재할 수 없고, 이에따라 어떤 장치를 공통버스에 접속 시킨 모든 슬로트들은 주변 제어기 또는 메모리등과 같은 어떤 장치로 채우거나, 또는 우선순위 회로망의 완전성을 유지할 수 있도록 슬로트들을 점퍼선으로 연결시켜야 한다.
프로우브 포인트들을 중앙처리장치에 결선시키지 않고 소프트웨서 분석기를 공통버스에 직접적으로 연결시키는데에 있어서의 핵심이 되는 요소는 분석기로 하여금 중앙처리장치와 관련된 버스활동 및 공통버스에 연결된 기타 장치들과 관련된 버스활동간을 구별할 수 있게하는 공통버스 이용 검출논리이다. 공통버스 이용 검출논리가 없었더라면, 소프트웨어 분석기를 하드웨어 시스템에다 부착시키는 매우 더 복잡한 방법이 요구되었을 것이다. 공통버스로 부터 중앙처리장치와 관련된 활동을 포착할 수 있는 이러한 능력은 소프트웨어 분석기로 하여금 중앙처리장치내에서 소프트웨어의 실행과 관련된 정보를 포착할 수 있게하고, 또 이 정보를 분석함으로써 소프트웨어 분석기는 어셈블리 언어 레벨 코우드를 생성하는 리버스 어셈블리를 생성할 수 있다. 공통버스를 통해 일어나는 중앙처리장치에 관련된 활동을 분석하여 중앙처리장치의 소프트웨어의 실행을 모니터함으로써, 본 소프트웨어 분석기는 기타 다른 소프트웨어 디버깅 도구들이 해결할 수 없는 소프트웨어 프로그램들을 해결하는데 사용할 수가 있다.
기타의 도구들은 보통 소프트웨어 그 자체의 실행과 서로 작용함에 따라 다소 어떤식으로든지 소프트웨어 의 실행에 영향을 미친다. 예를 들어, 소프트웨어 분석이 포인트들을 차단시킴으로써 이루어질 경우, 이러한 포인트들의 차단은 보통 중앙처리장치가 실행중인 소프트웨어를 정지하고 중앙처리장치 레지스터를 표시하게 하며, 이 과정에서 분석될 소프트웨어의 타이밍 특성을 변화시킨다. 바람직한 실시예의 소프트웨어 분석기는 중앙처리장치내에서 실행될 소프트웨어의 타이밍을 간섭하지 않는다. 더우기, 이것은 동작중인 어떠한 시스템 소프트웨어와 완전히 독립적임에 따라 소프트웨어 분석기 자체의 수정이 없이도 어떤 소프트웨어 시스템 에나 응용할 수가 있다. 즉, 소프트웨어 분석기가 중앙처리장치에서 소프트웨어의 실행을 관측하고 있다는 사실은 중앙처리장치내의 활동을 변화시키지 않는 반면, 기타 대부분의 소프트웨어 모니터들이 활동을 늦추게 하거나 그렇지 않을 경우 실제적으로 실행되었을 경우와 상이한 소프트웨어 코우드를 삽입시키기 때문에 활동을 변화시킨다. 바람직한 실시예의 소프트웨어 분석기의 추가적인 잇점은 어떤 소프트웨어 공구가 할수 없는 일들을 할 능력을 지니고 있다는 것이다. 예를 들어, 소프트웨어 프로그래머는 어떻게 어떤 특정 워어드 내의 특정 비트가 세트되거나 리세트되는가에 관심을 가질수도 있다. 본 소프트웨어 분석기는 어떤 특정 비트를 모니터할 능력이 있고 특정 워어드가 기록 보호되어 있을 경우 요구될 수도 있는 소프트웨어의 타이밍 특성에 영향을 주지않고서 비트가 수정되고 있는 곳을 결정하며, 그 특정 워어드를 수정할때마다 인터럽트 또는 트랩을 야기할 능력이 있다. 이때 인터럽트 또는 트랩 루우틴은 워어드내의 관련 비트가 수정되고 있었느냐를 결정하기 위해 사용될 수도 있다.
공통버스 이용 검출논리틀 사용함으로써, 소프트웨어 분석기는 중앙처리장치와 관련된 공통버스 활동 및 기타 장치들과 관련된 것 사이클 구분함으로써, 소프트웨어 분석기는 데이타를 어떤 특정 워어드로 기록시키는 어떤 주변장치에 의해 야기된 특정 워어드의 어떤 특정 비트의 수정을 무시할 수 있게 된다. 예를 들어, 소프트웨어 분석기는 어떤 부분이 디스크로부터 메모리 위치중의 한 블럭-이들 위치중 하나가 관련된 특정 워어드임-으로 판독되어 들어갈 경우에도 활동을 무시할 것이다. 기타 장치들에 의해 야기된 데이타 처리 시스템의 변화들을 여과시키는 이러한 능력으로 소프트웨어 분석기는 중앙처리장치내에서 소프트웨어의 실행에 의해 야기된 그런 변화들에 집중하게 된다. 소프트웨어 분석기가 시스템내의 주변장치에 의해 야기된 변화들을 감시하지 않는다는 사실은, 소프트웨어 분석기가 주변장치들에게 주어진 지위 신호들을 모니터할수있고 이에 따라 소프트웨어 분석기는 어떤 주변장치가 메모리내의 관심이 되는 위치의 변화를 가져올 수 있는 어떤 명령신호를 받느냐를 간접적으로 결정하는데 사용될 수 있기 때문에 문제가 되지 않는다. 이에 따라 소프트웨어 분석기는 위치의 변화가 소프트웨어 실행문제 또는 하드웨어 문제점과 관련되어 있느냐를 결정하는데 사용될 수 있게 된다.
분석기를 공통버스에 연결함으로써 소프트웨어 분석기를 데이타 처리 시스템에 결선시키는 잇점은 이 소프트웨어 분석기를 데이타처리 시스템에 매우 쉽게 연결시킨다는 것이다. 이렇게 중앙처리장치 자체내의 논리 요소 리이드선들에다 연결시키는 방법의 단점은 이러한 접속을 행하는데 보다 높은 수준의 지식이 요구된다 는 것이다. 더우기, 리이드 선들이 연결될 포인트는 중앙처리장치 논리 보오드를 수정할 때마다 변동할 수도 있다. 부가적으로, 바람직한 실시예의 중앙처리장체내에서는 중앙처리장치가 공통버스를 이용할 때 분석기에 관련된 모든 데이타를 표시하는 장소는 하나도 없다. 일련의 프로우브 포인트들을 사용하여 중앙처리장치에다가 소프트웨어 분석기를 연결시키게 되면 아마도 다양한 보험업자 연구실의 시험요구사항을 통과하지 못하게 되어 소프트웨어 분석기를 시스템 개발 환경 이의에서는 사용될 수가 없을 것이다.
바람직한 실시예는 중앙처리장치(CPU)를 메모리 및 어떤 데이타 처리 시스템의 주변장치와 연결시키는 공통버스에다 부착시킨 소프트웨어 분석기엔 이용된다 제1도에 블럭 구성도로 도시한 소프트웨어 분석기는 중앙처리장치내의 소프트웨어 실행을 분석하는데 사용된다. 제3도에 도시하였듯이, 소프트웨어 분석기(207)는 중앙의 프로세서(206)와 공통버스(200)상의 기타 모든 장치들간에 연결된다. 후술하듯이, 소프트웨어 분석기(207)를 이 위치에다 배치시키는 것은 소프트웨어 실행이 분석되어질 데이타 처리 시스템에 이용된 버스 우선 순위 계획에 의한 것이다.
이제 제1도를 참조하면서 소프트웨어 분석기의 주요 요소들을 간단하게 설명할 것이다. 소프트웨어 분석기는 2개의 50핀 커넥터에 의해 공통버스(200)상의 1슬로트에다 플러그를 끼워넣음으로써 소프트웨어가 분석 될 데이타 처리 시스템에 부착된다. 후에 더 자세히 설명하듯이, 공통버스(200)는 다양한 장치들간에 전력을 분배하고 데이타를 통신하는데 사용되는 약100회선을 내포하고 있다
소프트웨어 분석기는 실시간에 데이타 처리 시스템의 중앙처리장치의 활동들을 기록할 능력이 있다. 소프트웨어 분석기는 데이타 처리 시스템의 공통버스상이 1슬로트를 점유하고 또 이 분석기는 그 동작을 제어하게 마이크로 프로세서를 내장하고 있다. 분석기를 운용하는자와의 통신은 데이타가 단말장치에 의해 입력되고 출력이 그위에 표시될 수 있도록 단말장치를 소프트웨어 분석기에다 인터페이스시킴으로써 제공되는데, 이 소프트웨어 분석기의 동작 및 사용은 중앙의 프로세서 할동이 분석될 데이타 처리 시스템의 작동과는 무관하다.
이 소프트웨어 분석기는, 메모리 주변 장치들과 중앙의 프로세서간의 모든 동을 이송하는 공통버스상의 데이타 처리 시스템에 부착되지만, 중앙처리장치와 관련된 처리작동에만 응답한다. 이 중앙처리장치의 활동이 중앙처리시스템에 의한 소프트웨어의 실행에 의해 야기됨에 따라 소프트웨어 분석기가 중앙처리장치내의 소프트웨어 실행을 분석하게 한다. 소프트웨어 분석기의 목적은 중앙처리장치의 명령들과 그에 관련된 활동을 기록하는 것이다. 소프트웨어 분석기는 중앙처리장치에 의한 소프트웨어 명령 및 오퍼랜드의 호출을 모니터 함으로써 이것을 실행한다. 소프트제어 분석기는 공통버스를 통해 일어나는 중앙의 프로세서 유니트 활동이 소프트웨어 분석기내의 중앙처리장치 활동정보의 기록을 시작하거나 정지한 수 있게끔 설계되어 있다.
모니터되는 중앙의 프로세서 활동들은 중앙처리 유니트에 의한 일련의 메모리 액세스 접근, 중앙처리장치 와 이 장치와 관련된 어떤 입 출력(I/O)동작, 또는 중앙처리장치에의 인터럽트들로 한정되어 있다. 예를 들어, 소프트웨어 분석기는 메모리 위치 10,000으로 기록되어지고 있는 데이타 패턴 "1234"의 5번째 발생에 대한 기록을 정지하게 프로그램할 수 있다. 바람직한 실시예의 소프트웨어 분석기는 중앙처리장치 활동에 대응 하여 8K(IK=1024)까지 기억할 수 있는 메모리를 갖고 있다. 바람직한 실시예에서, 이것은 그 활동이 분석되고 있는 데이타 처리 시스템에 의해 실행중인 소프트웨어 명령의 약 6K에 대응된다.
소프트웨어 분석기의 사용자 동작을 편리하게 하기 위해, 소프트웨어 분석기는 운용자가 요망한 기능들을 선택하는 일련의 메뉴들에 의해 프로그램된다. 소프트웨어 분석기에 연결된 단자에 마련되는 소프트웨어 분석기의 출력은 데이타 처리 시스템의 기계어와 유사하고 명령 기억술은 확장적으로 사용된다. 중앙처리장치 활동을 기록하는 것에 덧붙여서, 소프트웨어 분석기는 성능을 모니터하는 능력을 지니고 있다. 소프트웨어 분석기는 특정화 된 중앙처리장치 활동들간의 최대 및 최소 또는 평균 시간을 제공한다. 또한 중앙처리장치는 어떤 특정화된 중앙처리장치 활동의 실행회수를 카운트할 수 있다.
소프트웨어 분석기는 데이타 처리 시스템의 공통버스(200)에 연결되어 있기 때문에, 소프트웨어 분석기는 데이타 처리 시스템의 주메모리로 기록되어지거나 그것을 판독할 수 있다. 데이타 처리 시스템의 주메모리로 기록될 능력으로 인하여 추적 램(319)의 내용들이 데이타 처리 시스템의 주메모리로 기록되어지게하고 거기서부터 표시되거나 그렇지 않으면 데이타 처리 시스템 그 자체에 의해 조종되어지게 된다. 데이타 처리 시스템의 주메모리로 부터 판독할 수 있는 능력으로 인하여 소프트웨어 분석기는 특정 데이타 비트 결함들의 발생이 있는 동안 주메모리를 검사할 수 있게 된다. 부가적으로, 소프트웨어 분석기는 데이타 처리 시스템의 주변장치들과 함께 입 출력 동작들을 실행할 능력을 지니고 있다.
전술하였듯이, 소프트웨어 분석기를 데이타 처리 시스템에다 이런식으로 부착시키는 데에 있어서, 소프트웨어 분석기는 프로우브 포인트들을 데이타 처리 시스템 하드웨어의 어디에다 접속시켜야 되는가에 대한 어떤 특정 지식이 없이도 시스템에다 매우 쉽게 부착시킬수 있다. 이 소프트웨어 분석기의 추가적인 잇점은 이것이 데이타 처리 시스템에 접속되는 하드웨어 장치임에 따라 소프트웨어 분석기는 데이타 처리 시스템에서 실행될 동작중인 소프트웨어와 독립적으로 사용될 수 있다는 것이다.
이제 제1도를 참조하면서, 소프트웨어 분석기의 기타 특징들을 설명할 것이다 소프트웨어 분석기는 사용자로 하여금 추적 램(319)내에서의 중앙처리장치 활동들의 기록을 제어하게 사용될 상태 A내지 D를 특정화 할 수 있게 하는 4개의 상태 레지스터(315)를 지니고 있다. 공통버스(200)상의 중앙처리장치의 활동은 어드레스 비교기(314), 데이타 비교기(313), 그리고 사이클 비교기(312)에 의해 상태 레지스터(315)의 상태들과 비교된다. 이들 3개의 비교기의 출력은 추적 제어기(316)에의 입력이고, 이 추적 제어기(316)의 출력은 추적램(319)내에서의 중앙처리장치 활동의 기록을 제어한다.
소프트웨어 분석기는 트리거 포인트 이전 또는 이후에 특정수의 중앙처리장치 활동들을 기록하게 운용자가 프로그램할 수 있다. 예를 들어, 소프트웨어 분석기는 어떤 트리거 포인트 이전에 IK가치의 중앙처리장치활동을 그리고 트리거 포인트 이후의 7K의 활동을 기록하게 프로그램할 수가 있다. 위에서 언급하였듯이, 소프트웨어 분석기는 어떤, 특정화된 데이타 처리 시스템 메모리 위치로의 판독등과 같은 어떤 특정의 중앙처리장치 활동을 기록하게 프로그램할 수 있거나 또는 특정화된 채널 수를 지닌 주변 장치와 함께 모든 입, 출력 활동등과 같은 일단의 활동들을 기록할 수 있다. 소프트웨어 분석기는 중앙처리장치 활동이 수정되고 있는 데이타 처리 시스템에 관해서는 완전히 수동적임에 따라 데이타 처리 시스템의 실행 내지 타이밍에 대해선 아무런 영향을 미치지 않는다.
소프트웨어 분석기의 프로그래밍 및 동작은 입, 출력 제어기(307)및 단말장치(340)를 경유해서 운용자와 교통하는 마이크로프로세서(306)에 의해 제어된다. 소프트웨어 분석기의 동작중인 시스템은 중앙처리장치 활동이 버스 인터페이스(305)를 통해 모니터하게 될 데이타 처리 시스템으로 부터 분석기의 32K판독/기록 메모리 램(309)로 입력된다. 이에 따라 소프트웨어 분석기의 동작 시스템은 새로운 특징을 제공하기 쉽게 수정되고 또한 소프트웨어 분석기의 동작 시스템에 입력하기 위해 소프트웨어 분석기에다 저장 장치를 직접 연결해야할 필요성이 배제된다. 소프트웨어 분석기의 부트 스트랩핑(boot strapping)은 프롬(308)에 의해 제공된다. 바람직한 실시 예에서, 램(309)은 32K바이트짜리 프로그램 가능한 메모리로 구성되고, 프롬(309)은 8K바이트 로 구성되어 있다.
추적 램(319)내의 중앙처리장치 활동의 기록(또는 추적)은 추적 제어기(316)에 저장된 2개의 스테이터스 비트들에 의해 제어된다. 4개의 상태(A-D)레지스터(315)는 이들 2개의 스테이터스 비트들을 수정하는 데 사용된다. 첫번째 스테이터스 비트는 추적비트이다. 추적비트가 설정되었을때, 소프트웨어 분석기는 점진적으로 중앙처리장치 활동을 기록할 것이다. 두번째 비트는 인에이블 비트이다. 이 인에이블 비트는 상태 레지스I(315)에 의해 시험될 수 있고, 이 인에이블 비트가 설정되었을 경우 현재의 중앙처리장치의 활동이 추적비트를 세트시켜야하는가 또는 리세트시켜야 하는가를 결정할 수 있다.
중앙처리장치와 관련된 데이타 처리 시스템의 공통버스(200)상의 활동은 중앙처리장치 버스사용 검출 논리회로(301) 및 중앙 처리채널 번호 검출 논리회로(322)에 의한 소프트웨어 분석기에 의해 검출된다. 중앙처리장치 버스 사용 검출논리 회로(301)는 중앙처리장치가 공통버스(200)를 제어하도록 버스 마스터로 된 시점을 검출한다. 중앙처리장치 채널번호 검출논리회로(322)는 공통버스의 중앙처리장치 채널 번호를 배치함으로써 공통버스상의 또 다른 장치가 중앙처리장치의 번지를 지정하는 그런 경우를 검출한다, 중앙처리장치와 관련된 활동이 공통버스상에서 검출되었을때, 어드레스 비트 및 상태들은 어드레스 레지스터(302)로 래치되고 데이타 비트 및 상태들은 레지스터(302)로 래치된다. 자동 어드레스 개발 논리회로(304)는 데이타 처리 시스템 의 중앙처리장치가 메모리 요구-이 안에서 중앙처리장치는 메모리로 부터 호출될 소프트웨어 명령들의 다수 워어드들중에서 첫번째 워어드의 어드레스만 제공함-를 할때 메모리내의 위치 어드레스를 자동적으로 증가 시키기 위해 사용된다. 소프트웨어 명령들인 이들 다수의 워어드들은 메모리로 부터 회수되어 그 어드레스 및 논리회로(301)론 수반하지 않고서 공통버스를 통해 중앙처리장치로 이동되고 데이타가 공통버스상에 나타남에 따라 워어드의 어드레스 각각의 어드레스를 제공하게 되어 이 어드레스가 상태 레지스터(315)에서 특정화 된 어드레스들과 비교될 수 있게 된다.
제1도에 예시한 소프트웨어 분석기의 동작을 더 자세히 설명하기 이전에, 소프트웨어 분석기가 접속될 데이타 처리 시스템의 동작을 제3도 내지 제14도를 참조하여 설명한다. 데이타 처리 시스템 및 그 공통버스 운용에 대한 다음 설명은 존엘 컬리(John L.Curley)씨 등에게 특허된 "다수의 호출버스 사이클 동작을 제공하는 시스템"이란 제하의 미합중국 특허 제4,236,203호에서 발췌하였는 바, 본 명세서에서는 참고로서 기재하였다.
[데이타 처리 시스템의 공통버스]
바람직한 실시예의 데이타 처리 시스템의 공통버스는 이 시스템의 2개의 유니트간에 통신로를 제공한다. 이버스는 설계상 비동기 상태에 있고 버스에 접속된 다양한 속도의 유니트들이 동일 시스템에서 효율적으로 작동시키는 것이 가능하다. 이시스템에 사용된 버스의 설계는 이송, 인터럽트, 데이타, 스테이터스, 그리고 지휘 이송등을 포함한 통신을 허용한다. 전형적인 시스템의 전반적인 구성에 대해서는 제3도에 도시되어 있다.
[버스 요구 및 응답사이클]
버스는 임의의 2개의 유니트가 공통(분배)신호 경로를 경유해서 소정의 시간에 서로 통신하게 하는데, 통신하기를 원하는 유니트는 버스 사이클을 요구한다. 그 버스 사이클이 허용되었을 때, 그 유니트는 마스터가 되어 그 슬레이브로써 시스템의 어느 다른 유니트의 번지를 지정한다. 대부분의 이송은 마스터에서 슬레이브 방향으로 이루어진다. 몇몇 유형의 버스 상호 교환에는 응답 사이클(예를 돌어, 단일의 호출 메모리판독)이 요구된다. 응답 사이클이 요구되는 경우에는, 요구자는 마스터의 역할을 맡은면서 응답이 요구됨을 가리키며, 그리고 슬레리브에게 그 자신을 확인시킨다. 요망된 정보가 이용 가능하게 되었을때(슬레이브 응답시간에 따라서), 그때 슬레이브는 마스터의 역활을 수행하고 요구중인 유니트로 이송을 개시한다. 이에따라 이 경우에 2개의 버스 사이클을 취하고 있는 단일 호출 상호 교환을 완성한다. 이들 2개의 사이클(요구 사이클과 응답 사이클)간의 버스에 대한 간섭시간은 이들 2개의 유니트를 수반하지 않은 타 시스템의 트래픽에 사용될 수도 있다.
몇몇 유형의 버스 상호 교환은 2개의 응답 사이클(예를 들어, 2중 호출 메모리 판독)을 요구한다. 2개의 응답 사이클이 요구되는 경우, 요구중인 유니트는 마스터의 역할을 맡아 2개의 응답(이송될 각각의 워어드에 대해 반응이 하나씩임)이 2중 호출 인디케이터를 설정함으로써 요구되고 있음을 가리키고, 그리고 그 자신을 슬레이브에게 확인시킨다. 첫번반응 사이클을 개시하기 이전에, 슬레이브는 정보중 첫번째 및 두번째 워어드 양자가 응답중인 유니트(슬레이브)내에 존재하고 있음을 입증한다. 요망한 정보의 제1워어드가(슬레이브 반응 시간에 따라서) 이용 가능하게 되었을때, 그후 슬레이브는 마스터의 역할을 맡아 요구중인 유니트로의 이송 을 개시한다. 첫번째 응답 사이클 동안 양쪽 워어드가 응답중인 유니트에 나타났을 경우, 응답중인 유니트는 2중 호출 인디케이터를 다시 설정함으로써, 즉 3개의 응답 사이클중 첫번째 응답 사이클 그리고 2번째 응답 사이클의 뒤따를 것이라는 것을 요구중인 유니트에게 가르킬 것이다. 그후 요망한 정보의 2번째 워어드가 이용 가능하게 되고, 슬레이브는 다시 마스터의 역할을 맡아 요구중인 유니트로 이송을 개시한다. 2번째 응답 사이클 동안, 응답중인 유니트는 2중 호출 인디케이터를 설정하지 않아 요구중인 유니트에게 이것이 마지막 응답 사이클임을 가리킨다. 이에 따라 이 경우에 3개의 버스 사이클을 취하는 2중 호출 상호 교환을 완성 한다. 이들 3개의 사이클중 어느 2개간의 버스에 대한 간섭 시간은 이들 2개의 유니트들을 수반하지 않은 기타 의 트래픽을 위해 사용될 수 있다.
첫번째 워어드만 응답중인 유니트에 나타나는 2중 호출 요구의 경우, 정보가 이용 가능하게 될때, 응답중인 유니트는 2중 호출 인디케이터가 요구중인 유니트에게 첫번째 응답 사이클이 마지막 응답사이클이 될것임을 가리키면서 설정되지 않은 단일응답사이클에 따라 답변한다. 이에 따라 이 경우에 2개의 버스 사이클(요구 사이클 및 단일 응답 사이클)을 취하는 상호교환이 완성된다. 2중 호출요구를 발생시켰던 유니트는 여전 히 정보의 2번째 워어드를 요망할 경우, 요구중인 유니트는 요구 사이클을 계시하여야 하고 메모리 판독의 경우에 요망한 2번째 워어드의 어드레스를 마련해야 한다 단일 또는 2중 호출요구일 수도 있는 이러한 2번째 요구는 두번째 요구되었던정보의 첫번째 워어드를 내포한 슬레이브 유니트에 의해 응답될 것이다.
[버스 신호 및 타이밍]
마스터는 버스상의 기타 어떤 유니트를 슬레이브로서 지정할 수 있는데, 이것은 슬레이브 어드레스를 어드레스 리이드상에 놓음으로써 행한다. 예를 들어 메모리 기준 신호 A(BSMREF)라 취하는 부속의 제어 리이드의 상태에 따라서 2개의 해석중 어느 쪽으로도 할 수 있는 24개의 어드레스가 있다. 메모리 기준 신호가 2진수 제로인 경우, 제3도의 포오맷은 최소 유효 자리수 비트인 24번째 그러한 리이드를 지닌 어드레스 리이드에 인가된다. 유의할 점은 본 명세서에 사용된 용어인 2진수 제로 및 2진수 1은 각각 전기신호의 로우 및 하이 상태를 칭하는데 사용된다는 것이다. 메모리 기준 신호가 2진수 1인 경우 제5도에 도시한 바와 같은 그러한 24비트에 대한 포오맷이 인가된다. 본질적으로, 메모리가 번지 지정되고 있을때, 버스가 2번째 바이트 에서 24번째 바이트까지 인에이블되어 메모리에 직접 번지 지정될 수 있다. 유니트들이 제어 정보 데이타 또는 인터럽트를 통과시키고 있을때, 그들은 서로 채널 번호 만큼 번지 지정한다. 채널 번호는 2에서 10번째 채널까지 버스에 의해 번지 지정되도록 하는데, 이러한 이송이 의미하는 2내지 6번째 가능한 기능중 어느 것을 지정하는 6비트 기능 코우드가 채널 번호와 함께 통과시킨다.
마스터가 슬레이브로 부터 응답 사이클을 요구할때,마스터는 BSWRITE라 부르는 제어 리이드의 1상태(판독 명령)만큼 슬레이브에 가리킨다(기타 상태는 응답 즉, 기록명령을 요구하지 않음) 이 경우, 마스터는 채널 번호에 의해 그 자체의 입장을 슬레이브에 대응하여 제공한다. 버스 어드레스 리이드들에 반대되는 것과 같은 데이타 리이드들은 어떤응답이 BSDBPL-(그 이의의 상태는 2중 호출 즉, 단일 호출을 요구하지 않음)라 부르는 제어 리이드를 요구할때 마스터의 인식을 표시하는 제6도의 포오맷에 따라 코우드화된다. 슬레이브가 마스터의 요구에 응답할때, 이와동일한 제어 리이드(BSDBPL-)의 1상태는 이 응답사이클이 2개의 응답 사이클중 첫번째 응답사이클(그 이의의 상태는 이것이 2중 호출 동작의 마지막 응답사이클임을 가리킴)인 요구중인 유니트에 표시하는데 사용된다.
분배된 타이 브레이킹(tie-breaking)회로망은 버스 사이클을 허용하고, 버스 사용을 위한 동시 요구들을 결정하는 기능을 제공한다. 우선순위는 버스상의 물리적인 위치를 토대로 허용되어, 최고위 우선순위는 버스상 의 제1유니트에 주어지는데, 타이 브레이킹 기능을 성취하기 위한 논리는 버스에 연결된 모든 유니트들간에 분배되고, 이것은 미합중국 특허 제4,030,075호 및 그것을 개량한 미합중국 특허 제4,096,569호에 충분히 설명되어 있는 바, 이들 양자를 참고 목적상 본 명세서에 기재하였다. 전형적인 시스템에서 메모리는 최고위 우선순위가 허용되고 중앙의 프로세서는 최하위 우선순위가 허용되며, 기타의 유니트들은 그 실행요망을 토대로하여 위치하고 있다. 중앙의 프로세서에 대한 타이브레이킹 기능을 성취하기 위한 논리는 제10도에 도시되어 있고 메모리에 대해서는 제11도에 도시되어 있다.
따라서 제2도를 참조하면, 본 발명의 전형적인 시스템은 메모리(1-202) 내지(N-204) -이러한 메모들은 최고위 우선 순위를 지니고 있고 중앙의 프로세서(206)는 최하위 우선 순위를 지니고 있음-와 결합된 다수 라인 버스(200)를 포함하고 있음을 알수있다. 또한, 버스에 연결된 것으로는 예를 들어 과학적인 연산장치(208) 및 다양한 제어기(210)(212)(214)이다. 제어기(210)는 예를 들어 4개의 유니트인 기록 주변장치(216)를 제어하게 결합되어 있다. 제어기(212)는 모뎀장치들을 통해 통신제어를 제공하도록 사용되는 반면, 제어기(214)는 테이프 주변장치(218)또는 디스크 주변장치(220)등과 같은 대량 저장장치들을 제어하게 이용된다. 이미 설명하였듯이, 버스(300)와 결합된 장치들중 어느 하나는 메모리나 버스에 연결된 어느 다른 유니트의 번지를 지정한다. 따라서 테이프 주변장치(218)는 제어기(214)를 통해 어드레스 메모리(202)를 번지 지정한다.
후에 설명하겠지만, 버스에 직접 결선된 유니트들 각각은 미합중국 특허 제4,030,075호 및 그것을 개량시켰다할 수 있는 미합중국 특허 제4,096,569호에 예시되고 기술된 타이브레이킹 논리를 포함하고 있고, 더우기 이들 유니트들 각각은 전형적인 2중 호출 메모리 어드레스를 위해 제11도,제11(a)도를 그리고 전형적인 2중 호출 중앙 프로세서 어드레스 논리를 위해 제13도,제13(a)도를 참조하여 설명한 바와 같은 어드레스 논리를 포함하고 있다. 전형적이고도 기본적인 제어기를 위한 어드레스 논리는 또한 미합중국 특허 제4,030,075호에 설명되어 있다. 또한 유니트(216)(218)(220)등과 같이 버스에 집적 결선되지 않은 유니트들은 타이 브레이킹 논리를 지니고 있다.
채널 번호는 메모리 어드레스에 의해 식별되는 메모리형 처리 요소들을 제의하곤 특정 시스템의 매단부 포인트마다 존재할 것이다. 채널 번호는 이러한 장치 각각에 대해 할당된다. 완전 듀플렉스 장치들 뿐만 아니라 하프 듀플렉스 장치들은 2개의 채널번호를 이용한다. 출력만 또는 입력만의 장치들은 각기 1채널 번호만 사용한다. 채널 번호들은 용이하게 변경 가능하고 따라서 1개 또는 그 이상의 16진수 로우터리 스위치들(썸 휘일스 위치( ; thumb wheel switch)이 유니트의 어드레스를 가리키거나 설정하기위해 버스와 연결된 그러한 유니트 가각에 대해 활용된다. 따라서 어떤 시스템의 형태가 이루어졌을때, 그 특정 시스템에 대해 적합한 버스에 연결된 특정 유니트를 위해 채널 번호가 지정될 수 있다. 일반적으로 다수의 입 출력(I/O)포오트 들을 지닌 유니트들은 블럭을 이룬 연속적인 채널 번호들을 요구할 것이다. 예를 들어, 4포오트 유니트는 로우터리 스위치를 사용하여 어떤 채널 번호의 상위 7비트를 할당할 것이고 그 보다 더 낮은 3비트를 사용하여 포트수를 정의하고 입력포트들을 출력포트들로 부터 구별지을 것이다. 슬레이브 유니트의 채널수는 제5도에 도시하였듯이 모든 비메모리 이송을 위해 어드레스 버스상에 나타날 것이다. 각각의 유니트는 그수를 그 자신에 내장하고 있는 번호(로우터리 스위치에 의해 내부에 저장됨)와 비교한다.
비교를 행한 유니트는 정의상 슬레이브이고 그 사이클에 응답하여야 한다. 일반적으로, 단일 시스템의 2개 의 포인트들은 어느것도 동일한 채널 번호에 할당되지 않을 것이다. 제5도에 도시하였듯이, 어떤 특정 버스 또는 입 출력 기능은 비메모리 이송을 위해 버스 어드레스 리이드들의 비트 18 내지 23에 표시된 것처럼 실행할 수 있다. 기능 코우드들은 출력 또는 입력 동작들을 지정할 수도 있다. 모든 홀수 기능 코우드들은 출력 이송(기록)을 지정하는 반면 모든 짝수 기능 코우드들은 입력이송 요구들(판독)을 지정한다. 예를 들어, 00(베이스 16)의 기능코우드는 단일의 호출 메모리 판독을 지시하게 사용되고 20(베이스 16)의 기능 코우드 는 2중 호출 판독 동작을 가리키게 사용될 것이다. 중앙의 프로세서는 입 출력 명령을 위해 6비트 기능 코우드 영역중 최소 유효자리수 비트 23을 검사하고, 그 방향을 지정하기 위해 버스 리이드를 사용한다.
다양한 출력 및 입력기능들이 있는데, 이 출력기능들중의 하나는 어떤 데이타량, 예컨대 16비트를 버스로 부터 채널 내로 로드하는 명령이 있다. 개별적인 데이타 비트들의 의미는 부품 특성이지만, 데이타 양은 특정 부품 기능성에 따라서 저장되고 보내지고 전송될 데이타를 나타내도록 취해진다. 또 다른 그러한 출력 기능은 명령 기능임에 따라 예를 들어 24비트 양이 채널 어드레스 레지스터(도시생략)에 로드된다. 이 어드레스는 메모리 바이트 어드레스이고 채널이 데이타의 입력 또는 출력을 개시할 메모리내의 시동위치를 나타내며, 기타 다양한 출력 기능들에는 어떤 특정 이송을 위해 채널에 할당된 메모리 버퍼의 크기를 정의하는 출력범위 명령, 그 각자의 비트들에 의해 특정 응답들을 야기시키는 출력 제어 명령, 프린트 명령등과 같은 출력 업무기능, 단말 장치 속도, 카드 판독 코우드등과 같은 기능들을 가리키는 명령인 출력 형태, 그리고 제7도에 도시한 바와 같은 포오맷에 따라 16비트 워어드를 채널로 부하하는 명령인 출력 인터럽트 제어등이 포함된다. 처음 10비트는 중앙의 프로세서 채널 번호를 가리키고 비트 10 내지 15는 인터럽트 레벨을 가리킨다. 인터럽트가 있자마자, 중앙의 프로세서 채널은 어드레스 버스상으로 되돌아오는 반면, 인터럽트 레벨은 데이터 버스상으로 되돌아 온다.
입력기능들은 입력 데이타가 장치로 부터 버스로 이송되는 이러한 경우를 제의하곤 출력기능들과 유사한 기능들을 포함하고 있다. 따라서, 입력범위 명령뿐만 아니라 과업 형태 및 입력명령이 포함된다. 부가적으로, 장치식별 명령이 포함됨에 따라, 채널은 그 장치식별 번호를 버스상에 놓는다. 또한 2개의 입력명령이 포함 됨에 따라 스테이터스 1또는 스테이터스 워어드 2가 방금 설명한 바와 같은 채널로 부터 버스상에 놓여진다.
스테이터스 워어드 1로부터 나은 지시에는 예를 들어 특정 장치가 동작할 수 있느냐의 여부, 버스로 부터 정보를 받아들일 준비가 되어 있느냐의 여부, 어떤 오류 스테이터스가 있느냐의 여부, 또는 주의가 요구되느냐의 여부가 포함된다. 스테이터스 워어드 2는 예를 들어 수정 가능하지 않은 메모리 또는 수정된 메모리 오차가 있는냐, 법적인 명령이 있느냐 또는 예를 들어 존재하지 않은 장치 또는 원이 있느냐에 따라 패리티의 표시를 포함할 수 있다.
이미 언급하였듯이, 독특한 장치 식별 번호는 버스에 연결된 상이한 유형의 매 장치마다 할당된다. 이 번호는 입력장치 식별이라 칭하는 입력기능 명령에 반응하여 버스상에 나타난다. 이 번호는 제8도에 도시한 포오맷 형태로 데이타 버스상에 놓인다. 편의상, 이 번호는 이 장치를 식별하는 13비트(비트 0 내지 12)그리고 요망될 수도 있는 장치의 어떤 기능성을 식별하는 3비트(비트 13 내지 15)로 나누어진다.
중앙의 프로세서를 인터럽트하기를 원하는 유니트는 버스 사이클을 요구한다. 이 버스 사이클이 혀용되었을때, 이 장치는 그 인터럽트 벡터를 버스상에 놓게 되는바, 이 인터럽트 벡터는 중앙의 프로세서의 채널 번호 및 인터럽트 레벨번호를 포함하고 있다. 따라서 이 장치는 그 인터럽트 벡터로서 마스터의 채널 번호 및 그 인터럽트 레벨번호를 제공한다. 이것이 중앙의 프로세서의 채널번호인 경우, 중앙의 프로세서는 나타난 레벨이 숫자적으로 현재의 내부의 중앙의 프로세서 레벨보다 더 작을 경우에 그리고 중앙의 프로세서가 또 다른 인터럽트를 바로 받아들일 수 없을 경우에 인터럽트를 받아들일 것이다. 이러한 수령은 버스 ACK 신호(BSACKR-)로 가리켜진다. 중앙의 프로세서가 인터럽트를 받아들일 수 없을 경우에, NAK 신호가 회복된다.(BSNAKR-) NAK(때때로 NACK로 부르기도 함) 신호를 수신하는 장치들은 정상적인 인터럽트 기능 회복을 가리키는 신호가 중앙의 프로세서(BSRINT-)로 부터 수신될때 다시 시도할 것이다. 중앙의 프로세서 는 그것이 레벨 변화를 완료했을때, 이 신호를 발하게 되므로 다시한번 인터럽트들을 받아들일 수 있다. 마스터의 채널 번호는 1개 이상의 채널이 동일한 인터럽트 레벨에 있을 수 있기 때문에 사용상 벡터 형태로 공급 된다. 인터럽트 레벨 0은 이것이 유니트가 인터럽트 하지 않을 것이라는 것을 의미하게 정의되어 있기 때문 에 특정한 의미를 지니고 있다. 제9도는 버스타이밍 구성도를 예시하고 있는데, 이후 보다 구체적으로 설명 할 것이다. 그러나 일반적으로 타이밍은 다음과 같다. 타이밍은 버스에 연결된 마스터 유니트로 부터 슬레이브 유니트로의 모든 이송들로 인가된다. 이송이 일어날 수 있는 속도는 시스템의 형태에 의존한다 즉, 버스에 보다 많은 유니트가 연결되어 있고, 버스가 보다 길때는 전파지연 때문에 버스상에서 통신하는데 보다 긴 시간이 걸린다. 한편, 버스상에 유니트가 보다 더 작게 되면 응답 시간이 줄어든다.
따라서, 버스 타이밍은 성질상 실제로 비동기적이다. 버스 사이클을 요구하는 마스터는 버스 요구를 행할 수 있다. 신호 BSDCNN-는 버스상의 모든 유니트들에 공통되고, 2진수 제로일 경우에는 적어도 1개의 유니트가 버스사이클을 요구하고 있음을 가리킨다. 버스사이클이 허영되었을때, 신호 BSDCNN-는 제10,11도에 관하여 좀더 구체적으로 설명한 바와 같은 타이 브레이킹 기능이 완전하고 이제 1개의 특정 마스터가 버스 제어를 갖는다는 것을 가리키면서 2진수 제로가 된다. 신호 BSDCNN-이 2진수 0이 될때, 마스터는 이송될 데이타를 버스에 인가한다. 버스상의 각각의 유니트는 신호 BSBCNN-으로 부터 내부의 스트로브를 전개시킨다.
스트로브는 BSDCNN-신호의 2진수 상태의 수신으로 부터 예를 들어 약 60나노 세컨드동안 지연된다. 슬레이브에서 지연이 완료되었을때, 버스 전파시간 변동들이 고려될 것이고 각각의 슬레이브 유니트는 그 어드레스(메모리 어드레스나 채널번호)를 식별할 수 있게 될 것이다. 번지 지정된 슬레이브는 이제 이들 응답중 하나 즉, ACK,NAK또는 WAIT신호 또는 좀더 구체적으로 말해 BSACKR-BSNAKR-, 또는 BSWAIT신호를 만들수 있다. 이 응답은 버스상에 보내져서 슬레이브가 요구된 작용을 식별하는 마스터에의 신호로서 가능하다. 그후 제어 라인들은 제9도에 도시하였듯이 순서적으로 2진수 1상태로 회복한다. 따라서 버스 핸드세이크(hand-snake)는 완전히 비동기적이고, 각각의 천이는 앞의 천이가 수신되었을때 단지 일어날 것이다. 따라서 별개의 유니트들은 스트로브 및 ACK 등간의 상이한 길이의 시간을 칠하게 될 것이고, 천이는 그 내부 기능성에 의존하게 될 것이다. 버스타임아웃트 기능은 일어날 수 있는 행업(hang up)들을 예방하게 존재 한다. 버스를 통해 이송되어질 정오는 예를 들어 다음 즉, 24개의 어드레스 비트, 16개의 데이타 비트, 5개 의 제어비트 그리고 5개의 완전(integrity)비트들로 구분 지을수 있는 50개의 신호 또는 비트들을 포함할 수 있다. 다양한 이들 신호들은 후에 상술할 것이다.
제10도,제11도에 관하여 보다 구체적으로 설명된 타이브레이킹 기능은 서어비스를 위해 상이한 유니트로부터 동시적인 요구들을 결정하고 위치적인 우선순위 시스템을 토대로 하여 버스 사이클들을 허용하는 기능이다. 앞서 설명하였듯이 메모리는 최고위 우선 순위를 가지고 있는 중앙의 프로세서는 최하위 우선순위를 가지고 있어 그들은 물리적으로 버스(200)의 반대쪽 끝에 위치하고 있다. 기타 유니트들은 중간위치들을 점유하고 그 근접성 면에서 버스의 메모리에 가까운쪽이 우선순위를 가지고 있다. 우선순위 논리는 타이브레이킹 기능을 성취하기 위해 버스에 직접 연결된 유니트들 각자에 포함되어 있다. 이러한 각 유니트의 우선순위 회로망은 승인된 플립플롭을 포함하고 있다. 임의의 시점에서 어떤 특정의 허용된 1개의 플립플롭만 설정될 수 있고, 그 유니트는 정의상 그 특정 버스 사이클을 위한 마스터이다. 유니트는 임의의 시점에 사용자 요구를 할 수도 있어서, 그 사용자는 플립플롭은 세트될 것이고, 각기 미래의 버스 사이클을 나타낼 것이다. 부가적으로, 버스 상의 각각의 유니트는 요구 플립플롭을 내포한다. 모든 유니트들이 함께 고려되어 있을때, 요구 플립플롭들은 요구 레지스터로서 고려될 수도 있다. 아무리 많은 요구들이 걸려있다 할지라도 단 1개의 허용된 플립플롭만 세트하게 기능하는 타이브레이킹 회로망을 공급하는 것은 전술한 레지스터의 출력들이다. 좀더 구체적 으로 언급하면, 미해결의 요구가 없는 경우에는 그때는 아무런 요구 플립플롭들이 세트되지 않을 것이다. 세트될 첫번째 사용자 플립플롭들은 그 요구 플립플롭이 세트되게 할 것이다.
그것은 그후 후술하듯이 짧은 지연이 있은 후에 기타의 장치들이 그 요구 플립플롭들을 세트하지 않게 억제시킬 것이다. 따라서 발생하는 것은 모든 사용자 요구들의 스냅 쇼트(snap-shot)가 제때의 일정기간(지연 기간)동안 취해진다는 것이다. 이에따라 다수의 요구 플립플롭들이 이러한 지연 기간동안 그 도착에 따라서 세트될 것이다. 요구 플립플롭들이 그 출력들을 안정하게 할 수 있도록, 각각의 유니트는 그러한 안정화 발생이 확실하게 그러한 유니트가 그 요구 플립플롭으로 하여금 세트되게 하고 지연시간이 경과하여 보다 높은 우선순위를 가진 유니트중 아무도 버스 사이클을 원하지 않는다면 세트된다. 이때 스트로브신호는 또 다른 지연기간이 지난 후에 발생하고, 마침내 허용된 플립플롭은 마스터가 슬레이브 유니트로, 부터 ACK, NAK 또는 WAIT 신호를 수신할 때 클리어(리세트)된다.
앞서 언급하였듯이, 슬레이브 응답에는 3가지가 가능한 바, ACK,WAIT또는 NAK신호이다. 덧붙여서, 전혀 응답이 없는 네번째 상태도 있다. 버스상의 유니트가 아무도 그에 번지 지정된 것과 같은 이송을 식별할 수 없는 경우, 아무런 응답이 곧 오지 않을 것이다. 그후타임 아웃 기능이 일어나고 NAK신호가 수신되어 버스를 클리어시킬 것이다. 슬레이브가 마스터로 부터 버스 이송을 받아들일 능력이 있고 또 그렇게 행하길 원하는 경우에는 ACK신호가 발생할 것이다. WAIT신호는 슬레이브가 잠정적으로 버스이고 이때에 이송을 받아 들일 수 없을 경우, 슬레이브에 의해 발생된다. WAIT신호를 수신하자마자, 마스터는 그에 허용된 다음의 버스 사이클에서 사이클을 재시도할 것이고 성공적일때까지 그렇게 계속 행할 것이다. 어떤 중앙의 프로세서가 마스터일때 슬레이브로 부터의 WAIT 응답의 원인들 몇몇은 예를 들어 메모리가 슬레이브이고 메모리가 또 다른 유니트로 부터 나은 요구에 반응할때 또는 제어기가 슬레이브일 때 ; 또는 예를 들어 제어기가 메모리로 부터의 어떤 응답을 대기할 경우 ; 또는 제어기가 아직 이전의 입 출력 명령을 처리하지 않았을 경우 이다. 슬레이브에 의해 표시된 NAK신호는 그것이 이 시간에 어떤 이송을 받아들임을 의미한다. NAK신호를 수신하자마자, 마스터 유니트는 즉시 재시도를 실행하지는 않겠지만, 마스터의 유형에 따라 특정 작용을 할 것이다.
앞서 일반적으로 언급하였듯이, 버스상에는 토 핸드세이킹 기능을 성취하는 기본적인 타이밍 신호들이 있다. 전술한 바와 같이 이 이들 5가지 신호들은 2진수 제로일때 버스상의 1개 또는 그이상의 유니트들이 버스 사이클을 요구함을 가리키는 버스요구 신호(BSREQT-) : 2진수 제로일때 어떤 특정 마스터가 버스 이송을 행하고, 몇몇 특정 슬레이브에 의한 사용을 위해 정보를 버스상에 놓는 것을 가리키는 현행 데이타 사이클 신호(BSDCNN-) ; 슬레이브에 의해 마스터로 발생된 신호로 슬레이브가 이 신호를 2진수 제로로 만듬으로써, 이 이송을 받아들임을 나타내는 ACK신호(BSACKR-) , 슬레이브에 의해 마스터로 발생된 신호로서 마스터에게 그 신호가 2진수 제로일때 슬레이브간 이러한 이송을 거절함을 가리켜주는 신호인 NAK신호(BSNAKR-) , 그리고 슬레이브에 의해 마스터로 발생되어진 신호로서 그것이 2진수 제로일때 슬레이브가 이송에 대한 결정을 지연하고 있음을 가리켜주는 WAIT신호(BSWAIT-)이다.
부가적으로 그리고 앞서 언급하였듯이, 각각의 버스 사이클의 정보 내용으로서 이송되는 정보 신호들은 50여종 있는데 이들 신호들은 스트로브신호 선단부상의 슬레이브에서 유효하게 사용된다. 전술한 모든 설명은 예로서 한것이고, 비트의 수효가 상이한 기능에 따라 변화될 수 있음을 인식해야 한다. 따라서, 데이타를 위해 제공된 16개의 리이드 또는 비트들이 있을 수도 있고, 좀더 구체적으로 말해 BSDTOO- 내지 BCDT15-가 있을 수 있다. 또 이 어드레스를 위해 94개의 리이드가 제공되고, 좀더 구체적으로 말해 신호 BSADOO-내지 BSAD23-가 있다 2진수 제로일때 어드레스 리이드들이 메모리 어드레스를 내포함을 가리키는 메모리 기준 신호(BSMREF-)에 대해 제공된 1비트가 있다.
메모리 기준신호가 2진수 1일때, 이것은 어드레스 리이드들이 제5도에 도시한 바와 같이 기능 코우드 및 채널 어드레스를 내포함을 가리킨다. 또한 2진수 제로일때 현재의 이송이 워어드 이송 즉 전형적으로 2개의 바이트로 구성된 어떤 워어드라기 보다는 바이트 이송임을 가리키는 바이트 신호(BSEYTE-)를 제공한다. 또한 2진수 1일때 슬레이브가 마스터에 정보를 공급하게 요구되고 있음을 가리키는 기록 신호(BSWRIT-)가 있다. 별개의 버스 이송은 이러한 정보를 제공하는데 추가적으로 이것이 이미 요구된 정보임을 슬레이브 에게 가리키게 마스터에 의해 사용되는 제2의 반쪽 버스 사이클 신호(BSSHBC-)를 제공하고, 제2의 사이클이 이송(BSSHBC-로 표시됨)을 완료하게 발생할 때까지 버스상의 1쌍의 유니트가 판독동작(신호 BSWRIT-로 표시됨)을 시작할 때부터, 전술한 양유니트들은 버스상의 기타 모든 유니트들에 대해 비지(busy)상태로 된다. 또한 버스상의 50개의 정보신호를 사이에는 2중 호출 신호가 포함되어 있다. 2중 호출 신호(BSDBPL-)는 2종 호출 동작의 발생을 야기하도록 사용된다.
이것은 다수 사이클 버스 이송임에 따라, 마스터 유니트는 단일 요구 사이클에 있어서 슬레이브 유니트로 부터 2워어드의 정보를 요구한다. 슬레이브 유니트는 2개의 응답 사이클-요구된 데이타의 워어드 각가에 대한 1사이클씩-을 제공함으로써 2중 호출 요구에 반응한다 이 것은, 2개의 단일 호출 명령들이 실행되었을 경우, 요구되었던 4개의 버스 사이클(1요구 사이클, 제1응답사이클, 제2요구사이클 및 제2응답사이클)과 대비하여 마스터에다 3개의 버스사이클(요구사이클, 제1응답사이클, 그리고 제2응답사이클)에 있어서의 2워어드의 정보를 제공함으로써 버스상의 트랙픽을 저감시킨다. 2중 호출 동작의 예는 메모리로부터 2워어드를 요구하는 중앙의 프로세서인바, 이 메모리의 3개의 버스 사이클들은 다음과 같다. 첫번째버스 사이-를 동안 요구신호 즉 신호 BSMREF-는 어드레스 버스가 제1워어드의 메모리 어드레스를 내포하고 데이타 버스가 중앙의 프로세서의 채널 번호를 내포함을 표시하는 2진수 제로이고 ; 신호 BSWRIT-는 어떤 응답(메모리 판독)이 요구되고 있음을 나타내는 2진수 1이며, 신호 BSDBPL-는 이것이 2중 호출 동작임을 나타내는 2진수 제로이고 ; 그리고 더우기 신호 BSSHBC-는 이것이 제2의 반쪽 사이클이 아님을 나타내는 2진수 1이다.
2중 호출동작의 제2의 버스사이클동안, 어드레스 버스는 중앙의 프로세서의 채널 번호를 내포하고, 데이타 버스는 메모리 데이타의 제1워드를 내포하며, BSSHBC-신호는 제2의 반쪽 버스사이클(판독응답)을 의미하는 2진수 제로이고, BSDBPL-신호는 이것이 제1의 응답 사이클이고, 제2의 응답사이클이 수반됨을 나타내는 2진수 제로이며, BSMREF-신호는 2진수 1이며, 그리고 BSWRIT-신호는 메모리에 의해 설정되지 않아 2진수 1이다. 제3의 버스사이클, 제2의 응답 사이클 동안 어드레스 버스는 중앙의 프로세서의 채널 번호를 내포하고, 데이타 버스는 메모리 데이타의 제2의 워어드를 내포하며, BSSHBC-신호는 판독 응답을 나타내는 2진수 1이고, BSDBPL-신호는 이것이 마지막 응답 사이클임을 가리키는 2진수 1이며, BSMREF-는 2진수 1이고, 그리고 BSWRIT-는 2진수 1이다. 기타 모든 동작에 있어서와 같이, 2중 호출 동작의 3개의 버스 사이클 중 어떤 2개간의 버스상의 간섭시간은 이 이송이 관여하지 않은 기타 유니트들에 의해 사용될 수 있다.
잡다한 오차 및 패리티 신호들에 덧붙여서, 또한 버스상의 50개의 정보 신호들 사이에는 록크(lock) 신호가 포함되어 있다. 록크 신호(BSLOCK-)는 록크 동작이 일어나게 하는데 사용된다.
이것은 다수 사이클 버스 이송임에 따라 어떤 유니트는 다른 록크명령을 지닌 동작으로 구분지워질 수 있는 기타 어떤 유니트 없이도 메모리의 어떤 워어드 또는 다수 워어드 영역을 판독하거나 기록할 수 있다. 이에 따라 시스템을 다수 처리 시스템에다 접속시키는 일이 편리하게 된다. 록크 동작의 효과는 어떤 유형의 동작을 행하는 동안 메모리 사이클의 지속 기간을 넘어서 비지(busy)상태를 연장하는 것이다. 마지막 사이클이 완료하기 이전에 록크신호를 개시하려고하는 기타 유니트들은 응답을 받아들일 것이다. 그러나, 메모리는 여전히 기타의 메모리 요구들에 응답할 것이다. 록크 동작의 예는 판독 수정기록 사이클, 다음과 같은 3개의버스 사이클이다. 첫번째 버스 사이클동안, 어드레스 버스는 메모리 어드레스를 내포하고, 데이타 버스는 오리지네이터(originator)의 채널 번호를 내포하며, 신호 BSWRIT-는 어떤 응답이 요구되고 있음을 가리키는 2진수 1이며, 신호 BSLOCK-는 2진수 제로이고, 그리고 신호 BSSHBC-는 이것이 록크 동작임을 가리키는 2진수 1이며, 더우기 BSMREF-신호는 2진수 제로이다. 판독 수정기록동작의 두번째 버스 사이클동안 어드레스 버스는 오리지네이터의 채널 번호를 내포하고, 데이타버스는 메모리 데이타를 내포하며, BSSHBC-신호는 판독 응답을 나타내는 2진수 제로이고, BSMRFE-신호는 2진수 1이다. 세번째 버스 사이클동안, 어드레스는 메모리 어드레스를 내포하고, 데이타 버스는 메모리 데이타를 내포하며, BSLOCK-신호는 2진수 제로이고, 그리고 BSSHBC-신호는 판독 수정기록(록킹된)동작 완료를 나타내는 2진수 제로이고 BSMREF-신호는 2진수 제로이다. 부가적으로, BSWRIT-신호는 아무런 응답이 요구되지 않음을 가리키는 2진수 제로이다. 기타 모든 동작에 있어서와 같이, 판독 수정기록 동작이 3개의 버스 사이클 중 어떤 2개간의 버스상의 간섭시간은 이송에 관여하지 않은 기타 유니트들에 의해 사용될 수도 있다.
기타 제어 신호들에 덧붙여서, 버스상에는 또한 보통 2진수 1이고 중앙의 프로세서의 유지보수 판넬상에 위치한 마스터 클리어 버튼이 작동했을때 2진수 제로가 되는 버스 클리어(BSMCLR-)신호가 제공된다. 또한 버스 클리어 신호는 예를들어 전력을 올리는 순서에서는 2진수 제로가 될 것이다. 회복 간섭 신호(BSRINT-)는 레벨 변화를 완료할 때마다 중앙의 프로세서에 의해 출력된 단시간 펄스이다. 이 신호가 수신되었을때, 이미 간섭되고 거절되고 있는 각각의 슬레이브 유니트는 인터럽트를 재출력할 것이다.
이제 제9도의 타이밍 구성도를 메모리 및 중앙처리장치의 어드레스 논리회로에 관하여 상세히 그리고 보다 구체적으로 설명할 것이다.
제9도의 타이밍구성도를 참조하면, 매 버스사이클시에는 3개의 식별 가능한 부분-구체적으로 언급하면, 최고의 우선 순위를 요구하는 장치가 버스를 점유하는 기간(9-A 내지 9-C), 마스터 유니트가 슬레이브 유니트를 호출하는 기간(9-C 내지 9-E), 그리고 슬레이브가 응답하는 기간(9-E 내지 9-G)-이 있다.
버스가 유휴 상태에 있을때, 버스요구 신호(BSREQT-)는 2진수 1이다. 시간 9-A에서 요구 신호의 음으로 진행하는 수직하강 부분은 우선순위 회로망 사이클을 개시한다. (점유시간 9-B에 있어서)해결할 우선순위 회로망, 선택되어야할 버스의 마스터 사용자에 대한 시스템내의 허용된 비동기 지연이 존재한다. 버스상의 다음 신호는 BSDCNN-또는 데이타 사이클 현재 신호이다. 시간 9-C에서 BSDCNN-신호의 2진수 제로로의 변위는 버스의 사용이 마스터 유니트에게 허용되었음을 의미한다. 그후, 버스 동작의 두번째 위상은마스터가 선택되어 현재 버스(200)의 데이타, 어드레스 및 제어 리이드들에 관한 정보를 마스터가 지정하는 슬레이브로 자유릅게 이송하는 것을 의미한다.
슬레이브 유니트는 BSDCND-신호의 스트로브의 음으로 진행하는 수직 하강 부분에서 시작하는 버스 동작의 제3의 위상을 개시하도록 준비한다 예를들어 스트로브신호는 제10도의 지연선(25)에 의해 BSDCNN-신호의 음으로 진행하는 수직 하강 부분에서 50나노초 지연된다. 호출시간9-D에서 BSDCND-신호의 음으로 진행하는 수직 하강 부분이 발생하면, 이제 슬레이브 유니트는 이것이 그의 어드레스인지 아닌지 또는 그가 어떤 응답을 발생시키는 가의 과정을 형성하는 것의 결정을 개시하도록 호출되는 여부를 알기 위한 시험을 할 수 있다 전형적으로, 이것은 확인 신호(BSACKR-)가 슬레이브 유니트에 의해 발생되도록 할 것이고, 또한 비l전형적인 경우에는 BSNAKR- 또는 BSWAIT-신호를 발생하게 하며,(존재하지 않는 슬레이브의 경우에)심지어는 본 명세서에서 설명하였듯이 전혀 아무런 응답이 발생되지 않을 수도 있다.
마스터 유니트에 의해 수신될 때인 시간 9-I에서 측인 신호의 음으로 진행하는 수직 하강 부분은 마스터의 BSDCNN-신호가 시간 9-F 에서 2진수 1로 진행하게 할 것이다. 스트로브 신호는 시간 9-F 로부터 지연선(25)에 의해 제공된 지연시간 9-C에서 2진수 1의 상태로 되돌아간다. 따라서, 버스 동작이 제3의 위상의 경우, 버스상의 데이타 및 어드레스는 슬레이브 유니트에 의해 기억되고, 버스 사이클은 턴 오프되기 시작할 것이다. 사이클이 끝나갈때 즉, BSDCNN-l) 2진수 1로 진행할 때 또 다른 우선순의 회로망 결정을 가능하게 한다. 이때에 버스 요구 신호가 발생될 것이고, 이것이 수신되지 않는다면 이것은 버스가 유휴 상태로 돌아감에 따라 BSREQT-신호가 2진수 1의 상태로 진행함을 의미한다. 버스 요구 신호가 그 시간에 나타날 경우 즉, 도시한 바와 같이 2진수 제로일 경우, 그것은 비동기적인 우선순위 회로망 선택 과정을 시작할 것이고, 뒤이어 BSDCNN-신호의 또다른 음으로 진행하는 수직 하강 부분이 시간 9-1 및 9-J 에서 점선으로 도시하였듯이 인에이블될 것이다.
이러한 우선순위 회로망 결정은 대기할 필요성이 없고 또한 시간 9-H 에서 확인 신호의 양으로 진행하는 수직상승 부분에 의해 트리거될 필요성도 없지만, 사실상 그후 어떤 유니트가 버스사이클을 요구할 경우 버스의 유휴 상태로의 변위를 바로 뒤따른 시간 9-F 에서 트리거될 수 있음을 유의해야 한다. 우선선위 회로망 결정은 BSDCNN-신호의 양으로 진행하는 수직 상승 부분에 의해 시간 9-F 에서 트리거될 수 있지만, 제10도 허용된 플립플롭(22)의 설정에 반응한 BSDCNN-신호의 제2의 음으로 진행하는 수직 하강 부분은 시간 9-H에서 확인신호의 양으로 진행하는 수직 상승 부분을 기다려야 한다. 즉, 제10도의 NOR 게이트(21)로부터 나은 2진수 제로는 허용된 플립플롭(22)의 리세트 입력으로부터 제거되어야 한다. 시간 9-I 에서의 BSDCNN-신호의 음으로 진행하는 수직 하강 부된은 우선순위 회로망 결정이 시간 9-F 에서 트리거되고 그 결정이 시간 9-H 이전에 발생하는 경우를 예시하고 있다 시간 9-J 에서의 BSDCNN-신호의 음으로 진행하는 수직 하강 부분은 확인신호가 우선순위 회로망 결정이전에 클리어되는 경우를 예시하고 있다. 시간 9-L에서의 BSDCNN-신호의 음으로 진행하는 수직 하강 부분은 시간 9-F 에서 아무런 버스 요구가 없고 우선 순위 회로망 결정이 시간 9-F 에서 나중의 버스 요구 신호 BSREQT-에 의해 트리거됨을 예시하고 있다. 이 과정은 비동기적인 방식으로 반복된다.
[2중 호출동작]
2중 호출 메모리 동작을 일예로서 상세히 설명한다. 실시예에서, 중앙의 프로세서는 메모리의 2중 호출 요구를 행할 것이고, 요구 및 응답과 관련된 3개의 버스사이클이 검사될 것이다. 제1의 버스사이클 동안, 중앙의 프로세서는 마스터이고 메모리는 슬레이브이다. 이러한 제1의 사이클동안, 중앙의 프로세서는 제10도의 우선순위 회로망 논리를 사용하여 버스를 호출하고 메모리 제어기는 제12도의 버스인터페이스 논리를 사용하여 응답한다.
메모리 제어기가 마스터이고 중앙의 프로세서가 슬레이브인 제2의 및 재3의 버스 사이클동안 메모리는 제11도의 우선순위 회로망 논리를 사용하여 버스를 호출하고 중앙의 프로세서는 제13도,제14(a)도의 버스인터페이스 논리를 사용하여 응답한다.
[2중 호출 동작 요구 사이클]
제10도 및 제12도와 관련하여 제1의 버스 사이클, 2중 호출요구 사이클에 관하여 설명한 것이다.
[중앙의 프로세서 우선순위 회로망 논리]
이제 제10도의 우선순위 회로망 논리를 참조하면, 우선순위 회로망 사이클은 초기에 유휴 상태에 있고, 라인(10)상의 버스 요구 신호(BSREQT-)는 2진수 1이다. 이 버스 요구 신호가 2진수 1일때, 수신기(반전증폭기)(11)의 출력는 2진수 제로가될 것이다. 수신기(11)의 출력은 AND 게이트(12)의 하나의 입력에 결합된다. 이 게이트(12)에의 타입력들은 정상 상태에서 2진수 1인 마스터 클리어 신호, (MYMCLR-)와 정상 상태에서 역시 2진수 1인 WOR 게이트(26)의 출력이다. 따라서 버스가 유휴 상태에 있는 동안 AND 게이트(12)의 출력은 2진수 제로이고, 이에 따라지연선(13)의 출력은 2진수 제로가될 것이다. 2진수 제로인 지연선(13)의 입력 및 출력은 NOR 게이트(14)의 출력(BSBSY-)이 2진수 1이 되게 한다 버스에 연결된 유니트들 중의 하나가 어떤 버스사이클을 요구할때, 이것이 그 사용자 플립플롭(15)을 비동기적으로 세트시켜 그 Q출력(MYASKK+)이 2진수 1이 되게 한다.
따라서, 버스가 유휴 상태에 있으면, 버스가 비지상태로 진행함에 따라 일어나는 제1의 사상은 사용자가 그 사용자가 플립플롭(15)을 설정시킨다는 것이다. 중앙의 프로세서의 경우, 사용자 플립플롭(15)은 2진수 제로에서 2진수 1상태로 변위하는 중앙의 프로세서 클럭킹 신호 MCLOCK+에 의해 그 출력으로 클럭되고 있는 2진수 1인 제13(a)도로부터 나은 라인 181상의 신호 MYASKD+에 의해 또는 그 세트 입력에서 2진수 제로인 제13(a)도로부터 나은 라인 180상의 신호 MYASKS-에 의해 세트될 수 있다. 신호 MYASKD+ 및 MYASKS-는 이후 제13(a)도를 참조하여 설명한다. NAND 게이트(16)에의 양입력들이 2진수 1의 상태에 있을때, 그 출력은 2진수 제로이다. 이 것은 요구 플립플롭(17)을 세트시킴에 따라 그 Q출력(MYREQT+)는 2진수 1이다. 따라서, 비동기적인 방식으로, 요구 플립플롭(17)의 출력은 2진수 1이 될 것이다. 이러한 동작은 이 버스와 연결된 기타 유니트들의 유사 논리 회로에서 동시적으로 발생할 수 있다.
MYREQT+ 신호의 2진수 1상태는 드라이버(18)를 통해 2진수 제로로서 버스의 라인(10)위에 설정될 것이다. 따라서 제9도의 타이밍 구성도를 참조하면, BSREQT+신호는,음으로 진행하거나 2진수 제로상태로 진행 할 것이다. 버스에 연결된 다양한 유니트들의 요구 플립플롭(17)의 어느 하나로부터 시스템에 대한 어떤 요구는 라인(10)을 2진수 제로의 상태로 유지된다. 지연선(13)은 소자(14)(16)(17)에 의해 좌우되는 진행 지연을 보상하기에 충분한 지연을 포함하고 있다. 따라서, 어떤 장치가 그 요구 플립플롭(17)을지라도, 이것은 또한 어떤 버스 사이클을 요구하는 고우선순위 장치가 다음의 버스사이클을 취하지 않을 것이라는 것을 의미하지는 않는다. 예를들어, 저우선순위 장치가 그 요구 플립플롭(17)을 세트시키게 되면, 라인(10)상의 2진수 제로 신호는 NOR게이트(14)의 출력에서 2진수 제로상태를 발생시키기 위해 게이트(12)의 출력에서 2진수 1의 상태를 차례대로 발생시키는 고우선순위장치를 포함한 장치에 모든 귀환되어 사실상 이렇게 우선순위 장치의 사용자(15)이 이미 세트되어 있지 않았다면 이러한 기타 고우선순위 장치의 요구 플립플롭(17)의 설정을 디스에이 시킨다. 예를들어 20나노초의 지연시간이 만기하여 이것보다 고우선순위 장치의 지연선(13)의 출력이 2진수 1의 상태가 되고, 그후 게이트(14)의 출력은 2진수 제로상태가 될 것이며, 게이트(16)의 출력은 이렇게 고 우선순위 장치의 사용자 플립플롭(15)가 세트되어 있느냐에 관계없이 2진수 1이 되어 요구 플립플롭(17)의 설정작용을 디스에이블시키게 된다. 따라서 이러한 시간 프레임동안, 모든 장치들은 사실상 그들이 그들의 사용자 플립플롭(15)의 설정작용에 의해 표시되는 것과 같은 서어비스를 요구한다면 그들의 요구 플립플롭(17)을 세트시키게 된다. 첫번째로 어떤 버스사이클을 요구하는 장치의 소자(13)에 의해 제공된 지연시간후에, 그 요구 플립플롭(17)을 세트시키지 않는 장치는 우선순위 사이클이 완료된 후에 까지 세트할수 없다. 따라서, 고우선순위 장치는 저우선순위장치가 그 플립플롭을 세트시킨후 몇나노초후에 그 사용자가 플립플롭을 세트하는 경우에도 버스를 점유하게 된다.
따라서, 버스 사이클을 찾는 장치들에 대한 모든 요구 플립플롭(17)은 지연선(13)의 지연선 배열에 의해 표시된 것과 같은 그러한 시간동안 세트될 것이다. 버스와 결합된 많은 이러한 장치들이 그러한 시간 간격동안 에 그들의 요구 플립플롭들을 세트되게 할 수 있음에도 불구하고, 이러한 장치 하나만이 그 허용된 플립플롭(22)을 세트되게 할 것이다. 그 허용된 플립플롭(22)을 세트되게 하는 장치는 버스사이클을 찾는 최고우선순위 장치일 것이다. 버스 사이클을 찾는 이러한 최고우선 순위장치가 이러한 버스 사이클동안에 그 동작을 완료했을때, 그들의 요구 플립플롭들이 세트되게하는 기타장치들은 다시 다음의 그러한 버스 사이클등을 찾게 될 것이다. 따라서 드라이버(18)에 결함되는 것에 덧붙여서 요구 플립플롭(17)의 출력은 또한 소자(28)를 통해 NAND 게이트(19)의 하나의 입력에 결합된다. 소자(28)는 버스(200)의 최고우선순위에 결합된 유니트(보통 메모리 202)를 제의하곤 각 유니트의 우선순위 논리에 대해 단지 직접 결선을 이루고 있는바, 여기서 단1개의 케이스로된 소자(28)는 후술하듯이 지연소자이다. 플리플롭(17)의 반전된 Q출력(MYREQT-)(즉, 도면에서 Q위에 바아를 가진 출력, 이하 "Q 바아"라 칭함) 이 AND 게이트(20)의 하나의 입력에 결합된다. 게이트(19)에의 타입력들은 고우선순위 장치들로부터 수신되고, 구체적으로 언급하면 예를 들어 이전에 있었던 고우선순위 9개의 장치들로 부터 수신된다. 고우선순위 장치들로 부터 수신된 이들 신호들은 제10도의 좌측 편으로,부터 신호 BSAUOK+ 내지 BSIUOK+ 로서 수신하는 것처럼 도시되어 있다. 이러한 9개의 신호들중 어느하나가 2진수 제로이면, 이것은 고우선순위 장치가 버스사이클을 요구함을 의미하게 함에 따라 현재의 장치로 하여금 그 허용된 플립플롭을 세트시키지 않게 억제하여 그 장치가 다음의 버스사이클을 가지는 것으로 부터 디스에이블시키게 될 것이다.
게이트(19)에 수신된 타입력들은 NOR 게이트(26)로 부터 얻은 BSDCNB- 신호와 NOR 게이트(21)의 출력이다. 부가적으로, 사용자 준비신호 즉, 중앙의 프로세서의 경우에 CMDCNP+신호는 특정 유니트가 어떤 버스 사이클을 요구할지라도 사용자 준비 신호를 2진수 제로상태로 변화시킴으로써 지연시킬 수도 있는 특정 유니트의 기타 논리로부터 수신될 수도 있다. 즉, 이 유니트는 어떤 버스 사이클에 대한 준비가 되어 있지 않을지라도 그것을 요구하여 버스 사이클이 허용된 시간에 그것이 준비될 것이라는 기대하에 사용자 준비신호를 2진수 제로로 세트할 수도 있다. 정상 상태하에서 NOR 게이트(26)의 출력은 2진수 1이고 게이트(19)에의 기타 모든 입력들이 2진수 1이며 그때 허용된 플립플롭(22)은 세트될 것이다. 게이트(21)로 부터 나온 타 입력은 버스가 유휴상태에 있을때 2진수 1이다. NOR 게이트(21)에의 입력들은 SBACKR+ 신호, BSWAIT+ 신호, BSNAKR+ 신호, 그리고 BSMCLR+ 신호이다. 이들 신호들중 어느 하나가 2진수 1이면, 그때 버스는 이에 따라 비지 상태에 있게될 것이다.
허용된 플립플롭(22)이 세트되어 있다면, Q출력신호(MYDCNN+)는 2진수 1이고 인버터(23)에 의해 2진수 제로신호로 반전 될 것이며, 그후 신호라인 BSDCNN-상의 버스위에 놓일 것이다. 이것은 제9도의 타이밍 구성도에 도시되어 있는바, 여기서 BSDCNN+신호는 2진수 1에서 2진수 제로 상태로 진행한다. 따라서, 이 버스 사이클의 우선순위 사이클은 완성된다.
부가적으로, 현재의 장치가 서어비스를 요구하고 또 고우선순위 장치이면, 지연장치(13)의 출력 및 BSAUOK+ 우선순위 라인은 2진수 1이 될것이지만, 플립플롭(17)의 Q바아출력은 2진수 제로가 됨에 따라 AND 게이트(20)를 통해 2진수 제로를 BSMYOK+상에 놓이게 되어, 저 우선순위 다음 장치에 표시하고 다음의 버스 사이클을 사용할 고우선순위 요구중인 장치가 있는 저 우선순위 장치들을 후속하게 하고, 모든 저 우선순위 장치들이 다음의 버스 사이클을 그렇게 사용하지 않게 억제할 것이다. 고우선순위 장치들로부터 수신된 9개의 우선순위 라인들은 신호 SBBUOK+ 내지 BSMYOK+로서 1위치만큼 비스듬한 양식으로 이송됨을 주의 해야 한다. 따라서, 현재의 장치에 의해 수신된 신호 BSAUDK+ 는 고우선순위 장치에서 수신된 신호 BSBUOK+에 해당된다.
우선순위 사이클을 완성하고 이제 2진수 제로 상태가 BSDCNN-라인 상에 놓이게 하면, 신호는 수신기(24)에 의해 제10도에 도시한 바와 같은 그러한 모든 논리회로에 수신된다. 이에 따라 2진수 1의 상태는 수신기(24)의 출력에서 발생되고 2진수 제로가 NOR 게이트(26)의 출력에 제공되어 AND 게이트(12)가 2진수 1의 상태를 발생시키는 것을 디스에이블 시킨다. 부가적으로, 수신기(24)의 출력에서의 2진수 1의 상태는 예를 들어 지속기간이 60나노초인 지연선(25)에 의해 수신된다. 또한 지연선(25)의 출력은 스트로브가 발생되었을때 게이트(12)를 계속 억제시킬수 있도록 NOR 게이트(26)의 타입력에 수신된다. 따라서, 지연선(25)에 의해 설정된 지연선 기간이 끝날무렵에, 스트로브 신호(BSDCND+)가 발생되고, 그것의 반전신호 즉, BSDCNO-신호는 제9도의 타이%1 구성도에 도시한 바와 같다. 스트로브 신호의 사용은 후술한다. 따라서, 지연선(25)에 의해 생성된 60나노초 기간은 선취장치 즉. 최고 우선순위 요구중인 장치를 인에이블시켜 간섭없이 다음의 버스 사이클을 이용하게 할수있다 지연선(25)의 출력에서 발생된 스트로브는 어떤 잠재적인 슬레이브에 의해 동기용 신호로서 사용된다.
스트로브 신호가 전공되어지면, 그때 슬레이브로서 지정되는 유니트들중의 하나는 게이트(21)의 입력들중의 하나에 수신된 신호 ACK,WAIT 또는 NAK중의 어느 하나에 따라 반응할 것이다. 예를 들어, 전형적인 경우에 ACK가 수신되면, 또한 그러한 응답 신호들중 어느 것이 수신되면, 이것은 게이트(21)를 통해 허용된 플립플롭(22)를 리세트시킬 것이다. 이 응답은 제9도의 타이밍 구성도에 도시하였는바, 여기서 BSACKR-신호는 슬레이브로부터 수신하게 도시되어 있어 허용된 플립플롭(22)의 리세트 작용에 의해 BSDCNN-신호를 2진수 1의 상태로 변화되게 한다. 플립플롭(15)은 허용된 플립플롭(22)이 세트되거나, 또는 버스 클리어 신호(BSMCLR+)가 버스상에 수신 되었으면 NOR 게이트(29)를 통해 리세트될 것이다.
허용된 플립플롭(22)이 세트되었을때, 그 Q바아 출력(MYDCNN-)은 2진수 제로상태로 진행하고, 그것을 따라 허용된 플립플롭(22)이 리세트 되었을때 바아 출력이 2진수 제로로 부터 2진수 I의 상태로 진행하게 되어 현재 설명하고 있는 요구 플립플롭(17)을 효율적으로 리세트시킬 것이다. 상술한 미합중국 특허 제4,035,295호에서 알 수 있듯이, 요구 풀립플롭(17)은 ACK,NAK 또는 마스터 클리어 신호에 의해 리세트되게 표시 되어 있다. ACK 또는 NAK신호들에 관하여, 당 신호는 요구플립플롭(17)을 리세트 해야할 장치가 ACX, NAK 또는 WAIT신호중 어느 하나의 신호를 기대했던 사실을 플립플롭과 같은 국부 저장 장치내에 유지한다는 것을 나타낸다. 더우기, 이러한 유니트들은 사실상 이러한 ACX 또는 NAK신호가 슬레이브 유니트로 부터 이러한 특정 유니트로의 반응이 있다는 것을 식별할 수 있는 논리회를 필요로 한다. 그렇지 않을 경우, NAK 또는 ACK 신호는 모든 플립플롭(17)을 리세트 시키게 결합되어 이러한 요구 플립플롭(17)이 각각 다시 세트되어야 함을 요구했다. 따라서. 특정 시스템을 리세트 시킴으로써 그 시스템에서 논리는 최소로 된다. 이것은 허용된 플립플롭(22)의 Q바아 출력을 요구 플립플롭(17)의 출력입력에다 효과적으로 결합시킴으로써 성취된다. 주의할점은 ACK 또는 NAK 뿐만 아니라 WAIT신호가 허용된 플립플롭(22)을 리세트 시키게 이용되지만, 그렇게 하는데 있어서 사실상 단 1개의 허용된 플립플롭이 세트되어질 수 있기 때문에 부가적인 논리를 요구하지 않는다. 따라서, 모든 허용된 플립플롭들을 리세트 시키는 것은 시스템의 동작에 있어서 중요하지 않다.
플립플롭(17)의 클럭입력을 인에이블 시키기 위해선, 그러한 클럭 입력에 수신된 신호는 2진수 제로에서 2진수 1의 상태로 변위가 이루어져야 한다. 클럭입력이 그렇게 인에이블되었을때 그 D입력에서의 신호 즉, BSWAIT+신호는 그 상태가 플립플롭(17)의 Q출력으로 이송될 것이다. 따라서, 플립플롭(17)을 효과적으로 리세트시키기 위해선, BSWAIT+신호는 플립플롭(17)의 Q바아 출력을 그 클럭입력이 인에이블되었을때 2진수 제로로 되도록 하기 위하여 2진수 제로가 되어야 한다. BSWAIT+ 신호는 정상 상태에서 2진수 제로이기 때문에, 클럭입력 요구 플립플롭(17)을 일찍 인에이블시킴으로써 그러한 플립플롭을 잘못 리세트 시킬수도 있다. 이것은 어떤 슬레이브로 부터 응답을 기대할 수 없기 때문에 그러하고, 유의할점은 대안으로 이 슬레이브 유니트가 ACK, NAK또는 WAIT신호를 제공할 수 있다는 것인데, 신호의 경우에는 요구 플립플롭(17)을 리세트시키는 것이 요망되지 않는다. 따라서 클릭입력은 그 슬레이브 유니트로부터 어떤 응답이 수신되었을 때만 인에이블 해야한다. 그렇지 않을 경우, WAIT 신호는 2진수 제로 상태에 있을 수도 있어, 요구 플립플롭(17)을 일찍 리세트 시킬 수도 있다.
그러므로 정상 상태하에서 Q바아 출력으로부터 플립플롭(17)으로의 직접 결선으로 그러한 클럭입력에서 2진수 1의 상태를 유지할 수 있어 이에 따라 허용된 플립플롭(22)인 세트되고 그후 리세트 되었을때 그 상태의 변화는 플립플롭(17)의 그러한 클럭입력을 인에이블시킬 것이다. 이러한 상태 즉, 보퉁 플립플롭(17)의 클럭입력에서의 2진수 1의 상태는 그러한 플립플롭의 세트작용의 진행을 지연시킴이 발견되고 있는바, 그 Q출력은 실제적으로 세트 상태 즉, 2진수 1의 상태를 실현한다. 좀더 구체적으로 말해, 예를 들어 텍사스 인스트루먼트사 및 시그네틱사를 포함하여 다수의 최사에 의해 제작되고 부품번호가 SN74S74인 플립플롭을 사용 하면, 그 클럭입력이 2진수 1의 상태에 있을경우, 그 클럭입력이 2진수 제로 상태에 있을 경우보다 세트 동작의 효과를 실현하는데 2배나 더 오래 걸린다. 따라서, 플립플롭(22)의 클럭입력을 접지점에 결선시킨 것에 의해 알 수 있듯이, 그러한 허용된 플립플롭(22)에 대해 보다 빠른 세트 동작을 보장하고 따라서 요구 플립플롭(17)에 대한 그러한 논리속도의 증가를 동작가능케 하는 것이 바람직하다. 이 때문에 요구 플립플롭(17)이 슬레이브로 부터 응답이 있을때까지 효과적으로 리세트되지 말아야 한다는 사실 때문에, 소자(35)(37)는 곧 설명하는 바와 같은 논리로 결합하고 있다.
그러나, 그러한 설명을 하기전에, 허용 플립플롭(22)의 Q바아 출력과 요구 플립플롭(17)의 클럭입력간에 직접 인버터를 설치하는 것은 이것이 요구플립플롭(17)의 클럭입력에서 보통 2진수 제로 상태를 제공할 수 있다해도 만족스러울 수 없다는 것을 주의해야 한다. 이 상태는 만족스럽지 않을 수도 있는바, 그 이유는 그러한 플립플롭이 세트되었을때 플립플롭(22)의 Q바아 출력으로부터의 2진수 1에서의 2진수 제로로의 변위는 플립플롭(17)의 클럭입력을 조만간에 즉, 슬레이브로 부터 응답이 있을 것인가를 알기이전에 인에이블시킬 수 있는 2진수 제로에서의 2진수 1로의 변위가 될 수 있기 때문이다.
따라서, 인버터(35)는 플립플롭(37)과 함께 제공되어 있다. 요구 플립플롭(17)과 같이 플립플롭(37)의 클럭입력은 2진수 제로에서 2진수 1로의 변위 또는 달리 말해 양으로 진행하는 단위가 있기까지 인에이블 되지 않는다. 따라서 상술하였듯이, 이것은 허용된 플립플롭(22)이 NOR 게이트(21)에 의해 리세트 되었을때 수신 된다.
플립플롭(37)은 클럭입력에 덧붙여서 세트(5), 데이타(D)입력, 그릭고 리세트(R)입력을 포함하고 있다. 세트입력은 풀업(puBlup)저항기를 통해 플러스 전압선까지 수신된 신호에 불과한 MYPLUP+ 신호에 의해 그 입력을 2진수 1의 상태로 세트함으로써 디스 에이블된다. 또한 플립플롭(37)의 입력은 MYPLUP+신호에 결합된다. 정상상태하에서 NOR 게이트(26)의 출력은 2진수 1이고, 따라서 인버터(35)의 출력(BSDCND+0)은 2진수 제로이다. 이들 상태들은 BSDCNN+신호가 시간 9-C 바로후에 즉, 시간 9-C에다 소자(24)(26)와 관련된 지연시간을 더한 시간후에 2진수 제로의 상태로 진행할때 변화한다. 따라서 시간 9-C 바로 후에, NOR게이트(26)의 출력이 2진수 제로 상태로 변함에 따라 플립플롭(37)의 R입력에 2진수 1의 상태를 제시할 것이다. 2진수 1상태로부터 2진수 제로상태로의 변화는 플립플롭(37)을 리세트시켜 2진수 제로상태를 플립플롭(37)의 Q출력(MYREQR+)에 제공하는 것에 유의해야 한다. 인버터(35)의 출력에서의 2진수 1상태는 BSDCMN-신호가 2진수 제로일 때와 그후 지연선(25)의 지연시간과 일치하는 60나노초 동안 속행된다. 허용된 플립플롭(22)이 리세트된 바로후에 그리고 BSDCNN-신호가 NOR 게이트(26)의 출력에 효과를 미치기 이전에, 플립플롭(37)의 클럭입력은 인에이블되어 그 D입력에서의 2진수 1상태가 플립플롭(37)의 Q출력을 2진수 제로에서 2진수 1상태로 변화시키게 하여 플립플롭(17)을 클럭킹한다. 타이밍 구성도인 제9도에 도시된 BSDCND- 신호에 관하여 알 수 있듯이 스트로브신호 즉, BSDCNO+ 신호가 더 이상 나타나지 않는 시간에 그리고 좀더 구체적으로 말해 시간 9-G에서 NOR 게이트의 출력은 2진수 1상태로 다시 변화하게 됨에 따라 인버터(35)의 출력을 2진수 1상태에서 2진수 제로상태로 변화시키게 되어 플립플롭(37)를 리세트 시킨다. 이에 따라 확실하게 플립플롭(37)은 플립플롭(37)의 클럭입력을 인에이블시키기 이전에 리세트될 것이다.
상술하였듯이, 요구 플립플롭(17)의 Q출력과 NAND게이트(19)간의 결합은 버스(200)상의 장치의 위치에 따라 결정된다. 좀더 구체적으로 말해, 플립플롭(17)과 NAND 게이트(19)간의 그러한 결합에 있어서 소자(28)는 최고의 우선순위를 가진 장치가 아닌 모든 장치들에 직접 연결된다. 고우선순위 장치 즉, 구체적으로 말해 제2도에 예시되어 있듯이 메모리(202)에 대해선, 소자(28)는 지연선(13)과 유사한 지연소자인바, 예를들어 20나노초의 지연을 포함할수 있다. 이에 대한 이유는 최고우선순위장치에 있어 NAND 게이트(19)의 상부 9개의 입력은 2진수 1인 신호이다는 것이다. 이러한 2진수 1인 신호는 9개의 라인 각각에 결합된 풀업 저항기(이 저항기의 타단은 MYPLUP+신호가 결합되는 것과 유사한 클러스 전압원에 결합되어 있음)에 의해 이들 라인 각각에 대해 제공된다. NAND 게이트(19)에의 9개의 입력 각각이 2진수 1이고 BSDCNB-신호가 보통 2진수 1이며 더우기 사용자 준비 신호(제10도의 MYDCNP+)가 2진수 1상태에 있다고 가정하면, 최고 우선순위 장치의 우선순위 논리회로에서 지연소자(28)의 개입없이 최고의 우선순위를 가진 장치는 항시 지연선(13)에 의해 제공되는 지연을 야기하지 않고서도 버스에의 접근을 얻을 수 있을 것이다. 따라서, 소자(28)에 지연을 제공함으로써, 이것은 최고 우선순위 장치가 예를 들어 그의 요구 플립플롭(17)을 세트한 시간 후 인 20나노초의 시간동안 그의 허용 플립플롭을 세트하지 못하도록 한다. 예를 들어 제10도의 논리회로내의 레이스상태로인한 플립플롭(17)의 출력에서 발생한 일시적인 펄스로 인한 게이트(19)의 인에이블링을 피하기 위해서 최고우선순위 장치에서 그리고 지연소자(28)와 병렬로 게이트(19)에의 타입력들을 직접 결선할 수도 있다.
또한 우선순위장치는 다른 장치의 버스 사이클동안 버스(200)에의 접근을 하지 못하게되는데, 이것은 사실상 또 다른 버스 사이클이 진행중이면 신호 BSDCNB-가 2진수 제로가 되기 때문에 그러하다. 최고 우선순위 장치의 우선순위 논리회로를 이렇게 억제시킬 다른 방법에 있다는 것을 알 수가 있다. 예를 들어, 상술한 미합중국 특허에 언급되어 있듯이, 지연선(13)의 출력 NANU 게이트(19)의 다른 입력에 결합될 수도 있고, 이 경우에 각 장치의 각각의 우선순위 논리에 대해 이것은 게이트(19)의 1입력에서의 BSDCNB-신호에 대한 필요성 및 최고 우선순위 장치의 우선순위 논리회로에 있어서의 지연소자(28)에 대한 필요성을 대체해 버릴 것이다. 그러나, 본 명세서에 언급되어 있듯이 고속도를 요구하는 논리회로에 있어서는 선택된 구성 요소에 의존하는 부하효과가 문제로 나타날 수 있다. 따라서, 본 명세서에 설명된 기술에 의해서 지연선(13)은 3개의 소자 부하 대향하는 것과 같은 2개의 소자 부하들을 포함하고 있다. 더우기 이러한 부하 문제점은 지연선(13)의 출력에다 드라이버 또는 증폭소자를 배치함으로써 예방될 수 있고, 그 드라이버의 출력은 부하 문제를 제기함이 없이 NAND 게이트(19), NOR 게이트(14) 및 AND 게이트(20)에 결합될 수 있음을 알수 있다. 그러나 이것은 이러한 드라이버 소자를 통한 진행지연에 의해 결정된 인자에 의해 우선순위 논리회로의 작동을 지연하는 효과를 지니고 있다.
[메로리 제어기 버스인터페이스 논리]
이제 제12도에 도시한 바와 같은 2중 호출메모리 제어기 어드레스 논리를 참조하면, 이 논리는 메모리 제어기 특히 그에 결합된 4개의 메모리 모듈까지 지니고 있는 것의 실예이다. 버스로 부터 소자(40)에 수신된 어드레스는 제3도에 도시한 포오맷을 유지하면서 버스 어드레스 신호 BSAD00+ 내지 BSAD07+ 로 이송된다. 또한 수신기(40)의 어드레스 신호는 이후에 설명될 패리티검사기(47)의 입력으로 수신되고, 수신기(40)의 어드레스 신호들과 인버터(41)의 출력에서의 어드레스들은 스위치(42)에 수신된다. 이 스위치는 버스(200)에 연결될 대부분의 제어기론 위치하고 있는 특정 제어기 유니트의 어드레스에 세트되어 있다. 장치 제어기의 경우, 이 스위치는 특정 메모리 제어기에 의해 제어되는 메모리의 어드레스에 세트되어 있다. 이 스위치에는 16개의 리이들이 수용되어 있으나, 8개만이 스위치의 출력에서 다수 입력 NAND 게이트(43)에 결합되어 있다. 소자(40)의 입력측에 있는 버스어드레스 리이드들은 메모리 제어기에 의해 제어된 요망 메모리 블럭의 적당한 어드레스를 반사하게 세트된 그런 비트들에 대해 2진수 제로이다. 따라서, 소자(40)에 의해 제공된 본 발명에 따라, 2진수 제로들로서 버스(200)상에 수신되는 그런 어드레스 비트들을 위해 2진수 1신호들이 스위치(42)의 비반전 입력에 제공된다. 마찬가지로, 인버터(41)로 부터 나온 8개의 출력리이드들은 어드레스 비트들이 버스(206)상의 인입어드레스 비트내의 2진수 1인 위치에 대하여 2진수 1을 갖는다. 서로 보수인 스위치(42)의 2개의 입력부에 신호가 있는 상태에서 10진 스위치 또는 다수와 토글 스위치, 즉 구체적으로 말해 비집합적인 8극 2위치 스위치로 되어 있는 스위치(42)내에 들어있는 다수의 스위치들이 세트되어서 정확한 메모리 어드레스를 위해 절부 2진수 1인 신호들이 스위치(42)의 8개의 출력부에 나타난다.
따라서, 게이트(43)는 전부 2진수 1인 신호들을 수신할 것이고 이 신호가 적당한 메모리 어드레스이고 설명하게될 메모리 사이클인 경우 그 출력에 2진수 제로를 제공할 것이다. 스위치(42)는 비교기 기능을 제공하게 배열되어 있어 적어도 1레벨의 게이팅 및 이에 따른 관련 진행 지연이 필요없음을 알수 있다. 더우기, 스위치는 특정 메모리 제어기의 어드레스를 변경시키기 위한 손쉬운 수단을 제공함에 따라 시스템이 형상화될 수 있는 방식을 간단하게 한다. 메모리 기준 신호(BSMREF+)가 2진수 1이고 스위치(42)에 의해 비교된 어드레스가 스위치(42)의 출력에서 모두 2진수 1을 발생시킨다면, 그때 NAND 게이트(43)는 완전히 동작 가능하게 되어 MYMADD-라인상에 2진수 제로신호를 제공할 것이고, 그후 이 신호는 NAK,WAIT 잊 ACK신호들을 각기 발생시키는데, 이용되는 3개의 NOR 게이트(44)(45)(46) 각각의 하나의 입력에 수신된다. 메모리는 사실상 BSMREF+신호가 정확한 2진수 상태에 있지 않으면 번지 지정될 수 없다.
도시된 것과 같이, 어드레스 비트들은 패리티 검사기(47)의 입력에 수신되는바, 이 검사기는 부가적으로 버스를 통해 수신되는 어드레스 패리티인 BSABOO+비트를 수신한다. 패리티 검사기(47)는 9비트 패리트 검사를 행하여 그 Q바아 출력에다 MYMADP-란 신호를 발생시키는바, 이것은 2진수 제조가 부분적으로 게이트(44)를 인에이블시킬때 그에 따라 패리트가 정확함을 가리킨다.
게이트(44),(45),(46)의 제3의 입력은 멀티플렉서(48)로 부터 수신된다. 예를들어 멀티플렉서(48)는 이 특정 제어기에 연결가능한 메모리 모듈들중 어느하나 또는 4개 모두가 실제적으로 시스템에 나타나느냐의 여부를 가리키는 MYMOSA- 내지 MYMOSD-란 4개의 입력을 수신한다. 이에 따라 메모리는 충분한 메모리 모1듈 어레이를 가질수 있거나 부분적인 어레이를 가질 수 있게 되는바, 달리 말해 이러한 메모리 모듈들중 단 하나만이 이 시스템에 연결할 수 있다. 메모리 제어기가 2중 호출요구에 응답하여 2워어드에 따라 응답하기 위해선, 2개 또는 4개의 메모리 모듈들이 제어기내에 존재해야만 한다. 제1의 워어드를 내포한 메모리 모듈만 제어기에 존재하면, 제어기는 그 워어드에 따라 응답하여 제2의 워어드가 뒤따르지 않음을 표시한다. 제1의 워어드를 포함한 메모리 모듈이 제어기에 존재하지 않으면, 제어기는 전혀 응답하지 않을 것이다. 더우기 이들 4개의 메모리 모듈들은 번지 지정되고 멀티플렉서(48)를 통해 이들 모듈이 2개의 버스 어드레스 신호 BSADOa+ 및 BSAD22+에 의해 설정되느냐를 결정하여 시험된다. 멀티플렉서(48)는 부품 번호 74S151로 텍사스 인스트루먼트사에 제작되는 장치를 사용할 수 있다. 이 멀티플렉서 출력신호의 2진수 제로 상태는 메모리 모듈이 메모리 제어기에 존재함을 가리킨다.
상술하였듯이, 각각 이제어기는 그것이 메모리 또는 다른 주변장치에 대한 것이냐에 따라서 그 자신의 특정 어드레스를 지니고 있다. 따라서, 상이한 메모리 제어기들이 그에 접속된 메모리 모듈들의 완전한 보수를 갖게되면, 인접메모리 어드레스가 제공될 수 있다. 좀더 구체적으로 말해, 각각의 메모리 제어기가 그에 결합된 4개의 메모리 모듈들을 가지고 있고 이러한 모듈 각각이 약 8,000워어드 저장능력잘 지니고 있다고 가정하면 그때 이러한 각각의 메모리 제어기는 32,000워어드 저장리 대한 액세스를 제공할 수 있을 것이다.
다시 게이트(44)(45)(46)의 동작 가능 상태를 참고로 하면, 이러한 게이트들 각각은 인에이블되고 이 특정 메모리 제어기로부터의 응답을 허용하기 위해 번지 지정된 모듈이 시스템내에 존재하고 패리티 검사기(47)에 의해 표시된것 같은 어드레스 페리티가 옳다는 표시인 그 메모리 제어기의 어드레스를 수신해야 한다. NOR 게이트들에의 타입력들은 비지 논리 및 방금 설명한 바와 같은 록트 히스토리 논리의 조합으로부터 제공된다.
메모리 제어기 비지 신호는 플립플롭(49)에 의해 제공되고 제어기가 메모리를 갱신하거나 또는 버스를 대기하면서 데이타를 판독 또는 기록하는데 비지 상태를 나타낸다. 이러한 D형 플립플롭(49)은 BSDCNN+ 신호에 의해 클럭킹 된다. 메모리 모듈이 비지일 경우, 그때 BSDCNN+신호가 발생하게 될 것이다. 따라서 플립플롭(49)의 Q바아 출력에서의 MYBUSY-신호를 2진수 제로이면, 이것은 기타 상태들이 만족되었다면 게이트(45)가 충분히 인에이블되게 하고 소자(56)내의 관련 플립플롭을 세트시킬 것이다.
이때, 제11도에 도시한 바와 같은 게이트(26M)의 출력에서 신호 BSDCNB-가 2진수 제로에서 2진수 1상태로 변위할때 플립플롭 소자(56)가 인버터(63)를 통해 클리어 됨을 유의해야 한다. 게이트(46)의 하나의 출력에 결합된 MYBUSY+신호에 의해 표시된 것같이 2진수 제로인 신호가 플립플롭(49)의 출력에서 발생했을때, 화인 신호가 발생하게 될 것이다 또한 WAIT신호는 메모리가 여전히 비지상태이므로 매우 짧은 지연이 있을 것이라는 것을 의미함을 유의해야 한다. ACK,NAK또는 WAIT신호중 어느 것이 발생될것임을 가리키는 기타조건은 후술하듯이 멀티사이클 버스 이송으로된 로크 신호임에 따라, 어떤 장치는 특정 메모리 위치 점에 액세스 하게 되는바, 이때 기타 어느 록킹된 유니트도 이동작으로 브레이크될 수 없다. 이러한 록킹된 동작 효과는 어떤 종류의 동작을 위해 메모리 제어기의 비지 상태를 단일 사이클 완료를 넘어 연장시키는 것이다. 이 순서의 마지막 사이클이 완료되기 이전에 로크 동작을 개시하고자 시도하는 장치들을 NAK신호를 받을 것이다.
그러나 메모리는 현재 설명된 것같이 메모리 요구에 대한여 응답할 것이다. 주의할점은 이들 사이클간의 간섭하는 시간은 이러한 이송에 관여하지 않는 기타 장치들에 의해 이용될 수도 있다는 것이다. 록킹된 동작은 우선적으로 2개 또는 그이상의 유니트 또는 디바이스들이 예를 들어 메모리 등과 같은 동일한원(resource)을 공유함이 바람직할때 사용된다. 어떠한 수효의 버스 사이클들을 포함할 수 있는 록킹된 동작은 공유된 원의 제어를 갖는 특정 유니트 또는 디바이스에 의해 록킹이 풀린다 공유된 원이 록킹되어 있는 동안, 공유된 원 에 액세스 하기를 원하는 유니틀들은 이러한 기타 유니트들이 록크 제어신호를 나타내면 록킹될 수 있다. 록크 제어 신호가 존재하지 않으면, 이러한 기타 유니트가 예를들어 긴급란 요구 또는 절차를 처리하는것 등과 같은 공유된 원에의 액세스를 얻는 것이 가능하다. 록크 제어선호를 나타내는 유니트가 공유된 원에의 액세스를 얻기 이전에, 이것은 원이 록킹된 동작에 연루되어 있느냐를 보기 위해 시험하고, 그후 동일 버스 사이클 동안에 원이 록킹된 동작에 연루되어 있지 않다면 그 원에의 액세스를 얻을 수도 있다.
따라서, 원을 공유하기 위해 록킹된 동작을 적절한 제어 즉, 록크 제어신호를 발생하는 유니트들간에 유효하고 예를들어 정보의 테이블이 저장될 수도 있는 일부분의 메모리를 공유하는데 사용될 수 있는 것임을 알 수 있다. 더우기, 유니트들중의 하나가 공유된 원에서 정보를 변화시키기를 원한다면, 기타 유니트들은 록킹 되어 단지 부분적으로로 변화된 정보에의 액세스를 얻을 수는 없고 차라리 이러한 모든 변화가 이루어진후에만 액세스가 허용된다. 이 경우에 판독 수정 기록 동작이 관여될 수도 있다. 록킹된 동작을 사용함으로써, 다수 처리 시스템이 지지될 수도 있음을 알 수 있다. 예를 들어, 2개의 중앙처리장치가 동일한 버스(200)에 접속되어 있는 경우, 양자는 록킹된 동작이 사용되었다면 간섭없이 버스에 접속된 메모리 유니트들을 공유할 수 있다.
알 수 있듯이 록크된 동작을 위한 BSSHBC-신호는 이제 설명해온 바와는 다른 식으로 사용된다. 록크된 동작을 행하는 동안, 시험 및 록크절차에 의해서 분할된 원에의 액세스를 얻고 이것이 그 록크된 동작을 완료할때 분할된 원의 록킹을 풀기 위해 원을 분할하도록 시도하는 장치에 의해 BSSHBC-신호가 유출된다.
따라서, 제12도에 의해 알 수 있듯이, 록크히스토리 플립플롭(50)이 구성되어 있어, 세트되었을 경우 록크된 동작이 처리중에 있음을 가리킴에 따라, NAK신호를 드라이버(59)를 통해 요구중인 유니트로 유출되도록 한다. 제12도의 논리가 분할된 원을 위한 버스(200)의 인터페이스 논리를 나타낸다고 가정하면, BSLOCK+신호(2진수 1상태)가 AND 게이트(52) 및 소자(56)의 플립플롭 D3에 수신된다. 이에따라 소자(56)는 AND게이트(5i)의 하나의 입력에 수신되는 MYLOCK+ 신호를 발생시킨다. 록크히스토리 플립플롭이 세트되지 않는다면, 그에 따라 NAXHIS+ 신호는 게이트(52)에의 다른 두개의 일련의 상태에 무관하게 2진수 제로가 되어 게이트(46)에의 하나의 입력에 2진수 제로를 발생시킬 것이다. 게이트(46)의 모든 입력들이 2진수 제로를 수신하고, 그에 따라 이 유니트 및 디바이스에 대한 현재의 어드레스가 수신되었음을 그리고 공통소자 또는 버퍼가 비지가 아닐 경우에는 그때 ACK 신호가 BLSOCK+신호에 반응하여 소자(56) 및 드라이버(61)를 통해 발생할 것이다. 록킹된 동작이 개시하자마자 BSLOCK+신호의 2진수 1상태가 수신된 D입력에서 BSSHBC-신호의 2진수 1상태에 반응하여 히스토리 플립플롭(50)을 세트시킬수있도록, ACK신호(MYACKR+)가 충분히 AND 게이트(51)를 인에이블시킬 것이다. 따라서 시험 및 록크동작이 동일한 버스 사이클동안 실행된다.
플립플롭(50)이 BSLGCK+ 및 BSSHBC-신호의 2진수 1상태 수신시에 이미 세트되었다면, 그때 2진수 1신호가 AND 게이트(52)의 출력에서 발생하게 되어, 기타 모든 조건이 만족되고 있을 경우 NAK신호를 발생 시키기 위해 AND게이트(44)를 인에이블 시킬수 있도록 인버터(58)의 출력에서 2진수 제로상태를 발생시킬 것이다. 따라서, 시험 및 록크동작은 또 다른 장치가 분할된 원의 사용을 금지하는 NAK응답을 발생시키도록 되어야 한다.
분할원을 사용하는 유니트가 그 작동을 일단 완료하며, 유니트는 상기 원을 언록킹하여야 한다. 이것은 사용자 유니트로부터 BSLOCK+신호의 2진수 1상태 및 BSSHBC-신호의 2진수 제로 상태의 수신에 의해 이루어진다 이것은 제12도의 논리를 인에이블 시켜 게이트(51)를 인에이블 시키먼서 ACK응답을 제공하게 됨에 따라, BSSHBC-신호의 2진수 제로 상태에 의하여 히스토리 플립플롭(50)을 효율적으로 리세트시킨다. 이게 분할원은 자유롭게 기타 유닉트들에 대해서 ACK응답을 할 수 있다. 또한 분할원은 록크 히스토리 플립플롭(50)의 클리어 입력에서의 버스 클리어 신호(BSMCLR-의 2진수 제로상태)에 의해 록킹이 해제될 것이다.
분할된 원이 단지 BSLOCK+신호의 2진수 1상태를 나타내는 기타 유니트들을 록킹함을 알 수가 있다. 예를 들어 유니트가 NAKHIS+신호가 2진수 1이되게 그 히스토리 플립풀롭을 세트되게하는 분활된 원에의 액세스를 얻기를 원한다면, 그때 BSLOCK+신호가 2진수 제로인 경우, AND 게이트(52)의 출력은 2진수 제로가, 되어 NAK응답을 디스에이블시키고 기타 상태에 따라 WAIT또는 ACK응답을 인에이블시킬 것이다. 따라서, 유니트는 원이 록킹된 동작에 관여되어 있을지라도 분할된 원에의 액세스를 얻을 수도 있다.
따라서, 제어기들중의 어느 하나에서의 WAIT 신호의 발생으로 고우선순위 제어기의 디바이스가 버스 사이클의 순서로 브레이크되고 버스를 필요로 한대로 사용할 것이다. 서어비스를 요구하는 고우선순위 유니트 가 없는 경우에 마스터에 의해 확인 수신되어 WAIT상태를 종료할때 특정 마스터/슬레이브 배열이 유지될 것이다. 뒤이어, 버스를 사용하도록 또 다른 사용이 허용된다. 따라서, BSDCNN+신호는 슬레이브로 하여금 세가지 응답중 어느 하나 즉, NAK,WAIT 또는 ACK신호충 어느 하나를 발생되게 한다 이들 응답중 어느 하나가 끝날 무렵에 새로운 우선순위 회로망 사이클이 발생하고 이러한 특정 디바이스가 버스에의 액세스를 얻거나 또 다른 고우선순위 장치가 버스를 점유하게 된다 이때, 버스상의 신호 상태들은 유니트에 대하여 내부에 도시된 신호들에 대해 2진수 상태에서 반전하고 있음을 알 수 있다. 예를 들어 버스 요구 신호는 예를들어 제10도의 드라이버(18)와 수신기(11)간의 버스상에서 1상태에 있고 제어기들 자체에서는 반대 상태에 있는 것으로서 되어 있다. 더우기, 상술하였듯이, 버스상에 접속된 제어기들중 어느것간의 제4의 응답은 거기에 전혀 응답은 없다는 것이다. 따라서, 마스터들중의 하나가 메모리로 부터 서어비스를 요구하고 있고 이 메모리가 시스템내에 설치되어 있지 않다면 본 기술에서 잘 알려져 있는 타임 아웃 소자가 예를 들어 5마이크로초 등과 같은 기간후에 신호를 발생하게 됨에 따라, NAK신호를 발생할 것이다. 이때에, 중앙의 프로세서는 트랩루우틴의 인틴럽트에 의한 것등과 같은 작동을 취할 수도 있다.
앞서 언급하였듯이, 정보가 메모리로부터 이송되어 있을때, 그 메모리는 결코 NAK또는 WAIT신호를 받지 않을 수 있다. 이것은 본 발명에 의한 장치의 본질적인 우선순위 배열 때문이다. 메모리는 최고 우선순위 디바이스이다. 유니트가 메모리에게 정보를 보내달라고 요구하면, 그때 유니트는 시간상의 몇몇 포인트에서 정보를 기대할 수가 있다. 이 유니트가 메모리에게 NAIT 또는 NAK신호를 발생한다면, 그때 이 메모리가 최고 우선순위인 디바이스이기 때문에, 메모리는 데이타이송을 요구했던 특정 제어기에의 액세스를 계속 시도할수 있고, 또 버스를 행업할 수도 있는바, 다시말해 메모리가 최고 우선순위인 디바이스이기 때문에 데이타가 이이 요구되었던 특정 제어기에 의해 수령될때까지 추가적인 데이타 이송을 버스로 하여금 효과적으로 디스 에이블 시키게할 수 있기 때문이다. 제11도의 메모리 제어기 논리에서 알 수 있듯이 실제적으로, 메모리에의 WAIT 또는 NAK응답은 메모리 허용 플립플롭(22M)이 NOR 게이트(21M)의 입력에 나타나는 BSWAIT+ 또는 BSNAKR+신호에 의해 리세트되는 결과를 가져올 것이다. 이에 따라 2중 워어드 결합 논리(94) 및 NOR게이트(2M)를 통해 사용자 플립플롭(15M)을 리세트시키는 결과를 가져오고, 이것은 요구 플립플롭(17M)을 리세트시키는 결과를 가져올 것이다. 이러한 플립플롭 리세트 작용의 효과는 메모리에의 WAIT 또는 NAK응답에 의해 메모리가 다시금요구중인 유니트로 데이타를 이송시키지 않게 하는 결과를 가져와 이에 따라 데이타가 사실상 유실될 것이다 따라서 확인 신호만이 메모리로부터의 요구에 반응하여 데이타를 받아들이도록 이루어질 수 있다. 그러나, 제어기는 데이타 유실없이 또 다른 제어기 또는 제어 프로세서로 NAK또는 WAIT신호를 발생시키도록 허용된다. 부가적으로, 일반적인 규칙은 한제어기가 고우선순위 제어기로부터 정보를 요구하면 요구중인 이 제어기는 정보를 받아들일 준비를 해야하고 따라서 NCK신호 에 따라 반응하여야 한다는 것이다.
이 디바이스가 준비되어 있지 않다면, 이때 기타의 조건들이 만족될 경우 NAK신호가 발생할 것이다. WAIT신호가 아니고 NAK신호가 발생되는 이유는 전형적으로 제어기(210)등과 같은 어떤 제어기가 비지일 경우 단말장치는 밀리초의 비지가 아니라 몇 마이크로초 이상의 비지라는 사실 때문이다 따라서 마스터에는 지시가 마스터가 계속 시도해야 한다는 것일 경우 사이클 시간이 소모될 수 있다. 다소, 이 지시는 요구중인 유니트가 불필요하게 버스사이클들을 사용한다기 보다는 차라리 데이타 처리를 계속하여야 한다는 것이어서 시스템의 전반적인 응답을 지연시킨다. 요구중인 유니트가 해야되는 모든 것은 편리하게 그 지정 유니트를 재시도하는 것이다.
디시 제12도에 도시한 메모리 비지 플립플롭(49)의 동작을 참조하면, 데이타 입력은 버스동작에 비동기적인 MOSBY+신호를 수신하게 결합된다. 이 신호는 제어기를 위해 버스상에서 발생하고 있는 동작에 관계없이 어느 시간에서나 수신될 수도 있다. SDCNN+신호가 마스터 로부터 플립플롭(49)의 클럭입력에 수신되었을때, 그 메모리의 상태에 대해서 즉, 이것이 그 시간에 비지인지 아닌지의 여부에 대한 히스토리가 저장된다. 따라서, 이것은 버스사이클의 반응에 있어서 혼동을 배제한다. 플립플롭(49)에 의해 제공되는 히스토리 보유가 없다면, WAIT상태에서 버스사이클을 개시하고 ACK상태를 발생시키는 상태에서,동일한 버스 사이클을 종료하는 것이 가능한 것이다. 따라서, 양자의 응답은 오차 상태일수도 았는 동일한 버스 사이클 동안에 이루어질수 있다. 히스토리 플립플롭(49)을 사용함으로써, 이 응답은 BSDCNN+신호가 수신된 시간에 제어기가 개입되어 비동기 응답을 허용하고 메모리속도의 오차 또는 차이와 무관한 상태로 고정된다.
[2중 호출 동작응답사이클]
상술한 설명으로 중앙의 프로세서가 마스터로서 메모리의 2중 호출 요구를 행하고 메모리 제어기가 그 요구의 구령 또는 거절에 따라 응답하는 2중 호출 동작의 제1의 버스 사이클의 동작을 종료한다. 이제 메모리 제어기가 마스터이고 중앙의 프로세서가 슬레이브인 제2 및 제3의 버스 사이클들을 설명할 것이다. 이들 2개의 버스 사이클에 있어서, 메모리 제어기는 버스를 지정하고 요구된 정보를 수령한 중앙의 프로세서에 대한 버스상에 설정한다. 이제 이들 2개의 버스 사이클을 제11도, 제11A도, 제13도 및 제13(a)도를 참조하여 상세히 설명한다.
[메모리 제어기 우선순위 회로망 논리]
제11도는 각각의 메모리가 버스 사이클을 요구하고, 타이 브레이킹을 실행하며, 데이타 버스 사이클 현재(BSDCNN-)신호를 발생시킬 것을 요구하는 논리를 보여주고 있다. 버스상의 기타 모든 유니트들은 핸드 쉐이킹 기능을 위한 논리와 유사한바, 예를 들어 중앙의 프로세서는 제10도에 도시한 우선순위 회로망 논리를 지니고 있다. 또한 제11도에는 2중 호출동작을 행하는 동안에 메모리의 핸드 쉐이킹 기능을 변경시키는 논리를 도시하고 있다.
이와 같은 2중 워어드와 관련된 논리인 소자(24)는 제11A도에 보다 상세히 도시되어 있다. 제10도 및 제11도의 우선순위 회로망 논리간의 논리소자 및 기능의 유사성 때문에, 그 차이점들만 이후 설명할 것이다. 즉, 제11도에서 소자(10M), (11M), (13M), (14M), (15M), (18M), (20M), (21M), (22M), (23M), (24M), (25M) 및 (26M)은 제10도와 대응하는 소자(10-26)과 동일하고 또 그 기능도 동일하다. 제11도의 소자(12M), (15M), (17M), (19M), (28M), (29M)은 가기 제10도의 소자(12-29)와 유사하여 그 차이점들만 후술할 것이다.
버스 요구들은 메모리가 이미 요구된 데이타를 이송할 준비가 되어 있을때만(즉, 응답 제2의 반쪽 버스 사이클을 개시하는 동안)메모리에 의해 이루어진다. 다시 제11도를 참조하면, 메모리가 요구를 수용하고 MOS메모리 갱신 사이클을 실행하지 많을때, 제11A도의 메모리 타이밍 발생기는 라인(185)을 통해 사용자 플립플롭(15M)의 클럭(C)입력에 연결된 클럭기능 신호 DCNNGO-를 발생시킨다. 신호 CONNGO-가 2진수 제로에서 2진수 1상태로 변위할때, 라인(184)을 통해 사용자 플립플롭(15M)의 D입력에 연결된 제11(a)도의 NOR 게이트(87)로 부터 나은 INREDY-신호가 사용자 플립플롭(15M)의 Q출력으로 옳겨진다.
후술하는 제11(a)도 설명에서 알수 있듯이, 신호 INREDY-가 2진수 1이기 때문에, 사용자 플립플롭(15M)의 Q출력 신호로서 기억된 요구 신호 STREQQ+는 2진수 1이 될것이다. 사용자 플립플롭(15M)의 세트(S)입력은 풀업 저항기를 통해 클러스 전압선으로 수신되는 신호에 불과한 MYOULD+신호에 의해 그 입력을 2진수 1상태로 세트시킴으로써 효과적으로 디스에이블 된다. 미해결의 기타 버스 사이클 요구가 없는 경우(신호 BSREQT-가 2진수 1임), 데이타 사이클은 진행중, 신호가 없고(신호 BSDCNN-가 2진수 1임), 그리고 시스템은 초기화로부터 모든 논리를 클리어하지 않으며(신호 BSMCLR-가 2진수 1), 그후 NOR 게이트(14M)출력인 신호 BSBSY-는 2진수 1이 된다. 버스 클리어 신호 BSMCLR-는 마스터 클리어 신호 MYMCLR-인 제10도의 AND 게이트(12)에의 입력을 대신하는 제11도의 AND 게이트(12M)에의 입력이다. 그러므로 2진수 1상태로 진행하는 저장된 요구 신호 STREQQ+는 NAND 게이트(16M)에의 양 입력을 2진수 1로 만들어 NAND 게이트(16M)의 출력이 2진수 제로가 되게 한다 요구 플립플롭(17M)의 세트 입력에서의 2진수 제로의 발생으로 요구 플립플롭(17M)이 세트되는 결과를 가져온다. 플립플롭(17M)의 클럭입력을 접지시켜 놓음에 따라, 즉 2진수 제로에 따라, 플립플롭(17M)은 NAND 게이트(16M)의 출력에 의해서만 세트된다. 요구 플립플롭(17M)의 Q출력을 2진수 1상태로 세트시킴에 따라 버스 타이 브레이킹 회로망 NAND 케이트(19M)에 대하여 요구를 행하는 결과를 가져와서 이러한 버스 요구의 우선순위를 기타 가능한 동시 요구들(있을 경우)에 비교한다. 동시에, 요구 플립플롭(17M)의 Q출력은 버스 송수신기에 송출되어, 여기서 Q출력은 소자(18M)에 의해 반전되어 버스상의 버스요구 신호(BSREQT-)가 된다.
신호 BSREQT-가 2진수 제로가 될때, 이것은 기타 저장된 요구가 시스템의 다른 요구 플립플롭(17M)을 세트시키지 않게 한다. 어떠한 유니트는 그 사용자가 플립플롭(15M)을 세트 시킴으로써 버스 시이클을 요구 할 수 있기 때문에, 1개 이상의 요구 플립플롭(17M)은 각기 미래의 가능한 비지 사이클을 나타내는 일정시간에 세트될 수 있다. 동시 요구가 있을때, NAND 게이트(15M)는 적절한 허용 플립플롭(22M)을 세트시켜 유니트를 요구하는 최고의 우선순위에 데이타 사이클을 허용한다.
어떠한 유니트로 데이타 사이클을 허용하기 위해선, NAND게이트(19M)의 모든 입력 타이 브레이킹 신호들은 2진수 1이어야 한다 제10도와 관련하여 상술하였듯이, 최고 우선순위 유니트 즉 메모리의 소자(28M)는 지연 소자(13M)와 유사한 지연 소자인바, 이것은 예를 들어 20나노초의 지연을 가질수도 있다. 최고 우선 순위 유니트에다 소자(28M)의 지연을 제공하지 않으면, 이렇게 최고 우선순위 유니트는 항시 지연선(13M)에 의해 제공되는 지연을 초래함이 없이 버스에의 액세스하여 점유된다. 따라서, 소자(28M)의 지연을 제공함으로써, 최고 우선순위 메모리는 그 요구 플립플롭(17M)을 세트한 시간후에 지연시간 예를 들어 20나노초 동안 그 허용 플립플롭(22M)을 세트시키는 것을 방지한다. 최고 우선순위 유니트에다 그리고 지연소자(28M)와 병렬이 되게 예를 들어 제11도의 논리의 레이스 상태 때문에 플립플롭(17M)와 Q출력에서 발생했던 순간적인 메모리에 기인하여 게이트(19M)를 인에이블시키지 않도록 요구 플립플롭(17M)의 Q출력에서 NAND 게이트(19M)의 한 입력으로 직접 결선을 할수가 있다. 메모리는 버스 사이클이 허용되는 시점까지의 준비상태를 예상하여 요구 플립플롭(17M)을 세트함으로써 버스를 미리 요구하지 않기 때문에, 제10도의 중앙의 프로세서 우선순위 회로망 논리에 관련하여 상술한 바와 같이 신호 MCDCND+ 에 대응하는 NAND게이트(19M)에의 입력으로서 아무런 사용자 준비신호가 존재하지 않는다. NAND게이트(19M)에의 타입력은 제10도의 NAND 게이트(19)의 그것들과 유사하게 동작한다. 각각의 유니트는 버스 요구를 할때 AND 게이트(20M)의 출력을 2진수 제로로 구동한다. 따라서, BSMYOK+는 2진수 제로로 세트되고 버스로 보내져서 거기서 이 신호는 저 우선순위 유니트들상의 타이 브레이킹 게이트들, 즉 NAND게이트(19M)에 대한 동작에 대한 동작 불능 신호가 된다.
메모리는 항시 버스상의 최고 우선순위 위치를 점유한다. 이 위치에서 타이 브레이킹 신호는 풀업 저항기들로부터 2진수 1신호들로 결선된다. 이 시스템에서 고우선의 메모리 제어기가 없는 경우, 메모리가 신호 MYREQT+를 발생할때, NAND게이트(19M)의 입력에는 아무런 2진수 제로인 타이 브레이킹 신호가 없게 되고, 이에 따라 NAND게이트(19M)의 출력은 2진수 제로가 되어 허용 플립플롭(22M)을 세트시키는 것을 방지할수 있다. 플립플롭(22M)의 클럭 입력을 접지시켜 놓음에 따라, 2진수 제로인 플립플롭(22M)은 NAND게이트(19M)의 출력에 의해서만 세트된다.
허용 플립플롭을 세트 시킴으로써 허용 플립플롭(22M)의 Q출력에서의 신호 MYDCNN+ 는 2진수 1인 되는바, 이 2진수 1은 버스 송수신기(23M)를 통해 반전되어 신호 BSDCNN-로서 버스상으로 송출된다. 또한 라인(182)상의 신호 BYDCNN+는 후술하는 바와 같은 2중 호출 이송이 없으면(논리 94와 관련된 2중 워어드, 라인(183)상의 신호 STREQR+와 NOR게이트(19M)을 통해)사용자 플립플롭(15M)을 리세트시킨다. 또한 신호 MYDCNN+ 는 버스상으로 메모리 데이타, 메모리 식별 코우드를 및 기타 다른 몇몇제어 신호들을 게이트 시킨다.
2중 호출 동작을 행하는 동안, 요구중인 메모리는 2중 호출 신호 BSDBPL-를 버스상의 2진수 제로로 세트시킴으로써 2중 워어드가 요구되는 메모리에 알릴것이다. 타이밍 발생기 및 일부분의 버스 제어 논리 2중 호출 메모리들을 인에이블시켜 후술하는 바와 같은 1개의 워어드 아닌 2개의 워어드에 따라 응답케한다.
2중 워어드 호출 이송을 위해 사용된 버스 제어 및 응답논리는 제11도, 제11(a)도에 도시되어 있다. 이제 제11도를 참조하면, 단일 호출 이송을 행하는 동안, 메모리에 버스 사이클이 허용되어 요구 되었던 데이타 워어드를 다시 송출할때, 신호 MYDCNN+가 허용 플립플롭(22M)에 의해 발생된다. 메모리 사용자 플립플롭(15M)은 NOR게이트(29M)를 통해 신호 SSTREQR+의 선단부에 의해 리세트된다. 라인(183)상의 신호 STREQR+는 후술하듯이 라인(182)상의 MYDCNN+에 응답하여 2중 워어드 연관 논리(94)에 의해 발생된다. 사용자 플립플롭(15M)을 리세트 시킴으로써 그 Q바아 출력인 신호 STREQQ- 가 2진수 1이 되게하고 NOR게이트(70)를 통해 메모리의 요구 플립플롭(17M)을 리세트시킴으로써 그 Q바아 출력인 신호 MYREQT-가 2진수 1이 되게 하고, AND게이트(20M)를 통해 신호 BSMYOK+가 2진수 1이 되게 함에 따라 다음 동작을 위해 버스를 자유상태로 한다. 따라서 단일 호출 동작인 경우에, 신호 MYDCNN+는 그 제1의 응답 사이클이 일어난후에 사용자 플립플롭(15M)을 리세트시키는 반면, 후술하는 2중 호출 동작에서 알수 있듯이 사용자 플립플롭(15M)이 리세트되기 이전에 2개의 응답사이클이 요구됨을 알 수가 있다.
제11도는 또한 메모리 요구를 행하는 동안 버스 데이타 리이드들의 내용을 기억하기 위해 메모리 제어기에 의해 사용된 논리를 예시하고 있다. 버스 데이타 리이드 신호 BSDT00-내지 BSDT15-가 수신되어 제11도의 16개의 수신기(97)에 의해 반전된다. 결과적인 신호 BSDT00+ 내지 BSDT15+ 는 메모리제어기가 슬레이브로서 메모리 요구를 확인할때 제12도의 논리로부터 나온 라인(186)상의 신호 MYACKR+에 의해 레지스터(98)로 클럭킹 된다. 레지스터(98)는 16개의 D형 플립플롭들로 구성되어 있고 버스 데이타 리이드들의 내용을 기억할 목적으로 사용된다. 메모리에의 기록 요구를 행하는 동안, 버스 데이타 라인들은 메모리로 기록될 16비트 워어드의 데이타를 내포한다. 메모리 판독 요구를 행하는 동안, 버스 데이타 라인들은 요구자의 채널 번호 및 제6도에 도시한 포오맷의 기능 코우드를 내포한다. 판독 요구의 응답사이클, 단일호출 또는 2중 호출 판독요구를 행하는 동안, 채널번호 및 기능 코우드는 제5도에 도시할 포오맷 형태로 버스 어드레스 라인들상의 요구중인 유니트로 다시 반향하여 들어간다. 채널 번호 및 기능 코우드의 반향은 메모리 제어기가 마스터로서 버스에 허용되었을때 레지스터(98)의 내용을 버스 어드레스 라인들 상으로 게이트시키도록 16개의 드라이버(99)를 인에이블시키는 신호 MYDCNN-에 의해 행해진다. 후술한 설명에서 알수 있듯이, 응답 사이클동안 기능 코우드의 반향은 중앙의 프로세서로 하여금 데이타의 단일 호출 요구들에 반응하는 메모리 응답사이클들과 처리의 2중 호출 요구들에 반응하는 메모리 응답 사이클들간을 구별하도록 한다.
이제 제11도를 참조하면, 메모리가 2중 워어드 판독 요구를 받아들이때, AND게이트(76)의 출력인 2중 워어드 호출신호(DFETCH+)는 2진수 1이 되어, 메모리가 MOS메모리 갱신 사이클에 있지 않다고 가정함으로써, DFETCH+신호가 2개의 연속적인 MYDCNN+신호를 발생시키게 메모리를 인에이블 시키는바 이것은 후술하는 바와 같이 마스터에 요구된 2개의 데이타 워어드를 송출한다. 마스터가 2중 호출 요구를 할때, 버스상의 BSWRIT-신호는 판독요구를 지시하면서 2진수 1이됨에 따라 수신기(반전용 증폭기)(71)의 출력은 2진수 제로가 될 것이다. 또한 2중 호출요구를 행하는 동안 버스상의 2중 호출 신호 BSDBPL-가 2진수 제로이기 때문에, 수신기(72)의 출력은 2진수 1이 될 것이다. 호출될 2개의 워어드중 첫번째, 즉, 버스 어드레스 라인 BSAD00-내지 BSAD22-에 의해 번지 지정된 워어드를 내포한 메모리가 특정 메모리에 존재하고 또 그 메모리가 비지가 아닐경우, 제12도의 메모리 제어기 논리는 MYACKR+ 신호를 2진수 제로로부터 2진수 1의 상태로 변위하게 하여 소자(74)의 D입력들을 Q출력들로 클럭킹 시킬것이다. 즉, 입력 DO 에서의 2진수 제로인 신호 BSWRIT-는 기록 메모리 사이클 WRITMM+를 2진수 제로로 만드는 출력 및 판독 메모리신호 READMM+를 2진수 1로 만드는 Q0바아 출력으로 클럭킹 될것이다. 소자(74)의 D1입력에서의 2진수 1인 BSDBPL+신호는 신호 MDFETCH+를 2진수 1로 만들면서 그 Q1출력으로 클럭킹될것이다. 메모리 갱신이 진행중에 있진 않으면, 신호 REFCOM-는 2진수 1이되고 ; 메모리가 시험중에 있지 않기 때문에 2중워어드가 억제되지 않을 경우에는 신호 DWDINH-는 2진수 1이되며 ; 그리고 신호 게이트(75)를 세트시키면, 신호 DFHINH-는 2진수 1이된다. AND게이트(76)에의 양 입력들이 2진수 1이면 그 출력인 신호 DFETCH+는 2진수 1이 된다.
NAND게이트(78)에의 입력에 걸려 있는 신호 MYACKR+ 를 예를 들어 100나노초 지연시킴으로써 메모리 타이밍 발생기(95)에 의해 발생된 DFETCH+ 신호 및 신호 DWDSET+의 동시 발생은 NAND게이트(78) 1출력인 신호 DWDSET-를 2진수 제로가 되게 함에 따라 2중 호출 히스토리 플립플롭(80)을 세트시킨다. 2중 호출 히스토리 플립플롭(80)의 목적은 메모리가 2중 호출 동작에 반응하여서 메모리가 버스의 제어를 얻어 2개의 응답 사이클들중 제1의 사이클동안에 응답할때 2중 호출신호 BSDBPL-를 2진수 제로로 세트시켜 요구자에게 이것이 2개의 워어드중 첫번째 것이라는 사실을 알리는 것이다. 이중 호출 히스토리 플립플롭(80)의 Q바아 출력에서 2진수 제로인 신호 DWDHIS는 메모리가 제1의 응답사이클동안 2진수 1인 라인(182)상의 MYDCNN+ 에 따라 응답할때 NAND 게이트(81)의 출력이 2진수 제로가 되는 것을 방지한다. 신호 DWDHIS-에 의한 억제작용은 인버터(82)의 출력이 2진수 1인 신호 MYDCNN+에 응답하여 2진수 1인 것으로부터 예방하여 제11도의 NOR게이트(29M)를 통해 메모리 사용자 플립플롭(15M)을 리세트시키는 것을 억제하게 된다. 이중 호출 히스토리 플립플롭에 의해서 플립플롭(15M)을 억제시킴으로써 MYREQT+ 신호가 2진수 1로 되는 결과를 초래하고 더우기 메모리가 드라이버(18M)를 통해 버스 사이클을 계속 요구하게 하는결과를 초래하는 메모리 요구 플립플롭(17M)의 리세트 작용을 예방한다.
제1의 메모리 응답사이클동안, 라인(182)상의 신호 MYDCNN+의 선단부는 NANO게이트는(83)의 출력에서 이중 응답 신호 DWRESP-를 발생시키는바. 이 NAND게이트(83)의 출력은 또한 2중 호출 히스토리 플립플롭(80)의 Q출력 즉, 2진수 1인 신호 DWDHIS+ 이다. 2진수 제로인 신호 DWRESP-는 인버터(84) 그리고 다시 드라이버(85)에 의해 반전된후 2진수 제로인 신호 BSDBPL-로서 버스에 송출된다. 또한 신호 SWRESP-는 2중 호출 히스토리 플립플롭(80)의 D입력에 결선된 Q바아 출력을 그 Q 및 Q바아 출력으로 클럭킹 시킴으로써 이 플립플롭(80)을 리세트 시킨다. 이렇게 2중 호출 히스토리 플립플롭(80)을 리세트 시킴으로써 그 Q바아 출력이 2진수 1인 결과를 가WU와서 NAND게이트(81)에서 발생하는 다음의 MYDCNN+ 신호는 인버터(82) 및 NOR게이트(29M)를 통해 메모리 사용자 플립플롭(15M)을 리세트시키게 기능이 있다. 사용자 플립플롭(15M)을 리세트시키는 것은 메모리 요구 플립플롭(17M)은 리세트시키는 결과를 가져와 그 출력신호 MYREQT+는 2진수 제로가 되고, 메모리가 드라이버(18M)를 통해 더 이상 버스 사이클을 요구하는 일은 없다.
요구중인 유니트 즉, 이 실시예에서는 중앙의 프로세서는 메모리 허용 플립플롭(22M)을 리세트시키는 2진수 제로인 신호 BSACKR-에 따라 응답함으로써 제1의 데이타 워어드를 확인한다. 요구중인 유니트의 NAK 또는 WAIT메모리 응답사이클이 응답하거나 응답하지 않는 경우, 데이타는 유실된다. 메모리 요구 플립플롭(17M)이 제1의 응답사이클에 반응하여 리세트되지 않기 때문에, 메모리는 2진수 제로로 존재하는 신호 BSREQT-를 통해 버스를 계속 요구한다. 따라서 메모리는 제2의 데이타 워어드를 송출하도륵 NAND게이트(19M) 및 허용 플립플롭(22M)을 통해 2진수 1인 또다른 MYDCNN+신호를 발생시킨다. 2중 호출 히스토리 플립플롭(80)은 제1의 응답사이클이 끝날때 리세트되기 때문에 제2의 응답사이클 동안 신호 MYDCNN +는 사용자 클립 풀롭(15M)을 리 세트시키고 플립플롭(17M)을 요구한다. 또한 신호 BSDBPL-는 2진수 제로 상태로 구동되지 않아, 요구중인 유니트에 의해 기대되어야 하는 다른 정보가 없음을 가리킨다.
어떤 이유로 해서 제2의 데이타 워어드를 메모리 제어기로 부터 얻을수가 없으면(예를 들어, 중앙의 프로세서가 이중 호출 동작과 제공된 메모리 어드레스를 요구할 경우, 즉 2워어드중 제1의 워어드의 어드레스가 이러한 특정 메모리 제어기의 최고 위치점의 어드레스인 경우), 메모리는 OR게이트(77) 및 인버터(79)를 통한 신호 I2WRES의 경유로 인한 신호 DWDRES-(이 신호는 인버터(79)의 리세트 입력에서 2진수 제로임)에 의해 리세트 된다. 이렇게 플립플롭(80)을 리세트시키는 일은 그 세트입력에서 2진수 제로인 신호 DWDSET-에 의해 그 세트이후에 일어나지만, 후술한 메모리의 제1의 응답사이클 이전에 즉, 제2의 워어드가 나타나지 않았을때, 타이밍 발생기(95)로 부터 나온 DWDSET+신호가 2진수 1상태로 진행하고 NOR 게이트(93)로 부터의 I2WRES-신호가 발생하기 이전에 2진수 제로상태로 돌아간다. 이경우에, 메모리 제어 기는 제1의 데이타 워어드의 전달을 행하는 동안 신호 BSDBPL-를 2진수 제로로 세트시키지 않아, 요구중인 유니트에 제2의 워어드가 들어오지 않음을 가리킨다.
어드레스 레지스터(98)(80)늘 멀티플렉서(91)(92) 및 NOR게이트(93)와 함께 결합되어 이중 호출 요구의 제2의 워어드가 이중 호출 요구의 제1의 워어드를 내포한 메모리 제어기와 동일한 메모리 제어기에 존재하는지를 결정한다. 이러한 결정은 마스터 유니트 예를 들어 중앙의 프로세서가 이중 호출 요구를 행할때 다음과 같이 이루어진다. 소자(88)는 각각의 버스 어드레스 신호 BSAD00-내지 BSAD22-에 대한 라인 수신기를 내포하고 있어 어드레스 레지스터(89)(90)에 이용가능한 반전 신호 BSAD00+ 내지 BSAD22+를 형성한다. 어드레스 레지스터(89)(90)은 각기 6개의 캐스 캐이드 동기형 4비트 업/다운 카운터로 구성되어 있고, 이들은 예를들어 텍사스 인스트루먼트사에서 제작된 부품번호 SN 74193과 같은 유형이다. 이들 어드레스 레지스터들은 그들 부하(L) 입력에 2진수 제로 신호가 나타남에 따라 그들에 부하된 정보를 유지할수 있는 능력과 또한 하나씩 증분시킬수 있는 능력을 지니고 있고 또 증분되 그 값을 유지시킨다. 이들 어드레스 레지스터들은 그들의 하나의 입력에서의 신호가 2진수 제로에서 2진수 1상태로 변위할때, 그들 내용을 하나씩 증분시킨 마스터의 호출 요구 사이클동안, 이들 버스 어드레스 신호들은, 메모리 제어기가 인버터(96)를 통해 레지스터(89)(90)의 L입력에서 2진수 제로인 MYACKR-신호를 생성하는 2진수 1이된 신호 MYACKR+에 의해 이중 호출 요구을 확인할때, 레지스터(89)(90)로 게이트되어 들어간다. 이렇게 레지스터(89)(90)에 부과된 제1의 워어드의 어드레스에 따라, 도시하지 않은 기타의 논리는 어드레스가 홀수인가 또는 짝수인가를 결정 한다.
제1의 워어드의 메모리 어드레스가 홀수이면, 짝수 워어드 어드레스 레지스터(90)의 +1 입력에서의 신호 MAREUC-는 2진수 제로에서 2진수 1로 변위하게 됨에 따라 짝수 워어드 어드레스 레지스터(90)의 내용을 증분시킨다. 이와같이 짝수 워어드 어드레스 레지스터(90)는 메모리로부터 호출될 제2의(짝수)워어드의 어드레스를 내포한다 마찬가지로. 메모리로부터 호출될 제1의 워어드의 어드레스가 짝수이면, 홀수 워어드 어드레TM 레지스터(89)의 +1 입력에서의 신호 MAROUL-는 2진수 제로에서 2진수 1로 변위하게 됨에 따라 레지소터(89)가 메모리로부터 호출될 제2의(홀수)워어드의 어드레스를 내포할 수 있도록 레지스터(89)의 내용을 증분시킨다. 이때, 제1의 워어드의 어드레스가 홀수이냐 또는 짝수이냐에 관계없이, 레지스터(89)는 홀수 워어드 어드레스를 내포하고 레지스터(90)는 짝수 워어드 어드레스를 내포한다. 멀티플렉서(91)(92)는 호출될 2개의 워어드 중 두번째 워어드를 내포한 8K 메모리 모듈이 제어기에 존재하느냐를 결정하는데 있어서 제12도에 도시한 멀티플렉서(48)와 유사하게 동작한다. 짝수 워어드 어드레스 레지스터에 의해 번지 지정된 워어드가 하위 16K 워어드에 있느냐 또는 상부 16K 워어드에 있느냐를 가리지기 위해 짝수 워어드 어드레스 레지스터(90)로 부터 유도된 신호 MARE08+를 사용함으로써, 멀티플렉서(91)(92)는 그 입력들 중의 하나를 선택적으로 그 출력으로 게이El시킨다. 즉, 신호 MARE08+가 2진수 제로이면, 신호 MYMOSB-는 멀티플렉서(91)의 출력으로 게이팅되고 신호 MYMOSA-는 멀티플렉서(92)의 출력으로 게이팅된다.
신호 MARDO8+가 2진수 1이면, 신호 MYMOSD-가 멀티플렉서(91)의 출력으로 게이팅되고 신호 MYMOSC-는 멀티플렉서(92)의 출력으로 게이팅된다.
제12도의 멀티플렉서(48)에 대향 다음의 설명에서 알 수 있듯이, 신호 MAREO8+가 2진수 제로에서 메모리 제어기의 하부 16K워어드가 짝수 워어드 어드레스 레지스터에 의해 번지 지정되고 있음을 가리키면, 멀티플렉서(91)의 출력에서의 2진수 제로는 메모리 모듈 B가 존재함을 가리키고 멀티플렉서(92)의 출력에서의 2진수 제로상태는 메모리 모듈A가 존재함을 가리킨다. 신호 MAREO8+ 가 2진수 1이여서 짝수 워어드 어드레스 레지스터가 메모리 제어기의 상부 16K 워어드의 어떤 워어드를 번지 지정하고 있음을 가리키면 멀티플렉서(91)의 출력의 2진수 제로상태는 메모리 모듈 D가 제어기에 존재함을 가리키고 멀티플렉서(92)의 출력의 2진수 제로는 메모리 모듈 C가 존재함을 가리킨다.
어드레스 레지스터(89)(90)의 관련된 멀티플렉서(91)(92)의 동작은 제14도를 참조하고 경계의 경우들을 검사함으로써 가장 잘 이해할 수 있다. 짝수 워어드 어드레스 레지스터(90)에 내포된 어드레스가 메모리 하위 16K 워어드에 있다면, 즉 신호 MARE08+가 2진수 제로인 경우, 경계의 경우들은 짝수 어드레스 레지스터가 0 및 16382간의 어드레스를 내포하는 경우들이다. 짝수 워어드 어드레스 레지스터(90)가 어드레스 0를 내포한다면, 홀수 워어드 어드레스 레지스터(89)는 다음으로 보다 높은 워어드 즉, 워어드 1의 어드레스를 내포해야하고, 제11(a)도의 멀티플렉서(91)(92)는 메모리 모듈(A)(B)가 메모리 제어기에 존재해야함을 요구한다. 짝수 워어드 어드레스 레지스터(90)가 어드레스 0을 내포하는 이러한 경우에, 홀수 워어드 어드레스 레지스터(89)는 버스상의 어드레스 즉 호출될 제1의 워어드의 어드레스가 제어기내에 존재하지 알아 버스상의 어드레스가 어드레스 레지스터(89)(90)로 게이팅되어 질 수 없기 때문에 제11도의 메모리 제어기 논리가 응답할 수 없다는 연유로 다음의 보다 낮은 어드레스를 내포할 수가 없다. 짝수 워어드 어드레스(90)의 어드레스가 모듈 A의 최종 워어드 즉, 어드레스 16382이면, 홀수 워어드 레지스터(89)에 의해 번지 지정 될 수 있는 다음의 보다 높은 그리고 다음의 보다 낮은 워어드가 메모리 모듈 B에 내포되고 멀티플렉서(91)(92)는 메모리 모듈(A)(B)의 존재를 가리킨다. 신호 MARE08+가 2진수 1이면, 짝수 워어드 어드레스 레지스터(90)가 메모리의 상부 16K 워어드 내에 있다고 지정하고, 멀티플렉서(91)(92)는 메모리 모듈(C)(D)의 존재를 가리킨다. 메모리의 상부 16K 워어드의 경우에, 짝수 워어드 어드레스 레지스터가 메모리 모듈 C의 제1의 워어드의 번지 즉, 어드레스 16384를 지정하면, 다음의 보다 높은 어드레스는 메모리 모듈-그 존재는 멀티플렉서 91에 의해 지정됨-내에 내포되거나, 다음의 보다 낮은 워어드가 번지 지정되면 즉, 워어드 16383이면, 메모리 모듈B의 존재는 2중 호출 요구가 원래 이루어졌을때, 제12도의 멀티플렉서(48)에 의해 제1의 버스 사이클 중에 지정된다.
짝수 워어드 어드레스 레지스터(90)가 메모리 모듈 C에서 최종 워어드의 번지, 즉, 어드레스 32767을 내포 한다면, 다음의 보다 높은 그리고 다음의 보다 낮은 워어드는 둘다 멀티플렉서(91)에 의해 다시 그 존재가 표시되는 메모리 모듈D에 내포된다. 1개의 나머지 경계의 경우는 그 중 호출요구가 제어기상의 최종 워어드의 번지, 즉, 어드레스 32767를 진정하는 경우이다. 이 경우에, 어드레스가 버스로부터 게이트되어 어드레스 레지스터(89)(90)로 부하된 후, 짝수 워어드 어드레스 레지스터(90)는 어드레스 32768에서 요구하는 것에 따라 증분된다. 이에 따라 신호 MARE08+가 2진수 제로가 되는 결과를 가져오고, 또 이러한 2진수 제로는 후술 하듯이 멀티플렉서(91)(92)가 메모리 모듈 A,B-이들은 특정 메모리 제어기상의 메모리의 하부 16K 워어드 를 구성함-의 존재 또는 부재를 표시한다. 이중 호출 요구에서 번지 지정된 제1의 워어드가 메모리 제어기 의 최종 워어드인 이 경우에, 사실상 제2의 워어드는 메모리의 하위 16K 워어드에 존재하지만, 현재의 메모리 제어기상에 있지 않고 다음의 메모리 제어기상에 있게 된다.
이 경우는 짝수 워어드 어드레스 레지스터(90)의 비트위치 8로부터 그 어드레스가 증분될 때 비트위치7로 가는 캐리발생에 반응하여 2진수 1인 제11(a)도의 신호 MAROOL+에 의해 검출된다. 멀티플렉서(91)(92)의 출력, 어드레스 캐리 신호 MAROOL+ 그리고 인히비트 2워어드 신호 INH2WD+(정상 상태하에서 2진수 제로)가 NOR 게이트(93)에 들어감에 따라 이 게이트(93)의 출력신호 I2WRES-는 그중 호출 요구의 제2의 워어드가 특정 메모리 제어기에 존재할때 2진수 1이 될 것이다. 신호 I2WRES-는 제2의 워어드가 메모리 제어기에 나타나지 않고 OR 게이트(77) 및 인버터(79)를 통해 이중 호출 히스토리 플립플롭(80)을 리세트시키는 결과를 가져올때 2진수 제로가 될 것이다.
또한 어드레스 레지스터(89)(90)는 제11(a)도에 도시하지 않은 기타 논리와 함께 홀수 및 짝수 워어드들이 메모리 모듈들로부터 검색됨에 따라 이들 워어드를 번지 지정하는 데 사용된다. 이에 따라 2개의 워어드 즉, 짝수 번지 지정된 워어드를 내포하고 있는 메모리 모듈로부터 나은 1개의 워어드와 홀수 워어드를 내포하고 있는 메모리 모듈로부터 나은 1개의 워어드를 중복방식으로서 검색한다. 제2의 워어드의 검색은 제1의 워어드의 검색후인 예를들어 150나노초가 약간 지난 후에 개시된다. 이에 따라 제1의 워어드를 요구중인 유니트로 전달하는 응답 버스 사이클이 완료되기 이전에 제2의 워어드가 메모리 제어기에서 이용가능하게 함에 따라, 제2의 응답버스 사이클동안 제2의 워어드가 요구중인 유니트로 즉시 이송할 수 있게 됨으로써 시스템 생산고를 증대시 킨다.
제11도의 메모리 제어기 사용자 플렉서(15M)은 다음과 같이 세트된다. 다시 제11(a)도를 참조하면, 앞의 설명에서 알 수 있듯이 메모리 제어기가 판독 요구를 확인할때, 판독 메모리 신호 READMM+인 소자(74)의 출력은 2진수 1이 되고, 2진수 1인 초기화 신호 INITEMM-와 관련된 초기화가 진행 중에 있지 않음을 가리키는 2진수 l인 초기화 신호 INITMM-와 관련된 AND 게이트(96)의 출력이 2진수 1인 결과를 가져온다. 이러한 2진수 1은 메모리 갱신 사이클리 진행 중에 있지 않음을 가리키는 2진수 1인 메모리 갱신 신호 REFCOM-와 관련하여서, NOR 게이트(87)의 출력인 라인(814)상의 신호 INREDY-가 사용자 플립플롭(15M)의 D입력에서 2진수 1인 결과를 가져온다. 신호 MYACKR+ 가 2진수 제로에서 2진수 1로 변위한 후 400나노초 후에 발생하는 2진수 제로에서 2진수 1로 변위하는 플립플롭(15M)의 클럭입력에서의 라인(185)상의 입력을 신호 DCNNGO-가 사용자 플렉서의 D입력을 그 출력들로 클럭킹시킴으로써 설정될 것이다.
이러한 클럭킹이 일어나는 시간에, NOR 게이트(29M)의 출력이 2진수 1임을 주의해야 한다. 다시 제11(a)도를 참조하면, 소자(74)의 플립플롭들의 출력은, 2진수 제로인 입력들중 어떤 것에 반응하는 2진수 1의 신호 CLRMOD-라 할 수 있는 NOR 게이트(74)의 출력발생, 즉 초기화, 버스클리어 또는, 메모리 갱신 발생에 의해 클리어됨을 알 수 있는 이중 호출 동작동안의 메모리 제어기 신호들간의 관계는 후술하는 제14도의 하부 부분에 도시되어 있다.
[중앙의 프로세서 버스 인터페이스 논리]
이제 제13도에 도시한 전형적인 중앙의 프론세서 버스 결합 논리를 참조한면, 신호들이 소자(99)에 포함된 수신기들에 의해 버스로부터 수신된다. 신호 BSMREF-논리들 수신기들 중의 하나에 의해 수신되어 수신된 어드레스가 메모리 어드레스가 아니면 AND 게이트(100)를 부분적으로 인에이블시키는데 사용된다. 더우기 신호 MYDCNN+는 중앙의 프로세서가 현재의 버스 마스터가 아니면(즉, 중앙의 프로세서가 버스 상에 어드레스를 설정하지 않으면,)AND 게이트(100)를 인에이블 시킨다. AND 게이트(100)의 출력은 비교기(103)의 하나의 입력에 인가되어 비교기를 인에이블시킨다. 비교기(103)에 의한 비교를 위해 입력들 중의 하나는 중앙의 프로세서의 어드레스인바, 이 경우에는 예를들어 갯수가 4이고 BSAD14+ 내지 BSAD17+ 신호로 표시되어 있다. 비교기(103)의 하나의 1입력에 수신된 어드레스는 예를들어 중앙의 프로세서 자체의 16진 스위치(101)에 의해 세트된 어드레스에 따라 비교된다. 수신된 어드레스와 스위치(101)의 제공 어드레스가 비교되어 동일한 때에는 비교기(103)는 게이트(106)(107)를 부분적으로 인에이블시키는 신호 ITSAME+ 를 발생 시킨다.
더우기 어드레스 비트 BSAD08+내지 BSAD13+는 이들 비트들이 모두 제로이냐 아니냐를 결정하는 AND게이트(104)의 입력들에 수신된다. 이들 비트가 모두 제로이면, 그때 ITSAME+신호가 발생되어 게이트(106)(107)를 부분적으로 인에이블시킨다. 게이트(106) 또는 (107) 어느 것의 추가적인 입력을 인에이블시키면 소자(113)에 구성된 각자의 플립플롭을 효과적으로 세트시킬 것이다.
AND 게이트(106)의 타입력은 인버터(116)를 통해 게이트(106)에 결합되는 제2의 반쪽 사이클인 BSSHBC+신호이다. 또한 이러한 제2의 반쪽 버스 사이클신호는 AND 게이트(107)의 하나의 입력에 수신된다.
따라서, AND 게이트(107)는 그에 대한 입력들 중 2개가 이 게이트가 번지지정된 장치임을 가리키고, 그 타입력으로 부터 이것이 신호 BSSHBC+에 의해 표시된 것과 같은 제2의 반쪽 버스 사이클임을 가리키면 충분히 인에이블될 것이다. 따라서, AND 게이트(107)를 인에이블시킴으로써, MYSHRC-가 발생되어 OR게이트(114)의 하나의 입력에 결합될 것이다. 그후 OR 게이트(114)는 드라이버(115)를 통해 ACK 신호(BSACKR-)를 제공할 것이다.
또한 소자(113)의 Q1출력에서 MYSHRC-신호를 발생시키는 것에 덧붙여 AND 게이트(107)를 충분히 인에이블시킴으로써 소자(113)에 포함되어 있는 동일 플립플롭의 Q1출력에서 MYSHRC+ 신호를 발생시킨다. MYSHRC+신호를 2진수 제로에서 2진수 1상태로 변위 시킴으로써 소자(110)의 플립플롭 각각의 입력들의 그 출력들로 클럭시키게 된다. 디바이스(예를들어, 메모리)가 이중 호출요구에 응답함을 가리키는 소자(110)의 Q± 입력에서 제5도에 도시한 기능코우드 피일드의 교차 비트인 신호 MYSHRP-가 2진수 1(20의 기능코우드, 베이스16)이면, 소자(110)의 Q± 출력에서의 신호 MYSHRP-는 이러한 제2의 반쪽 버스 사이클이 중앙의 프로세서에 의한 이중 호출(처리방법)요구에 응답함을 가리키는 2진수 제로가 될 것이다. 신호 BSAD18+가 디바이스가 단일 호출(데이타)요구에 반응함을 가리키는 2진수 제로(00의 기능 코우드, 베이스 16)이면,그때 2진수 1은 소자(110)에서의 Q1 출력의 신호 MYSHRD+가 이러한 제2의 반쪽 버스 사이클이 중앙의 프로세서에 의한 단일 호출 요구에 응답할을 가리키는 2진수 1이 되게하는 소자(110)의 D1 입력에 연결된 인버터(109)에 의해 발생될 것이다. 프로세서가 슬레이브로부터 응답사이클을 기대하고 있는 중앙의 프로세서의 다수 사이클 호출동작에 있어서 신호 MYSHRP- 및 MYSHRD+는 제2의 반쪽 버스 사이클 이전의 이중 또는 단일의 호출 요구로부터 각기 예상된 데이타를 제시하는 것을 중앙의 프로세서에 지정하기 위하여 사용된다. 소자(100)의 플립플롭들은 그와 유사한 플립플롭 유형의 소자들에 대한 앞의 설명에서와 동일한 방식으로 인버터(135)를 통한 신호 BSDCNB-에 의해 클리어되어, 버스 사이클에 뒤이어서 플립플롭들을 초기화시게된다.
AND 게이트(106)는 적당한 유니트 어드레스가 수신될때 그리고 이것이 제2의 반쪽 버스 사이클이 아니면 충분히 인에이블 됨에 따라, 소자(113)에 포함된 각자의 플립플롭의 출력에서 MYINTR+신호로 기재된 양의 신호를 발생시킨다. 이 MYINTR+신호는 제13도의 논리로 하여금 ACK 또는 NAK 신호가 발생될 것이냐를 결정하게 한다. 이들 신호중 어느 하나가 발생되느냐 하는 것은 처리시간을 구하는 디바이스의 인터럽트 레벨에 비교되는 것으로 시스템에서 현재 동작중인 인터럽트 레벨에 따라 결정될 것이다.
인터럽트 레벨이 충분하느냐의 여부에 관한 결정은 A 입력이 B 입력미만이냐를 결정하기 위한 비교기인 비교기(117)에 의해 결정된다. 비교기(17)의 A 입력은 제7도에 도시한 포오맷에서 데이타 처리 시간을 구하는 버스에 결합된 디바이스의 인터럽트 레벨을 가리키는 신호 BSDT10+내지 BSDT15+를 수신한다.
이 시스템에서는 다수의 인터럽트 레벨이 마련된다. 인터럽트 레벨 번호 0은 데이타 처리 시간에의 가능한 최고의 접근성을 수신하고 이에따라 비간접적이 된다. 따라서 인틴럽트 레벨이 낮으면 낮을수록 이러한 디바이스의 계속적인 처리가 인터럽트될 기회는 더 작을 것이다. 따라서 비교기(117)의 A 입력에 수신되는 레벨번호는 블럭(118)의 레벨에 의해 표시되어 있듯이 중앙의 프로세서에 동작하는 현재의 레벨 미만이다. 따라서 입력 A에 수신되는 신호에 의해 표시되어 있는 것과 같은 인터럽트를 구하는 디바이스는 그렇게 행할 수 있을 것이다.
A 입력이 B 입력과 동일하거나 그 이상이면, 그때는 LVLBLS+신호는 발생되지 않을 것이고 NAK 신호가 후술하는 바와 같이 드라이버(108) 및 플립플롭(120)에 의해 제공될 것이다.
따라서, 비교기(117)의 일력 A에 수신된 인터럽트 레벨이 입력 B에 수신된 것 미만이면, LVLBLS+신호는 2진수 1이 되어 플립플롭(120)(121)의 D입력에 결합될 것인바, 플립플롭(120)의 D입력은 반전입력임을 유의해야 한다. A신호가 비교기(117)에 의해 표시되어 있듯이, 비신호와 동일하거나 더 크면, 2진수 제로의 신호가 플립플롭(120)의 부의 입력에 수신될 것이다. 이에 따라 MYINTR+신호가 소자(113)의 각 플립플롭을 세트시킴으로써 플립플롭(120)의 클럭입력에 수신되면 NAK 신호가 발생할 것이다. 그 레벨이 충분하였다면, 즉 A입력이 비교기(117)에 표시된 바와 같이 B입력 미만이었다면, 그때 2진수 1이 LVLBLS+신호에 발행할 것이고 이에 따라 MYINTR+신호가 이것은 플립플롭(121)의 Q 바아출력을 OR 게이트(114)의 하나의 입력 으로 클킹시킬 것인바, 이 OR 게이트(114)는 드라이버(l15)를 통해 ACK 신호를 발생시킬 것이다. 따라서, MYNAKR+신호가 9진수 1이면 근때 NAK신호가 발생될 것이고, MYINTF-신호가 2진수 제로이면 ACK신호가 발생될 것이다. 소자(113)의 플립플롭들은 이와 유사한 플립플롭 유형의 소자들에 이미 설명한 바와 동일하게 인버터(121)에 의해 클리어 된다. 사실상 이것이 제2의 반쪽 버스 사이클이면 ACK 신호가 비교기에 의한 지시에 무관하게 발생될 것임을 유의해야 한다. 이러한 사상에 있어서, MYSHRC-신호는 ACK 신호를 발생시켜 플립플롭(121)으로 나온 어떤 지시를 무시하게끔 OR 게이트(114)의 타입력에 2진수 제로 상태로 결합된 것과 같은 소자(113)의 플립플롭들 중의 하나에서 나온 신호이다.
상술하였듯이, 인버터(125)를 통한 BSDCNB-신호는 플립플롭(121) 및 플립플롭(120)을 리세트시킴에 따라 버스 사이클에 계속해서 플립플롭을 초기화 시킨다. 부가적으로, 플립플롭(127)은 버스 타임아웃 상태 즉, 부재디바이스가 번지지정 되었고, 사실상 아무런 응답이 없음을 가리키는 B71MOT-를 발생시켜, NAK, ACK 또는 WAIT가 잠정적인 슬레이브 디바이스에 의해 발생되고 있다. 따라서, 예를들어 5마이크로초 기진 을 갖게 설정될 수 있는 원-사트(one-shots)멀티 바이브레이터(126)가 설치되어 있다. 이 멀티 바이브레이터(126)는 버퍼(129)의 입력에 수신되는 BSDCND+신호 즉, 스트로브 신호의 수신에 의해 트리거된다. 멀티 바이브레이터(126)의 타이밍은 이동 중에 있기 때문에, 버스 사이클의 종료를 가리키는 BSDCNB+신호가 수신되지 않으면, 그때 멀티바이브레이터(126)에 의해 설정된 기간후에, BITMOT-신호가 플립플롭(127)의 D입력에 수신된 BSDCNN+ 신호의 클럭킹을 통해 플립플롭(127)의 Q 바아출력에서 발생된다. 이때 주의할 점은 BSDCNN+신호는 버스 사이클이 여전히 진행중에 있다는 것이다. BTIMOT- 신호는 드라이버(108)를 통해 NAK 신호(BSNAKR-)를 발생시키게 플립플롭(120)상에서 발생된다 한편, BSDCNB+신호가 멀티바이브레이터(126)에 의해 설정된 기간의 종료 이전에 끝나면, 멀티바이브레이터(126)의 타이밍은 끝나고 플립플롭(127)은 신호 BTIMOT-를 발생시키지 않게 된다.
제13도의 중앙의 프로세서 논리가 NAK 또는 ACK 신호를 발생시키지만, WAIT 신호는 중앙의 프로세서 논리에 의해 그렇게 발생되지 않는다. 이런 이유는 중앙의 프로세서가 항시 최저우선순위이므로 이것이 WAIT신호를 발생시킨다면 서어비스를 위해 중앙의 프로세서로 그들의 요구를 발생시키는 기타 디바이스들은 예를들어 고우선순위 디바이스가 마스터에서 이에 대해 중앙의 프로세서가 WAIT 신호에 따라 응답했을 경우 버스상에서 행업을 경험할 수 있기 때문이다. 따라서 고우선순위 디바이스가 최저우선순위 디바이스 즉, 중앙의 프로세서를 기다리기 때문에 기타의 디바이스들은 버스를 사용하는 것으로부터 디스에이블될 것이다.
제13도에 관한 위의 설명은 보다 빠른 중앙의 프로세서에 의해 요구된 정보 즉, 단일 또는 이중 호출(메모리 판독)요구를 이용하여 슬레이브로서의 중앙의 프로세서가 마스터로서의 메모리에 반응하는 것에 관련된 동작에 관한 것이다. 이제 제13(a)도를 참조하면서, 중앙의 프로세서의 동작을 메모리에 의해 버스상에 놓인 데이타가 어떻게 중앙의 프로세서에 의해 버퍼되느냐 그리고 중앙의 프로세서가 메모리에게 단일 또는 이중 호출 요구를 행할 것을 결정하는 기초에 관하여 설명할 것이다. 양호한 실시예에 있어서, 중앙의 프로세는 1개의 메모리를 가지고 메모리로부터 단일 워어드를 원하거나 또는 메모리로부터 2개의 연속적인 워어드 전달을 요구하는(즉, 단일 또는 이중 호출 요구를 행하는)요구 신호를 판독할 수가 있다. 더우기, 양호한 실시예에서, 중앙의 프로세서는 동시에 걸려있는 1개의 메모리 제어기에 지향된 단일 호출 요구 및 상이한 메모리 제어기에 지향된 이중 호출 요구를 가질 수 있다.
단일 및 이중 호출 요구 어드레스 메모리 위치점들이 동일한 메모리 제어기 내에 내포되어 있다면, 제2의 요구는 제12도와 관련된 논리를 설명할 때 위에서 살펴본 바와 같은 메모리 제어기에 의해 제거될 것이다. 메모리 제어기는 이것이 여전히 제1의 요구를 서어비스 하는데 비지일 경우 WAIT 신호를 발생하여 요구를 제거시킬 것이다.
이중 호출 동작을 요구할때, 중앙의 프로세서는 이중 호출신호(BSDBPL-는 2진수 제로임)를 발생한다. 메모리로부터 나은 제1의 워어드의 복귀와 관련된 제2의 반쪽 버스 사이클 동안, 메모리 제어기는 또다른 워어드가 뒤따를 것임을 기리키는 2진수 제로로서, 이중 호출 신호 BSDBPL-를 제이송한다. 메모리로부터 나온 제2의 워어드의 복귀와 관련된 제2의 반쪽 버스 사이클 동안, 메모리는 신호 BSDBPL-를 재이송하지 않기 때문에 이것이 송출될 데이타의 최종 워어드임을 가리킨다. 단일 호출 요구에 반응하여 메모리부터 나온 단일 워어드의 복귀와 관련된 제2의 반쪽 버스 사이클동안, 메모리 제어기는 신호 BSDBPL-를 재이송하지 않음에 따라 호출만 실행되고, 다른 제2의 반쪽 버스 사이클의 뒤따르지 않음을 나타낸다.
이제 제13(a)도를 살펴보면, 이중 호출 데이타는 항시 P1 및 P2 레지스터 즉, 소자(152)(153)의 중앙의 프로세서에 저장되는 반면, 단일 호일 데이타는 DT 레지스터 즉, 소자(151)에 저장된다. 단일의 중앙의 프로세서가 동시에 미해결인 이중 호출 및 단일 호출 요구를 가질 수도 있기 때문에, 중앙의 프로세서는 요구시 에 제6도에 도시한 기능 코우드 피일드내에 요구를 설정한다. 단일 호출 요구에는 00의 기능코우드가 부여되고, 한편, 이중 호출 요구에는 20의 기능코우드, 베이스 16이 부여된다. 중앙의 프로세서 호출 요구를 행하는 동안, 버스 데이타 라인 신호들 BSDT10-내지 BSDT15-가 태그(tag)를 구성한다. 메모리 응답사이클 동안, 어드레스 라인신호 BSAD18-내지 BSAD12-는 제5도에 도시한 기능 코우드 피일드의 메모리에 의해 반향된 태그를 구성한다.
이제 제13(a)도에 도시한 전형적인 중앙의 프로세서 버스 결합논리를 살펴보면, 요구된 데이타는 소자(150)에 포함된 수신기들에 의해 버스로 부터 수신된다. 1개의 워어드 데이타를 구성하는 신호 BSDT00+ 내지 BSDT15+는 각기 DT 레지스터(151), P1레지스터(152) 및 P2 레지스터(153)의 데이타 입력들에 연결되어 있다.
레지스터(151)(152)(153)는 각기 부품번호 SN74S374로 텍사스인스트루먼츠사에서 제작되는 유형 2개의 집적회로로 구성되고, 8개의 에지 트리거 D형 플립플롭을 포함한다. 데이타는 2진수 제로 상태에서 2진수 1상태로의 클럭신호의 변위에 의해 이들 레지스터 클럭킹된다. 단일 호출 요구에 반수하여 제2의 반쪽 버스사이클동안, 제13도의 소자(110)로 부터 나온 신호 MYSHRD+ 는 2진수 제로에서 2진수 1상태로 변위할 것이고 메모리로부터 나온 워어드를 DT 레지스터(151)로 클럭킹시킬 것이다. 이중 호출 요구에 응답하여 처음 제2의 반쪽 버스 사이클동안, 신호 MYSH P1은 데이타를 P1 레지스터(152)로 클럭시킨다. 이중 호출 요구에 응답하여 제2의 반쪽 버스 사이클 동안, 신호 MYSHPE+는 데이타를 P2 레지스터(153)로 클럭킹시킨다. 신호 MYSHPl+ 및 MYSHPE+는 항시 이중 호출 요구에 응답하여 제1의 워어드의 데이타는 P1 레지스터(152)로 로드될 것이고, 제2의 워어드의 데이타는 메모리 제어기에 존재할 경우, P2 레지스터(153)로 로드될 것이다. 로드 되자마자, 레지스터(151)(152)(153)에 내포된 데이타는 선택적으로 각 레지스터들의 출력 제어에서 의 2진수 제로 신호의 발생에 의해 즉, 2진수 제로 상태로 진행하는 신호 ENDTBI-, ENPIBI- 및 ENP2 Bl-에 의해 16개의 신호 BIXX10+ 내지 BIXXIF로 구성된 중앙의 프로세서 내장 버스(154)로 게이팅된다.
2개의 J-K형 플립플롭 즉, 소자(31)(32)는 이중 호출 동작 동안에 메모리 제어기에 의해 복귀되는 제2의 반쪽 버스 사이클 신호들을 추적한다. 소자(31)(32)는 부품번호가 SN74S112인 텍사스인스트루먼츠사에서 제작된 유형의 리세트와 클리어를 지닌 J-K 네거티브에지트리거 플립플롭이다 P요구 A플립플롭(31) 및 P요구 B 플립플롭(32)은 NAND 게이트(27)로부터 나온 신호 MYPASK-에 의해 세트되고 제2의 반쪽 버스 사이클의 제13도의 소자(110)로부터 나온 신호 MYSHRP-에 따라 중앙의 프로세서에 의해 확인되었을때 이 버스 사이클을 샘플링 시킨다. NAND 게이트(27)는 제10도의 사용자 플립플롭(15)의 출력인 신호 MYASKK+가 2진수 1의 상태에 있어 중앙의 프로세서가 버스를 요구하고 있음을 가리킬 때 부분적으로 인에이블된다. 더우기 NAND 게이트(27)는 레지시터 P1 및 P2가 비어 있을 경우 이중 호출 판독이 이루어져야 함을 가리키는 2진수 1인 신호 CRDBPL+에 의해 인에이블된다.
NAND 게이트(27)는 2진수 1인 중앙처리장치 타이밍 신호 MLRVLD+에 의해 여전히 인에이블 된다. 2개의 제2의 반쪽 버스 사이클들이 2진수 1인 신호 BSDBPL+에 의해 표시되어 있는 것 갈이 수신된다면, 플립플롭(31)은 처음 제2의 반쪽 버스 사이클이 수신된 후에 리세트되고 또한 플립플롭(32)은 두번째의 제2의 버스 사이클이 수신된 후 리세트된다. 제1의 워어드만이 메모리 제어기에 존재하는 이중 호출 요구의 경우와 같이 단 1개의 제2의 반쪽 버스 사이클이 수신될 경우, 플립플롭(32)만 리세트된다 플립플롭(31)(32)은 양자가 버스 클리어신호(BSMCLR-는 2진수 제로임) 또는 마스터클리어 등과 같은 예의 상태들 또는 마스터 클리어 등과 같은 버스 타임 예의 상태들 또는 NOR 게이트(30)를 경유한 신호(TCSL31-는 2진수 제로임)에 의한 버스 타임 아웃의 발생에 의해 리세트된다.
기타 2개의 플립플롭인 소자(155)(156)는 중앙의 프로세서가 P1 및 P2 레지스터(152)(153)로부터 나온 데이타를 사용하는 경우에 작동한다. P1 사용 플립플롭은 중앙의 프로세서가 제1의 워어드를 사용할때 리세트 되는바, 달리말해 P1 사용 레지스터(152) 및 P2 사용 레지스터에 내포된 워어드는 중앙의 프로세서가 제2의 워어드 즉, P2 레지스터(153)에 내포된 워어드를 사용할때 리세트된다.
플립플롭(155)(156)은 양자가 NAND 게이트(27)로 부터 나온 신호 MYPASK-에 의해 세트된다. 따라서 2진수 제로인 신호 MYPASK-는 레지스터 P1, P2가 채워지고 있음을 가리키게 플립플롭(155)(156)을 세트시키고 P1, P2의 내용이 아직 사용되고 있지 않음을 가리키게 플립플롭(155)(156)을 세트시킨다. 플립플롭(155)(156)은 정화상태가 일어났을때(예를들어, 중앙의 프로세서 명령카운터가 브랜치 명령, 인터럽트 또는 트랩 상태에 응답하여 로드될 때) 2진수 제로인 신호 PRTAKR-에 의해 리세트되어 지정의 P1 및 P2가 사용된다. 또한 P1 사용 플립플롭은 신호 PRTAKT+에 의해 리세트 되는바, 이 신호는 중앙의 프로세서가 그 접지된 데이타 입력에서의 2진수 제로를 그 출력으로 클럭킹시키면서 처리 워드를 사용하고 있음을 가리킨다. 또한 P2 플립플롭(156)도 그 데이타 입력에서 신호 PRTACK+를 그 출력으로 클럭킹시키는 신호 PRTAKT+에 의해 리세트 된다. 처리의 제1의 워어드가 사용되기 이전에, PRTAKC+는 2진수 1임에 따라 이 처리의 제1의 워어드가 판독되었을 땐 플립플롭(155)은 리세트 된다. PRTAKC+ 는 처리의 제1의 워어드가 사용된 후에 2진수 제로임에 따라, 처리의 제2의 워어드가 사용되었을 플립플롭(156)을 리세트되게 한다.
이중 호출 동작은 P1 또는 P2 레지스터(152)(153)가 둘다 비어 있고 중앙의 프로세서가 현재 미해결의 또 다른 이중 호출 요구를 지니고 있지 않을 경우에만 중앙의 프로세서의 의해 요구된다.
P2 레지스터 엠프리(empty) 신호 PRMPTY-인 NAND 게이트(34)에 의한 출력은 중앙의 프로세서가 플립플롭(31)(32)(155)(156)의 상태에 기초한 이중 호출 요구를 행해야 하느냐를 결정하기 위해 사용된다. P2사용 플립플롭(156)의 출력인 신호 PRTAKD+가 P2 레지스터(156)가 비어 있음을 나타내는 2진수 제로이거 나 또는 플립플롭(31)의 Q 바아 출력인 신호 PRTAKD+가 최종 이중 호출 요구에 응답하여 1개의 워어드만 수신되었음을 가리키는 2진수 제로이면, 그때 OR 게이트(33)의 출력은 NAND 게이트(34)를 부분적으로 인에이블시키는 2진수 1이 될 것이다. 더우기 NAND 게이트(34)는 P1 사용 플립플롭(155)의 Q 바아 출력인 신호 PRTAKC- 가 P1 레지스터(152)가 비어 있음(사용 되었음)을 나타내는 2진수 1이면 인에이블된다. 더우기 NAND 게이트(34)는, 플립플롭(32)은 Q 바아 출력신 신호 PRASKB-가 이중 호출 동작에 응답하여 수신될 것으로 예상된 모든 데이타가 수신되었음을 가리키는 2진수 1이면, 인에블된다. 따라서, NAND 게이트(34)는 충분히 인에이블되고, 신호 PRMPTY-는 P1, P2 레지스터(152)(153)의 데이타가 사용되었고 P1 및 P2 레지스터들을 채우는 과정에서 미해결의 이중 호출 요구가 아무것도 없을 때마다 즉, 호출, 입 출력 또는 기록동작이 없을 때마다 2진수 제로가 될 것이다. AND 게이트 제로가 될 것이다. AND 게이트(38)가 충분히 인에이블 되었을 때, 라인(181)상의 신호 MYASKD+는 2진수 1이 되고 클럭킹신호 MCLOCK+와 관련하여 볼때 중앙의 프로세서가 버스 사용을 희망하고 있는 것을 나타내어 제10도의 사용자 플립플롭(15)을 세트시키는 결과를 가져온다.
양호한 실시예에서, 중앙의 프로세서에 의한 하나의 명령을 실행하는 동안에, 중앙의 프로세서는 메모리의 2개의 워어드를 미리 호출하여 그들을 레지스터 P1, P2에 저장한다. 이렇게 메모리로부터 명령 워어드를 미리 호출시키는 것 즉, 처리는 레지스터 P1, P2가 비어 있을 경우에만 일어난다. 예를들어, 중앙의 프로세서가 현재 위치점 1000에 위치한 명령를 실행하고 있으면, 중앙의 프로세서가 메모리로부터 그전에 이송된 위치점 1001 및 1002를 요구하는 이중 호출 요구를 할 것이다. 그러나, 중앙의 프로세서가 브랜치 명령을 실행하면, 메모리로부터 아직 도착하지 않을 것을 포함한 P2 및 레지스터(152)(153)의 처리도 포함하여 무시되어야 한다. 위의 예를 계속하면서, 위치점 1000의 실행동안에 위치점 1001 및 1002가 미리 호출되고 위치점 1001의 명령이 위치점 1007에 대한 브랜치명령을 내포한다면, 그후 P1 레지스터(152)에 임시 저장되었던 위치점 1001로 부터의 브랜치 명령이 실행될때, P2 레지스터(153)에 임시 저장된 위치점 1002의 내용은 무시하고 브랜치 명령이 옮겨질 메모리 위치점 1007의 내용에 대해 이루어진 새로운 이중 호출 요구는 위치점 1008을 제시한다.
NAND 게이트(39)에와 입력들중 하나인 신호 PURGEF+는 이전에 요구된 모든 워어드들이 도착할 때까지 2진수 1에 남아 있음으로써 어떠한 2중 호출 요구도 기억한다. 플립플롭(32)의 Q 바아 출력인 신호 PRASKB-가 이중 호출 동작에 반응하여 수신될 것으로 예상된 모든 데이타가 도착했음을 가리키는 2진수 1이고 신호 CRDBPL+가 레지스터 P1, P2가 비어 있을 경우 이중 호출 동작이 이루어져야 함을 어리키는 2진수 1이면, 이때 2진수 1인 신호 PURGEF+와 관련하여, NAND 게이트(39)는 충분히 인에이블될 것이고, 라인(180)상의 신호 MYASKS-는 2진수 제로가 됨에 따라 제10도의 사용자 플립플롭(15)이 세트되어 버스 사이클을 요구하는 중앙 프로세서가 메모리 호출 동작을 행하게 할 것이다. 제10도의 사용자 플립플롭(15)은 정상상태에서 중앙의 프로세서가 P2 레지스터(153)로부터 처리의 제2의 워어드를 사용할 때의 경우와 같이 신호 MCLOCK+ 및 클럭킹 신호 MYASKD+에 의해 세트된다. 신호 MYASKS-는, 이중 호출 요구가 이루어져 있고, 완료되지 않은 후에 정화가 일어날 때의 경우, 즉, P1 및 P2 레지스터(152)(153)가 채우는 과정 중에 있는 동안 브랜치 명령이 실행되는 경우를 대상으로 한 사용자 플립플롭(15)을 세트할 목적으로 사용된다.
단일의 호출들은 적어도 2개의 중앙의 프로세서 단계를 요구한다. 첫번째 중앙의 프로세서 단계는 메모리 의 단일 호출 판독 요구를 발생하여 메모리(또는 입 출력장치)가 단일 호출 요구를 받아들일때 인디케이터가 세트되게 한다. 첫번째 단계이후 중앙의 프로세서 단계들중 임의의 갯수일 수 있는 두번째 중앙의 프로세서 단계는 DT 레지스터(151)로 나온 데이타를 중앙의 프로세서 내장 버스(154)로 게이팅 되게 한다. 단일 호출 요구에 반응하는 메모리와 관련된 제2의 반쪽 버스 사이클이 아직 도착하지 않았다면, 이미 설정된 인디케이터는 제13도의 소자(110)로부터 나온 신호 MYSHRD+가 인디케이터를 클리어 시킬때까지 프로세서 클럭 을 정지시킨다.
상술한 제13(a)도의 설명으로 이중 호출 동작과 관련된 시스템논리의 설명을 끝냈다. 이제 제14도의 타이밍 구성도를 상술한 중앙의 프로세서, 버스 및 메모리 제어기의 제어신호를 개설적으로 설명할 것이다. 제14도 의 상단에 있는 일단의 4개의 신호들은 이중 호출 요구를 행하는 중앙의 프로세서의 신호들이다. 이들 신호들은 제10도, 제13도, 제13(a)도에 도시한 논리에 의해 발생된다.
제14도의 중앙에 있는 신호들은 중앙의 프로세서 논리를 메모리 논리로 연결시키는 데이타 처리 시스템의 데이타 버스와 관련된 것들이다. 제14도의 하부에 있는 8개의 신호들은 제11도, 제11(a)도 및 제12도에 도시한 논리에 의해 발생된 메모리 제어기의 신호들을 나타낸다. 더우기 제14도는 수직 방향에서 3개의 칼럼으로 분할된다. 최좌축의 칼럼은 메모리의 2중 호출요구를 행하는 중앙 프로세서와 관련된 일단의 신호들을 나타낸다. 제14도의 중앙의 칼럼은 메모리 제어기가 중앙의 프로세서에게 이중 호출 요구에게 요구되었던 제1의 워어드를 되돌려 보내는 최초 제2의 반쪽 버스 사이클과 관련된 신호들을 나타낸다. 제14도의 우측 칼럼은 둘째번 의 제2의 반쪽 버스 사이클 동안 중앙의 프로세서에게 이중 호출 요구에서 요구되었던 제2의 워어드를 되돌리려 보내는 메모리 제어기와 관련된 신호들을 나타낸다.
이중 호출 동작은 제14도에서 마스터로서의 중앙의 프로세서가 슬레이브로서의 2워어드의 데이타를 요구함 을 가리키는 시간 14-A에서 2진수 1상태로 진행하는 CPU 신호 MYASKK+에 의해 시작한다. CPU 신호 MYASKK+가 2진수 1이될때, 제10도의 중앙프로세서 우선순위 회로망 논리는 버스 신호 BSREQT-가 2진수 제로 상태로 되게하고, 기타 고우선순위 디바이스가 어느 것도 버스 사이클을 요구하고 있지 않다면, CPU신호 MYDCNN+가 2진수 1상태로 되게 하면서 버스사 중앙의 프로세서에 허용되게 할 것이다. 중앙의 프로세서가 버스에 허용되자 마자, 중앙의 프로세서는 그 버스상에 이중 호출 동작으로 호출될 제1의 워어드의 어드레스, 중앙의 채널 번호, 그리고 이중 호출 메모리 판독 동작임을 가리키는 기타 신호와 함께 이중 호출 요구임을 가리키는 기능코우드를 설정한다. 제11도, 제11(a)도, 제12도의 메모리 제어기 논리는 버스상의 신호들이 안정되게 지연시킨 후 버스상의 어드레스와 메모리 제어기에 의해 제어되는 어드레스를 비교하고, 이중 호출 ,요구의 제1의 워어드가 제어기내에 내포되어 있다면 다음 사용자의 버스의 제어를 포기하는 중앙의 프로세서 논리로 돌아가는 ACK 신호를 발생시킨다. 또한 메모리 제어기에 의해 발생되는 ACK 신호는, 이중 호출 요구에 의해 번지 지정된 제2의 워어드가 제어기 내에 존재하는가 그리고 그렇다면 제11(a)도의 이중 워어드 히스토리 플립플롭(80)이 실행될 이중 워어드 동작을 표시하도록 설정되고 메모리가 본질적으로 병행한(겹친)방식으로 독립된 메모리 모듈들로부터 2워어드의 정보를 검색하도록 진행하여, 메모리 제어기 검사를 행하게 된다.
제1워어드의 데이타가 메모리 제어기에서 이용가능하게 될때. 메모리 제어기 신호 DCNNGO-는 제11도의 메모리 우선순위 회로망 논리로 하여금 버스신호 BSREQT-를 2진수 제로 상태로 하는 것에 의해 버스를 확보하도록 하는 시간 14-B에서 2진수 1이 되어, 제1의 응답사이클 즉, 메모리를 마스터로 하고 CPU를 슬레이브로하여 최초 제2의 반쪽 버스 사이클을 개시하도록 한다. 버스가 사용되지 않고 메모리가 버스를 요구하는 최고 우선순위 디바이스라고 하면, 버스는 메모리 제어기에 대하여 사용이 허용되고 메모리 제어기 신호 MYDCHN+는 2진수 1이 될 것이다. 버스를 메모리 제어기로 허용함으로써 메모리 제어기 논리가 버스 데이타 라인들상으로 이중 호출 요구에서 요구된 제1의 워어드를 게이팅시키는 결과를 가져온다. 이중 호출 요구 기능 코우드와 함께 이중 호출 요구를 했던 중앙프로세서의 채널 번호는 버스 어드레스 라인들상으로 게이팅되고, 이것이 이중 호출 요구의 제1의 응답 사이클임을 가리키는 기타 신호들은 기타 버스 라인들 위로 게이팅 된다.
중앙의 프로세서 논리는 버스상의 신호들이 안정되게 지연시킨 후 버스 신호들을 샘플링하고 버스 어드레스 라인들상의 중앙 프로세서 채널 번호가 특정 중앙 프로세서의 채널 번호이면, 최초 제3도 반쪽 버스 사이클을 확인하고, 버스 데이타 라인들상의 메모리 워어드를 P1 레지스터(152)로 게이트시킨다. 제1의 응답사이클의 중앙프로세서에 의한 확인의 결과 메모리 제어기 논리는 버스를 해방하여 이중 워어드 히스토리 플립플롭(80)을 리세트시키는 결과를 가져온다. 이에 따라, 제1의 메모리 응답사이클 즉1 최초 제2의 반쪽 버스 사이클이 완료된다.
메모리 제어기에 이용 가능한 데이타의 제2의 워어드에 따라, 마스터로서의 메모리 제어기는 버스에 대한 확보를 계속하여 시간 14-C에서 허용되었을때, 데이타와 제2의 워어드를 버스상으로 게이팅시킨다. 중앙의 그 프로세서는 둘째번의 제2의 반쪽 버스 사이클을 확인하고 메모리의 제2의 워어드를 P2 레지스터(153)로 게이팅 시킴에 따라 이중 호출 동작을 완료한다. 버스가 메모리 제어기로 허용되는 둘째번에 2진수 1상태로 진행하는 메모리 제어기 신호 MYDCNN+는 메모리 제어기 신호 STREQR+가 2진수 1상태로 되게 하고 이 2진수 1상태는 메모리 제어기가 더 이상 버스를 요구하지 않도록 메모리 요구 플립플롭(17M)을 리세트시키는 결과를 가져온다.
제14도를 간단히 하기 위해 CPU 신호 BSDCND-는 CPU가 마스터일 때, 이중 호출 요구 사이클 동안 2진수 1상태로 진행하는 버스 신호 BSDCNN-에 응답하여 2진수 1상태로 진행하는 것으로 도시되지 않았음을 유의해야 한다. 마찬가지로, 메모리 신호 BSDCND-는 메모리가 마스터일때 제1 및 제2의 응답사이클 동안 2진수 1상태로 되는 버스 신호 BSDCNN-에 응답하여 2진수 1상태로 되는 것으로 도시하지 않았다. 제어기 신호 BSDCNN-는 소자(25)(25M)의 지연이 각기 있는 제어기가 마스터이냐 또는 슬레이브이냐에 따라 버스신호 BSDCNN-에 반응할 것이지만, 제14도와 목적상 슬레이브 신호 BSDCND-만 관련이 있기 때문에 이것을 응답하는 상태로 도시하였음을 제10도, 11도에 나타나있다.
[소프트웨어 분석기의 세부사항]
이제 보다 상세하게 설명된 제1도를 살펴보면, CPU 버스사용 검출논리(301)는 기본적으로 CPU가 버스 마스터로 공통버스(200)를 갖고 있는 시점을 결정한다. CPU 버스 사용 검출 논리(301)는 우선순위 회로망 라인(341)과 관련된 9개의 라인들(제10도 및 11도의 신호 BSAUOK+ 내지 BSIUOK+) 및 버스요구, 확인(ACK), 네거티브확인(NAK), 대기 버스 마스터 클리어 그리고 데이타 사이클 현재(신호 BSREQT+,BSACKR+, BSNAKR+, +BSWAIT+, BSMCLR+및 BSDCNN+ 제10, 11도 참조)와 관련된 제어 라인(342)을 모니터함으로써 전술한 기능을 행할 수 있다. 레지스터 클럭킹 라인(339)상의 CPU 버스 사용검출 논리(301)의 출력은 공통 버스(200)로부터 다양한 신호들을 어드레스 레지스터(302), 데이타 레지스터(303)및 자동 어드레스 개발논리(304)로 대치시키는 것을 제어하는 데 사용된다.
CPU가 메모리 판독동작을 행한다면, CPU가 버스 마스터이고 공통버스(200)상의 메모리로부터 판독될 워어드의 어드레스를 제공할 때인 제1의 반쪽 버스 사이클동안, 어드레스 비트들은 어드레스 레지스터(302)로 또는 자동 어드레스 개발논리(304)로 래치시키게 될 것이다. CPU가 사용될 데이타의 워어드를 오피랜드로써 호출시키게 메모리로부터 워어드의 판독을 행하는 과정에 있다면, 버스 어드레스 라인(326)상의 공통버스(200)의 어드레스 비트들(제11(a)도의 신호 BSADOO-내지 BSAD22-)이 어드레스 레지스터(302)로 래치된다.
공통버스(200)로부터 나온 이들 동일한 어드레스 비트들은, CPU가 CPU내에서 실행될 소프트웨어 명령으로서 사용될 메모리의 하나 또는 그 이상의 워어드를 호출할 목적으로 메모리 판독을 개시할 과정에 있다면, 자동 어드레스 개발논리(304)로 래치된다. 이러한 유형의 판독은 제어라인(343)상의 공통버스로 부터 나온 제어정보를 검사하는 논리(304)에 의해 검출된다.
어드레스 레지스터(302) 및 자동 어드레스 개발논리(304)의 사용간의 차이는(304)가 어드레스들을 자동적으로 증분시킬 능력이 있어서 다수 워어드 처리 호출을 행하는 동안 메모리로부터 CPU로 다시 도착하는 데이타의 각각에 대해 정확한 어드레스가 전개될 수 있다. 양호한 실시예의 데이타 처리 시스템에서, 다수의 호출 동작은 처리(스프트웨어 명령들)로서 사용될 메모리의 워어드들을 판독하거 위해서만 실행되고 오퍼랜드 로서 사용될 메모리의 워어드를 판독하기 위해서는 실행되지 않는다. 더우기 양호한 실시예의 중앙 프로세서 큰 오퍼랜드 호출 및 처리 호출을 동시에 로드할 수 있는 능력이 있기 때문에 공통버스(200)로 부터 어드레스 비트들을 저장하기 위해 2개의 장소(302)(304)를 가질 필요성이 있다.
더우기, 전술한 두 유형의 요구들이 로드될 때 메모리로부터 CPU로 돌아온 데이타의 워어드들은 요구가 이루어졌던 순서로 반드시 CPU로 돌아가지는 않을 것이다.
데이타 레지스터(303)는 데이타의 16비트 워어드들이 CPU 및 공통버스(200)상의 기타 디바이스들 간에 상호 교환됨에 따라 버스 데이타 비트라인(333)상에 나타나는 데이타 비트들(신호 BSDT00-내지 BSDT15-)을 포획하는데 사용된다. 제1의 반쪽 버스 사이클 동안에는 CPU가 다른 디바이스로 데이타를 이송할 때 데이타가 이들 버스상에 나타나고, 제2의 반쪽 버스 사이클 동안에는 메모리로부터 판독 중에 일어나는 것과 같이 디바이스가 CPU로 데이타를 이송할 때 데이타가 이들 버스상에 나타난다. 또한 데이타 레지스터(303)는 공통 버스상의 디바이스가 CPU를 인터럽트하고 있을 때 데이타의 16비트를 포획하여 저장하기 위해 사용된다. 이 경우에, 데이타 레지스터(303)에 저장된 정보의 16비트는 CPU의 채널번호 및 인터럽트의 레벨을 가리킨다(제7도 참조).
그후 공통버스(200)로부터 소자(302)(303)(304)에 포획된 어드레스 및 데이타 비트들은 비교기(312)(313)(314)에서 상태 레지스터(315)에 저장된 관련있는 상태와 비교된다. 어드레스 비교기(314)는 오퍼랜드 어드레스 버스(315)상에 나타나는 어드레스 레지스터(302)에 저장된 어드레스가 상태 레지스터(315)의 상태 레지스터(A 내지 D)에 내포된 소프트웨어 분석기의 운용자가 특정하는 어드레스와 같거나 또는 더 크냐를 결정하는데 사용됐다. 어드레스 비교기(314)는 상태 버스(336)상에 나타나는 상태 레지스터(315)의 어드레스 비트들을 오퍼랜드 어드레스 버스(325)또는 처리 어드레스 버스(337)-이 처리 어드레스 버스는 처리 동작이 관여되어 있으면 자동 어드레스 개발논리(304)로부터 어드레스를 수신함-로부터 입력을 선택적으로 수신하는 어드레스 버스(338)상에 나타나는 어드레스 비트들과 비교한다. 어드레스 비교기(314)에 있어서 동등하고 보다 큰 출력들은 이들이 소프트웨어 분석자로 하여금 시작과 종료 어드레스 사이에 일어나는 상태들-이들 중의 하나는 상하레지스터들(315)의 하나에 저장되고, 그중 다른 것은 상태레지스터들(315)의 다른 것에 저장됨 을 모니터할 수 있게 해준다는 점에서 유용하다.
데이타 비교기(313)는 상태버스(336)위로 선택적으로 인에이블 되는 상태레지스터들(315)의 상태 A 내지 B에 특정된 데이타 비트 들이 데이타 버스(332)를 통해 가능한 데이타 레지스터(303)에 저장된 데이터 비트들과 동일하느냐를 시험하기 위해 사용된다.
데이타 비교기(303)는 추적제어기(316)에의 입력인 동일 출력만을 가지고 있지만 16비트 데이타 워어드의 각 비트가 2진수 1,2진수 가로 또는 주의불요 상태이냐를 시험할 수 있는 능력을 지니고 있다.
사이클 비교기(312)는 공통 버스상에 나타나는 버스 사이클의 유형이 정보가 추적램(319)에 기록될 수 있는 유형인가를 결정하게 사용된다. 추적할 것이 요망되는 관련이 있는 버스사이클들의 유형은, 상태 레지스터(315)의 상태 레지스터 A 내지 D에 특정되어 있는바, 이들 각각은 선택적으로 상태버스(336)로 인에이블 되며, 어드레스 레지스터(302)에 저장된 상태들과 데이타 레지스터(303)에 저장된 사이클 상태들로 부터 정보를 수신하는 어드레스 상태라인(323) 및 버스 사이클 유형 라인(330)을 통해 사이클 유형라인(327)상에 나타나는 사이클 유형에서 특정되는 신호에 따라 비교된다. 예를 들어, 사이클 비교기(312)는 공통버스상에 나타나는 버스사이클이 디바이스에 대한 입 출력 동작이냐 또는 메모리 동작, 메모리 기록동작, 메모리 오퍼랜드 호출(판독)동작, 메모리 처리 호출(판독)동작, 또는 CPU를 수반하는 주의불요(모든종류)버스 사이클의 존재여부를 결정하는데 사용된다.
비교기(312)(31(314)에의 A 입력은 소프트웨어 분석기의 운용자에게 관련이 있는 그런 상태들을 특정 사용자 공급 파라미터를 내포하는 상태 레지스터(315)로부터 인입된다. 상태 A 내지 D를 내포하는 상태 레지스터(315)는 어드레스를 특정하는 비트, 데이타, 데이타에 대한 주의 불요 비트, 그리고 소프트웨어 분석기의 운용자에게 관련된 버스 사이클 유형을 내포하는 4개의 64비트 레지스터이다. 이 정보는 상태 레지스터(315)의 상태 A 내지 D 각각에 대해 특정될 수 있다.
상태 레지스터 A 내지 D는 상이한 4개의 상태들을 특정하는데 사용될 수 있고, 이들 중 어느 한개의 발생은 공통버스(220)로 부터 나온 데이타 및 어드레스 비트들이 추적램(319)에 기록되게 하거나 상태 A 내지 D는 결합하여 사용자에게 관련이 있는 1개 또는 그 이상의 상태를 검출하게 할 것이다. 예를들어, 상태 레지스터 A는 공통버스상의 어드레스가 상태레지스터 A의 어드레스보다 더 크거나 또는 동등할 경우 추적이 발생될 것을 특정함으로써 시동 어드레스를 특정하는데 사용할 수 있고, 상태 레지스터 B는 데이타 버스위 어드레스가 상태 레지스터 B에서 발견되었던 것과 동일하거나 또는 더클 경우 추적이 일어나지 않음을 특정함으로써 어떤 종료 어드레스를 특정하는데 사용할 수 있다. 독립된 4개의 상태나 또는 4개 미만의 결합 상태를 이렇게 검사하는 것은 CPU와 관련된 버스 사이클의 공통 버스(220)상에서 발생할 때마다(즉, CPU가 버스 마스터이거나 슬레이브일 때마다)버스상의 정보가 파이프라인 형태의 상태 레지스터 A 내지 D에 대해 비교되기 때문에 가능하게 된다. 이 비교는 먼저 상태레지스터 A 의 상태, 그후 순서적으로 B,C,D 레지스터 상태에 대해 이루어진다. 상태 레지스터 A내지 D각각은 추적 제어기(316)내에서 2개의 제어 비트(추적비트와 인에이블비트)를 세트시킬 능력을 가지고 있다.
추적제어기(316)내에 있는 이들 2개의 스테이터스 비트들은 다음과 갈이 동작한다. 인에이블 비트는 세트(2진수 1과 동일)될수있거나 리세트(2진수 제로)될 수 있으며, 또한 상태 레지스터(315)에서 특정된 상태 A 내지 D에 의해 시험들 수 있다. 인에이블 비트가 세트되었을 때,(즉 2진수 1상태에서)상태 레지스터(315) 의 상태 A 내지 D에서 특정된 상태는 상태들이 어떻게 공통버스(200)로 부터 나온 정보의 스테이터스(즉, 어드레스, 데이타, 또는 사이클 유형)와 비교하느냐에 따라서 추적비트의 스테이터스를 변화시키게 인에이블된다. 예를 들어, 소프트웨어 분석기의 운용자는 인에이블 비트 및 추적비트를 세트시키거나, 인에이블 비트 및 추적 비트를 리세트시키고, 인에이블 비트를 세트시키며, 인에이블비트를 리세트시키고, 인에이블 비트가 세트되었을 경우 추적비트를 세트시키며, 또는 추적비트가 세트되었을 경우 추적비트를 리세트시킬 수 있도록 프로그램할 수 있다. 추적비트는 현재의 버스사이클과 관련된 정보가 추적램(319)에 기록될 것인가를 제어하는데 사용된다.
버스 사이클 중의 적절한 시점에 추적 비크가 세트된 경우, 라인(329)상의 추적제어기(316)로 부터 나온 신호는 추적램(319)내에 정보 보유를 마련하는 추적어드레스 카운터(317)의 증분작용을 제어한다. 추적 비트가 버스 사이클의 적당한 시점에 세트되어 있지 않다면, 추적어드레스 카운터는 증분되지 않아, 다음의 버스 사이클과 관련된 정보는 이전의 버스 사이클과 관련된 정보위에 기록됨에 따라 이전 버스 사이클과 관련된 정보를 파괴할 것이다.
이러한 추적어드레스 카운터(317)의 증분작용은 상태 C가 공통버스(200)로 부터 나온 정보와 비교된 후에 그리고 상태 D가 공통버스(200)로 부터 나온 정보와 비교된 후에 일어난다. 그러므로 상태 레지스터 C의 상태와의 비교를 끝낼무렵에 추적비트가 2진수 1이면, 추적어드레스 카운터가 증분되고, 이전에 추적램(319)에 기록되어 있는 현재의 버스 사이클로 부터 나온 정보는, 다음의 버스 사이클과 조합된 다음의 정보가 어떤 위치점 - 그 어드레스는 현재의 버스 사이클파 관련된 것보다 큰 위치점-으로 기록됨으로써 보존될 것이다.
상태 C의 상태들과의 비교를 완료한 후에 추적 비트를 검사함으로써, 소프트웨어 분석기는 상태 A,B,C가 토글할 수 있어 상태 C가 비교된 후 추적비트가 2진수 1이 아니면 아무것도 추적램(319)으로 기록되지 않게 끔 프로그램할 수 있다.
예를들어, 메모리 어드레스(100) 및(500)사이에 일어나는 모든 소프트웨어 명령의 실행을 추적할 것이 요망된다면, 상태 레지스터 A,B,C 는 다음과 같이 프로그램할 수 있는바, 즉 상태 레지스터 A는 처리 호출 버스사이클이면 그리고 메모리 어드레스가 100과 동일하거나 또는 더 크면 인에이블 및 추적비트들을 둘다 턴온 시킬것이고, 상태 레지스터 B는 메모리 어드레스가 500보다 더 크면 인에이블 및 추적 비트를 변화시키지 않을 것이고, 그리고 상태 레지스터 D는 비조건적으로 인에이블 및 추적 비트들을 리세트 시키게 프로그램될 수 있다. 다음에 소프트웨어 명령의 워어드가 위치점(200)으로 부터 호출된다면, 상태 레지스터 A 는 인에이블 및 추적비트들을 턴온시킬 것이고, 상태 레지스터 B는 어드레스가 500 미만이기 때문에 인에이블 또는 추적 비트를 리세트시키지 않을 것이며, 상태 레지스터C는 인에이블 또는 추적 비트에서 아무런 변화를 하지 않고 추적비트가 상태 레지스터C 비교가 끝날무렵에 세트되기 때문에 데이타는 추적 어드레스 카운터(317)가 중분될 것이라는 연유로 추적램(319에 보유될 것이고, 그리고 상태 레지스터D는 인에이블 및 추적비트들이 상태 레지스터A의 상태들과의 비교에 의해 세트되는 경우에만 다음의 버스 사이클이 추적될 수 있도록 인에이블 및 추적비트를 비조건적으로 리세트시킬 것이다.
상태C,D 의 시험간에 추적비트를 시험함으로써 소프트웨어 실행이 어떤 특정화된 사상의 발생까지 그리고 그를 포함하여 추적될 수 있게끔 소프트웨어 분석기가 프로그램될 수 있다. 예를 들어, 특정화된 위치점이 파괴되게 하고 있는 것을 발견하기를 원한다면, 소프트웨어 분석기는 제어논리(310)에 의해 모든 버스 사이클들을 추적할 수 있도록 프로그램할 수 있고, 상태 레지스터D는 파괴되고 있었던 특정 위치점으로의 기록의 발생이 있자마자 추적비트를 리세트시킬 수 있도록 프로그램할 수 있다. 그러므로, 어떤 CPU와 관련된 각각의, 공통 버스 사이클이 추적될 수 있을 것이다. 레지스터 A,B,C는 사용되지 않게 되므로 인에이블 및 추적 비트들을 수정하지 않을 것이다. 상태 레지스터D는 특정화된 위치점으로의 기록의 발생이 있자마자 인에이블 및 추적비트들을 리세트시킬 것이다. 이런식으로, 실행될 명령들을 포함한 처리 호출들이 있게 될 뿐만 아니라 그들 명령들과 관련된 오퍼랜드 데이타는 특정화된 위치점의 내용들을 수정하는 동작을 행하는 명령까지 그리고 그를 포함하면서 우측으로 추적할 것이다.
또한 특정화된 위치점으로 기록될 데이타는, 데이타가 특정화된 위치점으로 저장된 버스 사이클 동안 상태 C가 시험된 후 여전히 추적비트가 세트될 것이기 때문에 추적될 것이다.
상술하였듯이, 공통버스(200)로부터 나온 정보는 CPU로 또는 그로부터의 이송과 관련된 각각의 버스 사이클동안 램(319)으로 기록된다. 이러한 1개의 버스사이클로부터 나온 정보는 추적램(319)의 1개의 48비트 워어드상에 기록된다. 48비트 워어드상에 기록된 정보는 어드레스 상태라인(323)으로부터 나온 어드레스 들로 구성되는바, 이들 상태는 어드레스가 판독 또는 기록동작, 메모리 또는 입 출력 동작과 관련되어 있느냐, 그리고 그것이 바이트 또는 워어드 어드레스 : 어드레스 버스(388)로부터 나온 어드레스 비트 : 데이터 버스(332)로부터 나온 데이타 비트 : 버스 사이클이 제2의 반쪽 사이클 또는 버스 사이클 유형 라인(330)으로부터 나온 이중 호출 동작이냐를 가리키는 버스 사이클의 유형 : 그리고 CPU퍼엄웨어 인디케이터 라인(328)로부터 버스 사이클이 발생할때 CPU퍼엄웨어 위치점이 액세스하고 있었음을 가리키는 4비트이냐를 가리킨다.
상술하였듯이, CPU와 관련된 각각의 버스 사이클동안, 이러한 48비트의 정보는 상태 C가 끝날 무렵 비교가 발생하기 이전에 추적램(319)으로 기록된다. 상태 레지스터 C가 비교된 후, 추적비트가 세트되면, 추적 어드레스 카운터(317)는 1카운트 증가됨에 따라, 다음의 버스 사이클과 관련된 48비트의 정보가 다음의 위치점으로 기록되어 현재(이전의) 버스 사이클과 관련된 48비트정도의 정보를 겹쳐서 파괴시키지 않게 할 것이다.
양호한 실시예의 데이타 처리 시스템에 있어서 공통버스(200)상에서 일어나는 몇몇 이송이 있고 이들인 단순히 공통 버스상의 제어라인을 감시하는 소프트웨어 분석기에 의해 명백히 해석될 수 없기 때문에 소프트웨어 분석기는 데이타 처리 시스템의 CPU에 직접 결선을 가지고있다 이러한 결선은 소프트웨어 분석기로 하여금 퍼엄웨어 어드레스 버스에 액세스할 수 있게 해주는 CPU내의 테스트 코넥터에 이루어져 있다. CPU 퍼엄웨어 어드레스 라인(321)은 이러한 테스트 코넥터에 연결되어 있어 CPU퍼엄웨어 어드레스 디코더(320)에 CPU퍼엄웨어 어드레스가 이용 가능되게 한다. CPU 퍼엄웨어 어드레스 디코더(320)는 역시 추적램(319)의 48비트 워어드에 저장된 공통버스로부터 직접 나온 기타정보와 함께 사용된 CPU 퍼엄웨어 인디케이터 라인(328)상의 4비트를 그 출력에 제공 할 수 있도록 미리 코우드화 되어 있는 룩업 테이블을 내포하고 있어, 이러한 모호한 버스 사이클들을 분해한다. 이에 따라 소프트웨어 분석기는 CPU에서의 소프트웨어의 실행을 명백하게 분석하게 된다. 이러한 모호한 상태들 중의 하나의 예는 CPU가 주 메모리 운동 명령을 실행할때 일어난다. CPU 퍼엄웨어는 메모리로부터 나온 소프트웨어의 호출처리 워어드와 단지 정상적으로 관련된 논리를 이용하고, 호출 오퍼랜드를 위해 정상적으로 사용된 논리를 사용하지 않는다. 그러므로, 소프트웨어 분석기가 공통 버스를 감시하는 것으로부터 이용 가능한 정보에 단지 의존하면, 소프트웨어 분석기는 실제적으로 일어나고 있는 주 메모리 이동 명령 대신에 처리가 메모리로부터 판독되고 있었음을 확인할 것이다. 이러한 모호한 상태들이 공통 버스상에서 일어나지 않았다면, 양호한 실시예에서 소프트웨어 분석기는 소프트웨어를 실행하는 데이타 처리 시스템의 CPU에 대하여 직접 결선을 요구하지 않을 것이다.
추적 램(319)에 저장된 버스 사이클 정보의 분석은 프롬(308) 및 램(309)에 저장된 분석기 프로그램의 제어하에서 동작하는 마이크로프로세서(306)의 제어하에 이루어진다. 마이크로프로세서(306) 입 출력제어기(307), 프롬(308), 램(309)은 각기 다양한 소자들간의 어드레스 및 데이타 정보교환을 제공하는 마이크로프로세서 어드레스 버스(334) 및 마이크로프로세서 데이타 버스(335)에 연결되어 있다. 또한 추적 어드레스 카운터(317)는 마이크로프로세서 어드레스 버스(334)에 연결되어 있다. 또한 제어기(310), 스테이터스 레지스터(311), 상태 레지스터(condition register)(315) 및 멀티플렉서(318)도 마이크로프로세서 데이타 버스(335)에 연결된다. 제어기(310)는 소프트웨어 분석기의 초기화를 제어한다. 스테이터스 레지스터(311)는 소프트웨어 분석기의 스테이터스를 홀드시키고, 추적이 인에이블 되어 있는지, 추적이 트리거되어 있는지, 추적메모리(램)이 차있는지, CPU가 공통버스를 사용하고 있는지 등을 가리킨다. 멀티플렉서(318)는 추적 램(319)에 저장된 48비트 워어드의 버스 사이클 정보가 마이크로프로세서 데이타 버스(335)로 다중화되어 마이크로프로세서(306)가 분석하게끔하는 8대 1멀티플렉서이다. 또한 멀티플렉서(318)에의 입력으로서 추적 어드레스 카운터(317)가 연결되어 있다. 마이크로프로세서(306)는 이것이 추적램(319)에 저장된 정보를 분석할 수 있고, 다양한 버스 사이클들이 공통버스(200) 상에서 발생하는 CPU에서 실행되고 있었던 소프트웨어의 역 어셈블리를 생성할 수 있게끔 프로그램되어 있다.
[공통버스 이용 검출논리]
이제 제1도에 도시한 CPU버스 사용 검출논리(301)를 세부적으로 제2도를 참조하여 설명한다 위에서 언급하였듯이, 버스 사용 검출논리(301)는 정보를 공통 버스상의 다른 장치에 이송할 목적으로 공통버스의 마스터가 되는 그런 경우들을 검출하는데 사용된다. 앞서 보았듯이, 양호한 실시예의 데이타 처리 시스템에 있어서, 제2의 반쪽 버스 사이클 동안에 응답중인 유니트가 요구중인 유니트에 응답하기를 요구하는 공통 버스위의 모든 이송들은, 1개 또는 그 이상의 제2의 반쪽 버스 사이클 동안 응답을 제공하여야 할 요구의 지정인 채널 번호와 함께 제1의 반쪽 버스 사이클 동안 그 원의 채널번호로서 요구중인 유니트가 그 채널번호를 제공하게 하는 식으로 행해진다. 이에 대한 예의는 메모리 판독 요구동안 요구중인 유니트의 채널번호가 그 원의 채널번호로서 제공되지만 그 지정의 채널번호를 특정하는 대신 메모리 어드레스가 지정된다는 것이다. 그러므로, 공통버스 위의 모든 이송들이 제1의 반쪽 버스 사이클동안 요구 사이클로 되고 1개 또는 그 이상의 응답사이클 들이 1개 또는 그 이상의 제2의 반쪽버스 사이클로 되는 경우에는 소프트웨어 분석기는 단순히 그 원 및 지정채널 번호를 모니터하여 CPU가 공통버스 위의 이송에 요구중이냐 또는 응답중이었느냐를 결정한다. 이에따라 소프트웨어 분석기는 CPU와 관련된 모든 버스 사이클들을 쉽게 모니터할 것이다.
그러나 양호한 실시예의 데이타 처리 시스템에 있어서, 단일의 제1의 반쪽 버스 사이클만을 요구하고 슬레이브(지정) 유니트의 채널 번호만 특정되며 마스터 (원) 유니트의 명세를 제공하지 않는 몇몇 버스 이동들이 있다. 이런 유형의 버스 이동의 예는 CPU가 입 출력 명령을 주변 장치로 실행할 때이다 입 출력 명령이동 동안, CPU 는 그 공통버스상에 단지 지정 유니트의 채널번호, 그 유니트에 의해 실행될 기능 코우드 그리고 16비트의 데이타난을 설정한다. 이 CPU는 공통 버스상에 원 채널번호로서 그 채널번호를 설정하지 않는다. 그러므로. CPU와 관련된 채널번호의 검출에 의해 공통버스 이송들을 모니터하게 설계된 소프트웨어 분석기는 이러한 버스 사이클을 검출하지 않을 것이고 이에 따라 이런 형태의 CPU 소프트웨어 명령의 실행을 추적할 수 없을 것이다. 따라서, CPU 버스 사용 검출논리(301)는 CPU가 그 공통 버스상에 그 채널번호를 설정하는 것을 포함하여 CPU에 의해 초기화된 이런 유형의 버스 이송을 검출하게 설계되어 있다.
기본적으로, CPU 버스사용 검출논리(301)는 소프트웨어 분석기의 우선순위 보다는 버스상의 저우선순위 유니트에 의해 초기화된 버스 사이클 각각의 검출하게 설계되어 있다. 양호한 실시예에서 데이터 처리 시스템의 CPU는 공통버스상의 최저 우선순위 디바이스이다는 사실 때문에, CPU 다음으로 공통버스 상에 소프트웨어 분석기를 위치시킴으로 해서 CPU 버스 사용 검출논리(301)로 하여금 저우선순위 유니트(즉, CPU)가 버스의 제어를 허용 받았을때 버스 사이클이 버스 마스터로서의 CPU와 관련되어 있음을 소프트웨어 분석기가 알수 있다는 것을 추론할 수 있도록 해준다. 공통버스(200)상의 기타 어느 디바이스와의 이송을 초기화 할수 있도록 CPU가 버스 버스터가 되어야 하기 때문에, CPU 버스 사용 검출논리(301)는 CPU에 의해 초기화된 모든 버스 사이클들을 검출하게 사용되고, 공통버스(200)를 모니터하는 일은 어느 것도 CPU 채널번호가 유니트의 채널번호로서 제공되어 있느냐를 검출하게 행해질 필요가 없어서 소프트웨어 분석기(207)를 단순화 한다. 앞서 언급하였듯이, CPU 채널번호 검출논리 (322)는 CPU가 공통버스(200)상의 CPU 채널번호의 검출에 의한 지정 유니트인 그런 경우들을 검출하는데 사용된다.
CPU 버스 사용 검출논리(301)는 CPU가 버스 마스터가 되어 공통버스에 접속된 다른 유니트로 이송을 행하기 위해 공통버스를 사용할때를 검출하게 사용된다. 제2도에 도시한 CPU 버스 사용 검출논리(301)는 근본적으로 제10도에 도시한 CPU의 우선순위 회로망 논리를 단순하게 제작시킨 것이다. 제2도에 도시한 바와 같이 CPU 버스 사용 검출논리의 단순화는 제2도의 논리가 소프트웨어 분석가로 하여금 공통버스의 사용을 요구하여 버스 마스터가 되도록 하는데 필요로 하는 소자들을 내포하지 않기 때문에 가능하다. 그대신 제2도의 논리는 단순히 소프트웨어 분석기로 하여금 진행중인 비동기 버스 사이클이 소프트웨어 분석기가 접속된 공통 버스상의 슬로트의 위치보다 고우선순위 버스상의 다른 유니트에 의해 초기화 되었느냐를 결정하게 한다. 소프트웨어 분석기는 공통 버스상의 CPU 바로 위에 연결되어 있기 때문에, 제2도의 논리는 소프트웨어 분석기로 하여금, 비동기 버스사이클이 진행중에 있고, 공통 버스상에 고우선순위 디바이스가 아무것도 공통버스를 허용 받지 못하고 있다면 공통 버스는 소프트웨어 분석기 보다 저우선순위 유니트로 허용되게 됨으로 그 버스 사이클은 CPU가 버스 마스터인 버스 사이클이어야 한다는 사실을 추론하게 해준다.
제 2도의 공통 버스 이용 검출논리는 기본적으로 버스 제어회로망 라인들 및 공통버스의 9개의 우선순위 회로망 라인들을 모니터하여 저우선순위 디바이스가 버스 마스터가 되고 이러한 저우선순위 디바이스에 의해 공통버스상에 놓인 정보가 안정하게 될때 CPU 버스 마스터 플립풀롭(402)을 세트 시킨다. CPU 버스 마스터 플립풀롭(402)은 공통 버스상의 슬레이브(응답하는)디바이스가 ACK(확인), NAK(미확인), 또는 WAIT응답에 따라 응답할때 리세트 된다. 제2도의 소자들은 대략적으로 다음과 같이 제10도에서 유사하게 기능하는 소자들과 대응한다. NAND 게이트(401)는 NAND 게이트(19)에 해당하고, CPU 버스 마스터 플립풀롭(402)은 허용 플립풀롭(22)에 해당하며, NOR 게이트(403)는 NOR 게이트(21)에 해당하고, 지연선(404)은 지연선(25)에 해당한다. 저 우선순위 디바이스가 정보를 공통 버스상에 놓고 안정화될때 까지--이때에 CPU 버스 마스터 플립플롭(402)은 클럭킹됨--신호 CPDCNS-(이 신호는 저 우선순위 디바이스에 공통버스의 사용이 허용되었음을 가리킴)를 흘드시키게 사용된 플립풀롭(405)에 해당하는 소자가 제10도에는 없다.
제2도에 도시한 버스 이용 검출 논리에의 입력신호들 즉, 신호 BSREQT+ 내지 BSDCNN+ 는 모두 공통 버스상에 나타나는 그 해당신호를 반전시킴으로써 유도된다. (예를들어, 신호 BSREQT+는 공통버스(200)으로 부터 온 신호 BSREQT-를 반전시킴으로써 유도된다). 그러므로, 제2도에의 입력신호들은 이들이 공통버스(200)로부터 직결되는 것으로 설명할 것이지만, 실제적으로 이들은 공통 버스상에 전송된 신호를 수신하여 반전시킨 수신기들의 출력이다. NAND게이트(401)에의 입력들은 제어신호 BSREQT+, BSDCNN+ 그리고 9개의 우선순위 회로망 신호 BSAUOK+ 내지 BSIUOK+ 이다.
제9도, 제10도에 관하여 앞서 설명하였듯이, 공통 버스상의 디바이스가 버스 마스터가 되기를 원하여 더브 사이클을 사용할때, 이것은 버스요구 신호 BSREQT+를 2진수 1로 만들어 공통 버스상의 적어도 1개의 디바이스가 버스 사이클을 요구하고 있음을 가리키면서 버스 요구를 한다. 우선순위가 결정되고 버스가 허용 되었을 때, 버스 사이클 현재 신호 BSDCNN+ 는 타이브레이킹 기능이 완료되고 1개의 특정 디바이스가 공통 버스 의 현재 마스터임을 가리키는 2진수 1이 된다(제9도 참조).
버스 사이클 현재 신호 BSDCNN+ 가 2진수 1이 될때에, 마스터 디바이스는 공통상에 이송될 정보를 제공한다. 공통 버스상의 각각의 디바이스는 신호 BSDCNN+ 로부터 내부적인 스트로브를 전개시킨다. 이스트로브는 BSDCNN+가 각각의 유니트에서 2진수 1이 되어 버스상에서 안정화 되도록 정보를 허용할때로부터 대략 60나노초 지연된다. 이 지연이 완료되었을때, 버스 스키우(skew)가 계산될 것이고, 공통 버스상의 각각의 슬레이브 디바이스는 그어드레스(메모리 어드레스 또는 채널번호)를 확인할 수 있을 것이다. 제2도에서, CPU 버스 마스터 플립플롭(402)을 클럭킹 하기 위해 사용되는 이러한 내적인 스트로브는 60나노초 지연선(404)의 출력인 신호 BSDCND+ 이다. 따라서, CPU 버스 마스터 플립풀롭(402)의 클럭(C) 입력에 연결된 이러한 내적인 스트로브신호 BSDCND+는 마스터 디바이스에 의해 버스상에 놓인 정보가 유효하게 될때 플립플롭을 클럭킹하게 사용된다. 이에 따라 CPU 버스 마스터 플립플롭(402)의 출력인 Q출력에서의 신호 CPDCNN+ 및 Q바아 출력에서의신호 CPDCNN-는 직접 사용되게 하거나 또는 그로부터 유도된 신호들이 CPU가 마스터 슬레이브일때 공통 버스상에 놓인 정보를 취하도록 사용되게 한다. 예를들어, 제1도에서 라인(339)상의 CPU 버스 사용 검출 논리(301)의 출력은 어드레스 레지스터(302), 데이타 레지스터(303), 그리고 자동 어드레스 개발 논리(304)를 클럭킹 시키는데 사용됨을 알 수 있다.
이제 제2도를 참조하면, NAND게이트(401)에의 기타 입력신호들을 9개의 우선순위 신호 BSAUOK+ 내지 BSIUOK+ 이다. 신호 BSAUOK+ 내지 BSIUOK+는 공통 버스상의(고 우선순위) 이전의 디바이스들이 아무도 버스 요구를 하지 않으면 모두 2진수 1이 될 것이다. 그러므로, 신호 BSDCNN+가 2진수 1일때(제9도 참조), NAND게이트(401)의 출력인 신호 CPDCNS-는 2진수 제로가 될 것이고 공통버스상의 고우선 순위 디바이스가 아무도 버스 요구를 행하지 않았다면 CPU DCN플립플롭(405)을 세트시킬 것이다. CPU DCN플립플롭(405)이 세트되었을때, 그 출력인 신호 CPDCND+는 그 Q출력에서 2진수 1이 되고, 현재 진행중인 버스 데이타 사이클이 소프트웨어 분석기보다 저우선순위 버스상의 디바이스에 의해 요구됨을 가리킨다(현재 CPU가 현재버스 마스터임) 신호 CPDCDN+는 CPU 버스 데이타 마스터 플립플롭(402)에의 데이타(D) 입력에 접속된다. 공통버스 데이타 사이클 현재 신호 BSDCNN+가 2진수 1이 된 후 60나노초후에, 60나노초 지연선(404)의 출력인 신호 BSOCNO+는 2진수 1이 되고 CPU 버스 마스터 플립플롭(402)을 클럭킹 시킨다. CPU 버스 마스터 플립플롭(402)에의 데이타 입력에서의 신호 CPDCND+ 가 B진수 1이 되어 공통 버스상의 고 우선순위 디바이스가 아무도 버스를 허용하지 않으므로 CPU가 현재의 버스 마스터가 되어야 함을 가리키면, CPU 버스 마스터(402)는 Q출력인 신호 CPDCNN+ 를 2진수 1로 만들면서 그리고 그 Q바아 출력인 신호 CFDCNN-를 2진수 제로로 만들면서 클럭킹될때 세트될 것이다.
CPU 버스 마스터 플립플롭(402)은 공통 버스상의 응답중(슬레이브)인 유니트가 확인(신호 BSACHR+ 는 2진수 1이 된다), 미화인(신호 BSNAKR+는 2진수 1이 된다), 또는 웨이트(신호 BSWAIT+ 는 2진수 1된다)에 따라 버스 사이클에 응답할때까지 세트상태로 남는다. 이들 3개의 응답들중 어느 것이 발생했을 때 NOR게이트(403)의 출력인 신호 MYDCNR-는 2진수 제로가 되고 CPU DNC 플립플롭(405) 및 CPU 버스 마스터 플립플롭(402)을 리세트시킬 것이다. 일어날 수 있는 기타 상태는 초기화시 NOR 게이트(403)에서의 신호 BSMCLR+ 가 2진수 1이 되게하여 플립플롭(405)(402)을 레스트시키게 되는 버스 마스터 클리어이다.
상술하였듯이, 60나노초 지연선(404)의 목적은 버스 마스터에 의해 공통 버스상에 나타난 정보가 공통버스로 부터의 정보의 스트로브 이전에 확실히 안정되게 하는 것이다. 이와 동일한 사상은 CPU 버스 사용 검출논리(301)에서도 발견할 수 있는바, 이 이유는 CPU 버스 마스터 플립플롭(4(12)이 이렇게 지연된 신호에의해 클러킹되어, 공통 버스로부터 나온 정보의 소프트웨어 분석기내에서 행해지는 신호 CPDCNN + 및 CPDCNN-로부터 유도된 기타 모든 클럭킹을 공통 버스상의 정보가 유효할때 행해지기 때문이다.
CPU 플립플롭(405)의 목적은 데이타 사이클현재(DSDCNN+) 신호가 2진수 1이 될때 나타나는 NAND게이트(401)의 출력이 60나노초 지연이 만료될때까지 보유되고 CPU 버스 마스터 플립플롭(402)이 클럭킹 되기 전에는 사라지지 않게 보중하는 것이다. 앞서 언급하였듯이, 디바이스를 번지 지정하는 버스 마스터가 시스템내에 존재하지 않을때(즉, 무효의 메모리 어드레스 또는 무효의 채널번호)의 CPU(또는 기타 어느 디바이스)의 경우를 다루기 위해서, CPU 내에 타임아웃 논리가 있어 미확인 신호(NAK)를 발생시킴에 따라 플립풀롭(405(402)을 클리어 시킬 2진수 1상태의 신호 BSNAKR+를 발생시킬 것이다.
위의 설명에서 알 수 있듯이, CPU 버스 사용 검출 논리(301)는 CPU가 버스 마스터가 될때를 결정하게 사용될 수 있는바, 그 이유는 CPU가 그 자체보다 저우선순위 디바이스에 의해서 공통버스(200)가 활용되고 있다는 것을 결정하기 때문이다. 소프트웨어 분석기보다 저우선순위 공통버스에 연결된 유인한 디바이스는 CPU 이기 때문에, 버스 마스터가 되어야 한다. 이에 따라 현재의 버스 마스터에 의해 공통버스에 놓인 소오스 지정 채널번호 정보를 검사하지 않고서 CPU가 버스 마스터가 되는 모든 경우들을 소프트웨어 분석기가 검출할수 있게 된다. 앞서 CPU가 소오스 디바이스 채널번호로써 공통 버스상에 그 채널 번호를 설정하지 않는 경우들이 있음을 설명하였다.
앞의 설명으로부터 공통버스를 따른 위치에 의해 결정된 버스를 액세스하는데 있어서 어떻게 공통버스 이용 검출논리(311)가 우선순위를 지닌 공통버스를 이용하는 시스템에 이용될 수 있는가를 알 수 있다. 위의 설명은 공통 버스 상에서 최저 우선순위인 디바이스(양호한 실시예에서는, 데이타 처리 시스템의 CPU) 다음에 배치된 위치에 공통버스 이용 검출을 이용하는 면에서 이루어 졌다. 신호 CPOCNN+ 가 2진수 1일때 최고 우선순위인 디바이스에 공통버스가 허용되지 않았음을 가리키고, 실호 CPDCNN+가 2진수 제로일때 공통버스상의 최고 우선순위인 디바이스에 공통버스가 허용되었음을 가리키게끔, 공통버스를 따라 저우선순위 다음의 슬로트위치에다 공통 버스 이용 논리를 위치함으로써 그리고 CPU 버스 마스터 플립플롭(402)의 의미를 반전 시킴으로써, 공통 버스상의 최고 우선순위인 디바이스가 버스에의 액세스가 허용될때를 결정하도록 상술한 바와 동일한 원리를 사용할 수가 있다.
공통 버스 이용 검출논리(402)는 우선순위가 중간인 디바이스를 2세트의 공통 버스 이용검출논리--우선순위가 중간인 디바이스의 각 인접면상에 하나씩--로묶음으로써 공통 버스상의 우선순위가 중간인 디바이스에 공통 버스가 허용될때를 결정하기 위해 사용될 수 있다. 예를들어, 공통버스가 디바이스들을 접촉시키기 위해 10개의 슬로트를 갖는다면, 관련이 있는 디바이스는 슬로트 5의 공통 버스에 접속시킨다. 우선순위가 다음으로 최고인 슬로트인 슬로트 6에다 처음 일단의 공통 버스 이용 검출 논리를 접속시키고 슬로트 4에다 또 다른 일단의 공통 버스 이용 검출논리를 접속시키며, 슬로트 6의 논리로부터 신호 CPDCNN+를 취해 그것을 슬로트 4의 논리로부터 나온 신호 CPDCNN-와 논리공급시킴으로써 이 AND 게이트의 출력은 슬로트 5의 디바이스가 버스 마스터가 될때 2진수 1이될 것이다 슬로트 6의 논리로부터 나온 신호 CPDCNN+는 저우선순위 공통 버스상의 디바이스가 버스마스터가 될때 2진수 1이 될 것이고 슬로트 64 논리로부터 나온 신호 CPDCNN+는 저 우선순위 디바이스가 아무도 버스 마스터가되지 않을때 2진수 1이 될 것임으로, 이들 2신호들을 논리곱 시킨 것의 출력은 2개의 검출논리들간의 슬로트의 디바이스가 버스 마스터가 될때 2진수 1이 될 것이다.
상기의 설명은 공통 버스의 허용이 공통버스를 따라 요구중인 디바이스의 위치에 기초한 우선순위에 의해 결정되는 양호한 실시예에 의해 이루어졌지만, 본 발명은, 마스터로서 버스 사용이 검출될 관련이 있는 특정 디바이스의 우선순위가 보다 더 높거나 또는 더 낮은 디바이스에 버스가 허용되고 있느냐를 결정할 수 있도록 버스 이용 검출논리에 의해 이용될 수 있는 일단의 공통 우선순위 라인을 지닌 비위치적인 우선순위 체게 에도 동등하게 응용가능하다
상기의 설명은 할당될 공통원이 공통버스인 양호한 실시예로서 행해졌지만, 본 발명은 우선순위를 기초로 할당되는 원에 동등하게 응용가능하다.
본 발명은 양호한 실시예에 관련하여 도시하고 설명하였지만, 당 기술분야에서 숙달된 본 발명의 기술사상 및 범위를 벗어남이 없이 부분적으로 또는 상세하게 수정할 수 있을 것이다. 그러므로, 본 발명은 특허청구 의 범위에 의해서만 한정된다고 보아야 할 것이다.

Claims (3)

  1. 하나의 공통원을 이용하기 위해 각 장치로부터 발생하는 경쟁적인 요구들사이의 분쟁이 우선순위에 따라 해결되도록 하나의 공통원을 공유하는 복수의 장치와, 특정의 한 장치에 의한 상기 자원의 이용을 검출하기 위한 감시수단을 구비하고 있는 데이타 처리 시스템에 있어서, 상기 감시수단(301,322)은 상기 공통원에 접속되고 상기 공통원의 이용을 요구하는 모든 장치들의 우선순위 레벨을 감지하기 위한 우선순위 감지수단(78,53,85)과, 상기 공통원의 이용이 상기 요구 장치들중 하나에 허용되는 경우를 검출하기 위한 허용검출수단(13,25,28) 및 상기 우선순위 감지수단과 상기 허용검출수단에 접속되어 상기 자원이 상기 특정 장치에 허용될 때에 하나의 출력신호를 발생하는 수단(15,17,31,80)을 포함하는 것을 특징으로 하는 데이타 처리 시스템.
  2. 제1항에 있어서, 상기 공통원은 하나의 버스인 것을 특징으로 하는 데이타 처리 시스템.
  3. 제2항에 있어서, 상기 버스를 경유하는 상기 장치들의 물리적 순위는 장치들 각각의 우선순위를 결정하고, 상기 감시수단은 상기 특정장치에 인접한 상기 버스에 접속되는 것을 특징으로 하는 데이타 처리 시스템.
KR1019830000130A 1982-01-15 1983-01-15 데이타 처리 시스템의 공통 버스 이용검출 논리회로 KR880001401B1 (ko)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US06/339,551 US4503495A (en) 1982-01-15 1982-01-15 Data processing system common bus utilization detection logic
US339,551 1982-01-15

Publications (2)

Publication Number Publication Date
KR840003370A KR840003370A (ko) 1984-08-20
KR880001401B1 true KR880001401B1 (ko) 1988-07-30

Family

ID=23329559

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1019830000130A KR880001401B1 (ko) 1982-01-15 1983-01-15 데이타 처리 시스템의 공통 버스 이용검출 논리회로

Country Status (6)

Country Link
US (1) US4503495A (ko)
EP (1) EP0084431A3 (ko)
JP (1) JPS58142458A (ko)
KR (1) KR880001401B1 (ko)
CA (1) CA1186415A (ko)
YU (1) YU7683A (ko)

Families Citing this family (54)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4574351A (en) * 1983-03-03 1986-03-04 International Business Machines Corporation Apparatus for compressing and buffering data
EP0124806B1 (de) * 1983-05-06 1987-09-30 BBC Brown Boveri AG Vergabeschaltung für Parallelbusse von Datenverarbeitungsanlagen
US4589068A (en) * 1983-10-03 1986-05-13 Digital Equipment Corporation Segmented debugger
US4835672A (en) * 1984-04-02 1989-05-30 Unisys Corporation Access lock apparatus for use with a high performance storage unit of a digital data processing system
KR900007564B1 (ko) * 1984-06-26 1990-10-15 모토로라 인코포레이티드 동적 버스를 갖는 데이터 처리기
US4720778A (en) * 1985-01-31 1988-01-19 Hewlett Packard Company Software debugging analyzer
US4728925A (en) * 1985-07-03 1988-03-01 Tektronix, Inc. Data communications analyzer
US5010476A (en) * 1986-06-20 1991-04-23 International Business Machines Corporation Time multiplexed system for tightly coupling pipelined processors to separate shared instruction and data storage units
US5150467A (en) * 1987-09-04 1992-09-22 Digital Equipment Corporation Method and apparatus for suspending and restarting a bus cycle
US5590293A (en) * 1988-07-20 1996-12-31 Digital Equipment Corporation Dynamic microbranching with programmable hold on condition, to programmable dynamic microbranching delay minimization
US4987529A (en) * 1988-08-11 1991-01-22 Ast Research, Inc. Shared memory bus system for arbitrating access control among contending memory refresh circuits, peripheral controllers, and bus masters
FR2649507B1 (fr) * 1989-07-07 1994-07-08 Bull Sa Procede d'observation de l'execution d'un programme charge dans un systeme informatique et dispositif pour la mise en oeuvre dudit procede
AU2374492A (en) * 1991-07-22 1993-02-23 Banyan Systems Incorporated System bus monitor for compiling data regarding use of a system bus
US5479613A (en) * 1992-08-05 1995-12-26 International Business Machines Corporation Real-time ring bandwidth utilization calculator, calculating bandwidth utilization based on occurrences of first and second predetermined bit patterns
US5701501A (en) * 1993-02-26 1997-12-23 Intel Corporation Apparatus and method for executing an atomic instruction
GB2293467B (en) * 1994-09-20 1999-03-31 Advanced Risc Mach Ltd Trace analysis of data processing
JP3199966B2 (ja) * 1994-11-21 2001-08-20 キヤノン株式会社 情報処理装置及びそのプリンタ選択方法
US5774724A (en) * 1995-11-20 1998-06-30 International Business Machines Coporation System and method for acquiring high granularity performance data in a computer system
US5784624A (en) * 1996-01-31 1998-07-21 Dallas Semiconductor Corp Multiple asynchronous event arbitrator
US6282701B1 (en) 1997-07-31 2001-08-28 Mutek Solutions, Ltd. System and method for monitoring and analyzing the execution of computer programs
US5987250A (en) * 1997-08-21 1999-11-16 Hewlett-Packard Company Transparent instrumentation for computer program behavior analysis
WO2000007100A1 (en) * 1998-07-30 2000-02-10 Mutek Solutions, Ltd. System and method for remotely analyzing the execution of computer programs
US6298394B1 (en) * 1999-10-01 2001-10-02 Stmicroelectronics, Ltd. System and method for capturing information on an interconnect in an integrated circuit
US7058928B2 (en) 1999-12-23 2006-06-06 Identify Software Ltd. System and method for conditional tracing of computer programs
US20020087949A1 (en) * 2000-03-03 2002-07-04 Valery Golender System and method for software diagnostics using a combination of visual and dynamic tracing
US8312435B2 (en) * 2000-12-26 2012-11-13 Identify Software Ltd. (IL) System and method for conditional tracing of computer programs
US7287147B1 (en) * 2000-12-29 2007-10-23 Mips Technologies, Inc. Configurable co-processor interface
US7237090B1 (en) 2000-12-29 2007-06-26 Mips Technologies, Inc. Configurable out-of-order data transfer in a coprocessor interface
US20020174387A1 (en) * 2001-03-29 2002-11-21 Vance Lohoff Stealth module for bus data analyzer
US7168066B1 (en) 2001-04-30 2007-01-23 Mips Technologies, Inc. Tracing out-of order load data
US7134116B1 (en) 2001-04-30 2006-11-07 Mips Technologies, Inc. External trace synchronization via periodic sampling
US7181728B1 (en) 2001-04-30 2007-02-20 Mips Technologies, Inc. User controlled trace records
US7178133B1 (en) 2001-04-30 2007-02-13 Mips Technologies, Inc. Trace control based on a characteristic of a processor's operating state
US7069544B1 (en) * 2001-04-30 2006-06-27 Mips Technologies, Inc. Dynamic selection of a compression algorithm for trace data
US7124072B1 (en) 2001-04-30 2006-10-17 Mips Technologies, Inc. Program counter and data tracing from a multi-issue processor
US7185234B1 (en) 2001-04-30 2007-02-27 Mips Technologies, Inc. Trace control from hardware and software
US7065675B1 (en) 2001-05-08 2006-06-20 Mips Technologies, Inc. System and method for speeding up EJTAG block data transfers
US6536025B2 (en) * 2001-05-14 2003-03-18 Intel Corporation Receiver deskewing of multiple source synchronous bits from a parallel bus
US7043668B1 (en) 2001-06-29 2006-05-09 Mips Technologies, Inc. Optimized external trace formats
US7231551B1 (en) 2001-06-29 2007-06-12 Mips Technologies, Inc. Distributed tap controller
US7143411B2 (en) * 2002-03-15 2006-11-28 Hewlett-Packard Development Company, L.P. Capping processor utilization
US6816809B2 (en) * 2002-07-23 2004-11-09 Hewlett-Packard Development Company, L.P. Hardware based utilization metering
US7386839B1 (en) 2002-11-06 2008-06-10 Valery Golender System and method for troubleshooting software configuration problems using application tracing
US8032866B1 (en) 2003-03-27 2011-10-04 Identify Software Ltd. System and method for troubleshooting runtime software problems using application learning
US7159101B1 (en) 2003-05-28 2007-01-02 Mips Technologies, Inc. System and method to trace high performance multi-issue processors
US20050228927A1 (en) * 2004-04-05 2005-10-13 Philip Garcia Bus utilization based on data transfers on the bus
US7827539B1 (en) 2004-06-25 2010-11-02 Identify Software Ltd. System and method for automated tuning of program execution tracing
US7168675B2 (en) * 2004-12-21 2007-01-30 Honeywell International Inc. Media isolated electrostatically actuated valve
US7613913B2 (en) * 2006-03-21 2009-11-03 Silicon Laboratories Inc. Digital architecture using one-time programmable (OTP) memory
GB2487355B (en) * 2011-01-13 2020-03-25 Advanced Risc Mach Ltd Processing apparatus, trace unit and diagnostic apparatus
DE102013002647B3 (de) * 2013-02-15 2014-05-22 Audi Ag Kraftwagen mit einem Fahrzeugkommunikationsbus und Verfahren zum Erzeugen von Busnachrichten
CN108196721B (zh) * 2018-01-29 2020-11-17 业成科技(成都)有限公司 触控显示装置及其固件设定方法
US10983832B2 (en) * 2019-02-14 2021-04-20 International Business Machines Corporation Managing heterogeneous memory resource within a computing system
US10824471B2 (en) 2019-03-22 2020-11-03 Dell Products L.P. Bus allocation system

Family Cites Families (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US3866181A (en) * 1972-12-26 1975-02-11 Honeywell Inf Systems Interrupt sequencing control apparatus
US4030075A (en) * 1975-06-30 1977-06-14 Honeywell Information Systems, Inc. Data processing system having distributed priority network
JPS5259534A (en) * 1975-11-11 1977-05-17 Panafacom Ltd Data transfer system
US4209838A (en) * 1976-12-20 1980-06-24 Sperry Rand Corporation Asynchronous bidirectional interface with priority bus monitoring among contending controllers and echo from a terminator
US4096569A (en) * 1976-12-27 1978-06-20 Honeywell Information Systems Inc. Data processing system having distributed priority network with logic for deactivating information transfer requests
US4145735A (en) * 1977-02-02 1979-03-20 Nippon Steel Corporation Monitor for priority level of task in information processing system
US4148011A (en) * 1977-06-06 1979-04-03 General Automation, Inc. Asynchronous priority circuit for controlling access to a bus
US4166290A (en) * 1978-05-10 1979-08-28 Tesdata Systems Corporation Computer monitoring system
US4257095A (en) * 1978-06-30 1981-03-17 Intel Corporation System bus arbitration, circuitry and methodology
US4419724A (en) * 1980-04-14 1983-12-06 Sperry Corporation Main bus interface package
US4367525A (en) * 1980-06-06 1983-01-04 Tesdata Systems Corporation CPU Channel monitoring system

Also Published As

Publication number Publication date
US4503495A (en) 1985-03-05
JPS58142458A (ja) 1983-08-24
KR840003370A (ko) 1984-08-20
YU7683A (en) 1986-04-30
EP0084431A2 (en) 1983-07-27
EP0084431A3 (en) 1986-04-09
CA1186415A (en) 1985-04-30

Similar Documents

Publication Publication Date Title
KR880001401B1 (ko) 데이타 처리 시스템의 공통 버스 이용검출 논리회로
US4511960A (en) Data processing system auto address development logic for multiword fetch
US4965718A (en) Data processing system incorporating a memory resident directive for synchronizing multiple tasks among plurality of processing elements by monitoring alternation of semaphore data
US4870704A (en) Multicomputer digital processing system
US6539500B1 (en) System and method for tracing
US4312066A (en) Diagnostic/debug machine architecture
EP0130469B1 (en) Internally distributed monitoring system
US4028675A (en) Method and apparatus for refreshing semiconductor memories in multi-port and multi-module memory system
US4646298A (en) Self testing data processing system with system test master arbitration
RU2137182C1 (ru) Выполнение инструкции обработки данных
US4633466A (en) Self testing data processing system with processor independent test program
US5745757A (en) Multiprocessor system with microprogrammed means for dispatching processes to processors
JPS5868165A (ja) マイクロプロセツサ内の追加的機能単位およびその作動方法
US6993766B2 (en) Integrated circuits for multi-tasking support in single or multiple processor networks
US4198682A (en) Symptom compression device
MacKinnon Advanced function extended with tightly-coupled multiprocessing
US5367693A (en) System for dialog among processors and dispatching processes to processors which monitors the number of acknowledgements to processing requests
US7222202B2 (en) Method for monitoring a set of semaphore registers using a limited-width test bus
EP0160428B1 (en) Self-testing data processing system with system test master arbitration
US6185700B1 (en) Method and device for evaluating a program
JP4197798B2 (ja) デバッグ能力を有するチップ
JP2902861B2 (ja) トレース機能付バッファ装置
CN114780479A (zh) 原子操作控制电路、***和电子设备
KR20010036590A (ko) 인터럽트 및 폴링 방식 겸용으로 메모리를 엑세스하는 장치 및 그 방법
JPS63147243A (ja) マルチプロセツサシステムのトレ−ス情報監視方法

Legal Events

Date Code Title Description
A201 Request for examination
E902 Notification of reason for refusal
G160 Decision to publish patent application
E701 Decision to grant or registration of patent right
NORF Unpaid initial registration fee