목차
1. PCI란?
2. PCI Local bus 의 특징
3. PCI Local bus 시스템의 구조
4. PCI pins
5. PCI 신호선들의 유형
6. PCI Bus commands
7. PCI Bus Transactions
-버스 동작의 기본
-읽기동작
-쓰기동작
-버스동작의 완료
8. PCI Configuration Space
-특징
-형식
-엑세스 규칙
-디바이스 검출
-Configuration Register
2. PCI Local bus 의 특징
3. PCI Local bus 시스템의 구조
4. PCI pins
5. PCI 신호선들의 유형
6. PCI Bus commands
7. PCI Bus Transactions
-버스 동작의 기본
-읽기동작
-쓰기동작
-버스동작의 완료
8. PCI Configuration Space
-특징
-형식
-엑세스 규칙
-디바이스 검출
-Configuration Register
본문내용
가로 연결시킴으로써 전체적으로 트리 구조를 갖는 시스템을 구성 할 수 있음을 보여준다. 브리지로부터 생성된 PCI 버스로부터 하위의 PCI 버스를 만들기 위한 PCI/PCI 브리지 및 PCI 버스로부터 다른 규격(ex. ISA BUS)의 버스를 생성시키기 위한브리지가 있다.
PCI Pins
PCI 핀들은 크게 필수적인 핀들과 선택적인 핀들로 나뉘어진다. 마스터와 타겟을 구현하려면 필요한 최소한의 핀만으로도 구현이 가능하다. 필수적인 핀들 중에서 REQ#와 GNT# 두 개의 핀은 타겟으로 필요 없는 핀으로써 마스터가 브리지로부터 버스를 획득하기위한 Arbitration용 핀이다.
아래 그림은 필수적인 핀과 선택적으로 쓸 수 있는 핀들을 구분하여 보여주고 있다. 타겟을 구현하기 위해서는 47개의 핀이 필요하며, 마스터를 구현하기 위해서는 추가로 REQ# , GNT# 두 개를 포함하여 49개의 핀만으로도 가능하다.
PCI 신호선들의 유형
PCI 버스에 사용되어진 신호선들은 다음의 유형이 있다.
(1) in: Input: 표준 입력 신호
(2) out: Output: 표준 출력 드라이버
(3) t/s: Tri-State: 양방향 tri-state 입/출력
(4) s/t/s: Sustained Tri-state : active low tir-state 로써 한번에 한 디바이스에만 소유되어 드라이브 될 수 있는 신호서이다. 이 신호선을 Low로 드라이브했던 디바이스는 tir-state 시키기 전에 반드시 한 클럭 이상동안 High 상태를 유지 시켜야 한다.
(5) o/d: Open Drain: 여러 디바이스 들이 wire-OR로 공유 할 수 있는 신호
PCI 신호선들
유형
설명
1
CLK
Clock
디바이스를 동작시키기 위한 클럭을 공급한다. 33MHz와 66MHz 두 가지 모드가 있다. RST#, INTA#, INTC# 그리고 INTD#을 제외한 모든 신호선들은 클럭 상승 에지에서 샘플하도록 되어있다.
2
RST#
RESET
마스터 또는 타겟 그리고 내부 configuration 레이스터들을 초기화(리셋)하기 위한 신호선이다. 리셋 되었을 때 대부분의 신호선들은 tri-state상태로 되며 SERR#선은 float 상태로 된다. AD[32::00], C/BE[3::0]# 그리고 PAR 신호선들이 float 되지 않기 위해 central resource에 의해 Low 상태로 되어져야 한다.
3
AD[31::0]
Address
and Data
PCI 신호선들을 줄이기 위해 주소와 데이터 선이 함께 묶여져서 사용된다. Address phase 는 FRAME# 이 처음 asserted 되어졌을 때를 말하며 이때 AD를 통해 주소가 전송된다. Data phase 는 Address Phase를 제외한 나머지 구간이며 AD를 통해 데이터가 전송되는 때를 말한다.
4
C/BE[3::0]#
Bus
command
and Byte
Enable
마스터에 의해 구동되며 어드레스 페이스 구간에서는 버스명령이 전송되고 데이터 페이스 구간에서는 바이트 인에이블 데이터가 전송된다. 즉 데이터 32Bits중 어느 바이트가 유효한 데이터를 전송하고 있는지를 알려주는 것이다.
C/BE[0]->Byte 0, C/BE[3]#->Byte 3
5
PAR
Parity
AD와 CBE 전체에 대한 even 패리티를 알려주는 신호선이다. 데이터를 전송하는 마스터 혹은 타겟에 의해 발생되며 AD와 같은 타이밍을 가지거나 한 클럭 뒤에 발생된다. PAR 신호를 디바이스는 전송 받은 데이터에 대한 에러 신호를 발생하는데 이용된다.
6
FRAME#
Cycle Frame
마스터 디바이스에 의해 구동되며 타겟 엑세스의 시작과 전송 구간을 알려주는 역할을 한다. 처음 asserted 된 때에는 AD가 주소에 전송되며 이후 데이터가 계속 전송 가능하고 deassert 시킴으로써 타겟에게 마지막 하나의 데이터 페이스가 남았음을 알리는데 이용된다.
7
irdy
Initiator
Ready
버스 마스터가 현재 데이터 페이스를 마칠 수 있는지를 알려주는 역할을 한다. 쓰기 동작일 때는 AD에 현재 유효한 데이터가 실려있음을 알려주며 읽기 동작에서는 마스터가 AD로부터 데이터를 받을 준비가 되어 있음을 타겟에게 알려주는 역할을 한다.
8
TRDY#
Target
Reaty
타겟이 현재의 데이터 페이스를 마칠 수 있는지를 알려주는데 이용된다. 쓰기 동작에서는 타겟이 AD로부터 데이터를 전송 받을 준비가 되어 있음을 알려주는데 이용되며 읽기 동작에서는 AD에 대한 타겟이 유효한 데이터를 올려놓았음을 마스터에게 알려주는데 쓰인다.
9
STOP#
Stop
타겟에 의해 발생되며 마스터에게 현재의 데이터 페이스를 중단해 줄 것을 요청하는데 쓰인다.
10
LOCK#
Lock
마스터가 multiple transaction 을 하려 할 때 발생되는 신호선이다. 즉 다른 마스터로부터 버스의 점유를 막는데 이용된다.
11
IDSEL#
Initialization
Device
Select
마스터 혹은 타겟의 configuration register을 읽거나 쓰려 할 때 chip select 용으로 쓰인다. 즉 마스터나 타겟은 이 신호선이 자기에게 드라이브되면 현재 configuration register 엑세스임을 알 수 있게 되는 것이다.
12
DEVSEF#
Device
Select
타겟에 의해 발생되며 AD로부터 받은 주소를 디코딩하여 현재의 엑세스가 자신의 것에 해당함을 마스터에게 알리는 데 이용된다. 마스터는 이 신호를 감시하여 타겟 디바이스가 현재의 엑세스에 대해 응답을 하는지 검사하는데 이용한다.
13
REQ#
Request
마스터가 브리지로 보내는 신호선이며, PCI 버스를 사용하려 할 때 쓰인다.
14
GNT#
Grant
브리지가 마스터로 보내는 선이며 이 신호를 받은 마스터는 독자적으로 PCI버스를 이용할 수 있게 된다.
15
PERR#
Parity Error
데이터 페이스일
PCI Pins
PCI 핀들은 크게 필수적인 핀들과 선택적인 핀들로 나뉘어진다. 마스터와 타겟을 구현하려면 필요한 최소한의 핀만으로도 구현이 가능하다. 필수적인 핀들 중에서 REQ#와 GNT# 두 개의 핀은 타겟으로 필요 없는 핀으로써 마스터가 브리지로부터 버스를 획득하기위한 Arbitration용 핀이다.
아래 그림은 필수적인 핀과 선택적으로 쓸 수 있는 핀들을 구분하여 보여주고 있다. 타겟을 구현하기 위해서는 47개의 핀이 필요하며, 마스터를 구현하기 위해서는 추가로 REQ# , GNT# 두 개를 포함하여 49개의 핀만으로도 가능하다.
PCI 신호선들의 유형
PCI 버스에 사용되어진 신호선들은 다음의 유형이 있다.
(1) in: Input: 표준 입력 신호
(2) out: Output: 표준 출력 드라이버
(3) t/s: Tri-State: 양방향 tri-state 입/출력
(4) s/t/s: Sustained Tri-state : active low tir-state 로써 한번에 한 디바이스에만 소유되어 드라이브 될 수 있는 신호서이다. 이 신호선을 Low로 드라이브했던 디바이스는 tir-state 시키기 전에 반드시 한 클럭 이상동안 High 상태를 유지 시켜야 한다.
(5) o/d: Open Drain: 여러 디바이스 들이 wire-OR로 공유 할 수 있는 신호
PCI 신호선들
유형
설명
1
CLK
Clock
디바이스를 동작시키기 위한 클럭을 공급한다. 33MHz와 66MHz 두 가지 모드가 있다. RST#, INTA#, INTC# 그리고 INTD#을 제외한 모든 신호선들은 클럭 상승 에지에서 샘플하도록 되어있다.
2
RST#
RESET
마스터 또는 타겟 그리고 내부 configuration 레이스터들을 초기화(리셋)하기 위한 신호선이다. 리셋 되었을 때 대부분의 신호선들은 tri-state상태로 되며 SERR#선은 float 상태로 된다. AD[32::00], C/BE[3::0]# 그리고 PAR 신호선들이 float 되지 않기 위해 central resource에 의해 Low 상태로 되어져야 한다.
3
AD[31::0]
Address
and Data
PCI 신호선들을 줄이기 위해 주소와 데이터 선이 함께 묶여져서 사용된다. Address phase 는 FRAME# 이 처음 asserted 되어졌을 때를 말하며 이때 AD를 통해 주소가 전송된다. Data phase 는 Address Phase를 제외한 나머지 구간이며 AD를 통해 데이터가 전송되는 때를 말한다.
4
C/BE[3::0]#
Bus
command
and Byte
Enable
마스터에 의해 구동되며 어드레스 페이스 구간에서는 버스명령이 전송되고 데이터 페이스 구간에서는 바이트 인에이블 데이터가 전송된다. 즉 데이터 32Bits중 어느 바이트가 유효한 데이터를 전송하고 있는지를 알려주는 것이다.
C/BE[0]->Byte 0, C/BE[3]#->Byte 3
5
PAR
Parity
AD와 CBE 전체에 대한 even 패리티를 알려주는 신호선이다. 데이터를 전송하는 마스터 혹은 타겟에 의해 발생되며 AD와 같은 타이밍을 가지거나 한 클럭 뒤에 발생된다. PAR 신호를 디바이스는 전송 받은 데이터에 대한 에러 신호를 발생하는데 이용된다.
6
FRAME#
Cycle Frame
마스터 디바이스에 의해 구동되며 타겟 엑세스의 시작과 전송 구간을 알려주는 역할을 한다. 처음 asserted 된 때에는 AD가 주소에 전송되며 이후 데이터가 계속 전송 가능하고 deassert 시킴으로써 타겟에게 마지막 하나의 데이터 페이스가 남았음을 알리는데 이용된다.
7
irdy
Initiator
Ready
버스 마스터가 현재 데이터 페이스를 마칠 수 있는지를 알려주는 역할을 한다. 쓰기 동작일 때는 AD에 현재 유효한 데이터가 실려있음을 알려주며 읽기 동작에서는 마스터가 AD로부터 데이터를 받을 준비가 되어 있음을 타겟에게 알려주는 역할을 한다.
8
TRDY#
Target
Reaty
타겟이 현재의 데이터 페이스를 마칠 수 있는지를 알려주는데 이용된다. 쓰기 동작에서는 타겟이 AD로부터 데이터를 전송 받을 준비가 되어 있음을 알려주는데 이용되며 읽기 동작에서는 AD에 대한 타겟이 유효한 데이터를 올려놓았음을 마스터에게 알려주는데 쓰인다.
9
STOP#
Stop
타겟에 의해 발생되며 마스터에게 현재의 데이터 페이스를 중단해 줄 것을 요청하는데 쓰인다.
10
LOCK#
Lock
마스터가 multiple transaction 을 하려 할 때 발생되는 신호선이다. 즉 다른 마스터로부터 버스의 점유를 막는데 이용된다.
11
IDSEL#
Initialization
Device
Select
마스터 혹은 타겟의 configuration register을 읽거나 쓰려 할 때 chip select 용으로 쓰인다. 즉 마스터나 타겟은 이 신호선이 자기에게 드라이브되면 현재 configuration register 엑세스임을 알 수 있게 되는 것이다.
12
DEVSEF#
Device
Select
타겟에 의해 발생되며 AD로부터 받은 주소를 디코딩하여 현재의 엑세스가 자신의 것에 해당함을 마스터에게 알리는 데 이용된다. 마스터는 이 신호를 감시하여 타겟 디바이스가 현재의 엑세스에 대해 응답을 하는지 검사하는데 이용한다.
13
REQ#
Request
마스터가 브리지로 보내는 신호선이며, PCI 버스를 사용하려 할 때 쓰인다.
14
GNT#
Grant
브리지가 마스터로 보내는 선이며 이 신호를 받은 마스터는 독자적으로 PCI버스를 이용할 수 있게 된다.
15
PERR#
Parity Error
데이터 페이스일
소개글