테크노아
> 기획&벤치 > 강좌
메인보드의 이해 #2
테크노아  |  webmaster@technoa.co.kr
폰트키우기 폰트줄이기 프린트하기 메일보내기 신고하기
승인 2000.02.17  13:45:00
트위터 페이스북 미투데이 요즘 네이버 구글 msn

 
메인보드의 이해 #2

 

통신과 버스

메인 보드에서 가장 중요한 개념은 버스(BUS)이다. 사실 버스가 눈에 보이지 않는 논리적인 개념이다 보니 설명하기도 이해하기도 쉽지 않다.  먼저, 통신의 개념을 이해하도록 하자.

 

통신의 개념

통신을 위해서는 1개의 회선으로도 가능하지만 논리적으로 최소한 두개의 회선을 사용하게 된다. 하나의 회선은 1과 0으로 구성된 데이터를 전송하고 나머지 한개는 1과 0이 불규칙적으로 반복되는 클럭(Clock) 신호가 전달이 된다. 이때, 컴퓨터는 디지털 회로로 구성되어 있으며 1은 2.4V 이상의 전압이 가해지는 경우 그리고 0은 전압이 가해지지 않는 경우로 구분하게 된다. 이전에는 3.3V 또는 그 이상의 전압을 사용하기도 했지만 점차로 전압의 진폭이 작아지고 있다.


[그림] 1과 0의 의미

10101010 이라는 데이터를 전송하기 위해서는 1 또는 0 상태를 지정하는 회선이 있고 이 값들을 구분하기 위한 시간을 지정하여야 한다. 즉, 10 또는 1100은 물리적으로 1 상태 그리고 0 인 상태로 두 가지만 존재하며 1 또는 11을 나누기 위해서는 일정한 신호의 길이가 지정되어야 하기 때문이다.


[그림] 1과 11의 구분

한가지 문제가 있다. 클럭이 1인 상태와 0인 상태에서 데이터의 상태를 지정하기 위해서는 시간적인 개념이 필요하다. 즉, 일정한 상태에서는 특정 시간을 지정할 수 없다. 따라서 데이터의 지정은 1과 0이 변하는 지점을 이용하여 특정 데이터 상태를 지정하게 된다. 즉, 클럭 신호가 1에서 0으로 변하는 지점이나 0에서 1로 변하는 지점에서의 데이터의 상태 값을 읽거나 기록하게 되는 것이다.
여기서 1에서 0으로 변하는 지점을 falling edge 그리고 0에서 1로 변하는 지점을 rising edge라 한다.


[그림] edge

기본적인 데이터 전송은 두가지의 edge 중에 한가지만 사용하다. 데이터를 전송하는 장치에서는 클럭이 0인 상태에서 데이터 값을 지정하고 클럭으로 0에서 1로 변경한다. 이때 수신측에서는 0에서 1로 변하는 지점을 검사하고 있다가 값이 변화하면 이때의 데이터 회선의 상태에서 따라서 데이터를 읽어 들이게 된다. 송신측은 다시 클럭 신호를 1에서 0으로 변화시키고 다음 데이터를 설정한 다음에 다시 클럭을 0에서 1로 변화시키다. 그럼 수신측에서는 다음 데이터를 읽어 들이게 된다.


[그림] 0110의 데이터의 신호 구성과 클럭의 배치

하나의 edge 만을 사용하는 경우에 1클럭에 1비트의 데이터를 전송할 수 있으며 최근에는 클럭당 두개의 데이터를 전송하는 double data rate 방식이 사용되고 있다. 이것은 falling/rising edge를 모두 사용하는 방식이다. 즉, 0상태에서 일정 값으로 설정하고 0에서 1로 클럭이 변화되면 이때 수신측에서 데이터를 읽어 들이게 된다. 이렇게 수신측에서 데이터를 읽어 들이게 되는 충분한 시간이 지난 다음 호스트에서는 다시 데이터 값을 변화시키고 클럭으로 1에서 0으로 변화시킨다. 그럼 수신측은 다시 데이터를 읽어 들이게 된다. 이 방식을 이용하면 하나의 클럭에 두개의 데이터를 전송할 수 있게 된다. 더불어 수신측에서 데이터를 읽어 들어는 시간과 데이터를 바꾸는 시간이 조화를 이루어야 한다. 즉, 수신측이 데이터 값을 인식하기 이전에 송신측이 데이터를 변화 시키게 되면 정상적으로 통신이 이루어질 수 없기 때문이다.
이러한 데이터 전송 처리를 위해서 호스트 클럭에 비하여 0.25 클럭 정도 주기가 늦은 슬래이브 클럭이 동시에 구동이 되고 이 클럭이 논리적으로 동기가 이루어지게 된다. 즉, 호스트의 전송에서 발생하는 클럭과 슬래이브의 내부 클럭을 함께 이용하여 데이터를 전송하게 된다.


[그림] falling and rising edge를 이용하여 데이터를 전송하는 방식

클럭당 1/0 상태 한가지 즉, 1비트의 데이터를 전송할 수 있다. 컴퓨터의 내부 버스는 64비트로 구성되어 있다. 즉, 데이터 회선이 64개로 구성되어 있으며 클럭당 64비트 또는 8바이트의 데이터를 전송하게 된다. 따라서 메인 보드가 100MHz로 동작한다면 초당 800M 바이트의 속도로 데이터를 전송할 수 있게 된다.

 

컴퓨터에서의 버스

앞에서 언급했던 것처럼 버스는 통신 수단으로 컴퓨터를 구성하고 있는 각종 장치들이 서로 데이터를 주고 받는 수단이 된다. 이때, 컴퓨터에서는 여러 가지의 버스를 함께 사용하고 있다. 예를 들어 기본적으로 CPU와 CPU 또는 CPU와 North Bridge 버스간에 데이터를 전송하는 CPU 버스가 있으며 이것을 FSB(Front Side Bus)로 부르기도 한다. 또한 메모리와 North Bridge 데이터 전송에 관여하는 메모리 버스 그리고 AGP 확장 슬롯과 North Bridge 를 연결하는 AGP 버스가 있다. 이들 버스 시스템은 컴퓨터 내부적으로 범용적으로 사용하기 보다는 CPU/메모리/AGP 확장 슬롯을 상호 연결하기 위해서 사용한다. 반면에 메인 보드의 각종 장치들과 확장 슬롯을 지원하는 범용 버스 시스템으로 PCI 또는 ISA가 있다


ISA (Industrial Standard Architecture)

ISA 버스는 386 이전의 컴퓨터에서 사용되었던 시스템 버스로 최근에는 South Brdige 칩세트에서 ISA 확장 슬롯이나 슈퍼I/O 칩세트를 연결하는데 사용한다. 슈퍼I/O 칩세트는 직렬/병렬 통신 포트, 키보드, 마우스, 플로피 드라이브의 동작을 제어하는 칩세트로 역시 ISA 버스 규격으로 서로 통신이 이루어진다. 이때, ISA 버스는 8 또는 16비트 규격을 가지고 있으며 4.77MHz에서 16MHz 까지 다양한 전송 속도를 가지고 있지만 8MHz 가 표준으로 사용된다. 따라서 초당 8M 바이트 또는 16M 바이트의 데이터를 전송할 수 있게 된다.


MCA(Micro Channel Architecture)

ISA 버스 규격은 상대적으로 느리고 시스템 자원을 확장 카드에서 물리적으로 설정하기 때문에 시스템이 경직된 성경을 가지고 있습니다. 따라서 IBM에서는 PS/2 컴퓨터 규격을 새로 출시하면서 MCA 버스 규격을 발표하였다. 특히, 386 컴퓨터가 출시되면서 ISA 버스로는 프로세서에서 요구하는 대량의 데이터 전송 규격을 최적으로 지원할 수 없었기 때문이다.
MCA 버스는 32비트 버스 규격으로 10MHz의 동작 속도로 20M 바이트 데이터를 전송할 수 있으며 후에 스트리밍(Data Streaming) 기술을 이용하여 80M 바이트까지 향상되었다. 이러한 성능적인 장점에도 불구하고 일반화되지 못하였으며 기존의 ISA 버스 규격하고는 호환이 되지 않고 기존의 ISA 버스스로도 별 불편함이 없었기 때문이다.


EISA(Enhanced ISA)

비록 MCA가 IBM사의 한정적인 기술로 널리 사용되지는 못하였지만, 고성능의 버스의 도입의 필요성은 대두 되었으며, AST, Compaq, Epson, HP, NEC, Tandy 등의 회사에서 MCA와 상응하는 성능을 갖추고 있으면서 ISA버스와 호환이 되는 규격으로 EISA가 탄생하였다. 32비트로 확장하기 위해서 기존의 커넥터 핀을 2층 구조로 만들어 기존의 ISA 카드는 1층의 36핀 호환 커넥터를 사용하고 2층을 90핀 전용 커넥터로 만들었다. 기존의 ISA에 비하여 향상된 33M바이트의 전송 성능과 버스 마스터링 기능을 지원하고 있습니다.


VL(VESA Local) Bus

MCA/EISA 방식이 기존의 ISA에 비해서는 무척 뛰어난 구조이긴 하지만 고가의 방식으로 일반 컴퓨터 사용자에게는 큰 의미를 주지 못한 방식이며 그 성능도 획기적이지는 못하였다.1990년 초에 VESA에서는 프로세서와 직접 연결될 수 있는 버스 규격을 제안하였고 이것을 로컬버스(Local Bus)의 표준으로 채택하여 VL Bus라는 명칭이 사용되게 되었다. 실제로 VESA 그룹은 그래픽/비데오 관련 협회이며 로컬 버스의 성격상 그래픽 성능의 향상을 위한 요구가 컷기 때문에 이들 그룹이 참여하게 된 것이다. VL 버스는 기존의 16비트 ISA 버스에 확장 슬롯을 추가로 연결하는 방식으로 프로세서와 동일한 속도로 동작하며 32비트로 데이터를 전송할 수 있기 때문에 100MB/s 이상의 동작 속도를 가지며, 최대로 3개의 주변기기를 지원하고 일반적으로는 하드 드라이브의 제어기와 그래픽 카드용으로 두개의 확장 슬롯만을 지원하며 여러 개의 확장 슬롯을 사용하는 경우에 각각의 슬롯에서 사용하는 최대 전송 속도의 합이 100MB/s로 제한된다는 단점을 가지고 있다. 또한, 프로세서의 클럭이 향상되는 경우에 버스 규격도 따라 올라가기 때문에 성능이 급격히 향상되지만 반대로 확장 장치가 제대로 지원해 주지 못하는 문제점이 발생하게 된다. 실제로 33MHz 이하의 동작 속도를 갖는 386, 486 컴퓨터에 한정적으로 사용되게 되었다.


ISA 호환 규격 버스 비교

 

ISA

MCA

EISA

VESA

설명

어드레스 라인

24

24/32

32

32

메인 메모리의 주소를 지정하기 위한 라인수

데이터 라인

8/16

16/32

32

32

정보를 보내기 위한 라인수(일반적인 비트수)

버스 클럭

8MHz

10MHz

8MHz

33MHz

시간당 신호의 개수

버스 대역폭

8-16MB/s

20-40MB/s

32MB/s

132MB/s

메모리와 CPU 사이의 전송 속도

I/O 전송 속도

2MB/s

20MB/s

32MB/s

132MB/s

메모리와 I/O 사이의 전송 속도

I/O 버퍼

1KB

64KB

64KB

64KB

CPU가 I/O 장치에 제어 신호를 보낼 수 있는 공간의 크기

인터럽트 공유

불가

가능

가능

가능

-

버스제어

중앙처리

중앙처리

분산처리

분산처리

버스마스터링 방법

버스마스터링

CPU,DMA

각장치

각장치

각장치

-

주변장치연결수

12

12

12

3

확장장치 개수


[현재의 메인 보드에서는 ISA, PCI, AGP 확장 슬롯을 기본적으로 제공하고 있으며, EISA는 과거 웍스테이션 계열에서 사용되었지만 현재는 거의 사용되지 않고 있다. 또한, ISA 마져도 최근 출시된 메인 보드에서는 지원이 되지 않는 경우가 간혹 존재한다.]


PCI(Peripheral Component Interface)

인텔을 중심으로 하여 IBM, Compaq, Epson 등 160여개의 업체가 참여하여 만든 새로운 규격이다. 별도의 독립된 고속의 PCI 칩세트를 이용하여 버스를 독립시켜 프로세서의 클럭에 영향을 받지 않도록 하고 32비트 데이터 버스 구조에 33MHz의 동작 속도로 132MB/s의 동작 속도를 구현하고 있으며 프로토콜에 따라서 66MHz의 전송 규격으로 264MB/s의 전송 속도를 가질 수 있지만 일반 컴퓨터에서는 사용되지 않는다. 다중 버스 마스터링 기법을 지원하여 여러 개의 확장 슬롯을 사용하여도 각각의 슬롯에 독자적인 성능을 보장받을 수 있도록 하고 있다. 소프트웨어적으로는 입출력 어드레스와 인터럽트를 자동적으로 설정할 수 있고 동적으로 할당되기 때문에 여러 확장 장치를 이용하면서도 시스템 자원을 효율적으로 공유하여 사용할 수 있도록 설계된 구조이다. 47핀으로 작은 슬롯 크기이기 때문에 상대적으로 확장 보드의 크기가 작고 간편하다는 장점을 가지고 있으며 최대 10개의 확장 슬롯을 지원할 수 있고 PNP 주변장치에 관한 자동 설정 기능과 같은 편리한 기능들을 지원한다.


PCI-X(PCI eXtension)

PCI r2.x 규격에서 PCI66 규격을 지원함에 따라서 최대 256MB의 데이터를 전송할 수 있도록 성능이 향상되었지만 급격히 발전해가는 시스템 규격을 충분히 지원하기에는 역부족이다. 따라서 보다 빠른 동작 속도를 원하게 되었으며 더불어 기존의 시스템과 호환성이 보장이 되어야 했다. 이에 따라 제시된 규격이 PCI-X 규격으로 100MHz 또는 133MHz의 데이터 전송 규격이 추가되었다. PCI-X 시스템에서는 4가지의 PCI 확장 슬롯이 제공된다. 이때 제공되는 슬롯은 표준 규격의 PCI33 5개의 슬롯과 두 배 속도의 PCI66 규격의 3개의 슬롯 그리고 3배 속도인 PCI100 및 4배의 속도인 PCI133 규격이 있다 기본적으로 기존의 슬롯과 모양과 규격은 동일하지만 속도에서만 차이가 나게 된다.
이외에 64bit PCI 슬롯 규격도 함께 대두되고 있으며 동일 클럭 속도에서 기존의 PCI33에 비하여 두배 또는 4배의 데이터를 전송할 수 있게 되었다. 실제로 AGP 4x 전송 능력을 갖추게 된다.


NGIO(Next Generation Input/Output)

인텔에서 PCI와는 별도로 독자적으로 설계한 직렬 통신 규약으로 비교적 원거리의 장치들을 연결할 수 있도록 되어 있으며 버스의 길이도 수미터 까지 확장이 가능하다. 이것은 현재의 통신 규격이 병렬 방식을 각가의 데이터 라인의 벨런스가 중요한 변수로 등장하는 반면에 NGIO는 직렬 방식이기 때문에 밸런스의 문제가 없고 손쉽게 확장이 가능하고 고속화가 쉬운 장점을 갖는다. NGIO에서는 비단 시스템 보드 내부의 데이터 흐름 뿐만 아니라 하드 드라이브와 같은 주변 장치를 위해서도 적용이 가능하며 초기 규격은 2-4GHz의 속도로 250-500M 바이트의 데이터 전송이 가능하다. 이러한 적렬 포트는 여러 개가 병렬로 다시 구성이 될 수 있고 상하 데이터 전송이 구분될 수 있기 때문에 동일한 수준의 이론 데이터 전송 속도를 갖는 PCI 버스 규격 보다는 30-60% 정도 빠른 속도를 가지게 된다.


고속 버스 시스템 비교

 

PCI

PCI-X

NGIO

어드레스 라인

32

32

-

데이터 라인

32

32

1

버스 클럭

33/66MHz

33/66/100/133MHz

2-4GHz

버스 대역폭

132-264MB

132-528MB/s

250-500MB/s

주변장치연결수

PCI33 : 12
PCI66 : 6

PCI33 : 5
PCI66 : 3
PCI100 : 2
PCI133 : 1

n/a


이처럼 컴퓨터에서 사용되는 버스 시스템은 다양하지만 실제로 사용되는 버스는 PCI/ISA/AGP 정도 이다. 따라서 모든 것을 이해할 필요는 없다. 단지 그냥 이런 것이 있구나 하는 수준의 이해가 좋다. 본 글에서는 AGP에 대해서는 별다른 언급을 하지 않았다. 그것은 AGP에 대해서는 보다 심도 있는 이해가 필요하기 때문이다. 다음 글에서는 AGP에 대해서 좀더 알아 보도록 하자.


김민수 /
forby@technoa.co.kr

테크노아의 다른기사 보기  
폰트키우기 폰트줄이기 프린트하기 메일보내기 신고하기
트위터 페이스북 미투데이 요즘 네이버 구글 msn 뒤로가기 위로가기
이 기사에 대한 댓글 이야기 (3)
자동등록방지용 코드를 입력하세요!   
확인
- 200자까지 쓰실 수 있습니다. (현재 0 byte / 최대 400byte)
- 욕설등 인신공격성 글은 삭제 합니다. [운영원칙]
odisei
다시 업굴하실 의향은...
(2003-08-13 14:19:20)
kaienlyh
저에겐 정말로 무한한 정보입니다

감사합니다.

(2002-09-11 09:54:26)
drevil
냉무.
(2002-10-28 17:08:26)
이 기사에 대한 댓글 이야기 (3)
e피플
[e피플] 나이가 대수? 공조냉동기계기능사 필기시험 100점 맞은 NCS교육생
[e피플] 나이가 대수? 공조냉동기계기능사 필기시험 100점 맞은 NCS교육생
나이가 들면 들수록 공부하기가 어렵다는 말이 있다. 더군다나 실업인 상태에서 공부하는 것이라면 부담이 더 클 수 밖에 없다.하지만 이를 비웃듯이 극복하고, 올해 2월 공조냉동기능사...

제호 : 테크노아  |  발행인 : 김필규  |  편집인 : 김필규  |  청소년보호책임자 : 박상규
서울지사 : 서울특별시 구로구 디지털로32가길 18, 7F | 제보 : it@technoa.co.kr
발행소 : 전라북도 전주시 완산구 전룡6길 6 3F | 등록번호 : 전라북도 아00057
등록일자 : 2008년 1월 14일  |  대표전화 : 070-8755-6291  |  FAX : 02-6280-9562
Copyright © 1999-2017 테크노아. All rights reserved. mail to technoa@technoa.co.kr