KR20010076242A - 버스 사용 효율을 높인 집적 회로 장치의 버스 제어 방식 - Google Patents

버스 사용 효율을 높인 집적 회로 장치의 버스 제어 방식 Download PDF

Info

Publication number
KR20010076242A
KR20010076242A KR1020010001247A KR20010001247A KR20010076242A KR 20010076242 A KR20010076242 A KR 20010076242A KR 1020010001247 A KR1020010001247 A KR 1020010001247A KR 20010001247 A KR20010001247 A KR 20010001247A KR 20010076242 A KR20010076242 A KR 20010076242A
Authority
KR
South Korea
Prior art keywords
data
command
lsi
bus
chip
Prior art date
Application number
KR1020010001247A
Other languages
English (en)
Other versions
KR100768049B1 (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 KR20010076242A publication Critical patent/KR20010076242A/ko
Application granted granted Critical
Publication of KR100768049B1 publication Critical patent/KR100768049B1/ko

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/14Handling requests for interconnection or transfer
    • G06F13/36Handling requests for interconnection or transfer for access to common bus or bus system
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/10Program control for peripheral devices
    • G06F13/12Program control for peripheral devices using hardware independent of the central processor, e.g. channel or peripheral processor
    • G06F13/124Program control for peripheral devices using hardware independent of the central processor, e.g. channel or peripheral processor where hardware is a sequential transfer control unit, e.g. microprocessor, peripheral processor or state-machine
    • G06F13/126Program control for peripheral devices using hardware independent of the central processor, e.g. channel or peripheral processor where hardware is a sequential transfer control unit, e.g. microprocessor, peripheral processor or state-machine and has means for transferring I/O instructions and statuses between control unit and main processor
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/38Concurrent instruction execution, e.g. pipeline or look ahead
    • G06F9/3877Concurrent instruction execution, e.g. pipeline or look ahead using a slave processor, e.g. coprocessor
    • G06F9/3879Concurrent instruction execution, e.g. pipeline or look ahead using a slave processor, e.g. coprocessor for non-native instruction execution, e.g. executing a command; for Java instruction set

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Hardware Design (AREA)
  • Microelectronics & Electronic Packaging (AREA)
  • Bus Control (AREA)

Abstract

본 발명은 버스의 고속 주파수에서의 동작을 가능하게 하는 것을 특징으로 한다.
발행측 LSI는 수신측 LSI가 몇 개의 커맨드를 동시에 처리할 수 있는지 혹은 몇 개의 데이터를 동시에 수신할 수 있는지를 나타내는 값이 초기화시에 로드되는 카운터를 가지며, 커맨드 또는 데이터를 발행할 때에 카운터를 감소시키고, 준비 신호(ready signal)를 수신했을 때에 카운터를 증가시키며, 카운터가 0이 되면 커맨드 또는 데이터의 발행을 금지한다. 따라서, 발행측 LSI는 수신측 LSI로부터의 사용중 신호(busy signal)를 확인하지 않고, 수신측 LSI에 대하여 커맨드나 데이터의 발행을 행할 수 있다. 커맨드 또는 데이터의 발행측 LSI가 수신측 LSI의 커맨드 버퍼 또는 데이터 버퍼의 상태를 관리할 수 있기 때문에, 버스가 고속으로 동작하더라도 효율적으로 커맨드 또는 데이터 발행을 행할 수 있다.

Description

버스 사용 효율을 높인 집적 회로 장치의 버스 제어 방식{BUS CONTROL SYSTEM FOR INTEGRATED CIRCUIT DEVICE WITH IMPROVED BUS ACCESS EFFICIENCY}
본 발명은 마이크로 프로세서와 그 주변의 LSI 사이의 버스 제어 방식에 관한 것으로, 특히 버스를 이용하여 칩 사이의 커맨드나 데이터의 전송을 보다 효율적으로 실행할 수 있는 버스 제어 방식에 관한 것이다. 또한, 본 발명은 버스트 전송되는 데이터의 전송을 보다 효율적으로 실행할 수 있는 버스 제어 방식에 관한 것이다.
마이크로 프로세서는 그 주변의 칩 세트 등과 접속되고, 컴퓨터의 보드 상에 실장된다. 예컨대, 마이크로 프로세서는 브리지 IC를 통해 주변 장치가 접속되는 PCI 버스 등에 접속되고, 마이크로 프로세서와 브리지 IC 사이도 버스를 통해 접속된다.
즉, 마이크로 프로세서는 커맨드나 데이터 발행을 행하여 버스를 통해 브리지 IC로 송신한다. 반대로, 브리지 IC로부터도 그 버스를 통해 브리지 IC의 사전에 접속되는 장치로부터의 커맨드나 데이터를 마이크로 프로세서로 전송한다. 커맨드는 전형적으로는 판독과 기록이며, 이들 커맨드에는 판독의 경우는 어드레스가, 기록의 경우는 어드레스와 데이터가 첨부된다. 또한, 데이터는 판독 커맨드에 응답하여 판독된 데이터나 기록 커맨드에 대응하는 기록 데이터 등이다.
다른 실시예에서, 마이크로 프로세서는 버스를 통해 메모리 컨트롤러 IC에 접속되고, 메모리 컨트롤러의 사전에 접속되는 메모리나 다른 처리 LSI에 대하여 판독이나 기록을 실행한다. 또한, 마이크로 프로세서는 처리 LSI로부터 판독이나 기록이 실행된다.
도 1a 내지 도 1c는 종래의 마이크로 프로세서와 그 주변 LSI 사이의 버스 제어를 설명하기 위한 도면이다. 도 1a은 마이크로 프로세서(A)와 브리지 칩(B) 사이의 접속도로서, 마이크로 프로세서(A)가 발행한 커맨드(어드레스와 판독/기록을 포함함)가 커맨드 버스(10)를 통해 브리지 칩(B)에 송신된다. 브리지 칩(B)은 예컨대 I/O 장치나 메모리 컨트롤러 등에 접속되는 버스(100)에 접속된다.
도 1a과 같은 구성에 있어서, 마이크로 프로세서(A)로부터 칩(B)에 대하여 커맨드를 발행하는 경우, 칩(B)측은 마이크로 프로세서(A)로부터의 커맨드를 동시에 4 개까지 처리할 수 있는 능력이 있다. 다시 말해서, 칩(B) 내의 수신용 커맨드 버퍼의 단수가 4단이며, 4 개의 커맨드까지 동시에 수신하여 유지할 수 있다고 한다.
마이크로 프로세서(A)가 칩(B)에 대하여 연속해서 커맨드를 발행하면, 칩(B)은 5 개째의 커맨드를 처리할 수 없다. 따라서, 칩(B)은 마이크로 프로세서(A)에 대하여 5 개째의 커맨드를 수리할 수 없다는 것을 통지해야 한다. 그 때문에 종래에는 칩(B)이 내부에 처리중인 커맨드가 4 개 있고 새로운 커맨드를 수취할 수 없는 상태가 되면, 마이크로 프로세서(A)에 대하여 사용중 신호(BUSY)를 출력하고, 마이크로 프로세서(A)에 의한 새로운 커맨드의 발행을 금지한다.
도 1b의 타임 차트에 도시되는 스트로브 신호(STRB)는 커맨드 버스(10)상의 커맨드(어드레스, READ/WRITE 등)가 유효한 사이클인 것을 나타내는 스트로브 신호이다. 마이크로 프로세서(A)는 커맨드를 송신할 때마다 그 커맨드가 유효하다는 것을 나타내는 스트로브 신호(STRB)를 출력한다. 도면 중, 사이클 1에서 4로 4 개의 커맨드(1∼4)가 마이크로 프로세서(A)로부터 칩(B)으로 연속해서 발행되고 있지만, 칩(B)은 4 개째의 커맨드 4에 내장하는 커맨드 버퍼가 가득 찬다. 그래서, 칩(B)은 다음 사이클 5로부터 사용중 신호(BUSY)를 마이크로 프로세서(A)에 대하여 출력하고 있다. 마이크로 프로세서(A)는 사이클 5에 동시에 5 개째의 커맨드를 발행하고 있지만, 사용중 신호(BUSY)에 의해 이 커맨드 5는 칩(B)이 수취하고 있지 않은 것을 인식한다.
이 종래예에서는 칩(B)이 그 수신용 커맨드 버퍼가 가득 찬 다음 사이클로부터 사용중 신호(BUSY)를 출력하고 있다. 이 방법은 동작 주파수가 느린 영역에서는가능하지만, 동작 주파수가 높아지면, 사용중 신호(BUSY)를 커맨드 버퍼가 가득 찬 다음 사이클에서 출력할 수 없게 된다. 따라서, 마이크로 프로세서(A)는 커맨드를 발행한 것에 따라 칩(B)으로부터 사용중 신호(BUSY)가 출력되었는지 여부를 확인하고 나서가 아니면, 다음 커맨드를 발행할 수 없으며, 결국 마이크로 프로세서(A)는 커맨드 발행으로부터 1 사이클 후에밖에 다음 커맨드를 발행할 수 없게 된다.
도 1b의 타임 차트에 도시된 바와 같이, 사용중 신호(BUSY)의 출력이 1 사이클 지연되면, 사이클 6으로부터 사용중 신호(BUSY)가 출력되기 때문에, 마이크로 프로세서(A)는 사이클 5에서 출력한 5 개째의 커맨드 5가 칩(B)에 수취된다고 인식해 버린다. 이것을 피하기 위해서, 도 1c의 타임 차트에 도시된 바와 같이, 마이크로 프로세서(A)는 커맨드를 발행하면 2 사이클 후에 다음 커맨드를 발행하고, 그 때의 사용중 신호(BUSY)의 유무에 따라 그 커맨드가 수신되었는지 여부를 체크한다. 따라서, 마이크로 프로세서(A)는 2 사이클에 1 번밖에 커맨드를 발행할 수 없게 되어 버스의 사용 효율이 떨어지게 된다.
상기 문제는 커맨드의 버스에 한정되지 않고, 데이터 버스에 있어서도 마찬가지로 적용된다. 또한, 마이크로 프로세서(A)로부터 칩(B)으로의 커맨드나 데이터의 전송뿐만 아니라 그 반대 방향의 커맨드나 데이터의 전송에 있어서도 동일한 문제가 존재한다.
또한, 양 칩 사이에서 커맨드나 데이터를 전송하는 경우에, 버스의 사용권을 어느 쪽으로 해야할 지의 버스 아비터 회로가 필요하게 되지만, 상기 종래 방식에서는, 쌍방향의 버스를 이용하기 위해서는 부적절하며, 버스의 갯수가 이중으로 필요하게 된다고 하는 문제를 갖는다.
그래서, 본 발명의 목적은 버스의 사용 효율을 높인 신규의 버스 제어 방식을 제공하는 데에 있다.
또한, 본 발명의 다른 목적은 버스의 동작 주파수가 고속으로 되더라도 버스의 사용 효율을 떨어뜨리지 않고 커맨드나 데이터의 발행, 전송을 실행할 수 있는 버스 제어 방식을 제공하는 데에 있다.
또한, 본 발명의 또다른 목적은 쌍방향의 버스를 보다 효율적으로 사용할 수 있는 버스 제어 방식을 제공하는 데에 있다.
또한, 본 발명의 또다른 목적은 버스트 전송에 있어서의 버스의 효율적 사용을 가능하게 하는 버스 제어 방식을 제공하는 데에 있다.
도 1a 내지 도 1c는 종래의 마이크로 프로세서와 그 주변 LSI 사이의 버스 제어를 설명하기 위한 도면.
도 2a 내지 도 2c는 제1 실시예인 커맨드 발행 제어를 설명한 도면.
도 3은 도 2a 내지 도 2c에 있어서의 마이크로 프로세서와 브리지 칩의 상세 구성도.
도 4a 내지 도 4c는 제1 실시예의 변형예를 도시한 도면.
도 5a 및 도 5b는 제2 실시예인 커맨드 버스 제어를 설명한 도면.
도 6은 도 5a의 상세한 LSI의 구성도.
도 7a 및 도 7b는 제3 실시예인 데이터 발행 제어를 설명한 도면.
도 8은 도 7a 및 도 7b에 있어서의 마이크로 프로세서와 브리지 칩의 상세 구성도.
도 9는 제4 실시예인 데이터 버스 제어를 설명한 도면.
도 10은 커맨드와 데이터를 공통의 버스에 의해 전송하는 예의 접속도.
도 11a 내지 도 11c는 제5 실시예인 데이터에 액세스 타입 신호를 부가한 예의 접속도.
도 12a 및 도 12b는 제5 실시예의 동작을 설명한 타임 차트.
도 13은 제6 실시예인 칩 세트의 커맨드 버스와 데이터 버스의 우선권을 서로 균형이 잡히도록 한 예의 접속도.
도 14는 제7 실시예에 있어서의 버스트 전송시의 버스 사용권을 제어하는 버스 아비터의 구성도.
도 15는 제7 실시예의 동작을 도시한 타임 차트.
도 16a 및 도 16b는 제2 수신 데이터 버퍼 제어 방법을 설명한 도면.
도 17a 및 도 17b는 제3 수신 데이터 버퍼 제어 방법을 설명한 도면.
도 18a 내지 도 18C는 제8 실시예인 수신 데이터 버퍼를 분리한 예를 설명한 도면.
도 19a 및 도 19b는 제9 실시예인 커맨드 ID를 이용하는 것을 설명한 도면.
도 20a 및 도 20b는 제10 실시예인 리셋 직후의 커맨드 발행 금지를 설명한 도면.
도 21은 도 11a 내지 도 11c의 실시예인 더블 데이터 레이트를 설명한 도면.
〈도면의 주요 부분에 대한 부호의 설명〉
10C : 커맨드 버스
10D : 데이터 버스
12 : 커맨드 발행 제어 회로
23: 커맨드계 제어부
24 : 발행용 커맨드 버퍼
25: 데이터계 제어부
26 : 수신 커맨드 버퍼
28 : 커맨드 처리부
35 : 커맨드 버스 아비터 회로
112 : 데이터 발행 제어 회로
124 : 발행용 데이터 버퍼
126 : 수신 데이터 버퍼
128 : 데이터 처리부
135 : 데이터 버스 아비터 회로
상기 목적을 달성하기 위해서, 본 발명의 제1 특징은 2 개의 집적 회로 장치(이하 LSI라 칭함) 사이에서 커맨드 또는 데이터의 전송을 실행하는 경우에 있어서, 커맨드 또는 데이터가 발행하는 LSI(발행측 LSI)가 그 커맨드 또는 데이터를 수신하는 LSI(수신측 LSI)에 대하여 커맨드 또는 데이터를 발행할 때에 유효한 커맨드 또는 데이터가 송출된 것을 나타내는 스트로브 신호를 출력하고, 수신측 LSI측으로부터 커맨드를 발행하는 측에 대하여, 커맨드 처리가 완료된 것을 통지하는 신호(커맨드 준비 신호)를 출력한다.
발행측 LSI는 수신측 LSI가 몇 개의 커맨드를 동시에 처리할 수 있는지 혹은 몇 개의 데이터를 동시에 수신할 수 있는지를 나타내는 값이 초기화시에 로드되는카운터를 가지며, 커맨드 또는 데이터를 발행할 때에 카운터를 감소시키고, 준비 신호를 수신했을 때에 카운터를 증가시키며, 카운터가 0이 되면 커맨드 또는 데이터의 발행을 금지한다. 따라서, 발행측 LSI는 수신측 LSI로부터의 사용중 신호를 확인하지 않고, 수신측 LSI에 대하여 커맨드나 데이터의 발행을 행할 수 있다.
이상과 같이, 커맨드 또는 데이터의 발행측 LSI는 수신측 LSI의 커맨드 버퍼 또는 데이터 버퍼의 상태를 관리할 수 있기 때문에, 버스가 고속으로 동작하게 되더라도 효율적으로 커맨드 또는 데이터의 발행을 행할 수 있다.
이하, 도면을 참조하여 본 발명의 실시예를 설명한다. 그러나, 이러한 실시예가 본 발명의 기술적 범위를 한정하는 것은 아니다. 또한, 실시예에서는 마이크로 프로세서와 브리지 LSI 사이의 버스 관리를 예로써 설명하고 있지만, 본 발명은 이러한 조합에 한정되지 않고, 2개의 LSI 사이의 버스 관리에 널리 적용할 수 있다. 또한, 이하의 실시예에서는 커맨드 버스에 커맨드와 함께 어드레스도 전송하고 있지만, 어드레스는 데이터 버스에 의해 전송되더라도 좋고, 독립된 어드레스 버스에 의해 전송되더라도 좋다.
[커맨드 발행 제어]
도 2a 내지 도 2c는 제1 실시예인 커맨드 발행 제어를 설명하기 위한 도면이다. 도 2a는 마이크로 프로세서(A)와 브리지 칩(B)과의 접속도, 도 2b는 그 동작 타이밍 차트이다. 또한, 도 2c는 마이크로 프로세서(A)와 브리지 칩(B)에서 커맨드를 상호 발행하는 경우의 접속도이다. 또한, 도 3은 도 2a의 상세한 구성도이다.
도 2a에 도시된 바와 같이, 커맨드를 발행하는 발행측 LSI의 마이크로 프로세서A는 커맨드 발행 제어 회로(12)를 가지며, 그 커맨드 발행 제어 회로(12)는 커맨드를 수신하는 수신측 LSI의 브리지 칩(B)이 몇 개의 커맨드를 동시에 처리할 수 있는지에 대한 단수를 유지하는 발행 가능 단수 지시 레지스터(13)와, 카운터(18)를 갖는다. 또한, 커맨드 발행 제어 회로(12)는 스위치(14, 15, 16)와 커맨드 발행 금지 신호 발생 회로(19)와 커맨드 발행 회로(20)를 갖는다. 각 스위치는 도시되는 논리 조건일 때에 온(ON)한다. 또한, 도면 중 ∼(틸더)는 부정을 의미한다.
브리지 칩(B)은 종래예에 있어서의 사용중 신호(BUSY) 대신에 커맨드에 대한 처리를 완료한 시점에서 커맨드 준비 신호(CMD_READY)를 마이크로 프로세서(A)에 출력한다. 이 커맨드 준비 신호(CMD_READY)는 마이크로 프로세서(A)로부터 발행된 커맨드를 1개 처리 완료할 때마다 마이크로 프로세서(A)에 1 사이클만큼 출력된다.
마이크로 프로세서(A)는 (1) 초기화시에 스위치(14)를 온(ON)으로 하여 발행 가능 단수 지시 레지스터(13)의 단수를 카운터(18)에 로드하고, (2) 브리지 칩(B)에 커맨드를 발행하면, 스트로브 신호(CMD_STRB)에 대응하여 스위치(16)를 온(ON)으로 하여 그 카운터 값을 감소시키고, (3) 브리지 칩(B)으로부터 커맨드 준비 신호(CMD_READY)를 수취하면, 스위치(15)를 온(ON)으로 하여 카운터 값을 증가시킨다. 스트로브 신호를 발행하고 준비 신호도 수신한 경우와, 스트로브 신호를 발행하지 않고 준비 신호도 수신하지 않는 경우에는, 카운터(18)의 카운트 값은 유지된다. 이들 증가와 감소는 클록에 동기하여 제어된다.
마이크로 프로세서(A)는 카운터 값이 0이 되면, 커맨드 발행 회로(20)에 대하여 커맨드 발행 금지 신호(S19)를 출력하고, 신규 커맨드의 발행을 금지한다. 커맨드 발행 금지 신호(S19)는 발행 금지 신호 발생 회로(19)에 의해 생성된다. 커맨드 발행 회로(20)는 커맨드의 발행 요구가 있으면, 커맨드 발행 금지 신호(S19)가 출력되지 않는 한, 신규 커맨드의 발행 신호(S20)을 출력한다.
구체적인 동작에 관해서, 도 2b의 타임 차트를 참조하여 설명한다. 커맨드를 수신하는 쪽의 브리지 칩(B)은 예컨대 4 개의 커맨드를 동시에 처리할 수 있다고 한다. 즉, 브리지 칩(B)의 커맨드 수신 버퍼는 4개의 커맨드까지 저장 가능하다. 따라서, 마이크로 프로세서(A)의 발행 가능 단수 지시 레지스터(13)에는 4를 설정해 둔다. 파워 온 리셋 등의 초기화시에, 이 레지스터 값 4가 카운터(18)에 로드된다. 마이크로 프로세서(A)는 사이클 2에 1 개째의 커맨드를 커맨드 버스(10)에 발행하고, 동시에 카운터(18)는 감소되어 3이 된다. 사이클 5에 4 개째의 커맨드를 발행하면, 카운터 값은 0이 되고, 커맨드 발행 금지 신호(S19)가 생성되며, 다음 사이클로부터의 신규 커맨드의 발행은 금지된다.
사이클 8에 브리지 칩(B)이 최초의 커맨드 준비 신호(CMD_READY)를 출력하고 있다. 사이클 8에서 마이크로 프로세서(A)는 커맨드 준비 신호(CMD_READY)에 의해 브리지 칩(B)의 커맨드 버퍼가 1개 빈 것을 인식하고(카운터 값은 1이 되고), 다음 사이클 9에 5개째의 커맨드를 발행하고 있다. 따라서, 사이클 9에 있어서, 카운터(18)는 사이클 9의 커맨드 준비 신호(CMD_READY)에 의한 증가와, 커맨드 스트로브 신호(CMD_STRB)에 의한 감소가 동시에 실행되어 그 카운트 값은 그대로 유지된다.
사이클 9에도 브리지 칩(B)으로부터 커맨드 준비 신호 CMD_READY가 출력되고, 그 신호를 인식하여 마이크로 프로세서(A)는 사이클 10에 6개째의 커맨드 발행을 행하고 있다. 사이클 11에 3개째의 커맨드에 대한 커맨드 준비 신호(CMD_READY)가 출력되어 있지만, 마이크로 프로세서(A)는 신규 커맨드 발행의 예정이 없기 때문에 카운터 값이 증가되어 1이 된다.
타임 차트에는 기록되어 있지 않지만, 그 후 마이크로 프로세서(A)가 커맨드를 발행하지 않으면, 브리지 칩(B)은 4 개째에서 6 개째의 커맨드에 대한 커맨드 준비 신호(CMD_READY)를 3 회 출력한다. 그리고 마이크로 프로세서(A)는 카운터(18)를 3회 증가시켜 최초의 상태로 되돌아간다.
도시된 바와 같이, 커맨드 발행 금지 신호(S19)는 사이클 6, 7, 8, 11에서 생성된다. 이 타임 차트에는, 브리지 칩(B)이 커맨드 준비 신호(CMD_READY)를 출력한 사이클에서 마이크로 프로세서(A)는 그 신호를 인식하여 다음 사이클에 커맨드를 출력할 수 있는지 여부를 판정한다. 그러나, 버스(10)가 고속 주파수에서 동작하게 되면, 마이크로 프로세서(A)는 커맨드 준비 신호(CMD_READY)를 브리지 칩(B)이 출력한 사이클이 아니라 내부의 플립플롭에서 1단 받아 다음 사이클에 인식해야 한다. 그 경우에도, 마이크로 프로세서(A)의 커맨드 발행이 1 사이클 지연될 뿐이고, 버스의 프로토콜 문제는 생기지 않는다.
따라서, 상기 버스(10)가 고속 주파수로 동작하는 경우에도, 커맨드 1 내지 커맨드 4까지는 연속하는 사이클로 발행된다. 단, 사이클 9에서의 커맨드 5의 발행은 사이클 10으로 시프트된다. 그것에 따라, 커맨드 6은 2 사이클 후에 발행된다. 그래도 종래예보다는 버스(10)의 사용 효율이 높아지게 되는 것이 이해된다.
도 3의 상세 구성도에 도시된 바와 같이, 마이크로 프로세서(A)는 CPU 코어(21)와 버스 제어부(22)를 갖는다. 버스 제어부(22)는 커맨드계 제어부(23)와 데이터계 제어 회로(25)를 가지며, 커맨드계 제어부(23)는 상기 커맨드 발행 제어 회로(12)와 발행용 커맨드 버퍼(24)를 갖는다. 커맨드 발행 제어 회로(12)는 도 2a 내지 도 2c에서 설명한 것과 동일한 구성이다.
커맨드 발행 제어 회로(12)는 커맨드 출력 지시 신호(S20)을 발행용 커맨드 버퍼(24)에 공급하여 커맨드를 커맨드 버스(10)에 발행한다. 그 때, 커맨드 발행 회로(20)는 커맨드 스트로브 신호(CMD_STRB)를 동시에 출력한다. 이 커맨드 출력 지시 신호(S20)은 커맨드 발행 금지 신호(S19)가 출력되지 않는 한, 신규 커맨드 발행 요구에 응답하여 생성된다. 커맨드를 발행하면, 클리어 신호(CL)에 의해 커맨드 버퍼(24)의 대응하는 커맨드는 삭제된다.
수신측의 브리지 칩(B)은 버스 제어부(22B)와, 브리지 코어(30)와, 더욱 하위 버스에 대한 버스 인터페이스(32)를 갖는다. 버스 제어부(22B)는 커맨드계 제어부(23B)와 데이터계 제어부(25B)를 가지며, 커맨드계 제어부(23B)는 수신 커맨드 버퍼(26) 및 커맨드 처리부(28)를 갖는다. 수신 커맨드 버퍼(26)는 커맨드 스트로브 신호(CMD_STRB)가 수신될 때에, 커맨드 버스(10)의 커맨드 신호를 유효 커맨드 신호로서 래치하고, 커맨드 처리부(28)의 전송 지시(S28)에 응답하여 브리지 코어(30)에 그 커맨드를 전송한다. 또한, 커맨드 처리부(28)는 커맨드의 처리가 완료되면, 커맨드 준비 신호(CMD_READY)를 마이크로 프로세서(A)에 발행한다.
도 2a에서는, 칩(A)에서 칩(B)의 한 방향으로만 커맨드를 발행한다. 예컨대칩(A)이 CPU에서, 칩(B)이 CPU의 액세스를 다른 버스로 브리지하는 브리지 LSI인 경우는, 통상 브리지 LSI측에서 CPU로 커맨드가 발행되는 일은 없기 때문에, 이와 같이 한 방향으로만 커맨드를 발행할 수 있는 것이 좋다. 그러나, 칩(B)으로부터 칩(A)에 커맨드가 발행되는 경우는, 도 2c에 도시된 바와 같이, 칩(B)이 도 2a에서 도시한 제어 신호를 1세트 더 추가된다. 그것에 따라, 칩(B)에도 칩(A)과 동일한 커맨드 발행 제어부(12B), 발행용 커맨드 버퍼(24B) 등이 설치된다.
즉, 커맨드 스트로브 신호, 커맨드 준비 신호, 커맨드 버스는 각각 2 세트 필요하게 된다. 특히, 커맨드 신호는 어드레스를 포함하기 때문에, 칩(A)에서 칩(B), 칩(B)에서 칩(A)의 상호 신호선을 설치하면, 총 신호선의 수가 많아지게 된다.
도 4a 내지 도 4c는 제1 실시예의 변형예를 도시하는 도면이다. 도 2a 내지 도 2c에 도시된 실시예에서는, 수신측 LSI인 브리지 칩(B)이 커맨드 준비 신호(CMD_READY)를 출력하는 것은 커맨드에 대한 처리가 종료되었을 때이다. 그러나, 브리지 칩(B)이 커맨드 준비 신호(CMD_READY)를 출력하는 타이밍은 수신한 커맨드를 완전히 처리 완료된 타이밍이 아니라 처리 완료에서부터 소정의 사이클 선행하는 타이밍이라도 좋다. 소정의 사이클이란 커맨드 준비 신호(CMD_READY)가 발행측 LSI에 도달하여 인식될 때까지 필요한 사이클 또는 발행측 LSI가 커맨드 준비 신호(CMD_READY)를 인식하여 다음 커맨드를 발행하고 그것이 수신측 LSI에 도달할 때까지 필요한 사이클이다. 수신측 LSI는 그 사이클 수만큼을 예상하여 미리 커맨드 준비 신호(CMD_READY)를 출력하여도 상관없다. 그와 같이 함으로써 버스의 사용효율을 보다 높일 수 있다.
도 4a는 칩(A, B)의 접속도이다. 고속 주파수에 의해 동작 사이클이 짧아짐에 따라 각 칩(A, B)의 출력과 입력에는 플립플롭(FF)이 각각 설치된다. 칩(A) 내의 커맨드계 제어부(23)는 내부 스트로브 신호(n_STRB_A)와 함께 내부 커맨드 신호(n_COMMAND)를 일단 플립플롭(FF)에 래치하고, 다음 클록 사이클로 칩(B)에 발행한다. 칩(B)에서도, 그 클록 사이클에서 입력 플립플롭(FF)에 래치하고, 다음 사이클에서 커맨드 제어부(23B)에 전송된다. 그리고, 칩(B)의 커맨드 제어부(23B)는 커맨드 처리가 완료되기 여러 사이클 전에 내부 커맨드 준비 신호(n_CMD_READY_B)를 생성하고 플립플롭을 통해 칩(A)에 공급한다.
도 4b는 칩(B)이 커맨드의 처리 완료시에 커맨드 준비 신호(CMD_READY_B)를 발행하는 경우의 타임 차트이다. 칩(B)은 사이클 6에서 커맨드 준비 신호(CMD_READY_B)를 발행하고 있지만, 각 플립플롭에 의해 1 사이클씩 지연되기 때문에 칩(B)이 다음 커맨드를 수취하여 처리를 개시하는 타이밍은 사이클 9가 된다.
도 4c는 칩(B)이 커맨드의 처리 완료의 3 사이클 전에 커맨드 준비 신호(CMD_READY_B)를 발행하는 실시예이다. 이것에 의해, 칩(B)은 앞의 커맨드의 처리가 완료되는 사이클 5의 다음 사이클에서 다음 커맨드의 처리를 개시할 수 있다.
[커맨드 버스 제어]
도 5a, 도 5b는 제2 실시예의 커맨드 버스 제어를 설명하는 도면이다. 도 2c에 도시된 쌍방향의 커맨드 버스를 설치하는 예는 버스선의 수가 방대해진다. 도 5a 및 도 5b에서는 커맨드 버스(Command)를 쌍방향의 신호 버스로서, 커맨드 버스를 칩(A)으로부터 칩(B)으로의 방향과, 칩(B)으로부터 칩(A)으로의 방향에서 공유한다. 그 결과, 커맨드 버스의 버스 사용권의 제어가 필요하게 된다.
도 5a는 마이크로 프로세서(A)와 브리지 칩(B)과의 접속도를 도시한다. 커맨드 버스(10)를 쌍방향 버스로 한 것에 따라, 칩(B)에서 칩(A)으로의 요구 신호(REQUEST)와, 칩(A)에서 칩(B)으로의 허가 신호(GRANT)가 추가되어 있다. 또한, 칩(A)은 쌍방향의 커맨드 버스(10)의 사용권을 조정하는 커맨드 버스 아비터 회로(35)를 탑재하고 있다.
도 5b의 타임 차트를 참조하여 동작을 설명한다. 보통은 칩(A)이 커맨드 버스의 사용권을 갖고, 칩(A)은 필요한 때에 커맨드 스트로브 신호(STRB_A)와 동시에 커맨드 버스(10)에 커맨드(A1)을 출력한다(사이클 2). 칩(B)이 커맨드를 출력하길 원할 때에는 우선 요구 신호(REQUEST)를 1 사이클만 출력한다(사이클 4). 칩(A)은 요구 신호(GRANT)를 인식하면, 칩(A)이 커맨드 버스(10)를 사용할 예정이 없으면 허가 신호(GRANT)를 칩(B)에 출력한다. 타임 차트에서, 칩(A)은 다음 사이클 5에서 허가 신호(GRANT)를 출력하고 있다. 칩(B)은 허가 신호(GRANT)를 수신하면, 다음 사이클 6에서 커맨드 버스(10)에 커맨드(B1)을 출력한다(사이클 6).
칩(B)이 연속해서 커맨드를 발행하고 싶은 경우에는 그 커맨드 수만큼 요구 신호(REQUEST)를 출력하고, 칩(A)도 동일한 수만큼 허가 신호(GRANT)를 출력한다. 타임 차트에서는, 칩(B)이 사이클 6과 사이클 8에 요구 신호(REQUEST)를 출력하고,사이클 8, 9의 2 사이클에서 칩(A)은 허가 신호(GRANT)를 출력하고 있다. 칩(B)은 그것에 응답하여 사이클 10, 11의 2 사이클에서 커맨드 버스(10)에 커맨드(B2, B3)를 출력하고 있다.
상기 버스권의 제어를 실행하는 아비터 회로의 구체예가 도 5a에 도시되어 있다. 커맨드 버스 아비터 회로(35)는 버스 제어부(36)와 내부 허가 신호(n_GRANT)를 래치하여 허가 신호(GRANT)를 출력하는 플립플롭(FF)을 갖는다. 또한, 제어부(36)는 커맨드 발행 제어 회로(12)로부터의 발행 요구 신호(S20)에 기초하여 칩(A)이 커맨드를 발행하고 있지 않을 때에 허가 신호를 생성하고, 커맨드 발행 제어 회로(12)에는 발행 금지 신호(S36)을 공급한다.
버스 제어부(36)는 허가 신호의 수를 계수하는 카운터(38)를 갖는다. 리셋시 이 카운트 값은 0이다. 칩(B)으로부터의 커맨드 요구 신호(REQUEST)를 수신하면, 허가 신호가 발행되어 있지 않으면(도면 중 ∼n_GRANT) 스위치(39)를 온(ON)으로 하여 카운터(38)를 증가시킨다. 또한, 칩(A)이 허가 신호(GRANT)를 발행하면, 요구 신호를 수신하고 있지 않으면 스위치(40)를 통해 카운터(38)를 감소시킨다. 그리고, 요구 신호를 수신하고 허가 신호도 발행한 경우와, 수신도 발행도 하지 않은 경우에 카운터(38)의 카운트 값은 유지된다. 즉, 카운터(38)는 허가 신호를 반환하지 않은 요구 신호의 합계치를 갖는다. 요구 신호가 1 사이클밖에 발행되지 않기 때문에, 칩(A)은 그 수를 카운터(38)에 기록해야 한다. 이 카운터의 증가와 감소도 시스템 클록에 동기하여 실행된다.
그리고, OR/AND 게이트(42)에 의해 카운터(38)의 카운터 값(req_sum)이 0이아닌 경우에 커맨드 발행 제어 회로(12)가 발행 요구 신호(S20)를 출력하고 있지 않는 경우는, 허가 신호(n_GRANT)를 생성하여 커맨드 버스(10)의 사용권을 칩(B)에 부여한다. 그 경우, 그 후의 칩(A)으로부터의 커맨드의 발행을 금지하기 위해 발행 금지 신호(S36)를 커맨드 발행 제어 회로(12)에 공급한다. 또, 카운터(38)의 카운터 값이 0이라도 요구 신호(REQUEST)를 수신하면, 발행 요구 신호(S20)가 출력되지 않으면, 바로 허가 신호(n_GRAANT)를 생성하고, 플립플롭 및 NOR 게이트로 이루어진 회로(43)를 통해 발행 금지 신호(S36)도 생성한다.
도 5b에 도시된 바와 같이, 사이클 5, 6, 7의 3 사이클 기간(Δt)에 있어서, 발행 금지 신호(S36)가 발생하고 칩(A)으로부터의 커맨드의 발행이 금지된다. 버스 파이트(fight)를 방지하기 위해서, 3 사이클 기간 중 사이클 6에서 칩(B)이 커맨드를 발행하고, 그 전후의 사이클에서의 칩(A)으로부터의 커맨드 발행은 금지된다.
이상과 같이, 커맨드 버스 아비터 회로(35)는 칩(A)에 버스(10)의 사용권을 우선적으로 부여하고, 칩(A)이 커맨드 버스(10)를 사용하지 않는 경우에만 칩(B)으로부터의 요구 신호에 응답하여 버스 사용권을 부여한다.
위의 실시예에서는 칩(A)의 커맨드 버스 아비터 회로(35)는 자신이 커맨드를 출력할 예정이 없을 때에 허가 신호(GRANT)를 출력하지만, 요구 신호(REQUEST)를 검출하면, 출력을 원하는 경우에, 허가 신호(GRANT)를 출력하여 칩(B)의 버스 사용을 우선하여도 좋다. 칩(B)으로부터의 액세스를 우선하는 경우는, 칩(B)이 요구 신호(REQUEST)를 분류하면 다음 사이클에 반드시 칩(A)은 허가 신호(GRANT)를 출력하기 때문에, 칩(A)으로부터의 허가 신호(GRANT)를 생략할 수도 있다.
도 6은 도 5a의 상세한 LSI의 구성도이다. 도 3에 도시된 커맨드계 제어 부(23) 내에 커맨드 버스 아비터 회로(35)가 설치되어 있다.
도 6에 도시된 바와 같이, 커맨드 버스 아비터 회로(35)는 도 2a 내지 도 2c에서 도시한 커맨드 발행 제어 회로(12)와 함께 칩(A)에 설치된다. 커맨드 버스 아비터 회로(35)가 쌍방향 커맨드 버스(10)의 버스 사용권을 제어하고, 커맨드 발행 제어 회로(12)가 칩(B) 측의 커맨드를 제어한다. 따라서, 커맨드 발행 제어 회로(12)가 커맨드 발행을 금지하는 기간에는 요구 신호에 응답하여 허가 신호가 발행되어 칩(B)에 버스 사용권이 부여된다.
도 6에는 칩(A) 측에 커맨드 발행부와 수신부가 설치되고, 칩(B) 측에도 커맨드 발행부와 수신부가 설치된다. 그리고, 칩(A) 측에만 커맨드 버스 아비터 회로(35)가 설치된다. 각각의 커맨드 발행부는 발행용 커맨드 버퍼(24, 24B)와 커맨드 발행 제어 회로(12, 12B)를 가지며, 각각의 커맨드 수신부는 수신 커맨드 버퍼(26, 26A)와 커맨드 처리부(28, 28A)를 갖는다. 각각의 기능은 도 3에서 설명한 바와 같다.
[데이터 발행 제어(데이터 버퍼의 제어)]
상기에서는 커맨드의 발행 제어와 쌍방향성 커맨드 버스의 사용권의 제어에 대해서 설명하였다. 동일한 제어를 데이터에 대해서도 적용할 수 있다. 발행측 LSI로부터 수신측 LSI에 데이터를 발행하는 경우, 수신측 LSI를 동시에 수신할 수 있는 데이터량이나 데이터 단수를 발신측 LSI가 관리함으로써 고속 주파수에 있어서도 버스의 사용 효율을 높일 수 있다. 또한, 쌍방향성 커맨드 버스의 경우는, 버스아비터가 필요하게 된다.
도 7a 및 도 7b는 제3 실시예인 데이터 발행 제어를 설명하는 도면이다. 도 7a, 도 7b는 도 2c, 2b에 대응하는 도면이다. 도 7a의 접속도에 도시된 바와 같이, 마이크로 프로세서(A)는 도 2a 내지 도 2c에 도시된 커맨드 발행 제어 회로(12)에 부가하여 동일한 구성의 데이터 발행 제어 회로(112)를 갖는다. 마찬가지로, 브리지 칩(B)도 커맨드 발행 회로(12B)에 부가하여 동일한 구성의 데이터 발행 제어 회로(112B)를 갖는다.
이 데이터 발행 제어 회로(112)도 칩(B)을 동시에 수신할 수 있는 데이터 버퍼의 데이터 단수를 갖는 데이터 단수 지시 레지스터(113)와, 리셋시에 그 데이터 단수가 세트되는 카운터(118)와, 카운터 값이 0일 때에 데이터 발행 금지 신호(S119)를 발생하는 발행 금지 신호 생성 회로(119)와, 데이터 발행 금지 신호(S119)가 없을 때에 데이터 발행 신호(S120)를 생성하는 데이터 발행 회로(120)를 갖는다. 도 7b에 그 동작을 나타내는 타임 차트가 도시된다. 이 동작은 도 2b와 동일하다.
도 8은 도 7a 및 도 7b에 있어서의 마이크로 프로세서와 브리지 칩의 상세 구성도이다. 도 8에는 커맨드계 제어부(23, 23B)에 부가하여 데이터계 제어부(25, 25B)가 도시된다. 칩(A)측의 데이터계 제어부(25)는 송신부에 도 7a 및 도 7b에 도시된 데이터 발행 제어 회로(112)와 송신용 데이터 버퍼(124)를 가지며, 데이터 발행 제어 회로(112)의 발행 지령 신호(S120)에 응답하여 데이터 버퍼(124)내의 데이터(Data_A)가 발행된다. 그 때, 데이터 발행 제어 회로(112)는 데이터 스트로브 신호(DT_STRB_A)를 동시에 분류한다. 칩(B)의 수신 데이터 버퍼(126)는 발행된 데이터(Data_A)를 데이터 스트로브 신호(DT_STRB_A)가 분류되어 있을 때에 수신하고 유지한다. 그리고, 데이터 처리부(128)의 전송 지령 S128에 응답하여 브리지 코어(30)측으로 전송한다. 또한, 데이터 처리부가 데이터의 처리를 완료하여 데이터 준비 신호(DT_READY_B)를 발행하면, 수신 데이터 버퍼(126) 내의 데이터는 삭제된다.
상기와 전혀 반대의 제어가 칩(B) 내의 데이터계 제어부(25B)와 칩(A) 내의 데이터계 제어부에서 실행된다.
[데이터 버스 사용권의 제어]
도 9는 제4 실시예인 데이터 버스 제어를 설명하는 도면이다. 이 예에서는, 데이터 버스(Data)가 쌍방향성으로 되어 있다. 따라서, 칩(A)의 버스 제어부(22) 내에 데이터 버스 아비터 회로(135)가 설치된다. 이 데이터 버스 아비터 회로(135)는 도 3, 도 6에서 도시한 커맨드 버스의 커맨드 버스 아비터 회로(35)와 동일한 구성이다.
즉, 데이터 버스 아비터 회로(135)는 칩(B)으로부터 데이터 요구 신호(DT_REQUEST)가 발행되면 카운터(138)는 증가되고, 그것에 응답하여 칩(A)이 데이터의 발행 예정이 없는 경우에 칩(A)이 데이터 허가 신호(DT_GRANT)를 발행하면 카운터(138)는 감소된다. 그리고, OR/AND 게이트(142)에 의해, 카운터 값이 0이 아니고 데이터 발행 제어 회로(112)로부터 데이터 발행 요구(S120)가 없는 경우는, 허가 신호(GRANT)가 발행되고, 데이터 발행 제어 회로(112)에 발행 금지신호(S136)가 공급된다. 이것에 의해, 칩(B)에 데이터 버스의 사용권이 부여된다.
이 데이터 버스 제어의 동작은 도 5b의 커맨드 버스 제어의 동작과 동일하다.
도 10은 칩(A)과 칩(B)이 쌍방향성의 커맨드 버스와 데이터 버스를 공유하는 경우의 구성도이다. 버스(10)는 커맨드와 데이터가 모두 쌍방향으로 전송되는 버스이다. 그것에 따라 요구 신호(REQUEST)와, 허가 신호(GRANT)와, 스트로브 신호(STRB_A, STRB_B)도 데이터와 커맨드로 공용된다. 칩(A)에서 칩(B)으로 커맨드 또는 데이터를 발행할 때에는 스트로브 신호(STRB_A)가 분류되고, 칩(B)에서 칩(A)으로 커맨드 또는 데이터를 발행할 때에는 스트로브 신호(STRB_B)가 분류된다. 또한, 서로의 수신 커맨드 버퍼와 수신 데이터 버퍼의 제어를 위해 커맨드 준비 신호(CMD_READY_A, CMD_READY_B)와, 데이터 준비 신호(DT_READY_A, DT_READY_B)가 발행된다. 그리고, 쌍방향 버스의 버스권 제어를 위해 칩(B)이 요구 신호(REQUEST)를 발행하고, 칩(A)이 허가 신호(GRANT)를 발행한다.
칩(A) 내의 데이터 버스 아비터 회로(135)는 도 9에 도시된 아비터 회로와 동일하지만, 허가 신호(GRANT)를 발행할 때에 발행 금지 신호(S136)가 커맨드 발행 제어 회로(12)와 데이터 발행 제어 회로(112)의 양쪽에 부여된다. 또한, 커맨드 발행 제어 회로(12)로부터의 발행 요구 신호(S20)와 데이터 발행 제어 회로(112)로부터의 발행 요구 신호(S120)가 게이트(142)에 부여되고, 이들 발행 요구 신호가 모두 없을 때에 허가 신호(GRANT)가 발행된다.
또한, 도 10의 예에서는 커맨드와 데이터가 동일한 버스에 발행되기 때문에,어느 쪽 신호인지를 나타내는 위상 신호(PHASE)가 부가되고 있다. 커맨드 또는 데이터를 발행하는 쪽의 칩이 이 스트로브 신호와 함께 위상 신호도 발행한다. 이 위상 신호에 따라 수신측의 칩은 대응하는 수신 버퍼에 커맨드 또는 데이터를 저장한다.
[데이터의 액세스 타입]
도 11a 내지 도 11c는 제5 실시예인 데이터에 액세스 타입 신호를 부가한 실시예의 접속도이다. 본 출원에 관한 마이크로 프로세서는 브리지 칩과의 사이에서, 복수의 커맨드를 그것에 대응하는 처리의 확인을 수신하지 않고 발행한다. 단, 수신측의 브리지 칩의 수신 커맨드 버퍼가 가득 찰 때까지만 발행한다. 또한, 마이크로 프로세서는 복수개의 데이터를 수신측의 칩에 수신측의 데이터 버퍼가 가득 찰 때까지 발행한다.
도 7a, 도 7b, 도 8, 도 9, 도 10에 도시된 예에서는, 데이터 버스로 데이터를 전송할 때에, 그 데이터가 어떤 커맨드에 대응하는 것인지를 특별히 나타내고 있지 않다. 따라서, 커맨드가 커맨드 버스에 발행된 순서대로 대응하는 데이터가 데이터 버스에 출력되는 것을 묵시적인 규칙으로 한다.
예컨대, 칩(A)에서 칩(B)으로의 판독 커맨드, 칩(B)에서 칩(A)으로의 기록 커맨드의 순서로 커맨드가 발행된다고 가정한다. 그 경우, 데이터의 전송 방향은 모두 칩(B)에서 칩(A)가 되지만, 칩(A)은 칩(B)으로부터 전송되는 데이터를 정확하게 받아들이기 위해서 커맨드의 순서대로 판독 커맨드의 응답(reply) 데이터, 기록 커맨드의 기록 데이터의 순서로 전송해야만 한다. 그러나, 칩(B)측에서 보면,칩(A)으로부터의 판독 커맨드의 데이터를 갖추기 위해서는, 경우에 따라서는, 또 다른 LSI에 대하여 커맨드를 발행하여 그 응답을 기다리지 않으면 안되고, 응답 데이터를 갖추는 데 시간이 걸리게 된다. 한편, 기록 데이터 쪽은 기록 커맨드를 칩(A)에 발행한 시점에서, 통상 칩(B) 내에서 데이터가 갖추어져 있기 때문에, 먼저 발행된 판독 커맨드의 데이터가 갖추어지는 것을 기다리고 있는 것은 헛수고다.
도 12a는 그 구체적인 동작 타임 차트이다. 여기에 도시한 실시예는 칩(A)이 칩(B)에 판독 커맨드를 각각 발행하고, 칩(B)이 칩(A)에 기록 커맨드를 각각 발행하는 예로서, 그 경우에 판독 커맨드에 응답하는 판독 데이터도 기록 커맨드에 첨부하여 전송되는 기록 데이터도 모두 칩(B)에서 칩(A)으로 전송되게 된다. 따라서, 종래에는 어느 쪽 데이터인지 구별되지 않기 때문에 커맨드가 발행된 순서로 대응하는 데이터가 전송된다.
종래의 방법에서는, 도 12a에 도시된 바와 같이, 사이클 1과 5에서 칩(A)이 칩(B)으로 판독 커맨드(Read1, Read2)를 발행하고, 사이클 3, 7, 8에서 칩(B)이 칩(A)으로 기록 커맨드(Write1, Write2, Write3)를 발행한다. 칩(B)은 기록 커맨드(Write1)에 따라 사이클 3에서 기록 데이터(W1)를 전송하고자 하여도 먼저 발행된 판독 커맨드(Read1)에 대응하는 판독 응답 데이터(R1)가 준비되어 있지 않기 때문에, 전송할 수 없다. 그리고, 사이클 10이 되어 겨우 판독 응답 데이터(R1)이 전송된 후, 칩(B)이 칩(A)으로 기록 데이터(W1)를 전송한다. 기록 커맨드(Write2, Write3)에 대응하는 기록 데이터(W2, W3)에 관해서도, 마찬가지로 사이클 14에서 판독 응답 데이터(R2)가 칩(B)으로부터 전송된 후에, 전송된다. 그결과, 기록 커맨드에 대한 데이터의 전송이 지연되고, 처리의 효율이 떨어지게 된다.
그래서, 본 실시예에서는, 도 11a에 도시된 바와 같이, 데이터 버스 신호로서, 전송되어 있는 데이터(Data)가 판독 응답 데이터인지 기록 데이터인지를 표시하는 액세스 타입 신호(TYPE)가 추가된다. 종래 커맨드의 발행 순서대로 데이터의 전송 순서를 지킬 필요가 있었던 것에 대하여, 본 실시예에서는, 이 액세스 타입 신호에 의해, 판독 커맨드 끼리, 기록 커맨드 끼리로 데이터의 전송 순서를 지키면 된다. 즉, 판독 커맨드에 대한 판독 응답 데이터는 판독 커맨드 발행순서로 데이터를 전송하고, 기록 커맨드에 대한 기록 데이터도 기록 커맨드 발행순서로 데이터를 전송한다. 단, 액세스 타입 신호를 데이터에 첨부함으로써 판독과 기록 사이의 순서의 제약을 없앨 수 있다.
도 12b에 상기 액세스 타입 신호(TYPE)를 추가한 실시예를 도시한다. 액세스 타입 신호(TYPE)가 0이면 기록 데이터, 1이면 판독 응답 데이터이다. 이 예에 있어서도, 도 12a와 마찬가지로 칩(A)에서 칩(B)으로 판독 커맨드가 발행되고, 칩(B)에서 칩(A)으로 기록 커맨드가 발행된다. 그리고, 사이클 3에서 발행된 기록 커맨드(Write1)에 대응하는 기록 데이터(W1)가 액세스 타입 신호(TYPE=0)와 함께 사이클 5에서 칩(B)에서 칩(A)으로 발행된다. 마찬가지로 사이클 7, 8에서 발행된 기록 커맨드(Write2, Write3)에 대응하는 기록 데이터(W2, W3)은 사이클 9, 11에서 각각 칩(B)으로부터 발행된다. 그 결과, 기록 데이터는 판독 응답 데이터의 발행을 기다리지 않고 발행되기 때문에, 기록 커맨드에 대한 처리의 효율을 높일 수 있다.그리고, 기록 데이터의 전송이 빨라지고 기록 커맨드의 처리가 빨라지면, 수신 커맨드 버퍼의 영역이 그 만큼 빠르게 개방되며, 다음 커맨드의 발행도 빨라져서 버스 효율을 높일 수 있다.
도 11a에 도시된 바와 같이, 각각의 칩은 수신용 데이터 버퍼로서, 판독용 데이터 버퍼(50, 50B)와, 기록용 데이터 버퍼(51, 51B)를 가지며, 동시에 공급되는 타입 신호(TYPE)에 따라 데이터 버퍼상의 데이터가 분배된다.
도 11b은 데이터 버스(Data)를 칩(A)과 칩(B)에서 공용하는 쌍방향성 버스인 실시예이다. 이 경우에도, 데이터 버스에는 액세스 타입 신호를 첨부하고, 데이터 버스의 사용권의 제어를 위해 칩(A)측에 버스 아비터 회로를 설치한다. 이 버스 아비터 회로는 전술한 바와 같다.
또, 도 11c은 커맨드 버스와 데이터 버스를 공용하면서 쌍방향성인 실시예이다. 이 경우에도, 버스에 액세스 타입 신호를 추가하고, 도 10과 동일하게, 위상 신호(PHASE)를 추가하여 버스에 발행된 것이 커맨드인지 데이터인지의 정보를 부가한다.
[디폴트 버스 마스터]
도 9, 도 10, 도 11a 내지 도 11c 등에 도시된 예에서는, 커맨드 버스, 데이터 버스 모두 그 버스 사용권을 제어하는 아비터 회로가 칩(A)측에 있고, 칩(A)은 커맨드 버스나 데이터 버스의 사용을 원할 때, 그 버스가 비어 있으면 바로 사용할 수 있지만, 칩(B)은 매회 요구 신호를 칩(A)으로 출력하여 허가 신호를 받지 않으면 이들 버스를 사용할 수 없다.
예컨대 칩(A)은 CPU 등의 마이크로 프로세서이고, 칩(B)이 브리지 LSI와 같은 경우에, 마이크로 프로세서(A)가 발행한 판독 커맨드에 대한 응답을 가능한 한 신속하게 하는 것이 칩 세트 전체의 성능 향상으로 이어진다.
상기한 실시예에서는, 마이크로 프로세서(A)는 브리지 칩(B)에 대하여 커맨드를 오버헤드 없이 바로 발행할 수 있지만, 브리지 칩(B)이 마이크로 프로세서(A)에 판독 응답 데이터를 전송할 때에는 데이터 버스에 대하여 요구하여 허가를 받고 나서가 아니면 전송할 수 없다. 따라서, 브리지 칩(B)에 있어서, 데이터 전송시에 그 오버헤드가 발생하게 된다.
도 13은 제6 실시예인 칩 세트의 커맨드 버스와 데이터 버스의 우선권을 서로 균형이 잡히도록 한 실시예의 접속도이다. 도 13에는 상세한 구성은 도시되어 있지 않다. 그러나, 전술한 상세 구성도를 참조하면, 각각의 칩(A, B)의 구성을 이해할 수 있다.
본 실시예에서는, 도 13에 도시된 바와 같이, 커맨드 버스 아비터 회로(35)를 칩(A)에 설치하여 커맨드 버스(10C)의 우선권은 칩(A)에 갖게 하고, 데이터 버스 아비터 회로(135B)를 칩(B)에 설치하여 데이터 버스(10D)의 우선권은 칩(B)에 갖게 한다. 즉, 커맨드 버스(10C)의 디폴트 버스 마스터(평상시에 버스 사용권을 갖고 있는 LSI)를 칩(A)으로 하고, 데이터 버스(10D)의 디폴트 버스 마스터를 칩(B)으로 해 둠으로써 마이크로 프로세서(A)가 브리지 칩(B)에 대하여 발행한 판독 커맨드는 커맨드 발행시와 데이터 전송시 모두 버스 사용권에 대해서 조정(arbitration)을 위한 오버헤드없이 처리될 수 있다.
브리지 LSI로부터 CPU에 대하여 판독 커맨드를 발행한 경우에는, 커맨드 발행시 및 데이터 전송시 모두 조정이 필요하게 되지만, 이와 같은 액세스는 드물기 때문에 성능에는 영향을 미치지 않는다. 그 경우에는, 칩(A)의 커맨드 버스 아비터 회로(35)는 칩(B)의 커맨드 발행 제어부(12B)로부터의 커맨드 요구에 응답하여 칩(A)이 커맨드를 발행하지 않을 때는, 커맨드 허가 신호를 발행하는 동시에 커맨드 발행 제어 회로(12)에 발행 금지 신호(S36)를 출력한다. 한편, 칩(B)의 커맨드 발행 제어 회로(12B)는 커맨드 허가 신호에 응답하여 커맨드 발행 신호(S20)를 도시하지 않은 커맨드 발신 버퍼에 부여한다.
반대로, 칩(B)의 커맨드 버스 아비터 회로(135B)는 칩(A)의 데이터 발행 제어부(112)로부터의 데이터 요구에 응답하여 칩(B)이 데이터를 발행하지 않을 때는, 데이터 허가 신호를 발행하는 동시에 데이터 발행 제어 회로(112B)에 발행 금지 신호(S136)를 출력한다. 한편, 칩(A)의 데이터 발행 제어 회로(112)는 데이터 허가 신호에 응답하여 데이터 발행 신호(S20A)를 도시하지 않은 데이터 발신 버퍼에 부여한다.
[데이터 버스의 버스트 전송(버스 사용 기간 제어)]
LSI 사이의 데이터 전송의 경우, 커맨드와 달리 수집된 데이터를 연속해서 전송하는 버스트 전송이 필요하게 된다. 버스트 전송을 실현하기 위해서는 버스 사용권의 제어에 부가하여 복수 사이클에 걸친 버스 사용 기간의 제어가 필요하게 된다. 또한, 후술하는 수신측의 데이터 버퍼 제어도 필요하다.
도 14는 제7 실시예에 있어서의 버스트 전송시의 버스 사용권을 제어하는 버스 아비터의 구성도이다. 이 예는 버스트 전송을 실행하기 위해서, 커맨드 버스(10C)에 사이즈 신호(SIZE)를 부가한다. 그 이외에는 커맨드계의 버스나 제어 신호와 제어 회로는 도 6에 도시된 구성이고, 데이터계의 버스나 제어 신호와 제어 회로는 도 9에 도시된 구성이다. 그리고, 데이터 버스(10D)에는 도 11b에서 도시한 데이터 타입 신호(TYPE)가 부가되고, 판독과 기록의 구별이 전송되는 데이터에 부가되어 있다.
쌍방향의 데이터 버스(10D)의 경우는, 전술한 바와 같이 데이터 버스 아비터 회로(135)에 의해, 버스 사용권의 관리가 필요하게 된다. 칩(A)측에 데이터 버스 아비터 회로(135)를 설치하고, 디폴트로 칩(A)측에 버스 사용권을 갖게 하여, 칩(B)이 데이터 버스에 데이터를 발행하고 싶은 경우는, 발행 요구로서 데이터 요구 신호(DT_REQUEST)를 발행하고, 데이터 버스 아비터 회로(135)로부터 데이터 허가 신호(DT_GRANT)를 수신한 후, 칩(B)은 데이터의 전송을 실행한다. 그 경우, 버스트 전송을 실행하는 경우에는, 전송 데이터 사이즈를 버스폭으로 나눈 버스트 길이의 사이클만큼 버스의 사용권을 지속할 필요가 있다. 이것이 버스 사용 기간이다. 마찬가지로, 칩(A)에서 칩(B)으로의 버스트 전송의 경우에도, 이러한 버스 사용 기간의 제어가 필요하게 된다. 단, 그 경우에 버스 사용권의 조정은 불필요하다.
데이터 버스 아비터 회로(135)는 도 9의 데이터 버스 제어에서 설명한 버스 사용권 제어 회로(62)에 부가하여 버스 사용 기간 제어 회로(60)를 갖는다. 이 버스 사용 기간 제어 회로(60)는 버스트 전송될 때에 커맨드에 부가된 사이즈신호(SIZE)를 기록하는 사이즈 버퍼(63)와, 그 사이즈를 버스트 전송 개시시에 로드하는 버스트 카운터(67)와, 그 카운터 값이 0이 아닌 동안 금지 신호(S68)를 출력하는 금지 신호 생성 회로(68)를 갖는다. 사이즈 버퍼(63)는 칩(B)으로부터의 버스트 전송 사이즈를 기록하는 버퍼(63B)와, 칩(A)으로부터의 버스트 전송 사이즈를 기록하는 버퍼(63A)를 갖는다.
그런데, 칩(B)으로부터의 버스트 사이즈(혹은 데이터 사이즈/버스폭)(sizeB)는 데이터 허가 신호의 프리신호(n_DT_GRANT)가 발행되었을 때에 스위치(64)를 통해 버스트 카운터(67)에 -1되어 로드된다. 그리고, 다음 클록 사이클로부터 금지 신호(S68)가 출력되고 있는 동안, 클록(CLK)에 동기하여 스위치(66)에 의해 감소된다. 버스트 사이즈분의 데이터 전송이 종료되면 버스트 카운터(67)가 0이 되고, 금지 신호(S68)는 없어진다.
칩(A)으로부터의 버스트 사이즈(sizeA)는 데이터 스트로브 신호의 프리신호(n_DT_STRB_A)가 발행되었을 때에 스위치(65)를 통해 버스트 카운터(67)에 -1되어 로드된다. 그 후 카운터의 감소 동작은 상기와 동일하다.
이 버스트 전송 기간 동안, 버스 사용권을 지속하기 위해 금지 신호(S68)는 버스 사용권 제어 회로(62)의 OR/AND 게이트(142)에도 부여된다. 따라서, 금지 신호(S68)가 생성되고 있는 동안은 데이터 허가 신호(DT_GRANT)의 발생은 금지된다. 발행 금지 신호(S136)는 발행 금지 생성 회로(143)에 의해 다음과 같이 하여 생성된다. 우선, 사이즈 버퍼(63B)로부터의 사이즈(sizeB)에 +1한 값이 프리신호(n_DT_GRANT)가 유효한 타이밍으로 카운터(144)에 로드된다. 카운터(144)는 값이 0이 될 때까지 매 사이클 감소된다. 카운터 값이 0이 아닌 사이클과 프리신호(n_DT_GRANT)가 유효한 사이클에서 발행 금지 신호(S136)가 NOR 게이트(145)로부터 출력된다. 그 이외의 버스 조정은 도 9의 예와 동일하다.
도 15는 제7 실시예의 동작을 도시하는 타임 차트이다. 이 실시예에서, 사이클 1에 칩(A)이 커맨드(A1)를 출력하고 있다. 동시에 사이즈 신호(SIZE)를 출력하고 있다. 이 데이터 사이즈는 16 B(바이트)로 되어 있지만, 데이터 버스폭이 8 B(8 바이트=64 bit)라고 하면, 이 커맨드에 대응하는 데이터의 버스트 사이즈는 2이며, 2 사이클이 필요하게 된다. 또한, 사이클 3에 칩(B)이 커맨드(B1)를 출력하고 있다. 이 때의 사이즈는 32 B이다. 그 후, 사이클 6에 칩(A)이 8 B 사이즈의 커맨드(A2)를 출력하고 있다. 상기 커맨드는 모두 기록 커맨드로 한다.
데이터 버스(10D) 쪽은 사이클 4, 사이클 5의 2 사이클 동안, 최초의 커맨드 A1에 대응하는 데이터(D1, D2)를 출력하고 있다. 칩(B)은 사이클 4에 데이터 요구 신호(DT_REQUEST)를 출력하고 있지만, 칩(A)은 데이터 출력중이고 금지 신호(S68)가 발생중이기 때문에, 1 사이클 지연되어 사이클 6에 데이터 허가 신호(DT_GRANT)를 출력하고 있다. 칩(B)은 그것에 응답하여 다음 사이클 7에서 4 사이클 동안 데이터(d1∼d4)를 출력하고 있다. 마지막에서 2 번째 데이터를 출력하고 있는 사이클까지, 금지 신호(S68)가 발생하고 있다. 그리고, 칩(A)은 커맨드(A2)에 대응하는 데이터를 출력하고자 하여도, 칩(B)이 데이터 버스를 사용하고 있기 때문에 곧바로 데이터를 출력할 수는 없다. 발행 금지 신호 생성 회로(143)의 카운터(144)에는 사이클 5의 프리신호(n_DT_GRANT)에 의해, 칩(B)의 데이터의 버스트 길이 4에 1을 더한 값(= 5)이 사이클 6에 로드된다. 이 카운터(144)는 매 사이클 감소되며, 사이클 11에서 0이 된다. 프리신호(n_DT_GRANT)가 유효한 사이클 5에서부터 카운터 값이 0이 되기 직전의 사이클 10까지의 6 사이클 동안, 발행 금지 신호(S136)가 출력된다. 칩(A)은 발행 금지 신호가 부정되는 사이클 11의 다음 사이클 12에 커맨드(A2)에 대응하는 데이터(D1)를 출력한다.
이와 같이 커맨드와 동시에 그 데이터 사이즈를 나타내는 사이즈 신호(SIZE)를 동시에 출력함으로써 버스트 전송중인 버스 사용권을 유지할 수 있고, 버스트 전송을 가능하게 할 수 있다.
[버스트 전송에서의 수신 데이터 버퍼 제어]
버스트 전송을 가능하게 함으로써, 데이터 전송의 데이터량이 그 때마다 변하게 된다. 따라서, 수신 칩측의 수신 데이터 버퍼의 제어도 고려해야 한다. 가장 단순한 방법은 버스트 길이에 관계없이 하나의 커맨드에 대한 데이터 전송의 최대 사이즈를 설정하고, 그 설정 사이즈의 수신 데이터 버퍼를 복수단 설치하여 도 7a 및 도 7b에서 설명한 데이터 단수에 의해 수신 데이터 버퍼를 제어하는 것이다. 이것이 제1 수신 데이터 버퍼 제어이다.
예컨대, 1회의 버스트 전송 사이즈의 상한을 64 바이트로 한다. 데이터 버스의 버스폭을 8 바이트(64 비트)로 하면, 최대 버스트 길이는 8 사이클이다. 그 경우, 도 14의 칩(B) 내에 도시되는 바와 같이, 수신 데이터 버퍼(126)를 64 바이트 단위로 복수단 구성(도면 중에서는 4단)으로 한다. 그리고, 1 개의 커맨드에 대응하는 데이터 전송을 각각의 버퍼에 저장한다. 즉, 싱글 데이터 전송이든지 버스트전송이든지 각 단의 수신 데이터 버퍼(126)를 할당하여 점유한다.
이 경우는, 도 14에 도시된 데이터 발행 제어 회로(112)에 의해, 수신 데이터 버퍼를 제어할 수 있다. 이 데이터 발행 제어 회로(112)는 도 7a 및 도 7b의 제어 회로와 동일한 구성이다. 즉, 수신 데이터 버퍼(126)의 단수가 레지스터(113)에 저장되고, 리셋시에 데이터 단수 카운터(18)에 로드된다. 그리고, 그 후에는 데이터 스트로브 신호의 발행에 의해 데이터 전송이 실행될 때마다 카운터가 감소되고, 전송한 데이터의 처리가 종료되어 데이터 준비 신호를 수신할 때마다 카운터가 증가된다. 수신 데이터 버퍼(126)가 4단 전부 사용되면, 그 이후의 데이터 발행은 금지된다. 버스트 전송을 하는 경우나 버스트 전송을 하지 않는 경우나 제어는 동일하다.
칩(A)에서 칩(B)으로의 데이터 전송이나 칩(B)에서 칩(A)으로의 전송은 동일한 기계로 실현된다.
다음에, 제2 수신 데이터 버퍼 제어 방법을 설명한다. 상기 제1 수신 데이터 버퍼 제어 방법에서는, 1 바이트의 데이터를 전송하는 데에도 64 바이트분의 데이터 버퍼를 사용하기 때문에, 수신 데이터 버퍼의 사용 효율이 나쁘다. 이것을 개선하는 방법으로서, 전송하는 데이터 사이즈에 따라 수신 데이터 버퍼를 바이트 단위로 제어하는 제2 제어 방법을 도 16a 및 도 16b의 구성도와 동작 타임 차트를 이용하여 설명한다.
도 16a은 데이터 발행 제어 회로(112)의 구성도이다. 이 회로는 도 14의 데이터 발행 제어 회로 대신에 칩(A)에 설치된다. 데이터 버퍼 사이즈 레지스터(213)에는 칩(B)측의 수신 데이터 버퍼의 사이즈가 저장되고, 리셋시에 카운터(218)에 로드된다. 그리고, 데이터를 전송할 때마다 데이터의 송신 사이즈(S214)가 감소 사이즈 레지스터(214)에 저장되고, 그 사이즈가 카운터(218)로부터 감소된다. 또한, 칩(B)으로부터 데이터 준비 신호(DT_READY_B)를 수신할 때마다 처리가 종료된 데이터 사이즈(S215)를 카운터(218)에 증가시킨다. 프리신호(n_DT_STRB_A)와 데이터 준비 신호(DT_READY_B)가 동시에 유효하게 된 경우에는, 차분 계산기(217)로, (현재의 카운터 값-감소 사이즈+증가 사이즈)가 계산되고, 카운터(218)에 저장된다. 즉, 카운터(218)는 칩(B)의 수신 데이터 버퍼에 남아 있는 사이즈를 나타낸다. 그리고, 비교 회로(219)에서 카운터 사이즈가 송신 사이즈와 비교되고, 송신 사이즈가 큰 경우는 발행 금지 신호(S119)가 생성된다. 또한, 송신 사이즈가 카운터 사이즈보다 작은 동안, 수신 데이터 버퍼에 빈 영역이 있기 때문에 데이터의 전송이 허가된다. 이 방법에 의해, 수신 데이터 버퍼를 유효하게 이용할 수 있다.
도 16b은 동작의 일례를 도시하는 타임 차트이다. 예컨대 칩(A)은 커맨드 버스(10D)에, 사이클 1에서 4 B 사이즈의 커맨드(A1), 사이클 2에서도 4 B 사이즈의 커맨드(A2), 사이클 3에서 8 B 사이즈의 커맨드(A3), 사이클 4에서 16 B 사이즈의 커맨드(A4)를 출력하고 있다. 커맨드 버퍼가 4단이기 때문에, 이 단계에서 칩(B)측의 커맨드 버퍼가 가득 차 있지만, 이 예에서는 칩(B)이 최초의 커맨드의 처리를 완료하여 사이클 5에 커맨드 준비 신호(CMD_READY_B)를 출력하고 있다. 그 결과, 칩(A)은 사이클 6에 32 B 사이즈의 커맨드(A5)를 출력하고 있다.
이 경우, 본 실시예에서 수신 데이터 버퍼는 단수로 제어되는 것이 아니라데이터량으로 제어되어 있다. 커맨드(A1∼A4)까지의 전송 데이터 합계가 32 B이기 때문에, 카운터(218)의 값으로 나타내는 바와 같이, 수신 데이터 버퍼는 아직 32 B만큼 비어 있다. 따라서, 사이클 7에서 4 버스트 사이클에 걸쳐 커맨드(A5)에 대응하는 데이터(D5)가 버스트 전송된다. 그 결과, 카운터 값은 0에 도달하여 그 이후의 데이터 전송은 금지된다. 사이클 9에서 데이터 준비 신호(DT_READY_B)가 출력되어 카운터 값이 4 B로 회복된 결과, 커맨드(A6)에 대응하는 데이터(D1)이 사이클 11에서 전송된다.
이 제2 데이터 버퍼 제어 방법에 의해, 용량이 적은 수신 데이터 버퍼라도 유효하게 이용할 수 있다. 이 데이터 발행 제어 회로는 칩(B)측에도 설치할 수 있다.
다음에, 제3 수신 데이터 버퍼 제어 방법을 설명한다. 상기 제2 수신 데이터 버퍼 제어 방법에서는, 4 바이트 사이즈나 2 바이트 사이즈의 커맨드가 발행된 경우, 수신 데이터 버퍼를 그 사이즈로 제어하고, 버퍼로의 데이터 저장 제어가 복잡하게 된다. 제3 수신 데이터 버퍼 제어 방법에서는, 이 제어를 간단히 하기 위해서, 수신 데이터 버퍼를 제어하는 단위를 버스트 길이로 한다.
도 17a 및 도 17b는 제3 수신 데이터 버퍼 제어 방법을 설명하는 도면이다. 도 17a은 수신 데이터 버퍼 제어 회로, 도 17b는 수신 데이터 버퍼를 각각 나타낸다. 칩(B)의 수신 데이터 버퍼(216)의 사이즈, 데이터 버스폭을 예컨대 각각 64 바이트, 8 바이트로 한다. 칩(A)의 데이터 발행 제어 회로의 카운터(218)에는 초기화시에 수신 데이터 버퍼 사이즈 64 B를 버스폭 8 B로 나눈 버스트 사이즈, 이 경우는 64/8로 8이 로드된다. 데이터 전송을 했을 때에는 전송 데이터 사이즈를 버스폭으로 나눈 수, 즉 전송 버스트 길이(S214)(데이터 전송에 필요한 사이클 수)만큼 카운터를 감소시킨다. 예컨대 2 바이트나 4 바이트와 같이 데이터 버스폭(8 B)에 만족하지 않는 사이즈의 경우도, 버스트 길이는 1이 되기 때문에, 1만큼 카운터를 감소시킨다. 칩(B)으로부터 데이터 준비 신호(DT_READY_B)가 입력되었을 때에는 그것에 대응하는 버스트 길이(S215)만큼 카운터를 증가시킨다. 데이터를 전송하고자 했을 때, 그 버스트 길이와 카운터의 값을 비교하여, 카운터 값이 버스트 길이 이상이면 데이터를 출력한다. 카운터 값 쪽이 버스트 길이보다 작으면, 데이터 준비 신호(DT_READY_B)가 입력되어 카운터 값이 버스트 길이보다 커질 때까지, 데이터 발행 금지 신호(S119)에 의해 데이터의 출력을 금지한다.
도 17b에는 수신 데이터 버퍼(216)의 사용 상태의 예가 도시된다. 여기서는, 최초에 4 B의 데이터(D1), 다음에 4 B의 데이터(D2), 다음에 2 B의 데이터(D3), 마지막으로 32 B의 데이터(D4)가 전송된 경우의 예이다. 최초의 데이터(D1, D2, D3)는 각각 수신 데이터 버퍼(216)의 각 8 B의 영역을 사용한다. 그리고, 마지막 데이터 D4는 4단의 8 B의 영역을 이용한다. 데이터 버스폭 8 B와 각 단의 버퍼 사이즈 8 B가 일치하고 있고, 데이터 버퍼로의 저장의 제어는 간단해진다.
이 제3 방법은 전송 데이터량으로 데이터 버퍼를 관리하는 제2 방법보다 다소 데이터 버퍼의 이용 효율이 떨어지지만, 버스폭 이하의 사이즈의 데이터 전송이 발생했을 때에, 데이터를 새로 배열할 필요가 없기 때문에 수신 데이터 버퍼의 제어는 매우 간단해진다.
또한, 제4 수신 데이터 버퍼 제어 방법을 설명한다. 상기 제3 방법에서는, 데이터 준비 신호를 수신했을 때 그 데이터 준비에 대응하는 데이터 전송 사이즈(S215)만큼 카운터(218)를 증가시킨다. 따라서, 이 방법에서는 전송 사이즈를 기억하는 것이 필요하다.
그래서, 제4 수신 데이터 버퍼 제어 방법에서는 데이터를 수신한 측[칩(B)]이 1회의 데이터 전송에 대하여 1회만큼 데이터 준비 신호를 출력하는 것이 아니라 버스트 길이만큼의 데이터 준비 신호를 출력하도록 한다. 그리고, 데이터 발행 제어 회로 내의 카운터는 데이터 준비 신호에 응답하여 버스트 길이를 +1씩 증가시킨다. 이렇게 함으로써, 데이터 전송시의 사이즈를 기억해 둘 필요가 없어지기 때문에 제어를 간략히 할 수 있다.
제4 방법에서는, 카운터(218)는 데이터 전송시에는 그 버스트 길이(S214)만큼 감소되지만, 카운터(218)는 데이터 준비 신호를 받았을 때에 1만큼 증가된다. 예컨대, 카운터(218)는 32 바이트를 전송한 경우는, 전송시에 4만큼 감소시키고, 상대측에서는 데이터 준비 신호가 4회 출력되기 때문에, 데이터 준비 신호가 출력될 때마다 카운터를 +1만큼 증가시킨다.
이상 4 종류의 수신 데이터 버퍼의 제어 방법을 설명하였지만, 2 개의 칩 세트의 조합에 따라 이들 복수 종류의 제어 방법이 전환되도록 하는 것이 바람직하다. 예컨대, 전원 투입시의 초기 설정으로, 이러한 제어 방법의 설정이 실행되도록 하고, 또한 이들 설정을 전환할 수 있도록 한다.
[판독 응답 데이터 버퍼와 기록 데이터 버퍼의 분리]
제8 실시예는 브리지 칩(B)이 인터록형의 버스(interlock type bus)에 접속되어 있는 경우에 있어서의, 칩(A)과 칩(B) 사이의 데이터 전송의 효율을 높이는 방법이다. 도 18a 내지 도 18C는 제8 실시예를 설명하는 도면이다.
도 18a에 도시된 바와 같이, 칩(A)과 칩(B)이 커맨드 버스(10C)와 데이터 버스(10D)에서 접속되고, 칩(B)이 다른 인터록형의 버스(ILBUS)에 접속된 구성에 대해서 생각한다. 인터록형의 버스는 커맨드 전송의 위상과, 데이터 전송의 위상이 분리되어 있지 않고, 판독의 경우는 커맨드가 발행되어 그 판독 응답 데이터가 버스(ILBUS)에 출력될 때까지 그 버스는 록(lock)되며, 다른 커맨드는 발행할 수 없다. 기록 커맨드의 경우도 기록 커맨드에 이어서 기록 데이터가 버스(ILBUS)에 송출될 때까지, 다른 커맨드는 발행할 수 없다.
이러한 시스템 구성에 있어서, 인터록형의 버스(ILBUS) 상의 장치 C로부터, 칩(B)을 통해 칩(A)에 대하여 판독 커맨드가 발행되고(도면 중에서 ① Read), 거의 동시에 칩(A)에서 칩(B)에 대하여, 인터록 버스 상의 장치 C에 대한 기록 커맨드가 발행된(도면 중에서 ② Write) 경우에, 칩(B)에 대하여 칩(A)으로부터의 기록 데이터가 먼저 전송된 경우(도면 중에서 ① Write-Data), 칩(B)으로부터의 판독에 대한 응답 데이터(도면 중에서 ② Read-Data)를 반환할 수 없을 가능성이 있다.
예컨대 칩(B)의 수신 데이터 버퍼(126)가 64 B의 용량이고, 칩(A)으로부터의 기록 커맨드의 데이터 사이즈가 64 B라면, 칩(A)은 판독 응답을 반환하려고 하여도 수신 데이터 버퍼(126)가 가득 차서 돌려줄 수 없다. 칩(A)이 응답 데이터를 돌려주기 위해서는, 칩(B)의 데이터 버퍼가 비어야 하다. 그러기 위해서는, 칩(B)은칩(A)으로부터 발행된 기록 커맨드를 인터록형의 버스에 발행하여 기록 데이터를 출력해야 한다. 그러나, 인터록형의 버스(ILBUS) 쪽은 판독 커맨드를 수신하여 그 응답이 출력되는 것을 기다리고 있는 상태이기 때문에, 시스템이 데이터 록 상태가 되어 버리고 있다.
이러한 데이터 록 상태가 되는 것을 막기 위해서, 도 18b에 도시된 바와 같이, 칩(B)의 수신 데이터 버퍼(126)를 기록 데이터를 수신하기 위한 기록 데이터 버퍼(126W)와, 판독 응답 데이터를 수신하기 위한 판독 응답 데이터 버퍼(126R)로 분리한다. 이렇게 함으로써, 칩(A)으로부터의 기록 데이터가 먼저 전송되더라도 그 후에 취득하는 판독 응답 데이터는 다른 판독 응답 데이터 버퍼(126R)에 수신된다. 따라서, 판독 응답 데이터가 블록되지 않게 칩(B)은 판독 응답 데이터를 칩(A)으로부터 수취하여 인터록형의 버스에 출력하고, 인터록형의 버스 상에서 판독 트랜잭션은 완료되며, 칩(B)은 계속해서 칩(A)으로부터 발생된 기록 커맨드를 인터록형의 버스에 발행할 수 있다.
이 구성에서는, 칩(B)으로부터 칩(A)으로의 데이터 준비 신호도 도 18C의 접속도에 도시된 바와 같이, 기록 데이터용 데이터 준비 신호(WDT_READY_B)와, 판독 응답 데이터용 데이터 준비 신호(RDT_READY_B)의 2 개로 분리해야 한다. 그것에 따라 칩(B)에는 데이터 준비 신호를 생성하는 데이터 처리부도 판독용(128R)과 기록용(128W)이 설치된다.
칩(A)이 도시하지 않은 인터록형의 버스에 접속되어 있는 경우는, 칩(A)으로부터 칩(B)으로의 데이터 준비 신호도 기록 데이터용 데이터 준비신호(WDT_READY_A)와, 판독 응답 데이터용 데이터 준비 신호(WDT_READY_A)의 2 개로 분리하고, 위에서 설명한 바와 같이 제어하면 좋다.
칩(B)이 인터록형이 아닌 버스에 접속되어 있는 경우는, 이러한 데드 록(dead lock)은 발생하지 않기 때문에 수신용 데이터 버퍼를 2 개로 나눌 필요는 없다. 칩(A)은 인터록형의 버스에 접속되는 것을 전제로 한 칩(B)과, 인터록형이 아닌 버스에 접속되는 것을 전제로 한 칩(B) 중 어느 쪽에 접속되더라도 동작할 수 있도록, 양쪽의 제어 회로를 내장하고, 칩(B)으로서 어느 쪽 타입이 접속되었는지에 따라 그 제어 동작을 전환하도록 하는 것이 보다 바람직하다.
[액세스 ID 추가에 의해 데이터 전송 순서를 자유롭게 한 실시예]
지금까지 설명한 방식에서는, 커맨드를 발행한 순서대로 데이터를 전송해야 했다. 그러나, 커맨드에 따라 처리 시간이 다른 경우는, 나중에 발행된 커맨드에 대한 데이터가 먼저 준비된 경우가 있다. 그래서, 다음에 이 데이터 전송의 순서를 임의로 교체하여도 좋은 제9 실시예에 대해서 설명한다.
도 19a에 도시된 바와 같이, 커맨드 버스(10C)의 커맨드와 데이터 버스(10D)의 데이터에 각각 대응하는 액세스 ID 신호를 추가한다. 각각 커맨드 ID 신호(CID), 데이터 ID 신호(DID)로 한다. 그리고, 커맨드를 발행할 때에는 각 커맨드에 고유의 커맨드 ID 번호(CID)를 부가하고, 데이터를 출력할 때에도 대응하는 커맨드의 ID 번호(CID)의 값을 데이터 ID 번호(DID)로서 동시에 출력하며, 어떤 커맨드에 대응하는 데이터인지를 나타낸다. 이렇게 함으로써, 커맨드와 데이터와의 대응 관계를 나타낼 수 있고, 커맨드 발행순과 데이터 전송순을 일치시킬 필요가없게 된다.
지금까지 설명해 온 방식에서는, 커맨드와 데이터의 대응을 명확하게 나타내는 ID 신호가 없었기 때문에, 커맨드의 발행 순서와 데이터의 전송 순서를 일치시킴으로써 묵시적으로 대응을 나타내고 있었다. 또한, 도 18a 내지 도 18C에 도시된 데이터 버스에 액세스 타입 신호를 부가한 방식에서도 판독 커맨드 끼리, 기록 커맨드 끼리는 순서를 지켜 데이터를 전송할 필요가 있었다. 그러나 이 방식에서는, 후속되는 판독 커맨드에 대한 데이터를 선행의 판독 커맨드에 대한 데이터보다 먼저 준비되더라도 먼저 준비된 데이터를 데이터 버스에 출력할 수 없기 때문에 효율이 나쁘다.
상기와 같이 ID 신호를 부가함으로써 커맨드의 발행 순서에 관계없이 전송 준비를 할 수 있는 데이터로부터 데이터 버스에 출력하여도 커맨드와 데이터의 대응을 취할 수 있기 때문에 제어 가능하게 된다. 그리고, 먼저 준비된 데이터를 대기시킬 필요가 없어져 처리 효율, 데이터 버스의 사용 효율을 향상시킬 수 있다.
도 19b에 도시된 타임 차트에서는, 사이클 1, 2, 3에서 연속하여 칩(A)이 판독 커맨드를 발행하고 있다. 각각의 커맨드에는 1, 2, 3이라는 CID 번호가 붙여져 있다. 그리고, 사이클 5에 CID3의 커맨드에 대응하는 8 바이트의 데이터가 칩(B)으로부터 전송되어 있다. 사이클 7로부터 CID1의 커맨드에 대응하는 16 바이트의 데이터가 칩(B)으로부터 전송되고, 사이클 9로부터 CID2의 커맨드에 대응하는 32 바이트의 데이터가 칩(B)으로부터 전송되어 있다. ID 번호를 부가하지 않은 버스에서는, 사이클 5에 전송된 CID3의 커맨드에 대응하는 데이터는 사이클 13까지 기다리게 된다.
ID 번호를 부가한 버스 프로토콜에 대응한 LSI를 대응하지 않는 LSI와 접속하면, 데이터가 대응되지 않게 되어 정상적으로 동작하지 않는다. 그래서, ID 번호를 부가한 버스 프로토콜에 대응한 LSI를 설정에 의해 ID 번호를 사용하지 않고서 데이터의 전송 순서를 지키는 모드로 동작할 수 있도록 하면, ID 번호를 부가한 버스 프로토콜에 대응한 LSI나 대응하지 않는 LSI에 접속하여 동작시킬 수 있다. 따라서, 전원 투입시의 초기화 작업으로 설정되는 모드를 적절하게 설정할 수 있도록 하는 것이 바람직하다.
도 19a에는 상기 커맨드 ID 번호를 부여하기 위한 구성이 도시된다. 여기에 도시된 발행용 버퍼나 수신 버퍼 등의 구성은 도 6, 도 9에서 도시한 것과 동일하며, 도 19a 및 도 19b에는 그 일부만 도시된다. 만일 판독 커맨드가 칩(A)에서 칩(B)으로 발행되고, 칩(B)으로부터 판독 응답 데이터가 칩(A)에 회신되었다고 가정하자. 칩(A)의 커맨드 발행 제어 회로(12)는 발행용 커맨드 버퍼(24)에 커맨드 ID를 부여하여 커맨드 스트로브 신호를 분류하면서, 그 커맨드를 칩(B)에 발행한다. 칩(B)의 수신 커맨드 버퍼(26)는 그 커맨드와 ID 번호를 수신한다. 커맨드 처리부(28)는 그 커맨드 ID를 데이터 발행 제어 회로(112B)에 전달한다. 데이터 발행 제어 회로(112B)는 판독 응답 데이터에 그 ID 번호를 부가하여 송신용 데이터 버퍼(124B)로부터 칩(A)으로 데이터를 발행한다. 칩(A)의 수신 데이터 버퍼(126A)는 수신한 데이터와 부가된 ID 번호를 수신한다. 칩(A)의 데이터 처리부(128A)는 그 부가된 ID 번호를 참조하여 어떤 커맨드에 대한 응답 데이터인지를 인식한다.
칩(A)이 기록 커맨드를 발행하는 경우에는, 커맨드 발행 제어 회로(12)가 기록 커맨드에 ID 번호를 부가하여 발행용 커맨드 버퍼(24)로부터 기록 커맨드를 발행한다. 이 ID 번호는 데이터 발행 제어 회로(112)에 전달된다. 그리고, 데이터 발행 제어 회로(112)는 이 ID 번호를 기록 데이터에 부가하여 송신용 데이터 버퍼(124)로부터 칩(B)으로 기록 데이터를 발행한다. 칩(B)에서는 이 ID 번호를 참조하여 어떤 기록 커맨드에 대응하는 기록 데이터인지를 인식한다.
[리셋 직후의 액세스의 금지]
지금까지 설명해 온 방식에서는, 접속되어 있는 상대의 LSI, 예컨대 칩(B), 의 상태를 자기 자신 즉, 칩(A)측에서 관리하고, 상대측에서는 준비 신호만을 받아 제어하고 있다. 따라서, 커맨드 혹은 데이터를 출력할 때에는, 상대측은 그 커맨드 혹은 데이터를 수취할 수 있는 상태인 것을 전제로 하고 있다.
그러나, 칩(A)과 칩(B)에 인가되는 리셋 신호가 부정되는 타이밍이 약간, 예컨대 4 사이클 칩(B)이 지연되는 방향으로 시프트된 경우, 칩(A)이 리셋 해제된 직후에 칩(B)에 대하여 커맨드를 발행하면, 칩(B)은 아직 그 시점에서 리셋중이며, 칩(B)은 그 커맨드를 수신하지 않고, 그 커맨드에 대하여 응답하지 않는다. 그 결과, 오동작하게 된다.
이러한 사태를 피하기 위해 서로 카운터를 갖고, 리셋의 부정 타이밍이 시프트될 가능성이 있는 사이클 수만큼 카운터로 계수하며, 그 동안은 버스에 커맨드·데이터를 출력하는 것을 금지한다. 그러나, 커맨드·데이터가 상대로부터 출력된 경우는, 계수중이어도 그 커맨드를 수리하도록 한다. 이렇게 함으로써, 리셋의 타이밍의 시프트를 방지할 수 있다.
도 20a 및 도 20b는 제10 실시예에 있어서의 리셋 직후의 커맨드 발행을 금지하는 구성을 설명하는 도면이다. 도 20a은 리셋 직후의 커맨드 발행 금지 회로(70, 70B)가 각각 칩(A, B)에 설치된 구성을 도시한다. 칩(A)의 커맨드 발행 금지 회로(70)는 리셋 직후의 금지 기간인 초기값(S71)을 리셋시에 로드하는 카운터(72)와, 카운터 값(S72)가 0이 아닌 동안은 발행 금지 신호(S74)를 생성하는 발행 금지 신호 생성 회로(74)를 갖는다. 카운터(72)는 리셋 신호가 없고, 카운터 값이 0이 아닌 동안은 클록에 동기하여 감소된다. 발행 금지 신호(S74)는 커맨드 발행 제어 회로(12)에 부여된다. 칩(B)측의 커맨드 발행 금지 회로(70B)도 동일한 구성이다.
도 20b은 커맨드 발행 금지 기간이 8 사이클인 경우의 동작 타임 차트이다. 예컨대, 리셋 해제되는 타이밍이 칩(A)과 칩(B)에서 5 사이클 시프트될 가능성이 있고, 카운터로 그 이상 예컨대 8 사이클 계수한다고 가정한다. 도시되는 바와 같이, 사이클 2에 칩(A)에 인가되어 있는 리셋 신호가 해제(부정)되고, 사이클 7에 칩(B)에 인가되어 있는 리셋 신호가 해제되어 있다. 칩(A, B)은 각각 리셋 해제후의 8 사이클 기간( ΔTa, ΔTb)에는 커맨드의 발행을 금지한다.
칩(A)은 사이클 2에서 사이클 9까지의 8 사이클 동안(ΔTa), 커맨드 발행을 금지하고 있고, 그 금지가 해제된 2 사이클후의 사이클 11에서, 칩(B)에 대하여 커맨드(A1)를 발행하고 있다. 칩(B)은, 이 때는 아직 커맨드 발행 금지 기간(ΔTb)이지만 리셋은 해제되어 있기 때문에, 커맨드 수신은 가능한 상태로 되어 있다. 따라서, 칩(A)으로부터의 커맨드를 수신할 수 없는 경우는 없다. 칩(B)은 사이클 14에서 커맨드 발행 금지 기간(ΔTb)가 종료되어 사이클 15에서 요구 신호(REQUEST)를 분류하고 있다.
이와 같이, 2 개의 칩에 있어서 리셋의 해제 타이밍이 시프트될 가능성이 있는 기간 이상의 기간중에는 각각의 칩내의 카운터에 의해 커맨드의 발행을 금지한다. 따라서, 리셋이 먼저 해제된 LSI의 커맨드 발행 금지 기간이 지난 타이밍에서는, 다른 쪽 LSI의 리셋이 해제되어 있는 것이 보증된다. 그 결과, 먼저 리셋이 해제된 LSI가 발행한 커맨드를 다른 쪽 LSI가 수신하여 손상시키는 일은 없게 된다.
[데이터 버스의 더블 데이터 레이트화]
상기 실시예에서, 통상의 논리 회로와 동일하도록 클록 신호의 상승 엣지에서 데이터를 래치하거나 데이터를 변화시키고 있다. 데이터 전송이 버스트 전송 중심이면, 데이터 버스에 비하여 어드레스 버스의 사용 효율이 낮아진다. 버스의 전송 속도를 향상시키기 위해서는 클록 속도를 증가시킬 필요가 있지만, 사용 효율이 낮은 어드레스 버스까지 고속의 클록으로 동작시키면 소비 전력이 커지게 된다.
그 때문에, 사용 효율이 높은 데이터 버스만 고속의 클록으로 동작시키는 방법을 생각할 수 있지만, 어드레스 버스와 데이터 버스에서 다른 클록을 사용하면, 클록 사이의 스큐(skew) 등 다른 문제가 생기기 때문에, 어드레스 버스와 데이터 버스에서 동일한 클록을 사용하고, 데이터 버스만 클록의 상승 엣지와 하강 엣지의 양쪽에서 데이터를 변화시켜 전송 레이트를 향상시킬 수 있다. 또한, 어드레스 버스는 상기 실시예에서는 커맨드 버스와 겸용되고, 커맨드 버스에 어드레스를 전송시키고 있다. 따라서, 커맨드 버스나 어드레스 버스는 클록의 상승 엣지에 동기하여 동작시키는 싱글 레이트로 하고, 데이터 버스는 클록의 상승과 하강 엣지의 양 엣지에서 동작시키는 더블 레이트로 한다.
도 21은 더블 데이터 레이트 동작의 타임 차트이다. 칩(A)은 사이클 1, 2, 3에서 연속하여 판독 커맨드를 발행하고 있다. 데이터 사이즈는 각각 16 B, 64 B, 8 B이며, 도 19a 및 도 19b의 예와 같이 각각 ID 번호가 부여된다. 칩(B)은 사이클 5의 상승 엣지로부터의 반 사이클에 커맨드 ID 번호(CID3)에 대응하는 데이터를 전송하고 있다. 다음에, 사이클 7에 커맨드 ID 번호(CID1)에 대응하는 16 바이트의 데이터를 전송하고 있다. 데이터 전송은 클록의 양 엣지를 사용하고 있기 때문에, 1 사이클사이에서 2회(16 B분) 데이터를 전송하고 있다. 다음에, 사이클 9에서 4 사이클의 기간에, 커맨드 ID 번호(CID2)에 대응하는 64 바이트의 데이터를 전송하고 있다. 4 사이클 사이에서 8회의 버스트 전송을 실행함으로써 64 B의 데이터를 전송하고 있다.
이와 같이, 커맨드나 어드레스의 버스에 비하여 전송하는 데이터량이 많은 데이터 버스를 더블 데이터 레이트로 함으로써 처리 효율을 보다 향상시킬 수 있다.
이상의 실시예를 정리하면 다음과 같다.
1. 제1 LSI가 제2 LSI에 커맨드를 발행하여 대응하는 처리를 실행시키는 시스템에 있어서의 제1 LSI에 있어서,
상기 제2 LSI를 동시에 처리할 수 있는 커맨드 단수가 리셋시에 설정되고,상기 커맨드를 발행할 때에 감소 또는 증가되고, 상기 제2 LSI로부터 커맨드 처리 완료에 대한 준비 신호를 수신할 때에 증가 또는 감소되는 카운터를 가지며, 상기 카운터 값이 소정의 값이 될 때에 커맨드의 발행을 금지하는 커맨드 발행 제어 회로를 갖는 것을 특징으로 하는 집적 회로 장치.
(커맨드 단수 이용의 커맨드 발행 제어, 도 2a 내지 도 2c)
2. 상기 1에 있어서,
상기 제1 및 제2 LSI가 쌍방향성의 커맨드 버스에 의해 접속되고,
상기 제1 LSI는 상기 제2 LSI로부터의 상기 커맨드 버스의 사용을 요구하는 요구 신호에 응답하여 상기 커맨드 버스의 사용을 허가하는 허가 신호를 상기 제2 LSI에 발행하는 버스 아비터 회로를 가지며,
상기 허가 신호를 발행할 때에, 상기 커맨드 발행 제어 회로에 커맨드의 발행을 금지시키는 것을 특징으로 하는 집적 회로 장치.
(쌍방향 커맨드 버스의 사용권의 아비터에 의한 제어, 도 5a 및 도 5b)
3. 제1 LSI가 제2 LSI에 데이터를 발행하여 대응하는 처리를 실행시키는 시스템에 있어서의 제1 LSI에 있어서,
상기 제2 LSI를 동시에 수신할 수 있는 데이터 단수가 리셋시에 설정되는 카운터를 가지며, 상기 카운터는 상기 데이터를 발행할 때에 감소 또는 증가되고, 상기 제2 LSI로부터 데이터에 대응하는 처리의 완료에 대한 준비 신호를 수신할 때에 증가 또는 감소되며, 상기 카운터 값이 소정의 값이 될 때에 상기 데이터의 발행을 금지하는 데이터 발행 제어 회로를 갖는 것을 특징으로 하는 집적 회로 장치.
(데이터 버퍼 단수 이용의 데이터 발행 제어, 도 7a 및 도 7b)
4. 상기 3에 있어서,
상기 제1 및 제2 LSI가 쌍방향성의 데이터 버스에 의해 접속되고,
상기 제1 LSI는 상기 제2 LSI로부터의 상기 데이터 버스의 사용을 요구하는 요구 신호에 응답하여 상기 데이터 버스의 사용을 허가하는 허가 신호를 상기 제2 LSI에 발행하는 아비터 회로를 가지며,
상기 허가 신호를 발행할 때에, 상기 데이터 발행 제어 회로에 데이터의 발행을 금지시키는 것을 특징으로 하는 집적 회로 장치.
(쌍방향 데이터 버스의 사용권의 아비터에 의한 제어, 도 9)
5. 상기 3에 있어서,
상기 제1 LSI는 상기 데이터의 발행에 따라 그것에 대응하는 커맨드의 종류를 나타내는 액세스 타입 신호를 발행하는 것을 특징으로 하는 집적 회로 장치.
(액세스 타입, 도 11a 내지 도 11c)
6. 상기 3에 있어서,
상기 제1 및 제2 LSI가 커맨드와 데이터를 전송하는 공통 버스에 의해 접속되고,
상기 제1 LSI는 상기 제2 LSI에 상기 공통 버스에 발행하는 신호가 커맨드인지 데이터인지를 나타내는 위상 신호를 발행하는 것을 특징으로 하는 집적 회로 장치.
(위상 신호, 도 10)
7. 제1 LSI와 제2 LSI 사이에서 서로 데이터를 발행하여 대응하는 처리를 실행시키는 스템에 있어서의 상기 제1 LSI에 있어서,
상기 제1 및 제2 LSI가 쌍방향성의 데이터 버스에 의해 접속되고,
상기 제1 LSI는 상기 제2 LSI로부터의 상기 데이터 버스의 사용을 요구하는 요구 신호에 응답하여 상기 데이터 버스의 사용을 허가하는 허가 신호를 상기 제2 LSI에 발행하는 아비터 회로를 가지며,
상기 허가 신호를 발행할 때에, 상기 제1 LSI로부터의 데이터의 발행을 금지시키는 것을 특징으로 하는 집적 회로 장치.
(쌍방향 데이터 버스의 사용권의 아비터에 의한 제어, 도 9)
8. 상기 7에 있어서,
상기 쌍방향성의 데이터 버스가 쌍방향성의 커맨드 버스와 공용되고,
상기 제1 LSI는 상기 공용 버스에 커맨드 또는 데이터를 발행할 때에, 커맨드인지 데이터인지를 나타내는 위상 신호를 발행하는 것을 특징으로 하는 집적 회로 장치.
(위상 신호, 도 10)
9. 제1 LSI와 제2 LSI 사이에서 서로 커맨드와 데이터를 발행하는 시스템에 있어서의 상기 제1 LSI에 있어서,
상기 제1 및 제2 LSI가 쌍방향성의 커맨드 버스 및 데이터 버스에 의해 접속되고,
상기 제2 LSI로부터의 상기 커맨드 버스의 사용을 요구하는 커맨드 요구 신호에 응답하여 상기 커맨드 버스의 사용을 허가하는 커맨드 허가 신호를 상기 제2 LSI에 발행하고, 상기 제1 LSI로부터의 커맨드의 발행을 금지하는 커맨드 버스 아비터 회로와,
데이터 버스의 사용을 요구하는 데이터 요구 신호를 상기 제2 LSI에 발행하고, 상기 제2 LSI로부터 데이터 요구 신호를 수신한 것에 응답하여 상기 데이터 버스에 데이터를 발행하는 데이터 발행 제어 회로를 갖는 것을 특징으로 하는 집적 회로 장치.
(디폴트 버스 마스터, 도 13)
10. 제1 LSI와 제2 LSI 사이에서 서로 커맨드와 데이터를 발행하는 시스템에 있어서의 상기 제2 LSI에 있어서,
상기 제1 및 제2 LSI가 쌍방향성의 커맨드 버스 및 데이터 버스에 의해 접속되고,
상기 제1 LSI로부터의 상기 데이터 버스의 사용을 요구하는 데이터 요구 신호에 응답하여 상기 데이터 버스의 사용을 허가하는 데이터 허가 신호를 상기 제1 LSI에 발행하고, 상기 제2 LSI로부터의 데이터의 발행을 금지하는 데이터 버스 아비터 회로와,
커맨드 버스의 사용을 요구하는 커맨드 요구 신호를 상기 제1 LSI에 발행하고, 상기 제1 LSI로부터 커맨드 허가 신호를 수신한 것에 응답하여 상기 커맨드 버스에 커맨드를 발행하는 커맨드 발행 제어 회로를 갖는 것을 특징으로 하는 집적 회로 장치.
(디폴트 버스 마스터, 도 13)
11. 상기 7에 있어서,
상기 제1 및 제2 LSI가 커맨드 버스에 의해 접속되고, 커맨드와 함께 부수되는 전송 데이터의 사이즈 데이터가 공급되며,
상기 아비터 회로는 데이터 전송시에 상기 사이즈 데이터를 데이터 버스폭으로 나눈 전송 사이클 기간동안 버스 사용권을 계속해서 유지하는 것을 특징으로 하는 집적 회로 장치.
(버스트 전송시에서의 데이터 사이즈/버스폭의 카운트 값에 의한 버스 사용 기간 제어, 도 14)
12. 상기 11에 있어서,
상기 아비터 회로는 상기 전송 사이클을 로드하는 카운터를 가지며, 데이터 전송 기간중에는 사이클마다 상기 카운터를 감소시키고, 카운터 값이 0이 되지 않는 동안은 데이터 버스 사용권을 부여하는 허가 신호의 발행을 금지하는 것을 특징으로 하는 집적 회로 장치.
(버스 사용 기간 제어, 도 14)
13. 제1 LSI와 제2 LSI 사이에서 커맨드와 그것에 대응하는 데이터의 전송을 실행하는 시스템으로서, 상기 커맨드 신호에 전송 데이터 사이즈 신호가 부가되고, 상기 제2 LSI에 1회의 버스트 전송으로 전송 가능한 최대 데이터 사이즈의 수신 데이터 버퍼가 복수단 설치되며, 상기 시스템에 있어서의 제1 LSI에 있어서,
상기 제2 LSI의 수신 데이터 버퍼의 단수가 초기화시에 설정되는 카운터를가지며, 상기 카운터는 싱글 전송 또는 버스트 전송시의 전송 사이즈에 관계없이 상기 1회의 버스트 전송마다 감소 또는 증가되고, 상기 제2 LSI로부터 데이터에 대응하는 처리의 완료를 나타내는 준비 신호를 수신할 때에 증가 또는 감소되며, 상기 카운터 값이 소정의 값이 될 때에 상기 데이터의 발행을 금지하는 데이터 발행 제어 회로를 갖는 것을 특징으로 하는 집적 회로 장치.
(데이터 버퍼 관리는 최대 전송 사이즈를 갖는 데이터 버퍼의 단수로 관리하는 방법 I, 도 14)
14. 제1 LSI와 제2 LSI 사이에서 커맨드와 그것에 대응하는 데이터의 전송을 실행하는 시스템으로서, 상기 커맨드 신호에 전송 데이터 사이즈 신호가 부가되고, 상기 제2 LSI에 수신 데이터 버퍼가 설치되며, 상기 시스템에 있어서의 제1 LSI에 있어서,
상기 제2 LSI의 수신 데이터 버퍼의 용량이 초기화시에 설정되는 카운터를 가지며, 상기 카운터는 싱글 전송 또는 버스트 전송마다 전송 데이터 사이즈만큼 감소되고, 상기 제2 LSI로부터 데이터에 대응하는 처리의 완료를 나타내는 준비 신호를 수신할 때에, 그것에 대응하는 데이터 사이즈만큼 증가되며, 상기 카운터 값이 전송 데이터의 사이즈보다 작아질 때에 상기 데이터의 발행을 금지하는 데이터 발행 제어 회로를 갖는 것을 특징으로 하는 집적 회로 장치.
[버퍼 사이즈를 보낸 사이즈(스트로브일 때)와 처리된 사이즈(준비일 때)로 관리하는 방법 II, 도 16a 및 도 16b]
15. 제1 LSI와 제2 LSI 사이에서 커맨드와 그것에 대응하는 데이터의 전송을실행하는 시스템으로서, 상기 커맨드 신호에 전송 데이터 사이즈 신호가 부가되고, 상기 제2 LSI에 데이터 버스폭을 갖는 복수단의 수신 데이터 버퍼가 설치되며, 상기 시스템에 있어서의 제1 LSI에 있어서,
상기 제2 LSI의 수신 데이터 버퍼의 용량을 데이터 버스폭으로 나눈 단수가 초기화시에 설정되는 카운터를 가지며, 상기 카운터는 싱글 전송 또는 버스트 전송마다 전송 데이터 사이클 수(버스트 길이)만큼 감소되고, 상기 제2 LSI로부터 데이터에 대응하는 처리의 완료를 나타내는 준비 신호를 수신할 때에, 그것에 대응하는 데이터 사이클 수(버스트 길이)만큼 증가되며, 상기 카운터 값이 전송 데이터의 전송 사이클 수보다 작아질 때에 상기 데이터의 발행을 금지하는 데이터 발행 제어 회로를 갖는 것을 특징으로 하는 집적 회로 장치.
[버퍼 사이즈를 보낸 커맨드의 버스트 길이(스트로브일 때)와 처리된 커맨드의 버스트 길이(준비일 때)로 관리하는 방법 III, 도 17a 및 도 17b]
16. 제1 LSI와 제2 LSI 사이에서 커맨드와 그것에 대응하는 데이터의 전송을 실행하는 시스템으로서, 상기 커맨드 신호에 전송 데이터 사이즈 신호가 부가되고, 상기 제2 LSI에 수신 데이터 버퍼가 설치되며, 상기 시스템에 있어서의 제1 LSI에 있어서,
상기 제2 LSI의 수신 데이터 버퍼의 용량을 데이터 버스폭으로 나눈 단수가 초기화시에 설정되는 카운터를 가지며, 상기 카운터는 싱글 전송 또는 버스트 전송마다 전송 데이터 사이클 수만큼 감소되고, 상기 제2 LSI로부터 전송 데이터 사이클 수의 횟수만큼 공급되는 준비 신호에 응답하여 1개씩 증가되며, 상기 카운터 값이 전송 데이터의 전송 사이클 수보다 작아질 때에 상기 데이터의 발행을 금지하는 데이터 발행 제어 회로를 갖는 것을 특징으로 하는 집적 회로 장치.
[준비 신호를 전송 데이터 사이클 수회 회신하고, 버퍼 사이즈를 보낸 버스트 길이(스트로브시)와 -1(준비시)로 관리하는 방법 IV, 도 17a 및 도 17b]
17. 제1 LSI와 제2 LSI 사이에서 커맨드와 그것에 대응하는 데이터의 전송을 실행하고, 상기 제2 LSI는 인터록형의 버스에 접속되는 시스템에 있어서의 제2 LSI에 있어서,
상기 제1 LSI로부터의 기록 커맨드에 대응하여 상기 제1 LSI로부터 전송되는 기록 데이터를 저장하는 수신 기록 데이터 버퍼와,
상기 인터록식 버스로부터의 판독 커맨드에 대응하여 제1 LSI로부터 전송되는 판독 응답 데이터를 저장하는 수신 판독 응답 데이터 버퍼를 별개로 가지며,
상기 기록 커맨드의 발행순으로 기록 데이터를 수신하고, 상기 판독 커맨드의 발행순으로 판독 응답 데이터를 수신하는 것을 특징으로 하는 집적 회로 장치.
(데드 록 방지, 도 18a18a지 도 18C)
18. 제1 LSI와 제2 LSI 사이에서 커맨드와 그것에 대응하는 데이터를 전송하는 시스템에 있어서의 제1 LSI에 있어서,
상기 커맨드에 ID 번호를 부가하여 발행하는 커맨드 발행부와,
상기 커맨드에 대응하여 전송하는 데이터에 상기 ID 번호를 부가하여 발행하는 데이터 발행부를 가지며,
상기 데이터 발행부는 상기 커맨드의 발행순에 관계없이 데이터를 발행하는것을 특징으로 하는 집적 회로 장치.
(커맨드 ID를 이용하여 데이터 발행 순서를 자유롭게 함, 도 19a 및 도 19b)
19. 제1 LSI와 제2 LSI 사이에서 커맨드와 그것에 대응하는 데이터를 전송을 행하는 시스템에 있어서의 제1 LSI에 있어서,
리셋 해제후의 일정 기간에 있어서, 커맨드 발행을 금지하는 커맨드 발행 제어 회로와,
상기 일정 기간에 있어서, 커맨드의 수신은 허가하는 커맨드 수신부를 갖는 것을 특징으로 하는 집적 회로 장치.
(리셋후의 커맨드 발행 금지 기간, 도 20a 및 도 20b)
20. 상기 1 내지 19 중 어느 하나에 있어서,
상기 커맨드 및 어드레스를 전송하는 커맨드 버스를 시스템 록의 1주기에 동기하여 동작시키고, 상기 데이터를 전송하는 데이터 버스를 상기 시스템 록의 반주기에 동기하여 동작시키는 것을 특징으로 하는 집적 회로 장치.
(더블 데이터 레이트, 도 21)
이상, 본 발명의 보호 범위는 상기 실시예에 한정되지 않고, 특허청구범위에 기재된 발명과 그 균등물(均等物)에까지 미치는 것이다.
이상, 본 발명에 따르면, 커맨드 또는 데이터를 송신하는 쪽의 LSI가 수신측 LSI의 수신 버퍼의 상태를 수신측 LSI가 분류하는 커맨드 또는 데이터 발행시의 스트로브 신호의 횟수와, 수신측 LSI가 분류하는 처리 완료를 나타내는 준비 신호의횟수로 관리하여 수신측 LSI의 수신 버퍼가 비어 있는 상태인 한, 커맨드 또는 데이터를 발행하고, 가득 차게 되면 발행을 금지한다. 따라서, 버스의 동작 주파수가 고속이 되더라도 송신측 LSI는 수신측 LSI로부터의 사용중 신호를 수신하지 않고 연속해서 고속으로 커맨드 또는 데이터를 발행할 수 있다. 따라서, 버스의 사용 효율을 높일 수 있다.

Claims (7)

  1. 제1 LSI가 제2 LSI에 커맨드를 발행하여 대응하는 처리를 실행시키는 시스템에 있어서의 제1 LSI에 있어서,
    상기 제2 LSI를 동시에 처리할 수 있는 커맨드 단수가 리셋시에 설정되고, 상기 커맨드를 발행할 때에 감소되며, 상기 제2 LSI로부터 커맨드 처리 완료에 대한 준비 신호를 수신할 때에 증가되는 카운터를 가지며, 상기 카운터 값이 소정의 값이 될 때에 커맨드의 발행을 금지하는 커맨드 발행 제어 회로를 갖는 것을 특징으로 하는 집적 회로 장치.
  2. 제1 LSI가 제2 LSI에 데이터를 발행하여 대응하는 처리를 실행시키는 시스템에 있어서의 제1 LSI에 있어서,
    상기 제2 LSI를 동시에 수신할 수 있는 데이터 단수가 리셋시에 설정되는 카운터를 가지며, 상기 카운터는 상기 데이터를 발행할 때에 감소되고, 상기 제2 LSI로부터 데이터에 대응하는 처리의 완료에 대한 준비 신호를 수신할 때에 증가되며, 상기 카운터 값이 소정의 값이 될 때에 상기 데이터의 발행을 금지하는 데이터 발행 제어 회로를 갖는 것을 특징으로 하는 집적 회로 장치.
  3. 제1 LSI와 제2 LSI 사이에서 서로 데이터를 발행하여 대응하는 처리를 실행시키는 시스템에 있어서의 제1 LSI에 있어서,
    상기 제1 및 제2 LSI가 쌍방향성의 데이터 버스에 의해 접속되고,
    상기 제1 LSI는 상기 제2 LSI로부터의 상기 데이터 버스의 사용을 요구하는 요구 신호에 응답하여 상기 데이터 버스의 사용을 허가하는 허가 신호를 상기 제2 LSI에 발행하는 아비터 회로를 가지며,
    상기 허가 신호를 발행할 때에, 상기 제1 LSI로부터의 데이터의 발행을 금지시키는 것을 특징으로 하는 집적 회로 장치.
  4. 제1 LSI와 제2 LSI 사이에서 서로 커맨드와 데이터를 발행하는 시스템에 있어서의 제1 LSI에 있어서,
    상기 제1 및 제2 LSI가 쌍방향성의 커맨드 버스 및 데이터 버스에 의해 접속되고,
    상기 제2 LSI로부터의 상기 커맨드 버스의 사용을 요구하는 커맨드 요구 신호에 응답하여 상기 커맨드 버스의 사용을 허가하는 커맨드 허가 신호를 상기 제2 LSI에 발행하고, 상기 제1 LSI로부터의 커맨드의 발행을 금지하는 커맨드 버스 아비터 회로와,
    데이터 버스의 사용을 요구하는 데이터 요구 신호를 상기 제2 LSI에 발행하고, 상기 제2 LSI로부터 데이터 허가 신호를 수신한 것에 응답하여 상기 데이터 버스에 데이터를 발행하는 데이터 발행 제어 회로를 포함하는 것을 특징으로 하는 집적 회로 장치.
  5. 제1 LSI와 제2 LSI 사이에서 서로 커맨드와 데이터를 발행하는 시스템에 있어서의 제2 LSI에 있어서,
    상기 제1 및 제2 LSI가 쌍방향성의 커맨드 버스 및 데이터 버스에 의해 접속되고,
    상기 제1 LSI로부터의 상기 데이터 버스의 사용을 요구하는 데이터 요구 신호에 응답하여 상기 데이터 버스의 사용을 허가하는 데이터 허가 신호를 상기 제1 LSI에 발행하고, 상기 제2 LSI로부터의 데이터의 발행을 금지하는 데이터 버스 아비터 회로와,
    커맨드 버스의 사용을 요구하는 커맨드 요구 신호를 상기 제1 LSI에 발행하고, 상기 제1 LSI로부터 커맨드 허가 신호를 수신한 것에 응답하여 상기 커맨드 버스에 커맨드를 발행하는 커맨드 발행 제어 회로를 포함하는 것을 특징으로 하는 집적 회로 장치.
  6. 제1 LSI와 제2 LSI 사이에서 커맨드와 그것에 대응하는 데이터의 전송을 실행하는 시스템에 있어서의 제1 LSI에 있어서,
    상기 커맨드에 ID 번호를 부가하여 발행하는 커맨드 발행부와,
    상기 커맨드에 대응하여 전송하는 데이터에 상기 ID 번호를 부가하여 발행하는 데이터 발행부를 포함하며,
    상기 데이터 발행부는 상기 커맨드의 발행 순서에 관계없이 데이터를 발행하는 것을 특징으로 하는 집적 회로 장치.
  7. 제1 LSI와 제2 LSI 사이에서 커맨드와 그것에 대응하는 데이터의 전송을 실행하는 시스템에 있어서의 제1 LSI에 있어서,
    리셋 해제후의 일정 기간에 있어서, 커맨드 발행을 금지하는 커맨드 발행 제어 회로와,
    상기 일정 기간에 있어서, 커맨드의 수신을 허가하는 커맨드 수신부를 포함하는 것을 특징으로 하는 집적 회로 장치.
KR1020010001247A 2000-01-20 2001-01-10 버스 사용 효율을 높인 집적 회로 장치의 버스 제어 방식 KR100768049B1 (ko)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
JP2000011553A JP4554016B2 (ja) 2000-01-20 2000-01-20 バス使用効率を高めた集積回路装置のバス制御方式
JP2000-011553 2000-01-20

Publications (2)

Publication Number Publication Date
KR20010076242A true KR20010076242A (ko) 2001-08-11
KR100768049B1 KR100768049B1 (ko) 2007-10-17

Family

ID=18539402

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020010001247A KR100768049B1 (ko) 2000-01-20 2001-01-10 버스 사용 효율을 높인 집적 회로 장치의 버스 제어 방식

Country Status (4)

Country Link
US (2) US6917995B2 (ko)
EP (1) EP1132826A3 (ko)
JP (1) JP4554016B2 (ko)
KR (1) KR100768049B1 (ko)

Families Citing this family (18)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7069363B1 (en) * 2001-02-27 2006-06-27 Lsi Logic Corporation On-chip bus
JP3606852B2 (ja) * 2001-08-13 2005-01-05 沖電気工業株式会社 バス制御システム
KR100455396B1 (ko) * 2002-10-14 2004-11-06 삼성전자주식회사 마스터 블록들의 우선 순위를 결정하는 파라미터 발생회로 및 파라미터 발생 방법.
EP1445704A1 (en) * 2003-02-06 2004-08-11 STMicroelectronics S.r.l. Synchronization method of data interchange of a communication network and corresponding circuit and architecture
US6993619B2 (en) * 2003-03-28 2006-01-31 International Business Machines Corporation Single request data transfer regardless of size and alignment
TWI296084B (en) * 2004-11-30 2008-04-21 Realtek Semiconductor Corp Bus arbiter, bus device, and bus arbitrating method
TW200717246A (en) * 2005-06-24 2007-05-01 Koninkl Philips Electronics Nv Self-synchronizing data streaming between address-based producer and consumer circuits
JP4757582B2 (ja) 2005-09-20 2011-08-24 エルピーダメモリ株式会社 データ転送動作終了検知回路及びこれを備える半導体記憶装置
JP4582032B2 (ja) 2006-03-16 2010-11-17 ソニー株式会社 データ転送装置およびデータ転送システム
US20090125664A1 (en) * 2006-04-04 2009-05-14 Takatoshi Ueyama System controller
US7653770B2 (en) * 2007-01-18 2010-01-26 Xerox Corporation Time multiplexed bidirectional bus
JP2009059122A (ja) * 2007-08-31 2009-03-19 Renesas Technology Corp データ処理システム
CN101539771B (zh) * 2008-03-21 2012-09-19 鸿富锦精密工业(深圳)有限公司 主设备对从设备的自动定址系统
US7730244B1 (en) * 2008-03-27 2010-06-01 Xilinx, Inc. Translation of commands in an interconnection of an embedded processor block core in an integrated circuit
US20100115181A1 (en) * 2008-11-04 2010-05-06 Sony Ericsson Mobile Communications Ab Memory device and method
US8667197B2 (en) * 2010-09-08 2014-03-04 Intel Corporation Providing a fine-grained arbitration system
US20120159083A1 (en) * 2010-12-17 2012-06-21 Deniz Balkan Systems and Methods for Processing Memory Transactions
KR102111741B1 (ko) 2014-01-10 2020-05-15 삼성전자주식회사 임베디드 멀티미디어 카드 및 이의 동작 방법

Family Cites Families (26)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS581812B2 (ja) 1977-12-12 1983-01-13 富士通株式会社 デ−タ処理システム
DE3068177D1 (en) * 1980-06-19 1984-07-19 Ibm Flow control mechanism for block switching nodes
JPS6160162A (ja) * 1984-08-31 1986-03-27 Toshiba Corp バス調停方式
GB8528891D0 (en) 1985-11-23 1986-01-02 Int Computers Ltd Data transmission system
JPS63271629A (ja) 1987-04-30 1988-11-09 Canon Inc 記録装置
JPS6444569A (en) * 1987-08-12 1989-02-16 Hitachi Ltd Bus arbitration
JP2529978B2 (ja) * 1987-09-30 1996-09-04 富士通株式会社 本体−通信制御アダプタ間インタフェ―ス制御方式
JPH0293831A (ja) * 1988-09-30 1990-04-04 Toshiba Corp 二重化システム
JPH04127257A (ja) * 1990-09-18 1992-04-28 Fujitsu Ltd バス調停方式
JPH04170649A (ja) 1990-11-05 1992-06-18 Shikoku Nippon Denki Software Kk バス制御回路
JP2860710B2 (ja) * 1990-12-28 1999-02-24 株式会社小松製作所 メモリの制御装置
US5276887A (en) * 1991-06-06 1994-01-04 Commodore Electronics Limited Bus arbitration system for granting bus access to devices following two-wire bus arbitration protocol and devices following three-wire bus arbitration protocol
US5299315A (en) * 1992-09-17 1994-03-29 International Business Machines Corp. Personal computer with programmable threshold FIFO registers for data transfer
JPH07210465A (ja) * 1993-12-30 1995-08-11 Internatl Business Mach Corp <Ibm> ペナルティのないキャッシュとメモリとのインタフェース
CA2130407A1 (en) * 1993-12-30 1995-07-01 Fu Lam Chan Store in cache having direct slave interface
US5784579A (en) * 1994-03-01 1998-07-21 Intel Corporation Method and apparatus for dynamically controlling bus access from a bus agent based on bus pipeline depth
JPH0855095A (ja) * 1994-06-08 1996-02-27 Hitachi Ltd 二重系情報処理システム
JPH08339346A (ja) * 1995-06-09 1996-12-24 Toshiba Corp バスアービタ
US5778200A (en) * 1995-11-21 1998-07-07 Advanced Micro Devices, Inc. Bus arbiter including aging factor counters to dynamically vary arbitration priority
US5954809A (en) * 1996-07-19 1999-09-21 Compaq Computer Corporation Circuit for handling distributed arbitration in a computer system having multiple arbiters
JP3477056B2 (ja) * 1996-12-03 2003-12-10 松下電器産業株式会社 データ転送装置
JP3379377B2 (ja) * 1997-03-19 2003-02-24 富士通株式会社 データ処理システム
US5996037A (en) * 1997-06-03 1999-11-30 Lsi Logic Corporation System and method for arbitrating multi-function access to a system bus
US6108736A (en) * 1997-09-22 2000-08-22 Intel Corporation System and method of flow control for a high speed bus
US6032178A (en) * 1998-01-12 2000-02-29 Siemens Aktiengesellschaft Method and arrangement for data transmission between units on a bus system selectively transmitting data in one of a first and a second data transmission configurations
US6622194B1 (en) * 2000-08-28 2003-09-16 Intel Corporation Efficient use of multiple buses for a scalable and reliable high-bandwidth connection

Also Published As

Publication number Publication date
JP4554016B2 (ja) 2010-09-29
US20050223151A1 (en) 2005-10-06
US7349998B2 (en) 2008-03-25
KR100768049B1 (ko) 2007-10-17
JP2001202327A (ja) 2001-07-27
US6917995B2 (en) 2005-07-12
US20010010063A1 (en) 2001-07-26
EP1132826A3 (en) 2004-10-06
EP1132826A2 (en) 2001-09-12

Similar Documents

Publication Publication Date Title
KR100768049B1 (ko) 버스 사용 효율을 높인 집적 회로 장치의 버스 제어 방식
US6151651A (en) Communication link with isochronous and asynchronous priority modes coupling bridge circuits in a computer system
US6434654B1 (en) System bus with a variable width selectivity configurable at initialization
US7865646B1 (en) Sharing of functions between an embedded controller and a host processor
US6148357A (en) Integrated CPU and memory controller utilizing a communication link having isochronous and asynchronous priority modes
US7502896B2 (en) System and method for maintaining the integrity of data transfers in shared memory configurations
US5119480A (en) Bus master interface circuit with transparent preemption of a data transfer operation
KR101247247B1 (ko) 클락 신호의 출력을 제어할 수 있는 컨트롤러 및 상기 컨트롤러를 구비하는 시스템
US20020013880A1 (en) Integrated circuit with flash bridge and autoload
US8335883B2 (en) Data processing device and data processing system
US20110082956A1 (en) Information processing system and control method thereof
US6266718B1 (en) Apparatus for controlling data transfer operations between a memory and devices having respective latencies
KR20040010869A (ko) 네트워크 제어기의 송신부 버퍼 및 수신부 버퍼를제어하는 방법 및 네트워크 제어기
US7062588B2 (en) Data processing device accessing a memory in response to a request made by an external bus master
US7016987B2 (en) Transaction aligner microarchitecture
JP2963426B2 (ja) バスブリッジ装置及びトランザクションフォワード方法
US6973520B2 (en) System and method for providing improved bus utilization via target directed completion
JP3698324B2 (ja) 直接メモリアクセス制御器およびデータチャンネルへのインターフェース装置を備えたワークステーション
JPH09153009A (ja) 階層構成バスのアービトレーション方法
JPH06250970A (ja) メモリ制御装置
JP2000215154A (ja) Dmaコントロ―ラ
JP2000029824A (ja) 階層型バスシステムとバス変換装置
US5784580A (en) System and method for communicating between devices
KR20050067324A (ko) 마스터/슬레이브 디바이스간의 인터페이스 장치 및 그 방법
JP2001188749A (ja) バスコントローラ

Legal Events

Date Code Title Description
A201 Request for examination
E902 Notification of reason for refusal
E701 Decision to grant or registration of patent right
GRNT Written decision to grant
LAPS Lapse due to unpaid annual fee