KR20010023576A - 복잡한 집적회로 장치를 위한 재사용가능 모듈 - Google Patents

복잡한 집적회로 장치를 위한 재사용가능 모듈 Download PDF

Info

Publication number
KR20010023576A
KR20010023576A KR1020007002224A KR20007002224A KR20010023576A KR 20010023576 A KR20010023576 A KR 20010023576A KR 1020007002224 A KR1020007002224 A KR 1020007002224A KR 20007002224 A KR20007002224 A KR 20007002224A KR 20010023576 A KR20010023576 A KR 20010023576A
Authority
KR
South Korea
Prior art keywords
bus
data
module
coupled
interface circuit
Prior art date
Application number
KR1020007002224A
Other languages
English (en)
Other versions
KR100628994B1 (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 KR20010023576A publication Critical patent/KR20010023576A/ko
Application granted granted Critical
Publication of KR100628994B1 publication Critical patent/KR100628994B1/ko

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F30/00Computer-aided design [CAD]
    • G06F30/30Circuit design

Abstract

모듈을 상호접속하는데 요구되는 특수 목적 글루 로직을 설계할 필요성을 없애거나 감소시키기 위해 재사용가능한 모듈을 채택함으로써 집적회로 장치의 설계가 단순화된다. 기능 모듈은 버스에 의해 상호접속되고 규정된 버스 억세스 프로토콜에 따라 동작하는 인터페이스 회로를 포함한다. 바람직한 실시예에서, 버스 억세스는 장치내의 주모듈에 의해 제어될 수 있는 적응성 방식으로 중재된다. 다른 실시예에서는, 버스 중재가 요구되지 않는다. 각 기능 모듈의 동작은 주모듈의 제어하에 프로그램될 수 있다.

Description

복잡한 집적회로 장치를 위한 재사용가능 모듈{Reusable Modules for Complex Integrated Circuit Devices}
집적회로 설계 공정은 집적회로(IC) 복잡성의 급속한 성장과 보조를 맞추어 빠르게 발전되어 왔다. 소규모 집적회로 칩으로서 알려진 초기 IC 소자들은 비교적 적은 수의 로직 게이트를 포함하고 있다. 이후에, IC 기술이 진보함에 따라, 수백개의 로직 게이트를 포함하는 중간 규모의 집적회로 칩을 구현하는 것이 가능해졌다. 대규모 집적회로에 도달하면, 수천개의 로직 게이트들이 단일 칩상에 구현될 수 있게 된다.
IC의 복잡성이 증가함에 따라, IC 설계도 더욱 복잡해지고, 칩 설계자들의 설계 및 구현 활동을 보조할 수 있는 자동화 공정에 대한 관심이 증가하는 것으로 나타났다. 초기에 단일 칩이 수백개의 트랜지스터를 내포하도록 허용하는 전자 설계 자동화(EDA) 툴이 개발되었으며, 이들 툴은 계속해서 발전하여 초대규모 집적회로(VLSI)에 도달하게 되었다.
현재의 EDA 툴은 칩 설계자들이 칩을 하드웨어 기술 언어(HDL:Hardware Description Language)를 이용하여 추상적이고 기능적인 용어로 명시하고, HDL 설계 기술문(description)을 게이트-레벨 기술문으로 변환하고, 게이트 및 루트 연결 경로의 배치를 레이아웃하고, 칩 제조를 위한 마스크를 만들 수 있도록 허용한다. HDL의 예로는 게이트웨이 디자인 오토메이션사에 의해 개발된 Verilog HDL과 미국 국방성과 계약하여 개발된 VHSIC HDL(VHDL)이 있다.
이들 발표를 보면, VHDL 및 특히 Verilog HDL에 관해서는 논의되어 있지만, 다른 기술언어에 대해서는 언급되어 있지 않다. 여기에서 논의되는 대부분의 개념, 특히 본 발명의 개념은 이들 2개의 언어에 제한되지 않으며, 넓은 범위의 언어에 적용될 수 있다.
Verilog HDL은 설계자로 하여금 4개의 추상화(abstraction) 레벨, 즉, 기능 또는 알고리즘(행동 레벨), 데이터의 흐름(데이터 흐름 레벨), 게이트 및 상호접속(게이트 레벨), 또는 스위치, 스토리지 노드 및 이들 사이의 접속(스위치 레벨) 중 일부 또는 모두에서 기술되는 모듈에 관해 칩을 명시할 수 있도록 허용한다. 행동 레벨(behavioral level)은 최대 추상화 레벨이며 장치 구현의 세부사항과 무관하다. 스위치 레벨은 최소 추상화 레벨이며 장치 구현의 세부사항에 매우 의존적이다. 모듈은 일반적으로 계층적이며, 이것은 보다 높은 레벨의 보다 복잡한 모듈이 저레벨의 덜 복잡한 모듈을 하나 또는 그 이상 포함한다는 것을 의미한다. 일부 레벨에서, 모듈은 통상적으로 저장 레지스터, 멀티플렉서 또는 UART(Universal Asynchronous Receiver/Transmitter)과 같은 구성요소를 나타낸다.
Verilog HDL 및 HDL을 위한 많은 EDA 툴이 기능적 시뮬레이션 및 로직 합성(logic synthesis)을 포함하여 많은 설계 단계들을 자동화시켰다. 그러나, 전체 프로세스를 관리하고, 기능적 설계를 검증하고, 설계 요건이 달성되도록 보장하기 위해서는 수동적인 개입이 요구된다. 고속 연산, 작은 다이(die) 크기, 넓은 온도 범위 또는 저전력 요건과 같은 엄격한 요건을 만족해야 하는 칩을 설계하기 위해서는 상당한 수동적인 노력이 요구된다. 마이크로프로세서 및 RAM을 위한 칩은 통상적으로 최적의 성능을 실현하기 위해 수동으로 설계되어야 하는데, 그 이유는 자동화된 툴이 아직까지 충분히 양호하지 못하기 때문이다. 이것은 특히, 서브마이크론 기술체계(technology)에 해당되는데, 그 이유는 레이아웃 결정이 타이밍 특성을 좌우할 수 있기 때문이다.
VLSI 기술이 더욱 진보함으로써, 수백만개의 트랜지스터를 가진 칩을 제조할 수 있게 된다. 이러한 복잡성을 가진 회로는 하나의 메인 보드와 하나 또는 그 이상의 보조 보드상에서 이전에 구현되었던 완전한 시스템을 구현할 수 있다. 소위 시스템-온-칩(SOC) 및 다른 복잡한 장치들은 종종 특정 인터페이스 표준을 고수하지 않는 상이한 벤더로부터의 독점적인 모듈(소유권이 있는 모듈)(proprietary modules)을 통합한 것이며, 그러므로, 이러한 독점적인 모듈을 상호접속하기 위해 "글루 로직(glue logic)" 또는 인터페이스 회로가 수동으로 설계되어야 한다. 이러한 글루 로직을 설계하고 구현하는데 요구되는 시간과 노력은 하나의 칩을 설계하고 구현하는데 요구되는 시간과 비용을 증가시킨다.
본 발명은 일반적으로 집적회로 및 집적회로 설계 공정에 관한 것이다. 특히, 본 발명은 설계 및 구현에 필요한 시간과 비용을 감소시키기 위해 재사용가능 모듈을 사용하는 집적회로 및 집적회로 설계 공정에 관한 것이다.
도1은 집적회로 장치를 설계하고 제조하기 위한 프로세스의 고레벨 흐름도.
도2는 내부 버스에 결합된 다수의 모듈을 포함하는 집적회로 장치의 일실시예의 개략도.
도3a 내지 도3d는 집적회로 장치에 사용하기 위한 모듈의 몇몇 실시예의 개략도.
도4a 내지 도4d는 집적회로 장치에 사용하기 위한 모듈의 레지스터에 대한 어드레스 할당을 포함하는 가설 정보의 표를 도시한 도면.
도5a 내지 도5e는 본 발명에 따른 모듈의 일실시예에 있어서 레지스터의 비트 정의를 도시한 도면.
도6 내지 도8은 입출력 버스 상에서 기록 및 판독 연산을 수행하기 위한 가설 신호의 타이밍도.
도9는 본 발명에 따른 IC 장치가 연산을 위해 그 동안에 구성되고 프로그래밍되는, 시스템 리셋에 이어지는 가능한 시간 간격의 시퀀스를 도시한 도면.
도10 내지 도12는 모듈로/로부터의 데이터 전송을 제어하기 위한 가설 신호의 타이밍도.
도13은 중재를 필요로 하지 않고 포인트-투-포인트 접속을 통해 데이터 및 제어 신호를 전송하는 2개 모듈의 개략도.
도14a 내지 도14c는 데이터 버스 중재 모듈의 일실시예에 따른 예시적인 흐름도.
도15는 모듈들 사이의 다양한 접속을 예시하는 집적회로 장치의 일실시예의 개략도.
도16은 수개의 모듈의 선택된 구성요소들이 3상태 로직 접속이 아닌 버스 멀티플렉싱을 이용하는 일실시예에서의 복수의 입출력 판독 버스에 어떻게 결합될 수 있는지 보여주는 개략도.
도17은 수개의 모듈의 선택된 구성요소들이 버스 중재를 이용하지 않는 일실시예에서 복수의 데이터 버스에 어떻게 결합될 수 있는지 보여주는 개략도.
도18은 비디오 신호에 의해 전달되는 이미지를 처리하고 디스플레이하기 위한 본 발명에 따른 집적회로 장치를 포함하는 컴퓨터 시스템내의 주요 구성요소의 개략도.
본 발명의 목적은 집적회로내의 모듈을 상호접속하는 특수한 인터페이스 회로를 설계하는데 요구되는 수동적인 노력을 없애거나 또는 적어도 감소시키는 것이다. 이러한 목적은 하드웨어 설계자가 특수목적 글루 로직을 구현할 필요없이 사전-설계된 모듈을 재사용하도록 허용하는 본 발명의 기술을 실시함으로써 실현된다.
본 발명의 한 관점에 따르면, 집적회로 장치는, 상기 장치 외부에서 억세스가능한 다수의 전기적 접속수단; 상기 장치 내부에 다수의 전도 경로를 포함하는 버스; 제1 모듈; 및 상기 장치 내부의 하나 또는 그 이상의 제2 모듈을 포함하고, 여기서, 상기 제1 모듈은, 상기 버스에 연결되어, 버스-억세스 프로토콜에 따라 동작하는 제1 인터페이스 회로; 상기 제1 인터페이스 회로에 연결된 제1 데이터 경로 회로; 상기 제1 인터페이스 회로에 연결된 하나 또는 그 이상의 제1 레지스터; 상기 제1 레지스터 중 하나에 연결되고 상기 제1 데이터 경로 회로에 연결되어, 상기 제1 데이터 경로 회로를 제어하기 위한 제1 상태 머신; 및 상기 제1 데이터 경로 회로에 연결되고 상기 전기적 접속수단 중 하나 또는 그 이상의 접속수단에 연결된 제1 외부 인터페이스 회로를 포함하고, 상기 각각의 제2 모듈은, 상기 버스에 연결되어 상기 버스-억세스 프로토콜에 따라 동작하는 각각의 제2 인터페이스 회로; 상기 각각의 제2 인터페이스 회로에 연결된 각각의 제2 데이터 경로 회로; 상기 각각의 제2 인터페이스 회로에 연결된 하나 또는 그 이상의 각각의 제2 레지스터; 및 상기 각각의 제2 레지스터 중 하나에 연결되고 상기 각각의 제2 데이터 경로 회로에 연결되어 상기 각각의 제2 데이터 경로 회로를 제어하기 위한 각각의 제2 상태 머신을 포함한다.
본 발명의 다른 관점에 따르면, 장치 내부에 버스를 포함하는 집적회로 장치를 설계하기 위한 방법은, 하드웨어 기술 언어를 이용하여 상기 장치에 관한 제1 기술문(description) - 여기서, 상기 제1 기술문은 버스에 연결되어 버스 억세스 프로토콜에 따르는 상기 전자 장치 내부의 버스 인터페이스를 각각 포함하는 하나 또는 그 이상의 모듈을 묘사함 - 을 생성하는 단계; 상기 제1 기술문을 하나 또는 그 이상의 제2 기술문 - 여기서, 상기 각각의 제2 기술문은 상기 버스에 연결되어 상기 버스 억세스 프로토콜에 따르는 상기 장치 내부의 버스 인터페이스를 각각 포함하는 하나 또는 그 이상의 모듈을 묘사함 - 과 조합하여 상기 장치에 관한 제3 기술문을 얻는 단계; 상기 장치를 위한 설계 제한조건 및 구현 기술체계의 선택을 명시하는 단계; 및 상기 설계 제한조건 및 상기 구현 기술체계의 선택에 따라 상기 제3 기술문을 합성하여 상기 기술체계-의존 설계 스펙을 생성하는 단계를 포함한다.
본 발명의 또다른 관점에 따르면, 머신 판독가능 매체는 전자 장치를 위한 기술체계-의존 설계 스펙을 생성하기 위해 머신에 의한 해석을 위한 명령어들의 프로그램을 전달한다. 상기 명령어 프로그램은, 상기 장치 내부에 다수의 전도 경로를 포함하는 버스; 상기 버스에 연결되어 버스-억세스 프로토콜에 따라 동작하는 제1 버스 인터페이스 회로, 상기 제1 버스 인터페이스 회로에 연결된 제1 데이터 경로 회로, 상기 제1 버스 인터페이스 회로에 연결된 하나 또는 그 이상의 제1 레지스터, 상기 제1 레지스터 중 하나에 연결되고 상기 제1 데이터 경로 회로에 연결되어 상기 제1 데이터 경로 회로를 제어하기 위한 제1 상태 머신, 및 상기 제1 데이터 경로 회로에 연결되고 상기 장치 외부의 상기 전기적 접속수단 중 하나 또는 그 이상의 접속수단에 연결된 제1 외부 인터페이스 회로를 구비한 제1 모듈; 및 상기 버스에 연결되어 상기 버스-억세스 프로토콜에 따라 동작하는 각각의 제2 버스 인터페이스 회로, 상기 각각의 제2 버스 인터페이스 회로에 연결된 각각의 제2 데이터 경로 회로, 상기 각각의 제2 버스 인터페이스 회로에 연결된 하나 또는 그 이상의 각각의 제2 레지스터, 및 상기 각각의 제2 레지스터 중 하나에 연결되고 상기 각각의 제2 데이터 경로 회로에 연결되어 상기 각각의 제2 데이터 경로 회로를 제어하기 위한 각각의 제2 상태 머신을 각각 구비한 하나 또는 그 이상의 제2 모듈을 포함하는 것으로 상기 전자 장치를 묘사한다.
본 발명의 다양한 특징 및 그 바람직한 실시예는 다음의 설명 및 첨부도면을 참조함으로써 양호하게 이해될 것이다. 몇몇 도면에서, 유사한 참조번호는 유사한 구성요소를 나타낸다. 다음의 설명 및 도면의 내용은 단지 예로서 설명된 것이며, 본 발명의 범위를 제한하는 것으로 이해되어서는 안된다.
A. IC 장치 설계
1. 설계 프로세스의 개요
도1은 집적회로(IC) 장치를 설계하고 제조하기 위한 프로세스에서의 주요 액티비티의 고레벨 흐름도이다. 비록 다음의 설명에서는 이 프로세스의 많은 세부사항이 생략되지만, 본 발명이 이러한 프로세스에 어떻게 적용될 수 있는지 이해하기 위한 충분한 정보를 제공한다.
단계(1)에서, 설계자는 수행될 기능, 타이밍 제한조건, 동작 온도 범위, 및 IC가 제조될 다이 또는 기판의 최대 크기와 같은 항목을 포함하는 원하는 IC 장치에 대한 스펙(specification)을 개발한다.
단계(2)에서, Verilog HDL 또는 VHDL과 같은 하드웨어 기술 언어(HDL)를 이용하여, 설계자는 장치 구현의 세부사항에 다소 무관한 기능적인 용어로 IC 장치를 표현할 수 있다.
HDL 설계를 테스트하기 위한 테스트
신호 또는 테스트 벡터를 명시하기 위해 많은 HDL이 사용될 수 있다. HDL은 일반적으로 자기 디스크 또는 테이프와 같은 머신 판독가능 매체에 기록된다. 그러나, 본질적으로는 소정의 전자기 방사 형태에 의한 전송 및 광학 매체를 포함하여 HDL 표현을 전달하기 위해 어떠한 매체도 사용될 수 있다.
단계(3)에서, 설계자는 HDL 표현의 정확성을 검증한다. 이것은 종종 시뮬레이터에서 HDL 표현을 연습시행하기 위해 테스트 벡터를 이용하고, 다음에 그 시뮬레이션으로부터 얻어진 파형을 원하는 파형과 비교함으로써 이루어진다. 만일 시뮬레이션 결과가 수용불가능하면, 설계자는 단계(2)로 되돌아가서 HDL 표현을 변경하고, 다시 기능적 검증을 수행한다.
단계(3)에서의 기능적 검증이 성공적이면, 설계 프로세스는 단계(4)에서 계속되며, 여기서는 HDL 표현이 로직 합성에 의해 장치의 기술체계-의존 표현으로 변환되며, 이것을 여기서 "프리-레이아웃 게이트-레벨 네트리스트(pre-layout gate-level netlist)"로 부른다. 로직 합성은 타이밍 요건, 동작 온도 범위, 전력 제한조건 및 다이 크기와 같은 다양한 설계 제한조건을 고려하고, 또한, 기술체계의 선택을 고려한다. 기술체계의 선택이란 로직 합성에 의해 추상적인 HDL 표현을 어떻게 기술체계-의존 게이트-레벨 네트리스트의 요소로 변환할 것인가를 나타내는 일련의 프리미티브(primitives) 및 매크로(macros)를 의미하며, 때로는 셀 라이브러리(cell library)라고도 한다.
본 발명의 특정 의미로, 로직은 모듈로서 불리는 새로 설계된 HDL 엔티티 및 기존의 HDL 엔티티의 조합으로부터 합성될 수 있다. 예를 들어, 본 발명의 기술사상에 따라 개발된 모듈은 라이브러리에 저장되며, 새로운 IC 장치를 설계하기 위해 검색되어 다양한 방식으로 쉽게 조합될 수 있다. 재사용을 용이하게 하는 모듈의 다양한 실시예에 관해서는 보다 상세하게 후술한다.
단계(5)에서는 게이트-레벨 네트리스트의 기능적 검증이 수행된다. 만일 이러한 검증이 성공적이지 못하면, 프로세스는 단계(4)로 되돌아가서, 예를 들어, 일부 설계 제한조건이 변경되거나, 또는 프로세스는 단계(2)로 되돌아가서 HDL 표현이 변경될 수 있다.
단계(5)에서의 기능적 검증이 성공적이면, 설계 프로세스는 단계(6)에서 계속되어, 게이트 또는 셀들이 어떻게 구성되고 전도성 경로 또는 배선이 어떻게 루팅되는지 명시하는 물리적 기술문(physical description)을 유도하기 위해 프리-레이아웃 게이트-레벨 네트리스트가 처리되게 되며, 이러한 물리적 기술문을 여기서는 "포스트-레이아웃 게이트-레벨 네트리스트"로 부른다.
단계(7)에서, 타이밍 요건을 포함하여 IC 장치의 기능적 설계를 검증하기 위해 포스트-레이아웃 게이트-레벨 네트리스트의 시뮬레이션이 이용된다. 고성능 장치의 타이밍 검증은 레이아웃이 수행될 때까지는 완료될 수 없으며, 그 이유는 레이아웃 결정이 타이밍 특성을 좌우할 수 있기 때문이다. 이것은 서브마이크로 기술체계에서 특히 그렇다. 만일 타이밍 검증이 성공적이면, 프로세스는 단계(6)으로 되돌아가서 다양한 위치 및 루트 결정을 변경하거나, 또는 전술한 바와 같이 단계(4) 또는 단계(2)로 되돌아갈 수 있다.
2. 특징
본 발명은 장치내의 다양한 모듈을 상호접속하기 위한 "글루 로직"을 설계할 필요성을 감소시키거나 제거함으로써 IC 장치 설계 프로세스를 용이하게 한다. 이것은 특히 특정 인터페이스 표준을 고수하지 않는 벤더(vendor)가 공급하는 독점적인 모듈과 같은 이전에 설계된 모듈을 포함하는 장치 설계에 유용하다. 예를 들어, 어떤 벤더로부터의 VGA(Video Graphics Array) 어댑터를 위한 독점적인 모듈은 일련의 인터페이스 요건을 부과할 수 있으며, 다른 벤더로부터의 VRAM(video random access memory)을 위한 다른 독점적인 모듈은 다른 인터페이스 요건을 부과할 수 있다. 현재의 설계 방법에 따르면, 이들 2개의 모듈을 접속하기 위해 특수목적 회로나 또는 "글루 로직"을 설계해야 한다. 이와 같이 글루 로직을 설계해야 한다는 필요성은 새로운 IC 장치를 설계하고 제조하는데 요구되는 시간과 비용을 증가시킨다.
본 발명은 새로운 장치의 설계시 쉽게 조합될 수 있고 장치 기술체계 중 하나의 선택된 것으로부터 다른 것으로 쉽게 이식될 수 있는 재사용가능한 모듈을 제공한다. 비록 본 발명의 기술이 다양한 범위의 설계 기준을 실현하기 위해 적용될 수 있지만, 여기에 기재되는 실시예들은 다음의 특징, 즉, 수개의 모드 중 어떤 모드에서도 다중 동시 직접 데이터 전송을 제공할 수 있는 고성능 동기 버스, 프로그래머블 모듈, 공유 버스에 대한 지능형 버스 중재 또는 중재에 의한 버스로의 다중화 억세스, 중재없이 동작하는 모듈간 접속, 및 하나의 소스(source)로부터 2개의 수신지(destinations)로의 하나의 버스상에서의 동시 데이터 전송을 제공한다.
B. 장치의 구조
1. 장치의 개요
도2는 본 발명의 다양한 관점에 따른 IC 장치의 일실시예의 개략도이다. 이 실시예의 IC 장치(100)는 입출력(I/O) 버스(180) 및 데이터 버스(190)에 접속된 6개의 모듈(110-160)과 I/O 버스(180)에 접속된 데이터 버스 중재기(arbitrator)(170)를 포함하고 있다. 모듈의 개요 및 상세한 논의는 이하에서 제공된다.
I/O 버스(180)는 모듈을 프로그래밍하고 모듈의 상태를 얻기 위해 사용된다. 모듈은 그 모듈내의 하나 또는 그 이상의 레지스터 또는 저장 영역으로 정보를 기록함으로써 프로그램될 수 있다. 모듈에 대한 상태는 모듈내의 하나 또는 그 이상의 레지스터로부터 정보를 판독함으로써 얻어질 수 있다. 상태를 위한 요구는 인터럽트 또는 루틴 폴(routine polls)에 응답하여 발생할 수 있다.
I/O 버스(180)는 다양한 방식으로 구현될 수 있다. 그 중에서 일부 실시예만 언급된다. 제1 실시예에서는, I/O 기록 연산 및 I/O 판독 연산을 위한 어드레스 및 데이터를 전달하기 위해 하나의 I/O 버스가 사용된다. I/O 기록 연산은 모듈 레지스터로 데이터를 기록함으로써 모듈을 프로그래밍하기 위해 이용되고, I/O 판독 연산은 모듈 레지스터로부터 정보를 판독함으로써 모듈 상태를 얻기 위해 이용된다. I/O 버스에 의해 전달되는 어드레스는 데이터가 기록되거나(기록 연산), 그로부터 데이터가 판독될(판독 연산) 위치를 명시한다. 제2 실시예에서, I/O 버스는 별도의 I/O 데이터 버스와 I/O 어드레스 버스로 분할된다. I/O 데이터 버스는 모듈 레지스터로 기록될 정보(기록 연산) 또는 모듈 레지스터로부터 판독된 정보(판독 연산)를 전달하고, I/O 어드레스 버스는 판독 및 기록 연산을 위한 위치의 어드레스를 전달한다. 제3 실시예에서, I/O 버스는 3개의 버스, 즉, 기록 데이터 버스, 판독 데이터 버스 및 공유 어드레스 버스로 분할된다. 복수의 I/O 데이터 버스를 포함하도록 제2 및 제3 실시예를 변경함으로써 다른 실시예가 구현될 수 있다. 이와 같은 실시예들은 IC 장치 복잡성과 성능 사이에 트레이드 오프(tradeoff)를 나타낸다. 본 발명의 실시에 있어 특정 실시예가 중요한 것은 아니다.
데이터 버스(190)는 모듈로/로부터 데이터를 전송하기 위해 이용된다. 원리상, 본질적으로 데이터 전송을 위한 어떠한 프로토콜도 사용될 수 있다. 각각의 모듈은 데이터의 프로세서 및/또는 IC 장치(100)의 일부가 아닌 다른 장치로/로부터 데이터가 전달되는 포트로서 간주될 수 있다. 데이터 버스(190)도 역시 복수의 데이터 버스를 포함하여 다양한 방식으로 구현될 수 있다.
버스의 폭 및 수는 확장가능하며, 이것은 본 발명에 따른 IC 장치가 실용적인 폭으로된 실용적인 수의 버스를 가질 수 있다는 것을 의미한다. 원칙적으로, I/O 버스와 데이터 버스는 단일 버스에 의해 구현될 수 있다. 그러나, 이 실시예는 일반적으로 바람직하지 않은데, 그 이유는 모듈 프로그래밍, 모듈 상태 및 데이터 전송을 위한 버스 신호들 사이의 회선경쟁이 전반적인 장치 성능을 저하시키기 때문이다.
버스에 접속되는 각각의 모듈은 특정 프로토콜에 따라 동작하는 버스 인터페이스 회로를 포함한다. 도시된 실시예에서, 각 모듈의 버스 인터페이스는 I/O 버스(180)에 접속된 I/O 버스 인터페이스 회로를 포함하고 있으며, 이 회로는 I/O 버스-억세스 프로토콜에 따라 동작한다. 모듈(110-160)을 위한 버스 인터페이스는 데이터 버스(190)에 접속된 데이터 버스 인터페이스 회로를 포함하고 있으며, 이 회로는 데이터 버스-억세스 프로토콜에 따라 동작한다. 특정 프로토콜에 대해서는 보다 상세하게 후술한다. 그러나, 본 발명은 이러한 특정 프로토콜에 제한되지 않는다. 데이터 버스 억세스는 중재 모듈에 의해 제어된다. 본 발명의 범위를 벗어나지 않고 다양한 중재기법이 사용될 수 있으며, 일부 실시예에서는 버스 중재가 필요로 되지 않는다.
바람직한 실시예에서, IC 장치(100)를 위한 주모듈로 명명된 하나의 모듈은 예를 들어, (1) 파워-온 리셋, 하드웨어 리셋 및/또는 소프트웨어 리셋에 의해 발생되는 하나 또는 그 이상의 신호에 응답하여 모든 데이터 및 I/O 버스를 위한 라인들을 알려진 상태로 구동하는 기능, (2) IC 장치내의 다른 모듈을 프로그래밍하는 기능, 및 (3) IC 장치(100) 내부의 모듈과 IC 장치(100) 외부의 구성요소들 사이에서 정보 및 제어 신호의 흐름을 용이하게 하는 기능에 책임이 있다. 모듈들은 주모듈내의 로직에 의해 프로그램될 수 있다.
전력 관리 블록(107)과 클록(108)은 본 발명에 따라 IC 장치로 병합될 수 있는 구성요소의 예이다. 전력 관리 블록(107)은 IC 장치로 하여금 전력 소비를 제어할 수 있도록 허용하는 구성요소를 나타내고, 클록(108)은 클록 신호를 합성하는 구성요소를 나타낸다. 특정 애플리케이션에 있어서는 이들 구성요소 뿐만 아니라 다른 구성요소도 중요한 것일 수 있지만, 이들은 본 발명의 일부를 형성하지 않으며 본 발명을 실시하는데 있어 중요한 것이 아니다.
본 명세서에서, IC 장치의 내부 또는 외부에 있는 다양한 구성요소를 참조한다. 경계선(109)은 장치의 외부 또는 내부가 될 것으로 여겨지는 위치들 사이의 경계를 나타낸다. 일실시예에서, 이러한 경계는 IC 장치를 위한 회로가 제조되는 다이 또는 기판의 엣지이다. 다른 실시예에서, 이 경계는 통상적인 IC 패키지를 위한 밀폐된 엔클로저(enclosure )와 같은 엔클로저이다.
2. 모듈의 개요
a. 기본적인 구성
도3a는 기본 구성에 있어서 모듈 구성요소를 개략적으로 도시하고 있다. 도시된 바와 같이, 이 모듈(160)은 상태 머신(161), 하나 또는 그 이상의 레지스터(162), I/O 인터페이스(163), 데이터 인터페이스(165) 및 데이터 경로(166)를 구현하는 회로를 포함한다. 바람직한 실시예에서, 모듈들은 파워-온 리셋, 하드웨어 리셋 및/또는 소프트웨어 리셋에 의해 발생되는 하나 또는 그 이상의 신호에 응답하여 하나 또는 그 이상의 공지의 상태로 자체적으로 초기화된다.
(1) 데이터 인터페이스
데이터 인터페이스(165)는 데이터 버스(190)에 접속되며, 특정 데이터 버스 억세스 프로토콜에 따라 동작한다. 이것은 데이터 경로(166)에 접속되어 있으며, 데이터 경로(166)로 데이터를 전송하고 데이터 경로(166)로부터 정보를 수신하는 능력을 제공한다. 바람직한 실시예에서, 각각의 데이터 인터페이스는 2개의 입력 채널과 2개의 출력 채널을 제공할 수 있다. 모듈에는 다음과 같이 채널의 형태 및 수에 따른 형태(type)가 할당된다.
이 실시예에서, 입력 채널은 데이터를 수신하기 위한 어떤 요구도 발생하지 않는다는 점에서 수동적이다. 대신에, 데이터 소스로부터 특정 입력 채널을 통해 목적지가 되는 데이터 수신지로의 데이터 흐름의 개시를 제어하기 위해 적절한 프로토콜이 사용된다. 이러한 방식으로, 입력 채널은 데이터 소스의 신분을 알 필요가 없으며, 단지 그곳으로 전송되는 데이터를 수신하거나 전달하면 된다. 프로토콜은 입력 채널로 하여금 그것이 비지(busy) 상태에 있으며, 따라서 데이터를 수신할 수 없다는 것을 나타낼 수 있도록 한다. 이에 대해서는 보다 상세하게 후술한다. 한편, 출력 채널은 데이터 소스가 특정 수신지로 데이터를 전송하기 위한 요구를 발생한다는 점에서 능동적이다. 전술한 바와 같이, 데이터 흐름의 개시를 제어하기 위해 적절한 프로토콜이 사용된다.
본질적으로, 데이터 버스에 대한 데이터 인터페이스의 접속을 구현하기 위해 어떠한 기술체계도 사용될 수 있다. 예를 들어, 소정의 데이터 버스에 복수의 채널을 접속하기 위해 3상태 로직이 사용될 수 있다.
바람직한 실시예에서, 입력 및 출력 채널을 모두 갖고 있는 모듈을 위한 데이터 인터페이스 회로는 입력 채널과 출력 채널 사이에 "루프 백(loop back)" 회로를 포함한다. 이들 루프 백 회로는 다른 원하는 응답을 테스트하기 위해 이용될 수 있다. 예를 들어, 형태 "0" 모듈(표1 참조)에 있어서, 2개의 입력 채널은 각각 2개의 출력 채널 중 하나에 접속될 수 있다. 형태 "1" 모듈에 있어서, 하나의 입력 채널은 2개의 출력 채널 중 하나에 접속될 수 있다.
(2) 데이터 경로
데이터 경로(166)는 데이터가 하나 또는 그 이상의 소스로부터 하나 또는 그 이상의 수신지로 흐를 수 있도록 하고, FIFO 버퍼 또는 LIFO 버퍼, 단일-포트 또는 멀티-포트 RAM, 데이터 포맷 변환기, 멀티플렉서, 또는 본질적으로 모든 형태의 데이터 처리와 같은 많은 기능을 구현할 수 있다. 데이터 경로(166)의 기능은 모듈에 의해 서비스되는 특정 애플리케이션에 의존한다. 본 발명을 실시하는데 있어 특정 기능이 중요한 것은 아니다.
모듈(160)에 있어서, 데이터 경로(166)는 데이터 인터페이스(165)를 통해 데이터를 전송할 수 있는 회로를 포함하고, 또한, 데이터 인터페이스(165)를 통해 데이터를 수신하기 위한 회로를 포함할 수 있다. 이러한 수신 회로는 데이터 경로(166)가 본질적으로 판독 전용 메모리(ROM)로서 동작하는 경우에는 필요하지 않다. 다양한 입력 및 출력 구성에 대해서는 후술한다.
(3) I/O 인터페이스
I/O 인터페이스(163)는 I/O 버스(180)에 접속되며, 특정 I/O 버스 억세스 프로토콜에 따라 동작한다. 또한, 이것은 레지스터(162)에도 접속되며, 이들 하나 또는 그 이상의 레지스터로 정보를 기록하고 그로부터 정보를 판독하는 능력을 제공한다. 본질적으로는, I/O 버스에 대한 I/O 인터페이스의 접속을 구현하기 위해 어떠한 기술체계도 이용될 수 있다. 예를 들어, 복수의 인터페이스들이 특정 I/O 버스를 공유하도록 허용하기 위해 3상태 로직이 사용될 수 있다.
3상태 구현예는 그것이 IC 장치를 위한 다이를 작게 만들 수 있도록 한다는 점에서 긍정적이지만, 현재의 EDA 툴 및 기술의 관점에서는 일반적으로 바람직하지 않은데, 그 이유는 신뢰성있는 구현을 달성하기 위해 설계자 측에 상당한 숙련도를 요구하기 때문이다. 또한, 하나의 벤더 기술체계를 이용하여 신뢰성있는 구현을 달성하는 HDL 설계는 다른 벤더 기술체계를 이용하여 신뢰성있는 구현을 달성하지 못할 수도 있다.
이러한 어려움은 I/O 판독 연산 및 I/O 기록 연산이 동일한 버스를 공유하는 경우에 더욱 커진다. 예를 들어, 만일 잡음이 있는 I/O 버스 신호가 어드레스 디코딩 에러를 초래하여 2개의 모듈이 동시에 I/O 버스상에 신호를 구동시키도록 야기하면, 버스 인터페이스 회로를 통한 과도하게 높은 전류가 너무 일찍 IC 장치 장애를 유발하게 된다. 이러한 문제점은 후술하는 바와 같이 각 모듈의 고유의 어드레스 범위에 더하여 모듈 선택 라인을 이용함으로써 완화될 수 있다.
그러나, 이러한 모든 문제점들은 복수의 I/O 판독 버스를 멀티플렉싱함으로써 전부 피할 수 있다. 바람직한 실시예에서, I/O 버스는 하나의 I/O 기록 버스와 복수의 I/O 판독 버스로 분할된다. 이들 복수의 I/O 판독 버스를 멀티플렉싱함으로써 I/O 판독 버스 인터페이스 회로를 위한 3상태 로직을 없앨 수 있다. 이에 대해서는 보다 상세하게 후술된다.
또한, 모듈 선택 라인은 멀티플렉싱된 복수의 I/O 판독 버스와 함께 이용될 수 있다. 이러한 실시예에서, 모듈 선택 라인상의 신호는 불필요한 회로를 셧다운시키기 위해 이용될 수 있으며, 그에 따라 전력을 보존하게 된다. 또한, 이들 신호는 I/O 버스 상의 신호가 유효 정보를 나타내는 때를 표시하기 위해 이용될 수 있다. 예를 들어, I/O 기록 버스의 라인상의 신호가 안정되고 유효 데이터 및/또는 어드레스를 나타내는 경우에 각각의 모듈 선택 라인상에 적절한 신호가 표명(assert)될 수 있다.
(4) 레지스터
레지스터(162)는 모듈을 식별하고, 구성하고, 제어하고, 모니터하기 위해 이용되는 정보를 저장한다. 이에 대해서는 보다 상세하게 후술된다. 바람직한 실시예에서, 상태 머신(161)에 의해 레지스터(162)에 저장된 상태 정보는 I/O 판독이 수행된 이후에 자동적으로 소거된다.
본질적으로는, I/O 인터페이스와 레지스터 사이의 접속을 구현하기 위해 어떠한 기술체계도 사용될 수 있다. 바람직한 실시예에서, 레지스터는 맵핑된 I/O에 의해 억세스된다. 모듈들은 그 각각의 레지스터를 고유의 어드레스 범위로 맵핑하거나 또는 공통 어드레스 공간으로 맵핑할 수 있다. 인접해있는 어드레스가능한 위치 사이의 간격은 1 바이트, 2 바이트("반워드") 또는 4 바이트("워드")와 같이 편리한 데이터 길이가 될 수 있다. 어드레스 공간의 크기도 역시 편리한 크기가 될 수 있지만, 이것은 일반적으로 어드레스를 전달하는 I/O 버스 경로의 폭에 의해 제한을 받는다. 예를 들어, 8-도선 I/O 어드레스 버스는 28개, 즉 256개의 위치를 적절하게 명시할 수 있다. 8-도선 버스는 각각의 어드레스를 복수의 시분할 다중화된 부분들로 분할함으로써 더 많은 위치를 명시할 수 있다. 그러나, 이러한 기술은 복잡한 디코딩 로직을 필요로 하고 I/O 버스 성능에 나쁜 영향을 주기 때문에 바람직하지 못하다.
만일 어드레스 공간이 복수의 모듈에 의해 공유되면, 레지스터 위치를 명백하게 규정하기 위해 모듈이 식별되거나 선택되어야 한다. 이것은 여러 가지 방법으로 이루어질 수 있다. 한가지 방법은 어드레스에 부가하여 모듈 식별자를 제공하기위해 I/O 버스 억세스 프로토콜로 하여금 I/O 판독 및 I/O 기록 요구를 필요로 하도록 하는 것이다. 다른 방법은 각각의 모듈에 고유의 모듈 선택 라인을 제공하고, 다음에 적절한 라인상에 적절한 논리 레벨을 표명함으로써 의도한 모듈을 선택하는 것이다. 모든 모듈은 I/O 버스를 따라 전달되는 어드레스를 알 수 있지만, 선택된 모듈만이 응답하게 된다.
만일 어드레스 공간이 각 모듈의 고유 범위로 분할되어 있으면, 그 어드레스 자체가 모듈, 레지스터 및 그 레지스터내의 위치를 식별한다. 도4a는 8개의 모듈이 그 각각의 레지스터를 고유의 어드레스 범위로 맵핑할 수 있는 한가지 방법을 예시하고 있다. 각 모듈의 개시 어드레스는 그 모듈에 대한 "기준 어드레스(base address)"이다. 도면에 도시된 예에 따르면, 각각의 모듈에는 32개의 어드레스가능한 위치 중에서 고유의 공간이 할당된다. 본질적으로는, 각각의 모듈에 어떠한 양의 공간도 할당될 수 있지만, 일반적으로 2의 거듭제곱이 되는 다수의 어드레스가능한 위치를 나타내는 공간이 바람직하며, 그 이유는 그것이 각 모듈에 대한 어드레스 디코딩 로직을 단순화시키기 때문이다. 후술되는 바람직한 실시예에서, 각각의 어드레스가능한 위치는 기억장치의 1 바이트 또는 8개의 2진비트(binary-bits)에 대응한다. 총 어드레스 공간은 256개의 어드레스가능한 위치로 제한된다. 전술한 바와 같이, 어드레스 공간은 근본적으로 어떠한 크기로도 될 수 있다.
도면에 도시된 예에 따르면, 모듈 4의 어드레스 범위내에는 위치 100의 어드레스가 속해있다. 이 모듈의 기준 어드레스는 96이기 때문에, 위치 100은 모듈 4를 위한 레지스터에서 5번째 위치에 대응한다. 총 어드레스 공간의 다른 분할방식도 사용될 수 있으며, 본 발명을 실시하는데 있어 특정 분할방식이 중요한 것은 아니다. 소위 "최소-끝 포맷(Little-Endian format)"으로 저장된 정보를 도시하고 있는 도4b를 참조하면, 5번째 위치는 셀 B4에 대응한다.
도4c를 참조하면, 행(row) 21은 최소-끝 포맷으로 저장된 데이터를 나타낸다. 반대로, 행 22는 소위 "최대-끝 포맷(Big-Endian format)"으로 저장된 데이터를 나타낸다. 본 발명의 범위를 벗어나지 않고, 레지스터와 데이터 경로는 어느 포맷으로도 정보를 저장할 수 있다.
(5) 상태 머신
상태 머신(161)은 레지스터(162)에 접속되며, 데이터 경로(166)를 제어하기 위해 사용된다. 레지스터(162)는 상태 머신(161)을 위한 작업 저장공간을 제공할 수 있고, 상태 머신(161)의 연산을 프로그래밍하기 위한 파라미터를 제공할 수 있으며, 상태 머신(161)의 상태 또는 데이터 경로 처리 상태를 표시하는 정보를 저장할 수 있다. 데이터 경로(166)에 대해 설명한 바와 마찬가지로, 상태 머신(161)의 설계도 모듈에 의해 제공되는 특정 애플리케이션에 의존한다. 본 발명을 실시하는데 있어 특정 기능이 중요한 것은 아니다.
(6) 설계 고려사항
상태 머신(161), 레지스터(162) 또는 데이터 경로(166)와 같은 구성요소의 설계 및 레이아웃은 각각의 구성요소가 별도의 HDL 파일에 명시된 경우에 더욱 쉽게 최적화될 수 있다는 것을 이해할 것이다.
b. 외부 인터페이스를 가진 구성
도3b는 첫 번째 대안의 구성에 따른 모듈 구성요소의 개략도이다. 모듈(110)에 대해 도시된 바와 같이, 첫 번째 대안의 구성은 기본적인 구성의 모든 구성요소를 구현하는 회로를 포함하고 있다. 이러한 기본적인 구성에 대한 설명이 첫 번째 대안의 구성에도 적용된다.
외부 인터페이스(117)는 IC 장치(100) 외부로부터 억세스가능한 접속에 결합되며, 외부 장치로/로부터 신호를 전송하고 수신하기 위한 능력을 제공한다. 외부 인터페이스(117)는 외부 장치와의 통신을 위해 필요한 신호 레벨 및 시그널링 프로토콜에 따른다.
후술되는 실시예에서, 주모듈의 외부 인터페이스(117)는 PCI(Peripheral Component Interconncet) 로컬 버스와 같은 컴퓨터 버스와 인터페이스하는 것을 가정한다. 외부 인터페이스의 설계는 애플리케이션에 의존하며, 본질적으로는, ISA(Industry Standard Architecture) 버스에 대한 인터페이스, SDRAM에 대한 억세스, VGA 디스플레이 장치로의 출력, USB(Universal Serial Bus) 및 IEEE 1394 링크를 통한 통신과 같은 어떠한 형태의 접속도 포함할 수 있다.
몇몇 실시예에서 데이터 경로(116)가 단지 데이터 인터페이스(115)를 통해 데이터를 수신하여 그 데이터를 외부 인터페이스(117)로 전달하는 회로를 포함할 수 있다는 것을 제외하고, 데이터 경로(166)에 관한 설명은 일반적으로 데이터 경로(116)에도 적용된다.
c. 사용자 인터페이스를 가진 구성
도3c는 두 번째 대안의 구성에 따른 모듈 구성요소의 개략도이다. 모듈(130)에 대해 도시된 바와 같이, 두 번째 대안의 구성은 첫 번째 대안의 구성의 모든 구성요소를 구현하는 회로를 포함하고 있다. 이러한 첫 번째 대안의 구성에 관한 설명은 두 번째 대안의 구성에도 적용된다.
사용자 인터페이스(134)는 다른 모듈과의 직접 접속에 연결된다. 이 인터페이스는 다른 모듈과의 통신을 위해 필요한 신호 레벨 및 시그널링 프로토콜에 따른다. 사용자 인터페이스 및/또는 데이터 경로는 모듈간 통신을 행하는데 필요한 처리를 수행하기 위한 상태 머신을 포함한다는 것을 이해할 것이다.
사용자 인터페이스를 포함하지만 외부 인터페이스는 포함하지 않는 세 번째 대안의 구성도 역시 가능하다. 이러한 세 번째 대안의 구성은 어떠한 형태로도 예시되지 않았으며, 후술되는 예들 중 어느 것에도 포함되지 않는다.
d. 데이터 버스 중재 모듈
도3d는 데이터 버스 억세스 중재 모듈의 일실시예의 개략도이다. 도시된 바와 같이, 이 중재 모듈(170)은 하나 또는 그 이상의 레지스터(172), I/O 인터페이스(173) 및 중재 상태 머신(176)을 구현하는 회로를 포함한다. 바람직한 실시예에서, 중재 모듈(170)은 다른 모듈에 대해 전술한 바와 유사한 방식으로 하나 또는 그 이상의 리셋 신호에 응답하여, 레지스터를 소거하고 그 자체를 하나 또는 그 이상의 공지의 상태로 초기화한다.
(1) I/O 인터페이스
I/O 인터페이스(173)는 I/O 버스(180)에 접속되며, 특정 I/O 버스 억세스 프로토콜에 따라 동작한다. 이것은 레지스터(172)에도 접속되며, 이들 레지스터 중 하나 또는 그 이상의 레지스터로/로부터 정보를 기록하고 정보를 판독하는 능력을 제공한다. 본질적으로는, 다른 모듈에 대해 전술한 바와 같이 I/O 버스에 대한 I/O 인터페이스의 접속을 구현하기 위해 어떠한 기술체계도 이용될 수 있다.
(2) 레지스터
레지스터(172)는 중재 모듈을 식별, 구성, 제어 또는 모니터하기 위해 이용되는 정보를 저장한다. 바람직한 실시예에서, 레지스터에 저장된 상태 정보는 I/O 판독이 수행된 이후에 자동적으로 소거된다.
본질적으로는, 다른 모듈들에 대해 전술한 바와 같이, I/O 인터페이스와 레지스터 사이의 접속을 구현하기 위해 어떠한 기술체계도 사용될 수 있다. 예를 들어, 각 모듈의 레지스터를 고유의 어드레스 범위로 맵핑하는 실시예에 있어서, 중재 모듈 레지스터는 도4a에 도시된 모듈 8에 대한 범위와 같은 미사용 어드레스 범위로 맵핑될 수 있다. 인접해있는 어드레스가능한 위치들 사이의 간격은 전술한 바와 같이 편리한 데이터 길이가 될 수 있다. 본 발명을 실시하는데 있어 특정 어드레싱 방식이 중요한 것은 아니다.
(3) 중재 상태 머신
데이터 버스 중재 모듈(170)은 모듈 우선순위 방식을 이용하든지 또는 라운드-로빈 시퀀스 방식을 이용하는 것과 같이 본질적으로는 어떠한 중재 기술도 이용할 수 있다. 모듈은 가장 적절한 중재 방법을 적응적으로 선택하도록 설계될 수 있으며, 그 레지스터를 통해 프로그램될 수 있다. 바람직한 실시예에서, 중재 모듈(170)은 다양한 범위의 장치에 사용될 수 있는 일반적인 설계에 따라 구현되는 것이 아니라, 특정 IC 장치에 맞추어진 특수한 설계에 따라 구현된다. 일반적인 설계는 대체적으로 크고 속도가 느리기 때문에 바람직하지 못하다.
C. 바람직한 실시예
이제, 본 발명의 다양한 관점을 보다 명확하게 설명하기 위해 바람직한 실시예 및 그 변형예에 관해 상세하게 설명한다. 바람직한 실시예 및 그 변형예는 단지 본 발명이 실시될 수 있는 방법의 몇몇 예에 불과하다. 또한, 여기서 설명되는 실시예들의 다양한 특징은 서로 독립적이며, 유용한 조합으로 실시될 수도 있다는 것을 이해해야 한다.
바람직한 실시예에 따르면, IC 장치는 복수의 내부 버스를 포함한다. 직접 데이터 전송은 중재에 의해 제어되며, 4개의 32-비트 데이터 버스상에서 4개의 전송 모드중 하나로 수행될 수 있다. I/O 버스는 I/O 기록 데이터 버스, I/O 판독 데이터 버스 및 I/O 어드레스 버스로 나누어진다. 한 변형예에서는 4개의 별개의 I/O 판독 데이터 버스가 사용된다. 소정의 모듈 쌍 사이의 직접 접속은 2개의 2-비트 버스에 결합된 사용자 인터페이스 회로를 통해 이루어질 수 있다.
IC 장치는 주기능 모듈, 데이터 버스 중재 모듈 및 6개의 다른 기능 모듈을 포함한다. 각각의 기능 모듈에는 1과 7 사이의 고유 번호가 할당된다. 번호 1이 할당된 주기능 모듈은 PCI 버스에 접속된 외부 인터페이스를 가진 형태 0 모듈(2개의 데이터 입력 채널과 2개의 데이터 출력 채널)이다. 이 주기능 모듈은 시스템 리셋 신호에 응답하여 모든 데이터 버스 및 I/O 버스를 위한 라인들을 공지의 상태로 구동시킬 책임이 있다. 전술한 바와 같이, 본 발명은 버스의 특정 형태에 제한되지 않으며, 버스를 갖고 있지 않은 시스템에서도 실시될 수 있다.
모든 다른 기능 모듈은 표1에서 전술한 바와 같이 데이터 입력 채널과 데이터 출력 채널의 8개의 조합중에서 하나를 가질 수 있으며, 후술되는 레지스터에 대한 비트 정의에 따르면, 데이터 출력 채널의 총 수는 12를 넘지 않도록 제한되고, 데이터 입력 채널의 총 수는 10을 넘지 않도록 제한된다. 각각의 기능 모듈은 최대 8개의 4-바이트 레지스터를 포함할 수 있으며, 이들 레지스터 도4a에 도시된 바와 같이 고유의 어드레스 범위로 맵핑된다. 모듈 8을 위한 범위는 예약되어 있으며, 중재 모듈내의 레지스터를 위해 사용될 수 있다. 전술한 바와 같이, 이 특정 실시예는 단지 예로서 제공된 것이다.
1. 레지스터 이용
전술한 바와 같이, 각 모듈을 위한 레지스터는 도4a에 도시된 범위에 따라 공통 어드레스 공간의 고유의 어드레스 범위로 맵핑된다. 각 모듈에 할당된 번호는 그 레지스터가 맵핑되는 어드레스 범위를 결정한다. 예를 들어, 도4a를 참조하면, 모듈 5를 위한 어드레스 범위는 128부터 159까지이다. 각 모듈을 위한 어드레스 공간은 각각 4개의 바이트로된 8개의 레지스터로 배치된다. 각각의 레지스터는 도4b에 도시된 바와 같이 최소-끝 포맷으로 정보를 저장한다. 레지스터내의 정보는 개별 바이트, 2-바이트 반워드 또는 4-바이트 워드로서 억세스될 수 있다.
바람직한 실시예에 따르면, 첫 번째 2개의 레지스터의 내용(바이트 B0-B7)은 기능 모듈에 공통이 되는 규칙(convention)에 의해 정의된다. 각 모듈의 나머지 6개의 레지스터의 내용(바이트 B8-B31)은 그 각각의 모듈에 의해 요구되는 바대로 정의될 수 있다. 미사용 레지스터 및 그 레지스터내의 미사용 비트들은 논리 제로와 같은 소정의 논리 상태로 "고정배선(hardwired)"된다.
바이트 B0는 각 모듈에 고유한 모듈 식별자를 위해 예약된다. 이 바이트내의 비트들은 그것이 판독-전용이 되도록 고정배선된다. 모듈 식별자는 도5a에 도시된 바와 같이 모듈 번호, 모듈 형태 및 직접 데이터 전송(direct-data-transfer) 형태를 포함한다.
최하위 비트 b0-b2에 의해 표현되는 3-비트 모듈 번호는 1부터 7까지의 범위에 있는 각 모듈의 고유 번호이다. 전술한 바와 같이, 각각의 IC 장치에서 주기능 모듈은 모듈 1이다.
비트 b3-b5에 의해 표현되는 3-비트 모듈 형태는 데이터 입력 채널 및 데이터 출력 채널의 구성을 명시하는 2진수이며, 표1에 도시된 "모듈 형태"에 대한 10진수에 대응한다. 예를 들어, 1012의 3-비트 값은 데이터 입력 채널을 갖고 있지 않고 2개의 데이터 출력 채널만 갖고 있는 모듈 형태 5를 명시한다.
최상위 비트 b6와 b7에 의해 표현되는 2-비트 직접 데이터 전송 형태는 각각의 모듈이 데이터 소스로서 작용할 때 사용하게 될 직접 데이터 전송의 형태를 명시한다. 형태 4 모듈과 같이, 데이터 출력 채널을 갖고 있지 않은 기능 모듈들은 이들 비트를 논리 제로로 고정배선할 수 있다. 각각의 직접 데이터 전송 형태에는 데이터 버스 중재를 위한 우선순위가 부여된다. 다음의 표2에는 직접 데이터 전송 형태에 대한 비트값이 도시되어 있다.
형태 "STRM"은 직접 데이터 전송 소스에 의해 제어되는 가변수의 바이트를 전송한다. 그러나, 이 실시예에 있어서 전송은 128개의 패킷으로 제한된다. 각각의 패킷은 데이터 버스의 각각의 도선에 대해 1 비트씩 전달할 수 있다. 각각의 패킷은 32 비트의 워드를 전달할 수 있다. 형태 "PKT16"은 16개의 패킷을 전송하고, 형태 "PKT8"은 8개의 패킷을 전송한다. 형태 "SNGL"은 단일 패킷을 전송한다. 중재 우선순위에 대해서는 후술한다.
첫 번째 레지스터의 바이트 B1-B3는 도5b에 도시된 바와 같이, 직접 데이터 전송 연산을 위해 사용될 하나 또는 그 이상의 모듈 타겟 식별자를 위해 예약된다. 이들 바이트내의 비트들은 프로그램될 수 있으며, IC 장치가 리셋될 때 제로로 셋트된다. 이들 바이트에서 특정 모듈에 필요로 되지 않는 비트들은 논리 제로로 고정배선될 수 있다.
이들 바이트 각각은 2개의 4-비트 타겟 식별자를 포함한다. 예를 들어, 바이트 B1의 최하위비트(비트 b8-b11)는 제1 타겟 식별자를 나타낸다. 바이트 B3의 최상위비트(비트 b28-b31)는 제6 타겟 식별자를 나타낸다. IC 장치 아키텍처가 정의된 이후에 각각의 모듈에 고유의 타겟 식별자가 할당된다. 이 실시예에 따르면, 각각의 데이터 출력 채널은 임의적인 방식으로 6개의 모듈에 접속될 수 있다. 또한, 데이터 출력 채널은 2개의 데이터 입력 채널에 동시에 접속될 수 있다.
제2 레지스터내의 바이트 B4-B7은 직접 데이터 전송 제어 비트를 위해 예약된다. 이들 바이트내의 비트들은 프로그램될 수 있으며, IC 장치가 리셋될 때 제로로 셋트된다. 이들 바이트에서 특정 모듈에 필요로 되지 않는 비트들은 논리 제로로 고정배선될 수 있다. 예를 들어, 형태 7 모듈은 오직 하나의 데이터 출력 채널만 갖고 있으며, 따라서 오직 하나의 데이터 채널에만 비트가 필요로 된다.
도5c에 도시된 바와 같이, 바이트 B4의 4개의 최하위비트(b0-b3)는 각각의 데이터 입력/출력 채널을 활성화 또는 비활성화시키기 위한 4개의 DATAE# 비트를 나타낸다. 바이트 B4의 4개의 최상위비트(b4-b7)는 각 데이터 채널 FIFO 버퍼내의 잔여 데이터를 플러시(flush)하기 위한 4개의 FLUSH# 비트를 나타낸다. 예를 들어, 비트 b0와 b4는 각각 채널 1에 대한 DATAE1과 FLUSH1을 나타낸다.
도5d에 도시된 바와 같이, 바이트 B5의 4개의 최하위비트(비트 b8-b11)는 각각의 데이터 입력/출력 채널을 리셋하기 위한 SWRST# 비트를 나타낸다. 4개의 최상위비트(b12-b15)는 각각의 데이터 채널에 대한 인터럽트 요구를 인에이블 또는 디스에이블시키기 위한 4개의 ENINT# 비트를 나타낸다. 예를 들어, 비트 b9와 b13은 각각 데이터 채널 2에 대한 SWRST2와 ENINT2를 나타낸다.
바이트 B6는 각각의 데이터 출력 채널에 대한 직접 데이터 전송 형태를 각각 명시하는 4비트의 2개의 셋트를 포함한다. 도5e에 도시된 바와 같이, 각 세트의 4비트에는 CHO#STRM, CHO#PKT16, CHO#PKT8 및 CHO#SNGL이 명명되고, 각각의 비트는 표2에 도시된 직접 데이터 전송 형태 중 하나에 대응한다. 예를 들어, 비트 b20-b23은 각각 데이터 출력 채널 2에 대한 CHO2STRM, CHO2PKT16, CHO2PKT8 및 CHO2SNGL을 나타낸다. 이 실시예에서, 바이트 B7은 미래의 사용을 위해 예약된다.
2. 신호 및 프로토콜
이제, 기능 모듈 및 중재 모듈에 의해 사용되는 신호 및 프로토콜에 대해 설명한다. 이 섹션에서의 표들은 각각의 신호에 대해 신호명, 신호폭 및 신호 형태를 보여주고 있다. 표내의 엔트리는 바람직한 실시예에 따른 최대 번호 및 폭을 나타낸다. 이들 신호의 번호 및 폭은 일반적으로 장치에 따라 변화하게 된다. 또한, 이들 신호중 일부는 몇몇 실시예에서 필요로 되지 않는다.
"폭(Width)"은 각 신호를 전달하기 위해 사용되는 도선 또는 전도 경로의 수를 나타낸다. 예를 들어, 데이터 버스 1(D1Bus)는 32개의 도선으로 구현되고, 시스템 리셋 라인(RESETn)은 하나의 도선으로 구현된다.
"형태"는 신호에 의해 전달되는 정보의 특성을 말한다. 현재의 I/O 버스 연산이 모듈 레지스터로 데이터를 기록하거나 또는 그로부터 데이터를 판독하기 위한 것인지 여부를 표시하기 위해 2개의 논리 상태 사이에서 토글링되는 RdWRn 신호를 제외하고, 모든 제어 신호는 액티브 로우(low)이다.
a. I/O 인터페이스
(1) 신호의 설명
다음의 표에는 I/O 버스와 관련된 신호들이 도시되어 있다.
주모듈은 다른 모듈을 프로그램하고 모듈 상태를 얻기 위해 I/O 버스를 제어한다. I/O 기록 연산 동안에, I/O 데이터 기록 버스 IOWBus는 모듈 레지스터로 기록될 데이터를 전달하고, I/O 어드레스 버스 IOABus는 데이터가 기록될 위치의 어드레스를 전달한다. I/O 판독 연산 동안에, I/O 데이터 판독 버스, IORBus는 모듈 레지스터로부터 판독된 데이터를 전달하고, I/O 어드레스 버스는 데이터가 판독된 위치의 어드레스를 전달한다. 바이트-인에이블 제어 신호 BEn은 특정 4-바이트 레지스터내의 어떤 바이트가 기록 또는 판독될 것인지를 나타낸다.
도4a를 참조하면, 모듈 5에서 레지스터에 대한 기준 어드레스는 128이다. 예를 들어, 어드레스 129에서의 I/O 기록 및 판독 연산은 모듈 5의 두 번째 4-바이트 레지스터내에서 이루어진다. 바이트-인에이블 제어 신호는 다음 표에 도시된 바와 같이 이 레지스터내의 어떤 바이트가 영향을 받는지를 나타낸다.
예를 들어, 11012로 셋트된 BEn 신호는 단지 바이트 1만이 영향을 받는다는 것을 나타내고, 00112로 셋트된 BEn 신호는 단지 바이트 2와 바이트 3만이 영향을 받는다는 것을 나타낸다.
(2) 신호 타이밍
이제, 도6을 참조하여 I/O 기록 연산을 위한 프로토콜에 대해 설명한다. 주모듈인 모듈 1은 기록될 데이터를 I/O 기록 데이터 버스 IOWBus(206) 상에 구동시키고, 데이터가 기록될 어드레스를 I/O 어드레스 버스 IOABus(204) 상에 구동시키고, 기록될 바이트 구성을 라인 BEn(205) 상에 구동시키고, 기록 연산을 표시하기 위해 라인 RdWRn(203)을 로우로 구동시킴으로써 I/O 기록 연산을 개시한다. 몇몇 실시예에서, 모듈 1은 적절한 모드 선택 라인 ModSeln(202)을 로우로 구동시킴으로써 원하는 모듈을 선택한다. 하나 또는 2개의 클록 사이클 이후에, 데이터가 기록된 모듈은 IORDYn(211)을 로우로 구동시킴으로써 기록 연산이 완료되었다는 것을 표시한다. 계속해서, 모듈 1과 선택된 모듈은 버스 및 라인이 그들 원래의 상태로 복귀하도록 한다. 도6에 도시된 프로토콜 및 다른 도면에 도시된 프로토콜에서, 이벤트는 시스템 클록 SClk(201)의 상승 엣지(rising edges)에 의해 트리거된다. 이러한 특징이 본 발명을 실시하는데 있어 중요한 것은 아니다.
이제, 도7을 참조하여 I/O 판독 연산을 위한 프로토콜에 대해 설명한다. 주모듈인 모듈 1은 데이터가 판독될 어드레스를 I/O 어드레스 버스 IOABus(204) 상에 구동시키고, 판독될 바이트 구성을 라인 BEn(205) 상에 구동시키고, 판독 연산을 표시하기 위해 라인 RdWRn(203)을 하이(high)로 구동시킴으로써 I/O 판독 연산을 개시한다. 몇몇 실시예에서, 모듈 1은 적절한 모드 선택 라인 ModSeln(202)을 로우로 구동시킴으로써 원하는 모듈을 선택한다. 하나의 클록 사이클 이후에, 데이터가 판독된 모듈은 요구한 데이터를 I/O 데이터 판독 버스 IORBus(207) 상으로 구동시키고, 계속해서 라인 IORDYn(211)을 로우로 구동시킴으로써 판독 연산이 완료되었다는 것을 표시한다. 계속해서, 모듈 1과 선택된 모듈은 버스 및 라인이 그들 원래의 상태로 복귀하도록 한다.
본 발명에 따라 구현된 IC 장치는 I/O 버스 연산을 위한 버스트 모드(burst mode)를 구현할 필요가 없지만, 그러나 본 발명은 그것을 지원할 수 있다. 다른 구현도 가능하지만, 여기서는 2가지 구현예에 대해 설명한다. 제1 구현예에 따르면, 모듈 1은 버스트가 완료될 때까지 I/O 어드레스 버스상의 어드레스를 증가시킴으로써 버스트 모드를 위한 요구에 응답한다. 제2 구현예에 따르면, 모든 모듈이 모듈 내부에 있는 어드레스 카운터를 증가시켜, 기록 및 판독이 정정 위치에서 수행되도록 한다. 바람직하게는, 버스트는 필요한 로직을 단순화시키기 위해 4 바이트를 넘지 않도록 제한된다.
이제, 도8을 참조하여 I/O 버스트-기록 연산을 위한 프로토콜에 대해 설명한다. 모듈 1은 기록될 데이터의 제1 패킷을 I/O 기록 데이터 버스 IOWBus(206) 상에 구동시키고, 제1 패킷이 기록될 어드레스를 I/O 어드레스 버스 IOABus(204) 상에 구동시키고, 기록될 바이트 구성에 대한 적절한 값으로 라인 BEn(205)을 구동시키고, 기록 연산을 표시하기 위해 라인 RdWRn(203)을 로우로 구동시킴으로써 I/O 버스트-기록 연산을 개시한다. 몇몇 실시예에서, 모듈 1은 적절한 모드 선택 라인 ModSeln(202)을 로우로 구동시킴으로써 원하는 모듈을 선택한다. 하나 또는 2개의 클록 사이클 이후에, 데이터가 기록된 모듈은 라인 IORDYn(211)을 로우로 구동시킴으로써 제1 패킷에 대한 기록 연산이 완료되었다는 것을 표시한다. 그 다음의 클록 사이클에서, 모듈 1은 후속 패킷을 I/O 기록 데이터 버스 IOWBus(206) 상에 구동시키고, 적절한 어드레스를 I/O 어드레스 버스 IOABus(204) 상에 구동시키고, 버스트 연산이 완료될 때까지 적절한 값을 라인 BEn(205) 상에 구동시킨다. 버스트 연산이 종료되면, 모듈 1과 선택된 모듈은 버스 및 라인이 그들 원래의 상태로 복귀하도록 한다.
(3) 변형예
바람직한 실시예의 제1 변형예에 있어서, IC 장치는 복수의 I/O 데이터 판독 버스를 이용한다. 각 모듈내의 각각의 I/O 인터페이스는 이들 버스중 하나에 접속된다. 만일 IC 장치가 설계될 때, 2개 또는 그 이상의 모듈에 대한 빈번한 I/O 판독 액티비티가 버스를 위해 경쟁할 가능성이 있는 것으로 알려지면, 이들 모듈은 경쟁 가능성을 감소시키기 위해 별도의 버스에 접속될 수 있다.
바람직한 실시예의 제2 변형예에 있어서, IC 장치는 오직 하나의 모듈에만 각각 접속된 복수의 I/O 데이터 판독 버스를 사용한다. 모든 I/O 데이터 판독 버스는 멀티플렉서에 접속되고, 이 멀티플렉서의 출력은 모듈 1의 I/O 인터페이스에 접속된다. 또한, 이 멀티플렉서는 각각의 기능 모듈에 대해 한 라인씩 복수의 모듈 선택 라인에 접속되며, 모듈 선택 라인의 상태에 응답하여 적절한 버스를 선택한다. 이러한 변형예는 도16에 개략적으로 도시되어 있으며, 간략하게 후술된다.
비록 I/O 기록 연산이 IC 장치의 정상적인 동작중에 모듈들을 프로그램할 수도 있지만, 대부분의 프로그래밍 연산은 시스템 리셋에 이어지는 초기의 기간 동안에 이루어지게 된다. 도9에는 한가지 가능한 연산 시퀀스가 도시되어 있다. 이 시퀀스에 따르면, 시스템은 시스템 리셋을 유발하는 이벤트에 이어지는 기간(221) 동안에 공지의 시스템 상태를 설정한다. 이후에, 모듈 1은 기간(222) 동안에 PCI 버스 연산을 위해 구성된다. 모듈 1이 구성된 이후에, 모듈 1은 IC 장치의 다른 모듈을 프로그램하고 버스 및 다른 라인들을 공지의 상태로 구동시키는 기간(223) 동안에 수행되는 프로세스를 개시한다. 이후에, 기간(224) 동안에 모듈들은 기능 모듈로/로부터 데이터가 전송되도록 유발하는 다양한 액티비티에 참여한다. 이러한 데이터 전송 액티비티에 대해서는 후술한다.
전술한 바와 같이, PCI 버스와 같은 특정 아키텍처 및 구현예를 참조한 것은 단지 예시적인 것이며, 본 발명을 실시하는데 있어 필수적인 것은 아니다.
b. 데이터 인터페이스
(1) 신호의 설명
다음의 표에는 데이터 버스와 관련된 신호들이 도시되어 있다.
데이터는 "소스" 모듈로부터 데이터 버스 D1Bus, D2Bus, D3Bus, D4Bus 중 하나를 따라 "수신지" 모듈로 전송된다. 각각의 데이터 전송에 앞서 소스 모듈에 의해 중재 모듈로 제공되는 요구가 선행한다. 이 요구는 수신지 모듈에 대한 5-비트 식별자 "ModID"와 소스 모듈의 데이터 출력 채널에 대응하는 요구 신호 REQn를 포함한다. ModID 버스의 5개 도선으로 구동되는 ModID는 수신지 모듈의 3-비트 모듈 번호와 소스 모듈이 어떤 전송 형태를 이용하고자 하는지를 나타내는 2-비트 직접 데이터 전송 형태로 구성된다.
바람직한 실시예에 따르면, IC 장치는 총괄하여 12개의 데이터 출력 채널을 가진 모듈을 포함할 수 있다. 각각의 출력 채널에는 중재 모듈로 ModID 신호를 전달하기 위한 5개 도선의 셋트가 할당되며, 그러므로, IC 장치는 모든 ModID 신호를 위해 60개의 전도 경로를 필요로 할 수 있다. 이들 도선은 총괄하여 ModID 버스로 불린다. 다음의 표에는 채널 번호 지정 및 ModID 버스 할당에 관해 도시되어 있다.
표기법 x:y는 x부터 y까지의 번호를 가진 버스내의 도체 또는 도선의 범위를 나타낸다. 예를 들어, [0:4]는 0부터 4까지 번호가 붙은 첫 번째 5개의 도체를 나타낸다.
REQn 및 ModID 신호에 응답하여, 중재 모듈은 어떤 입력 채널이 비지 상태가 아닌지 판단하기 위해 수신지 모듈의 하나 또는 2개의 입력 채널에 대응하는 BUSYn 라인을 검사하고, 또한, 데이터 전송을 수행하기 위해 데이터 버스가 이용가능한지 판단하기 위해 DBusBUSYn 라인을 검사한다. 만일 수신지 모듈의 입력 채널이 비지 상태가 아니고 버스가 이용가능하면, 중재 모듈은 소스 모듈의 출력 채널과 관련된 GNTn 라인을 로우로 구동시킴으로써 소스 모듈에 확인응답(acknowledges)하고, 입력 채널과 관련된 STARTn 라인을 로우로 구동시킴으로써 데이터 전송이 임박하다는 것을 수신지 모듈의 입력 채널에 통지한다. 중재 모듈은 소스 출력 채널 및 수신지 입력 채널 모두에게 이들 채널과 관련된 DBusID 라인상에 적절한 신호를 구동시킴으로써 신호들에 의한 데이터 버스의 선택을 알린다. 또한, 중재 모듈은 입력 채널과 관련된 DType 라인상에 적절한 신호를 구동시킴으로써 직접 데이터 전송 형태를 입력 채널에 알린다.
이 바람직한 실시예에 따르면, IC 장치는 총괄하여 10개의 데이터 입력 채널을 가진 모듈을 포함할 수 있다. 각각의 입력 채널과 각각의 출력 채널에는 중재 모듈로부터 DBusID 신호를 전달하기 위한 2-도선 전도 경로가 할당되며, 그러므로 IC 장치는 모든 DBusID 신호를 위해 44개의 전도 경로를 필요로 할 수 있다.
수신지 모듈이 STARTn 신호를 수신하면, 그것은 그것이 비지 상태라는 것을 표시하기 위해 적절한 BUSYn 라인을 로우로 구동시키고, DType 라인으로부터 수신되는 데이터 전송 형태에 따라 그 자체적으로 구성하고, 준비가 되면 적절한 DRDYn 라인을 로우로 구동시킨다. 소스 모듈이 GNTn 신호를 수신하면, 그것은 선택된 데이터 버스가 사용중에 있다는 것을 표시하기 위해 적절한 DBusBUSYn 라인을 로우로 구동시키고, 적절한 DRDYn 라인이 로우로 진행하는 것을 검출하면 데이터 전송을 시작한다. 데이터 전송이 완료되면, 소스 모듈은 적절한 DBusBUSYn 라인이 하이가 되도록하고, 수신지 모듈은 적절한 BUSYn 라인이 하이가 되도록 허용한다.
만일 데이터 버스가 이용가능하지 않거나, 또는 수신지 모듈의 모든 입력 채널이 비지 상태이면, 소스 모듈로부터의 요구는 모든 조건이 충족될 때까지 보류상태로 남아있게 된다. 만일 첫 번째 요구에 서비스하기 전에 하나 또는 그 이상의 다른 요구가 도달하면, 어떤 요구에 먼저 서비스할 것인지 중재하기 위해 하나 또는 그 이상의 방법이 이용될 수 있다. 이러한 중재에 관해서는 보다 상세하게 후술된다.
만일 어떤 모듈이 데이터 전송의 소스와 수신지 중간에 있으면, 그 중간 모듈은 전송되는 데이터를 저장할 필요가 없으며, 대신에 데이터를 "플라이-바이(fly-by)" 모드로 전송할 수 있다.
정상적으로, 데이터는 버스 클록 신호의 상승 엣지에서 전송되고, 후속 상승 엣지에서 수신된다. 일실시예에서, 내부 버스는 66 MHz의 클록 속도로 동작하며, 그러므로 각각의 32-비트 버스가 초당 264 MBytes의 속도로 데이터의 버스트를 전달할 수 있다. 바람직한 실시예에서, 상승 클록 엣지에서 데이터를 전송하도록 출력 채널을 프로그래밍하고 하강 클록 엣지에서 데이터를 수신하도록 입력 채널을 프로그래밍함으로써 데이터가 이 속도의 2배로 전송될 수 있다. 이러한 특징은 적응성이며, IC 장치의 내부 및/또는 외부에 부과되는 요건에 부합하도록 입력 및 출력 채널을 프로그래밍하는 것을 허용한다.
(2) 신호 타이밍
이제, 도10을 참조하여 하나의 입력 채널을 가진 수신지 모듈로 데이터 전송을 개시하기 위한 프로토콜에 관해 설명한다. 소스 모듈은 수신지 모듈의 식별자를 라인 ModID(233) 상에 구동시키고 라인 REQn(232)을 로우로 구동시킴으로써 데이터 전송을 개시하기 위한 허가를 요구한다. 그러면, 데이터 중재 모듈은 수신지 모듈의 데이터 입력 채널에 대한 적절한 라인 BUSYn(234)의 상태를 검사하고, DBusBUSYn 라인의 상태를 검사하여 데이터 버스의 이용가능성을 검사한다. 도면에 도시된 예에서는, 오직 하나의 라인 DBusBUSYn(235)에 대한 신호만이 도시되어 있다. 도시된 예에서, 수신지 모듈은 라인 GNTn(236)을 로우로 구동시키고 이용할 데이터 버스의 식별자를 라인 DBusID(237) 상에 제공함으로써 소스 모듈에 확인응답한다. 또한, 중재 모듈은 라인 STSRTn(238)을 로우로 구동시키고 지정된 데이터 전송 형태를 라인 DType(239) 상에 구동시킴으로써 수신지 모듈에 통지한다. 계속해서, 소스 모듈은 라인 DBusBUSYn(235)을 로우로 구동시키고, 수신지 모듈은 라인 BUSYn(234)을 로우로 구동시킨다. 수신지 모듈이 데이터를 수신할 준비가 되어 있으면, 그것은 라인 DRDYn(240)을 로우로 구동시키고, 그에 응답하여, 소스 모듈은 데이터 버스 DBus(241) 상에 전송할 데이터를 구동시킨다. 데이터 전송이 완료되면, 소스 및 수신지 모듈은 라인 DBusBUSYn(235) 및 BUSYn(234)이 각각 하이가 되도록 허용한다.
도11은 전술한 STRM이나 PKT8과 같은 데이터 전송 형태를 이용하여 복수의 데이터 패킷을 전송하기 위한 프로토콜을 도시하고 있다. 수신지 모듈이 라인 DRDYn(240)을 로우로 구동시킴으로써 그것이 준비가 되어 있다는 것을 신호하는 것에 응답하여, 소스 모듈은 P1으로 시작되는 데이터 패킷을 데이터 버스 DBus(241) 상에 구동시키기 시작한다. 이후에, 수신지 모듈은 라인 DRDYn(240)이 하이가 되도록 허용함으로써 그것이 패킷 수신을 계속할 수 없다는 것을 신호한다. 이에 응답하여, 소스 모듈은 데이터 전송을 중지한다. 수신지 모듈은 패킷 수신을 계속할 수 있게 되면, 라인 DRDYn(240)을 로우로 구동시키고, 이에 응답하여 소스 모듈은 데이터 전송을 다시 시작한다.
(3) 변형예
바람직한 실시예의 제1 변형예에 있어서, 두 입력 채널이 모두 데이터 수신에 이용가능한 경우에, 소스 모듈은 2개의 수신지 모듈의 입력 채널로 동시에 데이터를 전송하거나 또는 대안으로 하나의 수신지 모듈의 2개의 입력 채널로 동시에 데이터를 전송할 수도 있다. 설명을 용이하게 하기 위해, 여기서 2개의 수신지는 2개의 별도의 모듈을 말하며, 이와 동일한 원리가 하나의 모듈내의 별도의 입력 채널에도 적용된다는 것을 이해해야 한다. 이 변형예는 바람직한 실시예에 대해 전술한 바와 유사한 방식으로 수행될 수 있다. 차이점에 대해서는 후술한다.
2개의 수신지 모듈에 대한 이 변형예에 따르면, 적절한 REQn 라인을 표명(assert)하고, 한 클록 사이클 동안 ModID 버스의 적절한 도선 상에 제1 수신지 모듈의 5-비트 식별자를 구동시키고, 그 바로 다음의 클록 사이클 동안 ModID 버스 상에 제2 수신지 모듈의 5-비트 식별자를 구동시킨다. 만일 단지 하나의 수신지 모듈만 요구되면, 소스 모듈은 적절한 REQn 라인을 표명하고, 한 클록 사이클 동안 ModID 버스 상에 그 유일한 수신지 모듈의 5-비트 식별자를 구동시키고, 그 바로 다음의 클록 사이클 동안 ModID 버스 상에 5-비트 2진수 제로를 구동시킨다. REQn 라인이 로우로 진행하는 것에 응답하여, 중재 모듈은 제1 클록 사이클 동안 제1 수신지 모듈 식별자를 래치한다.
만일 중재 모듈이 오직 하나의 비-제로 수신지 모듈 식별자를 수신하면, 바람직한 실시예에 대해 전술한 바와 같이 프로토콜이 진행된다.
만일 중재 모듈이 2개의 비-제로 수신지 모듈 식별자를 수신하면, 중재 모듈은 2개의 모듈이 모두 비지 상태가 아닌 입력 채널을 갖고 있는지 판단하기 위해 두 모듈의 모든 입력 채널에 대한 BUSYn 라인을 검사하고, 소스 모듈로부터 2개의 수신지 모듈로 데이터를 전달하기 위해 버스가 이용가능한지 판단하기 위해 DBusBUSYn 라인을 검사한다. 만일 2개의 수신지 모듈과 적절한 데이터 버스가 이용가능하면, 중재 모듈은 소스 모듈에 확인응답하고, 바람직한 실시예에 대해 전술한 바와 유사한 방식으로 2개의 수신지 모듈 모두에게 통지한다.
만일 어떤 모듈이 이용가능하지 않거나 또는 이용가능한 적절한 데이터 버스가 없으면, 소스 모듈로부터의 요구는 모든 조건이 충족될 때까지 보류 상태로 남아 있게 된다. 중재에 대해서는 보다 상세하게 후술한다.
이제, 도12를 참조하여 각각 하나의 입력 채널을 가진 2개의 수신지 모듈로 데이터 전송을 개시하기 위한 프로토콜에 대해 설명한다. 소스 모듈은 라인 ModID(233) 상에 제1 수신지 모듈의 식별자를 구동시키고 라인 REQn(232)을 로우로 구동시킴으로써 데이터 전송을 개시하기 위한 허가를 요구한다. 데이터 버스 중재 모듈은 제1 수신지 모듈의 식별자를 래치한다. 후속 클록 사이클에서, 소스 모듈은 라인 ModID(233) 상에 제2 수신지 모듈의 식별자를 구동시킨다. 중재 모듈은 제1 및 제2 수신지 모듈에 대해 각각 BUSYn 라인(234-1,234-2)의 상태를 검사하고, DBusBUSYn 라인의 상태를 검사함으로써 데이터 버스의 이용가능성을 검사한다. 도면에 도시된 예에서는, 단지 하나의 라인 DBusBUSYn(235)에 대한 신호만 도시되어 있다. 도시된 예에서, 2개의 수신지 모듈 모두에 대한 입력 채널과 적절한 데이터 버스가 이용가능하며, 따라서, 중재 모듈은 라인 GNTn(236)을 로우로 구동시키고 라인 DBusID(237) 상에 이용할 데이터 버스의 식별자를 제공함으로써 소스 모듈에 확인응답한다. 또한, 중재 모듈은 STARTn 라인(238-1,238-2)을 로우로 구동시키고 DType 라인(239-1,239-2) 상에 지정된 데이터 전송 형태를 구동시킴으로써 수신지 모듈에 통지한다. 다음에, 소스 모듈은 라인 DBusBUSYn(235)을 로우로 구동시키고, 수신지 모듈들은 BUSYn(234-1,234-2)을 로우로 구동시킨다. 데이터 전송이 완료되면, 소스 및 수신지 모듈은 라인 DBusBUSYn(235) 및 BUSYn(234-1,234-2)이 하이가 되도록 허용한다.
데이터의 전송은 바람직한 실시예에 관해 전술한 바와 유사한 방식으로 수행될 수 있다. 이러한 방식에 있어서, 수신지 모듈은 각각의 DRDY 라인을 상승시킴으로써 소스 모듈로 하여금 데이터 전송을 중지하도록 할 수 있다. 바람직한 실시예의 대안의 실시예 또는 이러한 제1 변형예에 있어서, 수신지 모듈이 전송되는 것을 수신하기 위한 충분한 대역폭을 갖도록 보장함으로써 어떠한 DRDY 라인도 이용하지 않고 데이터 전송이 이루어질 수도 있다.
바람직한 실시예의 제2 변형예에 있어서는, 도13에 도시된 바와 같이, 소스 모듈(160)은 포인트-투-포인트(point-to-point) 방식으로 모듈에 접속된 전도 경로를 통한 버스 중재를 이용하지 않고 수신지 모듈(130)로 데이터를 전송할 수 있다. 이러한 변형예에 있어서, 데이터는 데이터 경로(196)를 통해 전송되고, 제어 신호는 경로(186,187)를 통해 교환된다.
이러한 제2 변형예에 따르면, 소스 모듈(160)은 전송이 임박했다는 것을 수신지 모듈(130)에 통지하기 위해 라인 REQn(186)을 로우로 구동시킨다. 만일 수신지 모듈(130)이 전송된 것을 수신하는데 이용가능하면, 그것은 라인 GNTn(187)을 로우로 구동시킴으로써 소스 모듈에 확인응답한다. 일실시예에서, 소스 모듈(160)은 이제 데이터 전송을 시작할 수 있게 된다. 다른 실시예에서, 소스 모듈(160)은 수신지 모듈(130)이 전송된 것을 수신할 준비가 되어 있다는 것을 표시하기 위해 라인 DRDYn(188)을 로우로 구동시킨 이후에 데이터 전송을 시작한다. 이러한 후자의 실시예에 있어서는, 수신지 모듈(130)이 라인 DRDYn(188)이 하이가 되도록 허용함으로써 소스 모듈(160)로 하여금 전송을 중지하도록 야기할 수 있다.
모듈은 이러한 제2 변형예에 따라 하나 또는 그 이상의 모듈을 결합할 수 있다. 또한, 이러한 제1 변형예에 따라 포인트-투-포인트 전송에 참여하는 모듈들은 바람직한 실시예 및/또는 제1 변형예에 따른 데이터 전송에 참여하기 위해 하나 또는 그 이상의 데이터 버스에 연결될 수 있다.
c. 데이터 버스 억세스 중재
(1) 중재의 개요
데이터를 전송하기 위한 2개 또는 그 이상의 요구가 특정 데이터 버스 또는 특정 수신지 모듈을 위해 서로 경쟁할 수 있다. 바람직한 실시예에서, IC 장치는 라운드-로빈 방식이나 우선순위 방식을 포함하여 수개의 중재 기술중 하나에 따라 경쟁중인 요구를 중재하기 위한 모듈을 포함한다. 전술한 바와 같이, 종종 일반적인 범용 설계를 이용하는 대신에 각각의 IC 장치를 위한 특수한 중재 모듈을 설계하는 것이 바람직할 수 있는데, 그 이유는 특수한 설계가 통상적으로 보다 작고 빠른 모듈을 실현하기 때문이다. 중재 모듈의 복잡성은 복잡한 로직을 구현하는 비용을 더욱 복잡한 중재 방식에 의해 달성될 수 있는 성능상의 이득과 평형을 맞추기 위해 조정될 수 있다.
이제, 바람직한 실시예의 제1 변형예에 대해 전술한 바와 같이, 2개의 입력 채널로 동시에 데이터를 전송하기 위한 요구들을 중재할 수 있는 중재 모듈의 구현예에 관해 설명한다. 이러한 설명에서, 용어 "요구 형태 1:1"은 하나의 수신지로 전송하기 위한 요구를 나타내고, 용어 "요구 형태 1:2"는 동일한 수신지 모듈의 2개의 입력 채널을 포함하여 2개의 수신지로의 동시 전송을 위한 요구를 나타낸다.
이 구현예는 다음의 규칙에 따라 중재한다.
* 중재 우선순위는 중재 모듈의 레지스터내의 프로그램가능 비트에 의해 선택가능한 2개의 방식에 의해 결정된다.
* 프로그램가능 비트가 1로 셋트되면, 중재 우선순위는 예를 들어, 1:1 또는 1:2와 같은 요구 형태와 예를 들어, STRM 또는 PKT8과 같은 데이터 전송 형태를 기반으로 한다.
* 프로그램가능 비트가 제로로 셋트되면, 중재 우선순위는 단지 요구 형태만을 기반으로 한다.
* 형태 1:2는 형태 1:1 요구 보다 높은 우선순위가 주어진다.
* 각각의 요구 형태내에서, 프로그램가능 비트가 1로 셋트되면, 우선순위는 표2에 도시된 바와 같은 데이터 전송 형태에 따라 할당된다. 만일 2개의 요구가 동일한 전송 형태를 갖고 있으면, 그 요구들에는 표5에 도시된 바와 같은 채널번호에 의해 우선순위가 할당된다.
* 각각의 요구 형태내에서, 프로그램가능 비트가 제로로 셋트되면, 우선순위는 표5에 도시된 바와 같은 채널 번호에 의해 할당된다.
본 발명을 실시하는데 있어 이러한 특정 중재 방식이 중요한 것은 아니며, 본질적으로는 어떠한 중재 형태도 사용될 수 있다.
(2) 중재의 일실시예를 위한 논리 흐름
도14a 내지 도14c는 이러한 규칙을 구현하는 흐름도를 도시하고 있다. 도14a를 참조하면, 단계(201)에서는 새로운 요구가 형태 1:2 요구인지 여부를 판단한다. 만일 1:2 형태 요구이면, 단계(202)에서 어떤 다른 보류중인 또는 큐잉된 요구가 형태 1:2를 갖고 있는지 여부를 판단한다. 만일 형태 1:2를 가진 다른 큐잉된 요구가 없으면, 그 새로운 요구는 단계(206)에서 "선택된 요구"로서 지정된다. 단계(207)에서, 선택된 요구의 소스 모듈은 확인응답을 받고, 수신 모듈에는 각각의 STARTn 신호에 의해 통지된다.
만일 단계(202)에서 형태 1:2를 가진 다른 큐잉된 요구가 있는 것으로 판단이 이루어지면, 단계(203)는 새로운 요구 및 다른 큐잉된 1:2 형태 요구가 동일한 수신지를 갖고 있는지 판단한다. 만일 동일한 수신지를 갖고 있지 않으면, 단계(204)에서, 소스 모듈로부터 수신지 모듈로 데이터를 전송하기 위해 버스가 이용가능한지를 판단한다. 만일 버스가 이용가능하면, 새로운 요구는 단계(206)에서 선택된 요구로서 지정되고, 계속해서 단계(207)에서 개시된다. 만일 단계(204)에서 버스가 이용가능하지 않은 것으로 판단이 이루어지면, 그 새로운 요구는 큐잉된다.
만일 단계(203)에서 새로운 요구 및 다른 큐잉된 요구가 동일한 수신지를 갖고 있는 것으로 판단이 이루어지면, 단계(211)에서 전술한 프로그램가능 비트가 셋트되어 있는지 판단한다. 만일 프로그램가능 비트가 셋트되어 있지 않으면, 단계(214)에서 라운드-로빈 방식으로 채널번호에 따라 큐잉된 요구 및 새로운 1:2 요구로부터 선택이 이루어진다. 만일 프로그램가능 비트가 셋트되어 있으면, 단계(212)에서 큐잉된 요구와 새로운 1:2 요구 중에서 최고 우선순위 데이터 전송형태를 판단하고, 이들 요구중에서 어떤 요구가 그런 데이터 전송 형태를 갖고 있는지 식별한다. 단계(213)에서는, 오직 하나의 요구가 이러한 최고 우선순위 데이터 전송 형태를 갖고 있는지 판단한다. 만일 오직 하나의 요구만이 존재하면, 단계(206)에서 이 요구를 선택된 요구로서 지정하고, 단계(207)에서 이 요구를 개시한다. 만일 하나 이상의 요구가 최고 우선순위 데이터 전송 형태를 갖고 있으면, 단계(214)에서 라운드-로빈 방식으로 채널번호에 따라 요구를 선택하고, 단계(214)에서 선택된 요구가 단계(207)에서 개시된다.
만일 단계(201)에서 새로운 요구가 형태 1:2가 아니고 형태 1:1인 것으로 판단이 이루어지면, 도14b에 도시된 바와 같이, 단계(222)에서 어떤 큐잉된 형태 1:2 요구가 존재하는지 판단한다. 만일 큐잉된 형태 1:2 요구가 존재하면, 단계(223)에서 새로운 요구와 큐잉된 형태 1:2 요구가 공통 수신지를 갖고 있는지 판단한다. 만일 이들 요구가 공통 수신지를 갖고 있으면, 단계(225)에서 새로운 요구를 큐잉한다.
만일 단계(222)에서 큐잉된 1:2 요구가 없는 것으로 판단이 이루어지거나, 또는 단계(223)에서 새로운 1:1 요구와 큐잉된 1:2 요구가 동일한 수신지를 갖고 있지 않은 것으로 판단이 이루어지면, 도14c에 도시된 바와 같이, 단계(232)에서 어떤 다른 큐잉된 요구가 형태 1:1인지 여부를 판단한다. 만일 형태 1:1인 다른 큐잉된 요구가 없으면, 새로운 요구는 단계(236)에서 선택된 요구로서 지정된다. 단계(237)에서, 선택된 요구의 소스 모듈은 확인응답을 받고, 수신지 모듈에는 STSRTn 신호에 의해 통지된다.
만일 단계(232)에서 다른 큐잉된 1:1 형태 요구가 존재하는 것으로 판단이 이루어지면, 단계(233)에서 새로운 요구와 다른 큐잉된 1:1 요구가 공통 수신지를 갖고 있는지 판단한다. 만일 공통 수신지를 갖고 있지 않으면, 단계(234)에서 소스 모듈로부터 수신지 모듈로 데이터를 전송하기 위해 버스가 이용가능한지 판단한다. 만일 버스가 이용가능하면, 새로운 요구는 단계(236)에서 선택된 요구로서 지정되고, 계속해서 단계(237)에서 개시된다. 만일 단계(234)에서 버스가 이용가능하지 않은 것으로 판단이 이루어지면, 새로운 요구는 큐잉된다.
만일 단계(233)에서 새로운 요구 및 다른 큐잉된 요구가 동일한 수신지를 갖고 있는 것으로 판단이 이루어지면, 단계(241)에서 전술한 프로그램가능 비트가 셋트되어 있는지 판단한다. 만일 프로그램가능 비트가 셋트되어 있지 않으면, 단계(244)에서 라운드-로빈 방식으로 채널 번호에 따라 큐잉된 요구와 새로운 1:1 요구로부터 선택한다. 만일 프로그램가능 비트가 셋트되어 있으면, 단계(242)에서 큐잉된 요구와 새로운 1:1 요구 중에서 최고 우선순위 데이터 전송 형태를 판단하고, 이들 요구중 어느 요구가 그러한 데이터 전송 형태를 갖고 있는지 식별한다. 단계(243)에서는 오직 하나의 요구만이 이러한 최고 우선순위 데이터 전송 형태를 갖고 있는지 판단한다. 만일 오직 하나의 요구만이 존재하면, 단계(236)에서 그 요구를 선택된 요구로서 지정하고, 단계(237)에서 이 요구를 개시한다. 만일 하나 이상의 요구가 최고 우선순위 데이터 전송 형태를 갖고 있으면, 단계(244)에서 라운드-로빈 방식으로 채널 번호에 따라 요구를 선택한다. 단계(244)에서 선택된 요구는 단계(237)에서 개시된다.
d. 사용자 인터페이스
다음의 표에는 사용자 인터페이스에 관련된 신호들이 도시되어 있다.
사용자 인터페이스는 전술한 I/O 버스 및 데이터 버스에 의해 충족될 수 없거나 또는 I/O 버스나 데이터 버스를 위해 경쟁하지 않고 모듈에 의해 교환되어야 하는 특수 목적을 위해 의도된 신호를 전송 및/또는 수신하기 위해 사용될 수 있다. 바람직한 실시예는 본질적으로는 어떠한 프로토콜에 의해서도 교환될 수 있고 어떠한 목적을 위해서도 이용될 수 있는 3개의 입력 신호와 3개의 출력 신호를 제공한다.
e. 시스템 신호
다음의 표에는 IC 장치 외부의 구성요소들에 의해 발생되는 시스템 신호가 도시되어 있다.
바람직한 실시예에서, 각각의 모듈을 구현하는 로직은 IC 장치 외부에서 발생되는 신호 SClk에 의해 클록킹(clocked)된다. 대안의 실시예에서는, IC 장치내의 로직의 일부 또는 전부가 예를 들어, IC 장치에서 내부적으로 발생되는 클록 신호와 같은 다른 신호에 의해 클록킹될 수 있다. 이러한 실시예는 IC 장치가 외부 클록 속도에 무관한 규정된 속도로 동작하도록 허용할 수 있다.
바람직한 실시예는 IC 장치가 자체적으로 리셋되어야 하는 때를 표시하기 위해 하나의 RESETn 신호를 이용한다. 예를 들어, 하나 또는 그 이상의 신호가 하드웨어, 소프트웨어 또는 파워-온 상태에 의해 야기되는 별개의 리셋 조건을 표시할 수 있다. 이러한 실시예에서, IC 장치는 특수한 애플리케이션 요건에 서비스하기 위한 리셋 조건의 형태에 따라 상이한 방식으로 자체적으로 리셋될 수 있다.
D. 추가적인 실시예
도15 내지 도17은 IC 장치(100)의 3가지 대안의 실시예에서의 특징을 개략적으로 도시하고 있다. 도15에 도시된 실시예는 전술한 바람직한 실시예와 상당히 유사하며, 도2에 도시된 IC 장치가 구현될 수 있는 한가지 방식을 나타낸다. 이 실시예에서, IC 장치(100)는 I/O 기록 버스(181), I/O 판독 버스(182) 및 2개의 데이터 버스(191,192)를 포함하고 있다. 하나의 I/O 판독 버스가 모든 모듈에 의해 공유되기 때문에, I/O 인터페이스는 3상태 로직을 이용하여 이 버스에 접속된 것으로 생각할 수 있다. 각 모듈의 각각의 데이터 입력 채널 및 각각의 출력 채널은 오직 하나의 데이터 버스에만 접속된다. 경로(179)는 모듈(130,150)을 사용자 인터페이스 회로를 통해 접속한다. 외부 인터페이스 회로는 장치의 외부로부터 억세스될 수 있는 전도 경로(101-104)에 접속된다.
도16은 하나의 I/O 기록 버스와 복수의 I/O 판독 버스에 의해 I/O 인터페이스 회로를 상호접속하기 위한 대안의 실시예를 도시하고 있다. I/O 인터페이스 회로와 직접 관련되지 않은 모듈 구성요소들은 간략성을 위해 도면으로부터 생략되었다. 이 실시예에서, I/O 기록 버스(181)는 모듈(110)로부터 다른 모듈로 정보를 전달한다. 모듈 선택 라인(202,205,206)은 모듈(110)이 모듈(120,150,160)을 각각 선택할 수 있도록 한다. 3개의 별도의 I/O 판독 버스(182-184)는 다른 모듈로부터 멀티플렉서(185)를 통해 모듈(110)내의 I/O 버스 인터페이스 회로로 정보를 전달한다. 멀티플렉서(185)에 의해 어떤 I/O 판독 버스가 선택되는지 제어하기 위한 라인이 모듈(110)을 위해 제공된다.
도17은 복수의 데이터 버스에 의해 데이터 인터페이스 회로를 상호접속하기 위한 대안의 실시예를 도시하고 있다. 데이터 인터페이스 회로와 직접 관련되지 않은 모듈 구성요소들은 간략성을 위해 도면으로부터 생략되었다. 이 실시예에서, 각각의 데이터 버스는 하나의 데이터 출력 회로와 2개를 넘지 않는 데이터 입력 회로에 접속된다. 예를 들어, 데이터 버스(191)는 모듈(110)의 데이터 출력 회로와 모듈(150)의 데이터 입력 회로에 접속된다. 데이터 버스(193)는 모듈(150)의 데이터 출력 회로와 모듈(110,120)의 데이터 입력 회로에 접속된다. 이 특정 실시예는 데이터 버스 중재를 필요로 하지 않는데, 그 이유는 데이터 출력 회로가 동일한 데이터 버스를 위해 결코 경쟁할 수 없기 때문이다. 이 실시예에서, 소스 모듈의 데이터 출력 회로는 도면에 도시되지 않은 경로를 따라 각각의 수신지 모듈에 통지함으로써 하나의 데이터 입력 채널 또는 2개의 데이터 입력 채널로 동시에 데이터를 전송할 수 있다.
E. 애플리케이션의 예
본 발명의 다양한 기술에 따라 구현되는 IC 장치는 다양한 범위의 애플리케이션 및 시스템에 이용될 수 있다. 예를 들어, 본 발명에 따른 IC 장치는 비디오 신호에 의해 전달되는 이미지를 처리하고 디스플레이하기 위한 컴퓨터 시스템에 포함될 수 있다. 도18은 이러한 시스템의 주요 구성요소들을 개략적으로 도시하고 있다. 도면에 도시된 구성요소나 시스템의 구조는 본 발명을 실시하는데 있어 중요한 것은 아니다.
도시된 예에 따르면, 시스템(300)은 마이크로프로세서와 같은 중앙 처리 장치(301), RAM과 같은 시스템 메모리(302), 기억장치 제어기(303) 및 I/O 제어기(305)에 접속된 ISA 버스와 같은 버스(307)를 포함하고 있다. 기억장치 제어기(303)는 자기 디스크 드라이브 또는 자기 테이프 드라이브와 같은 정보 기억장치(304)에 접속되어 그것을 제어한다. I/O 제어기(305)는 키보드, 마우스, 프린터, 모뎀 또는 네트워크 어댑터와 같은 입출력 장치(306)에 접속되어 그것을 제어한다. CPU(301)는 PCI 버스와 같은 버스(308)에도 접속되어 있다.
IC 장치(100)는 기능 모듈(110,120,130) 및 중재 모듈(170)을 포함하고 있다. 각각의 기능 모듈은 하나 또는 그 이상의 데이터 버스(190)에 접속된 데이터 인터페이스 회로를 갖고 있다. IC 장치(100)의 주모듈인 모듈(110)은 버스(308)에 접속된 외부 인터페이스를 갖고 있다. 각각의 기능 모듈(120,130,140)은 도시된 바와 같이 IC 장치 외부에 있는 비디오 장치들에 접속된 외부 인터페이스를 갖고 있다. 모듈(120)은 비디오 디스플레이(312)에 접속되고, 모듈(130)은 디지탈 카메라(313)에 접속되고, 모듈(140)은 비디오 메모리(314)에 접속되어 있다.
구성요소들이 IC 장치(100)의 내부에 있든지 또는 외부에 있든지 중요한 것은 아니다. 예를 들어, IC 장치(100)는 기억장치를 제어하기 위해 기억장치 제어기(303)와 등가의 기능 모듈을 포함할 수 있다. 또한, IC 장치(100)가 컴퓨터 시스템내에 병합되어 있는 것으로 도시한 것도 중요한 것은 아니다. 본 발명에 따른 IC 장치는 본질적으로 어떠한 형태의 전자 장치에도 이용될 수 있다.
본 발명은 디스플레이 어댑터의 특징에 관한 것이며, 따라서, 도1에 도시된 구성요소들 모두가 본 발명을 실시하는데 있어 요구되는 것은 아니다. 예를 들어, 본 발명의 관점을 포함하는 디스플레이 어댑터는 단지 CPU, 스위치나 키패드와 같은 소정의 입력장치에 접속된 입출력, RAM, 디스플레이 어댑터 및 디스플레이 장치를 포함하는 정보 처리 시스템에 이용될 수 있다.

Claims (34)

  1. 집적회로 장치에 있어서,
    (a) 그 외부에서 억세스가능한 다수의 전기적 접속수단을 가진 엔클로저;
    (b) 상기 엔클로저 내부에 다수의 전도 경로를 포함하는 버스;
    (c) 상기 엔클로저 내부의 제1 모듈; 및
    (d) 상기 엔클로저 내부의 하나 또는 그 이상의 제2 모듈
    을 포함하고,
    여기서, 상기 제1 모듈은,
    상기 버스에 연결되어, 버스-억세스 프로토콜에 따라 동작하는 제1 인터페이스 회로;
    상기 제1 인터페이스 회로에 연결된 제1 데이터 경로 회로;
    상기 제1 인터페이스 회로에 연결된 하나 또는 그 이상의 제1 레지스터;
    상기 제1 레지스터 중 하나에 연결되고 상기 제1 데이터 경로 회로에 연결되어, 상기 제1 데이터 경로 회로를 제어하기 위한 제1 상태 머신; 및
    상기 제1 데이터 경로 회로에 연결되고, 상기 전기적 접속수단 중 하나 또는 그 이상의 접속수단에 연결된 제1 외부 인터페이스 회로를 포함하고,
    상기 각각의 제2 모듈은,
    상기 버스에 연결되어, 상기 버스-억세스 프로토콜에 따라 동작하는 각각의 제2 인터페이스 회로;
    상기 각각의 제2 인터페이스 회로에 연결된 각각의 제2 데이터 경로 회로;
    상기 각각의 제2 인터페이스 회로에 연결된 하나 또는 그 이상의 각각의 제2 레지스터; 및
    상기 각각의 제2 레지스터 중 하나에 연결되고 상기 각각의 제2 데이터 경로 회로에 연결되어, 상기 각각의 제2 데이터 경로 회로를 제어하기 위한 각각의 제2 상태 머신을 포함하는
    집적회로 장치.
  2. 제 1 항에 있어서,
    상기 다수의 전도 경로 중 일부는 입력/출력(I/O) 버스를 형성하고, 상기 다수의 전도 경로 중 일부는 제1 데이터 버스를 형성하고,
    상기 제1 모듈에 있어서,
    상기 제1 인터페이스 회로는 상기 I/O 버스에 연결된 제1 I/O 인터페이스 회로와 상기 제1 데이터 버스에 연결된 제1 데이터 인터페이스 회로를 포함하고, 상기 제1 I/O 인터페이스 회로는 I/O 버스 억세스 프로토콜에 따라 동작하고, 상기 제1 데이터 인터페이스 회로는 데이터 버스 억세스 프로토콜에 따라 동작하고,
    상기 제1 데이터 경로 회로는 상기 제1 데이터 인터페이스 회로에 연결되고,
    상기 하나 또는 그 이상의 제1 레지스터는 상기 제1 I/O 인터페이스 회로에 연결되고,
    상기 각각의 제2 모듈에 있어서,
    상기 각각의 제2 인터페이스 회로는 상기 I/O 버스에 연결된 각각의 제2 I/O 인터페이스 회로와 상기 제1 데이터 버스에 연결된 각각의 제2 데이터 인터페이스 회로를 포함하고, 상기 각각의 제2 I/O 인터페이스 회로는 상기 I/O 버스 억세스 프로토콜에 따라 동작하고, 상기 각각의 제2 데이터 인터페이스 회로는 상기 데이터 버스 억세스 프로토콜에 따라 동작하고,
    상기 각각의 제2 데이터 경로 회로는 상기 각각의 제2 데이터 인터페이스 회로에 연결되고,
    상기 하나 또는 그 이상의 각각의 제2 레지스터는 상기 각각의 제2 I/O 인터페이스 회로에 연결된
    집적회로 장치.
  3. 제 2 항에 있어서,
    상기 I/O 버스는 I/O 판독 버스와 I/O 기록 버스를 포함하고, 상기 I/O 판독 버스는 상기 제2 모듈로부터 상기 제1 모듈로 신호를 전달하고, 상기 I/O 기록 버스는 상기 제1 모듈로부터 상기 제2 모듈로 신호를 전달하고, 여기서, 상기 제1 I/O 인터페이스 회로와 각각의 제2 I/O 인터페이스 회로는 3상태 접속수단을 이용하여 상기 I/O 판독 버스에 연결된
    집적회로 장치.
  4. 제 3 항에 있어서,
    상기 각각의 제2 I/O 인터페이스 회로는 상기 제1 I/O 인터페이스 회로에 연결된 각각의 모듈 선택 전도 경로에 연결된
    집적회로 장치.
  5. 제 3 항에 있어서,
    상기 각각의 제2 I/O 인터페이스 회로는 상기 I/O 버스에 의해 전달되는 어드레스의 각각의 범위를 디코딩하기 적합한 디코더를 포함하는
    집적회로 장치.
  6. 제 2 항에 있어서,
    상기 I/O 버스는 하나의 I/O 기록 버스와 다수의 I/O 판독 버스를 포함하고, 상기 I/O 기록 버스는 상기 제1 모듈로부터 상기 제2 모듈로 신호를 전송하고, 상기 각각의 I/O 판독 버스는 상기 각각의 제2 모듈로부터 상기 제1 모듈로 신호를 전달하기 위해 각각의 제2 모듈내의 상기 제2 I/O 인터페이스 회로에 연결되고, 여기서, 상기 제1 I/O 인터페이스 회로는 상기 다수의 I/O 판독 버스에 연결된 멀티플렉스 회로를 포함하는
    집적회로 장치.
  7. 제 2 항에 있어서,
    상기 장치는 다수의 상기 제2 모듈을 포함하고,
    상기 제1 데이터 버스는 실질적으로 서로 독립적인 다수의 제2 데이터 버스를 포함하고, 상기 각각의 제2 데이터 버스는 상기 제1 데이터 인터페이스 회로와 적어도 하나의 상기 제2 데이터 인터페이스 회로에 연결된
    집적회로 장치.
  8. 제 7 항에 있어서,
    상기 제2 데이터 버스에 대한 억세스를 위한 요구를 수신하고 상기 요구에 대한 승인을 전송하기 위해 상기 제1 모듈과 상기 각각의 제2 모듈에 연결된 데이터 버스 중재 모듈을 더 포함하고,
    여기서, 상기 버스 중재 모듈은 상기 I/O 버스에 연결되고, 하나 또는 그 이상의 중재 기법에 따라 상기 요구를 중재하기 위해 상기 I/O 버스로부터 수신되는 신호에 의해 프로그램될 수 있는
    집적회로 장치.
  9. 제 7 항에 있어서,
    상기 장치는 다수의 상기 제2 모듈을 포함하고, 여기서, 적어도 하나의 상기 제2 데이터 인터페이스 회로는 2개 또는 그 이상의 상기 제2 데이터 버스로부터 데이터를 수신하기에 적합하고, 적어도 하나의 상기 제2 데이터 인터페이스 회로는 2개 또는 그 이상의 상기 제2 데이터 버스로 데이터를 전송하기에 적합한
    집적회로 장치.
  10. 제 2 항에 있어서,
    상기 장치는 다수의 상기 제2 모듈을 포함하고, 여기서, 적어도 하나의 상기 제2 데이터 인터페이스 회로는 상기 제1 데이터 버스로부터 데이터를 오직 수신하기에만 적합하게 되어 있고, 적어도 하나의 상기 제2 데이터 인터페이스 회로는 상기 제1 데이터 버스로 오직 전송하기에만 적합한
    집적회로 장치.
  11. 제 2 항에 있어서,
    상기 장치는 다수의 상기 제2 모듈을 포함하고, 또한, 상기 제1 데이터 버스에 대한 억세스를 위한 요구를 수신하고 상기 요구에 대한 승인을 전송하기 위해 상기 제1 모듈과 상기 각각의 제2 모듈에 연결된 데이터 버스 중재 모듈을 더 포함하고, 여기서, 상기 버스 중재 모듈은 상기 I/O 버스에 연결되고, 하나 또는 그 이상의 중재 기법에 따라 상기 요구를 중재하기 위해 상기 I/O 버스로부터 수신되는 신호에 의해 프로그램될 수 있는
    집적회로 장치.
  12. 제 2 항에 있어서,
    상기 각각의 데이터 인터페이스 회로로부터 수신되거나 또는 상기 각각의 데이터 인터페이스 회로로 전송되는 데이터를 변경하는 로직을 포함하는 각각의 제2 데이터 경로 회로를 구비한 적어도 하나의 제2 모듈을 포함하는
    집적회로 장치.
  13. 제 12 항에 있어서,
    상기 적어도 하나의 제2 모듈은 상기 각각의 제2 데이터 경로 회로와 하나 또는 그 이상의 상기 전기적 접속수단에 연결된 각각의 제2 외부 인터페이스 회로를 포함하는
    집적회로 장치.
  14. 제 2 항에 있어서,
    하나 또는 그 이상의 특수 목적 전도 경로를 더 포함하고, 여기서, 2개 또는 그 이상의 각각의 제2 모듈을 위한 상기 제2 버스 인터페이스 회로는 상기 하나 또는 그 이상의 특수 목적 전도 경로에 연결된 특수 목적 인터페이스 회로를 포함하고, 그것에 의해 상기 2개 또는 그 이상의 각각의 제2 모듈을 직접 연결하는
    집적회로 장치.
  15. 제 1 항에 있어서,
    상기 제1 모듈과 상기 각각의 제2 모듈은 서로 근접해 있는 셀 또는 게이트에 의해 구현되는
    집적회로 장치.
  16. 그 내부에 버스를 포함하는 전자 장치를 위한 기술체계-의존 설계 스펙(specification)을 생성하기 위한 방법에 있어서,
    하드웨어 기술 언어를 이용하여 상기 전자 장치에 관한 제1 기술문(description) - 여기서, 상기 제1 기술문은 버스에 연결되어 버스 억세스 프로토콜에 따르는 상기 전자 장치 내부의 버스 인터페이스를 각각 포함하는 하나 또는 그 이상의 모듈을 묘사함 - 을 생성하는 단계;
    상기 제1 기술문을 하나 또는 그 이상의 제2 기술문 - 여기서, 상기 각각의 제2 기술문은 상기 버스에 연결되어 상기 버스 억세스 프로토콜에 따르는 상기 전자 장치 내부의 버스 인터페이스를 각각 포함하는 하나 또는 그 이상의 모듈을 묘사함 - 과 조합하여 상기 전자 장치에 관한 제3 기술문을 얻는 단계;
    상기 전자 장치를 위한 설계 제한조건 및 구현 기술체계의 선택을 명시하는 단계; 및
    상기 설계 제한조건 및 상기 구현 기술체계의 선택에 따라 상기 제3 기술문을 합성하여 상기 기술체계-의존 설계 스펙을 생성하는 단계
    를 포함하는 방법.
  17. 제 16 항에 있어서,
    상기 제1 및 제2 기술문은 상기 각각의 모듈에 관한 기술문을 포함하고, 상기 각각의 모듈은,
    상기 버스에 연결되고 상기 버스 억세스 프로토콜을 구현하는 상기 버스 인터페이스를 위한 각각의 인터페이스 회로;
    상기 각각의 인터페이스 회로에 연결된 각각의 데이터 경로 회로;
    상기 각각의 인터페이스 회로에 연결된 하나 또는 그 이상의 각각의 레지스터; 및
    상기 각각의 레지스터 중 하나와 상기 각각의 데이터 경로 회로에 연결되어, 상기 각각의 데이터 경로 회로를 제어하기 위한 각각의 상태 머신을 포함하고,
    여기서, 상기 제1 기술문이나 또는 상기 제2 기술문중 하나는 상기 각각의 데이터 경로 회로에 연결되고 상기 전자 장치 외부로부터 억세스가능한 하나 또는 그 이상의 전기적 접속수단에 연결된 외부 인터페이스 회로를 포함하는 모듈을 묘사하는
    방법.
  18. 제 17 항에 있어서,
    상기 제3 기술문은 I/O 버스 및 실질적으로 서로 독립적인 하나 또는 그 이상의 데이터 버스를 포함하는 것으로 상기 버스를 묘사하고, 상기 제1 및 상기 제2 기술문은 상기 I/O 버스에 연결된 각각의 I/O 인터페이스 회로와 상기 하나 또는 그 이상의 데이터 버스에 연결된 각각의 데이터 인터페이스 회로를 포함하는 각각의 버스 인터페이스 회로를 각각 구비하는 것으로 상기 모듈을 묘사하는
    방법.
  19. 제 18 항에 있어서,
    상기 제3 기술문은 I/O 판독 버스와 I/O 기록 버스를 포함하는 것으로 상기 버스를 묘사하고, 상기 제1 및 제2 기술문은 3상태 접속수단을 이용하여 상기 I/O 판독 버스에 연결된 각각의 I/O 인터페이스 회로를 각각 구비하는 것으로 상기 모듈들을 묘사하는
    방법.
  20. 제 18 항에 있어서,
    상기 제3 기술문은 하나의 I/O 기록 버스와 다수의 I/O 판독 버스를 포함하는 것으로 상기 I/O 버스를 묘사하고, 상기 제1 기술문이나 또는 상기 제2 기술문중 하나는 상기 다수의 I/O 판독 버스에 연결된 멀티플렉스 회로를 포함하는 상기 각각의 인터페이스 회로를 구비한 각각의 모듈을 묘사하는
    방법.
  21. 제 18 항에 있어서,
    상기 제3 기술문은 상기 I/O 버스에 연결된 인터페이스 회로와 상기 하나 또는 그 이상의 데이터 버스에 억세스하기 위한 요구를 중재하는 로직을 구비한 데이터 버스 중재 모듈에 관한 기술문을 포함하고, 상기 버스 중재 모듈은 하나 또는 그 이상의 중재 기법에 따라 상기 요구를 중재하기 위해 상기 I/O 버스로부터 수신되는 신호에 의해 프로그램될 수 있는
    방법.
  22. 제 18 항에 있어서,
    상기 제3 기술문은 다수의 데이터 버스, 2개 또는 그 이상의 상기 데이터 버스로부터 데이터를 수신하기에 적합한 적어도 하나의 데이터 인터페이스 회로, 및 2개 또는 그 이상의 상기 데이터 버스로 데이터를 전송하기에 적합한 적어도 하나의 데이터 인터페이스 회로를 묘사하는
    방법.
  23. 제 18 항에 있어서,
    상기 제1 기술문과 상기 제2 기술문은 집합적으로, 상기 하나 또는 그 이상의 데이터 버스로부터 데이터를 오직 수신만하는 적어도 하나의 데이터 인터페이스 회로와 상기 하나 또는 그 이상의 데이터 버스로 데이터를 오직 전송만하는 적어도 하나의 인터페이스 회로를 묘사하는
    방법.
  24. 제 17 항에 있어서,
    상기 제1 기술문과 상기 제2 기술문은 집합적으로, 상기 각각의 인터페이스 회로로부터 수신되거나 상기 각각의 인터페이스 회로로 전송되는 데이터를 변경하는 로직을 포함하는 상기 각각의 데이터 경로 회로를 구비한 적어도 하나의 모듈을 묘사하는
    방법.
  25. 제 24 항에 있어서,
    상기 적어도 하나의 모듈은 상기 각각의 데이터 경로 회로와 하나 또는 그 이상의 상기 전기적 접속수단에 연결된 외부 인터페이스 회로를 포함하는
    방법.
  26. 제 16 항에 있어서,
    상기 각각의 모듈이 서로 근접해 있는 셀 또는 게이트들에 의해 구현되도록 상기 셀 또는 게이트들을 배치하는 단계
    를 더 포함하는 방법.
  27. 전자 장치를 위한 기술체계-의존 설계 스펙을 생성하기 위해 머신에 의한 해석을 위해 상기 전자 장치를 묘사하는 명령어들의 프로그램을 전달하는 머신 판독가능 매체에 있어서,
    상기 명령어 프로그램은 상기 전자 장치를
    (a) 상기 장치 내부에 다수의 전도 경로를 포함하는 버스;
    (b) 상기 버스에 연결되어, 버스-억세스 프로토콜에 따라 동작하는 제1 버스 인터페이스 회로;
    상기 제1 버스 인터페이스 회로에 연결된 제1 데이터 경로 회로;
    상기 제1 버스 인터페이스 회로에 연결된 하나 또는 그 이상의 제1 레지스터;
    상기 제1 레지스터 중 하나에 연결되고 상기 제1 데이터 경로 회로에 연결되어, 상기 제1 데이터 경로 회로를 제어하기 위한 제1 상태 머신; 및
    상기 제1 데이터 경로 회로에 연결되고, 상기 장치 외부의 상기 전기적 접속수단 중 하나 또는 그 이상의 접속수단에 연결된 제1 외부 인터페이스 회로
    를 구비한 제1 모듈; 및
    (c) 상기 버스에 연결되어, 상기 버스-억세스 프로토콜에 따라 동작하는 각각의 제2 버스 인터페이스 회로;
    상기 각각의 제2 버스 인터페이스 회로에 연결된 각각의 제2 데이터 경로 회로;
    상기 각각의 제2 버스 인터페이스 회로에 연결된 하나 또는 그 이상의 각각의 제2 레지스터; 및
    상기 각각의 제2 레지스터 중 하나에 연결되고 상기 각각의 제2 데이터 경로 회로에 연결되어, 상기 각각의 제2 데이터 경로 회로를 제어하기 위한 각각의 제2 상태 머신
    을 각각 구비한 하나 또는 그 이상의 제2 모듈
    을 포함하는 것으로 묘사하는
    머신 판독가능 매체.
  28. 제 27 항에 있어서,
    상기 명령어 프로그램은 입력/출력(I/O) 버스를 형성하는 상기 다수의 전도 경로 중 일부를 묘사하고 제1 데이터 버스를 형성하는 상기 다수의 전도 경로 중 일부를 묘사하고,
    상기 제1 모듈에 있어서, 상기 명령어 프로그램은,
    상기 I/O 버스에 연결된 제1 I/O 인터페이스 회로와 상기 제1 데이터 버스에 연결된 제1 데이터 인터페이스 회로 - 여기서, 상기 제1 I/O 인터페이스 회로는 I/O 버스 억세스 프로토콜에 따라 동작하고, 상기 제1 데이터 인터페이스 회로는 데이터 버스 억세스 프로토콜에 따라 동작함 - 를 포함하는 상기 제1 인터페이스 회로;
    상기 제1 데이터 인터페이스 회로에 연결된 상기 제1 데이터 경로 회로; 및
    상기 제1 I/O 인터페이스 회로에 연결된 상기 하나 또는 그 이상의 제1 레지스터
    를 묘사하고,
    상기 각각의 제2 모듈에 있어서, 상기 명령어 프로그램은,
    상기 I/O 버스에 연결된 각각의 제2 I/O 인터페이스 회로와 상기 제1 데이터 버스에 연결된 각각의 제2 데이터 인터페이스 회로 - 여기서, 상기 각각의 제2 I/O 인터페이스 회로는 상기 I/O 버스 억세스 프로토콜에 따라 동작하고, 상기 각각의 제2 데이터 인터페이스 회로는 상기 데이터 버스 억세스 프로토콜에 따라 동작함 -를 포함하는 상기 각각의 제2 인터페이스 회로;
    상기 각각의 제2 데이터 인터페이스 회로에 연결된 상기 각각의 제2 데이터 경로 회로; 및
    상기 각각의 제2 I/O 인터페이스 회로에 연결된 상기 하나 또는 그 이상의 각각의 제2 레지스터
    를 묘사하는
    머신 판독가능 매체.
  29. 제 28 항에 있어서,
    상기 명령어 프로그램은 I/O 판독 버스와 I/O 기록 버스 - 여기서, 상기 I/O 판독 버스는 상기 제2 모듈로부터 상기 제1 모듈로 신호를 전달하고, 상기 I/O 기록 버스는 상기 제1 모듈로부터 상기 제2 모듈로 신호를 전달하고, 상기 제1 I/O 인터페이스 회로와 각각의 제2 I/O 인터페이스 회로는 3상태 접속수단을 이용하여 상기 I/O 판독 버스에 연결됨 - 를 포함하는 상기 I/O 버스를 묘사하는
    머신 판독가능 매체.
  30. 제 28 항에 있어서,
    상기 명령어 프로그램은 다수의 제2 모듈을 묘사하고,
    상기 제1 데이터 버스는 실질적으로 서로 독립적인 다수의 제2 데이터 버스를 포함하고, 상기 각각의 제2 데이터 버스는 상기 제1 데이터 인터페이스 회로와 적어도 하나의 상기 제2 데이터 인터페이스 회로에 연결된
    머신 판독가능 매체.
  31. 제 30 항에 있어서,
    상기 명령어 프로그램은, 상기 제2 데이터 버스에 대한 억세스를 위한 요구를 수신하고 상기 요구에 대한 승인을 전송하기 위해 상기 제1 모듈과 상기 각각의 제2 모듈에 연결된 데이터 버스 중재 모듈을 묘사하고,
    여기서, 상기 버스 중재 모듈은 상기 I/O 버스에 연결되고, 하나 또는 그 이상의 중재 기법에 따라 상기 요구를 중재하기 위해 상기 I/O 버스로부터 수신되는 신호에 의해 프로그램될 수 있는
    머신 판독가능 매체.
  32. 제 30 항에 있어서,
    상기 명령어 프로그램은 다수의 상기 제2 모듈을 묘사하고, 여기서, 적어도 하나의 상기 제2 데이터 인터페이스 회로는 2개 또는 그 이상의 상기 제2 데이터 버스로부터 데이터를 수신하기에 적합하고, 적어도 하나의 상기 제2 데이터 인터페이스 회로는 2개 또는 그 이상의 상기 제2 데이터 버스로 데이터를 전송하기에 적합한
    머신 판독가능 매체.
  33. 제 28 항에 있어서,
    상기 명령어 프로그램은 다수의 상기 제2 모듈을 묘사하고, 또한, 상기 제1 데이터 버스에 대한 억세스를 위한 요구를 수신하고 상기 요구에 대한 승인을 전송하기 위해 상기 제1 모듈과 상기 각각의 제2 모듈에 연결된 데이터 버스 중재 모듈을 더 묘사하고, 여기서, 상기 버스 중재 모듈은 상기 I/O 버스에 연결되고, 하나 또는 그 이상의 중재 기법에 따라 상기 요구를 중재하기 위해 상기 I/O 버스로부터 수신되는 신호에 의해 프로그램될 수 있는
    머신 판독가능 매체.
  34. 제 27 항에 있어서,
    상기 명령어 프로그램은 서로 근접해 있는 셀 또는 게이트에 의해 구현될 수 있는 용어로 상기 제1 모듈과 상기 각각의 제2 모듈을 묘사하는
    머신 판독가능 매체.
KR1020007002224A 1997-09-03 1998-08-27 복잡한 집적회로 장치를 위한 재사용가능 모듈 KR100628994B1 (ko)

Applications Claiming Priority (4)

Application Number Priority Date Filing Date Title
US5627697P 1997-09-03 1997-09-03
US60/056,276 1997-09-03
US09/121,028 1998-07-22
US09/121,028 US6195593B1 (en) 1997-09-03 1998-07-22 Reusable modules for complex integrated circuit devices

Publications (2)

Publication Number Publication Date
KR20010023576A true KR20010023576A (ko) 2001-03-26
KR100628994B1 KR100628994B1 (ko) 2006-09-27

Family

ID=26735178

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020007002224A KR100628994B1 (ko) 1997-09-03 1998-08-27 복잡한 집적회로 장치를 위한 재사용가능 모듈

Country Status (6)

Country Link
US (1) US6195593B1 (ko)
EP (1) EP1010111B1 (ko)
JP (1) JP2001515248A (ko)
KR (1) KR100628994B1 (ko)
DE (1) DE69812651T2 (ko)
WO (1) WO1999012112A1 (ko)

Families Citing this family (41)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE59914063D1 (de) * 1998-01-29 2007-02-01 Infineon Technologies Ag Anordnung und Verfahren zum Bereitstellen von Daten zur Charakterisierung von verschiedenen Einheiten an einem Bussystem
US6157971A (en) * 1998-06-02 2000-12-05 Adaptec, Inc. Source-destination re-timed cooperative communication bus
US6862563B1 (en) 1998-10-14 2005-03-01 Arc International Method and apparatus for managing the configuration and functionality of a semiconductor design
US6477683B1 (en) * 1999-02-05 2002-11-05 Tensilica, Inc. Automated processor generation system for designing a configurable processor and method for the same
US6560754B1 (en) * 1999-05-13 2003-05-06 Arc International Plc Method and apparatus for jump control in a pipelined processor
US6725252B1 (en) * 1999-06-03 2004-04-20 International Business Machines Corporation Method and apparatus for detecting and processing multiple additional requests from a single user at a server in a distributed data processing system
US6728666B1 (en) * 1999-09-13 2004-04-27 The United States Of America As Represented By The Administrator Of The National Aeronautics And Space Administration Evolvable circuit with transistor-level reconfigurability
US7072817B1 (en) * 1999-10-01 2006-07-04 Stmicroelectronics Ltd. Method of designing an initiator in an integrated circuit
WO2001069411A2 (en) 2000-03-10 2001-09-20 Arc International Plc Memory interface and method of interfacing between functional entities
US6691201B1 (en) * 2000-06-21 2004-02-10 Cypress Semiconductor Corp. Dual mode USB-PS/2 device
JP3907398B2 (ja) 2000-11-16 2007-04-18 松下電器産業株式会社 半導体集積回路装置の設計方法
US7003359B2 (en) * 2001-08-17 2006-02-21 Air Products And Chemicals, Inc. Multiple process plant product lines from a common set of engineered components
US7336700B2 (en) * 2001-09-20 2008-02-26 Lockheed Martin Corporation System bus transceiver interface
US7191271B2 (en) * 2001-09-20 2007-03-13 Lockheed Martin Corporation Two level multi-tier system bus
US6543034B1 (en) 2001-11-30 2003-04-01 Koninklijke Philips Electronics N.V. Multi-environment testing with a responder
US7493470B1 (en) 2001-12-07 2009-02-17 Arc International, Plc Processor apparatus and methods optimized for control applications
US7055123B1 (en) * 2001-12-31 2006-05-30 Richard S. Norman High-performance interconnect arrangement for an array of discrete functional modules
US7161948B2 (en) * 2002-03-15 2007-01-09 Broadcom Corporation High speed protocol for interconnecting modular network devices
US8284844B2 (en) 2002-04-01 2012-10-09 Broadcom Corporation Video decoding system supporting multiple standards
AU2003223746A1 (en) * 2002-04-25 2003-11-10 Arc International Apparatus and method for managing integrated circuit designs
US7689724B1 (en) 2002-08-16 2010-03-30 Cypress Semiconductor Corporation Apparatus, system and method for sharing data from a device between multiple computers
US7293118B1 (en) 2002-09-27 2007-11-06 Cypress Semiconductor Corporation Apparatus and method for dynamically providing hub or host operations
US7290089B2 (en) 2002-10-15 2007-10-30 Stmicroelectronics, Inc. Executing cache instructions in an increased latency mode
US20050049843A1 (en) * 2003-08-29 2005-03-03 Lee Hewitt Computerized extension apparatus and methods
JP4407231B2 (ja) * 2003-10-16 2010-02-03 セイコーエプソン株式会社 印刷装置、印刷処理方法およびそのプログラム
US7340548B2 (en) * 2003-12-17 2008-03-04 Microsoft Corporation On-chip bus
US7653123B1 (en) 2004-09-24 2010-01-26 Cypress Semiconductor Corporation Dynamic data rate using multiplicative PN-codes
TWI321731B (en) * 2006-09-18 2010-03-11 Quanta Comp Inc Device connection system and device connection method
US8127113B1 (en) 2006-12-01 2012-02-28 Synopsys, Inc. Generating hardware accelerators and processor offloads
US7685555B1 (en) * 2007-04-18 2010-03-23 Xilinx, Inc. Macro inference within electronic design automation tools using hardware description language templates
TWI335528B (en) * 2007-05-15 2011-01-01 Htc Corp A device with multiple functions, and a method for switching the functions and related electronic devices thereof
US8417930B2 (en) * 2010-04-26 2013-04-09 Broadcom Corporation Modular integrated circuit with uniform address mapping
US8726200B2 (en) 2011-11-23 2014-05-13 Taiwan Semiconductor Manufacturing Co., Ltd. Recognition of template patterns with mask information
US8539427B2 (en) * 2012-01-03 2013-09-17 International Business Machines Corporation Device mismatch corner model
US8448100B1 (en) 2012-04-11 2013-05-21 Taiwan Semiconductor Manufacturing Co., Ltd. Tool and method for eliminating multi-patterning conflicts
US8881297B2 (en) * 2012-09-06 2014-11-04 Brooks Automation, Inc. Access arbitration module and system for semiconductor fabrication equipment and methods for using and operating the same
US20140156252A1 (en) * 2012-11-30 2014-06-05 International Business Machines Corporation Hybrid platform-dependent simulation interface
FR3019667B1 (fr) * 2014-04-07 2018-03-09 Zodiac Aero Electric Systeme de traitement de donnees pour interface graphique et interface graphique comportant un tel systeme de traitement de donnees
US9250900B1 (en) 2014-10-01 2016-02-02 Cadence Design Systems, Inc. Method, system, and computer program product for implementing a microprocessor with a customizable register file bypass network
US9710590B2 (en) * 2014-12-31 2017-07-18 Arteris, Inc. Estimation of chip floorplan activity distribution
US10930535B2 (en) 2016-12-02 2021-02-23 Applied Materials, Inc. RFID part authentication and tracking of processing components

Family Cites Families (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4821180A (en) 1985-02-25 1989-04-11 Itt Corporation Device interface controller for intercepting communication between a microcomputer and peripheral devices to control data transfers
US5197016A (en) * 1988-01-13 1993-03-23 International Chip Corporation Integrated silicon-software compiler
US5111423A (en) 1988-07-21 1992-05-05 Altera Corporation Programmable interface for computer system peripheral circuit card
EP0453863A2 (en) 1990-04-27 1991-10-30 National Semiconductor Corporation Methods and apparatus for implementing a media access control/host system interface
US5471638A (en) * 1991-10-04 1995-11-28 Bull Hn Inforamtion Systems Inc. Bus interface state machines with independent access to memory, processor and registers for concurrent processing of different types of requests
US5293384A (en) 1991-10-04 1994-03-08 Bull Hn Information Systems Inc. Microprocessor bus interface protocol analyzer
US5341495A (en) 1991-10-04 1994-08-23 Bull Hn Information Systems, Inc. Bus controller having state machine for translating commands and controlling accesses from system bus to synchronous bus having different bus protocols
EP0605971A3 (en) 1992-12-30 1995-02-01 Nat Semiconductor Corp Structured methodology for two-phase data channel design.
US5537607A (en) 1993-04-28 1996-07-16 International Business Machines Corporation Field programmable general purpose interface adapter for connecting peripheral devices within a computer system
US5450551A (en) 1993-05-28 1995-09-12 International Business Machines Corporation System direct memory access (DMA) support logic for PCI based computer system
US5533204A (en) 1994-04-18 1996-07-02 Compaq Computer Corporation Split transaction protocol for the peripheral component interconnect bus
US5623684A (en) 1994-05-17 1997-04-22 Commquest Technologies, Inc. Application specific processor architecture comprising pre-designed reconfigurable application elements interconnected via a bus with high-level statements controlling configuration and data routing
EP0685803B1 (en) 1994-06-03 2001-04-18 Hyundai Electronics America Method of producing an electrical device adapter
US5822550A (en) * 1994-12-22 1998-10-13 Texas Instruments Incorporated Split data path fast at-bus on chip circuits systems and methods
KR100269299B1 (ko) * 1997-07-14 2000-10-16 윤종용 데이터패쓰(dq)수감소회로및감소방법과이를이용한반도체장치

Also Published As

Publication number Publication date
DE69812651T2 (de) 2003-11-13
EP1010111B1 (en) 2003-03-26
KR100628994B1 (ko) 2006-09-27
JP2001515248A (ja) 2001-09-18
WO1999012112A1 (en) 1999-03-11
US6195593B1 (en) 2001-02-27
DE69812651D1 (de) 2003-04-30
EP1010111A1 (en) 2000-06-21

Similar Documents

Publication Publication Date Title
KR100628994B1 (ko) 복잡한 집적회로 장치를 위한 재사용가능 모듈
EP0685799B1 (en) Multi-device connector
US7290075B2 (en) Performing arbitration in a data processing apparatus
US7266632B2 (en) Programmable logic device including programmable interface core and central processing unit
US7990999B2 (en) Starvation prevention scheme for a fixed priority PCE-express arbiter with grant counters using arbitration pools
US6574688B1 (en) Port manager controller for connecting various function modules
US8286025B1 (en) Selection of port adapters for clock crossing boundaries
US20070019570A1 (en) Reconfigurable circular bus
US20020008540A1 (en) Multi-master multi-slave system bus in a field programmable gate array (FPGA)
EP0685803B1 (en) Method of producing an electrical device adapter
US7296175B2 (en) System on a chip bus with automatic pipeline stage insertion for timing closure
US6799304B2 (en) Arbitration within a multiport AMBA slave
US7096290B2 (en) On-chip high speed data interface
US7543250B1 (en) On-chip packet-based interconnections using repeaters/routers
US20020184419A1 (en) Asic system architecture including data aggregation technique
US6822976B1 (en) Method and apparatus for high throughput multiplexing of data
US6959350B1 (en) Configurable USB interface with virtual register architecture
US7769929B1 (en) Design tool selection and implementation of port adapters
EP3921740A1 (en) Circuit for and method of configuring and partially reconfiguring function blocks of an integrated circuit device
US7039750B1 (en) On-chip switch fabric
JP4560601B2 (ja) コンピュータ用バスインタフェース
EP0706107A1 (en) Array clocking method and apparatus for input/output subsystems
US7353484B1 (en) Methods and apparatus for variable latency support
US7149827B1 (en) Methods and apparatus for tristate line sharing
Priya et al. A PROFICIENT RECOGNITION METHOD FOR ML-AHB BUS MATRIX

Legal Events

Date Code Title Description
A201 Request for examination
E902 Notification of reason for refusal
E601 Decision to refuse application
J201 Request for trial against refusal decision
J301 Trial decision

Free format text: TRIAL DECISION FOR APPEAL AGAINST DECISION TO DECLINE REFUSAL REQUESTED 20041206

Effective date: 20060530

S901 Examination by remand of revocation
GRNO Decision to grant (after opposition)
GRNT Written decision to grant
FPAY Annual fee payment

Payment date: 20120907

Year of fee payment: 7

FPAY Annual fee payment

Payment date: 20130819

Year of fee payment: 8

LAPS Lapse due to unpaid annual fee