KR20080019866A - 칩들간의 통신을 위한 인터페이스 장치 및 방법 - Google Patents

칩들간의 통신을 위한 인터페이스 장치 및 방법 Download PDF

Info

Publication number
KR20080019866A
KR20080019866A KR1020060082321A KR20060082321A KR20080019866A KR 20080019866 A KR20080019866 A KR 20080019866A KR 1020060082321 A KR1020060082321 A KR 1020060082321A KR 20060082321 A KR20060082321 A KR 20060082321A KR 20080019866 A KR20080019866 A KR 20080019866A
Authority
KR
South Korea
Prior art keywords
address
data
signal
chip
read
Prior art date
Application number
KR1020060082321A
Other languages
English (en)
Other versions
KR101345437B1 (ko
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 KR1020060082321A priority Critical patent/KR101345437B1/ko
Publication of KR20080019866A publication Critical patent/KR20080019866A/ko
Application granted granted Critical
Publication of KR101345437B1 publication Critical patent/KR101345437B1/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • G06F15/76Architectures of general purpose stored program computers
    • G06F15/78Architectures of general purpose stored program computers comprising a single central processing unit
    • G06F15/7807System on chip, i.e. computer system on a single chip; System in package, i.e. computer system on one or more chips in a single package
    • 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/1684Details of memory controller using multiple buses
    • 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/40Bus structure
    • G06F13/4004Coupling between buses
    • G06F13/4022Coupling between buses using switching circuits, e.g. switching matrix, connection or expansion network
    • 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/4282Bus transfer protocol, e.g. handshake; Synchronisation on a serial bus, e.g. I2C bus, SPI bus

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)
  • Mathematical Physics (AREA)
  • Computing Systems (AREA)
  • Microelectronics & Electronic Packaging (AREA)
  • Communication Control (AREA)

Abstract

본 발명은 통신 시스템에서 칩들간(Chip-to-chip)의 통신을 위한 인터페이스 장치 및 방법에 관한 것이다. 본 발명의 어플리케이션 프로세서(Application processor:AP)로 동작하는 제 1 칩과, 상기 AP의 제어하에 프로세스들을 처리하는 제 2 칩간의 통신을 위한 인터페이스 장치는 상기 제 1 칩으로부터 상기 제 2 칩으로 어드레스 관련 정보를 전송하는 어드레스 전송 구간과 데이터를 전송하는 데이터 구간을 구분하는 어드레스 선택 신호를 전송하는 어드레스 선택 라인과, 상기 제 1 칩으로부터 상기 제 2 칩으로 상기 어드레스 관련 정보 또는 데이터를 전송하는 복수의 어드레스/데이터 라인들과, 상기 제 1 칩으로부터 상기 제 2 칩으로 동작 실행을 지시하는 신호를 전송하는 라인, 라이트(Write) 동작 실행을 지시하는 신호를 전송하는 라인, 리드(Read) 동작 실행을 지시하는 신호를 전송하는 라인을 포함하는 제어 라인들과, 상기 라인들을 통해 전송된 신호들에 따라 데이터를 처리하는 상기 제 2 칩의 제어부를 포함하고, 상기 제어부는 상기 어드레스 선택 신호에 따라 판단된 어드레스 전송 구간에서 상기 어드레스/데이터 라인들로 전송되는 어드레스 관련 정보를 통해 획득한 리드/라이트 동작 여부 정보, 데이터 사이즈 정보, 어드레스 정보를 이용하여 상기 데이터 전송구간에 전송되는 데이터를 처리함을 특징으로 한다.
인터페이스, 어드레스 선택 신호, 어드레스 전송구간, 데이터 전송구간, 버스트 전송

Description

칩들간의 통신을 위한 인터페이스 장치 및 방법{Interfacing apparatus and method for communication between chips}
도 1은 메모리 인터페이스를 이용한 SRAM 인터페이스 구조를 도시한 도면.
도 2는 SPI 인터페이스 구조를 도시한 도면.
도 3은 I2C 인터페이스 구조를 도시한 도면.
도 4는 범용 입출력 핀들을 이용한 인터페이스 구조를 도시한 도면.
도 5는 본 발명의 바람직한 실시예에 따른 인터페이스 구조를 도시한 도면.
도 6은 본 발명의 바람직한 실시예에 따른 인터페이스 장치를 도시하는 도면.
도 7a 및 도 7b는 본 발명의 바람직한 일실시예에 따라 각각 어드레스 전송구간 및 데이터 전송구간에서 전송되는 데이터 포맷을 도시한 도면.
도 8a 및 도 8b는 본 발명의 바람직한 실시예에 따른 인터페이스 장치에서 단일 전송 동작을 나타내는 타이밍도.
도 9a 및 도 9b는 본 발명의 바람직한 실시예에 따른 인터페이스 장치에서 버스트 전송 동작을 나타내는 타이밍도.
도 10은 본 발명의 바람직한 실시예에 따른 칩들간의 통신 절차를 도시하는 흐름도.
본 발명은 통신 시스템에서 칩들간(Chip-to-chip)의 통신을 위한 인터페이스 장치 및 방법에 관한 것이다.
통신 시스템의 칩들에서 프로세스(Process)들을 처리하기 위해서는 상기 칩들을 연결하여 제어 신호 및 데이터를 전송하기 위한 수단이 필요한데, 이러한 기능을 수행하는 것이 인터페이스(Interface)이다. 상기 인터페이스는 연결수단으로써, 통상적으로 칩들간의 통신을 위해 SPI(Serial peripheral Interface), I2C(Inter-IC)등의 직렬 인터페이스(Serial Interface)가 사용되거나 선입 선출(First In, First Out: FIFO)/정적 임의접근 기억장치(Static Random-Access Memory, 이하, 'SRAM'이라 칭함)등의 인터페이스가 사용된다. 상기 인터페이스들에 대하여 도면을 통하여 자세히 살펴본다.
도 1은 메모리 인터페이스를 이용한 SRAM 인터페이스 구조를 도시한 도면이다. 상기 SRAM 인터페이스는 메모리 접속(Memory Access)을 위해 이용되는 인터페이스이다.
도 1을 참조하면, 두 개의 칩들 중에서 하나의 칩은 어플리케이션 프로세서(Application Processor, 이하 'AP'라 칭함)(110)로써, 프로세스들의 처리를 제어한다. 다른 칩은 슬레이브 시스템(Slave System, 이하 '슬레이브'라 칭함)(120)으로써, 상기 AP의 제어 하에 프로세스들을 처리한다.
상기 AP(110)와 상기 슬레이브(120) 사이를 연결하는 인터페이스들에는 크게 제어신호들을 전송하는 3개의 제어 신호 라인(Pin)들과 어드레스(Address)를 전송하는 16개의 어드레스 라인들과 데이터를 전송하는 16개의 데이터 라인들이 있다. 상기 제어 신호 라인들 즉, 칩 선택 신호(Chip Select Bar, 이하 'CSB'라 칭함)라인, 쓰기 인에이블 신호(Writing Enable Bar, 이하 'WEB'라 칭함)라인, 출력 인에이블 신호(Output Enable Bar, 이하 'OEB'라 칭함)라인을 통하여 상기 AP(110)로부터 전송되는 신호에 따라서, 상기 슬레이브(120)는 리드/라이트 동작을 수행한다. 상기 슬레이브(120)는 상기 인터페이스를 통하여 전송된 인터페이스 신호들을 제어하는 인터페이스 제어부(125)를 포함한다.
상기 AP(110)에서 전송하는 CSB, WEB, OEB를 이용하여 상기 슬레이브(120)는 리드/라이트(Read/Write) 신호와 내부 블록(미도시)(예, 메모리 블록)을 위한 패드 제어(Pad Control) 신호를 결정하고, 상기 AP(110)로부터 전송된 어드레스 관련 정보를 이용하여 선택(Selection) 신호를 생성한다. 상기 리드/라이트 신호 중에서 라이트 신호의 경우, 데이터 라인을 통하여 데이터(Data)가 AP(110)로부터 내부 블록으로 전송되고, 리드(Read) 신호가 활성화된 경우 내부 블록으로부터 읽어 들인 데이터가 상기 데이터 라인을 통하여 AP(110)로 전송된다. 이때 하나의 하프워드(Halfword)를 전송하는 데 걸리는 시간은 슬레이브(120)와 AP(110) 중 느리게 동작하는 시스템에 의해 결정된다.
상기 SRAM 인터페이스는 각 신호에 대한 타이밍(Timing)이나 규격 등이 명확하게 규정되어 있어서 구현이 상대적으로 간단하고, 많은 데이터 라인(핀)들을 이 용하므로 고속의 데이터를 전송할 수 있다. 또한 상기 SRAM 인터페이스는 거의 모든 중앙 처리 장치(Central Process Unit: CPU)가 포함된 시스템 온 칩(System on Chip : SoC)에서 적용되어 있을 만큼 범용성도 크다. 그러나 어드레스 및 데이터 전송을 위해 많은 핀들을 이용해야 하고, 많은 핀들을 이용함으로 인해 실제 내부의 로직(Logic)이 작더라도 다이 사이즈(Die size)가 커지는 단점이 있다.
도 2는 SPI 인터페이스 구조를 도시한 도면이다.
도 2를 참조하면, AP(210)와 슬레이브(220) 사이에서 SPI 인터페이스가 이용되는 경우, 제어 신호 전송 및 데이터 전송을 위해 필수적인 3개의 핀들(CLK, CSB, DATA)이 사용된다. 여기에서 상기 CLK는 클럭(Clock) 신호를 운반한다. 도 2에 도시된 것처럼 데이터 인에이블(DATA_EN) 신호나, 인터럽트 요청 (Interrupt Request : IRQ) 신호가 추가로 구성될 수 있다.
일반적으로 SPI 인터페이스는 10Mbps 이하의 성능을 요구하는 연속적인 데이터 스트림(Data Stream) 전송에 유용하다. 그러나, 상기 SPI 인터페이스가 스트림 전송을 위해 사용되기 위해서는 슬레이브(220)의 제어부(SPI I/F Controller)(225)를 제작하는데 있어서 많은 디자인 노력(Design Effort)이 요구되고, 내부적인 디자인 복잡도(Design Complexity)도 증가하는 단점이 있다.
도 3은 I2C 인터페이스 구조를 도시한 도면이다.
도 3을 참조하면, AP(310)와 슬레이브(320) 사이에서 I2C 인터페이스가 이용되는 경우, SCL, SDA의 두 핀을 이용하여 양방향 통신이 가능하다. 상기 SCL 라인은 클럭(Clock) 신호를 운반하는 라인이며, SDA 라인은 데이터(Data) 및 제어 정보 등을 전송하는 라인이다. 최소한 상기 두 라인을 이용하여 통신을 수행할 수 있는 I2C 인터페이스는 간단한 인터페이스 규격을 가지고 있으므로, 슬레이브(320)의 제어부(I2C I/F Controller)(325)를 제작하기는 용이하지만 인터페이스 자체의 속도가 최대 400Kbps 밖에 지원되지 않기 때문에 데이터의 전송에는 적합하지 않다는 단점이 있다.
또한, 상기 I2C 인터페이스는 기본적으로 어드레스 전송구간(Address Phase)과 데이터 전송구간(Data Phase)으로 나눠져 있기 때문에 시스템의 큰 변경 없이도 제어부(325)가 쉽게 제작될 수 있다 그러나, 지원하는 데이터 포맷(Data Format)이 8비트(Bit)이기 때문에 8비트를 넘어가는 어드레스나 데이터를 전송하기 위해서는 2번에 나눠서 전송해야 하고, 이를 인지하기 위한 별도의 하드웨어 블록(Hardware Block)을 구현해야 하며, 이에 따라 시스템의 복잡도(Complexity)가 증가하는 문제점이 있다.
도 4는 범용 입출력(General Purpose Input/Output: GPIO) 핀들을 이용한 인터페이스 구조를 도시한 도면이다.
도 4를 참조하면, AP(410)와 슬레이브(420) 사이에서 통신하기 위하여 범용 입출력 핀들을 이용한다. 통상적으로 칩에는 특정 용도가 부과되지 않은 범용 입출력 핀들이 구비된다.
상기 범용 입출력 핀들을 이용한 통신을 위하여, AP(410)가 상기 슬레이브(420)의 제어부(425)로 상기 범용 입출력 핀들을 통해서 제어 신호들(CSB, WEB, OEB, R/W, ADDR_SEL, SIZE[1:0]), 및 데이터(AD[15:0])를 전송한다. 상기 제어 부(425)는 상기 전송된 제어 신호들에 따라서 내부 블록에 접속하여 상기 데이터를 처리한다. 따라서, 상기 범용 입출력 핀들을 이용하는 경우, 이미 구비되어 있는 핀들을 이용하기 때문에 별도의 하드웨어 로직(Hardware logic)이 필요하지 않다.
그런데 도 4에 도시된 바와 같이 인터페이스를 위해 사용되는 핀들의 개수가 적은 편이긴 하지만, 범용 입출력 핀들을 이용하여 통신하기 때문에 데이터의 고속 전송에는 부적합하다. 또한, 소프트웨어의 실행 빈도가 높으면 높을수록 시스템의 성능(Performance)이 감소된다. 만약, 소프트웨어가 빈번하게 실행할 수 있을지라도 연속적으로 데이터에 대한 리드 동작을 수행해야 하는 경우 빠르게 처리할 수 없게 된다. 따라서, 도 4와 같은 인터페이스 구조는 저속의 데이터 전송율을 요구하는 시스템에 적용될 수 있는 단점이 있다.
따라서, 디자인 복잡도를 줄이면서, 높은 전송율을 갖는 범용적으로 사용 가능한 칩간(Chip-to-chip) 인터페이스가 요구된다.
따라서 본 발명은 통신 시스템에서 고속의 데이터 전송을 수행하기 위한 인터페이스 장치 및 방법을 제공한다.
또한, 본 발명은 통신 시스템에서 적은 핀들을 이용하여 고속의 데이터 전송 및 디자인 복잡도도 낮은 인터페이스 장치 및 방법을 제공한다.
본 발명의 바람직한 실시예의 일 견지에 따르면, 본 발명의 어플리케이션 프로세서(Application processor:AP)로 동작하는 제 1 칩과, 상기 AP의 제어하에 프 로세스들을 처리하는 제 2 칩간의 통신을 위한 인터페이스 장치는 상기 제 1 칩으로부터 상기 제 2 칩으로 어드레스 관련 정보를 전송하는 어드레스 전송 구간과 데이터를 전송하는 데이터 구간을 구분하는 어드레스 선택 신호를 전송하는 어드레스 선택 라인과, 상기 제 1 칩으로부터 상기 제 2 칩으로 상기 어드레스 관련 정보 또는 데이터를 전송하는 복수의 어드레스/데이터 라인들과, 상기 제 1 칩으로부터 상기 제 2 칩으로 동작 실행을 지시하는 신호를 전송하는 라인, 라이트(Write) 동작 실행을 지시하는 신호를 전송하는 라인, 리드(Read) 동작 실행을 지시하는 신호를 전송하는 라인을 포함하는 제어 라인들과, 상기 라인들을 통해 전송된 신호들에 따라 데이터를 처리하는 상기 제 2 칩의 제어부를 포함하고, 상기 제어부는 상기 어드레스 선택 신호에 따라 판단된 어드레스 전송 구간에서 상기 어드레스/데이터 라인들로 전송되는 어드레스 관련 정보를 통해 획득한 리드/라이트 동작 여부 정보, 데이터 사이즈 정보, 어드레스 정보를 이용하여 상기 데이터 전송구간에 전송되는 데이터를 처리함을 특징으로 한다.
본 발명의 바람직한 실시예의 다른 견지에 따르면, 본 발명의 어플리케이션 프로세서(Application processor:AP)로 동작하는 제 1 칩과, 상기 AP의 제어하에 프로세스들을 처리하는 제 2 칩간의 통신을 위한 인터페이스 방법은 상기 제 1 칩이 상기 제 2 칩의 제어부로 전송한 어드레스 선택 신호에 따라 어드레스 관련 정보를 전송하는 어드레스 전송 구간인지 데이터를 전송하는 데이터 구간인지를 판단하는 과정과, 상기 판단 결과 상기 어드레스 전송 구간이면, 상기 제어부는 상기 어드레스/데이터 라인들로 전송되는 어드레스 관련 정보를 통해 리드/라이트 동작 여부, 데이터 사이즈 정보, 어드레스 정보를 획득하는 과정과, 상기 획득한 리드/라이트 동작 여부 정보 중에서 리드 동작인 경우, 해당하는 어드레스의 제 2칩의 내부 블록으로부터 데이터를 읽어 들여 저장된 저장부로부터 데이터를 상기 제 1 칩이 전송한 제어 신호들(동작 실행을 지시하는 신호 및 리드(Read) 동작 실행을 지시하는 신호)에 따라 상기 제 1칩으로 전송하는 과정을 포함한다.
전술한 바와 같은 내용들은 당해 분야 통상의 지식을 가진 자가 후술되는 본 발명의 구체적인 설명으로부터 보다 잘 이해할 수 있도록 하기 위하여 본 발명의 특징들 및 기술적인 장점들을 다소 넓게 약술한 것이다. 이러한 특징들 및 장점들 이외에도 본 발명의 청구범위의 주제를 형성하는 본 발명의 추가적인 특징들 및 장점들이 후술되는 본 발명의 구체적인 설명으로부터 잘 이해될 것이다.
이하 본 발명의 바람직한 실시예의 상세한 설명이 첨부된 도면들을 참조하여 설명될 것이다. 당해 분야에서 통상의 지식을 가진 자는 본 발명이 이루고자 하는 기술적 과제를 달성하기 위하여 후술되는 발명의 개시된 개념 및 구체적인 실시예가 변경 또는 변형되어 사용될 수도 있다는 사실을 잘 인식할 것이다. 또한 당해 분야에서 통상의 지식을 가진 자는 본 발명이 개시하는 개념 및 구조와 균등한 개념들 및 구조들이 본 발명의 가장 넓은 형태의 사상 및 범위로부터 벗어나지 않는다는 사실을 잘 인식할 것이다. 도면들 중 참조번호 및 동일한 구성요소에 대해서는 비록 다른 도면상에 표시되더라도 가능한 한 동일한 참조번호들 및 부호들로 나 타내고 있음에 유의해야 한다. 하기에서 본 발명을 설명함에 있어, 관련된 공지 기능 또는 구성에 대한 구체적인 설명이 본 발명의 요지를 불필요하게 흐릴 수 있다고 판단되는 경우에는 그 상세한 설명을 생략할 것이다.
본 발명은 통신 시스템에서 어드레스와 데이터를 다중화하여 전송함으로써, 적은 핀들을 이용하여 디자인 복잡도가 낮으면서 고속의 데이터 전송율을 갖는 범용적으로 사용가능한 인터페이스를 제공한다.
도 5는 본 발명의 바람직한 실시예에 따른 인터페이스 구조를 도시한 도면이다. 본 발명은 제어 신호들 및 어드레스/데이터를 위한 19개의 SRAM 인터페이스용 전용 핀들을 이용한 19 개의 라인들을(CSB, WEB, OEB, AD[15:0])과, 어드레스 구간(Address Phase)임을 알리기 위한 1개의 범용 입출력 핀(GPIO)을 사용하여 통신을 수행한다.
도 5를 참조하면, AP(510)는 제어 신호 라인들을 통하여 전송된 제어 신호들에 의하여 슬레이브(520)의 동작을 제어한다. 상세히 설명하면, 상기 AP(510)가 슬레이브(520)를 제어하기 위한 신호들로써, CSB, WEB, OEB 신호들을 슬레이브로 전송한다. 상기 AP(510)는 슬레이브들 중에서 특정 프로세스들을 처리할 슬레이브(520)을 선택하게 되는데, 이렇게 선택된 슬레이브(520)에게 상기 슬레이브(520)가 선택되었음을 알리기 위하여 상기 CSB 신호를 전송한다. 상기 WEB 신호는 특정 시점에서 상기 선택된 슬레이브(520)가 라이트 동작을 수행해야함을 알리기 위한 신호이고, 상기 OEB 신호는 특정 시점에서 상기 선택된 슬레이브(520)에게 리드 동작을 위한 데이터를 전송해야함을 알리기 위한 신호이다.
상기 AP(510)는 상기 제어 신호들에 따라 처리할 데이터를 상기 슬레이브(520)로 AD[15:0] 라인을 통하여 전송한다. 특히, 본 발명에서는 상기 데이터를 전송하는 16개의 AD[15:0] 라인을 통하여 데이터뿐만 아니라 어드레스 관련 정보를 멀티플렉싱(Multiplexing)하여 함께 전송한다. 즉, 어드레스 관련 정보와 데이터를 각각의 분리된 라인(핀)을 통하여 전송하는 대신에, 어드레스 관련 정보 전송구간 및 데이터 전송구간을 구분하면서 상기 어드레스 관련 정보와 데이터를 통합하여 공통의 라인들을 통해 전송한다. 본 발명은 이렇게 어드레스 관련 정보 전송과 데이터 전송을 위하여 16개의 통합된 핀들을 구비한다. 상기 어드레스 관련 정보 전송구간 또는 데이터 전송구간은 범용 입출력 핀(GPIO)을 통해 전달되는 어드레스 선택(Address_Select: ADDR_SEL) 신호에 의해 구분된다. 이렇게, 본 발명에서는 어드레스 관련 정보를 전송하기 위한 핀들을 별도로 사용하지 않음으로써 성능의 저하를 초래하지 않으면서 사용되는 핀들의 수를 줄일 수 있다. 또한, 사용되는 핀들의 수를 줄임으로써 사이즈의 제약이 많은 소형 단말기에 적용이 용이하다.
상기 AP(510)로부터 전송되는 인터페이스 신호들은 슬레이브(520)의 제어부(Host I/F Controller)(525)로 전송되며, 상기 신호들에 따라 상기 제어부(525)는 슬레이브(520)가 해당 프로세스들을 수행하도록 제어한다.
상기 인터페이스와 제어부(525)에 대하여 도 6을 통하여 자세히 설명한다.
도 6은 본 발명의 바람직한 실시예에 따른 인터페이스 장치를 도시하는 도면이다. 설명의 편의상 AP는 도 6에 도시하지 않고 생략한다.
도 6을 참조하면, 본 발명의 인터페이스 장치(600)는 제어부(525)에 해당하 는 호스트-슬레이브 블록(Host-Slave Block)과 상기 호스트-슬레이브 블록(525)과 AP(도시하지 않음)를 연결하는 인터페이스(610)로 구분된다. 본 발명의 인터페이스 구조는 SRAM 인터페이스 구조와 유사하나, 어드레스와 데이터를 멀티플레싱하고 간편하게 데이터가 연속적으로 전송되는 버스트 동작(Burst Operation)을 지원하기 위해 데이터의 사이즈를 정할 수 있는 것이 가장 대표되는 큰 차이점이며, 기존의 SRAM 인터페이스의 신호를 거의 그대로 이용하기 때문에 시스템의 변경 없이 성능을 향상시킬 수 있다.
상기 호스트-슬레이브 블록(525)은 제어 경로 엔진(Control Path Engine, 이하 'CPE'라 칭함)(620), 어드레스 경로 엔진(Address Path Engine, 이하 'APE'라 칭함)(630), 데이터 경로 엔진(Data Path Engine, 이하 'DPE'라 칭함)(640)으로 구성된다.
상기 CPE(620)은 제어 신호들인 CSB(660) 신호, WEB(662) 신호, OEB(664) 신호가 입력되면, 상기 제어 신호들에 따라 내부 블록(미도시)(예를 들어, 메모리 블록)의 입출력 패드를 제어(I/O pad control)하며, 내부 블록에 대한 리드/라이트 접속(Write/Read access)을 결정하는 신호를 생성하여 내부블록으로 전달한다. 즉, 상기 입력된 제어 신호에 따라서, 라이트/리드(670) 동작 신호 및 인에이블(Enable)(672) 신호를 생성하여 내부 블록으로 전달한다. 그리고, APE(630)는 AP로부터 수신하는 어드레스 선택(ADDR_SEL)(666) 신호에 대한 정보를 상기 CPE(620)로 전달함으로써, 상기 CPE(620)는 상기 전달된 정보와 타이밍을 맞춰서 상기 리드/라이트 접속(670) 신호 및 인에이블(672) 신호를 내부 블록으로 전달한다.
여기에서, 상기 CSB(660) 신호는 선택된 칩(슬레이브 시스템)의 동작여부에 대해 지시하는 신호로써, '0'인 경우 사용함을 의미하고 '1'인 경우 사용하지 않음을 의미한다. 상기 WEB(662) 신호는 라이트 동작 여부를 제어하는 신호로서, '0'인 경우 라이트 동작을 수행함을 의미하고, '1'인 경우 동작을 수행하지 않음을 의미한다. 상기 OEB(664) 신호는 리드 동작 여부를 제어하는 신호로서, '0'인 경우 리드 동작을 수행함을 의미하고, '1'인 경우 동작을 수행하지 않음을 의미한다. 또한, 상기 CPE(620)는 상기 제어 신호들(CSB(660) 신호, WEB(662) 신호, OEB(664))에 따라 APE(630)의 리드/라이트 동작 수행을 제어한다.
그리고, 상기 CSB(660) 신호는 CSB 라인(660)을 통하여 전송되는 신호를 의미하며, WEB(662) 신호는 WEB 라인(662)을 통하여 전송되는 신호를, OEB(664) 신호는 OEB 라인(664)을 통하여 전송되는 신호를, 라이트/리드 동작(670) 신호는 라이트/리드 동작 라인을 통하여 전송되는 신호, 인에이블(672) 신호는 인에이블 라인(672)을 통하여 전송되는 신호를, 어드레스 선택(668) 신호는 어드레스 선택 라인(668)을 통하여 전송되는 신호를 의미한다. 또한, 상기 라인들은 인터페이스를 구성하는 장치들이다.
상기 APE(630)은 AP로부터 수신된 어드레스 선택(666) 신호를 통하여 어드레스/데이터(AD[15:0]) 라인(668)을 통해 AP로부터 수신되는 정보가 어드레스 관련 정보인지 데이터인지 구별한다. 여기서 상기 어드레스 선택(666) 신호는 1비트로, '0'인 경우 어드레스 관련 정보 전송을 의미하며, '1'인 경우 데이터 전송을 의미한다. 상기 어드레스 선택(666) 신호가 '0'으로 어드레스 관련 정보를 제공함을 의 미할 때 전송된 정보(SIZE[1:0], Address) 및 제어 신호(CSB(660), WEB(662), OEB(664) 신호)에 따른 CPE(620)의 제어에 의해 상기 APE(630)는 내부 블록 선택(Select[x:0])(674) 신호, 및 어드레스(ADDR[x:0])(676) 신호를 생성하여 해당하는 내부 블록으로 전달한다.
라이트 동작 수행 또는 리드 동작의 수행 여부는 상기 CPE(620)으로 수신된 CSB(660), WEB(662), OEB(664) 신호에 의해 결정되는데, 이러한 결정에 따라 CPE(620)가 APE(630)의 동작을 제어한다. 상세히 설명하면, 라이트 동작 수행으로 결정된 경우, 수신된 어드레스 선택(668) 신호에 따라 상기 APE(630)는 AD[15:0] 라인들을 통하여 수신되는 데이터의 기록(Write)을 위하여, 해당하는 어드레스의 내부 블록으로 라이트 데이터(WDATA[15:0]) 라인들(678)을 통하여 상기 데이터를 전달한다. 그리고, 리드 동작 수행으로 결정된 경우, 수신된 어드레스 선택(668) 신호에 따라 상기 APE(630)는 DPE(640)에 저장된 데이터를 AD[15:0] 라인들을 통해 AP로 전송한다.
여기에서, 상기 리드 동작의 경우, 해당하는 어드레스의 내부 블록으로부터 읽어 들여온 데이터가 DPE(640)의 전송 선입선출 버퍼(Tx First Input First Output Buffer, 이하 'Tx FIFO'라 칭함)(650)에 일시적으로 저장된다. 다시 말해서, DPE(640)는 리드 동작인 경우 상기 APE(630)로부터 제공된 어드레스에 해당하는 내부 블록으로부터 리드 데이터(RDATA[15:0]) 라인들(680)을 통하여 읽어온 데이터를, 미리 결정된 버스트 사이즈에 따라 전송 선입선출 버퍼(Tx First Input First Output Buffer, 이하 'Tx FIFO'라 칭함)(650)에 저장한다. 이렇게 DPE(640) 에 저장된 데이터를 상기 APE(630)는 상기 제어 신호들에 따라서 AD[15:0] 라인들(668)을 통하여 AP로 전송한다.
상기에서 언급한 사이즈 신호(SIZE[1:0])는 하나의 어드레스 관련 정보에 대해 전송되는 데이터의 전송 단위에 대한 정보를 제공하기 위한 목적으로, 어드레스 전송구간에서 상기 어드레스 선택(666) 신호에 포함되는 신호이다. 상기 사이즈 신호를 제공하기 위하여 본 발명에서는 2 비트를 이용하는데, 이는 슬레이브와 AP간에 전송되는 데이터의 전송 단위를 나타낸다. 본 발명의 일실시예에 따른 상기 2비트 사이즈 신호에 대한 각각의 의미는 다음의 <표 1>과 같이 정해질 수 있다. 상기 사이즈 신호에 따른 전송 단위에 따라 버스트 동작(Burst Operation)여부가 결정된다.
Figure 112006062378994-PAT00001
상기 <표 1>의 버스트 사이즈에서 하프워드(Halfword)는 기본전송 단위를 나타내며, 1 하프워드는 16비트를 의미한다. 또한 상기 시스템에서 1 하프워드 전송은 단일 전송(Single Transfer)이라 하며, 복수의 하프워드 전송은 버스트 전송(Burst Transfer)이라 한다. 여기서 상기 <표 1>을 살펴보면, 상기 사이즈 신호가 '00'인 경우 1 하프워드로써 단일 전송을 의미하며, 나머지 경우는 복수의 하드워드로써 버스트 전송을 의미한다. 또한, 여기에서 단일 전송은 1 하프워드 단위의 데이터를 전송할 때마다 어드레스 관련 정보를 전송하는 것을 의미하고, 버스트 전송은 복수의 데이터들의 전송 시 1 하프워드의 어드레스 관련 정보만을 전송함을 의미한다. 즉, 버스트 전송에서 4 하프워드는 4하프워드의 데이터 전송에 1 하프워드의 어드레스 관련 정보만을 전송하는 것이고, 8 하프워드는 8 하프워드의 데이터 전송에 1 하프워드의 어드레스 관련 정보만을 전송하는 것이다. 따라서, 버스트 전송은 미리 정해진 복수의 하프워드의 데이터 전송에 1 하프워드의 어드레스 관련 정보만을 전송하는 것을 의미한다.
상술한 사이즈 신호는 어드레스 전송구간에서 AD[15:0] 라인(668)을 통하여 전송되는 제어 신호에 포함되어 전송되는데, 상기 제어 신호가 전달되는 포맷의 일예를 도 7a를 통하여 살펴본다. 또한, 어드레스 전송구간 이후에 전송되는 데이터 전송구간에서 전송되는 데이터의 포맷도 도 7b에 도시한다.
도 7a 및 도 7b는 본 발명의 바람직한 일실시예에 따라 각각 어드레스 전송구간 및 데이터 전송구간에서 전송되는 데이터 포맷들을 도시한 도면들이다.
도 7a를 참조하면, 어드레스 전송구간에서 AD[15:0] 라인들(668)로 전송되는 어드레스 관련 정보는 1 하프워드인 16비트([15:0])로 전송되고, 어드레스 정보를 포함하는 12 비트의 어드레스(ADDRESS) 필드, 전송될 데이터의 사이즈(전송단위)에 관한 정보를 포함하는 2비트의 사이즈(SIZE) 필드, 데이터 전송구간에서 전송될 데이터에 대하여 리드 동작인지, 라이트 동작인지에 대한 정보를 포함하는 1비트의 리드/라이트(R/W) 필드로 구성된다. 상기 리드/라이트 필드 값에 의해서, 상기 어드레스에 대해 리드 동작이 수행될지, 라이트 동작이 수행될지를 어드레스 전송구간에서 알 수 있다. 이렇게 함으로써, 본 발명은 어드레스 전송 및 데이터 전송을 16 개의 동일한 어드레스/데이터 라인들을 이용하여 전송하면서도 데이터에 대해 리드할 것인지 라이트할 것인지를 어드레스 구간에서 알 수 있기 때문에, 리드 동작인 경우에 데이터를 읽어 와서 미리 저장시킬 수 있고, 요청 시에 빠르게 데이터를 전송할 수 있다.
도 7b를 참조하면, 데이터 전송구간에서 리드 동작 또는 라이트 동작시 전송되는 데이터는 AD[15:0] 라인들(668)을 통하여 16비트씩 전송된다.
도 8a 및 도 8b는 본 발명의 바람직한 실시예에 따른 인터페이스 장치에서 단일 전송 동작을 나타내는 타이밍도로서, 각각 라이트와 리드 동작의 경우들을 나타낸다.
도 8a를 참조하여 도 6에 도시된 인터페이스 장치(600)에서 인터페이스(610)를 통해 제어부(호스트-슬레이브 블록)(525)로 전송되는 제어 신호들을 설명한다.
본 발명에서는 도 6의 어드레스 선택(666) 신호에 의해 어드레스 전송구간(Address Phase)(801)과 데이터 전송구간(Data Phase)(802)으로 나누어진다.
도 8a에 도시된 바와 같이, 상기 어드레스 선택(ADDR_SEL) 신호가 '0'인 구간은 어드레스 관련 정보를 전송하는 어드레스 전송구간(801)임을 의미한다. 상기 어드레스 전송구간(801)에서 제어부(525)는 어드레스/데이터(AD[15:0]) 라인들(668)로 전송되는 정보를 어드레스 관련 정보로 인식하고, 상기 전송된 정보를 통하여 R/W 정보, 사이즈 정보, 어드레스 정보를 획득한다. 상기 R/W 정보(R/W), 사이즈 정보(SIZE[1:0]), 어드레스 정보(Address)는 도 7a에 도시된 포맷으로 제공된다. 도 8a에서는 사이즈가 1이므로, 1 하프워드인 단일 전송에 해당한다. 상기 사이즈 정보는 상기 <표 1>에 도시된 것처럼 제공된다.
상술한 바와 같이, 단일 전송의 경우 어드레스 전송 구간(801) 이후에 1 하프워드의 데이터 전송구간(802)에서 데이터가 전송된다. 또한, 상기 어드레스 전송구간(801)에서 CSB 신호가 '0'이므로 동작 실행을 의미하고, WEB 신호가 '0'이므로 라이트 동작 수행을 의미한다.
상기 어드레스 전송구간(801)이 경과된 후에, CSB 신호가 '0'이 되면서 AP는 제어부(525)에게 동작을 실행할 것을 지시하는데, ADDR_SEL 신호가 '1'이므로 데이터 전송구간(802)임을 의미한다. 따라서, 상기 제어부(525)는 AD[15:0] 라인들을 통하여 전송되는 데이터에 대하여 리드 또는 라이트 동작을 하게 되는데, WEB 신호가 '0'이므로 상기 전송된 데이터에 대하여 라이트 동작을 수행한다. 즉, 상기 제어부(525)는 상기 어드레스 전송구간(801)에서 전송된 정보를 통하여 얻은 어드레스 정보(Address0)를 이용하여 상기 어드레스(Address0)에 해당하는 내부 블록에 상기 전송된 데이터를 라이트한다.
도 8a에서 리드 동작을 의미하는 OEB 신호는 계속해서 '1'을 가리키므로 리드 동작은 수행하지 않는다.
도 8b를 참조하면, 도 8a와 같이, 상기 어드레스 선택(ADDR_SEL) 신호가 '0'인 구간은 어드레스 관련 정보를 전송하는 어드레스 전송구간(803)임을 의미한다. 상기 어드레스 전송구간(803)에서 제어부(525)는 어드레스/데이터(AD[15:0]) 라인들(668)로 전송되는 정보를 어드레스 관련 정보로 인식하고, 상기 전송된 정보를 통하여 R/W 정보, 사이즈 정보, 어드레스 정보를 획득한다. 도 8b에서도 사이즈가 1이므로, 1 하프워드인 단일 전송에 해당한다. 상술한 바와 같이, 단일 전송의 경우 어드레스 전송 구간(803) 이후에 1 하프워드의 데이터 전송구간(804)에서 데이터가 전송된다. 또한, 상기 어드레스 전송구간(803)에서 CSB 신호가 '0'이므로 동작 실행을 의미하고, WEB 신호가 '0'이므로 라이트 동작 수행을 의미한다. 즉, CSB 신호가 '0'인 경우에 동작 실행을 하는데, WEB 신호가 '0'이므로 라이트 동작을 수행함을 의미한다.
상기 어드레스 전송구간(803)이 경과된 후에, CSB 신호가 '0'이 되면서 AP는 제어부(525)에게 동작을 실행할 것을 지시하는데, ADDR_SEL 신호가 '1'이므로 데이터 전송구간(804)임을 의미한다. 따라서, 상기 제어부(525)는 AD[15:0] 라인들을 통하여 전송되는 데이터에 대하여 리드 또는 라이트 동작을 하게 되는데, OEB 신호가 '0'이므로 읽어 들인 데이터를 전송하는 리드 동작을 수행한다. 이때, 상기 제어부(525)는 상기 어드레스 전송구간(803)에서 전송된 정보를 통하여 얻은 어드레스 정보(Address0)를 이용하여 상기 어드레스(Address0)에 해당하는 내부 블록으로부터 읽어 들여 Tx FIFO(650)에 저장된 데이터를 상기 CSB 신호 및 OEB 신호가 '0'이 될 때 전송하는 것이다. 이 때, 라이트 동작을 의미하는 WEB 신호는 데이터 전송구간(804)에서 '1'을 가리키므로 라이트 동작은 수행하지 않는다.
도 9a 및 도 9b는 본 발명의 바람직한 실시예에 따른 인터페이스 장치에서 버스트 전송 동작을 나타내는 타이밍도로서, 각각 라이트와 리드 동작의 경우들을 나타낸다.
도 9a를 참조하여 도 6에 도시된 인터페이스 장치(600)에서 인터페이스(610)를 통해 제어부(525)로 전송되는 제어 신호들을 통해 설명한다.
도 9a에 도시된 바와 같이, 상기 어드레스 선택(ADDR_SEL) 신호가 '0'인 구간은 어드레스 관련 정보를 전송하는 어드레스 전송구간(901)임을 의미한다. 상기 어드레스 전송구간(901)에서 제어부(525)는 어드레스/데이터(AD[15:0]) 라인들(668)로 전송되는 정보를 어드레스 관련 정보로 인식하고, 상기 전송된 정보를 통하여 R/W 정보, 사이즈 정보, 어드레스 정보를 획득한다. 도 9a에서는 사이즈가 4이므로, 복수의 하프워드들의 데이터가 전송되는 버스트 전송에 해당한다. 상기 <표 1>의 SIZE가 '01'인 경우에 해당한다. 상술한 바와 같이, 버스트 전송의 경우 어드레스 전송 구간(901) 이후의 데이터 전송구간(902)에서 복수의 하프워드들의 데이터가 전송된다. 즉, 사이즈가 4이므로, 상기 데이터 전송구간(902)에서 4 하프워드들만큼 데이터가 전송된다. 또한, 상기 어드레스 전송구간(901)에서 CSB 신호가 '0'이므로 동작 실행을 의미하고, WEB 신호가 '0'이므로 라이트 동작 수행을 의미한다. 즉, CSB 신호가 '0'인 경우에 동작 실행을 하는데, WEB 신호가 '0'이므로 라이트 동작을 수행함을 의미한다.
상기 어드레스 전송구간(901)이 경과된 후에, CSB 신호가 '0'이 되면서 AP는 제어부(525)에게 동작을 실행할 것을 지시하는데, ADDR_SEL 신호가 '1'이므로 데이터 전송구간(902)임을 의미한다. 따라서, 상기 제어부(525)는 AD[15:0] 라인들을 통하여 전송되는 데이터에 대하여 리드 또는 라이트 동작을 하게 되는데, WEB 신호가 '0'이므로 상기 전송된 데이터에 대하여 라이트 동작을 수행한다. 이때, 상기 제어부(525)는 상기 어드레스 전송구간(901)에서 전송된 정보를 통하여 얻은 어드레스 정보(Address0)를 이용하여 상기 어드레스(Address0)에 해당하는 내부 블록에 상기 전송된 데이터를 라이트한다. 이때, 상기 데이터 전송구간(902)에서 전송하는 각 하프워드의 데이터에 대해 상기 제공된 어드레스 값(Address0)에 '2'씩 증가시켜서 해당하는 어드레스에 라이트 동작을 수행한다.
도 9a에서 리드 동작을 의미하는 OEB 신호는 계속해서 '1'을 가리키므로 리드 동작은 수행하지 않는다.
도 9b를 참조하면, 도 9a와 같이, 상기 어드레스 선택(ADDR_SEL) 신호가 '0'인 구간은 어드레스 관련 정보를 전송하는 어드레스 전송구간(903)임을 의미한다. 상기 어드레스 전송구간(903)에서 제어부(525)는 어드레스/데이터(AD[15:0]) 라인들(668)로 전송되는 정보를 어드레스 관련 정보로 인식하고, 상기 전송된 정보를 통하여 R/W 정보, 사이즈 정보, 어드레스 정보를 획득한다. 도 9b에서도 사이즈가 4이므로, 복수의 하프워드들의 데이터가 전송되는 버스트 전송에 해당한다. 상술한 바와 같이, 단일 전송의 경우 어드레스 전송 구간(903) 이후의 데이터 전송구간(904)에서 복수의 하프워드들의 데이터가 전송된다. 즉, 사이즈가 4이므로, 상기 데이터 전송구간(904)에서 4 하프워드들만큼 데이터가 전송된다. 또한, 상기 어드레스 전송구간(903)에서 CSB 신호가 '0'이므로 동작 실행을 의미하고, WEB 신호가 '0'이므로 라이트 동작 수행을 의미한다. 즉, CSB 신호가 '0'인 경우에 동작 실행을 하는데, WEB 신호가 '0'이므로 라이트 동작을 수행함을 의미한다.
상기 어드레스 전송구간(903)이 경과된 후에, CSB 신호가 '0'이 되면서 AP는 제어부(525)에게 동작을 실행할 것을 지시하는데, ADDR_SEL 신호가 '1'이므로 데이터 전송구간(904)임을 의미한다. 따라서, 상기 제어부(525)는 AD[15:0] 라인들을 통하여 전송되는 데이터에 대하여 리드 또는 라이트 동작을 하게 되는데, OEB 신호가 '0'이므로 읽어 들인 데이터를 전송하는 리드 동작을 수행한다. 이때, 상기 제어부(525)는 상기 어드레스 전송구간(903)에서 전송된 정보를 통하여 얻은 어드레스 정보(Address0)를 이용하여 상기 어드레스(Address0)에 해당하는 내부 블록으로부터 읽어 들여 Tx FIFO(650)에 저장된 데이터를 상기 CSB 신호 및 OEB 신호가 '0'이 될 때 전송하는 것이다. 이때, 상기 제공된 어드레스 값(Address0)에 '2'씩 증가시켜서 해당하는 어드레스로부터 읽어 들여 상기 Tx FIFO(650)에 저장된 데이터를 상기 제어부(525)는 상기 데이터 전송구간(902)에서 리드 동작 수행시에 AP로 전송한다. 그리고, 라이트 동작을 의미하는 WEB 신호는 데이터 전송구간(904)에서 '1'을 가리키므로 라이트 동작은 수행하지 않는다.
상술한 도 9a와 같이 전송 사이즈에 있어서 단일 전송이 아니고 버스트 전송(Burst Transfer)이면서 라이트 동작인 경우, 어드레스 디코딩을 수행하고, 데이터 전송구간과 관련된 제어 신호가 입력되면 라이트 할 데이터를 내부 블록으로 전달한 후, 사이즈 값을 1만큼 감소시킨다. 그리고 나서, 다음 데이터의 어드레스를 자동으로 증가시킨 후, 다시 데이터 전송구간과 관련된 제어 신호가 들어오면 라이트할 데이터를 전달하는 과정을 상기 사이즈값이 '0'이 될 때까지 반복하여 수행한다. 도 9a는 4하프워드로 동작하는 실시예를 도시하고 있으므로, 상기 데이터 전송구간(902)은 네 개의 하프워드들로 나뉘어져 있고, 제어부(525)는 해당 내부블록에 라이트 동작을 각 하프워드 단위로 수행한다. 여기에서, 제어부(525)는 상기 데이터 전송구간(902)의 각 하프워드의 어드레스를 '2'씩 증가시켜서 각각 해당하는 어드레스에 라이트 동작을 수행한다. 이렇게 상기 어드레스를 '2'씩 증가시키는 이유는 8비트 단위로 주소가 바뀌기 때문이다. 이런 방식을 이용하여 8 하프워드 또는 16 하프워드에 대한 어드레스를 생성할 수 있다.
또한, 도 9b와 같이 상기 전송 사이즈가 버스트 전송이면서 리드 동작인 경우, 제어부(525)는 어드레스 디코딩을 수행하고, 상기 디코딩된 어드레스로부터 읽어(Read) 온 데이터를 도 6의 Tx FIFO(650)에 저장하고, 사이즈값을 1 감소시킨다. 그리고 나서, 상기 제어부(525)가 다음 데이터의 어드레스를 자동으로 증가시킨 후, 다시 읽어 온 데이터를 Tx FIFO(650)에 저장하고 사이즈값을 1 감소시킨다. 이렇게 데이터를 읽어 와서 Tx FIFO(650)에 저장하고 사이즈 값을 감소시키면서 상기 사이즈값이 '0'이 될 때까지 상기 제어부(5250는 상기 과정을 반복한다. 이때, 데이터 전송구간과 관련된 제어 신호가 전송되면, 상기 제어부(525)는 Tx FIFO(650)에 저장된 데이터를 AP로 전송하는 동작을 동시에 수행한다.
도 9b와 같이, 도 9b도 4하프워드로 동작하는 실시예를 도시하고 있으므로, 상기 데이터 전송구간(904)은 네 개의 하프워드로 나뉘어져 있고, 제어부(525)는 해당 내부블록으로부터 데이터를 읽어 와서 Tx FIFO(650)에 저장하는 동작을 각 하프워드 단위로 수행한다. 여기에서, 제어부(525)는 상기 데이터 전송구간(904)의 각 하프워드의 어드레스를 '2'씩 증가시켜서 각각 해당하는 어드레스로부터 데이터를 읽어오는 동작을 수행한다.
그런데, 상기 도 8a 및 8b와 같이 단일 전송만을 수행할 경우, 전용 인터페이스 하드웨어 로직이 없다면 이를 이용하는 AP의 소프트웨어 버든(Software burden)이 커지게 된다. 따라서 상기 AP의 소프트웨어 버든을 효과적으로 감소시키면서 데이터 전송율을 높일 수 있는 방법으로 도 9a 및 도 9b와 같이 어드레스를 제거한 버스트 전송(burst operation)을 제안한다.
또한, 본 발명에서는 하드웨어 로직을 간단하게 하기 위해 버스트 전송에서의 리드 동작의 경우 사이즈(SIZE[1:0]) 신호에 따라 어드레스를 자동으로 증가시키면서 데이터를 수신하도록 제안한다. 따라서, 라이트 동작의 경우 AP로부터 데이터를 전송하기 때문에 중간에 FIFO와 같은 별도의 저장매체 없이도 어드레스만을 증가시키면서 내부 버스(bus)로 전송할 수 있다. 하지만 버스트 전송에서의 라이트 동작의 경우, 슬레이브가 AP로 데이터를 SIZE[1:0]만큼 계속해서 전송해야 하고 얼마나 빠른 속도록 동작될지 모르기 때문에 미리 저장 매체(예, Tx FIFO)에 쌓아야 한다. 상기 저장 매체를 이용함으로써 AP의 리드 동작의 경우에도 성능을 크게 향상시킬 수 있다.
도 10은 본 발명의 바람직한 실시예에 따른 칩들간의 통신 절차를 도시하는 흐름도이다. 본 발명에서 칩들간에 통신하는 인터페이스 방법은 도 6의 제어부(호스트-슬레이브 블록)(525)가 인터페이스(610)로부터 수신된 CSB(660), WEB(662), OEB(664), ADDR_SEL(666)의 제어 신호를 수신하여 라이트 또는 리드 동작을 위한 신호를 생성하여 다음에 들어오는 데이터와 함께 내부 블록을 억세스함으로써 수행된다.
도 10을 참조하면, 1002단계에서 제어부(525)는 유휴(Idle) 상태로 유지한다.
1004 단계에서, AP로부터 인터페이스(610)를 통해 제어 신호들(CSB(660), WEB(662), OEB(664), ADDR_SEL(666))을 수신하면, 상기 제어부(525)는 리드 동작 여부를 확인한다. 상기 리드 동작여부는 어드레스/데이터 라인을 통해 전송되는 데이터에서, 도 7a의 'R/W' 필드에 의해 확인될 수 있다. 만약 상기 제어 신호에 의해 리드 동작으로 결정되면, 제어부(525)는 1006 단계로 진행하고, 라이트 동작으로 결정되면, 1020 단계로 진행한다.
1006 단계에서, 제어부(525)는 어드레스 전송구간에서 전송된 어드레스 관련 정보에서 'SIZE'(표 1에 도시함) 필드에 의해 상기 1004 단계에서 결정된 리드 동작이 단일 전송에 대한 것인지 버스트 전송에 대한 것인지를 확인하고, 상기 'SIZE' 정보에 따른 초기 사이즈 값을 설정한다. 만약 상기 동작이 단일 전송에 대한 것이라면 제어부(525)는 1018 단계로 진행하고, 상기 동작이 버스트 전송에 대한 것이라면 1008 단계로 진행한다.
1008 단계에서, 제어부(525)는 상기 버스트 전송에 대해 리드 동작을 수행할 어드레스를 알기 위하여 AD[15:0]라인들을 통해 전송된 어드레스 정보를 디코딩한다.
1010 단계에서, 제어부(525)는 상기 디코딩된 어드레스 정보에 따라 해당하는 어드레스의 내부 블록으로부터 읽어 와서 Tx FIFO(650)에 저장하고, 사이즈값을 1 감소시킨 후, 어드레스 값을 자동으로 '2'만큼 증가시킨다.
1012 단계에서, 제어부(525)는 상기 사이즈 값이 0인지를 확인한다. 만약 상기 사이즈 값이 0이라면 1014 단계로 진행하고, 상기 사이즈 값이 0이 아니라면 상기 1008 단계로 되돌아간다.
1014 단계에서, 제어부(525)는 상기 1010 단계에서 Tx FIFO(650)에 저장된 데이터를 상기 제어 신호('CSB'신호 및 'OEB' 신호)의 동작 수행지시에 따라서 AP로 전송한다. 도 10에서 상기 저장된 데이터가 AP로 전송되는 것이 사이즈 값이 0이 된 후에 수행되는 것으로 도시되고 있지만, 상기 저장된 데이터는 사이즈가 0이 되기 전이라도 상기 제어 신호('CSB'신호 및 'OEB' 신호)의 동작 수행지시에 따라 AP로 전송될 수 있다. 즉, 상기 1010 단계 내지 1012 단계 수행 중이라도 제어부(525)는 상기 제어 신호의 동작 수행 지시가 있으면, AP로 상기 데이터를 전송할 수 있다.
만약 상기 1006 단계에서, 상기 동작이 단일 전송에 대한 것으로 확인되면, 1018 단계에서 제어부(525)는 전송된 어드레스를 디코딩하고, 해당하는 어드레스의 내부 블록으로부터 데이트를 읽어 와서 상기 Tx FIFO(650)에 저장한다. 그리고 나서 상기 데이터 전송에 관한 제어 신호('CSB'신호 및 'OEB' 신호)의 동작 수행지시에 따라서 상기 저장된 데이터를 전송하기 위하여 1014 단계로 진행한다.
상기 1004 단계에서 상기 동작이 라이트 동작으로 결정되면, 1020 단계에서 제어부(525)는 어드레스 전송구간인 경우 전송되는 어드레스 관련 정보에서 'SIZE'(표 1에 도시함) 필드를 확인함으로써 상기 1004 단계에서 결정된 라이트 동작이 단일 전송에 대한 것인지 버스트 전송에 대한 것인지를 확인하고, 상기 'SIZE' 정보에 따른 사이즈 값을 설정한다. 만약 상기 동작이 단일 전송에 대한 것이라면 제어부(525)는 1028 단계로 진행하고, 상기 동작이 버스트 전송에 대한 것이라면 1022 단계로 진행한다.
1022 단계에서, 제어부(525)는 상기 버스트 전송에 대해 라이트 동작을 수행할 어드레스를 알기 위하여 AD[15:0]라인들을 통해 전송된 어드레스 관련 정보를 디코딩한다. 그리고, 상기 AD[15:0]라인들을 통해 상기 제어 신호('CSB'신호 및 'WEB' 신호)에 따라 데이터를 AP로부터 수신한다.
1024 단계에서, 제어부(525)는 상기 디코딩된 정보에 따라서, 상기 수신된 데이터를 해당하는 어드레스의 내부 블록으로 전송하고, 사이즈값을 1 감소시킨 후, 어드레스를 자동으로 증가시킨다.
1026 단계에서, 제어부(525)는 상기 사이즈 값이 '0'인지를 확인한다. 만약 상기 사이즈 값이 '0'이라면 상기 라이트 동작을 위한 모든 동작을 수행하였으므로 1016 단계로 진행한다. 만약 상기 사이즈 값이 0이 아니라면 상기 1022 단계로 되돌아간다. 즉, 상기 크기값이 '0'이 아니면 버스트 전송의 데이터가 모두 전송되지 않은 것으로 판단하고 상기 사이즈 값이 '0'이 될 때까지 상기 과정을 반복하여 수행한다.
만약 상기 1020 단계에서, 상기 동작이 단일 전송에 대한 것으로 확인되면, 1028 단계에서 제어부(525)는 전송된 어드레스를 디코딩하고, AD[15:0]라인들을 통해 전송되는 데이터를 상기 디코딩된 어드레스에 해당하는 내부 블록에 억세스(Internal Access)하여 전송한다.
상술한 본 발명을 이용한 인터페이스 및 슬레이브 칩과 연결하는 AP에서는 일예로써 하기의 순서로 소프트웨어를 실행함으로써 상기 슬레이브와 통신할 수 있다.
1. 슬레이브에 연결된 범용 입출력 핀(GPIO Pin)을 '0'값으로 설정한다. 본 발명에서 상기 범용 입출력 핀은 어드레스 전송구간인지 데이터 전송구간인지에 대한 정보를 제공하는 신호(ADD_SEL)로 이용된다.
2. 동작을 실행할 슬레이브를 결정하고, 상기 슬레이브에서 동작을 실행할 내부 블록의 어드레스 값, R/W 값, 사이즈값(SIZE[1:0])을 하나로 묶어서 A/D[15:0] 라인들을 통해 전송한다.
3. 범용 입출력 핀의 설정을 초기화('1'로 설정)한다.
4. 설정된 R/W값, 사이즈값에 맞게 데이터를 연속적으로 리드/라이트를 수행한다.
상기 AP에서 사용될 데이터의 포맷은 상기 도 7a 및 도 7b에 도시된 포맷과 동일하게 형성할 수 있다.
한편 본 발명의 상세한 설명에서는 구체적인 실시 예에 관해 설명하였으나, 본 발명의 범위에서 벗어나지 않는 한도 내에서 여러 가지 변형이 가능함은 물론이다. 그러므로 본 발명의 범위는 설명된 실시 예에 국한되어 정해져서는 아니되며 후술하는 특허청구의 범위뿐만 아니라 이 특허청구의 범위와 균등한 것들에 의해 정해져야 한다.
상술한 바와 같이 본 발명은 종래의 SRAM 인터페이스를 이용함으로써 큰 대역폭을 요구하는 분야에도 적용 가능할 뿐만 아니라 적은 개수의 핀들을 이용함으로써 크기에 제약이 많은 단말기에 용이하게 사용할 수 있는 이점이 있다. 또한, 사용되는 핀의 개수를 줄임음로써, PCB 라우팅 넷(Routing net)이 줄어들기 때문에 효율적으로 단말기를 구성할 수 있다. 본 발명은 디자인 복잡도를 줄이면서, 높은 전송율을 갖는 범용적으로 사용 가능한 칩간(Chip-to-chip) 인터페이스를 제공할 수 있다. 본 발명은 외부 칩(특히 AP)의 제어를 받아야 하는 경우, 구현 간단한 인터페이스를 제공할 수 있고 AP의 제약없이 통신할 수 있다.

Claims (8)

  1. 어플리케이션 프로세서(Application processor:AP)로 동작하는 제 1 칩과, 상기 AP의 제어하에 프로세스들을 처리하는 제 2 칩간의 통신을 위한 인터페이스 장치에 있어서,
    상기 제 1 칩으로부터 상기 제 2 칩으로 어드레스 관련 정보를 전송하는 어드레스 전송 구간과 데이터를 전송하는 데이터 구간을 구분하는 어드레스 선택 신호를 전송하는 어드레스 선택 라인과,
    상기 제 1 칩으로부터 상기 제 2 칩으로 상기 어드레스 관련 정보 또는 데이터를 전송하는 복수의 어드레스/데이터 라인들과,
    상기 제 1 칩으로부터 상기 제 2 칩으로 동작 실행을 지시하는 신호를 전송하는 라인, 라이트(Write) 동작 실행을 지시하는 신호를 전송하는 라인, 리드(Read) 동작 실행을 지시하는 신호를 전송하는 라인을 포함하는 제어 라인들과,
    상기 라인들을 통해 전송된 신호들에 따라 데이터를 처리하는 상기 제 2 칩의 제어부를 포함하고,
    상기 제어부는 상기 어드레스 선택 신호에 따라 판단된 어드레스 전송 구간에서 상기 어드레스/데이터 라인들로 전송되는 어드레스 관련 정보를 통해 획득한 리드/라이트 동작 여부 정보, 데이터 사이즈 정보, 어드레스 정보를 이용하여 상기 데이터 전송구간에 전송되는 데이터를 처리함을 특징으로 하는 인터페이스 장치.
  2. 제 1항에 있어서, 상기 데이터 사이즈 정보는 1 전송단위의 어드레스관련 정보 전송에 따른 단일 또는 복수의 전송단위의 데이터를 전송하는지에 대한 정보임을 특징으로 하는 인터페이스 장치.
  3. 제 2항에 있어서, 상기 전송단위는 16비트인 하프워드(Halfword)임을 특징으로 하는 인터페이스 장치.
  4. 제 1항에 있어서, 상기 제어부는
    상기 동작 실행을 지시하는 신호, 라이트 동작 실행을 지시하는 신호 및 리드 동작 실행을 지시하는 신호를 수신하여 내부 블록으로 리드 동작인지 라이트 동작인지를 알려주는 리드/라이트 신호 및 상기 내부 블록의 인에이블 상태를 알려주는 신호를 상기 내부 블록으로 전송하는 제어 경로 엔진과,
    상기 어드레스 선택 신호, 어드레스 관련 정보 및 데이터를 수신하여 내부 블록의 선택을 알려주는 선택 신호, 어드레스를 전송하는 어드레스 신호를 상기 내부 블록으로 전송하고, 상기 제어 경로 엔진의 제어 하에 상기 라이트 동작의 경우 상기 어드레스의 내부 블록으로 데이터를 전송하고, 리드 동작의 경우 데이터 경로 엔진에 저장된 데이터를 상기 제 1 칩으로 전송하는 어드레스 경로 엔진과,
    상기 리드 동작의 경우, 상기 어드레스의 내부 블록으로부터 데이터를 읽어 들여 저장하는 데이터 경로 엔진을 포함함을 특징으로 하는 인터페이스 장치.
  5. 제 4항에 있어서, 상기 데이터 경로 엔진은 상기 어드레스 관련 정보의 리드/라이트 동작 여부 정보를 통해 리드 동작으로 결정된 경우 상기 어드레스의 내부 블록으로부터 읽어 들인 데이터를 저장하는 저장부를 포함함을 특징으로 하는 인터페이스 장치.
  6. 어플리케이션 프로세서(Application processor:AP)로 동작하는 제 1 칩과, 상기 AP의 제어하에 프로세스들을 처리하는 제 2 칩간의 통신을 위한 인터페이스 방법에 있어서,
    상기 제 1 칩이 상기 제 2 칩의 제어부로 전송한 어드레스 선택 신호에 따라 어드레스 관련 정보를 전송하는 어드레스 전송 구간인지 데이터를 전송하는 데이터 구간인지를 판단하는 과정과,
    상기 판단 결과 상기 어드레스 전송 구간이면, 상기 제어부는 상기 어드레스/데이터 라인들로 전송되는 어드레스 관련 정보를 통해 리드/라이트 동작 여부, 데이터 사이즈 정보, 어드레스 정보를 획득하는 과정과,
    상기 획득한 리드/라이트 동작 여부 정보 중에서 리드 동작인 경우, 해당하 는 어드레스의 제 2칩의 내부 블록으로부터 데이터를 읽어 들여 저장된 저장부로부터 데이터를 상기 제 1 칩이 전송한 제어 신호들(동작 실행을 지시하는 신호 및 리드(Read) 동작 실행을 지시하는 신호)에 따라 상기 제 1칩으로 전송하는 과정을 포함함을 특징으로 하는 인터페이스 방법.
  7. 제 6항에 있어서, 상기 데이터 사이즈 정보는 1 전송단위의 어드레스관련 정보 전송에 따른 단일 또는 복수의 전송단위의 데이터를 전송하는지에 대한 정보임을 특징으로 하는 인터페이스 방법.
  8. 제 7항에 있어서, 상기 전송단위는 16비트인 하프워드(Halfword)임을 특징으로 하는 인터페이스 방법.
KR1020060082321A 2006-08-29 2006-08-29 칩들간의 통신을 위한 인터페이스 장치 및 방법 KR101345437B1 (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020060082321A KR101345437B1 (ko) 2006-08-29 2006-08-29 칩들간의 통신을 위한 인터페이스 장치 및 방법

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020060082321A KR101345437B1 (ko) 2006-08-29 2006-08-29 칩들간의 통신을 위한 인터페이스 장치 및 방법

Publications (2)

Publication Number Publication Date
KR20080019866A true KR20080019866A (ko) 2008-03-05
KR101345437B1 KR101345437B1 (ko) 2013-12-27

Family

ID=39394971

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020060082321A KR101345437B1 (ko) 2006-08-29 2006-08-29 칩들간의 통신을 위한 인터페이스 장치 및 방법

Country Status (1)

Country Link
KR (1) KR101345437B1 (ko)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20150024579A (ko) 2013-08-27 2015-03-09 삼성전기주식회사 인터페이스 변환 장치
CN115171601A (zh) * 2022-08-11 2022-10-11 深圳市国芯晟科技有限公司 显示器驱动芯片、显示模组和显示屏控制级联方法

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100217155B1 (ko) 1995-10-23 1999-09-01 서평원 어드레스 데이터를 공유하는 다중버스와 비다중버스간의 인터페이스 회로

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20150024579A (ko) 2013-08-27 2015-03-09 삼성전기주식회사 인터페이스 변환 장치
CN115171601A (zh) * 2022-08-11 2022-10-11 深圳市国芯晟科技有限公司 显示器驱动芯片、显示模组和显示屏控制级联方法

Also Published As

Publication number Publication date
KR101345437B1 (ko) 2013-12-27

Similar Documents

Publication Publication Date Title
JP5570619B2 (ja) 異なるメモリ種類にアクセスする異なる速度での時分割多重化
JP6173340B2 (ja) バス上の複数のデータ線を介してデータを送るシステムおよび方法
US8612713B2 (en) Memory switching control apparatus using open serial interface, operating method thereof, and data storage device therefor
EP1963978A1 (en) Memory system with both single and consolidated commands
US20020184453A1 (en) Data bus system including posted reads and writes
JP4452690B2 (ja) 電子装置、その制御方法、ホスト装置及びその制御方法
JP2004070571A (ja) データ転送制御システム、電子機器、プログラム及びデータ転送制御方法
US7725621B2 (en) Semiconductor device and data transfer method
KR20050119663A (ko) 메모리 디바이스 인터페이스를 검출하는 방법 및 장치
JP4739349B2 (ja) マルチメディア・カード・インターフェース方法、コンピュータ・プログラム及び装置
US20090070502A1 (en) Data Modification Module
JP2008521080A5 (ko)
US8495268B2 (en) Card host LSI and set device including the same
KR100476895B1 (ko) 가변 가능한 데이터 전송 모드를 갖는 인터페이스 장치 및그것의 동작 방법
TWI471731B (zh) 記憶體存取方法、記憶體存取控制方法、spi快閃記憶體裝置以及spi控制器
KR101345437B1 (ko) 칩들간의 통신을 위한 인터페이스 장치 및 방법
US20070131767A1 (en) System and method for media card communication
KR20070081981A (ko) 중앙처리 장치가 없는 시스템에서의 인터페이스 방법 및장치
US20030093594A1 (en) Apparatus and method for controlling block signal flow in a multi digital signal processor configuration from a shared peripheral direct memory controller to high level data link controller
EP2040410A1 (en) Data transmission method and system
US20230081203A1 (en) Semiconductor device and method
JP2009009250A (ja) 通信システム、通信機器及びそれらに用いるデータ転送方法
JP2008009804A (ja) 情報処理装置および情報処理方法、情報処理システム、プログラム、並びに、記録媒体
JP4567373B2 (ja) データ転送装置及び通信データ処理システム
JP2001043182A (ja) パラレルバスシステム

Legal Events

Date Code Title Description
A201 Request for examination
E902 Notification of reason for refusal
E902 Notification of reason for refusal
E701 Decision to grant or registration of patent right
GRNT Written decision to grant
LAPS Lapse due to unpaid annual fee