KR100385231B1 - 버스 시스템 - Google Patents

버스 시스템 Download PDF

Info

Publication number
KR100385231B1
KR100385231B1 KR10-2001-0020385A KR20010020385A KR100385231B1 KR 100385231 B1 KR100385231 B1 KR 100385231B1 KR 20010020385 A KR20010020385 A KR 20010020385A KR 100385231 B1 KR100385231 B1 KR 100385231B1
Authority
KR
South Korea
Prior art keywords
bus
data
bit
output
data source
Prior art date
Application number
KR10-2001-0020385A
Other languages
English (en)
Other versions
KR20020080672A (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 삼성전자주식회사
Priority to KR10-2001-0020385A priority Critical patent/KR100385231B1/ko
Priority to US10/059,813 priority patent/US7778267B2/en
Publication of KR20020080672A publication Critical patent/KR20020080672A/ko
Application granted granted Critical
Publication of KR100385231B1 publication Critical patent/KR100385231B1/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/38Information transfer, e.g. on 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
    • G06F13/40Bus structure
    • G06F13/4063Device-to-bus coupling
    • G06F13/4068Electrical coupling

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Hardware Design (AREA)
  • Bus Control (AREA)
  • Design And Manufacture Of Integrated Circuits (AREA)

Abstract

M개 또는 그 보다 작은 수의 출력 비트들을 갖는 N개의 데이터 소스들에게 데이터 싱크로의 공통적인 데이터 전달 경로를 제공하는 버스 시스템이 제공된다. N개의 데이터 소스들은 각각 대응하는 N개의 버스 셀에 의해 M개의 배선에 연결되며, 버스 셀들 각각은 대응하는 데이터 소스의 출력들을 배선들 상으로 선택적으로 제공하는 논리 회로를 구비하고 있다. 버스 셀들은 한번에 하나만의 데이터 소스가 배선들 상으로 출력하도록 제어된다. 본 발명에 의하면 인터커넥션의 개수 및 길이를 줄일 수 있을 뿐만 아니라, 데이터 소스의 지연시간 또는 부하에 대해 최적화된 버스 시스템을 제공할 수 있다.

Description

버스 시스템{BUS SYSTEM}
본 발명은 분산형 버스(distributed bus)에 관한 것으로서, 특히 임베디드(embedded) 시스템온어칩(system on a chip)를 구현하기 위해 칩 내부에 적용하기 적합한 분산형 버스에 관한 것이다.
일반적인 디지털 시스템에는 많은 레지스터가 포함된다. 한 레지스터로부터 다른 레지스터로의 데이터 이동을 위해서는 경로가 반드시 있어야 한다. 레지스터들 사이의 효과적인 데이터 이동을 위하여 통상 공용의 이동경로인 버스(BUS)를 이용하고 있다. 버스는 선택회로를 써서 제어하는 공통적인 선로의 집합이다.
한편 임베디드(embedded) 시스템온어칩(system on a chip)을 위한 칩 내부의 버스 구조는 최근 기존의 삼상태(tri-state) 기반의 버스 대신 멀티플렉서(multiplexer : 이하, "먹스(MUX)"라고 함) 기반의 버스로 바뀌어 가고 있다. 이러한 변화의 가장 큰 이유는 테스트의 용이성에 있다. 테스트 벡터(test vector)를 생성해주는 최근의 자동설계수단(electronic design automation tool)들은 점차로 삼상태 버스 대신 먹스 버스를 선호하고, 먹스 버스에 대해 효율적으로 변하고 있다. 또한 칩 내부에서는 양방향의 버스가 아닌 단방향의 버스를 사용하는 것이 버스의 성능을 높이는 데 유리한 것도 단방향 먹스 기반의 버스를 많이 사용하게 되는 이유이다.
그러나 이러한 먹스 기반의 버스는 기존의 먹스셀(MUX cell)을 사용하여 구현하는 경우 많은 문제를 일으키게 된다. 예를 들어 도 1은 각각 M 비트의 신호 N개가 각각의 데이터 소스로부터 중앙 집중의 먹스로 들어와서 그 중 하나가 선택되는 것을 도시한 것이다. 도 1에서 볼 수 있는 바와 같이 기존의 단일 먹스셀을 쓰는 경우 M×N개의 인터커넥션(interconnection)이 먹스까지 와야 한다. 예를 들어 32비트 버스가 11개의 데이터 소스에서 오는 경우(실제 S3C2400X의 설계에서 나타나는 경우임) 352 비트가 먹스로 들어오게 된다. 이러한 먹스가 실제 설계에서는 여러 개 사용되므로 이로 인한 면적의 소모가 클 뿐 아니라, 인터커넥션의 상호간섭으로 인한 지연도 증가한다.
기존의 연구들은 모두 대형 프로세서에서 사용되는 삼상태 기반의 버스나 와이어드 논리합(wired-OR) 버스 기반의 것들이다. 그러나 와이어드 논리합 버스 또한 테스팅에 문제가 있어 임베디드 시스템에서는 사용하는데 문제가 있다.
따라서 본 발명은 임베디드 시스템에 사용하는데 적합한 버스(BUS)를 제공하는 것을 일 목적으로 한다.
또한 본 발명은 인터커넥션의 개수를 줄일 수 있는 구조의 버스를 제공하는 것을 다른 목적으로 한다.
또한 본 발명은 인터커넥션의 길이를 줄일 수 있는 구조의 버스를 제공하는 것을 또 다른 목적으로 한다.
도 1은 종래의 먹스(MUX)를 기반으로 하는 버스의 구성도.
도 2는 본 발명의 제 1 실시예에 따른 분산형 버스의 구성도.
도 3은 본 발명의 제 1 실시예에 적용되는 비트 연결 회로의 구성도.
도 4는 본 발명의 제 2 실시에에 따른 분산형 버스의 구성도.
도 5는 본 발명의 제 2 실시예에 적용되는 비트 연결 회로의 구성도.
도 6은 본 발명의 제 3 실시에에 따른 분산형 버스의 구성도.
[도면의 참조부호에 대한 설명]
202 : 데이터 소스 204 : 버스 셀
206 : 비트 연결 회로 302 : 논리곱 게이트
304 : 논리합 게이트 404 : 버스 셀
406 : 비트 연결 회로 502, 504 : 논리곱 게이트
506 : 논리합 게이트 602, 604 : 블록 체인
606 : 논리합 게이트
전술한 바와 같은 목적을 달성하기 위하여 본 발명은 M개 또는 그 보다 작은 수의 출력 비트들을 갖는 N개의 데이터 소스들에게 데이터 싱크로의 공통적인 데이터 전달 경로를 제공하는 버스 시스템에 있어서, N개의 데이터 소스들은 각각 대응하는 N개의 버스 셀에 의해 M개의 배선에 연결되며, 버스 셀들 각각은 대응하는 데이터 소스의 출력들을 배선들 상으로 선택적으로 제공하는 논리 회로를 구비하고 있는 특징으로 한다. 여기서, 버스 셀들은 한번에 하나만의 데이터 소스가 배선들 상으로 출력하도록 제어된다.
버스 셀들은 각각 대응하는 데이터 소스의 출력의 각 비트를 배선에 연결하는 M개 또는 그 보다 작은 수의 비트 연결 회로를 구비하고 있는데, 비트 연결 회로의 각각은 대응하는 데이터 소스의 일 비트의 데이터와 대응하는 데이터 소스의 선택 여부를 지시하는 선택신호를 입력받아 그 논리곱 결과를 출력하는 논리곱 게이트와, 상기 논리곱 게이트의 출력과 상기 일 비트에 대한 전단의 버스 셀의 출력을 입력받아 그 논리합 결과를 상기 비트에 대한 상기 버스 셀의 출력으로서 출력하는 논리합 게이트를 가지고 있다.
하나의 버스 셀에 연결되는 데이터 소스의 수는 2 이상이 될 수 있는데, 경우 비트 연결 회로는 버스 셀에 연결되는 데이터 소스의 각각에 대한 논리곱 게이트를 가지며, 이들 복수의 논리곱 게이트의 출력은 모두 논리합 게이트의 입력으로 제공된다.
배선들의 길이를 줄이기 위하여 M개 배선들로 이루어진 배선군을 복수개 사용할 수 있다. 예를 들어, 2개의 배선군을 사용하면 동일한 수의 데이터 소스들에 대해 (1/2) 길이의 배선을 사용할 수 있다. 복수의 배선군은 데이터의 각 비트에 대한 논리합 게이트를 통해 하나의 버스로 연결될 수 있다. 이 경우, 각 배선군을 통해 전달된 출력을 논리합 게이트의 입력으로 제공하고, 이 논리합 게이트이 출력을 최종 버스의 출력으로 한다.
데이터 소스들 중 작은 지연시간이 요구되는 데이터 소스 및/또는 작은 부하가 요구되는 데이터 소스는 데이터 싱크에 가까운 버스 셀에 연결하는 것이 바람직하다.
이러한 본 발명에 의하면 첫째로 기존의 단일 집중식 먹스를 사용하는 경우와 비교해 인터커넥션의 개수가 M×N개에서 M개로 줄어든다. 이는 삼상태 기반의 버스의 경우와 동일한 개수이다. 이러한 인터커넥션 개수의 감소는 칩의 면적과 상호간섭으로 인한 지연을 줄일 수 있다는 장점이 있다. 둘째로, 신호 전달이 빨라지고 전력의 소모가 줄어든다. 삼상태 기반의 버스는 한 신호가 구동될 때 버스 전체의 부하를 보게 되며, 신호가 양방향으로 전달되게 된다. 이에 비해 본 발명에 의한 버스 구조는 신호의 전달이 한 방향으로만 전달되고, 또한 보이는 부하도 전달되는 방향의 부하만이 보이게 된다. 따라서 보이는 부하가 적어짐으로 인하여 전력의 소모가 줄어들게 된다. 셋째로, 타이밍 최적화를 구현할 수 있다. 신호의 전달이 한 방향으로만 이루어짐으로써 버스에 연결되는 위치에 따라 서로 다른 지연시간을 가지게 된다. 따라서 신호의 싱크(sink)에 가까운 곳에 작은 지연시간이 요구되는 데이터 소스를 배치함으로써 타이밍 최적화를 할 수 있다. 네째로, 추가적인 버퍼의 사용이 필요없다. 본 발명에 의한 버스 상에 놓이는 논리합 게이트는 기존의 버스들에서 인터커넥션의 지연을 줄이기 위해 사용하던 버퍼들이 하던 역할을 겸해서 수행하기 때문이다.
이하, 첨부된 도면을 참조하여 본 발명의 실시예를 상세히 설명한다. 도면에서 동일한 참조부호는 동일한 구성요소를 가리킨다.
먼저 도 2는 본 발명의 제 1 실시예에 따른 분산형 버스의 구성도이다. 도 2는 M 비트의 데이터를 출력하는 N개의 데이터 소스가 버스에 연결되어 있는 경우를 예시하고 있다. 도 2에서 참조부호 202는 데이터 소스, 204는 버스 셀, 206는 비트 연결 회로을 각각 가리킨다. 또한 참조부호 "IN"은 데이터 입력을, "SEL"은 해당 데이터 소스의 선택 여부를 지시하는 선택신호를, "PIN"은 전단 비트 연결 회로의 출력을, "OUT"는 비트 연결 회로의 출력을 각각 가리킨다. "SEL"은 디지털 시스템 내의 버스 제어기(BUS controller)로부터 출력되며, 데이터 소스들 중에서 하나의 데이터 소스만이 버스 상에 그 데이터를 로딩할 수 있도록 한번에 하나의 데이터 소스에 해당하는 "SEL"만이 논리값 1을 갖는다(여기서는 양의 논리 시스템을 가정하였다).
도 2에 도시되어 있는 바와 같이, 본 실시예에 의한 분산형 버스는 복수의 데이터 소스(202)의 각각에 연결된 버스 셀(204)이 직렬로 연결됨으로써 구성된다. 버스 셀(204)이 직렬로 연결된 것을 이하 블록 체인(block chain)이라고 한다. 버스 셀(204)은 블록 체인을 형성하고, 해당 데이터 소스(202)가 선택된 경우, 그 데이터 소스로부터 출력되는 데이터가 버스로 로딩되도록 하는 경로를 구성한다. 버스 셀(204)은 각 비트에 대한 비트 연결 회로(206)을 구비하므로, 하나의 버스 셀(204)은 데이터 비트수에 해당하는 M개의 비트 연결 회로을 구비하고 있다. 임의의 버스 셀 내에 포함되어 있는 각 비트 연결 회로의 출력은 다음 단의 버스 셀 내에 포함되어 있는 동일 비트위치의 비트 연결 회로의 입력으로 제공된다. 이러한 구성을 앞에서는 버스 셀이 직렬로 연결되어 있다고 표현하였다.
도 2에서 버스 셀(204)에 데이터 소스(202)를 연결할 때, 작은 지연시간이 요구되는 데이터 소스일수록 블록 체인의 말단에, 즉 데이터싱크(208)로부터 근접한 위치에 배치된 버스 셀과 연결하는 것이 바람직하다. 데이터 소스가 블록 체인의 말단에 가깝게 위치한 버스 셀에 연결되면 데이터싱크(208)까지 데이터가 전달되기 위하여 경유하여야 하는 게이트의 수가 줄어들기 때문에 버스를 경유하는 시간이 줄어든다. 또한 기존의 삼상태 기반의 버스와는 달리 본 발명에 의한 버스는 단방향으로만 신호가 전달하기 때문에 전달되는 방향의 부하만 신호가 보게 된다. 따라서 신호 전달의 속도가 빠를 뿐만 아니라, 신호 전달로 인한 전력의 소모가 줄어든다. 따라서 작은 부하가 요구되는 데이터 소스일수록 블록 체인의 말단에 배치된 버스 셀과 연결하는 것이 바람직하다.
도 2에 도시되어 있는 바와 같이 인터커넥션은 M개가 필요하다. 기존의 먹스를 기반으로 하는 버스는 M×N개의 인터커넥션을 필요로 하는 것에 비하여 (1/N)개의 인터커넥션만을 필요로 함을 알 수 있다. 이는 삼상태 기반의 버스의 경우와 도일한 개수이다. 이러한 인터커넥션의 개수의 감소는 결국 이러한 구조의 버스 시스템이 임베디드 시스템온어칩에 적용될 때 버스 설치를 위해 필요한 칩의 면적이 줄어듬을 의미한다. 또한 인터커넥션의 개수가 감소함으로써 인터커넥션을 통해 전달되는 데이터 신호간의 상호간섭이 줄어듬으로 신호가 인터커넥션을 전달하는 시간이 줄어든다.
도 3은 도 2에 도시된 비트 연결 회로(206)의 구성도이다. 도 3에 도시되어 있는 바와 같이, 각 비트 연결 회로은 하나의 논리곱 게이트(302)와 하나의 논리합게이트(304)를 구비하고 있다. 도 2에서와 같이, 참조부호 "IN"은 데이터 입력을, "SEL"은 해당 데이터 소스의 선택 여부를 지시하는 선택신호를, "PIN"은 전단 비트 연결 회로의 출력을, "OUT"는 비트 연결 회로의 출력을 각각 가리킨다.
도 3에서, 비트 연결 회로을 구성하는 논리곱 게이트(302)는 연결된 데이터 소스의 데이터 중 1 비트의 데이터와, 연결된 데이터 소스의 선택 여부를 가리키는 선택신호를 입력받아 그 논리곱 결과를 출력한다. 한편 논리합 게이트(304)는 논리곱 게이트(302)의 출력과, 동일 비트위치에 대한 전단 버스 셀의 출력, 즉 전단 논리합 게이트의 출력을 입력받아 그 논리합 결과를 출력한다. 이 논리합 결과는 해당 비트에 대한 버스 셀의 출력으로서 다음 단의 버스 셀에 제공된다.
현재 데이터 소스의 선택여부를 가리키는 선택신호(SEL)는 현재 데이터 소스가 선택된 경우 논리값 1을, 현재 데이터 소스가 선택되지 않은 경우 논리값 0을 그 값으로 갖는다. 따라서 현재 데이터 소스가 선택된 경우 논리곱 게이트(302)의 출력은 현재 데이터 소스의 데이터 비트(IN)에 의해 결정된다. 현재 데이터 소스가 선택된 경우 다른 데이터 소스는 선택되지 않으므로 전단 버스 셀으로부터의 출력(PIN)은 논리값 0이 된다. 따라서 현재 데이터 소스가 선택된 경우 논리합 게이트(304)의 출력은 현재 데이터 소스의 데이터(IN)에 의해 결정된다. 한편, 현재 데이터 소스가 선택되지 않은 경우 논리곱 게이트(302)의 출력은 0이 되므로, 논리합 게이트(304)의 출력은 전단 버스 셀으로부터의 출력(PIN)에 의해 결정된다. 전단 버스 셀에 연결된 데이터 소스가 선택되면 단자 "PIN"은 그 선택된 데이터 소스의 데이터 값을 가지게 되며, 논리합 게이트(304) 역시 "PIN"과 동일한 데이터를출력하게 된다. 이는 현재의 버스 셀이 전단 버스 셀으로부터 인가된 출력을 전달하는 것을 의미한다. 이러한 동작을 살펴볼 때 도 3에 도시된 비트 연결 회로이 직렬로 연결된 구성은 각 비트에 대한 버스의 역할을 수행함을 알 수 있다.
전술한 바와 같이, 본 발명에서는 데이터 소스로부터 출력된 신호가 논리 게이트를 통해 전달되므로 단방향성을 가진다. 이에 비해 삼상태 기반의 버스 구조는 양방향성을 가진다. 본 발명에 의한 버스 구조가 단방향성을 갖는 이유는 버스 셀이 논리 회로로 구현되기 때문이다. 논리 회로에서는 입력과 출력이 구별되어 정해져 있다. 예를 들어 논리합 회로의 통상의 출력 단자에 입력 신호를 제공한다고 하여, 통상의 입력 단자에 소정 신호가 출력되지 않는다. 따라서 본 발명에 의한 버스 구조에서는 신호의 전달이 한 방향으로만 이루어지며, 이러한 결과로 신호 전달 과정에서 신호가 보는 부하도 전달 방향의 부하에 의해서 결정된다. 따라서 신호 전달 과정에서 소모되는 전력이 삼상태 기반의 버스 구조에 비해 작은 장점이 있다.
본 발명은 논리 회로(예를 들어, 논리합 회로)를 통해 신호를 전달하므로, 신호가 논리합 회로를 넘어 가는 과정에서 재생 작용이 일어난다. 따라서 인터커넥션 중간에 버퍼를 사용할 필요가 없다. 이는 별도로 버퍼를 구현할 필요가 없음을 의미하므로 별도의 버퍼를 사용하는 구조에 비해 경제적이다.
블록 체인을 구성하는 버스 셀이 데이터 싱크(data sink)로부터 떨어질수록, 그 버스 셀에 연결된 데이터 소스로부터 출력되는 데이터는 더 많은 수의 게이트를 경유하여야 하므로 버스를 경유하는 시간이 늘어나게 된다. 이러한 문제를 해소하기 위한 확장 회로가 도 4 내지 도 6를 참조하여 이하에서 설명된다.
도 4는 본 발명의 제 2 실시에에 따른 분산형 버스의 구성도이다. 도 2에 도시된 본 발명의 제 1 실시예와 구별되는 점은 두개의 데이터 소스(202)가 하나의 버스 셀(404)에 연결되어 있다는 것이다. 따라서 버스 셀(404) 내에 구비되어 있는 비트 연결 회로(406)에는 도 2에 도시된 바와는 달리 2개의 데이터 신호(IN1, IN2)와 2개의 선택신호(SEL1, SEL2)가 인가된다. 예를 들어, 선택신호(SEL1)가 1이고 선택신호(SEL0)가 0이면 데이터 신호(IN1)가 출력신호(OUT)로 출력되고, 선택신호(SEL1)가 0이고 선택신호(SEL0)가 1이면 데이터 신호(IN2)가 출력신호(OUT)로 출력된다.
버스 셀이 직렬로 연결되어 형성된 블록 체인, 즉 인터커넥션은 도 2에서와 같이 데이터 비트수와 동일한 M개이나, 동일한 수의 데이터 소스를 버스에 연결한다면 도 4에 도시된 제 2 실시예에 의한 블록 체인의 길이는 도 2에 도시된 제 1 실시예에 의한 블록 체인의 길이의 (1/2)이 된다. 이는 데이터 싱크로부터 가장 멀리 떨어진 데이터 소스로부터 출력된 데이터가 버스를 경유하는 시간이 제 1 실시예에 비해 대략 (1/2)이 되는 것을 의미한다.
도 5는 도 4에 도시된 분산형 버스를 구성하는데 이용되는 비트 연결 회로의 구성도이다. 도 3에 도시된 비트 연결 회로이 하나의 논리곱 게이트와 하나의 논리합 게이트로 구성되는데 비해, 도 5에 도시된 비트 연결 회로은 두개의 논리곱 게이트(502, 504)와 하나의 논리합 게이트(506)로 구성된다. 도 3에 도시된 논리합 게이트(304)가 2 입력 게이트인 것과는 달리, 도 5에 도시된 논리합 게이트(506)는3 입력 게이트이다. 도 5에서 참조부호 "IN1"은 데이터 소스 1로부터 출력되는 데이터의 1 비트 입력을, "IN2"은 데이터 소스2로부터 출력되는 데이터의 1 비트 입력을, "SEL1"은 데이터 소스 1의 선택 여부를 지시하는 선택신호를, "SEL2"는 데이터 소스2의 선택 여부를 지시하는 선택신호를, "PIN"은 전단 비트 연결 회로의 출력을, "OUT"는 비트 연결 회로의 출력을 각각 가리킨다.
도 5에서 데이터 입력(IN1)과 선택신호(SEL1)은 논리곱 게이트(502)에 입력되고, 데이터 입력(IN2)와 선택신호(SEL2)는 논리곱 게이트(504)에 입력된다. 논리곱 게이트(502)의 출력과 논리곱 게이트(504)의 출력과 전단 비트 연결 회로의 출력(PIN)은 논리합 게이트(506)에 입력된다.
도 5에서 예를 들어, 데이터 소스 1이 선택되면 선택신호(SEL1)는 논리값 1을 가지게 되고, 선택신호(SEL2)는 논리값 0을 가지게 된다. 따라서 논리곱 게이트(502)의 출력은 데이터 소스 1로부터의 데이터(IN1)에 의해 결정되며, 논리곱 게이트(504)의 출력은 데이터 소스 2로부터의 데이터값에 상관없이 항상 0이다. 이 경우 전단의 버스 셀에 제공되는 선택신호는 모두 0이므로 전단 버스 셀에 포함되어 있는 두 논리곱 게이트의 출력은 0이 되고, 논리합 게이트의 출력은 그 전단의 해당 비트에 대한 버스 셀의 출력, 즉 논리합 게이트의 출력에 의해 결정된다. 그러나 본 경우와 같이 데이터 소스 1이 선택되면 전단의 어떠한 데이터 소스도 선택되지 않으므로, 논리합 게이트(506)의 출력은 데이터 소스 1의 데이터에 의해 결정된다. 한편 데이터 소스 1과 데이터 소스2 모두 선택되지 않으면 선택신호(SEL1, SEL2)는 모두 0이므로 논리곱 게이트(502, 504)의 출력은 모두 0이 되므로, 논리합게이트(506)의 출력은 전단의 버스 셀의 출력(PIN)에 의해 결정된다. 따라서 도 4에 도시된 블록 체인, 즉 버스 셀(404)의 직렬 결합은 N개의 데이터 소스로부터 출력되는 M 비트의 데이터를 전달하는 버스의 역할을 수행하게 된다.
도 6은 본 발명의 제 3 실시에에 따른 분산형 버스의 구성도이다. 도 6에 도시된 분산형 버스는 제 1 및 제 2 실시예에 비해 추가적인 지연의 감소가 필요한 경우의 구성이다. 도 6에 도시된 제 3 실시예에 따른 분산형 버스는 버스 셀이 직렬 연결된 블록 체인(602, 604)이 2개 존재한다는 점에서 다른 실시예와 구별된다. 본 실시예에서는 블록 체인의 수가 2개이나, 3개 이상으로 용이하게 확대될 수 있다. 도 6에서 참조부호 602, 604는 블록 체인을, 606은 논리합 게이트를 608은 데이터 소스를, 610은 버스 셀을 각각 가리킨다.
도 6에 도시된 바와 같이, 제 3 실시예에 따른 분산형 버스에서는 2개의 블록 체인 중에 구비되어 있는 말단의 버스 셀의 출력에 대해 논리합 연산을 수행하는 논리합 게이트(606)가 더 포함되어 있다. 도 6에서는 설명의 편의를 위해 하나의 논리합 게이트만을 도시하였으나, 비트수에 해당하는 논리합 게이트가 각 비트의 데이터에 대해 설치된다. 하나의 데이터 소스가 선택되면 2개의 블록 체인(602, 604) 중에 하나의 블록 체인만이 활성화되어 해당 데이터 소스로부터의 데이터를 논리합 게이트(606)를 통해 출력하게 된다. 이 때 최대지연은 각 블록 체인의 최대지연과 추가적인 논리합 게이트(606)의 지연의 합이 된다. 제 2 실시예에 비해 최대지연이 대략 (1/2)이 된다.
이상에서 설명한 본 발명의 실시예는 본 발명을 단지 설명하기 위한 것으로서, 본 실시예에 의하여 본 발명의 권리범위가 한정되는 것은 아니다. 따라서 다양한 변형이나 변경이 당업자 수준에서 가능하다. 본 발명의 권리범위는 후술하는 특허청구범위에 의하여 정하여진다.
이러한 본 발명에 의하면 첫째로 기존의 단일 집중식 먹스를 사용하는 경우와 비교해 인터커넥션의 개수가 M×N개에서 M개로 줄어든다. 이는 삼상태 기반의 버스의 경우와 동일한 개수이다. 이러한 인터커넥션 개수의 감소는 칩의 면적과 상호간섭으로 인한 지연을 줄일 수 있다는 장점이 있다. 둘째로, 신호 전달이 빨라지고 전력의 소모가 줄어든다. 삼상태 기반의 버스는 한 신호가 구동될 때 버스 전체의 부하를 보게 되며, 신호가 양방향으로 전달되게 된다. 이에 비해 본 발명에 의한 버스 구조는 신호의 전달이 한 방향으로만 전달되고, 또한 보이는 부하도 전달되는 방향의 부하만이 보이게 된다. 따라서 보이는 부하가 적어짐으로 인하여 전력의 소모가 줄어들게 된다. 셋째로, 타이밍 최적화를 구현할 수 있다. 신호의 전달이 한 방향으로만 이루어짐으로써 버스에 연결되는 위치에 따라 서로 다른 지연시간을 가지게 된다. 따라서 신호의 싱크(sink)에 가까운 곳에 작은 지연시간이 요구되는 데이터 소스를 배치함으로써 타이밍 최적화를 할 수 있다. 네째로, 추가적인 버퍼의 사용이 필요없다. 본 발명에 의한 버스 상에 놓이는 논리합 게이트는 기존의 버스들에서 인터커넥션의 지연을 줄이기 위해 사용하던 버퍼들이 하던 역할을 겸해서 수행하기 때문이다.

Claims (29)

  1. M개 또는 그 보다 작은 수의 출력 비트들을 갖는 N개의 데이터 소스들에게 데이터 싱크로의 공통적인 데이터 전달 경로를 제공하는 버스 시스템에 있어서,
    M개의 배선들과;
    상기 배선들과 상기 데이터 소스들 사이에 연결되는 N개의 버스 셀들을 포함하되,
    상기 버스 셀들 각각은 상기 데이터 소스들 중 대응하는 하나와 연결되고, 상기 버스 셀들 각각은 상기 대응하는 데이터 소스의 출력들을 상기 배선들 상으로 선택적으로 제공하는 논리 회로를 구비하는 것을 특징으로 하는 버스 시스템.
  2. 제1항에 있어서,
    상기 버스 셀들은 한번에 하나만의 데이터 소스가 상기 배선들 상으로 출력하도록 제어되는 것을 특징으로 하는 버스 시스템.
  3. 제1항에 있어서,
    상기 버스 셀들은 각각 상기 대응하는 데이터 소스의 출력의 각 비트를 상기 배선에 연결하는 M개 또는 그 보다 작은 수의 비트 연결 회로를 구비하며,
    상기 비트 연결 회로의 각각은
    상기 대응하는 데이터 소스의 일 비트의 데이터와 상기 대응하는 데이터 소스의 선택 여부를 지시하는 선택신호를 입력받아 그 논리곱 결과를 출력하는 논리곱 게이트와,
    상기 논리곱 게이트의 출력과 상기 일 비트에 대한 전단의 버스 셀의 출력을 입력받아 그 논리합 결과를 상기 비트에 대한 상기 버스 셀의 출력으로서 출력하는 논리합 게이트를 구비하는 것을 특징으로 하는 버스 시스템.
  4. 제1항에 있어서,
    상기 데이터 소스들 중 작은 지연시간이 요구되는 데이터 소스는 상기 버스 셀들 중 상기 데이터 싱크에 가까운 버스 셀에 연결되는 것을 특징으로 하는 버스 시스템.
  5. 제1항에 있어서,
    상기 데이터 소스들 중 작은 부하가 요구되는 데이터 소스는 상기 버스 셀들 중 상기 데이터 싱크에 가까운 버스 셀에 연결되는 것을 특징으로 하는 버스 시스템.
  6. M개 또는 그 보다 작은 수의 출력 비트들을 갖는 N개의 데이터 소스들에게 데이터 싱크로의 공통적인 데이터 전달 경로를 제공하는 버스 시스템에 있어서,
    M개의 배선들과;
    상기 배선들과 상기 데이터 소스들 사이에 연결되는 버스 셀들을 포함하되,
    상기 버스 셀들 각각은 상기 데이터 소스들 중 대응하는 하나 또는 그 보다 많은 수의 데이터 소스와 연결되고, 상기 버스 셀들 각각은 상기 대응하는 데이터 소스의 출력들을 상기 배선들 상으로 선택적으로 제공하는 논리 회로를 구비하는 것을 특징으로 하는 버스 시스템.
  7. 제6항에 있어서,
    상기 버스 셀들은 한번에 하나만의 데이터 소스가 상기 배선들 상으로 출력하도록 제어되는 것을 특징으로 하는 버스 시스템.
  8. 제6항에 있어서,
    상기 버스 셀들은 각각 상기 대응하는 데이터 소스의 출력의 각 비트를 상기 배선에 연결하는 M개 또는 그 보다 작은 수의 비트 연결 회로를 구비하며,
    상기 비트 연결 회로의 각각은
    상기 대응하는 데이터 소스의 일 비트의 데이터와 상기 대응하는 데이터 소스의 선택 여부를 지시하는 선택신호를 입력받아 그 논리곱 결과를 출력하는 M개 또는 그 보다 작은 수의 논리곱 게이트와,
    상기 논리곱 게이트의 출력과 상기 일 비트에 대한 전단의 버스 셀의 출력을 입력받아 그 논리합 결과를 상기 비트에 대한 상기 버스 셀의 출력으로서 출력하는 논리합 게이트를 구비하는 것을 특징으로 하는 버스 시스템.
  9. 제6항에 있어서,
    상기 데이터 소스들 중 작은 지연시간이 요구되는 데이터 소스는 상기 버스 셀들 중 상기 데이터 싱크에 가까운 버스 셀에 연결되는 것을 특징으로 하는 버스 시스템.
  10. 제6항에 있어서,
    상기 데이터 소스들 중 작은 부하가 요구되는 데이터 소스는 상기 버스 셀들 중 상기 데이터 싱크에 가까운 버스 셀에 연결되는 것을 특징으로 하는 버스 시스템.
  11. M개 또는 그 보다 작은 수의 출력 비트들을 갖는 N개의 데이터 소스들에게 데이터 싱크로의 공통적인 데이터 전달 경로를 제공하는 버스 시스템에 있어서,
    M개의 배선들과;
    상기 배선들과 상기 데이터 소스들 사이에 연결되는 (N/2)개의 버스 셀들을 포함하되,
    상기 버스 셀들 각각은 상기 데이터 소스들 중 대응하는 두개의 데이터 소스와 연결되고, 상기 버스 셀들 각각은 상기 대응하는 데이터 소스들 중 어느 하나의 출력들을 상기 배선들 상으로 선택적으로 제공하는 논리 회로를 구비하는 버스 시스템.
  12. 제11항에 있어서,
    상기 버스 셀들은 한번에 하나만의 데이터 소스가 상기 배선들 상으로 출력하도록 제어되는 것을 특징으로 하는 버스 시스템.
  13. 제11항에 있어서,
    상기 버스 셀들은 각각 상기 대응하는 두개의 데이터 소스의 출력의 각 비트를 상기 배선에 연결하는 M개 또는 그 보다 작은 수의 비트 연결 회로를 구비하며,
    상기 비트 연결 회로의 각각은
    상기 대응하는 두개의 데이터 소스 중 어느 하나의 일 비트의 데이터와 상기 어느 하나의 데이터 소스의 선택 여부를 지시하는 선택신호를 입력받아 그 논리곱 결과를 출력하는 제 1 논리곱 게이트와,
    상기 대응하는 두개의 데이터 소스 중 다른 하나의 일 비트의 데이터와 상기 다른 하나의 데이터 소스의 선택 여부를 지시하는 선택신호를 입력받아 그 논리곱 결과를 출력하는 제 2 논리곱 게이트와,
    상기 제 1 및 제 2 논리곱 게이트의 출력과 상기 일 비트에 대한 전단의 버스 셀의 출력을 입력받아 그 논리합 결과를 상기 비트에 대한 상기 버스 셀의 출력으로서 출력하는 논리합 게이트를 구비하는 것을 특징으로 하는 버스 시스템.
  14. 제11항에 있어서,
    상기 데이터 소스들 중 작은 지연시간이 요구되는 데이터 소스는 상기 버스셀들 중 상기 데이터 싱크에 가까운 버스 셀에 연결되는 것을 특징으로 하는 버스 시스템.
  15. 제11항에 있어서,
    상기 데이터 소스들 중 작은 부하가 요구되는 데이터 소스는 상기 버스 셀들 중 상기 데이터 싱크에 가까운 버스 셀에 연결되는 것을 특징으로 하는 버스 시스템.
  16. M개 또는 그 보다 작은 수의 출력 비트들을 갖는 N개의 데이터 소스들에게 데이터 싱크로의 공통적인 데이터 전달 경로를 제공하는 버스 시스템에 있어서,
    M개의 배선들로 이루어진 복수의 배선군들과;
    상기 배선군들 중 어느 하나와 상기 데이터 소스들 사이에 연결되는 N개의 버스 셀들과;
    상기 출력 비트 각각에 대한 상기 배선군들의 배선이 입력 단자에 연결되며, 논리합 연산을 출력하는 M개의 논리합 게이트들을 포함하되,
    상기 버스 셀들 각각은 상기 데이터 소스들 중 대응하는 하나와 연결되고, 상기 버스 셀들 각각은 상기 대응하는 데이터 소스의 출력들을 상기 배선들 상으로 선택적으로 제공하는 논리 회로를 구비하는 것을 특징으로 하는 버스 시스템.
  17. 제16항에 있어서,
    상기 버스 셀들은 한번에 하나만의 데이터 소스가 상기 배선들 상으로 출력하도록 제어되는 것을 특징으로 하는 버스 시스템.
  18. 제16항에 있어서,
    상기 버스 셀들은 각각 상기 대응하는 데이터 소스의 출력의 각 비트를 상기 배선에 연결하는 M개 또는 그 보다 작은 수의 비트 연결 회로를 구비하며,
    상기 비트 연결 회로의 각각은
    상기 대응하는 데이터 소스의 일 비트의 데이터와 상기 대응하는 데이터 소스의 선택 여부를 지시하는 선택신호를 입력받아 그 논리곱 결과를 출력하는 논리곱 게이트와,
    상기 논리곱 게이트의 출력과 상기 일 비트에 대한 전단의 버스 셀의 출력을 입력받아 그 논리합 결과를 상기 비트에 대한 상기 버스 셀의 출력으로서 출력하는 논리합 게이트를 구비하는 것을 특징으로 하는 버스 시스템.
  19. 제16항에 있어서,
    상기 데이터 소스들 중 작은 지연시간이 요구되는 데이터 소스는 상기 버스 셀들 중 상기 데이터 싱크에 가까운 버스 셀에 연결되는 것을 특징으로 하는 버스 시스템.
  20. 제16항에 있어서,
    상기 데이터 소스들 중 작은 부하가 요구되는 데이터 소스는 상기 버스 셀들 중 상기 데이터 싱크에 가까운 버스 셀에 연결되는 것을 특징으로 하는 버스 시스템.
  21. M개 또는 그 보다 작은 수의 출력 비트들을 갖는 N개의 데이터 소스들에게 데이터 싱크로의 공통적인 데이터 전달 경로를 제공하는 버스 시스템에 있어서,
    M개의 배선들로 이루어진 복수의 배선군들과;
    상기 배선군들 중 어느 하나와 상기 데이터 소스들 사이에 연결되는 버스 셀들을 포함하되,
    상기 버스 셀들 각각은 상기 데이터 소스들 중 대응하는 하나 또는 그 보다 많은 수의 데이터 소스와 연결되고, 상기 버스 셀들 각각은 상기 대응하는 데이터 소스의 출력들을 상기 배선들 상으로 선택적으로 제공하는 논리 회로를 구비하는 것을 특징으로 하는 버스 시스템.
  22. 제21항에 있어서,
    상기 버스 셀들은 한번에 하나만의 데이터 소스가 상기 배선들 상으로 출력하도록 제어되는 것을 특징으로 하는 버스 시스템.
  23. 제21항에 있어서,
    상기 버스 셀들은 각각 상기 대응하는 데이터 소스의 출력의 각 비트를 상기배선에 연결하는 M개 또는 그 보다 작은 수의 비트 연결 회로를 구비하며,
    상기 비트 연결 회로의 각각은
    상기 대응하는 데이터 소스의 일 비트의 데이터와 상기 대응하는 데이터 소스의 선택 여부를 지시하는 선택신호를 입력받아 그 논리곱 결과를 출력하는 M개 또는 그 보다 작은 수의 논리곱 게이트와,
    상기 논리곱 게이트의 출력과 상기 일 비트에 대한 전단의 버스 셀의 출력을 입력받아 그 논리합 결과를 상기 비트에 대한 상기 버스 셀의 출력으로서 출력하는 논리합 게이트를 구비하는 것을 특징으로 하는 버스 시스템.
  24. 제21항에 있어서,
    상기 데이터 소스들 중 작은 지연시간이 요구되는 데이터 소스는 상기 버스 셀들 중 상기 데이터 싱크에 가까운 버스 셀에 연결되는 것을 특징으로 하는 버스 시스템.
  25. 제21항에 있어서,
    상기 데이터 소스들 중 작은 부하가 요구되는 데이터 소스는 상기 버스 셀들 중 상기 데이터 싱크에 가까운 버스 셀에 연결되는 것을 특징으로 하는 버스 시스템.
  26. 복수의 데이터 소스를 연결하는 분산형 버스에 있어서,
    상기 복수의 데이터 소스와 각각 연결된 복수의 버스 셀을 포함하며,
    상기 복수의 버스 셀은 직렬로 연결되어 블록 체인을 형성하고,
    상기 버스 셀은 데이터의 각 비트에 대하여 비트 연결 회로를 갖으며,
    상기 비트 연결 회로는
    상기 버스 셀에 연결된 데이터 소스의 데이터와 상기 연결된 데이터 소스의 선택 여부를 가리키는 선택신호를 입력받아 그 논리곱 결과를 출력하는 논리곱 게이트와,
    상기 논리곱 게이트의 출력과 상기 비트에 대한 전단 버스 셀의 출력을 입력받아 그 논리합 결과를 상기 비트에 대한 상기 버스 셀의 출력으로서 출력하는 논리합 게이트를 구비하는 것을 특징으로 하는 분산형 버스.
  27. 복수의 데이터 소스를 연결하는 분산형 버스에 있어서,
    소정수의 데이터 소스를 구비한 복수의 데이터 소스군과,
    상기 복수의 데이터 소스군과 각각 연결된 복수의 버스 셀을 포함하며,
    상기 복수의 버스 셀은 직렬로 연결되어 블록 체인을 형성하고,
    상기 버스 셀은 데이터의 각 비트에 대하여 비트 연결 회로를 갖으며,
    상기 비트 연결 회로는
    상기 버스 셀에 연결된 데이터 소스의 데이터와 상기 연결된 데이터 소스의 선택 여부를 가리키는 선택신호를 각각 입력받아 그 논리곱 결과를 출력하는 상기 소정수의 논리곱 게이트와,
    상기 소정수의 논리곱 게이트의 출력과 상기 비트에 대한 전단 버스 셀의 출력을 입력받아 그 논리합 결과를 상기 비트에 대한 상기 버스 셀의 출력으로서 출력하는 논리합 게이트를 구비하는
    것을 특징으로 하는 분산형 버스.
  28. 복수의 데이터 소스를 연결하는 분산형 버스에 있어서,
    상기 복수의 데이터 소스와 각각 연결된 복수의 버스 셀이 직렬로 연결된 복수의 블록 체인과,
    데이터의 각 비트에 대하여 상기 복수의 블록 체인 각각의 말단 블록형성블록의 출력을 입력받아 그 논리합 결과를 출력하는 논리합 게이트를 포함하며,
    상기 버스 셀은 데이터의 각 비트에 대하여 비트 연결 회로를 갖으며,
    상기 비트 연결 회로는
    상기 버스 셀에 연결된 데이터 소스의 데이터와 상기 연결된 데이터 소스의 선택 여부를 가리키는 선택신호를 입력받아 그 논리곱 결과를 출력하는 논리곱 게이트와,
    상기 논리곱 게이트의 출력과 상기 비트에 대한 전단 버스 셀의 출력을 입력받아 그 논리합 결과를 상기 비트에 대한 상기 버스 셀의 출력으로서 출력하는 논리합 게이트를 구비하는
    것을 특징으로 하는 분산형 버스.
  29. 복수의 데이터 소스를 연결하는 분산형 버스에 있어서,
    소정수의 데이터 소스를 구비한 복수의 데이터 소스군과,
    상기 복수의 데이터 소스군과 각각 연결된 복수의 버스 셀이 직렬로 연결된 복수의 블록 체인과,
    데이터의 각 비트에 대하여 상기 복수의 블록 체인 각각의 말단 블록형성블록의 출력을 입력받아 그 논리합 결과를 출력하는 논리합 게이트를 포함하며,
    상기 버스 셀은 데이터의 각 비트에 대하여 비트 연결 회로를 갖으며,
    상기 비트 연결 회로는
    상기 버스 셀에 연결된 데이터 소스의 데이터와 상기 연결된 데이터 소스의 선택 여부를 가리키는 선택신호를 각각 입력받아 그 논리곱 결과를 출력하는 상기 소정수의 논리곱 게이트와,
    상기 소정수의 논리곱 게이트의 출력과 상기 비트에 대한 전단 버스 셀의 출력을 입력받아 그 논리합 결과를 상기 비트에 대한 상기 버스 셀의 출력으로서 출력하는 논리합 게이트를 구비하는
    것을 특징으로 하는 분산형 버스.
KR10-2001-0020385A 2001-04-17 2001-04-17 버스 시스템 KR100385231B1 (ko)

Priority Applications (2)

Application Number Priority Date Filing Date Title
KR10-2001-0020385A KR100385231B1 (ko) 2001-04-17 2001-04-17 버스 시스템
US10/059,813 US7778267B2 (en) 2001-04-17 2002-01-29 Bus system

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR10-2001-0020385A KR100385231B1 (ko) 2001-04-17 2001-04-17 버스 시스템

Publications (2)

Publication Number Publication Date
KR20020080672A KR20020080672A (ko) 2002-10-26
KR100385231B1 true KR100385231B1 (ko) 2003-05-27

Family

ID=19708348

Family Applications (1)

Application Number Title Priority Date Filing Date
KR10-2001-0020385A KR100385231B1 (ko) 2001-04-17 2001-04-17 버스 시스템

Country Status (2)

Country Link
US (1) US7778267B2 (ko)
KR (1) KR100385231B1 (ko)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100693753B1 (ko) * 2006-02-02 2007-03-12 엘지전자 주식회사 Ieee 1394/블루투스 브리지 장치 및 그 실행 방법

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH10254821A (ja) * 1997-03-14 1998-09-25 Canon Inc データ転送装置およびデータ転送方法
JPH1131031A (ja) * 1997-07-10 1999-02-02 Fuji Xerox Co Ltd バスモジュール
JP2000057084A (ja) * 1997-12-30 2000-02-25 Hyundai Electronics Ind Co Ltd マイクロプロセッサ―のデ―タ送受信方法
JP2000148674A (ja) * 1998-11-09 2000-05-30 Sharp Corp シリアルデータ伝送方法

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4475191A (en) * 1982-12-10 1984-10-02 At&T Bell Laboratories Distributed time division multiplexing bus
JPH06231074A (ja) 1993-01-29 1994-08-19 Nec Corp システムバスの多重アクセス方式
JPH06301643A (ja) 1993-04-15 1994-10-28 Fujitsu Ltd バス調停回路
US5590316A (en) 1995-05-19 1996-12-31 Hausauer; Brian S. Clock doubler and smooth transfer circuit
US7069359B1 (en) * 2000-04-03 2006-06-27 Intel Corporation Circuit and technique to stall the communication of data over a double pumped bus

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH10254821A (ja) * 1997-03-14 1998-09-25 Canon Inc データ転送装置およびデータ転送方法
JPH1131031A (ja) * 1997-07-10 1999-02-02 Fuji Xerox Co Ltd バスモジュール
JP2000057084A (ja) * 1997-12-30 2000-02-25 Hyundai Electronics Ind Co Ltd マイクロプロセッサ―のデ―タ送受信方法
JP2000148674A (ja) * 1998-11-09 2000-05-30 Sharp Corp シリアルデータ伝送方法

Also Published As

Publication number Publication date
KR20020080672A (ko) 2002-10-26
US20020150113A1 (en) 2002-10-17
US7778267B2 (en) 2010-08-17

Similar Documents

Publication Publication Date Title
US9411773B2 (en) First and second data communication circuitry operating in different states
US7915918B2 (en) Method and apparatus for universal program controlled bus architecture
US6834318B2 (en) Bidirectional bus repeater for communications on a chip
WO1987000292A1 (en) On chip test system for configurable gate arrays
US20230244630A1 (en) Computing device and computing system
US6683474B2 (en) Method and apparatus for communication using a distributed multiplexed bus
KR100385231B1 (ko) 버스 시스템
US6448810B1 (en) Bidirectional bus-repeater controller
US6393081B1 (en) Plural circuit selection using role reversing control inputs
US7446562B2 (en) Programmable semiconductor device
EP0929042B1 (en) Bus controller in a data processor
JP3317678B2 (ja) データの伝送および経路選択を制御する方法
US20050149798A1 (en) Semiconductor integrated circuit
KR19990042745A (ko) 레지스터 블록과 순차회로의 인터페이스

Legal Events

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

Payment date: 20130430

Year of fee payment: 11

FPAY Annual fee payment

Payment date: 20140430

Year of fee payment: 12

FPAY Annual fee payment

Payment date: 20150430

Year of fee payment: 13

FPAY Annual fee payment

Payment date: 20160429

Year of fee payment: 14

FPAY Annual fee payment

Payment date: 20170427

Year of fee payment: 15

FPAY Annual fee payment

Payment date: 20180430

Year of fee payment: 16

FPAY Annual fee payment

Payment date: 20190429

Year of fee payment: 17