KR20070053310A - 버스 액세스 취소 기능을 갖는 데이터 처리 시스템 - Google Patents

버스 액세스 취소 기능을 갖는 데이터 처리 시스템 Download PDF

Info

Publication number
KR20070053310A
KR20070053310A KR1020077007211A KR20077007211A KR20070053310A KR 20070053310 A KR20070053310 A KR 20070053310A KR 1020077007211 A KR1020077007211 A KR 1020077007211A KR 20077007211 A KR20077007211 A KR 20077007211A KR 20070053310 A KR20070053310 A KR 20070053310A
Authority
KR
South Korea
Prior art keywords
access
access request
cancellation
address
outstanding
Prior art date
Application number
KR1020077007211A
Other languages
English (en)
Inventor
윌리암 씨. 모이어
지미 구물자
브렛 더블유 머독
Original Assignee
프리스케일 세미컨덕터, 인크.
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 프리스케일 세미컨덕터, 인크. filed Critical 프리스케일 세미컨덕터, 인크.
Publication of KR20070053310A publication Critical patent/KR20070053310A/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/14Handling requests for interconnection or transfer
    • G06F13/36Handling requests for interconnection or transfer for access to common bus or bus system
    • G06F13/362Handling requests for interconnection or transfer for access to common bus or bus system with centralised access control
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/14Handling requests for interconnection or transfer
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/14Handling requests for interconnection or transfer
    • G06F13/16Handling requests for interconnection or transfer for access to memory bus
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/38Information transfer, e.g. on bus

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Bus Control (AREA)
  • Executing Machine-Instructions (AREA)

Abstract

버스 마스터(12)는 현재 미처리된 액세스의 하나 또는 그 이상의 특성에 기초하여 현재 미처리된 액세스를 선택적으로 취소할 수 있다. 이런 식으로, 버스 마스터는 그것의 액세스 요구들을 더 잘 제어할 수 있다. 상기 하나 또는 그 이상의 특성은, 예를 들면, 액세스의 유형(예컨대, 판독/기입, 명령/데이터, 버스트/논-버스트 등), 액세스들의 시퀀스 또는 순서, 액세스되고 있는 어드레스(예컨대, 어느 어드레스 범위가 액세스되고 있는지 또는 어느 디바이스가 액세스되고 있는지), 취소를 요구하는 버스 마스터(예컨대, 멀티마스터 시스템 내의), 또는 이들의 임의의 조합을 포함할 수 있다. 버스 중재기(216)는 또한 현재 미처리된 액세스 요구 또는 후속 액세스 요구의 하나 또는 그 이상의 특성에 기초하여 후속 액세스 요구를 위하여 현재 미처리된 액세스 요구를 선택적으로 취소할 수 있다. 이들 특성들은 위에 열거된 것들 중 임의의 것과, 요구하는 마스터들의 우선순위들(예컨대, 요구하는 마스터들 간의 우선순위 델타), 상기 요구하는 마스터들의 다른 속성들, 또는 그들의 임의의 조합을 포함할 수 있다.
버스 마스터, 액세스 취소, 버스 중재기(bus arbiter), 미처리된 액세스 요구, 진행중인 액세스 요구, 후속 액세스 요구, 우선순위 델타(priority delta)

Description

버스 액세스 취소 기능을 갖는 데이터 처리 시스템{DATA PROCESSING SYSTEM WITH BUS ACCESS RETRACTION}
본 발명은 데이터 처리 시스템에 관한 것으로, 보다 구체적으로는, 버스 액세스 취소 기능을 갖는 데이처 처리 시스템에 관한 것이다.
서로 다른 데이터 처리 시스템들은 여러 가지 서로 다른 버스 프로토콜들 하에서 동작하고, 이들 버스 프로토콜들은, 예를 들면, 버스 마스터에 의해 행해진 액세스 요구들이 어떻게 다루어지는지를 정의할 수 있다. 또한, 서로 다른 데이터 처리 시스템들은 서로 다른 버스 중재 방식(bus arbitration scheme)들을 이용하여 동작할 수 있고, 이들 버스 중재 방식들도 서로 다른 버스 마스터들로부터의 요구가 어떻게 다루어지는지를 정의한다. 이들 버스 프로토콜들 및 버스 중재들은 액세스 취소(access retraction)에 관해서와 같은 여러 애스팩트(aspect)들에서 유연성이 없을 수 있고, 이는 종종 원하지 않는 지연 시간(latency)들을 도입하게 된다. 이들 지연 시간은 데이터 처리 시스템 내의 높은 우선순위의 버스 마스터들에 대해서 특히 문제가 될 수 있다. 더욱이, 예를 들어, 액세스 취소를 상이하게 다루는 상이한 버스 프로토콜들 및 버스 중재 방식들에 따라서 동작하는 시스템들을 통합하려고 할 때 에러가 발생할 수 있다.
따라서, 예를 들면, 저감된 지연 시간으로 보다 효율적인 버스 프로토콜 또는 중재 방식을 가능케 할 수 있는 개선된 액세스 취소 방식들을 갖는 데이터 처리 시스템이 요구되고 있다.
본 발명은 첨부 도면들에 의해 제한되지 않고 예로서 도시되고, 첨부 도면들에서 유사한 참조 부호는 유시한 엘리먼트를 지시한다.
도 1은 본 발명의 일 실시예에 따른 데이터 처리 시스템을 블록도 형태로 도시한다.
도 2는 본 발명의 일 실시예에 따른 도 1의 버스 마스터의 일부를 블록도 형태로 도시한다.
도 3-5는 도 2의 액세스 취소 제어 레지스터의 다양한 실시예들을 블록도 형태로 도시한다.
도 6은 본 발명의 일 실시예에 따른 선택적 액세스 취소를 수행하는 방법을 흐름도 형태로 도시한다.
도 7은 본 발명의 일 실시예에 따른 시스템 상호접속을 블록도 형태로 도시한다.
도 8은 도 7의 마스터 우선순위 레지스터의 일 실시예를 블록도 형태로 도시한다.
도 9는 도 7의 파킹 제어 레지스터(parking control register)의 일 실시예를 블록도 형태로 도시한다.
도 10-11은 도 7의 액세스 취소 제어 레지스터의 다양한 실시예들을 블록도 형태로 도시한다.
도 12는 본 발명의 대안 실시예에 따른 선택적 액세스 취소를 수행하는 예를 흐름도 형태로 도시한다.
숙련된 기술자라면 도면들에서의 엘리먼트들이 간단 명료함을 위하여 도시되어 있고 반드시 일정한 비례로 도시되지는 않았다는 것을 알 것이다. 예를 들면, 본 발명의 실시예들에 대한 이해의 증진을 돕기 위해 도면들에서의 엘리먼트들 중 몇몇의 치수는 다른 엘리먼트들에 대하여 과장될 수도 있다.
본 발명의 일 실시예는, 예를 들면, 현재 미처리된 버스 액세스 요구(currently pending bus access request)의 특성에 기초하여, 버스 프로토콜을 선택적으로 무효화(override)하는 것을 제공한다. 일 실시예는, 예를 들면, 현재 미처리된 액세스 요구의 특성에 기초하여 현재 미처리된 액세스 요구의 선택적 취소를 제공한다. 대안 실시예는, 예를 들면, 현재 미처리된 액세스 요구에 후속하여 제공되는 새로이 요구된 액세스의 특성에 기초하여 현재 미처리된 액세스 요구의 선택적 취소를 제공한다. (대안적으로, 선택적 취소는 현재 미처리된 액세스 요구와 후속의 액세스 요구 양쪽 모두의 특성에 기초할 수도 있다.) 일 실시예에서, 버스 프로토콜의 무효화 또는 현재 미처리된 액세스 요구의 취소를 선택적으로 허용하기 위해 사용되는 현재 미처리된 액세스 요구의 특성은, 요구된 버스 액세스에 대응하는 어드레스 범위, 요구된 버스 액세스의 액세스 유형(예컨대, 판독/기입, 명령/데이터), 요구된 버스 액세스에 대응하는 액세스들의 시퀀스, 요구된 버스 액세스의 버스 마스터, 또는 이들의 조합들을 포함한다.
도 1-6의 도시 내용 및 설명들은 요구하는 버스 마스터에 의한 현재 미처리된 버스 액세스 요구의 선택적 취소를 가능케 하는 데이터 처리 시스템의 예를 제공할 것이다. 액세스는 시스템 버스(20) 상의 현재 액세스의 완료를 기다리며 시스템 버스(20) 상에 현재 미처리된 것일 수 있다. 몇몇 실시예들에서, 현재 미처리된 액세스 요구는 시스템 버스(20) 상에서 진행중인 현재 액세스가 완료될 때까지는 실제로 활성화되지 않는다. 시스템 버스(20)는, 진행중인 현재 액세스에 대한 데이터의 반환(return)을 기다리는 동안 어드레스 버스가 후속 액세스 요구("현재 미처리된" 액세스 요구)를 위해 드라이브되도록 버스 동작의 어드레스와 데이터 위상들이 오버랩(overlap)되는 버스 프로토콜을 구현할 수 있다. 다수의 클록 사이클이 소요될 수 있는, 진행중인 현재 액세스가 완료되면, 그것의 데이터 위상이 종료하고, 그 데이터 위상의 종료에서 드라이브된 어드레스(현재 미처리된 액세스 요구로 불림)가 새로운 현재 액세스가 되고, 그 후 어드레스 버스는 새로운 액세스 요구로 드라이브될 수 있다. 어드레스와 데이터 위상들이 그렇게 오버랩되어, 현재 미처리된 액세스 요구가 데이터 위상 종료 경계에서 새로운 "현재" 액세스 요구가 된다. 몇몇 경우들에서, 버스 마스터가 시스템 버스(20) 상의 현재 미처리된 액세스 요구가 이용되지 않을 것이거나 또는 더 이상 필요하지 않다는 것을 알면 버스 마스터에 의해 상기 현재 미처리된 버스 액세스 요구의 취소가 희망될 수 있다. 이런 식으로, 불필요하게 되거나 또는 폐기되어야 할 버스 액세스 요구들로 인한 스톨(stall)들이 저감될 수 있다. 따라서, 일 실시예에서는, 도 1-6을 참조하여 설명되는 바와 같이 버스 마스터가 현재 미처리된 액세스 요구의 특성에 기초하여 현재 미처리된 액세스 요구를 선택적으로 취소할 수 있다.
예를 들어, 도 1은 버스 마스터가 그것의 파이프라인 내로 명령들의 순차적인 선인출(prefetching)을 수행하는 데이터 처리 시스템을 도시한다. 그러나, 이 순차적인 액세스 패턴은, 예를 들어, 분기 명령(branch instructions)과 같은 흐름 변경 명령(change of flow instructions)에 의해 중단(disrupt)될 수 있다. 흐름 변경이 검출될 경우, 버스 마스터는 명령 선인출 스트림(instruction prefetch stream)을 흐름 변경의 타깃(예컨대, 분기 명령의 타깃)으로 전환(switch)할 것이다. 따라서, 이 경우, 시스템 버스 상의 버스 마스터의 현재 미처리된 액세스 요구는 흐름 변경 명령에 이은 순차적 어드레스에 대응할 수 있고, 그것은 상기 타깃으로의 흐름 변경 명령(change of flow to the target instruction)으로 인해, 버스 마스터에 의해 더 이상 요구되지 않는다. 따라서, 버스 마스터는 이제는 불필요한 이 현재 미처리된 액세스 요구를 취소하기를 원할 수 있다. (예를 들면, 액세스 취소 제어 레지스터들 내에 저장된 제어 정보에 비교될 수 있는) 이 현재 미처리된 액세스 요구의 특성들에 기초하여, 현재 미처리된 액세스 요구의 취소가 허용되는지가 판정될 수 있다. 만일 허용된다면, 버스 마스터는 현재 미처리된 액세스 요구를 취소하여, 지연 시간을 저감시킨다.
도 1은 데이터 처리 시스템(10)의 일 실시예를 도시한다. 데이터 처리 시스템(10)은 시스템 버스(20), 버스 마스터(12), 메모리 시스템(14), 버스 슬레이브(16), 버스 슬레이브(18), 버스 브리지(22), 버스 마스터(24), 메모리 시스템(26), 다른 슬레이브(들)(28), 및 시스템 버스(30)를 포함한다. 버스 마스터(12), 버스 슬레이브(16), 버스 슬레이브(18), 메모리 시스템(14), 및 버스 브리지(22)는 모두 시스템 버스(20)에 양방향성으로 연결된다. 버스 브리지(22), 버스 마스터(24), 메모리 시스템(26), 및 다른 슬레이브(들)(28)은 모두 시스템 버스(30)에 양방향성으로 연결된다. 도 1에는 2개의 슬레이브(16 및 18)만이 도시되어 있지만, 데이터 처리 시스템(10)은 시스템 버스(20)에 연결된 임의의 수의 슬레이브들을 포함할 수 있다. 마찬가지로, 임의의 수의 버스 마스터들 및 메모리 시스템들이 또한 시스템 버스(20)에 연결될 수 있다. 또한, 임의의 수의 버스 마스터들, 슬레이브들, 및 메모리 시스템들이 시스템 버스(30)에 연결될 수 있고 도 1에 도시된 것들에 제한되지 않는다.
일 실시예에서, 버스 마스터(12)는 마이크로프로세서, 디지털 신호 프로세서 등과 같은 프로세서일 수 있고, 또는 다이렉트 메모리 액세스(DMA) 유닛과 같은 임의의 다른 유형의 마스터 디바이스일 수 있다. 슬레이브들(16 및 18)은, 예를 들면, 버스 마스터(12)에 의해 액세스 가능한 메모리와 같은 임의의 유형의 슬레이브 디바이스, 또는 예를 들면, 유니버설 비동기 수신기 송신기(UART : universal asynchronous receiver transmitter), 실시간 클록(RTC : real time clock), 키보드 제어기 등과 같은 주변 장치일 수 있다. 메모리 시스템(14)은, 예를 들면, 랜덤 액세스 메모리(RAM)와 같은 임의의 유형의 메모리 시스템일 수 있고 데이터 및 명령을 저장하기 위한 기억 회로에 연결된 메모리 제어기를 포함할 수 있다.
동작 시에, 버스 마스터(12)는, 예를 들면, 메모리 시스템(14), 슬레이브(16), 또는 슬레이브(18)와 같은 시스템 버스(20)에 연결된 다른 디바이스들에, 또는 버스 브리지(22)를 경유하여 버스 마스터(24), 메모리 시스템(26), 또는 다른 슬레이브(들)(28)에의 액세스를 요구하는 액세스 요구들을 시스템 버스(20) 상에 올려놓는다. 버스 브리지(22)는 버스 마스터(12)가 시스템 버스(30) 상에 있는 디바이스들에도 액세스할 수 있도록 시스템 버스(20)와 시스템 버스(30)의 인터페이싱을 가능케 한다. 일 실시예에서, 시스템 버스(20)는 시스템 버스(30)와는 상이한 버스 프로토콜에 따라서 동작한다. 버스 브리지(22)는 당 기술분야에 공지된 대로 동작하므로, 여기에서 더 상세히 설명하지 않겠다. 마찬가지로, 버스 마스터(12), 메모리 시스템(14), 및 슬레이브들(16 및 18)에 대하여 위에 제시된 동일한 예들이 각각 버스 마스터(24), 메모리 시스템(26), 및 다른 슬레이브(들)(28)에 적용된다.
도 2는 본 발명의 일 실시예에 따른 버스 마스터(12)의 일부를 도시한다. 버스 마스터(12)는 명령 시퀀서(40), 명령 버퍼 기억 장치(66), 버스 인터페이스 유닛(BIU)(70), 및 실행 유닛(80)을 포함한다. BIU(70)는 시스템 버스(20)로 및 시스템 버스(20)로부터 정보를 제공하고, 명령 버퍼 기억 장치(66) 및 명령 시퀀서(40)에 양방향성으로 연결된다. 명령 버퍼 기억 장치(66)는 명령 시퀀서(40)에 양방향성으로 연결된다. 명령 시퀀서(40)는 명령 레지스터(IR)(46), 명령 디코더(44), 시퀀서 제어 로직(42), 액세스 취소 제어 레지스터(48), 취소 제어 로직(50), 및 어드레스 생성 로직(52)을 포함한다. IR(46)은 어드레스 생성 로직(52) 및 명령 디코더(44)에 연결되고, 명령 디코더(44)는 시퀀서 제어 로직(42)에 연결된다. 시퀀서 제어 로직(42)은 취소 제어 로직(50) 및 어드레스 생성 로직(52)에 연결되고, 취소 제어 로직(50)은 어드레스 생성 로직(52) 및 액세스 취소 제어 레지스터(48)에 연결된다. 실행 유닛(80)은 명령 디코더(44) 및 BIU(70)에 연결되고, 로드/저장 유닛(82)을 포함한다.
동작 시에, 명령 시퀀서(40)는 BIU(70)를 경유하여 예를 들면 메모리 시스템(14)(또는 다른 슬레이브들)으로부터 명령 및 데이터를 선인출(prefetch) 및 인출(fetch)하는 것을 제어한다. 예를 들면, 명령들은 명령 버퍼 기억 장치(66) 내로 선인출될 수 있고, 한편 데이터는 인출 또는 선인출되어 BIU(70)를 경유하여 실행 유닛(80)(예컨대, 로드/저장 유닛(82))에 제공될 수 있다. IR(46)은 명령 버퍼 기억 장치(66)로부터 디코딩될 다음 명령을 수신하고 그것을 명령 디코더(44)에 제공하고, 명령 디코더(44)는 명령을 디코딩한다. 그 후 명령은 그 명령의 실행 및 추가 처리를 위해 실행 유닛(80)에 제공된다. 디코딩 후의 명령의 처리는 당 기술분야에 잘 알려져 있으므로, 여기에서 더 상세히 설명하지 않겠다. 즉, 로드/저장 유닛(82)을 포함하는 실행 유닛(80)은 당 기술분야에 공지된 대로 동작한다.
시퀀서 제어 로직(42)은 명령 버퍼 기억 장치(66) 내로 명령을 선인출 및 인출하는 것을 제어한다. 예를 들면, 시퀀서 제어 로직(42)은 어드레스/속성(address/attributes)(74)을 통하여 BIU(70)에 어느 어드레스(및 대응 속성들)를 생성할지를 어드레스 생성 로직(52)에 지시한다. 예를 들면, 일 실시예에서, 시퀀서 제어 로직(42)은 특정 로케이션(location)에서 시작하여 명령들을 순차적으로 선인출하도록 어드레스 생성 로직(52)에 지시한다. 따라서, BIU(70)는 어드레스 생성 유닛(52)으로부터 어드레스/속성(74)을 통하여 선인출될 어드레스를 수신한다. 어드레스 생성 로직(52)은 요구(72)를 어서트(assert)하여 어드레스 및 대응 속성들이 어드레스/속성(74) 상에 존재한다는 것을 BIU(70)에 지시하고, BIU(70)는 요구(72)를 통하여 핸드셰이킹 신호(handshaking signals)를 명령 시퀀서(40)에 반환할 수 있다. 일 실시예에서, BIU(70)는 어드레스/속성(74)을 통하여 수신된 어드레스들 및 속성들이 놓이는 어드레스 큐(도시되지 않음)를 포함하고, 그 어드레스들 및 속성들은 시스템 버스(20)가 상기 어드레스 큐 내의 다음 어드레스에 대응하는 액세스 요구를 수신하기 위해 이용 가능할 때까지 어드레스 큐 내에 놓인다. BIU(70)는 미처리된 어드레스(58)를 명령 시퀀서(40)에 제공하여 그 명령 시퀀서(40)에게 (및 취소 제어 로직(50)에게) 시스템 버스(20) 상에 현재 미처리된(버스의 현재 데이터 위상이 완료될 때 활성화를 기다리는) 액세스 요구에 대응하는 어드레스를 지시한다. 따라서 미처리된 어드레스(58)는 어드레스/속성(74)을 통하여 BIU(70)에 제공된 가장 최근 어드레스보다 더 앞선 어드레스(earlier address)일 수 있다. 제어/상태(CTL/STATUS)(76) 및/또는 요구(72)를 통하여 BIU(70)와 명령 시퀀서(40) 간에 핸드셰이킹 제어 및 다른 제어 또는 상태 정보가 통신될 수 있다는 것에 유의하자.
일 실시예에서, 시퀀서 제어 로직은 또한 BIU(70)에 의해 실행 유닛(80)에 제공되는 데이터의 선인출 및 인출을 제어하기 위해 사용될 수도 있다는 것에 유의하자. 예를 들어, 명령 디코더(44)에 의해 로드 또는 저장 명령이 디코딩되면, 어드레스 생성 로직(52)은 데이터를 판독/기입할 적당한 어드레스를 생성할 수도 있고, 또는 로드/저장 유닛(82)으로부터 대응하는 어드레스를 수신할 수도 있다. 이 어드레스는 또한 어드레스/속성(74)을 통하여 BIU(70)에 제공될 수도 있다. 또한, 시퀀서 제어 로직(47)은 일련의 로케이션들로부터 데이터를 선인출하도록 어드레스 생성 로직(52)에 지시할 수 있다.
시퀀서 제어 로직(42)이, 예를 들면, 분기 명령을 검출함으로써, 흐름 변경을 검출하면, 시퀀서 제어 로직(42)은 명령 선인출 스트림을 흐름 변경의 타깃으로 전환한다. 즉, 시퀀서 제어 로직(42)은 타깃 어드레스에서 시작하는 선인출 어드레스들을 생성하도록 어드레스 생성 로직(52)에 지시하고, 여기서 어드레스 생성 로직(52)은 IR(46)로부터 제공된 정보에 기초하여 타깃 어드레스를 계산할 수 있다. 생성된 어드레스들은 BIU(70)에 제공되고 BIU(70)는 새로운 명령 선인출 스트림으로부터의 명령들을 명령 버퍼 기억 장치(66)에 제공한다. 일 실시예에서, 새로운 명령 선인출 스트림으로부터의 명령들은 IR(46) 및 명령 디코더(44)가 정확한 명령들에 작용하도록 기존의 명령 위에 겹쳐쓰기(overwrite)한다. 또한, 일 실시예에서, 명령 버퍼(66)가 비어 있으면, 데이터(인출 또는 선인출된 명령을 포함)는 직접 IR(46)에 제공되어, 명령 버퍼(66)를 우회(bypass)할 수 있다. 또한, 명령 시퀀서(40)와 명령 버퍼 기억 장치(66) 간에 제어/상태(64)를 통하여 핸드셰이킹 및 다른 상태 및/또는 제어 정보가 통신될 수 있다.
시퀀서 제어 로직(42)은, 명령 디코더(44)에 의해 디코딩된 현재의 명령에 기초하여, 시스템 버스(20) 상의 현재 미처리된 액세스 요구(미처리된 어드레스(58)에 대응)가 취소되어야 하는지를 판정할 수 있다. 예를 들면, 흐름 변경의 경우, 현재 미처리된 선인출 액세스 요구는 필요하지 않은 것으로 알려져 있다. 왜냐하면 이제 명령들은 새로운 타깃 어드레스로부터 시작하여 인출될 것이기 때문이다. 만일 현재 미처리된 그 액세스 요구가 먼저 완료되도록 허용되면, 마스터(12)는 스톨링할 것이다. 왜냐하면 흐름 변경 명령의 타깃은 (폐기될) 현재 미처리된 선인출 요구가 완료될 때까지 수락(accept)되어 활성화될 수 없기 때문이다. 또 다른 예에서, 시퀀서 제어 로직(42)은 데이터 액세스가 명령 선인출보다 우선순위를 얻게 하기를 원할 수 있다. 이 예에서, 현재 미처리된 액세스 요구가 명령 선인출 요구이면, 시퀀스 제어 로직(42)은, 데이터 액세스를 요구하는 명령이 명령 디코더(44)에 의해 디코딩 중인 것을 검출하면, 데이터 액세스가 더 빨리 수행될 수 있도록 현재 미처리된 액세스 요구(즉, 명령 선인출 요구)를 취소하기를 원할 수 있다.
시퀀서 제어 로직(42)이 시스템 버스(20) 상의 현재 미처리된 액세스 요구(미처리된 어드레스(58)에 대응)를 취소하기를 원하면, 시퀀서 제어 로직(42)은 현재 미처리된 액세스 요구가 취소되어야 한다는 것을 취소 제어 로직(50)에 지시하는 취소 요구(54)를 어서트한다. 일 실시예에서, 취소 제어 로직(50)은, 버스 마스터(12) 내에 저장된(예를 들면, 액세스 취소 제어 레지스터(48)에 저장된) 액세스 취소 제어 정보를 이용하여, 현재 미처리된 액세스 요구의 특성들에 기초하여 현재 미처리된 액세스 요구의 취소가 허용되는지를 판정한다. 이들 특성들은, 예를 들면, 현재 미처리된 액세스 요구에 대응하는 어드레스(예컨대, 미처리된 어드레스(58)), 액세스의 유형(예컨대, 판독/기입, 명령/데이터, 버스트/논-버스트(non-burst) 등), 액세스의 시퀀스 또는 순서, 액세스되고 있는 어드레스(예컨대, 어느 어드레스 범위가 액세스되고 있는지 또는 어느 디바이스가 액세스되고 있는지), 취소를 요구하는 버스 마스터(예컨대, 멀티마스터 시스템 내의), 또는 이들의 임의의 조합을 포함할 수 있다. 예를 들면, 일 실시예에서, 액세스 취소 제어 레지스터(48) 내에 저장된 정보는 특정 어드레스 범위들에 대응할 수 있다. 즉, 취소 제어 로직(50)에 제공되는 정보는 현재 미처리된 액세스 요구의 어드레스에 좌우될 수 있다. 이 실시예에서, 어드레스 비교 로직(60)은 미처리된 어드레스(58)(현재 미처리된 액세스 요구에 대응)를 다양한 어드레스 범위들과 비교하기 위해 이용될 수 있다. 액세스 취소 제어 레지스터(48), 액세스 비교 로직(60) 및 어드레스 범위들, 및 취소 요구를 허용 또는 불허하기 위해 이용되는 현재 미처리된 액세스 요구의 특성들에 대해서는 아래에서 도 3-5를 참조하여 더 상세히 설명한다.
또 다른 실시예에서, 취소 제어 로직(50)은, 버스 마스터(12) 내에 저장된(예를 들면, 액세스 취소 제어 레지스터(48)에 저장된) 액세스 취소 제어 정보를 이용하여, 현재 미처리된 액세스 요구에 후속하는 새로이 요구된 액세스의 특성들에 기초하여 현재 미처리된 액세스 요구의 취소가 허용되는지를 판정한다. 이들 특성들은, 예를 들면, 새로운 액세스 요구에 대응하는 어드레스, 액세스의 유형(예컨대, 판독/기입, 명령/데이터, 버스트/논-버스트 등), 액세스의 시퀀스 또는 순서, 액세스되고 있는 어드레스(예컨대, 어느 어드레스 범위가 액세스되고 있는지 또는 어느 디바이스가 액세스되고 있는지), 취소를 요구하는 버스 마스터(예컨대, 멀티마스터 시스템 내의), 또는 이들의 임의의 조합을 포함할 수 있다. 예를 들면, 일 실시예에서, 액세스 취소 제어 레지스터(48) 내에 저장된 정보는 특정 어드레스 범위들에 대응할 수 있다. 즉, 취소 제어 로직(50)에 제공되는 정보는 새로운 액세스 요구의 어드레스에 좌우될 수 있다. 이 실시예에서, 어드레스 비교 로직(60)은 새로이 요구된 어드레스를 다양한 어드레스 범위들과 비교하기 위해 이용될 수 있다. 상술한 바와 같이, 액세스 취소 제어 레지스터(48), 액세스 비교 로직(60) 및 어드레스 범위들, 및 취소 요구를 허용 또는 불허하기 위해 이용되는 현재 미처리된 액세스 요구의 특성들에 대해서는 아래에서 도 3-5를 참조하여 더 상세히 설명한다. 그러나, 현재 미처리된 액세스 요구와 관련하여 도 3-5에 대하여 제시된 설명들은 후속 액세스 요구에도 유사하게 적용될 것이라는 점에 유의하자.
다시 도 2를 참조하여, 취소 제어 로직(50)이 취소가 허용되는 것으로 판정하면, 취소 제어 로직(50)은 취소 지시자(retraction indicator)(70)를 어서트하여 시스템 버스(20) 상의 현재 미처리된 액세스 요구가 취소되어야 함을 BIU(70)에 통지한다. 일 실시예에서, 현재 미처리된 액세스 요구는, 현재 미처리된 액세스 요구를 시스템 버스(20)에의 새로운 액세스 요구로 치환 또는 대체함으로써 취소된다. 이 새로운 액세스 요구는, 예를 들면, 위에서 논의된, BIU(70)의 어드레스 큐 내에서 기다리는 다음 액세스 요구일 수도 있고, 또는 BIU(70)에 공급된 새로이 생성된 요구일 수도 있다. 대안 실시예에서, BIU(70)는 명령 버퍼 기억 장치(66)에 미리 정해진 값을 즉시 반환함으로써 현재 미처리된 액세스 요구를 취소할 수 있다. 이 미리 정해진 값은, 폐기될 것이므로, 임의의 더미 값일 수 있다. 이런 식으로, 현재 미처리된 액세스 요구는 신속히 완료되고, 마스터(12)를 스톨링하지 않고, 다음 액세스 요구가 개시될 수 있다. 다른 대안 실시예들은 다른 방법들을 이용하여 현재 미처리된 액세스 요구를 취소할 수 있다. 몇몇 실시예들에서는, 명령 버퍼 기억 장치(66)에 아무런 값도 반환되지 않는다.
그러나, 취소 제어 로직(50)이 현재 미처리된 액세스 요구의 취소를 허용하지 않으면, 취소 제어 로직(50)은 취소 지시자(62)를 어서트하지 않는다(즉, 그것은 니게이트(negate)하거나, 또는 계속해서 니게이트한다). 이 경우, 마스터(12)는 흐름 변경으로 인해 새로운 명령 선인출 스트림을 시작하기 전에 현재 미처리된 액세스 요구가 완료될 때까지 기다린다. 취소 제어 로직(50)은 또한 취소가 허용되지 않았음을 어드레스 생성 로직(52)에 지시할 수 있다.
따라서, 일 실시예에서, 액세스 취소 제어 레지스터(48) 및 취소 제어 로직(50)은, 예를 들면, 스톨을 저감 또는 방지하기 위하여 버스 프로토콜을 선택적으로 무효화하기 위해 이용될 수 있다는 것에 유의하자. 일 실시예에서, 시스템 버스(20)의 버스 프로토콜은, 개시되어 시스템 버스(20) 상에 현재 미처리된 기존 인출 액세스 요구가 완료되도록(완료와 동시에 폐기될지라도) 허용되어야 함을 요구할 수도 있다. 예를 들면, 흐름 변경의 경우, 현재 미처리된 액세스 요구는 필요하지 않은 것으로 알려져 있다. 왜냐하면 이제 명령들은 새로운 타깃 어드레스로부터 시작하여 인출될 것이기 때문이다. 그러나, 그럼에도 시스템 버스(20)의 버스 프로토콜은, 시스템 버스(20) 상의 현재 미처리된 액세스 요구가 완료되어, 마스터(12)가 스톨링하게 하는 것을 요구할 수 있다. 그러나, 상술한 바와 같이, 시퀀서 제어 로직(42)은, 이 스톨링을 방지하기 위해 현재 미처리된 액세스 요구가 취소되는 것을 요구할 수 있다. 이 경우, 취소 제어 로직(50)은, 액세스 취소 제어 레지스터들 내에 저장된 정보 및 현재 미처리된 액세스 요구의 특성들에 기초하여, 현재 미처리된 액세스 요구를 취소하고 그것이 정상적으로 완료되듯이 완료되지 못하게 함으로써 버스 프로토콜을 선택적으로 무효화할 수 있다. 따라서, 취소가 허용되는 경우에, 버스 프로토콜은 스톨을 방지하기 위해 무효화된다. 다른 실시예들에서는, 상이한 유형의 무효화 제어 레지스터들을 이용하여 버스 프로토콜의 다른 애스팩트들이 무효화될 수 있다.
본 발명의 일 실시예에 따른, 현재 미처리된 액세스 요구의 취소가 도 6의 흐름(140)에 도시되어 있다. 흐름(140)은 블록 144에서 시작하여, 먼저 액세스 요구가 시스템 버스(20) 상에 현재 미처리된 것으로 판정된다(그렇지 않다면, 취소할 현재 미처리된 액세스 요구가 없다). 그 후 흐름은 판정 마름모꼴 146으로 진행하여 현재 미처리된 액세스 요구가 취소되어야 하는지가 판정된다. 따라서, 상술한 바와 같이, 시퀀서 제어 로직(42)이 현재 미처리된 액세스 요구가 취소되어야 하는 것으로 결정할 수 있다. 만일 그렇지 않다면, 흐름은 블록 148로 진행하여 시스템(예컨대, 데이터 처리 시스템(10))이 현재 미처리된 액세스 요구가 완료되기를 기다린다. 그러나, 현재 미처리된 액세스 요구가 취소되어야 한다면, 흐름은 판정 마름모꼴 146으로부터 블록 150으로 진행하여 현재 미처리된 액세스 요구에 대응하는 취소 요구(예컨대, 취소 요구(54))가 생성된다. 블록 150 후에, 흐름은 판정 마름모꼴 152로 진행하여 현재 미처리된 액세스 요구의 특성들에 기초하여 현재 미처리된 액세스 요구의 취소가 (예컨대, 취소 제어 로직(50)에 의해) 허용되는지가 판정된다. 만일, 판정 마름모꼴 152에서, 취소가 허용되면, 흐름은 블록 156으로 진행하여 취소 요구가 허용되고(예컨대, 취소 지시자(62)가 어서트되고) 현재 미처리된 액세스 요구가 취소된다. 그러나, 취소가 허용되지 않으면, 흐름은 블록 154로 진행하여 취소 요구가 거부되고 시스템은 현재 미처리된 액세스 요구가 완료되기를 기다린다. 따라서, 흐름(140)은 시스템 버스(20) 상에 현재 미처리된 액세스 요구가 있을 때마다 이용될 수 있고, 이 현재 미처리된 액세스 요구는 선택적으로 취소될 수 있다.
다시 도 2를 참조하여, 일 실시예에서, 취소 제어 로직(50)은 액세스 취소 제어 레지스터(48) 내에 저장된 액세스 취소 제어 정보를 이용하여 현재 미처리된 액세스 요구의 특성들에 기초하여 현재 미처리된 액세스 요구가 허용되는지 여부를 판정한다. 도 3-5는 취소가 허용되는 조건들(또는, 대안적으로, 취소가 불허되는 조건들)을 지시하는 액세스 취소 제어 레지스터(48)의 다양한 실시예들을 도시한다. 도 3의 실시예를 참조하면, 액세스 취소 제어 레지스터(48)는 미처리된 액세스들의 유형들, 예컨대, 명령 대 데이터, 판독 대 기입 등에 대응하는 제어 정보를 제공한다. 예를 들면, 도 3의 액세스 취소 제어 레지스터(48)는 3개의 필드: 명령 판독 취소 제어 필드(100), 데이터 판독 취소 제어 필드(102), 및 데이터 기입 취소 제어 필드(104)를 포함한다. 일 실시예에서, 각 필드는 단일 비트이고, 이 비트는, 어서트될 때, 해당 유형의 액세스가 허용되는 것을 지시한다. 예를 들면, 명령 판독 취소 제어 필드(100)가 어서트되고, 현재 미처리된 액세스 요구가 명령 판독 유형 액세스(이것은, 예를 들면, 현재 미처리된 액세스 요구에 대응하는 속성들에 의해 지시되는데, 일 실시예에서는, 미처리된 어드레스(58)에도 속성들이 부가됨)이면, 현재 미처리된 액세스 요구의 취소가 허용된다. 그러나, 명령 판독 취소 제어 필드(100)가 니게이트되었으면, 그 취소는 거부될 것이다. 따라서, 현재 미처리된 액세스 요구의 특성들(예컨대, 액세스 요구의 유형이 판독인지 기입인지 데이터인지 명령인지)에 따라서, 취소 제어 로직(50)은 액세스 취소 제어 레지스터(48) 내에 저장된 액세스 취소 제어 정보를 이용하여 시퀀서 제어 로직(42)으로부터의 취소 요구를 허용하거나 거부할 수 있다.
도 3의 실시예에서, 액세스의 유형은 액세스되고 있는 디바이스와 상관없이 취소를 허용할지 여부를 지시하기 위해 이용된다는 것에 유의하자. 예를 들면, 명령 판독 취소 제어 필드가 어서트되면, 그 액세스가 메모리 시스템(14)에 대한 것이든, 슬레이브(16)에 대한 것이든, 슬레이브(18)에 대한 것이든 상관없이, 명령 판독 유형 액세스에 대하여 취소가 허용된다. 그러나, 아래에서 설명될 대안 실시예에서는, 액세스의 유형에 더하여 액세스되고 있는 디바이스(예컨대, 액세스되고 있는 특정 어드레스 범위)에 기초하여 취소가 허용 또는 거부될 수 있다.
다른 대안 실시예에서, 도 3의 필드들은 현재 미처리된 요구에 후속하는 새로운 요구의 특성들에 대응할 수 있고, 이 경우 취소 제어 로직(50)은 새로운 후속 요구에 대응하는 액세스 취소 제어 정보를 이용하여 시퀀서 제어 로직(42)으로부터의 (현재 미처리된 액세스 요구를 취소하는) 취소 요구를 허용 또는 거부할 수 있다. 예를 들면, 이 실시예에서, 명령 판독 취소 제어 필드(100)가 어스트되고, 현재 미처리된 액세스 요구에 후속하는 새로운 액세스 요구가 명령 판독 유형 액세스이면, 현재 미처리된 액세스 요구의 취소가 허용된다.
도 4는 액세스 취소 제어 레지스터(48)의 다른 실시예를 도시하는 것으로, 이 실시예에서 액세스 취소 제어 레지스터(48)는 다수(예컨대, 4개)의 어드레스 범위 취소 제어 필드들: 어드레스 범위 1 취소 제어 필드(106), 어드레스 범위 2 취소 제어 필드(108), 어드레스 범위 3 취소 제어 필드(110), 및 어드레스 범위 4 취소 제어 필드(112)를 포함한다. 따라서 도 4의 각 취소 제어 필드는 특정 어드레스 범위에 대응할 수 있다(일 실시예에서, 액세스 취소 제어 레지스터(48)는 임의의 수의 어드레스 범위 취소 제어 필드들을 포함할 수 있다). 예를 들면, 어드레스 범위는 (도 1의 메모리 시스템(14)에서와 같은) 메모리 내의 로케이션들의 모든 또는 특정 범위를 식별할 수도 있고, 또는 슬레이브(16) 또는 슬레이브(18) 내와 같은, 시스템 버스(20)에 연결된 임의의 디바이스 내의 로케이션들의 모든 또는 특정 범위를 식별할 수도 있다. 예를 들면, 일 실시예에서, 어드레스 범위들 중 하나는 시스템 버스(20)에 연결된 버스 브리지(22)의 어드레스 범위에 대응할 수 있고, 이 경우 어드레스 버스는 시스템 버스(30)에 연결된 임의의 디바이스에 대하여 취소가 허용되는지 거부되는지를 지시할 수 있다. 대안적으로, 어드레스 범위들 중 하나는 특히 (버스 브리지(22)를 경유하여 시스템 버스(20)에 연결되는) 시스템 버스(30)에 연결된 디바이스들 중 임의의 디바이스 내의 로케이션들의 범위에 대응할 수 있다.
일 실시예에서, 어드레스 범위 취소 제어 필드들 각각에 대한 어드레스 범위들은 도 2의 어드레스 비교 로직(60)과 같은 어드레스 비교 로직 내에서 정의된다. 어드레스 범위들은 예를 들면 상부 경계 및 하부 경계를 이용하여 또는 시작 로케이션 및 마스크를 이용하여 정의될 수 있다. 도 2의 실시예를 참조하면, 어드레스 비교 로직(60)은 따라서 (시퀀서 제어 로직(42)이 취소하기를 원할 수 있는 현재 미처리된 어드레스에 대응하는) 미처리된 어드레스(58)를 정의된 어드레스 범위들 각각과 비교하여, 만일 있다면, 어느 범위에 미처리된 어드레스(58)가 속하는지를 판정할 수 있다. 예를 들어, 미처리된 어드레스(58)가 어드레스 범위 2에 속한다면, 액세스 취소 제어 레지스터(48)(도 4)의 어드레스 범위 2 취소 제어 필드(108)가 미처리된 어드레스(58)의 취소가 허용되는지를 지시하기 위해 사용된다. 예를 들어, 그것이 어서트되면, 취소가 허용되지만, 그것이 니게이트되면, 취소가 거부된다. 그러나, 미처리된 어드레스(58)가 도 4의 실시예에 대응하는 범위 1-4의 어느 것에도 속하지 않는다면, 미처리된 어드레스(58)의 취소는 허용되지 않는다. 대안 실시예에서, 어드레스 범위 취소 제어 필드들에 의해 정의된 범위들은 취소가 허용되지 않는 범위들을 정의할 수 있고, 그 밖의 모든 어드레스 로케이션들은 취소 가능할 수 있다.
취소가 허용되는지 거부되는지의 판정이 액세스 유형 및 어드레스 범위들 양쪽 모두에 기초하도록 도 3 및 4의 실시예들이 조합될 수도 있다는 것에 유의하자. 예를 들면, 일 실시예에서, 각 어드레스 범위에 대하여, 대응하는 명령 판독, 데이터 판독, 및 데이터 기입 제어 필드(또는 그것의 서브세트)가 취소가 허용되는 때를 더 정의하기 위해 사용될 수 있다. 예를 들면, 도 1을 참조하면, 어드레스 범위 취소 제어 필드는 슬레이브(16)에 대응할 수 있고, 따라서 슬레이브(16)에 대하여 액세스 요구가 행해지면, 그 액세스 요구에 대응하는 미처리된 어드레스는 이 범위에 속할 것이다. 또한, 슬레이브(16)에 대응하는 특정 어드레스 범위에 대하여, 사용자가 데이터 판독 및 기입에 대해서만 취소를 허용하고, 명령 판독에 대해서는 취소를 허용하지 않기를 원할 수 있다. 이 경우, 그 특정 어드레스 범위에 특정한 데이터 판독, 데이터 기입, 및 명령 판독 취소 제어 필드들은 액세스가 허용되는지를 판정하기 위해 사용된다. 따라서, 현재 미처리된 어드레스의 특성들의 임의의 조합이 취소가 허용되는지를 판정하기 위해 사용될 수 있다.
도 5는 액세스 제어 레지스터(48)의 또 다른 실시예를 도시하는 것으로, 이 실시예에서는 이전의 액세스 유형에 기초하여 또는 액세스 유형들의 순서 또는 시퀀스에 기초하여 취소가 허용되거나 거부된다. 예를 들면, 도 5의 실시예에서, 액세스 취소 제어 레지스터(48)는 명령 후속 명령(IFI : instruction following instruction) 취소 제어 필드(114), 명령 후속 데이터 판독(DRFI : data read following instruction) 취소 제어 필드(116), 명령 후속 데이터 기입(DWFI) 취소 제어 필드(118), 데이터 판독 후속 명령(IFDR : instruction following data read) 취소 제어 필드(120), 데이터 판독 후속 데이터 판독(DRFDR : data read following data read) 취소 제어 필드(122), 데이터 판독 후속 데이터 기입(DWFDR) 취소 제어 필드(124), 데이터 기입 후속 명령(IFDW) 취소 제어 필드(126), 데이터 기입 후속 데이터 판독(DRFDW) 취소 제어 필드(128), 및 데이터 기입 후속 데이터 기입(DWFDW) 취소 제어 필드(129)를 포함한다. 따라서, 도 5의 실시예에서는, 현재 미처리된 액세스 및 이전의 액세스 유형에 기초하여 취소가 허용되거나 거부된다. 예를 들면, 시퀀서 제어 로직(42)은 이전의 액세스 유형을 알고 있을 수 있고, 따라서 (미처리된 어드레스(58)에 대응하는) 현재 미처리된 액세스 요구의 취소가 요구될 때, 그것은 이전의 액세스에 기초하여 허용 또는 거부될 수 있다. 예를 들어, 이전의 액세스가 데이터 기입이었고, 취소되어야 할 현재 미처리된 액세스가 명령 액세스(즉, 명령 판독)이면, IFDW 취소 제어 필드(126)가 취소 제어 로직(50)에 의해 취소가 허용되는지를 판정하기 위해 이용된다. 따라서, 필드(126)가 어서트되면, 현재 미처리된 액세스의 취소가 허용되지만, 니게이트되면, 취소가 거부된다. 다른 실시예에서, 도 5에 기술된 필드들은 새로이 요구된 액세스가 현재 미처리된 액세스의 특성들에 관련될 때 새로이 요구된 액세스의 특성들에 기초하여 적용될 수 있다. 예를 들면, 현재 미처리된 액세스가 명령 판독이고, 새로이 요구된 액세스가 데이터 기입이면, 현재 미처리된 명령 액세스의 취소가 허용되는지를 판정하기 위해 DWFI 취소 제어 필드(118)가 검사될 수 있다.
도 3 및 4의 실시예들에서와 같이, 도 5의 필드들(114-128)에 의해 정의된 특성들은, 예를 들면, 도 3의 필드들(100-104) 및/또는 도 4의 필드들(106-112)에 의해 정의된 특성들과 같은 다른 특성들과 조합하여 사용될 수 있다. 또한, 액세스 취소 제어 레지스터(48)는 필요에 따라 임의의 수의 필드들을 갖는 임의의 수의 레지스터들(하나 또는 그 이상)을 포함할 수 있다. 또한, 필요에 따라 임의의 수의 어드레스 범위들이 정의될 수 있고, 그들의 경계는 마스터(12) 내의 취소 제어 로직(50) 내에 또는 다른 어딘가에 저장된다. 또한, 도 3-5의 취소 제어 필드들은 취소가 허용되는지 거부되는지를 지시하기 위해 어서트되거나 니게이트될 수 있는 단일-비트 필드들로서 기술되었다는 것에 유의하자. 그러나, 대안 실시예들에서, 각 필드는 취소의 허용 또는 취소의 레벨을 지시하기 위해 희망에 따라 임의의 수의 비트들을 포함할 수 있다. 또한, 액세스 취소 제어 레지스터(48) 내에 저장된 액세스 취소 제어 정보를 저장하기 위해 임의의 유형의 기억 회로가 사용될 수 있다.
또한 대안 실시예들에서, 도 3-5에 기술된 현재 미처리된 액세스의 특성들을 이용하기보다는, 대신에 현재 미처리된 액세스 요구에 후속하는 새로운 액세스의 특성들을 이용하여 유사한 방식으로 현재 미처리된 액세스 요구의 액세스 취소가 허용되는지를 판정할 수 있다는 것에 유의하자. 따라서, 이들 대안 실시예들에서, 도 3-5의 필드들 내의 정보는 현재 미처리된 액세스 요구의 액세스 취소가 허용되는지를 판정하기 위하여 현재 미처리된 액세스 요구보다는 새로운 액세스 요구에 대응할 것이다. 또 다른 대안 실시예에서, 임의의 수의 액세스 취소 제어 레지스터들 또는 그 액세스 취소 제어 레지스터(들) 내의 필드들이 이용될 수 있고, 이 경우 현재 미처리된 액세스 요구의 선택적 취소는 현재 미처리된 액세스 요구 및 새로운 액세스 요구 양쪽 모두의 특성들에 기초할 수 있다. 예를 들면, 액세스 취소 제어 레지스터(48)는 현재 미처리된 액세스 어드레스의 특성들에 대응하는 하나의 레지스터 또는 레지스터들의 세트를 포함할 수 있고 새로운(즉, 후속) 액세스 요구의 특성들에 대응하는 다른 하나의 레지스터 또는 레지스터들의 세트를 포함할 수 있다.
위에 제시된 설명들은 단일 마스터 시스템(예컨대, 도 1의 데이터 처리 시스템(10))을 참조하여 설명되었다는 것에 유의하자. 그러나, 대안 실시예에서, 데이터 처리 시스템(10)은 다수의 버스 마스터들을 포함할 수 있다. 이 실시예에서, 취소가 허용되는지 거부되는지를 판정하기 위해 사용되는 현재 미처리된 액세스의 특성들은 또한 어느 버스 마스터가 액세스 요구를 행하였는지도 포함할 수 있다. 예를 들면, 도 3-4를 참조하여 기술된 것들과 같은 별도의 어드레스 취소 제어 레지스터(또는 어드레스 취소 제어 레지스터들의 세트)가 이용될 수 있고, 이 경우 각 레지스터(또는 레지스터들의 세트)는 서로 다른 버스 마스터에 대응한다. 이 실시예에서, BIU(70)는 또한 어느 버스 마스터가 (미처리된 어드레스(58)에 대응하는) 현재 미처리된 액세스를 행하였는지를 취소 제어 로직(50)에 지시할 수 있다. 예를 들면, 각 버스 마스터는 각 액세스 요구와 함께 시스템 버스(20)를 경유하여 제공된 대응하는 고유의 버스 마스터 식별자를 가질 수 있다. 또한, 각 버스 마스터는 필요에 따라 서로 다른 대응하는 액세스 취소 제어 레지스터들 및/또는 필드들을 가질 수 있다는 것에 유의하자.
따라서, 도 1-6에 기술된 실시예들은 현재 미처리된 액세스의 하나 또는 그 이상의 특성들, 또는 현재 미처리된 액세스 요구에 후속하는 새로운 액세스 요구의 하나 또는 그 이상의 특성들, 또는 현재 미처리된 액세스 요구와 새로운 액세스 요구 각각의 하나 또는 그 이상의 특성들에 기초하여 현재 미처리된 액세스의 선택적 취소를 가능케 한다는 것을 알 수 있다. 이런 식으로, 버스 마스터(12)는 그것의 액세스 요구들을 더 잘 제어하여, 스톨을 저감시키고 성능을 향상시킬 수 있다. 상기 하나 또는 그 이상의 특성들은, 예를 들면, 액세스의 유형(예컨대, 판독/기입, 명령/데이터, 버스트/논-버스트 등), 액세스의 시퀀스 또는 순서, 액세스되고 있는 어드레스(예컨대, 어느 어드레스 범위가 액세스되고 있는지 또는 어느 디바이스가 액세스되고 있는지), 취소를 요구하는 버스 마스터(예컨대, 멀티마스터 시스템 내의), 또는 이들의 임의의 조합을 포함할 수 있다. 또한, 도 1-6을 참조하여 위에 설명된 선택적 취소는 액세스마다(on an access-by-access basis) 동적으로 수행될 수 있다는 것에 유의하자. 또한, 액세스의 특성들은, 위에 설명된 선택적 취소와 유사하게, 버스 프로토콜의 다른 애스팩트들을 무효화하기 위해 사용될 수 있다. 예를 들면, 일단 요구된 후에 버스트 액세스가 완전히 완료되는지, 또는 그 버스트 액세스가 완료 전에 중단(interrupt)될 수 있는지.
도 1-6을 참조하여 위에 설명된 액세스 취소의 개념들은 또한 현재 미처리된 액세스 요구의(및/또는 현재 미처리된 액세스 요구에 후속하는 새로운 액세스의) 하나 또는 그 이상의 특성들에 기초하여 현재 미처리된 액세스들을 취소할 수 있는 버스 중재기(bus arbiters)에도 적용될 수 있다. 예를 들면, 도 7은 본 발명의 일 실시예에 따른, M개의 마스터를 N개의 슬레이브에 연결할 수 있는 시스템 상호접속(200)을 도시한다. 예를 들면, 일 실시예에서, 시스템 상호접속(200)은 크로스바 스위치로서 구현된다. 도시된 실시예에서, 마스터 포트들 0-2의 각각은 슬레이브 포트들 0 및 1의 각각과 통신할 수 있다. 각 마스터 포트는 그것에 연결된 하나 또는 그 이상의 마스터를 가질 수 있고, 슬레이브 포토들 각각은 그것에 연결된 하나 또는 그 이상의 슬레이브를 가질 수 있다. 하나의 마스터 또는 슬레이브가 특정 포트에 연결되면, 동일한 마스터 또는 슬레이브 포트에 각각 연결된 다수의 마스터들 또는 슬레이브들 간에 중재하기 위해 추가적인 중재 로직(도시되지 않음)이 요구될 수 있다는 것에 유의하자. 또한, 마스터 포트들에 연결된 마스터들의 유형들 및 슬레이브 포트들에 연결된 슬레이브들의 유형들은 버스 마스터(12) 및 슬레이브들(16 및 18)을 참조하여 위에 설명된 것과 동일한 유형들일 수 있다는 것에 유의하자. 여기에서 논의되는 실시예들에서는, 각 마스터 포트가 그것에 연결된 대응하는 마스터를 갖는다고 가정하겠다. 예를 들면, 도시되지는 않았지만, 마스터 포트 0은 그것에 연결된 마스터 0을 갖고, 마스터 포트 1은 그것에 연결된 마스터 1을 갖고, 마스터 포트 2는 그것에 연결된 마스터 2를 갖는다. 마찬가지로, 각 슬레이브 포트는 그것에 연결된 대응하는 슬레이브를 갖는다고 가정하겠다. 이 경우, 예를 들면, 슬레이브 포트 0은 슬레이브 0에 연결되고 슬레이브 포트 1은 슬레이브 1에 연결된다.
또한, 데이터 처리 시스템(10)과 같은 임의의 데이터 처리 시스템이 시스템 버스 대신 시스템 상호접속(200)과 같은 시스템 상호접속을 이용할 수 있다는 것에 유의하자. 예를 들면, 다시 도 1을 참조하면, 시스템 상호접속(200)이 시스템 버스(20) 대신에 이용될 수 있고, 이 경우 버스 마스터(12)는 마스터 포트들 0-2 중 하나에 연결될 수 있고, 슬레이브(16)는 슬레이브 포트 0 또는 1 중 하나에 연결될 수 있고 슬레이브(18)는 슬레이브 포트 0 또는 1 중 다른 하나에 연결될 수 있다. 또한, 버스 마스터(12)와 같은 추가적인 마스터들이 마스터 포트들 0-2 중 나머지 2개에 연결될 수 있다. 또한 도 7은 3개의 마스터 포트들 및 2개의 슬레이브 포트들을 도시하지만, 시스템 상호접속(200)은 필요에 따라 임의의 수의 마스터 포트 및 임의의 수의 슬레이브 포트를 포함할 수 있다는 것에 유의하자.
도 7의 시스템 상호접속(200)에서는, 후속 요구를 위하여 마스터로부터 슬레이브 포트로의 액세스 요구들을 취소하는 것이 바람직할 수 있다. 예를 들면, 마스터의 액세스 요구가 진행중(예컨대, 현재 액세스 요구의 어드레스가 슬레이브 포트 상에 드라이브되거나, 슬레이브에 의해 수취(take) 또는 수락(accept)되어, 대응하는 데이터가 슬레이브로부터 반환되는 것을 기다리고 있는 중)일 수 있다. 그러나, 데이터의 반환이 지연되어, 진행중인 액세스의 완료를 위해 요구되는 대기 상태들의 수가 증가할 수 있다. 이 액세스 요구가 진행중이고 반환 데이터를 기다리는 동안, 동일한 마스터 또는 상이한 마스터가 다른 액세스 요구를 동일 슬레이브 포트에 제공할 수 있다. 이 액세스 요구는 시스템 상호접속 내의 중재 로직에 의해 승인(grant)되어, 슬레이브 포트 상에 드라이브되는 현재 미처리된 액세스 요구가 될 수 있다. 그러나, 그것이 승인되어 슬레이브 포트 상에 드라이브될지라도, 이 현재 미처리된 액세스 요구는 현재 진행중인 액세스 요구가 완료될(즉, 데이터가 반환될) 때까지는 슬레이브에 의해 수행될 수 없다. 따라서, 현재 미처리된 액세스 요구의 특성들(및/또는 현재 미처리된 액세스 요구에 후속하는 새로운 액세스 요구의 특성들)에 기초하여, 예를 들어, 후속 액세스 요구가 보다 높은 우선순위를 갖는다면 동일 포트에 대한 후속 액세스 요구를 위하여 현재 미처리된 액세스 요구를 취소하는 것이 바람직할 수 있다. 취소된 현재 미처리된 액세스 요구는 그 후 후속 액세스 요구가 슬레이브 포트 상에 드라이브된 후까지 슬레이브 포트에 대응하는 슬레이브 포트 로직 내에 저장될 수 있다. 대안적으로, 취소된 현재 미처리된 액세스 요구는 그 후 그것이 슬레이브 포트 상에 다시 드라이브되는 나중 시점까지 저장될 수 있다. 버스 중재에 관한 액세스 취소의 더 상세한 내용에 대해서는 도 7-12를 참조하여 설명하겠다.
도 7의 시스템 상호접속(200)은 마스터 포트 0-2, 슬레이브 포트 0 및 1, 및 슬레이브 포트 0 로직, 및 슬레이브 포트 1 로직을 포함하고, 마스터 포트 0-2의 각각은 슬레이브 포트 0 로직을 경유하여 슬레이브 포트 0에 연결되고 마스터 포트 0-2의 각각은 슬레이브 포트 1 로직을 경유하여 슬레이브 포트 1에 연결된다. 슬레이브 포트 0 로직은 중재기 로직(216), 취소 제어 로직(218), 마스터 우선순위 레지스터(210), 파킹(parking) 제어 레지스터(212), 액세스 취소 제어 레지스터(214), 및 액세스 선택기(208)를 포함한다. 마스터 포트 0-2의 각각은, 각각, 도체들(202-204)을 경유하여, 슬레이브 포트 0 로직의 액세스 선택기(208), 중재기 로직(216), 및 취소 제어 로직(218)에 및 슬레이브 포트 1 로직에 연결된다. 액세스 선택기(208)는 (마스터 포트 0-2에 각각 대응하는) 도체들(202-204) 중 하나로부터의 정보를 슬레이브 포트 0의 도체들(205)에 제공한다. 즉, 도체들(205)은 대응하는 슬레이브, 슬레이브 0에 연결되는 슬레이브 버스로 불릴 수도 있다. 중재기 로직(216)은 현재의 승인(current grant)(220)을 액세스 선택기(208) 및 취소 제어 로직(218)에 제공한다. 중재기 로직(216)은 또한 미처리된 승인(pending grant)(222) 및 취소 요구(224)를 취소 제어 로직(218)에 제공하고 취소 제어 로직(218)으로부터 취소 지시자(226)를 수신한다. 중재기 로직(216)은 마스터 우선순위 레지스터(210) 및 파킹 제어 레지스터(212)에 연결된다. 취소 제어 로직(218)은 마스터 우선순위 레지스터(210), 파킹 제어 레지스터(212), 및 액세스 취소 제어 레지스터(214)에 연결된다.
슬레이브 포트 1 로직 내의 회로는 도시되어 있지 않지만, 아래에서 더 상세히 설명되는 슬레이브 포트 0 로직 내의 회로와 유사하다는 것에 유의하자. 즉, 슬레이브 포트 1 로직의 동작은 슬레이브 포트 0 로직의 동작과 유사하다.
동작 시에, 슬레이브 포트 0 로직은 마스터 포트 0-2에 연결된 마스터들로부터 슬레이브 포트 0으로의 액세스들을 제어한다. 중재기 로직(216)은 도체들(202-204)을 경유하여 슬레이브 포트 0으로의 액세스 요구들을 수신하고 어느 것들을 언제 승인할지를 판정한다. 그 후 중재기 로직(216)은 액세스 요구가 승인된 것을 지시하는 제어 신호인 현재의 승인(220)을 액세스 선택기(208)에 제공한다. 액세스 선택기(208)는, 현재의 승인(220)에 기초하여, 마스터 포트들 0-2 중 하나로부터 슬레이브 포트 0으로의 승인된 액세스 요구로부터의 정보를 제공하여, 그 액세스 요구가 현재 승인된 마스터로부터의 어드레스, 데이터, 및 제어 신호들을 슬레이브 0에 연결된 도체들(205)에 드라이브한다. 어느 액세스 요구를 승인할지를 판정할 때, 중재기 로직(216)은 마스터 우선순위 레지스터(210) 및 파킹 제어 레지스터(212)를 이용할 수 있다. 그 액세스 요구가 현재 승인된 마스터로부터의 정보를 도체들(205)에 드라이브한 후에, 슬레이브 0은 그 액세스 요구를 수취 또는 수락한다. 슬레이브 0은, 액세스 요구를 수취하면, 그 액세스 요구에 대응하는 요구된 데이터를 제공하거나 수신하기 위하여 현재 승인된 액세스 요구에 대응하는 어드레스를 수신하여 저장한다. 일단 어드레스가 수취되면, 그것은 현재 진행중인 액세스 요구가 된다.
그 후, 중재기 로직(216)은 새로운 액세스 요구에 대응하는 현재의 승인(220)을 액세스 선택기(208)에 제공함으로써 그 새로운 액세스 요구를 승인할 수 있다. (마스터 0-2 중 하나로부터의) 이 새로운 액세스 요구에 대응하는 정보는 그 후 액세스 선택기(208)에 의해 슬레이브 0에 연결된 도체들(205)에 드라이브된다. 그러나, 이 새로운 액세스 요구는 이전에 승인된 액세스 요구가 여전히 진행중인 동안은 현재 미처리된 액세스 요구인 채로 유지된다. 즉, 도시된 실시예에서, 새로운 액세스 요구는 여전히 진행중인 이전에 승인된 액세스 요구가 완료될 때까지는 슬레이브 0의 의해 수취 또는 수행될 수 없다. 일 실시예에서, 이전에 승인된 액세스 요구는 그 액세스 요구의 어드레스에 대응하는 데이터가 슬레이브 0에 의해 수신되거나 마스터 0-2에 제공된(이 경우 마스터 0-2 중 요구하는 마스터가 데이터를 수신한다) 후에 완료된다.
이전에 승인된 액세스 요구는 미지의 시간 기간 동안 진행중일 수 있으므로, 중재기 로직(216)은 현재 미처리된 액세스 요구(이전에 승인된 액세스 요구의 완료를 기다리는 것)가 후속 액세스 요구를 위하여 취소되어야 하는 것으로 결정할 수 있다. 이 경우, 중재기 로직(216)은 취소 요구(224)를 어서트함으로써 현재 미처리된 액세스 요구의 취소를 요구한다. 취소 제어 로직(218)은, 액세스 취소 제어 레지스터들(214)로부터의 정보를 이용하여, 현재 미처리된 액세스 요구 및/또는 후속 액세스 요구의 적어도 하나 또는 그 이상의 특성들에 기초하여(상기 하나 또는 그 이상의 특성들은 요구하는 마스터로부터 도체들(202-204)을 경유하여 제공된 정보, 미처리된 승인(222)을 통하여 제공된 현재 미처리된 액세스 요구의 어드레스, 및/또는 마스터 우선순위 레지스터(210) 및 파킹 제어 레지스터(212) 내의 정보로부터 판정될 수 있다) 현재 미처리된 액세스 요구의 취소가 허용되는지를 판정한다. 취소 제어 로직(218)이 현재 미처리된 액세스 요구의 취소가 허용되는 것으로 판정하면, 그것은 취소 지시자(226)를 어서트하고, 취소가 허용되지 않으면, 취소 지시자(226)가 니게이트된다(또는 니게이트된 채로 유지된다). 취소가 허용되면, 중재기 로직은, 현재의 승인(220) 및 액세스 선택기(208)를 통하여, 슬레이브 포트 0의 도체(205) 상의 현재 미처리된 액세스 요구를 새로운 후속 액세스 요구로 대체할 수 있다. 그 후 중재기 로직(216)은 취소된 현재 미처리된 액세스 요구를 저장할 수 있고 따라서 새로운 후속 액세스 요구가 도체들(205) 상에 드라이브된 후에, 취소된 요구가 다시 드라이브될 수 있다. 대안적으로, 그것은 나중 시점에 다시 드라이브될 수 있다.
도 7의 도시된 실시예에서, 슬레이브 포트 0 로직은 마스터 우선순위 레지스터(210) 및 파킹 제어 레지스터(212)를 포함한다. 이들 레지스터의 예들이 도 8 및 9에 각각 도시되어 있다. 예를 들면, 도 8은 마스터 우선순위 레지스터(210)의 일 실시예를 도시하는 것으로, 이것은 각 마스터 포트에 대응하는 마스터 우선순위 필드: 마스터 0 우선순위 필드(230), 마스터 1 우선순위 필드(232), 및 마스터 2 우선순위 필드(234)를 포함한다. 따라서 각 필드는 대응하는 마스터 포트의 우선순위를 포함할 수 있다. 예를 들면, 3개의 마스터 포트를 포함하는 도시된 예에서는, 우선순위를 지시하기 위해 2비트 값(예컨대, 11, 10, 01, 00)이 이용될 수 있고, 이 경우 최고 우선순위 마스터 포터에는 11의 우선순위가 할당되고, 두 번째로 높은 것에는 10의 우선순위가 할당되고, 세 번째로 높은 것(즉, 3개 중 최저)에는 01의 우선순위가 할당될 수 있다. 이 경우, 00 값은 사용되지 않을 수 있다. 대안적으로, 우선순위들은 10(최고 우선순위 마스터 포트)에서 00(최저 우선순위 마스터 포트)까지 번호가 지정될 수 있고 이 경우 값 11은 사용되지 않을 수 있다. 또 다른 대안 실시예에서, 우선순위들은 10(최저 우선순위 마스터 포트)에서 00(최고 우선순위 마스터 포트)까지 번호가 지정될 수 있다. 대안적으로, 각 포트에 우선순위를 할당하기 위해 다른 방식들이 이용될 수도 있다. 또한, 일 실시예에서, 마스터 포트가 그것에 연결된 마스터를 갖고 있지 않으면, 대응하는 마스터 우선순위 필드는 이를 지시하는 미리 정해진 값으로 프로그램될 수 있고, 또는 단순히 최저 우선순위가 부여될 수 있다.
도 9는 파킹 제어 레지스터(212)의 일 실시예를 도시하는 것으로, 이것은 파킹 인에이블 필드(236) 및 파킹 마스터 필드(238)를 포함한다. 일 실시예에서, 파킹 인에이블 필드(236)는 1비트 필드로서, 어스트될 경우, 대응하는 슬레이브 포트(이 실시예에서는 슬레이브 포트 0)에 대하여 파킹이 인이에블되는 것을 지시하고, 니게이트될 경우, 대응하는 슬레이브 포트에 대하여 파킹이 인에이블되지 않는 것을 지시한다. 파킹이 인에이블되면, 파킹 마스터 필드(238) 내의 값에 의해 파킹 마스터가 제공된다. 예를 들면, 파킹 마스터 필드(238)는 마스터 포트 0-2 중 하나를 식별하는 2비트 값일 수 있다. 파킹이 인에이블되고 대응하는 슬레이브 포트가 유휴(idle)(어떠한 마스터 포트와도 정보를 통신하고 있지 않은) 상태이면, 슬레이브 포트는 자동으로 파킹 마스터에 연결되고 따라서 중재 간격을 요구하지 않고 파킹 마스터가 슬레이브 포트와 통신할 수 있게 된다. 예를 들어, 슬레이브 포트 0이 유휴 상태이면, 중재기 로직(216)은, 파킹 제어 레지스터(212) 내의 정보를 이용하여, (파킹 마스터를 지시하는) 현재의 승인(220)을 액세스 선택기(212)에 제공하고, 액세스 선택기(212)는 파킹 마스터 포트를 슬레이브 포트 0의 도체들(205)에 연결시킨다. 이 경우, (파킹이 인에이블되는 것을 가정하여) 파킹 마스터는 슬레이브 포트가 유휴 상태일 때 슬레이브 포트에의 액세스를 명시적으로 요구할 필요가 없다는 것에 유의하자. 이런 식으로, 파킹 마스터가 슬레이브 포트 0의 다음 요구자이면, 어떠한 중재 간격도 요구되지 않고, 그 파킹된 마스터에 대하여 슬레이브 포트 0에 액세스하는 지연 시간이 저감된다. 파킹이 인에이블되지 않으면, 중재기 로직(216) 및 액세스 선택기(208)는 도 7을 참조하여 위에 기술된 것과 같이 동작한다.
슬레이브 포트 0 로직의 동작은 도 12의 흐름(260)에 제시된 예를 참조하여 더 잘 이해될 수 있다. 흐름은 블록 262에서 시작되고, 여기서는 마스터 1로부터 슬레이브 0으로의 현재의 액세스 요구(대응하는 액세스 어드레스 addrx를 가짐)가 진행중인 동안에 마스터 0으로부터 슬레이브 0으로의 액세스 요구(대응하는 액세스 어드레스 addry를 가짐)가 승인된다. 따라서, 도 7을 참조하여 위에서 기술된 바와 같이, 마스터 0으로부터의 액세스 요구는 마스터 1로부터의 진행중인 현재 액세스가 완료될 때까지는 슬레이브 0에 의해 수락되거나 수취될 수 없는 현재 미처리된 액세스 요구가 된다. 그 후 흐름은 블록 264로 진행하고, 여기서는 마스터 1로부터(또는, 대안 실시예들에서는, 임의의 다른 마스터로부터) 슬레이브 포트 0으로의 후속 또는 새로운 액세스 요구(대응하는 액세스 어드레스 addrz를 가짐)가 수신된다. 상술한 바와 같이, 진행중인 현재 액세스 요구(addrx)가 얼마나 오래 진행되는지를 알 수 없으므로, 중재기 로직(216)은 새로이 수신된 액세스 요구(addrz)를 위하여 현재 미처리된 액세스 요구(addry)를 취소하기를 원할 수 있다. 그 이유는, 예를 들면, 새로이 수신된 액세스 요구가 보다 더 중요하거나 또는 보다 더 시간적으로 중대한(time-critical) 것일 수 있기 때문이다. 즉, 중재기 로직(216)은 후속하여 수신된 액세스 요구들을 위하여 미처리된 액세스 요구들의 순서를 다시 정하기를 원할 수 있다. 따라서, 다시 도 12를 참조하면, 흐름은 블록 266으로 진행하고, 여기서는 슬레이브 포트 0으로의 현재 미처리된 마스터 0 액세스 요구(addry)에 대응하는 취소 요구가 생성된다. 예를 들면, 이것은 도 7을 참조하여 설명한 바와 같이 중재기 로직(216)이 취소 요구(224)를 어서트하는 것에 대응할 수 있다.
다시 도 12를 참조하면, 취소 요구가 생성된 후에, 흐름은 블록 266으로부터 판정 마름모꼴 268로 진행하고, 여기서는 현재 미처리된 액세스 요구(addry)의 하나 또는 그 이상의 특성들(및/또는 후속 액세스 요구(addrz)의 하나 또는 그 이상의 특성들)에 기초하여 현재 미처리된 마스터 0 액세스 요구(addry)의 취소가 허용되는지가 판정된다. 예를 들면, 이러한 판정은 마스터 우선순위 레지스터(210), 파킹 제어 레지스터(212), 미처리된 승인(222), 도체들(202-204)로부터의 정보, 또는 그들의 임의의 조합, 및 액세스 취소 제어 레지스터(214)로부터의 정보를 이용하여 취소 제어 로직(218)에 의해 행해질 수 있다. 만일 취소가 허용되지 않으면, 흐름은 판정 마름모꼴 268로부터 블록 270으로 진행하고, 여기서는 취소 요구가 거부되고(예를 들면, 취소 지시자(226)를 니게이트함으로써) 슬레이브 포트 0 로직은 진행중인 액세스 요구(addrx)가 완료되기를 그리고 후속하여 수신된 액세스 요구(addrz)를 슬레이브 0의 도체들(205) 상에 드라이브하기 전에 현재 미처리된 액세스 요구(addry)가 수취되기를(따라서 새로운 진행중인 액세스 요구가 되기를) 기다린다. 만일 취소가 허용된다면, 흐름은 판정 마름모꼴 268로부터 블록 272로 진행하고, 여기서는 현재 미처리된 액세스 요구(addry)가 취소된다(예를 들면, 취소 지시자(226)를 어서트함으로써). 이 경우, 현재 미처리된 액세스 요구(addry)는 새로운 액세스 요구(addrz)로 대체되고 따라서 새로운 액세스 요구(addrz)가 현재 미처리된 액세스 요구가 된다. 이런 식으로, 중재기 로직의 시각(perspective)으로부터 이전 미처리된 액세스 요구(addry)를 새로운 액세스 요구(addrz)로 대체함으로써 승인된 액세스 요구들의 순서가 다시 정해질 수 있고, 대체된 액세스 요구(addry)는 addrz 후에 또는 나중의 어떤 시점에 슬레이브 포트 0 상에 다시 드라이브될 수 있도록 슬레이브 포트 0 로직 내에 저장될 수 있다. 슬레이브 포트 0에 연결된 슬레이브 0의 시각으로부터, 현재 미처리된 액세스 요구(addry)는 취소되었고 대신에 새로운 현재 미처리된 액세스 요구(addrz)가 현재 진행중인 액세스 요구(addrx)의 완료 후에 그 슬레이브에 의해 수취되도록 드라이브되었다.
상술한 바와 같이, 액세스 취소 제어 레지스터(214) 내의 정보는 취소가 허용되는 조건들을 지시한다. (대안적으로는, 액세스 취소 제어 레지스터(214)는 취소가 불허되는 조건들을 지시한다.) 따라서, 액세스 취소 제어 레지스터(214) 내의 정보는 현재 미처리된 액세스 요구의(또는 후속 액세스 요구의) 하나 또는 그 이상의 특성들에 기초하여 현재 미처리된 액세스 요구를 선택적으로 취소하기 위해 이용된다. 이들 특성들은, 도 3-5를 참조하여 위에 기술된 특성들 중 임의의 것, 또는 도 10 및 11을 참조하여 기술될 특성들 중 임의의 것, 또는 그들의 임의의 조합을 포함할 수 있다. 예를 들면, 상술한 바와 같이, 판정을 하기 위해 이용되는 현재 미처리된 액세스 요구의 특성들은 액세스 유형, 어드레스 범위, 데이터 유형 순서, 및 그들의 조합을 포함할 수 있다. 예를 들면, 어드레스 범위들에 관련하여, 하나 또는 그 이상의 어드레스 범위들이 특정 슬레이브 포트(예컨대 슬레이브 포트 0)를 식별하기 위해 사용될 수 있고, 또는 특정 슬레이브 포트를 경유하여 액세스되는 로케이션들의 범위를 식별하기 위해 사용될 수 있다. 이 경우, 도 4를 참조하여 위에서도 기술된 바와 같이, 단순히 현재 미처리된 또는 후속하여 수신된 액세스 요구에 의해 액세스되고 있는 특정 어드레스 범위(예컨대, 슬레이브 포트)에 기초하여 취소들이 허용 또는 거부될 수 있고, 또는 액세스되고 있는 특정 어드레스 범위(예컨대, 슬레이브 포트)뿐만 아니라 현재 미처리된 또는 후속하여 수신된 액세스 요구의 추가적인 특성들에 기초하여 취소들이 허용 또는 거부될 수 있다. 일 실시예에서, 어드레스 범위들은 특정 슬레이브 포트들에 의해 직접 식별될 수도 있다는 것에 유의하자.
도 10은 도 7의 액세스 취소 제어 레지스터(214)의 일 실시예를 도시하는 것으로, 이 실시예에서는 취소가 허용되는지 거부되는지의 판정이 요구하는 마스터들의 우선순위(예컨대, 우선순위 델타)에 기초하여 행해진다. 예를 들어, 후속 액세스 요구(addrz)를 행한 마스터(예컨대, 도 12의 예에서 마스터 0)가 현재 미처리된 액세스 요구(addry)를 행한 마스터(예컨대, 도 12의 예에서 마스터 1)보다 더 높은 우선순위를 가진다면, 취소 제어 로직(218)은 (도 10의 액세스 취소 제어 레지스터(214)에 의해 제공된 정보를 이용하여) 액세스 취소를 허용할 수 있다. 예를 들면, 도 10의 액세스 취소 제어 레지스터(214)는 마스터 포트마다 하나의 우선순위 델타 취소 제어 필드: 마스터 0 우선순위 델타 취소 제어 필드(240), 마스터 1 우선순위 델타 취소 제어 필드(242), 및 마스터 2 우선순위 델타 취소 제어 필드(244)를 포함한다. 이 예에서, 각 필드는 취소가 허용되도록 하기 위하여 후속 액세스 요구의 요구 마스터와 현재 미처리된 액세스 요구의 요구 마스터 간에 우선순위 델타(즉, 우선순위의 차이)가 무엇이어야 하는지를 지시한다. 즉, 마스터 0 우선순위 델타 취소 제어 필드(240)는 현재 미처리된 액세스 요구의 취소가 허용되도록 하기 위하여 우선순위 델타 0(후속 액세스 요구를 요구하는 경우에는)가 현재 미처리된 액세스 요구의 요구 마스터에 대하여 무엇을 가져야 하는지를 지시한다.
일 실시예에서, 각 필드는 2비트 값일 수 있고, 이 경우 "00"의 값은 0 이상의 우선순위 델타가 필요하다는 것을 지시하고, "01"의 값은 1 이상의 우선순위 델타가 필요하다는 것을 지시하고, "11"의 값은 우선순위 델타와 상관없이 이 경우의 취소가 허용되지 않는다는 것을 지시한다. 취소가 허용되는 데 필요한 우선순위 델타들을 지시하기 위해 다른 n비트 값들(n은 0보다 큰 임의의 정수일 수 있다)이 사용될 수도 있다는 것에 유의하자. 예를 들면, 도 12의 예를 참조하면, 마스터 0이 현재 미처리된 액세스 요구(addry)를 행하였고 마스터 1이 후속 액세스 요구(addrz)를 행하였고, 따라서, 취소가 요구된다면, 취소가 허용되는지를 판정하기 위하여 (도 8을 참조하여 설명된) 마스터 0 우선순위 필드(230) 및 마스터 1 우선순위 필드(232)와 함께, 마스터 0 우선순위 델타 취소 제어 필드(240)에 제공된 정보가 이용된다. 마스터 1과 마스터 0 간의 우선순위 델타(여기서 우선순위 델타 = 마스터 1 우선순위 - 마스터 0 우선순위)가 마스터 0 우선순위 델타 취소 제어 필드(240)에 의해 지시된 대로 충분하다면, 취소가 허용된다. 우선순위 델타가 1인데 마스터 0 우선순위 델타 취소 제어 필드(240)가 2 이상의 델타가 필요하다는 것을 지시하면, 취소가 허용되지 않는다. 그러나, 우선순위 델타가 2라면, 취소가 허용될 것이다. 마스터 0 우선순위 델타 취소 제어 필드(240)가 0 이상의 델타가 필요하다는 것을 지시하면, 마스터 1이 적어도 마스터 0과 동일한 우선순위를 갖는 한, 취소가 허용된다.
도 11은 도 7의 액세스 취소 제어 레지스터(214)의 다른 실시예를 도시하는 것으로, 이 실시예는 최고 우선순위 마스터 취소 제어 필드(246), 지연 취소 제어 필드(248), 파킹 마스터 취소 제어 필드(250), 및 논-파킹 마스터(들) 취소 제어 필드(252)를 포함하는 각종의 상이한 필드들을 갖는다. 일 실시예에서, 필드들(246, 250, 및 252)의 각각은 어서트되거나 니게이트될 수 있는 1비트 필드이다. 예를 들어, 최고 우선순위 마스터 취소 제어 필드(246)가 어서트되면, 후속 요구가 최고 우선순위를 갖는 마스터로부터 행해진 것일 경우 현재 미처리된 액세스 요구의 취소가 허용된다. 파킹 마스터 취소 제어 필드(250)가 어서트되면, 후속 요구가 파킹 마스터(예를 들면, 파킹 제어 레지스터(212) 내의 파킹 마스터 필드(238)에 의해 지시된 마스터)로부터 행해진 것일 경우 현재 미처리된 액세스 요구의 취소가 허용된다. 논-파킹 마스터(들) 취소 제어 필드(252)가 어서트되면, 후속 요구가 임의의 논-파킹 마스터(파킹 마스터 필드(238)에 의해 지시된 마스터 이외의 임의의 마스터)로부터 행해진 것일 경우 현재 미처리된 액세스 요구의 취소가 허용된다. 지연 취소 제어 필드(248)는 취소가 허용된다면, 그 취소가 d 클록의 대기 상태 후에 수행되도록 지연(d)을 제공하기 위해 사용될 수 있고, 여기서 d는 0 이상의 임의의 정수일 수 있다. 예를 들면, 일 실시예에서, d가 0이면, 지연 취소가 인에이블되지 않지만, d가 1 이상이면, 현재 미처리된 액세스 요구의 취소(허용된다면)가 d 클록만큼 지연된다. 대안 실시예에서, 지연 값은 취소가 허용된다면, 현재 진행중인 액세스(예컨대, addrx에 대응)가 완료되는 데 걸리는 시간이 그 지연 이상일 때에만 실제로 취소가 수행되도록 지연(d)을 제공할 수 있다. 즉, 이 대안 실시예에서, 현재 진행중인 액세스 요구가 지연(d)보다 적은 시간 안에 완료될 것이라면, 다른 방법으로 취소가 허용되었다 하더라도 취소가 발생하지 않을 것이다. 대안 실시예에서, 지연 값은 취소가 발생할 것인지를 판정하기 위하여 현재 진행중인 액세스를 완료되는 데 필요한 시간 길이와 대안적 방법으로 비교될 수 있다. 즉, 일 실시예에서, 현재 미처리된 액세스의 취소(허용된다면)는 지연 값과 현재 진행중인 액세스 요구가 완료되는 데 걸리는 시간과의 비교가 미리 정해진 결과로 되는 경우에만 발생한다.
도 10 및 11의 필드들(240-252)에 의해 정의된 특성들 각각은 단독으로 또는 임의의 조합으로 이용될 수 있고 또한 예를 들면 도 3의 필드들(100-104) 및/또는 도 4의 필드들(106-112) 및/또는 도 5의 필드들(114-128)에 의해 정의된 특성들과 같은 다른 특성들과 조합하여 이용될 수도 있다는 것에 유의하자. 또한, 액세스 취소 제어 레지스터(214)는 필요에 따라 임의의 수의 필드들을 갖는 임의의 수의 레지스터들(하나 또는 그 이상)을 포함할 수 있다. 또한, 도 10 및 11의 취소 제어 필드들은 취소의 허용 또는 취소의 레벨들을 지시하기 위해 희망에 따라 임의의 수의 비트들을 포함할 수 있다는 것에 유의하자. 또한, 액세스 취소 제어 레지스터(214) 내에 저장된 액세스 취소 제어 정보를 저장하기 위해 임의의 유형의 기억 회로가 사용될 수 있다.
따라서, 중재기가 현재 미처리된 액세스 요구의 특성들 또는 후속 액세스 요구의 특성들 또는 현재 미처리된 액세스 요구와 후속 액세스 요구 양쪽 모두의 특성들을 이용하여 현재 미처리된 액세스 요구를 어떻게 선택적으로 취소할 수 있는지를 알 수 있다. 이런 식으로, 지연 시간을 저감시키고 보다 높은 우선순위 또는 중요도의 액세스들이 보다 일찍 수취되도록 함으로써 효율이 향상될 수 있다.
도 1, 2, 및 7은 양방향 및 단방향 도체들의 사용을 예시하고 있지만, 단방향 및 양방향 도체들의 상이한 조합들이 대신 사용될 수도 있다는 것을 이해해야 할 것이다. 예를 들면, 양방향 도체 대신에 다수의 단방향 도체들이 사용될 수도 있다. 대안적으로, 단방향 도체들 대신에 양방향 도체들이 사용될 수도 있다. 또한 신호들은 단일 도체를 경유하여 직렬로 또는 복수의 도체들을 경유하여 병렬로 전송될 수 있다. 대안적으로, 신호들은 단일 또는 복수의 도체들에서 시간 다중화(time multiplex)될 수 있다.
전술한 명세서에서는, 특정 실시예들을 참조하여 본 발명이 설명되었다. 그러나, 숙련된 당업자라면 아래 청구항들에 제시된 바와 같은 본 발명의 범위를 벗어나지 않고 다양한 변형 및 변경이 이루어질 수 있다는 것을 알 것이다. 예를 들면, 데이터 처리 시스템(10)은 단일 칩 또는 집적 회로(IC) 또는 칩들 또는 IC들의 조합 상에 배치될 수 있는 임의의 유형의 데이터 처리 시스템일 수 있다는 것을 이해해야 할 것이다. 또한, 시스템 상호접속(200)은 마스터들 및 슬레이브들과 동일한 칩 또는 IC 상에 배치될 수도 있고 또는 마스터들 및 슬레이블들과는 별개의 IC 상에 배치될 수도 있다. 따라서, 본 명세서 및 도면들은 제한적인 의미보다는 예시적인 것으로 간주되어야 할 것이고, 모든 그러한 변형들은 본 발명의 범위 내에 포함되는 것으로 의도된다.
위에서는 특정 실시예들에 관하여 이점들, 다른 장점들, 및 문제점들에 대한 해법들이 설명되었다. 그러나, 이 이점들, 장점들, 문제점들에 대한 해법들, 및 임의의 이점, 장점, 또는 해법을 유발시키거나 보다 더 뚜렷해지게 할 수 있는 임의의 엘리먼트(들)은 임의의 또는 모든 청구항들의 중요하거나, 필요하거나, 필수 불가결한 특징 또는 엘리먼트로 해석되어서는 안 될 것이다. 본 명세서에서 사용될 때, "포함한다(comprises)", "포함하는(comprising)", 또는 그들의 임의의 다른 변형어는 비배타적 포함(non-exclusive inclusion)을 망라하는 것으로 의도되고, 따라서 엘리먼트들의 리스트를 포함하는 프로세스, 방법, 물건, 또는 장치는 그들 엘리먼트들만을 포함하지 않고 명백히 열거되지 않았거나 그러한 프로세스, 방법, 물건, 또는 장치에 고유한 다른 엘리먼트들을 포함할 수 있다.

Claims (46)

  1. 시스템 버스 및 상기 시스템 버스에 연결된 버스 마스터를 갖는 데이터 처리 시스템에서의 액세스 취소 방법으로서,
    취소(retraction)가 허용되거나 불허되는 적어도 하나의 조건을 지시하는 액세스 취소 제어 정보를 저장하는 단계와;
    상기 시스템 버스 상의 현재 미처리된 액세스 요구(currently pending access request)의 취소를 요구하는 단계와;
    상기 요구하는 단계에 응답하여, 상기 액세스 취소 제어 정보를 이용하여, 상기 현재 미처리된 액세스 요구의 적어도 하나의 특성에 기초하여 상기 현재 미처리된 액세스 요구를 선택적으로 취소하는 단계
    를 포함하는 액세스 취소 방법.
  2. 제1항에 있어서, 상기 취소를 요구하는 단계는 현재 디코딩 중인 명령(instruction currently being decoded)에 기초하여 행해지는 액세스 취소 방법.
  3. 제2항에 있어서, 상기 현재 디코딩 중인 명령이 흐름 변경(change of flow)을 일으키면 취소가 요구되는 액세스 취소 방법.
  4. 제1항에 있어서, 상기 적어도 하나의 특성은 상기 현재 미처리된 액세스 요 구의 액세스의 유형을 포함하는 액세스 취소 방법.
  5. 제4항에 있어서, 상기 액세스의 유형은 판독 또는 기입 액세스 중 하나인 액세스 취소 방법.
  6. 제4항에 있어서, 상기 액세스의 유형은 명령 또는 데이터 액세스 중 하나인 액세스 취소 방법.
  7. 제4항에 있어서, 상기 액세스의 유형은 버스트 또는 논-버스트(non-burst) 액세스 중 하나인 액세스 취소 방법.
  8. 제4항에 있어서, 상기 선택적으로 취소하는 단계는 상기 현재 미처리된 액세스 요구의 액세스의 유형 및 적어도 하나의 이전 액세스 요구의 액세스의 유형에 기초하는 액세스 취소 방법.
  9. 제1항에 있어서, 상기 데이터 처리 시스템은 상기 시스템 버스에 연결된 제2 버스 마스터를 포함하고, 상기 적어도 하나의 특성은 상기 현재 미처리된 액세스 요구를 어느 버스 마스터가 요구했는지를 포함하는 액세스 취소 방법.
  10. 제1항에 있어서, 상기 액세스 요구는 대응하는 액세스 어드레스를 갖고, 상 기 적어도 하나의 특성은 상기 액세스 어드레스가 속하는 어드레스 범위를 포함하는 액세스 취소 방법.
  11. 제10항에 있어서, 상기 액세스 취소 제어 정보는 대응하는 어드레스 범위에 대하여 취소가 허용되거나 불허되는 적어도 하나의 조건을 지시하고, 상기 선택적으로 취소하는 단계는 상기 액세스 어드레스가 상기 대응하는 어드레스 범위에 속하는지를 판정하는 단계를 포함하는 액세스 취소 방법.
  12. 제1항에 있어서, 상기 액세스 취소 제어 정보가 상기 적어도 하나의 특성에 기초하여 상기 현재 미처리된 액세스 요구의 취소가 허용되는 것을 지시하면, 상기 선택적으로 취소하는 단계는,
    상기 현재 미처리된 액세스 요구에 응답하여 더미 값(dummy value)을 제공함으로써 상기 현재 미처리된 액세스 요구를 취소하는 단계를 더 포함하는 액세스 취소 방법.
  13. 제1항에 있어서, 상기 액세스 취소 제어 정보가 상기 적어도 하나의 특성에 기초하여 상기 현재 미처리된 액세스 요구의 취소가 허용되는 것을 지시하면, 상기 선택적으로 취소하는 단계는,
    상기 시스템 버스 상의 상기 현재 미처리된 액세스 요구를 새로운 액세스 요구로 대체함으로써 상기 현재 미처리된 액세스 요구를 취소하는 단계를 더 포함하 는 액세스 취소 방법.
  14. 시스템 버스 및 상기 시스템 버스에 연결된 버스 마스터를 갖는 데이터 처리 시스템에서의 액세스 취소 방법으로서,
    어드레스 범위에 대응하는 액세스 취소 제어 정보를 저장하는 단계 - 상기 액세스 취소 제어 정보는 상기 대응하는 어드레스 범위에 대하여 취소가 허용되는지 불허되는지를 지시함 - 와;
    상기 시스템 버스 상의 현재 미처리된 액세스 요구의 취소를 요구하는 단계 - 상기 현재 미처리된 액세스 요구는 대응하는 어드레스를 가짐 - 와;
    상기 대응하는 어드레스가 상기 어드레스 범위 내에 속하는지를 판정하는 단계와;
    상기 대응하는 어드레스가 상기 어드레스 범위 내에 속하면 상기 액세스 취소 제어 정보에 기초하여 상기 현재 미처리된 액세스 요구를 선택적으로 취소하는 단계
    를 포함하는 액세스 취소 방법.
  15. 제14항에 있어서, 상기 취소를 요구하는 단계는 현재 디코딩 중인 명령에 기초하여 행해지는 액세스 취소 방법.
  16. 제15항에 있어서, 상기 현재 디코딩 중인 명령이 흐름 변경을 일으키면 취소 가 요구되는 액세스 취소 방법.
  17. 제14항에 있어서, 상기 어드레스 범위에 대응하는 상기 액세스 취소 제어 정보는 상기 대응하는 어드레스가 상기 어드레스 범위 내에 속할 경우 상기 현재 미처리된 액세스 요구의 취소가 허용되거나 불허되는 적어도 하나의 조건을 지시함으로써 상기 대응하는 어드레스 범위에 대하여 취소가 허용되는지 불허되는지를 지시하는 액세스 취소 방법.
  18. 제17항에 있어서, 상기 대응하는 어드레스가 상기 어드레스 범위 내에 속하면 상기 액세스 취소 제어 정보에 기초하여 상기 현재 미처리된 액세스 요구를 선택적으로 취소하는 단계는,
    상기 대응하는 어드레스가 상기 어드레스 범위 내에 속하면 상기 액세스 취소 제어 정보 및 상기 현재 미처리된 액세스 요구의 적어도 하나의 특성에 기초하여 상기 현재 미처리된 액세스 요구를 선택적으로 취소하는 단계를 포함하는 액세스 취소 방법.
  19. 제18항에 있어서, 상기 적어도 하나의 특성은 상기 현재 미처리된 액세스 요구의 액세스의 유형을 포함하는 액세스 취소 방법.
  20. 제19항에 있어서, 상기 액세스의 유형은 판독 또는 기입 액세스 중 하나인 액세스 취소 방법.
  21. 제19항에 있어서, 상기 액세스의 유형은 명령 또는 데이터 액세스 중 하나인 액세스 취소 방법.
  22. 제19항에 있어서, 상기 액세스의 유형은 버스트 또는 논-버스트 액세스 중 하나인 액세스 취소 방법.
  23. 제19항에 있어서, 상기 대응하는 어드레스가 상기 어드레스 범위 내에 속하면 상기 액세스 취소 제어 정보 및 상기 현재 미처리된 액세스 요구의 상기 적어도 하나의 특성에 기초하여 상기 현재 미처리된 액세스 요구를 선택적으로 취소하는 단계는,
    상기 대응하는 어드레스가 상기 어드레스 범위 내에 속하면, 상기 액세스 취소 제어 정보, 상기 현재 미처리된 액세스 요구의 액세스의 유형, 및 이전 액세스 요구의 액세스의 유형에 기초하여 상기 현재 미처리된 액세스 요구를 선택적으로 취소하는 단계를 포함하는 액세스 취소 방법.
  24. 제18항에 있어서, 상기 데이터 처리 시스템은 상기 시스템 버스에 연결된 제2 버스 마스터를 포함하고, 상기 적어도 하나의 특성은 상기 현재 미처리된 액세스 요구를 어느 버스 마스터가 요구했는지를 포함하는 액세스 취소 방법.
  25. 제14항에 있어서, 상기 대응하는 어드레스가 상기 어드레스 범위 내에 속하고 상기 액세스 취소 제어 정보가 취소가 허용되는 것을 지시하면, 상기 선택적으로 취소하는 단계는,
    상기 현재 미처리된 액세스 요구에 응답하여 더미 값을 제공함으로써 상기 현재 미처리된 액세스 요구를 취소하는 단계를 포함하는 액세스 취소 방법.
  26. 제14항에 있어서, 상기 대응하는 어드레스가 상기 어드레스 범위 내에 속하고 상기 액세스 취소 제어 정보가 취소가 허용되는 것을 지시하면, 상기 선택적으로 취소하는 단계는,
    상기 현재 미처리된 액세스 요구를 새로운 액세스 요구로 대체함으로써 상기 현재 미처리된 액세스 요구를 취소하는 단계를 포함하는 액세스 취소 방법.
  27. 제14항에 있어서,
    상기 어드레스 범위에 대응하는 상기 액세스 취소 제어 정보를 저장하는 단계는 복수의 어드레스 범위들 각각에 대응하는 액세스 취소 제어 정보를 저장하는 단계 - 상기 액세스 취소 제어 정보는 상기 복수의 어드레스 범위들 각각에 대하여 취소가 허용되는지를 지시함 - 를 포함하고,
    상기 대응하는 어드레스가 상기 어드레스 범위 내에 속하는지를 판정하는 단계는 상기 대응하는 어드레스가 상기 복수의 어드레스 범위들 중 하나의 어드레스 범위 내에 속하는지를 판정하는 단계를 포함하고,
    상기 선택적으로 취소하는 단계는 상기 대응하는 어드레스가 상기 복수의 어드레스 범위들 중 상기 하나의 어드레스 범위 내에 속하면 상기 복수의 어드레스 범위들 중 상기 하나의 어드레스 범위에 대응하는 상기 액세스 취소 제어 정보에 기초하여 상기 현재 미처리된 액세스 요구를 선택적으로 취소하는 단계를 포함하는 액세스 취소 방법.
  28. 제27항에 있어서, 상기 복수의 어드레스 범위들 각각에 대응하는 상기 액세스 취소 제어 정보는 상기 대응하는 어드레스가 상기 복수의 어드레스 범위들 중 하나의 어드레스 범위 내에 속할 경우 상기 현재 미처리된 액세스 요구의 취소가 허용되거나 불허되는 적어도 하나의 조건을 지시함으로써 상기 복수의 어드레스 범위들 각각에 대하여 취소가 허용되는지 불허되는지를 지시하고, 상기 선택적으로 취소하는 단계는,
    상기 대응하는 어드레스가 상기 복수의 어드레스 범위들 중 상기 하나의 어드레스 범위 내에 속하면 상기 복수의 어드레스 범위들 중 상기 하나의 어드레스 범위에 대응하는 상기 액세스 취소 제어 정보 및 상기 현재 미처리된 액세스 요구의 적어도 하나의 특성에 기초하여 상기 현재 미처리된 액세스 요구를 선택적으로 취소하는 단계를 더 포함하는 액세스 취소 방법.
  29. 데이터 처리 시스템으로서,
    시스템 버스와;
    상기 시스템 버스에 연결된 버스 마스터
    를 포함하고,
    상기 버스 마스터는 상기 시스템 버스 상의 현재 미처리된 액세스 요구의 취소를 요구하고, 상기 버스 마스터는 취소 제어 로직 및 액세스 취소 제어 기억 회로를 포함하고, 상기 액세스 취소 제어 기억 회로는 액세스 취소 제어 정보를 저장하고, 상기 취소 제어 로직은 상기 액세스 취소 제어 정보를 이용하여 상기 현재 미처리된 액세스 요구의 적어도 하나의 특성에 기초하여 상기 현재 미처리된 액세스 요구를 선택적으로 취소하는 데이터 처리 시스템.
  30. 제29항에 있어서, 상기 버스 마스터는 명령 디코더에 연결된 시퀀서 제어 로직을 더 포함하고, 상기 시퀀서 제어 로직은 상기 명령 디코더에 의해 디코딩 중인 명령에 기초하여 상기 현재 미처리된 액세스 요구에 대한 취소 요구를 생성하는 데이터 처리 시스템.
  31. 제30항에 있어서, 상기 버스 마스터는 상기 시스템 버스에 연결된 버스 인터페이스 유닛을 더 포함하고, 상기 액세스 취소 제어 정보가 상기 현재 미처리된 액세스 요구의 상기 적어도 하나의 특성에 기초하여 상기 현재 미처리된 액세스 요구에 대하여 취소가 허용되는 것을 지시하면, 상기 버스 인터페이스 유닛은 상기 현재 미처리된 액세스 요구에 응답하여 더미 값을 상기 취소 제어 로직에 제공하는 데이터 처리 시스템.
  32. 제30항에 있어서, 상기 버스 마스터는 상기 시스템 버스에 연결된 버스 인터페이스 유닛을 더 포함하고, 상기 액세스 취소 제어 정보가 상기 현재 미처리된 액세스 요구의 상기 적어도 하나의 특성에 기초하여 상기 현재 미처리된 액세스 요구에 대하여 취소가 허용되는 것을 지시하면, 상기 버스 인터페이스 유닛은 상기 현재 미처리된 액세스 요구를 새로운 액세스 요구로 대체하는 데이터 처리 시스템.
  33. 제30항에 있어서, 상기 취소 제어 로직은 상기 현재 미처리된 액세스 요구의 대응하는 어드레스가 미리 정해진 어드레스 범위 내에 속하는지를 판정하는 어드레스 비교 로직을 더 포함하고, 상기 대응하는 어드레스가 상기 미리 정해진 어드레스 범위 내에 속하면, 상기 취소 제어 로직은 상기 미리 정해진 어드레스 범위에 대응하는 액세스 취소 제어 정보를 이용하여 상기 현재 미처리된 액세스 요구를 선택적으로 취소하는 데이터 처리 시스템.
  34. 제29항에 있어서, 상기 적어도 하나의 특성은 상기 현재 미처리된 액세스 요구의 액세스의 유형을 포함하는 데이터 처리 시스템.
  35. 제34항에 있어서, 상기 취소 제어 로직은 상기 액세스 취소 제어 정보를 이용하여 상기 현재 미처리된 액세스 요구의 액세스의 유형 및 이전 액세스 요구의 액세스의 유형에 기초하여 상기 현재 미처리된 액세스 요구를 선택적으로 취소하는 데이터 처리 시스템.
  36. 제29항에 있어서, 상기 시스템 버스에 연결된 제2 버스 마스터를 더 포함하고, 상기 적어도 하나의 특성은 상기 현재 미처리된 액세스 요구를 어느 버스 마스터가 요구했는지를 포함하는 데이터 처리 시스템.
  37. 시스템 버스에 연결된 버스 마스터를 갖는 데이터 처리 시스템에서, 상기 시스템 버스의 버스 프로토콜을 무효화(override)하는 방법으로서,
    상기 시스템 버스를 통하여 액세스 요구를 제공하는 단계와;
    상기 액세스 요구의 적어도 하나의 특성에 기초하여 상기 시스템의 상기 버스 프로토콜의 애스팩트(aspect)를 선택적으로 무효화하는 단계
    를 포함하는 버스 프로토콜 무효화 방법.
  38. 제37항에 있어서, 상기 버스 프로토콜의 애스팩트는 현재 미처리된 액세스 요구들의 취소에 관한 것인 버스 프로토콜 무효화 방법.
  39. 제37항에 있어서, 상기 적어도 하나의 특성은 액세스의 유형을 포함하는 버스 프로토콜 무효화 방법.
  40. 제37항에 있어서, 상기 데이터 처리 시스템은 시스템 버스에 연결된 제2 버스 마스터를 포함하고, 상기 적어도 하나의 특성은 상기 액세스 요구를 어느 버스 마스터가 행하는지를 포함하는 버스 프로토콜 무효화 방법.
  41. 제37항에 있어서, 상기 적어도 하나의 특성은 상기 액세스 요구의 대응하는 어드레스가 속하는 어드레스 범위를 포함하는 버스 프로토콜 무효화 방법.
  42. 시스템 버스 및 상기 시스템 버스에 연결된 버스 마스터를 갖는 데이터 처리 시스템에서의 액세스 취소 방법으로서,
    취소가 허용되거나 불허되는 적어도 하나의 조건을 지시하는 액세스 취소 제어 정보를 저장하는 단계와;
    후속 액세스 요구를 수신하는 단계와;
    상기 시스템 버스 상의 현재 미처리된 액세스 요구의 취소를 요구하는 단계 - 상기 후속 액세스 요구는 상기 현재 미처리된 액세스 요구가 상기 마스터로부터 수신된 후에 상기 마스터로부터 수신됨 - 와;
    상기 요구하는 단계에 응답하여, 상기 액세스 취소 제어 정보를 이용하여 상기 후속 요구의 적어도 하나의 특성에 기초하여 상기 현재 미처리된 액세스 요구를 선택적으로 취소하는 단계
    를 포함하는 액세스 취소 방법.
  43. 제42항에 있어서, 상기 적어도 하나의 특성은 상기 현재 미처리된 액세스 요구의 액세스의 유형을 포함하는 액세스 취소 방법.
  44. 제42항에 있어서, 상기 선택적으로 취소하는 단계는 상기 현재 미처리된 액세스 요구 및 상기 후속 액세스 요구의 각각의 적어도 하나의 특성에 기초하는 액세스 취소 방법.
  45. 제42항에 있어서, 상기 후속 액세스 요구는 대응하는 액세스 어드레스를 갖고, 상기 적어도 하나의 특성은 상기 액세스 어드레스가 속하는 어드레스 범위를 포함하는 액세스 취소 방법.
  46. 제45항에 있어서, 상기 액세스 취소 제어 정보는 대응하는 어드레스 범위에 대하여 취소가 허용되거나 불허되는 적어도 하나의 조건을 지시하고, 상기 현재 미처리된 액세스를 선택적으로 취소하는 단계는 상기 후속 액세스 요구의 상기 액세스 어드레스가 상기 대응하는 어드레스 범위 내에 속하는지를 판정하는 단계를 포함하는 액세스 취소 방법.
KR1020077007211A 2004-09-30 2005-09-01 버스 액세스 취소 기능을 갖는 데이터 처리 시스템 KR20070053310A (ko)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US10/954,809 2004-09-30
US10/954,809 US7130943B2 (en) 2004-09-30 2004-09-30 Data processing system with bus access retraction

Publications (1)

Publication Number Publication Date
KR20070053310A true KR20070053310A (ko) 2007-05-23

Family

ID=36100525

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020077007211A KR20070053310A (ko) 2004-09-30 2005-09-01 버스 액세스 취소 기능을 갖는 데이터 처리 시스템

Country Status (6)

Country Link
US (1) US7130943B2 (ko)
EP (1) EP1805631A2 (ko)
JP (1) JP2008515091A (ko)
KR (1) KR20070053310A (ko)
CN (1) CN100481036C (ko)
WO (1) WO2006039040A2 (ko)

Families Citing this family (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2006172256A (ja) * 2004-12-17 2006-06-29 Renesas Technology Corp 情報処理装置
KR100725417B1 (ko) * 2006-02-22 2007-06-07 삼성전자주식회사 우선 순위에 따른 플래시 메모리의 연산 처리 장치 및 방법
US20080034146A1 (en) * 2006-08-04 2008-02-07 Via Technologies, Inc. Systems and Methods for Transactions Between Processor and Memory
US20080040591A1 (en) * 2006-08-11 2008-02-14 Moyer William C Method for determining branch target buffer (btb) allocation for branch instructions
US20080040590A1 (en) * 2006-08-11 2008-02-14 Lea Hwang Lee Selective branch target buffer (btb) allocaiton
US10521329B2 (en) * 2015-05-08 2019-12-31 Intergral GmbH Debugging system

Family Cites Families (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4620278A (en) * 1983-08-29 1986-10-28 Sperry Corporation Distributed bus arbitration according each bus user the ability to inhibit all new requests to arbitrate the bus, or to cancel its own pending request, and according the highest priority user the ability to stop the bus
CA1248239A (en) * 1984-10-30 1989-01-03 Kenneth R. Jaskowiak Equal access bus arbiter
JPS61156338A (ja) * 1984-12-27 1986-07-16 Toshiba Corp マルチプロセツサシステム
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
FR2642246B1 (fr) * 1988-12-30 1991-04-05 Cit Alcatel Procede de deblocage d'un systeme multiprocesseurs multibus
JP2986176B2 (ja) * 1990-05-11 1999-12-06 株式会社日立製作所 バス権制御方式およびバスシステム
US5467295A (en) * 1992-04-30 1995-11-14 Intel Corporation Bus arbitration with master unit controlling bus and locking a slave unit that can relinquish bus for other masters while maintaining lock on slave unit
US5647057A (en) * 1992-08-24 1997-07-08 Texas Instruments Incorporated Multiple block transfer mechanism
JP2765484B2 (ja) * 1994-07-06 1998-06-18 日本電気株式会社 システムバス制御回路
US6098115A (en) * 1998-04-08 2000-08-01 International Business Machines Corporation System for reducing storage access latency with accessing main storage and data bus simultaneously
JP2002041445A (ja) * 2000-05-19 2002-02-08 Matsushita Electric Ind Co Ltd 高性能dmaコントローラ
US20020144054A1 (en) * 2001-03-30 2002-10-03 Fanning Blaise B. Prefetch canceling based on most recent accesses
EP1440377A1 (en) * 2001-10-16 2004-07-28 Koninklijke Philips Electronics N.V. A computer system with a communication bus
JP2005158035A (ja) * 2003-11-05 2005-06-16 Matsushita Electric Ind Co Ltd 調停回路及びこれに備える機能処理回路

Also Published As

Publication number Publication date
JP2008515091A (ja) 2008-05-08
CN100481036C (zh) 2009-04-22
US7130943B2 (en) 2006-10-31
EP1805631A2 (en) 2007-07-11
US20060069830A1 (en) 2006-03-30
WO2006039040A2 (en) 2006-04-13
WO2006039040A3 (en) 2006-11-30
CN101027655A (zh) 2007-08-29

Similar Documents

Publication Publication Date Title
JP4848375B2 (ja) バス・アクセス取り消しを伴うデータ処理システム
US6073199A (en) History-based bus arbitration with hidden re-arbitration during wait cycles
US8452907B2 (en) Data processing apparatus and method for arbitrating access to a shared resource
US7155618B2 (en) Low power system and method for a data processing system
US6775727B2 (en) System and method for controlling bus arbitration during cache memory burst cycles
US8131948B2 (en) Snoop request arbitration in a data processing system
JP4219106B2 (ja) 動的優先順位外部トランザクション・システム
US7013357B2 (en) Arbiter having programmable arbitration points for undefined length burst accesses and method
KR19990044934A (ko) 데이타처리시스템 및 마이크로컴퓨터
KR20070053310A (ko) 버스 액세스 취소 기능을 갖는 데이터 처리 시스템
US8327082B2 (en) Snoop request arbitration in a data processing system
US7552268B2 (en) Method for improving bus utilization using predictive arbitration
JP3705453B2 (ja) データ処理システム
JPH09153009A (ja) 階層構成バスのアービトレーション方法
KR100389030B1 (ko) 다중 채널을 가진 고속 직접 메모리 억세스 컨트롤러
US5799160A (en) Circuit and method for controlling bus arbitration
JP3206656B2 (ja) バス上でのプリフェッチ装置およびプリフェッチ方法
JPH05189311A (ja) キャッシュメモリ・システム
JPH1125035A (ja) バス調停装置
JP2000047930A (ja) データ処理装置
JP2000250852A (ja) バス調停装置、バスシステムおよびバス調停方法
JP2002366511A (ja) バス調停回路
CN116185914A (zh) 一种多通道dma控制器的轮转处理请求方法
JP2001256169A (ja) データ転送制御システム及び装置
JPH11232215A (ja) バスコントローラ、バスマスタ装置及びバス制御システムの制御方法

Legal Events

Date Code Title Description
WITN Application deemed withdrawn, e.g. because no request for examination was filed or no examination fee was paid