KR100274425B1 - 피씨아이 로컬버스 제어장치 - Google Patents

피씨아이 로컬버스 제어장치 Download PDF

Info

Publication number
KR100274425B1
KR100274425B1 KR1019980029321A KR19980029321A KR100274425B1 KR 100274425 B1 KR100274425 B1 KR 100274425B1 KR 1019980029321 A KR1019980029321 A KR 1019980029321A KR 19980029321 A KR19980029321 A KR 19980029321A KR 100274425 B1 KR100274425 B1 KR 100274425B1
Authority
KR
South Korea
Prior art keywords
signal
pci
data
block
bus
Prior art date
Application number
KR1019980029321A
Other languages
English (en)
Other versions
KR20000009126A (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 KR1019980029321A priority Critical patent/KR100274425B1/ko
Publication of KR20000009126A publication Critical patent/KR20000009126A/ko
Application granted granted Critical
Publication of KR100274425B1 publication Critical patent/KR100274425B1/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
    • G06F2213/00Indexing scheme relating to interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F2213/0024Peripheral component interconnect [PCI]

Abstract

본 발명은 피씨아이 로컬버스 제어장치에 관한 것으로, 유저 어플리케이션과 피씨아이버스간의 데이터 전송용 인터페이스 장치를 제어하는 인터페이스제어 장치에 있어서, 피씨아이버스 싸이클(PCI Bus cycle) 상태를 나타내고 어드레스, 데이터 및 신호를 전송하며 피씨아이버스 신호들과 백앤드 인터페이스신호 들을 관리하는 피씨아이블럭(PCI;1)과, 상기 피씨아이버스 제어장치 환경설정용 컨피그레이션(configuration ; 2), 상기 피씨아이블럭(1)과 피씨아이 슬롯 또는 유저간의 신호전송을 위한 다수의 양방향 패드(Tri-PAD;3),(Bi-PAD;4∼13), 유저로부터 상기 피씨아이블럭(1)으로 들어가는 데이터를 선택하는 먹스(MUX;14,15)로 구성되어 많은 공간을 차지하지 않으면서도 각 구성부를 세분화 하여 새로운 기능의 추가가 용이하며, 유저의 어플리케이션 용도에 따라 버스들을 쉽게 다중화 할 수 있는 장점이 있는 것이다.

Description

피씨아이 로컬버스 제어장치
본 발명은 버스 제어장치에 관한 것으로서, 특히 DMA 제어기 인터페이스를 구비하여 많은 공간을 차지하지 않으면서도 각 구성부를 세분화 하여 기능추가가 용이하며, 유저의 어플리케이션 용도에 따라 버스들을 쉽게 다중화할 수 있는 피씨아이 로컬버스 제어장치에 관한 것이다.
일반적으로 버스(BUS)는 그 성격을 같이하는 신호선들의 모임으로서, 예컨대 컴퓨터에는 데이터버스나 어드레스버스 그리고 컨트롤버스 등이 있는바, 주소 전달을 위한 주소선들의 모임을 어드레스버스, 데이터 전송선들의 모임을 데이터버스, 그리고 제어를 위한 선들의 모임을 컨트롤버스라 칭한다. 이 밖에도 서로다른 주변장치를 연결하여 사용하는 방법에 따라 버스를 구분하기도 하는데 예를들면 HPIB는 휴렛 펙커드사의 제품에 사용되어지는 버스의 이름이며, Sun Micro System사에서 개발한 웍스테이션에는 S버스, M버스, VME버스 등이 사용되어진다. IBM PC에는 초기 XT/AT 기종에 8비트 ISA(Industry Standard Architecture)버스, 16비트 ISA버스(또는 AT버스)가 사용하기도 하였는 바, 이들은 주변기기 간에 제어하는 방법에 따라 서로 다른 규격을 가지고 있으며, 상기한 데이터버스와 어드레스버스 및 컨트롤버스 들을 내부에 지니고 있다.
초기의 IBM PC에서는 I/O슬롯으로 ISA버스를 사용하였으며, XT기종에서는 8비트 장치를 연결하기 위한 62핀 ISA컨넥터가 사용되었고, AT기종에서는 16비트 장치를 연결하기 위한 36핀 컨넥터가 추가되었다. 또한 1987년 초에 IBM PS/2를 발표하면서 ISA AT버스 대신 마이크로 채널에 의한 입출력장치 연결방식(MAC; Micro Channel Architecture)을 발표하였으며, MCA는 116핀의 기본 컨넥터와 VGA 비디오 기능을 강화하기 위한 보조 비디오 확장(Auxiliary Video Extension)을 연결할 수 있는 20핀 컨넥터로 구성되어 있다. 1988년에는 컴팩(Compag)이 주도하여 MCA 버스에 대응하기 위한 새로운 버스 구조를 발표하였는데 이것이 EISA(Extended ISA)이며, EISA 버스는 ISA 버스와 호환성을 가지고 있으면서 ISA 버스 보다 성능을 향상시킨 버스 구조를 지니고 있다.
IBM PC에서도 웍스테이션 처럼 자동으로 장치를 점검하여 동작 상황을 설정하여 주는 기능이 PCI(Peripheral Component Interconnect; 이하 "피씨아이"라 함)버스에서 가능하게 되었는 바, 피씨아이버스 구조는 IBM PC에서 사용하는 CPU만을 위해서 마련된 구조는 아니다. 따라서 다른 CPU를 채택하고 있는 컴퓨터에서도 피씨아이버스 구조를 지원하도록 설계한다면, IBM PC에서 사용되던 입출력장치가 다른 컴퓨터에서도 사용될 수 있는 장점이 있다. 이것은 IBM PC에서 사용되는 CPU를 위주로 하여 입출력장치의 하드웨어를 설계하는 방식에서 벗어나 컨피그레이션을 통하여 입출력장치의 하드웨어 동작 상태를 변경시킬 수 있도록 하였기 때문이다. 하지만 이러한 기능을 주변장치가 지니기 위해서는 자체적으로 각 장치의 특성을 알려주기 위한 컨피그레이션영역(Configuration Register Space)을 별도로 가지고 있어야 한다. 현재 피씨아이버스는 80586 이상 컴퓨터에서 많이 이용되고 있으며 ISA버스는 아직도 IBM호환 기종에서 기본으로 제공되는 입출력장치 접속버스이다. 피씨아이버스를 ISA버스나 VESA버스 접속방식을 사용하는 입출력장치와 연결하여 사용할 수도 있는데, 이때 피씨아이버스를 다른 접속방식으로 변환하는 장치를 브리지(bridge)라고 하며, 브리지는 각 버스간에 상이하게 동작하는 신호체계를 맞추어 주는 역할을 한다.
도 1은 피씨아이 어플리케이션카드의 구성도로서, 피씨아이버스(PCI Bus)와 피씨아이 인터페이스 제어기 코아(PCI Interface Controller Core) 그리고 유저 어플리케이션(User Application) 과의 관계를 보여주고 있다. 즉, 피씨아이버스 슬롯에 장착하여 사용하게 될 피씨아이 어플리케이션카드 내부에는 인터페이스 제어기(Interface Controller)가 있어서 개발자가 만든 다양한 용도(예컨대 그래픽 카드, 하드디스크 컨트롤러 등)의 유저 어플리케이션과 피씨아이버스를 연결해 주게 된다. 따라서 피씨아이 로컬버스 제어장치를 설계한다는 것은 사용자가 만든 응용기능 들을 피씨아이버스상에서 제대로 수행하는 인터페이스 컨트롤러를 설계한다는 것을 말한다.
가장 광범위한 피씨아이 인터페이스 컨트롤러는 한쪽은 피씨아이버스와 직접 접속이 되는 피씨아이 인터페이스 부분이 있고, 다른 한쪽은 일반 사용자가 쉽게 이용할 수 있도록 데이터버스와 어드레스버스가 마련되어 있으며, 또 이 컨트롤러를 제어하기 위한 간단한 제어 신호들이 있게 된다.
따라서 이러한 컨트롤러는 외부에 추가적으로 더해져야할 부품이 필요없이 바로 자신의 유저 어플리케이션과 접속하여 이용할 수 있는 장점이 있다. 하지만 이런 인터페이스 컨트롤러의 단점은 이용하기는 쉬우나 사용자가 어떤 용도로 쓰게 될지 모르는 상황에서 모든 환경을 제공하다 보니 제품이 차지하는 면적이 커지거나 쓰이지 않는 기능은 낭비적 요소로 작용하여 제품의 가격을 인상시키는 문제점이 있었다.
또한 도 2에 도시한 종래 피씨아이버스 제어장치는 각 구성부가 기능별로 세분화 되어 있지 않고, 후단부의 데이터버스는 양방향버스로 설계되어 있으며, 어드레스버스가 따로 출력방향의 버스로 구현되어 있지 않다. 또한 마스터 기능을 하기위한 DMA 제어기 인터페이스를 갖추고 있지 않으며, 사용자의 응용을 고려하여 FIFO, MAILBOXES 및 THRU데이터 레지스터 들을 구비하고 있다.
따라서 종래 피씨아이버스 제어장치는 각 구성부가 기능별로 세분화 되어 있지 않아 추가적인 기능을 추가하는데 어려움이 있고, 후단부의 데이터버스가 양방향버스로 설계되어 있고, 어드레스버스가 따로 출력방향의 버스로 구현되어 있지 않아 사용자의 용도에 따라 버스들을 쉽게 다중화할 수 없을 뿐만 아니라 FIFO, MAILBOXES 및 THRU데이터 레지스터 들을 구비하게 되어 많은 공간을 차지하게 되는 문제점들이 있었다.
본 발명은 상기한 실정을 감안하여 종래 피씨아이버스 제어장치가 갖는 문제점들을 해결하기 위하여 발명한 것으로서, DMA 제어기 인터페이스를 구비하여 많은 공간을 차지하지 않으면서도 각 구성부를 세분화 하여 기능추가가 용이하며, 사용자의 적용 용도에 따라 버스들을 쉽게 다중화할 수 있는 피씨아이 로컬버스 제어장치를 제공함에 그 목적이 있다.
도 1은 피씨아이(PCI) 어플리케이션 카드 구성도,
도 2는 종래 피씨아이 로컬버스 제어장치의 구성도,
도 3은 본 발명 피씨아이 로컬버스 제어장치에 대한 블럭 계층도,
도 4는 본 발명 피씨아이 로컬버스 제어장치의 구성도,
도 5는 본 발명에 따른 피씨아이블럭의 구성도,
도 6은 마스터의 각 상태를 설명하기 위한 도면,
도 7은 타겟의 각 상태를 설명하기 위한 도면이다.
〈도면의 주요부호에 대한 설명〉
1 : 피씨아이블럭 2 : 컨피그레이션 레지스터
3∼13 : 양방향 패드 14, 15 : 먹스
21 : 베이스 어드레스 레지스터 22 : 디코더
23 : 패리티(PAR) 24 : 무어블럭부
25 : 어드레스/데이터 제어부 26 : 씨벤티블럭부
27 : 입출력 제어로직부
상기한 목적을 달성하기 위한 본 발명피씨아이 로컬버스 제어장치는 유저 어플리케이션과 피씨아이버스간의 데이터 전송용 인터페이스 장치를 제어하는 인터페이스제어 장치에 있어서, 피씨아이버스 싸이클(PCI Bus cycle) 상태를 나타내고 어드레스, 데이터 및 신호를 전송하며 피씨아이버스 신호들과 백앤드 인터페이스신호 들을 관리하는 피씨아이블럭(PCI;1)과, 상기 피씨아이버스 제어장치 환경설정용 컨피그레이션(configuration ; 2), 상기 피씨아이블럭(1)과 피씨아이 슬롯 또는 유저간의 신호전송을 위한 다수의 양방향 패드(Tri-PAD;3),(Bi-PAD;4∼13), 유저로부터 상기 피씨아이블럭(1)으로 들어가는 데이터를 선택하는 먹스(MUX;14,15)로 구성됨을 특징으로 한다.
상기 피씨아이블럭(1)은 상기 피씨아이버스 싸이클(PCI Bus cycle)의 상태를 나타내 주는 무어블럭부(Moor;24)와, 상기 어드레스 및 데이터 전송을 제어하는 어드레스/데이터 제어부(Ad-dat;25), 피씨아이버스 명령(PCI Bus Command)과 바이트 인에이블(Byte Enable)신호 전송을 담당하는 씨벤티블럭부(Cbenty;26), 상기 피씨아이버스 신호(PCI Bus Signal)들과 상기 백앤드 인터페이스 신호(Back-end Interface signal)들을 관리하는 입출력 제어로직부(Io;27), 입력되는 베이스 어드레스를 저장하는 베이스 어드레스 레지스터(Bar-n;21), 상기 어드레스를 디코딩 하는 디코더(Decode;22) 및 이븐 패리티를 발생시키는 패리티(PAR;23)로 구성된다.
이하 상기한 본발명의 작용 및 효과를 첨부 도면을 참조하여 상세하게 설명한다.
피씨아이 인터페이스 컨트롤러는 가장 간단하게 생각 하였을 때 신호 체계가 서로 다른 양단으로 오고 가는 데이터를 한번 래치시킨후 상황에 잘 맞추어서 좌우로 내보내는 일종의 다리역활을 하는 것이다. 즉, 한 레지스터에서 다른 한 레지스터로 제때에 데이터를 이동시켜 주는 역할을 하면 되는 것이다. 이러한 레지스터간 데이터의 이동이라는 입장에서 인터페이스 컨트롤러를 설계한다는 것은 레지스터간 전송을 담당하는 피씨아이 마스터/ 타겟 코아(PCI Master/Target Core)를 설계하는 것이 된다.
도 1에 도시한 바와 같이 피씨아이 인터페이스 부분에는 피씨아이 스펙(PCI Spic.)에서 정의된 신호선들을 선택적으로 사용하게 되며, 백앤드 인터페이스 신호(Back-end I/F Signal) 들에는 다양한 유저 어플리케이션이 접속될 수 있도록 여러 신호들이 준비되어 있게 되고, 일반적으로 컨트롤러와 유저 어플리케이션 사이에는 원활한 데이터전송을 위해 FIFO를 두거나 일반메모리를 두게 된다.
또한 유저 어플리케이션이 마스터로서 동작하는 디바이스인 경우 후단 인터페이스 신호들을 이용해서 간단한 DMA 컨트롤러를 구현할 수 있다. 또 이들 피씨아이 인터페이스 부분과 백앤드 인터페이스 사이에는 이들 양단간의 데이터 전송을 제어하게 되는 피씨아이 마스터/ 타겟 코아블럭이 존재하며, 이 부분이 실질적인 인터페이스 컨트롤러가 되는 것이다.
도 3은 본 발명 피씨아이 로컬버스 제어장치의 블럭 계층도, 도 4는 본 발명 피씨아이 로컬버스 제어장치의 구성도, 도 4는 본 발명에 따른 피씨아이 블럭의 구성도로서, 먼저 본 발명 피씨아이 로컬버스 제어장치에 입출력되는 신호들을 다음과 같이 정의한다.
신호( Data-in〔31..0〕)는 유저 어플리케이션(User application)으로부터 타겟의 주소나 전송할 데이터를 받는 곳이다. 마스터로 동작시 타겟의 주소를 내보내게 되는데 이 경우 외부의 DMA 컨트롤러와 연결되어 컨트롤러는 타겟의 주소를 발생시키는 책임이 있게 된다. 타겟일 때에는 외부 마스터로 전송시킬 데이터가 입력된다. 또한 신호( DATA〔31..0〕)는 마스터 동작시 타겟으로부터 읽어 들어온 데이터를 유저(User) 쪽으로 내보내게 되며, 타겟으로 동작시에는 마스터가 쓰기 동작을 할 때 들어온 데이터를 유저 쪽으로 전송하게 된다.
그리고 신호( BAR〔31..0〕)는 베이스 어드레스 레지스터(Base Address Register;21)를 확인하기 위한 테스트용 신호이며, 신호( M-out〔9..0〕)는 컨트롤러 내부의 피씨아이 블럭 중에서 무어블럭부(24)로부터 나오는 마스터의 상태를 내보내는 신호로서, 유저는 이 신호( M-out〔9..0〕)를 이용하여 유저 어플리케이션을 설계하는데 있어서 참고하게 된다. 마스터의 상태는 모두 10가지 이며, 각 상태는 10 비트 중에서 하나의 비트에만 1을 지니게 되며, 모두 0일 때에는 마스터의 상태 머신은 동작을 중지하고 있음을 나타낸다.
또 신호( T-out〔7..0〕)는 신호( M-out〔9..0〕)와 마찬가지로 무어블럭부(24)의 타겟 상태를 나타낸다. 타겟 상태는 모두 8가지로 나누어져 있으며 역시 모두 0 일 경우 타겟 상태 머신은 동작을 하지 않고 있음을 나타낸다. 유저는 마스터 혹은 타겟을 선택하기 위해 신호선(MTselect)를 이용한다. 신호선(MTselect)이 1 인 경우는 마스터 동작을 의미하며, 이때 타겟 상태 머신은 동작을 멈추게 된다. 그리고 신호( T-out〔7..0〕)는 모든 비트가 0 이 된다. 반대로 타겟으로 동작하기 위해서는 신호선(MTselect)이 0 이 되어야 하며 이때 마스터의 상태 머신은 역시 동작을 하지 않게 되고 신호( M-out〔9..0〕)는 모두 0 이 된다.
신호(nBE-in)는 마스터로 동작시 피씨아이 쪽의 신호(CBE)에 유효 바이트를 나타내는 정보를 싣기 위해 사용되는 신호이고, 신호(nBE-out)는 데이터 페이스 동안의 유효 바이트 정보를 유저 쪽으로 전달하는 신호이다.
신호(ADDR-out)는 타겟으로 동작시(마스터가 컨피그레이션 엑세서(configuration access 일 경우도 포함됨) 타겟의 어드레스를 나타내는 신호이고, 신호(Ndevack)는 상기 신호(ADDR-out)와 신호(nBE-out)의 값이 유효함을 유저에게 알리기 위한 신호로서 신호(nFRAME)가 어서트(assert) 된 두 클럭 이후에 발생된다.
또한 신호(nM-abort)는 마스터 동작시 현재 자기가 요청한 버스 동작에 대해 아무 타겟도 응답하지 않을 경우 유저 쪽에 신호(nM-abort)가 발생 했음을 알리기 위한 신호이고, 신호(Read-valid)는 타겟으로 동작시 마스터가 읽기 동작을 요청해 왔을 경우 신호( Data-in〔31..0〕)에 실린 데이터에 대한 유효함을 알리는 신호로서, 마스터가 동작할 때에는 쓰기 동작에서 신호( Data-in〔31..0〕)에 유효한 데이터가 실려 있음을 알린다.
신호(Data-valid)는 타겟으로 동작시 마스터가 쓰기 동작을 요청해 왔을 경우 유저에게 현재 데이터에 있는 데이터가 유효한 것임을 알리기 위한 신호로서, 마스터로 동작시는 읽기 동작에서 데이터에 유효한 정보가 실려 있음을 나타내게 되고, 신호(Config-en)는 셋트 되었을 때 현재 컨피그레이션 스페이스 엑세스(configuration space access)임을 나타내는 신호이다.
그리고 신호(Ndevreq)는 마스터로 동작시 브리지에서 버스 사용권을 요청하기 위한 신호(nREQ)를 보내는데 이용되는 신호로서, 타겟으로 동작시에는 신호(nTRDY)를 동작 시키는데 이용되고, 신호(burst-last)는 마스터로 동작시 현재 버스트(burst) 모드로 전송을 하려 하는지 아니면 마지막 데이터 페이스가 남았는지를 컨트롤러에게 알려주는데 이용되는 신호로서, 이 신호에 따라 신호(nFRAME)가 어서트(assert) 혹은 디어서트(deassert) 된다.
또한 신호(MTselect)는 컨트롤러가 타겟으로 쓰일 것인지 마스터로 동작하게 될 것인지를 알려주는 신호이고, 신호(Mem-IO)는 마스터로 동작할 때 신호(C-BE)에 명령(command)을 싣기 위해 사용되는 신호로서, 메모리에 메핑되어 있는 타겟을 엑세스 하려면 1을 그리고 입출력(I/O) 공간에 메핑되어 있는 타겟을 엑세스 하려면 0을 내보내게 된다.
신호(Rd-Wr)는 마스터로 동작할 때 상기 신호(Mem-IO)와 마찬가지로 신호(C-BE)에 명령(command)을 싣기 위해 사용되는 신호로서, 1 이면 타겟에 대해 읽기 동작을 0 이면 쓰기 동작을 하게 되고, 반대로 타겟으로 동작시에는 마스터가 보낸 명령을 해석하여 읽기 동작인지 쓰기 동작인지를 알려 주는데 사용된다.
또한 신호(nRetry)는 마스터로 동작시 재시도(Retry) 상황이 발생하면 이를 감지하여 유저에게 알려주고, 반대로 타겟으로 동작할 때에는 마스터에게 재시도를 알리기 위해 사용되는 신호이고, 신호(nT-abort)는 마스터로 동작시 신호(nT-about)가 감지되면 이를 유저에게 알리기 위해 사용되고, 반대로 타겟으로 동작시에는 신호(nT-abort)를 발생하는데 사용되는 신호이다.
도 3은 본 발명 피씨아이 로컬버스 제어장치에 대한 블럭 계층도로서, 도면에서 보는 바와 같이 크게 세 개의 계층으로 나누어져 있다. 가장 하위는 컨트롤러 내부의 작은 기능별 블럭들이 있으며, 그 상위레벨로는 이들 작은 모듈들을 한데 묶어 주는 피씨아이블럭(PCI)이 있으며, 레지스터들로 구성한 컨피그레이션블럭(CONFIGURATION)도 이 레벨에 속한다. 마지막으로 이들의 상위에는 피씨아이 블럭(PCI)과 컨피그레이션(CONFIGURATION)을 연결하여 주고 양방향 패드를 구현한 탑블럭(TOP)이 있고, 실질적인 기능을 수행하는 코딩은 가장 하위의 블럭들에서 대부분 구현되고 있다.
본 발명 피씨아이 로컬버스 제어장치인 탑블럭(TOP)은 도 4에 도시한 바와 같이 구성되어 있으며, 탑블럭(TOP)의 가장 중요한 기능은 이미 구현된 피씨아이 마스터/타겟 코아블럭과 컨피그레이션 레지스터들과의 연결예를 보여주고 있다. 유저 데이터버스에 컨피그레이션 레지스터를 연결하였는데 피씨아이 마스터/타겟 코아블럭으로 들어가는 데이터를 셀렉터 하기 위해 중간에 먹스(MUX;14)를 하나 두었다. 그리고 신호(nDevreq)도 발생시킬 수 있고 컨피그레이션 레지스터에서 값을 내보낼 때도 사용되므로 역시 이들 신호를 구분하기 위해 먹스(MUX;15)를 추가 하였다. 또다른 기능은 양방향 신호선들에 대해 양방향 패드(Bi-directional PAD)를 구현하고 있다는 것이다. 피씨아이버스에는 특히 양방향 신호선들이 많은데 이를 마지막 탑블럭에서 일괄 구현 하였다.
도 5는 탑블럭의 바로 아래 레벨인 피씨아이블럭(1)의 구조를 도시한 것으로서, 패리티(Parity)는 어드레스/데이터버스와 신호(CBE)라인에 걸쳐 이븐 패리티(Even parity)를 발생 시키며, 어드레스 및 데이터에 비해 한 클럭 이후에 나가게 된다. 피씨아이 블럭(1)은 하위 블럭들을 한데 모아서 마스터/타겟 코아를 형성한다. 즉 패리티를 생성시키는 블럭을 제외한 나머지 6개의 블럭은 피씨아이블럭 내에서 구성요소(Component)가 서로 연결된 블럭으로서 크게 피씨아이버스 싸이클(PCI Bus cycle)의 상태를 나타내 주는 무어블럭부(Master/Target State Machine;24)와 어드레스 및 데이터 전송을 제어하는 어드레스/데이터 제어부(Ad-dat;25),피씨아이버스 명령(PCI Bus Command)과 바이트 인에이블(Byte Enable)신호 전송을 담당하는 씨벤티블럭부(Cbenty;26), 피씨아이버스 신호(PCI Bus Signal)들과 백앤드 인터페이스 신호(Back-end Interface signal)들을 관리하는 입출력 제어로직부(IO Control Logic부;27)로 나뉘어 지며, 이 외에 베이스 어드레스 레지스터(Base Address Register;21)와 타겟동작시 어드레스 디코딩을 위한 디코더(Decode;22)가 있다.
상기 어드레스/데이터 제어부(25)는 피씨아이버스로부터 들어오는 어드레스와 데이터를 래치하여 백앤드로 보내 주거나 백앤드로부터 들어오는 타겟 어드레스 및 데이터를 피씨아이버스로 보내 주는 역할을 한다. 피씨아이버스 인터페이스 부분에서 신호(nFRAME)가 어서트(assert)된 첫 클럭때(ADDRESS phase) 신호(A-D)로부터 타겟 컨트롤러는 주소를 래치하며 반대로 마스터 컨트롤러인 경우 첫 클럭때 타겟 어드레스를 보내 주어야 한다. 이후의 클럭 때에는 데이터가 신호(A-D)로부터 들어오거나 나가게 된다. 버스 읽기 동작에서는 신호(nFRAME)가 어서트(assert)된 바로 다음 클럭에서 턴 어라운드 싸이클이 실현 되어야 한다.
이 블럭에서 유저 쪽으로 보내는 또 다른 신호는 신호(ADDR-o)이며, 이것은 어드레스 페이스 일 때 들어오는 어드레스를 래치하여 유저 쪽에서 이용할 수 있도록 한다. 예를 들어 디바이스 내부에 임의의 컨트롤용 레지스터를 구현 해 놓은 경우 그 레지스터는 컨피그레이션 싸이클(Configuration cycle)을 통하여 시스템의 메모리나 입출력 스페이스(I/O space)에 메핑되어 지는데 이러한 레지스터 혹은 메모리를 엑세스 하는데 이용하게 된다.
씨벤티블럭부(26)는 어드레스 페이스(ADDRESS phase)일 때에는 피씨아이버스 명령을 피씨아이버스로부터 래치를 하거나 컨트롤러로부터 내보내게 된다(마스터 디바이스일 경우). 각각의 피씨아이 디바이스들은 이 명령들을 디코딩하여 구현된 명령에 대해서만 응답을 하여야 한다. 마스터와 타겟 기능이 모두 구현된 디바이스인 경우 각각 응답 가능한 명령은 다를 수 있다. 마스터 일 때 신호(CBE)통로는 백앤드 부분의 신호(Rd-Wr)와 신호(Mem-IO)를 이용하여 피씨아이버스 쪽으로 명령을 보내게 된다. 데이터 페이스(DATA phase)일 경우는 신호(A-D)의 어느 바이트에 유효한 데이터가 실려 있는지를 나타내는 정보가 신호(nBE-in)에 의해 실리게 된다. 입출력 제어로직부(27)는 어드레스와 데이터 그리고 신호(CBE)를 제외한 나머지 신호들을 관리하는 부분으로서, 피씨아이버스 쪽으로부터 들어오는 여러 제어신호에 대해 응답을 하게 되며, 각 피씨아이버스 동작(PCI Bus transaction) 마다 상황에 맞는 신호를 드라이브하게 된다. 또 이 부분은 백앤드와의 인터페이스를 담당하는 부분이기도 하다. 어드레스 페이스인 경우 신호(nFRAME)를 어서트시키고(마스터 일 때), 신호(A-D)에 실린 어드레스가 디바이스의 베이스 어드레스 레지스터(21)에 기록된 어드레스영역에 포함되면 타겟은 신호(nFRAME)가 엑티브하게 된 이후 어서트되며, 신호(nIRDY)와 신호(nTRDY)는 각각 마스터와 타겟이 신호(A-D)에 유효한 데이터를 보냈거나 래치를 하였을 경우 액티브하게 된다. 타겟으로서 마스터가 요청한 피씨아이버스 동작료(PCI Bus transaction)에 대해 응답하기 어려운 상황이 발생했을 경우 신호(nSTOP)를 어서트시켜 마스터에게 알린다.
또 컨트롤러는 신호(nFRAME)가 어서트된 이후 정해진 클럭 이내에 타겟으로부터 신호(nDEVSEL)를 받지 못하면 현재의 피씨아이버스 동작을 중지시킨다. 설계된 컨트롤러는 8클럭 이내에 신호(nDEVSEL)를 받지 못하면 신호(nM-abort)를 발생하도록 설계되어 있으며, 이러한 클럭 수준을 지키는 것이 일반적인 규칙이다. 무어블럭부(24)는 마스터와 타겟의 상태 머신(State Machine)으로써 피씨아이버스 동작의 상태를 나타내는 블럭으로서, 이것은 컨트롤러 내부 디자인 뿐만 아니라 백앤드 디자인에 있어서도 가장 기본이 되는 부분이라 할 수 있다. 마스터와 타겟은 각각 10개 및 8개의 상태를 갖게 되며 이것은 피씨아이버스측의 여러 제어신호들을 기반으로 상태가 변하게 된다.
도 6은 마스터의 각 상태를 설명하기 위한 도면으로서, 상태(Idle)는 유저쪽에서 신호(nDevreq)를 통해 버스를 이용하려 하는지 검사하며, 또 브리지가 자기의 컨피그레이션 레지스터들을 엑세스 하려 하는지 확인한다.
상태(D-bus)는 유저에서 엑세스 요청이 없는데도 아직 자신에게 신호(nGNT)가 어서트되어 있으면 이 상태에 머무르고, 신호(nGNT)가 디어서트되면 상태(Idle)로 돌아가고 그렇지 않고 유저에서 신호(nDevreq)에 의한 버스 사용 요청이 있으면 상태(M-AD1)로 간다.
상태(M-AD1)는 마스터가 이 상태에서 신호(nFRAME)를 1로 유지한 상태에서 상태(M-AD2)로 넘어가게 된다.
상태(M-AD2)는 어드레스 페이스를 뜻하는 것으로서, 마스터는 이때 신호(nFRAME)를 어서트 시키고 신호(A-D) 버스에 어드레스를 올림과 동시에 신호(C-BE)에는 버스 명령을 싣게 된다. 그리고 상태(M-data)로 넘어가게 된다.
상태(M-data)는 마스터의 데이터 페이스로서, 신호(A-D) 버스에는 데이터가 실리게 되고, 어드레스와 명령에 대한 패리티 에러가 전달 된다. 8클럭 이내에 해당 타겟으로부터 신호(nDEVSEL)에 의한 응답이 오지 않거나 데이터 페이스가 완료되면 상태(Turn-around)로 넘어가게 된다.
상태(Turn-around)는 데이터 페이스가 끝나게 되면 마스터는 드라이브하던 피씨아이 신호선들을 디어서트시킨다.
상태(B-busy)는 컨피그레이션 엑세스 명령을 확인하였으나 신호( A-D〔1..0〕)= 〔 11〕이면 상태(Idle)에서 이 상태로 들어오게 되며, 신호(nFRAME)가 디어서트 되면 다시 상태(Idle)로 돌아가게 된다.
상태(D-reg)는 마스터가 자신의 컨피그레이션 엑세스임을 확인한 상태로서, 유저쪽의 신호(nDevreq)가 디어서트 되면 바로 상태(Sconfig data state)로 넘어가게 된다.
상태(Sconfig-data)는 컨피그레이션 데이터가 성공적으로 전송되면 상태(Turn-around)로 가고 그렇지 않고 에러가 발생하면 상태(Back-off)로 가게 된다. 상태(Back-off)는 신호(nFRAME)가 디어서트 되기를 기다려 디어서트 되면 상태(Turn-around)로 넘어가게 된다.
도 7은 타겟의 각 상태를 설명하기 위한 도면으로서, 상태(Idle)는 타겟이 마스터가 자신에 대한 엑세스를 하려 하는지를 항상 조사 하여 베이스 어드레스 레지스터(21)에 대한 읽거나 쓰기 동작이면 상태(Read-BAR)나 상태(Write-BAR)로 가고 입출력 스페이스(I/O space) 엑세스 이면 상태(Compare-ADDR)로 넘어가게 되며, 나머지 컨피그레이션 레지스터에 대한 엑세스이면 곧바로 상태(S-date)로 넘어가게 된다.
상태(B-BUSY)는 자신과는 관계없는 버스 동작중인 상태로서, 타겟은 신호(nFRAME)가 디어서트 되길 기다려 다시 상태(Idle)로 돌아가게 된다.
상태(Compare-ADDR)는 유저쪽의 입출력(I/O) 스페이스에 속하는지 신호(A-D) 버스상의 어드레스와 비교하여 보고, 속하면 상태(S-date)로 넘어가고 그렇지 않으면 상태(B-BUSY)로 간다.
상태(S-date)는 데이터 전송이 일어나는 상태로서, 데이터 전송이 완료되면 상태(Turn-around)로 넘어가고 그렇지 않고 에러가 발생하면 상태(Back-off)로 넘어간다.
상태(Back-off)는 유저로부터 에러가 발생한 상태로서, 마스터가 신호(nFRAME)를 디어서트 시킬 때 까지 기다리고 상태(Turn-around)로 넘어간다.
상태(Turn-around)는 타겟이 드라이브 하던 신호선들을 모두 디어서트 시키고 상태(Idle)로 넘어간다.
상태(Read-BAR)는 마스터가 타겟의 베이스 어드레스 레지스터(21)를 읽으려 하는 상태로서, 레지스터 값이 읽혀질 때까지 이 상태에 머무르다 상태(Turn-around)로 넘어간다.
상태(Write-BAR)는 마스터가 타겟의 베이스 어드레스 레지스터(21)에 값을 쓰려 하는 상태로서, 레지스터에 값이 쓰여질 때 까지 이 상태에 머무르다 상태(Turn-around)로 넘어간다.
한편 도 5에 도시한 디코더(Decode;22)는 피씨아이 디바이스가 어드레스를 디코딩 할 때는 타겟으로서 동작하게 되며, 이것은 컨피그레이션 레지스터 중 시스템이 디바이스에게 부여한 베이스 어드레스 레지스터(21)의 영역에 신호(A-D)에 실린 타겟 어드레스가 포함이 되면 타겟은 신호(nDEVSEL)핀을 이용하여 이 사실을 마스터에게 알리게 된다. 신호(nFRAME)가 어서트된 이후 몇 번째 클럭에 디코딩 됨을 알리느냐에 따라 첫 클럭(FAST), 두 번째 클럭(MEDIUM), 그리고 세 번째 클럭(SLOW)으로 나뉘어 진다.
베이스 어드레스 레지스터(Base Address Register;21)는 피씨아이 디바이스에 반드시 준비 되어야 할 64 DW의 컨피그레이션 레지스터들 중 베이스 어드레스 레지스터(21)를 피씨아이 블럭(1)에 구현해 놓은 것이고, 나머지 필수적인 레지스터들이나 부가적인 레지스터들은 탑블럭에서 피씨아이 블럭(1)과 같은 레벨에서 연결되어 있다. 베이스 어드레스 레지스터(21)는 타겟이 시스템으로부터 메모리 혹은 입출력(I/O) 스페이스에 메핑되는데 필수적인 레지스터이다. 시스템의 리셋때 시스템은 피씨아이버스상의 디바이스들이 베이스 어드레스 레지스터(BAR;21))를 통해 시스템 자원을 요구하면 시스템은 여러 디바이스들이 충돌이 일어나지 않는 영역을 배분해 바로 이 베이스 어드레스 레지스터(21)에 기록하게 되는 것이다.
상기한 바와 같이 작용하는 본 발명 피씨아이 로컬버스 제어장치를 사용하면 많은 공간을 차지하지 않으면서도 각 구성부를 세분화 하여 새로운 기능의 추가가 용이하며, 유저의 어플리케이션 용도에 따라 버스들을 쉽게 다중화 할 수 있는 장점이 있다.

Claims (2)

  1. 유저 어플리케이션과 피씨아이버스간의 데이터 전송용 인터페이스 장치를 제어하는 인터페이스 제어장치에 있어서, 피씨아이버스 싸이클(PCI Bus cycle) 상태를 나타내고 어드레스, 데이터 및 신호를 전송하며 피씨아이버스 신호들과 백앤드 인터페이스신호 들을 관리하는 피씨아이블럭(PCI;1)과, 상기 피씨아이버스 제어장치 환경설정용 컨피그레이션(configuration ; 2), 상기 피씨아이블럭(1)과 피씨아이 슬롯 또는 유저간의 신호전송을 위한 다수의 양방향 패드(Tri-PAD;3),(Bi-PAD;4∼13), 유저로부터 상기 피씨아이블럭(1)으로 들어가는 데이터를 선택하는 먹스(MUX;14,15)로 구성됨을 특징으로 하는 피씨아이 로컬버스 제어장치.
  2. 제 1항에 있어서, 상기 피씨아이블럭(1)가 상기 피씨아이버스 싸이클(PCI Bus cycle)의 상태를 나타내 주는 무어블럭부(Moor;24)와, 상기 어드레스 및 데이터 전송을 제어하는 어드레스/데이터 제어부(Ad-dat;25), 피씨아이버스 명령(PCI Bus Command)과 바이트 인에이블(Byte Enable)신호 전송을 담당하는 씨벤티블럭부(Cbenty;26), 상기 피씨아이버스 신호(PCI Bus Signal)들과 상기 백앤드 인터페이스 신호(Back-end Interface signal)들을 관리하는 입출력 제어로직부(Io;27), 입력되는 베이스 어드레스를 저장하는 베이스 어드레스 레지스터(Bar-n;21), 상기 어드레스를 디코딩 하는 디코더(Decode;22) 및 이븐 패리티를 발생시키는 패리티(PAR;23)로 구성된 것을 특징으로 하는 피씨아이 로컬버스 제어장치.
KR1019980029321A 1998-07-21 1998-07-21 피씨아이 로컬버스 제어장치 KR100274425B1 (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1019980029321A KR100274425B1 (ko) 1998-07-21 1998-07-21 피씨아이 로컬버스 제어장치

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1019980029321A KR100274425B1 (ko) 1998-07-21 1998-07-21 피씨아이 로컬버스 제어장치

Publications (2)

Publication Number Publication Date
KR20000009126A KR20000009126A (ko) 2000-02-15
KR100274425B1 true KR100274425B1 (ko) 2000-12-15

Family

ID=19544763

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1019980029321A KR100274425B1 (ko) 1998-07-21 1998-07-21 피씨아이 로컬버스 제어장치

Country Status (1)

Country Link
KR (1) KR100274425B1 (ko)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20030083074A (ko) * 2002-04-19 2003-10-30 주식회사 하이닉스반도체 적응성을 갖는 pci 버스 제어 장치
KR100667954B1 (ko) * 2005-11-11 2007-01-11 (재)대구경북과학기술연구원 설계유연성을 가지는 피시아이 타겟컨트롤러

Also Published As

Publication number Publication date
KR20000009126A (ko) 2000-02-15

Similar Documents

Publication Publication Date Title
US5655145A (en) Peripheral interface circuit which snoops commands to determine when to perform DMA protocol translation
JP5085334B2 (ja) Usb・otgコントローラ
US5678065A (en) Computer system employing an enable line for selectively adjusting a peripheral bus clock frequency
US6854045B2 (en) Hardware emulation of parallel ATA drives with serial ATA interface
US5430847A (en) Method and system for extending system buses to external devices
JP3838278B2 (ja) コンピュータ・システムの2つのバス間のブリッジ回路
US7185135B1 (en) USB to PCI bridge
KR100352224B1 (ko) 핀-총수가 적은 버스 상에서의 직접 메모리 억세스 트랜잭션
US5564114A (en) Method and an arrangement for handshaking on a bus to transfer information between devices in a computer system
US5758099A (en) Plug and play protocol for bus adapter card
US6216191B1 (en) Field programmable gate array having a dedicated processor interface
WO2001027777A1 (en) Method and apparatus for initializing a computer interface
US5678064A (en) Local bus-ISA bridge for supporting PIO and third party DMA data transfers to IDE drives
US5454081A (en) Expansion bus type determination apparatus
PL182192B1 (pl) Karta rozszerzen w systemie komputerowym PL PL PL
US5748945A (en) Method for slave DMA emulation on a computer system bus
JPH09179812A (ja) 情報処理システム及びその制御方法
US20060224792A1 (en) Method and apparatus for concurrent and independent data transfer on host controllers
JP2503183B2 (ja) バス・アダプタ・システム
US5553244A (en) Reflexively sizing memory bus interface
WO1998043173A1 (fr) Systeme d'emulation et processeur de donnees
US5636348A (en) Control system for a multiple mode standard parallel port for a personal computer
JPH1055331A (ja) プログラム可能な読み出し/書き込みアクセス信号とその方法
WO1996008773A2 (en) Pcmcia dma data bus mastering
US6240480B1 (en) Bus bridge that provides selection of optimum timing speed for transactions

Legal Events

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