KR100591243B1 - 온-칩 직렬 주변장치 버스 시스템 및 그 운용방법 - Google Patents
온-칩 직렬 주변장치 버스 시스템 및 그 운용방법 Download PDFInfo
- Publication number
- KR100591243B1 KR100591243B1 KR1020030096040A KR20030096040A KR100591243B1 KR 100591243 B1 KR100591243 B1 KR 100591243B1 KR 1020030096040 A KR1020030096040 A KR 1020030096040A KR 20030096040 A KR20030096040 A KR 20030096040A KR 100591243 B1 KR100591243 B1 KR 100591243B1
- Authority
- KR
- South Korea
- Prior art keywords
- bus
- serial peripheral
- chip serial
- transaction
- read
- Prior art date
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/38—Information transfer, e.g. on bus
- G06F13/40—Bus structure
- G06F13/4004—Coupling between buses
- G06F13/4027—Coupling between buses using bus bridges
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Computer Hardware Design (AREA)
- Bus Control (AREA)
Abstract
본 발명은 온-칩 직렬 주변장치 버스 시스템 및 그 운용방법에 관한 것으로, 고속의 병렬버스를 사용하는 시스템에 복수개의 저속 주변장치를 접속할 경우 저속 주변장치를 접속하기 위한 기존의 병렬 버스 시스템을 직렬 버스화 함으로써, 병렬 버스의 버스폭을 줄임과 동시에 저속 주변장치의 접속 응답 시간을 개선하고, 주변장치 연결 버스 시스템의 동시 천이 빈도를 줄여 전체 시스템의 성능을 향상할 수 있는 효과가 있다.
병렬 버스, 직렬 버스, 온-칩 직렬 주변장치 버스, 점대점 연결, 온-칩 직렬 주변장치 제어기
Description
도 1은 종래의 온-칩 시스템 버스의 구조를 나타낸 전체적인 블록 구성도.
도 2는 도 1의 온-칩 시스템 버스의 동작 방식을 설명하기 위한 타이밍도.
도 3은 본 발명의 일 실시예에 따른 온-칩 직렬 주변장치 버스 시스템을 나타낸 전체적인 블록 구성도.
도 4는 본 발명의 일 실시예에 따른 신호의 단일 읽기/쓰기를 구체적으로 설명하기 위한 상세 타이밍도.
도 5는 본 발명의 일 실시예에 따른 신호의 복수 읽기/쓰기를 구체적으로 설명하기 위한 상세 타이밍도.
도 6은 본 발명의 일 실시예에 따른 온-칩 직렬 주변장치 버스 시스템의 제어기를 구체적으로 나타낸 블록 구성도.
도 7은 본 발명의 일 실시예에 따른 온-칩 직렬 주변장치 제어기의 고속 병렬 시스템 버스 트랜잭션 처리를 설명하기 위한 흐름도.
도 8은 본 발명의 일 실시예에 따른 온-칩 직렬 주변장치 제어기의 직렬 주변장치 버스 트랜잭션 처리를 설명하기 위한 흐름도.
*** 도면의 주요 부분에 대한 부호 설명 ***
100 : 고속 병렬 시스템 버스,
200/1~200/m : 온-칩 직렬 주변장치 버스,
300 : 온-칩 직렬 주변장치 제어기,
310 : 트랜잭션 제어기, 320 : 어드레스 버퍼,
330 : 쓰기 데이터 버퍼, 340 : 읽기 데이터 버퍼,
330 : 쓰기 데이터 버퍼, 340 : 읽기 데이터 버퍼,
삭제
삭제
350 : 읽기/쓰기 트랜잭션 다중화기,
360 : 읽기 데이터 역다중화기,
370 : 읽기/쓰기 트랜잭션 직렬화기,
380 : 읽기 데이터 병렬화기,
400/1~400/m : 온-칩 직렬 주변장치
400/1~400/m : 온-칩 직렬 주변장치
본 발명은 온-칩 직렬 주변장치 버스 시스템 및 그 운용방법에 관한 것으로, 특히 고속의 병렬버스를 사용하는 시스템에 복수개의 저속 주변장치를 접속할 경우 저속 주변장치를 접속하기 위한 기존의 병렬 버스 시스템을 직렬 버스화 함으로써, 병렬 버스의 버스폭을 줄임과 동시에 저속 주변장치의 접속 응답 시간을 개선하고, 주변장치 연결 버스 시스템의 동시 천이 빈도를 줄여 전체 시스템의 성능을 향상할 수 있도록 한 온-칩 직렬 주변장치 버스 시스템 및 그 운용방법에 관한 것이다.
도 1은 종래의 온-칩 시스템 버스의 구조를 나타낸 전체적인 블록 구성도이 고, 도 2는 도 1의 온-칩 시스템 버스의 동작 방식을 설명하기 위한 타이밍도이다.
도 1 및 도 2에 도시한 바와 같이, 종래 기술에 의한 온-칩 시스템 버스 구조는, 고속의 마이크로 프로세서(High-Performance Processor)(11)를 중심으로 고속 메모리 인터페이스(High Speed Memory Interface)(12), 온-칩 메모리(On-Chip Memory)(13) 및 고속 DMA 장치(High-Speed DMA Device)(14) 등이 병렬 시스템 버스(Parallel System Bus)(10)를 통해 서로 연결되어 구성된 고속 병렬 시스템 버스(High Speed Parallel System Bus)와; UART(21), 타이머(Timer)(22), PIO(23) 및 키보드(Keyboard)(24) 등의 저속 주변장치들이 병렬 주변장치 버스(Parallel Peripheral Bus)(20)를 통해 서로 연결되어 구성된 저속 병렬 주변장치 버스(Low Speed Parallel Peripheral Bus)를 고속/저속 병렬 버스 변환 제어기(bridge)(30)로 연결하는 형태로 구성된다.
이러한 상기 고속의 병렬 시스템 버스(High Speed Parallel System Bus)와 저속의 병렬 주변장치 버스(Low Speed Parallel Peripheral Bus)는 동작상의 속도 차이로 인하여 주변장치 버스는 고속 시스템 버스에 대하여 지연된 응답을 출력하게 된다.
일반적으로, 상기 저속 병렬 주변장치 버스(Low Speed Parallel Peripheral Bus)는 외부와 접속하는 장치의 응답이 늦은 관계로 낮은 동작 주파수에서 동작하며, 복수개의 주변 장치가 하나의 주변장치 버스에 연결됨으로 인하여 고속 시스템 버스에서 주변장치로의 요청이 많아질수록 그 응답이 늦어지는 단점이 있다.
또한, 하나의 버스를 공유하는 방식의 공유 버스 방식은 연결된 장치의 수가 증가함에 따라, 버스의 부하가 증가하며 그로 인하여 속도를 향상시킬 수 없고, 많은 부하를 가지는 병렬의 신호선이 동시에 천이함으로 인하여 동시 천이 시에 높은 순간 전력을 필요로 하며, 버스의 신호선 상호간에 간섭현상이 발생하는 등의 단점을 가지게 된다.
예컨대, Josef Kreidl에 의한 미국 특허번호 제 5,649,124호인 “High-Speed Bus System for Simultaneous Serial and Parallel Data Transfer and a Method of Operating the System”이라는 특허에 의하면, 병렬 데이터를 직렬로 전송하기 위하여, 입력되는 병렬 데이터를 입력되는 속도의 데이터 비트수 만큼 더욱 빠른 클록을 사용하여 데이터를 직렬로 전송하는 구조를 설명하였다. 이와 같이 병렬 데이터를 직렬로 변환하여 전송함으로써 데이터의 버스폭을 줄이고, 또한 병렬 버스와 더불어 같이 사용하고, 병렬 버스의 점유시간을 줄임으로써 고속의 데이터 전송을 가능케 하도록 하였다. 그러나, n비트의 데이터를 전송하기 위하여 병렬 버스 클록의 n배의 직렬 클록을 필요로 함으로써 보다 넓은 비트폭의 데이터 전송 시에는 보다 높은 클록을 사용하여야 한다는 문제점이 있다.
한편, 삼성전자에 의한 대한민국 특허 공개번호 제 1998-0007260호(직렬버스를 통해 데이터를 송신하는 회로)의 경우 다중 프로세서 환경 하에서 직렬 버스를 통하여 데이터를 송신하는 회로에 관한 것으로서, 각각의 프로세서에 연결된 직렬버스로 데이터를 송신할 경우, 버스의 활성화를 위한 버스 점유신호의 발생기와, 직렬 송/수신기 회로 등을 구성요소로 정하고 있는 것으로 다중 프로세서 환경 하에서 각 프로세서와 메모리와의 데이터 송신을 위한 것이며, 외부 주변 장치와의 연결을 위한 환경은 고려되고 있지 않으며, 또한 병렬 버스 클록과 직렬 버스 클록이 분리되어 있어 별도의 클록을 사용하여야 한다는 문제점이 있다.
또한, 스테팡 바르부에 의한 국내 특허 공개번호 제1986-0000597호(직렬버스로써 동작하는 슬레이브형 인터페이스 회로)는 데이터 신호라인(SDA)과 클록 신호라인(SCL)을 가지는 직렬버스에 붙이기 위한 슬레이브형 인터페이스 회로로서, 슬레이브형 인터페이스의 블록 구조와 이에 필요한 내부 메모리 구조, 신호 제어를 위한 회로 등을 정의한 것으로서, 특정 신호선을 사용하는 직렬 신호에 연결된 슬레이브용 인터페이스를 위한 회로이다. 이 직렬 버스는 어드레스/데이터/컨트롤을 하나의 신호선으로 전송하는 인터페이스를 가짐으로써 직렬 버스의 고속화에는 상대적으로 부적합한 문제점이 있다.
본 발명은 전술한 문제점을 해결하기 위하여 안출된 것으로서, 본 발명의 목적은 고속의 병렬버스를 사용하는 시스템에 복수개의 저속 주변장치를 접속할 경우 저속 주변장치를 접속하기 위한 기존의 병렬 버스 시스템을 직렬 버스화 함으로써, 병렬 버스의 버스폭을 줄임과 동시에 복수화 함에 따라 저속 주변장치의 접속 응답 시간을 개선하고, 주변장치 연결 버스 시스템의 동시 천이 빈도를 줄여 전체 시스템의 성능 향상과 주변장치 버스 시스템의 저전력 구현을 할 수 있도록 한 온-칩 직렬 주변장치 버스 시스템 및 그 운용방법을 제공하는데 있다.
전술한 목적을 달성하기 위하여 본 발명의 온-칩 직렬 주변장치 버스 시스템은, 고속 병렬 시스템 버스를 사용하는 마이크로프로세서 시스템에 있어서, 복수개의 온-칩 직렬 주변장치와 각각 상호 연결되고, 복수개의 직렬 신호선을 갖는 복수개의 온-칩 직렬 주변장치 버스; 및 상기 온-칩 직렬 주변장치 버스와 상기 고속 병렬 시스템 버스를 연결하기 위한 온-칩 직렬 주변장치 제어기(P2S Bridge)를 포함하여 이루어진 것을 특징으로 한다.
전술한 구성에서, 상기 온-칩 직렬 주변장치 제어기(P2S Bridge)는, 내부에 읽기/쓰기 트랜잭션을 제어하고 각 버퍼를 관리하기 위한 트랜잭션 제어기; 상기 온-칩 직렬 주변장치 버스로부터 전송된 데이터 어드레스의 읽기/쓰기를 위한 읽기/쓰기 어드레스 버퍼; 상기 온-칩 직렬 주변장치 버스로부터 전송된 데이터의 쓰기를 위한 쓰기 데이터 버퍼; 상기 온-칩 직렬 주변장치 버스로부터 전송된 데이터의 읽기를 위한 읽기 데이터 버퍼; 해당되는 온-칩 직렬 주변장치를 선택하기 위한 읽기/쓰기 트랜잭션 다중화기; 상기 온-칩 직렬 주변장치로부터의 읽기 응답을 분류하기 위한 읽기 데이터 역다중화기; 적어도 하나 이상의 읽기/쓰기 트랜잭션 직렬화기; 및 적어도 하나 이상의 읽기 데이터 병렬화기를 포함하여 이루어짐이 바람직하다.
그리고, 복수개의 온-칩 직렬 주변장치와 각각 상호 연결되고, 복수개의 직렬 신호선을 갖는 복수개의 온-칩 직렬 주변장치 버스 및 상기 온-칩 직렬 주변장치 버스를 고속 병렬 시스템 버스에 연결하기 위한 온-칩 직렬 주변장치 제어기(P2S Bridge)를 포함하여 이루어진 온-칩 직렬 주변장치 버스 시스템을 운용하기 위한 방법에 있어서, (a) 상기 고속 병렬 시스템 버스의 트랜잭션을 처리하기 위하여 트랜잭션의 종류를 분류하는 단계; (b) 각각의 내부 버퍼의 공간 상태를 판단하는 단계; (c) 각각의 요청에 고유의 번호를 할당하는 단계; (d) 읽기/쓰기 요청 버퍼의 상태에 따라 요청을 상기 온-칩 직렬 주변장치 버스로 전달하는 단계; 및 (e) 상기 고속 병렬 시스템 버스에 응답하는 단계를 포함하여 이루어진 것을 특징으로 한다.
이하 본 발명의 바람직한 실시예를 첨부된 도면을 참조하여 상세히 설명한다. 본 실시예는 본 발명의 권리범위를 한정하는 것은 아니고, 단지 예시로 제시된 것이다.
도 3은 본 발명의 일 실시예에 따른 온-칩 직렬 주변장치 버스 시스템을 나타낸 전체적인 블록 구성도이다.
도 3에 도시한 바와 같이, 본 발명에 따른 온-칩 직렬 주변장치 버스 시스템은, 기존의 고속 병렬 버스 시스템과 연결되는 온-칩 직렬 주변장치 제어기(Parallel to Serial Bridge, 이하, 'P2S Bridge'라 칭한다)(300)와; P2S Bridge(300)로부터 시작하여 어드레스, 쓰기 데이터, 읽기 데이터 및 제어신호로 구성되는 복수개의 온-칩 직렬 주변장치 버스(200/1~200/m)와; 각 온-칩 직렬 주변장치 버스(200/1~200/m)에 연결되는 온-칩 직렬 주변장치(400/1~400/m)를 포함하여 구성되어 있다.
즉, 본 발명에 따른 온-칩 직렬 주변장치 제어기인 P2S Bridge(300)을 중심으로 하여 기존의 고속 병렬 시스템 버스(High Speed Parallel System Bus)(100), 복수개의 직렬 신호선으로 구성되는 m개의 온-칩 직렬 주변장치 버스(Serialized Peripheral Buses)(200/1~200/m)와 이에 연결된 m개의 온-칩 직렬 주변장치(400/1~400/m)로 구성되어 있다.
도 4는 본 발명의 일 실시예에 따른 신호의 단일 읽기/쓰기를 구체적으로 설명하기 위한 상세 타이밍도로서, 도 3의 온-칩 직렬 주변장치 버스 시스템 구성에 따른 고속 병렬 시스템 버스(100)와 본 발명에서 구현하고자 하는 온-칩 직렬 주변장치 버스(200/1~200/m)의 주요 신호 및 읽기/쓰기 상세 타이밍도이다.
도 4에 도시한 바와 같이, 전술한 기존의 병렬 주변장치 버스(20)는 느린 응답과 그에 따른 낮은 주파수의 클록을 사용하여 동작하는 것을 특징으로 한다. 이를 단순히 직렬 버스로 전환하고자 할 경우, 기존의 고속의 시스템에서와 같은 속도의 처리를 위하여 데이터폭의 배수에 해당되는 클록을 사용하면 보다 고속의 클록이 필요로 하게 된다.
그러나, 주변장치는 저속으로서 고속 시스템 버스(병렬 주변장치 버스 수배 ~ 수십배 고속)에 비하여 느리게 동작하므로, 이를 이용하여 주변장치 버스를 직렬화 하고 고속 시스템에서 사용하는 클록과 동일한 클록을 사용함으로써, 별도의 부가 클록의 사용 없이 저속 주변장치 버스를 직렬화 할 수 있다.
이때, 병렬 공유 버스를 단순히 직렬 공유 버스로 변환할 경우, 공유에 따른 병목 현상으로 저속 병렬 버스보다 낮은 성능을 나타낼 수 있다. 이를 해결하기 위하여 온-칩 직렬 주변장치 버스(200/1~200/m)는 P2S Bridge(300)를 시작점으로 온-칩 직렬 주변장치(400/1~400/m)에 연결되는 점대점(point-to-point) 방식의 버스 시스템을 구성함으로써, 각각의 온-칩 직렬 주변장치(400/1~400/m)가 독립적으로 동작할 수 있도록 병렬화 되어 시스템의 성능을 향상시킬 수 있다.
일반적으로 고속 병렬 시스템 버스(100)는 병렬의 어드레스(ADDR), 쓰기데이터(WDATA), 읽기데이터(RDATA), 컨트롤(Control), 응답(RESPONSE), 준비신호(READY)와 같은 신호선들을 필요로 한다.
먼저, 고속 병렬 시스템 버스(100)에서 온-칩 직렬 주변장치 버스(200/1~200/m)로의 쓰기 트랜잭션(도 4의 System Bus Write Cycle)은 고속 병렬 시스템 버스(100)에 어드레스와 쓰기데이터 그리고 해당되는 컨트롤 신호 정보를 발생시킴으로써 시작된다. 쓰기 동작은 일종의 Posted 동작으로써 종단에서의 응답을 필요치 않으므로, 제안된 P2S Bridge(300)가 해당되는 응답을 자동 발생하여 응답 신호선에 응답을 실어줌으로써, 고속 병렬 시스템 버스(10)의 쓰기 동작을 종료한다.
쓰기 동작 명령을 받은 P2S Bridge(300)는 쓰기 어드레스는 해당 온-칩 주변장치 직렬 어드레스 버스인 PADDR x (1 line)에 쓰기 데이터는 PWDATA x (1 line)로 해당 데이터를 직렬화하여 전송한다(도 4의 Peripheral Bus Write Cycle). 이때, 데이터와 어드레스의 시작과 끝을 알리기 위하여 각각 유효 신호인 PAD_Valid x와 PWR_Valid x 신호를 사용하여 직렬 데이터의 시작과 끝을 해당 온-칩 직렬 주변장치(400/1~400/m)에 알려주며, 해당 온-칩 직렬 주변장치(400/1~400/m)는 모든 데이터의 수신에 대한 확인 신호인 응답(PRESP x)신호를 발생하여 쓰기 동작을 종료한다(여기서, x는 선택된 온-칩 직렬 주변장치를 식별하기 위한 신호선 확장자명이다).
다음으로, 고속 병렬 시스템 버스(100)에서 온-칩 직렬 주변장치 버스(200/1~200m)로의 읽기 트랜잭션(System Bus Read Cycle)은 쓰기 트랜잭션과 달리 읽기 데이터의 수신을 필요로 하므로 P2S Bridge(300)에서 즉각적인 읽기 데이터를 되돌릴 수 없다. 이때, 읽기 데이터를 기다리게 될 경우 다음의 읽기/쓰기 트랜잭션이 금지되므로, 시스템의 성능을 저하시킬 수 있다.
일반적인 고속 병렬 시스템 버스(100)에서는 이와 같은 경우를 가정하여, Split 트랜잭션과 Retry 메커니즘을 제공하고 있다. 본 발명에서 제안된 P2S Bridge(300)는 읽기 트랜잭션의 burst처리를 위하여 고속 병렬 시스템 버스(100)의 Split/Retry 트랜잭션을 지원한다.
즉, 고속 병렬 시스템 버스(100)에서 온-칩 직렬 주변장치 버스(200/1~200/m)로의 읽기 트랜잭션이 발생할 경우, P2S Bridge(300)는 이를 Split 혹은 Retry 트랜잭션으로 처리함으로써, 고속 병렬 시스템 버스(100)에게 데이터가 준비될 경우 재전송을 요청할 수 있도록 알려준다. 이때, P2S Bridge(300)는 고속 병렬 시스템 버스(100)의 준비신호(READY)와 응답신호(RESPONSE)를 사용하여 해당 트랜잭션을 Split 혹은 Retry하도록 지시한다(도 4에서 Resp A에 해당).
읽기 요청을 받은 P2S Bridge(300)는 요청된 읽기 트랜잭션을 쓰기에서와 동일하게 어드레스(PADDR x)와 어드레스 유효(PAD_Valid x) 신호를 발생하고 이를 수신한 온-칩 직렬 주변장치(400/1~400/m)에서는 읽기 데이터를 읽기데이터(PRDATA x)신호와 읽기유효 (PRD_Valid x)신호를 사용하여 응답한 후, 해당 읽기 트랜잭션의 종료를 위한 응답(PRESP x)신호를 발생한다(도 4의 Peripheral Bus Read Cycle).
P2S Bridge(300)는 온-칩 직렬 주변장치(400/1~400/m)로부터 수신된 읽기 데이터를 저장하고 고속 병렬 시스템 버스(100)로부터의 Split 혹은 Retry 트랜잭션을 기다린다. 최종적으로 해당되는 어드레스에 대한 Split/Retry 읽기 트랜잭션(도 4에서 Addr A', Control A'에 해당)이 발생하면 저장하고 있던 읽기 결과 값을 고속 병렬 시스템 버스(100)로 전송(도 4에서 Resp A', Data(A')에 해당)하여 읽기 트랜잭션을 종료한다.
도 5는 본 발명의 일 실시예에 따른 신호의 복수 읽기/쓰기를 구체적으로 설 명하기 위한 상세 타이밍도로서, 도 4의 단일 읽기/쓰기 동작의 상세 타이밍도를 확장한 것이다.
도 5에 도시한 바와 같이, 복수개의 트랜잭션이 연이어 발생하는 burst 트랜잭션에 대한 복수 읽기/쓰기 상세 타이밍도인 바, 복수개의 온-칩 직렬 주변장치(400/1~400/m)에 대하여 연속적으로 읽기 혹은 쓰기 트랜잭션을 인가하는 경우이다. 쓰기 트랜잭션의 경우 P2S Bridge(300)는 내부의 버퍼를 이용하여 어드레스와 쓰기 데이터를 저장하고 이를 해당되는 온-칩 직렬 주변장치(400/1~400/m)로 동시에 전송함으로써, 온-칩 직렬 주변장치 버스(200/1~200/m) 병렬화의 특징을 이용한다. 읽기 트랜잭션의 경우 역시 해당 어드레스를 내부 버퍼에 저장하여 각각의 온-칩 직렬 주변장치(400/1~400/m)에 동시에 읽기 요청을 수행하여 복수개의 온-칩 직렬 주변장치(400/1~400/m)로부터 동시에 응답을 처리하여 온-칩 직렬 주변장치 버스(200/1~200/m)의 성능을 향상시킨다.
도 6은 본 발명의 일실시예에 따른 온-칩 직렬 주변장치 버스 시스템의 제어기를 구체적으로 나타낸 블록 구성도이다.
도 6에 도시한 바와 같이, 본 발명에 따른 온-칩 직렬 주변장치 제어기인 P2S Bridge(300)는, 내부에 읽기/쓰기 트랜잭션을 제어하고 각 버퍼를 관리하기 위한 트랜잭션 제어기(Transaction Controller)(310)와; 고속 병렬 시스템 버스로부터 수신된 읽기/쓰기 트랜잭션에 연관된 데이터 어드레스를 기록하기 위한 읽기/쓰기 어드레스 버퍼(320)와; 고속의 병렬 시스템 버스로부터 수신된 데이터를 기록하기 위한 쓰기 데이터 버퍼(330)와; 온-칩 직렬 주변장치 버스(200/1~200/m)로부터 수신된 데이터를 저장하기 위한 읽기 데이터 버퍼(340)와; 해당되는 온-칩 직렬 주변장치(400/1~400/m)를 선택하기 위한 읽기/쓰기 트랜잭션 다중화기(Multiplexer)(350)와; 온-칩 직렬 주변장치(400/1~400/m)로부터의 읽기 응답을 분류하기 위한 읽기 데이터 역다중화기(De-Multiplexer)(360)와; m개의 읽기/쓰기 트랜잭션 직렬화기(370/1~370/m)와; m개의 읽기 데이터 병렬화기(380/1~380/m)를 포함하여 구성되어 있다.
상기 고속 병렬 시스템 버스(100)로부터의 읽기/쓰기 트랜잭션은, 먼저 각각 읽기/쓰기 어드레스 버퍼(320)와 쓰기 데이터 버퍼(330)에 저장된다. 이때, 트랜잭션 제어기(310)는 해당되는 트랜잭션에 서로 중복되지 않는 트랜잭션 번호를 할당하여 각 트랜잭션을 구분할 수 있도록 하며, 읽기/쓰기 트랜잭션에 따라 Split/Retry 혹은 Good 응답을 고속 병렬 시스템 버스(100)에 되돌려 주어 고속 병렬 시스템 버스(100)의 전송을 종료시킨다.
각 버퍼는 선입선출(First In First Out) 동작을 수행하는 버퍼로서 제일 먼저 저장된 읽기/쓰기 트랜잭션부터 인출하여 읽기/쓰기 트랜잭션 다중화기(350)로 전달하고 읽기/쓰기 트랜잭션 다중화기(350)는 할당된 어드레스에 따라서 트랜잭션을 전송할 온-칩 직렬 주변장치(400/1~400/m)에 해당되는 읽기/쓰기 트랜잭션 직렬화기(370/1~370/m)로 데이터를 전송한다. 선택된 읽기/쓰기 트랜잭션 직렬화기(370/1~370/m)는 입력된 읽기/쓰기 트랜잭션 어드레스 데이터를 직렬화 하여 해당 온-칩 직렬 주변장치(400/1~400/m)로 전송한다.
읽기 트랜잭션일 경우 각각의 온-칩 직렬 주변장치(400/1~400/m)로부터 되돌아오는 응답은 읽기 데이터 병렬화기(380/1~380/m)를 거쳐서 병렬 데이터로 변환되고, 읽기 데이터 역다중화기(360)는 변환된 데이터를 선택하여 읽기 데이터 버퍼(340)에 저장한다. 이때, 데이터의 저장은 읽기 트랜잭션 전송 시 사용되었던 트랜잭션 번호와 해당되는 온-칩 직렬 주변장치(400/1~400/m)에 할당된 어드레스를 사용하여 해당되는 읽기 데이터 버퍼(340)에 저장한다. 읽기 데이터 버퍼(340) 역시 선입선출 동작을 수행하는 버퍼이며, 저장된 읽기 데이터는 저장된 순서대로 고속 병렬 시스템 버스(100)로 전송된다.
이하에는 전술한 구성을 가지는 본 발명의 온-칩 직렬 주변장치 버스 시스템의 운용방법에 대해서 상세하게 설명한다.
도 7은 본 발명의 일 실시예에 따른 온-칩 직렬 주변장치 제어기의 고속 병렬 시스템 버스 트랜잭션 처리를 설명하기 위한 흐름도이다.
도 7에 도시한 바와 같이, 먼저 고속 병렬 시스템 버스(100)의 트랜잭션을 처리하기 위한 절차로서 트랜잭션의 시작시점에서 읽기 혹은 쓰기 트랜잭션인지를 판별한다(S400). 읽기 트랜잭션일 경우, 어드레스(Address)와 컨트롤(Control)신호를 상기 고속 병렬 시스템 버스(100)로부터 저장한다(S402).
다음으로, 이전에 Split 트랜잭션으로 처리되지 않은 새로운 읽기 트랜잭션인지를 판별하여(S404) 새로운 트랜잭션일 경우에는 읽기/쓰기 어드레스 버퍼(320)에 빈 공간이 할당되어 있는지 검사한다(S416).
이때, 상기 읽기/쓰기 어드레스 버퍼(320)에 빈 공간이 있을 경우에는 해당 어드레스를 상기 읽기/쓰기 어드레스 버퍼(320)에 저장하고(S420), 새로운 트랜잭션 번호를 할당한 후(S422), 상기 고속 병렬 시스템 버스측으로 Split 트랜잭션임을 알려준다(S424). 만일, 할당된 버퍼 공간이 없을 경우에는 상기 고속 병렬 시스템 버스측으로 해당 읽기 트랜잭션을 Retry하도록 알려준다(S418).
상기 고속 병렬 시스템 버스(100)에서의 요청이 새로운 트랜잭션이 아닌 이전에 Split 트랜잭션으로 처리하였던 요청의 경우라면 해당 요청에 대한 응답이 읽기 데이터 버퍼에 들어있는지를 검사한다(S406). 해당 데이터가 없을 경우에는 상기 고속 병렬 시스템 버스측으로 다시 Split 트랜잭션을 수행하도록 알려주며(S408), 데이터가 있을 경우에는 상기 읽기/쓰기 어드레스 버퍼(320)로부터 데이터를 읽어내어(S410) 트랜잭션에 대한 번호를 확인한 후(S412), 데이터를 고속 병렬 시스템 버스(100)에 실은 후 Good에 해당되는 응답을 전송한다(S414).
쓰기 트랜잭션의 경우에는 어드레스와 컨트롤, 데이터 신호를 상기 고속 병렬 시스템 버스(100)에 저장한다(S426). 다음으로, 쓰기 데이터 버퍼(330)에 빈 공간이 할당되어 있는지 검사하여(S430) 상기 쓰기 데이터 버퍼(330)에 빈 공간이 있을 경우에는 해당 어드레스와 쓰기 데이터를 상기 쓰기 데이터 버퍼(330)에 저장하고(S432), 새로운 트랜잭션 번호를 할당한 후(S434), 상기 고속 병렬 시스템 버스측으로 Good에 해당되는 응답을 전송한다(S436). 만약, 상기 쓰기 데이터 버퍼(330)가 가득 차있을 경우에는 해당 요청을 처리할 수 없으므로 상기 고속 병렬 시스템 버스측으로 해당 쓰기 트랜잭션을 Retry하도록 알려준다(S438).
도 8은 본 발명의 일 실시예에 따른 온-칩 직렬 주변장치 제어기의 직렬 주변장치 버스 트랜잭션 처리를 설명하기 위한 흐름도이다.
도 8에 도시한 바와 같이, 온-칩 직렬 주변장치 버스(200/1~200/m)에 대한 읽기/쓰기 요청 트랜잭션을 처리하기 위한 절차와 읽기 데이터를 처리하기 위한 절차가 병렬로 수행된다.
먼저, 읽기/쓰기 요청 트랜잭션을 처리하기 위하여 읽기/쓰기 어드레스 버퍼(320)와 쓰기 데이터 버퍼(330)를 검사한다(S500). 검사결과 새로운 요청이 각 버퍼(320)(330)에 저장되어 있을 경우에는 어드레스를 확인하여(S502) 해당되는 온-칩 직렬 주변장치(400/1~400/m)를 선택한 후(S504), 선택된 읽기/쓰기 트랜잭션 직렬화기(370/1~370/m)로 읽기 요청의 경우에는 어드레스를, 쓰기 요청의 경우에는 어드레스와 쓰기 데이터를 전송한다(S506).
상기 읽기 데이터를 처리하기 위한 절차는 먼저, 읽기 데이터 버퍼(340)에 데이터가 가득 차있는지를 검사한다(S508). 상기 읽기 데이터 버퍼(340)에 여유공간이 있을 경우에는 데이터를 읽어 들인 온-칩 직렬 주변장치(400/1~400/m)에 해당되는 트랜잭션 번호를 확인한다(S510). 상기 트랜잭션 번호확인이 끝나면 읽기 데이터를 읽기 데이터 버퍼(340)에 저장한 후(S512), 읽기 데이터를 전달한 온-칩 직렬 주변장치(400/1~400/m)로 Good 응답을 전송한다(S514). 만약, 상기 읽기 데이터 버퍼(340)가 가득 찬 경우에는 해당 온-칩 직렬 주변장치(400/1~400/m)로 Retry 응답을 전송하여 상기 읽기 데이터 버퍼(340)가 비게 될 때까지 재전송하도록 요청한다(S516).
전술한 본 발명에 따른 온-칩 직렬 주변장치 버스 시스템 및 그 운용방법에 대한 바람직한 실시예에 대하여 설명하였지만, 본 발명은 이에 한정되는 것이 아니고 특허청구범위와 발명의 상세한 설명 및 첨부한 도면의 범위 안에서 여러 가지로 변형하여 실시하는 것이 가능하고 이 또한 본 발명에 속한다.
이상에서 설명한 바와 같은 본 발명의 온-칩 직렬 주변장치 버스 시스템 및 그 운용방법에 따르면, 고속의 병렬 시스템 버스의 성능을 저하시키지 않으면서, 저속 주변장치용 병렬 버스를 직렬 버스로 변환하고, 주변장치마다 독립적인 직렬 버스를 할당하여 주변장치 버스를 복수화 하고 이를 점대점(point-to-point) 방식으로 연결함으로써, 상기 주변장치 버스 시스템의 병렬화를 통해 시스템의 성능을 향상할 수 있는 이점이 있다.
또한, 본 발명에 따른 온-칩 직렬 주변장치 버스 시스템 및 그 운용방법은 직렬 주변장치 버스의 동작 속도를 고속 병렬 버스에 사용되는 클록을 사용함으로써, 단일 시스템 버스 내에 복수개의 클록을 사용하여 발생할 수 있는 클록의 위상/주파수 차이로 인한 문제를 차단할 수 있는 이점이 있다.
또한, 버스신호를 직렬화 및 복선화 함으로써, 동시 신호선의 천이로 인한 순간전력의 문제점을 해결하며, 하나의 직렬 버스에 하나의 주변장치가 연결됨에 따라 병렬 공유 버스의 문제점 중 하나인 버스의 부하문제를 해결할 수 있는 이점이 있다.
Claims (8)
- 고속 병렬 시스템 버스를 사용하는 마이크로프로세서 시스템에 복수개의 저속주변장치를 접속시키기 위한 온-칩 직렬 주변장치 버스 시스템에 있어서,상기 복수개의 주변장치에 각각 직렬 연결되는 복수개의 온-칩 직렬 주변장치 버스와,상기 복수개의 직렬주변장치 버스와 상기 고속 병렬 시스템 버스를 연결하기 위한 온-칩 직렬 주변장치 제어기(P2S Bridge)를 포함하는 것을 특징으로 하는 온-칩 직렬 주변장치 버스 시스템.
- 제 1항에 있어서, 상기 복수개의 온-칩 직렬 주변장치 버스 각각은 복수개의 직렬 신호선을 포함하고, 상기 직렬 신호선은 어드레스, 쓰기 데이터, 읽기 데이터 및 제어 신호선으로 이루어진 것을 특징으로 하는 온-칩 직렬 주변장치 버스 시스템.
- 제 1항에 있어서, 상기 주변장치의 고속 동작을 위하여 상기 고속 병렬 시스템 버스와 분리된 상기 온-칩 직렬 주변장치 버스를 사용하도록 이루어진 것을 특징으로 하는 온-칩 직렬 주변장치 버스 시스템.
- 제 1항에 있어서, 상기 주변장치의 고속 동작을 위하여 상기 온-칩 직렬 주변장치 버스는 상기 온-칩 직렬 주변장치 제어기(P2S Bridge)를 시작점으로 상기 주변장치에 점대점(point-to-point)방식으로 연결된 것을 특징으로 하는 온-칩 직렬 주변장치 버스 시스템.
- 제 4항에 있어서, 상기 온-칩 직렬 주변장치 버스는,1비트의 요청 어드레스 버스와 어드레스의 시작과 끝을 알리기 위한 1비트의 유효신호;1비트의 쓰기 데이터 버스와 데이터의 시작과 끝을 알리기 위한 1비트의 유효신호;1비트의 읽기 데이터 버스와 데이터의 시작과 끝을 알리기 위한 1비트의 유효신호; 및읽기 데이터에 대한 응답 신호를 전송하는 것을 특징으로 하는 온-칩 직렬 주변장치 버스 시스템.
- 제 1항 내지 제 5항 중 어느 한 항에 있어서, 상기 온-칩 직렬 주변장치 제어기(P2S Bridge)는,상기 고속 병렬 시스템 버스로부터 수신된 읽기/쓰기 트랜잭션에 트랜잭션 번호를 할당하고 상기 트랜잭션의 종류에 기반하여 상기 고속 병렬 시스템 버스에 응답하기 위한 트랜잭션 제어기;상기 고속 병렬 시스템 버스로부터 수신된 상기 읽기/쓰기 트랜잭션에 연관된 데이터의 어드레스를 저장하기 위한 어드레스 버퍼;상기 온-칩 직렬 주변장치 버스에 연결된 상기 복수의 주변장치중 하나의 주변장치에 기록하기 위해 상기 고속 병렬 시스템 버스로부터 수신된 쓰기 트랜잭션에 연관된 데이터를 기록하기 위한 쓰기 데이터 버퍼;상기 읽기/쓰기 트랜잭션에 해당되는 주변장치를 선택하기 위한 트랜잭션 다중화기;상기 트랜잭션 다중화기에 의해 선택된 주변 장치에 상기 읽기/쓰기 트랜잭션에 연관된 어드레스 및 데이터중 적어도 하나를 상기 온-칩 직렬 주변장치 버스를 통해 전송하기 위한 트랜잭션 직렬화기;읽기 트랜잭션에 응답하여 상기 복수의 주변장치중 하나의 주변장치로부터 상기 온-칩 직렬 주변장치 버스를 통해 수신된 데이터를 병렬화하기 위한 읽기 데이터 병렬화기; 및상기 병렬화된 읽기 데이터를 저장하기 위한 읽기 데이터 버퍼를 포함하는 것을 특징으로 하는 온-칩 직렬 주변장치 버스 시스템.
- 복수개의 주변장치 각각에 연결되는 복수개의 온-칩 직렬 주변장치 버스 및 상기 온-칩 직렬 주변장치 버스를 고속 병렬 시스템 버스에 연결하기 위한 온-칩 직렬 주변장치 제어기(P2S Bridge)를 포함하는 온-칩 직렬 주변장치 버스 시스템을 운용하기 위한 방법에 있어서,(a) 상기 고속 병렬 시스템 버스의 트랜잭션을 처리하기 위하여 트랜잭션의 종류를 분류하는 단계;(b) 상기 트랜잭션에 연관된 버퍼 각각의 공간 상태를 판단하는 단계;(c) 상기 트랜잭션에 고유의 번호를 할당하는 단계;(d) 상기 버퍼의 상태에 따라 상기 트랜잭션을 상기 온-칩 직렬 주변장치 버스로 전달하는 단계; 및(e) 상기 트랜잭션의 종류에 기반하여 상기 고속 병렬 시스템 버스에 응답하는 단계를 포함하는 온-칩 직렬 주변장치 버스 시스템의 운용방법.
- 제 7항에 있어서, 상기 단계(d)는,(d-1) 상기 트랜잭션에 연관된 어드레스에 따라 상기 온-칩 직렬 주변장치 버스를 선택하는 단계; 및(d-2) 상기 선택된 온-칩 직렬 주변장치 버스에 데이터를 직렬화하여 전송하는 단계;를 포함하는 온-칩 직렬 주변장치 버스 시스템의 운용방법.
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020030096040A KR100591243B1 (ko) | 2003-12-24 | 2003-12-24 | 온-칩 직렬 주변장치 버스 시스템 및 그 운용방법 |
US10/913,418 US20050144331A1 (en) | 2003-12-24 | 2004-08-09 | On-chip serialized peripheral bus system and operating method thereof |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020030096040A KR100591243B1 (ko) | 2003-12-24 | 2003-12-24 | 온-칩 직렬 주변장치 버스 시스템 및 그 운용방법 |
Publications (2)
Publication Number | Publication Date |
---|---|
KR20050064568A KR20050064568A (ko) | 2005-06-29 |
KR100591243B1 true KR100591243B1 (ko) | 2006-06-19 |
Family
ID=34698428
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1020030096040A KR100591243B1 (ko) | 2003-12-24 | 2003-12-24 | 온-칩 직렬 주변장치 버스 시스템 및 그 운용방법 |
Country Status (2)
Country | Link |
---|---|
US (1) | US20050144331A1 (ko) |
KR (1) | KR100591243B1 (ko) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR100855995B1 (ko) | 2007-05-23 | 2008-09-02 | 삼성전자주식회사 | 디스플레이 패널 구동 장치 및 방법 |
Families Citing this family (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR20100064442A (ko) | 2008-12-05 | 2010-06-15 | 한국전자통신연구원 | 버스 신호의 인코딩, 디코딩 방법 및 장치 |
KR101720134B1 (ko) * | 2011-12-21 | 2017-03-28 | 한국전자통신연구원 | 버스 브리지 장치 |
US10049067B2 (en) | 2016-12-01 | 2018-08-14 | Qualcomm Incorporated | Controller-PHY connection using intra-chip SerDes |
CN109144943A (zh) * | 2018-06-26 | 2019-01-04 | 深圳市安信智控科技有限公司 | 基于高速串行通道互连的计算芯片与存储器芯片组合系统 |
Family Cites Families (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
DE4125219A1 (de) * | 1991-07-30 | 1993-02-04 | Pep Modular Computers Ag | Hochgeschwindigkeits-bussystem und verfahren zum betreiben desselben |
US6167077A (en) * | 1997-12-23 | 2000-12-26 | Lsi Logic Corporation | Using multiple high speed serial lines to transmit high data rates while compensating for overall skew |
US20010044862A1 (en) * | 1998-12-10 | 2001-11-22 | James O. Mergard | Serializing and deserialing parallel information for communication between devices for communicating with peripheral buses |
US6260087B1 (en) * | 1999-03-03 | 2001-07-10 | Web Chang | Embedded configurable logic ASIC |
US6931470B2 (en) * | 2002-02-11 | 2005-08-16 | Motorola, Inc. | Dual access serial peripheral interface |
KR100449102B1 (ko) * | 2002-03-19 | 2004-09-18 | 삼성전자주식회사 | 멀티미디어용 시스템온칩 프로세서 |
-
2003
- 2003-12-24 KR KR1020030096040A patent/KR100591243B1/ko not_active IP Right Cessation
-
2004
- 2004-08-09 US US10/913,418 patent/US20050144331A1/en not_active Abandoned
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR100855995B1 (ko) | 2007-05-23 | 2008-09-02 | 삼성전자주식회사 | 디스플레이 패널 구동 장치 및 방법 |
Also Published As
Publication number | Publication date |
---|---|
KR20050064568A (ko) | 2005-06-29 |
US20050144331A1 (en) | 2005-06-30 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP3820011B2 (ja) | Pciインタフェース同期化回路 | |
US7016984B2 (en) | System controller using plural CPU's | |
CN108268414B (zh) | 基于spi模式的sd卡驱动器及其控制方法 | |
JP4761487B2 (ja) | バスアーキテクチャ及びそれを用いた情報処理装置 | |
US7007112B2 (en) | Data transfer control device, electronic equipment, and data transfer control method | |
US20040221075A1 (en) | Method and interface for improved efficiency in performing bus-to-bus read data transfers | |
US20060236001A1 (en) | Direct memory access controller | |
JP2003296267A (ja) | バスシステム及びバスシステムを含む情報処理システム | |
CN116860688A (zh) | 一种数据传输方法、相关装置、设备以及可读存储介质 | |
KR100291409B1 (ko) | 컴퓨터 시스템내의 동일 버스상에 두 개의 부 디코드 에이전트를 지원하는 방법 및 장치 | |
US7409486B2 (en) | Storage system, and storage control method | |
US7774513B2 (en) | DMA circuit and computer system | |
KR100591243B1 (ko) | 온-칩 직렬 주변장치 버스 시스템 및 그 운용방법 | |
KR20020079536A (ko) | 주변 디바이스의 usb 인터페이스 디바이스 | |
KR100449721B1 (ko) | 서로 다른 데이터 버스 폭을 갖는 장치들을 위한인터페이스 및 이를 이용한 데이터 전송방법 | |
US6721838B1 (en) | Apparatus and method for bus interface for matching optical module | |
JP3703532B2 (ja) | 多重化アドレスバスを備えたコンピュータシステム | |
US20150149680A1 (en) | Information processing apparatus and information processing method | |
US20080320178A1 (en) | DMA transfer apparatus | |
KR100642158B1 (ko) | 슬레이브 그룹 인터페이스 장치와, 슬레이브 그룹 인터페이스 장치를 통해 버스와 주변 장치를 인터페이스하는 방법 및 시스템 | |
CN107807888B (zh) | 一种用于soc架构的数据预取系统及其方法 | |
US6493775B2 (en) | Control for timed access of devices to a system bus | |
JP3953732B2 (ja) | データ送受信装置 | |
CN116561036B (zh) | 数据访问控制方法、装置、设备及存储介质 | |
JP3478565B2 (ja) | パラレルインタフェース回路 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A201 | Request for examination | ||
E902 | Notification of reason for refusal | ||
E701 | Decision to grant or registration of patent right | ||
GRNT | Written decision to grant | ||
FPAY | Annual fee payment |
Payment date: 20110609 Year of fee payment: 6 |
|
LAPS | Lapse due to unpaid annual fee |