KR100667954B1 - 설계유연성을 가지는 피시아이 타겟컨트롤러 - Google Patents

설계유연성을 가지는 피시아이 타겟컨트롤러 Download PDF

Info

Publication number
KR100667954B1
KR100667954B1 KR1020050108234A KR20050108234A KR100667954B1 KR 100667954 B1 KR100667954 B1 KR 100667954B1 KR 1020050108234 A KR1020050108234 A KR 1020050108234A KR 20050108234 A KR20050108234 A KR 20050108234A KR 100667954 B1 KR100667954 B1 KR 100667954B1
Authority
KR
South Korea
Prior art keywords
pci
data
interface
memory
target controller
Prior art date
Application number
KR1020050108234A
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 KR1020050108234A priority Critical patent/KR100667954B1/ko
Priority to PCT/KR2006/000610 priority patent/WO2007055444A1/en
Application granted granted Critical
Publication of KR100667954B1 publication Critical patent/KR100667954B1/ko

Links

Images

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/38Information transfer, e.g. on bus
    • G06F13/382Information transfer, e.g. on bus using universal interface adapter
    • G06F13/385Information transfer, e.g. on bus using universal interface adapter for adaptation of a particular data processing system to different peripheral devices
    • 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/16Handling requests for interconnection or transfer for access to memory bus
    • G06F13/1668Details of memory controller
    • G06F13/1673Details of memory controller using buffers
    • 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]

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

본 발명은 설계유연성을 가지는 PCI타겟컨트롤러에 관한 것으로서; 버스마스터가 타겟디바이스에 메모리쓰기 명령을 요구하면, 타겟디바이스는 응답한 후, 버스마스터로부터 데이터를 받아 로컬버스를 통해 로컬디바이스에 쓰기하고, 메모리읽기 명령의 경우, 버스마스터가 타겟디바이스에 메모리읽기 명령을 요구하면 타겟디바이스는 응답 후, 로컬버스를 통해 로컬디바이스로부터 데이터를 읽어 들이는 프로토콜을 가지는 PCI 2.1, PCI 2.2, PCI 2.3 를 포함하는 PCI 2.x 타겟컨트롤러(C)에 있어서, 상기 타겟컨트롤러(C) 내부에 프리페치용 메모리나 FIFO 를 따로 두지 않고 외부에 구비함으로서 설계하고자 하는 응용보드의 요청에 의하여 메모리의 크기를 선택적으로 설정할 수 있는 것을 특징으로 한다.
PCI, 규약, 컨트롤러, 설계

Description

설계유연성을 가지는 피시아이 타겟컨트롤러{A target controller of peripheral component interconnection having versatilities in design}
도 1 은 일반적인 PCI 2.2 프로토콜을 설명하기 위한 설명도.
도 2 는 일반적인 PCI 2.2 의 지연전송 메커니즘을 설명하는 설명도.
도 3 은 종래로부터의 일반적인 PCI타겟컨트롤러의 내부구조를 도시하는 블록다이아그램.
도 4 는 본 발명의 설계유연성을 가지는 PCI타겟컨트롤러가 적용되어 응용칩과 함께 구성된 보드의 일 실시예의 평면도.
도 5 는 본 발명의 설계유연성을 가지는 PCI타겟컨트롤러의 전체 블록다이아그램.
도 6 은 본 발명의 설계유연성을 가지는 PCI타겟컨트롤러의 내부블록다이아그램도.
도 7 은 본 발명의 설계유연성을 가지는 PCI타겟컨트롤러에서의 메모리쓰기 명령어를 로컬 디바이스로 수행하는 경우의 타이밍다이아그램.
도 8 은 메모리일기 명령어를 로컬디바이스로 수행하는 경우의 타이밍다이아그램.
도 9 는 도 6 의 본 발명의 설계유연성을 가지는 PCI타겟컨트롤러의 버퍼블 록을 더욱 상세하게 도시하는 다이아그램.
도 10 은 PCI인터페이스를 통해 입력된 어드레스를 저장한 다음 로컬인터페이스로 전송하는 과정을 도시하는 데이터처리도.
도 11 ,12 는 PCI인터페이스를 통해 입력된 쓰기데이터를 저장한 다음 로컬인터페이스로 전송하는 과정을 도시하는 데이터처리도.
도 13,14 는 로컬인터페이스로부터 읽어 들인 메모리읽기데이터를 PCI인터페이스를 통해 전송하는 데이터처리도.
도 15 는 도 6 의 컨피규레이션 레지스터와 컨트롤블록의 구조를 도시하는 블록다이아그램.
도 16 은 도 6 의 데이터사이즈 블록의 구성을 도시하는 블록다이아그램도이다.
* 도면의 주요부분에 대한 부호의 설명*
C: 컨트롤러
50: EEPROM
60: 버퍼블록
본 발명은 설계유연성을 가지는 PCI타겟컨트롤러에 관한 것으로서, 더욱 상세히는 프리페치 메모리의 크기와 프리페치(Pre-fetch)되어지는 데이터의 양을 직 접 설계자가 유연하게 선택할 수 있는 개선된 구성의 PCI 2.2 및 그 호환의 타켓디바이스의 구조의 제공에 관한 것이다.
지난 10년간 PCI 2.2 는 입출력인터페이스(Peripheral component interconnection)의 표준안으로 자리 잡아왔다.
하지만 근래에 들어와서 주변장치들이 고성능이 됨으로 인해 보다 고속의 데이터 전송이 가능한 입출력 표준안의 필요성이 대두 되었고, 2000년에 제안된 PCI-X는 현재 서버나 워크스테이션 등에 널리 사용되어지고 있으며 PCI-X는 PCI 2.2 프로토콜도 함께 지원하도록 규정되어 있다.
현재 대부분의 개인용컴퓨터는 PCI 2.2 버스를 지원하고 있으며 셋탑박스, 통신 시스템, 실시간 시스템 등에 아직 응용되어지고 있다. 그리고 다른 다양한 분야에서도 꾸준히 사용되어 질 것으로 생각된다.
본 발명은 종래로부터의 PCI 2.2 구조에 비하여 개선된 구성을 가지도록 프리페치 메모리를 외부에 두게 함으로써, 메모리의 크기를 사용자 맘대로 조정할 수 있고, 또한 ‘즉시 전송’만 지원하는 응용 시스템을 제작하는 경우 메모리를 달지 않아도 되는 하드웨어 구조를 제안한다.
또한, 본 발명에서는 메모리읽기, 메모리읽기라인, 그리고 메모리읽기멀티플 명령어를 요청받은 타겟디바이스가 프리페치할 데이터가 얼마인지를 유동적으로 세팅할 수 있는 방법을 제공한다.
부가적으로 발명에서는, 구성이 간단한 로컬인터페이스를 가지면서도 PCI 프 로토콜을 최대로 지원할 수 있는 PCI 2.2 컨트롤러를 제공함으로서 PCI 2.2를 전혀 모르는 사용자도, 쉽게 PCI인터페이스를 지원할 수 있도록 한 프로토콜 변환기를 제공한다.
전체적으로 본 발명은 프리페치 메모리의 크기와 프리페치되어 질 데이터의 양을 직접 설계자가 유연하게 선택할 수 있을 뿐 아니라, 간단한 로컬인터페이스를 가지면서도 PCI프로토콜을 정상적으로 지원하고 데이터의 전송 시, 지연 없이 정상적으로 전송할 수 구조를 가지는 PCI 2.2 타겟디바이스의 구조를 제안하는 것을 주된 목적으로 하고 있다.
상술하는 목적을 달성하기 위하여 안출된 본 발명의 설계유연성을 가지는 PCI타겟컨트롤러는;
버스마스터가 타겟디바이스에 메모리쓰기 명령을 요구하면, 타겟디바이스는 응답한 후, 버스마스터로부터 데이터를 받아 로컬버스를 통해 로컬디바이스에 쓰기하고, 메모리읽기 명령의 경우, 버스마스터가 타겟디바이스에 메모리읽기 명령을 요구하면 타겟디바이스는 응답 후, 로컬버스를 통해 로컬디바이스로부터 데이터를 읽어 들이는 프로토콜을 가지는 PCI 2.1, PCI 2.2, PCI 2.3 를 포함하는 PCI 2.x 타겟컨트롤러(C)에 있어서,
상기 타겟컨트롤러(C) 내부에 프리페치 메모리나 FIFO 를 따로 두지 않고 외부에 구비함으로서 설계하고자 하는 응용보드의 요청에 의하여 메모리의 크기를 선택적으로 설정할 수 있는 것을 기본적인 사상으로 한다.
또한, PCI 2.1, PCI 2.2, PCI 2.3 를 포함하는 PCI 2.x 타겟컨트롤러(C)에 있어서, 상기 타겟컨트롤러(C)의 내부에 프리페치용 FIFO 를 설정하지 않는 대신,
상기 PCI 프로토콜을 정상적으로 지원하고 데이터의 전송 시, 자체 지연 없이 정상적으로 전송할 수 있도록 파이프라인동작을 위하여 2개의 버퍼만을 이용하는 것은 주요한 구성상의 특징이다.
이에 부가하여 PCI 2.1, PCI 2.2, PCI 2.3 를 포함하는 PCI 2.x 타겟컨트롤러(C)에 있어서, 상기 타겟컨트롤러(C)는 메모리 읽기 명령어에 대해 “즉시응답”과 “지연응답”이 가능하고,
상기 지연응답은 상기 PCI 타겟디바이스가 동작할 때 3가지의 메모리 읽기 명령어에 따라 프리페치를 해두는 데이터의 크기가 다른 경우, 상기 데이터의 크기를 유동적으로 바꿀 수 있는 레지스터를 상기 PCI 타겟디바이스의 컨피규레이션 레지스터에 더 구비하는 것과,
PCI인터페이스를 위한 신호선과 로컬인터페이스를 위한 신호선, 시스템이 초기화 될 때 EEPROM(50)의 정보들이 시스템 초기화 과정에서 타겟컨트롤러(C)의 내부레지스터로 세팅되도록 EEPROM인터페이스 신호선, 프리페치되어진 데이터를 듀얼포트메모리(M)에 저장하기 위한 메모리인터페이스 신호선을 구비하고,
버퍼블록(60), PCI인터페이스와 로컬인터페이스의 신호를 생성 및 감지하기 위한 PCI인터페이스 컨트롤유니트(61)와 로컬인터페이스 컨트롤유니트(62), PCI인터페이스스테이트머신(63,64), 데이터사이즈카운터(65), 컨피규레이션레지스터 컨트롤블록(66)을 가지는 것 또한 주요한 특징이다.
이하의 부수된 도면과 함께 본 발명의 설계유연성을 가지는 PCI타겟컨트롤러를 종래 구성과 비교하여 더욱 상세하게 설명한다.
종래구성으로서 도 1 은 일반적인 PCI 2.2 프로토콜을 설명하기 위한 설명도, 도 2 는 일반적인 PCI 2.2 의 지연전송 매커니즘을 설명하는 설명도, 도 3 은 PCI타겟컨트롤러의 내부구조를 도시하는 블록다이아그램을 개시하고 각각의 종래 구성의 문제점을 약술한 후 본 발명의 설계유연성을 가지는 PCI타겟컨트롤러를 더욱 상세하게 설명한다.
[종래기술의 문제점1]
도 1 은 간단한 PCI 2.2 프로토콜로서,
버스마스터A(A)가 타겟디바이스B(B)에 메모리쓰기 명령을 요구(1)하면,
타겟디바이스B(B)는 즉시 응답(2)을 한 후, 버스마스터A(A)로부터 데이터를 받아 로컬버스(LB)를 통해 로컬디바이스(C)에 쓰기(3)를 한다.
다음은 메모리읽기 명령어로, 도 1 (b)를 보면,
버스마스터A(A)가 타겟디바이스B(B)에 메모리읽기 명령을 요구(1')하면, 타겟디바이스B(B)는 즉시 응답 후, 로컬버스(LB)를 통해 로컬디바이스(C)로부터 데이터를 읽어들인다.(2').
읽어온 데이터는 PCI버스(PB)를 통해 원래의 버스마스터A(A)로 전송되어진다(3'). 버스마스터A(A)가 타겟디바이스B(B)에 메모리읽기 명령을 요구한 경우, 타겟디바이스B(B)는 데이터를 전송해주기 위해서 내부적으로 데이터를 준비할 시간이 필요하다.
특히 도 1 (a)에 보듯이 로컬버스(LB)를 가지는 PCI장치인 경우,
로컬디바이스C(C)로부터 데이터를 읽어 와야 할 시간이 필요하기 때문에 그 동안 아무런 데이터 전송 없이 PCI버스(PB)를 점유하고 있어야 한다. PCI 를 통해 데이터를 바로바로 전송(이를 ‘즉시전송’(Immediate transaction)이라 함)할 수 있을 만큼 로컬버스(LB)가 느리지 않다면 전송 효율이 많이 떨어지지 않을 것이다.
그러나, 만약 로컬버스(LB)가 느리게 동작하는 경우라면 데이터를 전송하기 위해 PCI 버스(PB)를 장시간 점령해야하기 때문에 버스의 사용 효율은 떨어지게 된다.
PCI 2.2 사양에서는 이렇게 내부적으로 데이터 준비 시간이 오래 걸리는 타겟 장치를 위해 도 2와 같이 “지연전송(Delayed transactio)” 메커니즘을 제안하고 있다.
도2(a)에서 보면 먼저 버스마스터A(A)가 타겟디바이스B(B)에 메모리읽기 명령을 요구(1-1)하면, 타겟디바이스B(B)는 아직 데이터 전송을 할 수 없음을 알리기 위해 리트라이종료로 프로토콜을 종료(2-1)한다.
여기서 리트라이란 PCI타겟디바이스(C)가 즉시 데이터를 전송 할 수 없을 때 프로토콜을 종료하는 방법으로 이 후 마스터디바이스는 꼭 다시 데이터 전송을 요청을 해야 한다. 그 후, 타겟디바이스B(B)는 기억 해둔 어드레스를 이용하여 로컬디바이스(C)로부터 자체적으로 데이터를 준비(3-1)(이를 '프리페치(pre-fetch)'라고 한다 )하기 시작한다. 그리고 프리페치되어지는 데이터는 내부 메모리에 저장을 해둔다.
만약 도 2 (b)와 같이, 타겟디바이스(B)에 의해 전송할 데이터가 준비된 후에 버스마스터A(A)가 똑같은 명령을 다시 요구(1-2)해 오면 PCI버스(PB)를 통해 데이터를 전송(2-2)해준다. 이때 데이터 전송 중에도 프리페치는 계속 할 수 있다.
만약 버스마스터A(A)가 메모리읽기 요구를 중단하면, 프리페치는 중지되고 또한 이미 프리페치되어진 데이터는 폐기되어 질 것이다. 이러한 프리페치를 이용한 지연전송은 타겟디바이스B(B)가 버스마스터A(A)에 의해 요청된 데이터를 자체적으로 준비를 하는 동안 버스마스터A(A)가 다른 타겟디바이스와 데이터 전송을 하거나, 혹은 버스마스터B(B)가 PCI버스(PB)를 사용할 수 있기 때문에 PCI버스(PB)의 사용 효율을 향상시킬 수 있다. 따라서 PLX 와 같은 대부분의 PCI 디바이스는 지연전송을 지원한다.
도 3은 일반적인 PCI 2.2 타겟디바이스(TD)의 내부 블록다이아그램이다.
타겟디바이스(TD)가 PCI인터페이스(PI)로부터 메모리쓰기 요청을 받는 경우, 데이터는 Write FIFO(10)에 저장이 되어진 후, 로컬인터페이스(11)를 통해 로컬디바이스(LD)로 전송된다.
반대로 메모리읽기 요청을 받은 경우, 로컬 인터페이스(11)를 통해 로컬디바이스(LD)로부터 데이터를 읽은 다음, Read FIFO(12)에 저장을 하게 되고, 이는 다시 PCI인터페이스(PI)로 전송된다. 이때 Read FIFO(12)는 ‘즉시 전송’일 경우에는 그냥 버퍼로, ‘지연 전송’일 경우에는 프리페치 메모리로 사용되어 진다. 하지만 이렇게 칩 내부에 프리페치 FIFO를 두는 경우 하드웨어의 부피도 크질 뿐 아니라, FIFO 의 크기를 임의로 바꿀 수가 없다.
다시 말해 로컬디바이스(LD)의 용도에 따라 프리페치 메모리의 크기가 다를 수 있기 때문이다. 예를 들어 많은 양의 데이터를 전송하는 그래픽컨트롤러의 경우, 프리페치 메모리가 크기가 어느 정도 이상이 되어야 최대 성능을 낼 수가 있다.
또한 반대로 간단한 입출력보드인 경우, 프리페치 메모리의 크기가 적어도 상관없을 수 있다. 또한 ‘즉시전송’ 방법으로 데이터를 전송하는 경우 프리페치 메모리는 불필요한 부분이 될 수도 있다.
따라서 본 발명에서는 프리페치 메모리를 외부에 두게 함으로써, 메모리의 크기를 사용자 맘대로 조정할 수 있고, 또한 ‘즉시전송’만 지원하는 응용 시스템을 제작하는 경우 메모리를 달지 않아도 되는 하드웨어 구조를 제안하고자 하는 것이다.
[종래기술의 다른 문제점2]
PCI 2.2의 메모리읽기 명령어는 모두 3개가 존재하며, 단순한 메모리읽기(Memory Read), 메모리읽기라인(Memory Read Line), 그리고 메모리읽기멀티플(Memory Read Multiple) 명령어이다.
버스마스터로부터 메모리읽기 명령어를 요청 받은 경우에 타겟디바이스는 32비트 데이터 한 개만 프리페치하면 되나, 메모리읽기라인 명령어의 경우에는 캐시라인 크기(Cache line size) 만큼의 데이터를 준비해야된다.
여기서 캐시라인 크기라 함은 메인CPU의 내부 데이터캐시메모리의 라인의 크기를 나타내며 개인용컴퓨터에서 일반적인 경우 16바이트 정도이다. 즉 32비트 데 이터 4개를 프리페치 하면 된다.
마지막으로 메모리읽기멀티플 명령을 요청받은 경우에는 캐시라인 크기의 정수 배 만큼 데이터를 준비해야된다. 그러나 마스터디바이스가 타겟디바이스에 데이터전송을 요구하는 경우 이 규칙을 지키지 않아도 된다.
예를 들어 마스터디바이스가 메모리읽기 명령어를 이용해 캐시라인 크기보다도 큰 데이터를 읽어도 되고, 메모리읽기멀티플을 이용해 32비트 데이터만 읽어도 된다. 그러나 성능 향상을 위해서는 위의 규칙들을 지키는 것이 좋다.
만약, PCI인터페이스를 지원하는 응용보드를 제작하였는데, 그 응용보드의 응용 특성상 CPU가 주기적으로 32비트 데이터 12개 혹은 16개 정도씩 읽는다고 가정한다.
타겟디바이스가 “즉시 응답”을 하는 경우, 마스터디바이스가 프로토콜을 끝낼 때 까지, 타겟디바이스는 데이터를 전송해주면 되기 때문에 상관없다. 그러나 지연 전송을 지원하는 타겟디바이스인 경우에는 미리 데이터를 프리페치를 해두어야 한다.
위의 가정대로라면 타겟디바이스는 마스터디바이스로부터 데이터 요청이 오면 항상 32비트 데이터 16 개 씩을 프리페치해두면 아주 효율적일 것이다. 마스터 디바이스는 타겟디바이스에게 프리페치를 요청하기 위해서는 메모리읽기 라인 명령어를 사용하면 4 번에 나누어 요청을 해야 하기 때문에 전송 효율이 떨어진다.
또한 메모리읽기멀티플 명령어를 사용하면 필요 이상으로 프리페치를 하기 때문에 로컬영역의 효율 또한 떨어진다.
그래서 본 발명에서는 메모리읽기, 메모리읽기라인, 그리고 메모리읽기멀티플 명령어를 요청 받은 타겟디바이스가 프리페치할 데이터가 얼마인지를 유동적으로 세팅할 수 있는 방법을 제공한다.
[종래기술의 문제점3]
응용 보드 설계자들이 설계된 특정 응용보드를 개인용컴퓨터로 연결하기 위해서는 UART 혹은 프린터 포트를 주로 이용하고 있다.
또한 기존의 방식인 ISA나 VESA는 비교적 방법이 간단하나 이제 더 이상 PC의 I/O 보드로 사용되지 않고, 모든 PC에 표준으로 사용되고 있는 PCI 2.2 인터페이스를 통해 PC에 연결하는 경우, 많은 장점을 가지고 있음에도 불구하고, PCI 2.2가 기존 방식과 달리 가지고 있는 기술적 어려움을 가지고 있다. 따라서 PCI 2.2 인터페이스를 지원하는 칩셋이나 응용보드를 제작하려는 경우, PCI 2.2 프로토콜을 완벽하게 분석해야하는 부담이 생기게 된다.
따라서 본 발명에서는, 아주 간단한 로컬인터페이스를 가지는 PCI 2.2 타겟 컨트롤러의 구조를 제안한다.
본 발명의 PCI 2.2 컨트롤러는 간단한 구조를 가짐에도 불구하고 PCI프로토콜을 최대로 지원할 수 있으며, 그에 따라 PCI 2.2를 전혀 모르는 사용자도, 쉽게 PCI인터페이스를 지원 할 수 있는 프로토콜 변환기로서 도 4 이하와 함꼐 설명한다.
도 4 의 예시적으로 보드(BD) 상에 다른 응용칩(AC)과 함께 장착된 본 발명의 설계유연성을 가지는 PCI타겟타겟컨트롤러(C)는 응용칩의 소켓처럼 장착되어 있 음을 알 수 있고 다른 많은 변환된 응용이 가능함은 물론이다.
도 5 는 본 발명의 타겟컨트롤러(C)의 전체 블록다이아그램이다.
도면의 좌측은 PCI인터페이스를 위한 신호이며 오른쪽은 로컬인터페이스를 위한 신호이다.
PCI인터페이스를 위한 신호는 PCI 2.2 규약이며, 로컬디바이스(LD)와의 로컬인터페이스를 위한 신호는 본 발명에서 제안되는 것이다.
또한 시스템이 초기화 될 때 EEPROM(50)의 정보들이 시스템 초기화 과정에서 타겟컨트롤러(C)의 내부레지스터로 세팅되어 지는데, 이를 위한 EEPROM인터페이스 신호도 제공한다. 그리고 마지막으로 프리페치되어진 데이터를 듀얼포트메모리(M)에 저장하기 위한 메모리인터페이스도 있다.
도 6 은 타겟컨트롤러(C)의 내부 블록다이아그램으로서 블록별로 순차적으로 설명한다.
[버퍼블록]
버퍼블록(60)은 전송할 어드레스와 명령어, 그리고 데이터와 'Byte Enable' 를 저장하여, 다른 인터페이스로 보내어주는 부분이다.
PCI인터페이스의 AD[31:0] 신호를 통해 버스마스터가 보내어주는 어드레스와 데이터는 저장되어 진 후, 다시 로컬인터페이스의 L_AD[31:0] 신호를 통해 로컬디바이스(LD)로 전송되어 진다.
또한 PCI버스마스터가 타겟컨트롤러(C)로부터 데이터읽기를 요구하면,
타겟컨트롤러(C)는 로컬인터페이스의 L_AD[31:0] 신호를 통해 로컬디바이스 (LD)로부터 받은 데이터를 저장한다. 이들 데이터는 다시 PCI인터페이스의 AD[31:0] 신호를 통해 전송한다. 즉, PCI인터페이스의 AD[31:0] 신호와 로컬인터페이스의 L_AD[31:0] 신호는 양방향을 가지는 신호핀이다.
마찬가지로 PCI인터페이스의 CBEn[3:0] 신호를 통해 버스마스터가 보내어주는 명령어와 Byte Enable 값은 저장되어지고, 다시 이들은 로컬인터페이스의 L_CBEn[3:0] 신호를 통해 로컬디바이스(LD)로 전송되어 진다. 여기서 'Byte Enable' 이라 함은 전송되는 32비트, 즉 4바이트의 데이터 중 유효한 바이트를 표시하기 위한 신호로 항상 버스마스터가 전송한다.
PCI에서는 데이터 전송 시, 발생하는 에러를 감지하기 위해, 데이터를 전송하는 디바이스는 Parity 에러 체크(parity error check)용 비트인, PAR 신호를 전송하게 되어있다. 또한 데이터와 PAR을 수신한 디바이스는 패러티 에러 체크를 한 후 에러가 발생하면 이를 알려야 되는데 PERR 신호를 사용한다. 이 블록에서는 PAR을 생성하고 또 Parity Error를 체크 한다.
[컨트롤유니트]
PCI인터페이스와 로컬인터페이스의 신호를 생성 및 감지하기 위한 블록으로서 각각 PCI인터페이스 컨트롤유니트(61)와 로컬인터페이스 컨트롤유니트(62)이다.
블록 63,64 는 인터페이스의 신호 조합을 통해 PCI 2.2 프로토콜 변환기를 동작시키는 부분으로 가장 핵심이 되는 부분으로서 PCI인터페이스 스테이트머신이다. 이때 두개의 스테이트머신(State Machine)은 각 인터페이스를 담당하기 위해 독립적으로 수행되며, 필요한 신호는 서로 교환하도록 되어 있다.
65는 프리페치되어진 데이터의 크기를 계산하는 데이터사이즈카운터로서 후술한다. 66 은 컨피규레이션레지스터 컨트롤블록이다.
[타이밍 다이아그램]
도 7 은 메모리쓰기 명령어를 로컬디바이스(LD)로 수행할 때의 타이밍 다이아그램이다. 타겟컨트롤러(C)는 L_REQ 신호를 드라이브하여 데이터 전송의 시작을 알리면서 어드레스와 명령어를 전송한다(a). 그리고 5개의 데이터를 전송(b-f)한다.
이때 타겟컨트롤러(C)는 L_REQ 신호를 이용하여 전송할 데이터가 있음을 알리고, 로컬디바이스(LD)는 L_ACK 신호를 이용하여 데이터를 수신하였음을 알린다. 즉, L_REQ 신호와 L_ACK 신호가 동시에 액티브(active)할 때 로컬디바이스(LD)로 데이터가 전송이 된다. 그리고 마지막 데이터를 전송할 때는 L_LAST 신호를 이용한다(f),
도 8 은 메모리읽기 명령어를 로컬디바이스(LD)에 수행하는 경우이다.
타겟컨트롤러(C)는 로컬디바이스(LD)로부터 데이터를 읽어 PCI인터페이스로 전송할 것이다. 이때 로컬디바이스(LD)는 L_REQ 신호를 이용하여 전송할 데이터가 있음을 알리고, 타겟컨트롤러(C)는 L_REQ 신호를 이용하여 데이터를 전송하였음을 알린다.
마지막으로 컨피규레이션레지스터 컨트롤블록(66)은, 컨피규레이션 레지스터(Configuration Register)와 그를 제어하는 블록으로 구성되어 있다. 컨피규레이션 레지스터는 PCI디바이스(PD)의 상태와 컨트롤 비트를 제어하기 위해 필요한 레지스 터로 내부 구성은 PCI 2.2 규격에 정해져 있다.
지금부터 상술한 본 발명의 중요 블록들을 더욱 상세하게 설명한다.
[버퍼블록]
도 9는 버퍼블록(60)의 세부 다이아그램이다. 여기서 명령어와 Byte Enable을 저장하는 부분과 Parity 관련 부분은 제외된 그림이다. 즉 어드레스와 데이터를 저장하고 전달하는 부분만 도시하고 있다. 본 발명의 타겟컨트롤러(C)에서의 버퍼블록(60)의 가장 큰 특징은 아래와 같다.
(1) 프리페치용 메모리를 외부에 달 수 있도록 함으로서, 내부에는 데이터용 FIFO는 존재하지 않는다.
(2) 한쪽 인터페이스에서 전송되는 데이터가 끊기지 않고 다른 인터페이스로 전송될 수 있도록 두개의 버퍼를 구비하고, 이 두 개의 버퍼는 파이프라인으로 동작하도록 하였다. 이 파이프라인 구조는, 프리페치용 메모리를 내부에 두지 않는 대신 꼭 필요한 블록이다.
(3) 메모리쓰기용 버퍼와 읽기용 버퍼를 따로 두지 않고 공용하여 하드웨어의 부피를 줄였다.
(4) ‘즉시 전송’과 ‘지연 전송’을 모두 지원할 수 있도록 하였으며, 이는 타겟컨트롤러(C)를 사용하는 응용 보드 설계자에 의해 결정되어 질수 있다.
기본적인 구조는 다음과 같다.
도 9 의 좌측은 PCI 2.2 외부 인터페이스로 슬롯을 통해 PC의 메인보드(도시하지 않음)로 연결되는 부분이다. 어드레스와 데이터를 전송하는 AD[31:0] 신호는 (1-0) 라인을 통해 타겟컨트롤러(C) 내부로 연결된다.
이때 3상 버퍼 TB_P(Tri-state Buffer for PCI Interface)는, AD[31:0] 신호가 EPCI22PC의 입력으로 사용될 때는 Off가 되며 반대로 타겟컨트롤러(C)가 AD[31:0] 신호를 드라이브 할 때는 On 된다.
우측 하단부는 로컬디바이스(LD)와의 인터페이스이다. 로컬디바이스(LD)로 어드레스와 데이터를 전송하는 L_AD[31:0] 신호 역시, AD[31:0] 신호와 마찬가지로 TB_L(Tri-state Buffer for Local Interface)에 의해 입출력으로 사용되어 진다. 마지막으로 프리페치용 메모리로 사용되어지는 듀얼포트메모리(M)와 연결되는 인터페이스를 지원하기 위해 M_RD[31:0]와 M_RFD[31:0] 신호가 있다.
M_RFD[31:0] 신호는 로컬디바이스(LD)로부터 프리페치한 다음 메모리에 저장하기 위한 데이터를 전송하기 위해 사용되어 진다. M_RD[31:0]는 듀얼포트 메모리(M)에 저장된 데이터를 다시 읽어 PCI인터페이스로 보내기 위해 사용되어지는 신호선이다.
자세한 동작 과정을 도 10 에서부터 14 까지 도시한다.
먼저, 도 10은 PCI인터페이스를 통해 입력된 어드레스를 저장한 다음, 다시 로컬인터페이스로 보내는 과정이다. 굵은 음영의 선들이 이 과정을 동작하기 위해 동작되는 신호선들이다. 여기서 Buffer_Adr 은 어드레스를 저장해두는 버퍼이다.
도 11과 도 12는 PCI인터페이스를 통해 입력된 쓰기데이터를 저장하는 경우이다. 여기서 Buffer_1과 Buffer_2는 데이터를 저장하기 위한 버퍼이다.
상기와 같이, 버퍼를 두개 두는 이유는 버퍼 2 개를 파이프라인으로 동작을 시켜야 최대 성능을 낼 수 있기 때문이다.
즉, 버퍼를 한 개만 두게 되면, 이 버퍼가 빌 때 까지 다른 데이터를 받아들일 수 가 없어 전송 속도가 떨어지게 된다. 하지만 2 개의 버퍼를 두고 컨트롤하면, 파이프라인으로 동작하기 때문에 한 쪽에서 전송되는 데이터를 지연 없이 다른 쪽 인터페이스로 전송 할 수 있는 것이다.
도 11은 버퍼가 모두 비어 있는 경우에 메모리쓰기 데이터가 타겟컨트롤러(C)로 입력된 경우로 Buffer_1에 데이터를 저장한 다음 로컬인터페이스로 전송하는 상황을 굵은 음영 선들로서 보여주고 있다.
도 12는 Buffer_1에 저장된 데이터가 아직 로컬인터페이스로 전송되지 않았기 때문에, Buffer_2에 저장해두는 상황을 굵은 음영 선들로 보여주고 있다. 만약 후에 Buffer_1이 비게 되면 내부 신호선 (1-6), (1-7)을 통해 Buffer_2의 데이터는 Buffer_1로 이동 될 것이다.
도 13과 도 14는 로컬인터페이스로부터 읽어드린 메모리읽기 데이터를 PCI인터페이스를 통해 전송하는 경우이다.
여기서 Buffer_1과 Buffer_2의 사용은 입력소스가 로컬인터페이스라는 것 외에는 메모리쓰기 명령어와 똑같다.
도 12는 “즉시 전송”으로 타겟컨트롤러(C)가 응답하는 경우로 굵은 음영 선들로 데이터가 전송되는걸 보여준다. 그러나 도 13은 타겟컨트롤러(C)가 “지연 전송”으로 응답하는 경우이다.
로컬인터페이스로부터 읽어지는 데이터들은 바로 PCI인터페이스로 전송되는 것이 아니라, 내부신호선인 (1-13), (1-14), 그리고 M_PFD[31:0] 외부신호선을 통해 프리페치용 메모리로 저장된다. 후에 타겟컨트롤러(C)가 프리페치한 데이터를 외부 PCI인터페이스로 전송을 하고자 할 때는 외부신호선 M_RD[31:0]과 내부신호선 (1-16)을 통해 전송하면 된다. 이때 PCI인터페이스로 데이터를 전송하면서 프리페치는 계속 이루어 질 수 있다. 이를 위해 듀얼포트메모리(M)를 사용하게 된다.
이와 같이, 타겟컨트롤러(C)가 “즉시 전송”으로 응답할지, “지연 전송”으로 응답 할지를 구별할 수 있어야 하며, 이는 도 6의 L_PF_EN(Local Signal for Pre-Fetch Enable)라는 신호선을 통해 줄 수 있다. 만약 L_PF_EN가 '0' 이면 외부에 메모리를 둘 필요가 없지만, '1' 인 경우에는 반드시 외부에 프리페치 메모리를 두어야 할 것이다.
[컨피규레이션레지스터 컨트롤블록]
도 15는 컨피규레이션레지스터 컨트롤블록(66)을 도시한다.
3개의 메모리 읽기 명령어인, 메모리읽기(Memory Read), 메모리읽기라인(Memory Read Line), 그리고 메모리읽기멀티플(Memory Read Multiple) 명령어에 따라 프리페치를 해야 될 데이터의 크기는 각각 다르다.
일반적으로 PCI 2.2 스펙에 규정되어진 크기만큼 데이터를 프리페치하도록 설계하기도 하고, 때에 따라서는 설계자가 임의의 양만큼 할 수 있도록 설계를 하기도 한다.
본 발명에서는 메모리읽기, 메모리읽기라인, 그리고 메모리읽기멀티플 명령어를 요청 받은 타겟디바이스(TD)가 프리페치할 데이터가 얼마인지를 유동적으로 세팅할 수 있도록 하였다. 즉 응용 보드나 혹은 응용 칩을 만드는 설계자가, 응용 분야에 맞도록 직접 세팅하도록 하였다. 예를 들어 그래픽카드인 경우 항상 한 번에 많은 양의 데이터를 읽어 가므로 한 번에 많은 데이터를 프리페치하는 것이 유리할 것이다. 그리고 각 명령어 별로 프리페치할 데이터의 양을 다르게 세팅하도록 하여, 3 개의 명령어를 다양하게 사용할 수 있도록 하였다.
도 15의 컨피규레이션레지스터 컨트롤블록(66) 내부에 PDSR4MR(Prefetch Data Size Register for Memory Read Command), PDSR4MR(Prefetch Data Size Register for Memory Read Line Command), 그리고 PDSR4MR(Prefetch Data Size Register for Memory Read Multiple Command)를 두었고,
시스템 초기화 과정에서 EEPROM(50)에 저장된 값으로 초기화 시키도록 하였다. 물론 시스템이 정상적으로 동작한 후에도, 디바이스 드라이버에 의해 이 값들을 조정 할 수 있다.
[데이터사이즈카운터]
PCI 2.2 타겟디바이스(TD)가 메모리읽기 명령어를 수행할 때, 비록 로컬디바이스(LD)로부터 프리페치해 온 데이터일지라도 버스마스터가 프로토콜을 종료함으로 인해 전송되지 못할 수도 있다.
이러한 상황이 PCI 2.2 프로토콜을 어기는 경우는 아니기 때문에 문제는 없지만, 때에 따라 로컬 CPU가 데이터의 전송 여부를 알기를 원할 수도 있다.
이를 위해 본 발명에서는 PCI 2.2 타겟디바이스(TD)에서는 메모리읽기 명령어에 대한 데이터 전송이 끝나고 나면, 로컬디바이스(LD)에 읽어온 (혹은 프리페치 한) 데이터 중 몇 개를 PCI 버스로 전송하지 못하고 폐기하였는 가를 알려주도록 하였다. 타겟컨트롤러(C)의 설계 특성상 “즉시 응답”으로 응답할 경우에는 최대 2개까지 전송이 못 될 수도 있고, “지연 응답”으로 응답하며 프리페치를 해둔 경우 많은 양의 데이터가 전송되지 못할 수도 있다.
이를 위해 내부적으로 몇 개의 데이터를 읽었는지 또 몇 개의 데이터를 전송했는지를 계산하여, 현재 전송되지 않은 데이터가 몇 개인지를 계산하는 블록을 마지막으로 도 16 과 같이 데이터사이즈카운터(65)를 제공한다.
또한, 이 결과를 로컬디바이스(LD)에게 알리기 위해 L_PF_LOST[9:0]와 L_PF_LOST_EN 신호를 정의 하였다.
도 16 에서 컨트롤 블록은 ALU에 ‘증가’, ‘감소’, ‘그대로’ 신호를 보내도록 되어있다. 예를 들어, 타겟컨트롤러(C)가 “즉시 전송”으로 응답하는 경우를 들어보면, 현재 두개의 내부 버퍼 Buffer_1과 Buffer_2가 모두 비어 있는 경우에 새로운 데이터가 PCI인터페이스로부터 저장이 되면 “증가” 신호를 발생시켜 ALU의 결과를 ‘1’로 만들 것이다.
그 다음 다시 PCI인터페이스로부터 데이터가 입력되지만 로컬디바이스(LD)가 데이터를 읽어 가지 않는 다면, “증가” 신호를 발생시켜 ALU의 결과를 ‘2’로 만들 것이다.
두개의 데이터가 타겟컨트롤러(C)의 내부에 찼으므로 더 이상 PCI인터페이스로부터 데이터 수신을 할 수 없으므로 기다려야 한다. 그 동안 “그대로” 신호를 발생시켜 ALU의 값을 그대로 ‘2’로 유지한다. 얼마 후 로컬디바이스(LD)가 데이 터를 읽어 가면 “감소” 신호를 발생시켜 ALU의 결과를 ‘1’로 바꾼다.
즉, PCI인터페이스에서 데이터 전송과 관계되는 두 신호 IRDY와 TRDY 그리고 로컬인터페이스에서 데이터 전송과 관계되는 두 신호 L_REQ와 L_ACK의 신호를 관찰하여 현재 내부 버퍼에 저장된 데이터의 크기를 계산하는 것이다.
프로토콜이 종료되고 나면 도 7에서 보듯이, L_PF_LOST[9:0] 신호를 이용하여 전송되지 못한 데이터의 크기를 L_PF_LOST_EN 신호와 함께 로컬디바이스(LD)로 알려주면 된다.
하지만 타겟컨트롤러(C)가 “지연 전송”으로 응답하는 경우는 좀 다르다. 이 경우는 프리페치를 하기 때문에, 로컬인터페이스로부터 한 개의 데이터를 읽어 올 때 마다 “증가”신호를 발생 시킬 것이다. 결국 프로토콜이 종료되고 나면, L_PF_LOST[9:0] 신호는 “프리페치해온 데이터 중 전송하지 못한 데이터의 양”이라는 의미를 가질 것이다.
이는 로컬디바이스(LD)에게 정확히 전송된 데이터의 양을 알려줄 수 있는 방법이다. 타겟컨트롤러(C)가 “즉시 전송”으로 응답을 하든, “지연 전송”으로 응답을 하던 상관이 없게 된다.
이상과 같은 구성을 가지는 본 발명의 설계유연성을 가지는 PCI타겟컨트롤러로서 ‘즉시 전송’과 ‘지연 전송’을 모두 지원하는 PCI 2.2 프로토콜 변환 장치를 이용하는 경우, 설계자는 응용 시스템의 특징에 따라 프리페치 메모리의 크기를 결정 할 수 있다.
또한 3개의 메모리 읽기 명령에 따른 프리페치 데이터 크기를 직접 결정할 수도 있게 되어 간단한 로컬 인터페이스를 가지면서도 PCI 프로토콜을 정상적으로 지원하고 데이터의 전송 역시 자체 지연 없이 정상적으로 전송할 수 있는 시스템을 보다 간편하고 또 유연하게 설계할 수 있는 유용성을 가진다.

Claims (7)

  1. 버스마스터가 타겟디바이스에 메모리쓰기 명령을 요구하면, 타겟디바이스는 응답한 후, 버스마스터로부터 데이터를 받아 로컬버스를 통해 로컬디바이스에 쓰기하고, 메모리읽기 명령의 경우, 버스마스터가 타겟디바이스에 메모리읽기 명령을 요구하면 타겟디바이스는 응답 후, 로컬버스를 통해 로컬디바이스로부터 데이터를 읽어 들이는 프로토콜을 가지는 PCI 2.1, PCI 2.2, PCI 2.3 를 포함하는 PCI 2.x 타겟컨트롤러(C)에 있어서,
    상기 타겟컨트롤러(C) 내부에 프리페치용 메모리나 FIFO 를 따로 두지 않고 외부에 구비함으로서 설계하고자 하는 응용보드의 요청에 의하여 메모리의 크기를 선택적으로 설정할 수 있는 것을 특징으로 하는 설계유연성을 가지는 PCI타겟컨트롤러.
  2. PCI 2.1, PCI 2.2, PCI 2.3 를 포함하는 PCI 2.x 컨트롤러(C)에 있어서,
    상기 타겟컨트롤러(C)의 내부에 프리페치용 FIFO 를 설정하지 않는 대신,
    상기 PCI 프로토콜을 정상적으로 지원하고 데이터의 전송 시, 자체 지연 없이 정상적으로 전송할 수 있도록 파이프라인동작을 위하여 2개의 버퍼 만을 이용하는 것을 특징으로 하는 설계유연성을 가지는 PCI타겟컨트롤러.
  3. PCI 2.1, PCI 2.2, PCI 2.3 를 포함하는 PCI 2.x 타겟컨트롤러(C)에 있어서,
    상기 타겟컨트롤러(C)는 메모리 읽기 명령어에 대해 “즉시 응답”과 “지연 응답”이 가능하고,
    상기 지연응답은 상기 PCI 타겟디바이스가 동작할 때 3가지의 메모리 읽기 명령어에 따라 프리페치를 해두는 데이터의 크기가 다른 경우, 상기 데이터의 크기를 유동적으로 바꿀 수 있는 레지스터를 상기 PCI 타겟디바이스의 컨피규레이션 레지스터에 더 구비하는 것을 특징으로 하는 설계유연성을 가지는 PCI타겟컨트롤러.
  4. PCI인터페이스를 위한 신호선과 로컬인터페이스를 위한 신호선, 시스템이 초기화 될 때 EEPROM(50)의 정보들이 시스템 초기화 과정에서 타겟컨트롤러(C)의 내부레지스터로 세팅되도록 EEPROM인터페이스 신호선, 프리페치되어진 데이터를 듀얼포트메모리(M)에 저장하기 위한 메모리인터페이스 신호선을 구비하고,
    버퍼블록(60), PCI인터페이스와 로컬인터페이스의 신호를 생성 및 감지하기 위한 PCI인터페이스 컨트롤유니트(61)와 로컬인터페이스 컨트롤유니트(62), PCI인터페이스스테이트머신(63,64), 데이터사이즈카운터(65), 컨피규레이션레지스터 컨트롤블록(66)을 가지는 것을 특징으로 하는 설계유연성을 가지는 PCI타겟컨트롤러.
  5. 제 1 항 내지 4 항 기재의 어느 한 항에 있어서,
    로컬디바이스가 “즉시 응답”으로 동작할 수 있을 만큼 충분히 속도가 되는 경우, 상기 “지연 전송”을 지원하기 위해 타겟컨트롤러(C) 외부에 프리페치메모 리를 구비하지 않고, 상기 프리페치메모리가 존재하지 않음을 상기 타겟컨트롤러(C)에 고지하는 신호선을 더 가질 수 있는 것을 특징으로 하는 설계유연성을 가지는 PCI타겟컨트롤러.
  6. 제 1 항 내지 4 항 기재의 어느 한 항에 있어서,
    PCI타겟 디바이스가 메모리읽기 명령어를 수행할 때, 로컬디바이스로부터 읽어온 데이터일지라도 버스마스터가 프로토콜을 종료함으로 인해 전송되지 못하고,
    상기 “즉시 응답”으로 응답할 경우의 최대 2개까지의 전송불가와, “지연 응답”으로 응답하며 프리페치를 해둔 경우의 대용량의 데이터의 전송불가 시에,
    로컬 CPU가 데이터의 전송 여부를 알기를 원하는 경우, 상기 타겟컨트롤러(C)는 메모리읽기 명령어에 대한 데이터 전송이 끝나고 나면, 로컬디바이스에 읽어온 (혹은 프리페치 한) 데이터 중 몇 개를 PCI 버스를 전송하지 못하고 폐기한지를 고지하고,
    상기 고지를 위하여 내부적으로 읽은 데이터의 수와 전송된 데이터의 수를 계산하여, 현재 전송되지 않은 데이터가 몇 개인지를 계산하는 블록을 더 가지고,상기 로컬디바이스에게 알리기 위해 2 개의 신호를 추가적으로 정의하는 것을 특징으로 하는 설계유연성을 가지는 PCI타겟컨트롤러.
  7. 제 1 항 내지 4 항 기재의 어느 한 항에 있어서,
    메모리읽기 명령어를 위해 내부에 존재하는 상기 타겟컨트롤러(C)의 버퍼블 록의 2개의 파이프라인 버퍼는, 메모리쓰기에도 같이 사용되어지도록 공용되는 것을 특징으로 하는 설계유연성을 가지는 PCI타겟컨트롤러.
KR1020050108234A 2005-11-11 2005-11-11 설계유연성을 가지는 피시아이 타겟컨트롤러 KR100667954B1 (ko)

Priority Applications (2)

Application Number Priority Date Filing Date Title
KR1020050108234A KR100667954B1 (ko) 2005-11-11 2005-11-11 설계유연성을 가지는 피시아이 타겟컨트롤러
PCT/KR2006/000610 WO2007055444A1 (en) 2005-11-11 2006-02-22 A target controller of peripheral component interconnection having versatilities in design

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020050108234A KR100667954B1 (ko) 2005-11-11 2005-11-11 설계유연성을 가지는 피시아이 타겟컨트롤러

Publications (1)

Publication Number Publication Date
KR100667954B1 true KR100667954B1 (ko) 2007-01-11

Family

ID=37867848

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020050108234A KR100667954B1 (ko) 2005-11-11 2005-11-11 설계유연성을 가지는 피시아이 타겟컨트롤러

Country Status (2)

Country Link
KR (1) KR100667954B1 (ko)
WO (1) WO2007055444A1 (ko)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113890783A (zh) * 2021-09-27 2022-01-04 北京微纳星空科技有限公司 一种数据收发系统、方法、电子设备及存储介质

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5860142A (en) 1996-12-27 1999-01-12 Compaq Computer Corporation Method and apparatus for mapping the memory system of a computer for maximizing memory usage
US5983306A (en) 1996-06-28 1999-11-09 Lsi Logic Corporation PCI bridge with upstream memory prefetch and buffered memory write disable address ranges
JP2003345649A (ja) 2002-05-24 2003-12-05 Hitachi Ltd データ処理装置及びデータ記録媒体
US6883057B2 (en) 2002-02-15 2005-04-19 International Business Machines Corporation Method and apparatus embedding PCI-to-PCI bridge functions in PCI devices using PCI configuration header type 0
KR20050089117A (ko) * 2004-03-03 2005-09-07 학교법인 영남학원 Pci 2.2에서 프리페치 요구를 이용한 데이터 전송방법

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5608876A (en) * 1995-05-22 1997-03-04 International Business Machines Corporation Add-in board with enable-disable expansion ROM for PCI bus computers
KR100257045B1 (ko) * 1998-02-06 2000-05-15 윤종용 피씨아이 버스의 신호를 감시하는 방법 및 장치
KR100274425B1 (ko) * 1998-07-21 2000-12-15 김춘호 피씨아이 로컬버스 제어장치
JP2005235057A (ja) * 2004-02-23 2005-09-02 Sony Corp バス制御方法,バス制御システム,イニシエータ,ターゲットおよびそのコンピュータプログラム

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5983306A (en) 1996-06-28 1999-11-09 Lsi Logic Corporation PCI bridge with upstream memory prefetch and buffered memory write disable address ranges
US5860142A (en) 1996-12-27 1999-01-12 Compaq Computer Corporation Method and apparatus for mapping the memory system of a computer for maximizing memory usage
US6883057B2 (en) 2002-02-15 2005-04-19 International Business Machines Corporation Method and apparatus embedding PCI-to-PCI bridge functions in PCI devices using PCI configuration header type 0
JP2003345649A (ja) 2002-05-24 2003-12-05 Hitachi Ltd データ処理装置及びデータ記録媒体
KR20050089117A (ko) * 2004-03-03 2005-09-07 학교법인 영남학원 Pci 2.2에서 프리페치 요구를 이용한 데이터 전송방법

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113890783A (zh) * 2021-09-27 2022-01-04 北京微纳星空科技有限公司 一种数据收发系统、方法、电子设备及存储介质
CN113890783B (zh) * 2021-09-27 2022-07-26 北京微纳星空科技有限公司 一种数据收发系统、方法、电子设备及存储介质

Also Published As

Publication number Publication date
WO2007055444A1 (en) 2007-05-18

Similar Documents

Publication Publication Date Title
US6073190A (en) System for dynamic buffer allocation comprising control logic for controlling a first address buffer and a first data buffer as a matched pair
US7930470B2 (en) System to enable a memory hub device to manage thermal conditions at a memory device level transparent to a memory controller
US6243769B1 (en) Dynamic buffer allocation for a computer system
US5544346A (en) System having a bus interface unit for overriding a normal arbitration scheme after a system resource device has already gained control of a bus
US7930469B2 (en) System to provide memory system power reduction without reducing overall memory system performance
US5919254A (en) Method and apparatus for switching between source-synchronous and common clock data transfer modes in a multiple processing system
US20090193200A1 (en) System to Support a Full Asynchronous Interface within a Memory Hub Device
EP1535169B1 (en) Improved inter-processor communication system for communication between processors
CN101118526A (zh) 用于控制猝发存储器存取的存储器接口及其控制方法
US5710939A (en) Bidirectional parallel data port having multiple data transfer rates, master, and slave operation modes, and selective data transfer termination
JP4323241B2 (ja) バス帯域幅を増加させるためのメモリコントローラ、これを利用したデータ伝送方法及びこれを備えるコンピュータシステム
US6990550B2 (en) Transaction duration management in a USB host controller
US8284792B2 (en) Buffer minimization in interface controller
US6883057B2 (en) Method and apparatus embedding PCI-to-PCI bridge functions in PCI devices using PCI configuration header type 0
US6754780B1 (en) Providing data in response to a read command that maintains cache line alignment
KR100667954B1 (ko) 설계유연성을 가지는 피시아이 타겟컨트롤러
KR100449721B1 (ko) 서로 다른 데이터 버스 폭을 갖는 장치들을 위한인터페이스 및 이를 이용한 데이터 전송방법
CN100552647C (zh) 具有多阶快取架构的处理模块
US6327636B1 (en) Ordering for pipelined read transfers
US6910093B2 (en) Method of pacing and disconnecting transfers on a source strobed bus
US20030014596A1 (en) Streaming data cache for multimedia processor
JP2004103003A (ja) 指令とデータを暫時保存及び移転できるアクセス構造及び方法
US6240474B1 (en) Pipelined read transfers
KR100218625B1 (ko) 정보 처리 시스템 및 그의 데이타 전송 방법
KR20050064568A (ko) 온-칩 직렬 주변장치 버스 시스템 및 그 운용방법

Legal Events

Date Code Title Description
A201 Request for examination
E701 Decision to grant or registration of patent right
GRNT Written decision to grant
FPAY Annual fee payment

Payment date: 20121207

Year of fee payment: 7

FPAY Annual fee payment

Payment date: 20131230

Year of fee payment: 8

FPAY Annual fee payment

Payment date: 20141218

Year of fee payment: 9

FPAY Annual fee payment

Payment date: 20151222

Year of fee payment: 10

LAPS Lapse due to unpaid annual fee