KR19990084442A - 피씨아이(pci) 버스를 이용한 디바이스의 에러처리방법 - Google Patents

피씨아이(pci) 버스를 이용한 디바이스의 에러처리방법 Download PDF

Info

Publication number
KR19990084442A
KR19990084442A KR1019980016193A KR19980016193A KR19990084442A KR 19990084442 A KR19990084442 A KR 19990084442A KR 1019980016193 A KR1019980016193 A KR 1019980016193A KR 19980016193 A KR19980016193 A KR 19980016193A KR 19990084442 A KR19990084442 A KR 19990084442A
Authority
KR
South Korea
Prior art keywords
pci
eye
bus
signal
occupies
Prior art date
Application number
KR1019980016193A
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 KR1019980016193A priority Critical patent/KR19990084442A/ko
Publication of KR19990084442A publication Critical patent/KR19990084442A/ko

Links

Landscapes

  • Bus Control (AREA)
  • Debugging And Monitoring (AREA)

Abstract

본 발명은 PCI 시스템에 관한 것으로, 특히 불완전한 호환성을 갖는 PCI 디바이스에서 발생된 에러에 의해 정상적인 PCI 디바이스의 동작이 멈추었을 때에 그 에러를 정정하는 방법과 장치에 관한 것이다. 본 발명은 소프트웨어적인 방법으로 에러가 발생된 PCI 디바이스를 정상적으로 구동시킬 수 있는 특징이 있는데, 이러한 특징을 갖는 본 발명의 PCI 시스템은 피씨아이 신호를 생성하여 주변장치와 어드레스신호 및 데이터신호를 주고받는 피씨아이 연결부와, 정상동작시에 어드레스신호와 데이터신호 및 제어신호를 피씨아이 연결부와 교환하고 시스템과 주변장치의 피씨아이 트랜잭션을 제어하는 피씨아이 처리부와, 피씨아이 처리부의 정상동작시에 주변장치가 피씨아이 연결부를 점유하는 기간을 제어하여 주변장치에 의한 피씨아이 버스의 독점을 방지하는 잠복계시논리부(Latency Timer Logic) 그리고, 돌발적인 요인에 의해 에러가 발생된 주변장치가 피씨아이 연결부를 소정의 시간 이상 점유하면 인터럽트신호를 발생시켜 에러가 발생된 주변장치에 의한 피씨아이 버스의 연결상태를 해제시키는 강제인터럽트부를 포함하여 구성되어 있다.

Description

피씨아이(PCI) 버스를 이용한 디바이스의 에러처리방법
본 발명은 PCI 버스를 이용한 디바이스에 관한 것으로, 특히 PCI 버스를 이용한 디바이스의 에러정정방법과 그 장치에 관한 것이다.
PCI 버스는 32비트 주변장치의 인터페이스 버스로 가장 많이 사용되고 있다. PCI 버스는 VESA와 달리 여러 개의 주변장치를 동시에 연결하여 동작시켜도 처리속도의 저하가 없고, VESA 보다 더 많은 주변장치를 컴퓨터에 연결시킬 수 있는 장점이 있다.
그런데, 이러한 PCI 버스는, 이떤 디바이스가 이 PCI 버스를 장악하여 사용하는 중에 에러를 일으키면, 다른 PCI 버스에 연결된 디바이스들도 동작불능에 빠지는 문제가 있다. 이것은 시스템이 전혀 동작하지 않는 시스템다운상태이다.
도 1은 상술한 문제점을 해결하기 위한 종래의 PCI 디바이스의 구성도가 도시된 것이다. 종래의 PCI 디바이스는 잠복타이머논리부(Latency Timer Logic)(20)와, PCI 신호를 생성하는 PCI 연결부(PCI Interface Block)(10)와, 정상작동시 PCI 트랜잭션(transaction)을 통제하고, 어드레스와 데이터를 제공하거나 받는 DMA 엔진과, 버퍼로 구성된 PCI 처리부(30)이 있다.
종래의 PCI 디바이스의 구성은 PCI 버스 상에 3 개의 디바이스가 연결되어 있을 때, 그 중 하나의 디바이스가 PCI 트랜잭션 상에서 에러가 발생하더라도 나머지 디바이스의 동작은 정상적으로 동작하는 것이 원칙이다. 또, PCI 버스 상에 연결된 모든 디바이스는 상기 잠복타이머논리부에 의해 그 PCI 버스를 지속적으로 장악하지 않도록 동작한다.
그런데, 종래의 PCI 디바이스는 다음과 같은 문제점이 있다. PCI 디바이스에서 사용되는 PCI 버스의 규격은 최초에 인텔에 의해 제정된 이후, 기능에 따라 조금씩 버전업되었다. 그 결과, 낮은 버전의 PCI 버스 규격에 맞는 디바이스는 높은 버전의 PCI 버스 규격에 맞지 않는 일이 종종 발생한다. 즉, 도 1의 PCI 연결부(10)가 PCI 2.1 버전에 완전히 호환되지 않으면, 어떤 디바이스가 PCI 버스를 장악한 상태에서 오동작하면, 전체 시스템이 다운되는 결과가 초래된다. 이러한 경우, 잠재타이머논리부(Latency Timer Logic)의 동작도 제대로 이루어지지 않는다.
본 발명은 이러한 문제점을 해결하기 위하여 PCI 버스를 장악하여 동작하는 디바이스의 에러로 인하여 다른 디바이스에 영향을 미치지 않는 에러정정방법과 그러한 에러를 방지하는 PCI 디바이스를 제공하는 데에 그 목적이 있다.
도 1은 종래의 PCI 디바이스의 구조를 간략하게 도시한 블록도.
도 2는 본 발명의 PCI 디바이스의 구조를 간략하게 도시한 블록도.
도 3은 본 발명에 의한 에러정정방법의 동작원리를 도시한 흐름도.
도면의 주요부분에 대한 부호의 설명
100 : PCI 인터페이스부 200 : 강제인터럽트부
210 : 인에이블 레지스터 220 : 버스논리부
230 : 스테이터스 레지스터 300 : 잠복계시논리부
400 : PCI 처리부 410 : 메모리 억세스 엔진
420 : 버퍼 500 : 일체화된 반도체칩
본 발명은 PCI 버스를 사용하는 디바이스의 PCI 호환성의 불완전에 의해 PCI 버스를 장악한 상태에서 에러를 발생하는 것을 방지하여 디바이스의 특성을 개선시키는 것이 특징이다.
본 발명에 의한 PCI 디바이스는 도 2에 도시된 것과 같이 PCI 신호를 생성하는 PCI 인터페이스부(100)와, 시스템과 디바이스의 PCI 트랜잭션을 제어하는 PCI 처리부(400)와, 디바이스에 의한 PCI 버스의 점유시간을 제어하는 잠복계시논리부(300)와, 에러가 발생된 디바이스에 의한 PCI 버스의 연결상태를 해재시키는 강제인터럽트부(200)를 포함하여 구성되어 있다.
이하, 본 발명의 구조에 대해서 첨부된 도 3을 참조하여 설명하도록 한다.
PCI 인터페이스부(100)는 외부의 시스템에 연결되고, PCI신호를 생성하여 어드레스신호 및 데이터신호를 자신에 연결된 시스템과 주고받는다. 즉, PCI 인터페이스부(100)는 메인처리장치에 해당하는 PCI 처리부(400)와 외부의 PCI 시스템을 연결시키는 역할을 담당한다. 이러한 PCI 시스템은 컴퓨터와 같은 것이다.
PCI 처리부(400)는 정상적인 동작시에 PCI 인터페이스부(100)로부터 어드레스신호와 데이터신호를 인가받아 처리하고, 또 자체적인 동작의 결과로 발생된 데이터신호와 어드레스신호를 PCI 인터페이스부(100)로 출력한다. 즉, PCI 처리부(400)는 PCI 인터페이스부(100)를 통해 어드레스신호와 데이터신호를 외부의 컴퓨터와 교환한다.
그리고, PCI 처리부(400)는 메모리억세스엔진부(410)와 버퍼(420)를 포함하여 구성된다. 메모리억세스엔진부(410)는 정상적인 동작시에 PCI 처리부(400)의 PCI 트랜잭션을 제어하고, 어드레스신호와 데이터신호를 PCI 인터페이스부(100)에 인가하며, 또한 PCI 인터페이스부(100)로부터 어드레스신호와 데이터신호를 인가받는다. 그리고, 버퍼(420)는 PCI 인터페이스부(100)로부터 인가받거나, 또는 내부에서 생성된 어드레스신호와 데이터신호를 임시로 저장한다.
잠복계시논리부(300)는 PCI 처리부(400)의 정상적인 동작시에 본 발명에 의한 디바이스가 PCI 버스(bus)를 점유하는 기간을 제어한다. 그 결과, 디바이스는 정상적인 동작 시에 PCI 버스를 독점하여 사용할 수 없게 된다. 그래서, PCI 인터페이스부(100)에 연결된 모든 디바이스가 비슷한 버스 점유율을 가지고 동작한다. 이러한 잠복계시논리부(300)와 PCI 처리부(400)는 하나의 반도체칩(500)으로 일체화될 수도 있다.
강제인터럽트부(200)는 최대점유기간을 설정하는 인에이블레지스터(210)와, 그 최대점유기간 이상으로 디바이스가 PCI 버스를 점유했을 때에 인터럽트신호를 발생시키는 스테이터스(status) 레지스터와, 동시에 디바이스의 출력신호를 불능시키는 버스논리부(220)를 포함하여 구성되어 있다. 이 때, 최대점유기간은 디바이스가 PCI 버스를 최대로 점유할 수 있는 기간을 의미한다.
인에이블레지스터(210)(Enable Resistor)는 디바이스에 의한 PCI 버스의 최대점유기간을 설정한다. 즉, 인에이블레지스터(210) 디바이스가 PCI 버스를 독점하여 사용할 수 있는 시간의 최대허용값을 설정한다.
그리고, 스테이터스 레지스터(230)는 인에이블레지스터(210)에서 설정된 최대점유기간 이상으로 디바이스가 PCI 버스를 점유했을 때에 인터럽트신호를 발생시킨다. 즉, 디바이스가 PCI 버스를 점유하는 시간이 인에이블레지스터(210)에서 설정된 최대점유기간을 초과했을 때에 스테이터스 레지스터(230)에서 인터럽트신호가 발생된다.
스테이터스 레지스터(230)에서 인터럽트신호가 발생되었을 때, 즉 인에이블레지스터(210)에서 설정된 최대점유기간 이상으로 디바이스가 PCI 버스를 점유했을 때에 버스논리부(220)는 최대점유기간 이상으로 PCI 버스를 점유한 디바이스의 출력신호를 불능(disable)시킨다. 다시 말해, 에러가 발생된 디바이스가 PCI 버스를 점유하는 시간이 인에이블레지스터(210)에서 설정된 최대점유기간을 초과했을 때에 버스논리부(220)는 그 에러가 발생된 디바이스의 출력신호를 불능시킨다.
본 발명은 PCI 디바이스 중에 주동작(master operation)시 PCI 호환성의 불완전에 의한 디바이스의 동작 중단을 개선시키는 것이다.
PCI 버스의 사용 여부에 대한 판단은 표 1에 표기된 Frame# 과 Irdy# 단자의 출력신호에 의해 결정된다. PCI 버스의 Frame# 과 Irdy# 단자의 출력이 모두 하이(high : 1)일 때에 PCI 버스는 미사용중이고, 두 단자의 출력 중에 하나만 하이(high : 1)이거나, 두 단자의 출력이 모두 로(low : 0)일 때에는 PCI 버스가 사용중인 것이다.
Frame # Irdy # 상태
0 0 사용중(bus busy)
0 1
1 0
1 1 미사용중(bus idle)
본 발명의 PCI 시스템의 동작원리는 도 3에 도시된 흐름도와 같이 강제인터럽트부(200)의 인에이블레지스터(210)에 최대점유기간을 설정하는 단계와, PCI 인터페이스부(100)에 연결된 디바이스가 PCI 버스를 점유하는 시간을 검지하는 단계와, 그 디바이스가 PCI 버스를 점유하고 있는 시간이 최대점유기간을 초과했는 지의 여부를 판별하는 단계와, 디바이스에 의한 PCI 버스의 점유시간이 최대점유기간을 초과했을 때에 스테이터스 레지스터(230)에서 인터럽트신호를 발생시키는 단계와, 동시에 그 디바이스의 출력신호를 불능시키는 단계, 그리고 그 디바이스 내의 모든 레지스터를 초기화시키는 단계를 포함하여 구성된다.
이하, 본 발명의 동작원리에 대해서 첨부된 도 2과 도 3을 더불어 참조하여 설명하도록 한다.
먼저, 소정의 디바이스에 의해 PCI 버스의 점유가 허용되는 한계치인 최대점유기간이 도 2에 도시된 강제인터럽트부(200)의 인에이블레지스터(210)에 설정된다. 이 때, 기존의 명령어나, 운영체제에 호환성을 유지하기 위해 그 최대점유기간은 초단위로 설정한다.
만약, PCI 시스템이 정상적으로 동작한다면, 인에이블레지스터(210)는 PCI 동작에 큰 영향을 미치지 않는다. 그러나, 디바이스 중의 어느 하나가 PCI 버스를 점유한 상태에서 에러에 의해 동작이 멈추면, 그 에러가 발생된 디바이스에 의한 PCI 버스의 점유시간은 최대점유기간을 초과하게 된다.
바로 이 때, 강제인터럽트부(200)의 스테이터스 레지스터(230) 내부의 관련된 비트가 모두 하이(high : 1)로 설정되고, 그 결과 인터럽트 신호가 스테이터스 레지스터(230)에 의해 발생된다. 또, 이 때 에러가 발생된 디바이스에서 PCI 버스를 점유하던 모든 출력신호는 불능화(disable)되고, 그 결과 디바이스에 의한 PCI 버스의 점유가 해제된다.
그러면, PCI 시스템은 스테이터스 레지스터(230)에 의해 발생된 인터럽트신호를 인가받아 에러가 발생된 디바이스를 억세스하여 강제인터럽트부(200)의 over bus occupation bit 가 "1"인지의 여부를 확인한 후, "1"이면 소프트웨어적인 리셋(reset)을 수행한다. 이러한 리셋의 결과, 본 발명에 의한 PCI 디바이스는 에러를 발생시켰던 내부 조건들이 모두 초기화되므로, 다시 정상적으로 동작할 수 있게 된다.
본 발명에 의한 PCI 시스템은 PCI 시스템에 100% 호환되지 않는 다른 PCI 디바이스에서 발생된 에러에 의해 전체 시스템의 동작이 멈추었을 때에도 소프트웨어적인 방법으로 그 에러를 극복할 수 있는 효과가 있다. 그리고, 본 발명에 의한 PCI 시스템은 불완전한 PCI 디바이스에 의해 정상적인 다른 PCI 디바이스의 동작이 제한되는 것을 방지하는 효과도 있다. 따라서, 본 발명은 종래보다 더 안정적인 PCI시스템을 구현할 수 있다.

Claims (7)

  1. 피씨아이(PCI) 버스에 복수개의 디바이스가 연결된 피씨아이 인터페이스 시스템에 있어서,
    피씨아이 신호를 생성하여 상기 디바이스와 어드레스신호 및 데이터신호를 주고받는 피씨아이 연결부;
    정상동작시에 상기 어드레스신호와 데이터신호 및 제어신호를 상기 피씨아이 연결부와 교환하고 상기 시스템과 디바이스의 피씨아이 트랜잭션을 제어하는 피씨아이 처리부;
    상기 피씨아이 처리부의 정상동작시에 상기 디바이스가 상기 피씨아이 연결부를 점유하는 기간을 제어하여 상기 디바이스에 의한 피씨아이 버스의 독점을 방지하는 잠복계시논리부(Latency Timer Logic); 그리고,
    돌발적인 요인에 의해 에러가 발생된 디바이스가 피씨아이 연결부를 소정의 시간 이상 점유하면 인터럽트신호를 발생시켜 상기 에러가 발생된 디바이스에 의한 상기 피씨아이 버스의 연결상태를 해제시키는 강제인터럽트부를 포함하여 구성된 피씨아이 인터페이스 시스템.
  2. 제 1 항에 있어서, 상기 잠복계시논리부와 피씨아이처리부가 하나의 반도체칩으로 일체화된 것을 특징으로 하는 피씨아이 인터페이스 시스템.
  3. 제 1 항에 있어서, 상기 강제인터럽트부는
    상기 디바이스에 의한 피씨아이 버스의 최대 점유기간을 설정하는 인에이블레지스터;
    상기 인에이블레지스터에서 설정된 점유기간 이상으로 상기 디바이스가 피씨아이 버스를 점유했을 때에 인터럽트신호를 발생시키는 스테이터스 레지스터; 그리고,
    상기 인에이블레지스터에서 설정된 점유기간 이상으로 상기 디바이스가 피씨아이 버스를 점유했을 때에 상기 디바이스의 출력신호를 불능(disable)시키는 버스논리부가 포함된 것을 특징으로 하는 피씨아이 인터페이스 시스템.
  4. 제 1 항에 있어서, 상기 피씨아이 처리부는
    정상동작시에 상기 피씨아이 트랜잭션을 제어하고 상기 어드레스신호와 데이터신호를 상기 피씨아이 연결부와 주고받는 메모리억세스엔진부; 그리고,
    상기 어드레스신호와 데이터신호를 임시로 저장하는 버퍼로 구성된 것을 특징으로 하는 피씨아이 인터페이스 시스템.
  5. 디바이스와 피씨아이 버스를 포함하여 구성된 피씨아이 인터페이스 시스템의 에러처리방법에 있어서,
    상기 디바이스가 상기 피씨아이 버스를 점유할 수 있는 최대 기간을 설정하는 단계;
    PCI 인터페이스부에 연결된 디바이스가 PCI 버스를 점유하는 시간을 검지하는 단계와,
    상기 디바이스가 상기 최대 기간 이상 상기 피씨아이 버스를 점유했는 지의 여부를 판별하는 단계;
    상기 디바이스가 상기 최대 기간 이상 상기 피씨아이 버스를 점유했을 때에 인터럽트신호를 발생시키는 단계;
    상기 디바이스의 출력신호를 불능시키는 단계; 그리고,
    상기 디바이스 내의 모든 레지스터를 초기화시키는 단계를 포함하여 구성된 피씨아이 인터페이스 시스템의 에러처리방법.
  6. 제 5 항에 있어서, 상기 디바이스 내의 모든 레지스터를 초기화시키는 단계는 상기 디바이스를 소프트웨어적으로 리셋시키는 단계임을 특징으로 하는 피씨아이 인터페이스 시스템의 에러처리방법.
  7. 제 5 항에 있어서, 상기 인터럽트신호를 발생시키는 단계와 디바이스의 출력신호를 불능시키는 단계가 동시에 이루어지는 것을 특징으로 하는 피씨아이 인터페이스 시스템의 에러처리방법.
KR1019980016193A 1998-05-06 1998-05-06 피씨아이(pci) 버스를 이용한 디바이스의 에러처리방법 KR19990084442A (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1019980016193A KR19990084442A (ko) 1998-05-06 1998-05-06 피씨아이(pci) 버스를 이용한 디바이스의 에러처리방법

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1019980016193A KR19990084442A (ko) 1998-05-06 1998-05-06 피씨아이(pci) 버스를 이용한 디바이스의 에러처리방법

Publications (1)

Publication Number Publication Date
KR19990084442A true KR19990084442A (ko) 1999-12-06

Family

ID=65891357

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1019980016193A KR19990084442A (ko) 1998-05-06 1998-05-06 피씨아이(pci) 버스를 이용한 디바이스의 에러처리방법

Country Status (1)

Country Link
KR (1) KR19990084442A (ko)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100345309B1 (ko) * 2000-06-24 2002-07-25 주식회사 큐리텔 칩외부 접속 및 에러복구 가능한 메모리/주변장치의제어장치 및 그 방법
WO2012040658A1 (en) * 2010-09-24 2012-03-29 Intel Corporation Method and system of live error recovery

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100345309B1 (ko) * 2000-06-24 2002-07-25 주식회사 큐리텔 칩외부 접속 및 에러복구 가능한 메모리/주변장치의제어장치 및 그 방법
WO2012040658A1 (en) * 2010-09-24 2012-03-29 Intel Corporation Method and system of live error recovery
US8782461B2 (en) 2010-09-24 2014-07-15 Intel Corporation Method and system of live error recovery

Similar Documents

Publication Publication Date Title
US10983924B2 (en) Information processing device and processor
US6496890B1 (en) Bus hang prevention and recovery for data communication systems employing a shared bus interface with multiple bus masters
JP3327559B2 (ja) フィーチャ・カードのコンピュータへの非破壊的活状態挿入およびコンピュータからの非破壊的活状態取外しを可能にする方法およびシステム
JP3790713B2 (ja) 共用バス上の装置に対するトランザクションの選択的宛先設定
JP3284311B2 (ja) データ処理システムにおける通信バス制御装置およびバス制御方法
EP0535793B1 (en) Method for managing data transfers in a computing system having a dual bus structure
KR19990082733A (ko) 리셋후의pci시스템과어댑터의필수요건
JPH07311716A (ja) コンピュータシステム、コンピュータシステムに周辺装置をインタフェースさせるための並列ポート回路、およびその動作方法
CZ290956B6 (cs) Počítačový systém
US6988155B2 (en) Aggregation of hardware events in multi-node systems
US6606677B1 (en) High speed interrupt controller
KR19990084442A (ko) 피씨아이(pci) 버스를 이용한 디바이스의 에러처리방법
US7099984B2 (en) Method and system for handling interrupts and other communications in the presence of multiple processing sets
US20040010644A1 (en) System and method for providing improved bus utilization via target directed completion
KR0154840B1 (ko) 피씨아이-피씨아이 브리지의 버퍼 플러쉬 제어 장치
US5867676A (en) Reset circuit for a peripheral component interconnect bus
JPH10320349A (ja) プロセッサ及び当該プロセッサを用いるデータ転送システム
US7051140B2 (en) Connector that enables aggregation of independent system resources across PCI/PCI-X bus and interlocked method for aggregating independent system resources across PCI/PCI-X bus
JP2560968B2 (ja) コンピュータシステム
KR100238175B1 (ko) 버스 제어논리장치
JP2007502476A (ja) ホストコントローラ
JP2928036B2 (ja) 論理半導体集積回路
JPS6347842A (ja) 増設入出力装置の割込み方式
JP2003345515A (ja) ディスク制御装置、ストレージシステム、及びその制御方法
JPH0131224B2 (ko)

Legal Events

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