KR20240032376A - 반도체 장치 및 이의 통신 방법 - Google Patents

반도체 장치 및 이의 통신 방법 Download PDF

Info

Publication number
KR20240032376A
KR20240032376A KR1020220111280A KR20220111280A KR20240032376A KR 20240032376 A KR20240032376 A KR 20240032376A KR 1020220111280 A KR1020220111280 A KR 1020220111280A KR 20220111280 A KR20220111280 A KR 20220111280A KR 20240032376 A KR20240032376 A KR 20240032376A
Authority
KR
South Korea
Prior art keywords
data
transmission
pregpio
gpio
input
Prior art date
Application number
KR1020220111280A
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 KR1020220111280A priority Critical patent/KR20240032376A/ko
Priority to EP23194326.7A priority patent/EP4332784A1/en
Priority to US18/459,650 priority patent/US20240078203A1/en
Priority to CN202311121144.8A priority patent/CN117648278A/zh
Publication of KR20240032376A publication Critical patent/KR20240032376A/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/382Information transfer, e.g. on bus using universal interface adapter
    • G06F13/387Information transfer, e.g. on bus using universal interface adapter for adaptation of different data processing systems to different peripheral devices, e.g. protocol converters for incompatible systems, open system
    • 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/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
    • 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/20Handling requests for interconnection or transfer for access to input/output 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/40Bus structure
    • G06F13/4004Coupling between buses
    • G06F13/4027Coupling between buses using bus bridges
    • G06F13/405Coupling between buses using bus bridges where the bridge performs a synchronising function
    • G06F13/4054Coupling between buses using bus bridges where the bridge performs a synchronising function where the function is bus cycle extension, e.g. to meet the timing requirements of the target 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/42Bus transfer protocol, e.g. handshake; Synchronisation
    • G06F13/4204Bus transfer protocol, e.g. handshake; Synchronisation on a parallel bus
    • 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

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

Abstract

본 발명의 일 실시예에 따른 반도체 장치는 버스를 통해 수신하는 입력 데이터를 처리하여 출력 데이터를 상기 버스를 통해 전송하는 프로세서; 상기 출력 데이터를 상기 버스를 통해 수신하고, 상기 출력 데이터를 전송 preGPIO 데이터로 변환하여 상기 버스로 전송하는 입출력 데이터 변환부; 및 상기 전송 preGPIO 데이터를 상기 버스를 통해 수신하고, 상기 전송 preGPIO 데이터를 전송 GPIO 데이터로 변환하여 적어도 하나의 GPIO 패드로 출력하는 GPIO 입출력부;를 포함하는 것을 특징으로 한다.

Description

반도체 장치 및 이의 통신 방법{Semiconductor Apparatus And Method for Communication of The Same}
본 명세서는 반도체 장치 및 이의 통신 방법에 관한 것이다.
반도체 집적 기술이 발달함에 따라, 종래에 별개의 독립적인 칩으로 구현되던 기능들을 각각 수행하는 블록들을 하나의 칩에 포함시키는 시스템 온 칩(system on chip;SOC)이 등장하였다. 시스템 온 칩은 다양한 전자기기에 사용될 수 있다. 시스템 온 칩은 프로세서 및 프로세서와 연결된 주변 블록들을 포함할 수 있다. 시스템 온 칩은 프로세서 및 주변 블록들을 연결하는 버스를 포함할 수 있다.
시스템 온 칩에 포함된 주변 블록들 중 적어도 하나는 시스템 온 칩에 포함된 다른 주변 블록 또는 시스템 온 칩의 외부에 있는 칩(또는 반도체 장치)과 직렬 통신을 수행할 수 있다. 이와 같이, 직렬 통신을 수행하는 블록을 직렬통신 인터페이스라고 부를 수 있다. 직렬 통신 인터페이스는 다른 주변 블록 또는 시스템 온 칩 외부에 있는 칩과 미리 약속된 직렬 통신 표준을 준수하면서 직렬 통신을 수행할 수 있다.
예를 들어, 도 1에 도시된 바와 같이, 시스템 온 칩인 반도체 장치는 프로세서(100)는 입출력 데이터 변환부(200) 및 GPIO 입출력부(300)와 버스(1000)를 통해 연결된다. 입출력 데이터 변환부(200)는 제1 입출력 배선(2001)을 통해 복수의 패드(3000)와 연결되고, GPIO 입출력부(300)는 제2 입출력 배선(2002)를 통해 복수의 패드(3000)와 연결된다. 구체적으로, 입출력 데이터 변환부(200)는 복수의 패드(3000)를 통해 데이터를 입력 또는 출력하기 위해 제1 입출력 배선(2001)을 통해 먹스(MUX)와 연결되고, 먹스(MUX)에서 설정하는 패드(3000)로 데이터를 입력 또는 출력할 수 있다. 또한, GPIO 입출력부(300)는 복수의 패드(3000)를 통해 데이터를 입력 또는 출력하기 위해 제2 입출력 배선(2002)을 통해 먹스(MUX)와 연결되고, 먹스(MUX)에서 설정하는 패드(3000)로 데이터를 입력 또는 출력할 수 있다.
즉, 종래의 반도체 장치는 복수의 주변 블록으로부터 패드로 입력 또는 출력되는 데이터를 제어하기 위해 각각의 입출력 배선 및 먹스(MUX)가 필요하기 때문에, 배선 복잡도가 증가되고 반도체 장치의 면적이 증가할 수 있다.
본 발명은 반도체 장치의 내부 배선 패턴 복잡도를 줄이고, 반도체 장치의 면적을 줄이기 위한 반도체 장치를 제공하는 것을 그 기술적 과제로 한다.
본 발명의 일 실시예에 따른 반도체 장치는 버스를 통해 수신하는 수신 데이터를 처리하여 출력 데이터를 상기 버스를 통해 전송하는 프로세서; 상기 출력 데이터를 상기 버스를 통해 수신하고, 상기 출력 데이터를 전송 preGPIO 데이터로 변환하여 상기 버스로 전송하는 입출력 데이터 변환부; 및 상기 전송 preGPIO 데이터를 상기 버스를 통해 수신하고, 상기 전송 preGPIO 데이터를 전송 GPIO 데이터로 변환하여 적어도 하나의 GPIO 패드로 출력하는 GPIO 입출력부;를 포함하고, 상기 입출력 데이터 변환부는 상기 출력 데이터를 상기 출력 데이터의 통신 프로토콜에 대응하는 전송 프로토콜 데이터로 변환하고, 상기 전송 프로토콜 데이터를 상기 전송 preGPIO 데이터로 변환하는 것을 특징으로 한다.
본 발명에 따른 반도체 장치는 통신 프로토콜을 특정 형태로 변환하여 버스를 통해 전송되기 때문에 내부 배선 패턴의 복잡도를 줄일 수 있다.
또한, 본 발명에 따른 반도체 장치는 데이터의 입출력을 제어하는 먹스(MUX)가 생략되어 반도체 장치의 면적을 최소화할 수 있다.
도 1은 종래 반도체 장치의 예시 블록도이다.
도 2는 본 발명의 일 실시예에 따른 반도체 장치의 블록도이다.
도 3는 본 발명의 일 실시예에 따른 입출력 데이터 변환부의 블록도이다.
도 4은 본 발명의 일 실시예에 따라 프로세서로부터 GPIO 데이터 변환부에 수신되는 데이터의 구조를 나타내는 도면이다.
도 5는 본 발명의 일 실시예에 따른 입출력 데이터 변환부의 예시 블록도이다.
도 6a는 본 발명의 일 실시예에 따라 입출력 데이터 변환부에서 GPIO 입출력부로 전송되는 신호를 나타내는 도면이다.
도 6b는 본 발명의 일 실시예에 따라 GPIO 입출력부에서 입출력 데이터 변환부로 입력되는 신호를 나타내는 도면이다.
도 7은 본 발명의 일 실시예에 따른 버스 통신 데이터 변환부의 블록도이다.
도 8a는 본 발명의 일 실시예에 따른 버스 통신 데이터 변환부에서 GPIO 입출력부로 전송되는 신호를 나타내는 도면이다.
도 8b는 본 발명의 일 실시예에 따른 GPIO 입출력부에서 버스 통신 데이터 변환부로 수신되는 신호를 나타낸 도면이다.
도 9은 본 발명의 일 실시예에 따른 GPIO 입출력부의 블록도이다.
도 10a는 본 발명의 일 실시예에 따른 GPIO 입출력부에서 전송 preGPIO 데이터를 전송 GPIO 데이터로 변환하는 과정을 나타내는 도면이다.
도 10b는 본 발명의 일 실시예에 따른 GPIO 입출력부에서 수신 preGPIO 데이터를 수신 GPIO 데이터로 변환하는 과정을 나타내는 도면이다.
도 11은 본 발명의 일 실시예에 따른 반도체 장치의 데이터 전송 방법에 대한 플로우 차트이다.
도 12은 본 발명의 일 실시예에 따른 반도체 장치의 데이터 전송 방법에 따라 변환되는 데이터들을 나타내는 도면이다.
도 13는 본 발명의 일 실시예에 따른 반도체 장치의 데이터 수신 방법에 대한 플로우 차트이다.
도 14은 본 발명의 일 실시예에 따른 반도체 장치의 데이터 수신 방법에 따라 변환되는 데이터들을 나타내는 도면이다.
명세서 전체에 걸쳐서 동일한 참조번호들은 실질적으로 동일한 구성요소들을 의미한다. 이하의 설명에서, 본 발명의 핵심 구성과 관련이 없는 경우 및 본 발명의 기술분야에 공지된 구성과 기능에 대한 상세한 설명은 생략될 수 있다. 본 명세서에서 서술되는 용어의 의미는 다음과 같이 이해되어야 할 것이다.
본 발명의 이점 및 특징, 그리고 그것들을 달성하는 방법은 첨부되는 도면과 함께 상세하게 후술되어 있는 실시예들을 참조하면 명확해질 것이다. 그러나 본 발명은 이하에서 개시되는 실시예들에 한정되는 것이 아니라 서로 다른 다양한 형태로 구현될 것이며, 단지 본 실시예들은 본 발명의 개시가 완전하도록 하며, 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자에게 발명의 범주를 완전하게 알려주기 위해 제공되는 것이며, 본 발명은 청구항의 범주에 의해 정의될 뿐이다.
본 발명의 실시예를 설명하기 위한 도면에 개시된 형상, 크기, 비율, 각도, 개수 등은 예시적인 것이므로 본 발명이 도시된 사항에 한정되는 것은 아니다. 명세서 전체에 걸쳐 동일 참조 부호는 동일 구성 요소를 지칭한다. 또한, 본 발명을 설명함에 있어서, 관련된 공지 기술에 대한 구체적인 설명이 본 발명의 요지를 불필요하게 흐릴 수 있다고 판단되는 경우 그 상세한 설명은 생략한다.
본 명세서에서 언급된 '포함한다', '갖는다', '이루어진다' 등이 사용되는 경우 '~만'이 사용되지 않는 이상 다른 부분이 추가될 수 있다. 구성 요소를 단수로 표현한 경우에 특별히 명시적인 기재 사항이 없는 한 복수를 포함하는 경우를 포함한다.
구성 요소를 해석함에 있어서, 별도의 명시적 기재가 없더라도 오차 범위를 포함하는 것으로 해석한다.
시간 관계에 대한 설명일 경우, 예를 들어, '~후에', '~에 이어서', '~다음에', '~전에' 등으로 시간적 선후 관계가 설명되는 경우, '바로' 또는 '직접'이 사용되지 않는 이상 연속적이지 않은 경우도 포함할 수 있다.
제1, 제2 등이 다양한 구성요소들을 서술하기 위해서 사용되나, 이들 구성요소들은 이들 용어에 의해 제한되지 않는다. 이들 용어들은 단지 하나의 구성요소를 다른 구성요소와 구별하기 위하여 사용하는 것이다. 따라서, 이하에서 언급되는 제1 구성요소는 본 발명의 기술적 사상 내에서 제2 구성요소일 수도 있다.
"적어도 하나"의 용어는 하나 이상의 관련 항목으로부터 제시 가능한 모든 조합을 포함하는 것으로 이해되어야 한다. 예를 들어, "제1 항목, 제2 항목 및 제 3 항목 중에서 적어도 하나"의 의미는 제1 항목, 제2 항목 또는 제3 항목 각각 뿐만 아니라 제1 항목, 제2 항목 및 제3 항목 중에서 2개 이상으로부터 제시될 수 있는 모든 항목의 조합을 의미할 수 있다.
본 발명의 여러 실시예들의 각각 특징들이 부분적으로 또는 전체적으로 서로 결합 또는 조합 가능하고, 기술적으로 다양한 연동 및 구동이 가능하며, 각 실시예들이 서로에 대하여 독립적으로 실시 가능할 수도 있고 연관 관계로 함께 실시할 수도 있다.
이하, 도 2 내지 도 10b를 참조하여 본 발명의 일 실시예에 따른 반도체 장치에 대해 상세히 설명한다.
도 2는 본 발명의 일 실시예에 따른 반도체 장치의 블록도이다. 도 3는 본 발명의 일 실시예에 따른 입출력 데이터 변환부의 블록도이고, 도 4은 본 발명의 일 실시예에 따라 프로세서로부터 GPIO 데이터 변환부에 수신되는 데이터의 구조를 나타내는 도면이다. 도 5는 본 발명의 일 실시예에 따른 입출력 데이터 변환부의 예시 블록도이다. 도 6a는 본 발명의 일 실시예에 따라 입출력 데이터 변환부에서 GPIO 입출력부로 전송되는 신호를 나타내는 도면이고, 도 6b는 본 발명의 일 실시예에 따라 GPIO 입출력부에서 입출력 데이터 변환부로 입력되는 신호를 나타내는 도면이다. 도 7은 본 발명의 일 실시예에 따른 버스 통신 데이터 변환부의 블록도이다. 도 8a는 본 발명의 일 실시예에 따른 버스 통신 데이터 변환부에서 GPIO 입출력부로 전송되는 신호를 나타내는 도면이고, 도 8b는 본 발명의 일 실시예에 따른 GPIO 입출력부에서 버스 통신 데이터 변환부로 수신되는 신호를 나타낸 도면이다. 도 9은 본 발명의 일 실시예에 따른 GPIO 입출력부의 블록도이다. 도 10a는 본 발명의 일 실시예에 따른 GPIO 입출력부에서 전송 preGPIO 데이터를 전송 GPIO 데이터로 변환하는 과정을 나타내는 도면이고, 도 10b는 본 발명의 일 실시예에 따른 GPIO 입출력부에서 수신 preGPIO 데이터를 수신 GPIO 데이터로 변환하는 과정을 나타내는 도면이다.
도 2를 참조하면, 본 발명의 일 실시예에 따른 반도체 장치는 프로세서(100), 입출력 데이터 변환부(200), GPIO 입출력부(300), 버스(1000), GPIO 입출력 배선(2000) 및 적어도 하나의 패드(3000)를 포함한다.
프로세서(100)는 입출력 데이터 변환부(200)로부터 수신하는 입력 데이터(RX_data)를 처리하고, 처리된 데이터를 출력 데이터(TX_data)로서 전송할 수 있다. 예를 들어, 프로세서(100)는 디스플레이 장치에 영상 데이터를 제공하기 위한 타이밍 컨트롤러 또는 디스플레이 드라이빙 집적회로일 수 있고, 메모리 장치들을 제어하기 위한 메모리 컨트롤러일 수 있고, 또는 메모리의 소프트웨어를 기반으로 동작하는 중앙 처리 장치(CPU)일 수 있다. 다만, 이에 한정되는 것은 아니며, 전술한 바와 같이, 프로세서(100)는 입력된 데이터를 처리하여 처리된 데이터를 출력하는 구성요소일 수 있다.
입출력 데이터 변환부(200)는 도 3에 도시된 바와 같이, 프로세서(100)로부터 버스(1000)를 통해 수신하는 출력 데이터(TX_data)를 전송 preGPIO 데이터(TX_preGPIO_data)로 변환하고 버스(1000)를 통해 전송 preGPIO 데이터(TX_preGPIO_data)를 GPIO 입출력부(300)로 출력하고, GPIO 입출력부(300)로부터 수신하는 수신 preGPIO 데이터(RX_preGPIO_data)를 입력 데이터(RX_data)로 변환하고 버스(1000)를 통해 프로세서(100)로 출력한다. 이때, 프로세서(100)로부터 수신하는 출력 데이터(TX_data)는 도 4에 도시된 바와 같이, 제1 내지 제3 출력 데이터(TX_data1~TX_data3)를 포함한다. 제1 출력 데이터(TX_data1)는 출력 데이터(TX_data)의 통신 프로토콜에 대한 정보로, 출력 데이터(TX_data)의 통신 프로토콜에 따라 서로 다른 값을 가질 수 있다. 제2 출력 데이터(TX_data2)는 GPIO 패드들(3000) 중 데이터가 출력되는 GPIO 패드에 대한 정보로, 데이터가 출력되는 GPIO 패드에 대응되는 데이터와 데이터가 출력되지 않는 GPIO 패드에 대응되는 데이터가 서로 다른 값을 가질 수 있다. 또한, 제3 출력 데이터(TX_data3)는 전술한 바와 같이, 프로세서(100)로부터 처리된 데이터를 포함할 수 있다. 예를 들어, 출력 데이터(TX_data)는 SPI 프로토콜을 의미하는 "11(2)"의 값을 갖는 제1 출력 데이터(TX_data1), 12개의 GPIO 패드 중 중앙의 4개의 GPIO 패드를 사용한다는 의미의 "0000 1111 0000"의 값을 갖는 제2 출력 데이터(TX_data2) 및 프로세서(100)에서 처리한 데이터로서 "0101 1010(0x5A)"의 값을 갖는 제3 출력 데이터(TX_data3)를 포함할 수 있다. 도시되지 않았지만, 입력 데이터(RX_data)도 출력 데이터(TX_data)와 같이, 입력 데이터(RX_data)이 통신 프로토콜에 대한 정보인 제1 입력 데이터(RX_data1), GPIO 패드들(3000) 중 데이터가 입력되는 GPIO 패드에 대한 정보인 제2 입력 데이터(RX_data2) 및 GPIO 패드로 입력되는 데이터를 포함하는 제3 입력 데이터(RX_data3)를 포함할 수 있다.
입출력 데이터 변환부(200)는 도 3에 도시된 바와 같이, 직병렬 변환부(210), 통신 프로토콜 제어부(220) 및 Pre-GPIO 데이터 변환부(230)를 포함할 수 있다.
직병렬 변환부(210)는 프로세서(100)로부터 버스(1000)를 통해 수신하는 출력 데이터(TX_data) 및 통신 프로토콜 제어부(220)로부터 수신하는 입력 데이터(RX_data)를 직렬 또는 병렬 데이터로 변환할 수 있다. 예를 들어, 직병렬 변환부(210)는 프로세서(100)로부터 병렬로 수신되는 출력 데이터(TX_data)를 직렬 데이터로 변환하거나, 통신 프로토콜 제어부(220)로부터 직렬로 수신되는 입력 데이터(RX_data)를 병렬 데이터로 변환할 수 있다. 다만, 이에 한정되는 것은 아니며, 직병렬 변환부(210)는 프로세서(100)로부터 직렬로 수신되는 출력 데이터(TX_data)를 병렬 데이터로 변환하거나, 통신 프로토콜 제어부(220)로부터 병렬로 수신되는 입력 데이터(RX_data)를 직렬 데이터로 변환할 수도 있다.
통신 프로토콜 제어부(220)는 직렬 또는 병렬로 변환된 출력 데이터(TX_data)를 해당 통신 프로토콜에 대응하는 전송 프로토콜 데이터(TX_prtc_data)로 변환하여 Pre-GPIO 데이터 변환부(230)로 전송한다. 이때, 전송 프로토콜 데이터(TX_prtc_data)는 출력 데이터(TX_data)의 프로토콜에 따라 적어도 하나의 프로토콜 데이터들을 포함할 수 있다. 구체적으로, 전송 프로토콜 데이터(TX_prtc_data)는 출력 데이터(TX_data)의 제1 출력 데이터(TX_data1)에 대응하는 통신 프로토콜에 따라 적어도 하나의 프로토콜 데이터들을 포함할 수 있다. 예를 들어, 출력 데이터(TX_data)의 프로토콜이 SPI(Serial Peripheral Interface) 통신 프로토콜인 경우, 도 5 및 도 6a에 도시된 바와 같이, 통신 프로토콜 제어부(220)는 수신하는 출력 데이터(TX_data)를 SPI 통신 프로토콜에 따라 전송 프로토콜 데이터(TX_prtc_data)로 변환하고, 전송 프로토콜 데이터(TX_prtc_data)는 프로토콜 데이터인 SPI 클럭 데이터(SPI_CLK), SPI 칩 선택 데이터(SPI_CS) 및 SPI 전송 데이터(SPI_TXD)를 포함할 수 있다. SPI 프로토콜을 기준으로 설명하였으나, 이에 한정되는 것은 아니며, 전술한 바와 같이, 전송 프로토콜 데이터(TX_prtc_data)는 출력 데이터(TX_data)의 통신 프로토콜에 따라 적어도 하나의 프로토콜 데이터들을 포함할 수 있다. 예를 들어, 통신 프로토콜 제어부(220)는 SPI 통신 프로토콜 이외의 I2C(Inter-Integrated Circuit) 통신 프로토콜 및 UART(Universal Aynchronous Receiver/Transmitter) 통신 프로토콜과 같은 직렬 통신 프로토콜로 출력 데이터(TX_data)를 변환할 수 있으며, 전술한 통신 프로토콜 이외의 다른 통신 프로토콜로 출력 데이터(TX_data)를 변환할 수도 있다.
통신 프로토콜 제어부(220)는 Pre-GPIO 데이터 변환부(230)로부터 수신하는 수신 프로토콜 데이터(RX_prtc_data)를 입력 데이터(RX_data)로 변환하여 직병렬 변환부(210)로 전송한다. 구체적으로, 통신 프로토콜 제어부(220)는 수신 preGPIO 데이터(RX_preGPIO_data)를 추출하여 전송되는 타이밍을 기준으로 수신 프로토콜 데이터(RX_prct_data)로 변환한다. 즉, 통신 프로토콜 제어부(220)는 수신 preGPIO 데이터(RX_preGPIO_data)를 추출하여 전송되는 타이밍을 기준으로 병렬로 변환하여 수신 프로토콜 데이터(RX_prct_data)로 변환한다.
이때, 수신 프로토콜 데이터(TX_prtc_data)는 해당 통신 프로토콜에 따라 적어도 하나의 프로토콜 데이터들을 포함할 수 있다. 예를 들어, Pre-GPIO 데이터 변환부(230)로부터 수신하는 수신 프로토콜 데이터(RX_prtc_data)의 프로토콜이 SPI(Serial Peripheral Interface) 통신 프로토콜인 경우, 도 5 및 도 6b에 도시된 바와 같이, 통신 프로토콜 제어부(220)는 프로토콜 데이터인 SPI 수신 데이터(SPI_RXD)을 포함하는 수신 프로토콜 데이터(RX_prtc_data)를 수신하고, 수신 프로토콜 데이터(RX_prtc_data)를 입력 데이터(RX_data)로 변환하여 직병렬 변환부(210)로 전송할 수 있다. SPI 프로토콜을 기준으로 설명하였으나, 이에 한정되는 것은 아니며, 전술한 바와 같이, 수신 프로토콜 데이터(RX_prtc_data)는 해당 통신 프로토콜에 따라 적어도 하나의 배선을 통해 전송되는 데이터들을 포함할 수 있다. 예를 들어, 통신 프로토콜 제어부(220)는 SPI 통신 프로토콜 이외의 I2C(Inter-Integrated Circuit) 통신 프로토콜 및 UART(Universal Aynchronous Receiver/Transmitter) 통신 프로토콜과 같은 직렬 통신 프로토콜에 대한 수신 프로토콜 데이터(RX_prtc_data)를 입력 데이터(RX_data)로 변환할 수 있으며, 수신 프로토콜 데이터(RX_prtc_data)는 전술한 통신 프로토콜 이외의 다른 통신 프로토콜의 데이터일 수 있다.
또한, 통신 프로토콜 제어부(220)는 프로세서(100)로부터 전송 속도 데이터 및 1회 송수신 데이터의 크기에 대한 데이터를 수신하여 전송 프로토콜 데이터(TX_prtc_data)가 전송되고 수신 프로토콜 데이터(RX_prct_data)가 수신되는 속도 및 1회 송수신되는 데이터의 크기를 설정할 수 있다. 예를 들어, 통신 프로토콜 제어부(220)는 전송 속도를 10ns로 설정하고, 1회 전송되는 데이터 크기를 8bit로 설정할 수 있다.
Pre-GPIO 데이터 변환부(230)는 통신 프로토콜 제어부(220)로부터 수신하는 전송 프로토콜 데이터(TX_prct_data)를 전송 preGPIO 데이터(TX_preGPIO_data)로 변환하여 버스(1000)를 통해 GPIO 입출력부(300)로 전송하고, GPIO 출력부(300)로부터 수신하는 수신 preGPIO 데이터(RX_preGPIO_data)를 수신 프로토콜 데이터(RX_prct_data)로 변환하여 통신 프로토콜 제어부(220)로 전송한다. 이를 위해, Pre-GPIO 데이터 변환부(230)는 송신 데이터 변환부(231), 수신 데이터 변환부(232) 및 송수신 제어부(233)을 포함한다.
송신 데이터 변환부(231)는 도 7에 도시된 바와 같이, 통신 프로토콜 제어부(220)로부터 수신하는 전송 프로토콜 데이터(TX_prct_data)를 전송 preGPIO 데이터(TX_preGPIO_data)로 변환하여 송수신 제어부(233)로 전송한다. 구체적으로, 송신 데이터 변환부(231)는 전송 프로토콜 데이터(TX_prct_data)를 전송된 타이밍을 기준으로 추출하여 전송 preGPIO 데이터(TX_preGPIO_data)로 변환한다. 즉, 송신 데이터 변환부(231)는 병렬로 전송되는 전송 프로토콜 데이터(TX_prct_data)를 전송되는 타이밍을 기준으로 직렬로 변환하여 전송 preGPIO 데이터(TX_preGPIO_data)로 변환한다. 예를 들어, 전송 프로토콜 데이터(TX_prtc_data)의 통신 프로토콜이 SPI 통신 프로토콜인 경우, 송신 데이터 변환부(231)는 통신 프로토콜 제어부(220)로부터 SPI 클럭 데이터(SPI_CLK), SPI 칩 선택 데이터(SPI_CS) 및 SPI 전송 데이터(SPI_TXD)를 포함하는 전송 프로토콜 데이터(TX_prtc_data)를 수신하고, 도 8a에 도시된 바와 같이, 수신한 SPI 클럭 데이터(SPI_CLK), SPI 칩 선택 데이터(SPI_CS) 및 SPI 전송 데이터(SPI_TXD)를 포함하는 전송 프로토콜 데이터(TX_prct_data)를 전송된 타이밍을 기준으로 분할하여 전송 preGPIO 데이터(TX_preGPIO_data)로 변환한다. 즉, 송신 데이터 변환부(231)는 병렬로 전송되는 전송 프로토콜 데이터(TX_prct_data)를 전송되는 타이밍을 기준으로 직렬로 변환하여 전송 preGPIO 데이터(TX_preGPIO_data)로 변환한다. 이에 따라, 송신 데이터 변환부(231)는 SPI 클럭 데이터(SPI_CLK), SPI 칩 선택 데이터(SPI_CS) 및 SPI 전송 데이터(SPI_TXD)를 첫번째 타이밍에 전송되는 SPI 클럭 데이터(SPI_CLK), SPI 칩 선택 데이터(SPI_CS) 및 SPI 전송 데이터(SPI_TXD) 각각의 값인 "0", "1", "0"을 포함하는 전송 preGPIO 데이터(TX_preGPIO_data)로 변환하고, 두번째 타이밍에 전송되는 SPI 클럭 데이터(SPI_CLK), SPI 칩 선택 데이터(SPI_CS) 및 SPI 전송 데이터(SPI_TXD) 각각의 값인 "0", "1", "0"을 포함하는 전송 preGPIO 데이터(TX_preGPIO_data)로 변환할 수 있다.
본 발명의 일 실시예에 따르면, 전송 preGPIO 데이터(TX_preGPIO_data)는 GPIO 패드들에 대응되는 bit 수로 구성된다. 구체적으로, 송신 데이터 변환부(231)는, 프로세서(100)로부터 출력 데이터(TX_data)의 통신에 할당되는 GPIO 패드들(3000)에 대응하는 데이터 전송 bit에 대한 데이터인 전송 bit 데이터를 수신할 수 있다. 이에 따라, 예를 들어, 프로세서(100)로부터 GPIO 패드(3000)의 다섯번째 GPIO 패드, 여섯번째 GPIO 패드 및 일곱번째 GPIO 패드가 출력 데이터(TX_data) 전송에 할당되고 송신 데이터 변환부(231)는 할당된 GPIO 패드드에 대응하는 데이터 전송 bit에 대한 데이터로 다섯번째 bit, 여섯번째 bit 및 일곱번째 bit가 출력 데이터(TX_data)의 통신에 할당된다는 데이터를 수신하고, 도 8a에 도시된 바와 같이, 12개의 GPIO 패드들에 대응되는 12bit로 구성되는 전송 preGPIO 데이터(TX_preGPIO_data)는 다섯번째 bit, 여섯번째 bit, 일곱번째 bit 각각에 동일한 타이밍에 출력되는 SPI 클럭 데이터(SPI_CLK), SPI 칩 선택 데이터(SPI_CS) 및 SPI 전송 데이터(SPI_TXD)를 포함한다.
이를 위해, 도시되지 않았지만, 송신 데이터 변환부(231)는 전송 프로토콜 데이터(TX_prtc_data)를 수신하는 전송 레지스터 및 전송 bit 데이터를 이용하여 해당 bit에 전송 프로토콜 데이터(TX_prtc_data)가 포함되는 전송 preGPIO 데이터(TX_preGPIO_data)를 생성하기 위한 전송 bit 선택 설정부를 포함할 수 있다.
수신 데이터 변환부(232)는 도 7에 도시된 바와 같이, 송수신 제어부(233)로부터 수신하는 수신 preGPIO 데이터(RX_preGPIO_data)를 수신 프로토콜 데이터(RX_prct_data)로 변환하여 입출력 데이터 변환부(200)로 전송한다. 예를 들어, 수신 프로토콜 데이터(RX_prtc_data)의 통신 프로토콜이 SPI 통신 프로토콜인 경우, 수신 데이터 변환부(232)는 도 8b에 도시된 바와 같이, 순차적으로 수신 preGPIO 데이터(RX_preGPIO_data)를 수신하고, preGPIO 데이터(RX_preGPIO_data)를 SPI 수신 데이터(SPI_RXD)을 포함하는 수신 프로토콜 데이터(RX_prct_data)로 변환하여 입출력 데이터 변환부(200)로 전송한다.
본 발명의 일 실시예에 따르면, 수신 preGPIO 데이터(RX_preGPIO_data)는 GPIO 패드들에 대응되는 bit 수로 구성된다. 구체적으로, 송신 데이터 변환부(231)는, 프로세서(100)로부터 수신 프로토콜 데이터(RX_prct_data)가 출력되는 GPIO 패드들(3000)에 대응하는 데이터 수신 bit에 대한 데이터를 수신할 수 있다. 이에 따라, 예를 들어, 프로세서(100)로부터 GPIO 패드(3000)의 여덟번째 패드가 입력 데이터(RX_data) 수신에 할당되고, 수신 데이터 변환부(232)는 할당된 GPIO 패드에 대응하는 데이터 수신 bit에 대한 데이터로 여덟번째 bit가 입력 데이터(RX_data)의 통신에 할당된다는 데이터를 수신하고, 도 8b에 도시된 바와 같이, 12개의 GPIO 패드들에 대응되는 12bit로 구성되는 수신 preGPIO 데이터(RX_preGPIO_data)의 여덟번째 bit들을 추출하여 수신 프로토콜 데이터(RX_prct_data)로 변환할 수 있다.
이를 위해, 도시되지 않았지만, 수신 데이터 변환부(232)는 송수신 제어부(233)로부터 수신하는 수신 preGPIO 데이터(RX_preGPIO_data)를 수신하는 수신 레지스터 및 프로세서(100)로부터 수신하는 수신 bit 데이터를 이용하여 수신 preGPIO 데이터(RX_preGPIO_data)에서 해당 bit의 데이터를 추출하여 프로토콜 데이터(RX_prct_data)를 생성하기 위한 수신 bit 선택 설정부를 포함할 수 있다.
송수신 제어부(233)는 송신 데이터 변환부(231)로부터 변환된 전송 preGPIO 데이터(TX_preGPIO_data)를 전송 preGPIO 데이터(TX_preGPIO_data)들이 출력될 GPIO 패드의 주소(ADDR)와 함께 버스(1000)를 통해 GPIO 입출력부(300)로 전송하고, GPIO 입출력부(300)로부터 수신하는 수신 preGPIO 데이터(RX_preGPIO_data)를 수신 데이터 변환부(232)로 전송한다. 이를 위해, 송수신 제어부(233)는 도시되지 않았지만, 전송 preGPIO 데이터(TX_preGPIO_data) 또는 수신 preGPIO 데이터(RX_preGPIO_data)를 전송할 주소를 설정하는 주소 설정부와 통신 프로토콜의 타이밍에 대응하여 데이터를 전송 또는 수신하도록 제어하는 타이밍 제어부를 포함할 수 있다.
본 발명의 일 실시예에 따르면, 입출력 데이터 변환부(200)에서 전송 프로토콜 데이터(TX_prtc_data)를 전송 preGPIO 데이터(TX_preGPIO_data)로 변환하여 버스(1000)를 통해 GPIO 입출력부(300)로 전송하고, GPIO 입출력부(300)로부터 버스(1000)를 통해 입력되는 수신 preGPIO 데이터(RX_preGPIO_data)를 수신 프로토콜 데이터(RX_prtc_data)로 변환하여 전송 프로토콜 데이터(TX_prtc_data) 및 수신 프로토콜 데이터(RX_prtc_data)가 GPIO 패드들(3000)을 통해 출력되기 위한 배선 패턴들이 생략되어 내부 배선 패턴의 복잡도를 줄이고, 반도체 장치의 면적을 최소화할 수 있다.
GPIO 입출력부(300)는 전송 preGPIO 데이터(TX_preGPIO_data)를 전송 GPIO 데이터(TX_GPIO_data)로 변환하고 전송 GPIO 데이터(TX_GPIO_data)를 적어도 하나의 GPIO 패드(3000)로 전송한다. 또한, GPIO 입출력부(300)는 수신 GPIO 데이터(RX_GPIO_data)를 수신 preGPIO 데이터(RX_preGPIO_data)로 변환하고 수신 preGPIO 데이터(RX_GPIO_data)를 입출력 데이터 변환부(200)로 전송한다. 구체적으로, GPIO 입출력부(300)는 입출력 데이터 변환부(200)로부터 수신하는 전송 preGPIO 데이터(TX_preGPIO_data)를 해당 데이터의 통신에 할당된 GPIO 패드(3000)만 제어되도록 전송 마스크(TX_MASK)를 적용하여 전송 GPIO 데이터(TX_GPIO_data)로 변환하여 적어도 하나의 GPIO 패드(3000)로 전송하고, 이를 위해, GPIO 입출력부(300)는 GPIO 데이터 변환부(310), GPIO 출력부(320) 및 GPIO 입력부(330)를 포함한다.
GPIO 데이터 변환부(310)는 전송 preGPIO 데이터(TX_preGPIO_data)를 전송 GPIO 데이터(TX_GPIO_data)로 변환한다. 구체적으로, GPIO 데이터 변환부(310)는 입출력 데이터 변환부(200)로부터 수신하는 전송 preGPIO 데이터(TX_preGPIO_data)에서 해당 데이터의 통신에 할당된 GPIO 패드(3000)에 대응하는 데이터 bit만 추출하는 전송 마스크(TX_MASK)를 적용하여 전송 GPIO 데이터(TX_GPIO_data)로 변환한다. 예를 들어, 도 10a에 도시된 바와 같이, GPIO 데이터 변환부(310)는 전송 preGPIO 데이터(TX_preGPIO_data)에서 해당 데이터의 통신에 할당된 GPIO 패드(3000)에 대응하는 데이터 bit인 다섯번째 bit, 여섯번째 bit 및 일곱번째 bit만 추출되도록 다섯번째 bit, 여섯번째 bit 및 일곱번째 bit가 "1"의 값을 갖고, 다른 bit들은 "0"의 값을 갖는 전송 마스크(TX_MASK)를 전송 preGPIO 데이터(TX_preGPIO_data)에 적용하여 각 전송 preGPIO 데이터(TX_preGPIO_data)의 다섯번째 bit, 여섯번째 bit 및 일곱번째 bit의 값들을 포함하는 전송 GPIO 데이터(TX_GPIO_data)로 변환한다.
또한, GPIO 데이터 변환부(310)는 적어도 하나의 GPIO 패드(3000)로부터 수신하는 수신 GPIO 데이터(RX_GPIO_data)를 해당 데이터의 통신에 할당된 GPIO 패드(3000)에 대응하는 데이터 bit만 추출하도록 수신 마스크(RX_MASK)를 적용하여 수신 preGPIO 데이터(RX_preGPIO_data)로 변환한다. 예를 들어, 도 10b에 도시된 바와 같이, GPIO 데이터 변환부(310)는 수신 GPIO 데이터(RX_GPIO_data)에서 해당 데이터의 통신에 할당된 GPIO 패드(3000)에 대응하는 데이터 bit인 여덟번째 bit만 추출되도록 여덟번째 bit가 "1"의 값을 갖고 다른 bit들은 "0"의 값을 갖는 수신 마스크(RX_MASK)를 수신 GPIO 데이터(RX_GPIO_data)에 적용하여 각 수신 GPIO 데이터(RX_GPIO_data)의 여덟번째 bit의 값들을 포함하는 수신 preGPIO 데이터(RX_preGPIO_data)로 변환한다.
GPIO 출력부(320)는 GPIO 데이터 변환부(310)에서 전송하는 전송 GPIO 데이터(TX_GPIO_data)를 GPIO 입출력 배선(2000) 및 적어도 하나의 GPIO 패드(3000)를 통해 출력한다.
GPIO 입력부(330)는 적어도 하나의 GPIO 패드(3000)를 통해 수신하는 수신 GPIO 데이터(RX_GPIO_data)를 GPIO 입출력 배선(2000) 및 적어도 하나의 GPIO 패드(3000)를 통해 수신한다.
이하, 도 11 내지 도 14을 참조하여, 본 발명의 일 실시예에 따른 반도체 장치의 내부 통신 방법에 대해 상세히 설명한다.
도 11은 본 발명의 일 실시예에 따른 반도체 장치의 데이터 전송 방법에 대한 플로우 차트이고, 도 12은 본 발명의 일 실시예에 따른 반도체 장치의 데이터 전송 방법에 따라 변환되는 데이터들을 나타내는 도면이다. 도 13는 본 발명의 일 실시예에 따른 반도체 장치의 데이터 수신 방법에 대한 플로우 차트이고, 도 14은 본 발명의 일 실시예에 따른 반도체 장치의 데이터 수신 방법에 따라 변환되는 데이터들을 나타내는 도면이다.
도 11 및 도 12을 참조하여, 본 발명의 일 실시예에 따른 반도체 장치의 데이터 전송 방법에 대해 상세히 설명한다.
우선, 도시되지 않았지만, 프로세서(100)로부터 수신하는 출력 데이터(TX_data)를 입출력 데이터 변환부(200)는 직렬 또는 병렬로 변환할 수 있다.
이후, 입출력 데이터 변환부(200)는 프로세서(100)로부터 수신하는 출력 데이터(TX_data)를 출력 데이터(TX_data)의 통신 프로토콜에 대응하는 전송 프로토콜 데이터(TX_prtc_data)로 변환한다(s1001). 예를 들어, 출력 데이터(TX_data)의 프로토콜이 SPI(Serial Peripheral Interface) 통신 프로토콜인 경우, 도 11에 도시된 바와 같이, 입출력 데이터 변환부(200)는 출력 데이터(TX_data)를 SPI 통신 프로토콜에 따라 SPI 클럭 데이터(SPI_CLK), SPI 칩 선택 데이터(SPI_CS) 및 SPI 전송 데이터(SPI_TXD)를 포함하는 전송 프로토콜 데이터(TX_prtc_data)로 변환한다. 이때, 출력 데이터(TX_data)는 도 12에 도시된 바와 같이, 제1 내지 제3 출력 데이터(TX_data1~TX_data3)를 포함할 수 있다. 제1 출력 데이터(TX_data1)는 출력 데이터(TX_data)의 통신 프로토콜에 대한 데이터이고, 제2 출력 데이터(TX_data2)는 GPIO 패드들(3000) 중 데이터가 출력될 GPIO 패드에 대한 데이터이고, 제3 출력 데이터(TX_data3)는 전술한 바와 같이, 프로세서(100)로부터 처리된 데이터를 포함할 수 있다. 즉, 출력 데이터(TX_data)는 SPI 프로토콜을 의미하는 "11(2)"의 값을 갖는 제1 출력 데이터(TX_data1), 12개의 GPIO 패드 중 중앙의 4개의 GPIO 패드를 사용한다는 의미의 "0000 1111 0000"의 값을 갖는 제2 출력 데이터(TX_data2) 및 프로세서(100)에서 처리한 데이터로서 0x5A인 "01011010"의 값을 갖는 제3 출력 데이터(TX_data3)를 포함할 수 있다. SPI 프로토콜을 기준으로 설명하였으나, 이에 한정되는 것은 아니며, 다른 통신 프로토콜에 대한 전송 프로토콜 데이터(TX_prtc_data)로 변환할 수 있다.
이후, 입출력 데이터 변환부(200)는 전송 프로토콜 데이터(TX_prct_data)를 전송 preGPIO 데이터(TX_preGPIO_data)로 변환한다(s1002). 구체적으로, 입출력 데이터 변환부(200)는 전송 프로토콜 데이터(TX_prct_data)를 전송된 타이밍을 기준으로 분할하여 전송 preGPIO 데이터(TX_preGPIO_data)로 변환한다. 즉, 송신 데이터 변환부(231)는 병렬로 전송되는 전송 프로토콜 데이터(TX_prct_data)를 전송되는 타이밍을 기준으로 직렬로 변환하여 전송 preGPIO 데이터(TX_preGPIO_data)로 변환한다. 예를 들어, 전송 프로토콜 데이터(TX_prtc_data)의 통신 프로토콜이 SPI 통신 프로토콜인 경우, 도 12에 도시된 바와 같이, SPI 클럭 데이터(SPI_CLK), SPI 칩 선택 데이터(SPI_CS) 및 SPI 전송 데이터(SPI_TXD)를 포함하는 전송 프로토콜 데이터(TX_prct_data)를 전송된 타이밍을 기준으로 추출하여 전송 preGPIO 데이터(TX_preGPIO_data)로 변환한다. 즉, 송신 데이터 변환부(231)는 병렬로 전송되는 전송 프로토콜 데이터(TX_prct_data)를 전송되는 타이밍을 기준으로 직렬로 변환하여 전송 preGPIO 데이터(TX_preGPIO_data)로 변환한다. 이에 따라, 첫번째 타이밍에 전송되는 SPI 클럭 데이터(SPI_CLK), SPI 칩 선택 데이터(SPI_CS) 및 SPI 전송 데이터(SPI_TXD) 각각의 값인 "1", "0", "0"을 포함하는 전송 preGPIO 데이터(TX_preGPIO_data)로 변환하고, 두번째 타이밍에 전송되는 SPI 클럭 데이터(SPI_CLK), SPI 칩 선택 데이터(SPI_CS) 및 SPI 전송 데이터(SPI_TXD) 각각의 값인 "0", "0", "1"을 포함하는 전송 preGPIO 데이터(TX_preGPIO_data)로 변환할 수 있다. 본 발명의 일 실시예에 따르면, 전송 preGPIO 데이터(TX_preGPIO_data)는 GPIO 패드들에 대응되는 bit 수로 구성된다. 구체적으로, 송신 데이터 변환부(231)는, 프로세서(100)로부터 출력 데이터(TX_data)의 통신에 할당되는 GPIO 패드들(3000)에 대응하는 데이터 전송 bit에 대한 데이터인 전송 bit 데이터를 수신하여 이에 따라 전송 preGPIO 데이터(TX_preGPIO_data)로 변환할 수 있다. 예를 들어, 송신 데이터 변환부(231)는 할당된 GPIO 패드드에 대응하는 데이터 전송 bit에 대한 데이터로 다섯번째 bit, 여섯번째 bit 및 일곱번째 bit가 출력 데이터(TX_data)의 통신에 할당된다는 데이터를 수신하고, 도 12에 도시된 바와 같이, 12개의 GPIO 패드들에 대응되는 12bit로 구성되는 전송 preGPIO 데이터(TX_preGPIO_data)는 다섯번째 bit, 여섯번째 bit, 일곱번째 bit 각각에 동일한 타이밍에 출력되는 SPI 클럭 데이터(SPI_CLK), SPI 칩 선택 데이터(SPI_CS) 및 SPI 전송 데이터(SPI_TXD)를 포함한다.
이후, 입출력 데이터 변환부(200)는 변환된 전송 preGPIO 데이터(TX_preGPIO_data)를 버스(1000)를 통해 GPIO 입출력부(300)로 전송한다(s1003). 본 발명의 일 실시예에 따르면, 입출력 데이터 변환부(200)에서 전송 preGPIO 데이터(TX_preGPIO_data)가 별도의 배선 패턴이 아닌 버스(1000)를 통해 GPIO 입출력부(300)로 전송되기 때문에 내부 배선 패턴의 복잡도를 줄일 수 있다.
이후, GPIO 입출력부(300)는 전송 preGPIO 데이터(TX_preGPIO_data)를 전송 GPIO 데이터(TX_GPIO_data)로 변환한다(s1004). 구체적으로, GPIO 입출력부(300)는 입출력 데이터 변환부(200)로부터 수신하는 전송 preGPIO 데이터(TX_preGPIO_data)에서 해당 데이터의 통신에 할당된 GPIO 패드(3000)에 대응하는 데이터 bit만 추출되도록 전송 마스크(TX_MASK)를 적용하여 전송 GPIO 데이터(TX_GPIO_data)로 변환한다. 예를 들어, 도 12에 도시된 바와 같이, GPIO 입출력부(300)는 해당 데이터의 통신에 할당된 GPIO 패드(3000)에 대응하는 데이터 bit인 다섯번째 bit, 여섯번째 bit 및 일곱번째 bit만 추출되도록 다섯번째 bit, 여섯번째 bit 및 일곱번째 bit가 "1"의 값을 갖고, 다른 bit들은 "0"의 값을 갖는 전송 마스크(TX_MASK)를 전송 preGPIO 데이터(TX_preGPIO_data)에 적용하여 각 전송 preGPIO 데이터(TX_preGPIO_data)의 다섯번째 bit, 여섯번째 bit 및 일곱번째 bit의 값들을 포함하는 전송 GPIO 데이터(TX_GPIO_data)로 변환한다.
도 13 내지 도 14을 참조하여 본 발명의 일 실시예에 따른 반도체 장치의 데이터 수신 방법에 대해 상세히 설명한다.
우선, GPIO 입출력부(300)는 수신 GPIO 데이터(RX_GPIO_data)를 수신 preGPIO 데이터(RX_preGPIO_data)로 변환한다(s1201). 구체적으로, GPIO 입출력부(300)는 적어도 하나의 GPIO 패드(3000)로부터 수신하는 수신 GPIO 데이터(RX_GPIO_data)에서 해당 데이터의 통신에 할당된 GPIO 패드(3000)에 대응하는 데이터 bit만 추출되도록 수신 마스크(RX_MASK)를 적용하여 수신 preGPIO 데이터(RX_preGPIO_data)로 변환한다. 예를 들어, 도 14에 도시된 바와 같이, GPIO 입출력부(300)는 수신 GPIO 데이터(RX_GPIO_data)에서 해당 데이터의 통신에 할당된 GPIO 패드(3000)에 대응하는 데이터 bit인 여덟번째 bit만 추출되도록 여덟번째 bit는 "1"의 값을 갖고 다른 bit들은 "0"의 값을 갖는 수신 마스크(RX_MASK)를 수신 GPIO 데이터(RX_GPIO_data)에 적용하여 각 수신 GPIO 데이터(RX_GPIO_data)의 여덟번째 bit의 값들을 포함하는 수신 preGPIO 데이터(RX_preGPIO_data)로 변환한다.
이후, GPIO 입출력부(300)는 변환된 수신 preGPIO 데이터(RX_preGPIO_data)를 버스(1000)를 통해 입출력 데이터 변환부(200)로 전송한다(s1202). 본 발명의 일 실시예에 따르면, GPIO 입출력부(300)에서 수신 preGPIO 데이터(RX_preGPIO_data)가 별도의 배선 패턴이 아닌 버스를 통해 입출력 데이터 변환부(200)로 전송되기 때문에 내부 배선 패턴의 복잡도를 줄일 수 있다.
이후, 입출력 데이터 변환부(200)는 수신 preGPIO 데이터(RX_preGPIO_data)를 수신 프로토콜 데이터(RX_prct_data)로 변환한다(s1203). 구체적으로, 입출력 데이터 변환부(200)는 수신 preGPIO 데이터(RX_preGPIO_data)를 전송된 타이밍을 기준으로 추출하여 수신 프로토콜 데이터(RX_prct_data)로 변환한다. 즉, 송신 데이터 변환부(231)는 병렬로 전송되는 전송 프로토콜 데이터(TX_prct_data)를 전송되는 타이밍을 기준으로 직렬로 변환하여 전송 preGPIO 데이터(TX_preGPIO_data)로 변환한다. 이에 따라, 수신 프로토콜 데이터(RX_prct_data)는 해당 통신 프로토콜에 따라 적어도 하나의 배선을 통해 각각 전송되는 데이터들을 포함할 수 있다. 예를 들어, 수신 프로토콜 데이터(RX_prtc_data)의 프로토콜이 SPI(Serial Peripheral Interface) 통신 프로토콜인 경우, 도 14에 도시된 바와 같이, 입출력 데이터 변환부(200)는 수신 preGPIO 데이터(RX_preGPIO_data)를 SPI 수신 데이터(SPI_RXD)를 포함하는 수신 프로토콜 데이터(RX_prtc_data)로 변환한다. 본 발명의 일 실시예에 따르면, 수신 preGPIO 데이터(RX_preGPIO_data)는 GPIO 패드들에 대응되는 bit 수로 구성된다. 구체적으로, 송신 데이터 변환부(231)는, 프로세서(100)로부터 수신 프로토콜 데이터(RX_prct_data)가 출력되는 GPIO 패드들(3000)에 대응하는 데이터 수신 bit에 대한 데이터를 수신하여 이에 따라, 수신 프로토콜 데이터(RX_prtc_data)로 변환할 수 있다. 예를 들어, 수신 데이터 변환부(232)는 할당된 GPIO 패드에 대응하는 데이터 수신 bit에 대한 데이터로 여덟번째 bit가 입력 데이터(RX_data)의 통신에 할당된다는 데이터를 수신하고, 도 14에 도시된 바와 같이, 12개의 GPIO 패드들에 대응되는 12bit로 구성되는 수신 preGPIO 데이터(RX_preGPIO_data)의 여덟번째 bit들을 추출하여 수신 프로토콜 데이터(RX_prct_data)로 변환할 수 있다.
이후, 입출력 데이터 변환부(200)는 수신 프로토콜 데이터(RX_prct_data)를 입력 데이터(RX_data)로 변환한다(s1204). 예를 들어, 수신 프로토콜 데이터(RX_prtc_data)의 프로토콜이 SPI(Serial Peripheral Interface) 통신 프로토콜인 경우, 입출력 데이터 변환부(200)는 도 14에 도시된 바와 같이, SPI 수신 데이터(SPI_RXD)을 포함하는 수신 프로토콜 데이터(RX_prtc_data)를 수신하고, 수신 프로토콜 데이터(RX_prtc_data)를 제1 입력 데이터(RX_data1), 제2 입력 데이터(RX_data2) 및 제3 입력 데이터(RX_data3)를 포함하는 입력 데이터(RX_data)로 변환한다. 즉, 도 14에 도시된 바와 같이, "10000011(0x83)"의 값을 갖는 SPI 수신 데이터(SPI_RXD)를 포함하는 수신 프로토콜 데이터(RX_prct_data)가 SPI 프로토콜을 의미하는 "11(2)"의 값을 갖는 제1 입력 데이터(RX_data1), 12개의 GPIO 패드 중 중앙의 4개의 GPIO 패드를 사용한다는 의미의 "0000 1111 0000"의 값을 갖는 제2 입력 데이터(RX_data2) 및 수신 프로토콜 데이터(RX_prtc_data)인 "01011010(0x83)"의 값을 갖는 제3 출력 데이터(TX_data3)를 포함하는 입력 데이터(RX_data)로 변환할 수 있다.
이후, 도시되지 않았지만, 입출력 데이터 변환부(200)는 입력 데이터(RX_data)를 직렬 또는 병렬로 변환하여 프로세서(100)로 전송할 수 있다.
본 발명이 속하는 기술분야의 당업자는 상술한 본 발명이 그 기술적 사상이나 필수적 특징을 변경하지 않고서 다른 구체적인 형태로 실시될 수 있다는 것을 이해할 수 있을 것이다.
또한, 본 명세서에 설명되어 있는 방법들은 적어도 부분적으로, 하나 이상의 컴퓨터 프로그램 또는 구성요소를 사용하여 구현될 수 있다.  이 구성요소는 휘발성 및 비휘발성 메모리를 포함하는 컴퓨터로 판독 가능한 매체 또는 기계 판독 가능한 매체를 통해 일련의 컴퓨터 지시어들로서 제공될 수 있다. 상기 지시어들은 소프트웨어 또는 펌웨어로서 제공될 수 있으며, 전체적 또는 부분적으로, ASICs, FPGAs, DSPs, 또는 그 밖의 다른 유사 소자와 같은 하드웨어 구성에 구현될 수도 있다. 상기 지시어들은 하나 이상의 프로세서 또는 다른 하드웨어 구성에 의해 실행되도록 구성될 수 있는데, 상기 프로세서 또는 다른 하드웨어 구성은 상기 일련의 컴퓨터 지시어들을 실행할 때 본 명세서에 개시된 방법들 및 절차들의 모두 또는 일부를 수행하거나 수행할 수 있도록 한다.
그러므로, 이상에서 기술한 실시예들은 모든 면에서 예시적인 것이며 한정적인 것이 아닌 것으로 이해해야만 한다. 본 발명의 범위는 상기 상세한 설명보다는 후술하는 특허청구범위에 의하여 나타내어지며, 특허청구범위의 의미 및 범위 그리고 그 등가 개념으로부터 도출되는 모든 변경 또는 변형된 형태가 본 발명의 범위에 포함되는 것으로 해석되어야 한다.
100: 프로세서 200: 입출력 데이터 변환부
210: 직병렬 변환부 220: 통신 프로토콜 제어부
230: 버스 통신 데이터 변환부 231: 송신 데이터 변환부
232: 수신 데이터 변환부 233: 송수신 제어부
300: GPIO 입출력부 310: GPIO 데이터 생성부
320: GPIO 출력부 330: GPIO 입력부

Claims (15)

  1. 출력 데이터를 버스를 통해 수신하고, 상기 출력 데이터를 전송 preGPIO 데이터로 변환하여 상기 버스로 전송하는 입출력 데이터 변환부; 및
    상기 전송 preGPIO 데이터를 상기 버스를 통해 수신하고, 상기 전송 preGPIO 데이터를 전송 GPIO 데이터로 변환하여 적어도 하나의 GPIO 패드로 출력하는 GPIO 입출력부;를 포함하고,
    상기 입출력 데이터 변환부는 상기 출력 데이터를 상기 출력 데이터의 통신 프로토콜에 대응하는 전송 프로토콜 데이터로 변환하고, 상기 전송 프로토콜 데이터를 상기 전송 preGPIO 데이터로 변환하는 것을 특징으로 하는 반도체 장치.
  2. 제1항에 있어서,
    상기 입출력 데이터 변환부는 타이밍을 기준으로 상기 전송 프로토콜 데이터를 추출하여 전송 preGPIO 데이터로 변환하는 것을 특징으로 하는 반도체 장치.
  3. 제1항에 있어서,
    상기 전송 프로토콜 데이터는 적어도 하나의 배선을 통해 병렬로 전송되는 적어도 하나의 프로토콜 데이터를 포함하고,
    상기 입출력 데이터 변환부는 타이밍을 기준으로 상기 적어도 하나의 프로토콜 데이터를 직렬로 변환하여 전송 preGPIO 데이터로 변환하는 것을 특징으로 하는 반도체 장치.
  4. 제1항에 있어서,
    상기 전송 preGPIO 데이터는 GPIO 패드들에 대응하는 bit 수로 구성되고,
    상기 입출력 데이터 변환부는 상기 출력 데이터의 통신에 할당된 GPIO 패드에 대응하는 데이터 전송 bit에 대한 데이터를 수신하고, 상기 전송 preGPIO 데이터의 상기 데이터 전송 bit에 상기 전송 프로토콜 데이터를 타이밍을 기준으로 직렬로 변환한 데이터들을 포함하는 전송 preGPIO 데이터로 변환하는 것을 특징으로 하는 반도체 장치.
  5. 제1항에 있어서,
    상기 GPIO 입출력부는 상기 전송 preGPIO 데이터에 해당 데이터의 통신에 할당된 GPIO 패드에 대응하는 bit만 추출하는 전송 마스크를 적용하여 상기 전송 GPIO 데이터로 변환하는 것을 특징으로 하는 반도체 장치.
  6. 제1항에 있어서,
    상기 GPIO 입출력부는 적어도 하나의 GPIO 패드로부터 수신하는 수신 GPIO 데이터를 수신 preGPIO 데이터로 변환하고 상기 수신 preGPIO 데이터를 상기 버스를 통해 상기 입출력 데이터 변환부로 전송하고,
    상기 입출력 데이터 변환부는 상기 수신 preGPIO 데이터를 입력 데이터로 변환하고 상기 버스를 통해 상기 입력 데이터를 전송하는 것을 특징으로 하는 반도체 장치.
  7. 제6항에 있어서,
    상기 입출력 데이터 변환부는 수신 preGPIO 데이터를 타이밍을 기준으로 병렬로 변환하여 상기 적어도 하나의 프로토콜 데이터를 포함하는 수신 프로토콜 데이터로 변환하고, 상기 수신 프로토콜 데이터로 변환하고,
    상기 수신 프로토콜 데이터는 적어도 하나의 배선을 통해 병렬로 전송되는 적어도 하나의 프로토콜 데이터를 포함하는 것을 특징으로 하는 반도체 장치.
  8. 제6항에 있어서,
    상기 GPIO 입출력부는 상기 수신 GPIO 데이터에 해당 데이터의 통신에 할당된 GPIO 패드에 대응하는 bit만 추출하는 수신 마스크를 적용하여 상기 전송 preGPIO 데이터로 변환하는 것을 특징으로 하는 반도체 장치.
  9. 입출력 데이터 변환부에서 출력 데이터를 버스를 통해 수신하는 단계;
    상기 입출력 데이터 변환부에서 상기 출력 데이터를 전송 프로토콜 데이터로 변환하는 단계;
    상기 입출력 데이터 변환부에서 상기 전송 프로토콜 데이터를 전송 preGPIO 데이터로 변환하는 단계; 및
    상기 GPIO 입출력부에서 상기 전송 preGPIO 데이터를 전송 GPIO 데이터로 변환하는 단계;
    상기 전송 GPIO 데이터를 상기 버스를 통해 GPIO 패드로 전송하는 단계;를 포함하는 것을 특징으로 하는 반도체 장치의 통신 방법.
  10. 제9항에 있어서,
    상기 전송 프로토콜 데이터는 병렬로 전송되는 적어도 하나의 프로토콜 데이터를 포함하고,
    상기 전송 프로토콜 데이터를 상기 전송 preGPIO 데이터로 변환하는 단계에서,
    상기 입출력 데이터 변환부는 타이밍을 기준으로 상기 적어도 하나의 프로토콜 데이터를 직렬로 변환하여 전송 preGPIO 데이터로 변환하는 것을 특징으로 하는 반도체 장치의 통신 방법.
  11. 제9항에 있어서,
    상기 전송 preGPIO 데이터는 GPIO 패드들에 대응하는 bit 수로 구성되고,
    상기 전송 프로토콜 데이터를 상기 전송 preGPIO 데이터로 변환하는 단계에서,
    상기 출력 데이터의 통신에 할당된 GPIO 패드에 대응하는 데이터 전송 bit에 대한 데이터를 수신하고, 상기 전송 preGPIO 데이터의 상기 데이터 전송 bit에 상기 전송 프로토콜 데이터를 타이밍을 기준으로 직렬로 변환한 데이터들을 포함하는 전송 preGPIO 데이터로 변환하는 것을 특징으로 하는 반도체 장치의 통신 방법.
  12. 제9항에 있어서,
    상기 GPIO 입출력부에서 상기 전송 preGPIO 데이터를 전송 GPIO 데이터로 변환하는 단계에서,
    상기 전송 preGPIO 데이터에 해당 데이터의 통신에 할당된 GPIO 패드에 대응하는 bit만 추출하는 전송 마스크를 적용하여 상기 전송 GPIO 데이터로 변환하는 것을 특징으로 하는 반도체 장치의 통신 방법.
  13. 제9항에 있어서,
    상기 수신 GPIO 데이터를 상기 버스를 통해 GPIO 패드로부터 수신하는 단계;
    상기 GPIO 입출력부에서 상기 수신 GPIO 데이터를 수신 preGPIO 데이터로 변환하는 단계;
    상기 입출력 데이터 변환부에서 상기 수신 preGPIO 데이터를 수신 프로토콜 데이터로 변환하는 단계;
    상기 입출력 데이터 변환부에서 상기 수신 프로토콜 데이터를 입력 데이터로 변환하는 단계; 및
    상기 입력 데이터를 상기 버스를 통해 전송하는 단계;를 더 포함하는 것을 특징으로 하는 반도체 장치의 통신 방법.
  14. 제13항에 있어서,
    상기 수신 프로토콜 데이터는 적어도 하나의 배선을 통해 병렬로 전송되는 적어도 하나의 프로토콜 데이터를 포함하고,
    상기 입출력 데이터 변환부에서 상기 수신 preGPIO 데이터를 수신 프로토콜 데이터로 변환하는 단계에서,
    상기 입출력 데이터 변환부는 수신 preGPIO 데이터를 타이밍을 기준으로 병렬로 변환하여 상기 적어도 하나의 프로토콜 데이터로 변환하는 것을 특징으로 하는 반도체 장치의 통신 방법.
  15. 제13항에 있어서,
    상기 GPIO 입출력부에서 상기 수신 GPIO 데이터를 수신 preGPIO 데이터로 변환하는 단계에서,
    상기 수신 GPIO 데이터에 해당 데이터의 통신에 할당된 GPIO 패드에 대응하는 bit만 추출하는 수신 마스크를 적용하여 상기 전송 preGPIO 데이터로 변환하는 것을 특징으로 하는 반도체 장치의 통신 방법.
KR1020220111280A 2022-09-02 2022-09-02 반도체 장치 및 이의 통신 방법 KR20240032376A (ko)

Priority Applications (4)

Application Number Priority Date Filing Date Title
KR1020220111280A KR20240032376A (ko) 2022-09-02 2022-09-02 반도체 장치 및 이의 통신 방법
EP23194326.7A EP4332784A1 (en) 2022-09-02 2023-08-30 Semiconductor device and communication method in the semiconductor device
US18/459,650 US20240078203A1 (en) 2022-09-02 2023-09-01 Semiconductor device and communication method in the semiconductor device
CN202311121144.8A CN117648278A (zh) 2022-09-02 2023-09-01 半导体器件及半导体器件中的通信方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020220111280A KR20240032376A (ko) 2022-09-02 2022-09-02 반도체 장치 및 이의 통신 방법

Publications (1)

Publication Number Publication Date
KR20240032376A true KR20240032376A (ko) 2024-03-12

Family

ID=87863199

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020220111280A KR20240032376A (ko) 2022-09-02 2022-09-02 반도체 장치 및 이의 통신 방법

Country Status (4)

Country Link
US (1) US20240078203A1 (ko)
EP (1) EP4332784A1 (ko)
KR (1) KR20240032376A (ko)
CN (1) CN117648278A (ko)

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10467154B2 (en) * 2017-02-10 2019-11-05 Qualcomm Incorporated Multi-port multi-sideband-GPIO consolidation technique over a multi-drop serial bus
KR20200093106A (ko) * 2019-01-25 2020-08-05 삼성전자주식회사 반도체 집적 회로 및 그것의 동작 방법
FR3105153B1 (fr) 2019-12-18 2022-07-22 Renault Sas Structure de partie arriere de caisse de vehicule automobile equipee de longerons et longeronnets

Also Published As

Publication number Publication date
EP4332784A1 (en) 2024-03-06
US20240078203A1 (en) 2024-03-07
CN117648278A (zh) 2024-03-05

Similar Documents

Publication Publication Date Title
US10521392B2 (en) Slave master-write/read datagram payload extension
US7565470B2 (en) Serial bus device with address assignment by master device
US7249209B2 (en) System and method for dynamically allocating inter integrated circuits addresses to multiple slaves
CN110471872B (zh) 一种基于zynq芯片实现m-lvds总线数据交互系统和方法
US20070136502A1 (en) SPI device
US8006008B2 (en) Apparatus and method for data processing having an on-chip or off-chip interconnect between two or more devices
CN108268414B (zh) 基于spi模式的sd卡驱动器及其控制方法
CN113961494B (zh) 一种pcie总线与axi总线的桥接系统
CN105786736A (zh) 一种多芯片级联的方法、芯片和装置
US5931933A (en) Apparatus and method for communication and translation for selected one of a variety of data bus formats
CN105786741B (zh) 一种soc高速低功耗总线及转换方法
CN116647247A (zh) 一种适用于灵活连接的信号收发机及信号收发系统
US20050097403A1 (en) USB interface and testing method thereof
KR102101840B1 (ko) 범용 직렬 인터페이스 및 이를 포함하는 반도체 장치
CN113849436A (zh) 一种兼容多种串行协议的can数据转换芯片和方法
KR20160116594A (ko) 슬레이브와 데이터 통신을 할 수 있는 마스터와 상기 마스터를 포함하는 데이터 처리 시스템
US20010044862A1 (en) Serializing and deserialing parallel information for communication between devices for communicating with peripheral buses
US10567117B2 (en) Transfer device
KR20240032376A (ko) 반도체 장치 및 이의 통신 방법
US11132327B2 (en) Method and apparatus for physical layer bypass
US10511397B2 (en) Virtual general purpose input/output (GPIO) (VGI) over a time division multiplex (TDM) bus
KR20200093106A (ko) 반도체 집적 회로 및 그것의 동작 방법
KR100922812B1 (ko) 주변장치 제어 방법 및 그 시스템
CN112835834A (zh) 数据传输系统
CN216310774U (zh) 一种基于spi总线的多协议多通道可复用扩展装置