KR20030021568A - 피씨아이 버스 기반의 병렬 디지털 신호 처리를 위한피씨아이 버스 제어 장치 - Google Patents

피씨아이 버스 기반의 병렬 디지털 신호 처리를 위한피씨아이 버스 제어 장치 Download PDF

Info

Publication number
KR20030021568A
KR20030021568A KR1020010054885A KR20010054885A KR20030021568A KR 20030021568 A KR20030021568 A KR 20030021568A KR 1020010054885 A KR1020010054885 A KR 1020010054885A KR 20010054885 A KR20010054885 A KR 20010054885A KR 20030021568 A KR20030021568 A KR 20030021568A
Authority
KR
South Korea
Prior art keywords
pci
bus
controller
dsp
sdram
Prior art date
Application number
KR1020010054885A
Other languages
English (en)
Inventor
이동호
Original Assignee
(주) 아이브이콤
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by (주) 아이브이콤 filed Critical (주) 아이브이콤
Priority to KR1020010054885A priority Critical patent/KR20030021568A/ko
Publication of KR20030021568A publication Critical patent/KR20030021568A/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
    • G06F13/42Bus transfer protocol, e.g. handshake; Synchronisation
    • G06F13/4204Bus transfer protocol, e.g. handshake; Synchronisation on a parallel bus
    • G06F13/4221Bus transfer protocol, e.g. handshake; Synchronisation on a parallel bus being an input/output bus, e.g. ISA bus, EISA bus, PCI bus, SCSI 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/14Handling requests for interconnection or transfer
    • G06F13/20Handling requests for interconnection or transfer for access to input/output bus
    • G06F13/28Handling requests for interconnection or transfer for access to input/output bus using burst mode transfer, e.g. direct memory access DMA, cycle steal

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Bus Control (AREA)

Abstract

1. 청구범위에 기재된 발명이 속한 기술분야
본 발명은 PCI 버스 기반의 효율적인 병렬 DSP 시스템의 구현을 위한 PCI 버스 제어기의 설계에 관한 것으로, 외부 시스템에서 실행 파일을 DSP(Digital Signal Processor)에 다운로드하는 동작이나, 병렬적으로 연결된 DSP 간의 데이타 통신을 DMA(Direct Memory Access)를 통해 고속으로 수행하도록 하는 피씨아이 버스 기반의 병렬 디지털 신호 처리를 위한 피씨아이 버스 제어 장치에 관한 것임.
2. 발명이 해결하려고 하는 기술적 과제
본 발명은, PCI 버스 기반 고성능의 병렬 DSP 시스템을 구현하기 위하여 메모리 제어가 가능한 PCI 버스 제어 장치를 제공하고자 함.
3. 발명의 해결방법의 요지
본 발명은, 피씨아이(PCI : Peripheral Component Interconnect) 버스 기반의 병렬 디지털 신호 처리(DSP : Digital Signal Process)를 위한 PCI 버스 제어 장치에 있어서, 상기 PCI 버스 제어 장치의 동작 모드를 제어하기 위한 PCI 제어 수단; 및 상기 PCI 제어 수단에 의해 제어된 동작 모드에 따라 메모리에 대한 액세스 디바이스를 결정하도록 하기 위한 메모리 제어 수단을 포함함.
4. 발명의 중요한 용도
본 발명은 병렬 DSP 처리 장치 등에 이용됨.

Description

피씨아이 버스 기반의 병렬 디지털 신호 처리를 위한 피씨아이 버스 제어 장치{PCI Bus Controller for Parallel DSP Based on PCI Bus}
본 발명은 PCI 버스 기반의 효율적인 병렬 DSP 시스템의 구현을 위한 PCI 버스 제어기의 설계에 관한 것으로, 외부 시스템에서 실행 파일을 DSP(Digital Signal Processor)에 다운로드하는 동작이나, 병렬적으로 연결된 DSP 간의 데이타 통신을 DMA(Direct Memory Access)를 통해 고속으로 수행하도록 하는 피씨아이 버스 기반의 병렬 디지털 신호 처리를 위한 피씨아이 버스 제어 장치에 관한 것이다.
IBM 규격의 개인용 컴퓨터(PC : Personal Computer)에는 크게 두 가지의 버스를 지니고 있는데 그 하나는 중앙 처리 장치(CPU : Central Processing Unit)가 주가 되어 동작시키는 호스트(HOST) 버스가 있고, 주변장치가 연결되어 사용되는주변 버스가 있다.
특히, 주변 버스에는 여러 입출력장치(I/O Device)가 연결되는데, 이와같이 별도의 보드를 통해 CPU와 연결되어 동작하기 위해서 IBM 규격의 PC가 주변장치를 위해 제공된 커넥터에 삽입되어야 하는데, 이 주변장치를 위해 제공된 커넥터를 입출력 슬롯(I/O Slot)이라고 한다.
초기의 IBM규격의 PC에서는 입출력 슬롯으로 ISA 버스(Industry Standard Architecture BUS)를 사용하였다. 버스클럭 8MHz, 버스폭 8/16 비트, 대역폭 5MB/s를 지원하는 ISA 버스는 전송 데이터 폭이 좁고 느려서, 동시에 충분한 양의 데이터를 이동시킬 수가 없다. 따라서, 데이터를 옮길 때마다 많은 시간이 필요하고 하나의 조작명령에 16비트(bit)밖에 이동하지 못했다. 게다가, 지능적이지 못해서 CPU가 ISA 버스를 통해 데이터의 이동을 직접 제어해야 한다. 따라서, 데이터 이동이 완결되기 전까지는 CPU에 하나의 새로운 할당적업을 시작할 수 없다.
예를 들어, 플로피 디스크에서 데이터를 쓰거나 읽는 동안 PC의 나머지 장치들은 대기하는 것이다. 종종 PC가 잠자고 있는 것처럼 볼일 때가 있는데 바로 그것이 ISA 버스의 느린 속도와 지능성 결여의 문제때문이다.
한편, 또다른 입출력 버스인 PCI(Peripheral Component Interconnect) 버스는 실제 32비트(bit)의 데이터 폭을 갖지만, 실행에 있어서는 64비트(bit) 버스의 효과를 보여준다. 33Mhz의 클럭속도에서 132Mbps의 최대전송능력을 가지고 있는 고속 버스로 현재 거의 모든 개인용 컴퓨터의 입출력 버스로 사용되고 있고 계속해서 빠른 속도와 넓은 대역폭을 지원할 수 있도록 연구가 진행중이다.
또한, PCI 버스는 IBM 규격의 PC에서 사용하는 CPU만을 위해서 마련된 버스 구조가 아니다. 따라서, 다른 CPU를 채택하고 있는 컴퓨터에서도 PCI버스 구조를 지원하도록 설계한다면, IBM 규격의 PC에서 사용되던 입출력 장치가 다른 컴퓨터에서도 사용될 수 있는 장점이 있다. 이것은 IBM 규격의 PC에서 사용되는 CPU를 위주로 하여 입출력 장치의 하드웨어를 설계하는 방식에서 벗어나, 프로그램을 통하여 입출력 장치의 하드웨어 동작 상태를 변경시킬 수 있도록 하였기 때문이다.
또한, PCI 버스는 기존의 버스에 비해 훨씬 넓은 버스 대역을 제공하며 적은 핀 수로도 마스터나 타겟의 구현이 가능하여 기존의 버스에 비해 보드에서 차지하는 공간도 그만큼 작아지게 되었다. 현재 PCI 버스는 80586 이상 컴퓨터에서 많이 이용되고 있다. 최근에는 PCI 버스가 PC에만 적용되는 것이 아니라 방대한 연산량이 요구되는 병렬 DSP 시스템에도 적용이 되고 있다.
최근에는 이러한 고속 신호처리 시스템을 구현하는데 DSP칩을 다중으로 연결하는 병렬 시스템 구조가 많이 채택되고 있는데, 그 이유는 DSP소자들의 개별적인 연산능력이 우수하긴 해도 단일 프로세서 구조로서는 높은 성능 요구 조건을 충족시키기 어렵기 때문이다. 특히, 영상 신호처리, 소나, 레이더, 통신시스템과 같은 신호 처리 분야를 구현하기 위해서는 몇 GFLOPS(Giga Floating Point Operation Per Second)의 시스템 신호 처리 성능을 요구하기 때문에 필연적으로 DSP(Digital Signal Proccess)의 병렬 신호 처리가 필수적이며, 이에 관하여 현재까지 많은 병렬 신호 처리 연구와 병렬 신호 처리 시스템이 개발되어져 왔다.
이러한 PCI 버스 기반으로 2개 이상의 DSP칩을 사용하여 병렬 신호 처리 보드를 구현하는데 있어서, DSP칩과 PCI 버스를 연결하는 브릿지(Bridge) 회로가 필요하게 되는데, 기존에는 "AMCC", "PLX"사 등 많은 회사에서 단순한 연결만을 위한 PCI 버스 브릿지를 개발하여 판매하고 있다.
그러나, 보다 효과적이고 빠른 신호 처리를 위해서는 메모리 제어가 가능한 PCI 버스 브릿지가 요구되고 있다.
본 발명은, 상기한 바와 같은 요구에 부응하기 위하여 제안된 것으로, PCI 버스 기반 고성능의 병렬 DSP 시스템을 구현하기 위하여 메모리 제어가 가능한 PCI 버스 제어 장치를 제공하는데 그 목적이 있다.
도 1 은 본 발명이 적용되는, 2개의 DSP(Digital Signal Processing)를 병렬로 연결한 신호 처리 보드의 일실시예 구성도.
도 2 는 본 발명에 따른 PCI(Peripheral Component Interconnect) 제어기 내부에 포함하는 DMA 관련 레지스터의 일실시예 데이터 구조도.
도 3a 내지 도 3e 는 본 발명에 따른 PCI 제어기를 통한 지역 메모리간 DSP의 간섭없이 DMA(Direct Memory Access)를 통한 데이터를 전송 과정의 일실시예 설명도.
도 4 는 본 발명에 따른 DSP-PCI 브릿지에 대한 일실시예 구성도.
도 5 는 본 발명에 따른 PCI-HPI 브릿지에 대한 일실시예 구성도.
도 6 은 본 발명에 따른 PCI 제어기의 일실시예 구성도.
도 7 은 본 발명에 따른 PCI 제어기의 마스터 모드 동작시의 일실시예 상태도.
도 8 은 본 발명에 따른 PCI 제어기의 타겟 모드 동작시의 일실시예 상태도.
* 도면의 주요 부분에 대한 부호의 설명
11 : DSP부12 : SDRAM
13 ; DSP-PCI 브릿지17 : PCI 지역버스
41 : PCI 제어기42 : SDRAM 제어기
411 : PCI 마스터 제어기412 : PCI 타겟 제어기
413 : 구성 레지스터421 : 제어로직
422 : Data/Add Control423 : BA
424 : Row Ad Column Ad425 : 지역버스 중재부
상기 목적을 달성하기 위한 본 발명은, 피씨아이(PCI : Peripheral Component Interconnect) 버스 기반의 병렬 디지털 신호 처리(DSP : Digital Signal Process)를 위한 PCI 버스 제어 장치에 있어서, 상기 PCI 버스 제어 장치의 동작 모드를 제어하기 위한 PCI 제어 수단; 및 상기 PCI 제어 수단에 의해 제어된 동작 모드에 따라 메모리에 대한 액세스 디바이스를 결정하도록 하기 위한 메모리 제어 수단을 포함하여 이루어진 것을 특징으로 한다.
상술한 목적, 특징들 및 장점은 첨부된 도면과 관련한 다음의 상세한 설명을통하여 보다 분명해 질 것이다. 이하, 첨부된 도면을 참조하여 본 발명에 따른 바람직한 일실시예를 상세히 설명한다.
도 1 은 본 발명이 적용되는, 2개의 DSP(Digital Signal Processing)를 병렬로 연결한 신호 처리 보드의 일실시예 구성도이다.
본 발명이 적용되는, 2개의 DSP(Digital Signal Processing)를 가지는 병렬 신호 처리 보드는 2개의 DSP부(11-1, 11-2), 2개의 지역메모리(12-1, 12-2), DSP-PCI 브릿지(13-1, 13-2), PCI-HPI 브릿지(14) 및 PCI-PCI 브릿지(15)를 포함한다.
우선, DSP부(11-1, 11-2)는 입력되는 신호(일반적으로 "아날로그신호")를 디지털적으로 처리하여 원하고자 하는 결과를 얻기 위한 연산부로, 본 발명의 바람직한 실시예에서는 "TI(Texas Instrument)"사의 "TMS320C67x" 칩을 사용한다. 본 발명에 사용되는 "TI(Texas Instrument)"사의 "TMS320C67x" 칩은 167MHz의 클럭속도와 1GFLOPS의 산술연산능력을 가지고 있으며, 1Mbit의 프로세서 내부 메모리와 초당 400Mbyte의 대역폭을 가지며, 32비트 외부 메모리 인터페이스를 지원한다. 각각의 DSP부(11-1, 11-2)는 외부의 호스트 등 호스트간의 연결을 위한 HPI 포트(111-1, 111-2), 지역메모리(12-1, 12-2) 및 PCI 버스(16)로의 연결을 위한 EMIF(external memory interface) 포트(112-1, 112-2) 및 DSP 연산을 위한 DSP 코어를 구비한다. 즉, DSP부(11-1, 11-2)는 EMIF포트(112-1, 112-2)를 통하여 직접적으로 지역메모리(SDRAM)(12-1, 12-2)를 액세스할 수 있으며, DSP부(11-1, 11-2)가 마스터일 때 다른 DSP부(11-1, 11-2)의 지역메모리를 액세스할 수 있다. 또한, HPI(Host Port Interface)포트(111-1, 111-2)를 통하여 외부의 호스트가 DSP부(11-1, 11-2)에 프로그램을 다운로딩 할 수 있다.
그리고, 각각의 DSP부(11-1, 11-2)에 연결되는 지역메모리(12-1, 12-2)는 DSP부(11-1, 11-2)에서 고속으로 처리된 데이터를 임시 저장한다. 평상시에는 DSP부(11-1, 11-2)가 지역메모리인 SDRAM을 직접으로 제어하다가 외부에서 SDRAM을 사용하겠다는 홀드 요구신호가 들어오면 DSP부(11-1, 11-2)는 지역메모리(12-1, 12-2)와의 연결을 끊고 이때부터 DSP-PCI 제어기(13-1, 13-2)가 지역메모리(12-1, 12-2)를 제어한다.
그리고, DSP-PCI 브릿지(13-1, 13-2)는 PCI 버스를 통한 DSP칩간 또는 보드간 DMA(Direct Memory Access)전송을 지원하며, PCI 버스 마스터가 DSP부(11-1, 11-2)의 지역메모리(12-1, 12-2)를 액세스하도록 지원한다. 또한, 시스템 호스트 프로세서가 PCI 버스(16)를 통하여 DSP부(11-1, 11-2)에 프로그램을 다운로딩할 수 있도록 지원한다.
본 발명에 사용되는 PCI 버스는 33MHz로 동작되며, 32bit 데이터 버스폭을 지원하므로, 이론적으로 최대 132MB/S를 전송할수 있다.
본 발명에서 제안하는 DSP-PCI 브릿지(13-1, 13-2)는 크게 마스터모드, 타겟모드, 그리고, HPI(Host Port Interface)모드로 구성된다.
마스터 모드로는 지역 호스트 프로세서인 DSP부(11-1, 11-2)가 시스템 호스트 프로세서와는 독립적으로 다른 PCI 타겟(지역 메모리)에 대하여 데이터를 송수신할 수 있도록 하며, 이를 위해서 마스터용 DMA 제어기가 포함된다.
타겟 모드는 PCI 버스상의 외부의 마스터 디바이스가 DSP부(11-1, 11-2)의지역메모리인 SDRAM을 액세스할 수 있도록 동작한다.
PCI-HPI 브릿지(14)가 담당하는 HPI 모드는 외부의 시스템 호스트 프로세서가 DSP부(11-1, 11-2)에게 프로그램을 다운로딩할 수 있도록 지원한다. 또한, 시스템 호스트 프로세서는 HPI 포트(111-1, 111-2)를 통해 DSP칩의 전체 메모리를 액세스할 수 있다.
도 2 는 본 발명에 따른 PCI 제어기 내부에 포함하는 DMA 관련 레지스터의 일실시예 데이터 구조도이다.
우선, 목적 주소 레지스터(Target Address Register)(201)는 현재 마스터인 DSP부가 액세스하려는 PCI 버스상의 타겟 디바이스의 주소를 말한다. 그리고, 소스 주소 레지스터(Source Address Register)(202)는 현재 마스터 프로세서의 메모리 영역의 액세스 대상 시작 주소이다.
그리고, 전송 길이 레지스터(203)는 전송하려는 데이터의 총 크기를 나타낸다.
그리고, DMA 콘트롤 레지스터(DMA Control Register)(204)는 일반적인 DMA 제어를 위한 레지스터이다. 인터럽트 혹은 시스템에 의한 DMA의 개시와 같은 기능을 포함한다.
이러한 레지스터에 대한 제어는 지역 호스트인 DSP부가 직접 DMA기능을 수행하는 경우에는 DSP부가 세팅하고, 외부의 시스템 호스트 프로세서에 의해서도 설정이 가능하다.
이와 같은 레지스터 세팅이 완료되면 DMA 전송을 개시할 수 있다. DMA 전송개시 동작 역시 DSP부를 통해 직접 이루어지거나, 시스템 호스트 프로세서를 이용하며 소프트웨어적으로 DMA 콘트롤 레지스터의 DMA 시작 제어 비트를 세팅함으로써 개시할 수 있다. 또한, 하드웨어적인 방법으로는 직접 PCI 제어기의 외부 핀으로 나와 있는 DMA 요구 핀을 이용하여 직접 DMA를 개시할 수 있다.
DSP부에 의한 PCI 제어기의 레지스터 액세스는 간단히 이루어 질 수 있다. 먼저, PCI 제어기는 "CCS#"라는 외부 입력핀을 이용하여 외부 호스트가 PCI 제어기의 내부 레지스터를 액세스한다는 것을 감지한다. DSP부는 DMA관련 레지스터를 액세스하기 위해서 이들 레지스터를 자신의 메모리 맵에 할당 하여야 한다. 일반적으로 DSP부의 메모리 맵은 그 용도가 미리 정해져 있으며 본 발명의 예에서 사용하는 "TMS320C67x"의 경우에는 외부 메모리 영역은 칩 인에이블 신호인 "CE(Chip Enable)0~CE3"을 이용하여 액세스하여야 한다. 예를 들어, 지역메모리(SDRAM)는 CE2가 활성화되는 영역에 매핑되어 있다. 따라서, 우리가 액세스하려하는 PCI 제어기의 내부 DMA관련 레지스터는 CE1 영역을 통해 액세스한다.
도 3a 내지 도 3e 는 본 발명에 따른 PCI 제어기를 통한 지역 메모리간 DSP의 간섭없이 DMA(Direct Memory Access)를 통한 데이터를 전송 과정의 일실시예 설명도이다.
도 3a 는 PCI 제어기의 DMA관련 레지스터를 DSP부가 설정하는 과정을 도시한 것이다. DSP부는 DMA 레지스터를 액세스하기 위하여 인에이블 신호와 함께 레지스터의 주소를 세팅한다. DSP부에 의한 레지스터 세팅이 끝나면, 이 후의 모든 데이터 전송 문제는 PCI 제어기가 관리한다. 이를 위해선 먼저 PCI 버스 컨트롤러는DSP부로부터 지역 버스(Local Bus)를 사용하기 위한 사용권을 획득하여야 한다.
도 3b 는 PCI 제어기가 자신의 주소와 데이터 버스 및 기타 제어선을 이용하여 지역 메모리를 액세스할 수 있도록 DSP부와의 제어 신호를 도시한다.
도시된 바와 같이, DSP부에서는 이 과정에서 홀드 신호 및 홀드 응답 신호가 이용된다. 지역 버스 사용권을 넘겨준 DSP부는 EMIF(external memory interface) 포트의 출력 신호들을 모두 유휴 상태인 Hi-Z상태로 만들어 준다. 따라서, 이 후부터 PCI 제어기가 자신의 주소와 데이터 버스 및 기타 제어선을 이용하여 지역 메모리를 액세스할 수 있다.
좀 더 상세히 설명하면, 본 발명에 따른 PCI 제어기는 마스터모드, 타겟모드 및 HPI 모드의 3가지 동작 모드를 가지며, 이 중 타겟모드일 때는 PCI 버스상의 외부의 마스터 디바이스가 DSP부의 지역메모리인 SDRAM을 액세스 할 수 있도록 동작한다. PCI제어기가 DSP칩의 지역메모리를 액세스하기 위해서는 우선적으로 홀드(HOLD) 신호를 이용하여 지역버스의 사용권을 DSP의 EMIF에게 요청해야 한다.
이때, DSP-PCI 브릿지에서 홀드 신호가 PCI 제어기에 인가되면, PCI 제어기는 이 신호를 다시 인버트시켜서 EMIF포트에 보내는데, 이 신호를 수신한 DSP부는 내부에서 정해져 있는 메모리 요구의 우선순위에 따라 지역버스의 사용권한을 가장 우선순위에 있는 PCI 제어기에게 준다.
이때, EMIF포트에 나와 있는 모든 신호들은 "Hi-Z" 상태로 되며(단, 클럭은 제외) PCI 제어기는 지역버스 사용을 허가하는 홀드 응답 신호를 받으면, 비로소 지역버스를 사용 할 수 있다. 지역버스를 점유하는 동안은 PCI 제어기의 홀드 신호가 High 상태에 있으며, 이에 따라 EMIF포트로 들어가는 홀드 신호는 "로우(Low)" 상태로 있게 되며, 이 상태가 계속 지속되는 동안은 PCI 제어기가 지역버스를 계속 사용할 수 있다.
도 3c 는 PCI 제어기가 직접 지역 메모리로부터 데이터를 읽어들이는 과정을 도시한다.
이와 동시에, PCI 제어기는 PCI 버스 사용권을 중앙 아비터로부터 할당받아 지역 메모리로부터 읽어 들인 정보를 PCI 버스로 전달한다.
도 3d 내지 도 3e 는 PCI 제어기가 PCI 버스로부터 데이터를 읽어들여 지역메모리에 전달하는 과정을 도시한다.
도 4 는 본 발명에 따른 DSP-PCI 브릿지에 대한 일실시예 구성도이다.
도 4 에 도시된 바와 같이, 본 발명에 따른 DSP-PCI 브릿지(13)는 지역메모리인 SDRAM(12)을 액세스할 수 있도록 SDRAM 제어기(42), PCI 버스와의 정합을 위한 PCI 제어기(41)를 구비한다.
먼저, 지역메모리인 SDRAM(12)을 액세스하기 위해서 PCI 제어기(41)에서 각 메모리에 할당된 주소를 SDRAM 제어기(42)가 판단하여 SDRAM의 CS(Chip Select)신호를 "로우(Low)"로 인가한다. 예를 들어, PCI 제어기(41)가 SDRAM을 액세스하고 싶다면 SDRAM에 대하여 PCI 제어기(41)에 할당된 주소를 SDRAM 제어기(42)에 보내고, 이를 받은 SDRAM 제어기(42)는 이 주소를 해독하여 SDRAM에 CS(Chip Select)신호를 "로우(Low)"로 인가하고 SDRAM을 액세스할 수 있도록 한다.
그리고, PCI 제어기(41)에서 내부 제어기(Internal controller)와의 인터페이스를 보면 먼저 외부 프로세서에서 PCI 버스를 통해서 PCI 신호(signal)가 전송되면 PCI 제어기에서 홀드(hold) 신호를 보내서 지역버스(17)를 사용하겠다는 요청을 하고 사용해도 좋다는 홀드응답(HOLDA) 신호를 받으면 다시 "ads"와 "읽기-쓰기(w_r)"신호를 보내어 데이터(DATA)를 액세스하는 명령을 보내고 주소 신호인 "ad"와 "data"를 보내어 내부 제어기(Internal Controller)에서 DSP부(11) 및 지역메모리(SDRAM)(12)를 액세스할 수 있도록 제어한다.
도 5 는 본 발명에 따른 PCI-HPI 브릿지에 대한 일실시예 구성도이다.
DSP부의 HPI 포트는 외부의 시스템 호스트 프로세서가 DSP부에 프로그램을 다운로딩할 수 있도록 지원한다. 또한, 외부의 시스템 호스트 프로세서는 PCI-HPI 브릿지를 통해 DSP부의 전체 메모리를 액세스할 수 있다.
여기에 PCI 제어기는 2개의 DSP부의 HPI 포트를 PCI 버스와 연결해주는 PCI 브릿지의 역할을 한다.
본 발명에 따른 PCI-HPI 브릿지는 PCI 제어기와 DSP부의 HPI 포트간의 원할한 인터페이스를 위해서 HPI 모드를 지원한다. PCI-HPI 브릿지는 DSP부의 전체 메모리를 액세스할 수 있도록 동작한다.
PCI-HPI 브릿지에서 나오는 2개의 CS(Chip Select)신호는 2개의 DSP부 중에 어느 것을 선택할지를 결정하고, CS신호가 "로우(Low)"로 떨어지면, 연결된 DSP부를 제외한 다른 DSP부의 HPI 포트는 Hi-Z상태가 된다.
그리고, HPI 포트의 특성상 주소와 데이터가 16비트 버스로 다중화되어 있기 때문에 PCI 제어기에서 나오는 주소와 데이터를 제어기가 받아서 16비트씩 두번 연속해서 보내주어야 한다. 또한, 여기서 고려해야 할 점은 PCI-HPI 브릿지는 클럭의 동기에 맞추어 동작되는 반면, DSP부의 HPI 포트로 들어가는 신호는 비동기로 동작되기 때문에 데이터의 읽기/쓰기를 제어 신호 (HSTROBE)에 의해서 동작된다는 점을 고려해야한다.
여기에서도 DSP부를 액세스하기 위해 읽고 쓰기 명령인 "ADS" 와 "W_R" 신호를 보내어 DSP부를 액세스 하거나 데이터(data)를 저장할 수 있도록 HPI 제어기가 DSP부를 제어해준다.
도 6 은 본 발명에 따른 PCI 제어기의 일실시예 구성도이다.
본 발명에 의해 설계된 PCI 제어기는 크게 마스터 모드와 타겟 모드를 모두 지원한다.
우선, 마스터 모드일 때는 직접적으로 여러 버스 동작(전송)을 초기화하며 주소 및 데이터 전송과 기타 제어 신호들을 조정한다. 또한, 타겟 모드는 버스 전송을 초기화 할 수 없으며, 마스터에 의존하는 수동적인 메모리 디바이스로 동작한다.
본 PCI 제어기는 PCI 스펙 2.1을 만족하며, 읽기와 쓰기 버스 동작에 대하여 개별적으로 FIFO(First In First Out) 버퍼를 가지고 있으며, 각 FIFO 버퍼의 깊이(depth)는 4(32*4 bits)로 구현되어 있다. 또한, FIFO 버퍼를 이용하여 임의의 크기의 버스트 전송을 수행할 수 있으며, 메모리 공간을 위한 한 개의 베이스 주소 레지스터(Base Address Register)가 구현되어 있다. 이것은 I/O(Input/Output) 공간용으로 전환이 가능하며, 나머지 5개의 베이스 주소 레지스터(Base AddressRegister) 구현이 가능하다.
본 발명에 따른 PCI 제어기를 좀 더 상세히 살펴보면, "AD_DAT" 블록은 PCI 버스로부터 들어오는 주소(Address)선인 "AD"와 "Data"를 레치하여 종단(Back-end)으로 보내주거나 종단(Back-end)으로부터 들어오는 타겟 주소(Address) 및 데이터를 PCI 버스로 보내주는 역할을 한다.
PCI 버스 인터페이스 부분에서 주소 구문(ADDRESS Phase)일 때, "AD"로부터 타겟 컨트롤러는 주소를 래치하며 반대로 마스터 컨트롤러인 경우 주소 구문(ADDRESS Phase)일 때, 타겟 어드레스를 보내준다. 이후의 클럭에서는 데이터가 "AD"로부터 들어오거나 나가게 된다. 버스 읽기 동작에서는 "nFRAME"이 삽입 된 바로 다음 클럭에서 "턴어라운드 사이클(Turn-around cycle)"이 실현 되어야 한다.
"AD_DAT" 블록에서 사용자(User)쪽으로 보내는 또 다른 신호는 "AD_out"이다 이것은 주소 구문(ADDRESS Phase)일 때 들어오는 어드레스를 레치 하여 사용ㅈ(User)쪽에서 이용할 수 있도록 한다.
그리고, "CBENTY"주소 구문일 때에는 PCI 버스 명령을 PCI 버스로부터 래치를 하거나 제어기로부터 내보내게 된다(마스터일 경우). 각각의 PCI 디바이스들은 상기 PCI 버스 명령들을 디코딩하여 구현된 PCI 버스 명령에 대해서만 응답을 하여야 한다. 이때, 마스터와 타겟 기능이 모두 구현된 디바이스인 경우 각각 응답 가능한 PCI 버스 명령은 다를 수 있다. 마스터일 때 C/BE 경로는 종단(Back-end)부분의 "Rd_Wr"과 "Mem_IO" 두 신호를 이용해 PCI 버스쪽으로 PCI 버스 명령을 보내게 된다.
또한, 데이터 구문(DATA Phase)일 경우는 "AD"에 어느 바이트(Byte)에 유효한 데이터가 실려있는지를 나타내는 정보가 "nBE_in"에 의해 실린다.
그리고, "I/O" 블록은 주소(Address)와 데이터(Data) 그리고 "CBE"를 제외한 나머지 신호들을 관리하는 부분이다. PCI 버스 쪽으로부터 들어오는 여러 제어신호에 대해 응답을 하게 되며 각 PCI 버스 동작마다 상황에 맞는 신호를 보내게 된다.
또한, 이 부분은 종단(Back-end)과의 인터페이스를 담당하는 부분이기도 하다. 주소 구문인 경우 "nFRAME"을 삽입 시키고(마스터일 때), "nIRDY"와 "nTRDY"는 각각 마스터와 타겟이 "AD"에 유효한 데이터를 보냈거나 래치를 하였을 경우 액티브하게된다.
한편, 타겟으로서 마스터가 요청한 버스 동작에 대해 응답하기 어려운 상황이 발생했을 경우 "nSTOP"을 삽입시켜 마스터에게 이를 알린다. 또한, 제어기는 "nFRAME"이 삽입된 이후 정해진 클럭이내에 타겟으로부터 "nDEVSEL"신호를 받지 못하면 현재의 버스 동작을 중지시킨다.
본 발명의 바람직한 실시예로 설계된 제어기는 8클럭 이내에 "nDEVSEL"을 받지 못하면 "마스터-중단(Master- Abort)"을 발생하도록 설계되어 있다.
그리고, "Decode" 블록은 PCI 디바이스가 어드레스를 디코딩할 때는 타겟으로써 동작을 하게 된다. 이것은 구성 레지스터(Configuration register) 중 시스템이 디바이스에게 부여한 베이스 주소 레지스터(Base Address Register)의 영역에 "AD"에 실린 타겟 어드레스가 포함이 되면 타겟으로 동작하는 "Decode"블록은 "nDEVSEL"핀을 이용하여 이 사실을 마스터에게 알린다.
그리고, "Config" 블록은 디바이스의 구성 레지스터 영역(Configuration Register Space)을 구현한 블록이다. 마스터(DSP-PCI 브릿지 또는 PCI-HPI 브릿지)의 구성 액세스(Configuration access)일 때, PCI 버스의 "AD[31..0]"로 레지스터값을 보내거나 읽어 들인다.
또한, "base[31..0]"은 타겟 디바이스로 동작시 자기의 영역이 맞는지 확인하기 위하여 "Decode"블록으로 보내지게 된다. 또한, "comnd[9..0]"은 구성 레지스터(Configuration Register)중 명령 레지스터(Command Register)의 보류(reserved)되지 않은 영역을 "Moor"블록으로 보내게 되며 마스터 가능(Master enable) 신호 역할을 한다.
그리고, "State_Machine" 블록은 마스터와 타겟의 스테이트 머신으로써 PCI 버스의 동작 상태를 나타내는 블록이다. 이것은 컨트롤러 내부 디자인 뿐만 아니라 종단(Back-end) 디자인에 있어서도 가장 기본이 되는 부분이다.
마스터 모드와 타겟 모드는 각각 11개 및 7개의 상태를 갖게 되며, 이것은 PCI 버스측의 여러 제어 신호들을 기반으로 상태가 변하게 된다.
이하 도 7 및 도 8 에서 본 발명에 따른 PCI 제어기의 모드별 상태를 도시한다.
도 7 은 본 발명에 따른 PCI 제어기의 마스터 모드 동작시의 일실시예 상태도이다.
먼저, "IDLE" 상태(701)는 사용자쪽에서 "nDevreq"를 통해 버스를 이용하려 하는지 검사한다. 또한, 브릿지(DSP-PCI 브릿지 또는 PCI-HPI 브릿지)가 자기의 구성(Configuration) 레지스터들을 액세스하려 하는지 여부를 확인한다.
그리고, "D_bus"상태(702)는 사용자쪽에서 액세스 요청이 없는데도 아직 자신에게 "GNT#"가 삽입되어 있으면 이 상태에 머무른다. "GNT#"가 제거되면 "IDLE" 상태(701)로 돌아가고 그렇지 않고 사용자쪽에서 "nDevreq"에 의한 버스 사용 요청이 있으면 "AD1" 상태(703)로 간다.
그리고, "AD1"상태(703)는 마스터는 이 상태에서 "nFRAME"을 "1"로 유지한 상태에서 "AD2"상태(704)로 넘어간다.
그리고, "AD2"상태(704)는 어드레스 페이스를 뜻한다. 마스터는 이 때 "nFRAME#"을 삽입시키고 "AD"버스에 어드레스를 올림과 동시에 "C/BE#"에는 버스 명령을 싣게 된다. 그리고, "DATA" 상태(705)로 넘어간다.
그리고, "DATA"상태(705)는 마스터의 데이터 페이스이다. "AD"버스에는 데이터가 실리게 되고 어드레스와 명령에 대한 페러티 에러가 전달된다. 8클럭 이내에 해당 타겟으로부터 "nDEVSEL"에 의한 응답이 오지 않거나 데이터 페이스가 완료되면 "TURN_AROUND"상태(706)로 넘어간다.
그리고, "TURN_AROUND"상태(706)은 데이터 페이스가 끝나게 되면 마스터는 드라이브하던 PCI 신호선들을 제거시킨다.
그리고, "BUSY" 상태(707)은 구성 액세스(Configuration access)명령을 확인하였으나, "AD[1..0]==[11]"이면 "IDLE"상태(701)에서 본 "BUSY" 상태(707)로 들어오게 되며 "nFRAME"이 제거되면 다시 "IDLE"상태(701)로 돌아간다.
그리고, "D_req"상태(708)은 마스터가 자신의 구성 액세스(configurationaccess)임을 확인한 상태이다. 사용자쪽의 "nDevreq"가 삽입되면 바로 "Config" 상태(709)로 넘어간다.
그리고, "Config"상태(710)는 구성 데이터(configuration data)가 성공적으로 전송되면 "Turn_around"상태(706)로 가고, 그렇지 않고 에러가 발생하면 "Back_off"상태(711)로 간다.
그리고, "Off_M"상태(710)는 명령 레지스터(Command Register)와 연관되어 마스터 동작 인에이블 상태를 나타낸다.
그리고, "Back_Off"상태(711)는 "nFRAME"이 제거되기를 기다린다. 제거되면 "Turn_around"상태(706)로 넘어간다.
도 8 은 본 발명에 따른 PCI 제어기의 타겟 모드 동작시의 일실시예 상태도이다.
먼저, "IDLE" 상태(801)는 타겟은 마스터가 자신에 대한 액세스를 하려 하는지 항상 조사하여야 한다. 따라서, "Config. Reg."에 대한 액세스이면 "Config"상태(807)로 가고 "I/O space" 액세스이면 "Compare_addr"상태(803)로 간다.
그리고, "BUSY"상태(802)는 자신과는 관계없는 버스 동작중인 상태이다. 타겟은 "nFRAME"이 제거되길 기다려 다시 "IDLE"상태(801)로 돌아간다.
그리고, "Compare_addr"상태(803)은 사용자쪽의 I/O 어드레스 영역(space)에 속하는지 "AD"버스상의 어드레스와 비교하여본다. 비교 결과, 속하면 "Data"상태(804)로 넘어가고 그렇지 않으면 "BUSY"상태(802)로 간다.
그리고, "DATA"상태(804)는 데이터 전송이 일어나는 상태이다. 데이터 전송이 완료되면 "Turn_around"상태(806)로 넘어가고 그렇지 않고 에러가 발생하면 "Back_off"(805)상태로 넘어간다.
그리고, "Back_off"상태(805)는 사용자로부터 에러가 발생한 상태이다. 마스터가 "nFRAME"을 제거시킬 때까지 기다린다. 그리고, 마스터가 "nFRAME"을 제거하면 "Turn_around"상태(806)로 넘어간다.
그리고, "Turn_around"상태(806)는 타겟이 드라이브하던 신호선 들을 모두 제거시킨다. 그리고, "IDLE"상태(801)로 넘어간다.
그리고, "Config"상태(807)는 마스터가 타겟의 구성 레지스터(Configuration Register)들을 읽으려 하는 상태이다. 액세스가 끝날 때까지 이 상태에 머무르다 " Turn_around"상태(806)로 넘어간다.
이상에서 설명한 본 발명은 전술한 실시예 및 첨부된 도면에 의해 한정되는 것이 아니고, 본 발명의 기술적 사상을 벗어나지 않는 범위 내에서 여러 가지 치환, 변형 및 변경이 가능하다는 것이 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자에게 있어 명백할 것이다.
상기한 바와 같은 본 발명은, 메모리 제어가 가능한 PCI 버스 제어기를 제공함으로써, 상용화된 DSP 칩을 2개 이상 이용한 고성능의 병렬 DSP 시스템을 구현하는데 있어서, DMA를 통해 DSP나 다른 프로세서의 로드없이 DSP 칩간의 혹은 임의의 DSP와 PC와 같은 외부 호스트와의 고속 통신이 가능해지는 효과가 있다.

Claims (3)

  1. 피씨아이(PCI : Peripheral Component Interconnect) 버스 기반의 병렬 디지털 신호 처리(DSP : Digital Signal Process)를 위한 PCI 버스 제어 장치에 있어서,
    상기 PCI 버스 제어 장치의 동작 모드를 제어하기 위한 PCI 제어 수단; 및
    상기 PCI 제어 수단에 의해 제어된 동작 모드에 따라 메모리에 대한 액세스 디바이스를 결정하도록 하기 위한 메모리 제어 수단
    을 포함하는 PCI 버스 제어 장치.
  2. 제 1 항에 있어서,
    상기 PCI 제어 수단에 의해 제어된 동작 모드는,
    지역 호스트 프로세서인 DSP가 시스템 호스트 프로세서와는 독립적으로 다른 PCI 타겟(지역 메모리)에 대하여 데이터를 송수신할 수 있도록 하는 마스터 모드와 PCI 버스상의 외부의 상기 시스템 호스트 프로세서가 DSP의 지역메모리를 액세스할 수 있도록 하는 타겟 모드인 것을 특징으로 하는 PCI 버스 제어 장치.
  3. 제 1 항에 있어서,
    상기 PCI 제어 수단은,
    현재 마스터인 DSP부가 액세스하려는 PCI 버스상의 타겟 디바이스의 주소를 나타내는 목적 주소 필드;
    현재 마스터 프로세서의 메모리 영역의 액세스 대상 시작 주소를 나타내는 소스 주소 필드;
    전송하려는 데이터의 총 크기를 나타내는 전송 길이 필드; 및
    DMA(Direct Memory Access) 제어를 위한 DMA 제어 필드를 포함하는 컴퓨터로 읽을 수 있는 데이터 구조를 가지는 것을 특징으로 하는 PCI 버스 제어 장치.
KR1020010054885A 2001-09-06 2001-09-06 피씨아이 버스 기반의 병렬 디지털 신호 처리를 위한피씨아이 버스 제어 장치 KR20030021568A (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020010054885A KR20030021568A (ko) 2001-09-06 2001-09-06 피씨아이 버스 기반의 병렬 디지털 신호 처리를 위한피씨아이 버스 제어 장치

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020010054885A KR20030021568A (ko) 2001-09-06 2001-09-06 피씨아이 버스 기반의 병렬 디지털 신호 처리를 위한피씨아이 버스 제어 장치

Publications (1)

Publication Number Publication Date
KR20030021568A true KR20030021568A (ko) 2003-03-15

Family

ID=27722882

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020010054885A KR20030021568A (ko) 2001-09-06 2001-09-06 피씨아이 버스 기반의 병렬 디지털 신호 처리를 위한피씨아이 버스 제어 장치

Country Status (1)

Country Link
KR (1) KR20030021568A (ko)

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH1141595A (ja) * 1997-07-22 1999-02-12 Hitachi Ltd ビデオデコーダlsi
JPH11191900A (ja) * 1997-09-24 1999-07-13 Sony Pictures Entertainment オーディオデータ処理装置
KR20000072323A (ko) * 2000-08-29 2000-12-05 곽순근 자동제어용 디지탈 신호처리장치 및 그 인터페이스 방법
KR20020028534A (ko) * 2000-10-10 2002-04-17 조용범 디지털신호 처리 프로세서의 hpi와 dma인터페이스를 가진 pci 버스 컨트롤러

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH1141595A (ja) * 1997-07-22 1999-02-12 Hitachi Ltd ビデオデコーダlsi
JPH11191900A (ja) * 1997-09-24 1999-07-13 Sony Pictures Entertainment オーディオデータ処理装置
KR20000072323A (ko) * 2000-08-29 2000-12-05 곽순근 자동제어용 디지탈 신호처리장치 및 그 인터페이스 방법
KR20020028534A (ko) * 2000-10-10 2002-04-17 조용범 디지털신호 처리 프로세서의 hpi와 dma인터페이스를 가진 pci 버스 컨트롤러

Similar Documents

Publication Publication Date Title
US6581124B1 (en) High performance internal bus for promoting design reuse in north bridge chips
CA2124031C (en) System direct memory access (dma) support logic for pci based computer system
US6226700B1 (en) Computer system with bridge logic that includes an internal modular expansion bus and a common master interface for internal master devices
AU652707B2 (en) Bus interface logic for computer system having dual bus architecture
KR100271336B1 (ko) 주변구성요소 내부접속 버스상의 기능을 향상시키는 장치 및방법
US5819096A (en) PCI to ISA interrupt protocol converter and selection mechanism
US5685005A (en) Digital signal processor configured for multiprocessing
US6769046B2 (en) System-resource router
US6167476A (en) Apparatus, method and system for accelerated graphics port bus bridges
US5309568A (en) Local bus design
US6347294B1 (en) Upgradeable highly integrated embedded CPU system
US5634076A (en) DMA controller responsive to transition of a request signal between first state and second state and maintaining of second state for controlling data transfer
US5611075A (en) Bus architecture for digital signal processor allowing time multiplexed access to memory banks
KR20120092176A (ko) 멀티프로세서 완전 상호접속 방법 및 시스템
CA2558360A1 (en) Pvdm (packet voice data module) generic bus protocol
US6892266B2 (en) Multicore DSP device having coupled subsystem memory buses for global DMA access
US5838995A (en) System and method for high frequency operation of I/O bus
US6567881B1 (en) Method and apparatus for bridging a digital signal processor to a PCI bus
US6047349A (en) System for communicating through a computer system bus bridge
US6263390B1 (en) Two-port memory to connect a microprocessor bus to multiple peripherals
US6052754A (en) Centrally controlled interface scheme for promoting design reusable circuit blocks
US7096290B2 (en) On-chip high speed data interface
JP3516431B2 (ja) プロセッサ・バスによるi/oトラフィック伝送
US5933613A (en) Computer system and inter-bus control circuit
US7006521B2 (en) External bus arbitration technique for multicore DSP device

Legal Events

Date Code Title Description
A201 Request for examination
E902 Notification of reason for refusal
E601 Decision to refuse application